From 9c8e047f4adac6db7b41464cd9893f8d72c616d3 Mon Sep 17 00:00:00 2001
From: Mike Hommey
Date: Tue, 28 Jun 2022 22:30:12 +0100
Subject: [PATCH] Import firefox-esr_91.11.0esr.orig-l10n-zh-TW.tar.bz2
[dgit import orig firefox-esr_91.11.0esr.orig-l10n-zh-TW.tar.bz2]
---
browser/branding/official/brand.dtd | 11 +
browser/branding/official/brand.ftl | 37 +
browser/branding/official/brand.properties | 13 +
browser/browser/aboutCertError.ftl | 126 +
browser/browser/aboutConfig.ftl | 52 +
browser/browser/aboutDialog.ftl | 64 +
browser/browser/aboutLogins.ftl | 350 +
browser/browser/aboutPocket.ftl | 49 +
browser/browser/aboutPolicies.ftl | 17 +
browser/browser/aboutPrivateBrowsing.ftl | 44 +
browser/browser/aboutRestartRequired.ftl | 10 +
browser/browser/aboutRobots.ftl | 29 +
browser/browser/aboutSessionRestore.ftl | 51 +
browser/browser/aboutTabCrashed.ftl | 22 +
browser/browser/aboutUnloads.ftl | 34 +
browser/browser/accounts.ftl | 17 +
browser/browser/allTabsMenu.ftl | 17 +
browser/browser/appExtensionFields.ftl | 28 +
browser/browser/appMenuNotifications.ftl | 66 +
browser/browser/appmenu.ftl | 273 +
browser/browser/branding/brandings.ftl | 39 +
browser/browser/branding/sync-brand.ftl | 7 +
browser/browser/browser.ftl | 797 +
browser/browser/browserContext.ftl | 457 +
browser/browser/browserSets.ftl | 218 +
browser/browser/customizeMode.ftl | 48 +
.../browser/defaultBrowserNotification.ftl | 23 +
browser/browser/downloads.ftl | 215 +
browser/browser/editBookmarkOverlay.ftl | 49 +
browser/browser/menubar.ftl | 338 +
browser/browser/migration.ftl | 151 +
browser/browser/newInstallPage.ftl | 33 +
browser/browser/newtab/asrouter.ftl | 153 +
browser/browser/newtab/newtab.ftl | 266 +
browser/browser/newtab/onboarding.ftl | 272 +
browser/browser/nsserrors.ftl | 355 +
browser/browser/pageInfo.ftl | 255 +
browser/browser/panelUI.ftl | 25 +
browser/browser/panicButton.ftl | 31 +
browser/browser/places.ftl | 212 +
.../policies/policies-descriptions.ftl | 203 +
browser/browser/preferences/addEngine.ftl | 22 +
.../preferences/applicationManager.ftl | 25 +
browser/browser/preferences/blocklists.ftl | 33 +
browser/browser/preferences/clearSiteData.ftl | 56 +
browser/browser/preferences/colors.ftl | 48 +
browser/browser/preferences/connection.ftl | 102 +
browser/browser/preferences/containers.ftl | 94 +
browser/browser/preferences/fonts.ftl | 121 +
browser/browser/preferences/fxaPairDevice.ftl | 19 +
browser/browser/preferences/languages.ftl | 73 +
browser/browser/preferences/permissions.ftl | 186 +
browser/browser/preferences/preferences.ftl | 1109 +
.../browser/preferences/selectBookmark.ftl | 9 +
.../browser/preferences/siteDataSettings.ftl | 67 +
browser/browser/preferences/translation.ftl | 40 +
browser/browser/protections.ftl | 221 +
browser/browser/protectionsPanel.ftl | 113 +
browser/browser/safeMode.ftl | 15 +
browser/browser/safebrowsing/blockedSite.ftl | 30 +
browser/browser/sanitize.ftl | 114 +
browser/browser/screenshots.ftl | 44 +
browser/browser/search.ftl | 26 +
browser/browser/setDesktopBackground.ftl | 40 +
browser/browser/sidebarMenu.ftl | 18 +
browser/browser/sitePermissions.ftl | 12 +
browser/browser/sync.ftl | 26 +
browser/browser/syncedTabs.ftl | 43 +
browser/browser/tabContextMenu.ftl | 116 +
browser/browser/tabbrowser.ftl | 8 +
browser/browser/toolbarContextMenu.ftl | 74 +
browser/browser/touchbar/touchbar.ftl | 38 +
browser/browser/upgradeDialog.ftl | 116 +
browser/browser/webrtcIndicator.ftl | 38 +
.../chrome/browser-region/region.properties | 29 +
browser/chrome/browser/accounts.properties | 112 +
.../browser/app-extension-fields.properties | 15 +
browser/chrome/browser/browser.dtd | 159 +
browser/chrome/browser/browser.properties | 1038 +
.../customizableWidgets.properties | 75 +
.../browser/downloads/downloads.properties | 98 +
.../chrome/browser/feeds/subscribe.properties | 10 +
.../places/bookmarkProperties.properties | 24 +
browser/chrome/browser/places/places.dtd | 63 +
.../chrome/browser/places/places.properties | 72 +
.../safebrowsing/safebrowsing.properties | 6 +
browser/chrome/browser/search.properties | 33 +
.../chrome/browser/shellservice.properties | 17 +
browser/chrome/browser/siteData.properties | 8 +
.../chrome/browser/sitePermissions.properties | 52 +
browser/chrome/browser/syncSetup.properties | 14 +
browser/chrome/browser/tabbrowser.properties | 158 +
browser/chrome/browser/taskbar.properties | 12 +
browser/chrome/browser/translation.dtd | 59 +
browser/chrome/browser/translation.properties | 12 +
browser/chrome/browser/uiDensity.properties | 5 +
.../chrome/browser/webrtcIndicator.properties | 61 +
.../chrome/overrides/appstrings.properties | 45 +
browser/chrome/overrides/netError.dtd | 183 +
.../crashreporter/crashreporter-override.ini | 10 +
.../defaultagent/defaultagent_localized.ini | 12 +
browser/defines.inc | 12 +
.../formautofill/formautofill.properties | 230 +
.../report-site-issue/webcompat.properties | 10 +
browser/firefox-l10n.js | 18 +
browser/installer/custom.properties | 92 +
browser/installer/mui.properties | 62 +
browser/installer/nsisstrings.properties | 50 +
browser/installer/override.properties | 87 +
browser/pdfviewer/chrome.properties | 20 +
browser/pdfviewer/viewer.properties | 250 +
browser/profile/bookmarks.inc | 72 +
browser/updater/updater.ini | 11 +
calendar/README.txt | 3 +
calendar/calendar/calendar-context-menus.ftl | 7 +
calendar/calendar/calendar-delete-prompt.ftl | 32 +
calendar/calendar/calendar-editable-item.ftl | 26 +
.../calendar-event-dialog-reminder.ftl | 10 +
.../calendar/calendar-ics-file-dialog.ftl | 43 +
.../calendar/calendar-invitations-dialog.ftl | 10 +
.../calendar-itip-identity-dialog.ftl | 8 +
calendar/calendar/calendar-print.ftl | 17 +
calendar/calendar/calendar-summary-dialog.ftl | 15 +
.../calendar/calendar-uri-redirect-dialog.ftl | 11 +
calendar/calendar/calendar-widgets.ftl | 9 +
calendar/calendar/category-dialog.ftl | 7 +
calendar/calendar/preferences.ftl | 194 +
.../calendar/calendar-alarms.properties | 39 +
...calendar-event-dialog-attendees.properties | 16 +
.../chrome/calendar/calendar-event-dialog.dtd | 428 +
.../calendar/calendar-event-dialog.properties | 541 +
.../calendar/calendar-extract.properties | 294 +
.../calendar/calendar-invitations-dialog.dtd | 20 +
.../calendar-invitations-dialog.properties | 10 +
.../calendar/calendar-occurrence-prompt.dtd | 8 +
.../calendar-occurrence-prompt.properties | 53 +
calendar/chrome/calendar/calendar.dtd | 411 +
calendar/chrome/calendar/calendar.properties | 809 +
calendar/chrome/calendar/calendarCreation.dtd | 51 +
.../calendar/calendarCreation.properties | 7 +
.../chrome/calendar/categories.properties | 7 +
.../chrome/calendar/dateFormat.properties | 147 +
.../calendar-event-dialog-reminder.dtd | 19 +
calendar/chrome/calendar/global.dtd | 54 +
calendar/chrome/calendar/menuOverlay.dtd | 51 +
calendar/chrome/calendar/migration.dtd | 10 +
calendar/chrome/calendar/migration.properties | 14 +
.../chrome/calendar/provider-uninstall.dtd | 13 +
calendar/chrome/calendar/timezones.properties | 486 +
.../chrome/lightning/lightning-toolbar.dtd | 52 +
calendar/chrome/lightning/lightning.dtd | 114 +
.../chrome/lightning/lightning.properties | 165 +
calendar/lightning-l10n.js | 23 +
chat/accounts.dtd | 41 +
chat/accounts.properties | 10 +
chat/commands.properties | 28 +
chat/contacts.properties | 9 +
chat/conversations.properties | 85 +
chat/dateFormat.properties | 62 +
chat/facebook.properties | 6 +
chat/imtooltip.properties | 12 +
chat/irc.properties | 209 +
chat/logger.properties | 8 +
chat/matrix.properties | 244 +
chat/status.properties | 24 +
chat/twitter.properties | 122 +
chat/xmpp.properties | 276 +
chat/yahoo.properties | 5 +
devtools/client/aboutdebugging.ftl | 390 +
devtools/client/accessibility.ftl | 79 +
devtools/client/accessibility.properties | 298 +
devtools/client/animationinspector.properties | 182 +
devtools/client/application.ftl | 147 +
devtools/client/boxmodel.properties | 48 +
devtools/client/changes.properties | 64 +
devtools/client/compatibility.ftl | 47 +
devtools/client/components.properties | 37 +
devtools/client/debugger.properties | 1078 +
devtools/client/device.properties | 21 +
devtools/client/dom.properties | 19 +
devtools/client/filterwidget.properties | 60 +
devtools/client/font-inspector.properties | 69 +
devtools/client/graphs.properties | 25 +
devtools/client/har.properties | 23 +
devtools/client/inspector.properties | 565 +
devtools/client/jit-optimizations.properties | 36 +
devtools/client/jsonview.properties | 47 +
devtools/client/layout.properties | 129 +
devtools/client/markers.properties | 138 +
devtools/client/memory.properties | 426 +
devtools/client/menus.properties | 35 +
devtools/client/netmonitor.properties | 1563 +
devtools/client/network-throttling.properties | 27 +
devtools/client/performance.dtd | 130 +
devtools/client/performance.properties | 160 +
devtools/client/perftools.ftl | 135 +
devtools/client/responsive.properties | 173 +
devtools/client/shared.properties | 26 +
devtools/client/sourceeditor.dtd | 23 +
devtools/client/sourceeditor.properties | 117 +
devtools/client/startup.properties | 253 +
devtools/client/storage.dtd | 17 +
devtools/client/storage.ftl | 33 +
devtools/client/storage.properties | 104 +
devtools/client/styleeditor.ftl | 27 +
devtools/client/styleeditor.properties | 67 +
devtools/client/toolbox-options.ftl | 138 +
devtools/client/toolbox.properties | 307 +
devtools/client/tooltips.ftl | 112 +
devtools/client/webconsole.properties | 563 +
devtools/shared/accessibility.properties | 142 +
devtools/shared/debugger.properties | 60 +
devtools/shared/eyedropper.properties | 15 +
devtools/shared/highlighters.properties | 35 +
devtools/shared/screenshot.properties | 138 +
devtools/shared/shared.properties | 6 +
devtools/shared/styleinspector.properties | 242 +
devtools/startup/aboutDevTools.ftl | 57 +
devtools/startup/key-shortcuts.ftl | 36 +
devtools/startup/key-shortcuts.properties | 67 +
devtools/startup/startup.properties | 8 +
dom/chrome/accessibility/AccessFu.properties | 358 +
.../accessibility/mac/accessible.properties | 65 +
.../accessibility/unix/accessible.properties | 18 +
.../accessibility/win/accessible.properties | 18 +
dom/chrome/appstrings.properties | 38 +
dom/chrome/dom/dom.properties | 429 +
dom/chrome/global-strres.properties | 6 +
dom/chrome/global.dtd | 6 +
dom/chrome/layout/HtmlForm.properties | 43 +
dom/chrome/layout/MediaDocument.properties | 22 +
dom/chrome/layout/css.properties | 46 +
dom/chrome/layout/htmlparser.properties | 133 +
dom/chrome/layout/layout_errors.properties | 56 +
dom/chrome/layout/printing.properties | 57 +
dom/chrome/layout/xmlparser.properties | 49 +
dom/chrome/layout/xul.properties | 6 +
dom/chrome/mathml/mathml.properties | 15 +
dom/chrome/netError.dtd | 101 +
dom/chrome/netErrorApp.dtd | 37 +
dom/chrome/nsWebBrowserPersist.properties | 17 +
dom/chrome/plugins.properties | 14 +
dom/chrome/security/caps.properties | 9 +
dom/chrome/security/csp.properties | 107 +
dom/chrome/security/security.properties | 159 +
dom/chrome/svg/svg.properties | 6 +
dom/chrome/xml/prettyprint.dtd | 6 +
dom/chrome/xslt/xslt.properties | 39 +
dom/dom/media.ftl | 5 +
editor/ui/chrome/region/region.properties | 9 +
.../spellcheck/hunspell/README_en_US.txt | 347 +
.../spellcheck/hunspell/README_mozilla.txt | 6 +
.../dictionary-sources/5-mozilla-added | 6084 ++
.../dictionary-sources/5-mozilla-removed | 1 +
.../dictionary-sources/5-mozilla-specific | 74 +
.../hunspell/dictionary-sources/README | 56 +
.../dictionary-sources/edit-dictionary | 31 +
.../dictionary-sources/install-new-dict | 39 +
.../hunspell/dictionary-sources/make-new-dict | 69 +
.../dictionary-sources/mozilla-specific.txt | 37 +
.../orig/README_en_US-custom.txt | 348 +
.../dictionary-sources/orig/en_US-custom.aff | 205 +
.../dictionary-sources/orig/en_US-custom.dic | 49759 +++++++++++++++
extensions/spellcheck/hunspell/en-US.aff | 203 +
extensions/spellcheck/hunspell/en-US.dic | 52804 ++++++++++++++++
mail/all-l10n.js | 8 +
mail/branding/thunderbird/brand.dtd | 13 +
mail/branding/thunderbird/brand.ftl | 21 +
mail/branding/thunderbird/brand.properties | 7 +
mail/browser/appExtensionFields.ftl | 14 +
mail/chrome/communicator/utilityOverlay.dtd | 43 +
mail/chrome/messenger-mapi/mapi.properties | 37 +
.../chrome/messenger-newsblog/am-newsblog.dtd | 14 +
.../messenger-newsblog/feed-subscriptions.dtd | 55 +
.../messenger-newsblog/newsblog.properties | 93 +
.../chrome/messenger-region/region.properties | 30 +
.../messenger-smime/certFetchingStatus.dtd | 10 +
.../messenger-smime/msgCompSMIMEOverlay.dtd | 36 +
.../messenger-smime/msgCompSecurityInfo.dtd | 19 +
.../msgCompSecurityInfo.properties | 14 +
.../msgReadSMIMEOverlay.properties | 11 +
.../messenger-smime/msgReadSecurityInfo.dtd | 17 +
.../msgSecurityInfo.properties | 36 +
mail/chrome/messenger/AccountManager.dtd | 37 +
mail/chrome/messenger/AccountWizard.dtd | 124 +
mail/chrome/messenger/CustomHeaders.dtd | 12 +
mail/chrome/messenger/FilterEditor.dtd | 68 +
mail/chrome/messenger/FilterListDialog.dtd | 43 +
mail/chrome/messenger/SearchDialog.dtd | 38 +
mail/chrome/messenger/aboutDialog.dtd | 116 +
mail/chrome/messenger/aboutDownloads.dtd | 24 +
mail/chrome/messenger/aboutRights.properties | 6 +
.../messenger/aboutSupportMail.properties | 16 +
.../messenger/accountCreationModel.properties | 20 +
.../messenger/accountCreationUtil.properties | 35 +
mail/chrome/messenger/activity.dtd | 38 +
mail/chrome/messenger/activity.properties | 99 +
mail/chrome/messenger/addbuddy.dtd | 8 +
mail/chrome/messenger/addons.properties | 238 +
.../addressbook/abAddressBookNameDialog.dtd | 8 +
mail/chrome/messenger/addressbook/abCard.dtd | 156 +
.../messenger/addressbook/abContactsPanel.dtd | 49 +
.../addressbook/abMailListDialog.dtd | 22 +
.../messenger/addressbook/abMainWindow.dtd | 219 +
.../messenger/addressbook/abNewCardDialog.dtd | 8 +
.../messenger/addressbook/abResultsPane.dtd | 38 +
.../addressbook/addressBook.properties | 179 +
.../addressbook/ldapAutoCompErrs.properties | 110 +
.../addressbook/pref-directory-add.dtd | 46 +
.../messenger/addressbook/pref-directory.dtd | 18 +
.../replicationProgress.properties | 20 +
mail/chrome/messenger/am-addressing.dtd | 51 +
mail/chrome/messenger/am-advanced.dtd | 28 +
mail/chrome/messenger/am-archiveoptions.dtd | 26 +
mail/chrome/messenger/am-copies.dtd | 52 +
mail/chrome/messenger/am-e2e.properties | 5 +
mail/chrome/messenger/am-identities-list.dtd | 15 +
mail/chrome/messenger/am-identity-edit.dtd | 14 +
mail/chrome/messenger/am-im.dtd | 17 +
mail/chrome/messenger/am-junk.dtd | 32 +
mail/chrome/messenger/am-main.dtd | 49 +
mail/chrome/messenger/am-mdn.dtd | 34 +
mail/chrome/messenger/am-mdn.properties | 7 +
mail/chrome/messenger/am-offline.dtd | 57 +
mail/chrome/messenger/am-server-advanced.dtd | 31 +
mail/chrome/messenger/am-server-top.dtd | 89 +
.../messenger/am-serverwithnoidentities.dtd | 7 +
mail/chrome/messenger/am-smime.dtd | 55 +
mail/chrome/messenger/am-smime.properties | 39 +
.../messenger/app-extension-fields.properties | 11 +
mail/chrome/messenger/appUpdate.properties | 40 +
.../messenger/appleMailImportMsgs.properties | 22 +
mail/chrome/messenger/baseMenuOverlay.dtd | 34 +
.../messenger/beckyImportMsgs.properties | 20 +
.../chrome/messenger/charsetTitles.properties | 80 +
mail/chrome/messenger/chat.dtd | 44 +
mail/chrome/messenger/chat.properties | 110 +
mail/chrome/messenger/configEditorOverlay.dtd | 6 +
mail/chrome/messenger/converterDialog.dtd | 11 +
.../messenger/converterDialog.properties | 41 +
mail/chrome/messenger/custom.properties | 6 +
mail/chrome/messenger/customizeToolbar.dtd | 18 +
.../messenger/customizeToolbar.properties | 11 +
mail/chrome/messenger/devtools/dbgserver.dtd | 9 +
.../messenger/devtools/dbgserver.properties | 15 +
mail/chrome/messenger/downloadheaders.dtd | 28 +
mail/chrome/messenger/editContactOverlay.dtd | 21 +
.../messenger/editContactOverlay.properties | 15 +
mail/chrome/messenger/fieldMapImport.dtd | 19 +
mail/chrome/messenger/filter.properties | 110 +
mail/chrome/messenger/folderProps.dtd | 70 +
.../chrome/messenger/folderWidgets.properties | 13 +
mail/chrome/messenger/folderpane.dtd | 8 +
mail/chrome/messenger/gloda.properties | 175 +
.../chrome/messenger/glodaComplete.properties | 20 +
mail/chrome/messenger/glodaFacetView.dtd | 29 +
.../messenger/glodaFacetView.properties | 171 +
mail/chrome/messenger/imAccountWizard.dtd | 33 +
mail/chrome/messenger/imAccounts.properties | 64 +
mail/chrome/messenger/imapMsgs.properties | 266 +
mail/chrome/messenger/importDialog.dtd | 51 +
mail/chrome/messenger/importMsgs.properties | 308 +
mail/chrome/messenger/joinChat.dtd | 11 +
mail/chrome/messenger/junkLog.dtd | 10 +
mail/chrome/messenger/junkMailInfo.dtd | 11 +
mail/chrome/messenger/localMsgs.properties | 139 +
mail/chrome/messenger/mailEditorOverlay.dtd | 7 +
mail/chrome/messenger/mailOverlay.dtd | 12 +
mail/chrome/messenger/mailViewList.dtd | 9 +
mail/chrome/messenger/mailViewSetup.dtd | 12 +
mail/chrome/messenger/mailviews.properties | 14 +
mail/chrome/messenger/markByDate.dtd | 10 +
mail/chrome/messenger/messenger.dtd | 950 +
mail/chrome/messenger/messenger.properties | 767 +
.../messengercompose/EdAdvancedEdit.dtd | 19 +
.../messengercompose/EdColorPicker.dtd | 22 +
.../messengercompose/EdConvertToTable.dtd | 16 +
.../messengercompose/EdDialogOverlay.dtd | 17 +
.../EdNamedAnchorProperties.dtd | 11 +
.../EditorColorProperties.dtd | 29 +
.../EditorHLineProperties.dtd | 28 +
.../EditorImageProperties.dtd | 79 +
.../messengercompose/EditorInsertChars.dtd | 20 +
.../messengercompose/EditorInsertMath.dtd | 22 +
.../messengercompose/EditorInsertSource.dtd | 16 +
.../messengercompose/EditorInsertTOC.dtd | 17 +
.../messengercompose/EditorInsertTable.dtd | 19 +
.../messengercompose/EditorLinkProperties.dtd | 7 +
.../messengercompose/EditorListProperties.dtd | 21 +
.../EditorPersonalDictionary.dtd | 19 +
.../messengercompose/EditorReplace.dtd | 29 +
.../messengercompose/EditorSpellCheck.dtd | 39 +
.../EditorTableProperties.dtd | 76 +
.../messengercompose/askSendFormat.dtd | 21 +
.../messengercompose/askSendFormat.properties | 9 +
.../messengercompose/composeMsgs.properties | 484 +
.../messengercompose/editor.properties | 208 +
.../messengercompose/editorOverlay.dtd | 303 +
.../mailComposeEditorOverlay.dtd | 10 +
.../messengercompose/messengercompose.dtd | 319 +
.../messengercompose/sendProgress.dtd | 9 +
.../messengercompose/sendProgress.properties | 22 +
mail/chrome/messenger/migration/migration.dtd | 30 +
.../messenger/migration/migration.properties | 32 +
mail/chrome/messenger/mime.properties | 155 +
mail/chrome/messenger/mimeheader.properties | 36 +
.../messenger/morkImportMsgs.properties | 18 +
mail/chrome/messenger/msgAccountCentral.dtd | 26 +
mail/chrome/messenger/msgHdrViewOverlay.dtd | 114 +
mail/chrome/messenger/msgSynchronize.dtd | 27 +
.../chrome/messenger/msgViewPickerOverlay.dtd | 23 +
mail/chrome/messenger/msgmdn.properties | 18 +
mail/chrome/messenger/multimessageview.dtd | 9 +
.../messenger/multimessageview.properties | 66 +
mail/chrome/messenger/newFolderDialog.dtd | 17 +
.../newmailaccount/accountProvisioner.dtd | 44 +
.../accountProvisioner.properties | 27 +
mail/chrome/messenger/news.properties | 57 +
mail/chrome/messenger/newsError.dtd | 31 +
mail/chrome/messenger/offline.properties | 29 +
.../messenger/offlineStartup.properties | 9 +
.../messenger/outlookImportMsgs.properties | 83 +
mail/chrome/messenger/pgpmime.properties | 10 +
.../preferences/applicationManager.properties | 14 +
.../preferences/applications.properties | 13 +
.../preferences/messagestyle.properties | 13 +
.../preferences/preferences.properties | 114 +
mail/chrome/messenger/prefs.properties | 90 +
mail/chrome/messenger/quickFilterBar.dtd | 269 +
mail/chrome/messenger/removeAccount.dtd | 22 +
.../chrome/messenger/removeAccount.properties | 5 +
mail/chrome/messenger/renameFolderDialog.dtd | 10 +
mail/chrome/messenger/sanitize.dtd | 36 +
.../messenger/seamonkeyImportMsgs.properties | 18 +
.../messenger/search-attributes.properties | 46 +
.../messenger/search-operators.properties | 32 +
mail/chrome/messenger/search.properties | 27 +
mail/chrome/messenger/searchTermOverlay.dtd | 20 +
.../messenger/shutdownWindow.properties | 11 +
mail/chrome/messenger/smime.properties | 14 +
mail/chrome/messenger/smtpEditOverlay.dtd | 24 +
mail/chrome/messenger/subscribe.dtd | 23 +
mail/chrome/messenger/subscribe.properties | 13 +
mail/chrome/messenger/tabmail.dtd | 10 +
mail/chrome/messenger/taskbar.properties | 9 +
mail/chrome/messenger/telemetry.properties | 13 +
.../chrome/messenger/templateUtils.properties | 7 +
.../messenger/textImportMsgs.properties | 54 +
.../messenger/vCardImportMsgs.properties | 27 +
mail/chrome/messenger/viewLog.dtd | 12 +
mail/chrome/messenger/viewSource.dtd | 86 +
mail/chrome/messenger/viewSource.properties | 17 +
mail/chrome/messenger/viewZoomOverlay.dtd | 31 +
.../messenger/virtualFolderListDialog.dtd | 10 +
.../messenger/virtualFolderProperties.dtd | 23 +
mail/chrome/messenger/wmImportMsgs.properties | 77 +
mail/chrome/mozldap/ldap.properties | 273 +
mail/chrome/overrides/netError.dtd | 181 +
mail/chrome/overrides/profileDowngrade.dtd | 20 +
mail/defines.inc | 9 +
mail/installer/custom.properties | 85 +
mail/installer/mui.properties | 61 +
mail/installer/override.properties | 87 +
mail/messenger/aboutAddonsExtra.ftl | 13 +
mail/messenger/aboutProfilesExtra.ftl | 5 +
mail/messenger/aboutRights.ftl | 31 +
mail/messenger/aboutSupportCalendar.ftl | 33 +
mail/messenger/aboutSupportMail.ftl | 20 +
mail/messenger/accountCentral.ftl | 51 +
mail/messenger/accountManager.ftl | 10 +
mail/messenger/accountProvisioner.ftl | 54 +
mail/messenger/accountcreation/accountHub.ftl | 5 +
.../accountcreation/accountSetup.ftl | 303 +
.../messenger/addressbook/abCardDAVDialog.ftl | 28 +
.../addressbook/abCardDAVProperties.ftl | 33 +
.../addressbook/aboutAddressBook.ftl | 143 +
mail/messenger/addressbook/fieldMapImport.ftl | 12 +
mail/messenger/chat-verifySession.ftl | 14 +
mail/messenger/chat.ftl | 24 +
mail/messenger/compactFoldersDialog.ftl | 24 +
mail/messenger/exportDialog.ftl | 15 +
mail/messenger/importDialog.ftl | 30 +
mail/messenger/menubar.ftl | 72 +
mail/messenger/messenger.ftl | 145 +
.../messengercompose/messengercompose.ftl | 239 +
mail/messenger/migration.ftl | 15 +
mail/messenger/newInstall.ftl | 9 +
mail/messenger/newInstallPage.ftl | 15 +
mail/messenger/openpgp/backupKeyPassword.ftl | 20 +
mail/messenger/openpgp/changeExpiryDlg.ftl | 22 +
mail/messenger/openpgp/composeKeyStatus.ftl | 23 +
mail/messenger/openpgp/keyWizard.ftl | 187 +
mail/messenger/openpgp/msgReadStatus.ftl | 62 +
mail/messenger/openpgp/oneRecipientStatus.ftl | 30 +
mail/messenger/openpgp/openpgp-frontend.ftl | 55 +
mail/messenger/openpgp/openpgp.ftl | 667 +
mail/messenger/otr/add-finger.ftl | 17 +
mail/messenger/otr/am-im-otr.ftl | 24 +
mail/messenger/otr/auth.ftl | 60 +
mail/messenger/otr/chat.ftl | 19 +
mail/messenger/otr/finger-sync.ftl | 12 +
mail/messenger/otr/finger.ftl | 22 +
mail/messenger/otr/otr.ftl | 97 +
mail/messenger/otr/otrUI.ftl | 92 +
mail/messenger/policies/aboutPolicies.ftl | 17 +
.../policies/policies-descriptions.ftl | 157 +
mail/messenger/preferences/am-copies.ftl | 5 +
mail/messenger/preferences/am-im.ftl | 21 +
.../preferences/application-manager.ftl | 11 +
.../preferences/attachment-reminder.ftl | 26 +
mail/messenger/preferences/colors.ftl | 52 +
mail/messenger/preferences/connection.ftl | 94 +
mail/messenger/preferences/cookies.ftl | 55 +
mail/messenger/preferences/dock-options.ftl | 24 +
mail/messenger/preferences/fonts.ftl | 151 +
mail/messenger/preferences/languages.ftl | 45 +
mail/messenger/preferences/new-tag.ftl | 14 +
mail/messenger/preferences/notifications.ftl | 33 +
mail/messenger/preferences/offline.ftl | 56 +
.../messenger/preferences/passwordManager.ftl | 86 +
mail/messenger/preferences/permissions.ftl | 56 +
mail/messenger/preferences/preferences.ftl | 726 +
mail/messenger/preferences/receipts.ftl | 62 +
mail/messenger/preferences/sendoptions.ftl | 50 +
.../preferences/system-integration.ftl | 46 +
mail/messenger/troubleshootMode.ftl | 39 +
mail/updater/updater.ini | 9 +
mobile/android/chrome/browser.properties | 118 +
mobile/android/chrome/config.dtd | 22 +
mobile/android/chrome/config.properties | 10 +
mobile/android/chrome/passwordmgr.properties | 20 +
mobile/android/defines.inc | 12 +
mobile/android/mobile-l10n.js | 6 +
mobile/chrome/region.properties | 22 +
mobile/overrides/appstrings.properties | 41 +
mobile/overrides/netError.dtd | 189 +
netwerk/necko.properties | 90 +
other-licenses/branding/sunbird/brand.dtd | 3 +
.../branding/sunbird/brand.properties | 17 +
.../chrome/pipnss/nsserrors.properties | 331 +
.../manager/chrome/pipnss/pipnss.properties | 123 +
.../manager/chrome/pippki/pippki.properties | 75 +
.../security/certificates/certManager.ftl | 230 +
.../security/certificates/deviceManager.ftl | 133 +
security/manager/security/pippki/pippki.ftl | 83 +
services/sync/sync.properties | 10 +
suite/branding/seamonkey/brand.dtd | 8 +
suite/branding/seamonkey/brand.properties | 31 +
suite/chatzilla/chrome/about.dtd | 17 +
suite/chatzilla/chrome/browserOverlay.dtd | 5 +
suite/chatzilla/chrome/channels.dtd | 33 +
suite/chatzilla/chrome/chatzilla.dtd | 19 +
suite/chatzilla/chrome/chatzilla.properties | 1063 +
suite/chatzilla/chrome/chatzillaOverlay.dtd | 7 +
suite/chatzilla/chrome/config.dtd | 40 +
suite/chatzilla/chrome/install-plugin.dtd | 17 +
suite/chatzilla/chrome/networks.dtd | 53 +
suite/chatzilla/chrome/networks.properties | 28 +
suite/chatzilla/chrome/pref-irc.dtd | 12 +
suite/chatzilla/defines.inc | 11 +
suite/chrome/branding/aboutRights.dtd | 83 +
suite/chrome/branding/aboutRights.properties | 9 +
suite/chrome/browser/linkToolbar.dtd | 48 +
suite/chrome/browser/mailNavigatorOverlay.dtd | 31 +
suite/chrome/browser/metadata.dtd | 32 +
suite/chrome/browser/metadata.properties | 19 +
suite/chrome/browser/navigator.dtd | 87 +
suite/chrome/browser/navigator.properties | 81 +
suite/chrome/browser/navigatorOverlay.dtd | 158 +
suite/chrome/browser/pageInfo.dtd | 112 +
suite/chrome/browser/pageInfo.properties | 78 +
suite/chrome/browser/region.properties | 27 +
suite/chrome/browser/tabbrowser.dtd | 27 +
suite/chrome/browser/tabbrowser.properties | 33 +
suite/chrome/browser/taskbar.properties | 22 +
suite/chrome/browser/webDeveloper.dtd | 73 +
suite/chrome/common/about.dtd | 70 +
suite/chrome/common/aboutPrivateBrowsing.dtd | 26 +
suite/chrome/common/aboutSessionRestore.dtd | 23 +
suite/chrome/common/aboutSyncTabs.dtd | 23 +
suite/chrome/common/askViewZoom.dtd | 7 +
suite/chrome/common/certError.dtd | 32 +
suite/chrome/common/console/console.dtd | 47 +
.../chrome/common/console/console.properties | 17 +
suite/chrome/common/contentAreaCommands.dtd | 165 +
.../common/contentAreaCommands.properties | 16 +
suite/chrome/common/customizeToolbar.dtd | 18 +
.../chrome/common/customizeToolbar.properties | 13 +
suite/chrome/common/dataman/dataman.dtd | 156 +
.../chrome/common/dataman/dataman.properties | 73 +
suite/chrome/common/datetimepicker.dtd | 7 +
suite/chrome/common/defaultClientDialog.dtd | 15 +
.../common/downloads/downloadmanager.dtd | 96 +
.../downloads/downloadmanager.properties | 146 +
.../common/downloads/progressDialog.dtd | 20 +
suite/chrome/common/feeds/subscribe.dtd | 9 +
.../chrome/common/feeds/subscribe.properties | 53 +
suite/chrome/common/gopherAddon.dtd | 10 +
suite/chrome/common/helpviewer/help.dtd | 57 +
.../chrome/common/helpviewer/help.properties | 6 +
.../common/helpviewer/help/help-toc.rdf | 29 +
.../common/helpviewer/help/welcome.xhtml | 64 +
suite/chrome/common/migration/migration.dtd | 29 +
.../common/migration/migration.properties | 53 +
suite/chrome/common/notification.dtd | 16 +
suite/chrome/common/notification.properties | 189 +
suite/chrome/common/openLocation.dtd | 22 +
suite/chrome/common/openLocation.properties | 12 +
.../common/permissions/cookieViewer.dtd | 47 +
.../permissions/cookieViewer.properties | 30 +
.../common/permissions/permissionsManager.dtd | 19 +
.../permissions/permissionsManager.properties | 23 +
.../places/bookmarkProperties.properties | 19 +
.../common/places/editBookmarkOverlay.dtd | 28 +
suite/chrome/common/places/places.dtd | 106 +
suite/chrome/common/places/places.properties | 100 +
suite/chrome/common/pref/pref-advanced.dtd | 45 +
suite/chrome/common/pref/pref-appearance.dtd | 38 +
.../common/pref/pref-applicationManager.dtd | 9 +
.../pref/pref-applicationManager.properties | 11 +
.../chrome/common/pref/pref-applications.dtd | 17 +
.../common/pref/pref-applications.properties | 34 +
suite/chrome/common/pref/pref-cache.dtd | 37 +
suite/chrome/common/pref/pref-certs.dtd | 24 +
suite/chrome/common/pref/pref-colors.dtd | 36 +
suite/chrome/common/pref/pref-content.dtd | 48 +
suite/chrome/common/pref/pref-cookies.dtd | 41 +
suite/chrome/common/pref/pref-debugging.dtd | 40 +
suite/chrome/common/pref/pref-download.dtd | 32 +
.../chrome/common/pref/pref-findasyoutype.dtd | 22 +
suite/chrome/common/pref/pref-fonts.dtd | 79 +
suite/chrome/common/pref/pref-history.dtd | 26 +
suite/chrome/common/pref/pref-http.dtd | 24 +
suite/chrome/common/pref/pref-images.dtd | 23 +
suite/chrome/common/pref/pref-keynav.dtd | 27 +
suite/chrome/common/pref/pref-languages.dtd | 31 +
.../common/pref/pref-languages.properties | 13 +
suite/chrome/common/pref/pref-links.dtd | 30 +
suite/chrome/common/pref/pref-locationbar.dtd | 43 +
suite/chrome/common/pref/pref-masterpass.dtd | 17 +
suite/chrome/common/pref/pref-media.dtd | 23 +
suite/chrome/common/pref/pref-mousewheel.dtd | 36 +
suite/chrome/common/pref/pref-navigator.dtd | 56 +
suite/chrome/common/pref/pref-offlineapps.dtd | 25 +
suite/chrome/common/pref/pref-passwords.dtd | 14 +
suite/chrome/common/pref/pref-popups.dtd | 36 +
suite/chrome/common/pref/pref-privatedata.dtd | 34 +
.../common/pref/pref-proxies-advanced.dtd | 33 +
suite/chrome/common/pref/pref-proxies.dtd | 31 +
suite/chrome/common/pref/pref-scripts.dtd | 39 +
suite/chrome/common/pref/pref-search.dtd | 22 +
suite/chrome/common/pref/pref-security.dtd | 42 +
suite/chrome/common/pref/pref-smartupdate.dtd | 31 +
suite/chrome/common/pref/pref-spelling.dtd | 21 +
suite/chrome/common/pref/pref-ssl.dtd | 44 +
suite/chrome/common/pref/pref-sync.dtd | 57 +
suite/chrome/common/pref/pref-tabs.dtd | 35 +
suite/chrome/common/pref/preferences.dtd | 60 +
suite/chrome/common/pref/prefutilities.dtd | 43 +
.../common/pref/prefutilities.properties | 45 +
suite/chrome/common/printPreview.dtd | 40 +
.../common/profile/profileSelection.dtd | 36 +
.../profile/profileSelection.properties | 23 +
suite/chrome/common/quitDialog.properties | 29 +
suite/chrome/common/region.properties | 8 +
suite/chrome/common/safeBrowsing.dtd | 33 +
suite/chrome/common/safeMode.dtd | 28 +
suite/chrome/common/sanitize.dtd | 68 +
suite/chrome/common/sanitize.properties | 9 +
suite/chrome/common/search/engineManager.dtd | 30 +
.../common/search/engineManager.properties | 10 +
suite/chrome/common/search/search-panel.dtd | 9 +
suite/chrome/common/search/search.properties | 7 +
suite/chrome/common/search/searchbar.dtd | 7 +
suite/chrome/common/setDesktopBackground.dtd | 20 +
suite/chrome/common/shellservice.properties | 8 +
suite/chrome/common/sidebar/customize.dtd | 25 +
suite/chrome/common/sidebar/preview.dtd | 5 +
.../chrome/common/sidebar/sidebar.properties | 11 +
.../chrome/common/sidebar/sidebarOverlay.dtd | 38 +
.../chrome/common/sitePermissions.properties | 45 +
suite/chrome/common/sync/syncBrand.dtd | 7 +
.../common/sync/syncGenericChange.properties | 38 +
suite/chrome/common/sync/syncKey.dtd | 19 +
suite/chrome/common/sync/syncQuota.dtd | 9 +
suite/chrome/common/sync/syncQuota.properties | 43 +
suite/chrome/common/sync/syncSetup.dtd | 116 +
suite/chrome/common/sync/syncSetup.properties | 50 +
suite/chrome/common/tasksOverlay.dtd | 64 +
suite/chrome/common/typeaheadfind.properties | 18 +
suite/chrome/common/utilityOverlay.dtd | 207 +
suite/chrome/common/utilityOverlay.properties | 36 +
suite/chrome/common/viewApplyThemeOverlay.dtd | 11 +
.../common/viewApplyThemeOverlay.properties | 9 +
suite/chrome/common/viewZoomOverlay.dtd | 16 +
.../chrome/common/viewZoomOverlay.properties | 33 +
.../chrome/editor/dialogs/EdAdvancedEdit.dtd | 19 +
suite/chrome/editor/dialogs/EdColorPicker.dtd | 22 +
.../editor/dialogs/EdConvertToTable.dtd | 16 +
.../chrome/editor/dialogs/EdDialogOverlay.dtd | 17 +
.../dialogs/EdNamedAnchorProperties.dtd | 11 +
suite/chrome/editor/dialogs/EditConflict.dtd | 11 +
.../editor/dialogs/EditorButtonProperties.dtd | 28 +
.../editor/dialogs/EditorColorProperties.dtd | 29 +
.../dialogs/EditorFieldSetProperties.dtd | 21 +
.../editor/dialogs/EditorFormProperties.dtd | 22 +
.../editor/dialogs/EditorHLineProperties.dtd | 28 +
.../editor/dialogs/EditorImageProperties.dtd | 79 +
.../editor/dialogs/EditorInputProperties.dtd | 51 +
.../editor/dialogs/EditorInsertChars.dtd | 20 +
.../editor/dialogs/EditorInsertMath.dtd | 22 +
.../editor/dialogs/EditorInsertSource.dtd | 16 +
.../chrome/editor/dialogs/EditorInsertTOC.dtd | 17 +
.../editor/dialogs/EditorInsertTable.dtd | 19 +
.../editor/dialogs/EditorLabelProperties.dtd | 19 +
.../editor/dialogs/EditorLinkProperties.dtd | 7 +
.../editor/dialogs/EditorListProperties.dtd | 21 +
.../editor/dialogs/EditorPageProperties.dtd | 18 +
.../dialogs/EditorPersonalDictionary.dtd | 21 +
suite/chrome/editor/dialogs/EditorPublish.dtd | 66 +
.../editor/dialogs/EditorPublishProgress.dtd | 17 +
suite/chrome/editor/dialogs/EditorReplace.dtd | 29 +
.../editor/dialogs/EditorSaveAsCharset.dtd | 18 +
.../editor/dialogs/EditorSelectProperties.dtd | 49 +
.../editor/dialogs/EditorSnapToGrid.dtd | 16 +
.../editor/dialogs/EditorSpellCheck.dtd | 39 +
.../editor/dialogs/EditorTableProperties.dtd | 76 +
.../dialogs/EditorTextAreaProperties.dtd | 34 +
suite/chrome/editor/editingOverlay.dtd | 62 +
suite/chrome/editor/editor.dtd | 68 +
suite/chrome/editor/editor.properties | 208 +
suite/chrome/editor/editorOverlay.dtd | 368 +
suite/chrome/editor/editorSmileyOverlay.dtd | 58 +
.../editor/prefs/editorPrefsOverlay.dtd | 13 +
suite/chrome/editor/prefs/pref-composer.dtd | 32 +
suite/chrome/editor/prefs/pref-editing.dtd | 33 +
suite/chrome/mailnews/CustomHeaders.dtd | 12 +
suite/chrome/mailnews/FilterEditor.dtd | 69 +
suite/chrome/mailnews/FilterListDialog.dtd | 38 +
suite/chrome/mailnews/SearchDialog.dtd | 39 +
.../addressbook/abAddressBookNameDialog.dtd | 6 +
.../mailnews/addressbook/abCardOverlay.dtd | 157 +
.../mailnews/addressbook/abMailListDialog.dtd | 19 +
.../mailnews/addressbook/abMainWindow.dtd | 122 +
.../mailnews/addressbook/abNewCardDialog.dtd | 8 +
.../addressbook/abResultsPaneOverlay.dtd | 52 +
.../addressbook/abSelectAddressesDialog.dtd | 32 +
.../addressbook/addressBook.properties | 268 +
.../addressbook/ldapAutoCompErrs.properties | 105 +
.../mailnews/appleMailImportMsgs.properties | 21 +
.../mailnews/beckyImportMsgs.properties | 20 +
.../chrome/mailnews/charsetTitles.properties | 80 +
.../compose/addressingWidgetOverlay.dtd | 14 +
.../chrome/mailnews/compose/askSendFormat.dtd | 21 +
.../mailnews/compose/askSendFormat.properties | 9 +
.../mailnews/compose/composeMsgs.properties | 318 +
.../compose/mailComposeEditorOverlay.dtd | 10 +
.../mailnews/compose/messengercompose.dtd | 136 +
.../chrome/mailnews/compose/sendProgress.dtd | 9 +
.../mailnews/compose/sendProgress.properties | 22 +
suite/chrome/mailnews/custom.properties | 6 +
suite/chrome/mailnews/downloadheaders.dtd | 28 +
suite/chrome/mailnews/fieldMapImport.dtd | 23 +
suite/chrome/mailnews/filter.properties | 103 +
suite/chrome/mailnews/folderProps.dtd | 71 +
.../chrome/mailnews/folderWidgets.properties | 13 +
suite/chrome/mailnews/folderpane.dtd | 12 +
suite/chrome/mailnews/gloda.properties | 105 +
suite/chrome/mailnews/imapMsgs.properties | 269 +
suite/chrome/mailnews/importDialog.dtd | 43 +
suite/chrome/mailnews/importMsgs.properties | 312 +
suite/chrome/mailnews/junkLog.dtd | 10 +
suite/chrome/mailnews/junkMailInfo.dtd | 12 +
suite/chrome/mailnews/localMsgs.properties | 136 +
suite/chrome/mailnews/mailEditorOverlay.dtd | 8 +
suite/chrome/mailnews/mailKeysOverlay.dtd | 31 +
suite/chrome/mailnews/mailOverlay.dtd | 12 +
suite/chrome/mailnews/mailTasksOverlay.dtd | 23 +
suite/chrome/mailnews/mailViewList.dtd | 10 +
suite/chrome/mailnews/mailViewSetup.dtd | 12 +
suite/chrome/mailnews/mailviews.properties | 14 +
suite/chrome/mailnews/mapi/mapi.properties | 14 +
suite/chrome/mailnews/markByDate.dtd | 10 +
suite/chrome/mailnews/messenger.dtd | 552 +
suite/chrome/mailnews/messenger.properties | 516 +
suite/chrome/mailnews/mime.properties | 157 +
suite/chrome/mailnews/mimeheader.properties | 40 +
suite/chrome/mailnews/msgAccountCentral.dtd | 26 +
suite/chrome/mailnews/msgHdrViewOverlay.dtd | 47 +
suite/chrome/mailnews/msgHdrViewPopup.dtd | 31 +
suite/chrome/mailnews/msgPrintEngine.dtd | 11 +
suite/chrome/mailnews/msgSynchronize.dtd | 25 +
.../chrome/mailnews/msgViewPickerOverlay.dtd | 23 +
suite/chrome/mailnews/msgmdn.properties | 18 +
suite/chrome/mailnews/newFolderDialog.dtd | 17 +
suite/chrome/mailnews/news.properties | 57 +
suite/chrome/mailnews/newsError.dtd | 31 +
.../chrome/mailnews/newsblog/am-newsblog.dtd | 17 +
.../mailnews/newsblog/feed-subscriptions.dtd | 55 +
.../mailnews/newsblog/newsblog.properties | 93 +
suite/chrome/mailnews/offline.properties | 52 +
.../chrome/mailnews/offlineStartup.properties | 9 +
.../mailnews/outlookImportMsgs.properties | 88 +
suite/chrome/mailnews/pgpmime.properties | 14 +
suite/chrome/mailnews/pref/AccountManager.dtd | 27 +
suite/chrome/mailnews/pref/AccountWizard.dtd | 124 +
suite/chrome/mailnews/pref/am-addressing.dtd | 49 +
suite/chrome/mailnews/pref/am-advanced.dtd | 25 +
.../mailnews/pref/am-archiveoptions.dtd | 24 +
suite/chrome/mailnews/pref/am-copies.dtd | 50 +
.../mailnews/pref/am-identities-list.dtd | 15 +
.../chrome/mailnews/pref/am-identity-edit.dtd | 18 +
suite/chrome/mailnews/pref/am-junk.dtd | 32 +
suite/chrome/mailnews/pref/am-main.dtd | 46 +
suite/chrome/mailnews/pref/am-mdn.dtd | 34 +
suite/chrome/mailnews/pref/am-mdn.properties | 7 +
suite/chrome/mailnews/pref/am-offline.dtd | 57 +
.../mailnews/pref/am-server-advanced.dtd | 31 +
suite/chrome/mailnews/pref/am-server-top.dtd | 89 +
.../pref/am-serverwithnoidentities.dtd | 7 +
.../chrome/mailnews/pref/mailPrefsOverlay.dtd | 26 +
.../chrome/mailnews/pref/pref-addressing.dtd | 23 +
.../mailnews/pref/pref-character_encoding.dtd | 18 +
.../mailnews/pref/pref-composing_messages.dtd | 56 +
.../mailnews/pref/pref-directory-add.dtd | 45 +
suite/chrome/mailnews/pref/pref-directory.dtd | 18 +
.../chrome/mailnews/pref/pref-formatting.dtd | 43 +
suite/chrome/mailnews/pref/pref-junk.dtd | 40 +
suite/chrome/mailnews/pref/pref-mailnews.dtd | 47 +
.../mailnews/pref/pref-notifications.dtd | 47 +
suite/chrome/mailnews/pref/pref-offline.dtd | 39 +
suite/chrome/mailnews/pref/pref-receipts.dtd | 29 +
suite/chrome/mailnews/pref/pref-tags.dtd | 21 +
.../mailnews/pref/pref-viewing_messages.dtd | 48 +
suite/chrome/mailnews/pref/prefs.properties | 90 +
suite/chrome/mailnews/pref/removeAccount.dtd | 22 +
.../mailnews/pref/removeAccount.properties | 5 +
.../pref/replicationProgress.properties | 20 +
.../chrome/mailnews/pref/smtpEditOverlay.dtd | 24 +
suite/chrome/mailnews/region.properties | 32 +
suite/chrome/mailnews/renameFolderDialog.dtd | 10 +
.../mailnews/search-attributes.properties | 46 +
.../mailnews/search-operators.properties | 32 +
suite/chrome/mailnews/search.properties | 28 +
suite/chrome/mailnews/searchTermOverlay.dtd | 19 +
.../chrome/mailnews/shutdownWindow.properties | 11 +
suite/chrome/mailnews/smime.properties | 14 +
suite/chrome/mailnews/smime/am-smime.dtd | 37 +
.../chrome/mailnews/smime/am-smime.properties | 41 +
.../mailnews/smime/certFetchingStatus.dtd | 10 +
.../mailnews/smime/msgCompSMIMEOverlay.dtd | 21 +
.../smime/msgCompSMIMEOverlay.properties | 7 +
.../mailnews/smime/msgCompSecurityInfo.dtd | 19 +
.../smime/msgCompSecurityInfo.properties | 14 +
.../mailnews/smime/msgReadSMIMEOverlay.dtd | 9 +
.../smime/msgReadSMIMEOverlay.properties | 11 +
.../mailnews/smime/msgReadSecurityInfo.dtd | 15 +
.../mailnews/smime/msgSecurityInfo.properties | 44 +
suite/chrome/mailnews/start.dtd | 30 +
suite/chrome/mailnews/subscribe.dtd | 23 +
suite/chrome/mailnews/subscribe.properties | 14 +
suite/chrome/mailnews/tabmail.properties | 13 +
.../chrome/mailnews/textImportMsgs.properties | 57 +
suite/chrome/mailnews/threadpane.dtd | 46 +
.../mailnews/vCardImportMsgs.properties | 27 +
suite/chrome/mailnews/viewLog.dtd | 12 +
.../mailnews/virtualFolderListDialog.dtd | 10 +
.../mailnews/virtualFolderProperties.dtd | 23 +
suite/chrome/mailnews/wmImportMsgs.properties | 77 +
suite/chrome/mozldap/ldap.properties | 262 +
.../crashreporter/crashreporter-override.ini | 10 +
suite/defines.inc | 9 +
suite/installer/windows/custom.properties | 86 +
suite/installer/windows/mui.properties | 65 +
suite/installer/windows/override.properties | 87 +
suite/profile/bookmarks.extra | 17 +
suite/profile/bookmarks.inc | 87 +
suite/profile/chrome/userChrome-example.css | 58 +
suite/profile/chrome/userContent-example.css | 47 +
suite/profile/panels.extra | 7 +
suite/suite-l10n.js | 8 +
suite/updater/updater.ini | 9 +
toolkit/chrome/alerts/alert.dtd | 7 +
toolkit/chrome/alerts/alert.properties | 23 +
.../chrome/autoconfig/autoconfig.properties | 12 +
.../global-platform/mac/intl.properties | 8 +
.../mac/platformKeys.properties | 34 +
.../global-platform/unix/intl.properties | 8 +
.../unix/platformKeys.properties | 34 +
.../global-platform/win/intl.properties | 8 +
.../win/platformKeys.properties | 34 +
toolkit/chrome/global/aboutReader.properties | 66 +
toolkit/chrome/global/aboutStudies.properties | 32 +
toolkit/chrome/global/appPicker.dtd | 8 +
toolkit/chrome/global/autocomplete.properties | 9 +
toolkit/chrome/global/browser.properties | 8 +
toolkit/chrome/global/commonDialog.dtd | 10 +
.../chrome/global/commonDialogs.properties | 46 +
.../global/contentAreaCommands.properties | 23 +
toolkit/chrome/global/datetimebox.dtd | 35 +
toolkit/chrome/global/dialog.properties | 13 +
toolkit/chrome/global/dialogOverlay.dtd | 10 +
toolkit/chrome/global/editMenuOverlay.dtd | 12 +
toolkit/chrome/global/extensions.properties | 44 +
.../chrome/global/fallbackMenubar.properties | 9 +
toolkit/chrome/global/filepicker.properties | 18 +
toolkit/chrome/global/findbar.properties | 23 +
.../global/global-extension-fields.properties | 8 +
toolkit/chrome/global/globalKeys.dtd | 7 +
toolkit/chrome/global/intl.css | 11 +
toolkit/chrome/global/intl.properties | 43 +
toolkit/chrome/global/keys.properties | 79 +
toolkit/chrome/global/narrate.properties | 20 +
toolkit/chrome/global/notification.dtd | 14 +
toolkit/chrome/global/printdialog.properties | 52 +
toolkit/chrome/global/resetProfile.dtd | 8 +
toolkit/chrome/global/resetProfile.properties | 14 +
toolkit/chrome/global/textcontext.dtd | 16 +
toolkit/chrome/global/tree.dtd | 6 +
toolkit/chrome/global/videocontrols.dtd | 49 +
toolkit/chrome/global/viewSource.properties | 17 +
toolkit/chrome/global/wizard.properties | 8 +
.../mozapps/downloads/downloads.properties | 115 +
.../mozapps/downloads/unknownContentType.dtd | 27 +
.../downloads/unknownContentType.properties | 23 +
.../chrome/mozapps/extensions/extensions.dtd | 5 +
.../mozapps/extensions/extensions.properties | 84 +
.../profile/profileSelection.properties | 57 +
.../chrome/mozapps/update/updates.properties | 45 +
.../chrome/passwordmgr/passwordmgr.properties | 75 +
toolkit/chrome/places/places.properties | 33 +
toolkit/crashreporter/aboutcrashes.ftl | 31 +
toolkit/crashreporter/crashreporter.ini | 61 +
toolkit/defines.inc | 1 +
toolkit/toolkit/about/aboutAbout.ftl | 9 +
toolkit/toolkit/about/aboutAddons.ftl | 375 +
toolkit/toolkit/about/aboutCompat.ftl | 22 +
toolkit/toolkit/about/aboutConfig.ftl | 109 +
toolkit/toolkit/about/aboutGlean.ftl | 15 +
toolkit/toolkit/about/aboutHttpsOnlyError.ftl | 25 +
toolkit/toolkit/about/aboutMozilla.ftl | 11 +
toolkit/toolkit/about/aboutNetworking.ftl | 74 +
toolkit/toolkit/about/aboutPerformance.ftl | 67 +
toolkit/toolkit/about/aboutPlugins.ftl | 41 +
toolkit/toolkit/about/aboutProcesses.ftl | 178 +
toolkit/toolkit/about/aboutProfiles.ftl | 74 +
toolkit/toolkit/about/aboutRights.ftl | 36 +
toolkit/toolkit/about/aboutServiceWorkers.ftl | 40 +
toolkit/toolkit/about/aboutSupport.ftl | 373 +
toolkit/toolkit/about/aboutTelemetry.ftl | 146 +
toolkit/toolkit/about/aboutThirdParty.ftl | 49 +
toolkit/toolkit/about/aboutWebrtc.ftl | 235 +
toolkit/toolkit/about/abuseReports.ftl | 93 +
toolkit/toolkit/about/certviewer.ftl | 122 +
toolkit/toolkit/about/config.ftl | 55 +
toolkit/toolkit/about/url-classifier.ftl | 54 +
toolkit/toolkit/extensions/blocklist.ftl | 22 +
toolkit/toolkit/featuregates/features.ftl | 96 +
toolkit/toolkit/global/commonDialog.ftl | 13 +
.../toolkit/global/createProfileWizard.ftl | 53 +
toolkit/toolkit/global/handlerDialog.ftl | 75 +
toolkit/toolkit/global/notification.ftl | 11 +
toolkit/toolkit/global/processTypes.ftl | 51 +
toolkit/toolkit/global/profileDowngrade.ftl | 20 +
toolkit/toolkit/global/profileSelection.ftl | 30 +
toolkit/toolkit/global/resetProfile.ftl | 11 +
toolkit/toolkit/global/run-from-dmg.ftl | 28 +
toolkit/toolkit/global/textActions.ftl | 56 +
toolkit/toolkit/global/unknownContentType.ftl | 40 +
toolkit/toolkit/global/videocontrols.ftl | 14 +
toolkit/toolkit/global/wizard.ftl | 37 +
toolkit/toolkit/intl/languageNames.ftl | 214 +
toolkit/toolkit/intl/regionNames.ftl | 280 +
toolkit/toolkit/main-window/autocomplete.ftl | 23 +
toolkit/toolkit/main-window/findbar.ftl | 38 +
toolkit/toolkit/payments/payments.ftl | 51 +
.../pictureinpicture/pictureinpicture.ftl | 22 +
toolkit/toolkit/preferences/preferences.ftl | 41 +
toolkit/toolkit/printing/printDialogs.ftl | 112 +
toolkit/toolkit/printing/printPreview.ftl | 73 +
toolkit/toolkit/printing/printUI.ftl | 128 +
toolkit/toolkit/updates/backgroundupdate.ftl | 5 +
toolkit/toolkit/updates/elevation.ftl | 16 +
toolkit/toolkit/updates/history.ftl | 27 +
984 files changed, 176687 insertions(+)
create mode 100644 browser/branding/official/brand.dtd
create mode 100644 browser/branding/official/brand.ftl
create mode 100644 browser/branding/official/brand.properties
create mode 100644 browser/browser/aboutCertError.ftl
create mode 100644 browser/browser/aboutConfig.ftl
create mode 100644 browser/browser/aboutDialog.ftl
create mode 100644 browser/browser/aboutLogins.ftl
create mode 100644 browser/browser/aboutPocket.ftl
create mode 100644 browser/browser/aboutPolicies.ftl
create mode 100644 browser/browser/aboutPrivateBrowsing.ftl
create mode 100644 browser/browser/aboutRestartRequired.ftl
create mode 100644 browser/browser/aboutRobots.ftl
create mode 100644 browser/browser/aboutSessionRestore.ftl
create mode 100644 browser/browser/aboutTabCrashed.ftl
create mode 100644 browser/browser/aboutUnloads.ftl
create mode 100644 browser/browser/accounts.ftl
create mode 100644 browser/browser/allTabsMenu.ftl
create mode 100644 browser/browser/appExtensionFields.ftl
create mode 100644 browser/browser/appMenuNotifications.ftl
create mode 100644 browser/browser/appmenu.ftl
create mode 100644 browser/browser/branding/brandings.ftl
create mode 100644 browser/browser/branding/sync-brand.ftl
create mode 100644 browser/browser/browser.ftl
create mode 100644 browser/browser/browserContext.ftl
create mode 100644 browser/browser/browserSets.ftl
create mode 100644 browser/browser/customizeMode.ftl
create mode 100644 browser/browser/defaultBrowserNotification.ftl
create mode 100644 browser/browser/downloads.ftl
create mode 100644 browser/browser/editBookmarkOverlay.ftl
create mode 100644 browser/browser/menubar.ftl
create mode 100644 browser/browser/migration.ftl
create mode 100644 browser/browser/newInstallPage.ftl
create mode 100644 browser/browser/newtab/asrouter.ftl
create mode 100644 browser/browser/newtab/newtab.ftl
create mode 100644 browser/browser/newtab/onboarding.ftl
create mode 100644 browser/browser/nsserrors.ftl
create mode 100644 browser/browser/pageInfo.ftl
create mode 100644 browser/browser/panelUI.ftl
create mode 100644 browser/browser/panicButton.ftl
create mode 100644 browser/browser/places.ftl
create mode 100644 browser/browser/policies/policies-descriptions.ftl
create mode 100644 browser/browser/preferences/addEngine.ftl
create mode 100644 browser/browser/preferences/applicationManager.ftl
create mode 100644 browser/browser/preferences/blocklists.ftl
create mode 100644 browser/browser/preferences/clearSiteData.ftl
create mode 100644 browser/browser/preferences/colors.ftl
create mode 100644 browser/browser/preferences/connection.ftl
create mode 100644 browser/browser/preferences/containers.ftl
create mode 100644 browser/browser/preferences/fonts.ftl
create mode 100644 browser/browser/preferences/fxaPairDevice.ftl
create mode 100644 browser/browser/preferences/languages.ftl
create mode 100644 browser/browser/preferences/permissions.ftl
create mode 100644 browser/browser/preferences/preferences.ftl
create mode 100644 browser/browser/preferences/selectBookmark.ftl
create mode 100644 browser/browser/preferences/siteDataSettings.ftl
create mode 100644 browser/browser/preferences/translation.ftl
create mode 100644 browser/browser/protections.ftl
create mode 100644 browser/browser/protectionsPanel.ftl
create mode 100644 browser/browser/safeMode.ftl
create mode 100644 browser/browser/safebrowsing/blockedSite.ftl
create mode 100644 browser/browser/sanitize.ftl
create mode 100644 browser/browser/screenshots.ftl
create mode 100644 browser/browser/search.ftl
create mode 100644 browser/browser/setDesktopBackground.ftl
create mode 100644 browser/browser/sidebarMenu.ftl
create mode 100644 browser/browser/sitePermissions.ftl
create mode 100644 browser/browser/sync.ftl
create mode 100644 browser/browser/syncedTabs.ftl
create mode 100644 browser/browser/tabContextMenu.ftl
create mode 100644 browser/browser/tabbrowser.ftl
create mode 100644 browser/browser/toolbarContextMenu.ftl
create mode 100644 browser/browser/touchbar/touchbar.ftl
create mode 100644 browser/browser/upgradeDialog.ftl
create mode 100644 browser/browser/webrtcIndicator.ftl
create mode 100644 browser/chrome/browser-region/region.properties
create mode 100644 browser/chrome/browser/accounts.properties
create mode 100644 browser/chrome/browser/app-extension-fields.properties
create mode 100644 browser/chrome/browser/browser.dtd
create mode 100644 browser/chrome/browser/browser.properties
create mode 100644 browser/chrome/browser/customizableui/customizableWidgets.properties
create mode 100644 browser/chrome/browser/downloads/downloads.properties
create mode 100644 browser/chrome/browser/feeds/subscribe.properties
create mode 100644 browser/chrome/browser/places/bookmarkProperties.properties
create mode 100644 browser/chrome/browser/places/places.dtd
create mode 100644 browser/chrome/browser/places/places.properties
create mode 100644 browser/chrome/browser/safebrowsing/safebrowsing.properties
create mode 100644 browser/chrome/browser/search.properties
create mode 100644 browser/chrome/browser/shellservice.properties
create mode 100644 browser/chrome/browser/siteData.properties
create mode 100644 browser/chrome/browser/sitePermissions.properties
create mode 100644 browser/chrome/browser/syncSetup.properties
create mode 100644 browser/chrome/browser/tabbrowser.properties
create mode 100644 browser/chrome/browser/taskbar.properties
create mode 100644 browser/chrome/browser/translation.dtd
create mode 100644 browser/chrome/browser/translation.properties
create mode 100644 browser/chrome/browser/uiDensity.properties
create mode 100644 browser/chrome/browser/webrtcIndicator.properties
create mode 100644 browser/chrome/overrides/appstrings.properties
create mode 100644 browser/chrome/overrides/netError.dtd
create mode 100644 browser/crashreporter/crashreporter-override.ini
create mode 100644 browser/defaultagent/defaultagent_localized.ini
create mode 100644 browser/defines.inc
create mode 100644 browser/extensions/formautofill/formautofill.properties
create mode 100644 browser/extensions/report-site-issue/webcompat.properties
create mode 100644 browser/firefox-l10n.js
create mode 100644 browser/installer/custom.properties
create mode 100644 browser/installer/mui.properties
create mode 100644 browser/installer/nsisstrings.properties
create mode 100644 browser/installer/override.properties
create mode 100644 browser/pdfviewer/chrome.properties
create mode 100644 browser/pdfviewer/viewer.properties
create mode 100644 browser/profile/bookmarks.inc
create mode 100644 browser/updater/updater.ini
create mode 100644 calendar/README.txt
create mode 100644 calendar/calendar/calendar-context-menus.ftl
create mode 100644 calendar/calendar/calendar-delete-prompt.ftl
create mode 100644 calendar/calendar/calendar-editable-item.ftl
create mode 100644 calendar/calendar/calendar-event-dialog-reminder.ftl
create mode 100644 calendar/calendar/calendar-ics-file-dialog.ftl
create mode 100644 calendar/calendar/calendar-invitations-dialog.ftl
create mode 100644 calendar/calendar/calendar-itip-identity-dialog.ftl
create mode 100644 calendar/calendar/calendar-print.ftl
create mode 100644 calendar/calendar/calendar-summary-dialog.ftl
create mode 100644 calendar/calendar/calendar-uri-redirect-dialog.ftl
create mode 100644 calendar/calendar/calendar-widgets.ftl
create mode 100644 calendar/calendar/category-dialog.ftl
create mode 100644 calendar/calendar/preferences.ftl
create mode 100644 calendar/chrome/calendar/calendar-alarms.properties
create mode 100644 calendar/chrome/calendar/calendar-event-dialog-attendees.properties
create mode 100644 calendar/chrome/calendar/calendar-event-dialog.dtd
create mode 100644 calendar/chrome/calendar/calendar-event-dialog.properties
create mode 100644 calendar/chrome/calendar/calendar-extract.properties
create mode 100644 calendar/chrome/calendar/calendar-invitations-dialog.dtd
create mode 100644 calendar/chrome/calendar/calendar-invitations-dialog.properties
create mode 100644 calendar/chrome/calendar/calendar-occurrence-prompt.dtd
create mode 100644 calendar/chrome/calendar/calendar-occurrence-prompt.properties
create mode 100644 calendar/chrome/calendar/calendar.dtd
create mode 100644 calendar/chrome/calendar/calendar.properties
create mode 100644 calendar/chrome/calendar/calendarCreation.dtd
create mode 100644 calendar/chrome/calendar/calendarCreation.properties
create mode 100644 calendar/chrome/calendar/categories.properties
create mode 100644 calendar/chrome/calendar/dateFormat.properties
create mode 100644 calendar/chrome/calendar/dialogs/calendar-event-dialog-reminder.dtd
create mode 100644 calendar/chrome/calendar/global.dtd
create mode 100644 calendar/chrome/calendar/menuOverlay.dtd
create mode 100644 calendar/chrome/calendar/migration.dtd
create mode 100644 calendar/chrome/calendar/migration.properties
create mode 100644 calendar/chrome/calendar/provider-uninstall.dtd
create mode 100644 calendar/chrome/calendar/timezones.properties
create mode 100644 calendar/chrome/lightning/lightning-toolbar.dtd
create mode 100644 calendar/chrome/lightning/lightning.dtd
create mode 100644 calendar/chrome/lightning/lightning.properties
create mode 100644 calendar/lightning-l10n.js
create mode 100644 chat/accounts.dtd
create mode 100644 chat/accounts.properties
create mode 100644 chat/commands.properties
create mode 100644 chat/contacts.properties
create mode 100644 chat/conversations.properties
create mode 100644 chat/dateFormat.properties
create mode 100644 chat/facebook.properties
create mode 100644 chat/imtooltip.properties
create mode 100644 chat/irc.properties
create mode 100644 chat/logger.properties
create mode 100644 chat/matrix.properties
create mode 100644 chat/status.properties
create mode 100644 chat/twitter.properties
create mode 100644 chat/xmpp.properties
create mode 100644 chat/yahoo.properties
create mode 100644 devtools/client/aboutdebugging.ftl
create mode 100644 devtools/client/accessibility.ftl
create mode 100644 devtools/client/accessibility.properties
create mode 100644 devtools/client/animationinspector.properties
create mode 100644 devtools/client/application.ftl
create mode 100644 devtools/client/boxmodel.properties
create mode 100644 devtools/client/changes.properties
create mode 100644 devtools/client/compatibility.ftl
create mode 100644 devtools/client/components.properties
create mode 100644 devtools/client/debugger.properties
create mode 100644 devtools/client/device.properties
create mode 100644 devtools/client/dom.properties
create mode 100644 devtools/client/filterwidget.properties
create mode 100644 devtools/client/font-inspector.properties
create mode 100644 devtools/client/graphs.properties
create mode 100644 devtools/client/har.properties
create mode 100644 devtools/client/inspector.properties
create mode 100644 devtools/client/jit-optimizations.properties
create mode 100644 devtools/client/jsonview.properties
create mode 100644 devtools/client/layout.properties
create mode 100644 devtools/client/markers.properties
create mode 100644 devtools/client/memory.properties
create mode 100644 devtools/client/menus.properties
create mode 100644 devtools/client/netmonitor.properties
create mode 100644 devtools/client/network-throttling.properties
create mode 100644 devtools/client/performance.dtd
create mode 100644 devtools/client/performance.properties
create mode 100644 devtools/client/perftools.ftl
create mode 100644 devtools/client/responsive.properties
create mode 100644 devtools/client/shared.properties
create mode 100644 devtools/client/sourceeditor.dtd
create mode 100644 devtools/client/sourceeditor.properties
create mode 100644 devtools/client/startup.properties
create mode 100644 devtools/client/storage.dtd
create mode 100644 devtools/client/storage.ftl
create mode 100644 devtools/client/storage.properties
create mode 100644 devtools/client/styleeditor.ftl
create mode 100644 devtools/client/styleeditor.properties
create mode 100644 devtools/client/toolbox-options.ftl
create mode 100644 devtools/client/toolbox.properties
create mode 100644 devtools/client/tooltips.ftl
create mode 100644 devtools/client/webconsole.properties
create mode 100644 devtools/shared/accessibility.properties
create mode 100644 devtools/shared/debugger.properties
create mode 100644 devtools/shared/eyedropper.properties
create mode 100644 devtools/shared/highlighters.properties
create mode 100644 devtools/shared/screenshot.properties
create mode 100644 devtools/shared/shared.properties
create mode 100644 devtools/shared/styleinspector.properties
create mode 100644 devtools/startup/aboutDevTools.ftl
create mode 100644 devtools/startup/key-shortcuts.ftl
create mode 100644 devtools/startup/key-shortcuts.properties
create mode 100644 devtools/startup/startup.properties
create mode 100644 dom/chrome/accessibility/AccessFu.properties
create mode 100644 dom/chrome/accessibility/mac/accessible.properties
create mode 100644 dom/chrome/accessibility/unix/accessible.properties
create mode 100644 dom/chrome/accessibility/win/accessible.properties
create mode 100644 dom/chrome/appstrings.properties
create mode 100644 dom/chrome/dom/dom.properties
create mode 100644 dom/chrome/global-strres.properties
create mode 100644 dom/chrome/global.dtd
create mode 100644 dom/chrome/layout/HtmlForm.properties
create mode 100644 dom/chrome/layout/MediaDocument.properties
create mode 100644 dom/chrome/layout/css.properties
create mode 100644 dom/chrome/layout/htmlparser.properties
create mode 100644 dom/chrome/layout/layout_errors.properties
create mode 100644 dom/chrome/layout/printing.properties
create mode 100644 dom/chrome/layout/xmlparser.properties
create mode 100644 dom/chrome/layout/xul.properties
create mode 100644 dom/chrome/mathml/mathml.properties
create mode 100644 dom/chrome/netError.dtd
create mode 100644 dom/chrome/netErrorApp.dtd
create mode 100644 dom/chrome/nsWebBrowserPersist.properties
create mode 100644 dom/chrome/plugins.properties
create mode 100644 dom/chrome/security/caps.properties
create mode 100644 dom/chrome/security/csp.properties
create mode 100644 dom/chrome/security/security.properties
create mode 100644 dom/chrome/svg/svg.properties
create mode 100644 dom/chrome/xml/prettyprint.dtd
create mode 100644 dom/chrome/xslt/xslt.properties
create mode 100644 dom/dom/media.ftl
create mode 100644 editor/ui/chrome/region/region.properties
create mode 100644 extensions/spellcheck/hunspell/README_en_US.txt
create mode 100644 extensions/spellcheck/hunspell/README_mozilla.txt
create mode 100644 extensions/spellcheck/hunspell/dictionary-sources/5-mozilla-added
create mode 100644 extensions/spellcheck/hunspell/dictionary-sources/5-mozilla-removed
create mode 100644 extensions/spellcheck/hunspell/dictionary-sources/5-mozilla-specific
create mode 100644 extensions/spellcheck/hunspell/dictionary-sources/README
create mode 100755 extensions/spellcheck/hunspell/dictionary-sources/edit-dictionary
create mode 100755 extensions/spellcheck/hunspell/dictionary-sources/install-new-dict
create mode 100755 extensions/spellcheck/hunspell/dictionary-sources/make-new-dict
create mode 100644 extensions/spellcheck/hunspell/dictionary-sources/mozilla-specific.txt
create mode 100644 extensions/spellcheck/hunspell/dictionary-sources/orig/README_en_US-custom.txt
create mode 100644 extensions/spellcheck/hunspell/dictionary-sources/orig/en_US-custom.aff
create mode 100644 extensions/spellcheck/hunspell/dictionary-sources/orig/en_US-custom.dic
create mode 100644 extensions/spellcheck/hunspell/en-US.aff
create mode 100644 extensions/spellcheck/hunspell/en-US.dic
create mode 100644 mail/all-l10n.js
create mode 100644 mail/branding/thunderbird/brand.dtd
create mode 100644 mail/branding/thunderbird/brand.ftl
create mode 100644 mail/branding/thunderbird/brand.properties
create mode 100644 mail/browser/appExtensionFields.ftl
create mode 100644 mail/chrome/communicator/utilityOverlay.dtd
create mode 100644 mail/chrome/messenger-mapi/mapi.properties
create mode 100644 mail/chrome/messenger-newsblog/am-newsblog.dtd
create mode 100644 mail/chrome/messenger-newsblog/feed-subscriptions.dtd
create mode 100644 mail/chrome/messenger-newsblog/newsblog.properties
create mode 100644 mail/chrome/messenger-region/region.properties
create mode 100644 mail/chrome/messenger-smime/certFetchingStatus.dtd
create mode 100644 mail/chrome/messenger-smime/msgCompSMIMEOverlay.dtd
create mode 100644 mail/chrome/messenger-smime/msgCompSecurityInfo.dtd
create mode 100644 mail/chrome/messenger-smime/msgCompSecurityInfo.properties
create mode 100644 mail/chrome/messenger-smime/msgReadSMIMEOverlay.properties
create mode 100644 mail/chrome/messenger-smime/msgReadSecurityInfo.dtd
create mode 100644 mail/chrome/messenger-smime/msgSecurityInfo.properties
create mode 100644 mail/chrome/messenger/AccountManager.dtd
create mode 100644 mail/chrome/messenger/AccountWizard.dtd
create mode 100644 mail/chrome/messenger/CustomHeaders.dtd
create mode 100644 mail/chrome/messenger/FilterEditor.dtd
create mode 100644 mail/chrome/messenger/FilterListDialog.dtd
create mode 100644 mail/chrome/messenger/SearchDialog.dtd
create mode 100644 mail/chrome/messenger/aboutDialog.dtd
create mode 100644 mail/chrome/messenger/aboutDownloads.dtd
create mode 100644 mail/chrome/messenger/aboutRights.properties
create mode 100644 mail/chrome/messenger/aboutSupportMail.properties
create mode 100644 mail/chrome/messenger/accountCreationModel.properties
create mode 100644 mail/chrome/messenger/accountCreationUtil.properties
create mode 100644 mail/chrome/messenger/activity.dtd
create mode 100644 mail/chrome/messenger/activity.properties
create mode 100644 mail/chrome/messenger/addbuddy.dtd
create mode 100644 mail/chrome/messenger/addons.properties
create mode 100644 mail/chrome/messenger/addressbook/abAddressBookNameDialog.dtd
create mode 100644 mail/chrome/messenger/addressbook/abCard.dtd
create mode 100644 mail/chrome/messenger/addressbook/abContactsPanel.dtd
create mode 100644 mail/chrome/messenger/addressbook/abMailListDialog.dtd
create mode 100644 mail/chrome/messenger/addressbook/abMainWindow.dtd
create mode 100644 mail/chrome/messenger/addressbook/abNewCardDialog.dtd
create mode 100644 mail/chrome/messenger/addressbook/abResultsPane.dtd
create mode 100644 mail/chrome/messenger/addressbook/addressBook.properties
create mode 100644 mail/chrome/messenger/addressbook/ldapAutoCompErrs.properties
create mode 100644 mail/chrome/messenger/addressbook/pref-directory-add.dtd
create mode 100644 mail/chrome/messenger/addressbook/pref-directory.dtd
create mode 100644 mail/chrome/messenger/addressbook/replicationProgress.properties
create mode 100644 mail/chrome/messenger/am-addressing.dtd
create mode 100644 mail/chrome/messenger/am-advanced.dtd
create mode 100644 mail/chrome/messenger/am-archiveoptions.dtd
create mode 100644 mail/chrome/messenger/am-copies.dtd
create mode 100644 mail/chrome/messenger/am-e2e.properties
create mode 100644 mail/chrome/messenger/am-identities-list.dtd
create mode 100644 mail/chrome/messenger/am-identity-edit.dtd
create mode 100644 mail/chrome/messenger/am-im.dtd
create mode 100644 mail/chrome/messenger/am-junk.dtd
create mode 100644 mail/chrome/messenger/am-main.dtd
create mode 100644 mail/chrome/messenger/am-mdn.dtd
create mode 100644 mail/chrome/messenger/am-mdn.properties
create mode 100644 mail/chrome/messenger/am-offline.dtd
create mode 100644 mail/chrome/messenger/am-server-advanced.dtd
create mode 100644 mail/chrome/messenger/am-server-top.dtd
create mode 100644 mail/chrome/messenger/am-serverwithnoidentities.dtd
create mode 100644 mail/chrome/messenger/am-smime.dtd
create mode 100644 mail/chrome/messenger/am-smime.properties
create mode 100644 mail/chrome/messenger/app-extension-fields.properties
create mode 100644 mail/chrome/messenger/appUpdate.properties
create mode 100644 mail/chrome/messenger/appleMailImportMsgs.properties
create mode 100644 mail/chrome/messenger/baseMenuOverlay.dtd
create mode 100644 mail/chrome/messenger/beckyImportMsgs.properties
create mode 100644 mail/chrome/messenger/charsetTitles.properties
create mode 100644 mail/chrome/messenger/chat.dtd
create mode 100644 mail/chrome/messenger/chat.properties
create mode 100644 mail/chrome/messenger/configEditorOverlay.dtd
create mode 100644 mail/chrome/messenger/converterDialog.dtd
create mode 100644 mail/chrome/messenger/converterDialog.properties
create mode 100644 mail/chrome/messenger/custom.properties
create mode 100644 mail/chrome/messenger/customizeToolbar.dtd
create mode 100644 mail/chrome/messenger/customizeToolbar.properties
create mode 100644 mail/chrome/messenger/devtools/dbgserver.dtd
create mode 100644 mail/chrome/messenger/devtools/dbgserver.properties
create mode 100644 mail/chrome/messenger/downloadheaders.dtd
create mode 100644 mail/chrome/messenger/editContactOverlay.dtd
create mode 100644 mail/chrome/messenger/editContactOverlay.properties
create mode 100644 mail/chrome/messenger/fieldMapImport.dtd
create mode 100644 mail/chrome/messenger/filter.properties
create mode 100644 mail/chrome/messenger/folderProps.dtd
create mode 100644 mail/chrome/messenger/folderWidgets.properties
create mode 100644 mail/chrome/messenger/folderpane.dtd
create mode 100644 mail/chrome/messenger/gloda.properties
create mode 100644 mail/chrome/messenger/glodaComplete.properties
create mode 100644 mail/chrome/messenger/glodaFacetView.dtd
create mode 100644 mail/chrome/messenger/glodaFacetView.properties
create mode 100644 mail/chrome/messenger/imAccountWizard.dtd
create mode 100644 mail/chrome/messenger/imAccounts.properties
create mode 100644 mail/chrome/messenger/imapMsgs.properties
create mode 100644 mail/chrome/messenger/importDialog.dtd
create mode 100644 mail/chrome/messenger/importMsgs.properties
create mode 100644 mail/chrome/messenger/joinChat.dtd
create mode 100644 mail/chrome/messenger/junkLog.dtd
create mode 100644 mail/chrome/messenger/junkMailInfo.dtd
create mode 100644 mail/chrome/messenger/localMsgs.properties
create mode 100644 mail/chrome/messenger/mailEditorOverlay.dtd
create mode 100644 mail/chrome/messenger/mailOverlay.dtd
create mode 100644 mail/chrome/messenger/mailViewList.dtd
create mode 100644 mail/chrome/messenger/mailViewSetup.dtd
create mode 100644 mail/chrome/messenger/mailviews.properties
create mode 100644 mail/chrome/messenger/markByDate.dtd
create mode 100644 mail/chrome/messenger/messenger.dtd
create mode 100644 mail/chrome/messenger/messenger.properties
create mode 100644 mail/chrome/messenger/messengercompose/EdAdvancedEdit.dtd
create mode 100644 mail/chrome/messenger/messengercompose/EdColorPicker.dtd
create mode 100644 mail/chrome/messenger/messengercompose/EdConvertToTable.dtd
create mode 100644 mail/chrome/messenger/messengercompose/EdDialogOverlay.dtd
create mode 100644 mail/chrome/messenger/messengercompose/EdNamedAnchorProperties.dtd
create mode 100644 mail/chrome/messenger/messengercompose/EditorColorProperties.dtd
create mode 100644 mail/chrome/messenger/messengercompose/EditorHLineProperties.dtd
create mode 100644 mail/chrome/messenger/messengercompose/EditorImageProperties.dtd
create mode 100644 mail/chrome/messenger/messengercompose/EditorInsertChars.dtd
create mode 100644 mail/chrome/messenger/messengercompose/EditorInsertMath.dtd
create mode 100644 mail/chrome/messenger/messengercompose/EditorInsertSource.dtd
create mode 100644 mail/chrome/messenger/messengercompose/EditorInsertTOC.dtd
create mode 100644 mail/chrome/messenger/messengercompose/EditorInsertTable.dtd
create mode 100644 mail/chrome/messenger/messengercompose/EditorLinkProperties.dtd
create mode 100644 mail/chrome/messenger/messengercompose/EditorListProperties.dtd
create mode 100644 mail/chrome/messenger/messengercompose/EditorPersonalDictionary.dtd
create mode 100644 mail/chrome/messenger/messengercompose/EditorReplace.dtd
create mode 100644 mail/chrome/messenger/messengercompose/EditorSpellCheck.dtd
create mode 100644 mail/chrome/messenger/messengercompose/EditorTableProperties.dtd
create mode 100644 mail/chrome/messenger/messengercompose/askSendFormat.dtd
create mode 100644 mail/chrome/messenger/messengercompose/askSendFormat.properties
create mode 100644 mail/chrome/messenger/messengercompose/composeMsgs.properties
create mode 100644 mail/chrome/messenger/messengercompose/editor.properties
create mode 100644 mail/chrome/messenger/messengercompose/editorOverlay.dtd
create mode 100644 mail/chrome/messenger/messengercompose/mailComposeEditorOverlay.dtd
create mode 100644 mail/chrome/messenger/messengercompose/messengercompose.dtd
create mode 100644 mail/chrome/messenger/messengercompose/sendProgress.dtd
create mode 100644 mail/chrome/messenger/messengercompose/sendProgress.properties
create mode 100644 mail/chrome/messenger/migration/migration.dtd
create mode 100644 mail/chrome/messenger/migration/migration.properties
create mode 100644 mail/chrome/messenger/mime.properties
create mode 100644 mail/chrome/messenger/mimeheader.properties
create mode 100644 mail/chrome/messenger/morkImportMsgs.properties
create mode 100644 mail/chrome/messenger/msgAccountCentral.dtd
create mode 100644 mail/chrome/messenger/msgHdrViewOverlay.dtd
create mode 100644 mail/chrome/messenger/msgSynchronize.dtd
create mode 100644 mail/chrome/messenger/msgViewPickerOverlay.dtd
create mode 100644 mail/chrome/messenger/msgmdn.properties
create mode 100644 mail/chrome/messenger/multimessageview.dtd
create mode 100644 mail/chrome/messenger/multimessageview.properties
create mode 100644 mail/chrome/messenger/newFolderDialog.dtd
create mode 100644 mail/chrome/messenger/newmailaccount/accountProvisioner.dtd
create mode 100644 mail/chrome/messenger/newmailaccount/accountProvisioner.properties
create mode 100644 mail/chrome/messenger/news.properties
create mode 100644 mail/chrome/messenger/newsError.dtd
create mode 100644 mail/chrome/messenger/offline.properties
create mode 100644 mail/chrome/messenger/offlineStartup.properties
create mode 100644 mail/chrome/messenger/outlookImportMsgs.properties
create mode 100644 mail/chrome/messenger/pgpmime.properties
create mode 100644 mail/chrome/messenger/preferences/applicationManager.properties
create mode 100644 mail/chrome/messenger/preferences/applications.properties
create mode 100644 mail/chrome/messenger/preferences/messagestyle.properties
create mode 100644 mail/chrome/messenger/preferences/preferences.properties
create mode 100644 mail/chrome/messenger/prefs.properties
create mode 100644 mail/chrome/messenger/quickFilterBar.dtd
create mode 100644 mail/chrome/messenger/removeAccount.dtd
create mode 100644 mail/chrome/messenger/removeAccount.properties
create mode 100644 mail/chrome/messenger/renameFolderDialog.dtd
create mode 100644 mail/chrome/messenger/sanitize.dtd
create mode 100644 mail/chrome/messenger/seamonkeyImportMsgs.properties
create mode 100644 mail/chrome/messenger/search-attributes.properties
create mode 100644 mail/chrome/messenger/search-operators.properties
create mode 100644 mail/chrome/messenger/search.properties
create mode 100644 mail/chrome/messenger/searchTermOverlay.dtd
create mode 100644 mail/chrome/messenger/shutdownWindow.properties
create mode 100644 mail/chrome/messenger/smime.properties
create mode 100644 mail/chrome/messenger/smtpEditOverlay.dtd
create mode 100644 mail/chrome/messenger/subscribe.dtd
create mode 100644 mail/chrome/messenger/subscribe.properties
create mode 100644 mail/chrome/messenger/tabmail.dtd
create mode 100644 mail/chrome/messenger/taskbar.properties
create mode 100644 mail/chrome/messenger/telemetry.properties
create mode 100644 mail/chrome/messenger/templateUtils.properties
create mode 100644 mail/chrome/messenger/textImportMsgs.properties
create mode 100644 mail/chrome/messenger/vCardImportMsgs.properties
create mode 100644 mail/chrome/messenger/viewLog.dtd
create mode 100644 mail/chrome/messenger/viewSource.dtd
create mode 100644 mail/chrome/messenger/viewSource.properties
create mode 100644 mail/chrome/messenger/viewZoomOverlay.dtd
create mode 100644 mail/chrome/messenger/virtualFolderListDialog.dtd
create mode 100644 mail/chrome/messenger/virtualFolderProperties.dtd
create mode 100644 mail/chrome/messenger/wmImportMsgs.properties
create mode 100644 mail/chrome/mozldap/ldap.properties
create mode 100644 mail/chrome/overrides/netError.dtd
create mode 100644 mail/chrome/overrides/profileDowngrade.dtd
create mode 100644 mail/defines.inc
create mode 100644 mail/installer/custom.properties
create mode 100644 mail/installer/mui.properties
create mode 100644 mail/installer/override.properties
create mode 100644 mail/messenger/aboutAddonsExtra.ftl
create mode 100644 mail/messenger/aboutProfilesExtra.ftl
create mode 100644 mail/messenger/aboutRights.ftl
create mode 100644 mail/messenger/aboutSupportCalendar.ftl
create mode 100644 mail/messenger/aboutSupportMail.ftl
create mode 100644 mail/messenger/accountCentral.ftl
create mode 100644 mail/messenger/accountManager.ftl
create mode 100644 mail/messenger/accountProvisioner.ftl
create mode 100644 mail/messenger/accountcreation/accountHub.ftl
create mode 100644 mail/messenger/accountcreation/accountSetup.ftl
create mode 100644 mail/messenger/addressbook/abCardDAVDialog.ftl
create mode 100644 mail/messenger/addressbook/abCardDAVProperties.ftl
create mode 100644 mail/messenger/addressbook/aboutAddressBook.ftl
create mode 100644 mail/messenger/addressbook/fieldMapImport.ftl
create mode 100644 mail/messenger/chat-verifySession.ftl
create mode 100644 mail/messenger/chat.ftl
create mode 100644 mail/messenger/compactFoldersDialog.ftl
create mode 100644 mail/messenger/exportDialog.ftl
create mode 100644 mail/messenger/importDialog.ftl
create mode 100644 mail/messenger/menubar.ftl
create mode 100644 mail/messenger/messenger.ftl
create mode 100644 mail/messenger/messengercompose/messengercompose.ftl
create mode 100644 mail/messenger/migration.ftl
create mode 100644 mail/messenger/newInstall.ftl
create mode 100644 mail/messenger/newInstallPage.ftl
create mode 100644 mail/messenger/openpgp/backupKeyPassword.ftl
create mode 100644 mail/messenger/openpgp/changeExpiryDlg.ftl
create mode 100644 mail/messenger/openpgp/composeKeyStatus.ftl
create mode 100644 mail/messenger/openpgp/keyWizard.ftl
create mode 100644 mail/messenger/openpgp/msgReadStatus.ftl
create mode 100644 mail/messenger/openpgp/oneRecipientStatus.ftl
create mode 100644 mail/messenger/openpgp/openpgp-frontend.ftl
create mode 100644 mail/messenger/openpgp/openpgp.ftl
create mode 100644 mail/messenger/otr/add-finger.ftl
create mode 100644 mail/messenger/otr/am-im-otr.ftl
create mode 100644 mail/messenger/otr/auth.ftl
create mode 100644 mail/messenger/otr/chat.ftl
create mode 100644 mail/messenger/otr/finger-sync.ftl
create mode 100644 mail/messenger/otr/finger.ftl
create mode 100644 mail/messenger/otr/otr.ftl
create mode 100644 mail/messenger/otr/otrUI.ftl
create mode 100644 mail/messenger/policies/aboutPolicies.ftl
create mode 100644 mail/messenger/policies/policies-descriptions.ftl
create mode 100644 mail/messenger/preferences/am-copies.ftl
create mode 100644 mail/messenger/preferences/am-im.ftl
create mode 100644 mail/messenger/preferences/application-manager.ftl
create mode 100644 mail/messenger/preferences/attachment-reminder.ftl
create mode 100644 mail/messenger/preferences/colors.ftl
create mode 100644 mail/messenger/preferences/connection.ftl
create mode 100644 mail/messenger/preferences/cookies.ftl
create mode 100644 mail/messenger/preferences/dock-options.ftl
create mode 100644 mail/messenger/preferences/fonts.ftl
create mode 100644 mail/messenger/preferences/languages.ftl
create mode 100644 mail/messenger/preferences/new-tag.ftl
create mode 100644 mail/messenger/preferences/notifications.ftl
create mode 100644 mail/messenger/preferences/offline.ftl
create mode 100644 mail/messenger/preferences/passwordManager.ftl
create mode 100644 mail/messenger/preferences/permissions.ftl
create mode 100644 mail/messenger/preferences/preferences.ftl
create mode 100644 mail/messenger/preferences/receipts.ftl
create mode 100644 mail/messenger/preferences/sendoptions.ftl
create mode 100644 mail/messenger/preferences/system-integration.ftl
create mode 100644 mail/messenger/troubleshootMode.ftl
create mode 100644 mail/updater/updater.ini
create mode 100644 mobile/android/chrome/browser.properties
create mode 100644 mobile/android/chrome/config.dtd
create mode 100644 mobile/android/chrome/config.properties
create mode 100644 mobile/android/chrome/passwordmgr.properties
create mode 100644 mobile/android/defines.inc
create mode 100644 mobile/android/mobile-l10n.js
create mode 100644 mobile/chrome/region.properties
create mode 100644 mobile/overrides/appstrings.properties
create mode 100644 mobile/overrides/netError.dtd
create mode 100644 netwerk/necko.properties
create mode 100644 other-licenses/branding/sunbird/brand.dtd
create mode 100644 other-licenses/branding/sunbird/brand.properties
create mode 100644 security/manager/chrome/pipnss/nsserrors.properties
create mode 100644 security/manager/chrome/pipnss/pipnss.properties
create mode 100644 security/manager/chrome/pippki/pippki.properties
create mode 100644 security/manager/security/certificates/certManager.ftl
create mode 100644 security/manager/security/certificates/deviceManager.ftl
create mode 100644 security/manager/security/pippki/pippki.ftl
create mode 100644 services/sync/sync.properties
create mode 100644 suite/branding/seamonkey/brand.dtd
create mode 100644 suite/branding/seamonkey/brand.properties
create mode 100644 suite/chatzilla/chrome/about.dtd
create mode 100644 suite/chatzilla/chrome/browserOverlay.dtd
create mode 100644 suite/chatzilla/chrome/channels.dtd
create mode 100644 suite/chatzilla/chrome/chatzilla.dtd
create mode 100644 suite/chatzilla/chrome/chatzilla.properties
create mode 100644 suite/chatzilla/chrome/chatzillaOverlay.dtd
create mode 100644 suite/chatzilla/chrome/config.dtd
create mode 100644 suite/chatzilla/chrome/install-plugin.dtd
create mode 100644 suite/chatzilla/chrome/networks.dtd
create mode 100644 suite/chatzilla/chrome/networks.properties
create mode 100644 suite/chatzilla/chrome/pref-irc.dtd
create mode 100644 suite/chatzilla/defines.inc
create mode 100644 suite/chrome/branding/aboutRights.dtd
create mode 100644 suite/chrome/branding/aboutRights.properties
create mode 100644 suite/chrome/browser/linkToolbar.dtd
create mode 100644 suite/chrome/browser/mailNavigatorOverlay.dtd
create mode 100644 suite/chrome/browser/metadata.dtd
create mode 100644 suite/chrome/browser/metadata.properties
create mode 100644 suite/chrome/browser/navigator.dtd
create mode 100644 suite/chrome/browser/navigator.properties
create mode 100644 suite/chrome/browser/navigatorOverlay.dtd
create mode 100644 suite/chrome/browser/pageInfo.dtd
create mode 100644 suite/chrome/browser/pageInfo.properties
create mode 100644 suite/chrome/browser/region.properties
create mode 100644 suite/chrome/browser/tabbrowser.dtd
create mode 100644 suite/chrome/browser/tabbrowser.properties
create mode 100644 suite/chrome/browser/taskbar.properties
create mode 100644 suite/chrome/browser/webDeveloper.dtd
create mode 100644 suite/chrome/common/about.dtd
create mode 100644 suite/chrome/common/aboutPrivateBrowsing.dtd
create mode 100644 suite/chrome/common/aboutSessionRestore.dtd
create mode 100644 suite/chrome/common/aboutSyncTabs.dtd
create mode 100644 suite/chrome/common/askViewZoom.dtd
create mode 100644 suite/chrome/common/certError.dtd
create mode 100644 suite/chrome/common/console/console.dtd
create mode 100644 suite/chrome/common/console/console.properties
create mode 100644 suite/chrome/common/contentAreaCommands.dtd
create mode 100644 suite/chrome/common/contentAreaCommands.properties
create mode 100644 suite/chrome/common/customizeToolbar.dtd
create mode 100644 suite/chrome/common/customizeToolbar.properties
create mode 100644 suite/chrome/common/dataman/dataman.dtd
create mode 100644 suite/chrome/common/dataman/dataman.properties
create mode 100644 suite/chrome/common/datetimepicker.dtd
create mode 100644 suite/chrome/common/defaultClientDialog.dtd
create mode 100644 suite/chrome/common/downloads/downloadmanager.dtd
create mode 100644 suite/chrome/common/downloads/downloadmanager.properties
create mode 100644 suite/chrome/common/downloads/progressDialog.dtd
create mode 100644 suite/chrome/common/feeds/subscribe.dtd
create mode 100644 suite/chrome/common/feeds/subscribe.properties
create mode 100644 suite/chrome/common/gopherAddon.dtd
create mode 100644 suite/chrome/common/helpviewer/help.dtd
create mode 100644 suite/chrome/common/helpviewer/help.properties
create mode 100644 suite/chrome/common/helpviewer/help/help-toc.rdf
create mode 100644 suite/chrome/common/helpviewer/help/welcome.xhtml
create mode 100644 suite/chrome/common/migration/migration.dtd
create mode 100644 suite/chrome/common/migration/migration.properties
create mode 100644 suite/chrome/common/notification.dtd
create mode 100644 suite/chrome/common/notification.properties
create mode 100644 suite/chrome/common/openLocation.dtd
create mode 100644 suite/chrome/common/openLocation.properties
create mode 100644 suite/chrome/common/permissions/cookieViewer.dtd
create mode 100644 suite/chrome/common/permissions/cookieViewer.properties
create mode 100644 suite/chrome/common/permissions/permissionsManager.dtd
create mode 100644 suite/chrome/common/permissions/permissionsManager.properties
create mode 100644 suite/chrome/common/places/bookmarkProperties.properties
create mode 100644 suite/chrome/common/places/editBookmarkOverlay.dtd
create mode 100644 suite/chrome/common/places/places.dtd
create mode 100644 suite/chrome/common/places/places.properties
create mode 100644 suite/chrome/common/pref/pref-advanced.dtd
create mode 100644 suite/chrome/common/pref/pref-appearance.dtd
create mode 100644 suite/chrome/common/pref/pref-applicationManager.dtd
create mode 100644 suite/chrome/common/pref/pref-applicationManager.properties
create mode 100644 suite/chrome/common/pref/pref-applications.dtd
create mode 100644 suite/chrome/common/pref/pref-applications.properties
create mode 100644 suite/chrome/common/pref/pref-cache.dtd
create mode 100644 suite/chrome/common/pref/pref-certs.dtd
create mode 100644 suite/chrome/common/pref/pref-colors.dtd
create mode 100644 suite/chrome/common/pref/pref-content.dtd
create mode 100644 suite/chrome/common/pref/pref-cookies.dtd
create mode 100644 suite/chrome/common/pref/pref-debugging.dtd
create mode 100644 suite/chrome/common/pref/pref-download.dtd
create mode 100644 suite/chrome/common/pref/pref-findasyoutype.dtd
create mode 100644 suite/chrome/common/pref/pref-fonts.dtd
create mode 100644 suite/chrome/common/pref/pref-history.dtd
create mode 100644 suite/chrome/common/pref/pref-http.dtd
create mode 100644 suite/chrome/common/pref/pref-images.dtd
create mode 100644 suite/chrome/common/pref/pref-keynav.dtd
create mode 100644 suite/chrome/common/pref/pref-languages.dtd
create mode 100644 suite/chrome/common/pref/pref-languages.properties
create mode 100644 suite/chrome/common/pref/pref-links.dtd
create mode 100644 suite/chrome/common/pref/pref-locationbar.dtd
create mode 100644 suite/chrome/common/pref/pref-masterpass.dtd
create mode 100644 suite/chrome/common/pref/pref-media.dtd
create mode 100644 suite/chrome/common/pref/pref-mousewheel.dtd
create mode 100644 suite/chrome/common/pref/pref-navigator.dtd
create mode 100644 suite/chrome/common/pref/pref-offlineapps.dtd
create mode 100644 suite/chrome/common/pref/pref-passwords.dtd
create mode 100644 suite/chrome/common/pref/pref-popups.dtd
create mode 100644 suite/chrome/common/pref/pref-privatedata.dtd
create mode 100644 suite/chrome/common/pref/pref-proxies-advanced.dtd
create mode 100644 suite/chrome/common/pref/pref-proxies.dtd
create mode 100644 suite/chrome/common/pref/pref-scripts.dtd
create mode 100644 suite/chrome/common/pref/pref-search.dtd
create mode 100644 suite/chrome/common/pref/pref-security.dtd
create mode 100644 suite/chrome/common/pref/pref-smartupdate.dtd
create mode 100644 suite/chrome/common/pref/pref-spelling.dtd
create mode 100644 suite/chrome/common/pref/pref-ssl.dtd
create mode 100644 suite/chrome/common/pref/pref-sync.dtd
create mode 100644 suite/chrome/common/pref/pref-tabs.dtd
create mode 100644 suite/chrome/common/pref/preferences.dtd
create mode 100644 suite/chrome/common/pref/prefutilities.dtd
create mode 100644 suite/chrome/common/pref/prefutilities.properties
create mode 100644 suite/chrome/common/printPreview.dtd
create mode 100644 suite/chrome/common/profile/profileSelection.dtd
create mode 100644 suite/chrome/common/profile/profileSelection.properties
create mode 100644 suite/chrome/common/quitDialog.properties
create mode 100644 suite/chrome/common/region.properties
create mode 100644 suite/chrome/common/safeBrowsing.dtd
create mode 100644 suite/chrome/common/safeMode.dtd
create mode 100644 suite/chrome/common/sanitize.dtd
create mode 100644 suite/chrome/common/sanitize.properties
create mode 100644 suite/chrome/common/search/engineManager.dtd
create mode 100644 suite/chrome/common/search/engineManager.properties
create mode 100644 suite/chrome/common/search/search-panel.dtd
create mode 100644 suite/chrome/common/search/search.properties
create mode 100644 suite/chrome/common/search/searchbar.dtd
create mode 100644 suite/chrome/common/setDesktopBackground.dtd
create mode 100644 suite/chrome/common/shellservice.properties
create mode 100644 suite/chrome/common/sidebar/customize.dtd
create mode 100644 suite/chrome/common/sidebar/preview.dtd
create mode 100644 suite/chrome/common/sidebar/sidebar.properties
create mode 100644 suite/chrome/common/sidebar/sidebarOverlay.dtd
create mode 100644 suite/chrome/common/sitePermissions.properties
create mode 100644 suite/chrome/common/sync/syncBrand.dtd
create mode 100644 suite/chrome/common/sync/syncGenericChange.properties
create mode 100644 suite/chrome/common/sync/syncKey.dtd
create mode 100644 suite/chrome/common/sync/syncQuota.dtd
create mode 100644 suite/chrome/common/sync/syncQuota.properties
create mode 100644 suite/chrome/common/sync/syncSetup.dtd
create mode 100644 suite/chrome/common/sync/syncSetup.properties
create mode 100644 suite/chrome/common/tasksOverlay.dtd
create mode 100644 suite/chrome/common/typeaheadfind.properties
create mode 100644 suite/chrome/common/utilityOverlay.dtd
create mode 100644 suite/chrome/common/utilityOverlay.properties
create mode 100644 suite/chrome/common/viewApplyThemeOverlay.dtd
create mode 100644 suite/chrome/common/viewApplyThemeOverlay.properties
create mode 100644 suite/chrome/common/viewZoomOverlay.dtd
create mode 100644 suite/chrome/common/viewZoomOverlay.properties
create mode 100644 suite/chrome/editor/dialogs/EdAdvancedEdit.dtd
create mode 100644 suite/chrome/editor/dialogs/EdColorPicker.dtd
create mode 100644 suite/chrome/editor/dialogs/EdConvertToTable.dtd
create mode 100644 suite/chrome/editor/dialogs/EdDialogOverlay.dtd
create mode 100644 suite/chrome/editor/dialogs/EdNamedAnchorProperties.dtd
create mode 100644 suite/chrome/editor/dialogs/EditConflict.dtd
create mode 100644 suite/chrome/editor/dialogs/EditorButtonProperties.dtd
create mode 100644 suite/chrome/editor/dialogs/EditorColorProperties.dtd
create mode 100644 suite/chrome/editor/dialogs/EditorFieldSetProperties.dtd
create mode 100644 suite/chrome/editor/dialogs/EditorFormProperties.dtd
create mode 100644 suite/chrome/editor/dialogs/EditorHLineProperties.dtd
create mode 100644 suite/chrome/editor/dialogs/EditorImageProperties.dtd
create mode 100644 suite/chrome/editor/dialogs/EditorInputProperties.dtd
create mode 100644 suite/chrome/editor/dialogs/EditorInsertChars.dtd
create mode 100644 suite/chrome/editor/dialogs/EditorInsertMath.dtd
create mode 100644 suite/chrome/editor/dialogs/EditorInsertSource.dtd
create mode 100644 suite/chrome/editor/dialogs/EditorInsertTOC.dtd
create mode 100644 suite/chrome/editor/dialogs/EditorInsertTable.dtd
create mode 100644 suite/chrome/editor/dialogs/EditorLabelProperties.dtd
create mode 100644 suite/chrome/editor/dialogs/EditorLinkProperties.dtd
create mode 100644 suite/chrome/editor/dialogs/EditorListProperties.dtd
create mode 100644 suite/chrome/editor/dialogs/EditorPageProperties.dtd
create mode 100644 suite/chrome/editor/dialogs/EditorPersonalDictionary.dtd
create mode 100644 suite/chrome/editor/dialogs/EditorPublish.dtd
create mode 100644 suite/chrome/editor/dialogs/EditorPublishProgress.dtd
create mode 100644 suite/chrome/editor/dialogs/EditorReplace.dtd
create mode 100644 suite/chrome/editor/dialogs/EditorSaveAsCharset.dtd
create mode 100644 suite/chrome/editor/dialogs/EditorSelectProperties.dtd
create mode 100644 suite/chrome/editor/dialogs/EditorSnapToGrid.dtd
create mode 100644 suite/chrome/editor/dialogs/EditorSpellCheck.dtd
create mode 100644 suite/chrome/editor/dialogs/EditorTableProperties.dtd
create mode 100644 suite/chrome/editor/dialogs/EditorTextAreaProperties.dtd
create mode 100644 suite/chrome/editor/editingOverlay.dtd
create mode 100644 suite/chrome/editor/editor.dtd
create mode 100644 suite/chrome/editor/editor.properties
create mode 100644 suite/chrome/editor/editorOverlay.dtd
create mode 100644 suite/chrome/editor/editorSmileyOverlay.dtd
create mode 100644 suite/chrome/editor/prefs/editorPrefsOverlay.dtd
create mode 100644 suite/chrome/editor/prefs/pref-composer.dtd
create mode 100644 suite/chrome/editor/prefs/pref-editing.dtd
create mode 100644 suite/chrome/mailnews/CustomHeaders.dtd
create mode 100644 suite/chrome/mailnews/FilterEditor.dtd
create mode 100644 suite/chrome/mailnews/FilterListDialog.dtd
create mode 100644 suite/chrome/mailnews/SearchDialog.dtd
create mode 100644 suite/chrome/mailnews/addressbook/abAddressBookNameDialog.dtd
create mode 100644 suite/chrome/mailnews/addressbook/abCardOverlay.dtd
create mode 100644 suite/chrome/mailnews/addressbook/abMailListDialog.dtd
create mode 100644 suite/chrome/mailnews/addressbook/abMainWindow.dtd
create mode 100644 suite/chrome/mailnews/addressbook/abNewCardDialog.dtd
create mode 100644 suite/chrome/mailnews/addressbook/abResultsPaneOverlay.dtd
create mode 100644 suite/chrome/mailnews/addressbook/abSelectAddressesDialog.dtd
create mode 100644 suite/chrome/mailnews/addressbook/addressBook.properties
create mode 100644 suite/chrome/mailnews/addressbook/ldapAutoCompErrs.properties
create mode 100644 suite/chrome/mailnews/appleMailImportMsgs.properties
create mode 100644 suite/chrome/mailnews/beckyImportMsgs.properties
create mode 100644 suite/chrome/mailnews/charsetTitles.properties
create mode 100644 suite/chrome/mailnews/compose/addressingWidgetOverlay.dtd
create mode 100644 suite/chrome/mailnews/compose/askSendFormat.dtd
create mode 100644 suite/chrome/mailnews/compose/askSendFormat.properties
create mode 100644 suite/chrome/mailnews/compose/composeMsgs.properties
create mode 100644 suite/chrome/mailnews/compose/mailComposeEditorOverlay.dtd
create mode 100644 suite/chrome/mailnews/compose/messengercompose.dtd
create mode 100644 suite/chrome/mailnews/compose/sendProgress.dtd
create mode 100644 suite/chrome/mailnews/compose/sendProgress.properties
create mode 100644 suite/chrome/mailnews/custom.properties
create mode 100644 suite/chrome/mailnews/downloadheaders.dtd
create mode 100644 suite/chrome/mailnews/fieldMapImport.dtd
create mode 100644 suite/chrome/mailnews/filter.properties
create mode 100644 suite/chrome/mailnews/folderProps.dtd
create mode 100644 suite/chrome/mailnews/folderWidgets.properties
create mode 100644 suite/chrome/mailnews/folderpane.dtd
create mode 100644 suite/chrome/mailnews/gloda.properties
create mode 100644 suite/chrome/mailnews/imapMsgs.properties
create mode 100644 suite/chrome/mailnews/importDialog.dtd
create mode 100644 suite/chrome/mailnews/importMsgs.properties
create mode 100644 suite/chrome/mailnews/junkLog.dtd
create mode 100644 suite/chrome/mailnews/junkMailInfo.dtd
create mode 100644 suite/chrome/mailnews/localMsgs.properties
create mode 100644 suite/chrome/mailnews/mailEditorOverlay.dtd
create mode 100644 suite/chrome/mailnews/mailKeysOverlay.dtd
create mode 100644 suite/chrome/mailnews/mailOverlay.dtd
create mode 100644 suite/chrome/mailnews/mailTasksOverlay.dtd
create mode 100644 suite/chrome/mailnews/mailViewList.dtd
create mode 100644 suite/chrome/mailnews/mailViewSetup.dtd
create mode 100644 suite/chrome/mailnews/mailviews.properties
create mode 100644 suite/chrome/mailnews/mapi/mapi.properties
create mode 100644 suite/chrome/mailnews/markByDate.dtd
create mode 100644 suite/chrome/mailnews/messenger.dtd
create mode 100644 suite/chrome/mailnews/messenger.properties
create mode 100644 suite/chrome/mailnews/mime.properties
create mode 100644 suite/chrome/mailnews/mimeheader.properties
create mode 100644 suite/chrome/mailnews/msgAccountCentral.dtd
create mode 100644 suite/chrome/mailnews/msgHdrViewOverlay.dtd
create mode 100644 suite/chrome/mailnews/msgHdrViewPopup.dtd
create mode 100644 suite/chrome/mailnews/msgPrintEngine.dtd
create mode 100644 suite/chrome/mailnews/msgSynchronize.dtd
create mode 100644 suite/chrome/mailnews/msgViewPickerOverlay.dtd
create mode 100644 suite/chrome/mailnews/msgmdn.properties
create mode 100644 suite/chrome/mailnews/newFolderDialog.dtd
create mode 100644 suite/chrome/mailnews/news.properties
create mode 100644 suite/chrome/mailnews/newsError.dtd
create mode 100644 suite/chrome/mailnews/newsblog/am-newsblog.dtd
create mode 100644 suite/chrome/mailnews/newsblog/feed-subscriptions.dtd
create mode 100644 suite/chrome/mailnews/newsblog/newsblog.properties
create mode 100644 suite/chrome/mailnews/offline.properties
create mode 100644 suite/chrome/mailnews/offlineStartup.properties
create mode 100644 suite/chrome/mailnews/outlookImportMsgs.properties
create mode 100644 suite/chrome/mailnews/pgpmime.properties
create mode 100644 suite/chrome/mailnews/pref/AccountManager.dtd
create mode 100644 suite/chrome/mailnews/pref/AccountWizard.dtd
create mode 100644 suite/chrome/mailnews/pref/am-addressing.dtd
create mode 100644 suite/chrome/mailnews/pref/am-advanced.dtd
create mode 100644 suite/chrome/mailnews/pref/am-archiveoptions.dtd
create mode 100644 suite/chrome/mailnews/pref/am-copies.dtd
create mode 100644 suite/chrome/mailnews/pref/am-identities-list.dtd
create mode 100644 suite/chrome/mailnews/pref/am-identity-edit.dtd
create mode 100644 suite/chrome/mailnews/pref/am-junk.dtd
create mode 100644 suite/chrome/mailnews/pref/am-main.dtd
create mode 100644 suite/chrome/mailnews/pref/am-mdn.dtd
create mode 100644 suite/chrome/mailnews/pref/am-mdn.properties
create mode 100644 suite/chrome/mailnews/pref/am-offline.dtd
create mode 100644 suite/chrome/mailnews/pref/am-server-advanced.dtd
create mode 100644 suite/chrome/mailnews/pref/am-server-top.dtd
create mode 100644 suite/chrome/mailnews/pref/am-serverwithnoidentities.dtd
create mode 100644 suite/chrome/mailnews/pref/mailPrefsOverlay.dtd
create mode 100644 suite/chrome/mailnews/pref/pref-addressing.dtd
create mode 100644 suite/chrome/mailnews/pref/pref-character_encoding.dtd
create mode 100644 suite/chrome/mailnews/pref/pref-composing_messages.dtd
create mode 100644 suite/chrome/mailnews/pref/pref-directory-add.dtd
create mode 100644 suite/chrome/mailnews/pref/pref-directory.dtd
create mode 100644 suite/chrome/mailnews/pref/pref-formatting.dtd
create mode 100644 suite/chrome/mailnews/pref/pref-junk.dtd
create mode 100644 suite/chrome/mailnews/pref/pref-mailnews.dtd
create mode 100644 suite/chrome/mailnews/pref/pref-notifications.dtd
create mode 100644 suite/chrome/mailnews/pref/pref-offline.dtd
create mode 100644 suite/chrome/mailnews/pref/pref-receipts.dtd
create mode 100644 suite/chrome/mailnews/pref/pref-tags.dtd
create mode 100644 suite/chrome/mailnews/pref/pref-viewing_messages.dtd
create mode 100644 suite/chrome/mailnews/pref/prefs.properties
create mode 100644 suite/chrome/mailnews/pref/removeAccount.dtd
create mode 100644 suite/chrome/mailnews/pref/removeAccount.properties
create mode 100644 suite/chrome/mailnews/pref/replicationProgress.properties
create mode 100644 suite/chrome/mailnews/pref/smtpEditOverlay.dtd
create mode 100644 suite/chrome/mailnews/region.properties
create mode 100644 suite/chrome/mailnews/renameFolderDialog.dtd
create mode 100644 suite/chrome/mailnews/search-attributes.properties
create mode 100644 suite/chrome/mailnews/search-operators.properties
create mode 100644 suite/chrome/mailnews/search.properties
create mode 100644 suite/chrome/mailnews/searchTermOverlay.dtd
create mode 100644 suite/chrome/mailnews/shutdownWindow.properties
create mode 100644 suite/chrome/mailnews/smime.properties
create mode 100644 suite/chrome/mailnews/smime/am-smime.dtd
create mode 100644 suite/chrome/mailnews/smime/am-smime.properties
create mode 100644 suite/chrome/mailnews/smime/certFetchingStatus.dtd
create mode 100644 suite/chrome/mailnews/smime/msgCompSMIMEOverlay.dtd
create mode 100644 suite/chrome/mailnews/smime/msgCompSMIMEOverlay.properties
create mode 100644 suite/chrome/mailnews/smime/msgCompSecurityInfo.dtd
create mode 100644 suite/chrome/mailnews/smime/msgCompSecurityInfo.properties
create mode 100644 suite/chrome/mailnews/smime/msgReadSMIMEOverlay.dtd
create mode 100644 suite/chrome/mailnews/smime/msgReadSMIMEOverlay.properties
create mode 100644 suite/chrome/mailnews/smime/msgReadSecurityInfo.dtd
create mode 100644 suite/chrome/mailnews/smime/msgSecurityInfo.properties
create mode 100644 suite/chrome/mailnews/start.dtd
create mode 100644 suite/chrome/mailnews/subscribe.dtd
create mode 100644 suite/chrome/mailnews/subscribe.properties
create mode 100644 suite/chrome/mailnews/tabmail.properties
create mode 100644 suite/chrome/mailnews/textImportMsgs.properties
create mode 100644 suite/chrome/mailnews/threadpane.dtd
create mode 100644 suite/chrome/mailnews/vCardImportMsgs.properties
create mode 100644 suite/chrome/mailnews/viewLog.dtd
create mode 100644 suite/chrome/mailnews/virtualFolderListDialog.dtd
create mode 100644 suite/chrome/mailnews/virtualFolderProperties.dtd
create mode 100644 suite/chrome/mailnews/wmImportMsgs.properties
create mode 100644 suite/chrome/mozldap/ldap.properties
create mode 100644 suite/crashreporter/crashreporter-override.ini
create mode 100644 suite/defines.inc
create mode 100644 suite/installer/windows/custom.properties
create mode 100644 suite/installer/windows/mui.properties
create mode 100644 suite/installer/windows/override.properties
create mode 100644 suite/profile/bookmarks.extra
create mode 100644 suite/profile/bookmarks.inc
create mode 100644 suite/profile/chrome/userChrome-example.css
create mode 100644 suite/profile/chrome/userContent-example.css
create mode 100644 suite/profile/panels.extra
create mode 100644 suite/suite-l10n.js
create mode 100644 suite/updater/updater.ini
create mode 100644 toolkit/chrome/alerts/alert.dtd
create mode 100644 toolkit/chrome/alerts/alert.properties
create mode 100644 toolkit/chrome/autoconfig/autoconfig.properties
create mode 100644 toolkit/chrome/global-platform/mac/intl.properties
create mode 100644 toolkit/chrome/global-platform/mac/platformKeys.properties
create mode 100644 toolkit/chrome/global-platform/unix/intl.properties
create mode 100644 toolkit/chrome/global-platform/unix/platformKeys.properties
create mode 100644 toolkit/chrome/global-platform/win/intl.properties
create mode 100644 toolkit/chrome/global-platform/win/platformKeys.properties
create mode 100644 toolkit/chrome/global/aboutReader.properties
create mode 100644 toolkit/chrome/global/aboutStudies.properties
create mode 100644 toolkit/chrome/global/appPicker.dtd
create mode 100644 toolkit/chrome/global/autocomplete.properties
create mode 100644 toolkit/chrome/global/browser.properties
create mode 100644 toolkit/chrome/global/commonDialog.dtd
create mode 100644 toolkit/chrome/global/commonDialogs.properties
create mode 100644 toolkit/chrome/global/contentAreaCommands.properties
create mode 100644 toolkit/chrome/global/datetimebox.dtd
create mode 100644 toolkit/chrome/global/dialog.properties
create mode 100644 toolkit/chrome/global/dialogOverlay.dtd
create mode 100644 toolkit/chrome/global/editMenuOverlay.dtd
create mode 100644 toolkit/chrome/global/extensions.properties
create mode 100644 toolkit/chrome/global/fallbackMenubar.properties
create mode 100644 toolkit/chrome/global/filepicker.properties
create mode 100644 toolkit/chrome/global/findbar.properties
create mode 100644 toolkit/chrome/global/global-extension-fields.properties
create mode 100644 toolkit/chrome/global/globalKeys.dtd
create mode 100644 toolkit/chrome/global/intl.css
create mode 100644 toolkit/chrome/global/intl.properties
create mode 100644 toolkit/chrome/global/keys.properties
create mode 100644 toolkit/chrome/global/narrate.properties
create mode 100644 toolkit/chrome/global/notification.dtd
create mode 100644 toolkit/chrome/global/printdialog.properties
create mode 100644 toolkit/chrome/global/resetProfile.dtd
create mode 100644 toolkit/chrome/global/resetProfile.properties
create mode 100644 toolkit/chrome/global/textcontext.dtd
create mode 100644 toolkit/chrome/global/tree.dtd
create mode 100644 toolkit/chrome/global/videocontrols.dtd
create mode 100644 toolkit/chrome/global/viewSource.properties
create mode 100644 toolkit/chrome/global/wizard.properties
create mode 100644 toolkit/chrome/mozapps/downloads/downloads.properties
create mode 100644 toolkit/chrome/mozapps/downloads/unknownContentType.dtd
create mode 100644 toolkit/chrome/mozapps/downloads/unknownContentType.properties
create mode 100644 toolkit/chrome/mozapps/extensions/extensions.dtd
create mode 100644 toolkit/chrome/mozapps/extensions/extensions.properties
create mode 100644 toolkit/chrome/mozapps/profile/profileSelection.properties
create mode 100644 toolkit/chrome/mozapps/update/updates.properties
create mode 100644 toolkit/chrome/passwordmgr/passwordmgr.properties
create mode 100644 toolkit/chrome/places/places.properties
create mode 100644 toolkit/crashreporter/aboutcrashes.ftl
create mode 100644 toolkit/crashreporter/crashreporter.ini
create mode 100644 toolkit/defines.inc
create mode 100644 toolkit/toolkit/about/aboutAbout.ftl
create mode 100644 toolkit/toolkit/about/aboutAddons.ftl
create mode 100644 toolkit/toolkit/about/aboutCompat.ftl
create mode 100644 toolkit/toolkit/about/aboutConfig.ftl
create mode 100644 toolkit/toolkit/about/aboutGlean.ftl
create mode 100644 toolkit/toolkit/about/aboutHttpsOnlyError.ftl
create mode 100644 toolkit/toolkit/about/aboutMozilla.ftl
create mode 100644 toolkit/toolkit/about/aboutNetworking.ftl
create mode 100644 toolkit/toolkit/about/aboutPerformance.ftl
create mode 100644 toolkit/toolkit/about/aboutPlugins.ftl
create mode 100644 toolkit/toolkit/about/aboutProcesses.ftl
create mode 100644 toolkit/toolkit/about/aboutProfiles.ftl
create mode 100644 toolkit/toolkit/about/aboutRights.ftl
create mode 100644 toolkit/toolkit/about/aboutServiceWorkers.ftl
create mode 100644 toolkit/toolkit/about/aboutSupport.ftl
create mode 100644 toolkit/toolkit/about/aboutTelemetry.ftl
create mode 100644 toolkit/toolkit/about/aboutThirdParty.ftl
create mode 100644 toolkit/toolkit/about/aboutWebrtc.ftl
create mode 100644 toolkit/toolkit/about/abuseReports.ftl
create mode 100644 toolkit/toolkit/about/certviewer.ftl
create mode 100644 toolkit/toolkit/about/config.ftl
create mode 100644 toolkit/toolkit/about/url-classifier.ftl
create mode 100644 toolkit/toolkit/extensions/blocklist.ftl
create mode 100644 toolkit/toolkit/featuregates/features.ftl
create mode 100644 toolkit/toolkit/global/commonDialog.ftl
create mode 100644 toolkit/toolkit/global/createProfileWizard.ftl
create mode 100644 toolkit/toolkit/global/handlerDialog.ftl
create mode 100644 toolkit/toolkit/global/notification.ftl
create mode 100644 toolkit/toolkit/global/processTypes.ftl
create mode 100644 toolkit/toolkit/global/profileDowngrade.ftl
create mode 100644 toolkit/toolkit/global/profileSelection.ftl
create mode 100644 toolkit/toolkit/global/resetProfile.ftl
create mode 100644 toolkit/toolkit/global/run-from-dmg.ftl
create mode 100644 toolkit/toolkit/global/textActions.ftl
create mode 100644 toolkit/toolkit/global/unknownContentType.ftl
create mode 100644 toolkit/toolkit/global/videocontrols.ftl
create mode 100644 toolkit/toolkit/global/wizard.ftl
create mode 100644 toolkit/toolkit/intl/languageNames.ftl
create mode 100644 toolkit/toolkit/intl/regionNames.ftl
create mode 100644 toolkit/toolkit/main-window/autocomplete.ftl
create mode 100644 toolkit/toolkit/main-window/findbar.ftl
create mode 100644 toolkit/toolkit/payments/payments.ftl
create mode 100644 toolkit/toolkit/pictureinpicture/pictureinpicture.ftl
create mode 100644 toolkit/toolkit/preferences/preferences.ftl
create mode 100644 toolkit/toolkit/printing/printDialogs.ftl
create mode 100644 toolkit/toolkit/printing/printPreview.ftl
create mode 100644 toolkit/toolkit/printing/printUI.ftl
create mode 100644 toolkit/toolkit/updates/backgroundupdate.ftl
create mode 100644 toolkit/toolkit/updates/elevation.ftl
create mode 100644 toolkit/toolkit/updates/history.ftl
diff --git a/browser/branding/official/brand.dtd b/browser/branding/official/brand.dtd
new file mode 100644
index 00000000000..d094ad0f8d0
--- /dev/null
+++ b/browser/branding/official/brand.dtd
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/browser/branding/official/brand.ftl b/browser/branding/official/brand.ftl
new file mode 100644
index 00000000000..4a23030b9ea
--- /dev/null
+++ b/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 忍£è Firefox æ¨èªçº Mozilla åºéæä¹è¨»å忍ã
diff --git a/browser/branding/official/brand.properties b/browser/branding/official/brand.properties
new file mode 100644
index 00000000000..02aac41e3a7
--- /dev/null
+++ b/browser/branding/official/brand.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/.
+
+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
+
diff --git a/browser/browser/aboutCertError.ftl b/browser/browser/aboutCertError.ftl
new file mode 100644
index 00000000000..deedda31202
--- /dev/null
+++ b/browser/browser/aboutCertError.ftl
@@ -0,0 +1,126 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 } ç¨äºç¡æçå®å
¨æèã
+
+cert-error-mitm-intro = ç¶²ç«æééæèæ©æ§ç°½ç¼çæèä¾é©ææ£èº«ã
+
+cert-error-mitm-mozilla = { -brand-short-name } æ¯ç±éçå©ç Mozilla ææä¾æ¯æ´çãMozilla 管çä¸çµå®å
¨éæ¾çæèæ©æ§ï¼CAï¼å²å空éã該å²å空éå¯ç¢ºä¿æèæ©æ§éµå¾ªæä½³ç使¥æ¹å¼ï¼ä»¥ç¢ºä¿ä½¿ç¨è
çå®å
¨ã
+
+cert-error-mitm-connection = { -brand-short-name } ä½¿ç¨ Mozilla çæèæ©æ§å²å空é便ª¢æ¥é£ç·æ¯å¦å®å
¨ï¼èä¸ä½¿ç¨ä½¿ç¨è
使¥ç³»çµ±ä¸çå
§å»ºæèãæä»¥å¦ææ¨ç鲿¯è»é«æç¶²è·¯ä½¿ç¨ä¸å¨ Mozilla æèæ©æ§æ¸
å®ç¶ä¸çæ©æ§æç°½ç¼çæè便æªç¶²è·¯æµéï¼é£ç·å°±æè¢«è¦çºä¸å®å
¨ã
+
+cert-error-trust-unknown-issuer-intro = æå¿äººå£«å¯è½æ£å¨å試å°å¥çç¶²ç«å½è£ææ¨æ³é 訪çç¶²ç«ï¼ä¸æç¹¼çºéåã
+
+# Variables:
+# $hostname (String) - Hostname of the website with cert error.
+cert-error-trust-unknown-issuer = ç¶²ç«æééæèä¾èæèªå·±ç身åãå çºç°½ç¼è
æªç¥ãæèæ¯èªç°½æèï¼æä¼ºæå¨ä¸¦æªéåºæ£ç¢ºçä¸ä»æèçéä¿ï¼{ -brand-short-name } ç¡æ³ä¿¡ä»» { $hostname }ã
+
+cert-error-trust-cert-invalid = 該æèæªåä¿¡ä»»ï¼å çºæ¯ç±ç¡ææèæ©æ§çæèç°½ç¼çã
+
+cert-error-trust-untrusted-issuer = 該æèæªåä¿¡ä»»ï¼å çºç°½ç¼è
çæèæªè¢«ä¿¡ä»»ã
+
+cert-error-trust-signature-algorithm-disabled = ç±æ¼æªç¶å®å
¨çç°½ç« æ¼ç®æ³é²è¡ç°½ç½²ï¼ç¡æ³ä¿¡ä»»æ¤æèã
+
+cert-error-trust-expired-issuer = 該æèæªåä¿¡ä»»ï¼å çºç°½ç¼è
çæèå·²éæã
+
+cert-error-trust-self-signed = 該æèæªåä¿¡ä»»ï¼å çºæèæ¯èªå·±ç°½ç½²çæèã
+
+cert-error-trust-symantec = ç±æ¼æèç°½ç¼çµç¹é廿ªéµå¾ªå®å
¨çé使¹å¼ï¼ç± GeoTrustãRapidSSLãSymantecãThawte å VeriSign ç°½ç¼çæèçä¸å被信任ã
+
+cert-error-untrusted-default = æè䏿¯ä¾èªåä¿¡ä»»ç便ºã
+
+# Variables:
+# $hostname (String) - Hostname of the website with cert error.
+cert-error-domain-mismatch = ç¶²ç«æééæèä¾èæèªå·±ç身åãå çºä¼ºæå¨éåºä¸å±¬æ¼ { $hostname } çæèçéä¿ï¼{ -brand-short-name } ä¸ä¿¡ä»»éåç¶²ç«ã
+
+# Variables:
+# $hostname (String) - Hostname of the website with cert error.
+# $alt-name (String) - Alternate domain name for which the cert is valid.
+cert-error-domain-mismatch-single = ç¶²ç«æééæèä¾èæèªå·±ç身åãå çºä¼ºæå¨éåºä¸å±¬æ¼ { $hostname } çæèçéä¿ï¼{ -brand-short-name } ä¸ä¿¡ä»»éåç¶²ç«ã該æèåªå° { $alt-name } ææã
+
+# Variables:
+# $hostname (String) - Hostname of the website with cert error.
+# $alt-name (String) - Alternate domain name for which the cert is valid.
+cert-error-domain-mismatch-single-nolink = ç¶²ç«æééæèä¾èæèªå·±ç身åãå çºä¼ºæå¨éåºä¸å±¬æ¼ { $hostname } çæèçéä¿ï¼{ -brand-short-name } ä¸ä¿¡ä»»éåç¶²ç«ã該æèåªå° { $alt-name } ææã
+
+# Variables:
+# $subject-alt-names (String) - Alternate domain names for which the cert is valid.
+cert-error-domain-mismatch-multiple = ç¶²ç«æééæèä¾èæèªå·±ç身åãå çºä¼ºæå¨éåºä¸å±¬æ¼ { $hostname } çæèçéä¿ï¼{ -brand-short-name } ä¸ä¿¡ä»»éåç¶²ç«ã該æèå
å°ä¸åç¶²åå稱ææ: { $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 = ç¶²ç«æééæèä¾èæèªå·±ç身åãæ¯ä¸å¼µæè齿ææéå¶ï¼è { $hostname } çæèå·²æ¼ { $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 = ç¶²ç«æééæèä¾èæèªå·±ç身åãæ¯ä¸å¼µæè齿ææéå¶ï¼è { $hostname } çæèæ¼ { $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 = é¯èª¤ç¢¼: { $error }
+
+# Variables:
+# $hostname (String) - Hostname of the website with cert error.
+cert-error-symantec-distrust-description = ç¶²ç«æééæèæ©æ§ç°½ç¼çæèä¾é©ææ£èº«ã大夿¸ç覽å¨å·²ä¸åä¿¡ä»» GeoTrustãRapidSSLãSymantecãThawte å VeriSign æç°½ç¼çæèã{ $hostname } 使ç¨ä¾èªéäºæ©æ§ç°½ç¼çæèï¼æ
ç¡æ³ç¢ºèªè©²ç¶²ç«ç身åã
+
+cert-error-symantec-distrust-admin = æ¨å¯éç¥ç¶²ç«ç®¡çå¡éååé¡ã
+
+# 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 = æèé:
+
+open-in-new-window-for-csp-or-xfo-error = ç¨æ°è¦çªéåç¶²ç«
+
+# Variables:
+# $hostname (String) - Hostname of the website blocked by csp or xfo error.
+csp-xfo-blocked-long-desc = çºäºä¿è·æ¨çå®å
¨ï¼{ $hostname } ä¸å
許å¨è¢«å¥çç¶²ç«åµå
¥æï¼è® { -brand-short-name } 顯示é é¢å
§å®¹ãè¥è¦è¦å°æ¤é é¢ï¼è«ç¨æ°è¦çªéåã
+
+## Messages used for certificate error titles
+
+connectionFailure-title = é£ç·å¤±æ
+deniedPortAccess-title = æ¤ç¶²å已被éå¶
+# "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 = åâ¦æ¾ä¸å°éåç¶²ç«ã
+fileNotFound-title = æ¾ä¸å°æªæ¡
+fileAccessDenied-title = å°æªæ¡çååè¦æ±å·²è¢«æçµ
+generic-title = å¢ï¼
+captivePortal-title = ç»å
¥å°ç¶²è·¯
+# "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 = åâ¦éåç¶²å好åæé¯ã
+netInterrupt-title = é£ç·ä¸æ·
+notCached-title = æä»¶å·²éæ
+netOffline-title = é¢ç·æ¨¡å¼
+contentEncodingError-title = å
§å®¹ç·¨ç¢¼é¯èª¤
+unsafeContentType-title = ä¸å®å
¨çæªæ¡æ ¼å¼
+netReset-title = é£ç·è¢«éè¨
+netTimeout-title = é£ç·å·²é¾æ
+unknownProtocolFound-title = ç¡æ³çè§£çç¶²å
+proxyConnectFailure-title = Proxy 伺æå¨æçµé£ç·
+proxyResolveFailure-title = æ¾ä¸å° Proxy 伺æå¨
+redirectLoop-title = é é¢éæ°å°å䏿£ç¢º
+unknownSocketType-title = 伺æå¨åæé¯èª¤
+nssFailure2-title = å®å
¨é£ç·å¤±æ
+csp-xfo-error-title = { -brand-short-name } ç¡æ³éåæ¤ç¶²é
+corruptedContentError-title = å
§å®¹æ¯æé¯èª¤
+remoteXUL-title = é 端 XUL
+sslv3Used-title = ç¡æ³å®å
¨å°é£ç·
+inadequateSecurityError-title = æ¨çé£ç·ä¸¦ä¸å®å
¨
+blockedByPolicy-title = å·²å°éé é¢
+clockSkewError-title = æ¨çé»è
¦æéé¯èª¤
+networkProtocolError-title = 網路éè¨åå®é¯èª¤
+nssBadCert-title = è¦å: æ¬ç¶²ç«å¯è½æå®å
¨æ§é¢¨éª
+nssBadCert-sts-title = æªé£ç·: æ½å¨çå®å
¨æ§åé¡
+certerror-mitm-title = æè»é«é æ { -brand-short-name } ç¡æ³èæ¤ç¶²ç«å»ºç«å®å
¨é£ç·
diff --git a/browser/browser/aboutConfig.ftl b/browser/browser/aboutConfig.ftl
new file mode 100644
index 00000000000..6a4dbbe4d72
--- /dev/null
+++ b/browser/browser/aboutConfig.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/.
+
+## These strings appear on the warning you see when first visiting about:config.
+
+about-config-intro-warning-title = 調æ´è¨å®åè«åå¿
å°å¿ï¼
+about-config-intro-warning-text = 調æ´é²éè¨å®ï¼å¯è½æå½±é¿ { -brand-short-name } çæè½æå®å
¨æ§ã
+about-config-intro-warning-checkbox = ç¶æå試修æ¹å好è¨å®æè¦åæ
+about-config-intro-warning-button = æ¥å風éªä¸¦ç¹¼çº
+
+##
+
+# This is shown on the page before searching but after the warning is accepted.
+about-config-caution-text = 調æ´éäºå好è¨å®ï¼å¯è½æå½±é¿ { -brand-short-name } çæè½æå®å
¨æ§ã
+
+about-config-page-title = é²éå好è¨å®
+
+about-config-search-input1 =
+ .placeholder = æå°å好è¨å®
+about-config-show-all = å
¨é¨é¡¯ç¤º
+
+about-config-pref-add-button =
+ .title = æ°å¢
+about-config-pref-toggle-button =
+ .title = åæ
+about-config-pref-edit-button =
+ .title = 編輯
+about-config-pref-save-button =
+ .title = å²å
+about-config-pref-reset-button =
+ .title = éè¨
+about-config-pref-delete-button =
+ .title = åªé¤
+
+## Labels for the type selection radio buttons shown when adding preferences.
+
+about-config-pref-add-type-boolean = 叿ï¼Booleanï¼å¼
+about-config-pref-add-type-number = æ¸å¼
+about-config-pref-add-type-string = å串
+
+## 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 }ï¼é è¨ï¼
+about-config-pref-accessible-value-custom =
+ .aria-label = { $value }ï¼èªè¨ï¼
diff --git a/browser/browser/aboutDialog.ftl b/browser/browser/aboutDialog.ftl
new file mode 100644
index 00000000000..e5e7f9dd49b
--- /dev/null
+++ b/browser/browser/aboutDialog.ftl
@@ -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/.
+
+aboutDialog-title =
+ .title = éæ¼ { -brand-full-name }
+
+releaseNotes-link = æä»éº¼æ°é®®äº
+
+update-checkForUpdatesButton =
+ .label = æª¢æ¥æ´æ°
+ .accesskey = C
+
+update-updateButton =
+ .label = éæ°ååä»¥æ´æ° { -brand-shorter-name }
+ .accesskey = R
+
+update-checkingForUpdates = æ£å¨æª¢æ¥æ´æ°â¦
+update-downloading =
æ£å¨ä¸è¼æ´æ° â
+update-downloading-message = æ£å¨ä¸è¼æ´æ° â
+update-applying = æ£å¨å¥ç¨æ´æ°â¦
+
+update-failed = æ´æ°å¤±æã
+update-failed-main = æ´æ°å¤±æãä¸è¼ææ°çæ¬
+
+update-adminDisabled = æ¨ç系統管çå¡å·²åç¨æ´æ°
+update-noUpdatesFound = å·²ç¶æ¯ææ°çæ¬ç { -brand-short-name }
+update-otherInstanceHandlingUpdates = { -brand-short-name } æ£è¢«å
¶ä»å·è¡ä¸ç坦便´æ°
+
+update-manual = å¯ç¨çæ´æ°ä½æ¼
+
+update-unsupported = æ¨ç¡æ³å¨æ¤ç³»çµ±ä¸é²è¡å¾çºæ´æ°ã
+
+update-restarting = éæ°ååä¸â¦
+
+channel-description = æ¨ç®åæ£ä½¿ç¨ æ´æ°é »éã
+
+warningDesc-version = { -brand-short-name } æ¯ä¸å實é©ç¨çæ¸¬è©¦çæ¬ï¼å¯è½ä¸å¤ ç©©å®ã
+
+aboutdialog-help-user = { -brand-product-name } 說æ
+aboutdialog-submit-feedback = éåºæè¦åé¥
+
+community-exp = æ¯ä¸åãæåä¸èµ·åªåè®ç¶²è·¯ä¿æéæ¾ï¼ä»»èª°é½å¯é¨æä½¿ç¨ã
+
+community-2 = { -brand-short-name } æ¯ç± æéç¼çç¢åãMozilla æ¯åãæåä¸èµ·åªåè®ç¶²è·¯ä¿æéæ¾ï¼ä»»èª°é½å¯é¨æä½¿ç¨ã
+
+helpus = æ³å¹«å¿åï¼æ
+
+bottomLinks-license = ææ¬è³è¨
+bottomLinks-rights = 使ç¨è
æ¬å©
+bottomLinks-privacy = é±ç§æ¬ä¿è·æ¿ç
+
+# 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 } ä½å
ï¼
+
+# 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 } ä½å
ï¼
diff --git a/browser/browser/aboutLogins.ftl b/browser/browser/aboutLogins.ftl
new file mode 100644
index 00000000000..e52dbc3d4c5
--- /dev/null
+++ b/browser/browser/aboutLogins.ftl
@@ -0,0 +1,350 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 = ç»å
¥è³è¨èå¯ç¢¼
+
+# "Google Play" and "App Store" are both branding and should not be translated
+
+login-filter =
+ .placeholder = æå°ç»å
¥è³è¨
+
+create-login-button = æ°å¢ç»å
¥è³è¨
+
+fxaccounts-sign-in-text = å¨å
¶ä»è£ç½®ä¸ä½¿ç¨æ¨çå¯ç¢¼
+fxaccounts-sign-in-sync-button = ç»å
¥é²è¡åæ¥
+fxaccounts-avatar-button =
+ .title = 管ç帳è
+
+## The ⯠menu that is in the top corner of the page
+
+menu =
+ .title = éåé¸å®
+# This menuitem is only visible on Windows and macOS
+about-logins-menu-menuitem-import-from-another-browser = å¾å¦ä¸å¥ç覽å¨å¯å
¥â¦
+about-logins-menu-menuitem-import-from-a-file = 徿ªæ¡å¯å
¥â¦
+about-logins-menu-menuitem-export-logins = å¯åºç»å
¥è³è¨â¦
+about-logins-menu-menuitem-remove-all-logins = ç§»é¤ææç»å
¥è³æâ¦
+menu-menuitem-preferences =
+ { PLATFORM() ->
+ [windows] é¸é
+ *[other] å好è¨å®
+ }
+about-logins-menu-menuitem-help = 說æ
+
+## Login List
+
+login-list =
+ .aria-label = 符åæå°æ¢ä»¶çç»å
¥è³è¨
+login-list-count =
+ { $count ->
+ *[other] { $count } çç»å
¥è³è¨
+ }
+login-list-sort-label-text = æåºä¾ç
§:
+login-list-name-option = å稱ï¼A-Z æåºï¼
+login-list-name-reverse-option = å稱ï¼Z-A æåºï¼
+login-list-username-option = 使ç¨è
å稱ï¼A-Z æåºï¼
+login-list-username-reverse-option = 使ç¨è
å稱ï¼Z-A æåºï¼
+about-logins-login-list-alerts-option = è¦å ±
+login-list-last-changed-option = 䏿¬¡ä¿®æ¹
+login-list-last-used-option = 䏿¬¡ä½¿ç¨
+login-list-intro-title = æ¾ä¸å°ç»å
¥è³è¨
+login-list-intro-description = ç¶æ¨å¨ { -brand-product-name } ä¸å²åå¯ç¢¼å¾ï¼å°±æé¡¯ç¤ºæ¼æ¤èã
+about-logins-login-list-empty-search-title = æ¾ä¸å°ç»å
¥è³è¨
+about-logins-login-list-empty-search-description = æ²æç¬¦åæ¨æå°æ¢ä»¶ççµæã
+login-list-item-title-new-login = æ°å¢ç»å
¥è³è¨
+login-list-item-subtitle-new-login = è«è¼¸å
¥æ¨çç»å
¥å¸³å¯
+login-list-item-subtitle-missing-username = ï¼ç¡ä½¿ç¨è
å稱ï¼
+about-logins-list-item-breach-icon =
+ .title = ç¼çè³æå¤æ´©äºä»¶çç¶²ç«
+about-logins-list-item-vulnerable-password-icon =
+ .title = èå¼±çå¯ç¢¼
+
+about-logins-list-section-breach = ç¼çè³æå¤æ´©äºä»¶çç¶²ç«
+about-logins-list-section-vulnerable = èå¼±çå¯ç¢¼
+about-logins-list-section-nothing = æ²æè¦å ±
+about-logins-list-section-today = ä»å¤©
+about-logins-list-section-yesterday = æ¨å¤©
+about-logins-list-section-week = æè¿ 7 天
+
+## Introduction screen
+
+about-logins-login-intro-heading-logged-out2 = 卿¾å
åå²åéçç»å
¥è³è¨åï¼å¯éå忥åè½æç´æ¥å¯å
¥ã
+about-logins-login-intro-heading-logged-in = æ¾ä¸å°åæ¥çç»å
¥è³è¨ã
+login-intro-description = è¥æ¨å¨å
¶ä»è£ç½®ä¸å²åç»å
¥è³è¨å° { -brand-product-name } éï¼è«åèä¸åæ¥é©ï¼å³å¯å¨æ¤è£ç½®ä½¿ç¨:
+login-intro-instructions-fxa = 卿¨å²åç»å
¥è³è¨çè£ç½®è¨»åæç»å
¥ { -fxaccount-brand-name }ã
+login-intro-instructions-fxa-settings = å°ãè¨å® > 忥 > éå忥â¦ãå¾é¸ãç»å
¥è³è¨èå¯ç¢¼ãé¸åæ¡ã
+login-intro-instructions-fxa-help = è¥éåå©ï¼è«å° { -lockwise-brand-short-name } æè¡æ¯æ´ç«ã
+about-logins-intro-import = è¥ç»å
¥è³è¨å²åå¨å
¶ä»ç覽å¨ï¼æ¨å¯ä»¥å¯å
¥å° { -lockwise-brand-short-name }
+about-logins-intro-import2 = è¥æ¨çç»å
¥è³è¨ä¸¦æªå²åæ¼ { -brand-product-name }ï¼å¯ä»¥å¾å¦ä¸å¥çè¦½å¨ææªæ¡å¯å
¥
+
+## Login
+
+login-item-new-login-title = æ°å¢ç»å
¥è³è¨
+login-item-edit-button = 編輯
+about-logins-login-item-remove-button = ç§»é¤
+login-item-origin-label = ç¶²ç«ç¶²å
+login-item-tooltip-message = è«ç¢ºå®æ¤æ¬ä½èæ¨ç»å
¥ç¶²ç«çç¶²åå®å
¨ç¸ç¬¦ã
+login-item-origin =
+ .placeholder = https://www.example.com
+login-item-username-label = 使ç¨è
å稱
+about-logins-login-item-username =
+ .placeholder = ï¼ç¡ä½¿ç¨è
å稱ï¼
+login-item-copy-username-button-text = è¤è£½
+login-item-copied-username-button-text = å·²è¤è£½ï¼
+login-item-password-label = å¯ç¢¼
+login-item-password-reveal-checkbox =
+ .aria-label = 顯示å¯ç¢¼
+login-item-copy-password-button-text = è¤è£½
+login-item-copied-password-button-text = å·²è¤è£½ï¼
+login-item-save-changes-button = å²åè®æ´
+login-item-save-new-button = å²å
+login-item-cancel-button = åæ¶
+login-item-time-changed = 䏿¬¡ä¿®æ¹: { DATETIME($timeChanged, day: "numeric", month: "long", year: "numeric") }
+login-item-time-created = å»ºç«æ¼: { DATETIME($timeCreated, day: "numeric", month: "long", year: "numeric") }
+login-item-time-used = 䏿¬¡ä½¿ç¨: { 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 = è«å¨ä¸æ¹è¼¸å
¥æ¨ç Windows ç»å
¥å¸³èå¯ç¢¼æè½ç¹¼çºç·¨è¼¯ç»å
¥è³è¨ãéåå使¯çºäºä¿è·æ¨çç»å
¥è³è¨å®å
¨ã
+# 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 = 編輯å²åçç»å
¥è³è¨
+
+# 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 = è«å¨ä¸æ¹è¼¸å
¥æ¨ç Windows ç»å
¥å¸³èå¯ç¢¼æè½æª¢è¦å¯ç¢¼ãéåå使¯çºäºä¿è·æ¨çç»å
¥è³è¨å®å
¨ã
+# 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 = 顯示å²åçç¶²ç«å¯ç¢¼
+
+# 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 = è«å¨ä¸æ¹è¼¸å
¥æ¨ç Windows ç»å
¥å¸³èå¯ç¢¼æè½è¤è£½å¯ç¢¼ãéåå使¯çºäºä¿è·æ¨çç»å
¥è³è¨å®å
¨ã
+# 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 = è¤è£½å²åçç¶²ç«å¯ç¢¼
+
+## Master Password notification
+
+# 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 = è«å¨ä¸æ¹è¼¸å
¥æ¨ç Windows ç»å
¥å¸³èå¯ç¢¼æè½å¯åºç»å
¥è³è¨ãéåå使¯çºäºä¿è·æ¨çç»å
¥è³è¨å®å
¨ã
+# 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 = å¯åºå²åçç»å
¥è³è¨èå¯ç¢¼
+
+## Primary Password notification
+
+about-logins-primary-password-notification-message = è«è¼¸å
¥æ¨ç主æ§å¯ç¢¼ï¼ä»¥æª¢è¦å²åçç»å
¥è³è¨
+master-password-reload-button =
+ .label = ç»å
¥
+ .accesskey = L
+
+## Password Sync notification
+
+## Dialogs
+
+confirmation-dialog-cancel-button = åæ¶
+confirmation-dialog-dismiss-button =
+ .title = åæ¶
+
+about-logins-confirm-remove-dialog-title = è¦ç§»é¤éçç»å
¥è³è¨åï¼
+confirm-delete-dialog-message = æ¤åä½ç¡æ³å¾©åã
+about-logins-confirm-remove-dialog-confirm-button = ç§»é¤
+
+about-logins-confirm-remove-all-dialog-confirm-button-label =
+ { $count ->
+ [1] ç§»é¤
+ *[other] ç§»é¤å
¨é¨
+ }
+
+about-logins-confirm-remove-all-dialog-checkbox-label =
+ { $count ->
+ [1] 好ï¼ç§»é¤éçç»å
¥è³è¨
+ *[other] 好ï¼ç§»é¤éäºç»å
¥è³è¨
+ }
+
+about-logins-confirm-remove-all-dialog-title =
+ { $count ->
+ [one] è¦ç§»é¤ { $count } çç»å
¥è³è¨åï¼
+ *[other] è¦ç§»é¤å
¨é¨å
± { $count } çç»å
¥è³è¨åï¼
+ }
+about-logins-confirm-remove-all-dialog-message =
+ { $count ->
+ *[other] å°ç§»é¤æ¨å·²å²åå° { -brand-short-name } çç»å
¥è³è¨ï¼ä»¥å卿¤é¡¯ç¤ºçä»»ä½è³æå¤æ´©è¦å ±ãå°ç¡æ³é忤æä½ã
+ }
+
+about-logins-confirm-remove-all-sync-dialog-title =
+ { $count ->
+ *[other] è¦å¾ææè£ç½®ç§»é¤ { $count } çç»å
¥è³è¨åï¼
+ }
+about-logins-confirm-remove-all-sync-dialog-message =
+ { $count ->
+ *[other] å°å¨æ¨ææè { -fxaccount-brand-name } 忥çè£ç½®ä¸ï¼ç§»é¤å²åå° { -brand-short-name } çç»å
¥è³è¨ï¼ä»¥å卿¤é¡¯ç¤ºçä»»ä½è³æå¤æ´©è¦å ±ãå°ç¡æ³é忤æä½ã
+ }
+
+about-logins-confirm-export-dialog-title = å¯åºç»å
¥è³è¨èå¯ç¢¼
+about-logins-confirm-export-dialog-message = æ¨çå¯ç¢¼å°ä»¥å¯é±è®çæææ ¼å¼ï¼ä¾å¦ BadP@ssw0rdï¼å²åï¼ä»»ä½è½å¤ éåæªæ¡ç人é½è½å¾ç¥å¯ç¢¼å
§å®¹ã
+about-logins-confirm-export-dialog-confirm-button = å¯åºâ¦
+
+about-logins-alert-import-title = å¯å
¥å®æ
+about-logins-alert-import-message = 檢è¦è©³ç´°çå¯å
¥æè¦
+
+confirm-discard-changes-dialog-title = è¦æ¾æ£æªå²åçè®æ´åï¼
+confirm-discard-changes-dialog-message = å°å¤±å»æææªå²åçè®æ´ã
+confirm-discard-changes-dialog-confirm-button = æ¨æ£
+
+## Breach Alert notification
+
+about-logins-breach-alert-title = ç¶²ç«è³è¨å¤æ´©
+breach-alert-text = èªæ¨ä¸æ¬¡æ´æ°ç»å
¥è³è¨ä»¥ä¾ï¼æ¤ç¶²ç«ç¼çäºå¯ç¢¼å¤æ´©æå¤±ç«äºä»¶ãè«åå¿
æ´æ¹å¯ç¢¼ï¼ç¢ºä¿å¸³æ¶å®å
¨ã
+about-logins-breach-alert-date = æ¤äºä»¶ç¼çæ¼: { 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 = åå¾ { $hostname }
+about-logins-breach-alert-learn-more-link = äºè§£æ´å¤
+
+## Vulnerable Password notification
+
+about-logins-vulnerable-alert-title = èå¼±çå¯ç¢¼
+about-logins-vulnerable-alert-text2 = æ¤å¯ç¢¼ä½¿ç¨æ¼å¯è½å·²é夿´©çå¦ä¸çµå¸³èãéè¤ä½¿ç¨ç»å
¥è³è¨æè®æ¨çææå¸³èé½èå風éªãè«æ´æ¹æ¤å¯ç¢¼ã
+# Variables:
+# $hostname (String) - The hostname of the website associated with the login, e.g. "example.com"
+about-logins-vulnerable-alert-link = åå¾ { $hostname }
+about-logins-vulnerable-alert-learn-more-link = äºè§£æ´å¤
+
+## 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 = å·²ææ¼ { $loginTitle } 使ç¨ç¸å使ç¨è
å稱çé
ç®åå¨ãè¦åå¾ç¾æé
ç®åï¼
+
+# This is a generic error message.
+about-logins-error-message-default = å試å²åæ¤å¯ç¢¼æç¼çé¯èª¤ã
+
+## Login Export Dialog
+
+# Title of the file picker dialog
+about-logins-export-file-picker-title = å¯åºç»å
¥è³è¨æªæ¡
+# 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 = å¯åº
+# 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] CSV æä»¶
+ *[other] CSV æªæ¡
+ }
+
+## Login Import Dialog
+
+# Title of the file picker dialog
+about-logins-import-file-picker-title = å¯å
¥ç»å
¥è³è¨æªæ¡
+about-logins-import-file-picker-import-button = å¯å
¥
+# 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] CSV æä»¶
+ *[other] 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] TSV æä»¶
+ *[other] TSV æªæ¡
+ }
+
+##
+## Variables:
+## $count (number) - The number of affected elements
+
+about-logins-import-dialog-title = å¯å
¥å®æ
+about-logins-import-dialog-items-added =
+ { $count ->
+ *[other] æ°å¢çç»å
¥è³è¨: { $count }
+ }
+
+about-logins-import-dialog-items-modified =
+ { $count ->
+ *[other] æ´æ°çç¾æç»å
¥è³è¨: { $count }
+ }
+
+about-logins-import-dialog-items-no-change =
+ { $count ->
+ *[other] éè¤çç»å
¥è³è¨: { $count }ï¼æªå¯å
¥ï¼
+ }
+about-logins-import-dialog-items-error =
+ { $count ->
+ *[other] é¯èª¤: { $count } ï¼æªå¯å
¥ï¼
+ }
+about-logins-import-dialog-done = 宿
+
+about-logins-import-dialog-error-title = å¯å
¥é¯èª¤
+about-logins-import-dialog-error-conflicting-values-title = å®çç»å
¥è³è¨ç¶ä¸æå¤çè¡çªçå¼
+about-logins-import-dialog-error-conflicting-values-description = ä¾å¦: å®ä¸çç»å
¥è³è¨ä¸åºç¾äºå¤çµä½¿ç¨è
å稱ãå¯ç¢¼ãç¶²åççã
+about-logins-import-dialog-error-file-format-title = æªæ¡æ ¼å¼åé¡
+about-logins-import-dialog-error-file-format-description = æ¬ä½æ¨é¡ä¸æ£ç¢ºææç¼ºãè«ç¢ºå®æªæ¡ä¸å
嫿£ç¢ºç使ç¨è
å稱ãå¯ç¢¼ãç¶²åæ¬ä½ã
+about-logins-import-dialog-error-file-permission-title = ç¡æ³è®åæªæ¡
+about-logins-import-dialog-error-file-permission-description = { -brand-short-name } æ²ææ¬éè®åæªæ¡ï¼è«èª¿æ´æªæ¡çå忬éã
+about-logins-import-dialog-error-unable-to-read-title = ç¡æ³è§£ææªæ¡
+about-logins-import-dialog-error-unable-to-read-description = è«ç¢ºå®æ¨é¸æäºæ£ç¢ºç CSV æ TSV æªæ¡ã
+about-logins-import-dialog-error-no-logins-imported = æªå¯å
¥ä»»ä½ç»å
¥è³è¨
+about-logins-import-dialog-error-learn-more = äºè§£æ´å¤
+about-logins-import-dialog-error-try-import-again = åå試å¯å
¥ä¸æ¬¡â¦
+about-logins-import-dialog-error-cancel = åæ¶
+
+about-logins-import-report-title = å¯å
¥æè¦
+about-logins-import-report-description = å·²å°ç»å
¥è³è¨èå¯ç¢¼å¯å
¥å° { -brand-short-name }ã
+
+#
+# Variables:
+# $number (number) - The number of the row
+about-logins-import-report-row-index = { $number } è¡
+about-logins-import-report-row-description-no-change = éè¤é
ç®: èç¾æçç»å
¥è³è¨å®å
¨ç¸ç¬¦
+about-logins-import-report-row-description-modified = å·²æ´æ°ç¾æçç»å
¥è³è¨
+about-logins-import-report-row-description-added = å·²æ°å¢ç»å
¥è³è¨
+about-logins-import-report-row-description-error = é¯èª¤: ç¼ºå°æ¬ä½
+
+##
+## Variables:
+## $field (String) - The name of the field from the CSV file for example url, username or password
+
+about-logins-import-report-row-description-error-multiple-values = é¯èª¤: { $field } æ¬ä½æå¤åå¼
+about-logins-import-report-row-description-error-missing-field = é¯èª¤: ç¼ºå° { $field } æ¬ä½
+
+##
+## Variables:
+## $count (number) - The number of affected elements
+
+about-logins-import-report-added =
+ { $count ->
+ *[other] { $count }
çç»å
¥è³è¨å·²æ°å¢
+ }
+about-logins-import-report-modified =
+ { $count ->
+ *[other] { $count }
çç¾æçç»å
¥è³è¨å·²æ´æ°
+ }
+about-logins-import-report-no-change =
+ { $count ->
+ *[other] { $count }
çéè¤çç»å
¥è³è¨
ï¼æªå¯å
¥ï¼
+ }
+about-logins-import-report-error =
+ { $count ->
+ *[other] { $count }
çé¯èª¤
ï¼æªå¯å
¥ï¼
+ }
+
+## Logins import report page
+
+about-logins-import-report-page-title = å¯å
¥æè¦å ±å
diff --git a/browser/browser/aboutPocket.ftl b/browser/browser/aboutPocket.ftl
new file mode 100644
index 00000000000..4e6c7194aff
--- /dev/null
+++ b/browser/browser/aboutPocket.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/.
+
+
+### Pocket button panel strings for about:pocket-saved, about:pocket-signup, and about:pocket-home
+
+
+## about:pocket-saved panel
+
+# Placeholder text for tag input
+pocket-panel-saved-add-tags =
+ .placeholder = æ°å¢æ¨ç±¤
+pocket-panel-saved-error-generic = å試å²åè³ { -pocket-brand-name } æç¼çé¯èª¤ã
+pocket-panel-saved-error-tag-length = æ¨ç±¤å
è½æ 25 åå
+pocket-panel-saved-error-only-links = å
è½å²åéçµ
+pocket-panel-saved-error-not-saved = æªå²åé é¢
+pocket-panel-saved-error-no-internet = æ¨å¿
é é£ç·è³ç¶²é網路æè½å²åè³ { -pocket-brand-name }ãè«å
é£ä¸ç¶²è·¯åè©¦ä¸æ¬¡ã
+pocket-panel-saved-page-removed = 已移é¤é é¢
+pocket-panel-saved-page-saved = å·²å²åè³ { -pocket-brand-name }
+pocket-panel-saved-processing-remove = æ£å¨ç§»é¤é é¢â¦
+pocket-panel-saved-processing-tags = æ£å¨æ°å¢æ¨ç±¤â¦
+pocket-panel-saved-remove-page = ç§»é¤é é¢
+pocket-panel-saved-save-tags = å²å
+pocket-panel-saved-saving-tags = å²åä¸â¦
+pocket-panel-saved-suggested-tags = 建è°çæ¨ç±¤
+pocket-panel-saved-tags-saved = å·²æ°å¢æ¨ç±¤
+pocket-panel-signup-view-list = æª¢è¦æ¸
å®
+
+## about:pocket-signup panel
+
+pocket-panel-signup-already-have = å·²ç¶æ¯ { -pocket-brand-name } 使ç¨è
äºåï¼
+pocket-panel-signup-learn-more = äºè§£æ´å¤
+pocket-panel-signup-login = ç»å
¥
+pocket-panel-signup-signup-email = 使ç¨é»åéµä»¶å°å註å
+pocket-panel-signup-signup-cta = å
費註å { -pocket-brand-name } 帳èã
+pocket-panel-signup-signup-firefox = ä½¿ç¨ { -brand-product-name } 註å
+pocket-panel-signup-tagline = 鍿é¨å°å¨ä»»ä½è£ç½®ä¸ç { -brand-product-name } ä¾å²åæç« èå½±çï¼ç¨å¾åç¨ { -pocket-brand-name } éåã
+pocket-panel-signup-tagline-story-one = å¨ { -brand-product-name } ä¸é»æ { -pocket-brand-name } æéä¾å²åä»»ä½æç« ãå½±çæç¶²é ã
+pocket-panel-signup-tagline-story-two = 鍿é¨å°å¨ä»»ä½è£ç½®ä¸ç¨ { -pocket-brand-name } 檢è¦ã
+
+## about:pocket-home panel
+
+pocket-panel-home-my-list = æçæ¸
å®
+pocket-panel-home-welcome-back = æ¡è¿åä¾
+pocket-panel-home-paragraph = æ¨å¯ä»¥ä½¿ç¨ { -pocket-brand-name } 便¢ç´¢ä¸¦å²åç¶²é ãæç« ãå½±çãPodcastï¼æå¿«éåå°ä¹åéæ²é±è®å®çå
§å®¹ã
+pocket-panel-home-explore-popular-topics = æ¢ç´¢ç±é主é¡
+pocket-panel-home-discover-more = æ¢ç´¢æ´å¤
+pocket-panel-home-explore-more = æ¢ç´¢
diff --git a/browser/browser/aboutPolicies.ftl b/browser/browser/aboutPolicies.ftl
new file mode 100644
index 00000000000..b0e4624c17a
--- /dev/null
+++ b/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 = 伿¥æ¿ç
+
+# 'Active' is used to describe the policies that are currently active
+active-policies-tab = åç¨
+errors-tab = é¯èª¤
+documentation-tab = æä»¶
+
+no-specified-policies-message = å·²éå伿¥æ¿çæåï¼ä½æªè¨å®ä»»ä½æ¿çã
+inactive-message = æªéå伿¥æ¿çæåã
+
+policy-name = æ¿çå稱
+policy-value = æ¿çè¨å®å¼
+policy-errors = æ¿çé¯èª¤
diff --git a/browser/browser/aboutPrivateBrowsing.ftl b/browser/browser/aboutPrivateBrowsing.ftl
new file mode 100644
index 00000000000..e123ca97b7b
--- /dev/null
+++ b/browser/browser/aboutPrivateBrowsing.ftl
@@ -0,0 +1,44 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+privatebrowsingpage-open-private-window-label = éåé±ç§è¦çª
+ .accesskey = P
+about-private-browsing-search-placeholder = æå° Web
+about-private-browsing-info-title = æ¨å¨é±ç§ç覽è¦çªç¶ä¸
+about-private-browsing-info-myths = é±ç§ç覽åè½ç常è¦è¿·æ
+about-private-browsing-search-btn =
+ .title = æå° Web
+# Variables
+# $engine (String): the name of the user's default search engine
+about-private-browsing-handoff =
+ .title = ä½¿ç¨ { $engine } æå°æè¼¸å
¥ç¶²å
+about-private-browsing-handoff-no-engine =
+ .title = æå°æè¼¸å
¥ç¶²å
+# Variables
+# $engine (String): the name of the user's default search engine
+about-private-browsing-handoff-text = ä½¿ç¨ { $engine } æå°æè¼¸å
¥ç¶²å
+about-private-browsing-handoff-text-no-engine = æå°æè¼¸å
¥ç¶²å
+about-private-browsing-not-private = æ¨ç®åä¸å¨é±ç§ç覽è¦çªç¶ä¸ã
+about-private-browsing-info-description = { -brand-short-name } æå¨çµææééææé±ç§ç覽åé èè¦çªæï¼æ¸
餿¨çæå°èä¸ç¶²ç´éãéç¶é樣åä¸æè®æ¨å°ç¶²ç«æé»ä¿¡æ¥è
å¿åï¼ä½éæ¯å¯ä»¥æ´ç°¡å®å°±è®èæ¨ä½¿ç¨ç¸åé»è
¦çäººç¡æ³å¾ç¥æ¨å¨ç·ä¸åäºä»éº¼äºã
+about-private-browsing-need-more-privacy = éè¦æ´å¤é±ç§åï¼
+about-private-browsing-turn-on-vpn = è«è©¦ç¨ { -mozilla-vpn-brand-name }
+about-private-browsing-info-description-private-window = é±ç§ç覽è¦çª: { -brand-short-name } æå¨æ¨ééææé±ç§è¦çªå¾æ¸
餿å°èç覽ç´éï¼ä½é麼åéç¡æ³ä½¿æ¨å¿åã
+about-private-browsing-info-description-simplified = { -brand-short-name } æå¨æ¨ééææé±ç§è¦çªå¾æ¸
餿å°èç覽ç´éï¼ä½é麼åéç¡æ³ä½¿æ¨å¿åã
+about-private-browsing-learn-more-link = äºè§£æ´å¤
+about-private-browsing-hide-activity = é¨èä¸ç¶²ï¼é±èè¡çºæ´»åèä½ç½®ç´é
+about-private-browsing-get-privacy = 鍿é¨å°ä¸ç¶²é½ç²å¾é±ç§ä¿è·
+about-private-browsing-hide-activity-1 = ä½¿ç¨ { -mozilla-vpn-brand-name } é±èä¸ç¶²ç´éèä½ç½®è³è¨ãå°±ç®ä½¿ç¨å
¬ç¨ Wi-Fiï¼åªè¦è¼é¬ä¸é»å³å¯å»ºç«å®å
¨é£ç·ã
+about-private-browsing-prominent-cta = ä½¿ç¨ { -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 } é²è¡æå°
+about-private-browsing-search-banner-description =
+ { PLATFORM() ->
+ [windows] å¯å°é¸é
åææä¸åæå°å¼æ
+ *[other] å¯å°å好è¨å®åææä¸åæå°å¼æ
+ }
+about-private-browsing-search-banner-close-button =
+ .aria-label = éé
diff --git a/browser/browser/aboutRestartRequired.ftl b/browser/browser/aboutRestartRequired.ftl
new file mode 100644
index 00000000000..796499fa647
--- /dev/null
+++ b/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 = éè¦éæ°åå
+restart-required-header = æ±æï¼æåéè¦ééä¸ä¸ç覽å¨ã
+restart-required-intro-brand = { -brand-short-name } å·²æ¼èæ¯å®è£æ´æ°ï¼è«é»æãéé { -brand-short-name }ãå®ææ´æ°ã
+restart-required-description = ééä¹å¾å°éåææé é¢ãè¦çªèåé ï¼è®æ¨å¯å¿«éåå°åæ¬çå°æ¹ã
+
+restart-button-label = éæ°åå { -brand-short-name }
diff --git a/browser/browser/aboutRobots.ftl b/browser/browser/aboutRobots.ftl
new file mode 100644
index 00000000000..a31628b4b11
--- /dev/null
+++ b/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 = æ¡è¿ï¼äººé¡ï¼
+# Movie: The Day The Earth Stood Still. Spoken by Klaatu.
+error-short-desc-text = æå帶èåå¹³èå好åä¾æè¨ªæ¨ï¼
+# Various books by Isaac Asimov. http://en.wikipedia.org/wiki/Three_Laws_of_Robotics
+error-long-desc1 = æ©å¨äººä¸å¾å·å®³äººé¡ï¼æè¢ææè§åè¦äººé¡åå°å·å®³ã
+# Movie: Blade Runner. Batty: "I've seen things you people wouldnât believe..."
+error-long-desc2 = æ©å¨äººè¦éä½ å人é¡çµå°ç¡æ³ç½®ä¿¡çäºç©ã
+# Book: Hitchhikerâs Guide To The Galaxy. What the Sirius Cybernetics Corporation calls robots.
+error-long-desc3 = æ©å¨äººæ¯æ¨çå¡è ä¼ä¼´ï¼æå®ä½ä¼´å¿«æ¨ç¡æ¯ã
+# TV: Futurama. Bender's first line is "Bite my shiny metal ass."
+error-long-desc4 = æ©å¨äººæèä¸è©²è¢«å¬çé亮éµå±è¡ã
+# TV: Battlestar Galactica (2004 series). From the opening text.
+error-trailer-desc-text = èä¸ä»åæåè¨åâ¦
+# Book: Hitchhiker's Guide To The Galaxy. Arthur presses a button and it warns him.
+error-try-again = é試
+ .label2 = è«å¿åææ¤é
diff --git a/browser/browser/aboutSessionRestore.ftl b/browser/browser/aboutSessionRestore.ftl
new file mode 100644
index 00000000000..4b8ecfd27b4
--- /dev/null
+++ b/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 = å復ç覽çæ
+
+# 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 = æ±æï¼é忍çåé æéå°ä¸é»éº»ç
©ã
+restore-page-problem-desc = é忍䏿¬¡ççè¦½éæ®µæéå°ä¸é»åé¡ï¼è«é¸æãå復ç覽çæ
ãåè©¦ä¸æ¬¡ã
+restore-page-try-this = éæ¯ç¡æ³éåçè¦½éæ®µåï¼ææå¯è½æ¯æååé å¨é æåé¡ãè«ççä¸åå
åéåçåé 䏿åªäºæ¯ä¸éè¦éåçï¼åæ¶å¾é¸å¾åéåã
+
+restore-page-hide-tabs = é±èå
åçåé
+restore-page-show-tabs = 檢è¦å
åçåé
+
+# 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 = è¦çª { $windowNumber }
+
+restore-page-restore-header =
+ .label = å復
+
+restore-page-list-header =
+ .label = è¦çªèåé
+
+restore-page-try-again-button =
+ .label = å復ç覽çæ
+ .accesskey = R
+
+restore-page-close-button =
+ .label = æ¾æ£å復
+ .accesskey = N
+
+## The following strings are used in about:welcomeback
+
+welcome-back-tab-title = æåï¼
+welcome-back-page-title = æåï¼
+welcome-back-page-info = å·²ç¶æºå好å¯ä»¥ä½¿ç¨ { -brand-short-name }ã
+
+welcome-back-restore-button =
+ .label = åºç¼å§ï¼
+ .accesskey = L
+
+welcome-back-restore-all-label = éåææè¦çªèåé
+welcome-back-restore-some-label = å
éåæ³è¦çé
ç®
+
+welcome-back-page-info-link = å·²ç§»é¤æ¨çéå å
ä»¶èèªè¨èª¿æ´ï¼ä¸¦å°ç覽å¨è¨å®æ¢å¾©æé è¨å¼ãè¥é樣éç¡æ³è§£æ±ºæ¨çåé¡ï¼çè§£æ¨éå¯ä»¥åä»éº¼ã
+
diff --git a/browser/browser/aboutTabCrashed.ftl b/browser/browser/aboutTabCrashed.ftl
new file mode 100644
index 00000000000..2a23b495ca6
--- /dev/null
+++ b/browser/browser/aboutTabCrashed.ftl
@@ -0,0 +1,22 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+crashed-title = åé é¯èª¤åå ±å¡
+crashed-close-tab-button = ééåé
+crashed-restore-tab-button = é忤åé
+crashed-restore-all-button = éåææç¼çé¯èª¤çåé
+crashed-header = ååï¼æ¨çåé ç¼çé¯èª¤äºã
+crashed-offer-help = è®æåä¾å¹«å¿ï¼
+crashed-single-offer-help-message = 黿ã{ crashed-restore-tab-button }ãä¾éæ°è¼å
¥é é¢ã
+crashed-multiple-offer-help-message = 黿ã{ crashed-restore-tab-button }ãæã{ crashed-restore-all-button }ãä¾éæ°è¼å
¥é é¢ã
+crashed-request-help = 顿幫åå¿åï¼
+crashed-request-help-message = é¯èª¤å ±åå¯å¹«å©æåæ¾åºåé¡ï¼ä¸¦è® { -brand-short-name } è®å¾æ´å¥½ã
+crashed-request-report-title = åå ±æ¤åé
+crashed-send-report-2 = èªååå³é¯èª¤å ±åï¼è®æåè½ä¿®æ£é¡ä¼¼çåé¡
+crashed-comment =
+ .placeholder = å ä¸é註ï¼éè¨»ææ¯å
¬éå¯è¦çï¼
+crashed-include-URL-2 = å
å« { -brand-short-name } ç¼çé¯èª¤æï¼æ¨éåçç¶²ç«ç¶²åã
+crashed-report-sent = é¯èª¤å ±åå·²éåºï¼æè¬æ¨å¹«å¿è® { -brand-short-name } è®å¾æ´å¥½ï¼
+crashed-request-auto-submit-title = åå ±èæ¯åé
+crashed-auto-submit-checkbox-2 = æ´æ°å好è¨å®ï¼å¨ { -brand-short-name } ç¼çé¯èª¤æèªåéåºé¯èª¤å ±å
diff --git a/browser/browser/aboutUnloads.ftl b/browser/browser/aboutUnloads.ftl
new file mode 100644
index 00000000000..a856f6743c2
--- /dev/null
+++ b/browser/browser/aboutUnloads.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/.
+
+
+### Strings used in about:unloads, allowing users to manage the "tab unloading"
+### feature.
+
+about-unloads-page-title = åé éè¼
+about-unloads-intro-1 = { -brand-short-name } æä¾èªåå¸è¼åé çåè½ï¼ä¾é²æ¢æç¨ç¨å¼å è¨æ¶é«ä¸è¶³ç¼çé¯èª¤ãæ¤åè½æä¾ç
§å¤å屬æ§ä¾æ±ºå®æ¥ä¸ä¾è¦å¸é¤åªååé ãæ¤é é¢é¡¯ç¤º { -brand-short-name } å¦ä½æåºåé çåªå
ç¨åº¦ï¼ä»¥å觸ç¼éè¼ææå¸è¼åªäºåé ã
+about-unloads-intro-2 = 䏿¹å°ä¾ç
§ { -brand-short-name } å¸è¼åé çé åºä¾é¡¯ç¤ºç®åéåçåé ã以ç²é«å顯示çèçç¨åº ID 表示å®åèçç¶²é çé å±¤ç«æ¡å
§å®¹ï¼ä»¥æé«å顯示çåé å代表å
¶èçç¨åºæ¯ç±å
¶ä»ä¸ååé å
±å使ç¨ä¸ãæ¨å¯ä»¥é»æä¸æ¹çãå¸è¼ãä¾é²è¡åé éè¼ã
+about-unloads-intro = { -brand-short-name } æä¾èªåå¸è¼åé çåè½ï¼ä¾é²æ¢æç¨ç¨å¼å ç³»çµ±è¨æ¶é«ä¸è¶³èç¼çé¯èª¤ãæ¤åè½æä¾ç
§å¤å屬æ§ä¾æ±ºå®æ¥ä¸ä¾è¦å¸é¤åªååé ãæ¤é é¢é¡¯ç¤º { -brand-short-name } å¦ä½æåºåé çåªå
ç¨åº¦ï¼ä»¥å觸ç¼éè¼ææå¸è¼åªäºåé ãæ¨å¯é»æä¸æ¹çå¸è¼æé便åè§¸ç¼æ¤åè½ã
+# The link points to a Firefox documentation page, only available in English,
+# with title "Tab Unloading"
+about-unloads-learn-more = è¥éæéæ¬é é¢èæ¤åè½çæ´å¤è³è¨ï¼è«åè Tab Unloading 䏿ã
+about-unloads-last-updated = æå¾æ´æ°æ¼: { DATETIME($date, year: "numeric", month: "numeric", day: "numeric", hour: "numeric", minute: "numeric", second: "numeric", hour12: "false") }
+about-unloads-button-unload = å¸è¼
+ .title = å¸è¼æé«åªå
æ¬çåé
+about-unloads-no-unloadable-tab = æ²æå¯å¸è¼çåé ã
+about-unloads-column-priority = åªå
æ¬
+about-unloads-column-host = 主æ©
+about-unloads-column-last-accessed = æå¾ååæ¼
+about-unloads-column-weight = åºç¤æ¬é
+ .title = ææ ¹æåé çå種屬æ§ï¼ä¾å¦æ¯å¦æ£å¨ææ¾é³è¨ãWebRTC çè¨ç®åºéåå¼ï¼ä¸¦æ ¹ææ¤å¼æåºåé ã
+about-unloads-column-sortweight = æ¬¡è¦æ¬é
+ .title = æ ¹æåºç¤æ¬éæåºåé å¾ï¼ææ ¹æåé è¨æ¶é«ç¨éãèçç¨åºæ¸éç®åºéåå¼ï¼åä»¥æ¤æ¬éæåºã
+about-unloads-column-memory = è¨æ¶é«
+ .title = åé çè¨æ¶é«ç¨éä¼°è¨å¼
+about-unloads-column-processes = èçç¨åº ID
+ .title = èçåé å
§å®¹çèçç¨åº ID æ¸
å®
+about-unloads-last-accessed = { DATETIME($date, year: "numeric", month: "numeric", day: "numeric", hour: "numeric", minute: "numeric", second: "numeric", hour12: "false") }
+about-unloads-memory-in-mb = { NUMBER($mem, maxFractionalUnits: 2) } MB
+about-unloads-memory-in-mb-tooltip =
+ .title = { NUMBER($mem, maxFractionalUnits: 2) } MB
diff --git a/browser/browser/accounts.ftl b/browser/browser/accounts.ftl
new file mode 100644
index 00000000000..7aae5e6b721
--- /dev/null
+++ b/browser/browser/accounts.ftl
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Used as the FxA toolbar menu item value when user has not
+# finished setting up an account.
+account-finish-account-setup = 宿右èè¨å®
+
+# Used as the FxA toolbar menu item title when the user
+# needs to reconnect their account.
+account-disconnected2 = 帳è已忶é£çµ
+
+# Menu item that sends a tab to all synced devices.
+account-send-to-all-devices = å³éå°ææè£ç½®
+
+# Menu item that links to the Firefox Accounts settings for connected devices.
+account-manage-devices = 管çè£ç½®â¦
diff --git a/browser/browser/allTabsMenu.ftl b/browser/browser/allTabsMenu.ftl
new file mode 100644
index 00000000000..b4c0f902b9d
--- /dev/null
+++ b/browser/browser/allTabsMenu.ftl
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# "Search" is a verb, as in "Search through tabs".
+all-tabs-menu-search-tabs =
+ .label = æå°åé
+
+all-tabs-menu-new-user-context =
+ .label = æ°å¢å®¹å¨åé
+
+all-tabs-menu-hidden-tabs =
+ .label = é±èåé
+
+all-tabs-menu-manage-user-context =
+ .label = 管ç容å¨
+ .accesskey = O
diff --git a/browser/browser/appExtensionFields.ftl b/browser/browser/appExtensionFields.ftl
new file mode 100644
index 00000000000..21cf5ebb2b9
--- /dev/null
+++ b/browser/browser/appExtensionFields.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/.
+
+
+## Theme names and descriptions used in the Themes panel in about:addons
+
+# "Auto" is short for automatic. It can be localized without limitations.
+extension-default-theme-name-auto = ç³»çµ±ä½æ¯ä¸»é¡ â èªå
+extension-default-theme-description = æ ¹æä½æ¥ç³»çµ±è¨å®ä¾é¡¯ç¤ºæéãé¸å®ãè¦çªçå¤è§ã
+extension-firefox-compact-light-name = 亮è²
+extension-firefox-compact-light-description = 亮è²ä½æ¯ä¸»é¡ã
+extension-firefox-compact-dark-name = æè²
+extension-firefox-compact-dark-description = æè²ä½æ¯ä¸»é¡ã
+extension-firefox-alpenglow-name = Firefox Alpenglow
+extension-firefox-alpenglow-description = 使ç¨è²å½©ç¹½ç´çæéãé¸å®ãè¦çªæ¨£å¼ã
+
+## Colorway Themes
+## These themes are variants of a colorway. The colorway is specified in the
+## $colorway-name variable.
+## Variables
+## $colorway-name (String) The name of a colorway (e.g. Graffiti, Elemental).
+
+extension-colorways-soft-name = { $colorway-name } â è»è²èª¿
+extension-colorways-balanced-name = { $colorway-name } â åè¡¡è²èª¿
+# "Bold" is used in the sense of bravery or courage, not in the sense of
+# emphasized text.
+extension-colorways-bold-name = { $colorway-name } â æ¿çè²èª¿
diff --git a/browser/browser/appMenuNotifications.ftl b/browser/browser/appMenuNotifications.ftl
new file mode 100644
index 00000000000..a731aaae402
--- /dev/null
+++ b/browser/browser/appMenuNotifications.ftl
@@ -0,0 +1,66 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+appmenu-update-available2 =
+ .label = æå¯ç¨çæ´æ°
+ .buttonlabel = ä¸è¼
+ .buttonaccesskey = D
+ .secondarybuttonlabel = ç¥éäºï¼
+ .secondarybuttonaccesskey = m
+appmenu-update-available-message2 = ä¸è¼ææ°çç { -brand-shorter-name }ã
+appmenu-update-manual2 =
+ .label = æå¯ç¨çæ´æ°
+ .buttonlabel = ä¸è¼
+ .buttonaccesskey = D
+ .secondarybuttonlabel = ç¥éäºï¼
+ .secondarybuttonaccesskey = m
+appmenu-update-manual-message2 = { -brand-shorter-name } ç¡æ³èªåæ´æ°ãè«ç´æ¥ä¸è¼ææ°çæ¬ï¼ä¸æå½±é¿ä»»ä½å·²åçè³è¨æèªè¨é
ç®ã
+appmenu-update-unsupported2 =
+ .label = ç¡æ³æ´æ°
+ .buttonlabel = äºè§£æ´å¤
+ .buttonaccesskey = L
+ .secondarybuttonlabel = ç¥éäºï¼
+ .secondarybuttonaccesskey = m
+appmenu-update-unsupported-message2 = æ¨ç使¥ç³»çµ±èææ°çç { -brand-shorter-name } ä¸ç¸å®¹ã
+appmenu-update-restart2 =
+ .label = æå¯ç¨çæ´æ°
+ .buttonlabel = æ´æ°ä¸¦éæ°åå
+ .buttonaccesskey = U
+ .secondarybuttonlabel = ç¥éäºï¼
+ .secondarybuttonaccesskey = m
+appmenu-update-restart-message2 = ä¸è¼ææ°çç { -brand-shorter-name }ï¼éæ°ååå¾å°ä¿çå·²ç¶éåçåé èè¦çªã
+appmenu-update-other-instance =
+ .label = { -brand-shorter-name } ç¡æ³èªåæ´æ°è³ææ°çæ¬ã
+ .buttonlabel = ä»ç¶æ´æ° { -brand-shorter-name }
+ .buttonaccesskey = U
+ .secondarybuttonlabel = ç¾å¨ä¸è¦
+ .secondarybuttonaccesskey = N
+appmenu-update-other-instance-message = { -brand-shorter-name } å·²ç¶æ¨åºï¼ä½ç±æ¼æå¦ä¸ä»½ { -brand-shorter-name } ä»å¨å·è¡ï¼ç¡æ³å®è£ãè«å°å
¶ééä¾å®ææ´æ°ï¼ææ¯é»æãä»ç¶æ´æ°ãï¼ä½é£ä¸ä»½ { -brand-shorter-name } å¨éæ°åååéä½å¯è½æä¸æ£å¸¸ï¼ã
+
+appmenu-addon-private-browsing-installed2 =
+ .buttonlabel = 好ç
+ .buttonaccesskey = O
+appmenu-addon-post-install-message3 = ééæç¨ç¨å¼é¸å®ç®¡çæ¨çéå å
ä»¶è使¯ä¸»é¡ã
+appmenu-addon-post-install-incognito-checkbox =
+ .label = å
è¨±æ¤æ´å
å¥ä»¶æ¼é±ç§ç覽è¦çªä¸å·è¡
+ .accesskey = A
+
+appmenu-new-tab-controlled-changes =
+ .label = æ¨çæ°åé å·²ç¶è®æ´ã
+ .buttonlabel = ä¿çè®æ´
+ .buttonaccesskey = K
+ .secondarybuttonlabel = ç®¡çæ°åé
+ .secondarybuttonaccesskey = M
+appmenu-homepage-controlled-changes =
+ .label = æ¨çé¦é å·²ç¶è®æ´ã
+ .buttonlabel = ä¿çè®æ´
+ .buttonaccesskey = K
+ .secondarybuttonlabel = 管çé¦é
+ .secondarybuttonaccesskey = M
+appmenu-tab-hide-controlled =
+ .label = å忍ææé±èçåé
+ .buttonlabel = ä¿æé±èåé
+ .buttonaccesskey = K
+ .secondarybuttonlabel = åç¨æ´å
å¥ä»¶
+ .secondarybuttonaccesskey = D
diff --git a/browser/browser/appmenu.ftl b/browser/browser/appmenu.ftl
new file mode 100644
index 00000000000..25199ea4c14
--- /dev/null
+++ b/browser/browser/appmenu.ftl
@@ -0,0 +1,273 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## App Menu
+
+appmenuitem-update-banner3 =
+ .label-update-downloading = æ£å¨ä¸è¼ { -brand-shorter-name } æ´æ°
+ .label-update-available = å·²æ¨åºæ´æ° â ç«å³ä¸è¼
+ .label-update-manual = å·²æ¨åºæ´æ° â ç«å³ä¸è¼
+ .label-update-unsupported = ç¡æ³æ´æ° â 系統ä¸ç¸å®¹
+ .label-update-restart = å·²æ¨åºæ´æ° â ç«å³éæ°åå
+appmenuitem-protection-dashboard-title = ä¿è·è³è¨åé¶æ¿
+appmenuitem-banner-update-downloading =
+ .label = æ£å¨ä¸è¼ { -brand-shorter-name } æ´æ°
+appmenuitem-banner-update-available =
+ .label = å·²æ¨åºæ´æ° â ç«å³ä¸è¼
+appmenuitem-banner-update-manual =
+ .label = å·²æ¨åºæ´æ° â ç«å³ä¸è¼
+appmenuitem-banner-update-unsupported =
+ .label = ç¡æ³æ´æ° â 系統ä¸ç¸å®¹
+appmenuitem-banner-update-restart =
+ .label = å·²æ¨åºæ´æ° â ç«å³éæ°åå
+appmenuitem-new-tab =
+ .label = éæ°åé
+appmenuitem-new-window =
+ .label = éæ°è¦çª
+appmenuitem-new-private-window =
+ .label = éæ°é±ç§è¦çª
+appmenuitem-history =
+ .label = æ·å²
+appmenuitem-downloads =
+ .label = ä¸è¼é
ç®
+appmenuitem-passwords =
+ .label = å¯ç¢¼
+appmenuitem-addons-and-themes =
+ .label = éå å
ä»¶è使¯ä¸»é¡
+appmenuitem-print =
+ .label = åå°â¦
+appmenuitem-find-in-page =
+ .label = å¨é é¢ä¸æå°â¦
+appmenuitem-zoom =
+ .value = 縮æ¾
+appmenuitem-more-tools =
+ .label = æ´å¤å·¥å
·
+appmenuitem-help =
+ .label = 說æ
+appmenuitem-exit2 =
+ .label =
+ { PLATFORM() ->
+ [linux] é¢é
+ *[other] çµæ
+ }
+appmenu-menu-button-closed2 =
+ .tooltiptext = éåæç¨ç¨å¼é¸å®
+ .label = { -brand-short-name }
+appmenu-menu-button-opened2 =
+ .tooltiptext = ééæç¨ç¨å¼é¸å®
+ .label = { -brand-short-name }
+# Settings is now used to access the browser settings across all platforms,
+# instead of Options or Preferences.
+appmenuitem-settings =
+ .label = è¨å®
+
+## Zoom and Fullscreen Controls
+
+appmenuitem-zoom-enlarge =
+ .label = æ¾å¤§
+appmenuitem-zoom-reduce =
+ .label = 縮å°
+appmenuitem-fullscreen =
+ .label = å
¨è¢å¹
+
+## Firefox Account toolbar button and Sync panel in App menu.
+
+appmenu-remote-tabs-sign-into-sync =
+ .label = ç»å
¥é²è¡åæ¥â¦
+appmenu-remote-tabs-turn-on-sync =
+ .label = éå忥â¦
+# This is shown after the tabs list if we can display more tabs by clicking on the button
+appmenu-remote-tabs-showmore =
+ .label = 顯示æ´å¤åé
+ .tooltiptext = 顯示ä¾èªæ¤è£ç½®çæ´å¤åé
+# This is shown beneath the name of a device when that device has no open tabs
+appmenu-remote-tabs-notabs = ç¡å·²éåçåé
+# This is shown when Sync is configured but syncing tabs is disabled.
+appmenu-remote-tabs-tabsnotsyncing = éååé 忥åè½ä»¥æª¢è¦æ¨å
¶ä»è£ç½®ä¸çåé æ¸
å®ã
+appmenu-remote-tabs-opensettings =
+ .label = é¸é
+# This is shown when Sync is configured but this appears to be the only device attached to
+# the account. We also show links to download Firefox for android/ios.
+appmenu-remote-tabs-noclients = æ³å¨é裡çå°æ¨å
¶ä»è£ç½®ä¸éåçåé åï¼
+appmenu-remote-tabs-connectdevice =
+ .label = é£çµå
¶ä»è£ç½®
+appmenu-remote-tabs-welcome = æª¢è¦æ¨å
¶ä»è£ç½®ä¸çåé æ¸
å®ã
+appmenu-remote-tabs-unverified = éè¦é©èæ¨ç帳èã
+appmenuitem-fxa-toolbar-sync-now2 = ç«å»åæ¥
+appmenuitem-fxa-sign-in = ç»å
¥ { -brand-product-name }
+appmenuitem-fxa-manage-account = 管ç帳è
+appmenu-fxa-header2 = { -fxaccount-brand-name }
+# Variables
+# $time (string) - Localized relative time since last sync (e.g. 1 second ago,
+# 3 hours ago, etc.)
+appmenu-fxa-last-sync = 䏿¬¡åæ¥æ¼ { $time }
+ .label = 䏿¬¡åæ¥æ¼ { $time }
+appmenu-fxa-sync-and-save-data2 = 忥䏦å²åè³æ
+appmenu-fxa-signed-in-label = ç»å
¥
+appmenu-fxa-setup-sync =
+ .label = éå忥â¦
+appmenu-fxa-show-more-tabs = 顯示æ´å¤åé
+appmenuitem-save-page =
+ .label = å¦åæ°æªâ¦
+
+## What's New panel in App menu.
+
+whatsnew-panel-header = æä»éº¼æ°é®®äº
+# 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 = ææ°åè½æ¨åºæéç¥æ
+ .accesskey = f
+
+## The Firefox Profiler â The popup is the UI to turn on the profiler, and record
+## performance profiles. To enable it go to profiler.firefox.com and click
+## "Enable Profiler Menu Button".
+
+profiler-popup-button-idle =
+ .label = æè½æª¢æ¸¬å¨
+ .tooltiptext = ç´éæè½æª¢æ¸¬æª
+profiler-popup-button-recording =
+ .label = æè½æª¢æ¸¬å¨
+ .tooltiptext = æª¢æ¸¬å¨æ£å¨ç´éæè½æª¢æ¸¬æª
+profiler-popup-button-capturing =
+ .label = æè½æª¢æ¸¬å¨
+ .tooltiptext = æª¢æ¸¬å¨æ£å¨ç´éæè½æª¢æ¸¬æª
+profiler-popup-title =
+ .value = { -profiler-brand-name }
+profiler-popup-reveal-description-button =
+ .aria-label = æé²æ´å¤è³è¨
+profiler-popup-description-title =
+ .value = ç´éãåæãå享
+profiler-popup-description = èæ¨çåéå享æè½æ¸¬éè³è¨ï¼ä¸å解決æè½åé¡ã
+profiler-popup-learn-more = äºè§£æ´å¤
+profiler-popup-learn-more-button =
+ .label = äºè§£æ´å¤
+profiler-popup-settings =
+ .value = è¨å®
+# This link takes the user to about:profiling, and is only visible with the Custom preset.
+profiler-popup-edit-settings = 編輯è¨å®å¼â¦
+# This link takes the user to about:profiling, and is only visible with the Custom preset.
+profiler-popup-edit-settings-button =
+ .label = 編輯è¨å®å¼â¦
+profiler-popup-disabled = Profiler ç®åå·²åç¨ï¼å¯è½æ¯å çºéåäºé±ç§ç覽è¦çªã
+profiler-popup-recording-screen = è¨éä¸â¦
+# The profiler presets list is generated elsewhere, but the custom preset is defined
+# here only.
+profiler-popup-presets-custom =
+ .label = èªè¨
+profiler-popup-start-recording-button =
+ .label = éå§è¨é
+profiler-popup-discard-button =
+ .label = æ¨æ£
+profiler-popup-capture-button =
+ .label = ææ
+profiler-popup-start-shortcut =
+ { PLATFORM() ->
+ [macos] ââ§1
+ *[other] Ctrl+Shift+1
+ }
+profiler-popup-capture-shortcut =
+ { PLATFORM() ->
+ [macos] ââ§2
+ *[other] Ctrl+Shift+2
+ }
+
+## Profiler presets
+## They are shown in the popup's select box.
+
+
+# Presets and their l10n IDs are defined in the file
+# devtools/client/performance-new/popup/background.jsm.js
+# Please take care that the same values are also defined in devtools' perftools.ftl.
+
+profiler-popup-presets-web-developer-description = æ¨è¦æ¼å°å¤§é¨åç¶²é æç¨ç¨å¼é¤é¯æä½¿ç¨ï¼é¡å¤è² è·è¼ä½ã
+profiler-popup-presets-web-developer-label =
+ .label = ç¶²é éç¼è
+profiler-popup-presets-firefox-platform-description = æ¨è¦æ¼ Firefox å
§é¨å¹³å°é¤é¯æä½¿ç¨ã
+profiler-popup-presets-firefox-platform-label =
+ .label = Firefox å¹³å°
+profiler-popup-presets-firefox-front-end-description = æ¨è¦æ¼ Firefox å
§é¨å端ä»é¢é¤é¯æä½¿ç¨ã
+profiler-popup-presets-firefox-front-end-label =
+ .label = Firefox å端
+profiler-popup-presets-firefox-graphics-description = æ¨è¦æ¼æª¢æ¥ Firefox åå½¢æè½åé¡æä½¿ç¨ã
+profiler-popup-presets-firefox-graphics-label =
+ .label = Firefox åå½¢
+profiler-popup-presets-media-description = æ¨è¦æ¼è¨ºæ· Firefox å½±é³åé¡æä½¿ç¨ã
+profiler-popup-presets-firefox-description = å° { -brand-shorter-name } é²è¡æè½æª¢æ¸¬ç建è°é è¨å¼ã
+profiler-popup-presets-firefox-label =
+ .label = { -brand-shorter-name }
+profiler-popup-presets-graphics-description = æ¼ { -brand-shorter-name } 診æ·åå½¢ Bug æçé è¨å¼ã
+profiler-popup-presets-graphics-label =
+ .label = åå½¢
+profiler-popup-presets-media-description2 = æ¼ { -brand-shorter-name } 診æ·å½±é³ Bug æçé è¨å¼ã
+profiler-popup-presets-media-label =
+ .label = åªé«
+profiler-popup-presets-custom-label =
+ .label = èªè¨
+
+## History panel
+
+appmenu-manage-history =
+ .label = ç®¡çæ·å²
+appmenu-reopen-all-tabs = å復ææåé
+appmenu-reopen-all-windows = å復ææè¦çª
+appmenu-restore-session =
+ .label = å復å
åçç覽çæ
+appmenu-clear-history =
+ .label = æ¸
餿è¿çæ·å²è¨éâ¦
+appmenu-recent-history-subheader = æè¿ç´é
+appmenu-recently-closed-tabs =
+ .label = æè¿ééçåé
+appmenu-recently-closed-windows =
+ .label = æè¿ééçè¦çª
+
+## Help panel
+
+appmenu-help-header =
+ .title = { -brand-shorter-name } 說æ
+appmenu-about =
+ .label = éæ¼ { -brand-shorter-name }
+ .accesskey = A
+appmenu-get-help =
+ .label = åå¾å¹«å©
+ .accesskey = H
+appmenu-help-more-troubleshooting-info =
+ .label = æ´å¤çé£æè§£è³è¨
+ .accesskey = T
+appmenu-help-report-site-issue =
+ .label = åå ±ç¶²ç«åé¡â¦
+appmenu-help-feedback-page =
+ .label = éåºæè¦åé¥â¦
+ .accesskey = S
+
+## appmenu-help-enter-troubleshoot-mode and appmenu-help-exit-troubleshoot-mode
+## are mutually exclusive, so it's possible to use the same accesskey for both.
+
+appmenu-help-enter-troubleshoot-mode2 =
+ .label = çé£æè§£æ¨¡å¼â¦
+ .accesskey = M
+appmenu-help-exit-troubleshoot-mode =
+ .label = ééçé£æè§£æ¨¡å¼
+ .accesskey = M
+
+## appmenu-help-report-deceptive-site and appmenu-help-not-deceptive
+## are mutually exclusive, so it's possible to use the same accesskey for both.
+
+appmenu-help-report-deceptive-site =
+ .label = åå ±è©é¨ç¶²ç«â¦
+ .accesskey = D
+appmenu-help-not-deceptive =
+ .label = é䏿¯è©é¨ç¶²ç«â¦
+ .accesskey = d
+
+## More Tools
+
+appmenu-customizetoolbar =
+ .label = èªè¨å·¥å
·åâ¦
+appmenu-taskmanager =
+ .label = å·¥ä½ç®¡çå¡
+appmenu-developer-tools-subheader = ç覽å¨å·¥å
·
+appmenu-developer-tools-extensions =
+ .label = éç¼è
å°ç¨çæ´å
å¥ä»¶
diff --git a/browser/browser/branding/brandings.ftl b/browser/browser/branding/brandings.ftl
new file mode 100644
index 00000000000..3e668dbe304
--- /dev/null
+++ b/browser/browser/branding/brandings.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/.
+
+
+## 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
+-translations-brand-name = Firefox Translations
+
+# âSuggestâ can be localized, âFirefoxâ must be treated as a brand
+# and kept in English.
+-firefox-suggest-brand-name = Firefox 建è°
diff --git a/browser/browser/branding/sync-brand.ftl b/browser/browser/branding/sync-brand.ftl
new file mode 100644
index 00000000000..c57d4a4db16
--- /dev/null
+++ b/browser/browser/branding/sync-brand.ftl
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# âAccountâ can be localized, âFirefoxâ must be treated as a brand,
+# and kept in English.
+-fxaccount-brand-name = Firefox 帳è
diff --git a/browser/browser/browser.ftl b/browser/browser/browser.ftl
new file mode 100644
index 00000000000..7b968806176
--- /dev/null
+++ b/browser/browser/browser.ftl
@@ -0,0 +1,797 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 }ï¼é±ç§ç覽模å¼ï¼
+ .data-content-title-default = { $content-title } â { -brand-full-name }
+ .data-content-title-private = { $content-title } â { -brand-full-name }ï¼é±ç§ç覽模å¼ï¼
+# 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 } âï¼é±ç§ç覽模å¼ï¼
+ .data-content-title-default = { $content-title }
+ .data-content-title-private = { $content-title } âï¼é±ç§ç覽模å¼ï¼
+# 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 = 檢è¦ç¶²ç«è³è¨
+
+## Tooltips for images appearing in the address bar
+
+urlbar-services-notification-anchor =
+ .tooltiptext = éåå®è£è¨æ¯é¢æ¿
+urlbar-web-notification-anchor =
+ .tooltiptext = è®æ´æ¨æ¯å¦è¦æ¶å°ä¾èªæ¤ç¶²ç«çéç¥
+urlbar-midi-notification-anchor =
+ .tooltiptext = éå MIDI 颿¿
+urlbar-eme-notification-anchor =
+ .tooltiptext = 管ç DRM è»é«ä½¿ç¨
+urlbar-web-authn-anchor =
+ .tooltiptext = éå Web 身份é©è颿¿
+urlbar-canvas-notification-anchor =
+ .tooltiptext = 管ç canvas è³æå徿¬é
+urlbar-web-rtc-share-microphone-notification-anchor =
+ .tooltiptext = ç®¡çæ¨æ¯å¦è¦èç¶²ç«å享麥å
風
+urlbar-default-notification-anchor =
+ .tooltiptext = éåè¨æ¯é¢æ¿
+urlbar-geolocation-notification-anchor =
+ .tooltiptext = éåä½ç½®è«æ±é¢æ¿
+urlbar-xr-notification-anchor =
+ .tooltiptext = éåèæ¬å¯¦å¢æ¬é颿¿
+urlbar-storage-access-anchor =
+ .tooltiptext = éåçè¦½æ´»åæ¬é颿¿
+urlbar-translate-notification-anchor =
+ .tooltiptext = ç¿»è¯æ¤é é¢
+urlbar-web-rtc-share-screen-notification-anchor =
+ .tooltiptext = ç®¡çæ¨æ¯å¦è¦èç¶²ç«å享è¦çªæç«é¢
+urlbar-indexed-db-notification-anchor =
+ .tooltiptext = éåé¢ç·å²åè¨æ¯é¢æ¿
+urlbar-password-notification-anchor =
+ .tooltiptext = éåå²åå¯ç¢¼è¨æ¯é¢æ¿
+urlbar-translated-notification-anchor =
+ .tooltiptext = 管çé é¢ç¿»è¯
+urlbar-plugins-notification-anchor =
+ .tooltiptext = 管çéå å
ä»¶ä½¿ç¨æ
æ³
+urlbar-web-rtc-share-devices-notification-anchor =
+ .tooltiptext = ç®¡çæ¨æ¯å¦è¦èç¶²ç«å享æå½±æ©å/æéº¥å
風
+# "Speakers" is used in a general sense that might include headphones or
+# another audio output connection.
+urlbar-web-rtc-share-speaker-notification-anchor =
+ .tooltiptext = ç®¡çæ¯å¦è¦èç¶²ç«å享å
¶ä»é³æè¼¸åºè£ç½®
+urlbar-autoplay-notification-anchor =
+ .tooltiptext = éåèªåææ¾é¢æ¿
+urlbar-persistent-storage-notification-anchor =
+ .tooltiptext = å°è³æå²åæ¼æçºæ§å²å空é
+urlbar-addons-notification-anchor =
+ .tooltiptext = éåéå å
ä»¶å®è£è¨æ¯é¢æ¿
+urlbar-tip-help-icon =
+ .title = åå¾å¹«å©
+urlbar-search-tips-confirm = 好çï¼ç¥éäº
+# 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 = ç§è¨£:
+
+## 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 = æå¾æ´å°ï¼æ¾å°æ´å¤: ç´æ¥å¾ç¶²ååé²è¡ { $engineName } æå°ã
+urlbar-search-tips-redirect-2 = å¨ç¶²ååé²è¡æå°ï¼å°±å¯çè¦ç± { $engineName } åç覽ç´éæä¾çæå°å»ºè°ã
+# 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 = ä½¿ç¨æ¤æ·å¾ï¼è®æ¨æ´å¿«æ¾å°æ³è¦çæ±è¥¿ã
+
+## Local search mode indicator labels in the urlbar
+
+urlbar-search-mode-bookmarks = æ¸ç±¤
+urlbar-search-mode-tabs = åé
+urlbar-search-mode-history = ç覽ç´é
+
+##
+
+urlbar-geolocation-blocked =
+ .tooltiptext = æ¨å·²å°éæ¤ç¶²ç«å徿¨æå¨ä½ç½®è³è¨çæ¬éã
+urlbar-xr-blocked =
+ .tooltiptext = æ¨å·²å°éæ¤ç¶²ç«çèæ¬å¯¦å¢è£ç½®å忬éã
+urlbar-web-notifications-blocked =
+ .tooltiptext = æ¨å·²å°éæ¤ç¶²ç«æ¨ééç¥çæ¬éã
+urlbar-camera-blocked =
+ .tooltiptext = æ¨å·²å°éæ¤ç¶²ç«çæå½±æ©å忬éã
+urlbar-microphone-blocked =
+ .tooltiptext = æ¨å·²å°éæ¤ç¶²ç«ååæ¨éº¥å
é¢¨çæ¬éã
+urlbar-screen-blocked =
+ .tooltiptext = æ¨å·²å°éæ¤ç¶²ç«å享æ¨è¢å¹ç«é¢çæ¬éã
+urlbar-persistent-storage-blocked =
+ .tooltiptext = æ¨å·²å°éæ¤ç¶²ç«å²åè³æè³æçºæ§å²å空éã
+urlbar-popup-blocked =
+ .tooltiptext = æ¨å°éäºæ¤ç¶²ç«çå½åºè¦çªã
+urlbar-autoplay-media-blocked =
+ .tooltiptext = æ¨å·²å°éæ¤ç¶²ç«èªåææ¾æè²é³çåªé«å
§å®¹ã
+urlbar-canvas-blocked =
+ .tooltiptext = æ¨å·²å°éæ¤ç¶²ç«è®å canvas è³æçæ¬éã
+urlbar-midi-blocked =
+ .tooltiptext = æ¨å·²å°éæ¤ç¶²ç«ç MIDI å忬éã
+urlbar-install-blocked =
+ .tooltiptext = æ¨å·²å°éæ¤ç¶²ç«å®è£éå å
ä»¶ã
+# Variables
+# $shortcut (String) - A keyboard shortcut for the edit bookmark command.
+urlbar-star-edit-bookmark =
+ .tooltiptext = ç·¨è¼¯æ¤æ¸ç±¤ ({ $shortcut })
+# Variables
+# $shortcut (String) - A keyboard shortcut for the add bookmark command.
+urlbar-star-add-bookmark =
+ .tooltiptext = å°æ¬é å å
¥æ¸ç±¤ ({ $shortcut })
+
+## Page Action Context Menu
+
+page-action-manage-extension =
+ .label = ç®¡çæ´å
å¥ä»¶â¦
+page-action-remove-extension =
+ .label = ç§»é¤æ´å
å¥ä»¶
+
+## Auto-hide Context Menu
+
+full-screen-autohide =
+ .label = é±èå·¥å
·å
+ .accesskey = H
+full-screen-exit =
+ .label = é¢éå
¨è¢å¹æ¨¡å¼
+ .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 = 鿬¡ä½¿ç¨ä¸åæå°å¼ææå°:
+search-one-offs-change-settings-compact-button =
+ .tooltiptext = ä¿®æ¹æå°è¨å®
+search-one-offs-context-open-new-tab =
+ .label = 卿°åé 䏿å°
+ .accesskey = T
+search-one-offs-context-set-as-default =
+ .label = è¨çºé è¨æå°å¼æ
+ .accesskey = D
+search-one-offs-context-set-as-default-private =
+ .label = è¨çºé±ç§ç覽模å¼ä¸çé è¨æå°å¼æ
+ .accesskey = P
+# Search engine one-off buttons with an @alias shortcut/keyword.
+# Variables:
+# $engineName (String): The name of the engine.
+# $alias (String): The @alias shortcut/keyword.
+search-one-offs-engine-with-alias =
+ .tooltiptext = { $engineName }ï¼{ $alias }ï¼
+# Shown when adding new engines from the address bar shortcut buttons or context
+# menu, or from the search bar shortcut buttons.
+# Variables:
+# $engineName (String): The name of the engine.
+search-one-offs-add-engine =
+ .label = æ°å¢ã{ $engineName }ã
+ .tooltiptext = æ°å¢ã{ $engineName }ãæå°å¼æ
+ .aria-label = æ°å¢ã{ $engineName }ãæå°å¼æ
+# When more than 5 engines are offered by a web page, they are grouped in a
+# submenu using this as its label.
+search-one-offs-add-engine-menu =
+ .label = æ°å¢æå°å¼æ
+
+## 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 = æ¸ç±¤ï¼{ $restrict }ï¼
+search-one-offs-tabs =
+ .tooltiptext = åé ï¼{ $restrict }ï¼
+search-one-offs-history =
+ .tooltiptext = ç覽ç´éï¼{ $restrict }ï¼
+
+## Bookmark Panel
+
+bookmarks-add-bookmark = æ°å¢æ¸ç±¤
+bookmarks-edit-bookmark = 編輯æ¸ç±¤
+bookmark-panel-cancel =
+ .label = åæ¶
+ .accesskey = C
+# Variables:
+# $count (number): number of bookmarks that will be removed
+bookmark-panel-remove =
+ .label =
+ { $count ->
+ [1] ç§»é¤æ¸ç±¤
+ *[other] ç§»é¤ { $count } çæ¸ç±¤
+ }
+ .accesskey = R
+bookmark-panel-show-editor-checkbox =
+ .label = å²åæé¡¯ç¤ºç·¨è¼¯å¨
+ .accesskey = S
+bookmark-panel-save-button =
+ .label = å²å
+# Width of the bookmark panel.
+# Should be large enough to fully display the Done and
+# Cancel/Remove Bookmark buttons.
+bookmark-panel =
+ .style = min-width: 23em
+
+## Identity Panel
+
+# Variables
+# $host (String): the hostname of the site that is being displayed.
+identity-site-information = { $host } çç¶²ç«è³è¨
+# Variables
+# $host (String): the hostname of the site that is being displayed.
+identity-header-security-with-host =
+ .title = { $host } çé£ç·å®å
¨æ§
+identity-connection-not-secure = ä¸å®å
¨é£ç·
+identity-connection-secure = å®å
¨é£ç·
+identity-connection-failure = é£ç·å¤±æ
+identity-connection-internal = 鿝å®å
¨ç { -brand-short-name } é é¢ã
+identity-connection-file = æ¤é é¢ä½æ¼æ¨çé»è
¦ä¸ã
+identity-extension-page = æ¤é 颿¯æ´å
å¥ä»¶é é¢ã
+identity-active-blocked = { -brand-short-name } å·²ç¶å°éæ¤é é¢ä¸ä¸å®å
¨çé¨åã
+identity-custom-root = é£ç·æ¯ç± Mozilla ä¸èªèçæèç°½ç¼è
æé©èã
+identity-passive-loaded = æ¬é é¢ä¸çé¨åå
§å®¹ï¼ä¾å¦åçï¼ä¸¦ä¸å®å
¨ã
+identity-active-loaded = æ¨å·²åç¨æ¤é é¢ä¸çä¿è·ã
+identity-weak-encryption = æ¤é é¢ä½¿ç¨äºå¼±å¼·åº¦çå å¯ã
+identity-insecure-login-forms = 卿¤é é¢è¼¸å
¥çç»å
¥è³è¨å¯è½æè¢«æ´©æ¼ã
+identity-https-only-connection-upgraded = ï¼åç´ HTTPSï¼
+identity-https-only-label = ç´ HTTPS 模å¼
+identity-https-only-dropdown-on =
+ .label = éå
+identity-https-only-dropdown-off =
+ .label = éé
+identity-https-only-dropdown-off-temporarily =
+ .label = æ«æéé
+identity-https-only-info-turn-on2 = è¥æ¨æ³è¦ { -brand-short-name } ç¡å¯è½åç´ä½¿ç¨å®å
¨é£ç·ï¼è«å°æ¤ç¶²ç«éåç´ HTTPS 模å¼ã
+identity-https-only-info-turn-off2 = è¥ç¶²é å¤è§çèµ·ä¾ä¸æ£å¸¸ï¼æ¨å¯è½ææ³è¦éå°æ¤ç¶²ç«ééç´ HTTPS 模å¼ï¼ä½¿ç¨ä¸å®å
¨ç HTTP éæ°è¼å
¥ã
+identity-https-only-info-no-upgrade = ç¡æ³å°ç¶²ç«é£ç·å¾ HTTP åç´ã
+identity-permissions-storage-access-header = è·¨ç¶²ç« Cookie
+identity-permissions-storage-access-hint = ç¶æ¨éåæ¤ç¶²ç«æï¼éäºç¶²ç«å¯ä»¥ä½¿ç¨è·¨ç¶²ç« Cookieï¼ä¸¦ä¸å徿¨å¨æ¤ç¶²ç«çè³æã
+identity-permissions-storage-access-learn-more = äºè§£æ´å¤
+identity-permissions-reload-hint = æ¨å¯è½éè¦éæ°è¼å
¥é 颿è½è®è®æ´çæã
+identity-clear-site-data =
+ .label = æ¸
é¤ Cookie èç¶²ç«è³æâ¦
+identity-connection-not-secure-security-view = æ¨ä¸¦æªå®å
¨å°é£ç·è³æ¤ç¶²ç«ã
+identity-connection-verified = æ¨æ£å®å
¨å°é£ç·è³æ¤ç¶²ç«ã
+identity-ev-owner-label = æèç°½ç¼çµ¦:
+identity-description-custom-root = Mozilla ä¸èªèæ¤æèç°½ç¼è
ï¼å¯è½æ¯ç±æ¨ç使¥ç³»çµ±æç¶²è·¯ç®¡ç塿å å
¥çã
+identity-remove-cert-exception =
+ .label = ç§»é¤ä¾å¤
+ .accesskey = R
+identity-description-insecure = æ¨å°æ¤ç¶²ç«çé£ç·ä¸¦ä¸ç§å¯ãç¼éçè³è¨ï¼åæ¯å¯ç¢¼ãè¨æ¯ãä¿¡ç¨å¡ççï¼å¯è½æè¢«å
¶ä»äººçå°ã
+identity-description-insecure-login-forms = æ¤é é¢ä¸¦ä¸å®å
¨ï¼æ¨çç»å
¥è³è¨å¯è½æè¢«æ´©æ¼ã
+identity-description-weak-cipher-intro = æ¨èæ¤ç¶²ç«éçé£ç·ä½¿ç¨äºå¼±å¼·åº¦çå å¯ï¼ä¸¦ä¸ç§å¯ã
+identity-description-weak-cipher-risk = å
¶ä»äººå¯ä»¥çå°æ¨çè³è¨ï¼æä¿®æ¹ç¶²ç«çè¡çºã
+identity-description-active-blocked = { -brand-short-name } å·²ç¶å°éæ¤é é¢ä¸ä¸å®å
¨çé¨åã
+identity-description-passive-loaded = æ¨çé£ç·ä¸¦ä¸ç§å¯ï¼æä¾çµ¦æ¤ç¶²ç«çè³è¨å¯è½æè¢«å
¶ä»äººçå°ã
+identity-description-passive-loaded-insecure = æ¤ç¶²ç«å
å«ä¸å®å
¨çå
§å®¹ï¼ä¾å¦åçï¼ã
+identity-description-passive-loaded-mixed = éç¶ { -brand-short-name } å·²ç¶å°éé¨åå
§å®¹ï¼ä½é é¢ä¸éæ¯æä¸å®å
¨çå
§å®¹ï¼ä¾å¦åçï¼ã
+identity-description-active-loaded = æ¤ç¶²ç«å
å«ä¸å®å
¨çå
§å®¹ï¼ä¾å¦æä»¤ç¢¼ï¼ï¼èå
¶ä¹éçé£ç·ä¸¦ä¸ç§å¯ã
+identity-description-active-loaded-insecure = æ¨æä¾çµ¦æ¤ç¶²ç«çè³è¨ï¼ä¾å¦å¯ç¢¼ãè¨æ¯ãä¿¡ç¨å¡èççï¼å¯è½æè¢«å
¶ä»äººçå°ã
+identity-learn-more =
+ .value = äºè§£æ´å¤
+identity-disable-mixed-content-blocking =
+ .label = æ«æåæ¢ä¿è·
+ .accesskey = D
+identity-enable-mixed-content-blocking =
+ .label = åç¨ä¿è·
+ .accesskey = E
+identity-more-info-link-text =
+ .label = æ´å¤è³è¨
+
+## Window controls
+
+browser-window-minimize-button =
+ .tooltiptext = æå°å
+browser-window-maximize-button =
+ .tooltiptext = æå¤§å
+browser-window-restore-down-button =
+ .tooltiptext = éå大å°
+browser-window-close-button =
+ .tooltiptext = éé
+
+## Tab actions
+
+# This label should be written in all capital letters if your locale supports them.
+browser-tab-audio-playing2 = ææ¾ä¸
+# This label should be written in all capital letters if your locale supports them.
+browser-tab-audio-muted2 = éé³
+# This label should be written in all capital letters if your locale supports them.
+browser-tab-audio-blocked = å·²å°éèªåææ¾
+# This label should be written in all capital letters if your locale supports them.
+browser-tab-audio-pip = 忝ç«é¢
+
+## These labels should be written in all capital letters if your locale supports them.
+## Variables:
+## $count (number): number of affected tabs
+
+browser-tab-mute =
+ { $count ->
+ [1] å°åé éé³
+ *[other] å° { $count } ååé éé³
+ }
+browser-tab-unmute =
+ { $count ->
+ [1] å°åé åæ¶éé³
+ *[other] å° { $count } ååé åæ¶éé³
+ }
+browser-tab-unblock =
+ { $count ->
+ [1] ææ¾åé è²é³
+ *[other] ææ¾ { $count } ååé çè²é³
+ }
+
+## Bookmarks toolbar items
+
+browser-import-button2 =
+ .label = å¯å
¥æ¸ç±¤â¦
+ .tooltiptext = å°å
¶ä»ç覽å¨çæ¸ç±¤å¯å
¥å° { -brand-short-name }ã
+bookmarks-toolbar-empty-message = å¯å°æ¸ç±¤æ¾å°éåæ¸ç±¤å·¥å
·åä¸ï¼æ¹ä¾¿å¿«ééåãç®¡çæ¸ç±¤â¦
+
+## WebRTC Pop-up notifications
+
+popup-select-camera-device =
+ .value = æå½±æ©:
+ .accesskey = C
+popup-select-camera-icon =
+ .tooltiptext = æå½±æ©
+popup-select-microphone-device =
+ .value = 麥å
風:
+ .accesskey = M
+popup-select-microphone-icon =
+ .tooltiptext = 麥å
風
+popup-select-speaker-icon =
+ .tooltiptext = é³æè¼¸åºè£ç½®
+popup-all-windows-shared = å°å享æ¨ç«é¢ä¸ææå¯è¦çè¦çªã
+popup-screen-sharing-block =
+ .label = å°é
+ .accesskey = B
+popup-screen-sharing-always-block =
+ .label = 總æ¯å°é
+ .accesskey = w
+popup-mute-notifications-checkbox = å享è¦çªæç«é¢æï¼é±èç¶²ç«éç¥
+
+## WebRTC window or screen share tab switch warning
+
+sharing-warning-window = æ¨æ£å¨å享 { -brand-short-name }ï¼åæå°æ°åé ææè¢«å
¶ä»äººçå°ã
+sharing-warning-screen = æ¨æ£å¨åäº«å®æ´ç«é¢ï¼åæå°æ°åé ææè¢«å
¶ä»äººçå°ã
+sharing-warning-proceed-to-tab =
+ .label = ç¹¼çºåå¾åé
+sharing-warning-disable-for-session =
+ .label = 卿¤é段åç¨å享ä¿è·
+
+## DevTools F12 popup
+
+enable-devtools-popup-description = è«ééãç¶²é éç¼è
ãé¸å®éåéç¼è
å·¥å
·ï¼æè½ä½¿ç¨ F12 å¿«ééµã
+
+## URL Bar
+
+# This placeholder is used when not in search mode and the user's default search
+# engine is unknown.
+urlbar-placeholder =
+ .placeholder = æå°æè¼¸å
¥ç¶²å
+# 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 = æå° Web
+ .aria-label = ä½¿ç¨ { $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 = 輸å
¥æå°è©å½
+ .aria-label = æå° { $name }
+# This placeholder is used when searching bookmarks.
+urlbar-placeholder-search-mode-other-bookmarks =
+ .placeholder = 輸å
¥æå°è©å½
+ .aria-label = æå°æ¸ç±¤
+# This placeholder is used when searching history.
+urlbar-placeholder-search-mode-other-history =
+ .placeholder = 輸å
¥æå°è©å½
+ .aria-label = æå°ç覽ç´é
+# This placeholder is used when searching open tabs.
+urlbar-placeholder-search-mode-other-tabs =
+ .placeholder = 輸å
¥æå°è©å½
+ .aria-label = æå°åé
+# Variables
+# $name (String): the name of the user's default search engine
+urlbar-placeholder-with-name =
+ .placeholder = ä½¿ç¨ { $name } æå°æè¼¸å
¥ç¶²å
+# Variables
+# $component (String): the name of the component which forces remote control.
+# Example: "DevTools", "Marionette", "RemoteAgent".
+urlbar-remote-control-notification-anchor2 =
+ .tooltiptext = çè¦½å¨æ£è¢«é 端æ§å¶ä¸ï¼åå : { $component }ï¼
+urlbar-permissions-granted =
+ .tooltiptext = æ¨å·²æäºæ¤ç¶²ç«æ´å¤æ¬éã
+urlbar-switch-to-tab =
+ .value = åæå°åé :
+# Used to indicate that a selected autocomplete entry is provided by an extension.
+urlbar-extension =
+ .value = æ´å
å¥ä»¶:
+urlbar-go-button =
+ .tooltiptext = ææ¤åå¾ç¶²ååä¸çç¶²å
+urlbar-page-action-button =
+ .tooltiptext = é 颿ä½
+
+## 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 = æ¼é±ç§ç覽è¦çªä½¿ç¨ { $engine } æå°
+# Used when the private browsing engine is the same as the default engine.
+urlbar-result-action-search-in-private = ç¨é±ç§ç覽è¦çªæå°
+# 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 = ä½¿ç¨ { $engine } é²è¡æå°
+urlbar-result-action-sponsored = è´å©é
ç®
+urlbar-result-action-switch-tab = åæè³è©²åé
+urlbar-result-action-visit = åå¾
+# 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 = æ Tab éµï¼ä½¿ç¨ { $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 = æ Tab éµï¼æå° { $engine }
+# Variables
+# $engine (String): the name of a search engine that searches the entire Web
+# (e.g. Google).
+urlbar-result-action-tabtosearch-web = å¾ç¶²ååç´æ¥ä½¿ç¨ { $engine } æå°
+# Variables
+# $engine (String): the name of a search engine that searches a specific site
+# (e.g. Amazon).
+urlbar-result-action-tabtosearch-other-engine = å¾ç¶²ååç´æ¥æå° { $engine }
+# Action text for copying to clipboard.
+urlbar-result-action-copy-to-clipboard = è¤è£½
+# Shows the result of a formula expression being calculated, the last = sign will be shown
+# as part of the result (e.g. "= 2").
+# Variables
+# $result (String): the string representation for a formula result
+urlbar-result-action-calculator-result = = { $result }
+
+## Action text shown in urlbar results, usually appended after the search
+## string or the url, like "result value - action text".
+## In these actions "Search" is a verb, followed by where the search is performed.
+
+urlbar-result-action-search-bookmarks = æå°æ¸ç±¤
+urlbar-result-action-search-history = æå°ç覽è¨é
+urlbar-result-action-search-tabs = æå°åé
+
+## Labels shown above groups of urlbar results
+
+# A label shown above the "Firefox Suggest" (bookmarks/history) group in the
+# urlbar results.
+urlbar-group-firefox-suggest =
+ .label = { -firefox-suggest-brand-name }
+# A label shown above the search suggestions group in the urlbar results. It
+# should use title case.
+# Variables
+# $engine (String): the name of the search engine providing the suggestions
+urlbar-group-search-suggestions =
+ .label = { $engine } 建è°
+
+## Full Screen and Pointer Lock UI
+
+# Please ensure that the domain stays in the `` markup.
+# Variables
+# $domain (String): the domain that is full screen, e.g. "mozilla.org"
+fullscreen-warning-domain = { $domain } å·²é²å
¥å
¨è¢å¹æ¨¡å¼
+fullscreen-warning-no-domain = æ¤æä»¶å·²é²å
¥å
¨è¢å¹æ¨¡å¼
+fullscreen-exit-button = é¢éå
¨è¢å¹æ¨¡å¼ï¼Escï¼
+# "esc" is lowercase on mac keyboards, but uppercase elsewhere.
+fullscreen-exit-mac-button = é¢éå
¨è¢å¹æ¨¡å¼ï¼Escï¼
+# Please ensure that the domain stays in the `` markup.
+# Variables
+# $domain (String): the domain that is using pointer-lock, e.g. "mozilla.org"
+pointerlock-warning-domain = { $domain } 坿§å¶æ¨çæ»é¼ 游æ¨ï¼æ Esc ååæ§å¶æ¬ã
+pointerlock-warning-no-domain = æ¤æä»¶å¯æ§å¶æ¨çæ»é¼ 游æ¨ï¼æ Esc ååæ§å¶æ¬ã
+
+## Subframe crash notification
+
+crashed-subframe-message = æ¤é é¢ä¸çé¨åå
§å®¹ç¼çé¯èª¤ãæ¨åæç話ï¼å¯å°æ¤åé¡åå ±çµ¦ { -brand-product-name }ï¼è®æåæ´å¿«ä¿®æ£ã
+# The string for crashed-subframe-title.title should match crashed-subframe-message,
+# but without any markup.
+crashed-subframe-title =
+ .title = æ¤é é¢ä¸çé¨åå
§å®¹ç¼çé¯èª¤ãæ¨åæç話ï¼å¯å°æ¤åé¡åå ±çµ¦ { -brand-product-name }ï¼è®æåæ´å¿«ä¿®æ£ã
+crashed-subframe-learnmore-link =
+ .value = äºè§£æ´å¤
+crashed-subframe-submit =
+ .label = éåºå ±å
+ .accesskey = S
+
+## Bookmarks panels, menus and toolbar
+
+bookmarks-manage-bookmarks =
+ .label = ç®¡çæ¸ç±¤
+bookmarks-recent-bookmarks-panel-subheader = æè¿å å
¥çæ¸ç±¤
+bookmarks-toolbar-chevron =
+ .tooltiptext = 顯示æ´å¤æ¸ç±¤
+bookmarks-sidebar-content =
+ .aria-label = æ¸ç±¤
+bookmarks-menu-button =
+ .label = æ¸ç±¤é¸å®
+bookmarks-other-bookmarks-menu =
+ .label = å
¶ä»æ¸ç±¤
+bookmarks-mobile-bookmarks-menu =
+ .label = è¡åæ¸ç±¤
+bookmarks-tools-sidebar-visibility =
+ .label =
+ { $isVisible ->
+ [true] é±èæ¸ç±¤å´éæ¬
+ *[other] æª¢è¦æ¸ç±¤æ¬
+ }
+bookmarks-tools-toolbar-visibility-menuitem =
+ .label =
+ { $isVisible ->
+ [true] é±èæ¸ç±¤å·¥å
·å
+ *[other] æª¢è¦æ¸ç±¤å·¥å
·å
+ }
+bookmarks-tools-toolbar-visibility-panel =
+ .label =
+ { $isVisible ->
+ [true] é±èæ¸ç±¤å·¥å
·å
+ *[other] 顯示æ¸ç±¤å·¥å
·å
+ }
+bookmarks-tools-menu-button-visibility =
+ .label =
+ { $isVisible ->
+ [true] å¾å·¥å
·åç§»é¤æ¸ç±¤é¸å®
+ *[other] å¨å·¥å
·åä¸å å
¥æ¸ç±¤é¸å®
+ }
+bookmarks-search =
+ .label = æå°æ¸ç±¤
+bookmarks-tools =
+ .label = æ¸ç±¤å·¥å
·
+bookmarks-bookmark-edit-panel =
+ .label = ç·¨è¼¯æ¤æ¸ç±¤
+# 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 = æ¸ç±¤å·¥å
·å
+ .accesskey = B
+ .aria-label = æ¸ç±¤
+bookmarks-toolbar-menu =
+ .label = æ¸ç±¤å·¥å
·å
+bookmarks-toolbar-placeholder =
+ .title = æ¸ç±¤å·¥å
·åé
ç®
+bookmarks-toolbar-placeholder-button =
+ .label = æ¸ç±¤å·¥å
·åé
ç®
+# "Bookmark" is a verb, as in "Add current tab to bookmarks".
+bookmarks-current-tab =
+ .label = å°ç®ååé å å
¥æ¸ç±¤
+
+## Library Panel items
+
+library-bookmarks-menu =
+ .label = æ¸ç±¤
+library-recent-activity-title =
+ .value = è¿æåæ
+
+## Pocket toolbar button
+
+save-to-pocket-button =
+ .label = å²åè³ { -pocket-brand-name }
+ .tooltiptext = å²åè³ { -pocket-brand-name }
+
+## Repair text encoding toolbar button
+
+repair-text-encoding-button =
+ .label = 修復æå編碼
+ .tooltiptext = æ ¹æè¨æ¯å
§å®¹ç測æ£ç¢ºçæå編碼
+
+## Customize Toolbar Buttons
+
+# Variables:
+# $shortcut (String): keyboard shortcut to open the add-ons manager
+toolbar-addons-themes-button =
+ .label = éå å
ä»¶è使¯ä¸»é¡
+ .tooltiptext = ç®¡çæ¨çéå å
ä»¶è使¯ä¸»é¡ï¼{ $shortcut }ï¼
+# Variables:
+# $shortcut (String): keyboard shortcut to open settings (only on macOS)
+toolbar-settings-button =
+ .label = è¨å®
+ .tooltiptext =
+ { PLATFORM() ->
+ [macos] éåè¨å®é é¢ï¼{ $shortcut }ï¼
+ *[other] éåè¨å®é é¢
+ }
+
+## More items
+
+more-menu-go-offline =
+ .label = é¢ç·æ¨¡å¼
+ .accesskey = k
+toolbar-overflow-customize-button =
+ .label = èªè¨å·¥å
·åâ¦
+ .accesskey = C
+toolbar-button-email-link =
+ .label = å¯ééçµ
+ .tooltiptext = å¯åºæ¬é é¢çéçµ
+# Variables:
+# $shortcut (String): keyboard shortcut to save a copy of the page
+toolbar-button-save-page =
+ .label = å²åæ¬é
+ .tooltiptext = å²åæ¤é é¢ ({ $shortcut })
+# Variables:
+# $shortcut (String): keyboard shortcut to open a local file
+toolbar-button-open-file =
+ .label = éåæªæ¡
+ .tooltiptext = éåæªæ¡ï¼{ $shortcut }ï¼
+toolbar-button-synced-tabs =
+ .label = 忥çåé
+ .tooltiptext = 顯示ä¾èªå
¶ä»è£ç½®çåé
+# Variables
+# $shortcut (string) - Keyboard shortcut to open a new private browsing window
+toolbar-button-new-private-window =
+ .label = éæ°é±ç§è¦çª
+ .tooltiptext = æ°å¢é±ç§ç覽è¦çª ({ $shortcut })
+
+## EME notification panel
+
+eme-notifications-drm-content-playing = æ¤ç¶²ç«çæäºå½±é³å
§å®¹éè¦ä½¿ç¨ DRM è»é«ï¼å¯è½æéå¶ { -brand-short-name } è½è®æ¨ä½¿ç¨çåè½ã
+eme-notifications-drm-content-playing-manage = 管çè¨å®
+eme-notifications-drm-content-playing-manage-accesskey = M
+eme-notifications-drm-content-playing-dismiss = ç¥éäºï¼
+eme-notifications-drm-content-playing-dismiss-accesskey = D
+
+## Password save/update panel
+
+panel-save-update-username = 使ç¨è
å稱
+panel-save-update-password = å¯ç¢¼
+
+## Add-on removal warning
+
+# Variables:
+# $name (String): The name of the addon that will be removed.
+addon-removal-title = è¦ç§»é¤ { $name } åï¼
+addon-removal-abuse-report-checkbox = åå ±æ¤æ´å
å¥ä»¶çµ¦ { -vendor-short-name }
+
+## Remote / Synced tabs
+
+remote-tabs-manage-account =
+ .label = 管ç帳è
+remote-tabs-sync-now = ç«å»åæ¥
+
+##
+
+# "More" item in macOS share menu
+menu-share-more =
+ .label = æ´å¤â¦
+ui-tour-info-panel-close =
+ .tooltiptext = éé
+
+## Variables:
+## $uriHost (String): URI host for which the popup was allowed or blocked.
+
+popups-infobar-allow =
+ .label = å
許 { $uriHost } çå½åºåè¦çª
+ .accesskey = p
+popups-infobar-block =
+ .label = å°é { $uriHost } çå½åºåè¦çª
+ .accesskey = p
+
+##
+
+popups-infobar-dont-show-message =
+ .label = æä¸å½åºåè¦çªæä¸é¡¯ç¤ºæ¤è¨æ¯
+ .accesskey = D
+edit-popup-settings =
+ .label = 管çå½åºè¦çªè¨å®â¦
+ .accesskey = M
+picture-in-picture-hide-toggle =
+ .label = é±è忝ç«é¢åææé
+ .accesskey = H
+
+## Since the default position for PiP controls does not change for RTL layout,
+## right-to-left languages should use "Left" and "Right" as in the English strings,
+
+picture-in-picture-move-toggle-right =
+ .label = å°åæ¯ç«é¢åææéç§»å°å³å´
+ .accesskey = R
+picture-in-picture-move-toggle-left =
+ .label = å°åæ¯ç«é¢åææéç§»å°å·¦å´
+ .accesskey = L
+
+##
+
+
+# Navigator Toolbox
+
+# This string is a spoken label that should not include
+# the word "toolbar" or such, because screen readers already know that
+# this container is a toolbar. This avoids double-speaking.
+navbar-accessible =
+ .aria-label = å°è¦½
+navbar-downloads =
+ .label = ä¸è¼
+navbar-overflow =
+ .tooltiptext = æ´å¤å·¥å
·â¦
+# Variables:
+# $shortcut (String): keyboard shortcut to print the page
+navbar-print =
+ .label = åå°
+ .tooltiptext = åå°æ¤é é¢â¦ ({ $shortcut })
+navbar-print-tab-modal-disabled =
+ .label = åå°
+ .tooltiptext = åå°æ¤é
+navbar-home =
+ .label = é¦é
+ .tooltiptext = { -brand-short-name } é¦é
+navbar-library =
+ .label = æ¶è庫
+ .tooltiptext = 檢è¦ç覽ç´éãå·²åæ¸ç±¤çè³æ
+navbar-search =
+ .title = æå°
+navbar-accessibility-indicator =
+ .tooltiptext = å·²éåè¼å©åè½
+# Name for the tabs toolbar as spoken by screen readers. The word
+# "toolbar" is appended automatically and should not be included in
+# in the string
+tabs-toolbar =
+ .aria-label = ç覽å¨åé
+tabs-toolbar-new-tab =
+ .label = éæ°åé
+tabs-toolbar-list-all-tabs =
+ .label = ååºææåé
+ .tooltiptext = ååºææåé
+
+## Infobar shown at startup to suggest session-restore
+
+#
will be replaced by the application menu icon
+restore-session-startup-suggestion-message = æ³éåå
åçåé ï¼æ¨å¯ä»¥å¾ { -brand-short-name } æç¨ç¨å¼é¸å®
ç¶ä¸çãæ·å²ãéæ°éåå
åççè¦½éæ®µã
+restore-session-startup-suggestion-button = å訴ææéº¼å
diff --git a/browser/browser/browserContext.ftl b/browser/browser/browserContext.ftl
new file mode 100644
index 00000000000..0b848bc0022
--- /dev/null
+++ b/browser/browser/browserContext.ftl
@@ -0,0 +1,457 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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] é·æä»¥é¡¯ç¤ºæ·å²è¨é
+ *[other] ææ»é¼ å³éµæé·æä»¥é¡¯ç¤ºæ·å²è¨é
+ }
+
+## Back
+
+# Variables
+# $shortcut (String) - A keyboard shortcut for the Go Back command.
+main-context-menu-back-2 =
+ .tooltiptext = åå°ä¸ä¸é ï¼{ $shortcut }ï¼
+ .aria-label = è¿å
+ .accesskey = B
+
+# This menuitem is only visible on macOS
+main-context-menu-back-mac =
+ .label = è¿å
+ .accesskey = B
+
+navbar-tooltip-back-2 =
+ .value = { main-context-menu-back-2.tooltiptext }
+
+toolbar-button-back-2 =
+ .label = { main-context-menu-back-2.aria-label }
+
+## Forward
+
+# Variables
+# $shortcut (String) - A keyboard shortcut for the Go Forward command.
+main-context-menu-forward-2 =
+ .tooltiptext = åé²ä¸ä¸é ï¼{ $shortcut }ï¼
+ .aria-label = åé²
+ .accesskey = F
+
+# This menuitem is only visible on macOS
+main-context-menu-forward-mac =
+ .label = åé²
+ .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 = éæ°è¼å
¥
+ .accesskey = R
+
+# This menuitem is only visible on macOS
+main-context-menu-reload-mac =
+ .label = éæ°è¼å
¥
+ .accesskey = R
+
+toolbar-button-reload =
+ .label = { main-context-menu-reload.aria-label }
+
+## Stop
+
+main-context-menu-stop =
+ .aria-label = 忢
+ .accesskey = S
+
+# This menuitem is only visible on macOS
+main-context-menu-stop-mac =
+ .label = 忢
+ .accesskey = S
+
+toolbar-button-stop =
+ .label = { main-context-menu-stop.aria-label }
+
+## Stop-Reload Button
+
+toolbar-button-stop-reload =
+ .title = { main-context-menu-reload.aria-label }
+
+## Firefox Account Button
+
+toolbar-button-fxaccount =
+ .label = { -fxaccount-brand-name }
+ .tooltiptext = { -fxaccount-brand-name }
+
+## Save Page
+
+main-context-menu-page-save =
+ .label = å¦åæ°æªâ¦
+ .accesskey = P
+
+## Simple menu items
+
+main-context-menu-bookmark-add =
+ .aria-label = å°æ¬é å å
¥æ¸ç±¤
+ .accesskey = m
+ .tooltiptext = å°æ¬é å å
¥æ¸ç±¤
+
+# This menuitem is only visible on macOS
+# Cannot be shown at the same time as main-context-menu-bookmark-edit-mac,
+# so should probably have the same access key if possible.
+main-context-menu-bookmark-add-mac =
+ .label = å°é é¢å å
¥æ¸ç±¤
+ .accesskey = m
+
+# This menuitem is only visible on macOS
+# Cannot be shown at the same time as main-context-menu-bookmark-add-mac,
+# so should probably have the same access key if possible.
+main-context-menu-bookmark-edit-mac =
+ .label = 編輯æ¸ç±¤
+ .accesskey = m
+
+# Variables
+# $shortcut (String) - A keyboard shortcut for the add bookmark command.
+main-context-menu-bookmark-add-with-shortcut =
+ .aria-label = å°æ¬é å å
¥æ¸ç±¤
+ .accesskey = m
+ .tooltiptext = å°æ¬é å å
¥æ¸ç±¤ ({ $shortcut })
+
+main-context-menu-bookmark-change =
+ .aria-label = ç·¨è¼¯æ¤æ¸ç±¤
+ .accesskey = m
+ .tooltiptext = ç·¨è¼¯æ¤æ¸ç±¤
+
+# Variables
+# $shortcut (String) - A keyboard shortcut for the edit bookmark command.
+main-context-menu-bookmark-change-with-shortcut =
+ .aria-label = ç·¨è¼¯æ¤æ¸ç±¤
+ .accesskey = m
+ .tooltiptext = ç·¨è¼¯æ¤æ¸ç±¤ ({ $shortcut })
+
+main-context-menu-open-link =
+ .label = éåéçµ
+ .accesskey = O
+
+main-context-menu-open-link-new-tab =
+ .label = ç¨æ°åé éåéçµ
+ .accesskey = T
+
+main-context-menu-open-link-container-tab =
+ .label = ç¨æ°å®¹å¨åé éåéçµ
+ .accesskey = z
+
+main-context-menu-open-link-new-window =
+ .label = ç¨æ°è¦çªéåéçµ
+ .accesskey = w
+
+main-context-menu-open-link-new-private-window =
+ .label = ç¨æ°é±ç§è¦çªéåéçµ
+ .accesskey = P
+
+main-context-menu-bookmark-link =
+ .label = å°éçµå å
¥æ¸ç±¤
+ .accesskey = B
+
+main-context-menu-save-link =
+ .label = éçµå¦åæ°æªâ¦
+ .accesskey = k
+
+main-context-menu-save-link-to-pocket =
+ .label = å°éçµå²åè³ { -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.
+
+
+## The access keys for "Copy Link" and "Copy Email Address"
+## should be the same if possible; the two context menu items
+## are mutually exclusive.
+
+main-context-menu-copy-email =
+ .label = è¤è£½é»åéµä»¶å°å
+ .accesskey = E
+
+main-context-menu-copy-link-simple =
+ .label = è¤è£½éçµ
+ .accesskey = L
+
+## Media (video/audio) controls
+##
+## The accesskey for "Play" and "Pause" are the
+## same because the two context-menu items are
+## mutually exclusive.
+
+main-context-menu-media-play =
+ .label = ææ¾
+ .accesskey = P
+
+main-context-menu-media-pause =
+ .label = æ«å
+ .accesskey = P
+
+##
+
+main-context-menu-media-mute =
+ .label = éé³
+ .accesskey = M
+
+main-context-menu-media-unmute =
+ .label = åæ¶éé³
+ .accesskey = m
+
+main-context-menu-media-play-speed-2 =
+ .label = é度
+ .accesskey = d
+
+main-context-menu-media-play-speed-slow-2 =
+ .label = 0.5Ã
+
+main-context-menu-media-play-speed-normal-2 =
+ .label = 1.0Ã
+
+main-context-menu-media-play-speed-fast-2 =
+ .label = 1.25Ã
+
+main-context-menu-media-play-speed-faster-2 =
+ .label = 1.5Ã
+
+main-context-menu-media-play-speed-fastest-2 =
+ .label = 2Ã
+
+main-context-menu-media-loop =
+ .label = 循ç°
+ .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 = 顯示æ§å¶æé
+ .accesskey = C
+
+main-context-menu-media-hide-controls =
+ .label = é±èæ§å¶æé
+ .accesskey = C
+
+##
+
+main-context-menu-media-video-fullscreen =
+ .label = å
¨è¢å¹
+ .accesskey = F
+
+main-context-menu-media-video-leave-fullscreen =
+ .label = é¢éå
¨è¢å¹æ¨¡å¼
+ .accesskey = u
+
+# This is used when right-clicking on a video in the
+# content area when the Picture-in-Picture feature is enabled.
+main-context-menu-media-watch-pip =
+ .label = 使ç¨åç«é¢è§è³
+ .accesskey = u
+
+main-context-menu-image-reload =
+ .label = éæ°è¼å
¥åç
+ .accesskey = R
+
+main-context-menu-image-view-new-tab =
+ .label = ç¨æ°åé éååç
+ .accesskey = I
+
+main-context-menu-video-view-new-tab =
+ .label = ç¨æ°åé éåå½±ç
+ .accesskey = i
+
+main-context-menu-image-copy =
+ .label = è¤è£½åç
+ .accesskey = y
+
+main-context-menu-image-copy-link =
+ .label = è¤è£½åçéçµ
+ .accesskey = o
+
+main-context-menu-video-copy-link =
+ .label = è¤è£½å½±çéçµ
+ .accesskey = o
+
+main-context-menu-audio-copy-link =
+ .label = è¤è£½é³è¨éçµ
+ .accesskey = o
+
+main-context-menu-image-save-as =
+ .label = åçå¦åæ°æªâ¦
+ .accesskey = v
+
+main-context-menu-image-email =
+ .label = éµå¯åçâ¦
+ .accesskey = g
+
+main-context-menu-image-set-image-as-background =
+ .label = å°åçè¨çºæ¡å¸â¦
+ .accesskey = S
+
+main-context-menu-image-info =
+ .label = 檢è¦åçè³è¨
+ .accesskey = f
+
+main-context-menu-image-desc =
+ .label = 檢è¦èªªæ
+ .accesskey = D
+
+main-context-menu-video-save-as =
+ .label = å¦åè¦è¨æªæ¡â¦
+ .accesskey = v
+
+main-context-menu-audio-save-as =
+ .label = å¦åé³è¨æªæ¡â¦
+ .accesskey = v
+
+main-context-menu-video-take-snapshot =
+ .label = ææå¿«ç
§â¦
+ .accesskey = S
+
+main-context-menu-video-email =
+ .label = éµå¯è¦è¨â¦
+ .accesskey = a
+
+main-context-menu-audio-email =
+ .label = éµå¯é³è¨â¦
+ .accesskey = a
+
+main-context-menu-plugin-play =
+ .label = åç¨æ¤å¤æç¨å¼
+ .accesskey = c
+
+main-context-menu-plugin-hide =
+ .label = é±èæ¤å¤æç¨å¼
+ .accesskey = H
+
+main-context-menu-save-to-pocket =
+ .label = å°é é¢å²åè³ { -pocket-brand-name }
+ .accesskey = k
+
+main-context-menu-send-to-device =
+ .label = å°é é¢å³éè³è£ç½®
+ .accesskey = D
+
+## The access keys for "Use Saved Login" and "Use Saved Password"
+## should be the same if possible; the two context menu items
+## are mutually exclusive.
+
+main-context-menu-use-saved-login =
+ .label = 使ç¨å·²åçç»å
¥è³è¨
+ .accesskey = o
+
+main-context-menu-use-saved-password =
+ .label = 使ç¨å·²åçå¯ç¢¼
+ .accesskey = o
+
+##
+
+main-context-menu-suggest-strong-password =
+ .label = 建è°ä¸çµå®å
¨çå¯ç¢¼â¦
+ .accesskey = S
+
+main-context-menu-manage-logins2 =
+ .label = 管çç»å
¥è³è¨
+ .accesskey = M
+
+main-context-menu-keyword =
+ .label = è¨çºç¨ééµåæå°â¦
+ .accesskey = K
+
+main-context-menu-link-send-to-device =
+ .label = å°éçµå³éè³è£ç½®
+ .accesskey = D
+
+main-context-menu-frame =
+ .label = æ¬é æ¡
+ .accesskey = h
+
+main-context-menu-frame-show-this =
+ .label = åªé¡¯ç¤ºæ¬é æ¡
+ .accesskey = S
+
+main-context-menu-frame-open-tab =
+ .label = ç¨æ°åé éåé æ¡
+ .accesskey = T
+
+main-context-menu-frame-open-window =
+ .label = ç¨æ°è¦çªéåé æ¡
+ .accesskey = w
+
+main-context-menu-frame-reload =
+ .label = éæ°è¼å
¥é æ¡
+ .accesskey = R
+
+main-context-menu-frame-bookmark =
+ .label = å°æ¤é æ¡å å
¥æ¸ç±¤
+ .accesskey = m
+
+main-context-menu-frame-save-as =
+ .label = é æ¡å¦åæ°æªâ¦
+ .accesskey = F
+
+main-context-menu-frame-print =
+ .label = åå°æ¤é æ¡â¦
+ .accesskey = P
+
+main-context-menu-frame-view-source =
+ .label = 檢è¦é æ¡åå§ç¢¼
+ .accesskey = V
+
+main-context-menu-frame-view-info =
+ .label = 檢è¦é æ¡è³è¨
+ .accesskey = I
+
+main-context-menu-print-selection =
+ .label = å
åå°é¸ååå
+ .accesskey = r
+
+main-context-menu-view-selection-source =
+ .label = 檢è¦é¸åç¯ååå§ç¢¼
+ .accesskey = e
+
+main-context-menu-take-screenshot =
+ .label = ææç«é¢æ·å
+ .accesskey = T
+
+main-context-menu-take-frame-screenshot =
+ .label = ææç«é¢æ·å
+ .accesskey = o
+
+main-context-menu-view-page-source =
+ .label = 檢è¦åå§ç¢¼
+ .accesskey = V
+
+main-context-menu-bidi-switch-text =
+ .label = æ¹è®æåæ¹å
+ .accesskey = w
+
+main-context-menu-bidi-switch-page =
+ .label = åæé 颿¹å
+ .accesskey = D
+
+main-context-menu-inspect =
+ .label = 檢測
+ .accesskey = Q
+
+main-context-menu-inspect-a11y-properties =
+ .label = 檢測è¼å©åè½ç°å¢å±¬æ§
+
+main-context-menu-eme-learn-more =
+ .label = äºè§£ DRM çæ´å¤è³è¨â¦
+ .accesskey = D
+
+# Variables
+# $containerName (String): The name of the current container
+main-context-menu-open-link-in-container-tab =
+ .label = ç¨æ° { $containerName } 容å¨åé éåéçµ
+ .accesskey = T
diff --git a/browser/browser/browserSets.ftl b/browser/browser/browserSets.ftl
new file mode 100644
index 00000000000..227290e74ab
--- /dev/null
+++ b/browser/browser/browserSets.ftl
@@ -0,0 +1,218 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+window-minimize-command =
+ .label = ç¸®å°æå°
+
+window-zoom-command =
+ .label = 縮æ¾
+
+window-new-shortcut =
+ .key = N
+
+window-minimize-shortcut =
+ .key = m
+
+close-shortcut =
+ .key = W
+
+tab-new-shortcut =
+ .key = t
+
+location-open-shortcut =
+ .key = l
+
+location-open-shortcut-alt =
+ .key = d
+
+search-focus-shortcut =
+ .key = k
+
+# This shortcut is used in two contexts:
+# - web search
+# - find in page
+find-shortcut =
+ .key = f
+
+search-find-again-shortcut =
+ .key = g
+
+search-find-again-shortcut-alt =
+ .keycode = VK_F3
+
+search-find-selection-shortcut =
+ .key = e
+
+# Verify what shortcut for that operation
+# are recommended by the Human Interface Guidelines
+# of each platform for your locale.
+search-focus-shortcut-alt =
+ .key =
+ { PLATFORM() ->
+ [linux] j
+ *[other] e
+ }
+
+# Verify what shortcut for that operation
+# are recommended by the Human Interface Guidelines
+# of each platform for your locale.
+downloads-shortcut =
+ .key =
+ { PLATFORM() ->
+ [linux] y
+ *[other] j
+ }
+
+addons-shortcut =
+ .key = A
+
+file-open-shortcut =
+ .key = o
+
+save-page-shortcut =
+ .key = s
+
+page-source-shortcut =
+ .key = u
+
+# This should match the Option+Command keyboard shortcut letter that Safari
+# and Chrome use for "View Source" on macOS. `page-source-shortcut` above
+# is Firefox's official keyboard shortcut shown in the GUI.
+# Safari variant is an alias provided for the convenience of Safari and Chrome
+# users on macOS. See bug 1398988.
+page-source-shortcut-safari =
+ .key = u
+
+page-info-shortcut =
+ .key = i
+
+print-shortcut =
+ .key = p
+
+mute-toggle-shortcut =
+ .key = M
+
+nav-back-shortcut-alt =
+ .key = [
+
+nav-fwd-shortcut-alt =
+ .key = ]
+
+nav-reload-shortcut =
+ .key = r
+
+# Shortcut available only on macOS.
+nav-stop-shortcut =
+ .key = .
+
+history-show-all-shortcut =
+ .key = H
+
+history-show-all-shortcut-mac =
+ .key = Y
+
+history-sidebar-shortcut =
+ .key = h
+
+full-screen-shortcut =
+ .key = f
+
+reader-mode-toggle-shortcut-windows =
+ .keycode = VK_F9
+
+reader-mode-toggle-shortcut-other =
+ .key = R
+
+picture-in-picture-toggle-shortcut-mac =
+ .key = ]
+
+# Pick the key that is commonly present
+# in your locale keyboards above the
+# `picture-in-picture-toggle-shortcut-mac` key.
+picture-in-picture-toggle-shortcut-mac-alt =
+ .key = { "}" }
+
+picture-in-picture-toggle-shortcut =
+ .key = ]
+
+# Pick the key that is commonly present
+# in your locale keyboards above the
+# `picture-in-picture-toggle-shortcut` key.
+picture-in-picture-toggle-shortcut-alt =
+ .key = { "}" }
+
+bookmark-this-page-shortcut =
+ .key = d
+
+# Verify what shortcut for that operation
+# are recommended by the Human Interface Guidelines
+# of each platform for your locale.
+bookmark-show-library-shortcut =
+ .key = O
+
+# Verify what shortcut for that operation
+# are recommended by the Human Interface Guidelines
+# of each platform for your locale.
+bookmark-show-sidebar-shortcut =
+ .key = b
+
+# Verify what shortcut for that operation
+# are recommended by the Human Interface Guidelines
+# of each platform for your locale.
+bookmark-show-toolbar-shortcut =
+ .key = B
+
+## All `-alt*` messages are alternative acceleration keys for zoom.
+## If shift key is needed with your locale popular keyboard for them,
+## you can use these alternative items. Otherwise, their values should be empty.
+
+full-zoom-reduce-shortcut =
+ .key = -
+
+full-zoom-reduce-shortcut-alt-a =
+ .key = _
+
+full-zoom-reduce-shortcut-alt-b =
+ .key = { "" }
+
+full-zoom-enlarge-shortcut =
+ .key = +
+
+full-zoom-enlarge-shortcut-alt =
+ .key = =
+
+full-zoom-enlarge-shortcut-alt2 =
+ .key = { "" }
+
+full-zoom-reset-shortcut =
+ .key = 0
+
+full-zoom-reset-shortcut-alt =
+ .key = { "" }
+
+##
+
+bidi-switch-direction-shortcut =
+ .key = X
+
+private-browsing-shortcut =
+ .key = P
+
+## The shortcuts below are for Mac specific
+## global menu.
+
+quit-app-shortcut =
+ .key = Q
+
+help-shortcut =
+ .key = ?
+
+preferences-shortcut =
+ .key = ,
+
+hide-app-shortcut =
+ .key = H
+
+hide-other-apps-shortcut =
+ .key = H
diff --git a/browser/browser/customizeMode.ftl b/browser/browser/customizeMode.ftl
new file mode 100644
index 00000000000..8d7d579ae81
--- /dev/null
+++ b/browser/browser/customizeMode.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/.
+
+customize-mode-restore-defaults =
+ .label = å復çºé è¨å¼
+customize-mode-menu-and-toolbars-header = å°æ¨ææçé
ç®ææ³å°å·¥å
·åææ¶èé¸å®ã
+customize-mode-overflow-list-title = æ¶èé¸å®
+customize-mode-uidensity =
+ .label = å¯åº¦
+customize-mode-done =
+ .label = 宿
+customize-mode-lwthemes-menu-manage =
+ .label = 管ç
+ .accesskey = M
+customize-mode-toolbars =
+ .label = å·¥å
·å
+customize-mode-titlebar =
+ .label = æ¨é¡å
+customize-mode-uidensity-menu-touch =
+ .label = 觸æ§
+ .accesskey = T
+ .tooltiptext = 觸æ§
+customize-mode-uidensity-auto-touch-mode-checkbox =
+ .label = å¨å¹³æ¿é»è
¦æ¨¡å¼ä¸ä½¿ç¨è§¸æ§å¤§å°
+customize-mode-lwthemes =
+ .label = 使¯ä¸»é¡
+customize-mode-overflow-list-description = å°é
ç®ææ³å°æ¤èï¼æ¹ä¾¿ä½¿ç¨åä¸ä½ç©ºéâ¦
+customize-mode-uidensity-menu-normal =
+ .label = æ¨æº
+ .accesskey = N
+ .tooltiptext = æ¨æº
+customize-mode-uidensity-menu-compact-unsupported =
+ .label = ç·å¯ï¼ä¸æ¯æ´ï¼
+ .accesskey = C
+ .tooltiptext = ç·å¯ï¼ä¸æ¯æ´ï¼
+customize-mode-lwthemes-menu-get-more =
+ .label = ä¸è¼æ´å¤ä½æ¯ä¸»é¡
+ .accesskey = G
+customize-mode-undo-cmd =
+ .label = 復å
+customize-mode-lwthemes-my-themes =
+ .value = æç使¯ä¸»é¡
+customize-mode-lwthemes-link = 管ç使¯ä¸»é¡
+customize-mode-touchbar-cmd =
+ .label = èªè¨è§¸æ§åâ¦
+customize-mode-downloads-button-autohide =
+ .label = ç¡å
§å®¹æé±èæé
diff --git a/browser/browser/defaultBrowserNotification.ftl b/browser/browser/defaultBrowserNotification.ftl
new file mode 100644
index 00000000000..68ec4a05057
--- /dev/null
+++ b/browser/browser/defaultBrowserNotification.ftl
@@ -0,0 +1,23 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# The question portion of the following message should have the and tags surrounding it.
+default-browser-notification-message = è¦å° { -brand-short-name } è¨çºæ¨çé è¨ç覽å¨åï¼é¨æé¨å°é½è½å¿«éãå®å
¨ãç§å¯ä¸ç¶²ã
+default-browser-notification-button =
+ .label = è¨çºé è¨ç覽å¨
+ .accesskey = S
+
+## These strings are used for the default browser prompt. There are 2 variations
+## depending on the operating system (Windows vs other). The checkbox label and
+## secondary button are shared between the variants.
+
+default-browser-prompt-title-pin = è¦å° { -brand-short-name } è¨çºæ¨ç主è¦ç覽å¨åï¼
+default-browser-prompt-message-pin = å° { -brand-short-name } è¨çºé è¨ç覽å¨ä¸¦éé¸å°å·¥ä½åï¼æ¹ä¾¿é¨æéåã
+default-browser-prompt-message-pin-mac = å° { -brand-short-name } è¨çºé è¨ç覽å¨ä¸¦ä¿ç卿¨ç Dockï¼æ¹ä¾¿é¨æéåã
+default-browser-prompt-button-primary-pin = è¨çºä¸»è¦ç覽å¨
+default-browser-prompt-title-alt = è¦å° { -brand-short-name } è¨çºæ¨çé è¨ç覽å¨åï¼
+default-browser-prompt-message-alt = 鍿ä¸ç¶²é½ææå¿«é度ãå®å
¨èé±ç§ä¿è·ã
+default-browser-prompt-button-primary-alt = è¨çºé è¨ç覽å¨
+default-browser-prompt-checkbox-not-again-label = ä¸è¦å顯示æ¤è¨æ¯
+default-browser-prompt-button-secondary = ç¾å¨ä¸è¦
diff --git a/browser/browser/downloads.ftl b/browser/browser/downloads.ftl
new file mode 100644
index 00000000000..b71d39a7869
--- /dev/null
+++ b/browser/browser/downloads.ftl
@@ -0,0 +1,215 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 = ä¸è¼
+downloads-panel =
+ .aria-label = ä¸è¼
+
+##
+
+# The style attribute has the width of the Downloads Panel expressed using
+# a CSS unit. The longest labels that should fit are usually those of
+# in-progress and blocked downloads.
+downloads-panel-items =
+ .style = width: 35em
+downloads-cmd-pause =
+ .label = æ«å
+ .accesskey = P
+downloads-cmd-resume =
+ .label = ç¹¼çº
+ .accesskey = R
+downloads-cmd-cancel =
+ .tooltiptext = åæ¶
+downloads-cmd-cancel-panel =
+ .aria-label = åæ¶
+# This message is only displayed on Windows and Linux devices
+downloads-cmd-show-menuitem =
+ .label = éåæå¨è³æå¤¾
+ .accesskey = f
+# This message is only displayed on macOS devices
+downloads-cmd-show-menuitem-mac =
+ .label = å¨ Finder ä¸é¡¯ç¤º
+ .accesskey = f
+downloads-cmd-show-menuitem-2 =
+ .label =
+ { PLATFORM() ->
+ [macos] æ¼ Finder 顯示
+ *[other] æ¼è³æå¤¾é¡¯ç¤º
+ }
+ .accesskey = F
+downloads-cmd-use-system-default =
+ .label = ç¨ç³»çµ±æª¢è¦å¨éå
+ .accesskey = V
+# We can use the same accesskey as downloads-cmd-always-open-similar-files.
+# Both should not be visible in the downloads context menu at the same time.
+downloads-cmd-always-use-system-default =
+ .label = æ°¸é 使ç¨ç³»çµ±æª¢è¦å¨éå
+ .accesskey = w
+downloads-cmd-show-button =
+ .tooltiptext =
+ { PLATFORM() ->
+ [macos] å¨ Finder ä¸é¡¯ç¤º
+ *[other] éåæå¨è³æå¤¾
+ }
+downloads-cmd-show-panel =
+ .aria-label =
+ { PLATFORM() ->
+ [macos] å¨ Finder ä¸é¡¯ç¤º
+ *[other] éåæå¨è³æå¤¾
+ }
+downloads-cmd-show-description =
+ .value =
+ { PLATFORM() ->
+ [macos] å¨ Finder ä¸é¡¯ç¤º
+ *[other] éåæå¨è³æå¤¾
+ }
+# We can use the same accesskey as downloads-cmd-always-use-system-default.
+# Both should not be visible in the downloads context menu at the same time.
+downloads-cmd-always-open-similar-files =
+ .label = 總æ¯éåé¡ä¼¼æªæ¡
+ .accesskey = w
+downloads-cmd-show-button-2 =
+ .tooltiptext =
+ { PLATFORM() ->
+ [macos] æ¼ Finder 顯示
+ *[other] æ¼è³æå¤¾é¡¯ç¤º
+ }
+downloads-cmd-show-panel-2 =
+ .aria-label =
+ { PLATFORM() ->
+ [macos] æ¼ Finder 顯示
+ *[other] æ¼è³æå¤¾é¡¯ç¤º
+ }
+downloads-cmd-show-description-2 =
+ .value =
+ { PLATFORM() ->
+ [macos] æ¼ Finder 顯示
+ *[other] æ¼è³æå¤¾é¡¯ç¤º
+ }
+downloads-cmd-show-downloads =
+ .label = 顯示ä¸è¼è³æå¤¾
+downloads-cmd-retry =
+ .tooltiptext = é試
+downloads-cmd-retry-panel =
+ .aria-label = é試
+downloads-cmd-go-to-download-page =
+ .label = åå¾ä¸è¼é é¢
+ .accesskey = G
+downloads-cmd-copy-download-link =
+ .label = è¤è£½ä¸è¼éçµ
+ .accesskey = l
+downloads-cmd-remove-from-history =
+ .label = èªä¸è¼è¨éç§»é¤
+ .accesskey = e
+downloads-cmd-clear-list =
+ .label = æ¸
é¤é è¦½çªæ ¼
+ .accesskey = a
+downloads-cmd-clear-downloads =
+ .label = æ¸
空ä¸è¼æ¸
å®
+ .accesskey = D
+# This command is shown in the context menu when downloads are blocked.
+downloads-cmd-unblock =
+ .label = å
許ä¸è¼
+ .accesskey = o
+# This is the tooltip of the action button shown when malware is blocked.
+downloads-cmd-remove-file =
+ .tooltiptext = ç§»é¤æªæ¡
+downloads-cmd-remove-file-panel =
+ .aria-label = ç§»é¤æªæ¡
+# 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 = ç§»é¤æªæ¡æå
許ä¸è¼
+downloads-cmd-choose-unblock-panel =
+ .aria-label = ç§»é¤æªæ¡æå
許ä¸è¼
+# 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 = éåæç§»é¤æªæ¡
+downloads-cmd-choose-open-panel =
+ .aria-label = éåæç§»é¤æªæ¡
+# 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 = 顯示æ´å¤è³è¨
+# 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 = éåæªæ¡
+
+## Displayed when the user clicked on a download in process. Indicates that the
+## downloading file will be opened after certain amount of time using an app
+## available in the system.
+## Variables:
+## $hours (number) - Amount of hours left till the file opens.
+## $seconds (number) - Amount of seconds left till the file opens.
+## $minutes (number) - Amount of minutes till the file opens.
+
+downloading-file-opens-in-hours-and-minutes = å°æ¼ { $hours } æ { $minutes } åå¾éåâ¦
+downloading-file-opens-in-minutes = å°æ¼ { $minutes } åå¾éåâ¦
+downloading-file-opens-in-minutes-and-seconds = å°æ¼ { $minutes } å { $seconds } ç§å¾éåâ¦
+downloading-file-opens-in-seconds = å°æ¼ { $seconds } ç§å¾éåâ¦
+downloading-file-opens-in-some-time = å°æ¼ä¸è¼å®ææéåâ¦
+
+##
+
+# 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 = é試ä¸è¼
+# 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 = åæ¶ä¸è¼
+# 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 = 顯示ææä¸è¼
+ .accesskey = S
+# 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 = ä¸è¼é
ç®è©³æ
+
+## Displayed when a site attempts to automatically download many files.
+## Variables:
+## $num (number) - Number of blocked downloads.
+## $url (string) - The url of the suspicious site, stripped of http, https and www prefix.
+
+downloads-files-not-downloaded =
+ { $num ->
+ *[one] æªä¸è¼æªæ¡ã
+ [other] æªä¸è¼ { $num } åæªæ¡ã
+ }
+downloads-blocked-from-url = å°éäºä¾èª { $url } çä¸è¼é
ç®ã
+downloads-blocked-download-detailed-info = { $url } å試èªåä¸è¼å¤åæªæ¡ï¼å¯è½æ¯éåç¶²ç«ç¼çåé¡ï¼ææ¯åè©¦å¨æ¨çé»è
¦ä¸äºå²åç¡ç¨ææ¡ã
+
+##
+
+downloads-clear-downloads-button =
+ .label = æ¸
空ä¸è¼æ¸
å®
+ .tooltiptext = æ¸
é¤å¤±æã已忶ã已宿çä¸è¼é
ç®
+# 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 = ç®åæ²æå·²ä¸è¼çæªæ¡ã
+# This string is shown when there are no items in the Downloads Panel.
+downloads-panel-empty =
+ .value = æ¤æ¬¡çè¦½éæ®µæ²æä¸è¼é
ç®ã
+# This is displayed in an item at the bottom of the Downloads Panel when there
+# are more downloads than can fit in the list in the panel.
+# $count (number) - number of files being downloaded that are not shown in the
+# panel list.
+downloads-more-downloading =
+ { $count ->
+ *[other] éå¨ä¸è¼ { $count } åæªæ¡
+ }
diff --git a/browser/browser/editBookmarkOverlay.ftl b/browser/browser/editBookmarkOverlay.ftl
new file mode 100644
index 00000000000..c49cfab0a5d
--- /dev/null
+++ b/browser/browser/editBookmarkOverlay.ftl
@@ -0,0 +1,49 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+bookmark-overlay-name-2 =
+ .value = å稱
+ .accesskey = N
+
+bookmark-overlay-url =
+ .value = ç¶²å
+ .accesskey = U
+
+# Location refers to the position of the bookmark within the browser's
+# bookmarks, not to its URL or address.
+bookmark-overlay-location-2 =
+ .value = ä½ç½®
+ .accesskey = L
+
+bookmark-overlay-choose =
+ .label = 鏿â¦
+
+bookmark-overlay-folders-expander =
+ .tooltiptext = é¡¯ç¤ºæææ¸ç±¤è³æå¤¾
+ .tooltiptextdown = { bookmark-overlay-folders-expander.tooltiptext }
+ .tooltiptextup = é±è
+
+bookmark-overlay-new-folder-button =
+ .label = æ°å¢è³æå¤¾
+ .accesskey = o
+
+bookmark-overlay-tags-2 =
+ .value = æ¨ç±¤
+ .accesskey = T
+
+bookmark-overlay-tags-empty-description =
+ .placeholder = 以éèåéæ¯åæ¨ç±¤
+
+bookmark-overlay-tags-expander =
+ .tooltiptext = é¡¯ç¤ºæææ¨ç±¤
+ .tooltiptextdown = { bookmark-overlay-tags-expander.tooltiptext }
+ .tooltiptextup = é±è
+
+bookmark-overlay-keyword-2 =
+ .value = ééµå
+ .accesskey = K
+
+bookmark-overlay-tags-caption-label = ä½¿ç¨æ¨ç±¤å¨ç¶²åå管çèæå°æ¸ç±¤
+
+bookmark-overlay-keyword-caption-label-2 = 使ç¨å®ä¸ééµåï¼ç´æ¥å¾ç¶²ååéåæ¸ç±¤
diff --git a/browser/browser/menubar.ftl b/browser/browser/menubar.ftl
new file mode 100644
index 00000000000..dfeba00d21a
--- /dev/null
+++ b/browser/browser/menubar.ftl
@@ -0,0 +1,338 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+# NOTE: For English locales, strings in this file should be in APA-style Title Case.
+# See https://apastyle.apa.org/style-grammar-guidelines/capitalization/title-case
+#
+# NOTE: For Engineers, please don't re-use these strings outside of the menubar.
+
+
+## Application Menu (macOS only)
+
+menu-application-preferences =
+ .label = å好è¨å®
+menu-application-services =
+ .label = æå
+menu-application-hide-this =
+ .label = é±è { -brand-shorter-name }
+menu-application-hide-other =
+ .label = é±èå
¶ä»è¦çª
+menu-application-show-all =
+ .label = å
¨é¨é¡¯ç¤º
+menu-application-touch-bar =
+ .label = èªè¨è§¸æ§åâ¦
+
+##
+
+# These menu-quit strings are only used on Windows and Linux.
+menu-quit =
+ .label =
+ { PLATFORM() ->
+ [windows] çµæ
+ *[other] é¢é
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [windows] x
+ *[other] Q
+ }
+# This menu-quit-mac string is only used on macOS.
+menu-quit-mac =
+ .label = é¢é { -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 = çµæ { -brand-shorter-name }
+menu-about =
+ .label = éæ¼ { -brand-shorter-name }
+ .accesskey = A
+
+## File Menu
+
+menu-file =
+ .label = æªæ¡
+ .accesskey = F
+menu-file-new-tab =
+ .label = éæ°åé
+ .accesskey = T
+menu-file-new-container-tab =
+ .label = æ°å¢å®¹å¨åé
+ .accesskey = B
+menu-file-new-window =
+ .label = éæ°è¦çª
+ .accesskey = N
+menu-file-new-private-window =
+ .label = éæ°é±ç§è¦çª
+ .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 = éåç¶²åâ¦
+menu-file-open-file =
+ .label = éåæªæ¡â¦
+ .accesskey = O
+menu-file-close =
+ .label = éé
+ .accesskey = C
+# Variables:
+# $tabCount (Number): the number of tabs that are affected by the action.
+menu-file-close-tab =
+ .label =
+ { $tabCount ->
+ [1] ééåé
+ *[other] éé { $tabCount } ååé
+ }
+ .accesskey = C
+menu-file-close-window =
+ .label = ééè¦çª
+ .accesskey = d
+menu-file-save-page =
+ .label = å¦åæ°æªâ¦
+ .accesskey = A
+menu-file-email-link =
+ .label = éµå¯éçµâ¦
+ .accesskey = E
+menu-file-share-url =
+ .label = å享
+ .accesskey = h
+menu-file-print-setup =
+ .label = é é¢è¨å®â¦
+ .accesskey = u
+menu-file-print-preview =
+ .label = é 覽åå°
+ .accesskey = v
+menu-file-print =
+ .label = åå°â¦
+ .accesskey = P
+menu-file-import-from-another-browser =
+ .label = å¾å¦ä¸å¥ç覽å¨å¯å
¥â¦
+ .accesskey = I
+menu-file-go-offline =
+ .label = é¢ç·æ¨¡å¼
+ .accesskey = k
+
+## Edit Menu
+
+menu-edit =
+ .label = 編輯
+ .accesskey = E
+menu-edit-find-in-page =
+ .label = å¨é é¢ä¸æå°â¦
+ .accesskey = F
+menu-edit-find-again =
+ .label = æ¾ä¸ä¸å
+ .accesskey = g
+menu-edit-bidi-switch-text-direction =
+ .label = æ¹è®æåæ¹å
+ .accesskey = w
+
+## View Menu
+
+menu-view =
+ .label = 檢è¦
+ .accesskey = V
+menu-view-toolbars-menu =
+ .label = å·¥å
·å
+ .accesskey = T
+menu-view-customize-toolbar2 =
+ .label = èªè¨å·¥å
·åâ¦
+ .accesskey = C
+menu-view-sidebar =
+ .label = å´éæ¬
+ .accesskey = e
+menu-view-bookmarks =
+ .label = æ¸ç±¤
+menu-view-history-button =
+ .label = æ·å²
+menu-view-synced-tabs-sidebar =
+ .label = 忥çåé
+menu-view-full-zoom =
+ .label = 縮æ¾
+ .accesskey = Z
+menu-view-full-zoom-enlarge =
+ .label = æ¾å¤§
+ .accesskey = I
+menu-view-full-zoom-reduce =
+ .label = 縮å°
+ .accesskey = o
+menu-view-full-zoom-actual-size =
+ .label = 實é大å°
+ .accesskey = A
+menu-view-full-zoom-toggle =
+ .label = åªç¸®æ¾æå
+ .accesskey = T
+menu-view-page-style-menu =
+ .label = é 颿¨£å¼
+ .accesskey = y
+menu-view-page-style-no-style =
+ .label = ç¡æ¨£å¼
+ .accesskey = n
+menu-view-page-basic-style =
+ .label = åºæ¬é 颿¨£å¼
+ .accesskey = b
+menu-view-repair-text-encoding =
+ .label = 修復æå編碼
+ .accesskey = c
+
+## These should match what Safari and other Apple applications
+## use on macOS.
+
+menu-view-enter-full-screen =
+ .label = é²å
¥å
¨è¢å¹æ¨¡å¼
+ .accesskey = F
+menu-view-exit-full-screen =
+ .label = é¢éå
¨è¢å¹æ¨¡å¼
+ .accesskey = F
+menu-view-full-screen =
+ .label = å
¨è¢å¹
+ .accesskey = F
+
+##
+
+menu-view-show-all-tabs =
+ .label = 顯示ææåé
+ .accesskey = A
+menu-view-bidi-switch-page-direction =
+ .label = åæé 颿¹å
+ .accesskey = D
+
+## History Menu
+
+menu-history =
+ .label = æ·å²
+ .accesskey = s
+menu-history-show-all-history =
+ .label = 顯示ææç覽è¨é
+menu-history-clear-recent-history =
+ .label = æ¸
餿è¿çæ·å²è¨éâ¦
+menu-history-synced-tabs =
+ .label = 忥çåé
+menu-history-restore-last-session =
+ .label = å復å
åçç覽çæ
+menu-history-hidden-tabs =
+ .label = é±èåé
+menu-history-undo-menu =
+ .label = æè¿ééçåé
+menu-history-undo-window-menu =
+ .label = æè¿ééçè¦çª
+menu-history-reopen-all-tabs = å復ææåé
+menu-history-reopen-all-windows = å復ææè¦çª
+
+## Bookmarks Menu
+
+menu-bookmarks-menu =
+ .label = æ¸ç±¤
+ .accesskey = B
+menu-bookmarks-manage =
+ .label = ç®¡çæ¸ç±¤
+menu-bookmark-current-tab =
+ .label = å°ç®ååé å å
¥æ¸ç±¤
+menu-bookmark-edit =
+ .label = ç·¨è¼¯æ¤æ¸ç±¤
+menu-bookmarks-all-tabs =
+ .label = å°ææåé å å
¥æ¸ç±¤â¦
+menu-bookmarks-toolbar =
+ .label = æ¸ç±¤å·¥å
·å
+menu-bookmarks-other =
+ .label = å
¶ä»æ¸ç±¤
+menu-bookmarks-mobile =
+ .label = è¡åæ¸ç±¤
+
+## Tools Menu
+
+menu-tools =
+ .label = å·¥å
·
+ .accesskey = T
+menu-tools-downloads =
+ .label = ä¸è¼
+ .accesskey = D
+menu-tools-addons-and-themes =
+ .label = éå å
ä»¶è使¯ä¸»é¡
+ .accesskey = A
+menu-tools-fxa-sign-in2 =
+ .label = ç»å
¥
+ .accesskey = g
+menu-tools-turn-on-sync2 =
+ .label = éå忥â¦
+ .accesskey = n
+menu-tools-sync-now =
+ .label = ç«å»åæ¥
+ .accesskey = S
+menu-tools-fxa-re-auth =
+ .label = éæ°é£ç·å° { -brand-product-name }â¦
+ .accesskey = R
+menu-tools-browser-tools =
+ .label = ç覽å¨å·¥å
·
+ .accesskey = B
+menu-tools-task-manager =
+ .label = å·¥ä½ç®¡çå¡
+ .accesskey = M
+menu-tools-page-source =
+ .label = é é¢åå§ç¢¼
+ .accesskey = o
+menu-tools-page-info =
+ .label = é é¢è³è¨
+ .accesskey = I
+menu-settings =
+ .label = è¨å®
+ .accesskey =
+ { PLATFORM() ->
+ [windows] S
+ *[other] n
+ }
+menu-tools-layout-debugger =
+ .label = çé¢é¤é¯å¨
+ .accesskey = L
+
+## Window Menu
+
+menu-window-menu =
+ .label = è¦çª
+menu-window-bring-all-to-front =
+ .label = å°æ¤ç¨å¼ææè¦çªç§»è³æå
+
+## Help Menu
+
+
+# NOTE: For Engineers, any additions or changes to Help menu strings should
+# also be reflected in the related strings in appmenu.ftl. Those strings, by
+# convention, will have the same ID as these, but prefixed with "app".
+# Example: appmenu-get-help
+#
+# These strings are duplicated to allow for different casing depending on
+# where the strings appear.
+
+menu-help =
+ .label = 說æ
+ .accesskey = H
+menu-get-help =
+ .label = åå¾å¹«å©
+ .accesskey = H
+menu-help-more-troubleshooting-info =
+ .label = æ´å¤çé£æè§£è³è¨
+ .accesskey = T
+menu-help-report-site-issue =
+ .label = åå ±ç¶²ç«åé¡â¦
+menu-help-feedback-page =
+ .label = éåºæè¦åé¥â¦
+ .accesskey = S
+menu-help-enter-troubleshoot-mode2 =
+ .label = çé£æè§£æ¨¡å¼â¦
+ .accesskey = M
+menu-help-exit-troubleshoot-mode =
+ .label = ééçé£æè§£æ¨¡å¼
+ .accesskey = M
+# Label of the Help menu item. Either this or
+# menu-help-notdeceptive is shown.
+menu-help-report-deceptive-site =
+ .label = åå ±è©é¨ç¶²ç«â¦
+ .accesskey = D
+menu-help-not-deceptive =
+ .label = é䏿¯è©é¨ç¶²ç«â¦
+ .accesskey = d
diff --git a/browser/browser/migration.ftl b/browser/browser/migration.ftl
new file mode 100644
index 00000000000..30ea2ad51ed
--- /dev/null
+++ b/browser/browser/migration.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/.
+
+migration-wizard =
+ .title = å¯å
¥ç²¾é
+import-from =
+ { PLATFORM() ->
+ [windows] ç±ä¸å便ºå¯å
¥é¸é
ãæ¸ç±¤ãæ·å²è¨éãå·²åå¯ç¢¼åå
¶ä»è³æ:
+ *[other] ç±ä¸å便ºå¯å
¥å好è¨å®ãæ¸ç±¤ãè¨éãå¯ç¢¼çè³æ:
+ }
+import-from-bookmarks = ç±ä¸å便ºå¯å
¥æ¸ç±¤:
+import-from-ie =
+ .label = Microsoft Internet Explorer
+ .accesskey = M
+import-from-edge =
+ .label = Microsoft Edge
+ .accesskey = E
+import-from-edge-legacy =
+ .label = Microsoft Edge å³çµ±ç
+ .accesskey = L
+import-from-edge-beta =
+ .label = Microsoft Edge Beta
+ .accesskey = d
+import-from-nothing =
+ .label = ä¸è¦å¯å
¥ä»»ä½æ±è¥¿
+ .accesskey = D
+import-from-safari =
+ .label = Safari
+ .accesskey = S
+import-from-brave =
+ .label = Brave
+ .accesskey = r
+import-from-canary =
+ .label = Chrome Canary
+ .accesskey = n
+import-from-chrome =
+ .label = Chrome
+ .accesskey = C
+import-from-chrome-beta =
+ .label = Chrome Beta
+ .accesskey = B
+import-from-chrome-dev =
+ .label = Chrome Dev
+ .accesskey = D
+import-from-chromium =
+ .label = Chromium
+ .accesskey = u
+import-from-firefox =
+ .label = Firefox
+ .accesskey = X
+import-from-360se =
+ .label = 360 å®å
¨ç覽å¨
+ .accesskey = 3
+no-migration-sources = æ¾ä¸å°å
嫿¸ç±¤ãç覽è¨éæå¯ç¢¼çå人è³è¨çç覽ç¨å¼ã
+import-source-page-title = å¯å
¥è¨å®èåäººè³æ
+import-items-page-title = è¦å¯å
¥çé
ç®
+import-items-description = é¸åè¦å¯å
¥çé
ç®:
+import-permissions-page-title = è«ææ¬ { -brand-short-name }
+# Do not translate "Bookmarks.plist"; the file name is the same everywhere.
+import-permissions-description = macOS è¦æ±æ¨æç¢ºå
許 { -brand-short-name } åå Safari çæ¸ç±¤æè½ç¹¼çºãè«é»æãç¹¼çºãï¼ä¸¦å¾é¡¯ç¤ºçéåæªæ¡é¢æ¿é¸æãBookmarks.plistãæªæ¡ã
+import-migrating-page-title = å¯å
¥ä¸â¦
+import-migrating-description = æ£å¨å¯å
¥ä¸åé
ç®â¦
+import-select-profile-page-title = é¸åè¨å®æª
+import-select-profile-description = å¯å¯å
¥ä¸åè¨å®æªçå
§å®¹:
+import-done-page-title = å¯å
¥å®æ
+import-done-description = æåå¯å
¥ä¸åé
ç®:
+import-close-source-browser = è«ç¢ºå®å·²éé鏿çç覽å¨å¾ç¹¼çºã
+# 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 = ç± { $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 å®å
¨ç覽å¨
+imported-safari-reading-list = é±è®å表ï¼ä¾èª Safariï¼
+imported-edge-reading-list = é±è®æ¸
å®ï¼ä¾èª 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] ç覽ç´éèæ¸ç±¤
+ *[other] ç覽ç´é
+ }
+browser-data-history-label =
+ .value =
+ { $browser ->
+ [firefox] ç覽ç´éèæ¸ç±¤
+ *[other] ç覽ç´é
+ }
+browser-data-formdata-checkbox =
+ .label = å·²å表å®è¨é
+browser-data-formdata-label =
+ .value = å·²å表å®è¨é
+# 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 = ç»å
¥è³è¨èå¯ç¢¼
+# 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 = ç»å
¥è³è¨èå¯ç¢¼
+browser-data-bookmarks-checkbox =
+ .label =
+ { $browser ->
+ [ie] æçææ
+ [edge] æçææ
+ *[other] æ¸ç±¤
+ }
+browser-data-bookmarks-label =
+ .value =
+ { $browser ->
+ [ie] æçææ
+ [edge] æçææ
+ *[other] æ¸ç±¤
+ }
+browser-data-otherdata-checkbox =
+ .label = å
¶ä»è³æ
+browser-data-otherdata-label =
+ .label = å
¶ä»è³æ
+browser-data-session-checkbox =
+ .label = è¦çªèåé
+browser-data-session-label =
+ .value = è¦çªèåé
diff --git a/browser/browser/newInstallPage.ftl b/browser/browser/newInstallPage.ftl
new file mode 100644
index 00000000000..71da93d13e9
--- /dev/null
+++ b/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 = éè¦æ¶æ¯
+heading = æ¨ { -brand-short-name } è¨å®æªçç¸éè®æ´
+
+changed-title = æ¹äºä»éº¼æ±è¥¿ï¼
+changed-desc-profiles = é份å®è£ç { -brand-short-name } å·²ææ°çè¨å®æªãè¨å®æªæ¯ Firefox ç¨ä¾å²åæ¸ç±¤ãå¯ç¢¼ãå好è¨å®çç¸éè³è¨çæªæ¡éåã
+changed-desc-dedicated = çºäºè®æ¨æ´å®¹æãæ´å®å
¨è½å¤ åæåç¨®çæ¬ç Firefoxï¼å
å« FirefoxãFirefox ESRãFirefox BetaãFirefox Developer Edition å Firefox Nightlyï¼ï¼é份å®è£ç¾å¨èµ·æä½¿ç¨ç¨ç«çè¨å®æªï¼ä¸æèªåçææ¼å
¶ä»å®è£æ¼éå°é»è
¦ä¸ç Firefox ç¶ä¸ã
+
+lost = æ²æéºå¤±ä»»ä½åäººè³ææèª¿æ´éçè¨å®ãè¥æ¨æ¾ç¶å²åè³è¨å°éå°é»è
¦ä¸ç Firefoxï¼è©²è³è¨ä»ç¶éå卿¼å¦ä¸ä»½å®è£ççæ¬ç¶ä¸ã
+
+options-title = æå¯ä»¥åä»éº¼ï¼
+options-do-nothing = è¥æ¨ä¸åä»»ä½äºï¼{ -brand-short-name } ç¶ä¸çè¨å®æªè³æå°èéå°é»è
¦ä¸ï¼å
¶ä»å®è£ç Firefox è¨å®æªè³æä¸åã
+options-use-sync = è¥æ¨æ³è¦å¨ææå®è£ç Firefox ç¶ä¸é½æç¸åçè¨å®æªè³æï¼å¯ä½¿ç¨ { -fxaccount-brand-name } ä¿æåæ¥ã
+
+resources = è³æº:
+support-link = æè¡æ¯æ´æç« - 使ç¨è¨å®æªç®¡çå¡
+
+sync-header = ç»å
¥æè¨»å { -fxaccount-brand-name }
+sync-label = 輸å
¥æ¨çé»åéµä»¶å°å
+sync-input =
+ .placeholder = é»åéµä»¶å°å
+sync-button = ç¹¼çº
+sync-terms = ç¹¼çºä½¿ç¨ï¼ä»£è¡¨æ¨åææåçä½¿ç¨æ¢æ¬¾åé±ç§æ¬å
¬åã
+sync-first = ç¬¬ä¸æ¬¡ä½¿ç¨ { -sync-brand-name }ï¼æ¨éè¦å¨æ¯å¥å®è£ç Firefox ç¶ä¸é½é²è¡ç»å
¥æè½åæ¥è³è¨ã
+sync-learn = äºè§£æ´å¤
diff --git a/browser/browser/newtab/asrouter.ftl b/browser/browser/newtab/asrouter.ftl
new file mode 100644
index 00000000000..d62e71e8547
--- /dev/null
+++ b/browser/browser/newtab/asrouter.ftl
@@ -0,0 +1,153 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 = æ¨è¦æ´å
å¥ä»¶
+cfr-doorhanger-feature-heading = æ¨è¦åè½
+
+##
+
+cfr-doorhanger-extension-sumo-link =
+ .tooltiptext = çºä»éº¼ææçå°éåï¼
+cfr-doorhanger-extension-cancel-button = ç¾å¨ä¸è¦
+ .accesskey = N
+cfr-doorhanger-extension-ok-button = ç«å»æ°å¢
+ .accesskey = A
+cfr-doorhanger-extension-manage-settings-button = 管ç建è°è¨å®
+ .accesskey = M
+cfr-doorhanger-extension-never-show-recommendation = ä¸è¦å訴æéå建è°
+ .accesskey = S
+cfr-doorhanger-extension-learn-more-link = äºè§£æ´å¤
+# This string is used on a new line below the add-on name
+# Variables:
+# $name (String) - Add-on author name
+cfr-doorhanger-extension-author = ç± { $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 = æ¨è¦
+cfr-doorhanger-extension-notification2 = æ¨è¦
+ .tooltiptext = æ¨è¦æ´å
å¥ä»¶
+ .a11y-announcement = ææ¨è¦çæ´å
å¥ä»¶å¯ä»¥ä½¿ç¨
+# 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 = æ¨è¦
+ .tooltiptext = æ¨è¦åè½
+ .a11y-announcement = ææ¨è¦çåè½å¯ä»¥ä½¿ç¨
+
+## 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 } 顿
+ }
+# Variables:
+# $total (Number) - The total number of users using the add-on
+cfr-doorhanger-extension-total-users =
+ { $total ->
+ *[other] { $total } 使ç¨è
+ }
+
+## Firefox Accounts Message
+
+cfr-doorhanger-bookmark-fxa-header = å°æ¨çæ¸ç±¤åæ¥å¸¶èèµ°ã
+cfr-doorhanger-bookmark-fxa-body = æ¾å°å¥½ç¶²ç«äºï¼æ¥ä¸ä¾ä¹æéçæ¸ç±¤åæ¥é²ææ©å§ãè©¦è©¦ä½¿ç¨ { -fxaccount-brand-name }ã
+cfr-doorhanger-bookmark-fxa-link-text = ç«å³åæ¥æ¸ç±¤â¦
+cfr-doorhanger-bookmark-fxa-close-btn-tooltip =
+ .aria-label = ééæé
+ .title = éé
+
+## Protections panel
+
+cfr-protections-panel-header = ä¸ç¶²ä¸è¢«è¿½è¹¤
+cfr-protections-panel-body = ä¿çèªå·±çè³æã{ -brand-short-name } ä¸è®å¸¸è¦ç追蹤å¨è¨éæ¨çä¸ç¶²è¡çºã
+cfr-protections-panel-link-text = äºè§£æ´å¤
+
+## 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 = æ°åè½:
+cfr-whatsnew-button =
+ .label = æä»éº¼æ°é®®äº
+ .tooltiptext = æä»éº¼æ°é®®äº
+cfr-whatsnew-release-notes-link-text = é±è®ç¼è¡å
Œ
+
+## Enhanced Tracking Protection Milestones
+
+# Variables:
+# $blockedCount (Number) - The total count of blocked trackers. This number will always be greater than 1.
+# $date (Datetime) - The date we began recording the count of blocked trackers
+cfr-doorhanger-milestone-heading2 =
+ { $blockedCount ->
+ *[other] èª { DATETIME($date, month: "long", year: "numeric") } èµ·ï¼{ -brand-short-name } å·²å°éè¶
é { $blockedCount } çµè¿½è¹¤å¨ï¼
+ }
+cfr-doorhanger-milestone-ok-button = 檢è¦å
¨é¨
+ .accesskey = S
+cfr-doorhanger-milestone-close-button = éé
+ .accesskey = C
+
+## DOH Message
+
+cfr-doorhanger-doh-body = æ¨çé±ç§æ¬ç¸ç¶éè¦ãç¾å¨èµ·ï¼{ -brand-short-name } æå¨æ¨ä¸ç¶²æï¼ç¡å¯è½éé夥伴ææä¾çæåå®å
¨å°é²è¡ DNS æ¥è©¢ï¼ä»¥ä¿è·æ¨çé±ç§ã
+cfr-doorhanger-doh-header = æ´å®å
¨ãå å¯ç DNS æ¥è©¢
+cfr-doorhanger-doh-primary-button-2 = 好ç
+ .accesskey = O
+cfr-doorhanger-doh-secondary-button = åç¨
+ .accesskey = D
+
+## Fission Experiment Message
+
+cfr-doorhanger-fission-body-approved = æ¨çé±ç§æ¬ç¸ç¶éè¦ã{ -brand-short-name } ç¾å¨èµ·æå°æ¨éåçååç¶²ç«åå¥é颿¼æ²çä¸ï¼è®é§å®¢æ´é£å·å°æ¨çå¯ç¢¼ãä¿¡ç¨å¡èãæå
¶ä»ææè³è¨ã
+cfr-doorhanger-fission-header = ç¶²ç«éé¢
+cfr-doorhanger-fission-primary-button = 好ï¼ç¥éäº
+ .accesskey = O
+cfr-doorhanger-fission-secondary-button = äºè§£æ´å¤
+ .accesskey = L
+
+## Full Video Support CFR message
+
+cfr-doorhanger-video-support-body = æ¤ç¶²ç«ä¸çå½±çå¯è½ç¡æ³æ¼éåçæ¬ç { -brand-short-name } æ£å¸¸ææ¾ãè¥é宿´æ¯æ´å½±çææ¾ï¼è«æ´æ° { -brand-short-name }ã
+cfr-doorhanger-video-support-header = æ´æ° { -brand-short-name } 便æ¾å½±ç
+cfr-doorhanger-video-support-primary-button = ç«å³æ´æ°
+ .accesskey = U
+
+## Spotlight modal shared strings
+
+spotlight-learn-more-collapsed = äºè§£æ´å¤
+ .title = å±éå³å¯äºè§£æ¤åè½çæ´å¤è³è¨
+spotlight-learn-more-expanded = äºè§£æ´å¤
+ .title = éé
+
+## VPN promotion dialog for public Wi-Fi users
+##
+## If a user is detected to be on a public Wi-Fi network, they are given a
+## bit of info about how to improve their privacy and then offered a button
+## to the Mozilla VPN page and a link to dismiss the dialog.
+
+# This header text can be explicitly wrapped.
+spotlight-public-wifi-vpn-header = ç便¨æ£ä½¿ç¨çæ¯å
Œ
± Wi-Fi
+spotlight-public-wifi-vpn-body = VPN å¯å¹«å©æ¨å¨å
Œ
±å ´æï¼ä¾å¦æ©å ´ãåå¡å»³çï¼ä¸ç¶²æï¼é±èæ¨ç實éæå¨ä½ç½®èä¸ç¶²è¡çºç´éï¼è«èæ
®ä½¿ç¨ã
+spotlight-public-wifi-vpn-primary-button = ä½¿ç¨ { -mozilla-vpn-brand-name } ä¿æé±ç§
+ .accesskey = S
+spotlight-public-wifi-vpn-link = ç¾å¨ä¸è¦
+ .accesskey = N
+
+## Total Cookie Protection Rollout
+
+# "Test pilot" is used as a verb. Possible alternatives: "Be the first to try",
+# "Join an early experiment". This header text can be explicitly wrapped.
+spotlight-total-cookie-protection-header = è©¦ç¨æåæå²ä»¥ä¾æå¼·å¤§çé±ç§ä¿è·åè½
+spotlight-total-cookie-protection-body = ãå
¨æ¹ä½ Cookie ä¿è·ãåè½å¯é²æ¢è¿½è¹¤å¨éé Cookie å¨ç¶²è·¯ä¸è¿½è¹¤æ¨ã
+# "Early access" for this feature rollout means it's a "feature preview" or
+# "soft launch" as not everybody will get it yet.
+spotlight-total-cookie-protection-expanded = { -brand-short-name } æå° Cookie å
åèµ·ä¾ï¼è®å®åå
è½å¨æ¨æå¨çç¶²ç«ä½¿ç¨ï¼é樣追蹤å¨å°±ç¡æ³ç¨å®åä¾è¿½è¹¤æ¨ãééæ¶å
試ç¨ï¼æ¨å¯ä»¥å婿åæä½³åéååè½ï¼æçºçºæ¯å人æé æ´å¥½ç網路ç°å¢ã
+spotlight-total-cookie-protection-primary-button = éåãå
¨æ¹ä½ Cookie ä¿è·ãåè½
+spotlight-total-cookie-protection-secondary-button = ç¾å¨ä¸è¦
diff --git a/browser/browser/newtab/newtab.ftl b/browser/browser/newtab/newtab.ftl
new file mode 100644
index 00000000000..49c8df605c5
--- /dev/null
+++ b/browser/browser/newtab/newtab.ftl
@@ -0,0 +1,266 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 = æ°åé
+newtab-settings-button =
+ .title = èªè¨æ¨çæ°åé é é¢
+newtab-personalize-icon-label =
+ .title = åäººåæ°åé
+ .aria-label = åäººåæ°åé
+newtab-personalize-dialog-label =
+ .aria-label = å人å
+
+## Search box component.
+
+# "Search" is a verb/action
+newtab-search-box-search-button =
+ .title = æå°
+ .aria-label = æå°
+# Variables
+# $engine (String): the name of the user's default search engine
+newtab-search-box-handoff-text = ä½¿ç¨ { $engine } æå°æè¼¸å
¥ç¶²å
+newtab-search-box-handoff-text-no-engine = æå°æè¼¸å
¥ç¶²å
+# Variables
+# $engine (String): the name of the user's default search engine
+newtab-search-box-handoff-input =
+ .placeholder = ä½¿ç¨ { $engine } æå°æè¼¸å
¥ç¶²å
+ .title = ä½¿ç¨ { $engine } æå°æè¼¸å
¥ç¶²å
+ .aria-label = ä½¿ç¨ { $engine } æå°æè¼¸å
¥ç¶²å
+newtab-search-box-handoff-input-no-engine =
+ .placeholder = æå°æè¼¸å
¥ç¶²å
+ .title = æå°æè¼¸å
¥ç¶²å
+ .aria-label = æå°æè¼¸å
¥ç¶²å
+newtab-search-box-search-the-web-input =
+ .placeholder = æå° Web
+ .title = æå° Web
+ .aria-label = æå° Web
+newtab-search-box-text = æå° Web
+newtab-search-box-input =
+ .placeholder = æå° Web
+ .aria-label = æå° Web
+
+## Top Sites - General form dialog.
+
+newtab-topsites-add-search-engine-header = æ°å¢æå°å¼æ
+newtab-topsites-add-topsites-header = æ°å¢ç±éç¶²ç«
+newtab-topsites-add-shortcut-header = æ°å¢æ·å¾
+newtab-topsites-edit-topsites-header = 編輯ç±éç¶²ç«
+newtab-topsites-edit-shortcut-header = 編輯æ·å¾
+newtab-topsites-title-label = æ¨é¡
+newtab-topsites-title-input =
+ .placeholder = 輸å
¥æ¨é¡
+newtab-topsites-url-label = ç¶²å
+newtab-topsites-url-input =
+ .placeholder = 輸å
¥æè²¼ä¸ç¶²å
+newtab-topsites-url-validation = è«è¼¸å
¥ææçç¶²å
+newtab-topsites-image-url-label = èªè¨åçç¶²å
+newtab-topsites-use-image-link = 使ç¨èªè¨åçâ¦
+newtab-topsites-image-validation = åçè¼å
¥å¤±æï¼è«æ¹ç¨ä¸åç¶²åã
+
+## Top Sites - General form dialog buttons. These are verbs/actions.
+
+newtab-topsites-cancel-button = åæ¶
+newtab-topsites-delete-history-button = å¾ç覽ç´éåªé¤
+newtab-topsites-save-button = å²å
+newtab-topsites-preview-button = é 覽
+newtab-topsites-add-button = æ°å¢
+
+## Top Sites - Delete history confirmation dialog.
+
+newtab-confirm-delete-history-p1 = æ¨ç¢ºå®è¦åªé¤æ¤é é¢çææç覽ç´éï¼
+# "This action" refers to deleting a page from history.
+newtab-confirm-delete-history-p2 = æ¤åä½ç¡æ³å¾©åã
+
+## Top Sites - Sponsored label
+
+newtab-topsite-sponsored = è´å©é
ç®
+
+## Context Menu - Action Tooltips.
+
+# General tooltip for context menus.
+newtab-menu-section-tooltip =
+ .title = éåé¸å®
+ .aria-label = éåé¸å®
+# Tooltip for dismiss button
+newtab-dismiss-button-tooltip =
+ .title = ç§»é¤
+ .aria-label = ç§»é¤
+# 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 = éåé¸å®
+ .aria-label = éå { $title } çå³éµé¸å®
+# Tooltip on an empty topsite box to open the New Top Site dialog.
+newtab-menu-topsites-placeholder-tooltip =
+ .title = 編輯æ¤ç¶²ç«
+ .aria-label = 編輯æ¤ç¶²ç«
+
+## 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 = 編輯
+newtab-menu-open-new-window = ç¨æ°è¦çªéå
+newtab-menu-open-new-private-window = ç¨æ°é±ç§è¦çªéå
+newtab-menu-dismiss = é±è
+newtab-menu-pin = éé¸
+newtab-menu-unpin = åæ¶éé¸
+newtab-menu-delete-history = å¾ç覽ç´éåªé¤
+newtab-menu-save-to-pocket = å²åè³ { -pocket-brand-name }
+newtab-menu-delete-pocket = å¾ { -pocket-brand-name } åªé¤
+newtab-menu-archive-pocket = å¨ { -pocket-brand-name } 裡å°å
+newtab-menu-show-privacy-info = æåçè´å©åèæ¨çé±ç§æ¬
+
+## Message displayed in a modal window to explain privacy and provide context for sponsored content.
+
+newtab-privacy-modal-button-done = 宿
+newtab-privacy-modal-button-manage = 管çè´å©å
§å®¹è¨å®
+newtab-privacy-modal-header = æ¨çé±ç§ç¸ç¶éè¦ã
+newtab-privacy-modal-paragraph-2 = é¤äºæä¾å¸å¼äººçæç« ä¹å¤ï¼æåéèè´å©åå使ä¾èæ¨ç¸éï¼ä¸ç¶ç²¾æç´°é¸çå
§å®¹ãè«æ¾å¿ï¼æ¨çä¸ç¶²è³æçµå°ä¸ææµåºæ¼æ¨é»è
¦ä¸ç { -brand-product-name } ä¹å¤â æåè·æåçè´å©åé½ä¸æçå°ã
+newtab-privacy-modal-link = äºè§£æåå¦ä½å¨æä¾æ°åé å
§å®¹çåæç¢ºä¿æ¨çé±ç§
+
+##
+
+# Bookmark is a noun in this case, "Remove bookmark".
+newtab-menu-remove-bookmark = ç§»é¤æ¸ç±¤
+# Bookmark is a verb here.
+newtab-menu-bookmark = æ¸ç±¤
+
+## 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 = è¤è£½ä¸è¼éçµ
+newtab-menu-go-to-download-page = åå¾ä¸è¼é é¢
+newtab-menu-remove-download = èªä¸è¼è¨éç§»é¤
+
+## 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] é¡¯ç¤ºæ¼ Finder
+ *[other] éåæå¨è³æå¤¾
+ }
+newtab-menu-open-file = éåæªæ¡
+
+## 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 = é 訪éçç¶²ç«
+newtab-label-bookmarked = å·²å å
¥æ¸ç±¤
+newtab-label-removed-bookmark = å·²ç§»é¤æ¸ç±¤
+newtab-label-recommended = ç±é
+newtab-label-saved = å·²å²åè³ { -pocket-brand-name }
+newtab-label-download = å·²ä¸è¼
+# 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 } · è´å©
+# 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 = ç± { $sponsor } è´å©
+# This string is used under the image of story cards to indicate source and time to read
+# Variables:
+# $source (String): This is the name of a company or their domain
+# $timeToRead (Number): This is the estimated number of minutes to read this story
+newtab-label-source-read-time = { $source } · { $timeToRead } åé
+
+## 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 = ç§»é¤æ®µè½
+newtab-section-menu-collapse-section = æºç段è½
+newtab-section-menu-expand-section = å±é段è½
+newtab-section-menu-manage-section = ç®¡çæ®µè½
+newtab-section-menu-manage-webext = ç®¡çæ´å
å¥ä»¶
+newtab-section-menu-add-topsite = æ°å¢ç±éç¶²ç«
+newtab-section-menu-add-search-engine = æ°å¢æå°å¼æ
+newtab-section-menu-move-up = ä¸ç§»
+newtab-section-menu-move-down = ä¸ç§»
+newtab-section-menu-privacy-notice = é±ç§æ¬å
Œ
+
+## Section aria-labels
+
+newtab-section-collapse-section-label =
+ .aria-label = æºç段è½
+newtab-section-expand-section-label =
+ .aria-label = å±é段è½
+
+## Section Headers.
+
+newtab-section-header-topsites = ç±éç¶²ç«
+newtab-section-header-highlights = ç²¾é¸ç¶²ç«
+newtab-section-header-recent-activity = è¿æåæ
+# Variables:
+# $provider (String): Name of the corresponding content provider.
+newtab-section-header-pocket = { $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 = éå§ä¸ç¶²ï¼æåå°±æææ¨å¨ç¶²è·¯ä¸ç¼ç¾ç好æç« ãå½±çãåå å
¥æ¸ç±¤çé é¢é¡¯ç¤ºæ¼æ¤ã
+# 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 = æææç« é½è®å®å¦ï¼æé»åä¾ï¼{ $provider } 尿便´å¤æ¨è¦æ
äºãçä¸åäºï¼é¸æç±é主é¡ï¼çç 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 = é½è®å®äºï¼
+newtab-discovery-empty-section-topstories-content = æé»ååä¾ççææ²ææ°é®®äºã
+newtab-discovery-empty-section-topstories-try-again-button = é試
+newtab-discovery-empty-section-topstories-loading = è¼å
¥ä¸â¦
+# Displays when a layout in a section took too long to fetch articles.
+newtab-discovery-empty-section-topstories-timed-out = ååï¼æ«æç¡æ³è¼å
¥æ¤åå¡ã
+
+## 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 = ç±é主é¡:
+newtab-pocket-new-topics-title = æ³è¦æ´å¤æç« åï¼çéäºä¾èª { -pocket-brand-name } çç±é主é¡
+newtab-pocket-more-recommendations = æ´å¤æ¨è¦é
ç®
+newtab-pocket-learn-more = äºè§£æ´å¤
+newtab-pocket-cta-button = åå¾ { -pocket-brand-name }
+newtab-pocket-cta-text = å°æ¨åæçæ
äºå²åå° { -pocket-brand-name }ï¼é±è®ä¸ç¯ç¯å¥½æç« ã
+newtab-pocket-pocket-firefox-family = { -pocket-brand-name } æ¯ { -brand-product-name } ç¢åå®¶æçä¸é¨ä»½
+# A save to Pocket button that shows over the card thumbnail on hover.
+newtab-pocket-save-to-pocket = å²åè³ { -pocket-brand-name }
+newtab-pocket-saved-to-pocket = å·²å²åè³ { -pocket-brand-name }
+# This is a button shown at the bottom of the Pocket section that loads more stories when clicked.
+newtab-pocket-load-more-stories-button = è¼å
¥æ´å¤æç«
+
+## Pocket Final Card Section.
+## This is for the final card in the Pocket grid.
+
+newtab-pocket-last-card-title = é½è®å®äºï¼
+newtab-pocket-last-card-desc = æé»ååä¾ççææ²ææ°æç« ã
+newtab-pocket-last-card-image =
+ .alt = é½è®å®äºï¼
+
+## Error Fallback Content.
+## This message and suggested action link are shown in each section of UI that fails to render.
+
+newtab-error-fallback-info = åå·ï¼è¼å
¥å
§å®¹æç¼çé¯èª¤ã
+newtab-error-fallback-refresh-link = è«éæ°æ´çé é¢åè©¦ä¸æ¬¡ã
+
+## Customization Menu
+
+newtab-custom-shortcuts-title = æ·å¾
+newtab-custom-shortcuts-subtitle = æ¨å²åæé 訪éçç¶²ç«
+newtab-custom-row-selector =
+ { $num ->
+ *[other] { $num } è¡
+ }
+newtab-custom-sponsored-sites = è´å©æ·å¾
+newtab-custom-pocket-title = ç± { -pocket-brand-name } æ¨è¦
+newtab-custom-pocket-subtitle = ç± { -brand-product-name } çå§å¦¹ä½ { -pocket-brand-name } ç²¾å¿çå±çå
§å®¹
+newtab-custom-pocket-sponsored = è´å©å
§å®¹
+newtab-custom-recent-title = è¿æåæ
+newtab-custom-recent-subtitle = è¿æé 訪éçç¶²ç«èå
§å®¹ç²¾é¸
+newtab-custom-close-button = éé
+newtab-custom-settings = ç®¡çæ´å¤è¨å®
diff --git a/browser/browser/newtab/onboarding.ftl b/browser/browser/newtab/onboarding.ftl
new file mode 100644
index 00000000000..19a0dd90a3c
--- /dev/null
+++ b/browser/browser/newtab/onboarding.ftl
@@ -0,0 +1,272 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 / 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.
+
+
+### UI strings for the MR1 onboarding / multistage about:welcome
+### Various strings use a non-breaking space to avoid a single dangling /
+### widowed word, so test on various window sizes if you also want this.
+
+
+## Welcome page strings
+
+onboarding-welcome-header = æ¡è¿ä½¿ç¨ { -brand-short-name }
+onboarding-start-browsing-button-label = éå§ç覽
+onboarding-not-now-button-label = ç¾å¨ä¸è¦
+
+## Custom Return To AMO onboarding strings
+
+return-to-amo-subtitle = æåï¼æ¨å·²ç¶å®è£å¥½ { -brand-short-name }
+#
will be replaced with the icon belonging to the extension
+#
+# Variables:
+# $addon-name (String) - Name of the add-on
+return-to-amo-addon-title = ç¾å¨ä¾å®è£
{ $addon-name } å§ã
+return-to-amo-add-extension-label = å®è£æ´å
å¥ä»¶
+
+## Multistage 3-screen onboarding flow strings (about:welcome pages)
+
+# The in this string allows a "zap" underline style to be
+# automatically added to the text inside it. { -brand-short-name } should stay inside the span.
+onboarding-multistage-welcome-header = æ¡è¿ä½¿ç¨ { -brand-short-name }
+onboarding-multistage-welcome-subtitle = ç±éçå©çµç¹å
¨åç¸æºï¼åå¿«åå®å
¨ï¼éæ´æé±ç§ä¿éçç覽å¨ã
+onboarding-multistage-welcome-primary-button-label = éå§è¨å®
+onboarding-multistage-welcome-secondary-button-label = ç»å
¥
+onboarding-multistage-welcome-secondary-button-text = å·²ç¶æå¸³èäºï¼
+# The in this string allows a "zap" underline style to be
+# automatically added to the text inside it. "default" should stay inside the span.
+onboarding-multistage-set-default-header = å° { -brand-short-name } è¨çºæ¨çé è¨ç覽å¨
+onboarding-multistage-set-default-subtitle = 鍿ä¸ç¶²é½ææå¿«é度ãå®å
¨èé±ç§ä¿è·ã
+onboarding-multistage-set-default-primary-button-label = è¨çºé è¨ç覽å¨
+onboarding-multistage-set-default-secondary-button-label = ç¾å¨ä¸è¦
+# The in this string allows a "zap" underline style to be
+# automatically added to the text inside it. { -brand-short-name } should stay inside the span.
+onboarding-multistage-pin-default-header = æ»é¼ è¼é¬é»æå¹¾ä¸ï¼å³å¯éå§ä½¿ç¨ { -brand-short-name }
+onboarding-multistage-pin-default-subtitle = æ¯æ¬¡ä¸ç¶²æï¼é½è½ä¿æå¿«éãå®å
¨åæé±ç§çç覽é«é©ã
+# The "settings" here refers to "Windows 10 Settings App" and not the browser's
+onboarding-multistage-pin-default-waiting-subtitle = éåè¨å®ç«é¢å¾ï¼å¨ãç¶²é ç覽å¨ãä¸é¸æ { -brand-short-name }
+# The "settings" here refers to "Windows 10 Settings App" and not the browser's
+onboarding-multistage-pin-default-help-text = å°æ { -brand-short-name } éé¸å°å·¥ä½å並éåè¨å®ç«é¢
+onboarding-multistage-pin-default-primary-button-label = å° { -brand-short-name } è¨çºæçé è¨ç覽å¨
+# The in this string allows a "zap" underline style to be
+# automatically added to the text inside it. "more" should stay inside the span.
+onboarding-multistage-import-header = å¯å
¥æ¨çå¯ç¢¼ãæ¸ç±¤èæ´å¤è³æ
+onboarding-multistage-import-subtitle = å¾å
¶ä»ç覽å¨éä¾ä½¿ç¨ï¼å¾ç°¡å®å°±è½ææææ±è¥¿é½å¸¶ä¾ { -brand-short-name }ã
+onboarding-multistage-import-primary-button-label = éå§å¯å
¥
+onboarding-multistage-import-secondary-button-label = ç¾å¨ä¸è¦
+# 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 = 卿¤è£ç½®æ¾å°ä¸åç¶²ç«ãé¤éæ¨æ±ºå®è¦å¯å
¥ç¶²ç«è³æï¼å¦å { -brand-short-name } 䏦䏿å²åæåæ¥å¦ä¸å¥ç覽å¨ä¸çè³æã
+
+## Multistage onboarding strings (about:welcome pages)
+
+# Aria-label to make the "steps" of multistage onboarding visible to screen readers.
+# Variables:
+# $current (Int) - Number of the current page
+# $total (Int) - Total number of pages
+onboarding-welcome-steps-indicator =
+ .aria-label = éå§ä½¿ç¨: 第 { $current } ç«é¢ï¼å
¨é¨å
± { $total } ç«é¢
+# The in this string allows a "zap" underline style to be
+# automatically added to the text inside it. "look" should stay inside the span.
+onboarding-multistage-theme-header = æé¸ä¸ç¨®é¢¨æ ¼
+onboarding-multistage-theme-subtitle = 使ç¨ä½æ¯ä¸»é¡ï¼è® { -brand-short-name } ææ¨çé¢¨æ ¼
+onboarding-multistage-theme-primary-button-label2 = 宿
+onboarding-multistage-theme-secondary-button-label = ç¾å¨ä¸è¦
+# Automatic theme uses operating system color settings
+onboarding-multistage-theme-label-automatic = èªå
+onboarding-multistage-theme-label-light = 亮è²
+onboarding-multistage-theme-label-dark = æè²
+# "Firefox Alpenglow" here is the name of the theme, and should be kept in English.
+onboarding-multistage-theme-label-alpenglow = Firefox Alpenglow
+# "Hero Text" displayed on left side of welcome screen.
+# The "Fire" in "Fire starts here" plays on the "Fire" in "Firefox".
+# It also signals the passion users bring to Firefox, how they use
+# Firefox to pursue those passions, as well as the boldness in their
+# choice to use Firefox over a larger competitor browser.
+# An alternative title for localization is: "It starts here".
+# This text can be formatted to span multiple lines as needed.
+mr1-welcome-screen-hero-text = ä¸åå¾é裡éå§
+# Caption for background image in about:welcome. "Soraya Osorio" is the name
+# of the person and shouldn't be translated.
+# In case your language needs to adapt the nouns to a gender, Soraya is a female name (she/her).
+# You can see the picture in about:welcome in Nightly 90.
+mr1-onboarding-welcome-image-caption = Soraya Osorio â å®¶å
·è¨è¨å¸«ãFirefox ç²çµ²
+# This button will open system settings to turn on prefers-reduced-motion
+mr1-onboarding-reduce-motion-button-label = ééåç«
+
+## Title and primary button strings differ between platforms as they
+## match the OS' application context menu item action where Windows uses "pin"
+## and "taskbar" while macOS "keep" and "Dock" (proper noun).
+
+# Title used on welcome page when Firefox is not pinned
+mr1-onboarding-pin-header =
+ { PLATFORM() ->
+ [macos] å° { -brand-short-name } ä¿ç卿¨ç Dockï¼æ¹ä¾¿å¿«é使ç¨
+ *[other] å° { -brand-short-name } éé¸å°æ¨çå·¥ä½åï¼æ¹ä¾¿å¿«é使ç¨
+ }
+# Primary button string used on welcome page when Firefox is not pinned.
+mr1-onboarding-pin-primary-button-label =
+ { PLATFORM() ->
+ [macos] ä¿çå¨ Dock
+ *[other] éé¸å°å·¥ä½å
+ }
+
+## Multistage MR1 onboarding strings (about:welcome pages)
+
+# This string will be used on welcome page primary button label
+# when Firefox is both pinned and default
+mr1-onboarding-get-started-primary-button-label = éå§ä½¿ç¨
+mr1-onboarding-welcome-header = æ¡è¿ä½¿ç¨ { -brand-short-name }
+mr1-onboarding-set-default-pin-primary-button-label = å° { -brand-short-name } è¨çºæç主è¦ç覽å¨
+ .title = å° { -brand-short-name } è¨çºé è¨ç覽å¨ï¼ä¸¦éé¸å°å·¥ä½å
+# This string will be used on welcome page primary button label
+# when Firefox is not default but already pinned
+mr1-onboarding-set-default-only-primary-button-label = å° { -brand-short-name } è¨çºæçé è¨ç覽å¨
+mr1-onboarding-set-default-secondary-button-label = æ«æä¸è¦
+mr1-onboarding-sign-in-button-label = ç»å
¥
+
+## Title, subtitle and primary button string used on set default onboarding screen
+## when Firefox is not default browser
+
+mr1-onboarding-default-header = å° { -brand-short-name } è¨çºæ¨çé è¨ç覽å¨
+mr1-onboarding-default-subtitle = éåé度ãå®å
¨æ§ãé±ç§æ¬çèªåä¿è·ã
+mr1-onboarding-default-primary-button-label = è¨çºé è¨ç覽å¨
+
+## Multistage MR1 onboarding strings (about:welcome pages)
+
+mr1-onboarding-import-header = è³æé¨èº«æå¸¶
+mr1-onboarding-import-subtitle =
+ å¯å
¥æ¨çå¯ç¢¼ãæ¸ç±¤
+ èæ´å¤è³æã
+# The primary import button label will depend on whether we can detect which browser was used to download Firefox.
+# Variables:
+# $previous (Str) - Previous browser name, such as Edge, Chrome
+mr1-onboarding-import-primary-button-label-attribution = å¾ { $previous } å¯å
¥
+# This string will be used in cases where we can't detect the previous browser name.
+mr1-onboarding-import-primary-button-label-no-attribution = å¾å
å使ç¨çç覽å¨å¯å
¥
+mr1-onboarding-import-secondary-button-label = ç¾å¨ä¸è¦
+mr2-onboarding-colorway-header = ç¾éºçæ´»
+mr2-onboarding-colorway-subtitle = æ´»åæ»¿é»çæ°é
è²ï¼éææä¾ã
+mr2-onboarding-colorway-primary-button-label = å²åé
è²
+mr2-onboarding-colorway-secondary-button-label = ç¾å¨ä¸è¦
+mr2-onboarding-colorway-label-soft = è»è²èª¿
+mr2-onboarding-colorway-label-balanced = åè¡¡è²èª¿
+# "Bold" is used in the sense of bravery or courage, not in the sense of
+# emphasized text.
+mr2-onboarding-colorway-label-bold = æ¿çè²èª¿
+# Automatic theme uses operating system color settings
+mr2-onboarding-theme-label-auto = èªå
+# This string will be used for Default theme
+mr2-onboarding-theme-label-default = é è¨
+mr1-onboarding-theme-header = ææ¨çé¢¨æ ¼
+mr1-onboarding-theme-subtitle = 使ç¨ä½æ¯ä¸»é¡ï¼è® { -brand-short-name } ææ¨çé¢¨æ ¼
+mr1-onboarding-theme-primary-button-label = å²å使¯ä¸»é¡
+mr1-onboarding-theme-secondary-button-label = ç¾å¨ä¸è¦
+# System theme uses operating system color settings
+mr1-onboarding-theme-label-system = ç³»çµ±ä½æ¯ä¸»é¡
+mr1-onboarding-theme-label-light = 亮è²
+mr1-onboarding-theme-label-dark = æè²
+# "Alpenglow" here is the name of the theme, and should be kept in English.
+mr1-onboarding-theme-label-alpenglow = 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.
+
+
+## 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 = æ ¹æä½æ¥ç³»çµ±è¨å®ä¾é¡¯ç¤ºæéãé¸å®ãè¦çªçå¤è§ã
+# Input description for automatic theme
+onboarding-multistage-theme-description-automatic-2 =
+ .aria-description = æ ¹æä½æ¥ç³»çµ±è¨å®ä¾é¡¯ç¤ºæéãé¸å®ãè¦çªçå¤è§ã
+# Tooltip displayed on hover of light theme
+onboarding-multistage-theme-tooltip-light-2 =
+ .title = 使ç¨äº®è²æéãé¸å®ãè¦çªæ¨£å¼ã
+# Input description for light theme
+onboarding-multistage-theme-description-light =
+ .aria-description = 使ç¨äº®è²æéãé¸å®ãè¦çªæ¨£å¼ã
+# Tooltip displayed on hover of dark theme
+onboarding-multistage-theme-tooltip-dark-2 =
+ .title = ä½¿ç¨æè²æéãé¸å®ãè¦çªæ¨£å¼ã
+# Input description for dark theme
+onboarding-multistage-theme-description-dark =
+ .aria-description = ä½¿ç¨æè²æéãé¸å®ãè¦çªæ¨£å¼ã
+# Tooltip displayed on hover of Alpenglow theme
+onboarding-multistage-theme-tooltip-alpenglow-2 =
+ .title = 使ç¨è²å½©ç¹½ç´çæéãé¸å®ãè¦çªæ¨£å¼ã
+# Input description for Alpenglow theme
+onboarding-multistage-theme-description-alpenglow =
+ .aria-description = 使ç¨è²å½©ç¹½ç´çæéãé¸å®ãè¦çªæ¨£å¼ã
+
+## Multistage MR1 onboarding strings (MR1 about:welcome pages)
+
+# Tooltip displayed on hover of system theme
+mr1-onboarding-theme-tooltip-system =
+ .title =
+ ä¾ç
§ä½æ¥ç³»çµ±ç使¯ä¸»é¡è¨å®ä¾é¡¯ç¤º
+ æéãé¸å®ãè¦çªçå¤è§ã
+# Input description for system theme
+mr1-onboarding-theme-description-system =
+ .aria-description =
+ ä¾ç
§ä½æ¥ç³»çµ±ç使¯ä¸»é¡è¨å®ä¾é¡¯ç¤º
+ æéãé¸å®ãè¦çªçå¤è§ã
+# Tooltip displayed on hover of light theme
+mr1-onboarding-theme-tooltip-light =
+ .title = 使ç¨äº®è²æéãé¸å®ãè¦çªä½æ¯ä¸»é¡ã
+# Input description for light theme
+mr1-onboarding-theme-description-light =
+ .aria-description = 使ç¨äº®è²æéãé¸å®ãè¦çªä½æ¯ä¸»é¡ã
+# Tooltip displayed on hover of dark theme
+mr1-onboarding-theme-tooltip-dark =
+ .title = ä½¿ç¨æè²æéãé¸å®ãè¦çªä½æ¯ä¸»é¡ã
+# Input description for dark theme
+mr1-onboarding-theme-description-dark =
+ .aria-description = ä½¿ç¨æè²æéãé¸å®ãè¦çªä½æ¯ä¸»é¡ã
+# Tooltip displayed on hover of Alpenglow theme
+mr1-onboarding-theme-tooltip-alpenglow =
+ .title = 使ç¨è²å½©ç¹½ç´çæéãé¸å®ãè¦çªä½æ¯ä¸»é¡ã
+# Input description for Alpenglow theme
+mr1-onboarding-theme-description-alpenglow =
+ .aria-description = 使ç¨è²å½©ç¹½ç´çæéãé¸å®ãè¦çªä½æ¯ä¸»é¡ã
+# Tooltip displayed on hover of non-default colorway theme
+# variations e.g. soft, balanced, bold
+mr2-onboarding-theme-tooltip =
+ .title = 使ç¨éå¥é
è²ã
+# Selector description for non-default colorway theme
+# variations e.g. soft, balanced, bold
+mr2-onboarding-theme-description =
+ .aria-description = 使ç¨éå¥é
è²ã
+# Tooltip displayed on hover of colorway
+# Variables:
+# $colorwayName (String) - Name of colorway
+mr2-onboarding-colorway-tooltip =
+ .title = æ¢ç´¢ { $colorwayName } çé
è²ã
+# Selector description for colorway
+# Variables:
+# $colorwayName (String) - Name of colorway
+mr2-onboarding-colorway-description =
+ .aria-description = æ¢ç´¢ { $colorwayName } çé
è²ã
+# Tooltip displayed on hover of default themes
+mr2-onboarding-default-theme-tooltip =
+ .title = æ¢ç´¢é è¨ä½æ¯ä¸»é¡ã
+# Selector description for default themes
+mr2-onboarding-default-theme-description =
+ .aria-description = æ¢ç´¢é è¨ä½æ¯ä¸»é¡ã
+
+## Strings for Thank You page
+
+mr2-onboarding-thank-you-header = æè¬æ¨é¸ç¨
+mr2-onboarding-thank-you-text = { -brand-short-name } æ¯ä¸å¥ç±éçå©çµç¹ææé çç¨ç«ç覽å¨ãç±æåä¸èµ·è®ç¶²è·¯ç°å¢æ´å®å
¨ãæ´å¥åº·ã乿´æé±ç§ã
+mr2-onboarding-start-browsing-button-label = éå§ä¸ç¶²
diff --git a/browser/browser/nsserrors.ftl b/browser/browser/nsserrors.ftl
new file mode 100644
index 00000000000..dc57240a972
--- /dev/null
+++ b/browser/browser/nsserrors.ftl
@@ -0,0 +1,355 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 = é£ç·å° { $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 = é¯èª¤ç¢¼: { $error }
+
+psmerr-ssl-disabled = ç¡æ³å®å
¨é£ç·ï¼å çº SSL éè¨åå®å·²åç¨ã
+psmerr-ssl2-disabled = ç¡æ³å®å
¨é£ç·ï¼å çºè©²ç¶²ç«ä½¿ç¨èçãä¸å®å
¨ç SSL éè¨åå®ã
+
+# This is a multi-line message.
+psmerr-hostreusedissuerandserial =
+ æ¨æ¶å°ç¡æçæèï¼è«è伺æå¨ç®¡ç塿éµä»¶è¯çµ¡äººè¯çµ¡ï¼ä¸¦æä¾ä¸åè³è¨:
+
+ æ¨çæèå
§å«èå
¶ä»æèæ©æ§æç°½ç¼æèç¸åçåºèï¼è«ç¨ä¸åçåºèç¢çæ°çæèã
+
+ssl-error-export-only-server = ç¡æ³å®å
¨éè¨ï¼ç¯é»ä¸æ¯æ´é«çç´å å¯ã
+ssl-error-us-only-server = ç¡æ³å®å
¨éè¨ï¼ä¸æ¯æ´ç¯é»æè¦æ±çé«çç´å å¯ã
+ssl-error-no-cypher-overlap = ç¡æ³å®å
¨å°èå°æ¹éè¨: ç¡éæ¹æ¥åçå 坿¼ç®æ³ã
+ssl-error-no-certificate = æ¾ä¸å°éå¥éè¦çæèæéé°ã
+ssl-error-bad-certificate = ç¡æ³å®å
¨èç¯é»éè¨: ç¯é» çæè已被æçµã
+ssl-error-bad-client = 伺æå¨å¾ç¨æ¶ç«¯æ¶å°æå£çè³æã
+ssl-error-bad-server = ç¨æ¶ç«¯å¾ä¼ºæå¨æ¶å°æå£çè³æã
+ssl-error-unsupported-certificate-type = 䏿¯æ´çæèé¡åã
+ssl-error-unsupported-version = å°æ¹ä½¿ç¨ä¸æ¯æ´çå®å
¨éè¨åå®çæ¬ã
+ssl-error-wrong-certificate = ç¨æ¶ç«¯éå¥å¤±æ: éé°è³æåº«ä¸çç§å¯éé°åæèè³æåº«ä¸çå
¬ééé°ä¸ç¬¦ã
+ssl-error-bad-cert-domain = ç¡æ³å®å
¨èç¯é»éè¨: è«æ±çç¶²åå稱è伺æå¨çæèä¸ç¬¦ã
+ssl-error-post-warning = ç¡æ³èå¥ç SSL é¯èª¤ä»£ç¢¼ã
+ssl-error-ssl2-disabled = å°æ¹åªæ¯æ´ SSL 第 2 çï¼ä½æ¬æ©å·²åç¨æ¤åå®ã
+ssl-error-bad-mac-read = SSL æ¥æ¶äºå«é¯èª¤è¨æ¯éå¥ç¢¼çè¨éã
+ssl-error-bad-mac-alert = SSL 端é»åå ±é¯èª¤çè¨æ¯éå¥ç¢¼ã
+ssl-error-bad-cert-alert = SSL 端é»ç¡æ³é©èæ¨çæèã
+ssl-error-revoked-cert-alert = ç±æ¼æ¨çæè已廢æ¢ï¼SSL ç«¯é»æçµæ¥æ¶ã
+ssl-error-expired-cert-alert = ç±æ¼æ¨çæèå·²éæï¼SSL ç«¯é»æçµæ¥æ¶ã
+ssl-error-ssl-disabled = ç¡æ³é£ç·: SSL å·²åç¨ã
+ssl-error-fortezza-pqg = ç¡æ³é£ç·: SSL 端é»ä½æ¼å
¶ä»ç FORTEZZA ç¶²åã
+ssl-error-unknown-cipher-suite = è«æ±äºæªç¥ç SSL å å¯å¥ä»¶çµã
+ssl-error-no-ciphers-supported = æ¤ç¨å¼ç®åæ²æåç¨ä»»ä½å å¯å¥ä»¶çµã
+ssl-error-bad-block-padding = SSL æ¶å°å«æå£åå¡å¡«å
çè¨éã
+ssl-error-rx-record-too-long = SSL æ¶å°å«è¶
åºæå¤§å
許å串é·åº¦çè¨éã
+ssl-error-tx-record-too-long = SSL 試åå³éè¶
åºæå¤§å
許å串é·åº¦çè¨éã
+ssl-error-rx-malformed-hello-request = SSL æ¶å°ä¸æ£å¸¸ç Hello Request 交æ¡è¨æ¯ã
+ssl-error-rx-malformed-client-hello = SSL æ¶å°ä¸æ£å¸¸ç Client Hello 交æ¡è¨æ¯ã
+ssl-error-rx-malformed-server-hello = SSL æ¶å°ä¸æ£å¸¸ç Server Hello 交æ¡è¨æ¯ã
+ssl-error-rx-malformed-certificate = SSL æ¶å°ä¸æ£å¸¸ç Certificate 交æ¡è¨æ¯ã
+ssl-error-rx-malformed-server-key-exch = SSL æ¶å°ä¸æ£å¸¸ç Server Key Exchange 交æ¡è¨æ¯ã
+ssl-error-rx-malformed-cert-request = SSL æ¶å°ä¸æ£å¸¸ç Certificate Request 交æ¡è¨æ¯ã
+ssl-error-rx-malformed-hello-done = SSL æ¶å°ä¸æ£å¸¸ç Server Hello Done 交æ¡è¨æ¯ã
+ssl-error-rx-malformed-cert-verify = SSL æ¶å°ä¸æ£å¸¸ç Certificate Verify 交æ¡è¨æ¯ã
+ssl-error-rx-malformed-client-key-exch = SSL æ¶å°ä¸æ£å¸¸ç Client Key Exchange 交æ¡è¨æ¯ã
+ssl-error-rx-malformed-finished = SSL æ¶å°ä¸æ£å¸¸ç Finished 交æ¡è¨æ¯ã
+ssl-error-rx-malformed-change-cipher = SSL æ¶å°ä¸æ£å¸¸ç Change Cipher Spec è¨éã
+ssl-error-rx-malformed-alert = SSL æ¶å°ä¸æ£å¸¸ç Alert è¨éã
+ssl-error-rx-malformed-handshake = SSL æ¶å°ä¸æ£å¸¸ç交æ¡è¨éã
+ssl-error-rx-malformed-application-data = SSL æ¶å°ä¸æ£å¸¸çç¨å¼è³æè¨éã
+ssl-error-rx-unexpected-hello-request = SSL æ¶å°æªé æç Hello è«æ±äº¤æ¡è¨æ¯ã
+ssl-error-rx-unexpected-client-hello = SSL æ¶å°æªé æç Client Hello 交æ¡è¨æ¯ã
+ssl-error-rx-unexpected-server-hello = SSL æ¶å°æªé æç Server Hello 交æ¡è¨æ¯ã
+ssl-error-rx-unexpected-certificate = SSL æ¶å°æªé æç Certificate 交æ¡è¨æ¯ã
+ssl-error-rx-unexpected-server-key-exch = SSL æ¶å°æªé æç Server Key Exchange 交æ¡è¨æ¯ã
+ssl-error-rx-unexpected-cert-request = SSL æ¶å°æªé æç Certificate Request 交æ¡è¨æ¯ã
+ssl-error-rx-unexpected-hello-done = SSL æ¶å°æªé æç伺æå¨ Hello å®æäº¤æ¡è¨æ¯ã
+ssl-error-rx-unexpected-cert-verify = SSL æ¶å°æªé æç Certificate Verify 交æ¡è¨æ¯ã
+ssl-error-rx-unexpected-client-key-exch = SSL æ¶å°æªé æç Client Key Exchange 交æ¡è¨æ¯ã
+ssl-error-rx-unexpected-finished = SSL æ¶å°æªé æçå·²å®æäº¤æ¡è¨æ¯ã
+ssl-error-rx-unexpected-change-cipher = SSL æ¶å°æªé æçè®æ´å¯ææ ¼å¼è¨éã
+ssl-error-rx-unexpected-alert = SSL æ¶å°æªé æçè¦åè¨éã
+ssl-error-rx-unexpected-handshake = SSL æ¶å°æªé æç交æ¡è¨éã
+ssl-error-rx-unexpected-application-data = SSL æ¶å°æªé æçç¨å¼è³æè¨éã
+ssl-error-rx-unknown-record-type = SSL æ¶å°å«æªç¥å
§å®¹é¡åçè¨éã
+ssl-error-rx-unknown-handshake = SSL æ¶å°å«æªç¥è¨æ¯é¡åç交æ¡è¨æ¯ã
+ssl-error-rx-unknown-alert = SSL æ¶å°å«æªç¥è¦åæè¿°çè¦åè¨éã
+ssl-error-close-notify-alert = SSL 端é»å·²é鿤é£ç·ã
+ssl-error-handshake-unexpected-alert = SSL ç«¯é»æ¶å°äºä¸ææ¶å°ç交æ¡è¨æ¯ã
+ssl-error-decompression-failure-alert = SSL 端é»ç¡æ³æåè§£å£ç¸®æ¶å°ç SSL è¨éã
+ssl-error-handshake-failure-alert = SSL 端é»ç¡æ³äº¤æ¶åºå¯æ¥åçå®å
¨æ§åæ¸ã
+ssl-error-illegal-parameter-alert = SSL 端é»å·²æçµæ¥æ¶ç¡æ³æ¥åçå
§å®¹ã
+ssl-error-unsupported-cert-alert = SSL 端é»ä¸æ¯æ´æ¶å°çæèé¡åã
+ssl-error-certificate-unknown-alert = SSL ç«¯é»æ¶å°çæèç¼çæªé æçåé¡ã
+ssl-error-generate-random-failure = SSL ç鍿©æ¸åç¢çå¨å¤±æã
+ssl-error-sign-hashes-failure = ç¡æ³æ¸ä½åç°½ç½²è³æä»¥é©èæ¨çæèã
+ssl-error-extract-public-key-failure = SSL ç¡æ³è§£éä¾èªç¯é»çæèä¸çå
¬ééé°ã
+ssl-error-server-key-exchange-failure = èç SSL 伺æå¨éé°äº¤æäº¤æ¡æéå°ä¸æåå ç失æã
+ssl-error-client-key-exchange-failure = èç SSL ç¨æ¶ç«¯éé°äº¤æäº¤æ¡æéå°ä¸æåå ç失æã
+ssl-error-encryption-failure = æé¸çå å¯å¥ä»¶çµç大éè³æå 坿¼ç®æ³å¤±æã
+ssl-error-decryption-failure = æé¸çå å¯å¥ä»¶çµä¸ç大éè³æè§£å¯æ¼ç®æ³å¤±æã
+ssl-error-socket-write-failure = 試å寫å
¥å å¯è³è¨å°å
¶ä¸ç socket 失æã
+ssl-error-md5-digest-failure = MD5 æè¦å½å¼å¤±æã
+ssl-error-sha-digest-failure = SHA-1 æè¦å½å¼å¤±æã
+ssl-error-mac-computation-failure = MAC è¨ç®å¤±æã
+ssl-error-sym-key-context-failure = 建ç«å°ç¨±å¼éé°å
§å®¹å¤±æã
+ssl-error-sym-key-unwrap-failure = æ¼ç¨æ¶ç«¯éé°äº¤æè¨æ¯å±éå°ç¨±å¼é鰿失æã
+ssl-error-pub-key-size-limit-exceeded = SSL 伺æå¨è©¦åæ¼å¯åºçå å¯å¥ä»¶çµä½¿ç¨æ°ç¨è¦æ ¼çå
¬ééé°ã
+ssl-error-iv-param-failure = å° PKCS11 代碼è½è¯çº IV å°åæ¸æå¤±æã
+ssl-error-init-cipher-suite-failure = æé¸çå å¯å¥ä»¶çµåå§å失æã
+ssl-error-session-key-gen-failure = ç¨æ¶ç«¯ç¢çç¨æ¼ SSL é£ç·çé£ç·éé°å¤±æã
+ssl-error-no-server-key-for-alg = 伺æå¨æ²æéé°å¯ä¾å試éé°äº¤ææ¼ç®æ³ã
+ssl-error-token-insertion-removal = æä½é²è¡æ PKCS#11 token å·²æå
¥æç§»é¤ã
+ssl-error-token-slot-not-found = æ¾ä¸å° PKCS#11 token å®æè¦æ±çæä½ã
+ssl-error-no-compression-overlap = ç¡æ³å®å
¨å°èç¯é»éè¨: ç¡éæ¹æ¥åçå£ç¸®æ¼ç®æ³ã
+ssl-error-handshake-not-completed = å°ç®åç交æ¡å®æåç¡æ³åå§å
¶ä»ç SSL 交æ¡ã
+ssl-error-bad-handshake-hash-value = å¾å°æ¹æ¶å°é¯èª¤ç交æ¡éæ¹å¼ã
+ssl-error-cert-kea-mismatch = æä¾çæèç¡æ³ç¨æ¼æé¸çéé°äº¤ææ¼ç®æ³ã
+ssl-error-no-trusted-ssl-client-ca = æªä¿¡ä»»ä»»ä½æèæ©æ§é²è¡ SSL ç¨æ¶ç«¯é©èã
+ssl-error-session-not-found = 伺æå¨çé£ç·å¿«å䏿¾ä¸å°ç¨æ¶ç«¯ç SSL é£ç· IDã
+ssl-error-decryption-failed-alert = å°æ¹ç¡æ³è§£å¯æ¶å°ç SSL è¨éã
+ssl-error-record-overflow-alert = å°æ¹ææ¶å°ç SSL è¨éæ¯æå
許çéé·ã
+ssl-error-unknown-ca-alert = å°æ¹ä¸èªå¾ä¸ä¸ä¿¡ä»»ç°½ç¼æ¨çæèçæèæ©æ§ã
+ssl-error-access-denied-alert = å°æ¹å·²æ¶å°ææçæèï¼ä½è¢«æçµååã
+ssl-error-decode-error-alert = å°æ¹ç¡æ³è§£ç¢¼ SSL 交æ¡è¨æ¯ã
+ssl-error-decrypt-error-alert = å°æ¹åå ±ç°½ç« é©èæéé°äº¤æå¤±æã
+ssl-error-export-restriction-alert = å°æ¹åå ±åè°èå¯åºè¦åä¸ç¬¦ã
+ssl-error-protocol-version-alert = å°æ¹åå ±ä¸ç¸å®¹ææªæ¯æ´çéè¨åå®çæ¬ã
+ssl-error-insufficient-security-alert = 伺æå¨è¦æ±ä½¿ç¨çå 坿¼ç®æ³è¶
åºç¨æ¶ç«¯æ¯æ´ç¯åã
+ssl-error-internal-error-alert = å°æ¹åå ±ç¼çå
§é¨é¯èª¤ã
+ssl-error-user-canceled-alert = å°æ¹ä½¿ç¨è
å·²åæ¶äº¤æ¡ã
+ssl-error-no-renegotiation-alert = å°æ¹ä¸å
è¨±éæ°åè° SSL å®å
¨æ§åæ¸ã
+ssl-error-server-cache-not-configured = SSL 伺æå¨å¿«åæªçµæ
䏿ªæ¼æ¤ socket åç¨ã
+ssl-error-unsupported-extension-alert = SSL 端é»ä¸æ¯æ´è«æ±ç TLS hello æ´å
æ¬ä½ã
+ssl-error-certificate-unobtainable-alert = SSL 端é»ç¡æ³å¾æ¨çµ¦çç¶²åå徿èã
+ssl-error-unrecognized-name-alert = SSL ç«¯é»æ²æè«æ±ç DNS å稱çæèã
+ssl-error-bad-cert-status-response-alert = SSL 端é»ç¡æ³åå¾å
¶æèç OCSP åæã
+ssl-error-bad-cert-hash-value-alert = SSL 端é»åå ±äºæèéæ¹å¼é¯èª¤ã
+ssl-error-rx-unexpected-new-session-ticket = SSL æ¶å°ä¸åæªé æç New Session Ticket 交æ¡è¨æ¯ã
+ssl-error-rx-malformed-new-session-ticket = SSL æ¶å°ä¸æ£å¸¸ç New Session Ticket 交æ¡è¨æ¯ã
+ssl-error-decompression-failure = SSL æ¥æ¶å°äºä¸åç¡æ³è¢«è§£å£ç¸®çå£ç¸®è¨éã
+ssl-error-renegotiation-not-allowed = SSL é£ç·ç«¯å£ä¸å
è¨±éæ°äº¤æ¶ã
+ssl-error-unsafe-negotiation = å°æ¹é»è
¦ç¨äºè¼èçï¼å¯è½æ¯å®¹æéæ»æçï¼äº¤æ¡æ¹å¼è¦æ±é£ç·ã
+ssl-error-rx-unexpected-uncompressed-record = SSL æ¶å°äºä¸åæªé æçæªå£ç¸®è¨éã
+ssl-error-weak-server-ephemeral-dh-key = SSL å¨ Server Key Exchange ç交æ¡è¨æ¯ç¶ä¸æ¶å°ä¸åçæ«ç弱強度 Diffie-Hellman éé°ã
+ssl-error-next-protocol-data-invalid = SSL æ¶å°äºç¡æç NPN æ´å
æ¬ä½è³æã
+ssl-error-feature-not-supported-for-ssl2 = SSL 2.0 é£ç·ç¶ä¸ä¸æ¯æ´ç SSL åè½ã
+ssl-error-feature-not-supported-for-servers = 伺æå¨ä¸æ¯æ´ç SSL åè½ã
+ssl-error-feature-not-supported-for-clients = 客æ¶ç«¯ä¸æ¯æ´ç SSL åè½ã
+ssl-error-invalid-version-range = SSL çæ¬ç¯åç¡æã
+ssl-error-cipher-disallowed-for-version = SSL ç¯é»é¸ç¨äºå¨æå®çéè¨åå®çæ¬ä¸ä¸è¢«å
許使ç¨çå å¯å¥ä»¶çµã
+ssl-error-rx-malformed-hello-verify-request = SSL æ¶å°ä¸æ£å¸¸ç Hello Verify Request 交æ¡è¨æ¯ã
+ssl-error-rx-unexpected-hello-verify-request = SSL æ¶å°æªé æç Hello Verify Request 交æ¡è¨æ¯ã
+ssl-error-feature-not-supported-for-version = 該éè¨åå®çæ¬ä¸æ¯æ´ SSL åè½ã
+ssl-error-rx-unexpected-cert-status = SSL æ¶å°æªé æç Certificate Status 交æ¡è¨æ¯ã
+ssl-error-unsupported-hash-algorithm = TLS ç¯é»ä½¿ç¨äºæªæ¯æ´çéæ¹æ¼ç®æ³ã
+ssl-error-digest-failure = Digest 彿¸å¤±æã
+ssl-error-incorrect-signature-algorithm = æ¸ä½ç°½ç½²å
ç´ ä¸æå®äºä¸æ£ç¢ºçç°½ç« æ¼ç®æ³ã
+ssl-error-next-protocol-no-callback = åç¨äº Next protocol negotiation æ´å
åè½ï¼ä½ callback å¨éè¦ç¨å°ä¹å就被æ¸
é¤ã
+ssl-error-next-protocol-no-protocol = 伺æå¨ä¸æ¯æ´ä»»ä½å®¢æ¶ç«¯æ¥åç ALPN æ´å
åè½ç¶ä¸çéè¨åå®ã
+ssl-error-inappropriate-fallback-alert = å çºå®¢æ¶ç«¯éç´è³æ¯ä¼ºæå¨æ¯æ´éæ´ä½ç TLS çæ¬ï¼ä¼ºæå¨æçµäº¤æ¡ã
+ssl-error-weak-server-cert-key = 伺æå¨æèä¸å
å«ä¸æå å¯ç¨åº¦å¤ªå¼±çå
¬é°ã
+ssl-error-rx-short-dtls-read = DTLS ç´éç·©è¡åç空éä¸è¶³ã
+ssl-error-no-supported-signature-algorithm = æªè¨å®ä½¿ç¨æ¯æ´ç TLS ç°½ç« æ¼ç®æ³ã
+ssl-error-unsupported-signature-algorithm = å°æ¹ä½¿ç¨äºä¸æ¯æ´çç°½ç« èéæ¹æ¼ç®æ³çµåã
+ssl-error-missing-extended-master-secret = å°æ¹åè©¦ä»¥ä¸æ£ç¢ºç extended_master_secret 延伸å
§å®¹æ¢å¾©ã
+ssl-error-unexpected-extended-master-secret = å°æ¹å試以æªé æç extended_master_secret 延伸å
§å®¹æ¢å¾©ã
+sec-error-io = å¨å®å
¨é奿ç¼ç I/O é¯èª¤ã
+sec-error-library-failure = å®å
¨å½å¼åº«å¤±æã
+sec-error-bad-data = å®å
¨å½å¼åº«: å·²æ¶å°æå£è³æã
+sec-error-output-len = å®å
¨å½å¼åº«: 輸åºé·åº¦é¯èª¤ã
+sec-error-input-len = å®å
¨å½å¼åº«éå°è¼¸å
¥é·åº¦é¯èª¤ã
+sec-error-invalid-args = å®å
¨å½å¼åº«: ç¡æç忏ã
+sec-error-invalid-algorithm = å®å
¨å½å¼åº«: ç¡æçæ¼ç®æ³ã
+sec-error-invalid-ava = å®å
¨å½å¼åº«: ç¡æç AVAã
+sec-error-invalid-time = 䏿£ç¢ºçæéåä¸²æ ¼å¼ã
+sec-error-bad-der = å®å
¨å½å¼åº«: 䏿£ç¢ºç DER ç·¨ç¢¼è¨æ¯æ ¼å¼ã
+sec-error-bad-signature = ç¯é»çæèç°½ç« ç¡æã
+sec-error-expired-certificate = ç¯é»çæèå·²éæã
+sec-error-revoked-certificate = ç¯é»çæè已廢æ¢ã
+sec-error-unknown-issuer = ç¡æ³è¾¨èªç¯é»çæèç°½ç¼è
ã
+sec-error-bad-key = ç¯é»çå
¬ééé°ç¡æã
+sec-error-bad-password = 輸å
¥çå®å
¨å¯ç¢¼ä¸æ£ç¢ºã
+sec-error-retry-password = 輸å
¥çæ°å¯ç¢¼ä¸æ£ç¢ºï¼è«åè©¦ä¸æ¬¡ã
+sec-error-no-nodelock = å®å
¨å½å¼åº«: ç¡ nodelockã
+sec-error-bad-database = å®å
¨å½å¼åº«: æå£çè³æåº«ã
+sec-error-no-memory = å®å
¨å½å¼åº«: è¨æ¶é«å®å失æã
+sec-error-untrusted-issuer = ç¯é»çæèç°½ç¼è
已被使ç¨è
æ¨è¨çºä¸åä¿¡ä»»ã
+sec-error-untrusted-cert = ç¯é»çæè已被使ç¨è
æ¨è¨çºä¸åä¿¡ä»»ã
+sec-error-duplicate-cert = æèå·²å卿¼è³æåº«ä¸ã
+sec-error-duplicate-cert-name = æä¸è¼çæèå稱åè³æåº«ä¸çè¨ééè¤ã
+sec-error-adding-cert = æ°å¢æèå°è³æåº«æé¯èª¤ã
+sec-error-filing-key = éæ°å¡«å¯«æ¤æèçéé°æé¯èª¤ã
+sec-error-no-key = è³æåº«ä¸æ¾ä¸å°æ¤æèçç§å¯éé°ã
+sec-error-cert-valid = æ¤æèææã
+sec-error-cert-not-valid = æ¤æèç¡æã
+sec-error-cert-no-response = æèå½å¼åº«: ç¡åæ
+sec-error-expired-issuer-certificate = æèç°½ç¼è
çæèå·²éæï¼è«æª¢æ¥æ¨çç³»çµ±æ¥æåæéã
+sec-error-crl-expired = æèç°½ç¼è
çå·²éæï¼è«æ´æ°å»¢æ¢æ¸
åææª¢æ¥æ¨çç³»çµ±æ¥æåæéã
+sec-error-crl-bad-signature = æèç°½ç¼è
çå»¢æ¢æ¸
åç°½ç« ç¡æã
+sec-error-crl-invalid = æ°æèå»¢æ¢æ¸
åçæ ¼å¼ç¡æã
+sec-error-extension-value-invalid = æèæ´å
æ¬ä½çå¼ç¡æã
+sec-error-extension-not-found = æ¾ä¸å°æèçæ´å
æ¬ä½ã
+sec-error-ca-cert-invalid = ç°½ç¼è
çæèç¡æã
+sec-error-path-len-constraint-invalid = æèè·¯å¾é·åº¦éå¶ç¡æã
+sec-error-cert-usages-invalid = æè使ç¨çæ¬ä½ç¡æã
+sec-internal-only = **å°ä¾å
§é¨ä½¿ç¨ç模çµ**
+sec-error-invalid-key = éé°ä¸æ¯æ´æè«æ±çæä½ã
+sec-error-unknown-critical-extension = æè嫿ªç¥ç Critical æ´å
æ¬ä½ã
+sec-error-old-crl = æ°æèå»¢æ¢æ¸
åä¸è½æ¯ç®åçæ¸
åéæã
+sec-error-no-email-cert = æªå å¯æç°½ç½²: æ¨å°æªææ Email æèã
+sec-error-no-recipient-certs-query = æªå å¯: æ¨å°æªæææ¯åæ¶ä»¶äººçæèã
+sec-error-not-a-recipient = ç¡æ³è§£å¯: æ¨ä¸æ¯æ¶ä»¶äººææ¯æ¾ä¸å°ç¸ç¬¦çæèæç§å¯éé°ã
+sec-error-pkcs7-keyalg-mismatch = ç¡æ³è§£å¯: éé°å 坿¼ç®æ³åæ¨çæèä¸ç¬¦ã
+sec-error-pkcs7-bad-signature = ç°½ç« éå¥å¤±æ: æ¾ä¸å°ç°½ç½²è
ãæ¾å°å¤ªå¤ç°½ç½²è
ææ¶å°ä¸æ£ç¢ºãææ¯çè³æã
+sec-error-unsupported-keyalg = 䏿¯æ´ææªç¥çéé°æ¼ç®æ³ã
+sec-error-decryption-disallowed = ç¡æ³è§£å¯: å å¯è³è¨ä½¿ç¨ä¸å
è¨±çæ¼ç®æ³æéé°é·åº¦ã
+xp-sec-fortezza-bad-card = Fortezza 塿ªæ£ç¢ºåå§åï¼è«ååºä¸¦é給æ¨çç°½ç¼è
ã
+xp-sec-fortezza-no-card = æ¾ä¸å° Fortezza å¡
+xp-sec-fortezza-none-selected = æªé¸æ Fortezza å¡
+xp-sec-fortezza-more-info = è«é¸æå人身份以å徿´å¤è³è¨æ¼
+xp-sec-fortezza-person-not-found = æ¾ä¸å°å人身份
+xp-sec-fortezza-no-more-info = 卿¤å人身份æ¾ä¸å°æ´å¤è³è¨
+xp-sec-fortezza-bad-pin = ç¡æç PIN
+xp-sec-fortezza-person-error = ç¡æ³åå§å Fortezza çå人身份ã
+sec-error-no-krl = æ¾ä¸å°æ¤ç¶²ç«æèçéé°å»¢æ¢æ¸
åã
+sec-error-krl-expired = æ¤ç¶²ç«æèçéé°å»¢æ¢æ¸
åå·²éæã
+sec-error-krl-bad-signature = æ¤ç¶²ç«æèçéé°å»¢æ¢æ¸
åå«ç¡æçç°½ç« ã
+sec-error-revoked-key = æ¤ç¶²ç«æèçéé°å»¢æ¢æ¸
åéé°å·²å»¢æ¢ã
+sec-error-krl-invalid = æ°éé°å»¢æ¢æ¸
åæ ¼å¼ç¡æã
+sec-error-need-random = å®å
¨å½å¼åº«: éè¦é¨æ©è³æã
+sec-error-no-module = å®å
¨å½å¼åº«: ç¡å®å
¨æ¨¡çµè½å®æè«æ±çæä½ã
+sec-error-no-token = å®å
¨å¡æ Token ä¸åå¨ãéè¦åå§åæå·²è¢«ååºã
+sec-error-read-only = å®å
¨å½å¼åº«: è³æåº«æ¯å¯è®çæ
ã
+sec-error-no-slot-selected = æªé¸æ Slot æ Tokenã
+sec-error-cert-nickname-collision = æèå
§å«çç¸åæ±ç¨±å·²åå¨ã
+sec-error-key-nickname-collision = éé°å
§å«çç¸åæ±ç¨±å·²åå¨ã
+sec-error-safe-not-created = 建ç«å®å
¨ç©ä»¶æé¯èª¤
+sec-error-baggage-not-created = 建ç«å
裹ç©ä»¶æé¯èª¤
+xp-java-remove-principal-error = ç¡æ³ç§»é¤ Principal
+xp-java-delete-privilege-error = ç¡æ³åªé¤ Privilege
+xp-java-cert-not-exists-error = æ¤ Principal æ²ææè
+sec-error-bad-export-algorithm = æéçæ¼ç®æ³ä¸è¢«å
許ã
+sec-error-exporting-certificates = å試å¯åºæèæé¯èª¤ã
+sec-error-importing-certificates = å試å¯å
¥æèæé¯èª¤ã
+sec-error-pkcs12-decoding-pfx = ç¡æ³å¯å
¥ï¼è§£ç¢¼é¯èª¤ï¼æªæ¡ç¡æã
+sec-error-pkcs12-invalid-mac = MAC ç¡æï¼ç¡æ³å¯å
¥ãå¯ç¢¼é¯èª¤ææ¯æªæ¡å·²ææ¯ã
+sec-error-pkcs12-unsupported-mac-algorithm = ç¡æ³å¯å
¥ï¼ä¸æ¯æ´ç MAC æ¼ç®æ³ã
+sec-error-pkcs12-unsupported-transport-mode = ç¡æ³å¯å
¥ï¼åªæ¯æ´å¯ç¢¼å®æ´æ§åé±ç§æ¨¡å¼ã
+sec-error-pkcs12-corrupt-pfx-structure = ç¡æ³å¯å
¥ï¼æªæ¡çµæ§ææ¯ã
+sec-error-pkcs12-unsupported-pbe-algorithm = ç¡æ³å¯å
¥ï¼å 坿¼ç®æ³ä¸æ¯æ´ã
+sec-error-pkcs12-unsupported-version = ç¡æ³å¯å
¥ï¼æªæ¡çæ¬ä¸æ¯æ´ã
+sec-error-pkcs12-privacy-password-incorrect = ç¡æ³å¯å
¥ï¼é±ç§å¯ç¢¼ä¸æ£ç¢ºã
+sec-error-pkcs12-cert-collision = ç¡æ³å¯å
¥ï¼è³æåº«ä¸å·²æç¸åçæ±ç¨±ã
+sec-error-user-cancelled = 使ç¨è
æä¸ãåæ¶ãã
+sec-error-pkcs12-duplicate-data = æªå¯å
¥ï¼è³æåº«å·²æè³æã
+sec-error-message-send-aborted = è¨æ¯æªéåºã
+sec-error-inadequate-key-usage = 試åæä½çæèéé°ç¨æ³ä¸æ£ç¢ºã
+sec-error-inadequate-cert-type = ç¨å¼çæèé¡åæªè¢«æ ¸åã
+sec-error-cert-addr-mismatch = 簽署æèçä½ç½®èè¨æ¯æ¨é ä¸çä½ç½®ä¸ç¬¦ã
+sec-error-pkcs12-unable-to-import-key = ç¡æ³å¯å
¥ï¼è©¦åå¯å
¥ç§å¯éé°æé¯èª¤ã
+sec-error-pkcs12-importing-cert-chain = ç¡æ³å¯å
¥ï¼è©¦åå¯å
¥æèéæé¯èª¤ã
+sec-error-pkcs12-unable-to-locate-object-by-name = ç¡æ³å¯åºï¼ç¡æ³ä¾æ±ç¨±å°æ¾æèæéé°ã
+sec-error-pkcs12-unable-to-export-key = ç¡æ³å¯åºï¼ç¡æ³æ¾å°ç§é°ä¸¦å¯åºã
+sec-error-pkcs12-unable-to-write = ç¡æ³å¯åºï¼ç¡æ³å¯«å
¥å¯åºæªæ¡ã
+sec-error-pkcs12-unable-to-read = ç¡æ³å¯å
¥ï¼ç¡æ³è®åå¯å
¥æªæ¡ã
+sec-error-pkcs12-key-database-not-initialized = ç¡æ³å¯åºï¼éé°è³æåº«æ¯ææå·²åªé¤ã
+sec-error-keygen-fail = ç¡æ³ç¢çå
¬éâ±ç§å¯éé°å°ã
+sec-error-invalid-password = 輸å
¥çå¯ç¢¼ç¡æï¼è«é¸æå
¶ä»çå¯ç¢¼ã
+sec-error-retry-old-password = 輸å
¥çèå¯ç¢¼ä¸æ£ç¢ºï¼è«åè©¦ä¸æ¬¡ã
+sec-error-bad-nickname = æèæ±ç¨±å·²è¢«ä½¿ç¨ã
+sec-error-not-fortezza-issuer = å°æ¹ç FORTEZZA éå
§å«é FORTEZZA çæèã
+sec-error-cannot-move-sensitive-key = Sensitive éé°ç¡æ³ç§»å°æéè¦ç Slotã
+sec-error-js-invalid-module-name = 模çµåç¨±ç¡æã
+sec-error-js-invalid-dll = 模çµè·¯å¾â±æªåç¡æã
+sec-error-js-add-mod-failure = ç¡æ³æ°å¢æ¨¡çµ
+sec-error-js-del-mod-failure = ç¡æ³åªé¤æ¨¡çµ
+sec-error-old-krl = æ°éé°å»¢æ¢æ¸
åä¸è½æ¯ç®åçæ¸
åéæã
+sec-error-ckl-conflict = æ°æ´©æ¼éé°æ¸
ååç®åçæ¸
åç°½ç¼è
ä¸åï¼è«åªé¤ç®åçæ´©æ¼éé°æ¸
åã
+sec-error-cert-not-in-name-space = æ¤æèçæèæ©æ§ä¸å
è¨±ç¨æ¤åç¨±ç°½ç¼æèã
+sec-error-krl-not-yet-valid = æ¤æèçéé°å»¢æ¢æ¸
åå°æªé©èã
+sec-error-crl-not-yet-valid = æ¤æèçæèå»¢æ¢æ¸
åå°æªé©èã
+sec-error-unknown-cert = æ¾ä¸å°è«æ±çæèã
+sec-error-unknown-signer = æ¾ä¸å°ç°½ç½²è
çæèã
+sec-error-cert-bad-access-location = æèçæ
伺æå¨ä½ç½®çæ ¼å¼ç¡æã
+sec-error-ocsp-unknown-response-type = OCSP åæç¡æ³è¢«å®å
¨è§£ç¢¼ï¼åææ¯æªç¥çé¡åã
+sec-error-ocsp-bad-http-response = OCSP 伺æå¨åå³äºæªé æâ±ç¡æç HTTP è³æã
+sec-error-ocsp-malformed-request = OCSP 伺æå¨ç¼ç¾è«æ±å·²ææ¯ææ ¼å¼ä¸æ£ç¢ºã
+sec-error-ocsp-server-error = OCSP 伺æå¨ç¼çå
§é¨é¯èª¤ã
+sec-error-ocsp-try-server-later = OCSP 伺æå¨å»ºè°æ¨ç¨åå試ã
+sec-error-ocsp-request-needs-sig = OCSP 伺æå¨éè¦æ¤è«æ±çç°½ç« ã
+sec-error-ocsp-unauthorized-request = OCSP 伺æå¨å·²æçµæ¤æªææ¬çè«æ±ã
+sec-error-ocsp-unknown-response-status = OCSP 伺æå¨åå³äºæªè¾¨èççæ
ã
+sec-error-ocsp-unknown-cert = OCSP 伺æå¨æ²ææèçæ
ã
+sec-error-ocsp-not-enabled = æ¨å¿
é åç¨ OCSP æè½å®ææ¤æä½ã
+sec-error-ocsp-no-default-responder = æ¨å¿
é è¨å® OCSP é è¨åæè
æè½å®ææ¤æä½ã
+sec-error-ocsp-malformed-response = å¾ OCSP 伺æå¨å³ä¾çåæå·²ææ¯ææ ¼å¼ä¸æ£ç¢ºã
+sec-error-ocsp-unauthorized-response = OCSP åæç簽署è
æªç²ææ¬åææ¤æèççæ
ã
+sec-error-ocsp-future-response = OCSP åæå°æªçæï¼å
§å«æªä¾çæ¥æï¼ã
+sec-error-ocsp-old-response = OCSP åæå
§å«éæçè³è¨ã
+sec-error-digest-not-found = ç°½ç« è¨æ¯ä¸æ¾ä¸å° CMS æ PKCS #7 æè¦ã
+sec-error-unsupported-message-type = CMS æ PKCS #7 è¨æ¯é¡å䏿¯æ´ã
+sec-error-module-stuck = PKCS #11 æ¨¡çµæ£å¨ä½¿ç¨ä¸ï¼ç¡æ³ç§»é¤ã
+sec-error-bad-template = ç¡æ³è§£ç¢¼ ASN.1 è³æï¼æå®çç¯æ¬ç¡æã
+sec-error-crl-not-found = æ¾ä¸å°ç¸ç¬¦çæèå»¢æ¢æ¸
åã
+sec-error-reused-issuer-and-serial = æ¨æ£è©¦åå¯å
¥åç¾ææèçç°½ç¼è
â±åºèç¸åçæèï¼ä½ä»å䏦䏿¯åä¸åæèã
+sec-error-busy = NSS ç¡æ³ééï¼ç©ä»¶éå¨ä½¿ç¨ä¸ã
+sec-error-extra-input = DER ç·¨ç¢¼è¨æ¯å«æé¡å¤çæªä½¿ç¨è³æã
+sec-error-unsupported-elliptic-curve = 䏿¯æ´çæ©¢åæ²ç·ã
+sec-error-unsupported-ec-point-form = 䏿¯æ´çæ©¢åæ²ç·é»æ ¼å¼ã
+sec-error-unrecognized-oid = 䏿¯æ´çç©ä»¶èå¥ç¬¦ã
+sec-error-ocsp-invalid-signing-cert = OCSP åæå«ç¡æç OCSP 簽署æèã
+sec-error-revoked-certificate-crl = å¨ç°½ç¼è
æèå»¢æ¢æ¸
å®ä¸çæè已廢æ¢ã
+sec-error-revoked-certificate-ocsp = ç°½ç¼è
ç OCSP åæè
åå ±æè已廢æ¢ã
+sec-error-crl-invalid-version = ç°½ç¼è
çæèå»¢æ¢æ¸
åææªç¥ççæ¬è碼ã
+sec-error-crl-v1-critical-extension = ç°½ç¼è
ç V1 æèå»¢æ¢æ¸
å®çº Critical æ´å
æ¬ä½ã
+sec-error-crl-unknown-critical-extension = ç°½ç¼è
ç V2 æèå»¢æ¢æ¸
å®çºæªç¥ç Critical æ´å
æ¬ä½ã
+sec-error-unknown-object-type = æå®çç©ä»¶é¡åæªç¥ã
+sec-error-incompatible-pkcs11 = PKCS #11 çé©
åç¨å¼ä»¥ä¸ç¸å®¹çæ¹å¼éåè¦æ ¼ã
+sec-error-no-event = ç®åæ²ææ° Slot äºä»¶ã
+sec-error-crl-already-exists = æèå»¢æ¢æ¸
åå·²åå¨ã
+sec-error-not-initialized = NSS å°æªåå§åã
+sec-error-token-not-logged-in = æä½å¤±æï¼å çº PKCS#11 token æªç»å
¥ã
+sec-error-ocsp-responder-cert-invalid = æè¨å® OCSP åæè
çæèç¡æã
+sec-error-ocsp-bad-signature = OCSP åæå«ç¡æçç°½ç« ã
+sec-error-out-of-search-limits = æèé©èæå°è¶
åºäºæå°ç¯å
+sec-error-invalid-policy-mapping = æèçç¥å°æï¼Policy Mappingï¼å
å«äº anypolicy
+sec-error-policy-validation-failed = æèéæªééæèçç¥é©è
+sec-error-unknown-aia-location-type = æèçææ¬è³è¨ååæ´å
æ¬ä½ä¸å
å«äºæªç¥çä½ç½®é¡å
+sec-error-bad-http-response = 伺æå¨åè¦äºç¡æç HTTP åæ
+sec-error-bad-ldap-response = 伺æå¨åè¦äºç¡æç LDAP åæ
+sec-error-failed-to-encode-data = ä½¿ç¨ ASN1 編碼å¨ç·¨ç¢¼è³æå¤±æ
+sec-error-bad-info-access-location = æèæ´å
æ¬ä½ä¸æé¯èª¤çååä½ç½®è³è¨
+sec-error-libpkix-internal = é©èæèæï¼Libpkix éå°äºå
§é¨é¯èª¤ã
+sec-error-pkcs11-general-error = ä¸å PKCS #11 模çµåè¦äº CKR_GENERAL_ERRORï¼è¡¨ç¤ºéå°äºä¸åç¡æ³æ¢å¾©çé¯èª¤ã
+sec-error-pkcs11-function-failed = ä¸å PKCS #11 模çµåè¦äº CKR_FUNCTION_FAILEDï¼è¡¨ç¤ºè«æ±çå½å¼ç¡æ³è¢«å·è¡ãåå䏿¬¡ç¸åçåä½ä¹è¨±å°±ææåã
+sec-error-pkcs11-device-error = ä¸å PKCS #11 模çµåè¦äº CKR_DEVICE_ERRORï¼è¡¨ç¤ºæ¬æï¼tokenï¼æææ§½ï¼slotï¼éå°äºåé¡ã
+sec-error-bad-info-access-method = æèæ´å
æ¬ä½ç¶ä¸ææªç¥çååæ¹å¼è³è¨ã
+sec-error-crl-import-failed = å¯å
¥æèæ¤é·æ¸
å®ï¼CRLï¼æéå°åé¡ã
+sec-error-expired-password = å¯ç¢¼å·²éæã
+sec-error-locked-password = å¯ç¢¼å·²éå®ã
+sec-error-unknown-pkcs11-error = æªç¥ç PKCS #11 é¯èª¤ã
+sec-error-bad-crl-dp-url = å»¢æ¢æ¸
åç¼ä½é»ç¶ä¸æç¡æææªæ¯æ´çç¶²åã
+sec-error-cert-signature-algorithm-disabled = æ¤æè使ç¨äºå·²è¢«åç¨çæ¼ç®æ³æç°½ç½²ï¼å çºè©²æ¼ç®æ³ä¸å®å
¨ã
+mozilla-pkix-error-key-pinning-failure = æ¤ä¼ºæå¨ä½¿ç¨ key pinning (HPKP) æ©å¶ï¼ä½ç¡æ³å»ºæ§ç¬¦å pinset çä¿¡ä»»çéé°éãç¡æ³å¿½ç¥éè¦ç key pinningã
+mozilla-pkix-error-ca-cert-used-as-end-entity = 伺æå¨ä½¿ç¨äºå
å«ãåºæ¬éå¶ãæ´å
æ¬ä½çæèï¼è¡¨ç¤ºå
¶çºæèæ©æ§ãå°æ¼æ£ç¢ºç¼è¡çæèä¾èªªä¸æè©²é麼åã
+mozilla-pkix-error-inadequate-key-size = 伺æå¨æä¾çæèéé°å¤ªå°ï¼ç¡æ³å»ºç«å®å
¨é£ç·ã
+mozilla-pkix-error-v1-cert-used-as-ca = 伺æå¨çæèæ¯ç±éä¿¡è³´èµ·æºï¼Trust Anchorï¼ç X.509 çæ¬ 1 æèç°½ç¼ãå·²æ£ç¨ X.509 çæ¬ 1 æèï¼ä¸æåç¨ä¾ç°½ç¼å
¶ä»æèã
+mozilla-pkix-error-not-yet-valid-certificate = 伺æå¨æä¾äºå°æªçæçæèã
+mozilla-pkix-error-not-yet-valid-issuer-certificate = æ¤ä¼ºæå¨çæèæ¯ä»¥å°æªçæçæèç°½ç¼ã
+mozilla-pkix-error-signature-algorithm-mismatch = æèç°½ç« æ¬ä½ä¸çç°½ç« æ¼ç®æ³èå
¶ signatureAlgorithm æ¬ä½ä¸æè¨è¼çæ¼ç®æ³ä¸ç¬¦ã
+mozilla-pkix-error-ocsp-response-for-cert-missing = OCSP åæä¸ä¸¦æªå
å«è¦é©èçæèççæ
ã
+mozilla-pkix-error-validity-too-long = 伺æå¨æä¾äºæææé太é·çæèã
+mozilla-pkix-error-required-tls-feature-missing = 缺å°å¿
éç TLS åè½ã
+mozilla-pkix-error-invalid-integer-encoding = 伺æå¨æä¾äºä¸å¼µå
å«ç¡ææ´æ¸ç·¨ç¢¼çæèã常è¦çåå å¯è½æ¯ç¨äºè² æ¸çåºèãè² ç RSA moduliï¼ä»¥åæ¯éè¦é·åº¦éé·ç編碼ã
+mozilla-pkix-error-empty-issuer-name = 伺æå¨æä¾äºç¼è¡è
èå¥å稱空ç½çæèã
+mozilla-pkix-error-additional-policy-constraint-failed = é©èæ¤æèæï¼ç¼çéå æ¿çéå¶é©è失æã
+mozilla-pkix-error-self-signed-cert = 該æèæªåä¿¡ä»»ï¼å çºæèæ¯èªå·±ç°½ç½²çæèã
diff --git a/browser/browser/pageInfo.ftl b/browser/browser/pageInfo.ftl
new file mode 100644
index 00000000000..32d4a133821
--- /dev/null
+++ b/browser/browser/pageInfo.ftl
@@ -0,0 +1,255 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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: 500px;
+
+copy =
+ .key = C
+menu-copy =
+ .label = è¤è£½
+ .accesskey = C
+
+select-all =
+ .key = A
+menu-select-all =
+ .label = å
¨é¸
+ .accesskey = A
+
+close-dialog =
+ .key = w
+
+general-tab =
+ .label = ä¸è¬
+ .accesskey = G
+general-title =
+ .value = æ¨é¡:
+general-url =
+ .value = ç¶²å:
+general-type =
+ .value = é¡å:
+general-mode =
+ .value = 繪製模å¼:
+general-size =
+ .value = 大å°:
+general-referrer =
+ .value = åç
§ç¶²å:
+general-modified =
+ .value = 䏿¬¡ä¿®æ¹:
+general-encoding =
+ .value = æå編碼:
+general-meta-name =
+ .label = å稱
+general-meta-content =
+ .label = å
§å®¹
+
+media-tab =
+ .label = åªé«
+ .accesskey = M
+media-location =
+ .value = ä½ç½®:
+media-text =
+ .value = éè¯æå:
+media-alt-header =
+ .label = æ¿ä»£æå
+media-address =
+ .label = ä½ç½®
+media-type =
+ .label = é¡å
+media-size =
+ .label = 大å°
+media-count =
+ .label = æ¸é
+media-dimension =
+ .value = 尺寸:
+media-long-desc =
+ .value = 宿´æè¿°:
+media-save-as =
+ .label = å¦åæ°æªâ¦
+ .accesskey = a
+media-save-image-as =
+ .label = å¦åæ°æªâ¦
+ .accesskey = e
+
+perm-tab =
+ .label = æ¬é
+ .accesskey = P
+permissions-for =
+ .value = æ¤ç¶²ç«æ¬éè¨å®:
+
+security-tab =
+ .label = å®å
¨
+ .accesskey = S
+security-view =
+ .label = æª¢è¦æè
+ .accesskey = V
+security-view-unknown = æªç¥
+ .value = æªç¥
+security-view-identity =
+ .value = ç¶²ç«èº«ä»½
+security-view-identity-owner =
+ .value = ææè
:
+security-view-identity-domain =
+ .value = ç¶²ç«:
+security-view-identity-verifier =
+ .value = é©èæ©æ§:
+security-view-identity-validity =
+ .value = å°ææ¼:
+security-view-privacy =
+ .value = é±ç§æ¬åç覽è¨é
+
+security-view-privacy-history-value = æä»¥åç覽ééåç¶²ç«åï¼
+security-view-privacy-sitedata-value = æ¤ç¶²ç«æå¨æçé»è
¦ä¸å²åè³è¨åï¼
+
+security-view-privacy-clearsitedata =
+ .label = æ¸
é¤ Cookie èç¶²ç«è³æ
+ .accesskey = C
+
+security-view-privacy-passwords-value = ææå¨æ¤ç¶²ç«å²åä»»ä½å¯ç¢¼åï¼
+
+security-view-privacy-viewpasswords =
+ .label = 檢è¦å·²åå¯ç¢¼
+ .accesskey = w
+security-view-technical =
+ .value = æè¡ç´°ç¯
+
+help-button =
+ .label = 說æ
+
+## 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 = æï¼Cookie å { $value } { $unit } çç¶²ç«è³æ
+security-site-data-only = æï¼{ $value } { $unit } çç¶²ç«è³æ
+
+security-site-data-cookies-only = æï¼å
Cookie
+security-site-data-no = ç¡
+
+##
+
+image-size-unknown = æªç¥
+page-info-not-specified =
+ .value = æªæå®
+not-set-alternative-text = æªæå®
+not-set-date = æªæå®
+media-img = åç
+media-bg-img = èæ¯
+media-border-img = éæ¡
+media-list-img = é
ç®æ¸
å®
+media-cursor = 游æ¨
+media-object = ç©ä»¶
+media-embed = å
§åµ
+media-link = å示
+media-input = 輸å
¥
+media-video = è¦è¨
+media-audio = é³è¨
+saved-passwords-yes = æ¯
+saved-passwords-no = å¦
+
+no-page-title =
+ .value = æªå½åé é¢:
+general-quirks-mode =
+ .value = Quirks 模å¼
+general-strict-mode =
+ .value = æ¨æºéµå¾ªæ¨¡å¼
+page-info-security-no-owner =
+ .value = éåç¶²ç«æ²ææä¾ææè
è³è¨ã
+media-select-folder = è«é¸æè¦å²ååççè³æå¤¾
+media-unknown-not-cached =
+ .value = æªç¥ï¼æªå¿«åï¼
+permissions-use-default =
+ .label = 使ç¨é è¨å¼
+security-no-visits = å¦
+
+# 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 } åæ¨ç±¤ï¼
+ }
+
+# 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] æ²æ
+ [one] æï¼1 次
+ *[other] æï¼{ $visits } 次
+ }
+
+# 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 } ä½å
çµï¼
+ }
+
+# 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 } åçï¼åç«ï¼{ $frames } åç«æ ¼ï¼
+ }
+
+# This string is used to display the type of
+# an image
+# Variables:
+# $type (string) - The type of an image
+media-image-type =
+ .value = { $type } åç
+
+# 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ï¼ç¸®æ¾çº { $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 à { $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 = å°éä¾èª { $website } çåç
+ .accesskey = B
+
+# 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 = é é¢è³è¨ â { $website }
+page-info-frame =
+ .title = é æ¡è³è¨ â { $website }
diff --git a/browser/browser/panelUI.ftl b/browser/browser/panelUI.ftl
new file mode 100644
index 00000000000..37388b6c9f4
--- /dev/null
+++ b/browser/browser/panelUI.ftl
@@ -0,0 +1,25 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Customization Menu
+
+# The overflow menu is the menu that appears if you click the chevron (>> button) in the location bar.
+customize-menu-unpin-from-overflowmenu =
+ .label = 徿¶èé¸å®åæ¶éé¸
+ .accesskey = U
+customize-menu-add-to-toolbar =
+ .label = æ°å¢è³å·¥å
·å
+ .accesskey = A
+customize-menu-add-to-overflowmenu =
+ .label = æ°å¢å°æ¶èé¸å®
+ .accesskey = M
+
+## Forget Button
+
+# The forget button can be added to the toolbar or overflow menu via the cutomization menu.
+panic-button-thankyou-msg1 = å·²æ¸
餿¨æè¿çç覽ç´éã
+panic-button-thankyou-msg2 = å®å
¨å°ç覽å§ï¼
+panic-button-thankyou-button =
+ .label = è¬å¦ï¼
diff --git a/browser/browser/panicButton.ftl b/browser/browser/panicButton.ftl
new file mode 100644
index 00000000000..0dcf94199f6
--- /dev/null
+++ b/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 = åéæ°éå乾淨çè¦çª
+panic-button-undo-warning = æ¤åä½ç¡æ³å¾©åã
+panic-button-forget-button =
+ .label = å¿æå§ï¼
+
+## 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 = å¿æå
åçç覽ç´é:
+panic-button-5min =
+ .label = 5 åé
+panic-button-2hr =
+ .label = 2 å°æ
+panic-button-day =
+ .label = 24 å°æ
+
+## These strings are combined to form a complete sentence starting with
+## panic-button-action-desc. For example: "Proceeding will: Delete Recent Cookies".
+## Please ensure that this remains the case in the translation.
+## Note also that some strings include tags for emphasis on the
+## words "Cookies", "History", "Tabs" and "Windows". The translation should do the same.
+
+panic-button-action-desc = æ¥ä¸ä¾å°:
+panic-button-delete-cookies = åªé¤è¿æç Cookie
+panic-button-delete-history = åªé¤è¿æçç覽ç´é
+panic-button-delete-tabs-and-windows = ééææåé èè¦çª
diff --git a/browser/browser/places.ftl b/browser/browser/places.ftl
new file mode 100644
index 00000000000..52261400d74
--- /dev/null
+++ b/browser/browser/places.ftl
@@ -0,0 +1,212 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 = éå
+ .accesskey = O
+places-open-in-tab =
+ .label = ç¨æ°åé éå
+ .accesskey = w
+places-open-all-bookmarks =
+ .label = éåæææ¸ç±¤
+ .accesskey = O
+places-open-all-in-tabs =
+ .label = å
¨é¨ç¨åé éå
+ .accesskey = O
+places-open-in-window =
+ .label = ç¨æ°è¦çªéå
+ .accesskey = N
+places-open-in-private-window =
+ .label = ç¨æ°é±ç§è¦çªéå
+ .accesskey = P
+places-add-bookmark =
+ .label = æ°å¢æ¸ç±¤â¦
+ .accesskey = B
+places-add-folder-contextmenu =
+ .label = æ°å¢è³æå¤¾â¦
+ .accesskey = F
+places-add-folder =
+ .label = æ°å¢è³æå¤¾â¦
+ .accesskey = o
+places-add-separator =
+ .label = æ°å¢åéç·
+ .accesskey = S
+places-view =
+ .label = 檢è¦
+ .accesskey = w
+places-by-date =
+ .label = 便¥æ
+ .accesskey = D
+places-by-site =
+ .label = ä¾ç¶²ç«
+ .accesskey = S
+places-by-most-visited =
+ .label = ä¾ç覽次æ¸
+ .accesskey = V
+places-by-last-visited =
+ .label = ä¾ç覽é åº
+ .accesskey = L
+places-by-day-and-site =
+ .label = 便¥æåç¶²ç«
+ .accesskey = t
+places-history-search =
+ .placeholder = æå°ç´é
+places-history =
+ .aria-label = æ·å²
+places-bookmarks-search =
+ .placeholder = æå°æ¸ç±¤
+places-delete-domain-data =
+ .label = åªé¤èæ¤ç¶²ç«æéçè¨é
+ .accesskey = F
+places-sortby-name =
+ .label = ä¾å稱æåº
+ .accesskey = r
+# places-edit-bookmark and places-edit-generic will show one or the other and can have the same access key.
+places-edit-bookmark =
+ .label = 編輯æ¸ç±¤â¦
+ .accesskey = i
+places-edit-generic =
+ .label = 編輯â¦
+ .accesskey = i
+places-edit-folder =
+ .label = éæ°å½åè³æå¤¾â¦
+ .accesskey = e
+places-remove-folder =
+ .label =
+ { $count ->
+ [1] ç§»é¤è³æå¤¾
+ *[other] ç§»é¤è³æå¤¾
+ }
+ .accesskey = m
+places-edit-folder2 =
+ .label = ç·¨è¼¯è³æå¤¾â¦
+ .accesskey = i
+places-delete-folder =
+ .label =
+ { $count ->
+ [1] åªé¤è³æå¤¾
+ *[other] åªé¤è³æå¤¾
+ }
+ .accesskey = D
+# Managed bookmarks are created by an administrator and cannot be changed by the user.
+managed-bookmarks =
+ .label = å管ççæ¸ç±¤
+# This label is used when a managed bookmarks folder doesn't have a name.
+managed-bookmarks-subfolder =
+ .label = åè³æå¤¾
+# This label is used for the "Other Bookmarks" folder that appears in the bookmarks toolbar.
+other-bookmarks-folder =
+ .label = å
¶ä»æ¸ç±¤
+# Variables:
+# $count (number) - The number of elements being selected for removal.
+places-remove-bookmark =
+ .label =
+ { $count ->
+ [1] ç§»é¤æ¸ç±¤
+ *[other] ç§»é¤ { $count } çæ¸ç±¤
+ }
+ .accesskey = e
+places-show-in-folder =
+ .label = æ¼è³æå¤¾é¡¯ç¤º
+ .accesskey = F
+# Variables:
+# $count (number) - The number of elements being selected for removal.
+places-delete-bookmark =
+ .label =
+ { $count ->
+ [1] åªé¤æ¸ç±¤
+ *[other] åªé¤æ¸ç±¤
+ }
+ .accesskey = D
+places-manage-bookmarks =
+ .label = ç®¡çæ¸ç±¤
+ .accesskey = M
+places-forget-about-this-site-confirmation-title = åªé¤èæ¤ç¶²ç«æéçè¨é
+# Variables:
+# $hostOrBaseDomain (string) - The base domain (or host in case there is no base domain) for which data is being removed
+places-forget-about-this-site-confirmation-message = æ¤åä½å°æ¸
é¤è { $hostOrBaseDomain } æéçææè³æï¼å
å«ç覽ç´éãå¯ç¢¼ãCookieãå¿«åè³æèå
§å®¹å好è¨å®ãæ¨ç¢ºå®è¦ç¹¼çºåï¼
+places-forget-about-this-site-forget = å¿è¨
+places-library =
+ .title = æ¶è庫
+ .style = width:700px; height:500px;
+places-organize-button =
+ .label = 管ç
+ .tooltiptext = ç®¡çæ¨çæ¸ç±¤
+ .accesskey = O
+places-organize-button-mac =
+ .label = 管ç
+ .tooltiptext = ç®¡çæ¨çæ¸ç±¤
+places-file-close =
+ .label = éé
+ .accesskey = C
+places-cmd-close =
+ .key = w
+places-view-button =
+ .label = 檢è¦
+ .tooltiptext = è®æ´æª¢è¦æ¹å¼
+ .accesskey = V
+places-view-button-mac =
+ .label = 檢è¦
+ .tooltiptext = è®æ´æª¢è¦æ¹å¼
+places-view-menu-columns =
+ .label = 顯示æ¬ä½
+ .accesskey = C
+places-view-menu-sort =
+ .label = æåº
+ .accesskey = S
+places-view-sort-unsorted =
+ .label = 䏿åº
+ .accesskey = U
+places-view-sort-ascending =
+ .label = éå¢æåº (A > Z)
+ .accesskey = A
+places-view-sort-descending =
+ .label = 鿏æåº (Z > A)
+ .accesskey = Z
+places-maintenance-button =
+ .label = å¯å
¥åå份
+ .tooltiptext = å¯å
¥èå份æ¨çæ¸ç±¤
+ .accesskey = I
+places-maintenance-button-mac =
+ .label = å¯å
¥åå份
+ .tooltiptext = å¯å
¥èå份æ¨çæ¸ç±¤
+places-cmd-backup =
+ .label = å份â¦
+ .accesskey = B
+places-cmd-restore =
+ .label = å復
+ .accesskey = R
+places-cmd-restore-from-file =
+ .label = é¸ææªæ¡â¦
+ .accesskey = C
+places-import-bookmarks-from-html =
+ .label = èª HTML å¯å
¥æ¸ç±¤â¦
+ .accesskey = I
+places-export-bookmarks-to-html =
+ .label = å¯åºæ¸ç±¤æ HTMLâ¦
+ .accesskey = E
+places-import-other-browser =
+ .label = èªå
¶ä»ç覽å¨å¯å
¥è³æâ¦
+ .accesskey = a
+places-view-sort-col-name =
+ .label = å稱
+places-view-sort-col-tags =
+ .label = æ¨ç±¤
+places-view-sort-col-url =
+ .label = ç¶²å
+places-view-sort-col-most-recent-visit =
+ .label = æè¿ç覽
+places-view-sort-col-visit-count =
+ .label = ç覽次æ¸
+places-view-sort-col-date-added =
+ .label = å å
¥æ¥æ
+places-view-sort-col-last-modified =
+ .label = 䏿¬¡ä¿®æ¹
+places-cmd-find-key =
+ .key = f
+places-back-button =
+ .tooltiptext = åä¸ä¸é
+places-forward-button =
+ .tooltiptext = å°ä¸ä¸é
+places-details-pane-select-an-item-description = è«é¸æä¸åé
ç®ä»¥æª¢è¦æç·¨è¼¯å
¶å±¬æ§
diff --git a/browser/browser/policies/policies-descriptions.ftl b/browser/browser/policies/policies-descriptions.ftl
new file mode 100644
index 00000000000..f3cc8f64ffa
--- /dev/null
+++ b/browser/browser/policies/policies-descriptions.ftl
@@ -0,0 +1,203 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 = è¨å® WebExtension å¯éé chrome.storage.managed ååçæ¿çã
+
+policy-AllowedDomainsForApps = æå®å
許åå Google Workspace çç¶²åã
+
+policy-AppAutoUpdate = éåæééæç¨ç¨å¼èªåæ´æ°ã
+
+policy-AppUpdateURL = èªè¨æç¨ç¨å¼æ´æ°ç¶²åã
+
+policy-Authentication = çºæ¯æ´çç¶²ç«è¨å®æ´å身åé©èæ¹å¼ã
+
+policy-AutoLaunchProtocolsFromOrigins = åèä¸çµå¤é¨éè¨åå®çæ¸
å®è便ºç¶²åï¼å¯ä¸æç¤ºä½¿ç¨è
å°±èªåååå¤é¨éè¨åå®ã
+
+policy-BackgroundAppUpdate2 = åç¨æåç¨èæ¯æ´æ°ç¨å¼ã
+
+policy-BlockAboutAddons = 鲿¢éåéå å
件管çå¡ï¼about:addonsï¼ã
+
+policy-BlockAboutConfig = 鲿¢éå about:config é é¢ã
+
+policy-BlockAboutProfiles = 鲿¢éå about:profiles é é¢ã
+
+policy-BlockAboutSupport = 鲿¢éå about:support é é¢ã
+
+policy-Bookmarks = 卿¸ç±¤å·¥å
·åãé¸å®æç¶ä¸çè³æå¤¾å»ºç«æ¸ç±¤ã
+
+policy-CaptivePortal = éåæééæ¯æ´ Captive portalã
+
+policy-CertificatesDescription = æ°å¢æèï¼æä½¿ç¨å
§å»ºæèã
+
+policy-Cookies = å
許ææçµç¶²ç«è¨å® Cookieã
+
+policy-DisabledCiphers = åç¨å 坿¼ç®æ³ã
+
+policy-DefaultDownloadDirectory = è¨å®é è¨ä¸è¼è³æå¤¾ã
+
+policy-DisableAppUpdate = 鲿¢çè¦½å¨æ´æ°ã
+
+policy-DisableBuiltinPDFViewer = åç¨ { -brand-short-name } å
§å»ºç PDF é±è®å¨ PDF.jsã
+
+policy-DisableDefaultBrowserAgent = ä¸è®é è¨ç覽å¨ä»£çå·¥å
·ä½ä»»ä½äºãå
å° Windows ææï¼å
¶ä»å¹³å°æ²æä»£çå·¥å
·å¯ç¨ã
+
+policy-DisableDeveloperTools = 鲿¢ä½¿ç¨éç¼è
å·¥å
·ã
+
+policy-DisableFeedbackCommands = åç¨æ¼ã說æãé¸å®ä¸å³éæè¦åé¥çç¸éæä»¤ï¼ãéåºæè¦åé¥ãèãåå ±è©é¨ç¶²ç«ãï¼ã
+
+policy-DisableFirefoxAccounts = åç¨ { -fxaccount-brand-name }ç¸éæåï¼å
å« Syncã
+
+# Firefox Screenshots is the name of the feature, and should not be translated.
+policy-DisableFirefoxScreenshots = åç¨ Firefox Screenshots åè½ã
+
+policy-DisableFirefoxStudies = 鲿¢ { -brand-short-name } é²è¡ä½¿ç¨è
ç ç©¶ã
+
+policy-DisableForgetButton = 鲿¢ä½¿ç¨ãå¿è¨ãåè½ã
+
+policy-DisableFormHistory = ä¸è¦è¨ä½æå°è表å®å¡«å¯«ç´éã
+
+policy-DisablePrimaryPasswordCreation = è¥çº trueï¼å°ç¡æ³å»ºç«ä¸»æ§å¯ç¢¼ã
+
+policy-DisablePasswordReveal = ä¸å
許æ¼å²åçç»å
¥è³è¨ç«é¢ä¸é¡¯ç¤ºå¯ç¢¼ã
+
+policy-DisablePocket = åç¨å²åç¶²é å° Pocket çåè½ã
+
+policy-DisablePrivateBrowsing = åç¨é±ç§ç覽åè½ã
+
+policy-DisableProfileImport = åç¨èªå
¶ä»ç覽å¨å¯å
¥è³æçé¸å®åè½ã
+
+policy-DisableProfileRefresh = åç¨ about:support é é¢ä¸çãéæ°æ´ç { -brand-short-name }ãæéã
+
+policy-DisableSafeMode = åç¨ä»¥å®å
¨æ¨¡å¼éæ°ååçåè½ã註: ååææä½ Shift éµé²å
¥å®å
¨æ¨¡å¼çåè½ï¼å
è½æ¼ Windows 使ç¨ç¾¤çµåååç¨ã
+
+policy-DisableSecurityBypass = 鲿¢ä½¿ç¨è
å¿½ç¥æäºå®å
¨æ§è¦åã
+
+policy-DisableSetAsDesktopBackground = åç¨å°åçãè¨çºæ¡å¸ãçé¸å®åè½ã
+
+policy-DisableSystemAddonUpdate = 鲿¢ç覽å¨å®è£ææ´æ°ç³»çµ±éå å
ä»¶ã
+
+policy-DisableTelemetry = éé Telemetryã
+
+policy-DisplayBookmarksToolbar = é è¨é¡¯ç¤ºæ¸ç±¤å·¥å
·åã
+
+policy-DisplayMenuBar = é è¨é¡¯ç¤ºé¸å®åã
+
+policy-DNSOverHTTPS = è¨å® DNS over HTTPSã
+
+policy-DontCheckDefaultBrowser = ååæä¸æª¢æ¥æ¯å¦çºé è¨ç覽å¨ã
+
+policy-DownloadDirectory = è¨å®ä¸¦éå®ä¸è¼è³æå¤¾ã
+
+# âlockâ means that the user wonât be able to change this setting
+policy-EnableTrackingProtection = éåæééå
§å®¹å°éåè½ï¼ä¸¦å¯é¸æéå®è©²åè½ã
+
+# âlockâ means that the user wonât be able to change this setting
+policy-EncryptedMediaExtensions = éåæééå å¯åªé«æ´å
åè½ï¼ä¸¦å¯é¸æéå®è©²åè½ã
+
+# 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 = å®è£ãç§»é¤æé宿´å
å¥ä»¶ãå®è£é¸é
å¯å å
¥ç¶²åæè·¯å¾ä½çºåæ¸ãç§»é¤åéå®é¸é
åéè¦æ´å
å¥ä»¶ ID ä½çºåæ¸ã
+
+policy-ExtensionSettings = ç®¡çæ´å
å¥ä»¶çå種å®è£è¨å®ã
+
+policy-ExtensionUpdate = éåæééæ´å
å¥ä»¶èªåæ´æ°ã
+
+policy-FirefoxHome = è¨å® Firefox Homeã
+
+policy-FlashPlugin = å
許ææçµä½¿ç¨ Flash æ´å
å¥ä»¶ã
+
+policy-Handlers = è¨å®é è¨æç¨ç¨å¼èçæ¹å¼ã
+
+policy-HardwareAcceleration = è¥çº falseï¼å°±æéé硬é«å éã
+
+# âlockâ means that the user wonât be able to change this setting
+policy-Homepage = è¨å®æéå®é¦é ã
+
+policy-InstallAddonsPermission = å
許æäºç¶²ç«å®è£éå å
ä»¶ã
+
+policy-LegacyProfiles = åç¨ãæ¼æ¯ä¸å¥å®è£ä½¿ç¨ä¸åè¨å®æªãçåè½ã
+
+## Do not translate "SameSite", it's the name of a cookie attribute.
+
+policy-LegacySameSiteCookieBehaviorEnabled = éåé è¨å³çµ± SameSite cookie è¡çºè¨å®ã
+
+policy-LegacySameSiteCookieBehaviorEnabledForDomainList = å°æå®çç¶²ç«æ¢å¾©å³çµ± SameSite cookie è¡çºã
+
+##
+
+policy-LocalFileLinks = å
許ç¹å®ç¶²ç«éçµå°æ¬æ©æªæ¡ã
+
+policy-ManagedBookmarks = è¨å®ç±ç®¡ç塿§ç®¡çæ¸ç±¤æ¸
å®ï¼ä½¿ç¨è
ç¡æ³æ´æ¹ã
+
+policy-ManualAppUpdateOnly = åªå
許æåæ´æ°ï¼ä¹ä¸éç¥ä½¿ç¨è
å·²ææ´æ°æ¨åºã
+
+policy-PrimaryPassword = è¦æ±ä½¿ç¨æä¸å
許使ç¨ä¸»æ§å¯ç¢¼ã
+
+policy-NetworkPrediction = éåæééç¶²è·¯é æ¸¬ï¼DNS é è®ï¼åè½ã
+
+policy-NewTabPage = åç¨æåç¨ãæ°åé ãé é¢ã
+
+policy-NoDefaultBookmarks = åæ¢å»ºç« { -brand-short-name } å
§å»ºçé è¨æ¸ç±¤åæºæ
§æ¸ç±¤ï¼æå¸¸é 訪ãæè¿æ°å¢çæ¨ç±¤ï¼ã註: æ¤ååå
å¨è¨å®æªé¦æ¬¡åååè¨å®æææã
+
+policy-OfferToSaveLogins = å¼·å¶å
許 { -brand-short-name } æä¾è¨ä½ç»å
¥è³è¨èå¯ç¢¼çè¨å®ãtrue è false è¨å®é½æ¥åã
+
+policy-OfferToSaveLoginsDefault = å
許 { -brand-short-name } æä¾è¨ä½å²åç»å
¥å¸³èèå¯ç¢¼çåè½ãtrue è false å¼é½æ¥åã
+
+policy-OverrideFirstRunPage = è¦èã馿¬¡å·è¡ãé é¢ãè¥æ¨æ³åç¨é¦æ¬¡å·è¡é é¢ï¼è«å°ååè¨çºç©ºç½ã
+
+policy-OverridePostUpdatePage = è¦èæ´æ°å¾æéåçãæä»éº¼æ°é®®äºãé é¢ãè¥æ¨æ³åç¨æ¤é é¢ï¼è«å°ååè¨çºç©ºç½ã
+
+policy-PasswordManagerEnabled = å
許使ç¨å¯ç¢¼ç®¡çå¡ä¾å²åå¯ç¢¼ã
+
+# PDF.js and PDF should not be translated
+policy-PDFjs = åç¨æè¨å® { -brand-short-name } å
§å»ºç PDF é±è®å¨ PDF.jsã
+
+policy-Permissions2 = è¨å®æå½±æ©ã麥å
風ãå°çä½ç½®ãéç¥ãèªåææ¾çæ¬éã
+
+policy-PictureInPicture = éåæéé忝ç«é¢åè½ã
+
+policy-PopupBlocking = å
許æäºç¶²ç«é è¨å¯é¡¯ç¤ºå½åºè¦çªã
+
+policy-Preferences = éå®é¨åå好è¨å®çå
§å®¹ã
+
+policy-PromptForDownloadLocation = ä¸è¼æªæ¡æï¼è©¢åè¦å°æªæ¡å²åè³ä½èã
+
+policy-Proxy = è¨å®ä»£ç伺æå¨é¸é
ã
+
+policy-RequestedLocales = çºæç¨ç¨å¼è¨å®ä½¿ç¨çèªç³»æ¸
å®é åºã
+
+policy-SanitizeOnShutdown2 = ééçè¦½å¨æï¼æ¸
é¤ä¸ç¶²è³æã
+
+policy-SearchBar = è¨å®æå°åçé è¨ä½ç½®ï¼ä½¿ç¨è
ä»ç¶å¯ä»¥èªè¨ã
+
+policy-SearchEngines = èª¿æ´æå°å¼æè¨å®ãæ¤ååå
å° Extended Support Releaseï¼ESRï¼çæ¬ææã
+
+policy-SearchSuggestEnabled = åç¨æåç¨æå°å»ºè°ã
+
+# For more information, see https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/PKCS11/Module_Installation
+policy-SecurityDevices = å®è£ PKCS #11 模çµã
+
+policy-ShowHomeButton = æ¼å·¥å
·å顯示é¦é æéã
+
+policy-SSLVersionMax = è¨å®æå¤§ SSL çæ¬ã
+
+policy-SSLVersionMin = è¨å®æå° SSL çæ¬ã
+
+policy-SupportMenu = æ¼èªªæé¸å®å
§æ°å¢èªè¨çæè¡æ¯æ´é
ç®ã
+
+policy-UserMessaging = ä¸è¦å°ä½¿ç¨è
顯示æäºè¨æ¯ã
+
+# âformatâ refers to the format used for the value of this policy.
+policy-WebsiteFilter = å°éç¶²ç«ï¼ä¸è®ä½¿ç¨è
éåãè«åèæä»¶åå¾è¨å®æ ¼å¼çè©³ç´°è³æã
+
+policy-Windows10SSO = å
è¨±ä½¿ç¨ Windows å®ä¸ç»å
¥ç³»çµ±ï¼ç»å
¥å¾®è»ãå·¥ä½å®ä½ã叿 ¡æä¾ç帳èã
diff --git a/browser/browser/preferences/addEngine.ftl b/browser/browser/preferences/addEngine.ftl
new file mode 100644
index 00000000000..5a80ca26b17
--- /dev/null
+++ b/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 = æ°å¢æå°å¼æ
+ .style = width: 32em;
+
+add-engine-button = æ°å¢èªè¨æå°å¼æ
+
+add-engine-name = æå°å¼æå稱
+
+add-engine-alias = å¥å
+
+add-engine-url = æå°å¼æç¶²åï¼ä½¿ç¨ %s æ¾ç½®å¨è¦è¢«åä»£çºæå°è©å½çä½ç½®
+
+add-engine-dialog =
+ .buttonlabelaccept = æ°å¢æå°å¼æ
+ .buttonaccesskeyaccept = A
+
+engine-name-exists = å·²æä½¿ç¨è©²å稱çæå°å¼æåå¨
+engine-alias-exists = å·²æä½¿ç¨è©²å¥åçæå°å¼æåå¨
diff --git a/browser/browser/preferences/applicationManager.ftl b/browser/browser/preferences/applicationManager.ftl
new file mode 100644
index 00000000000..366dbd9865f
--- /dev/null
+++ b/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 = ç¨å¼è©³ç´°è³è¨
+ .style = width: 30em; min-height: 20em;
+
+app-manager-remove =
+ .label = ç§»é¤
+ .accesskey = R
+
+# Variables:
+# $type (String) - the URI scheme of the link (e.g. mailto:)
+app-manager-handle-protocol = ä¸åç¨å¼å¯ç¨ä¾èç { $type } éçµã
+
+# Variables:
+# $type (String) - the MIME type (e.g. application/binary)
+app-manager-handle-file = ä¸åç¨å¼å¯ç¨ä¾èç { $type } å
§å®¹ã
+
+## These strings are followed, on a new line,
+## by the URL or path of the application.
+
+app-manager-web-app-info = æ¤ç¶²è·¯æç¨ç¨å¼æ¶è¨å¨:
+app-manager-local-app-info = æ¤ç¨å¼ä½æ¼:
diff --git a/browser/browser/preferences/blocklists.ftl b/browser/browser/preferences/blocklists.ftl
new file mode 100644
index 00000000000..1fa5d1235be
--- /dev/null
+++ b/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 = å°éæ¸
å®
+ .style = width: 55em
+
+blocklist-description = è«é¸æ { -brand-short-name } è¦ç¨ä¾å°éç·ä¸è¿½è¹¤å¨çæ¸
å®ãæ¸
å®å
§å®¹æ¯ç± Disconnect æä¾ã
+blocklist-close-key =
+ .key = w
+
+blocklist-treehead-list =
+ .label = æ¸
å®
+
+blocklist-dialog =
+ .buttonlabelaccept = å²åè®æ´
+ .buttonaccesskeyaccept = S
+
+
+# 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 = 第ä¸ç´å°éæ¸
å®ï¼æ¨è¦ï¼ã
+blocklist-item-moz-std-description = å
許ä¸äºè¿½è¹¤å¨ï¼ææ
éçç¶²ç«æ¯è¼å°ã
+blocklist-item-moz-full-listName = 第äºç´å°éæ¸
å®ã
+blocklist-item-moz-full-description = å°éææåµæ¸¬å°ç追蹤å¨ãå¯è½ç¡æ³æ£å¸¸è¼å
¥é¨åç¶²ç«æå
§å®¹ã
diff --git a/browser/browser/preferences/clearSiteData.ftl b/browser/browser/preferences/clearSiteData.ftl
new file mode 100644
index 00000000000..efe1df7717b
--- /dev/null
+++ b/browser/browser/preferences/clearSiteData.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/.
+
+clear-site-data-window =
+ .title = æ¸
é¤è³æ
+ .style = width: 35em
+
+clear-site-data-description = æ¸
é¤ { -brand-short-name } å²åçææ Cookie èç¶²ç«è³æå¯è½æå°æ¨å¾è¨±å¤ç¶²ç«ç»åºï¼ä¸¦æ¸
é¤ç¶²é é¢ç·å
§å®¹ãå®ç´æ¸
é¤å¿«åè³æå䏿影é¿ç»å
¥çæ
ã
+
+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 èç¶²ç«è³æï¼{ $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 èç¶²ç«è³æ
+ .accesskey = S
+
+clear-site-data-cookies-info = æ¸
é¤å¾ï¼ç¶²ç«å¯è½æè¦æ±æ¨éæ°ç»å
¥
+
+# 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 = ç¶²é å¿«åå
§å®¹ï¼{ $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 = ç¶²é å¿«åå
§å®¹
+ .accesskey = W
+
+clear-site-data-cache-info = å°éæ°è¼å
¥ç¶²ç«çåçèè³æ
+
+clear-site-data-dialog =
+ .buttonlabelaccept = æ¸
é¤
+ .buttonaccesskeyaccept = l
diff --git a/browser/browser/preferences/colors.ftl b/browser/browser/preferences/colors.ftl
new file mode 100644
index 00000000000..ad8e014c2d8
--- /dev/null
+++ b/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 = è²å½©
+ .style =
+ { PLATFORM() ->
+ [macos] width: 41em
+ *[other] width: 38em
+ }
+
+colors-close-key =
+ .key = w
+
+colors-page-override = 忽ç¥é 颿å®çè²å½©ï¼ä½¿ç¨æ¨ä¸é¢ç鏿
+ .accesskey = O
+
+colors-page-override-option-always =
+ .label = 總æ¯
+colors-page-override-option-auto =
+ .label = å
å¨ä½¿ç¨é«å°æ¯ä½æ¯ä¸»é¡æ
+colors-page-override-option-never =
+ .label = æ°¸ä¸
+
+colors-text-and-background = æåèèæ¯
+
+colors-text-header = æå
+ .accesskey = T
+
+colors-background = èæ¯
+ .accesskey = B
+
+colors-use-system =
+ .label = 使ç¨ç³»çµ±è²å½©
+ .accesskey = s
+
+colors-underline-links =
+ .label = éçµå åºç·
+ .accesskey = U
+
+colors-links-header = éçµè²å½©
+
+colors-unvisited-links = æªæè¨ªéçµ
+ .accesskey = L
+
+colors-visited-links = å·²æè¨ªéçµ
+ .accesskey = V
diff --git a/browser/browser/preferences/connection.ftl b/browser/browser/preferences/connection.ftl
new file mode 100644
index 00000000000..bddb2328f54
--- /dev/null
+++ b/browser/browser/preferences/connection.ftl
@@ -0,0 +1,102 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+connection-window =
+ .title = é£ç·è¨å®
+ .style =
+ { PLATFORM() ->
+ [macos] width: 44em
+ *[other] width: 49em
+ }
+
+connection-close-key =
+ .key = w
+
+connection-disable-extension =
+ .label = åç¨æ´å
å¥ä»¶
+
+connection-proxy-configure = è¨å®ååç¶²é網路ç代ç伺æå¨
+
+connection-proxy-option-no =
+ .label = ä¸ä½¿ç¨ Proxy
+ .accesskey = y
+connection-proxy-option-system =
+ .label = 使ç¨ç³»çµ± Proxy è¨å®
+ .accesskey = U
+connection-proxy-option-auto =
+ .label = èªå嵿¸¬æ¤ç¶²è·¯ç Proxy è¨å®
+ .accesskey = w
+connection-proxy-option-manual =
+ .label = æåè¨å® Proxy
+ .accesskey = m
+
+connection-proxy-http = HTTP Proxy
+ .accesskey = x
+connection-proxy-http-port = å
+ .accesskey = P
+
+connection-proxy-https-sharing =
+ .label = ä¹éå° HTTPS é£ç·ä½¿ç¨æ¤ä»£ç伺æå¨
+ .accesskey = s
+
+connection-proxy-https = HTTPS Proxy
+ .accesskey = H
+connection-proxy-ssl-port = å
+ .accesskey = o
+
+connection-proxy-socks = SOCKS 主æ©
+ .accesskey = C
+connection-proxy-socks-port = å
+ .accesskey = t
+
+connection-proxy-socks4 =
+ .label = SOCKS v4
+ .accesskey = K
+connection-proxy-socks5 =
+ .label = SOCKS v5
+ .accesskey = v
+connection-proxy-noproxy = ç´æ¥é£ç·
+ .accesskey = n
+
+connection-proxy-noproxy-desc = ç¯ä¾: .mozilla.org, .net.tw, 192.168.1.0/24
+
+# Do not translate "localhost", "127.0.0.1/8" and "::1". (You can translate "and".)
+connection-proxy-noproxy-localhost-desc-2 = è localhostã127.0.0.1/8 è ::1 çé£ç·æ°¸é 䏿ç¶é代ç伺æå¨ã
+
+connection-proxy-autotype =
+ .label = Proxy èªåè¨å®ç¶²å
+ .accesskey = A
+
+connection-proxy-reload =
+ .label = éæ°è¼å
¥
+ .accesskey = e
+
+connection-proxy-autologin =
+ .label = è¥å·²å²åå¯ç¢¼åä¸è¦æç¤ºé©è
+ .accesskey = i
+ .tooltip = å¾é¸æ¤é¸é
å¾ï¼è¥æ¨å·²å°å¯ç¢¼å²åèµ·ä¾ï¼é£ç·æå°±ä¸æåè©¢åæ¨å¯ç¢¼ãé©è失æå¾ææååæ¨è©¢åã
+
+connection-proxy-socks-remote-dns =
+ .label = ä½¿ç¨ SOCKS v5 æä¹ä»£ç DNS æ¥è©¢
+ .accesskey = d
+
+connection-dns-over-https =
+ .label = éå DNS over HTTPS
+ .accesskey = H
+
+connection-dns-over-https-url-resolver = 使ç¨ä¾æå
+ .accesskey = P
+
+# Variables:
+# $name (String) - Display name or URL for the DNS over HTTPS provider
+connection-dns-over-https-url-item-default =
+ .label = { $name }ï¼é è¨ï¼
+ .tooltiptext = 使ç¨é è¨ç¶²åä¾è§£æ DNS over HTTPS
+
+connection-dns-over-https-url-custom =
+ .label = èªè¨
+ .accesskey = C
+ .tooltiptext = 輸å
¥æ¨æ³è¦ç¨ä¾è§£æ DNS over HTTPS çç¶²å
+
+connection-dns-over-https-custom-label = èªè¨
diff --git a/browser/browser/preferences/containers.ftl b/browser/browser/preferences/containers.ftl
new file mode 100644
index 00000000000..82286fb7a04
--- /dev/null
+++ b/browser/browser/preferences/containers.ftl
@@ -0,0 +1,94 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+containers-window-new =
+ .title = æ°å¢å®¹å¨
+ .style = width: 45em
+
+# Variables
+# $name (String) - Name of the container
+containers-window-update-settings =
+ .title = { $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 = å稱
+ .accesskey = N
+ .style = { -containers-labels-style }
+
+containers-name-text =
+ .placeholder = 輸å
¥å®¹å¨å稱
+
+containers-icon-label = å示
+ .accesskey = I
+ .style = { -containers-labels-style }
+
+containers-color-label = è²å½©
+ .accesskey = o
+ .style = { -containers-labels-style }
+
+containers-dialog =
+ .buttonlabelaccept = 宿
+ .buttonaccesskeyaccept = D
+
+containers-color-blue =
+ .label = èè²
+containers-color-turquoise =
+ .label = ç¶ æ¾è²
+containers-color-green =
+ .label = ç¶ è²
+containers-color-yellow =
+ .label = é»è²
+containers-color-orange =
+ .label = æ©è²
+containers-color-red =
+ .label = ç´
è²
+containers-color-pink =
+ .label = ç²ç´
è²
+containers-color-purple =
+ .label = ç´«è²
+containers-color-toolbar =
+ .label = èå·¥å
·åç¸å
+
+containers-icon-fence =
+ .label = 籬ç¬
+containers-icon-fingerprint =
+ .label = æç´
+containers-icon-briefcase =
+ .label = å
¬äºå
+# 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 = é¢è
+containers-icon-cart =
+ .label = è³¼ç©è»
+containers-icon-circle =
+ .label = åé»
+containers-icon-vacation =
+ .label = åæ
+containers-icon-gift =
+ .label = 禮ç©
+containers-icon-food =
+ .label = é£ç©
+containers-icon-fruit =
+ .label = æ°´æ
+containers-icon-pet =
+ .label = 寵ç©
+containers-icon-tree =
+ .label = 大樹
+containers-icon-chill =
+ .label = 墨é¡
diff --git a/browser/browser/preferences/fonts.ftl b/browser/browser/preferences/fonts.ftl
new file mode 100644
index 00000000000..8cdb8ee772b
--- /dev/null
+++ b/browser/browser/preferences/fonts.ftl
@@ -0,0 +1,121 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+fonts-window =
+ .title = åå
+
+fonts-window-close =
+ .key = w
+
+## Font groups by language
+
+fonts-langgroup-header = å°ææ¤ç¨®èªè¨
+ .accesskey = F
+
+fonts-langgroup-arabic =
+ .label = é¿æä¼¯æ
+fonts-langgroup-armenian =
+ .label = äºç¾å°¼äºæ
+fonts-langgroup-bengali =
+ .label = åå ææ
+fonts-langgroup-simpl-chinese =
+ .label = ç°¡é«ä¸æ
+fonts-langgroup-trad-chinese-hk =
+ .label = æ£é«ä¸æï¼ç¹é«ï¼é¦æ¸¯ï¼
+fonts-langgroup-trad-chinese =
+ .label = æ£é«ä¸æï¼ç¹é«ï¼èºç£ï¼
+fonts-langgroup-cyrillic =
+ .label = ä¿æï¼è¥¿éç¾æå
+fonts-langgroup-devanagari =
+ .label = 天åé«ï¼æ¢µæï¼
+fonts-langgroup-ethiopic =
+ .label = 衣索æ¯äºæ
+fonts-langgroup-georgian =
+ .label = 嬿²»äºæ
+fonts-langgroup-el =
+ .label = å¸èæ
+fonts-langgroup-gujarati =
+ .label = å¤åæç¹æ
+fonts-langgroup-gurmukhi =
+ .label = å¤é¯ç©å¥å
+fonts-langgroup-japanese =
+ .label = æ¥æ
+fonts-langgroup-hebrew =
+ .label = å¸ä¼¯ä¾æ
+fonts-langgroup-kannada =
+ .label = 康ç´éæ
+fonts-langgroup-khmer =
+ .label = 髿£æ
+fonts-langgroup-korean =
+ .label = éæ
+# Translate "Latin" as the name of Latin (Roman) script, not as the name of the Latin language.
+fonts-langgroup-latin =
+ .label = æä¸æ
+fonts-langgroup-malayalam =
+ .label = 馬æäºæå§æ
+fonts-langgroup-math =
+ .label = æ¸å¸æ¹ç¨å¼
+fonts-langgroup-odia =
+ .label = 奧éäºæ
+fonts-langgroup-sinhala =
+ .label = å§å ç¾
æ
+fonts-langgroup-tamil =
+ .label = å¦ç±³ç¾æ
+fonts-langgroup-telugu =
+ .label = æ³°ç§åºæ
+fonts-langgroup-thai =
+ .label = æ³°æ
+fonts-langgroup-tibetan =
+ .label = èæ
+fonts-langgroup-canadian =
+ .label = å æ¿å¤§çµ±ä¸é³ç¯å
+fonts-langgroup-other =
+ .label = å
¶ä»æå系統
+
+## Default fonts and their sizes
+
+fonts-proportional-header = æ¯ä¾åå
+ .accesskey = P
+
+fonts-default-serif =
+ .label = 襯ç·åå (Serif)
+fonts-default-sans-serif =
+ .label = ç¡è¥¯ç·åå (Sans Serif)
+
+fonts-proportional-size = 大å°
+ .accesskey = z
+
+fonts-serif = 襯ç·åå
+ .accesskey = S
+
+fonts-sans-serif = ç¡è¥¯ç·åå
+ .accesskey = n
+
+fonts-monospace = ç寬åå
+ .accesskey = M
+
+fonts-monospace-size = 大å°
+ .accesskey = e
+
+fonts-minsize = æå°åå大å°
+ .accesskey = o
+
+fonts-minsize-none =
+ .label = ç¡
+
+fonts-allow-own =
+ .label = å¿½ç¥æ¨ä¸é¢ç鏿ï¼åªå
使ç¨é 颿å®çåå
+ .accesskey = A
+
+## Text Encodings
+##
+## Translate the encoding names as adjectives for an encoding, not as the name
+## of the language.
+
+# Variables:
+# $name {string, "Arial"} - Name of the default font
+fonts-label-default =
+ .label = é è¨ï¼{ $name }ï¼
+fonts-label-default-unnamed =
+ .label = é è¨
diff --git a/browser/browser/preferences/fxaPairDevice.ftl b/browser/browser/preferences/fxaPairDevice.ftl
new file mode 100644
index 00000000000..ef14e7af0bf
--- /dev/null
+++ b/browser/browser/preferences/fxaPairDevice.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/.
+
+fxa-pair-device-dialog =
+ .title = é£çµå
¶ä»è£ç½®
+ .style = width: 26em; min-height: 35em;
+
+fxa-qrcode-heading-step1 = 1. è¥å°æªå¨æ¨çè¡åè£ç½®å®è£ Firefoxï¼è«å
å®è£ã
+
+fxa-qrcode-heading-step2 = 2. 卿¨çè¡åè£ç½®éå Firefoxã
+
+fxa-qrcode-heading-step3 = 3. éåé¸å®ï¼
æ
ï¼ï¼ç¶å¾é»æ
è¨å®ç¶å¾é¸æéå Sync
+
+fxa-qrcode-heading-step4 = 4. ææéçµ QR Code:
+
+fxa-qrcode-error-title = é
å°å¤±æã
+
+fxa-qrcode-error-body = é試ã
diff --git a/browser/browser/preferences/languages.ftl b/browser/browser/preferences/languages.ftl
new file mode 100644
index 00000000000..d1677e2fe60
--- /dev/null
+++ b/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 = ç¶²é èªè¨è¨å®
+ .style = width: 40em
+
+languages-close-key =
+ .key = w
+
+languages-description = ä¸å¼µç¶²é ææåææä¸åèªè¨ççæ¬ï¼è«é¸æè¦é¡¯ç¤ºçèªè¨çæ¬é åº
+
+languages-customize-spoof-english =
+ .label = çºäºå å¼·ä¿è·é±ç§ï¼è¦æ±è¼å
¥è±æçç¶²é
+
+languages-customize-moveup =
+ .label = ä¸ç§»
+ .accesskey = U
+
+languages-customize-movedown =
+ .label = ä¸ç§»
+ .accesskey = D
+
+languages-customize-remove =
+ .label = ç§»é¤
+ .accesskey = R
+
+languages-customize-select-language =
+ .placeholder = é¸æè¦æ°å¢çèªè¨â¦
+
+languages-customize-add =
+ .label = æ°å¢
+ .accesskey = A
+
+# 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 } èªè¨è¨å®
+ .style = width: 40em
+
+browser-languages-description = { -brand-short-name } å°æä»¥ç¬¬ä¸ç¨®èªè¨ä½çºæ¨çé è¨èªè¨ï¼ä¸¦æ ¹ææé¸çé åºå¨éè¦æé¡¯ç¤ºå
¶ä»èªè¨ã
+
+browser-languages-search = æå°æ´å¤èªè¨â¦
+
+browser-languages-searching =
+ .label = æ£å¨æå°èªè¨â¦
+
+browser-languages-downloading =
+ .label = ä¸è¼ä¸â¦
+
+browser-languages-select-language =
+ .label = é¸æè¦æ°å¢çèªè¨â¦
+ .placeholder = é¸æè¦æ°å¢çèªè¨â¦
+
+browser-languages-installed-label = å·²å®è£çèªè¨
+browser-languages-available-label = å¯ç¨èªè¨
+
+browser-languages-error = { -brand-short-name } ç®åç¡æ³æ´æ°æ¨çèªè¨å¥ä»¶ãè«ç¢ºèªæ¨æ¯å¦å·²é£ç·è³ç¶²éç¶²è·¯ï¼æå¯åè©¦ä¸æ¬¡ã
diff --git a/browser/browser/preferences/permissions.ftl b/browser/browser/preferences/permissions.ftl
new file mode 100644
index 00000000000..106579baed1
--- /dev/null
+++ b/browser/browser/preferences/permissions.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/.
+
+permissions-window =
+ .title = ä¾å¤ç¶²ç«
+ .style = width: 45em
+
+permissions-close-key =
+ .key = w
+
+permissions-address = ç¶²ç«ç¶²å
+ .accesskey = d
+
+permissions-block =
+ .label = å°é
+ .accesskey = B
+
+permissions-session =
+ .label = æ¤æ¬¡çè¦½éæ®µå
許
+ .accesskey = S
+
+permissions-allow =
+ .label = å
許
+ .accesskey = A
+
+permissions-button-off =
+ .label = éé
+ .accesskey = O
+
+permissions-button-off-temporarily =
+ .label = æ«æéé
+ .accesskey = T
+
+permissions-site-name =
+ .label = ç¶²ç«
+
+permissions-status =
+ .label = çæ
+
+permissions-remove =
+ .label = ç§»é¤ç¶²ç«
+ .accesskey = R
+
+permissions-remove-all =
+ .label = ç§»é¤ææç¶²ç«
+ .accesskey = e
+
+permission-dialog =
+ .buttonlabelaccept = å²åè®æ´
+ .buttonaccesskeyaccept = S
+
+permissions-autoplay-menu = å°ææç¶²ç«çé è¨è¡çº:
+
+permissions-searchbox =
+ .placeholder = æå°ç¶²ç«
+
+permissions-capabilities-autoplay-allow =
+ .label = å
許èªåææ¾å½±é³å
§å®¹
+permissions-capabilities-autoplay-block =
+ .label = å°éé³è¨
+permissions-capabilities-autoplay-blockall =
+ .label = å°éå½±é³å
§å®¹
+
+permissions-capabilities-allow =
+ .label = å
許
+permissions-capabilities-block =
+ .label = 黿
+permissions-capabilities-prompt =
+ .label = 總æ¯è©¢å
+
+permissions-capabilities-listitem-allow =
+ .value = å
許
+permissions-capabilities-listitem-block =
+ .value = 黿
+permissions-capabilities-listitem-allow-session =
+ .value = æ¤æ¬¡çè¦½éæ®µå
許
+
+permissions-capabilities-listitem-off =
+ .value = éé
+permissions-capabilities-listitem-off-temporarily =
+ .value = æ«æéé
+
+## Invalid Hostname Dialog
+
+permissions-invalid-uri-title = 輸å
¥ç主æ©åç¨±ä¸æ£ç¢º
+permissions-invalid-uri-label = è«è¼¸å
¥æ£ç¢ºç主æ©å稱
+
+## Exceptions - Tracking Protection
+
+permissions-exceptions-etp-window =
+ .title = å å¼·å追蹤ä¿è·çä¾å¤
+ .style = { permissions-window.style }
+permissions-exceptions-etp-desc = æ¨å·²éå°ä¸åç¶²ç«ééä¿è·ã
+
+## Exceptions - Cookies
+
+permissions-exceptions-cookie-window =
+ .title = ä¾å¤ - Cookie èç¶²ç«è³æ
+ .style = { permissions-window.style }
+permissions-exceptions-cookie-desc = æ¨å¯ä»¥æå®åªäºç¶²ç«æ¯å¦å¯ä»¥è¨å® Cookie åå²åç¶²ç«è³æãè«å¨ä¸æ¹è¼¸å
¥è¦æå®ç宿´ç¶²åï¼ç¶å¾é»æãå°éãããæ¤æ¬¡çè¦½éæ®µå
許ãæãå
許ãã
+
+## Exceptions - HTTPS-Only Mode
+
+permissions-exceptions-https-only-window =
+ .title = ä¾å¤ - ç´ HTTPS 模å¼
+ .style = { permissions-window.style }
+permissions-exceptions-https-only-desc = æ¨å¯ä»¥éå°ç¹å®ç¶²ç«ééç´ HTTPS 模å¼ãé£ç·å°éäºç¶²ç«æï¼{ -brand-short-name } 䏿å試åç´çºå®å
¨ç HTTPS é£ç·ãä¾å¤ç¶²ç«ä¸æå¨é±ç§ä¿è·è¦çªä¸çæã
+
+## Exceptions - Pop-ups
+
+permissions-exceptions-popup-window =
+ .title = å
許å½åºè¦çªçç¶²ç«
+ .style = { permissions-window.style }
+permissions-exceptions-popup-desc = æ¨å¯ä»¥æå®åªäºç¶²ç«å¯ä»¥éåå½åºåè¦çª (Pop-up)ãè«è¼¸å
¥å®æ´ç¶²å徿ãå
許ãã
+
+## Exceptions - Saved Logins
+
+permissions-exceptions-saved-logins-window =
+ .title = å²åçç»å
¥è³è¨ - ä¾å¤
+ .style = { permissions-window.style }
+permissions-exceptions-saved-logins-desc = å°ä¸æå²åä¸åç¶²ç«çç»å
¥è³è¨
+
+## Exceptions - Add-ons
+
+permissions-exceptions-addons-window =
+ .title = å
許å®è£éå å
ä»¶çç¶²ç«
+ .style = { permissions-window.style }
+permissions-exceptions-addons-desc = æ¨å¯ä»¥æå®åªäºç¶²ç«å¯ä»¥å®è£éå å
ä»¶ãè«è¼¸å
¥å®æ´ç¶²å徿ãå
許ãã
+
+## Site Permissions - Autoplay
+
+permissions-site-autoplay-window =
+ .title = è¨å® - èªåææ¾
+ .style = { permissions-window.style }
+permissions-site-autoplay-desc = æ¨å¯ä»¥å¨æ¤è管çä¸éµå®é è¨èªåææ¾è¨å®çç¶²ç«ã
+
+## Site Permissions - Notifications
+
+permissions-site-notification-window =
+ .title = è¨å® - éç¥æ¬é
+ .style = { permissions-window.style }
+permissions-site-notification-desc = ä¸åç¶²ç«è¦æ±å³ééç¥çµ¦æ¨ãæ¨å¯æå®å
許åªäºç¶²ç«å³ééç¥ï¼ä¹å¯ä»¥å°éæ°çéç¥å³éè«æ±ã
+permissions-site-notification-disable-label =
+ .label = å°éæ°ç¶²ç«å³ééç¥çè«æ±
+permissions-site-notification-disable-desc = å°é²æ¢ä¸å以å¤çç¶²ç«è«æ¨å
許å³ééç¥ãå°éå³ééç¥çæ¬éå¯è½æå½±é¿æäºç¶²ç«çåè½ã
+
+## Site Permissions - Location
+
+permissions-site-location-window =
+ .title = è¨å® - ä½ç½®æ¬é
+ .style = { permissions-window.style }
+permissions-site-location-desc = ä¸åç¶²ç«è¦æ±å徿¨çæå¨å°é»ãæ¨å¯æå®å
許åªäºç¶²ç«å徿¨çæå¨å°é»ï¼ä¹å¯ä»¥å°éæ°çä½ç½®åå¾è«æ±ã
+permissions-site-location-disable-label =
+ .label = å°éæ°ç¶²ç«å徿¨æå¨ä½ç½®çè«æ±
+permissions-site-location-disable-desc = å°é²æ¢ä¸å以å¤çç¶²ç«è«æ¨å
許å徿¨æå¨ä½ç½®ãå°éå徿å¨ä½ç½®çæ¬éå¯è½æå½±é¿æäºç¶²ç«çåè½ã
+
+## Site Permissions - Virtual Reality
+
+permissions-site-xr-window =
+ .title = è¨å® - èæ¬å¯¦å¢æ¬é
+ .style = { permissions-window.style }
+permissions-site-xr-desc = ä¸åç¶²ç«è¦æ±ä½¿ç¨æ¨çèæ¬å¯¦å¢è£ç½®ãæ¨å¯æå®å
許åªäºç¶²ç«ä½¿ç¨ VR è£ç½®ï¼ä¹å¯ä»¥å°éæ°ç VR è£ç½®ä½¿ç¨è«æ±ã
+permissions-site-xr-disable-label =
+ .label = å°éæ°ç¶²ç«ä½¿ç¨æ¨èæ¬è£ç½®çè«æ±
+permissions-site-xr-disable-desc = å°é²æ¢ä¸å以å¤çç¶²ç«è«æ±ä½¿ç¨æ¨çèæ¬å¯¦å¢è£ç½®ãå°éèæ¬å¯¦å¢è£ç½®çä½¿ç¨æ¬éå¯è½æå½±é¿æäºç¶²ç«çåè½ã
+
+## Site Permissions - Camera
+
+permissions-site-camera-window =
+ .title = è¨å® - æå½±æ©æ¬é
+ .style = { permissions-window.style }
+permissions-site-camera-desc = ä¸åç¶²ç«è¦æ±ä½¿ç¨æ¨çæå½±æ©ãæ¨å¯æå®å
許åªäºç¶²ç«ä½¿ç¨æ¨çæå½±æ©ï¼ä¹å¯ä»¥å°éæ°çæå½±æ©ä½¿ç¨è«æ±ã
+permissions-site-camera-disable-label =
+ .label = å°éæ°ç¶²ç«ä½¿ç¨æ¨æå½±æ©çè«æ±
+permissions-site-camera-disable-desc = å°é²æ¢ä¸å以å¤çç¶²ç«è«æ¨å
è¨±ä½¿ç¨æå½±æ©ãå°éä½¿ç¨æå½±æ©çæ¬éå¯è½æå½±é¿æäºç¶²ç«çåè½ã
+
+## Site Permissions - Microphone
+
+permissions-site-microphone-window =
+ .title = è¨å® - 麥å
風æ¬é
+ .style = { permissions-window.style }
+permissions-site-microphone-desc = ä¸åç¶²ç«è¦æ±ä½¿ç¨æ¨ç麥å
é¢¨ãæ¨å¯æå®å
許åªäºç¶²ç«ä½¿ç¨æ¨ç麥å
風ï¼ä¹å¯ä»¥å°éæ°ç麥å
風使ç¨è«æ±ã
+permissions-site-microphone-disable-label =
+ .label = å°éæ°ç¶²ç«ä½¿ç¨æ¨éº¥å
風çè«æ±
+permissions-site-microphone-disable-desc = å°é²æ¢ä¸å以å¤çç¶²ç«è«æ¨å
許使ç¨éº¥å
風ãå°é使ç¨éº¥å
é¢¨çæ¬éå¯è½æå½±é¿æäºç¶²ç«çåè½ã
diff --git a/browser/browser/preferences/preferences.ftl b/browser/browser/preferences/preferences.ftl
new file mode 100644
index 00000000000..9222c634860
--- /dev/null
+++ b/browser/browser/preferences/preferences.ftl
@@ -0,0 +1,1109 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 = å³éãDo Not Trackãè¨èï¼åè¨´ç¶²ç«æ¨ä¸æ³è¢«è¿½è¹¤
+do-not-track-learn-more = äºè§£æ´å¤
+do-not-track-option-default-content-blocking-known =
+ .label = å
å¨ { -brand-short-name } è¨å®çºå°éå·²ç¥è¿½è¹¤å¨æ
+do-not-track-option-always =
+ .label = 總æ¯
+settings-page-title = è¨å®
+# This is used to determine the width of the search field in about:preferences,
+# in order to make the entire placeholder string visible
+#
+# Please keep the placeholder string short to avoid truncation.
+#
+# Notice: The value of the `.style` attribute is a CSS string, and the `width`
+# is the name of the CSS property. It is intended only to adjust the element's width.
+# Do not translate.
+search-input-box2 =
+ .style = width: 15.4em
+ .placeholder = æå°é¸é
+managed-notice = æ¨çç覽å¨åå°çµç¹ç®¡çã
+category-list =
+ .aria-label = åé¡
+pane-general-title = ä¸è¬
+category-general =
+ .tooltiptext = { pane-general-title }
+pane-home-title = é¦é
+category-home =
+ .tooltiptext = { pane-home-title }
+pane-search-title = æå°
+category-search =
+ .tooltiptext = { pane-search-title }
+pane-privacy-title = é±ç§æ¬èå®å
¨æ§
+category-privacy =
+ .tooltiptext = { pane-privacy-title }
+pane-sync-title3 = 忥
+category-sync3 =
+ .tooltiptext = { pane-sync-title3 }
+pane-experimental-title = { -brand-short-name } 實é©
+category-experimental =
+ .tooltiptext = { -brand-short-name } 實é©
+pane-experimental-subtitle = 調æ´è¨å®åè«åå¿
å°å¿ï¼
+pane-experimental-search-results-header = { -brand-short-name } 實é©åè½: 調æ´è¨å®åè«åå¿
å°å¿ï¼
+pane-experimental-description2 = 調æ´é²éè¨å®ï¼å¯è½æå½±é¿ { -brand-short-name } çæè½æå®å
¨æ§ã
+pane-experimental-reset =
+ .label = å復çºé è¨å¼
+ .accesskey = R
+help-button-label = { -brand-short-name } æè¡æ¯æ´
+addons-button-label = æ´å
å¥ä»¶è使¯ä¸»é¡
+focus-search =
+ .key = f
+close-button =
+ .aria-label = éé
+
+## Browser Restart Dialog
+
+feature-enable-requires-restart = å¿
é éæ°åå { -brand-short-name } æè½åç¨æ¤åè½ã
+feature-disable-requires-restart = å¿
é éæ°åå { -brand-short-name } æè½åç¨æ¤åè½ã
+should-restart-title = éæ°åå { -brand-short-name }
+should-restart-ok = ç«å»éæ°åå { -brand-short-name }
+cancel-no-restart-button = åæ¶
+restart-later = ç¨å¾åéæ°åå
+
+## Extension Control Notifications
+##
+## These strings are used to inform the user
+## about changes made by extensions to browser settings.
+##
+##
is going to be replaced by the extension icon.
+##
+## Variables:
+## $name (String): name of the extension
+
+# This string is shown to notify the user that the password manager setting
+# is being controlled by an extension
+extension-controlled-password-saving = æ´å
å¥ä»¶
{ $name } æ£å¨æ§å¶æ¤è¨å®ã
+# This string is shown to notify the user that their notifications permission
+# is being controlled by an extension.
+extension-controlled-web-notifications = æ´å
å¥ä»¶
{ $name } æ£å¨æ§å¶æ¤è¨å®ã
+# This string is shown to notify the user that Container Tabs
+# are being enabled by an extension.
+extension-controlled-privacy-containers = æ´å
å¥ä»¶ã
{ $name }ãéè¦éå容å¨åé åè½æè½ä½¿ç¨ã
+# 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 = æ´å
å¥ä»¶
{ $name } æ£å¨æ§å¶æ¤è¨å®ã
+# This string is shown to notify the user that their proxy configuration preferences
+# are being controlled by an extension.
+extension-controlled-proxy-config = æ´å
å¥ä»¶ã
{ $name }ãæ£å¨æ§å¶æ¨ç { -brand-short-name } é£ç·è³ç¶²éç¶²è·¯çæ¹å¼ã
+# This string is shown after the user disables an extension to notify the user
+# how to enable an extension that they disabled.
+#
+#
will be replaced with Add-ons icon
+#
will be replaced with Menu icon
+extension-controlled-enable = è¦åç¨é奿´å
å¥ä»¶ï¼è«å°
é¸å®ä¸ç
éå å
ä»¶ã
+
+## Preferences UI Search Results
+
+search-results-header = æå°çµæ
+# `` will be replaced by the search term.
+search-results-empty-message2 = æ±æï¼æ²æããçé¸é
æå°çµæã
+search-results-help-link = éè¦å¹«å¿åï¼è«å° { -brand-short-name } æè¡æ¯æ´
+
+## General Section
+
+startup-header = åå
+always-check-default =
+ .label = ç¸½æ¯æª¢æ¥ { -brand-short-name } æ¯å¦çºæ¨çé è¨ç覽å¨
+ .accesskey = w
+is-default = { -brand-short-name } æ¯æ¨ç®åçé è¨ç覽å¨
+is-not-default = { -brand-short-name } 䏿¯æ¨çé è¨ç覽å¨
+set-as-my-default-browser =
+ .label = è¨çºé è¨ç覽å¨â¦
+ .accesskey = D
+startup-restore-previous-session =
+ .label = å復å
åçç覽çæ
+ .accesskey = s
+startup-restore-windows-and-tabs =
+ .label = éåå
åçè¦çªèåé
+ .accesskey = s
+startup-restore-warn-on-quit =
+ .label = ééçè¦½å¨æè¦åæ¨
+disable-extension =
+ .label = åç¨æ´å
å¥ä»¶
+tabs-group-header = åé
+ctrl-tab-recently-used-order =
+ .label = æä¸ Ctrl+Tab æï¼ä¾ç
§æè¿ä½¿ç¨åé çé åºåæåé æ¨ç±¤
+ .accesskey = T
+open-new-link-as-tabs =
+ .label = 以åé éåéçµï¼èä¸ä½¿ç¨æ°è¦çª
+ .accesskey = w
+warn-on-close-multiple-tabs =
+ .label = ééå¤ååé åè¦åæ¨
+ .accesskey = m
+confirm-on-close-multiple-tabs =
+ .label = ééå¤ååé åè·æç¢ºèª
+ .accesskey = m
+# This string is used for the confirm before quitting preference.
+# Variables:
+# $quitKey (String) - the quit keyboard shortcut, and formatted
+# in the same manner as it would appear,
+# for example, in the File menu.
+confirm-on-quit-with-key =
+ .label = æ { $quitKey } é¢éä¹åè·æç¢ºèª
+ .accesskey = b
+warn-on-open-many-tabs =
+ .label = éåå¤ååé æï¼è¦åæå¯è½æææ
¢ { -brand-short-name }
+ .accesskey = d
+switch-to-new-tabs =
+ .label = ç¨æ°åé éåéçµãåçæåªé«å
§å®¹å¾ï¼èªååæè³è©²åé
+ .accesskey = h
+show-tabs-in-taskbar =
+ .label = å¨ Windows å·¥ä½å顯示åé é 覽å
+ .accesskey = k
+browser-containers-enabled =
+ .label = éå容å¨åé
+ .accesskey = n
+browser-containers-learn-more = äºè§£æ´å¤
+browser-containers-settings =
+ .label = è¨å®â¦
+ .accesskey = i
+containers-disable-alert-title = è¦é鿿容å¨åé åï¼
+containers-disable-alert-desc = è¥æ¨ç¾å¨åç¨å®¹å¨åé ï¼å°éé { $tabCount } ååé ãæ¨ççè¦åç¨å®¹å¨åé åï¼
+containers-disable-alert-ok-button = éé { $tabCount } å容å¨åé
+containers-disable-alert-cancel-button = ä¿æéå
+containers-remove-alert-title = è¦ç§»é¤éå容å¨åï¼
+# Variables:
+# $count (Number) - Number of tabs that will be closed.
+containers-remove-alert-msg = è¥æ¨ç¾å¨ç§»é¤æ¤å®¹å¨ï¼å°éé { $count } å容å¨åé ãæ¨ç¢ºå®è¦ç§»é¤æ¤å®¹å¨åï¼
+containers-remove-ok-button = ç§»é¤æ¤å®¹å¨
+containers-remove-cancel-button = ä¸è¦ç§»é¤æ¤å®¹å¨
+
+## General Section - Language & Appearance
+
+language-and-appearance-header = èªè¨èå¤è§
+fonts-and-colors-header = ååèè²å½©
+default-font = é è¨åå
+ .accesskey = D
+default-font-size = 大å°
+ .accesskey = S
+advanced-fonts =
+ .label = é²éâ¦
+ .accesskey = A
+colors-settings =
+ .label = è²å½©â¦
+ .accesskey = C
+# Zoom is a noun, and the message is used as header for a group of options
+preferences-zoom-header = 縮æ¾
+preferences-default-zoom = é è¨ç¸®æ¾æ¯ä¾
+ .accesskey = z
+preferences-default-zoom-value =
+ .label = { $percentage }%
+preferences-zoom-text-only =
+ .label = åªç¸®æ¾æå
+ .accesskey = t
+language-header = èªè¨
+choose-language-description = è«é¸æçè¦½æ¯æ´å¤åèªè¨çç¶²é æè¦åªå
顯示åªç¨®èªè¨
+choose-button =
+ .label = 鏿â¦
+ .accesskey = o
+choose-browser-language-description = è«é¸æ { -brand-short-name } è¦ç¨ä¾é¡¯ç¤ºé¸å®ãä»é¢è¨æ¯ä»¥åéç¥å
§å®¹çèªè¨ã
+manage-browser-languages-button =
+ .label = è¨å®å
¶ä»èªè¨â¦
+ .accesskey = l
+confirm-browser-language-change-description = éæ°åå { -brand-short-name } ä¾å¥ç¨è®æ´
+confirm-browser-language-change-button = å¥ç¨ä¸¦éæ°åå
+translate-web-pages =
+ .label = ç¿»è¯ç¶²é å
§å®¹
+ .accesskey = T
+fx-translate-web-pages = { -translations-brand-name }
+# The
element is replaced by the logo of the provider
+# used to provide machine translations for web pages.
+translate-attribution = ç¿»è¯æåç±
æä¾
+translate-exceptions =
+ .label = ä¾å¤ç¶²ç«â¦
+ .accesskey = x
+# Variables:
+# $localeName (string) - Localized name of the locale to be used.
+use-system-locale =
+ .label = ä½¿ç¨æ¨ä½æ¥ç³»çµ±çã{ $localeName }ãèªç³»ä¾é¡¯ç¤ºæ¥æãæéãæ¸åãå®ä½ã
+check-user-spelling =
+ .label = æåæå³ææª¢æ¥æ¼å
+ .accesskey = t
+
+## General Section - Files and Applications
+
+files-and-applications-title = æªæ¡èæç¨ç¨å¼
+download-header = ä¸è¼
+download-save-to =
+ .label = å²åæªæ¡å°
+ .accesskey = v
+download-choose-folder =
+ .label =
+ { PLATFORM() ->
+ [macos] 鏿â¦
+ *[other] ç覽â¦
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [macos] e
+ *[other] o
+ }
+download-always-ask-where =
+ .label = æ¯æ¬¡é½åæ¨è¦åå°ä½è
+ .accesskey = A
+applications-header = æç¨ç¨å¼
+applications-description = 鏿 { -brand-short-name } è¦å¦ä½èçæ¨ä¸ç¶²æä¸è¼çæªæ¡ã
+applications-filter =
+ .placeholder = æå°æªæ¡é¡åææç¨ç¨å¼
+applications-type-column =
+ .label = å
§å®¹é¡å
+ .accesskey = t
+applications-action-column =
+ .label = åä½
+ .accesskey = A
+# Variables:
+# $extension (String) - file extension (e.g .TXT)
+applications-file-ending = { $extension } æªæ¡
+applications-action-save =
+ .label = å²åæªæ¡
+# Variables:
+# $app-name (String) - Name of an application (e.g Adobe Acrobat)
+applications-use-app =
+ .label = ä½¿ç¨ { $app-name } éå
+# Variables:
+# $app-name (String) - Name of an application (e.g Adobe Acrobat)
+applications-use-app-default =
+ .label = ä½¿ç¨ { $app-name } éåï¼é è¨ï¼
+applications-use-os-default =
+ .label =
+ { PLATFORM() ->
+ [macos] ä½¿ç¨ macOS é è¨æç¨ç¨å¼
+ [windows] ä½¿ç¨ Windows é è¨æç¨ç¨å¼
+ *[other] 使ç¨ç³»çµ±é è¨æç¨ç¨å¼
+ }
+applications-use-other =
+ .label = 使ç¨å
¶ä»ç¨å¼â¦
+applications-select-helper = é¸åå°æç¨å¼
+applications-manage-app =
+ .label = ç¨å¼è©³ç´°è³è¨â¦
+applications-always-ask =
+ .label = 總æ¯è©¢å
+# 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 = ä½¿ç¨ { $plugin-name } (å¨ { -brand-short-name } éå)
+applications-open-inapp =
+ .label = ç¨ { -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 = æ¸ä½æ¬å©ç®¡çï¼DRMï¼å
§å®¹
+play-drm-content =
+ .label = ææ¾ DRM å
§å®¹
+ .accesskey = P
+play-drm-content-learn-more = äºè§£æ´å¤
+update-application-title = { -brand-short-name } æ´æ°
+update-application-description = ä¿ææ´æ° { -brand-short-name }ï¼ç²å¾æä½³æè½ãç©©å®åº¦ä»¥åå®å
¨æ§ã
+update-application-version = { $version } ç æä»éº¼æ°é®®äº
+update-history =
+ .label = é¡¯ç¤ºæ´æ°ç´éâ¦
+ .accesskey = p
+update-application-allow-description = è® { -brand-short-name }:
+update-application-auto =
+ .label = èªåå®è£æ´æ°ï¼æ¨è¦ï¼
+ .accesskey = A
+update-application-check-choose =
+ .label = èªåæª¢æ¥æ´æ°ï¼ä½è®æ¨é¸æè¦ä¸è¦å®è£
+ .accesskey = C
+update-application-manual =
+ .label = ä¸è¦æª¢æ¥æ´æ°ï¼ä¸å»ºè°ï¼å¯è½ææå®å
¨æ§é¢¨éªï¼
+ .accesskey = N
+update-application-background-enabled =
+ .label = ç¶ { -brand-short-name } æªå·è¡æ
+ .accesskey = w
+update-application-warning-cross-user-setting = æ¤è¨å®å°å¥ç¨å°æ¬é»è
¦ä¸çææ Windows 帳è忤份 { -brand-short-name } çææ { -brand-short-name } è¨å®æªã
+update-application-use-service =
+ .label = å¨èæ¯æåç¶ä¸å®è£æ´æ°
+ .accesskey = b
+update-setting-write-failure-title2 = å²åæ´æ°è¨å®æç¼çé¯èª¤
+# Variables:
+# $path (String) - Path to the configuration file
+# The newlines between the main text and the line containing the path is
+# intentional so the path is easier to identify.
+update-setting-write-failure-message2 =
+ { -brand-short-name } éå°é¯èª¤ï¼ä¸¦æªå²åæ¤è®æ´ãè«æ³¨æ: èª¿æ´æ¤æ´æ°é¸é
ï¼éè¦è½å¤ 寫å
¥ä¸åæªæ¡çæ¬éãæ¨ææ¨ç系統管çå¡å¯ä»¥ééæäºä½¿ç¨è
æ¤æªæ¡ç宿´æ§å¶æ¬ï¼ä¾è§£æ±ºæ¬åé¡ã
+
+ ç¡æ³å¯«å
¥ä¸åæªæ¡: { $path }
+update-in-progress-title = æ´æ°ä¸
+update-in-progress-message = æ¨å¸æ { -brand-short-name } ä½¿ç¨æ¤æ´æ°ç¹¼çºåï¼
+update-in-progress-ok-button = æ¨æ£ (&D)
+# 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 = ç¹¼çº (&C)
+
+## General Section - Performance
+
+performance-title = æè½
+performance-use-recommended-settings-checkbox =
+ .label = ä½¿ç¨æ¨è¦çæè½è¨å®
+ .accesskey = U
+performance-use-recommended-settings-desc = éäºè¨å®æ¯æ ¹ææ¨é»è
¦ç硬é«è使¥ç³»çµ±æé身è¨åã
+performance-settings-learn-more = äºè§£æ´å¤
+performance-allow-hw-accel =
+ .label = å¯ç¨æéå硬é«å é
+ .accesskey = r
+performance-limit-content-process-option = å
§å®¹èçç¨åºæ¸ééå¶
+ .accesskey = L
+performance-limit-content-process-enabled-desc = 調é«å
§å®¹èçç¨åºçæ¸éï¼å¯æ¹åéåå¤ååé æçæè½ï¼ä½ä¹æä½¿ç¨æ´å¤è¨æ¶é«ã
+performance-limit-content-process-blocked-desc = å
è½å¨å¤ç¨åºç { -brand-short-name } ç¶ä¸ä¿®æ¹å
§å®¹èçç¨åºæ¸éãäºè§£å¦ä½ç¢ºèªå¤ç¨åºæ¨¡å¼æ¯å¦å·²éå
+# Variables:
+# $num - default value of the `dom.ipc.processCount` pref.
+performance-default-content-process-count =
+ .label = { $num }ï¼é è¨ï¼
+
+## General Section - Browsing
+
+browsing-title = ç覽
+browsing-use-autoscroll =
+ .label = 使ç¨èªåæ²å
+ .accesskey = a
+browsing-use-smooth-scrolling =
+ .label = 使ç¨å¹³æ»æ²å
+ .accesskey = m
+browsing-use-onscreen-keyboard =
+ .label = éè¦æé¡¯ç¤ºè§¸æ§éµç¤
+ .accesskey = k
+browsing-use-cursor-navigation =
+ .label = 總æ¯ä½¿ç¨éµç¤æ¹åéµç覽網é ï¼éµç¤ç覽ï¼
+ .accesskey = c
+browsing-search-on-start-typing =
+ .label = æåæç´æ¥æå°é 颿åï¼é¨æå³æ¾ï¼
+ .accesskey = x
+browsing-picture-in-picture-toggle-enabled =
+ .label = éåå½±ç忝ç«é¢ææ¾æ§å¶å
ä»¶
+ .accesskey = E
+browsing-picture-in-picture-learn-more = äºè§£æ´å¤
+browsing-media-control =
+ .label = 使ç¨éµç¤ãè³æ©æèæ¬ä»é¢æ§å¶åªé«å
§å®¹ææ¾è¡çº
+ .accesskey = V
+browsing-media-control-learn-more = äºè§£æ´å¤
+browsing-cfr-recommendations =
+ .label = 鍿¨ä¸ç¶²æ¨è¦æ´å
å¥ä»¶
+ .accesskey = R
+browsing-cfr-features =
+ .label = 鍿¨ä¸ç¶²æ¨è¦æ°åè½
+ .accesskey = f
+browsing-cfr-recommendations-learn-more = äºè§£æ´å¤
+
+## General Section - Proxy
+
+network-settings-title = 網路è¨å®
+network-proxy-connection-description = è¨å® { -brand-short-name } è¦å¦ä½é£ç·è³ç¶²é網路ã
+network-proxy-connection-learn-more = äºè§£æ´å¤
+network-proxy-connection-settings =
+ .label = è¨å®â¦
+ .accesskey = e
+
+## Home Section
+
+home-new-windows-tabs-header = æ°è¦çªèåé
+home-new-windows-tabs-description2 = 鏿éåé¦é ãæ°è¦çªåæ°åé æè¦çå°çå
§å®¹ã
+
+## Home Section - Home Page Customization
+
+home-homepage-mode-label = é¦é èæ°è¦çª
+home-newtabs-mode-label = æ°åé
+home-restore-defaults =
+ .label = å復çºé è¨å¼
+ .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 = Firefox é¦é ï¼é è¨å¼ï¼
+home-mode-choice-custom =
+ .label = èªè¨ç¶²åâ¦
+home-mode-choice-blank =
+ .label = 空ç½é
+home-homepage-custom-url =
+ .placeholder = è²¼ä¸ç¶²åâ¦
+# 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] 使ç¨ç®åé é¢
+ *[other] 使ç¨ç®åææé é¢
+ }
+ .accesskey = C
+choose-bookmark =
+ .label = ä½¿ç¨æ¸ç±¤â¦
+ .accesskey = B
+
+## Home Section - Firefox Home Content Customization
+
+home-prefs-content-header = Firefox é¦é å
§å®¹
+home-prefs-content-description = 鏿è¦å¨æ¨ç Firefox é¦é 顯示åªäºå
§å®¹ã
+home-prefs-search-header =
+ .label = ç¶²é æå°
+home-prefs-topsites-header =
+ .label = ç±éç¶²ç«
+home-prefs-topsites-description = æå¸¸é 訪çç¶²ç«
+home-prefs-topsites-by-option-sponsored =
+ .label = è´å©çç±éç¶²ç«
+home-prefs-shortcuts-header =
+ .label = æ·å¾
+home-prefs-shortcuts-description = æ¨å²åæé 訪éçç¶²ç«
+home-prefs-shortcuts-by-option-sponsored =
+ .label = è´å©æ·å¾
+
+## Variables:
+## $provider (String): Name of the corresponding content provider, e.g "Pocket".
+
+home-prefs-recommended-by-header =
+ .label = { $provider } æ¨è¦
+home-prefs-recommended-by-description-update = { $provider } æ´çæä¾ç網路精é¸å
§å®¹
+home-prefs-recommended-by-description-new = ç± { -brand-product-name } çå§å¦¹ä½ { $provider } ç²¾å¿çå±çå
§å®¹
+
+##
+
+home-prefs-recommended-by-learn-more = åçæ¯ä»éº¼
+home-prefs-recommended-by-option-sponsored-stories =
+ .label = è´å©å
§å®¹
+home-prefs-highlights-header =
+ .label = ç²¾é¸ç¶²ç«
+home-prefs-highlights-description = æ¨å²åæé 訪éçç¶²ç«ç²¾é¸
+home-prefs-highlights-option-visited-pages =
+ .label = é 訪éçé é¢
+home-prefs-highlights-options-bookmarks =
+ .label = æ¸ç±¤
+home-prefs-highlights-option-most-recent-download =
+ .label = ææ°ä¸è¼
+home-prefs-highlights-option-saved-to-pocket =
+ .label = å²åè³ { -pocket-brand-name } çé é¢
+home-prefs-recent-activity-header =
+ .label = è¿æåæ
+home-prefs-recent-activity-description = è¿æé 訪éçç¶²ç«èå
§å®¹ç²¾é¸
+# 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 = é»åçèª
+home-prefs-snippets-description = ä¾èª { -vendor-short-name } å { -brand-product-name } ç大å°äº
+home-prefs-snippets-description-new = ä¾èª { -vendor-short-name } å { -brand-product-name } ç使ç¨ç§è¨£èæ°è
+home-prefs-sections-rows-option =
+ .label = { $num } è¡
+
+## Search Section
+
+search-bar-header = æå°å
+search-bar-hidden =
+ .label = 使ç¨ç¶²ååæå°èä¸ç¶²
+search-bar-shown =
+ .label = å¨å·¥å
·åå å
¥æå°å
+search-engine-default-header = é è¨æå°å¼æ
+search-engine-default-desc-2 = 鿝æ¨å¨ç¶²ååèæå°åé²è¡æå°æï¼é è¨æä½¿ç¨çæå°å¼æãå¯ä»¥é¨æåæã
+search-engine-default-private-desc-2 = éå°é±ç§ç覽è¦çªé¸æä¸åçé è¨æå°å¼æ
+search-separate-default-engine =
+ .label = æ¼é±ç§ç覽è¦çªä½¿ç¨æ¤æå°å¼æ
+ .accesskey = U
+search-suggestions-header = æå°å»ºè°
+search-suggestions-desc = 鏿è¦å¦ä½é¡¯ç¤ºä¾èªæå°å¼æç建è°ã
+search-suggestions-option =
+ .label = æä¾æå°å»ºè°
+ .accesskey = s
+search-show-suggestions-url-bar-option =
+ .label = å¨ç¶²ååçµæä¸é¡¯ç¤ºæå°å»ºè°
+ .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 = å¨ç¶²åå顯示ççµæä¸ï¼å°æå°å»ºè°æ¾å¨ç覽ç´éåé¢
+search-show-suggestions-private-windows =
+ .label = æ¼é±ç§ç覽è¦çªä¸é¡¯ç¤ºæå°å»ºè°
+suggestions-addressbar-settings-generic2 = ä¿®æ¹å
¶ä»ç¶²åå建è°è¨å®
+search-suggestions-cant-show = ç±æ¼æ¨å·²ç¶è¨å® { -brand-short-name } ä¸è¦è¨ä½ç覽ç´éï¼ç¶²ååä¸å°ä¸æé¡¯ç¤ºå»ºè°æå°çµæã
+search-one-click-header2 = æå°å¿«ééµ
+search-one-click-desc = è«é¸æç¶æ¨å¨ç¶²ååææå°å輸å
¥ééµåæï¼å¯é¸ç¨çå
¶ä»æå°å¼æã
+search-choose-engine-column =
+ .label = æå°å¼æ
+search-choose-keyword-column =
+ .label = ééµå
+search-restore-default =
+ .label = éåé è¨æå°å¼æ
+ .accesskey = d
+search-remove-engine =
+ .label = ç§»é¤
+ .accesskey = r
+search-add-engine =
+ .label = æ°å¢
+ .accesskey = A
+search-find-more-link = å°æ¾æ´å¤æå°å¼æ
+# This warning is displayed when the chosen keyword is already in use
+# ('Duplicate' is an adjective)
+search-keyword-warning-title = ééµåéè¤
+# Variables:
+# $name (String) - Name of a search engine.
+search-keyword-warning-engine = æ¨é¸ç¨çééµåç®åæ£è¢«ã{ $name }ãæä½¿ç¨ï¼è«å¦é¸ä¸åã
+search-keyword-warning-bookmark = æ¨é¸ç¨çééµåç®åæ£è¢«æ¸ç±¤é
ç®æä½¿ç¨ï¼è«å¦é¸ä¸åã
+
+## Containers Section
+
+containers-back-button2 =
+ .aria-label = åå°é¸é
é é¢
+containers-header = 容å¨åé
+containers-add-button =
+ .label = æ°å¢å®¹å¨
+ .accesskey = A
+containers-new-tab-check =
+ .label = 鏿è¦åå¥ä½¿ç¨åªå容å¨ä¾éååé
+ .accesskey = S
+containers-settings-button =
+ .label = é¸é
+containers-remove-button =
+ .label = ç§»é¤
+
+## 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 = æ Web é¨èº«å¸¶èèµ°
+sync-signedout-description2 = 卿¨ææè£ç½®é忥æ¸ç±¤ãæ·å²ç´éãåé ãå¯ç¢¼ãéå å
ä»¶èå種é¸é
ã
+sync-signedout-account-signin3 =
+ .label = ç»å
¥é²è¡åæ¥â¦
+ .accesskey = i
+# This message contains two links and two icon images.
+# `
` - Android logo icon
+# `` - Link to Android Download
+# `
` - iOS logo icon
+# `` - Link to iOS Download
+#
+# They can be moved within the sentence as needed to adapt
+# to your language, but should not be changed or translated.
+sync-mobile-promo = ä¸è¼ Firefox for
Androidæ
iOSä»¥èæ¨çè¡åè£ç½®åæ¥ã
+
+## Firefox Account - Signed in
+
+sync-profile-picture =
+ .tooltiptext = æ´æ¹åäººè³æç
§ç
+sync-sign-out =
+ .label = ç»åºâ¦
+ .accesskey = g
+sync-manage-account = 管ç帳è
+ .accesskey = o
+sync-signedin-unverified = { $email } æªé©èã
+sync-signedin-login-failure = è«ç»å
¥ä»¥éæ°é£ç· { $email }
+sync-resend-verification =
+ .label = éå¯é©èä¿¡
+ .accesskey = d
+sync-remove-account =
+ .label = ç§»é¤å¸³è
+ .accesskey = p
+sync-sign-in =
+ .label = ç»å
¥
+ .accesskey = g
+
+## Sync section - enabling or disabling sync.
+
+prefs-syncing-on = 忥: éå
+prefs-syncing-off = 忥: éé
+prefs-sync-turn-on-syncing =
+ .label = éå忥â¦
+ .accesskey = s
+prefs-sync-offer-setup-label2 = 卿¨ææè£ç½®é忥æ¸ç±¤ãæ·å²ç´éãåé ãå¯ç¢¼ãéå å
ä»¶èå種é¸é
ã
+prefs-sync-now =
+ .labelnotsyncing = ç«å»åæ¥
+ .accesskeynotsyncing = N
+ .labelsyncing = 忥ä¸â¦
+
+## The list of things currently syncing.
+
+sync-currently-syncing-heading = æ¨ç®åæ£å¨åæ¥ä¸åé
ç®:
+sync-currently-syncing-bookmarks = æ¸ç±¤
+sync-currently-syncing-history = ç覽ç´é
+sync-currently-syncing-tabs = éååé
+sync-currently-syncing-logins-passwords = ç»å
¥è³è¨èå¯ç¢¼
+sync-currently-syncing-addresses = å°å
+sync-currently-syncing-creditcards = ä¿¡ç¨å¡è³æ
+sync-currently-syncing-addons = éå å
ä»¶
+sync-currently-syncing-settings = é¸é
+sync-change-options =
+ .label = ä¿®æ¹â¦
+ .accesskey = C
+
+## The "Choose what to sync" dialog.
+
+sync-choose-what-to-sync-dialog =
+ .title = 鏿è¦åæ¥åªäºè³æ
+ .style = width: 36em; min-height: 35em;
+ .buttonlabelaccept = å²åè®æ´
+ .buttonaccesskeyaccept = S
+ .buttonlabelextra2 = 䏿·é£ç·â¦
+ .buttonaccesskeyextra2 = D
+sync-engine-bookmarks =
+ .label = æ¸ç±¤
+ .accesskey = m
+sync-engine-history =
+ .label = ç覽ç´é
+ .accesskey = r
+sync-engine-tabs =
+ .label = éååé
+ .tooltiptext = ææåæ¥è¨åä¸ï¼éåçç¶²é æ¸
å®
+ .accesskey = T
+sync-engine-logins-passwords =
+ .label = ç»å
¥è³è¨èå¯ç¢¼
+ .tooltiptext = æ¨å²åç使ç¨è
å稱èå¯ç¢¼
+ .accesskey = L
+sync-engine-addresses =
+ .label = å°å
+ .tooltiptext = æ¨å²åç鵿¿å°åï¼å
æ¡æ©ï¼
+ .accesskey = e
+sync-engine-creditcards =
+ .label = ä¿¡ç¨å¡
+ .tooltiptext = å§åãå¡èåå°ææ¥ï¼å
æ¡æ©ï¼
+ .accesskey = C
+sync-engine-addons =
+ .label = éå å
ä»¶
+ .tooltiptext = Firefox æ¡æ©ççæ´å
å¥ä»¶è使¯ä¸»é¡
+ .accesskey = A
+sync-engine-settings =
+ .label = é¸é
+ .tooltiptext = æ¨èª¿æ´éçä¸è¬ãé±ç§æ¬èå®å
¨æ§é¸é
+ .accesskey = s
+
+## The device name controls.
+
+sync-device-name-header = è£ç½®å稱
+sync-device-name-change =
+ .label = æ´æ¹è£ç½®å稱â¦
+ .accesskey = h
+sync-device-name-cancel =
+ .label = åæ¶
+ .accesskey = n
+sync-device-name-save =
+ .label = å²å
+ .accesskey = v
+sync-connect-another-device = é£çµå
¶ä»è£ç½®
+
+## Privacy Section
+
+privacy-header = ç覽å¨é±ç§æ¬
+
+## 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 = ç»å
¥è³è¨èå¯ç¢¼
+ .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 = åæ¨è©¢åæ¯å¦è¦è¨ä½ç¶²ç«çç»å
¥å¸³èèå¯ç¢¼
+ .accesskey = r
+forms-exceptions =
+ .label = ä¾å¤ç¶²ç«â¦
+ .accesskey = x
+forms-generate-passwords =
+ .label = ç¢çå¼·å¯ç¢¼
+ .accesskey = u
+forms-breach-alerts =
+ .label = éå°ç¼çéè³æå¤æ´©çç¶²ç«é¡¯ç¤ºå¯ç¢¼è¦å
+ .accesskey = b
+forms-breach-alerts-learn-more-link = äºè§£æ´å¤
+# Checkbox which controls filling saved logins into fields automatically when they appear, in some cases without user interaction.
+forms-fill-logins-and-passwords =
+ .label = èªå填寫ç»å
¥è³è¨èå¯ç¢¼
+ .accesskey = i
+forms-saved-logins =
+ .label = å·²åç»å
¥è³è¨â¦
+ .accesskey = L
+forms-primary-pw-use =
+ .label = 使ç¨ä¸»æ§å¯ç¢¼
+ .accesskey = U
+forms-primary-pw-learn-more-link = äºè§£æ´å¤
+# 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 = è®æ´ä¸»æ§å¯ç¢¼â¦
+ .accesskey = M
+forms-primary-pw-change =
+ .label = è®æ´ä¸»æ§å¯ç¢¼â¦
+ .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 = æ¨ç®åä½¿ç¨ FIPS 模å¼ãFIPS 模å¼éè¦æä¸»æ§å¯ç¢¼ã
+forms-master-pw-fips-desc = å¯ç¢¼è®æ´å¤±æ
+forms-windows-sso =
+ .label = å
è¨±ä½¿ç¨ Windows å®ä¸ç»å
¥ç³»çµ±ï¼ç»å
¥å¾®è»ãå·¥ä½å®ä½ã叿 ¡æä¾ç帳è
+forms-windows-sso-learn-more-link = äºè§£æ´å¤
+forms-windows-sso-desc = å¯å°æ¨çè£ç½®è¨å®ç«é¢ç®¡ç帳è
+
+## OS Authentication dialog
+
+# This message can be seen by trying to add a Primary Password.
+primary-password-os-auth-dialog-message-win = è«å¨ä¸æ¹è¼¸å
¥æ¨ç Windows ç»å
¥å¸³èå¯ç¢¼æè½å»ºç«ä¸»æ§å¯ç¢¼ãéåå使¯çºäºä¿è·æ¨çç»å
¥è³è¨å®å
¨ã
+# 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 = 建ç«ä¸»æ§å¯ç¢¼
+master-password-os-auth-dialog-caption = { -brand-full-name }
+
+## Privacy Section - History
+
+history-header = ç覽ç´é
+# 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 } å°
+ .accesskey = w
+history-remember-option-all =
+ .label = ä¿çæææ·å²è¨é
+history-remember-option-never =
+ .label = ä¸ä¿çæ·å²è¨é
+history-remember-option-custom =
+ .label = 使ç¨èªè¨çè¨å®
+history-remember-description = { -brand-short-name } å°è¨ä½æ¨çç覽ãä¸è¼ã表å®å¡«å¯«èæå°ç´éã
+history-dontremember-description = { -brand-short-name } 䏿å²åä»»ä½ç覽è¨éï¼å¦åå¨é±ç§ç覽çæ
ä¸å·è¡ã
+history-private-browsing-permanent =
+ .label = 總æ¯ä½¿ç¨é±ç§ç覽模å¼
+ .accesskey = p
+history-remember-browser-option =
+ .label = ä¿çç覽èä¸è¼è¨é
+ .accesskey = b
+history-remember-search-option =
+ .label = ä¿çæçæå°åè表å®è¼¸å
¥çå
§å®¹
+ .accesskey = f
+history-clear-on-close-option =
+ .label = çµæ { -brand-short-name } ææ¸
餿·å²è¨é
+ .accesskey = r
+history-clear-on-close-settings =
+ .label = è¨å®â¦
+ .accesskey = t
+history-clear-button =
+ .label = æ¸
é¤ç覽è¨éâ¦
+ .accesskey = s
+
+## Privacy Section - Site Data
+
+sitedata-header = Cookie èç¶²ç«è³æ
+sitedata-total-size-calculating = æ£å¨è¨ç®ç¶²ç«è³æèå¿«å大å°â¦
+# 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ãç¶²ç«è³æèå¿«åç®å使ç¨äº { $value } { $unit } ç£ç¢ç©ºé
+sitedata-learn-more = äºè§£æ´å¤
+sitedata-delete-on-close =
+ .label = éé { -brand-short-name } ææ¸
é¤ Cookie èç¶²ç«è³æ
+ .accesskey = C
+sitedata-delete-on-close-private-browsing = 卿°¸ä¹
é±ç§ç覽模å¼ä¸ï¼æ¯æ¬¡éé { -brand-short-name } æå°±ææ¸
é¤ Cookie èç¶²ç«è³æã
+sitedata-allow-cookies-option =
+ .label = å
許網ç«è¨å® Cookie èç¶²ç«è³æ
+ .accesskey = A
+sitedata-disallow-cookies-option =
+ .label = å°é Cookie èç¶²ç«è³æ
+ .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 = è¦å°éçé¡å
+ .accesskey = T
+sitedata-option-block-cross-site-trackers =
+ .label = 跨網ç«è¿½è¹¤å¨
+sitedata-option-block-cross-site-and-social-media-trackers =
+ .label = 跨網ç«è社交åªé«è¿½è¹¤å¨
+sitedata-option-block-cross-site-tracking-cookies-including-social-media =
+ .label = 跨網ç«è¿½è¹¤ Cookie â å
å«ç¤¾äº¤åªé« Cookie
+sitedata-option-block-cross-site-cookies-including-social-media =
+ .label = è·¨ç¶²ç« Cookie â å
å«ç¤¾äº¤åªé« Cookie
+sitedata-option-block-cross-site-and-social-media-trackers-plus-isolate =
+ .label = 跨網ç«è社交åªé«è¿½è¹¤å¨ï¼ä¸¦éé¢å©é¤ç Cookie
+sitedata-option-block-unvisited =
+ .label = ä¾èªæªé 訪éç¶²ç«ç Cookie
+sitedata-option-block-all-third-party =
+ .label = ææç¬¬ä¸æ¹ Cookieï¼å¯è½é ææäºç¶²ç«ä¸æ£å¸¸ï¼
+sitedata-option-block-all =
+ .label = ææ Cookieï¼æé æç¶²ç«ä¸æ£å¸¸ï¼
+sitedata-clear =
+ .label = æ¸
é¤è³æâ¦
+ .accesskey = l
+sitedata-settings =
+ .label = 管çè³æâ¦
+ .accesskey = M
+sitedata-cookies-exceptions =
+ .label = 管çä¾å¤ç¶²ç«â¦
+ .accesskey = X
+
+## Privacy Section - Address Bar
+
+addressbar-header = ç¶²åå
+addressbar-suggest = å¨ä½¿ç¨ç¶²ååææä¾å»ºè°
+addressbar-locbar-history-option =
+ .label = ç覽ç´é
+ .accesskey = H
+addressbar-locbar-bookmarks-option =
+ .label = æ¸ç±¤
+ .accesskey = k
+addressbar-locbar-openpage-option =
+ .label = éååé
+ .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 = æ·å¾
+ .accesskey = S
+addressbar-locbar-topsites-option =
+ .label = ç±éç¶²ç«
+ .accesskey = T
+addressbar-locbar-engines-option =
+ .label = æå°å¼æ
+ .accesskey = a
+addressbar-suggestions-settings = ä¿®æ¹æå°å»ºè°å好è¨å®
+
+## Privacy Section - Content Blocking
+
+content-blocking-enhanced-tracking-protection = å å¼·å追蹤ä¿è·
+content-blocking-section-top-level-description = è¿½è¹¤å¨æå¨ç¶²è·¯ä¸è·è¹¤æ¨ï¼æ¶éæ¨çèè¶£èå好ã{ -brand-short-name } æå°é許å¤è¿½è¹¤å¨èå
¶ä»æå®³æä»¤ç¢¼ã
+content-blocking-learn-more = äºè§£æ´å¤
+content-blocking-fpi-incompatibility-warning = æ¨å·²éåç¬¬ä¸æ¹éé¢ï¼FPIï¼åè½ï¼æèæ { -brand-short-name } çæäº Cookie è¨å®ã
+
+## 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 = æ¨æº
+ .accesskey = d
+enhanced-tracking-protection-setting-strict =
+ .label = å´æ ¼
+ .accesskey = r
+enhanced-tracking-protection-setting-custom =
+ .label = èªè¨
+ .accesskey = C
+
+##
+
+content-blocking-etp-standard-desc = å
¼é¡§ä¿è·èæè½ãç¶²ç«å¯æ£å¸¸éä½ã
+content-blocking-etp-strict-desc = ä¿è·æ´å¼·å¤§ï¼ä½å¯è½æå°è´æäºç¶²ç«æå
§å®¹æ
éã
+content-blocking-etp-custom-desc = 鏿è¦å°éåªäºè¿½è¹¤å¨èæä»¤ç¢¼ã
+content-blocking-etp-blocking-desc = { -brand-short-name } å°éä¸åé
ç®:
+content-blocking-private-windows = é±ç§è¦çªä¸ç追蹤å
§å®¹
+content-blocking-cross-site-cookies-in-all-windows = ææè¦çªä¸çè·¨ç¶²ç« Cookieï¼å
å«è¿½è¹¤ç¨ Cookieï¼
+content-blocking-cross-site-tracking-cookies = 跨網ç«è¿½è¹¤ Cookie
+content-blocking-all-cross-site-cookies-private-windows = é±ç§è¦çªä¸çè·¨ç¶²ç« Cookie
+content-blocking-cross-site-tracking-cookies-plus-isolate = 跨網ç«è¿½è¹¤ Cookieï¼ä¸¦éé¢å©é¤ç Cookie
+content-blocking-social-media-trackers = 社交åªé«è¿½è¹¤å¨
+content-blocking-all-cookies = ææ Cookie
+content-blocking-unvisited-cookies = ä¾èªæªé 訪éç¶²ç«ç Cookie
+content-blocking-all-windows-tracking-content = ææè¦çªä¸ç追蹤å
§å®¹
+content-blocking-all-third-party-cookies = ææç¬¬ä¸æ¹ Cookie
+content-blocking-cryptominers = å å¯è²¨å¹£æ¡ç¤¦ç¨å¼
+content-blocking-fingerprinters = æ¸ä½æç´è¿½è¹¤ç¨å¼
+# "Test pilot" is used as a verb. Possible alternatives:
+# "Be the first to try", "Join an early experiment".
+content-blocking-etp-standard-tcp-rollout-checkbox =
+ .label = è©¦ç¨æåæå²ä»¥ä¾æå¼·å¤§çé±ç§ä¿è·åè½
+ .accesskey = T
+# "Contains" here means "isolates", "limits".
+content-blocking-etp-standard-tcp-rollout-description = å
¨æ¹ä½ Cookie ä¿è·åè½æå° Cookie éå¶æ¼æ¨æå¨çç¶²ç«ç¶ä¸ï¼é樣追蹤å¨å°±ç¡æ³éé Cookie å¨ä¸åç¶²ç«é追蹤æ¨ã
+content-blocking-etp-standard-tcp-rollout-learn-more = äºè§£æ´å¤
+content-blocking-warning-title = 注æï¼
+content-blocking-and-isolating-etp-warning-description = å°é追蹤å¨ä¸¦éé¢ Cookie å¯è½æé ææäºç¶²ç«éä½ä¸æ£å¸¸ãéæ°è¼å
¥å«æè¿½è¹¤å¨çé é¢å³å¯è¼å
¥ææå
§å®¹ã
+content-blocking-and-isolating-etp-warning-description-2 = æ¤è¨å®å¯è½æé ææäºç¶²ç«ç¡æ³é¡¯ç¤ºå
§å®¹ææ£å¸¸éä½ãè¥ç¶²ç«éä½ä¸æ£å¸¸ï¼æ¨å¯è½ææ³è¦å°è©²ç¶²ç«éæè¿½è¹¤ä¿è·åè½ï¼è¼å
¥å®æ´å
§å®¹ã
+content-blocking-warning-learn-how = äºè§£è¦æéº¼å
+content-blocking-reload-description = éè¦éæ°è¼å
¥åé æè½å¥ç¨è®æ´ã
+content-blocking-reload-tabs-button =
+ .label = éæ°è¼å
¥ææåé
+ .accesskey = R
+content-blocking-tracking-content-label =
+ .label = 追蹤ç¨å
§å®¹
+ .accesskey = T
+content-blocking-tracking-protection-option-all-windows =
+ .label = ææè¦çª
+ .accesskey = A
+content-blocking-option-private =
+ .label = å
å¨é±ç§ç覽è¦çª
+ .accesskey = p
+content-blocking-tracking-protection-change-block-list = è®æ´å°éæ¸
å®
+content-blocking-cookies-label =
+ .label = Cookie
+ .accesskey = C
+content-blocking-expand-section =
+ .tooltiptext = æ´å¤è³è¨
+# 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 = å å¯è²¨å¹£æ¡ç¤¦ç¨å¼
+ .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 = æ¸ä½æç´è¿½è¹¤ç¨å¼
+ .accesskey = F
+
+## Privacy Section - Tracking
+
+tracking-manage-exceptions =
+ .label = 管çä¾å¤ç¶²ç«â¦
+ .accesskey = x
+
+## Privacy Section - Permissions
+
+permissions-header = æ¬é
+permissions-location = ä½ç½®
+permissions-location-settings =
+ .label = è¨å®â¦
+ .accesskey = l
+permissions-xr = èæ¬å¯¦å¢
+permissions-xr-settings =
+ .label = è¨å®â¦
+ .accesskey = t
+permissions-camera = æå½±æ©
+permissions-camera-settings =
+ .label = è¨å®â¦
+ .accesskey = c
+permissions-microphone = 麥å
風
+permissions-microphone-settings =
+ .label = è¨å®â¦
+ .accesskey = m
+permissions-notification = éç¥
+permissions-notification-settings =
+ .label = è¨å®â¦
+ .accesskey = n
+permissions-notification-link = äºè§£æ´å¤
+permissions-notification-pause =
+ .label = æ«åéç¥å° { -brand-short-name } éæ°ååå¾
+ .accesskey = n
+permissions-autoplay = èªåææ¾
+permissions-autoplay-settings =
+ .label = è¨å®â¦
+ .accesskey = t
+permissions-block-popups =
+ .label = å°éå½åºåè¦çª
+ .accesskey = B
+permissions-block-popups-exceptions =
+ .label = ä¾å¤ç¶²ç«â¦
+ .accesskey = E
+# "popup" is a misspelling that is more popular than the correct spelling of
+# "pop-up" so it's included as a search keyword, not displayed in the UI.
+permissions-block-popups-exceptions-button =
+ .label = ä¾å¤ç¶²ç«â¦
+ .accesskey = e
+ .searchkeywords = popups å½åº è¦çª
+permissions-addon-install-warning =
+ .label = ç¶ç¶²ç«å試å®è£éå å
ä»¶æè¦åæ¨
+ .accesskey = W
+permissions-addon-exceptions =
+ .label = ä¾å¤ç¶²ç«â¦
+ .accesskey = E
+
+## Privacy Section - Data Collection
+
+collection-header = { -brand-short-name } è³ææ¶éè使ç¨
+collection-description = æåè´åæ¼æä¾æ¨é¸æï¼ä¹åªææ¶éæå卿ä¾èæ¹å { -brand-short-name } ææå¿
éçè³æãæåä¹ä¸å®æç¶éæ¨çåæææ¶éæ¨çå人è³è¨ã
+collection-privacy-notice = é±ç§æ¬å
Œ
+collection-health-report-telemetry-disabled = å°ä¸åå
許 { -vendor-short-name } æææè¡èäºåè³æï¼ä¹åæ¶éçè³æå°æ¼ 30 天å
§åªé¤ã
+collection-health-report-telemetry-disabled-link = äºè§£æ´å¤
+collection-health-report =
+ .label = å
許 { -brand-short-name } å³éæè¡èäºåè³æçµ¦ { -vendor-short-name }
+ .accesskey = r
+collection-health-report-link = æ´å¤è³è¨
+collection-studies =
+ .label = å
許 { -brand-short-name } å®è£ä¸¦é²è¡ç ç©¶
+collection-studies-link = æª¢è¦ { -brand-short-name } æé²è¡çç ç©¶
+addon-recommendations =
+ .label = å
許 { -brand-short-name } æä¾å人åçæ´å
å¥ä»¶æ¨è¦é
ç®
+addon-recommendations-link = äºè§£æ´å¤
+# This message is displayed above disabled data sharing options in developer builds
+# or builds with no Telemetry support available.
+collection-health-report-disabled = é²è¡ç·¨è¯è¨å®æï¼å·²åç¨äºè³æåå ±åè½
+collection-backlogged-crash-reports-with-link = å
許 { -brand-short-name } 以æ¨ç身åèªååå ±é¯èª¤å ±åäºè§£æ´å¤è³è¨
+ .accesskey = c
+
+## 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 = å®å
¨æ§
+security-browsing-protection = è©é¨å
§å®¹èå±éªç¶²ç«ä¿è·
+security-enable-safe-browsing =
+ .label = å°éå±éªåè©é¨å
§å®¹
+ .accesskey = B
+security-enable-safe-browsing-link = äºè§£æ´å¤
+security-block-downloads =
+ .label = å°éå±éªçä¸è¼é
ç®
+ .accesskey = D
+security-block-uncommon-software =
+ .label = ä¸è¼ä¸å®å
¨æä¸å¸¸è¦çè»é«æè¦åæ¨
+ .accesskey = C
+
+## Privacy Section - Certificates
+
+certs-header = æè
+certs-enable-ocsp =
+ .label = å OCSP åæä¼ºæå¨æ¥è©¢ï¼ä»¥ç¢ºèªæèæææ§
+ .accesskey = Q
+certs-view =
+ .label = æª¢è¦æèâ¦
+ .accesskey = C
+certs-devices =
+ .label = å®å
¨æ§è£ç½®â¦
+ .accesskey = D
+space-alert-over-5gb-settings-button =
+ .label = éåé¸é
+ .accesskey = O
+space-alert-over-5gb-message2 = { -brand-short-name } çç£ç¢ç©ºéä¸è¶³ãç¶²ç«å
§å®¹å¯è½ç¡æ³æ£ç¢ºé¡¯ç¤ºãæ¨å¯ä»¥å°ãé¸é
> é±ç§æ¬èå®å
¨æ§ > Cookie èç¶²ç«è³æãæ¸
é¤ç®åå²åçç¶²ç«è³æã
+space-alert-under-5gb-message2 = { -brand-short-name } çç£ç¢ç©ºéä¸è¶³ãç¶²ç«å
§å®¹å¯è½ç¡æ³æ£ç¢ºé¡¯ç¤ºãè«é»æãçè§£æ´å¤ãæ¸
çç£ç¢ç©ºéï¼è®æ¨ææ´å¥½çç覽é«é©ã
+
+## Privacy Section - HTTPS-Only
+
+httpsonly-header = ç´ HTTPS 模å¼
+httpsonly-description = HTTPS è®æ¨èè¦é 訪çç¶²ç«éï¼è½å¤ æå®å
¨èå å¯éçé£ç·ã大é¨åçç¶²ç«é½æ¯æ´ HTTPSï¼éåç´ HTTPS 模å¼å¾ï¼{ -brand-short-name } å°±æå°ææçé£ç·é½åç´çº HTTPS é£ç·ã
+httpsonly-learn-more = äºè§£æ´å¤
+httpsonly-radio-enabled =
+ .label = 卿æè¦çªé½éåç´ HTTPS 模å¼
+httpsonly-radio-enabled-pbm =
+ .label = å
å¨é±ç§ç覽è¦çªéåç´ HTTPS 模å¼
+httpsonly-radio-disabled =
+ .label = ä¸éåç´ HTTPS 模å¼
+
+## The following strings are used in the Download section of settings
+
+desktop-folder-name = æ¡é¢
+downloads-folder-name = ä¸è¼
+choose-download-folder-title = é¸åä¸è¼ç®é:
+# Variables:
+# $service-name (String) - Name of a cloud storage provider like Dropbox, Google Drive, etc...
+save-files-to-cloud-storage =
+ .label = å²åæªæ¡å° { $service-name }
diff --git a/browser/browser/preferences/selectBookmark.ftl b/browser/browser/preferences/selectBookmark.ftl
new file mode 100644
index 00000000000..b9f1d0e2563
--- /dev/null
+++ b/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 = è¨å®é¦é
+ .style = width: 32em;
+
+select-bookmark-desc = è«é¸æè¦è¨çºé¦é çæ¸ç±¤ï¼å¦ææ¨é¸äºä¸åè³æå¤¾ï¼é£å
¶ä¸çæ¸ç±¤æç¨åé åæéåã
diff --git a/browser/browser/preferences/siteDataSettings.ftl b/browser/browser/preferences/siteDataSettings.ftl
new file mode 100644
index 00000000000..0979f08d13e
--- /dev/null
+++ b/browser/browser/preferences/siteDataSettings.ftl
@@ -0,0 +1,67 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Settings
+
+site-data-settings-window =
+ .title = 管ç Cookie èç¶²ç«è³æ
+
+site-data-settings-description = ä¸åç¶²ç«å¨æ¨çé»è
¦ä¸å²åäº Cookie åç¶²ç«è³æã{ -brand-short-name } æå°ä¾èªéäºç¶²ç«çè³æä¿çæ¼æçºæ§å²å空éï¼å°æ¨ä¸»ååªé¤çºæ¢ã乿å¨éè¦ç£ç¢ç©ºéæï¼å°±åªé¤ä¿çæ¼éæçºæ§å²å空éçè³æã
+
+site-data-search-textbox =
+ .placeholder = æå°ç¶²ç«
+ .accesskey = S
+
+site-data-column-host =
+ .label = ç¶²ç«
+site-data-column-cookies =
+ .label = Cookie
+site-data-column-storage =
+ .label = å²å空é
+site-data-column-last-used =
+ .label = 䏿¬¡ä½¿ç¨
+
+# This label is used in the "Host" column for local files, which have no host.
+site-data-local-file-host = (æ¬æ©æªæ¡)
+
+site-data-remove-selected =
+ .label = ç§»é¤é¸æé
ç®
+ .accesskey = r
+
+site-data-settings-dialog =
+ .buttonlabelaccept = å²åè®æ´
+ .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 }ï¼æçºï¼
+
+site-data-remove-all =
+ .label = ç§»é¤å
¨é¨
+ .accesskey = e
+
+site-data-remove-shown =
+ .label = ç§»é¤å
¨é¨é¡¯ç¤ºé
ç®
+ .accesskey = e
+
+## Removing
+
+site-data-removing-dialog =
+ .title = { site-data-removing-header }
+ .buttonlabelaccept = ç§»é¤
+
+site-data-removing-header = ç§»é¤ Cookie èç¶²ç«è³æ
+
+site-data-removing-desc = ç§»é¤ Cookie èç¶²ç«è³æå¾ï¼å¯è½æå°æ¨å¾å¤§é¨åç¶²ç«ç»åºã確å®è¦ç§»é¤åï¼
+
+# Variables:
+# $baseDomain (String) - The single domain for which data is being removed
+site-data-removing-single-desc = ç§»é¤ Cookie èç¶²ç«è³æå¾ï¼å¯è½æå°æ¨å¾å¤§é¨åç¶²ç«ç»åºã確å®è¦ç§»é¤ä¾èª { $baseDomain } ç Cookie èç¶²ç«è³æåï¼
+
+site-data-removing-table = å°ç§»é¤ä¸åç¶²ç«ç Cookie èç¶²ç«è³æ
diff --git a/browser/browser/preferences/translation.ftl b/browser/browser/preferences/translation.ftl
new file mode 100644
index 00000000000..61819c28f65
--- /dev/null
+++ b/browser/browser/preferences/translation.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/.
+
+translation-window =
+ .title = ä¾å¤ - ç¿»è¯
+ .style = width: 36em
+
+translation-close-key =
+ .key = w
+
+translation-languages-disabled-desc = ä¸å°ä¸åèªè¨é²è¡ç¿»è¯
+
+translation-languages-column =
+ .label = èªè¨
+
+translation-languages-button-remove =
+ .label = ç§»é¤èªè¨
+ .accesskey = R
+
+translation-languages-button-remove-all =
+ .label = ç§»é¤ææèªè¨
+ .accesskey = e
+
+translation-sites-disabled-desc = ä¸å°ä¸åç¶²ç«é²è¡ç¿»è¯
+
+translation-sites-column =
+ .label = ç¶²ç«
+
+translation-sites-button-remove =
+ .label = ç§»é¤ç¶²ç«
+ .accesskey = S
+
+translation-sites-button-remove-all =
+ .label = ç§»é¤å
¨é¨ç¶²ç«
+ .accesskey = i
+
+translation-dialog =
+ .buttonlabelaccept = éé
+ .buttonaccesskeyaccept = C
diff --git a/browser/browser/protections.ftl b/browser/browser/protections.ftl
new file mode 100644
index 00000000000..ad794ccad7e
--- /dev/null
+++ b/browser/browser/protections.ftl
@@ -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/.
+
+# Variables:
+# $count (Number) - Number of tracking events blocked.
+graph-week-summary =
+ { $count ->
+ *[other] éå»ä¸é±ä¸ï¼{ -brand-short-name } å°éäº { $count } çµè¿½è¹¤å¨
+ }
+
+# 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] èª { DATETIME($earliestDate, day: "numeric", month: "long", year: "numeric") }èµ·ï¼å°éäº { $count } çµè¿½è¹¤å¨
+ }
+
+# Text displayed instead of the graph when in Private Mode
+graph-private-window = { -brand-short-name } æç¹¼çºå¨é±ç§ç覽è¦çªç¶ä¸å°é追蹤å¨ï¼ä½ä¸æå°å°éçé
ç®çä¸ç´éã
+# Weekly summary of the graph when the graph is empty in Private Mode
+graph-week-summary-private-window = { -brand-short-name } æ¬é±å°éç追蹤å¨
+
+protection-report-webpage-title = ä¿è·è³è¨åé¶æ¿
+protection-report-page-content-title = ä¿è·è³è¨åé¶æ¿
+# 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 } å¯å¨èæ¯ä¿è·æ¨çé±ç§ã以䏿¯éäºä¿è·çå人æè¦ï¼ä»¥åè½å¤ ç¨ä¾ä¿è·ç·ä¸å®å
¨æ§çå種工å
·ã
+# 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 } å¯å¨èæ¯ä¿è·æ¨çé±ç§ã以䏿¯éäºä¿è·çå人æè¦ï¼ä»¥åè½å¤ ç¨ä¾ä¿è·ç·ä¸å®å
¨æ§çå種工å
·ã
+
+protection-report-settings-link = ç®¡çæ¨çé±ç§æ¬èå®å
¨æ§è¨å®
+
+etp-card-title-always = å å¼·å追蹤ä¿è·: 總æ¯éå
+etp-card-title-custom-not-blocking = å å¼·å追蹤ä¿è·: éé
+etp-card-content-description = { -brand-short-name } æèªåå°éè®å¤§ä¼æ¥å¨ç¶²è·¯ä¸å·å·è·è¹¤æ¨çç¨å¼ã
+protection-report-etp-card-content-custom-not-blocking = ç®åå·²ééææä¿è·ãè«èª¿æ´ { -brand-short-name } ä¿è·è¨å®ï¼æ±ºå®è¦å°éåªäºé¡åç追蹤å¨ã
+protection-report-manage-protections = 管çè¨å®
+
+# 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 = ä»å¤©
+
+# This string is used to describe the graph for screenreader users.
+graph-legend-description = å¨éä¸é±ç¶ä¸å°éçåé¡å追蹤å¨ç總æ¸å表
+
+social-tab-title = 社交åªé«è¿½è¹¤å¨
+social-tab-contant = ç¤¾ç¾¤ç¶²ç«æå¨å
¶ä»ç¶²ç«æ¾ç½®è¿½è¹¤å¨ï¼ä»¥è¿½è¹¤æ¨é¤äºå¨ç¤¾ç¾¤ç¶²ç«åäº«çæ±è¥¿ä¹å¤ï¼éå¨ç¶²è·¯ä¸åäºæçäºä»éº¼ï¼æ´å äºè§£æ¨çä¸èä¸åãäºè§£æ´å¤
+
+cookie-tab-title = 跨網ç«è¿½è¹¤ Cookie
+cookie-tab-content = ä¸äºç¬¬ä¸æ¹å»£ååæåæå
¬å¸ï¼æè¨å®éäº Cookie å¨ä¸åç¶²ç«éè·è¹¤æ¨ï¼æ¶éæ¨çä¸ç¶²ç´éãå°ééäºè·¨ç¶²ç« Cookie 坿¸å°å¨ç¶²è·¯ä¸è·è¹¤æ¨ç廣åãäºè§£æ´å¤
+
+tracker-tab-title = 追蹤ç¨å
§å®¹
+tracker-tab-description = ç¶²ç«ä¸å¯è½ææå
å«è¿½è¹¤ç¢¼çå¤é¨å»£åãå½±çæå
¶ä»å
§å®¹ãå°é追蹤å
§å®¹å¯ä»¥è®ç¶²ç«æ´å¿«è¼å
¥ï¼ä½æäºæéã表å®ãç»å
¥æ¬ä½å¯è½ç¡æ³æ£å¸¸éä½ãäºè§£æ´å¤
+
+fingerprinter-tab-title = æ¸ä½æç´è¿½è¹¤ç¨å¼
+fingerprinter-tab-content = æ¸ä½æç´è¿½è¹¤ç¨å¼æéå°æ¨çç覽å¨ãé»è
¦è¨å®ä¾å»ºç«æ¨çç¨ç¹è¼ªå»ï¼ä¸¦å¨ä¸åç¶²ç«é追蹤æ¨ãäºè§£æ´å¤
+
+cryptominer-tab-title = å å¯è²¨å¹£æ¡ç¤¦ç¨å¼
+cryptominer-tab-content = å å¯è²¨å¹£æ¡ç¤¦ç¨å¼æä½¿ç¨æ¨é»è
¦çéç®è½åä¾å°æ¸ä½è²¨å¹£ãæ¡ç¤¦ãï¼æ¶èæ¨çé»è
¦é»åãææ
¢ç³»çµ±æè½ãå¢å é»è²»æ¯åºãäºè§£æ´å¤
+
+protections-close-button2 =
+ .aria-label = éé
+ .title = éé
+
+mobile-app-title = 卿´å¤è£ç½®ä¸ä¹è½å°é廣å追蹤å¨
+mobile-app-card-content = 使ç¨å
§å»ºå»£å追蹤ä¿è·çè¡åç覽å¨
+mobile-app-links = { -brand-product-name } çè¦½å¨ Android çè iOS ç
+
+lockwise-title = ä¸åå¿è¨å¯ç¢¼
+lockwise-title-logged-in2 = å¯ç¢¼ç®¡ç
+lockwise-header-content = { -lockwise-brand-name } æå®å
¨å°å¨æ¨çç覽å¨ä¸å²åå¯ç¢¼ã
+lockwise-header-content-logged-in = å®å
¨å°å²åå¯ç¢¼ï¼ä¸¦åæ¥å°æ¨çææè£ç½®ä¸ã
+protection-report-save-passwords-button = å²åå¯ç¢¼
+ .title = å°å¯ç¢¼å²åå° { -lockwise-brand-short-name }
+protection-report-manage-passwords-button = 管çå¯ç¢¼
+ .title = ç¨ { -lockwise-brand-short-name } 管çå¯ç¢¼
+lockwise-mobile-app-title = å¯ç¢¼é¨èº«å¸¶èèµ°
+lockwise-no-logins-card-content = å¨ä»»ä½è£ç½®ä¸ä½¿ç¨å²åå° { -brand-short-name } çå¯ç¢¼ã
+lockwise-app-links = Android è iOS çç { -lockwise-brand-name }
+
+# Variables:
+# $count (Number) - Number of passwords exposed in data breaches.
+lockwise-scanned-text-breached-logins =
+ { $count ->
+ *[other] æ { $count } çµå¯ç¢¼å¯è½å¨è³æå¤æ´©äºä»¶ä¸æ´©æ¼ã
+ }
+
+# 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] æ¨ç { $count } çµå¯ç¢¼é½å·²ç¶å®å
¨å°å²åä¸ä¾ã
+ }
+lockwise-how-it-works-link = åçæ¯ä»éº¼
+
+monitor-title = æª¢æ¥æ¯å¦ç¼çè³æå¤æ´©äºä»¶
+monitor-link = åçæ¯ä»éº¼
+monitor-header-content-no-account = ä½¿ç¨ { -monitor-brand-name } æª¢æ¥æ¨æ¯å¦èæ¼å·²ç¥çè³æå¤æ´©äºä»¶ä¹ä¸ï¼ä¸¦å¨ææ°äºä»¶ç¼çææ¶å°éç¥ã
+monitor-header-content-signed-in = è¥æ¨çè³è¨åºç¾å¨å·²ç¥çè³æå¤æ´©äºä»¶ä¸ï¼{ -monitor-brand-name } å°è¦åæ¨ã
+monitor-sign-up-link = è¨é±è³æå¤æ´©è¦å ±
+ .title = å° { -monitor-brand-name } è¨é±è³æå¤æ´©è¦å ±
+auto-scan = ä»å¤©èªåææé
+
+monitor-emails-tooltip =
+ .title = å° { -monitor-brand-short-name } 檢è¦é²è¡ç£æ§çé»åéµä»¶ä¿¡ç®±
+monitor-breaches-tooltip =
+ .title = å° { -monitor-brand-short-name } 檢è¦å·²ç¥çè³æå¤æ´©äºä»¶
+monitor-passwords-tooltip =
+ .title = å° { -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] çµç£æ§ä¸çé»åéµä»¶ä¿¡ç®±å°å
+ }
+
+# 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] å ´è³æå¤æ´©äºä»¶ï¼æµåºäºæ¨çåè³
+ }
+
+# 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] æ¨ç¤ºçºå·²è§£æ±ºçè³æå¤æ´©äºä»¶æ¸
+ }
+
+# 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] ææäºä»¶ä¸æ´©æ¼åºçå¯ç¢¼çµæ¸
+ }
+
+# 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] å°æªèççäºä»¶ä¸ï¼æ´©æ¼åºçå¯ç¢¼çµæ¸
+ }
+
+monitor-no-breaches-title = å¥½æ¶æ¯ï¼
+monitor-no-breaches-description = éæ²æéå°å·²ç¥çè³æå¤æ´©äºä»¶ãææ°äºä»¶ç¼çææåæéç¥æ¨ã
+monitor-view-report-link = 檢è¦å ±å
+ .title = å° { -monitor-brand-short-name } èçè³æå¤æ´©äºä»¶
+monitor-breaches-unresolved-title = èçéå°çè³æå¤æ´©äºä»¶
+monitor-breaches-unresolved-description = 確èªäºä»¶è©³ç´°è³è¨ä¸¦æ¡åè¡åä¿è·èªå·±çè³æå¾ï¼å°±å¯ä»¥å°äºä»¶æ¨ç¤ºçºãå·²èçãã
+monitor-manage-breaches-link = 管çè³æå¤æ´©äºä»¶
+ .title = å° { -monitor-brand-short-name } 管çè³æå¤æ´©äºä»¶
+monitor-breaches-resolved-title = çæ£ï¼ææå·²ç¥çè³æå¤æ´©äºä»¶é½èçå®äºã
+monitor-breaches-resolved-description = è¥æ¨çä¿¡ç®±åºç¾å¨æ°çè³æå¤æ´©äºä»¶ï¼æåæéç¥æ¨ã
+
+# 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 } å ´äºä»¶ï¼å
± { $numBreaches } å ´
+ }
+
+# Variables:
+# $percentageResolved (Number) - Percentage of breaches marked as resolved by a user on Monitor.
+monitor-partial-breaches-percentage = 宿 { $percentageResolved }%
+
+monitor-partial-breaches-motivation-title-start = 好çéå§ï¼
+monitor-partial-breaches-motivation-title-middle = ç¹¼çºä¿æï¼
+monitor-partial-breaches-motivation-title-end = å¿«å®æäºï¼ç¹¼çºä¿æï¼
+monitor-partial-breaches-motivation-description = å° { -monitor-brand-short-name } èçå
¶ä»çè³æå¤æ´©äºä»¶ã
+monitor-resolve-breaches-link = èçè³æå¤æ´©äºä»¶
+ .title = å° { -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 = 社交åªé«è¿½è¹¤å¨
+ .aria-label =
+ { $count ->
+ *[other] { $count } çµç¤¾äº¤åªé«è¿½è¹¤å¨ï¼{ $percentage }%ï¼
+ }
+bar-tooltip-cookie =
+ .title = 跨網ç«è¿½è¹¤ Cookie
+ .aria-label =
+ { $count ->
+ *[other] { $count } çµè·¨ç¶²ç«è¿½è¹¤ Cookieï¼{ $percentage }%ï¼
+ }
+bar-tooltip-tracker =
+ .title = 追蹤ç¨å
§å®¹
+ .aria-label =
+ { $count ->
+ *[other] { $count } çµè¿½è¹¤ç¨å
§å®¹ï¼{ $percentage }%ï¼
+ }
+bar-tooltip-fingerprinter =
+ .title = æ¸ä½æç´è¿½è¹¤ç¨å¼
+ .aria-label =
+ { $count ->
+ *[other] { $count } çµæ¸ä½æç´è¿½è¹¤ç¨å¼ï¼{ $percentage }%ï¼
+ }
+bar-tooltip-cryptominer =
+ .title = å å¯è²¨å¹£æ¡ç¤¦ç¨å¼
+ .aria-label =
+ { $count ->
+ *[other] { $count } çµå å¯è²¨å¹£æ¡ç¤¦ç¨å¼ï¼{ $percentage }%ï¼
+ }
diff --git a/browser/browser/protectionsPanel.ftl b/browser/browser/protectionsPanel.ftl
new file mode 100644
index 00000000000..ae72ac1fc30
--- /dev/null
+++ b/browser/browser/protectionsPanel.ftl
@@ -0,0 +1,113 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+protections-panel-sendreportview-error = åå ±æç¼çé¯èª¤ãè«ç¨å¾åè©¦ä¸æ¬¡ã
+
+# A link shown when ETP is disabled for a site. Opens the breakage report subview when clicked.
+protections-panel-sitefixedsendreport-label = ç¶²ç«æ£å¸¸äºåï¼è«åå ±è®æåç¥é
+
+## These strings are used to define the different levels of
+## Enhanced Tracking Protection.
+
+protections-popup-footer-protection-label-strict = å´æ ¼
+ .label = å´æ ¼
+protections-popup-footer-protection-label-custom = èªè¨
+ .label = èªè¨
+protections-popup-footer-protection-label-standard = æ¨æº
+ .label = æ¨æº
+
+##
+
+# The text a screen reader speaks when focused on the info button.
+protections-panel-etp-more-info =
+ .aria-label = éæ¼å å¼·å追蹤ä¿è·åè½çæ´å¤è³è¨
+
+protections-panel-etp-on-header = å·²éåéå°æ¤ç¶²ç«ç追蹤ä¿è·åè½ã
+protections-panel-etp-off-header = å·²éééå°æ¤ç¶²ç«çå å¼·å追蹤ä¿è·åè½
+
+# The link to be clicked to open the sub-panel view
+protections-panel-site-not-working = ç¶²ç«ç¡æ³æ£å¸¸éä½åï¼
+
+# The heading/title of the sub-panel view
+protections-panel-site-not-working-view =
+ .title = ç¶²ç«ç¡æ³æ£å¸¸éä½åï¼
+
+## 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 = çºä»éº¼ï¼
+protections-panel-not-blocking-why-etp-on-tooltip = å°ééäºé
ç®å¯è½æé ææäºç¶²ç«ä¸çå
ç´ ä¸æ£å¸¸ãè¥æ²æè¿½è¹¤å¨ï¼æäºæéã表å®ãç»å
¥æ¬ä½å¯è½ç¡æ³æ£å¸¸éä½ã
+protections-panel-not-blocking-why-etp-off-tooltip = ç±æ¼ééäºè¿½è¹¤ä¿è·åè½ï¼å·²æ¾è¡æ¬ç¶²ç«ä¸çææè¿½è¹¤å¨ã
+
+##
+
+protections-panel-no-trackers-found = { -brand-short-name } æªå¨æ¤é é¢åµæ¸¬å°å·²ç¥ç追蹤å¨ã
+
+protections-panel-content-blocking-tracking-protection = 追蹤ç¨å
§å®¹
+
+protections-panel-content-blocking-socialblock = 社交åªé«è¿½è¹¤å¨
+protections-panel-content-blocking-cryptominers-label = å å¯è²¨å¹£æ¡ç¤¦ç¨å¼
+protections-panel-content-blocking-fingerprinters-label = æ¸ä½æç´è¿½è¹¤ç¨å¼
+
+## 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 = å°é
+protections-panel-not-blocking-label = å
許
+protections-panel-not-found-label = æªåµæ¸¬å°
+
+##
+
+protections-panel-settings-label = ä¿è·è¨å®
+# This should match the "appmenuitem-protection-dashboard-title" string in browser/appmenu.ftl.
+protections-panel-protectionsdashboard-label = ä¿è·è³è¨åé¶æ¿
+
+## 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 = 妿ä¸ååè½åºç¾åé¡ï¼è«ééä¿è·:
+
+# The list items, shown in a
+protections-panel-site-not-working-view-issue-list-login-fields = ç»å
¥æ¬ä½
+protections-panel-site-not-working-view-issue-list-forms = 表å®
+protections-panel-site-not-working-view-issue-list-payments = 仿¬¾
+protections-panel-site-not-working-view-issue-list-comments = 註解
+protections-panel-site-not-working-view-issue-list-videos = å½±ç
+
+protections-panel-site-not-working-view-send-report = è«åå ±çµ¦æå
+
+##
+
+protections-panel-cross-site-tracking-cookies = ä¸äºç¬¬ä¸æ¹å»£ååæåæå
¬å¸ï¼æè¨å®éäº Cookie å¨ä¸åç¶²ç«éè·è¹¤æ¨ï¼æ¶éæ¨çä¸ç¶²ç´éã
+protections-panel-cryptominers = å å¯è²¨å¹£æ¡ç¤¦ç¨å¼æä½¿ç¨æ¨é»è
¦çéç®è½åä¾å°æ¸ä½è²¨å¹£ãæ¡ç¤¦ãï¼æ¶èæ¨çé»è
¦é»åãææ
¢ç³»çµ±æè½ãå¢å é»è²»æ¯åºã
+protections-panel-fingerprinters = æ¸ä½æç´è¿½è¹¤ç¨å¼æéå°æ¨çç覽å¨ãé»è
¦è¨å®ä¾å»ºç«æ¨çç¨ç¹è¼ªå»ï¼ä¸¦å¨ä¸åç¶²ç«é追蹤æ¨ã
+protections-panel-tracking-content = ç¶²ç«ä¸å¯è½ææå
å«è¿½è¹¤ç¢¼çå¤é¨å»£åãå½±çæå
¶ä»å
§å®¹ãå°é追蹤å
§å®¹å¯ä»¥è®ç¶²ç«æ´å¿«è¼å
¥ï¼ä½æäºæéã表å®ãç»å
¥æ¬ä½å¯è½ç¡æ³æ£å¸¸éä½ã
+protections-panel-social-media-trackers = ç¤¾ç¾¤ç¶²ç«æå¨å
¶ä»ç¶²ç«æ¾ç½®è¿½è¹¤å¨ï¼ä»¥è¿½è¹¤æ¨é¤äºå¨ç¤¾ç¾¤ç¶²ç«åäº«çæ±è¥¿ä¹å¤ï¼éå¨ç¶²è·¯ä¸åäºæçäºä»éº¼ï¼æ´å äºè§£æ¨çä¸èä¸åã
+
+protections-panel-description-shim-allowed = ç±æ¼æ¨å·²èæ¤é é¢ä¸çé¨å追蹤å¨äºåéï¼å·²è§£é¤å°éä¸åæ¨ç¤ºç追蹤å¨ã
+protections-panel-description-shim-allowed-learn-more = äºè§£æ´å¤
+protections-panel-shim-allowed-indicator =
+ .tooltiptext = é¨å追蹤å¨å·²è§£é¤å°é
+
+protections-panel-content-blocking-manage-settings =
+ .label = 管çä¿è·è¨å®
+ .accesskey = M
+
+protections-panel-content-blocking-breakage-report-view =
+ .title = åå ±ç¶²ç«åé¡
+protections-panel-content-blocking-breakage-report-view-description = å°éé¨å追蹤å¨å¾ï¼å¯è½æé ææäºç¶²ç«éä½ä¸æ£å¸¸ãåå ±åé¡å¯å¹«å©è®ææäººç { -brand-short-name } è®å¾æ´å¥½ãå°æåå ±ç¶²åèæ¨çç覽å¨ç¸éè¨å®çµ¦ Mozillaã
+protections-panel-content-blocking-breakage-report-view-collection-url = ç¶²å
+protections-panel-content-blocking-breakage-report-view-collection-url-label =
+ .aria-label = ç¶²å
+protections-panel-content-blocking-breakage-report-view-collection-comments = éå¿
å¡«: æè¿°å顿
æ³
+protections-panel-content-blocking-breakage-report-view-collection-comments-label =
+ .aria-label = éå¿
å¡«: æè¿°å顿
æ³
+protections-panel-content-blocking-breakage-report-view-cancel =
+ .label = åæ¶
+protections-panel-content-blocking-breakage-report-view-send-report =
+ .label = å³éå ±å
diff --git a/browser/browser/safeMode.ftl b/browser/browser/safeMode.ftl
new file mode 100644
index 00000000000..b9563eb5be4
--- /dev/null
+++ b/browser/browser/safeMode.ftl
@@ -0,0 +1,15 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+troubleshoot-mode-window =
+ .title = è¦ä½¿ç¨çé£æè§£æ¨¡å¼éå { -brand-short-name } åï¼
+ .style = max-width: 400px
+start-troubleshoot-mode =
+ .label = éå
+refresh-profile =
+ .label = éæ°æ´ç { -brand-short-name }
+troubleshoot-mode-description = è«ä½¿ç¨ { -brand-short-name } ç¹æ®ççé£æè§£æ¨¡å¼ä¾æª¢æ¥ç覽å¨çå種åé¡ãå°æ«æåç¨æ´å
å¥ä»¶èèªè¨è¨å®ã
+skip-troubleshoot-refresh-profile = æ¨ä¹å¯ä»¥ç¥éçé£æè§£æ¨¡å¼é䏿¥ï¼ç´æ¥éæ°æ´ç { -brand-short-name }ã
+# Shown on the safe mode dialog after multiple startup crashes.
+auto-safe-mode-description = { -brand-short-name } å¨ååææªé æå°ééäºãéå¯è½æ¯ç±éå å
ä»¶æå
¶ä»åé¡æé æçï¼æ¨å¯ä»¥è©¦è以å®å
¨æ¨¡å¼åå便é¤éååé¡ã
diff --git a/browser/browser/safebrowsing/blockedSite.ftl b/browser/browser/safebrowsing/blockedSite.ftl
new file mode 100644
index 00000000000..17a3951ba64
--- /dev/null
+++ b/browser/browser/safebrowsing/blockedSite.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+safeb-blocked-phishing-page-title = åæ¹æè©é¨ç¶²ç«ï¼
+safeb-blocked-malware-page-title = å徿¤ç¶²ç«å¯è½æå·å®³æ¨çé»è
¦
+safeb-blocked-unwanted-page-title = æ¤ç¶²ç«å¯è½å«ææ¡æè»é«
+safeb-blocked-harmful-page-title = æ¤ç¶²ç«å¯è½å«ææ¡æè»é«
+safeb-blocked-phishing-page-short-desc = å çºç¶²é ä¸çå
§å®¹å¯è½æèª¤å°æ¨å®è£æ¡æè»é«ï¼æè®æ¨æä¾å¯ç¢¼ãä¿¡ç¨å¡èçå人è³è¨ï¼{ -brand-short-name } å·²å°éæ¤é é¢ã
+safeb-blocked-malware-page-short-desc = å çºç¶²é ä¸çå
§å®¹å¯è½å試å®è£æå·èµ°æåªé¤æ¨é»è
¦ä¸åäººè³æçæ¡æè»é«ï¼{ -brand-short-name } å·²å°éæ¤é é¢ã
+safeb-blocked-unwanted-page-short-desc = æ¤é é¢å¯è½ææ
æè®æ¨å®è£æå·å®³ä¸ç¶²é«é©çç¨å¼ï¼ä¾å¦èªªä¿®æ¹æ¨çç覽å¨é¦é ãå½åºä¸æ³è¦ç廣åï¼ï¼{ -brand-short-name } å·²å°éæ¤é é¢ã
+safeb-blocked-harmful-page-short-desc = { -brand-short-name } å·²å°éæ¤é é¢è¼å
¥ï¼å çºé張網é å¯è½æå試å®è£å±éªç¨å¼ï¼ç¨ä¾å·ç«æåªé¤æ¨çè³è¨ï¼ä¾å¦ç¸çãå¯ç¢¼ãè¨æ¯ãä¿¡ç¨å¡èçï¼ã
+safeb-palm-advisory-desc = å
¬åå
§å®¹ç± { $advisoryname } æä¾ã
+safeb-palm-accept-label = åä¸ä¸é
+safeb-palm-see-details-label = 檢è¦è©³ç´°è³è¨
+safeb-blocked-phishing-page-error-desc-override = { $sitename } 已被åå ±çºè©é¨ç¶²ç«ãæ¨å¯ä»¥åå ±åµæ¸¬æèª¤ï¼ææ¯å¿½ç¥æ¤é¢¨éªä¸¦ç¹¼çºåå¾éåä¸å®å
¨çç¶²ç«ã
+safeb-blocked-phishing-page-error-desc-no-override = { $sitename } 已被åå ±çºå«æè©é¨ç¶²ç«ãæ¨å¯ä»¥åå ±åµæ¸¬æèª¤ã
+safeb-blocked-phishing-page-learn-more = è«å° www.antiphishing.org äºè§£éæ¼é£éèè©é¨ç¶²ç«çæ´å¤è³è¨ãä¹å¯ä»¥å° support.mozilla.org äºè§£éæ¼ { -brand-short-name } çé²é£éåæ¡æè»é«ä¿è·æ©å¶çæ´å¤è³è¨ã
+safeb-blocked-malware-page-error-desc-override-sumo = { $sitename } 已被åå ±çºå«ææ¡æè»é«çç¶²ç«ãæ¨å¯ä»¥å¿½ç¥æ¤é¢¨éªä¸¦ç¹¼çºåå¾éåä¸å®å
¨çç¶²ç«ã
+safeb-blocked-malware-page-error-desc-no-override-sumo = { $sitename } 已被åå ±çºå«ææ¡æè»é«çç¶²ç«ã
+safeb-blocked-malware-page-learn-more-sumo = è«å° support.mozilla.org äºè§£éæ¼ { -brand-short-name } çé²é£éåæ¡æè»é«ä¿è·æ©å¶çæ´å¤è³è¨ã
+safeb-blocked-unwanted-page-error-desc-override = { $sitename } 已被åå ±çºå«ææå®³è»é«çç¶²ç«ãæ¨å¯ä»¥å¿½ç¥æ¤é¢¨éªä¸¦ç¹¼çºåå¾éåä¸å®å
¨çç¶²ç«ã
+safeb-blocked-unwanted-page-error-desc-no-override = { $sitename } 已被åå ±çºå«ææå®³è»é«çç¶²ç«ã
+safeb-blocked-unwanted-page-learn-more = è«å° Unwanted Software Policy äºè§£éæ¼æå®³åæ¹äººåæ¡çè»é«çæ´å¤è³è¨ãä¹å¯ä»¥å° support.mozilla.org äºè§£éæ¼ { -brand-short-name } çé²é£éåæ¡æè»é«ä¿è·æ©å¶çæ´å¤è³è¨ã
+safeb-blocked-harmful-page-error-desc-override = { $sitename } 已被åå ±çºå«ææå·å®³é»è
¦çè»é«çç¶²ç«ãæ¨å¯ä»¥å¿½ç¥æ¤é¢¨éªä¸¦ç¹¼çºåå¾éåä¸å®å
¨çç¶²ç«ã
+safeb-blocked-harmful-page-error-desc-no-override = { $sitename } 已被åå ±çºå«ææå·å®³é»è
¦çè»é«çç¶²ç«ã
+safeb-blocked-harmful-page-learn-more = è«å° support.mozilla.org äºè§£éæ¼ { -brand-short-name } çé²é£éåæ¡æè»é«ä¿è·æ©å¶çæ´å¤è³è¨ã
+safeb-palm-notdeceptive =
+ .label = é䏿¯è©é¨ç¶²ç«â¦
+ .accesskey = d
diff --git a/browser/browser/sanitize.ftl b/browser/browser/sanitize.ftl
new file mode 100644
index 00000000000..29df24ef9b0
--- /dev/null
+++ b/browser/browser/sanitize.ftl
@@ -0,0 +1,114 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+sanitize-prefs =
+ .title = æ·å²è¨éæ¸
é¤è¨å®
+ .style = width: 34em
+
+sanitize-prefs-style =
+ .style = width: 17em
+
+dialog-title =
+ .title = æ¸
餿è¿çæ·å²è¨é
+ .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 = æ¸
é¤æææ·å²è¨é
+ .style = width: 34em
+
+clear-data-settings-label = éé { -brand-short-name } æï¼æè©²èªåæ¸
é¤å
¨é¨
+
+## 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 = æ¸
餿éç¯å: { " " }
+ .accesskey = T
+
+clear-time-duration-value-last-hour =
+ .label = ä¸å°æå
§
+
+clear-time-duration-value-last-2-hours =
+ .label = å
©å°æå
§
+
+clear-time-duration-value-last-4-hours =
+ .label = åå°æå
§
+
+clear-time-duration-value-today =
+ .label = ä»å¤©
+
+clear-time-duration-value-everything =
+ .label = æææ·å²è¨é
+
+clear-time-duration-suffix =
+ .value = { "" }
+
+## These strings are used as section comments and checkboxes
+## to select the items to remove
+
+history-section-label = ç覽ç´é
+
+item-history-and-downloads =
+ .label = ç覽èä¸è¼è¨é
+ .accesskey = B
+
+item-cookies =
+ .label = Cookie
+ .accesskey = C
+
+item-active-logins =
+ .label = å·²ç»å
¥çé£ç·
+ .accesskey = L
+
+item-cache =
+ .label = å¿«å
+ .accesskey = a
+
+item-form-search-history =
+ .label = å·²å表å®åæå°è¨é
+ .accesskey = F
+
+data-section-label = è³æ
+
+item-site-preferences =
+ .label = åå¥ç¶²ç«è¨å®
+ .accesskey = S
+
+item-site-settings =
+ .label = ç¶²ç«è¨å®
+ .accesskey = S
+
+item-offline-apps =
+ .label = é¢ç·ç¶²ç«è³æ
+ .accesskey = O
+
+sanitize-everything-undo-warning = æ¤åä½ç¡æ³å¾©åã
+
+window-close =
+ .key = w
+
+sanitize-button-ok =
+ .label = ç«å»æ¸
é¤
+
+# 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 = æ¸
é¤ä¸
+
+# 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 = æææ·å²è¨éé½æè¢«æ¸
é¤ã
+
+# 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 = å°æ¸
餿æé¸æçé
ç®ã
diff --git a/browser/browser/screenshots.ftl b/browser/browser/screenshots.ftl
new file mode 100644
index 00000000000..2e49646aaf4
--- /dev/null
+++ b/browser/browser/screenshots.ftl
@@ -0,0 +1,44 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+screenshot-toolbarbutton =
+ .label = ç«é¢æ·å
+ .tooltiptext = ææç«é¢æ·å
+screenshot-shortcut =
+ .key = S
+screenshots-instructions = ææ³æé»æé é¢ä¾é¸æååï¼æä¸ ESC åæ¶ã
+screenshots-cancel-button = åæ¶
+screenshots-save-visible-button = å²åå¯è¦ç¯å
+screenshots-save-page-button = å²å宿´é é¢
+screenshots-download-button = ä¸è¼
+screenshots-download-button-tooltip = ä¸è¼æ·å
+screenshots-copy-button = è¤è£½
+screenshots-copy-button-tooltip = å°æ·åè¤è£½å°åªè²¼ç°¿
+screenshots-download-button-title =
+ .title = ä¸è¼æ·å
+screenshots-copy-button-title =
+ .title = å°æ·åè¤è£½å°åªè²¼ç°¿
+screenshots-cancel-button-title =
+ .title = åæ¶
+screenshots-meta-key =
+ { PLATFORM() ->
+ [macos] â
+ *[other] Ctrl
+ }
+screenshots-notification-link-copied-title = å·²è¤è£½éçµ
+screenshots-notification-link-copied-details = 已尿¨ææçåçéçµè¤è£½å°åªè²¼ç°¿ï¼æä¸ { screenshots-meta-key }+V å³å¯è²¼ä¸ã
+screenshots-notification-image-copied-title = å·²è¤è£½æ·å
+screenshots-notification-image-copied-details = 已尿·åè¤è£½å°åªè²¼ç°¿ï¼æä¸ { screenshots-meta-key }-V å³å¯è²¼ä¸ã
+screenshots-request-error-title = 系統ç¶è·ä¸ã
+screenshots-request-error-details = æ±æï¼ç¡æ³å²åæ¨ææçåçï¼è«ç¨ååè©¦ä¸æ¬¡ã
+screenshots-connection-error-title = ç¡æ³é£ç·è³æ¨çç«é¢æ·åã
+screenshots-connection-error-details = è«æª¢æ¥æ¨ç網路é£ç·ãè¥æ¨å¯ä»¥æ£å¸¸ä¸ç¶²ï¼å¯è½æ¯ { -screenshots-brand-name } è¨æåºäºåé¡ã
+screenshots-login-error-details = { -screenshots-brand-name } æåç¼çåé¡ï¼æåç¡æ³å²åæ¨ææçæ·åãè«ç¨åå試ã
+screenshots-unshootable-page-error-title = ç¡æ³å¹«æ¤é 颿ç
§ã
+screenshots-unshootable-page-error-details = é䏿¯æ¨æºçç¶²é ï¼ç¡æ³æç
§ã
+screenshots-empty-selection-error-title = æ¨ç鏿ç¯å太å°
+screenshots-private-window-error-title = é±ç§ç覽模å¼ä¸å°åç¨ { -screenshots-brand-name } å¥ä»¶
+screenshots-private-window-error-details = 徿±æå¸¶ä¾ä¸ä¾¿ï¼æåå°å¨æªä¾æä¾æ¤åè½ã
+screenshots-generic-error-title = ååï¼{ -screenshots-brand-name } æé»ç§éäºã
+screenshots-generic-error-details = æåä¸ç¢ºå®ååç¼çäºä»éº¼äºï¼æ¨å¯ä»¥åè©¦ä¸æ¬¡ï¼æææå
¶ä»é é¢çæ·ååï¼
diff --git a/browser/browser/search.ftl b/browser/browser/search.ftl
new file mode 100644
index 00000000000..00c18852bc3
--- /dev/null
+++ b/browser/browser/search.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/.
+
+
+## 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 = å®è£é¯èª¤
+opensearch-error-duplicate-desc = { -brand-short-name } ç¡æ³å¾ã{ $location-url }ãå®è£æå°å¼æï¼å çºå·²åå¨ååçæå°å¼æã
+opensearch-error-format-title = æ ¼å¼ç¡æ
+opensearch-error-format-desc = { -brand-short-name } ç¡æ³å®è£ä¾èªä¸åä½ç½®çæå°å¼æ: { $location-url }
+opensearch-error-download-title = ä¸è¼é¯èª¤
+opensearch-error-download-desc = { -brand-short-name } ç¡æ³å¾ä¸åç¶²åä¸è¼æå°å¼æ: { $location-url }
+
+##
+
+searchbar-submit =
+ .tooltiptext = éåºæå°
+# This string is displayed in the search box when the input field is empty
+searchbar-input =
+ .placeholder = æå°
+searchbar-icon =
+ .tooltiptext = æå°
diff --git a/browser/browser/setDesktopBackground.ftl b/browser/browser/setDesktopBackground.ftl
new file mode 100644
index 00000000000..b48b8954f86
--- /dev/null
+++ b/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 = è¨çºæ¡å¸
+
+set-desktop-background-accept =
+ .label = è¨çºæ¡å¸
+
+open-desktop-prefs =
+ .label = éåæ¡é¢è¨å®
+
+set-background-preview-unavailable = ç¡æ³æä¾é 覽
+
+# 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 = è·¨è¢å¹
+
+set-background-color = è²å½©:
+
+set-background-position = ä½ç½®:
+
+set-background-tile =
+ .label = 並æé¡¯ç¤º
+
+set-background-center =
+ .label = ç½®ä¸
+
+set-background-stretch =
+ .label = å»¶å±
+
+set-background-fill =
+ .label = 填滿
+
+set-background-fit =
+ .label = å
¨è¢å¹
diff --git a/browser/browser/sidebarMenu.ftl b/browser/browser/sidebarMenu.ftl
new file mode 100644
index 00000000000..74dd6d1214b
--- /dev/null
+++ b/browser/browser/sidebarMenu.ftl
@@ -0,0 +1,18 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+sidebar-menu-bookmarks =
+ .label = æ¸ç±¤
+
+sidebar-menu-history =
+ .label = æ·å²
+
+sidebar-menu-synced-tabs =
+ .label = 忥çåé
+
+sidebar-menu-close =
+ .label = ééå´éæ¬
+
+sidebar-close-button =
+ .tooltiptext = ééå´éæ¬
diff --git a/browser/browser/sitePermissions.ftl b/browser/browser/sitePermissions.ftl
new file mode 100644
index 00000000000..4bd75e8ceb3
--- /dev/null
+++ b/browser/browser/sitePermissions.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/.
+
+# This string is used to display the option to open blocked popup(s) in site permission management panels.
+# Variables:
+# $count (String) - Number of blocked pop-ups
+site-permissions-open-blocked-popups =
+ { $count ->
+ [one] éå被å°éçå½åºè¦çªâ¦
+ *[other] éå { $count } å被å°éçå½åºè¦çªâ¦
+ }
diff --git a/browser/browser/sync.ftl b/browser/browser/sync.ftl
new file mode 100644
index 00000000000..7ad94df31d2
--- /dev/null
+++ b/browser/browser/sync.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/.
+
+fxa-toolbar-sync-syncing2 = 忥ä¸â¦
+sync-disconnect-dialog-title2 = è¦åæ¶é£ç·åï¼
+sync-disconnect-dialog-body = { -brand-product-name } å°åæ¢åæ¥æ¨ç帳èï¼ä½ä¸æåªé¤æ¤è£ç½®ä¸çä»»ä½çè¦½è³æã
+sync-disconnect-dialog-button = åæ¶é£ç·
+fxa-signout-dialog2-title = è¦ç»åº { -fxaccount-brand-name }åï¼
+fxa-signout-dialog-body = 已忥çè³æå°ä¿ç卿¨ç帳èä¸ã
+fxa-signout-dialog2-button = ç»åº
+fxa-signout-dialog2-checkbox = åªé¤éå°è£ç½®ä¸çè³æï¼å·²åå¯ç¢¼ãç覽ç´éãæ¸ç±¤ççï¼
+fxa-menu-sync-settings =
+ .label = 忥è¨å®
+fxa-menu-turn-on-sync =
+ .value = éå忥
+fxa-menu-turn-on-sync-default = éå忥
+fxa-menu-connect-another-device =
+ .label = é£çµå
¶ä»è£ç½®â¦
+# This is shown dynamically within "Send tab to device" in fxa menu.
+fxa-menu-send-tab-to-device-syncnotready =
+ .label = æ£å¨åæ¥è£ç½®â¦
+# This is shown within "Send tab to device" in fxa menu if account is not configured.
+fxa-menu-send-tab-to-device-description = ç«å³å³éåé å°ä»»ä½æ¨ç»å
¥éçè£ç½®ã
+fxa-menu-sign-out =
+ .label = ç»åºâ¦
diff --git a/browser/browser/syncedTabs.ftl b/browser/browser/syncedTabs.ftl
new file mode 100644
index 00000000000..b575f1852d8
--- /dev/null
+++ b/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 = 忥çåé
+synced-tabs-sidebar-noclients-subtitle = æ³å¨é裡çå°æ¨å
¶ä»è£ç½®ä¸éåçåé åï¼
+synced-tabs-sidebar-intro = æª¢è¦æ¨å
¶ä»è£ç½®ä¸çåé æ¸
å®ã
+synced-tabs-sidebar-unverified = éè¦é©èæ¨ç帳èã
+synced-tabs-sidebar-notabs = ç¡å·²éåçåé
+synced-tabs-sidebar-open-settings = éå忥è¨å®
+synced-tabs-sidebar-tabsnotsyncing = éååé 忥åè½ä»¥æª¢è¦æ¨å
¶ä»è£ç½®ä¸çåé æ¸
å®ã
+synced-tabs-sidebar-connect-another-device = é£çµå
¶ä»è£ç½®
+synced-tabs-sidebar-search =
+ .placeholder = æå°åæ¥çåé
+synced-tabs-context-open =
+ .label = éå
+ .accesskey = O
+synced-tabs-context-open-in-new-tab =
+ .label = ç¨æ°åé éå
+ .accesskey = w
+synced-tabs-context-open-in-new-window =
+ .label = ç¨æ°è¦çªéå
+ .accesskey = N
+synced-tabs-context-open-in-new-private-window =
+ .label = ç¨æ°é±ç§è¦çªéå
+ .accesskey = P
+synced-tabs-context-bookmark-single-tab =
+ .label = å°æ¤åé å å
¥æ¸ç±¤â¦
+ .accesskey = B
+synced-tabs-context-copy =
+ .label = è¤è£½
+ .accesskey = C
+synced-tabs-context-open-all-in-tabs =
+ .label = å
¨é¨ç¨åé éå
+ .accesskey = O
+synced-tabs-context-manage-devices =
+ .label = 管çè£ç½®â¦
+ .accesskey = D
+synced-tabs-context-sync-now =
+ .label = ç«å»åæ¥
+ .accesskey = S
+synced-tabs-fxa-sign-in = ç»å
¥é²è¡åæ¥
+synced-tabs-turn-on-sync = éå忥
diff --git a/browser/browser/tabContextMenu.ftl b/browser/browser/tabContextMenu.ftl
new file mode 100644
index 00000000000..7dac06504ec
--- /dev/null
+++ b/browser/browser/tabContextMenu.ftl
@@ -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/.
+
+tab-context-new-tab =
+ .label = éæ°åé
+ .accesskey = w
+reload-tab =
+ .label = éæ°è¼å
¥åé
+ .accesskey = R
+select-all-tabs =
+ .label = 鏿ææåé
+ .accesskey = S
+tab-context-play-tab =
+ .label = ææ¾åé
+ .accesskey = P
+tab-context-play-tabs =
+ .label = ææ¾åé
+ .accesskey = y
+duplicate-tab =
+ .label = è¤è£½åé
+ .accesskey = D
+duplicate-tabs =
+ .label = è¤è£½åé
+ .accesskey = D
+# The following string is displayed on a menuitem that will close the tabs from the start of the tabstrip to the currently targeted tab (excluding the currently targeted and any other selected tabs).
+# In left-to-right languages this should use "Left" and in right-to-left languages this should use "Right".
+close-tabs-to-the-start =
+ .label = ééå·¦æ¹åé
+ .accesskey = l
+# The following string is displayed on a menuitem that will close the tabs from the end of the tabstrip to the currently targeted tab (excluding the currently targeted and any other selected tabs).
+# In left-to-right languages this should use "Right" and in right-to-left languages this should use "Left".
+close-tabs-to-the-end =
+ .label = éé峿¹åé
+ .accesskey = i
+close-other-tabs =
+ .label = ééå
¶ä»åé
+ .accesskey = o
+reload-tabs =
+ .label = éæ°è¼å
¥åé
+ .accesskey = R
+pin-tab =
+ .label = éé¸åé
+ .accesskey = P
+unpin-tab =
+ .label = éåææ®éåé
+ .accesskey = b
+pin-selected-tabs =
+ .label = éé¸åé
+ .accesskey = P
+unpin-selected-tabs =
+ .label = éåææ®éåé
+ .accesskey = b
+bookmark-selected-tabs =
+ .label = å°åé å å
¥æ¸ç±¤â¦
+ .accesskey = k
+bookmark-tab =
+ .label = å°åé å å
¥æ¸ç±¤
+ .accesskey = B
+tab-context-open-in-new-container-tab =
+ .label = ç¨æ°å®¹å¨åé éå
+ .accesskey = e
+move-to-start =
+ .label = ç§»åè³éé
+ .accesskey = S
+move-to-end =
+ .label = ç§»åè³çµå°¾
+ .accesskey = E
+move-to-new-window =
+ .label = ç§»åå°æ°è¦çª
+ .accesskey = W
+tab-context-close-multiple-tabs =
+ .label = ééå¤ååé
+ .accesskey = M
+tab-context-share-url =
+ .label = å享
+ .accesskey = h
+tab-context-share-more =
+ .label = æ´å¤â¦
+
+## Variables:
+## $tabCount (Number): the number of tabs that are affected by the action.
+
+tab-context-reopen-closed-tabs =
+ .label =
+ { $tabCount ->
+ [1] å復ééçåé
+ *[other] å復ééç { $tabCount } ååé
+ }
+ .accesskey = o
+tab-context-close-tabs =
+ .label =
+ { $tabCount ->
+ *[other] ééåé
+ }
+ .accesskey = C
+tab-context-close-n-tabs =
+ .label =
+ { $tabCount ->
+ [1] ééåé
+ *[other] éé { $tabCount } ååé
+ }
+ .accesskey = C
+tab-context-move-tabs =
+ .label =
+ { $tabCount ->
+ *[other] ç§»ååé
+ }
+ .accesskey = v
+tab-context-send-tabs-to-device =
+ .label =
+ { $tabCount ->
+ [1] å°åé å³éå°å
¶ä»è£ç½®
+ *[other] å° { $tabCount } ååé å³éå°å
¶ä»è£ç½®
+ }
+ .accesskey = n
diff --git a/browser/browser/tabbrowser.ftl b/browser/browser/tabbrowser.ftl
new file mode 100644
index 00000000000..14b6eaf67db
--- /dev/null
+++ b/browser/browser/tabbrowser.ftl
@@ -0,0 +1,8 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Variables:
+# $domain (String): URL of the page that is trying to steal focus.
+tabbrowser-allow-dialogs-to-get-focus =
+ .label = å
許ä¾èª { $domain } çéä¸é¡éç¥ï¼å°æ¨å¸¶å°è©²ç¶²ç«åé
diff --git a/browser/browser/toolbarContextMenu.ftl b/browser/browser/toolbarContextMenu.ftl
new file mode 100644
index 00000000000..0ff2b6229b3
--- /dev/null
+++ b/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-new-tab =
+ .label = éæ°åé
+ .accesskey = w
+toolbar-context-menu-reload-selected-tab =
+ .label = éæ°è¼å
¥é¸æçåé
+ .accesskey = R
+toolbar-context-menu-reload-selected-tabs =
+ .label = éæ°è¼å
¥é¸æçåé
+ .accesskey = R
+toolbar-context-menu-bookmark-selected-tab =
+ .label = å°é¸æçåé å å
¥æ¸ç±¤â¦
+ .accesskey = T
+toolbar-context-menu-bookmark-selected-tabs =
+ .label = å°é¸æçåé å å
¥æ¸ç±¤â¦
+ .accesskey = T
+toolbar-context-menu-select-all-tabs =
+ .label = 鏿ææåé
+ .accesskey = S
+toolbar-context-menu-reopen-closed-tabs =
+ .label =
+ { $tabCount ->
+ [1] å復ééçåé
+ *[other] å復ééç { $tabCount } ååé
+ }
+ .accesskey = o
+toolbar-context-menu-manage-extension =
+ .label = ç®¡çæ´å
å¥ä»¶
+ .accesskey = E
+toolbar-context-menu-remove-extension =
+ .label = ç§»é¤æ´å
å¥ä»¶
+ .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 = åå ±æ´å
å¥ä»¶
+ .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 = éé¸å°æ¶èé¸å®
+ .accesskey = P
+toolbar-context-menu-auto-hide-downloads-button-2 =
+ .label = ç¡å
§å®¹æé±èæé
+ .accesskey = H
+toolbar-context-menu-remove-from-toolbar =
+ .label = èªå·¥å
·åç§»é¤
+ .accesskey = R
+toolbar-context-menu-view-customize-toolbar =
+ .label = èªè¨â¦
+ .accesskey = C
+toolbar-context-menu-view-customize-toolbar-2 =
+ .label = èªè¨å·¥å
·åâ¦
+ .accesskey = C
+toolbar-context-menu-bookmarks-toolbar-always-show-2 =
+ .label = æ¯æ¬¡é½é¡¯ç¤º
+ .accesskey = A
+toolbar-context-menu-bookmarks-toolbar-never-show-2 =
+ .label = æ°¸ä¸é¡¯ç¤º
+ .accesskey = N
+toolbar-context-menu-bookmarks-toolbar-on-new-tab-2 =
+ .label = åªå¨æ°åé 顯示
+ .accesskey = O
+toolbar-context-menu-bookmarks-show-other-bookmarks =
+ .label = 顯示å
¶ä»æ¸ç±¤
+ .accesskey = h
+toolbar-context-menu-menu-bar-cmd =
+ .toolbarname = é¸å®å
+ .accesskey = M
diff --git a/browser/browser/touchbar/touchbar.ftl b/browser/browser/touchbar/touchbar.ftl
new file mode 100644
index 00000000000..493d16b2fa0
--- /dev/null
+++ b/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 = ä¸ä¸é
+forward = ä¸ä¸é
+reload = éæ°è¼å
¥
+home = é¦é
+fullscreen = å
¨è¢å¹
+touchbar-fullscreen-exit = é¢éå
¨è¢å¹æ¨¡å¼
+find = å°æ¾
+new-tab = éæ°åé
+add-bookmark = æ°å¢æ¸ç±¤
+reader-view = é±è®ç«é¢
+# Meant to match the string displayed in an empty URL bar.
+open-location = æå°æè¼¸å
¥ç¶²å
+share = å享
+close-window = ééè¦çª
+open-sidebar = å´éæ¬
+
+# This string describes shortcuts for search.
+search-popover = æå°å¿«ééµ
+# Describes searches limited to a specific scope
+# (e.g. searching only in history).
+search-search-in = æå°ä¸åé
ç®:
+
+## Various categories of shortcuts for search.
+
+search-bookmarks = æ¸ç±¤
+search-history = ç覽ç´é
+search-opentabs = éåçåé
+search-tags = æ¨ç±¤
+search-titles = æ¨é¡
+
+##
+
diff --git a/browser/browser/upgradeDialog.ftl b/browser/browser/upgradeDialog.ftl
new file mode 100644
index 00000000000..d7e5730de40
--- /dev/null
+++ b/browser/browser/upgradeDialog.ftl
@@ -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/.
+
+
+### Strings for the upgrade dialog that can be displayed on major version change.
+
+
+## New changes screen
+
+# This title can be explicitly wrapped to control which words are on which line.
+upgrade-dialog-new-title = è·å
¨æ°ç { -brand-short-name } 說è²å¨ï¼
+upgrade-dialog-new-subtitle = è¨è¨ä¾è®æ¨æ´å¿«æµéæ³å»çå°æ¹
+upgrade-dialog-new-item-menu-title = æ´ç²¾ç°¡çå·¥å
·åèé¸å®è¨è¨
+upgrade-dialog-new-item-menu-description = éè¦åè½åªå
ï¼è®æ¨æ´å¿«å®æä»»åã
+upgrade-dialog-new-item-tabs-title = æ°ä¸ä»£çåé æ¨ç±¤è¨è¨
+upgrade-dialog-new-item-tabs-description = æè³è¨æ¶å¥½æ¶æ»¿ï¼å¯èç¦åå¯é活移åã
+upgrade-dialog-new-item-icons-title = å
¨æ°è¨è¨çå示ï¼è¨æ¯èªªææ´æ¸
æ¥
+upgrade-dialog-new-item-icons-description = è¼è¼é¬é¬å°±è½å¿«é䏿ã
+upgrade-dialog-new-primary-default-button = å° { -brand-short-name } è¨çºæçé è¨ç覽å¨
+upgrade-dialog-new-primary-theme-button = 鏿使¯ä¸»é¡
+upgrade-dialog-new-secondary-button = ç¾å¨ä¸è¦
+# This string is only shown on Windows 7, where we intentionally suppress the
+# theme selection screen.
+upgrade-dialog-new-primary-win7-button = 好ï¼ç¥éäºï¼
+
+## Pin Firefox screen
+##
+## These title, subtitle and button strings differ between platforms as they
+## match the OS' application context menu item action where Windows uses "pin"
+## and "taskbar" while macOS "keep" and "Dock" (proper noun).
+
+# This title can be explicitly wrapped to control which words are on which line.
+upgrade-dialog-pin-title =
+ { PLATFORM() ->
+ [macos] å° { -brand-short-name } ä¿ç卿¨ç Dock
+ *[other] å° { -brand-short-name } éé¸å°æ¨çå·¥ä½å
+ }
+# The English macOS string avoids repeating "Keep" a third time, so if your
+# translations don't repeat anyway, the same string can be used cross-platform.
+upgrade-dialog-pin-subtitle =
+ { PLATFORM() ->
+ [macos] è¼è¼é¬é¬ä½¿ç¨ææ°çç { -brand-short-name }ã
+ *[other] è¼è¼é¬é¬ä½¿ç¨ææ°çç { -brand-short-name }ã
+ }
+upgrade-dialog-pin-primary-button =
+ { PLATFORM() ->
+ [macos] ä¿çå¨ Dock
+ *[other] éé¸å°å·¥ä½å
+ }
+upgrade-dialog-pin-secondary-button = ç¾å¨ä¸è¦
+
+## Default browser screen
+
+# This title can be explicitly wrapped to control which words are on which line.
+upgrade-dialog-default-title-2 = å° { -brand-short-name } è¨çºæ¨çé è¨ç覽å¨
+upgrade-dialog-default-subtitle-2 = éåé度ãå®å
¨æ§ãé±ç§æ¬çèªåä¿è·ã
+upgrade-dialog-default-primary-button-2 = è¨çºé è¨ç覽å¨
+upgrade-dialog-default-secondary-button = ç¾å¨ä¸è¦
+
+## Theme selection screen
+
+# This title can be explicitly wrapped to control which words are on which line.
+upgrade-dialog-theme-title-2 = ä½¿ç¨æ°ä½æ¯ä¸»é¡è®æåéæ°ååºç¼
+upgrade-dialog-theme-system = ç³»çµ±ä½æ¯ä¸»é¡
+ .title = ä¾ç
§ä½æ¥ç³»çµ±è¨å®ç使¯ä¸»é¡é¡¯ç¤ºæéãé¸å®ãè¦çª
+
+## Start screen
+
+# This title can be explicitly wrapped to control which words are on which line.
+upgrade-dialog-start-title = ç¾éºçæ´»
+upgrade-dialog-start-subtitle = æ´»åæ»¿é»çæ°é
è²ï¼éææä¾ã
+upgrade-dialog-start-primary-button = æ¢ç´¢é
è²
+upgrade-dialog-start-secondary-button = ç¾å¨ä¸è¦
+
+## Colorway screen
+
+# This title can be explicitly wrapped to control which words are on which line.
+upgrade-dialog-colorway-title = æé¸æ¨çè²å½©é
ç½®
+upgrade-dialog-colorway-home-checkbox = åææä½¿ç¨ä½æ¯ä¸»é¡èæ¯ç Firefox é¦é
+upgrade-dialog-colorway-primary-button = å²åé
è²
+upgrade-dialog-colorway-secondary-button = ç¹¼çºä½¿ç¨åå
ç使¯ä¸»é¡
+upgrade-dialog-colorway-theme-tooltip =
+ .title = æ¢ç´¢é è¨ä½æ¯ä¸»é¡
+# $colorwayName (String) - Name of colorway, e.g., Abstract, Cheers
+upgrade-dialog-colorway-colorway-tooltip =
+ .title = æ¢ç´¢ { $colorwayName } çé
è²
+upgrade-dialog-colorway-default-theme = é è¨
+# "Auto" is short for "Automatic"
+upgrade-dialog-colorway-theme-auto = èªå
+ .title = æ ¹æä½æ¥ç³»çµ±ä½æ¯ä¸»é¡è¨å®ä¾é¡¯ç¤ºæéãé¸å®ãè¦çªã
+upgrade-dialog-theme-light = 亮è²
+ .title = çºæéãé¸å®ãè¦çªä½¿ç¨äº®è²ä½æ¯ä¸»é¡
+upgrade-dialog-theme-dark = æè²
+ .title = çºæéãé¸å®ãè¦çªä½¿ç¨æè²ä½æ¯ä¸»é¡
+upgrade-dialog-theme-alpenglow = Alpenglow
+ .title = çºæéãé¸å®ãè¦çªä½¿ç¨è²å½©ææç使¯ä¸»é¡
+upgrade-dialog-theme-keep = ä¿çåè¨å®
+ .title = ä½¿ç¨æ¨æ´æ° { -brand-short-name } åå®è£ä½¿ç¨ç使¯ä¸»é¡
+upgrade-dialog-theme-primary-button = å²å使¯ä¸»é¡
+upgrade-dialog-theme-secondary-button = ç¾å¨ä¸è¦
+upgrade-dialog-colorway-variation-soft = è»è²èª¿
+ .title = 使ç¨é種è²å½©é
ç½®
+upgrade-dialog-colorway-variation-balanced = åè¡¡è²èª¿
+ .title = 使ç¨é種è²å½©é
ç½®
+# "Bold" is used in the sense of bravery or courage, not in the sense of
+# emphasized text.
+upgrade-dialog-colorway-variation-bold = æ¿çè²èª¿
+ .title = 使ç¨é種è²å½©é
ç½®
+
+## Thank you screen
+
+# This title can be explicitly wrapped to control which words are on which line.
+upgrade-dialog-thankyou-title = æè¬æ¨é¸ç¨
+upgrade-dialog-thankyou-subtitle = { -brand-short-name } æ¯ä¸å¥ç±éçå©çµç¹ææé çç¨ç«ç覽å¨ãç±æåä¸èµ·è®ç¶²è·¯ç°å¢æ´å®å
¨ãæ´å¥åº·ã乿´æé±ç§ã
+upgrade-dialog-thankyou-primary-button = éå§ç覽
diff --git a/browser/browser/webrtcIndicator.ftl b/browser/browser/webrtcIndicator.ftl
new file mode 100644
index 00000000000..92449f350c4
--- /dev/null
+++ b/browser/browser/webrtcIndicator.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/.
+
+
+# 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 } â å享æç¤ºå¨
+
+webrtc-sharing-window = æ¨æ£å¨å享å
¶ä»æç¨ç¨å¼è¦çªã
+webrtc-sharing-browser-window = æ¨æ£å¨å享 { -brand-short-name }ã
+webrtc-sharing-screen = æ¨æ£å¨å享æ´åç«é¢ã
+webrtc-stop-sharing-button = 忢å享
+webrtc-microphone-unmuted =
+ .title = éé麥å
風
+webrtc-microphone-muted =
+ .title = éå麥å
風
+webrtc-camera-unmuted =
+ .title = ééæå½±æ©
+webrtc-camera-muted =
+ .title = éåæå½±æ©
+webrtc-minimize =
+ .title = æå°åæç¤ºå¨
+
+# 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 = æ£å¨å享æ¨çæå½±æ©ã黿æ¤èä¾èª¿æ´è¦å享çé
ç®ã
+webrtc-microphone-system-menu =
+ .label = æ£å¨å享æ¨ç麥å
風ã黿æ¤èä¾èª¿æ´è¦å享çé
ç®ã
+webrtc-screen-system-menu =
+ .label = æ£å¨å享æ¨çè¦çªæç«é¢ã黿æ¤èä¾èª¿æ´è¦å享çé
ç®ã
diff --git a/browser/chrome/browser-region/region.properties b/browser/chrome/browser-region/region.properties
new file mode 100644
index 00000000000..8193c4d138b
--- /dev/null
+++ b/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! 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
+
+# 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/browser/chrome/browser/accounts.properties b/browser/chrome/browser/accounts.properties
new file mode 100644
index 00000000000..0ff39fd3e3a
--- /dev/null
+++ b/browser/chrome/browser/accounts.properties
@@ -0,0 +1,112 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (reconnectDescription) - %S = Email address of user's Firefox Account
+reconnectDescription = éæ°é£ç·è³ %S
+
+# LOCALIZATION NOTE (verifyDescription) - %S = Email address of user's Firefox Account
+verifyDescription = ç¢ºèª %S
+
+# These strings are shown in a desktop notification after the
+# user requests we resend a verification email.
+verificationSentTitle = å·²å¯åºé©èä¿¡
+# LOCALIZATION NOTE (verificationSentBody) - %S = Email address of user's Firefox Account
+verificationSentBody = å·²å°é©èéçµç¼éå° %Sã
+verificationNotSentTitle = ç¡æ³å³éé©èä¿¡
+verificationNotSentBody = æåæ«æç¡æ³å¯åºé©èä¿¡ï¼è«ç¨å¾å試ã
+
+# 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 = 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 = æ¤é»è
¦å·²é£çµè³ %Sã
+otherDeviceConnectedBody.noDeviceName = æ¤é»è
¦å·²èæ°è£ç½®é£çµã
+
+# LOCALIZATION NOTE (thisDeviceConnectedBody) - used in a notification shown
+# after a Firefox Account is connected to the current device.
+thisDeviceConnectedBody = æåç»å
¥
+
+# LOCALIZATION NOTE (thisDeviceDisconnectedBody) - used in a notification shown
+# after the Firefox Account was disconnected remotely.
+thisDeviceDisconnectedBody = æ¤é»è
¦å·²åæ¶é£çµã
+
+# 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 = å³éå°ææè£ç½®
+
+# 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 = 管çè£ç½®â¦
+
+# 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 = æªç»å
¥
+sendTabToDevice.unconfigured = äºè§£å³éåé â¦
+
+# 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 = ç»å
¥ %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 = æ²æå·²é£çµçè£ç½®
+sendTabToDevice.singledevice = äºè§£å³éåé â¦
+sendTabToDevice.connectdevice = é£çµå
¶ä»è£ç½®â¦
+
+# 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 = å¸³èæªé©è
+sendTabToDevice.verify = ç¢ºèªæ¨ç帳èâ¦
+
+# 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 = æ¶å°åé
+# LOCALIZATION NOTE (tabArrivingNotificationWithDevice.title) %S is the device name
+tabArrivingNotificationWithDevice.title = ä¾èª %S çåé
+
+multipleTabsArrivingNotification.title = æ¶å°åé
+# 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 = æ¶å°ä¾èª #2 ç #1 ååé
+# 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 ååé
+
+# 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 ååé
+
+# LOCALIZATION NOTE (singleTabArrivingWithTruncatedURL.body):
+# Used when a tab from a remote device arrives but the URL must be truncated.
+# Should display the URL with an indication that it's benen truncated.
+# %S is the portion of the URL that remains after truncation.
+singleTabArrivingWithTruncatedURL.body = %Sâ¦
+
diff --git a/browser/chrome/browser/app-extension-fields.properties b/browser/chrome/browser/app-extension-fields.properties
new file mode 100644
index 00000000000..0f47fc65179
--- /dev/null
+++ b/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=亮è²
+extension.firefox-compact-light@mozilla.org.description=亮è²ä½æ¯ä¸»é¡ã
+
+# LOCALIZATION NOTE (extension.firefox-compact-dark@mozilla.org.name): This is displayed in about:addons -> Appearance
+extension.firefox-compact-dark@mozilla.org.name=æè²
+extension.firefox-compact-dark@mozilla.org.description=æè²ä½æ¯ä¸»é¡ã
+
+# 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=使ç¨è²å½©ç¹½ç´çæéãé¸å®ãè¦çªæ¨£å¼ã
diff --git a/browser/chrome/browser/browser.dtd b/browser/chrome/browser/browser.dtd
new file mode 100644
index 00000000000..aab59d613db
--- /dev/null
+++ b/browser/chrome/browser/browser.dtd
@@ -0,0 +1,159 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/browser.properties b/browser/chrome/browser/browser.properties
new file mode 100644
index 00000000000..e3237c2eb55
--- /dev/null
+++ b/browser/chrome/browser/browser.properties
@@ -0,0 +1,1038 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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=龿
+openFile=éåæªæ¡
+
+droponhometitle=è¨å®é¦é
+droponhomemsg=æ¨æ³è¦ç¨æ¤é é¢ç¶æ¨çé¦é åï¼
+droponhomemsgMultiple=æ¨æ³è¦ä½¿ç¨éäºæä»¶ä½çºæ°é¦é åï¼
+
+# context menu strings
+
+# LOCALIZATION NOTE (contextMenuSearch): %1$S is the search engine,
+# %2$S is the selection string.
+contextMenuSearch=以 %1$S æå°ã%2$Sã
+contextMenuSearch.accesskey=S
+contextMenuPrivateSearch=ç¨é±ç§ç覽è¦çªæå°
+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=æ¼é±ç§ç覽è¦çªä½¿ç¨ %S æå°
+contextMenuPrivateSearchOtherEngine.accesskey=h
+
+# bookmark dialog strings
+
+bookmarkAllTabsDefault=[è³æå¤¾å稱]
+
+xpinstallPromptMessage=%S 已黿æ¤ç¶²ç«åæ¨è©¢åæ¯å¦è¦å¨é»è
¦ä¸å®è£è»é«ã
+# LOCALIZATION NOTE (xpinstallPromptMessage.header)
+# The string contains the hostname of the site the add-on is being installed from.
+xpinstallPromptMessage.header=è¦å
許 %S å®è£éå å
ä»¶åï¼
+xpinstallPromptMessage.message=æ¨æ£å¨å試å®è£ä¾èª %S çéå å
ä»¶ãç¹¼çºä¹åè«ç¢ºä¿æ¨ä¿¡ä»»æ¤ç¶²ç«ã
+xpinstallPromptMessage.header.unknown=è¦å
許æªç¥ç¶²ç«å®è£éå å
ä»¶åï¼
+xpinstallPromptMessage.message.unknown=æ¨æ£å¨å試å®è£æªç¥ä¾æºçéå å
ä»¶ãç¹¼çºä¹åè«ç¢ºä¿æ¨ä¿¡ä»»æ¤ç¶²ç«ã
+xpinstallPromptMessage.learnMore=äºè§£å¦ä½æ¼å®è£éå å
ä»¶æç¢ºä¿å®å
¨çæ´å¤è³è¨
+xpinstallPromptMessage.dontAllow=ä¸å
許
+xpinstallPromptMessage.dontAllow.accesskey=D
+xpinstallPromptMessage.neverAllow=æ°¸ä¸å
許
+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=ç¹¼çºå®è£
+xpinstallPromptMessage.install.accesskey=C
+
+xpinstallDisabledMessageLocked=æ¨ç系統管çå¡å·²åç¨è»é«å®è£ã
+xpinstallDisabledMessage=ç®åå·²ç¦æ¢å®è£è»é«ãè«é»æãåç¨ãå¾åè©¦ä¸æ¬¡ã
+xpinstallDisabledButton=åç¨
+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ï¼ã%3$S
+addonInstallFullScreenBlocked=é²å
¥å
¨è¢å¹æ¨¡å¼åæé²å
¥æï¼ä¸å
許å®è£éå å
ä»¶ã
+
+# LOCALIZATION NOTE (webextPerms.header,webextPerms.headerWithPerms,webextPerms.headerUnsigned,webextPerms.headerUnsignedWithPerms)
+# This string is used as a header in the webextension permissions dialog,
+# %S is replaced with the localized name of the extension being installed.
+# See https://bug1308309.bmoattachments.org/attachment.cgi?id=8814612
+# for an example of the full dialog.
+# Note, this string will be used as raw markup. Avoid characters like <, >, &
+webextPerms.header=è¦å®è£ %S åï¼
+webextPerms.headerWithPerms=è¦å®è£ %S åï¼æ¤æ´å
å¥ä»¶å°æä¸åæ¬é:
+webextPerms.headerUnsigned=è¦å®è£ %S åï¼æ¤æ´å
å¥ä»¶å°æªç¶éé©èãæ¡æçæ´å
å¥ä»¶å¯å·èµ°æ¨çå人è³è¨ï¼æè®æ¨çé»è
¦æçºæå®³è»é«æ£ä½ç溫åºãè«åªå¨ä¿¡ä»»æ¤å¥ä»¶ç便ºææå®è£ã
+webextPerms.headerUnsignedWithPerms=è¦å®è£ %S åï¼æ¤æ´å
å¥ä»¶å°æªç¶éé©èãæ¡æçæ´å
å¥ä»¶å¯å·èµ°æ¨çå人è³è¨ï¼æè®æ¨çé»è
¦æçºæå®³è»é«æ£ä½ç溫åºãè«åªå¨ä¿¡ä»»æ¤å
ä»¶ç便ºææå®è£ãæ¤æ´å
å¥ä»¶å°æä¸åæ¬é:
+
+webextPerms.learnMore2=äºè§£æ´å¤
+webextPerms.add.label=å®è£
+webextPerms.add.accessKey=A
+webextPerms.cancel.label=åæ¶
+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 è³ %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
+webextPerms.sideloadText2=æ¨é»è
¦ä¸çå
¶ä»è»é«ï¼å®è£äºå¯è½æå½±é¿ç覽å¨çéå å
ä»¶ãè«ç¢ºèªæ¤éå å
ä»¶è¦æ±çæ¬éï¼ç¶å¾é¸æåç¨æä¿æåç¨ã
+webextPerms.sideloadTextNoPerms=æ¨é»è
¦ä¸çå
¶ä»è»é«ï¼å®è£äºå¯è½æå½±é¿ç覽å¨çéå å
ä»¶ãè«é¸æè¦åç¨æä¿æåç¨ã
+
+webextPerms.sideloadEnable.label=åç¨
+webextPerms.sideloadEnable.accessKey=E
+webextPerms.sideloadCancel.label=åæ¶
+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 è¦æ±æ°æ¬é
+
+# LOCALIZATION NOTE (webextPerms.updateText)
+# %S is replaced with the localized name of the updated extension.
+# Note, this string will be used as raw markup. Avoid characters like <, >, &
+webextPerms.updateText2=%S å·²ææ´æ°ãæ¨å¿
é å
許æ°çå¥ä»¶æè¦æ±çæ¬éï¼ææå®è£ã黿ãåæ¶ãå¯ç¹¼çºä½¿ç¨ç®åçæ¬çæ´å
å¥ä»¶ãæ¤æ´å
å¥ä»¶å°æä¸åæ¬é:
+
+webextPerms.updateAccept.label=æ´æ°
+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 è¦æ±æ´å¤æ¬éã
+webextPerms.optionalPermsListIntro=宿³è¦:
+webextPerms.optionalPermsAllow.label=å
許
+webextPerms.optionalPermsAllow.accessKey=A
+webextPerms.optionalPermsDeny.label=æçµ
+webextPerms.optionalPermsDeny.accessKey=D
+
+webextPerms.description.bookmarks=è®åæä¿®æ¹æ¸ç±¤
+webextPerms.description.browserSettings=è®åæä¿®æ¹ç覽å¨è¨å®
+webextPerms.description.browsingData=æ¸
餿è¿çç覽ç´éãCookie çç¸éè³æ
+webextPerms.description.clipboardRead=åå¾åªè²¼ç°¿ä¸çè³æ
+webextPerms.description.clipboardWrite=輸å
¥è³æå°åªè²¼ç°¿
+webextPerms.description.devtools=è®éç¼è
å·¥å
·å¯å忍å¨éååé ä¸çè³æ
+webextPerms.description.downloads=ä¸è¼æªæ¡ãè®åæä¿®æ¹ç覽å¨çä¸è¼ç´é
+webextPerms.description.downloads.open=éåä¸è¼å°æ¨é»è
¦ä¸çæªæ¡
+webextPerms.description.find=è®åææéååé ç¶ä¸çæåå
§å®¹
+webextPerms.description.geolocation=å徿¨çæå¨ä½ç½®
+webextPerms.description.history=åå¾ç覽ç´é
+webextPerms.description.management=ç£æ§æ´å
å¥ä»¶ä½¿ç¨æ
æ³ä¸¦ç®¡ç使¯ä¸»é¡
+# LOCALIZATION NOTE (webextPerms.description.nativeMessaging)
+# %S will be replaced with the name of the application
+webextPerms.description.nativeMessaging=è %S 以å¤çç¨å¼äº¤æè¨æ¯
+webextPerms.description.notifications=åæ¨é¡¯ç¤ºéç¥
+webextPerms.description.pkcs11=æä¾å å¯é©èæå
+webextPerms.description.privacy=è®åæä¿®æ¹é±ç§è¨å®
+webextPerms.description.proxy=æ§å¶ç覽å¨ä»£ç伺æå¨è¨å®
+webextPerms.description.sessions=å徿è¿ééçåé
+webextPerms.description.tabs=ååç覽å¨åé
+webextPerms.description.tabHide=é±èæé¡¯ç¤ºç覽å¨åé
+webextPerms.description.topSites=åå¾ç覽ç´é
+webextPerms.description.webNavigation=å¨ä¸ç¶²æäºè§£ç覽å¨è¡çºçæ
+
+webextPerms.hostDescription.allUrls=å忍ææç¶²ç«ä¸çè³æ
+
+# 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=ååæ¨å¨ %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=å忍å¨å
¶ä» #1 åç¶²åä¸çè³æ
+
+# 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=ååæ¨å¨ %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=å忍å¨å
¶ä» #1 åç¶²ç«ä¸çè³æ
+
+# 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 æ³è¦å°æ¨çé è¨æå°å¼æå¾ %2$S ä¿®æ¹çº %3$Sã鿍£å¯ä»¥åï¼
+webext.defaultSearchYes.label=好ç
+webext.defaultSearchYes.accessKey=Y
+webext.defaultSearchNo.label=ä¸è¦
+webext.defaultSearchNo.accessKey=N
+
+# LOCALIZATION NOTE (webext.remove.confirmation.message)
+# %1$S is the name of the extension which is about to be removed.
+# %2$S is brandShorterName
+webext.remove.confirmation.message=è¦å¾ %2$S ç§»é¤ %1$S åï¼
+webext.remove.confirmation.button=ç§»é¤
+
+# LOCALIZATION NOTE (addonPostInstall.message3)
+# %S is replaced with the localized named of the extension that was
+# just installed.
+addonPostInstall.message3=å·²å®è£ %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=æ£å¨ä¸è¼èé©è #1 å¥éå å
ä»¶â¦
+addonDownloadVerifying=é©èä¸
+
+addonInstall.unsigned=ï¼æªé©èï¼
+addonInstall.cancelButton.label=åæ¶
+addonInstall.cancelButton.accesskey=C
+addonInstall.acceptButton2.label=æ°å¢
+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=æ¤ç¶²ç«æ³å®è£ #2 å¥éå å
ä»¶å° #1:
+addonConfirmInstallUnsigned.message=è¦å: æ¤ç¶²ç«æ³è¦å®è£ #2 奿ªé©èçéå å
ä»¶å° #1ï¼è«å°å¿ã
+
+# 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=è¦å: æ¤ç¶²ç«æ³è¦å®è£ #2 å¥éå å
ä»¶å° #1ï¼ç¶ä¸æäºéæ²æç¶éé©èï¼è«å°å¿ã
+
+# LOCALIZATION NOTE (addonInstalled):
+# %S is the name of the add-on
+addonInstalled=æåå®è£ %Sã
+# 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 å¥éå å
ä»¶ã
+
+# LOCALIZATION NOTE (addonInstallError-1, addonInstallError-2, addonInstallError-3, addonInstallError-4, addonInstallError-5, addonInstallError-8, addonLocalInstallError-1, addonLocalInstallError-2, addonLocalInstallError-3, addonLocalInstallError-4, addonLocalInstallError-5):
+# %1$S is the application name, %2$S is the add-on name
+addonInstallError-1=å çºé£ç·å¤±æï¼ç¡æ³ä¸è¼éå å
ä»¶ã
+addonInstallError-2=å çºä¸ç¬¦å %1$S æé æçéå å
ä»¶ï¼ç¡æ³å®è£ã
+addonInstallError-3=å çºæªæ¡çèµ·ä¾å·²ç¶æ¯æï¼ç¡æ³å®è£å¾éåç¶²ç«ä¸è¼çéå å
ä»¶ã
+addonInstallError-4=å çº %1$S ç¡æ³ä¿®æ¹å¿
è¦çæªæ¡ï¼ç¡æ³å®è£ %2$Sã
+addonInstallError-5=%1$S 已鲿¢æ¤ç¶²ç«å®è£æªé©èçéå å
ä»¶ã
+addonInstallError-8=ç¡æ³å¾æ¤ä½ç½®å®è£ %2$S éå å
ä»¶ã
+addonLocalInstallError-1=ç±æ¼æªæ¡ç³»çµ±é¯èª¤ï¼ç¡æ³å®è£æ¤éå å
ä»¶ã
+addonLocalInstallError-2=å çºä¸ç¬¦å %1$S æé æçéå å
ä»¶ï¼ç¡æ³å®è£ã
+addonLocalInstallError-3=æªæ¡ä¼¼ä¹å·²ææ¯ï¼ç¡æ³å®è£æ¤éå å
ä»¶ã
+addonLocalInstallError-4=å çº %1$S ç¡æ³ä¿®æ¹å¿
è¦çæªæ¡ï¼ç¡æ³å®è£ %2$Sã
+addonLocalInstallError-5=å çºæ¤éå å
ä»¶å°æªç¶éé©èï¼ç¡æ³å®è£ã
+
+# LOCALIZATION NOTE (addonInstallErrorIncompatible):
+# %1$S is the application name, %2$S is the application version, %3$S is the add-on name
+addonInstallErrorIncompatible=å çºè %1$S %2$S ä¸ç¸å®¹ï¼ç¡æ³å®è£ %3$Sã
+
+# LOCALIZATION NOTE (addonInstallErrorBlocklisted): %S is add-on name
+addonInstallErrorBlocklisted=ç¡æ³å®è£ %Sï¼å çºå®å¾å¯è½æé æç©©å®æ§æå®å
¨æ§åé¡ã
+
+unsignedAddonsDisabled.message=å·²å®è£çéå å
件䏿ä¸çµä»¥ä¸å°æªééé©èï¼å·²è¢«åç¨ã
+unsignedAddonsDisabled.learnMore.label=äºè§£æ´å¤
+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 å°éäºæ¤ç¶²ç«ç #2 åå½åºè¦çªã
+# 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 é»æäºæ¤ç¶²ç«éåè¶
é #2 åå½åºåè¦çªã
+popupWarningButton=é¸é
+popupWarningButton.accesskey=O
+popupWarningButtonUnix=å好è¨å®
+popupWarningButtonUnix.accesskey=P
+popupAllow=å
許 %S çå½åºåè¦çª
+popupBlock=å°é %S çå½åºåè¦çª
+popupWarningDontShowFromMessage=æä¸å½åºåè¦çªæä¸é¡¯ç¤ºæ¤è¨æ¯
+popupShowPopupPrefix=顯示ã%Sã
+
+# LOCALIZATION NOTE (geolocationLastAccessIndicatorText): %S is the relative time of the most recent geolocation access (e.g. 5 min. ago)
+geolocationLastAccessIndicatorText=æå¾ä½¿ç¨æ¼ %S
+
+# LOCALIZATION NOTE (openProtocolHandlerPermissionEntryLabel): %S is the scheme of the protocol the site may open an application for. For example: mailto
+openProtocolHandlerPermissionEntryLabel=%S:// éçµ
+
+crashedpluginsMessage.title=%S 夿ç¨å¼ç¼çé¯èª¤ï¼å·²ç¶ééã
+crashedpluginsMessage.reloadButton.label=éæ°è¼å
¥ç¶²é
+crashedpluginsMessage.reloadButton.accesskey=R
+crashedpluginsMessage.submitButton.label=éåºä¸ä»½é¯èª¤å ±å
+crashedpluginsMessage.submitButton.accesskey=S
+crashedpluginsMessage.learnMore=æ´å¤è³è¨â¦
+
+# 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=æ¨æ¯ä¸æ¯è¦å» %Sï¼
+keywordURIFixup.goTo=æ¯ï¼è«å¸¶æå° %S
+keywordURIFixup.goTo.accesskey=Y
+
+pluginInfo.unknownPlugin=æªç¥
+
+# Flash activation doorhanger UI
+flashActivate.message=æ¨è¦å
è¨±å¨æ¤ç¶²ç«å·è¡ Adobe Flash åï¼è«åªå°æ¨ä¿¡ä»»çç¶²ç«å
許ã
+flashActivate.outdated.message=æ¨è¦å
è¨±å¨æ¤ç¶²ç«å·è¡éæçæ¬ç Adobe Flash åï¼éæçæ¬å¯è½æå½±é¿æ¨ççè¦½å¨æè½èå®å
¨æ§ã
+flashActivate.noAllow=ä¸å
許
+flashActivate.allow=å
許
+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=å·è¡ %S
+PluginVulnerableUpdatable=æ¤å¤æç¨å¼æå®å
¨æ§æ¼æ´ï¼éè¦æ´æ°ã
+PluginVulnerableNoUpdate=æ¤å¤æç¨å¼æå®å
¨æ§æ¼æ´ã
+
+# Sanitize
+# LOCALIZATION NOTE (update.downloadAndInstallButton.label): %S is replaced by the
+# version of the update: "Update to 28.0".
+update.downloadAndInstallButton.label=æ´æ°è³ %S
+update.downloadAndInstallButton.accesskey=U
+
+menuOpenAllInTabs.label=å
¨é¨ç¨åé éå
+
+# 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ï¼èå¦ #2 ååé ï¼
+menuUndoCloseWindowSingleTabLabel=#1
+
+# Unified Back-/Forward Popup
+tabHistory.current=çå¨éä¸é
+tabHistory.goBack=åå°éä¸é
+tabHistory.goForward=åå¾éä¸é
+
+# URL Bar
+pasteAndGo.label=è²¼ä¸ä¸¦ç覽
+# LOCALIZATION NOTE (reloadButton.tooltip):
+# %S is the keyboard shortcut for reloading the current page
+reloadButton.tooltip=éæ°è¼å
¥ç®åé é¢ï¼%Sï¼
+# LOCALIZATION NOTE (stopButton.tooltip):
+# %S is the keyboard shortcut for stopping loading the page
+stopButton.tooltip=忢è¼å
¥æ¤é é¢ï¼%Sï¼
+# LOCALIZATION NOTE (urlbar-zoom-button.tooltip):
+# %S is the keyboard shortcut for resetting the zoom level to 100%
+urlbar-zoom-button.tooltip=éè¨é é¢ç¸®æ¾å¤§å°ï¼%Sï¼
+# LOCALIZATION NOTE (reader-mode-button.tooltip):
+# %S is the keyboard shortcut for entering/exiting reader view
+reader-mode-button.tooltip=åæé±è®æ¨¡å¼ï¼%Sï¼
+
+# LOCALIZATION NOTE(zoom-button.label): %S is the current page zoom level,
+# %% will be displayed as a single % character (% is commonly used to define
+# format specifiers, so it needs to be escaped).
+zoom-button.label = %S%%
+
+# Block autorefresh
+refreshBlocked.goButton=å
許
+refreshBlocked.goButton.accesskey=A
+refreshBlocked.refreshLabel=%S 已黿¢æ¬é é¢èªåéæ°è¼å
¥ã
+refreshBlocked.redirectLabel=%S 已黿¢æ¬é é¢èªåéæ°å°åå°å
¶ä»ç¶²é ã
+
+# General bookmarks button
+# LOCALIZATION NOTE (bookmarksMenuButton.tooltip):
+# %S is the keyboard shortcut for "Show All Bookmarks"
+bookmarksMenuButton.tooltip=顯示æ¨çæ¸ç±¤ (%S)
+
+# Downloads button tooltip
+# LOCALIZATION NOTE (downloads.tooltip):
+# %S is the keyboard shortcut for "Downloads"
+downloads.tooltip=顯示ç®åä¸è¼é²åº¦ (%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=åå°æ¤é é¢â¦ (%S)
+
+# New Window button tooltip
+# LOCALIZATION NOTE (newWindowButton.tooltip):
+# %S is the keyboard shortcut for "New Window"
+newWindowButton.tooltip=éåæ°è¦çª (%S)
+
+# New Tab button tooltip
+# LOCALIZATION NOTE (newTabButton.tooltip):
+# %S is the keyboard shortcut for "New Tab"
+newTabButton.tooltip=éåæ°åé (%S)
+newTabContainer.tooltip=éåæ°åé ï¼%Sï¼\né·æå³å¯é忰容å¨åé
+newTabAlwaysContainer.tooltip=鏿è¦ç¨åªå容å¨éååé
+
+# Offline web applications
+offlineApps.available3=è¦å
許 %S 卿¨çé»è
¦ä¸å²åè³æåï¼
+offlineApps.allow.label=å
許
+offlineApps.allow.accesskey=A
+offlineApps.block.label=å°é
+offlineApps.block.accesskey=B
+
+# Canvas permission prompt
+# LOCALIZATION NOTE (canvas.siteprompt2): %S is hostname
+canvas.siteprompt2=è¦å
許 %S ä½¿ç¨æ¨ç HTML5 canvas ååè³æåï¼
+canvas.siteprompt2.warning=å¯è½æè¢«ç¶²ç«ç¨ä¾èå¥åºæ¨çé»è
¦ã
+canvas.block=å°é
+canvas.block.accesskey=B
+canvas.allow2=å
許
+canvas.allow2.accesskey=A
+canvas.remember2=è¨ä½æ¤æ±ºå®
+
+# WebAuthn prompts
+# LOCALIZATION NOTE (webauthn.registerPrompt2): %S is hostname
+webauthn.registerPrompt2=%S æ³è¦ä½¿ç¨æ¨ç䏿å®å
¨æ§éé°ä¾è¨»å帳èãæ¨å¯ä»¥ç¾å¨é£ç·ä¸¦é²è¡ææ¬ï¼æåæ¶ã
+# 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 è«æ±äºæ¨å®å
¨æ§éé°ç延伸è³è¨ï¼å¯è½æå½±é¿æ¨çé±ç§ã\n\n%2$S å¯çºæ¨å¿ååéåºçè³æï¼ä½ç¶²ç«ä¹å¯è½ææçµæ¤éé°ãè¥è¢«æçµï¼å¯ä»¥åè©¦ä¸æ¬¡ã
+# LOCALIZATION NOTE (webauthn.registerDirectPrompt3):
+# %S is hostname.
+# The website is asking for extended information about your
+# hardware authenticator that shouldn't be generally necessary. Permitting
+# this is safe if you only use one account at this website. If you have
+# multiple accounts at this website, and you use the same hardware
+# authenticator, then the website could link those accounts together.
+# And this is true even if you use a different profile / browser (or even Tor
+# Browser). To avoid this, you should use different hardware authenticators
+# for different accounts on this website.
+webauthn.registerDirectPrompt3=%S è«æ±å徿¨å®å
¨éé°çæ´å
è³è¨ï¼å¯è½ææ´©é²é±ç§ã
+# LOCALIZATION NOTE (webauthn.registerDirectPromptHint):
+# %S is brandShortName
+webauthn.registerDirectPromptHint=%S å¯å°æ¤è³è¨å¿ååï¼ä½ç¶²ç«ä¹å¯ä»¥æçµå¿ååéçéé°ãè¥è¢«æçµï¼å¯ä»¥åè©¦ä¸æ¬¡ã
+# LOCALIZATION NOTE (webauthn.signPrompt2): %S is hostname
+webauthn.signPrompt2=%S æ³è¦ä½¿ç¨å·²è¨»åçå®å
¨æ§éé°é©èæ¨ç身åãæ¨å¯ä»¥ç¾å¨é£ç·ä¸¦é²è¡ææ¬ï¼æåæ¶ã
+webauthn.cancel=åæ¶
+webauthn.cancel.accesskey=c
+webauthn.proceed=ç¹¼çº
+webauthn.proceed.accesskey=p
+webauthn.anonymize=鿝è¦å¿å
+
+# Spoof Accept-Language prompt
+privacy.spoof_english=å°èªè¨è¨å®åæçºè±æï¼å°è®æ¨æ´é£è¢«ç¶²ç«èå¥åºä¾ä¸¦è½å å¼·ä¿è·é±ç§ãæ¨æ³è¦è¦æ±è¼å
¥è±æççç¶²é åï¼
+
+# LOCALIZATION NOTE (identity.identified.verifier, identity.identified.state_and_country, identity.ev.contentOwner2):
+# %S is the hostname of the site that is being displayed.
+identity.identified.verifier=é©èæ©æ§: %S
+identity.identified.verified_by_you=æ¨å·²å°æ¤ç¶²ç«å å
¥ä¾å¤æ¸
å®ã
+identity.identified.state_and_country=%S, %S
+identity.ev.contentOwner2=æèç°½ç¼çµ¦: %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=ä¸å®å
¨
+identity.notSecure.tooltip=é£ç·ä¸å®å
¨
+
+identity.extension.label=æ´å
å¥ä»¶ï¼%Sï¼
+identity.extension.tooltip=ç±æ´å
å¥ä»¶è¼å
¥: %S
+
+# LOCALIZATION NOTE (contentBlocking.trackersView.blocked.label):
+# This label is shown next to a tracker in the trackers subview.
+# It forms the end of the (imaginary) sentence "www.example.com [was] Blocked"
+contentBlocking.trackersView.blocked.label=å·²å°é
+
+contentBlocking.trackersView.empty.label=æªå¨æ¤ç¶²ç«ä¸åµæ¸¬å°
+
+# LOCALIZATION NOTE (contentBlocking.cookies.blockingTrackers.label, contentBlocking.cookies.blocking3rdParty.label,
+# contentBlocking.cookies.blockingUnvisited.label,contentBlocking.cookies.blockingAll.label):
+contentBlocking.cookies.blockingTrackers3.label=跨網ç«è¿½è¹¤ Cookie
+contentBlocking.cookies.blocking3rdParty2.label=ç¬¬ä¸æ¹ Cookie
+contentBlocking.cookies.blockingUnvisited2.label=æªé 訪éç¶²ç«ç Cookie
+contentBlocking.cookies.blockingAll2.label=ææ Cookie
+
+contentBlocking.cookiesView.firstParty.label=ä¾èªæ¤ç¶²ç«
+# 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=æªå¨æ¤ç¶²ç«ä¸åµæ¸¬å°
+
+contentBlocking.cookiesView.trackers2.label=跨網ç«è¿½è¹¤ Cookie
+# 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=æªå¨æ¤ç¶²ç«ä¸åµæ¸¬å°
+
+contentBlocking.cookiesView.thirdParty.label=ç¬¬ä¸æ¹ Cookie
+# 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=æªå¨æ¤ç¶²ç«ä¸åµæ¸¬å°
+
+# 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=å·²å
許
+# 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=å·²å°é
+# LOCALIZATION NOTE (contentBlocking.cookiesView.removeButton.tooltip): %S is the domain of the site.
+contentBlocking.cookiesView.removeButton.tooltip=æ¸
é¤ %S ç cookie ä¾å¤è¦å
+
+# 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=å·²å°é
+
+# 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=å·²å°é
+
+trackingProtection.icon.activeTooltip2=å°é社交åªé«è¿½è¹¤å¨ã跨網ç«è¿½è¹¤ Cookie 忏使ç´è¿½è¹¤ç¨å¼ã
+trackingProtection.icon.disabledTooltip2=å·²éééå°æ¤ç¶²ç«çå å¼·å追蹤ä¿è·åè½ã
+# LOCALIZATION NOTE (trackingProtection.icon.noTrackersDetectedTooltip): %S is brandShortName.
+trackingProtection.icon.noTrackersDetectedTooltip=%S æªå¨æ¤é é¢åµæ¸¬å°å·²ç¥ç追蹤å
ç´ ã
+
+# LOCALIZATION NOTE (protections.header):
+# Header of the Protections Panel. %S is replaced with the site's hostname.
+protections.header=å° %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=éé %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=éå %S çä¿è·
+
+# Blocking and Not Blocking sub-views in the Protections Panel
+protections.blocking.fingerprinters.title=å°éæ¸ä½æç´è¿½è¹¤ç¨å¼
+protections.blocking.cryptominers.title=å°éå å¯è²¨å¹£æ¡ç¤¦ç¨å¼
+protections.blocking.cookies.trackers.title=å°é跨網ç«è¿½è¹¤ Cookie
+protections.blocking.cookies.3rdParty.title=å°éç¬¬ä¸æ¹ Cookie
+protections.blocking.cookies.all.title=å°éææ Cookie
+protections.blocking.cookies.unvisited.title=å°éä¾èªæªé 訪éç¶²ç«ç Cookie
+protections.blocking.trackingContent.title=å°é追蹤ç¨å
§å®¹
+protections.blocking.socialMediaTrackers.title=å°é社交åªé«è¿½è¹¤å¨
+protections.notBlocking.fingerprinters.title=ä¸å°éæ¸ä½æç´è¿½è¹¤ç¨å¼
+protections.notBlocking.cryptominers.title=ä¸å°éå å¯è²¨å¹£æ¡ç¤¦ç¨å¼
+protections.notBlocking.cookies.3rdParty.title=ä¸å°éç¬¬ä¸æ¹ Cookie
+protections.notBlocking.cookies.all.title=ä¸å°é Cookie
+protections.notBlocking.crossSiteTrackingCookies.title=ä¸å°é跨網ç«è¿½è¹¤ Cookie
+protections.notBlocking.trackingContent.title=ä¸å°é追蹤ç¨å
§å®¹
+protections.notBlocking.socialMediaTrackers.title=ä¸å°é社交åªé«è¿½è¹¤å¨
+
+# 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 å
+# LOCALIZATION NOTE (protections.footer.blockedTrackerCounter.tooltip):
+# %S is the date on which we started counting (e.g., July 17, 2019).
+protections.footer.blockedTrackerCounter.tooltip=èª %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=èª #3èµ·ï¼#1 å·²å°éè¶
é #2 çµè¿½è¹¤å¨
+
+# Application menu
+
+# LOCALIZATION NOTE(zoomReduce-button.tooltip): %S is the keyboard shortcut.
+zoomReduce-button.tooltip = 縮å°ï¼%Sï¼
+# LOCALIZATION NOTE(zoomReset-button.tooltip): %S is the keyboard shortcut.
+zoomReset-button.tooltip = éè¨é é¢ç¸®æ¾å¤§å°ï¼%Sï¼
+# LOCALIZATION NOTE(zoomEnlarge-button.tooltip): %S is the keyboard shortcut.
+zoomEnlarge-button.tooltip = æ¾å¤§ï¼%Sï¼
+
+# LOCALIZATION NOTE (cut-button.tooltip): %S is the keyboard shortcut.
+cut-button.tooltip = åªä¸ï¼%Sï¼
+# LOCALIZATION NOTE (copy-button.tooltip): %S is the keyboard shortcut.
+copy-button.tooltip = è¤è£½ï¼%Sï¼
+# LOCALIZATION NOTE (paste-button.tooltip): %S is the keyboard shortcut.
+paste-button.tooltip = è²¼ä¸ï¼%Sï¼
+
+# Geolocation UI
+
+geolocation.allow=å
許
+geolocation.allow.accesskey=A
+geolocation.block=å°é
+geolocation.block.accesskey=B
+geolocation.shareWithSite4=è¦å
許 %S ç¥éæ¨çæå¨ä½ç½®åï¼
+geolocation.shareWithFile4=è¦å
許éåæ¬æ©æªæ¡å忍çæå¨ä½ç½®åï¼
+# LOCALIZATION NOTE(geolocation.shareWithSiteUnsafeDelegation2):
+# %1$S is the first party origin, %2$S is the third party origin.
+geolocation.shareWithSiteUnsafeDelegation2=è¦å
許 %1$S ææ¬ %2$S å徿¨çæå¨ä½ç½®åï¼
+geolocation.remember=è¨ä½æ¤æ±ºå®
+
+# Virtual Reality Device UI
+xr.allow2=å
許
+xr.allow2.accesskey=A
+xr.block=å°é
+xr.block.accesskey=B
+xr.shareWithSite4=è¦å
許 %S ä½¿ç¨æ¨çèæ¬å¯¦å¢è£ç½®åï¼å¯è½ææ´©æ¼ææè³è¨ã
+xr.shareWithFile4=è¦å
許éåæ¬æ©æªæ¡ä½¿ç¨æ¨çèæ¬å¯¦å¢è£ç½®åï¼å¯è½ææ´©æ¼ææè³è¨ã
+xr.remember=è¨ä½æ¤æ±ºå®
+
+# Persistent storage UI
+persistentStorage.allow=å
許
+persistentStorage.allow.accesskey=A
+persistentStorage.block.label=å°é
+persistentStorage.block.accesskey=B
+persistentStorage.allowWithSite2=è¦å
許 %S å°è³æå²åæ¼æçºæ§å²å空éåï¼
+
+# Web notifications UI
+# LOCALIZATION NOTE (alwaysBlock, block)
+# The two button strings will never be shown at the same time, so
+# it's okay for them to have the same access key
+webNotifications.allow2=å
許
+webNotifications.allow2.accesskey=A
+webNotifications.notNow=ç¾å¨ä¸è¦
+webNotifications.notNow.accesskey=n
+webNotifications.never=æ°¸ä¸å
許
+webNotifications.never.accesskey=v
+webNotifications.alwaysBlock=總æ¯å°é
+webNotifications.alwaysBlock.accesskey=B
+webNotifications.block=å°é
+webNotifications.block.accesskey=B
+webNotifications.receiveFromSite3=è¦å
許 %S å³ééç¥åï¼
+
+# 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=帶æé¢éé裡ï¼
+safebrowsing.getMeOutOfHereButton.accessKey=G
+safebrowsing.deceptiveSite=è©é¨ç¶²ç«ï¼
+safebrowsing.notADeceptiveSiteButton.label=é䏿¯è©é¨ç¶²ç«â¦
+safebrowsing.notADeceptiveSiteButton.accessKey=D
+safebrowsing.reportedAttackSite=å·²ç¥çæå®³ç¶²ç«ï¼
+safebrowsing.notAnAttackButton.label=é䏿¯æå®³ç¶²ç«â¦
+safebrowsing.notAnAttackButton.accessKey=A
+safebrowsing.reportedUnwantedSite=å·²åå ±çºä¸å®å
¨çè»é«ç¶²ç«ï¼
+safebrowsing.reportedHarmfulSite=已被åå ±çºæå®³ç¶²ç«ï¼
+
+# 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=ååºå
¨é¨ #1 ååé
+
+# 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=æå° %S
+
+# troubleshootModeRestart
+# LOCALIZATION NOTE (troubleshootModeRestartPromptTitle): %S is the name of the product (e.g., Firefox)
+troubleshootModeRestartPromptTitle=è¦å° %S éæ°ååå°çé£æè§£æ¨¡å¼åï¼
+troubleshootModeRestartPromptMessage=æ¨çæ´å
å¥ä»¶ã使¯ä¸»é¡èèªè¨è¨å®å¼å°ææ«æè¢«åç¨ã
+troubleshootModeRestartButton=éæ°åå
+
+# 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 å°æèªåå³éä¸äºè³æçµ¦ %2$Sï¼è®æåè½å¤ æ¹åæ¨ç使ç¨é«é©ã
+dataReportingNotification.button.label = 鏿æè¦å享çé
ç®
+dataReportingNotification.button.accessKey = C
+
+# Process hang reporter
+# LOCALIZATION NOTE (processHang.selected_tab.label): %1$S is the name of the product (e.g., Firefox)
+processHang.selected_tab.label = é張網é è®æ¨ç %1$S è®æ
¢äºï¼å¯åæ¢èçé張網é ï¼æ¢å¾©åæ¬çé度ã
+# LOCALIZATION NOTE (processHang.nonspecific_tab.label): %1$S is the name of the product (e.g., Firefox)
+processHang.nonspecific_tab.label = æå¼µç¶²é è®æ¨ç %1$S è®æ
¢äºï¼å¯åæ¢èç該網é ï¼æ¢å¾©åæ¬çé度ã
+# LOCALIZATION NOTE (processHang.specific_tab.label): %1$S is the title of the tab.
+# %2$S is the name of the product (e.g., Firefox)
+processHang.specific_tab.label = ã%1$Sãè®æ¨ç %2$S è®æ
¢äºï¼å¯åæ¢èç該網é ï¼æ¢å¾©åæ¬çé度ã
+# LOCALIZATION NOTE (processHang.add-on.label2): %1$S is the name of the
+# extension. %2$S is the name of the product (e.g., Firefox)
+processHang.add-on.label2 = ã%1$Sãè®æ¨ç %2$S è®æ
¢äºï¼å¯åæ¢èç該æ´å
å¥ä»¶ï¼æ¢å¾©åæ¬çé度ã
+processHang.add-on.learn-more.text = äºè§£æ´å¤
+processHang.button_stop2.label = 忢
+processHang.button_stop2.accessKey = S
+processHang.button_debug.label = å°æä»¤ç¢¼é¤é¯
+processHang.button_debug.accessKey = D
+
+# LOCALIZATION NOTE (fullscreenButton.tooltip): %S is the keyboard shortcut for full screen
+fullscreenButton.tooltip=以å
¨è¢å¹æ¨¡å¼é¡¯ç¤ºè¦çª (%S)
+
+# These are visible when opening the popup inside the bookmarks sidebar
+sidebar.moveToLeft=å°å´éæ¬ç§»è³å·¦æ¹
+sidebar.moveToRight=å°å´éæ¬ç§»è³å³æ¹
+
+# LOCALIZATION NOTE (getUserMedia.shareCamera3.message,
+# getUserMedia.shareMicrophone3.message,
+# getUserMedia.shareScreen4.message,
+# getUserMedia.shareCameraAndMicrophone3.message,
+# getUserMedia.shareCameraAndAudioCapture3.message,
+# getUserMedia.shareScreenAndMicrophone4.message,
+# getUserMedia.shareScreenAndAudioCapture4.message,
+# getUserMedia.shareAudioCapture3.message):
+# %S is the website origin (e.g. www.mozilla.org)
+getUserMedia.shareCamera3.message = è¦å
許 %S ä½¿ç¨æ¨çæå½±æ©åï¼
+getUserMedia.shareMicrophone3.message = è¦å
許 %S ä½¿ç¨æ¨ç麥å
風åï¼
+getUserMedia.shareScreen4.message = è¦å
許 %S çå°æ¨çè¢å¹ç«é¢åï¼
+getUserMedia.shareCameraAndMicrophone3.message = è¦å
許 %S ä½¿ç¨æ¨çæå½±æ©è麥å
風åï¼
+getUserMedia.shareCameraAndAudioCapture3.message = è¦å
許 %S ä½¿ç¨æ¨çæå½±æ©ï¼ä¸¦è½å°éååé çè²é³åï¼
+getUserMedia.shareScreenAndMicrophone4.message = è¦å
許 %S ä½¿ç¨æ¨ç麥å
風ï¼ä¸¦çå°æ¨çç«é¢åï¼
+getUserMedia.shareScreenAndAudioCapture4.message = è¦å
許 %S è½å°éååé çè²é³ï¼ä¸¦çå°æ¨çç«é¢åï¼
+getUserMedia.shareAudioCapture3.message = è¦å
許 %S è½å°éååé çè²é³åï¼
+# LOCALIZATION NOTE (selectAudioOutput.shareSpeaker.message):
+# "Speakers" is used in a general sense that might include headphones or
+# another audio output connection.
+# %S is the website origin (e.g. www.mozilla.org)
+selectAudioOutput.shareSpeaker.message = è¦å
許 %S 使ç¨å
¶ä»é³æè¼¸åºè£ç½®åï¼
+
+# LOCALIZATION NOTE (getUserMedia.shareCameraUnsafeDelegation2.message,
+# getUserMedia.shareMicrophoneUnsafeDelegation2.message,
+# getUserMedia.shareScreenUnsafeDelegation2.message,
+# getUserMedia.shareCameraAndMicrophoneUnsafeDelegation2.message,
+# getUserMedia.shareCameraAndAudioCaptureUnsafeDelegation2.message,
+# getUserMedia.shareScreenAndMicrophoneUnsafeDelegation2.message,
+# getUserMedia.shareScreenAndAudioCaptureUnsafeDelegation2.message,
+# %1$S is the first party origin.
+# %2$S is the third party origin.
+getUserMedia.shareCameraUnsafeDelegation2.message = è¦å
許 %1$S ææ¬ %2$S ä½¿ç¨æ¨çæå½±æ©è麥å
風åï¼
+getUserMedia.shareMicrophoneUnsafeDelegations2.message = è¦å
許 %1$S ææ¬ %2$S ä½¿ç¨æ¨ç麥å
風åï¼
+getUserMedia.shareScreenUnsafeDelegation2.message = è¦å
許 %1$S ææ¬ %2$S çå°æ¨çè¢å¹ç«é¢åï¼
+getUserMedia.shareCameraAndMicrophoneUnsafeDelegation2.message = è¦å
許 %1$S ææ¬ %2$S ä½¿ç¨æ¨çæå½±æ©è麥å
風åï¼
+getUserMedia.shareCameraAndAudioCaptureUnsafeDelegation2.message = è¦å
許 %1$S ææ¬ %2$S ä½¿ç¨æ¨çæå½±æ©ï¼ä¸¦è½å°æ¤åé çè²é³åï¼
+getUserMedia.shareScreenAndMicrophoneUnsafeDelegation2.message = è¦å
許 %1$S ææ¬ %2$S ä½¿ç¨æ¨ç麥å
風ï¼ä¸¦çå°è¢å¹ç«é¢åï¼
+getUserMedia.shareScreenAndAudioCaptureUnsafeDelegation2.message = è¦å
許 %1$S ææ¬ %2$S å徿¤åé ææ¾çè²é³èè¢å¹ç«é¢åï¼
+# LOCALIZATION NOTE ():
+# "Speakers" is used in a general sense that might include headphones or
+# another audio output connection.
+# %1$S is the first party origin.
+# %2$S is the third party origin.
+selectAudioOutput.shareSpeakerUnsafeDelegation.message = è¦å
許 %1$S ææ¬ %2$S ä½¿ç¨æ¨çå
¶ä»é³æè¼¸åºè£ç½®åï¼
+
+# LOCALIZATION NOTE (getUserMedia.shareScreenWarning.message): NB: inserted via innerHTML, so please don't use <, > or & in this string.
+getUserMedia.shareScreenWarning2.message = è«å
èæ¨ä¿¡ä»»çç¶²ç«å享ç«é¢ãæ¡æç¶²ç«å¯è½æçç¨æ¨ç身åç覽ï¼ä¸¦å·èµ°æ¨çé±ç§è³æã
+# LOCALIZATION NOTE (getUserMedia.shareFirefoxWarning.message): NB: inserted via innerHTML, so please don't use <, > or & in this string.
+# %S is brandShortName (eg. Firefox)
+getUserMedia.shareFirefoxWarning2.message = è«å
èæ¨ä¿¡ä»»çç¶²ç«å享 %Sãæ¡æç¶²ç«å¯è½æçç¨æ¨ç身åç覽ï¼ä¸¦å·èµ°æ¨çé±ç§è³æã
+# LOCALIZATION NOTE(getUserMedia.shareScreen.learnMoreLabel): NB: inserted via innerHTML, so please don't use <, > or & in this string.
+getUserMedia.shareScreen.learnMoreLabel = äºè§£æ´å¤
+getUserMedia.selectWindowOrScreen2.label = è¦çªæç«é¢:
+getUserMedia.selectWindowOrScreen2.accesskey = W
+getUserMedia.pickWindowOrScreen.label = 鏿è¦çªæç«é¢
+getUserMedia.shareEntireScreen.label = æ´åç«é¢
+getUserMedia.sharePipeWirePortal.label = 使ç¨ä½æ¥ç³»çµ±è¨å®
+# LOCALIZATION NOTE (getUserMedia.shareMonitor.label):
+# %S is screen number (digits 1, 2, etc)
+# Example: Screen 1, Screen 2,..
+getUserMedia.shareMonitor.label = ç«é¢ %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 åè¦çªï¼
+# LOCALIZATION NOTE (getUserMedia.allow.label,
+# getUserMedia.block.label):
+# These two buttons are the possible answers to the various prompts in the
+# "getUserMedia.share{device}.message" strings.
+getUserMedia.allow.label = å
許
+getUserMedia.allow.accesskey = A
+getUserMedia.block.label = å°é
+getUserMedia.block.accesskey = B
+getUserMedia.remember=è¨ä½æ¤æ±ºå®
+# LOCALIZATION NOTE (getUserMedia.reasonForNoPermanentAllow.screen3,
+# getUserMedia.reasonForNoPermanentAllow.audio,
+# getUserMedia.reasonForNoPermanentAllow.insecure):
+# %S is brandShortName
+getUserMedia.reasonForNoPermanentAllow.screen3=%S ç¡æ³æ°¸ä¹
å
許å忍çç«é¢
+getUserMedia.reasonForNoPermanentAllow.audio=%S ç¡æ³æ°¸ä¹
å
許ä¸å
è©¢åè¦å享åªä¸ååé å°±ç´æ¥ååé³è¨å
§å®¹ã
+getUserMedia.reasonForNoPermanentAllow.insecure=æ¨èæ¤ç¶²ç«éçé£ç·ä¸¦ä¸å®å
¨ãçºäºä¿è·æ¨ï¼%S å°åªå
è¨±å¨æ¤æ¬¡çè¦½éæ®µé£ç·ã
+
+getUserMedia.sharingMenu.label = æ£å¨å享è£ç½®çåé
+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ï¼æå½±æ©ï¼
+getUserMedia.sharingMenuMicrophone = %Sï¼éº¥å
風ï¼
+getUserMedia.sharingMenuAudioCapture = %Sï¼åé é³è¨ï¼
+getUserMedia.sharingMenuApplication = %Sï¼æç¨ç¨å¼ï¼
+getUserMedia.sharingMenuScreen = %Sï¼ç«é¢ï¼
+getUserMedia.sharingMenuWindow = %Sï¼è¦çªï¼
+getUserMedia.sharingMenuBrowser = %Sï¼åé ï¼
+getUserMedia.sharingMenuCameraMicrophone = %Sï¼æå½±æ©è麥å
風ï¼
+getUserMedia.sharingMenuCameraMicrophoneApplication = %Sï¼æå½±æ©ã麥å
風èæç¨ç¨å¼ï¼
+getUserMedia.sharingMenuCameraMicrophoneScreen = %Sï¼æå½±æ©ã麥å
風èç«é¢ï¼
+getUserMedia.sharingMenuCameraMicrophoneWindow = %Sï¼æå½±æ©ã麥å
風èè¦çªï¼
+getUserMedia.sharingMenuCameraMicrophoneBrowser = %Sï¼æå½±æ©ã麥å
風èåé ï¼
+getUserMedia.sharingMenuCameraAudioCapture = %Sï¼æå½±æ©èåé é³è¨ï¼
+getUserMedia.sharingMenuCameraAudioCaptureApplication = %Sï¼æå½±æ©ãåé é³è¨åæç¨ç¨å¼ï¼
+getUserMedia.sharingMenuCameraAudioCaptureScreen = %Sï¼æå½±æ©ãåé é³è¨åç«é¢ï¼
+getUserMedia.sharingMenuCameraAudioCaptureWindow = %Sï¼æå½±æ©ãåé é³è¨åè¦çªï¼
+getUserMedia.sharingMenuCameraAudioCaptureBrowser = %Sï¼æå½±æ©ãåé é³è¨ååé å
§å®¹ï¼
+getUserMedia.sharingMenuCameraApplication = %Sï¼æå½±æ©èæç¨ç¨å¼ï¼
+getUserMedia.sharingMenuCameraScreen = %Sï¼æå½±æ©èç«é¢ï¼
+getUserMedia.sharingMenuCameraWindow = %Sï¼æå½±æ©èè¦çªï¼
+getUserMedia.sharingMenuCameraBrowser = %Sï¼æå½±æ©èåé ï¼
+getUserMedia.sharingMenuMicrophoneApplication = %Sï¼éº¥å
風èæç¨ç¨å¼ï¼
+getUserMedia.sharingMenuMicrophoneScreen = %Sï¼éº¥å
風èç«é¢ï¼
+getUserMedia.sharingMenuMicrophoneWindow = %Sï¼éº¥å
風èè¦çªï¼
+getUserMedia.sharingMenuMicrophoneBrowser = %Sï¼éº¥å
風èåé ï¼
+getUserMedia.sharingMenuAudioCaptureApplication = %Sï¼åé é³è¨åæç¨ç¨å¼ï¼
+getUserMedia.sharingMenuAudioCaptureScreen = %Sï¼åé é³è¨åç«é¢ï¼
+getUserMedia.sharingMenuAudioCaptureWindow = %Sï¼åé é³è¨åè¦çªå
§å®¹ï¼
+getUserMedia.sharingMenuAudioCaptureBrowser = %Sï¼åé é³è¨ååé å
§å®¹ï¼
+# 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 = æªç¥ä¾æº
+
+# LOCALIZATION NOTE(emeNotifications.drmContentDisabled.message): NB: inserted via innerHTML, so please don't use <, > or & in this string. %S will be the 'learn more' link
+emeNotifications.drmContentDisabled.message2 = æ¨å¿
é éå DRM æè½ææ¾æ¤é é¢ä¸çæäºå½±é³å
§å®¹ã
+emeNotifications.drmContentDisabled.button.label = éå DRM
+emeNotifications.drmContentDisabled.button.accesskey = E
+
+# LOCALIZATION NOTE(emeNotifications.drmContentCDMInstalling.message): NB: inserted via innerHTML, so please don't use <, > or & in this string. %S is brandShortName
+emeNotifications.drmContentCDMInstalling.message = %S æ£å¨å®è£è®æ¨ææ¾æ¤é é¢ä¸çå½±é³å
§å®¹çå
ä»¶ï¼è«ç¨å¾å試ã
+
+emeNotifications.unknownDRMSoftware = æªç¥
+
+# LOCALIZATION NOTE - %S is brandShortName
+flashHang.message = %S 調æ´äº Adobe Flash çä¸äºè¨å®ä»¥æ¹åæè½ã
+flashHang.helpButton.label = æ´å¤è³è¨â¦
+flashHang.helpButton.accesskey = L
+
+# LOCALIZATION NOTE (customizeMode.tabTitle): %S is brandShortName
+customizeMode.tabTitle = èªè¨ %S
+
+e10s.accessibilityNotice.acceptButton.label = 確å®
+e10s.accessibilityNotice.acceptButton.accesskey = O
+
+# LOCALIZATION NOTE (e10s.accessibilityNotice.jawsMessage): %S is brandShortName
+e10s.accessibilityNotice.jawsMessage = ç±æ¼ %S èæ¨çç¡éç¤è¼å©è»é«æç¸å®¹æ§åé¡ï¼ç¡æ³é¡¯ç¤ºåé å
§å®¹ãè«æ´æ°æ¨çè¢å¹é±è®å¨ææ¹ç¨ Firefox Extended Support Release çæ¬ã
+
+# 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 = ç§äºº
+userContextWork.label = åå
+userContextBanking.label = éè
+userContextShopping.label = è³¼ç©
+userContextNone.label = ç¡å®¹å¨
+
+userContextPersonal.accesskey = P
+userContextWork.accesskey = W
+userContextBanking.accesskey = B
+userContextShopping.accesskey = S
+userContextNone.accesskey = N
+
+userContext.aboutPage.label = 管ç容å¨
+userContext.aboutPage.accesskey = O
+
+userContextOpenLink.label = ç¨æ° %S åé éåéçµ
+
+muteTab.label = åé éé³
+muteTab.accesskey = M
+unmuteTab.label = åæ¶åé éé³
+unmuteTab.accesskey = M
+playTab.label = ææ¾åé
+playTab.accesskey = P
+
+muteSelectedTabs2.label = åé éé³
+# LOCALIZATION NOTE (muteSelectedTabs2.accesskey): The accesskey should
+# match the accesskey for muteTab.accesskey
+muteSelectedTabs2.accesskey = M
+unmuteSelectedTabs2.label = åæ¶åé éé³
+# LOCALIZATION NOTE (unmuteSelectedTabs2.accesskey): The accesskey should
+# match the accesskey for unmuteTab.accesskey
+unmuteSelectedTabs2.accesskey = m
+playTabs.label = ææ¾åé
+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 = å³é #1 ååé å°è£ç½®
+sendTabsToDevice.accesskey = n
+
+# LOCALIZATION NOTE (pendingCrashReports2.label): Semi-colon list of plural forms
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of pending crash reports
+pendingCrashReports2.label = æ¨æ #1 çæªéåºçé¯èª¤åå ±
+pendingCrashReports.viewAll = 檢è¦
+pendingCrashReports.send = å³é
+pendingCrashReports.alwaysSend = 總æ¯å³é
+
+decoder.noCodecs.button = äºè§£è¦æéº¼å
+decoder.noCodecs.accesskey = L
+decoder.noCodecsLinux.message = æ¨å¯è½éè¦å®è£å¿
é çè¦è¨è§£ç¢¼å¨æè½ææ¾å½±çã
+decoder.noHWAcceleration.message = è¥è¦æ¹åå½±çææ¾åè³ªï¼æ¨å¯è½éè¦å®è£å¾®è»ç Media Feature Packã
+decoder.noPulseAudio.message = è¦ææ¾é³æï¼æ¨å¯è½å¿
é å®è£ PulseAudio è»é«å¥ä»¶ã
+decoder.unsupportedLibavcodec.message = libavcodec å¯è½ä¸å®å
¨æä¸åæ¯æ´ï¼è¦ç¨ä¾ææ¾å½±ççéå
æ´æ°ã
+
+decoder.decodeError.message = 解碼åªé«è³æºæç¼çé¯èª¤ã
+decoder.decodeError.button = åå ±ç¶²ç«åé¡
+decoder.decodeError.accesskey = R
+decoder.decodeWarning.message = 解碼åªé«è³æºæç¼ç坿¢å¾©çé¯èª¤ã
+
+# 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 = æ¨å¿
é å
ç»å
¥æè½ç覽網é網路ã
+# 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 = éå網路ç»å
¥é é¢
+
+# LOCALIZATION NOTE (permissions.header):
+# %S is the hostname of the site that is being displayed.
+permissions.header = %S çæ¬éè¨å®
+permissions.remove.tooltip = æ¸
餿¤æ¬éå¾å次åæ
+
+permissions.fullscreen.promptCanceled = å·²åæ¶è«æ±æ¬é: 䏿æ¼é²å
¥ DOM å
¨è¢å¹åç¼åºæ¬éè«æ±ã
+permissions.fullscreen.fullScreenCanceled = å·²é¢é DOM å
¨è¢å¹æ¨¡å¼: 䏿æ¼é²å
¥ DOM å
¨è¢å¹æ¨¡å¼æç¼åºæ¬éè«æ±ã
+
+# LOCALIZATION NOTE (aboutDialog.architecture.*):
+# The sixtyFourBit and thirtyTwoBit strings describe the architecture of the
+# current Firefox build: 32-bit or 64-bit. These strings are used in parentheses
+# between the Firefox version and the "What's new" link in the About dialog,
+# e.g.: "48.0.2 (32-bit) " or "51.0a1 (2016-09-05) (64-bit)".
+aboutDialog.architecture.sixtyFourBit = 64 ä½å
+aboutDialog.architecture.thirtyTwoBit = 32 ä½å
+
+midi.allow.label = å
許
+midi.allow.accesskey = A
+midi.block.label = å°é
+midi.block.accesskey = B
+midi.remember=è¨ä½æ¤æ±ºå®
+midi.shareWithFile = è¦å
許éåæ¬æ©æªæ¡å忍ç MIDI è£ç½®åï¼
+# LOCALIZATION NOTE (midi.shareWithSite): %S is the name of the site URL (https://...) requesting MIDI access
+midi.shareWithSite = è¦å
許 %S å忍ç MIDI è£ç½®åï¼
+midi.shareSysexWithFile = è¦å
許éåæ¬æ©æªæ¡å忍ç MIDI è£ç½®ï¼ä¸¦æ¶ç¼ SysEx è¨æ¯åï¼
+# LOCALIZATION NOTE (midi.shareSysexWithSite): %S is the name of the site URL (https://...) requesting MIDI access
+midi.shareSysexWithSite = è¦å
許 %S å忍ç MIDI è£ç½®ï¼ä¸¦æ¶ç¼ SysEx è¨æ¯åï¼
+
+# LOCALIZATION NOTE (panel.back):
+# This is used by screen readers to label the "back" button in various browser
+#Â popup panels, including the sliding subviews of the main menu.
+panel.back = è¿å
+
+storageAccess.Allow.label = å
許åå
+storageAccess.Allow.accesskey = A
+storageAccess.DontAllow.label = å°éåå
+storageAccess.DontAllow.accesskey = B
+# 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 = æ¨æ¯å¦å
許 %1$S ä½¿ç¨ %2$S ç Cookie èç¶²ç«è³æï¼è¥å
許ï¼å¯è½æè® %3$S å¾ç¥æ¨å¨æ¤ç¶²ç«ä¸åäºä»éº¼äºã
+storageAccess.hintText = è¥æ¨ä¸èªå¾æä¸ä¿¡ä»» %1$Sï¼å°±ä¸è©²å
許å®ååã
+
+
+
+storageAccess1.Allow.label = å
許
+storageAccess1.Allow.accesskey = A
+storageAccess1.DontAllow.label = å°é
+storageAccess1.DontAllow.accesskey = B
+# LOCALIZATION NOTE (storageAccess4.message, storageAccess1.hintText):
+# %1$S is the name of the site URL (www.site1.example) trying to track the user's activity.
+# %2$S is the name of the site URL (www.site2.example) that the user is visiting. This is the same domain name displayed in the address bar.
+storageAccess4.message = è¦å
許 %1$S å¨ %2$S ä¸ä½¿ç¨è©²ç¶²ç«èªå·±ç cookie åï¼
+storageAccess1.hintText = 妿 %1$S æ²ææ¸
æ¥è§£éçºä»éº¼éè¦æ¤è³æï¼æ¨æè©²å°éå®ã
+
+
+
+confirmationHint.sendToDevice.label = å·²éåºï¼
+confirmationHint.copyURL.label = å·²è¤è£½è³åªè²¼ç°¿ï¼
+confirmationHint.pageBookmarked2.label = å·²å å
¥æ¸ç±¤
+confirmationHint.addSearchEngine.label = å·²æ°å¢æå°å¼æï¼
+confirmationHint.pinTab.label = å·²éé¸ï¼
+confirmationHint.pinTab.description = å¨åé 䏿å³éµä»¥è§£é¤éé¸
+confirmationHint.passwordSaved.label = å·²å²åå¯ç¢¼ï¼
+confirmationHint.loginRemoved.label = å·²åªé¤ç»å
¥è³è¨ï¼
+confirmationHint.breakageReport.label = å·²åå ±ï¼æè¬æ¨ï¼
+
+# LOCALIZATION NOTE (gnomeSearchProviderSearch):
+# Used for search by Gnome Shell activity screen, %S is a searched string.
+gnomeSearchProviderSearch=å°ç¶²è·¯ä¸æå° %S
diff --git a/browser/chrome/browser/customizableui/customizableWidgets.properties b/browser/chrome/browser/customizableui/customizableWidgets.properties
new file mode 100644
index 00000000000..28e4fd5c406
--- /dev/null
+++ b/browser/chrome/browser/customizableui/customizableWidgets.properties
@@ -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/.
+
+history-panelmenu.label = æ·å²
+# LOCALIZATION NOTE(history-panelmenu.tooltiptext2): %S is the keyboard shortcut
+history-panelmenu.tooltiptext2 = 顯示æ¨çç覽æ·å² (%S)
+
+remotetabs-panelmenu.label = 忥çåé
+remotetabs-panelmenu.tooltiptext2 = 顯示ä¾èªå
¶ä»è£ç½®çåé
+
+privatebrowsing-button.label = éæ°é±ç§è¦çª
+# LOCALIZATION NOTE(privatebrowsing-button.tooltiptext): %S is the keyboard shortcut
+privatebrowsing-button.tooltiptext = æ°å¢é±ç§ç覽è¦çª (%S)
+
+save-page-button.label = å²åæ¬é
+# LOCALIZATION NOTE(save-page-button.tooltiptext3): %S is the keyboard shortcut
+save-page-button.tooltiptext3 = å²åæ¤é é¢ (%S)
+
+find-button.label = å°æ¾
+# LOCALIZATION NOTE(find-button.tooltiptext3): %S is the keyboard shortcut.
+find-button.tooltiptext3 = 卿¤é é¢ä¸å°æ¾ (%S)
+
+open-file-button.label = éåæªæ¡
+# LOCALIZATION NOTE (open-file-button.tooltiptext3): %S is the keyboard shortcut.
+open-file-button.tooltiptext3 = éåæªæ¡ï¼%Sï¼
+
+developer-button.label = éç¼è
+# LOCALIZATION NOTE(developer-button.tooltiptext): %S is the keyboard shortcut
+developer-button.tooltiptext2 = éåç¶²é éç¼è
å·¥å
·ï¼%Sï¼
+
+profiler-button.label = æè½æª¢æ¸¬å¨
+profiler-button.tooltiptext = ç´éæè½æª¢æ¸¬æª
+
+sidebar-button.label = å´éæ¬
+sidebar-button.tooltiptext2 = 顯示å´éæ¬
+
+zoom-controls.label = ç¸®æ¾æ§å¶
+zoom-controls.tooltiptext2 = ç¸®æ¾æ§å¶
+
+zoom-out-button.label = 縮å°
+# LOCALIZATION NOTE(zoom-out-button.tooltiptext2): %S is the keyboard shortcut.
+zoom-out-button.tooltiptext2 = 縮å°ï¼%Sï¼
+
+# LOCALIZATION NOTE(zoom-reset-button.tooltiptext2): %S is the keyboard shortcut.
+zoom-reset-button.tooltiptext2 = éè¨é é¢ç¸®æ¾å¤§å°ï¼%Sï¼
+
+zoom-in-button.label = æ¾å¤§
+# LOCALIZATION NOTE(zoom-in-button.tooltiptext2): %S is the keyboard shortcut.
+zoom-in-button.tooltiptext2 = æ¾å¤§ï¼%Sï¼
+
+edit-controls.label = 編輯æ§å¶å
ä»¶
+edit-controls.tooltiptext2 = 編輯æ§å¶
+
+cut-button.label = åªä¸
+# LOCALIZATION NOTE(cut-button.tooltiptext2): %S is the keyboard shortcut.
+cut-button.tooltiptext2 = åªä¸ï¼%Sï¼
+
+copy-button.label = è¤è£½
+# LOCALIZATION NOTE(copy-button.tooltiptext2): %S is the keyboard shortcut.
+copy-button.tooltiptext2 = è¤è£½ï¼%Sï¼
+
+paste-button.label = è²¼ä¸
+# LOCALIZATION NOTE(paste-button.tooltiptext2): %S is the keyboard shortcut.
+paste-button.tooltiptext2 = è²¼ä¸ï¼%Sï¼
+
+email-link-button.label = å¯ééçµ
+email-link-button.tooltiptext3 = å¯åºæ¬é é¢çéçµ
+
+panic-button.label = å¿è¨
+panic-button.tooltiptext = å¿æä¸äºç覽ç´é
+
+toolbarspring.label = éæ´»ç©ºé
+toolbarseparator.label = åéç·
+toolbarspacer.label = 空ç½
diff --git a/browser/chrome/browser/downloads/downloads.properties b/browser/chrome/browser/downloads/downloads.properties
new file mode 100644
index 00000000000..394245db1ca
--- /dev/null
+++ b/browser/chrome/browser/downloads/downloads.properties
@@ -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/.
+
+# LOCALIZATION NOTE (stateStarting):
+# Indicates that the download is starting.
+stateStarting=éå§ä¸â¦
+# LOCALIZATION NOTE (stateFailed):
+# Indicates that the download failed because of an error.
+stateFailed=失æ
+# LOCALIZATION NOTE (statePaused):
+# Indicates that the download was paused by the user.
+statePaused=å·²æ«å
+# LOCALIZATION NOTE (stateCanceled):
+# Indicates that the download was canceled by the user.
+stateCanceled=已忶
+# LOCALIZATION NOTE (stateCompleted):
+# Indicates that the download was completed.
+stateCompleted=已宿
+# 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=ä¾ãå®¶é·ç£è·ãè¨å®å°é
+# 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=éåæªæ¡å«æç
æ¯ææ¡æç¨å¼ã
+blockedPotentiallyUnwanted=éåæªæ¡å¯è½æå·å®³æ¨çé»è
¦ã
+blockedPotentiallyInsecure=æªä¸è¼æªæ¡: ææ½å¨çå®å
¨æ§é¢¨éªã
+blockedUncommon2=éåæªæ¡ä¸æ¯å¸¸è¦çå¯ä¸è¼æªæ¡ã
+
+# LOCALIZATION NOTE (fileMovedOrMissing):
+# Displayed when a complete download which is not at the original folder.
+fileMovedOrMissing=æªæ¡è¢«ç§»åï¼æéºå¤±äº
+
+# 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=æ¨ç¢ºå®è¦å
許ä¸è¼éåæªæ¡ï¼
+unblockHeaderOpen=æ¨ç¢ºå®è¦æééåæªæ¡åï¼
+unblockTypeMalware=éåæªæ¡å«æç
æ¯ææ¯æå·å®³æ¨çé»è
¦çæ¡æç¨å¼ã
+unblockTypePotentiallyUnwanted2=éåæªæ¡å¯è½åæ®çºæç¨çæªæ¡è®æ¨ä¸è¼ï¼ä½å¯¦é䏿尿¨çç¨å¼èè¨å®ååºæªé æçè®æ´ã
+unblockTypeUncommon2=éåæªæ¡ä¸æ¯å¸¸è¦çå¯ä¸è¼æªæ¡ï¼éåç話å¯è½æä¸å®å
¨ãéåæªæ¡è£¡å¯è½å«æç
æ¯ï¼ææå°æ¨çç¨å¼èè¨å®ååºæªé æçè®æ´ã
+unblockInsecure=æ¤æªæ¡ä½¿ç¨ä¸å®å
¨çé£ç·ä¸è¼ï¼æªæ¡å¨ä¸è¼éç¨ä¸å¯è½æå£æéäººç«æ¹ã
+unblockTip2=æ¨å¯ä»¥æå°å
¶ä»ä¸è¼ä¾æºï¼æç¨å¾å試ã
+unblockButtonOpen=éå
+unblockButtonUnblock=å
許ä¸è¼
+unblockButtonConfirmBlock=ç§»é¤æªæ¡
+
+# LOCALIZATION NOTE (sizeWithUnits):
+# %1$S is replaced with the size number, and %2$S with the measurement unit.
+sizeWithUnits=%1$S %2$S
+sizeUnknown=æªæ¡å¤§å°æªç¥
+
+# 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 \u2014 %2$S
+statusSeparatorBeforeNumber=%1$S \u2014 %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 åæªæ¡
+
+# 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=éåæå¨è³æå¤¾
+showMacLabel=ç¨ 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=éåæªæ¡
+# 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=é試ä¸è¼
diff --git a/browser/chrome/browser/feeds/subscribe.properties b/browser/chrome/browser/feeds/subscribe.properties
new file mode 100644
index 00000000000..30362063d3a
--- /dev/null
+++ b/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=è¦æ°å¢ã%1$Sãçºèç %2$S éµçµçæç¨ç¨å¼åï¼
+addProtocolHandlerAddButton=æ°å¢æç¨ç¨å¼
+addProtocolHandlerAddButtonAccesskey=A
diff --git a/browser/chrome/browser/places/bookmarkProperties.properties b/browser/chrome/browser/places/bookmarkProperties.properties
new file mode 100644
index 00000000000..3595310d4b2
--- /dev/null
+++ b/browser/chrome/browser/places/bookmarkProperties.properties
@@ -0,0 +1,24 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+dialogAcceptLabelAddItem=æ°å¢
+dialogAcceptLabelSaveItem=å²å
+dialogAcceptLabelAddMulti=æ°å¢æ¸ç±¤
+dialogAcceptLabelEdit=å²å
+dialogTitleAddBookmark=æ°å¢æ¸ç±¤
+dialogTitleAddFolder=æ°å¢è³æå¤¾
+dialogTitleAddMulti=æ°å¢æ¸ç±¤
+dialogTitleEdit=ã%Sã屬æ§
+
+dialogTitleAddNewBookmark2=æ°å¢æ¸ç±¤
+dialogTitleEditBookmark=編輯ã%Sã
+dialogTitleEditBookmark2=編輯æ¸ç±¤
+dialogTitleAddBookmarksFolder=æ°å¢æ¸ç±¤å·¥å
·å
+dialogTitleAddBookmarkFolder=æ°å¢æ¸ç±¤å·¥å
·å
+dialogTitleEditBookmarksFolder=編輯æ¸ç±¤å·¥å
·å
+dialogTitleEditBookmarkFolder=編輯æ¸ç±¤å·¥å
·å
+
+bookmarkAllTabsDefault=[è³æå¤¾å稱]
+newFolderDefault=æ°è³æå¤¾
+newBookmarkDefault=æ°æ¸ç±¤é
ç®
diff --git a/browser/chrome/browser/places/places.dtd b/browser/chrome/browser/places/places.dtd
new file mode 100644
index 00000000000..014d7325f44
--- /dev/null
+++ b/browser/chrome/browser/places/places.dtd
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Z)">
+
+ A)">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/places/places.properties b/browser/chrome/browser/places/places.properties
new file mode 100644
index 00000000000..e2b6c86748c
--- /dev/null
+++ b/browser/chrome/browser/places/places.properties
@@ -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/.
+
+load-js-data-url-error=çºäºå®å
¨ä¸çèéï¼æ¨ç¡æ³å¾ç覽è¨éè¦çªæå´éæ¬è¼å
¥ Javascript æè³æç¶²å (Data urls)ã
+noTitle=ï¼ç¡æ¨é¡ï¼
+
+bookmarksMenuEmptyFolder=(空)
+
+bookmarksBackupTitle=æ¸ç±¤å份æªå
+
+bookmarksRestoreAlertTitle=å復æ¸ç±¤
+bookmarksRestoreAlert=éåå使ç¨åä»½è³æè¦èç®å使ç¨çæææ¸ç±¤ï¼æ¨ç¢ºå®è¦ç¹¼çºåï¼
+bookmarksRestoreTitle=è«é¸ææ¸ç±¤åä»½æªæ¡
+bookmarksRestoreFilterName=JSON
+
+bookmarksRestoreFormatError=æªæ¡é¡å䏿¯æ´ã
+bookmarksRestoreParseError=ç¡æ³èçæ¤å份æªã
+
+# 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=ä¾å稱æåº
+view.sortBy.1.name.accesskey=N
+view.sortBy.1.url.label=ä¾ç¶²åæåº
+view.sortBy.1.url.accesskey=L
+view.sortBy.1.date.label=便è¿ç覽æéæåº
+view.sortBy.1.date.accesskey=V
+view.sortBy.1.visitCount.label=ä¾çè¦½æ¬¡æ¸æåº
+view.sortBy.1.visitCount.accesskey=C
+view.sortBy.1.dateAdded.label=ä¾å å
¥æ¥ææåº
+view.sortBy.1.dateAdded.accesskey=e
+view.sortBy.1.lastModified.label=便å¾ä¿®æ¹æ¥ææåº
+view.sortBy.1.lastModified.accesskey=M
+view.sortBy.1.tags.label=便¨ç±¤æåº
+view.sortBy.1.tags.accesskey=T
+
+searchBookmarks=æå°æ¸ç±¤
+searchHistory=æå°è¨é
+searchDownloads=æå°ä¸è¼
+
+SelectImport=å¯å
¥æ¸ç±¤æªæ¡
+EnterExport=å¯åºæ¸ç±¤æªæ¡
+
+detailsPane.noItems=ç¡é
ç®
+# 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 åé
ç®
+
+# LOCALIZATION NOTE (lockPrompt.text)
+# %S will be replaced with the application name.
+lockPrompt.title=ç覽å¨ååé¯èª¤
+lockPrompt.text=å çº %S çæªæ¡è¢«å
¶ä»ç¨å¼éå®ï¼æ¸ç±¤èç覽è¨éå°ç¡æ³ä½¿ç¨ãæäºå®å
¨è»é«æå°è´éååé¡ã
+
+# 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=åªé¤é é¢
+cmd.deleteSinglePage.accesskey=D
+cmd.deleteMultiplePages.label=åªé¤é é¢
+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=å°é é¢å å
¥æ¸ç±¤
+cmd.bookmarkSinglePage.accesskey=B
+cmd.bookmarkMultiplePages.label=å°é é¢å å
¥æ¸ç±¤
+cmd.bookmarkMultiplePages.accesskey=B
diff --git a/browser/chrome/browser/safebrowsing/safebrowsing.properties b/browser/chrome/browser/safebrowsing/safebrowsing.properties
new file mode 100644
index 00000000000..9a8bbe88c22
--- /dev/null
+++ b/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=é䏿¯è©é¨ç¶²ç«
+errorReportFalseDeceptiveMessage=ç®åç¡æ³åå ±æ¤é¯èª¤ã
diff --git a/browser/chrome/browser/search.properties b/browser/chrome/browser/search.properties
new file mode 100644
index 00000000000..dcb604e9edb
--- /dev/null
+++ b/browser/chrome/browser/search.properties
@@ -0,0 +1,33 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+searchtip=ä½¿ç¨ %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=æå° %S
+
+# LOCALIZATION NOTE (cmd_pasteAndSearch): "Search" is a verb, this is the
+# search bar equivalent to the url bar's "Paste & Go"
+cmd_pasteAndSearch=è²¼ä¸ä¸¦æå°
+
+cmd_clearHistory=æ¸
餿å°è¨é
+cmd_clearHistory_accesskey=h
+
+# LOCALIZATION NOTE (searchForSomethingWith2):
+# This string is used to build the header above the list of one-click
+# search providers: "Search for with:"
+searchForSomethingWith2=æå° %S 使ç¨:
+
+# 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=æå°:
+
+# LOCALIZATION NOTE (searchSettings):
+# This is the label for the button that opens Search preferences.
+searchSettings=è®æ´æå°è¨å®
+
diff --git a/browser/chrome/browser/shellservice.properties b/browser/chrome/browser/shellservice.properties
new file mode 100644
index 00000000000..0ce8a388e11
--- /dev/null
+++ b/browser/chrome/browser/shellservice.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 (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=é è¨ç覽å¨
+setDefaultBrowserMessage=%S ç®å䏿¯æ¨çé è¨ç覽å¨ãè¦è¨å®çºé è¨ç覽å¨åï¼
+setDefaultBrowserDontAsk=æ¯æ¬¡åå %S æé½éæ°æª¢æ¥
+setDefaultBrowserAlertConfirm.label=å° %S è¨çºæçé è¨ç覽å¨
+setDefaultBrowserAlertNotNow.label=ç¾å¨ä¸è¦
+
+desktopBackgroundLeafNameWin=æ¡å¸.bmp
+DesktopBackgroundDownloading=æ£å¨å²ååçâ¦
+DesktopBackgroundSet=è¨çºæ¡å¸
+
diff --git a/browser/chrome/browser/siteData.properties b/browser/chrome/browser/siteData.properties
new file mode 100644
index 00000000000..c62901f11de
--- /dev/null
+++ b/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=æ¸
餿æ Cookie èç¶²ç«è³æ
+# LOCALIZATION NOTE (clearSiteDataPromptText): %S = brandShortName
+clearSiteDataPromptText=鏿ãç«å»æ¸
é¤ãå¾å°±ææ¸
餿æ %S å²åç Cookie èç¶²ç«è³æãå¯è½æå°æ¨å¾è¨±å¤ç¶²ç«ç»åºï¼ä¸¦æ¸
é¤ç¶²é é¢ç·å
§å®¹ã
+clearSiteDataNow=ç«å»æ¸
é¤
diff --git a/browser/chrome/browser/sitePermissions.properties b/browser/chrome/browser/sitePermissions.properties
new file mode 100644
index 00000000000..763a5135e93
--- /dev/null
+++ b/browser/chrome/browser/sitePermissions.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/.
+
+# 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 = å·²å
許
+state.current.allowedForSession = å·²æ¼æ¤æ¬¡çè¦½éæ®µå
許
+state.current.allowedTemporarily = æ«æå
許
+state.current.blockedTemporarily = æ«æå°é
+state.current.blocked = å·²å°é
+state.current.prompt = 總æ¯è©¢å
+
+# 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 = 總æ¯è©¢å
+state.multichoice.allow = å
許
+state.multichoice.allowForSession = æ¤æ¬¡çè¦½éæ®µå
許
+state.multichoice.block = å°é
+
+state.multichoice.autoplayblock = å°éé³è¨
+state.multichoice.autoplayblockall = å°éå½±é³å
§å®¹
+state.multichoice.autoplayallow = å
許èªåææ¾å½±é³å
§å®¹
+
+permission.autoplay.label = èªåææ¾
+permission.cookie.label = è¨å® Cookie
+permission.desktop-notification3.label = å³ééç¥
+permission.camera.label = ä½¿ç¨æå½±æ©
+permission.microphone.label = 使ç¨éº¥å
風
+permission.screen.label = å享ç«é¢
+permission.install.label = å®è£éå å
ä»¶
+permission.popup.label = éåå½åºåè¦çª
+permission.geo.label = å徿¨çæå¨ä½ç½®
+permission.xr.label = ååèæ¬å¯¦å¢è£ç½®
+permission.shortcuts.label = 忽ç¥å¿«ééµ
+permission.focus-tab-by-prompt.label = åæè³æ¤åé
+permission.persistent-storage.label = å°è³æå²åæ¼æçºæ§å²å空é
+permission.canvas.label = æ½å Canvas è³æ
+permission.midi.label = åå MIDI è£ç½®
+permission.midi-sysex.label = åå MIDI è£ç½®ä¸¦æ¯æ´ SysEx
+# LOCALIZATION NOTE (permission.open-protocol-handler.label):
+# Open as a verb. "This site may open applications".
+permission.open-protocol-handler.label = éåæç¨ç¨å¼
diff --git a/browser/chrome/browser/syncSetup.properties b/browser/chrome/browser/syncSetup.properties
new file mode 100644
index 00000000000..7d0e9fea951
--- /dev/null
+++ b/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 = ç¹¼çº
+
+relinkVerify.title = è³æåä½µè¦å
+relinkVerify.heading = æ¨ç¢ºå®è¦ç»å
¥ Sync åï¼
+# LOCALIZATION NOTE (relinkVerify.description): Email address of a user previously signed into sync.
+relinkVerify.description = å
åå·²æä¸å使ç¨è
ç»å
¥æ¤é»è
¦ç Syncãè¥ç¹¼çºåæ¥å°æè %S åä½µæ¤ç覽å¨ä¸çæ¸ç±¤ãå¯ç¢¼èå
¶ä»è¨å®
diff --git a/browser/chrome/browser/tabbrowser.properties b/browser/chrome/browser/tabbrowser.properties
new file mode 100644
index 00000000000..4a84115c714
--- /dev/null
+++ b/browser/chrome/browser/tabbrowser.properties
@@ -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/.
+
+tabs.emptyTabTitle=æ°åé
+tabs.emptyPrivateTabTitle=é±ç§ç覽
+tabs.closeTab=ééåé
+tabs.close=éé
+tabs.closeTitleTabs=è¦ééåé åï¼
+tabs.closeTabsAndQuitTitle=è¦ééåé 並é¢éåï¼
+tabs.closeTabsAndQuitTitleWin=è¦ééåé ä¸¦çµæåï¼
+# LOCALIZATION NOTE (tabs.closeWarningMultipleTabs):
+# 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.closeWarningMultipleTabs=å³å°éé #1 ååé ã
+# LOCALIZATION NOTE (tabs.closeWarningMultipleTabsSessionRestore):
+# 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.closeWarningMultipleTabsSessionRestore=å³å°éé #1 ååé ãéæ°ååå¾å°æ¢å¾©ä¸å¨é±ç§è¦çªä¸çåé ã
+
+# This section applies when closing a window with more than one tab open,
+# or when quitting when only one window is open.
+# LOCALIZATION NOTE (tabs.closeTabsTitle):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# The singular form is not considered since this string is used only for
+# multiple tabs.
+tabs.closeTabsTitle=è¦éé #1 ååé åï¼
+tabs.closeTabsConfirmCheckbox=ééå¤ååé åè·æç¢ºèª
+tabs.closeButtonMultiple=ééåé
+tabs.closeWarningPrompt=ééå¤ååé æè¦åæ
+
+# LOCALIZATION NOTE (tabs.closeWarningMultipleWindows2):
+# 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.closeWarningMultipleWindows2=å³å°éé #1 åè¦çª%Sã
+# LOCALIZATION NOTE (tabs.closeWarningMultipleWindowsSessionRestore3):
+# 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.closeWarningMultipleWindowsSessionRestore3=å³å°éé #1 åè¦çª%Sãéæ°ååå¾å°æ¢å¾©ä¸å¨é±ç§è¦çªä¸çåé ã
+
+# 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.closeWarningMultipleWindows2
+tabs.closeWarningMultipleWindowsTabSnippet=ï¼å« #1 ååé ï¼
+
+# This section applies when quitting using the menu and multiple windows are open.
+# LOCALIZATION NOTE (tabs.closeTitleTabs):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# The forms for 0 or 1 items are not considered since this string is used only for
+# multiple windows. The %S replacement form will be replaced with the contents
+tabs.closeWindowsTitle=è¦éé #1 åè¦çªåï¼
+tabs.closeWindowsButton=éé並é¢é
+# Same as tabs.closeWindowsButton, but on Windows
+tabs.closeWindowsButtonWin=ééä¸¦çµæ
+
+# LOCALIZATION NOTE (tabs.closeTabsWithKeyTitle and closeTabsWithKeyButton):
+# This section applies when quitting using the keyboard shortcut (Ctrl/Cmd+Q)
+# Windows does not show a prompt on quit when using the keyboard shortcut by
+# default.
+# %S is replaced with brandShorterName
+tabs.closeTabsWithKeyTitle=è¦ééè¦çªä¸¦é¢é %S åï¼
+# %S is replaced with brandShorterName
+tabs.closeTabsWithKeyButton=é¢é %S
+
+# LOCALIZATION NOTE (tabs.closeTabsWithKeyConfirmCheckbox):
+# %S is replaced with the text of the keyboard shortcut for quitting.
+tabs.closeTabsWithKeyConfirmCheckbox=æä¸ %S é¢éåè·æç¢ºèª
+
+# LOCALIZATION NOTE (tabs.closeTabs.tooltip):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of tabs that will be closed. This is ignored for the
+# single tab case in English, but can be used by other locales as necessary.
+tabs.closeTabs.tooltip=éé #1 ååé
+
+# 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=å° #1 ååé éé³ï¼%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=åæ¶éé³ #1 ååé ï¼%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=å° #1 ååé éé³
+
+# 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=åæ¶éé³ #1 ååé
+
+# 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=ææ¾ #1 ååé ç鳿
+
+# 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=éå確èª
+tabs.openWarningMultipleBranded=æ¨æ£è¦éå %S ååé ï¼æä½¿ %S æ¼è¼å
¥é 颿è®å¾å¾æ
¢ãæ¨ç¢ºå®è¦ç¹¼çºåï¼
+tabs.openButtonMultiple=éååé
+tabs.openWarningPromptMeBranded=éåå¤ååé 使 %S è®æ
¢æè¦å
+
+browsewithcaret.checkMsg=䏿¬¡ä¸è¦å顯示æ¤å°è©±æ¹å¡ã
+browsewithcaret.checkWindowTitle=éµç¤ç覽
+browsewithcaret.checkLabel=æ F7 éµå¯åæãéµç¤ç覽ãåè½ééãæ¤åè½æå¨ç¶²é ä¸é¡¯ç¤ºæ¸¸æ¨ï¼è®æ¨åªç¨éµç¤å°±è½é¸åæåæç覽網é ã確å®è¦éåãéµç¤ç覽ãåè½åï¼
diff --git a/browser/chrome/browser/taskbar.properties b/browser/chrome/browser/taskbar.properties
new file mode 100644
index 00000000000..939444c5383
--- /dev/null
+++ b/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=éåæ°åé
+taskbar.tasks.newTab.description=éåæ°ç覽å¨åé ã
+taskbar.tasks.newWindow.label=éåæ°è¦çª
+taskbar.tasks.newWindow.description=éåæ°ç覽å¨è¦çªã
+taskbar.tasks.newPrivateWindow.label=éæ°é±ç§è¦çª
+taskbar.tasks.newPrivateWindow.description=使ç¨é±ç§ç覽模å¼éåæ°è¦çªã
+taskbar.frequent.label=常ç¨ç¶²é
+taskbar.recent.label=æè¿
diff --git a/browser/chrome/browser/translation.dtd b/browser/chrome/browser/translation.dtd
new file mode 100644
index 00000000000..cd4b2a5471d
--- /dev/null
+++ b/browser/chrome/browser/translation.dtd
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/translation.properties b/browser/chrome/browser/translation.properties
new file mode 100644
index 00000000000..3765450fe39
--- /dev/null
+++ b/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=æ°¸ä¸ç¿»è¯%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/browser/chrome/browser/uiDensity.properties b/browser/chrome/browser/uiDensity.properties
new file mode 100644
index 00000000000..08a51a53764
--- /dev/null
+++ b/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=å·²éåå¹³æ¿é»è
¦æ¨¡å¼
diff --git a/browser/chrome/browser/webrtcIndicator.properties b/browser/chrome/browser/webrtcIndicator.properties
new file mode 100644
index 00000000000..603629fff47
--- /dev/null
+++ b/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 â å享æç¤ºå¨
+
+webrtcIndicator.sharingCameraAndMicrophone.tooltip = æ£å¨å享æ¨çæå½±æ©è麥å
風ã黿æ¤èä¾èª¿æ´è¦å享çé
ç®ã
+webrtcIndicator.sharingCamera.tooltip = æ£å¨å享æ¨çæå½±æ©ã黿æ¤èä¾èª¿æ´è¦å享çé
ç®ã
+webrtcIndicator.sharingMicrophone.tooltip = æ£å¨å享æ¨ç麥å
風ã黿æ¤èä¾èª¿æ´è¦å享çé
ç®ã
+webrtcIndicator.sharingApplication.tooltip = æ£å¨å享æç¨ç¨å¼ï¼é»ææ¤èä¾èª¿æ´è¦å享çé
ç®ã
+webrtcIndicator.sharingScreen.tooltip = æ£å¨å享æ¨çç«é¢ã黿æ¤èä¾èª¿æ´è¦å享çé
ç®ã
+webrtcIndicator.sharingWindow.tooltip = æ£å¨å享æ¨çæåè¦çªã黿æ¤èä¾èª¿æ´è¦å享çé
ç®ã
+webrtcIndicator.sharingBrowser.tooltip = æ£å¨å享æååé ï¼é»ææ¤èä¾èª¿æ´è¦å享çé
ç®ã
+
+
+# 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 = èã%Sãå享æå½±æ©
+webrtcIndicator.sharingMicrophoneWith.menuitem = èã%Sãå享麥å
風
+webrtcIndicator.sharingApplicationWith.menuitem = èã%Sãå享æç¨ç¨å¼
+webrtcIndicator.sharingScreenWith.menuitem = èã%Sãå享ç«é¢
+webrtcIndicator.sharingWindowWith.menuitem = èã%Sãå享è¦çª
+webrtcIndicator.sharingBrowserWith.menuitem = èã%Sãå享åé
+webrtcIndicator.controlSharing.menuitem = 調æ´å享çé
ç®
+# LOCALIZATION NOTE (webrtcIndicator.sharingCameraWithNTabs.menuitem):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+webrtcIndicator.sharingCameraWithNTabs.menuitem = è #1 ååé å享æå½±æ©
+# LOCALIZATION NOTE (webrtcIndicator.sharingMicrophoneWithNTabs.menuitem):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+webrtcIndicator.sharingMicrophoneWithNTabs.menuitem = è #1 ååé å享麥å
風
+# LOCALIZATION NOTE (webrtcIndicator.sharingApplicationWithNTabs.menuitem):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+webrtcIndicator.sharingApplicationWithNTabs.menuitem = è #1 ååé å享æç¨ç¨å¼
+# LOCALIZATION NOTE (webrtcIndicator.sharingScreenWithNTabs.menuitem):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+webrtcIndicator.sharingScreenWithNTabs.menuitem = è #1 ååé å享ç«é¢
+# LOCALIZATION NOTE (webrtcIndicator.sharingWindowWithNTabs.menuitem):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+webrtcIndicator.sharingWindowWithNTabs.menuitem = æ£è #1 ååé å享è¦çª
+# 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 = æ£è #1 ååé å享åé
+# LOCALIZATION NOTE (webrtcIndicator.controlSharingOn.menuitem):
+# %S is the title of the tab using the share.
+webrtcIndicator.controlSharingOn.menuitem = 調æ´èã%Sãå享çé
ç®
diff --git a/browser/chrome/overrides/appstrings.properties b/browser/chrome/overrides/appstrings.properties
new file mode 100644
index 00000000000..89c326a8f3b
--- /dev/null
+++ b/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=è«æª¢æ¥ URL æ¯å¦æ£ç¢ºï¼ç¶å¾åè©¦ä¸æ¬¡ã
+fileNotFound=Firefox æ¾ä¸å°æªæ¡ %Sã
+fileAccessDenied=ç¡æ³è®å使¼ %S çæªæ¡ã
+dnsNotFound2=ç¡æ³é£ç·è³ä¼ºæå¨ %Sã
+unknownProtocolFound=Firefox ä¸ç¥éå¦ä½éåæ¤ç¶²åï¼å çºä¸åéè¨åå®ç¶ä¸çæåéè¨åå® (%S) æªèä»»ä½ç¨å¼éè¯ï¼æä¸è¢«å
è¨±å¨æ¤ç°å¢ä¸ä½¿ç¨ã
+connectionFailure=Firefox ç¡æ³è伺æå¨ %S 建ç«é£ç·ã
+netInterrupt=è¼å
¥é 颿è %S çé£ç·ä¸æ·ã
+netTimeout=伺æå¨ %S è±äºå¤ªä¹
æé鿝ç¡åæã
+redirectLoop=Firefox ç¼ç¾ä¼ºæå¨è¦å°æ¤ç¶²åéæ°å°åçè¦æ±ç¡æ³å®æã
+## LOCALIZATION NOTE (confirmRepostPrompt): In this item, donât translate "%S"
+confirmRepostPrompt=%S å¿
é éæ°å³éå
åééçè³ææè½é¡¯ç¤ºæ¤ç¶²é ãéæéå䏿¬¡ææäºæ
ï¼åæ¯æå°æç·ä¸è³¼ç©ï¼ã
+resendButton.label=éæ°å³é
+unknownSocketType=Firefox ä¸ç¥éå¦ä½è伺æå¨éè¨ã
+netReset=è¼å
¥é 颿è伺æå¨çé£ç·è¢«éè¨ã
+notCached=æ¤æä»¶å·²ä¸åå¨ã
+netOffline=Firefox æ£èæ¼é¢ç·æ¨¡å¼ï¼ç¡æ³ç覽網路ã
+isprinting=ä¸è½ä¿®æ¹åå°æé 覽åå°ä¸çæä»¶ã
+deniedPortAccess=æ¤ç¶²åæç¨çéè¨å (Port) é叏䏿¯ç¨æ¼ç¶²è·¯ç覽ãçºäºå®å
¨æ§èéï¼Firefox å·²ç¶åæ¶é£ç·è¦æ±ã
+proxyResolveFailure=Firefox æ¾ä¸å°æ¨æè¨å®ç Proxy 伺æå¨ã
+proxyConnectFailure=Firefox ç¡æ³èæ¨è¨å®ç Proxy 伺æå¨é£ç·ã
+contentEncodingError=æ¨å試檢è¦çé é¢ç¡æ³é¡¯ç¤ºï¼å çºå
¶ä¸ä½¿ç¨äºç¡ææä¸æ¯æ´çå£ç¸®é¡åã
+unsafeContentType=å çºå
¶ä¸å«æå¯è½ä¸å®å
¨çæªæ¡é¡åï¼ç¡æ³é¡¯ç¤ºæ¨å試檢è¦çé é¢ãè«åç¶²ç«ææè
åå ±æ¤åé¡ã
+externalProtocolTitle=å¤é¨éè¨åå®è¦æ±
+externalProtocolPrompt=è¦èç %1$S: éçµéè¦å¤é¨ç¨å¼ã\n\n\nè¦æ±éçµ:\n\n%2$S\næç¨ç¨å¼: %3$S\n\n\nè¥éä¸å¨æ¨çé æä¹ä¸ï¼å¯è½æ¯æäººå¨è©¦åå©ç¨å
¶å®ç¨å¼å
¥ä¾µãé¤éæ¨å¾ç¢ºå®éæ²åé¡ï¼ä¸ç¶è«é¸åæ¶ã
+#LOCALIZATION NOTE (externalProtocolUnknown): The following string is shown if the application name can't be determined
+externalProtocolUnknown=<æªç¥>
+externalProtocolChkMsg=å°æ¼æ¤é¡éçµä¸å¾ä½¿ç¨ä¸¦è¨ä½æç鏿
+externalProtocolLaunchBtn=å·è¡ç¨å¼
+malwareBlocked=%S éåç¶²ç«è¢«åå ±çºæå®³ç¶²ç«ï¼å·²ä¾ç
§æ¨çå®å
¨æ§å好è¨å®äºä»¥å°éã
+harmfulBlocked=%S éåç¶²ç«è¢«åå ±çºå¯è½æå®³çç¶²ç«ï¼å·²ä¾ç
§æ¨çå®å
¨æ§å好è¨å®äºä»¥å°éã
+unwantedBlocked=%S éåç¶²ç«è¢«åå ±çºæä¾ä¸å®å
¨çè»é«ï¼å·²ä¾ç
§æ¨çå®å
¨æ§å好è¨å®äºä»¥å°éã
+deceptiveBlocked=使¼ %S çé張網é 已被åå ±çºè©é¨ç¶²ç«ï¼ä¸¦å·²ä¾ç
§å®å
¨æ§å好è¨å®å°éã
+cspBlocked=éåé é¢å
å«äºå
§å®¹å®å
¨æ¿çä»¥è´æ¼ç¡æ³ä»¥é種æ¹å¼è¢«è¼å
¥ã
+xfoBlocked=éåé é¢å
å« X-Frame-Options æ¿çï¼ä»¥è´æ¼ç¡æ³ä»¥é種æ¹å¼è¼å
¥ã
+corruptedContentErrorv2=ç¶²ç« %S ç¼çäºéåéè¨åå®çæ
æ³ï¼ç¡æ³ä¿®å¾©ã
+remoteXUL=éåé é¢ä½¿ç¨äºå·²ç¶é è¨ä¸åæ¼ Firefox å¯ç¨çæªæ¯æ´æè¡ã
+## LOCALIZATION NOTE (sslv3Used) - Do not translate "%S".
+sslv3Used=Firefox ç¡æ³ä¿èæ¨å¨ %S çè³æå®å
¨ï¼å çºæ¤ç¶²ç«ä½¿ç¨ SSLv3 éè¨åå®ï¼éååå®å·²ä¸åå®å
¨ã
+inadequateSecurityError=æ¤ç¶²ç«å試建ç«å®å
¨æ§ä¸è¶³çé£ç·ã
+blockedByPolicy=æ¨ççµç¹å·²å°éååæ¤ç¶²é æç¶²ç«ã
+networkProtocolError=Firefox éå°äºéåéè¨åå®çæ
æ³ï¼ç¡æ³ä¿®å¾©ã
diff --git a/browser/chrome/overrides/netError.dtd b/browser/chrome/overrides/netError.dtd
new file mode 100644
index 00000000000..27e9b8d0bee
--- /dev/null
+++ b/browser/chrome/overrides/netError.dtd
@@ -0,0 +1,183 @@
+
+
+
+%brandDTD;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+è¥ç¶²åæ£ç¢ºç¡èª¤ï¼éå¯è©¦è©¦ä¸åæ¹å¼:
+
+ - ç¨åå試ã
+ - 檢æ¥ç¶²è·¯é£ç·æ¯å¦æ£å¸¸ã
+ - è¥ééé²ç«çé£ç·ï¼è«æª¢æ¥ &brandShortName; æ¯å¦ææ¬é£ç·å°ç¶²é網路ã
+
">
+
+
+ è«æª¢æ¥æªåæ¯å¦æå¤§å°å¯«é¯èª¤ãæ¼é¯åã
+ è«æª¢æ¥æªæ¡æ¯å¦å·²è¢«ç§»åãæ¹åæåªé¤ã
+
+">
+
+å¯è½æ¯æªæ¡è¢«ç§»èµ°ãç§»é¤ï¼æå忬é䏿£ç¢ºï¼é æç¡æ³ååã">
+
+&brandShortName; å çºæäºåå ç¡æ³è¼å
¥æ¤ç¶²é ã
+">
+
+
+æ¨å¿
é å
ç»å
¥æè½ååç¶²é網路ã">
+
+
+
+
+
+
+
+æ¨æè«æ±çæä»¶å·²ä¸å卿¼ &brandShortName; çå¿«åç¶ä¸ã- çºäºæ¨çå®å
¨ï¼&brandShortName; å°ä¸æèªåéæ°è«æ±æææä»¶ã
- è«é»ä¸éè©¦ä»¥éæ°åç¶²ç«è«æ±å徿件ã
">
+
+
+ è«æä¸ãé試ã以åæå°é£ç·æ¨¡å¼ä¸¦éæ°è¼å
¥é é¢ã
+
+">
+
+
+ è«åç¶²ç«ææè
åå ±æ¤åé¡ã
+
+">
+
+
+ è«åç¶²ç«ææè
åå ±æ¤åé¡ã
+
+">
+
+
+
+
+
+æ¨å¯è½éè¦å®è£å
¶ä»è»é«æè½éåæ¤ç¶²åã">
+
+
+ è«æª¢æ¥ Proxy è¨å®æ¯å¦æ£ç¢ºã
+ èæ¨ç網路管çå¡è¯çµ¡ï¼ç¢ºå® Proxy 伺æå¨æ£å¸¸éä½ã
+
+">
+
+
+ è«æª¢æ¥ Proxy è¨å®æ¯å¦æ£ç¢ºã
+ è«æª¢æ¥æ¨ç網路é£ç·çæ
ã
+ è¥é»è
¦æç¶²è·¯è¢«é²ç«çæ Proxy ä¿è·ï¼è«ç¢ºå®
+ &brandShortName; 被å
許åå網路ã
+
+">
+
+
+ ææååç¨ææçµæ¥å Cookie æé ææ¤åé¡ã
+
+">
+
+
+ è«ç¢ºå®é»è
¦å·²å®è£å人å®å
¨ç®¡çå¡ (Personal Security Manager)ã
+ å¯è½æ¯ä¼ºæå¨ä¸ç鿍æºè¨å®æé æçã
+
+">
+
+
+ å çºç¡æ³é©èå·²æ¥æ¶è³æçç實æ§ï¼ç¡æ³é¡¯ç¤ºæ¨å試檢è¦çé é¢ã
+ è«åç¶²ç«ææè
åå ±æ¤åé¡ã
+">
+
+
+ãè¥ç¹¼çºé 訪æ¤ç¶²ç«ï¼æ»æè
å¯è½æå試å·èµ°æ¨çå¯ç¢¼ãé»åéµä»¶æä¿¡ç¨å¡è³æçåè³ã">
+ãæ¤ç¶²ç«å¿
é 使ç¨å®å
¨æ§é£ç·ã">
+
+ãæ¤ç¶²ç«å¯è½æè¨å®åé¡ï¼ææ¨çé»è
¦ä¸çæé䏿£ç¢ºã">
+
+
+
+
+
+éåå顿æå¯è½æ¯ç±æ¼ç¶²ç«ç«¯çè¨å®ä¸æ£ç¢ºï¼ç¡æ³ç±æ¨èª¿æ´è¨å®è§£æ±ºã
+è¥ç®åé£ç·å°ä¼æ¥å
§é¨ç¶²è·¯ï¼ææä½¿ç¨é²æ¯è»é«ï¼è«æ´½è©¢æè¡æ¯æ´åéãä¹å¯ä»¥éç¥ç¶²ç«ç®¡çå¡èçéååé¡ã
">
+
+æ¨ç®åçé»è
¦æéè¨å®çº ãè«å°ç³»çµ±è¨å®ä¸ç¢ºèªæ¤æ¥æãæéãæåæ¯å¦æ£ç¢ºï¼ç¶å¾éæ°è¼å
¥ ã
+è¥æ¨çæéæ¯æ£ç¢ºçï¼å¯è½æ¯ç¶²ç«ä¼ºæå¨è¨å®æèª¤ï¼æ²æè¾¦æ³ç±æ¨è§£æ±ºéååé¡ï¼è«éç¥ç¶²ç«ç®¡çå¡éååé¡ã
">
+
+éåå顿æå¯è½æ¯ç±æ¼ç¶²ç«ç«¯çè¨å®ä¸æ£ç¢ºï¼ç¡æ³ç±æ¨èª¿æ´è¨å®è§£æ±ºãè«éç¥ç¶²ç«ç®¡çå¡èçã">
+
+
+ 該網ç«å¯è½æ«æç¡æ³ä½¿ç¨æå¤ªéå¿ç¢ï¼è«éå¹¾åéå¾å試試ã
+ è¥ç¡æ³è¼å
¥ä»»ä½ç¶²ç«ï¼è«æª¢æ¥æ¨ç網路é£ç·çæ
ã
+ è¥é»è
¦æç¶²è·¯è¢«é²ç«çæ Proxy ä¿è·ï¼è«ç¢ºå®
+ &brandShortName; 被å
許åå網路ã
+
+">
+
+&brandShortName; 黿¢äºéåé é¢è¼å
¥ï¼å çºéåé é¢çå
§å®¹å®å
¨æ¿çä¸å
許å
¶ä»¥é種æ¹å¼è¢«è¼å
¥ã">
+
+å çºéåé é¢å
å« X-Frame-Options æ¿çï¼ä¸å
許以é種æ¹å¼è¼å
¥ï¼&brandShortName; å°éäºéåé é¢è¼å
¥ã">
+
+å çºå¨è³æå³è¼¸éç¨ç¶ä¸åµæ¸¬å°é¯èª¤ï¼ç¡æ³é¡¯ç¤ºæ¨æ£è¦æª¢è¦çé é¢ã- è«éç¥ç¶²ç«ç®¡çè
以è®ä»åç¥ééååé¡ã
">
+
+
+
+
+
+
+- è«è¯çµ¡ç¶²ç«ç®¡çå¡ä»¥éç¥ä»åéååé¡ã
">
+
+
+
+
+
+
+ æä¸æ¢ç¨±çº HTTP Strict Transport Security (HSTS) çå®å
¨æ§æ¿çï¼è® &brandShortName; å
è½èå
¶é²è¡å®å
¨é£ç·ãæ¨ç¡æ³å å
¥ä¾å¤ï¼æåæé¤æ¤æ¿çã">
+
+
+
+ 使ç¨éæçå®å
¨æ§æè¡ï¼å®¹æéåæ»æãæ»æè
å¯ä»¥ç°¡å®å°å¾ç¥æ¨èªçºå®å
¨çè³è¨ãç¶²ç«ç®¡çå¡ä¿®æ£ä¼ºæå¨è¨å®å¾æ¨æè½é£ç·è³æ¤ç¶²ç«ãé¯èª¤ä»£ç¢¼: NS_ERROR_NET_INADEQUATE_SECURITY
">
+
+
+
+ æè©²æ¯ä¸åå®å
¨çç¶²ç«ï¼ä½ç¡æ³å»ºç«å®å
¨é£ç·ãéåå顿¯ç± é æçï¼å¯è½æ¯ä¾èªæ¨çé»è
¦ææ¨çæå¨ç¶²è·¯ä¸çè»é«ã">
+
+
+ï¼éå¯è½æ¯ä¸å ´æ»æï¼æ¨ä¸è©²ç¹¼çºåå¾è©²ç¶²ç«ã">
+ï¼éå¯è½æ¯ä¸å ´æ»æï¼æ¨ç¡æ³ååä»éº¼ä»¥åå¾è©²ç¶²ç«ã">
+
+ï¼ä¸è® &brandShortName; 建ç«å®å
¨é£ç·ãè¥è¦é 訪 ï¼è«å°ç³»çµ±è¨å®ä¸ç¢ºèªæ¥æãæéãæåè¨å®æ¯å¦æ£ç¢ºï¼ç¶å¾éæ°è¼å
¥ ã">
+
+
+
+
+
+
+
+
+å çºåµæ¸¬å°ç¶²è·¯éè¨åå®ä¸çåé¡ï¼ç¡æ³é¡¯ç¤ºæ¨å試檢è¦çé é¢ã- è«è¯çµ¡ç¶²ç«ç®¡çå¡ä¾è§£æ±ºéååé¡ã
">
diff --git a/browser/crashreporter/crashreporter-override.ini b/browser/crashreporter/crashreporter-override.ini
new file mode 100644
index 00000000000..ef7f549073b
--- /dev/null
+++ b/browser/crashreporter/crashreporter-override.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
+[Strings]
+# LOCALIZATION NOTE (CrashReporterProductErrorText2): The %s is replaced with a string containing detailed information.
+CrashReporterProductErrorText2=Firefox æå¤ç¢°ä¸åé¡èèªè¡ééï¼éæ°ååæå°åè©¦å¾©åæ¹æé±è¦½çåé åè¦çªã\n\nå¯æï¼æåç¡æ³å³å鿼鿬¡é¯èª¤ééçè³è¨å ±è¡¨ã\n\nç´°ç¯å¦ä¸: %s
+CrashReporterDescriptionText2=Firefox æå¤ç¢°ä¸åé¡èèªè¡ééï¼éæ°ååæå°åè©¦å¾©åæ¹æé±è¦½çåé åè¦çªã\n\nçºäºå婿åä¿®æ£ç¸éé¯èª¤ï¼ç
©è«å³åé¯èª¤ééçè³è¨å ±è¡¨ã
+
diff --git a/browser/defaultagent/defaultagent_localized.ini b/browser/defaultagent/defaultagent_localized.ini
new file mode 100644
index 00000000000..b99b585733c
--- /dev/null
+++ b/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=ãé è¨ç覽å¨è¨å®ä»£çãå·¥ä½ææª¢æ¥ç³»çµ±çé è¨ç覽å¨ï¼æ¯å¦å·²å¾ %MOZ_APP_DISPLAYNAME% è¢«æ´æ¹çºå
¶ä»ç覽å¨ãè¥æ´æ¹çè¡çºå¯çï¼å°æç¤ºä½¿ç¨è
æ¯å¦è¦å°é è¨çè¦½å¨æ´æ¹å %MOZ_APP_DISPLAYNAME%ï¼æå¤æç¤ºå
©æ¬¡ãæ¤å·¥ä½æ¯ç± %MOZ_APP_DISPLAYNAME% èªåå®è£ï¼ä¸¦å¨ %MOZ_APP_DISPLAYNAME% æ´æ°æå次å®è£ãè¥è¦åç¨æ¤å·¥ä½ï¼è«å° about:config é é¢èª¿æ´ãdefault-browser-agent.enabledãè¨å®ï¼æèª¿æ´ %MOZ_APP_DISPLAYNAME% ç伿¥ç®¡çååãDisableDefaultBrowserAgentãã
+
+DefaultBrowserNotificationTitle=å° %MOZ_APP_DISPLAYNAME% è¨çºæ¨çé è¨ç覽å¨
+DefaultBrowserNotificationText=%MOZ_APP_DISPLAYNAME% ä¸åæ¯æ¨çé è¨ç覽å¨ãè¦è¨åé è¨ç覽å¨åï¼
+DefaultBrowserNotificationYesButtonText=好ç
+DefaultBrowserNotificationNoButtonText=ä¸è¦
diff --git a/browser/defines.inc b/browser/defines.inc
new file mode 100644
index 00000000000..99e47620596
--- /dev/null
+++ b/browser/defines.inc
@@ -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/.
+#filter emptyLines
+
+#define MOZ_LANGPACK_CREATOR Mozilla Taiwan Community (MozTW)
+
+# If non-English locales wish to credit multiple contributors, uncomment this
+# variable definition and use the format specified.
+#define MOZ_LANGPACK_CONTRIBUTORS Hung-Te Lin(piaip) Wei-Lun Sun(josesun) Tim Guan-Tin Chien(timdream) Peter Pin-Guang Chen(petercpg)
+
+#unfilter emptyLines
diff --git a/browser/extensions/formautofill/formautofill.properties b/browser/extensions/formautofill/formautofill.properties
new file mode 100644
index 00000000000..28abf9c0ea1
--- /dev/null
+++ b/browser/extensions/formautofill/formautofill.properties
@@ -0,0 +1,230 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 å°å䏿¨çå°åï¼é樣就å¯ä»¥æ´å¿«å°è¡¨å®å¡«å¯«å®æã
+# LOCALIZATION NOTE (autofillOptionsLink, autofillOptionsLinkOSX): These strings are used in the doorhanger for
+# updating addresses. The link leads users to Form Autofill browser preferences.
+autofillOptionsLink = 表å®èªå填寫é¸é
+autofillOptionsLinkOSX = 表å®èªå填寫å好è¨å®
+# 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 = æ´æ¹è¡¨å®èªå填寫é¸é
+changeAutofillOptionsOSX = æ´æ¹è¡¨å®èªå填寫å好è¨å®
+changeAutofillOptionsAccessKey = C
+# LOCALIZATION NOTE (addressesSyncCheckbox): If Sync is enabled, this checkbox is displayed on the doorhanger
+# shown when saving addresses.
+addressesSyncCheckbox = è忥çè£ç½®å享å°å
+# 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 = èé£çµçè£ç½®åæ¥ä¿¡ç¨å¡è³æ
+# LOCALIZATION NOTE (updateAddressMessage, updateAddressDescriptionLabel, createAddressLabel, updateAddressLabel):
+# Used on the doorhanger when an address change is detected.
+updateAddressMessage = æ¨æ³è¦ç¨éçæ°è³è¨ä¾æ´æ°å°åè³æåï¼
+updateAddressDescriptionLabel = è¦æ´æ°çå°å:
+createAddressLabel = å»ºç«æ°å°å
+createAddressAccessKey = C
+updateAddressLabel = æ´æ°å°å
+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 = æ¨æ³è® %S åä¸é張信ç¨å¡çè³æåï¼ï¼ä¸æå²åå®å
¨ç¢¼ï¼
+saveCreditCardDescriptionLabel = è¦å²åçä¿¡ç¨å¡:
+saveCreditCardLabel = å²åä¿¡ç¨å¡
+saveCreditCardAccessKey = S
+cancelCreditCardLabel = ä¸è¦å²å
+cancelCreditCardAccessKey = D
+neverSaveCreditCardLabel = æ°¸é ä¸è¦å²åä¿¡ç¨å¡è³æ
+neverSaveCreditCardAccessKey = N
+# LOCALIZATION NOTE (updateCreditCardMessage, updateCreditCardDescriptionLabel, createCreditCardLabel, updateCreditCardLabel):
+# Used on the doorhanger when an credit card change is detected.
+updateCreditCardMessage = æ¨æ³è¦ç¨éçæ°è³è¨ä¾æ´æ°ä¿¡ç¨å¡è³æåï¼
+updateCreditCardDescriptionLabel = è¦æ´æ°çä¿¡ç¨å¡:
+createCreditCardLabel = æ°å¢ä¿¡ç¨å¡
+createCreditCardAccessKey = C
+updateCreditCardLabel = æ´æ°ä¿¡ç¨å¡
+updateCreditCardAccessKey = U
+# LOCALIZATION NOTE (openAutofillMessagePanel): Tooltip label for Form Autofill doorhanger icon on address bar.
+openAutofillMessagePanel = éå表å®èªåå¡«å¯«è¨æ¯é¢ç
+
+# 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 = 表å®èªå填寫é¸é
+# 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 = 表å®èªå填寫å好è¨å®
+# 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 = èªå填寫é¸é
+# 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 = èªå填寫å好è¨å®
+# 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 = å°å
+category.name = å§å
+category.organization2 = çµç¹
+category.tel = é»è©±
+category.email = é»åéµä»¶å°å
+# LOCALIZATION NOTE (fieldNameSeparator): This is used as a separator between categories.
+fieldNameSeparator = ã
+# 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 = 乿坫å
¥ %S æ¬ä½
+phishingWarningMessage2 = å°èªåå¡«å
¥ %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 嵿¸¬å°æ¤ç¶²ç«çºä¸å®å
¨çç¶²ç«ï¼å°æ«æåç¨è¡¨å®èªå填寫åè½
+# LOCALIZATION NOTE (clearFormBtnLabel2): Label for the button in the dropdown menu that used to clear the populated
+# form.
+clearFormBtnLabel2 = æ¸
é¤èªå填寫ç表å®å
§å®¹
+
+autofillHeader = 表å®èèªå填寫
+# LOCALIZATION NOTE (autofillAddressesCheckbox): Label for the checkbox that enables autofilling addresses.
+autofillAddressesCheckbox = èªå填寫å°å
+# LOCALIZATION NOTE (learnMoreLabel): Label for the link that leads users to the Form Autofill SUMO page.
+learnMoreLabel = äºè§£æ´å¤
+# LOCALIZATION NOTE (savedAddressesBtnLabel): Label for the button that opens a dialog that shows the
+# list of saved addresses.
+savedAddressesBtnLabel = å·²åå°åâ¦
+# LOCALIZATION NOTE (autofillCreditCardsCheckbox): Label for the checkbox that enables autofilling credit cards.
+autofillCreditCardsCheckbox = èªå填寫信ç¨å¡
+# LOCALIZATION NOTE (savedCreditCardsBtnLabel): Label for the button that opens a dialog that shows the list
+# of saved credit cards.
+savedCreditCardsBtnLabel = å·²åä¿¡ç¨å¡è³æâ¦
+
+autofillReauthCheckboxMac = è¦æ±é²è¡ macOS 身åé©èï¼æè½é²è¡èªåå¡«å¯«ãæª¢è¦æç·¨è¼¯å²åçä¿¡ç¨å¡è³æã
+autofillReauthCheckboxWin = è¦æ±é²è¡ Windows 身åé©èï¼æè½é²è¡èªåå¡«å¯«ãæª¢è¦æç·¨è¼¯å²åçä¿¡ç¨å¡è³æã
+autofillReauthCheckboxLin = è¦æ±é²è¡ Linux 身åé©èï¼æè½é²è¡èªåå¡«å¯«ãæª¢è¦æç·¨è¼¯å²åçä¿¡ç¨å¡è³æã
+
+# 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 = æ´æ¹èº«åé©èè¨å®
+autofillReauthOSDialogWin = è«å¨ä¸æ¹è¼¸å
¥æ¨ç Windows ç»å
¥å¸³èå¯ç¢¼æè½æ´æ¹é©èè¨å®ã
+autofillReauthOSDialogLin = è«å¨ä¸æ¹è¼¸å
¥æ¨ç Linux ç»å
¥å¸³èå¯ç¢¼æè½æ´æ¹é©èè¨å®ã
+
+# LOCALIZATION NOTE (manageAddressesTitle, manageCreditCardsTitle): The dialog title for the list of addresses or
+# credit cards in browser preferences.
+manageAddressesTitle = å·²åå°å
+manageCreditCardsTitle = å·²åä¿¡ç¨å¡è³æ
+# LOCALIZATION NOTE (addressesListHeader, creditCardsListHeader): The header for the list of addresses or credit cards
+# in browser preferences.
+addressesListHeader = å°å
+creditCardsListHeader = ä¿¡ç¨å¡
+removeBtnLabel = ç§»é¤
+addBtnLabel = æ°å¢â¦
+editBtnLabel = 編輯â¦
+# 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 = æ°å¢å°å
+editAddressTitle = 編輯å°å
+givenName = åå
+additionalName = ä¸éå
+familyName = å§æ°
+organization2 = çµç¹
+streetAddress = è¡éå°å
+
+## address-level-3 (Sublocality) names
+# LOCALIZATION NOTE (neighborhood): Used in IR, MX
+neighborhood = è¡å
+# LOCALIZATION NOTE (village_township): Used in MY
+village_township = ææéé®
+island = å³¶
+# LOCALIZATION NOTE (townland): Used in IE
+townland = é
+
+## address-level-2 names
+city = åå¸
+# LOCALIZATION NOTE (district): Used in HK, SD, SY, TR as Address Level-2
+# and used in KR as Sublocality.
+district = å
+# LOCALIZATION NOTE (post_town): Used in GB, NO, SE
+post_town = éµé®
+# LOCALIZATION NOTE (suburb): Used in AU as Address Level-2
+# and used in ZZ as Sublocality.
+suburb = éå
+
+# address-level-1 names
+province = çå
+state = å·å¥
+county = 縣å¸
+# LOCALIZATION NOTE (parish): Used in BB, JM
+parish = å å
+# LOCALIZATION NOTE (prefecture): Used in JP
+prefecture = é½éåºç¸£
+# LOCALIZATION NOTE (area): Used in HK
+area = åå
+# LOCALIZATION NOTE (do_si): Used in KR
+do_si = é/å¸
+# LOCALIZATION NOTE (department): Used in NI, CO
+department = ç
+# LOCALIZATION NOTE (emirate): Used in AE
+emirate = 大å
Œ
+# LOCALIZATION NOTE (oblast): Used in RU and UA
+oblast = å·
+
+# LOCALIZATION NOTE (pin, postalCode, zip, eircode): Postal code name types
+# LOCALIZATION NOTE (pin): Used in IN
+pin = éµéåè
+postalCode = éµéåè
+zip = éµéåè
+# LOCALIZATION NOTE (eircode): Used in IE
+eircode = Eircode éµéåè
+
+country = åå®¶æå°å
+tel = é»è©±è碼
+email = é»åéµä»¶
+cancelBtnLabel = åæ¶
+saveBtnLabel = å²å
+countryWarningMessage2 = ç®åå
è½å¨è¡¨å®ä¸èªå填寫é¨ååå®¶çå°åã
+
+# LOCALIZATION NOTE (addNewCreditCardTitle, editCreditCardTitle): The dialog title for creating or editing
+# credit cards in browser preferences.
+addNewCreditCardTitle = æ°å¢ä¿¡ç¨å¡
+editCreditCardTitle = 編輯信ç¨å¡
+cardNumber = å¡è
+invalidCardNumber = è«è¼¸å
¥ææçå¡è
+nameOnCard = æå¡äººå§å
+cardExpiresMonth = å°ææä»½
+cardExpiresYear = å°æå¹´å
+billingAddress = 帳å®å°å
+cardNetwork = å¡çé¡å
+# 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 = ç¾åéé
+cardNetwork.cartebancaire = Carte Bancaire
+cardNetwork.diners = 大ä¾å¡
+cardNetwork.discover = Discover
+cardNetwork.jcb = JCB
+cardNetwork.mastercard = MasterCard
+cardNetwork.mir = MIR
+cardNetwork.unionpay = éè¯
+cardNetwork.visa = Visa
+
+# LOCALIZATION NOTE (editCreditCardPasswordPrompt.*, useCreditCardPasswordPrompt.*): %S is brandShortName.
+editCreditCardPasswordPrompt.win = %S æ£å試顯示信ç¨å¡è³è¨ãè«å¨ä¸æ¹ç»å
¥æ¤ Windows 帳è確èªã
+# 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 = 顯示信ç¨å¡è³è¨
+editCreditCardPasswordPrompt.linux = %S æ£å試顯示信ç¨å¡è³è¨ã
+useCreditCardPasswordPrompt.win = %S æ£å試使ç¨å²åçä¿¡ç¨å¡è³è¨ãè«å¨ä¸æ¹ç»å
¥æ¤ Windows 帳è確èªã
+# 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 = 使ç¨å²åçä¿¡ç¨å¡è³è¨
+useCreditCardPasswordPrompt.linux = %S æ£å試使ç¨å²åçä¿¡ç¨å¡è³è¨ã
diff --git a/browser/extensions/report-site-issue/webcompat.properties b/browser/extensions/report-site-issue/webcompat.properties
new file mode 100644
index 00000000000..009dcb6f9fc
--- /dev/null
+++ b/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=åå ±ç¶²ç«åé¡â¦
+# 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=åå ±ç¶²ç«ç¸å®¹æ§åé¡
diff --git a/browser/firefox-l10n.js b/browser/firefox-l10n.js
new file mode 100644
index 00000000000..1bce5c0e8ad
--- /dev/null
+++ b/browser/firefox-l10n.js
@@ -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/.
+
+#filter substitution
+
+#ifdef XP_WIN
+
+// overwrite zh-CN defaults with zh-TW ones in win32 Firefox. (see bug 603549)
+// noted that below setting should change accordingly if setting in intl/all.js changes.
+pref("font.name.serif.zh-CN", "Times New Roman");
+pref("font.name.sans-serif.zh-CN", "Arial");
+pref("font.name.monospace.zh-CN", "ç´°æé«"); // MingLiU
+pref("font.name-list.serif.zh-CN", "æ°ç´°æé«,PMingLiu,ç´°æé«,MingLiU");
+pref("font.name-list.sans-serif.zh-CN", "æ°ç´°æé«,PMingLiU,ç´°æé«,MingLiU");
+pref("font.name-list.monospace.zh-CN", "MingLiU,ç´°æé«");
+
+#endif
diff --git a/browser/installer/custom.properties b/browser/installer/custom.properties
new file mode 100644
index 00000000000..2c3a808c0b5
--- /dev/null
+++ b/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 叶便¨æ¸´æçå®å
¨ãç°¡å®ãè¼é¬çç覽é«é©ãååçæä½ä»é¢ãå¼·åçå®å
¨æ§ï¼å
嫿°çç·ä¸è¾¨èè©é¨ç¶²ç«åè½ï¼åæºæ
§æå°åè½è®æ¨å°ç¶²éç¶²è·¯ç¼æ®å°æ¥µè´ã
+CONTEXT_OPTIONS=$BrandShortName é¸é
(&O)
+CONTEXT_SAFE_MODE=$BrandShortName å®å
¨æ¨¡å¼ (&S)
+OPTIONS_PAGE_TITLE=å®è£é¡å
+OPTIONS_PAGE_SUBTITLE=鏿å®è£å
ä»¶
+SHORTCUTS_PAGE_TITLE=è¨å®æ·å¾
+SHORTCUTS_PAGE_SUBTITLE=建ç«ç¨å¼å示
+COMPONENTS_PAGE_TITLE=å®è£éå¿
è¦å
ä»¶
+COMPONENTS_PAGE_SUBTITLE=建è°å®è£çéå¿
è¦å
ä»¶
+OPTIONAL_COMPONENTS_DESC=ç¶è·æåå°æè®æ¨å¯ä»¥å¨èæ¯ç¶ä¸é»é»å°èªåæ´æ° $BrandShortNameã
+MAINTENANCE_SERVICE_CHECKBOX_DESC=å®è£ç¶è·æå (&M)
+SUMMARY_PAGE_TITLE=æè¦
+SUMMARY_PAGE_SUBTITLE=å·²ç¶æºå好è¦éå§å®è£ $BrandShortName
+SUMMARY_INSTALLED_TO=$BrandShortName æå®è£å°ä¸åä½ç½®:
+SUMMARY_REBOOT_REQUIRED_INSTALL=å¯è½éè¦éæ°ååé»è
¦æè½å®æå®è£ã
+SUMMARY_REBOOT_REQUIRED_UNINSTALL=å¯è½éè¦éæ°ååé»è
¦æè½å®æç§»é¤ã
+SUMMARY_TAKE_DEFAULTS=å° $BrandShortName è¨çºé è¨çè¦½å¨ (&U)
+SUMMARY_INSTALL_CLICK=æãå®è£ãç¹¼çºã
+SUMMARY_UPGRADE_CLICK=æãåç´ãç¹¼çºã
+SURVEY_TEXT=å訴æåæ¨è¦ºå¾ $BrandShortName å¦ä½ï¼
+LAUNCH_TEXT=ç«å»åå $BrandShortName (&L)
+CREATE_ICONS_DESC=çº $BrandShortName 建ç«å示:
+ICONS_DESKTOP=æ¼æçæ¡é¢
+ICONS_STARTMENU=æ¼éå§åè½è¡¨çç¨å¼éä¸ (&S)
+ICONS_QUICKLAUNCH=æ¼å¿«éååå (&Q)
+WARN_MANUALLY_CLOSE_APP_INSTALL=å¿
é å
éé $BrandShortName æè½ç¹¼çºå®è£ç¨åºã\n\nè«æåéé $BrandShortName 以繼çºã
+WARN_MANUALLY_CLOSE_APP_UNINSTALL=å¿
é å
éé $BrandShortName æè½ç¹¼çºç§»é¤ç¨åºã\n\nè«éé $BrandShortName 以繼çºç§»é¤ã
+WARN_MANUALLY_CLOSE_APP_REFRESH=å¿
é å
éé $BrandShortName æè½ç¹¼çºéæ°æ´çã\n\nè«éé $BrandShortName 以繼çºã
+WARN_WRITE_ACCESS=æ¨æ²ææ¬é寫å
¥å®è£ç®éã\n\næã確å®ã鏿å¦ä¸åç®éã
+WARN_DISK_SPACE=æ¨æ²æè¶³å¤ çç£ç¢ç©ºéå®è£å°è©²ä½ç½®ã\næã確å®ã鏿å¦ä¸åç®éã
+WARN_MIN_SUPPORTED_OSVER_MSG=徿±æï¼ç¡æ³å®è£ $BrandShortNameãæ¤çæ¬ç $BrandShortName éè¦ ${MinSupportedVer} ææ´æ°çæ¬ãè«é»æç¢ºå®æéå徿´å¤è³è¨ã
+WARN_MIN_SUPPORTED_CPU_MSG=徿±æï¼ç¡æ³å®è£ $BrandShortNameãæ¤çæ¬ç $BrandShortName éè¦æ¯æ´ ${MinSupportedCPU} çä¸å¤®èçå¨ãè«é»æç¢ºå®æéå徿´å¤è³è¨ã
+WARN_MIN_SUPPORTED_OSVER_CPU_MSG=徿±æï¼ç¡æ³å®è£ $BrandShortNameãæ¤çæ¬ç $BrandShortName éè¦ ${MinSupportedVer} ææ´æ°çæ¬ä»¥åæ¯æ´ ${MinSupportedCPU} çä¸å¤®èçå¨ãè«é»æç¢ºå®æéå徿´å¤è³è¨ã
+WARN_RESTART_REQUIRED_UNINSTALL=å¿
é éæ°ååé»è
¦æè½å®æ $BrandShortName çè§£é¤å®è£ç¨åºãæ¨è¦ç¾å¨ééåï¼
+WARN_RESTART_REQUIRED_UPGRADE=æ¨çé»è
¦å¿
é éæ°åå以宿åç´ $BrandShortNameãæ¨æ³è¦ç«å»éæ°ååé»è
¦åï¼
+ERROR_CREATE_DIRECTORY_PREFIX=建ç«ç®éæç¼çé¯èª¤:
+ERROR_CREATE_DIRECTORY_SUFFIX=æãåæ¶ã忢å®è£\nææãé試ãåè©¦ä¸æ¬¡ã
+
+UN_CONFIRM_PAGE_TITLE=ç§»é¤ $BrandFullName
+UN_CONFIRM_PAGE_SUBTITLE=徿¨çé»è
¦ç§»é¤ $BrandFullNameã
+UN_CONFIRM_UNINSTALLED_FROM=å°èªä¸åä½ç½®ç§»é¤ $BrandShortName:
+UN_CONFIRM_CLICK=æãç§»é¤ãç¹¼çºã
+
+UN_REFRESH_PAGE_TITLE=è¦æ¹æéæ°æ´ç $BrandShortName åï¼
+UN_REFRESH_PAGE_EXPLANATION=è¥æ¨éå° $BrandShortName ç使ç¨åé¡ï¼éæ°æ´çä¸ä¸å¯ä»¥å¹«å©è§£æ±ºåé¡ã\n\nå°éåæåºå» è¨å®ä¸¦ç§»é¤éå å
ä»¶ï¼è®æ¨éæ°ç²å¾æä½³æè½ã
+UN_REFRESH_LEARN_MORE=äºè§£æ´å¤ (&L)
+UN_REFRESH_BUTTON=éæ°æ´ç $BrandShortName (&R)
+
+BANNER_CHECK_EXISTING=æ£å¨æª¢æ¥ç¾æçå®è£â¦
+
+STATUS_INSTALL_APP=æ£å¨å®è£ $BrandShortNameâ¦
+STATUS_INSTALL_LANG=æ£å¨å®è£èªè¨æªæ¡ï¼${AB_CD}ï¼â¦
+STATUS_UNINSTALL_MAIN=æ£å¨ç§»é¤ $BrandShortNameâ¦
+STATUS_CLEANUP=æå¾æ¸
çä¸â¦
+
+UN_SURVEY_CHECKBOX_LABEL=å訴 Mozilla æ¨çºä»éº¼è¦ç§»é¤ $BrandShortName
+
+# _DESC strings support approximately 65 characters per line.
+# One line
+OPTIONS_SUMMARY=è«é¸ææ¨æ³å®è£çé¡å徿ãä¸ä¸æ¥ãã
+# One line
+OPTION_STANDARD_DESC=$BrandShortName æå®è£æå¸¸ç¨çå
ä»¶ã
+OPTION_STANDARD_RADIO=æ¨æºå®è£ (&S)
+# Two lines
+OPTION_CUSTOM_DESC=æ¨å¯ä»¥èªå·±é¸æå®è£é¸é
ï¼å»ºè°é²é使ç¨è
é¸ç¨ã
+OPTION_CUSTOM_RADIO=èªè¨å®è£ (&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=åç´ (&U)
diff --git a/browser/installer/mui.properties b/browser/installer/mui.properties
new file mode 100644
index 00000000000..7fb124d97c4
--- /dev/null
+++ b/browser/installer/mui.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/.
+
+# 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=æ¡è¿ä½¿ç¨ $BrandFullNameDA å®è£ç²¾é
+MUI_TEXT_WELCOME_INFO_TEXT=æ¬ç²¾éæå¼å°æ¨ä¸æ¥æ¥å®è£ $BrandFullNameDAã\n\nå®è£åå»ºè°æ¨ééå
¶ä»ç常é§ç¨å¼ï¼çºäºæ´æ°ç¸éçç³»çµ±æªæ¡å¯è½å¿
é éæ°ååé»è
¦ã\n\n$_CLICK
+MUI_TEXT_COMPONENTS_TITLE=鏿å
ä»¶
+MUI_TEXT_COMPONENTS_SUBTITLE=鏿æ¨è¦å®è£ $BrandFullNameDA çåªäºåè½ã
+MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE=æè¿°
+MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO=å°æ»é¼ ç§»å°å
ä»¶ä¸å³å¯æ¥ç該å
ä»¶ç詳細說æã
+MUI_TEXT_DIRECTORY_TITLE=鏿å®è£ä½ç½®
+MUI_TEXT_DIRECTORY_SUBTITLE=鏿è¦å®è£ $BrandFullNameDA å°åªåè³æå¤¾ã
+MUI_TEXT_INSTALLING_TITLE=å®è£ä¸
+MUI_TEXT_INSTALLING_SUBTITLE=è«ç¨å $BrandFullNameDA å®è£ã
+MUI_TEXT_FINISH_TITLE=å®è£å®æ
+MUI_TEXT_FINISH_SUBTITLE=å®è£å·²ç¶é å©å®æã
+MUI_TEXT_ABORT_TITLE=å®è£ä¸æ·
+MUI_TEXT_ABORT_SUBTITLE=æªæå宿å®è£ã
+MUI_BUTTONTEXT_FINISH=宿 (&F)
+MUI_TEXT_FINISH_INFO_TITLE=æ£å¨å®æ $BrandFullNameDA å®è£ç²¾é
+MUI_TEXT_FINISH_INFO_TEXT=å·²ç¶å®è£ $BrandFullNameDA å°æ¨çé»è
¦ã\n\né»é¸ã宿ãé鿤å®è£ç¨å¼ã
+MUI_TEXT_FINISH_INFO_REBOOT=æ¨éè¦éæ°ååé»è
¦æè½å®æ $BrandFullNameDA çå®è£ç¨åºãæ¨è¦ç¾å¨éæ°åååï¼
+MUI_TEXT_FINISH_REBOOTNOW=ç«å»éæ°åå
+MUI_TEXT_FINISH_REBOOTLATER=æè¦ç¨å¾èªå·±éæ°åå
+MUI_TEXT_STARTMENU_TITLE=鏿éå§åè½è¡¨è³æå¤¾
+MUI_TEXT_STARTMENU_SUBTITLE=è«é¸æè¦å»ºç« $BrandFullNameDA æ·å¾çéå§åè½è¡¨è³æå¤¾ã
+MUI_INNERTEXT_STARTMENU_TOP=é¸ææ¨æ³è¦å»ºç«ç¨å¼æ·å¾å¨åªåè³æå¤¾ï¼æ¨ä¹å¯ä»¥è¼¸å
¥æ°åç¨±å»ºç«æ°è³æå¤¾ã
+MUI_TEXT_ABORTWARNING=æ¨ç¢ºå®è¦é¢é $BrandFullName çå®è£ç¨å¼ï¼
+MUI_UNTEXT_WELCOME_INFO_TITLE=æ¡è¿ä½¿ç¨ $BrandFullNameDA ç§»é¤ç²¾é
+MUI_UNTEXT_WELCOME_INFO_TEXT=æ¬ç²¾éæå¼å°æ¨ä¸æ¥æ¥ç§»é¤ $BrandFullNameDAã\n\nå®è£åè«ç¢ºå® $BrandFullNameDA å·²ç¶ééã\n\n$_CLICK
+MUI_UNTEXT_CONFIRM_TITLE=ç§»é¤ $BrandFullNameDA
+MUI_UNTEXT_CONFIRM_SUBTITLE=徿¨çé»è
¦ç§»é¤ $BrandFullNameDAã
+MUI_UNTEXT_UNINSTALLING_TITLE=ç§»é¤ä¸
+MUI_UNTEXT_UNINSTALLING_SUBTITLE=è«ç¨åç´å°å®æç§»é¤ $BrandFullNameDAã
+MUI_UNTEXT_FINISH_TITLE=ç§»é¤å®æ
+MUI_UNTEXT_FINISH_SUBTITLE=å·²æåå®æç§»é¤ã
+MUI_UNTEXT_ABORT_TITLE=ç§»é¤ä¸æ·
+MUI_UNTEXT_ABORT_SUBTITLE=æªæåå®æç§»é¤ã
+MUI_UNTEXT_FINISH_INFO_TITLE=æ£å¨å®æ $BrandFullNameDA ç§»é¤ç²¾é
+MUI_UNTEXT_FINISH_INFO_TEXT=已徿¨çé»è
¦ä¸ç§»é¤ $BrandFullNameDAã\n\næã宿ãééæ¬ç²¾éã
+MUI_UNTEXT_FINISH_INFO_REBOOT=æ¨éè¦éæ°ååé»è
¦æè½å®æ $BrandFullNameDA çç§»é¤ç¨åºãæ¨è¦ç¾å¨éæ°åååï¼
+MUI_UNTEXT_ABORTWARNING=æ¨ç¢ºå®è¦é¢é $BrandFullName çç§»é¤ç¨å¼ï¼
+
diff --git a/browser/installer/nsisstrings.properties b/browser/installer/nsisstrings.properties
new file mode 100644
index 00000000000..4c775072ab6
--- /dev/null
+++ b/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=$BrandShortName å®è£ç¨å¼
+
+STUB_CLEANUP_PAVEOVER_HEADER2=å·²ç¶å®è£é $BrandShortNameï¼å°é²è¡æ´æ°ã
+STUB_CLEANUP_REINSTALL_HEADER2=å·²ç¶å®è£é $BrandShortNameï¼å°éæ°å®è£ã
+
+STUB_CLEANUP_PAVEOVER_BUTTON2=æ´æ°
+STUB_CLEANUP_REINSTALL_BUTTON2=éæ°å®è£
+STUB_CLEANUP_CHECKBOX_LABEL2=éåé è¨è¨å®ä¸¦ç§»é¤èçéå å
ä»¶ï¼ä»¥å徿佳æè½
+
+STUB_INSTALLING_LABEL2=æ£å¨å®è£ä¸â¦
+STUB_INSTALLING_HEADLINE2=æä½³åè¨å®ï¼è®æ¨ææå¼·å¤§çé度ãé±ç§ãå®å
¨æ§ã
+STUB_INSTALLING_BODY2=$BrandShortName å¾å¿«å°±æå®è£å®æã
+STUB_BLURB_FIRST1=æå²ä»¥ä¾æè½ææ£ãåææå¿«ç $BrandShortName
+STUB_BLURB_SECOND1=é é¢è¼å
¥è·åé åæé½è®å¾æ´å¿«
+STUB_BLURB_THIRD1=è¶
強大çé±ç§ä¿è·ç覽åè½
+STUB_BLURB_FOOTER2=çºç¾äººï¼èä¸çºå©çæé
+
+WARN_MIN_SUPPORTED_OSVER_MSG=徿±æï¼ç¡æ³å®è£ $BrandShortNameãæ¤çæ¬ç $BrandShortName éè¦ ${MinSupportedVer} ææ´æ°çæ¬ãè«é»æç¢ºå®æéå徿´å¤è³è¨ã
+WARN_MIN_SUPPORTED_CPU_MSG=徿±æï¼ç¡æ³å®è£ $BrandShortNameãæ¤çæ¬ç $BrandShortName éè¦æ¯æ´ ${MinSupportedCPU} çä¸å¤®èçå¨ãè«é»æç¢ºå®æéå徿´å¤è³è¨ã
+WARN_MIN_SUPPORTED_OSVER_CPU_MSG=徿±æï¼ç¡æ³å®è£ $BrandShortNameãæ¤çæ¬ç $BrandShortName éè¦ ${MinSupportedVer} ææ´æ°çæ¬ä»¥åæ¯æ´ ${MinSupportedCPU} çä¸å¤®èçå¨ãè«é»æç¢ºå®æéå徿´å¤è³è¨ã
+WARN_WRITE_ACCESS_QUIT=æ¨æ²æå¯å¯«å
¥å®è£ç®éçæ¬é
+WARN_DISK_SPACE_QUIT=æ¨çç£ç¢ç©ºéä¸è¶³ï¼ç¡æ³å®è£ã
+
+ERROR_DOWNLOAD_CONT=å çºæäºåå ç¡æ³å®è£ $BrandShortNameã\nè«é»æã確å®ãå¾é éå§ã
+
+STUB_CANCEL_PROMPT_HEADING=æ¨æ³è¦å®è£ $BrandShortName åï¼
+STUB_CANCEL_PROMPT_MESSAGE=è¥åæ¶ï¼å°±ä¸æå®è£ $BrandShortNameã
+STUB_CANCEL_PROMPT_BUTTON_CONTINUE=å®è£ $BrandShortName
+STUB_CANCEL_PROMPT_BUTTON_EXIT=åæ¶
diff --git a/browser/installer/override.properties b/browser/installer/override.properties
new file mode 100644
index 00000000000..bb00d32afa1
--- /dev/null
+++ b/browser/installer/override.properties
@@ -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/.
+
+# 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=$BrandFullName å®è£
+UninstallCaption=$BrandFullName ç§»é¤
+BackBtn=< ä¸ä¸æ¥(&B)
+NextBtn=ä¸ä¸æ¥(&N) >
+AcceptBtn=ææ¥åä¸åçææ¬æ¢æ¬¾ (&A)
+DontAcceptBtn=æä¸æ¥åä¸åçææ¬æ¢æ¬¾ (&d)
+InstallBtn=å®è£(&I)
+UninstallBtn=ç§»é¤(&U)
+CancelBtn=åæ¶
+CloseBtn=éé (&C)
+BrowseBtn=ç覽 (&R)â¦
+ShowDetailsBtn=顯示詳細è³è¨ (&D)
+ClickNext=æãä¸ä¸æ¥ãç¹¼çºã
+ClickInstall=æãå®è£ãéå§å®è£ç¨åºã
+ClickUninstall=æãç§»é¤ãéå§ç§»é¤ç¨åºã
+Completed=已宿
+LicenseTextRB=å®è£ $BrandFullNameDA åè«é±è®ææ¬åè°æ¸ãå¦ææ¨æ¥åæææ¢æ¬¾ï¼è«é¸ä¸é¢ç第ä¸åé¸é
ã $_CLICK
+ComponentsText=è«å¾é¸æ¨æ³å®è£çé¨ä»½ä¸¦åæ¶æ¨ä¸æ³å®è£çå
ä»¶ã $_CLICK
+ComponentsSubText2_NoInstTypes=鏿è¦å®è£çå
ä»¶:
+DirText=å®è£ç¨å¼å°æå®è£ $BrandFullNameDA å°ä¸åè³æå¤¾ãè¥è¦å®è£å°å
¶ä»è³æå¤¾ï¼è«æãç覽ãå¾é¸æå
¶ä»è³æå¤¾ã $_CLICK
+DirSubText=ç®çè³æå¤¾
+DirBrowseText=鏿è¦å° $BrandFullNameDA å®è£å°:
+SpaceAvailable="å¯ç¨ç©ºé: "
+SpaceRequired="éè¦ç©ºé: "
+UninstallingText=$BrandFullNameDA å°æå¾ä¸åè³æå¤¾ä¸è¢«ç§»é¤ã$_CLICK
+UninstallingSubText=徿¤èç§»é¤:
+FileError=éåæªæ¡å¯«å
¥å¤±æ: \r\n\r\n$0\r\n\r\næã䏿·ã忢å®è£ç¨åºï¼\r\nãé試ãåè©¦ä¸æ¬¡ï¼\r\nææã忽ç¥ãç¥éæ¤æªæ¡ã
+FileError_NoIgnore=éåæªæ¡å¯«å
¥å¤±æ: \r\n\r\n$0\r\n\r\næãé試ãåè©¦ä¸æ¬¡ï¼\r\nææãåæ¶ã忢å®è£ç¨åºã
+CantWrite="ç¡æ³å¯«å
¥: "
+CopyFailed=è¤è£½å¤±æ
+CopyTo="è¤è£½å° "
+Registering="註åä¸: "
+Unregistering="è§£é¤è¨»åä¸: "
+SymbolNotFound="æ¾ä¸å°ç¬¦è: "
+CouldNotLoad="ç¡æ³è¼å
¥: "
+CreateFolder="建ç«è³æå¤¾: "
+CreateShortcut="å»ºç«æ·å¾: "
+CreatedUninstaller="建ç«ç§»é¤ç¨å¼: "
+Delete="åªé¤æªæ¡: "
+DeleteOnReboot="éæ°éæ©å¾åªé¤: "
+ErrorCreatingShortcut="å»ºç«æ·å¾æç¼çé¯èª¤: "
+ErrorCreating="å»ºç«æç¼çé¯èª¤: "
+ErrorDecompressing=è§£å£ç¸®è³ææé¯èª¤ï¼å®è£ç¨å¼æ¯å¦æ¯æï¼
+ErrorRegistering=註å DLL æé¯èª¤
+ExecShell="ExecShell: "
+Exec="å·è¡: "
+Extract="è§£å£ç¸®: "
+ErrorWriting="è§£å£ç¸®: 寫å
¥æªæ¡æç¼çé¯èª¤ "
+InvalidOpcode=å®è£ç¨å¼æ¯æ: ç¡æçæä½ç¢¼
+NoOLE="ç¡ OLE æ¼: "
+OutputFolder="輸åºè³æå¤¾: "
+RemoveFolder="ç§»é¤è³æå¤¾: "
+RenameOnReboot="鿰鿩徿´å: "
+Rename="éæ°å½å: "
+Skipped="ç¥é: "
+CopyDetails=è¤è£½è©³ç´°è³è¨å°åªè²¼ç°¿
+LogInstall=è¨éå®è£éç¨
+Byte=B
+Kilo=K
+Mega=M
+Giga=G
+
diff --git a/browser/pdfviewer/chrome.properties b/browser/pdfviewer/chrome.properties
new file mode 100644
index 00000000000..8a9f1c94b33
--- /dev/null
+++ b/browser/pdfviewer/chrome.properties
@@ -0,0 +1,20 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Chrome notification bar messages and buttons
+unsupported_feature=æ¤ PDF æä»¶å¯è½ä¸¦æªæ£ç¢ºé¡¯ç¤ºã
+unsupported_feature_forms=æ¤ PDF æä»¶å
å«è¡¨å®ï¼ä¸æ¯æ´å¡«å¯«è¡¨å®æ¬ä½ã
+unsupported_feature_signatures=æ¤ PDF æä»¶å
嫿¸ä½ç°½ç« ï¼ç®å䏿¯æ´ç°½ç« é©èåè½ã
+open_with_different_viewer=使ç¨å
¶ä»æª¢è¦å¨éå
+open_with_different_viewer.accessKey=o
diff --git a/browser/pdfviewer/viewer.properties b/browser/pdfviewer/viewer.properties
new file mode 100644
index 00000000000..32da91c3e3e
--- /dev/null
+++ b/browser/pdfviewer/viewer.properties
@@ -0,0 +1,250 @@
+# 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=ä¸ä¸é
+previous_label=ä¸ä¸é
+next.title=ä¸ä¸é
+next_label=ä¸ä¸é
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=第
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=é ï¼å
± {{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}} é ï¼å
± {{pagesCount}} é ï¼
+
+zoom_out.title=縮å°
+zoom_out_label=縮å°
+zoom_in.title=æ¾å¤§
+zoom_in_label=æ¾å¤§
+zoom.title=縮æ¾
+presentation_mode.title=åæè³ç°¡å ±æ¨¡å¼
+presentation_mode_label=ç°¡å ±æ¨¡å¼
+open_file.title=éåæªæ¡
+open_file_label=éå
+print.title=åå°
+print_label=åå°
+download.title=ä¸è¼
+download_label=ä¸è¼
+bookmark.title=ç®åç«é¢ï¼è¤è£½æéåæ¼æ°è¦çªï¼
+bookmark_label=ç®å檢è¦
+
+# Secondary toolbar and context menu
+tools.title=å·¥å
·
+tools_label=å·¥å
·
+first_page.title=è·³å°ç¬¬ä¸é
+first_page_label=è·³å°ç¬¬ä¸é
+last_page.title=è·³å°æå¾ä¸é
+last_page_label=è·³å°æå¾ä¸é
+page_rotate_cw.title=é æéæè½
+page_rotate_cw_label=é æéæè½
+page_rotate_ccw.title=éæéæè½
+page_rotate_ccw_label=éæéæè½
+
+cursor_text_select_tool.title=éåæå鏿工å
·
+cursor_text_select_tool_label=æå鏿工å
·
+cursor_hand_tool.title=éåé é¢ç§»åå·¥å
·
+cursor_hand_tool_label=é é¢ç§»åå·¥å
·
+
+scroll_page.title=使ç¨é 颿²ååè½
+scroll_page_label=é 颿²ååè½
+scroll_vertical.title=使ç¨åç´æ²åçé¢
+scroll_vertical_label=åç´æ²å
+scroll_horizontal.title=ä½¿ç¨æ°´å¹³æ²åçé¢
+scroll_horizontal_label=æ°´å¹³æ²å
+scroll_wrapped.title=使ç¨å¤é æ²åçé¢
+scroll_wrapped_label=å¤é æ²å
+
+spread_none.title=ä¸è¦é²è¡è·¨é 顯示
+spread_none_label=ä¸è·¨é
+spread_odd.title=å¾å¥æ¸é éå§è·¨é
+spread_odd_label=奿¸è·¨é
+spread_even.title=å¾å¶æ¸é éå§è·¨é
+spread_even_label=å¶æ¸è·¨é
+
+# Document properties dialog box
+document_properties.title=æä»¶å
§å®¹â¦
+document_properties_label=æä»¶å
§å®¹â¦
+document_properties_file_name=æªæ¡å稱:
+document_properties_file_size=æªæ¡å¤§å°:
+# 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}} ä½å
çµï¼
+# 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}} ä½å
çµï¼
+document_properties_title=æ¨é¡:
+document_properties_author=ä½è
:
+document_properties_subject=主æ¨:
+document_properties_keywords=ééµå:
+document_properties_creation_date=å»ºç«æ¥æ:
+document_properties_modification_date=ä¿®æ¹æ¥æ:
+# 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=建ç«è
:
+document_properties_producer=PDF ç¢çå¨:
+document_properties_version=PDF çæ¬:
+document_properties_page_count=é æ¸:
+document_properties_page_size=é é¢å¤§å°:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=åç´
+document_properties_page_size_orientation_landscape=æ°´å¹³
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=Letter
+document_properties_page_size_name_legal=Legal
+# 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=å¿«é Web 檢è¦:
+document_properties_linearized_yes=æ¯
+document_properties_linearized_no=å¦
+document_properties_close=éé
+
+print_progress_message=æ£å¨æºååå°æä»¶â¦
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=åæ¶
+
+# 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=åæå´éæ¬
+toggle_sidebar_notification2.title=åæå´éæ¬ï¼å
å«å¤§ç¶±ãéä»¶ãå層çæä»¶ï¼
+toggle_sidebar_label=åæå´éæ¬
+document_outline.title=顯示æä»¶å¤§ç¶±ï¼éæå±é/æºçææé
ç®ï¼
+document_outline_label=æä»¶å¤§ç¶±
+attachments.title=顯示éä»¶
+attachments_label=éä»¶
+layers.title=顯示åå±¤ï¼æ»é¼ éæå³å¯å°ææå層éè¨çºé è¨çæ
ï¼
+layers_label=å層
+thumbs.title=顯示縮å
+thumbs_label=縮å
+current_outline_item.title=å°æ¾ç®åç大綱é
ç®
+current_outline_item_label=ç®åç大綱é
ç®
+findbar.title=卿件ä¸å°æ¾
+findbar_label=å°æ¾
+
+additional_layers=å
¶ä»å層
+# LOCALIZATION NOTE (page_landmark): "{{page}}" will be replaced by the page number.
+page_landmark=第 {{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=第 {{page}} é
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=é {{page}} ç縮å
+
+# Find panel button title and messages
+find_input.title=å°æ¾
+find_input.placeholder=卿件䏿å°â¦
+find_previous.title=å°æ¾æå忬¡åºç¾çä½ç½®
+find_previous_label=ä¸ä¸å
+find_next.title=å°æ¾æå䏿¬¡åºç¾çä½ç½®
+find_next_label=ä¸ä¸å
+find_highlight=å
¨é¨å¼·èª¿æ¨ç¤º
+find_match_case_label=åå大å°å¯«
+find_entire_word_label=ç¬¦åæ´åå
+find_reached_top=å·²æå°è³æä»¶é 端ï¼èªåºç«¯ç¹¼çºæå°
+find_reached_bottom=å·²æå°è³æä»¶åºç«¯ï¼èªé ç«¯ç¹¼çºæå°
+# 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}} çï¼å
±æ¾å° {{total}} ç
+find_match_count[two]=第 {{current}} çï¼å
±æ¾å° {{total}} ç
+find_match_count[few]=第 {{current}} çï¼å
±æ¾å° {{total}} ç
+find_match_count[many]=第 {{current}} çï¼å
±æ¾å° {{total}} ç
+find_match_count[other]=第 {{current}} çï¼å
±æ¾å° {{total}} ç
+# 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]=æ¾å°è¶
é {{limit}} ç
+find_match_count_limit[one]=æ¾å°è¶
é {{limit}} ç
+find_match_count_limit[two]=æ¾å°è¶
é {{limit}} ç
+find_match_count_limit[few]=æ¾å°è¶
é {{limit}} ç
+find_match_count_limit[many]=æ¾å°è¶
é {{limit}} ç
+find_match_count_limit[other]=æ¾å°è¶
é {{limit}} ç
+find_not_found=æ¾ä¸å°æå®æå
+
+# Error panel labels
+error_more_info=æ´å¤è³è¨
+error_less_info=æ´å°è³è¨
+error_close=éé
+# 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=è¨æ¯: {{message}}
+# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
+# trace.
+error_stack=å ç: {{stack}}
+# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
+error_file=æªæ¡: {{file}}
+# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
+error_line=è¡: {{line}}
+rendering_error=æç¹ªé 颿ç¼çé¯èª¤ã
+
+# Predefined zoom values
+page_scale_width=é é¢å¯¬åº¦
+page_scale_fit=縮æ¾è³é é¢å¤§å°
+page_scale_auto=èªå縮æ¾
+page_scale_actual=實é大å°
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+# Loading indicator messages
+loading=è¼å
¥ä¸â¦
+loading_error=è¼å
¥ PDF æç¼çé¯èª¤ã
+invalid_file_error=ç¡æææ¯æç PDF æªæ¡ã
+missing_file_error=æ¾ä¸å° PDF æªæ¡ã
+unexpected_response_error=伺æå¨åææªé æçå
§å®¹ã
+
+# 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}} 註解]
+password_label=è«è¼¸å
¥ç¨ä¾é忤 PDF æªæ¡çå¯ç¢¼ã
+password_invalid=å¯ç¢¼ä¸æ£ç¢ºï¼è«åè©¦ä¸æ¬¡ã
+password_ok=確å®
+password_cancel=åæ¶
+
+printing_not_supported=è¦å: æ¤çè¦½å¨æªå®æ´æ¯æ´åå°åè½ã
+printing_not_ready=è¦å: æ¤ PDF æªå®æä¸è¼ä»¥ä¾åå°ã
+web_fonts_disabled=å·²åç¨ç¶²è·¯åå (Web fonts): ç¡æ³ä½¿ç¨ PDF å
§åµååã
diff --git a/browser/profile/bookmarks.inc b/browser/profile/bookmarks.inc
new file mode 100644
index 00000000000..7f9281a223c
--- /dev/null
+++ b/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 æ¸ç±¤
+#define bookmarks_heading æ¸ç±¤
+
+#define bookmarks_toolbarfolder å人æ¸ç±¤å
+#define bookmarks_toolbarfolder_description æ¤èçæ¸ç±¤æåºç¾æ¼æ¸ç±¤å·¥å
·åä¸
+
+# LOCALIZATION NOTE (getting_started):
+# link title for https://www.mozilla.org/en-US/firefox/central/
+#define getting_started æ°æä¸è·¯
+
+# 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 說æåæå¸
+
+# LOCALIZATION NOTE (firefox_get_help):
+# link title for https://www.mozilla.org/en-US/firefox/help/
+#define firefox_get_help åå¾å¹«å©
+
+# LOCALIZATION NOTE (firefox_customize):
+# link title for https://www.mozilla.org/en-US/firefox/customize/
+#define firefox_customize èªè¨ Firefox
+
+# LOCALIZATION NOTE (firefox_community):
+# link title for https://www.mozilla.org/en-US/contribute/
+#define firefox_community åèæå
+
+# LOCALIZATION NOTE (firefox_about):
+# link title for https://www.mozilla.org/en-US/about/
+#define firefox_about éæ¼æå
+
+# LOCALIZATION NOTE (nightly_heading):
+# Firefox Nightly links folder name
+#define nightly_heading Firefox Nightly è³æº
+
+# LOCALIZATION NOTE (nightly_blog):
+# Nightly builds only, link title for https://blog.nightly.mozilla.org/
+#define nightly_blog Firefox Nightly é¨è½æ ¼
+
+# LOCALIZATION NOTE (bugzilla):
+# Nightly builds only, link title for https://bugzilla.mozilla.org/
+#define bugzilla Mozilla Bug Tracker
+
+# LOCALIZATION NOTE (mdn):
+# Nightly builds only, link title for https://developer.mozilla.org/
+#define mdn Mozilla Developer Network
+
+# 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 Nightly 測試è
å·¥å
·
+
+# LOCALIZATION NOTE (crashes):
+# Nightly builds only, link title for about:crashes
+#define crashes æ¨éå°éçææé¯èª¤
+
+# LOCALIZATION NOTE (planet):
+# Nightly builds only, link title for https://planet.mozilla.org/
+#define planet Planet Mozilla
+
+#unfilter emptyLines
diff --git a/browser/updater/updater.ini b/browser/updater/updater.ini
new file mode 100644
index 00000000000..7ade06129a6
--- /dev/null
+++ b/browser/updater/updater.ini
@@ -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 is in the UTF-8 encoding
+; All strings must be less than 600 chars.
+[Strings]
+TitleText=%MOZ_APP_DISPLAYNAME% æ´æ°
+InfoText=%MOZ_APP_DISPLAYNAME% æ£å¨å®è£æ´æ°ä¸æå¨ç¨å¾ååâ¦
+MozillaMaintenanceDescription=Mozilla ç¶è·æåè½ç¢ºä¿æ¨é»è
¦ä¸ä½¿ç¨çæ¯ææ°ãæå®å
¨ç Mozilla Firefoxãä¿æä½¿ç¨ææ°çç Firefox å°æ¼æ¨çç·ä¸å®å
¨æ¯ç¸ç¶éè¦çï¼Mozilla ä¹å¼·çå»ºè°æ¨ä¿æé忤æåã
+
diff --git a/calendar/README.txt b/calendar/README.txt
new file mode 100644
index 00000000000..8886c8d0728
--- /dev/null
+++ b/calendar/README.txt
@@ -0,0 +1,3 @@
+For information about installing, running and configuring Lightning
+including a list of known issues and troubleshooting information,
+refer to: http://www.mozilla.org/projects/calendar/
diff --git a/calendar/calendar/calendar-context-menus.ftl b/calendar/calendar/calendar-context-menus.ftl
new file mode 100644
index 00000000000..f6ef184317b
--- /dev/null
+++ b/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 = 編輯
+ .accesskey = E
diff --git a/calendar/calendar/calendar-delete-prompt.ftl b/calendar/calendar/calendar-delete-prompt.ftl
new file mode 100644
index 00000000000..fe7890ec0ff
--- /dev/null
+++ b/calendar/calendar/calendar-delete-prompt.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/.
+
+calendar-delete-event-prompt-title =
+ { $count ->
+ *[other] åªé¤äºä»¶
+ }
+calendar-delete-event-prompt-message =
+ { $count ->
+ *[one] æ¨ç¢ºå®è¦åªé¤éå ´äºä»¶å?
+ [other] æ¨ç¢ºå®è¦åªé¤é { $count } å ´äºä»¶åï¼
+ }
+calendar-delete-task-prompt-title =
+ { $count ->
+ *[other] åªé¤å·¥ä½
+ }
+calendar-delete-task-prompt-message =
+ { $count ->
+ *[one] æ¨ç¢ºå®è¦åªé¤éåå·¥ä½å?
+ [other] æ¨ç¢ºå®è¦åªé¤é { $count } åå·¥ä½åï¼
+ }
+calendar-delete-item-prompt-title =
+ { $count ->
+ *[other] åªé¤é
ç®
+ }
+calendar-delete-item-prompt-message =
+ { $count ->
+ *[one] æ¨ç¢ºå®è¦åªé¤éåé
ç®å?
+ [other] æ¨ç¢ºå®è¦åªé¤é { $count } åé
ç®åï¼
+ }
+calendar-delete-prompt-disable-message = ä¸è¦ååæã
diff --git a/calendar/calendar/calendar-editable-item.ftl b/calendar/calendar/calendar-editable-item.ftl
new file mode 100644
index 00000000000..18b2aca0108
--- /dev/null
+++ b/calendar/calendar/calendar-editable-item.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/.
+
+calendar-editable-item-privacy-icon-private =
+ .alt = ç§äºº: ç§äººæ´»å
+calendar-editable-item-privacy-icon-confidential =
+ .alt = ç§äºº: å
é¡¯ç¤ºæ¥æèæé
+calendar-editable-item-todo-icon-task =
+ .alt = å·¥ä½
+calendar-editable-item-todo-icon-completed-task =
+ .alt = 已宿çå·¥ä½
+calendar-editable-item-multiday-event-icon-start =
+ .alt = 夿¥äºä»¶éå§
+calendar-editable-item-multiday-event-icon-continue =
+ .alt = 夿¥äºä»¶ç¹¼çº
+calendar-editable-item-multiday-event-icon-end =
+ .alt = 夿¥äºä»¶çµæ
+calendar-editable-item-reminder-icon-alarm =
+ .alt = å·²æå®æéæé
+calendar-editable-item-reminder-icon-suppressed-alarm =
+ .alt = å·²æå®æéæéï¼ä½ç®å被éé
+calendar-editable-item-reminder-icon-email =
+ .alt = å·²æå®å¯éæééµä»¶
+calendar-editable-item-reminder-icon-audio =
+ .alt = å·²æå®é³ææéè¦ç¤º
diff --git a/calendar/calendar/calendar-event-dialog-reminder.ftl b/calendar/calendar/calendar-event-dialog-reminder.ftl
new file mode 100644
index 00000000000..62f92508251
--- /dev/null
+++ b/calendar/calendar/calendar-event-dialog-reminder.ftl
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-event-reminder-icon-display =
+ .alt = 顯示éç¥
+calendar-event-reminder-icon-email =
+ .alt = å¯éé»åéµä»¶
+calendar-event-reminder-icon-audio =
+ .alt = ææ¾é³æè¦ç¤º
diff --git a/calendar/calendar/calendar-ics-file-dialog.ftl b/calendar/calendar/calendar-ics-file-dialog.ftl
new file mode 100644
index 00000000000..439cd1a1103
--- /dev/null
+++ b/calendar/calendar/calendar-ics-file-dialog.ftl
@@ -0,0 +1,43 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-ics-file-window-2 =
+ .title = å¯å
¥è¡äºæäºä»¶èå·¥ä½
+calendar-ics-file-dialog-import-event-button-label = å¯å
¥äºä»¶
+calendar-ics-file-dialog-import-task-button-label = å¯å
¥å·¥ä½
+calendar-ics-file-dialog-2 =
+ .buttonlabelaccept = å
¨é¨å¯å
¥
+calendar-ics-file-accept-button-ok-label = 確å®
+calendar-ics-file-cancel-button-close-label = éé
+calendar-ics-file-dialog-message-2 = 徿ªæ¡å¯å
¥:
+calendar-ics-file-dialog-calendar-menu-label = å¯å
¥å°è¡äºæ:
+calendar-ics-file-dialog-items-loading-message =
+ .value = æ£å¨è¼å
¥é
ç®â¦
+calendar-ics-file-dialog-search-input =
+ .placeholder = éæ¿¾é
ç®â¦
+calendar-ics-file-dialog-sort-start-ascending =
+ .label = ä¾ç
§éå§æéæåºï¼å¾å
å°å¾ï¼
+calendar-ics-file-dialog-sort-start-descending =
+ .label = ä¾ç
§éå§æéæåºï¼å¾å¾å°å
ï¼
+# "A > Z" is used as a concise way to say "alphabetical order".
+# You may replace it with something appropriate to your language.
+calendar-ics-file-dialog-sort-title-ascending =
+ .label = ä¾ç
§æ¨é¡æåºï¼ååªï¼
+# "Z > A" is used as a concise way to say "reverse alphabetical order".
+# You may replace it with something appropriate to your language.
+calendar-ics-file-dialog-sort-title-descending =
+ .label = ä¾ç
§æ¨é¡æåºï¼éåªï¼
+calendar-ics-file-dialog-progress-message = å¯å
¥ä¸â¦
+calendar-ics-file-import-success = å·²æåå¯å
¥ï¼
+calendar-ics-file-import-error = ç¼çé¯èª¤ï¼å¯å
¥å¤±æã
+calendar-ics-file-import-complete = å¯å
¥å®æã
+calendar-ics-file-import-duplicates =
+ { $duplicatesCount ->
+ *[other] æ { $duplicatesCount } çé
ç®å·²åå¨ç®æ¨è¡äºæï¼å·²ç¶å¿½ç¥ã
+ }
+calendar-ics-file-import-errors =
+ { $errorsCount ->
+ *[other] æ { $errorsCount } çé
ç®å¯å
¥å¤±æãè¥é詳細è³è¨ï¼è«å°é¯èª¤ä¸»æ§å°ç¢ºèªã
+ }
+calendar-ics-file-dialog-no-calendars = æ²æå¯ä»¥å¯å
¥äºä»¶æå·¥ä½çè¡äºæã
diff --git a/calendar/calendar/calendar-invitations-dialog.ftl b/calendar/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 00000000000..5926c6f8f4e
--- /dev/null
+++ b/calendar/calendar/calendar-invitations-dialog.ftl
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-invitation-current-participation-status-icon-accepted =
+ .alt = ç®åå·²æ¥å
+calendar-invitation-current-participation-status-icon-declined =
+ .alt = ç®åå·²æçµ
+calendar-invitation-current-participation-status-icon-needs-action =
+ .alt = ç®åæªæ±ºå®
diff --git a/calendar/calendar/calendar-itip-identity-dialog.ftl b/calendar/calendar/calendar-itip-identity-dialog.ftl
new file mode 100644
index 00000000000..88d7096027f
--- /dev/null
+++ b/calendar/calendar/calendar-itip-identity-dialog.ftl
@@ -0,0 +1,8 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-itip-identity-dialog-title = æä¸éä¹å®¢åï¼
+calendar-itip-identity-warning = æ¨éä¸å¨ä¾è³æ¸
å®ç¶ä¸ã
+calendar-itip-identity-label = åæçº:
+calendar-itip-identity-label-none = å°æ¤äºä»¶èä¸å建ç«éè¯:
diff --git a/calendar/calendar/calendar-print.ftl b/calendar/calendar/calendar-print.ftl
new file mode 100644
index 00000000000..36005d69a98
--- /dev/null
+++ b/calendar/calendar/calendar-print.ftl
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-print-layout-label = çé¢
+calendar-print-layout-list = æ¸
å®
+calendar-print-layout-month-grid = ææ¥ç¨è¡¨
+calendar-print-layout-week-planner = é±è¨ç«
+calendar-print-filter-label = åå°ç¯å
+calendar-print-filter-events = äºä»¶
+calendar-print-filter-tasks = å·¥ä½
+calendar-print-filter-completedtasks = 已宿çå·¥ä½
+calendar-print-filter-taskswithnoduedate = æ²æå°ææ¥çå·¥ä½
+calendar-print-range-from = å¾
+calendar-print-range-to = å°
+calendar-print-back-button = ä¸ä¸é
+calendar-print-next-button = ä¸ä¸å
diff --git a/calendar/calendar/calendar-summary-dialog.ftl b/calendar/calendar/calendar-summary-dialog.ftl
new file mode 100644
index 00000000000..b08f1467a29
--- /dev/null
+++ b/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 = 編輯
+ .accesskey = E
+calendar-summary-dialog-edit-menu-button =
+ .label = 編輯
+edit-button-context-menu-this-occurrence =
+ .label = åªç·¨è¼¯é䏿¬¡
+ .accesskey = t
+edit-button-context-menu-all-occurrences =
+ .label = ç·¨è¼¯æææç¼ççé
ç®
+ .accesskey = a
diff --git a/calendar/calendar/calendar-uri-redirect-dialog.ftl b/calendar/calendar/calendar-uri-redirect-dialog.ftl
new file mode 100644
index 00000000000..72ec69e2c03
--- /dev/null
+++ b/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 = Calendar URI éæ°å°å
+calendar-uri-redirect-description =
+ æ¤ä¼ºæå¨éæ°å°åäºè¡äºæã{ $calendarName }ãç URIã
+ è¦æ¥åæ´æ¹çºä½¿ç¨æ°ç URI åï¼
+calendar-uri-redirect-original-uri-label = ç®å URI:
+calendar-uri-redirect-target-uri-label = éæ°å°åå°æ°ç URI:
diff --git a/calendar/calendar/calendar-widgets.ftl b/calendar/calendar/calendar-widgets.ftl
new file mode 100644
index 00000000000..bbecbae48ac
--- /dev/null
+++ b/calendar/calendar/calendar-widgets.ftl
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-deactivated-notification-events = ç®åææçè¡äºæçå·²åç¨ãè«åç¨ææ°å¢è¡äºæï¼æè½å»ºç«æç·¨è¼¯äºä»¶ã
+calendar-deactivated-notification-tasks = ç®åææçè¡äºæçå·²åç¨ãè«åç¨ææ°å¢è¡äºæï¼æè½å»ºç«æç·¨è¼¯å·¥ä½ã
+calendar-notifications-label = 顯示å³å°å°ä¾çäºä»¶éç¥
+calendar-add-notification-button =
+ .label = æ°å¢éç¥
diff --git a/calendar/calendar/category-dialog.ftl b/calendar/calendar/category-dialog.ftl
new file mode 100644
index 00000000000..bd9db5a0fbe
--- /dev/null
+++ b/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 = å稱
+category-color-label =
+ .label = 使ç¨è²å½©
diff --git a/calendar/calendar/preferences.ftl b/calendar/calendar/preferences.ftl
new file mode 100644
index 00000000000..abcf0db7986
--- /dev/null
+++ b/calendar/calendar/preferences.ftl
@@ -0,0 +1,194 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 = è¡äºæ
+calendar-title-reminder = æé
+calendar-title-notification = éç¥
+calendar-title-category = åé¡
+dateformat-label =
+ .value = æ¥ææåæ ¼å¼:
+ .accesskey = D
+# $date (String) - the formatted example date
+dateformat-long =
+ .label = é·: { $date }
+# $date (String) - the formatted example date
+dateformat-short =
+ .label = ç: { $date }
+timezone-label =
+ .value = æå:
+weekstart-label =
+ .value = æ¯é±ç第ä¸å¤©:
+ .accesskey = r
+day-1-name =
+ .label = æææ¥
+day-2-name =
+ .label = ææä¸
+day-3-name =
+ .label = ææäº
+day-4-name =
+ .label = ææä¸
+day-5-name =
+ .label = ææå
+day-6-name =
+ .label = ææäº
+day-7-name =
+ .label = ææå
+show-weeknumber-label =
+ .label = å¨ç«é¢èè¿·ä½ ææä¸é¡¯ç¤ºé±æ¸
+ .accesskey = w
+workdays-label =
+ .value = æ¯é±å·¥ä½æ¥:
+day-1-checkbox =
+ .label = æ¥
+ .accesskey = S
+day-2-checkbox =
+ .label = ä¸
+ .accesskey = M
+day-3-checkbox =
+ .label = äº
+ .accesskey = T
+day-4-checkbox =
+ .label = ä¸
+ .accesskey = W
+day-5-checkbox =
+ .label = å
+ .accesskey = h
+day-6-checkbox =
+ .label = äº
+ .accesskey = F
+day-7-checkbox =
+ .label = å
+ .accesskey = a
+dayweek-legend = æ¥èé±ç檢è¦
+visible-hours-label =
+ .value = 顯示:
+ .accesskey = o
+visible-hours-end-label =
+ .value = åå°æ
+day-start-label =
+ .value = æ¯å¤©éå§æé:
+ .accesskey = D
+day-end-label =
+ .value = æ¯å¤©çµææé:
+ .accesskey = y
+midnight-label =
+ .label = åå¤
+noon-label =
+ .label = ä¸å
+location-checkbox =
+ .label = 顯示å°é»
+ .accesskey = L
+multiweek-legend = å¤é±æª¢è¦
+number-of-weeks-label =
+ .value = é è¨é¡¯ç¤ºé±æ¸ï¼å
å«éå»é±æ¬¡ï¼:
+ .accesskey = e
+week-0-label =
+ .label = ç¡
+week-1-label =
+ .label = 1 é±
+week-2-label =
+ .label = 2 é±
+week-3-label =
+ .label = 3 é±
+week-4-label =
+ .label = 4 é±
+week-5-label =
+ .label = 5 é±
+week-6-label =
+ .label = 6 é±
+previous-weeks-label =
+ .value = éå»é±æ¬¡é¡¯ç¤º:
+ .accesskey = P
+todaypane-legend = 仿¥çªæ ¼
+# 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 = ãå³å°å°ä¾ãåå¡å°é¡¯ç¤º:
+ .accesskey = U
+agenda-days =
+ .value = è°ç¨é¡¯ç¤º:
+ .accesskey = g
+event-task-legend = äºä»¶èå·¥ä½
+default-length-label =
+ .value = é è¨äºä»¶èå·¥ä½é·åº¦:
+ .accesskey = E
+task-start-label =
+ .value = éå§æ¥:
+task-start-1-label =
+ .label = ç¡
+task-start-2-label =
+ .label = æ¯æ¥éå§æé
+task-start-3-label =
+ .label = æ¯æ¥çµææé
+task-start-4-label =
+ .label = æå¤©
+task-start-5-label =
+ .label = ä¸ä¸é±
+task-start-6-label =
+ .label = ç¸å°æ¼ç®åæé
+task-start-7-label =
+ .label = ç¸å°æ¼éå§æé
+task-start-8-label =
+ .label = ç¸å°æ¼ä¸ä¸å°æ
+task-due-label =
+ .value = å°ææ¥:
+edit-intab-label =
+ .label = å¨åé ï¼èéå°è©±çªä¸ç·¨è¼¯äºä»¶èå·¥ä½ã
+ .accesskey = t
+prompt-delete-label =
+ .label = åªé¤äºä»¶èå·¥ä½åæç¤ºã
+ .accesskey = V
+accessibility-legend = è¼å©åè½
+accessibility-colors-label =
+ .label = 使ç¨è¼å
·è¦ªååçè²å½©
+ .accesskey = c
+reminder-legend = æéæéå°æ:
+reminder-play-checkbox =
+ .label = ææ¾é³æ
+ .accesskey = s
+reminder-play-alarm-button =
+ .label = ææ¾
+ .accesskey = P
+reminder-default-sound-label =
+ .label = 使ç¨é è¨é³æ
+ .accesskey = d
+reminder-custom-sound-label =
+ .label = 使ç¨ä¸åé³ææªæ¡
+ .accesskey = U
+reminder-browse-sound-label =
+ .label = ç覽â¦
+ .accesskey = B
+reminder-dialog-label =
+ .label = 顯示æéè¨æ¯
+ .accesskey = x
+missed-reminder-label =
+ .label = çºå¯å¯«å
¥çè¡äºæé¡¯ç¤ºé¯éçæé
+ .accesskey = m
+reminder-default-legend = æéé è¨å¼
+default-snooze-label =
+ .value = é è¨ç¨å¾æéé·åº¦:
+ .accesskey = S
+event-alarm-label =
+ .value = é è¨çäºä»¶æéè¨å®:
+ .accesskey = e
+alarm-on-label =
+ .label = éå
+alarm-off-label =
+ .label = éé
+task-alarm-label =
+ .value = é è¨ç工使éè¨å®:
+ .accesskey = a
+event-alarm-time-label =
+ .value = æéé è¨æ¼äºä»¶åå¤ä¹
忢:
+ .accesskey = u
+task-alarm-time-label =
+ .value = æéé è¨æ¼å·¥ä½åå¤ä¹
忢:
+ .accesskey = o
+calendar-notifications-customize-label = å¯ä»¥å°æ¯ä»½è¡äºæç屬æ§è¦çªèªè¨åè¡äºæçéç¥è¨å®ã
+category-new-label = æ°å¢åé¡
+category-edit-label = 編輯é¡å¥
+category-overwrite-title = è¦å: éè¤çå稱
+category-overwrite = æç¸åå稱çé¡å¥åå¨ã\n æ¨è¦è¦å¯«åï¼
+category-blank-warning = æ¨å¿
é 輸å
¥é¡å¥å稱ã
diff --git a/calendar/chrome/calendar/calendar-alarms.properties b/calendar/chrome/calendar/calendar-alarms.properties
new file mode 100644
index 00000000000..4dfb4a8c13f
--- /dev/null
+++ b/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=%2$S %1$S
+reminderTitleAtStartEvent=äºä»¶éå§æ
+reminderTitleAtStartTask=å·¥ä½éå§æ
+reminderTitleAtEndEvent=äºä»¶çµææ
+reminderTitleAtEndTask=å·¥ä½çµææ
+
+# 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=延徿é %1$S
+
+reminderCustomOriginBeginBeforeEvent=äºä»¶éå§å
+reminderCustomOriginBeginAfterEvent=äºä»¶éå§å¾
+reminderCustomOriginEndBeforeEvent=äºä»¶çµæå
+reminderCustomOriginEndAfterEvent=äºä»¶çµæå¾
+reminderCustomOriginBeginBeforeTask=å·¥ä½éå§å
+reminderCustomOriginBeginAfterTask=å·¥ä½éå§å¾
+reminderCustomOriginEndBeforeTask=å·¥ä½çµæå
+reminderCustomOriginEndAfterTask=å·¥ä½çµæå¾
+
+reminderErrorMaxCountReachedEvent=鏿çè¡äºæä¸åäºä»¶æå¤åªè½æ #1 åæéã
+reminderErrorMaxCountReachedTask=鏿çè¡äºæä¸å工使å¤åªè½æ #1 åæéã
+
+# 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=ç®åå
è½ç´æ¥ééå¯è®è¡äºæä¸çæéï¼èç¡æ³ä½¿ç¨ç¨å¾æéåè½ãå
è½å°å¯å¯«å
¥çè¡äºæä½¿ç¨ã%1$Sãæéç¨å¾æéã
+# LOCALIZATION NOTE (reminderDisabledSnoozeButtonTooltip)
+# This tooltip is only displayed, if the button is disabled
+reminderDisabledSnoozeButtonTooltip=䏿¯æ´å¨å¯è®è¡äºæä¸ä½¿ç¨ç¨å¾æéåè½
diff --git a/calendar/chrome/calendar/calendar-event-dialog-attendees.properties b/calendar/chrome/calendar/calendar-event-dialog-attendees.properties
new file mode 100644
index 00000000000..1cab691b5fb
--- /dev/null
+++ b/calendar/chrome/calendar/calendar-event-dialog-attendees.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/.
+
+event.attendee.role.required = å¿
é èæè
+event.attendee.role.optional = éå¿
è¦èæè
+event.attendee.role.nonparticipant = éåå è
+event.attendee.role.chair = 主å¸
+event.attendee.role.unknown = æªç¥çåå è
ï¼%1$Sï¼
+
+event.attendee.usertype.individual = å人
+event.attendee.usertype.group = 群çµ
+event.attendee.usertype.resource = è³æº
+event.attendee.usertype.room = 空é
+event.attendee.usertype.unknown = æªç¥é¡åï¼%1$Sï¼
+
diff --git a/calendar/chrome/calendar/calendar-event-dialog.dtd b/calendar/chrome/calendar/calendar-event-dialog.dtd
new file mode 100644
index 00000000000..0bbd50dfa59
--- /dev/null
+++ b/calendar/chrome/calendar/calendar-event-dialog.dtd
@@ -0,0 +1,428 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/calendar-event-dialog.properties b/calendar/chrome/calendar/calendar-event-dialog.properties
new file mode 100644
index 00000000000..662e5111b4b
--- /dev/null
+++ b/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=æ¯ #1 天
+repeatDetailsRuleDaily4=æ¯å工使¥
+
+# 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=æ¯ #2 ææç %1$S
+weeklyNthOnNounclass2=æ¯ #2 ææç %1$S
+
+# LOCALIZATION NOTE (weeklyEveryNth):
+# Edit recurrence window -> Recurrence pattern -> Weekly repeat rules
+# #1 - interval
+# e.g. "every 5 weeks"
+weeklyEveryNth=æ¯ #1 ææ
+
+# 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=æææ¥
+repeatDetailsDay1Nounclass=nounclass1
+repeatDetailsDay2=ææä¸
+repeatDetailsDay2Nounclass=nounclass1
+repeatDetailsDay3=ææäº
+repeatDetailsDay3Nounclass=nounclass1
+repeatDetailsDay4=ææä¸
+repeatDetailsDay4Nounclass=nounclass1
+repeatDetailsDay5=ææå
+repeatDetailsDay5Nounclass=nounclass1
+repeatDetailsDay6=ææäº
+repeatDetailsDay6Nounclass=nounclass1
+repeatDetailsDay7=ææå
+repeatDetailsDay7Nounclass=nounclass1
+
+# LOCALIZATION NOTE (repeatDetailsAnd)
+# Used to show a number of weekdays in a list
+# i.e. "Sunday, Monday, Tuesday " + and + " Wednesday"
+repeatDetailsAnd=è
+
+# 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=æ¯ #2 åæç %1$S
+monthlyRuleNthOfEveryNounclass2=æ¯ #2 åæç %1$S
+
+# 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=%1$S %2$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=æ¯ #2 åæçæ¯å %1$S
+monthlyEveryOfEveryNounclass2=æ¯ #2 åæçæ¯å %1$S
+
+# 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=第 %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=æ¯ #2 åæç %1$S
+
+# 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=æ¯ #1 åæçæå¾ä¸å¤©
+
+# 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=æ¯ #2 åæçæ¯ä¸å¤©
+
+# 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=第ä¸å
+repeatOrdinal2Nounclass1=第äºå
+repeatOrdinal3Nounclass1=第ä¸å
+repeatOrdinal4Nounclass1=第åå
+repeatOrdinal5Nounclass1=第äºå
+repeatOrdinal-1Nounclass1=æå¾ä¸å
+repeatOrdinal1Nounclass2=第ä¸å
+repeatOrdinal2Nounclass2=第äºå
+repeatOrdinal3Nounclass2=第ä¸å
+repeatOrdinal4Nounclass2=第åå
+repeatOrdinal5Nounclass2=第äºå
+repeatOrdinal-1Nounclass2=æå¾ä¸å
+
+# 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=æ¯ #3 å¹´ç %1$S %2$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=æ¯ #4 å¹´ç %3$S ç %1$S %2$S
+yearlyNthOnNthOfNounclass2=æ¯ #4 å¹´ç %3$S ç %1$S %2$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=æ¯ #3 å¹´ç %2$S çæ¯å %1$S
+yearlyOnEveryNthOfNthNounclass2=æ¯ #3 å¹´ç %2$S çæ¯å %1$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=æ¯ #2 å¹´ç %1$S æçæ¯ä¸å¤©
+
+repeatDetailsMonth1=䏿
+repeatDetailsMonth2=äºæ
+repeatDetailsMonth3=䏿
+repeatDetailsMonth4=åæ
+repeatDetailsMonth5=äºæ
+repeatDetailsMonth6=å
æ
+repeatDetailsMonth7=䏿
+repeatDetailsMonth8=å
«æ
+repeatDetailsMonth9=乿
+repeatDetailsMonth10=åæ
+repeatDetailsMonth11=å䏿
+repeatDetailsMonth12=åäºæ
+
+# 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=ç¼çæ¼ %2$S ç %3$S å° %4$S\n%1$S\néè¤ç¼ç #5 次ã
+
+# 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=ç¼çæ¼å¾ %2$S éå§ç\n%1$S éè¤ç¼ç #3 次ã
+
+# 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=ç¼çæ¼å¾ %2$S å° %3$S\n%1$S\nç %4$S å° %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=ç¼çæ¼å¾ %2$S å° %3$S ç\n%1$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=ç¼çæ¼å¾ %2$S éå§ç\n%1$S ç\n%3$S å° %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=ç¼çæ¼å¾ %2$S éå§ç\n%1$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=æå¾ä¸æ¥
+
+# 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=é»é裡以åå¾è©³ç´°è³è¨
+
+# 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=æªç¥çéè¤è©³æ
+
+# differences between the dialog for an Event or a Task
+newEvent=æ°å¢äºä»¶
+newTask=æ°å¢å·¥ä½
+itemMenuLabelEvent=äºä»¶
+itemMenuAccesskeyEvent2=T
+itemMenuLabelTask=å·¥ä½
+itemMenuAccesskeyTask2=T
+
+emailSubjectReply=Re: %1$S
+
+# Link Location Dialog
+specifyLinkLocation=è«æå®éçµä½ç½®
+enterLinkLocation=輸å
¥ç¶²åææä»¶çä½ç½®ã
+
+summaryDueTaskLabel=å°ææ¥:
+
+# Attach File Dialog
+attachViaFilelink=ä¸å³è³ %1$S
+selectAFile=è«é¸ææªæ¡ä¾éå
+removeCalendarsTitle=ç§»é¤éå æªæ¡
+
+# LOCALIZATION NOTE (removeAttachmentsText): Semi-colon list of plural forms for
+# prompting attachment removal.
+# See http://developer.mozilla.org/en/Localization_and_Plurals
+removeAttachmentsText=æ¨ççæ³è¦ç§»é¤ #1 åéä»¶åï¼
+
+# 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=%3$S %1$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=%4$S %1$S %3$S %2$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=æææ¥
+repeatDetailsDay2Plural=ææä¸
+repeatDetailsDay3Plural=ææäº
+repeatDetailsDay4Plural=ææä¸
+repeatDetailsDay5Plural=ææå
+repeatDetailsDay6Plural=ææäº
+repeatDetailsDay7Plural=ææå
+
+# 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=æ°¸é
+
+# 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=æå¾ä¸æ¥
+
+# 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 æ¥åäºéè«ï¼ä½æåºäºåå°æè°:
+
+# 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 æçµäºéè«ï¼ä¹æåºäºåå°æè°:
+
+# 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 ææ´¾ä»£çåå éè«ï¼ä½æåºäºåå°æè°:
+
+# 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 å°æªæ±ºå®æ¯å¦åå ï¼ä½æåºäºåå°æè°:
+
+# 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 æ«ææ¥åäºéè«ï¼ä½æåºäºåå°æè°:
+
+# LOCALIZATION NOTE (counterOnPreviousVersionNotification) - this is only visible when opening the
+# dialog from the email summary view after receiving a counter message
+counterOnPreviousVersionNotification=æ¤äºä»¶çå
åçæ¬è½æåå°æè°ã
+
+# LOCALIZATION NOTE (counterOnCounterDisallowedNotification) - this is only visible when opening the
+# dialog from the email summary view after receiving a counter message
+counterOnCounterDisallowedNotification=æ¨å¯åºéè«æå·²è¨å®ä¸å
許åå°ã
+
+# LOCALIZATION NOTE (eventAccepted) - this will be displayed as notification
+# in the summary dialog if the user has accepted the event invitation
+eventAccepted=æ¨å·²æ¥åæ¤éè«
+
+# LOCALIZATION NOTE (eventTentative) - this will be displayed as notification
+# in the summary dialog if the user has accepted the event invitation tentatively
+eventTentative=æ¨å·²æ«ææ¥åæ¤éè«
+
+# LOCALIZATION NOTE (eventDeclined) - this will be displayed as notification
+# in the summary dialog if the user has declined the event invitation
+eventDeclined=æ¨å·²æçµæ¤éè«
+
+# 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=æ¨å·²ææ´¾ä»äººåè¦æ¤éè«
+
+# LOCALIZATION NOTE (eventNeedsAction) - this will be displayed as notification
+# in the summary dialog if the user hasn't yet responded to an invitation
+eventNeedsAction=æ¨å°æªåè¦æ¤éè«
+
+# LOCALIZATION NOTE (taskAccepted) - this will be displayed as notification
+# in the summary dialog if the user has accepted the assigned task
+taskAccepted=æ¨å·²æ¥åæ¤å·¥ä½
+
+# LOCALIZATION NOTE (taskTentative) - this will be displayed as notification
+# in the summary dialog if the user has accepted tentatively the assigned task
+taskTentative=æ¨å·²æ«ææ¥åæ¤å·¥ä½
+
+# LOCALIZATION NOTE (taskDeclined) - this will be displayed as notification
+# in the summary dialog if the user has declined the assigned task
+taskDeclined=æ¨å·²æçµæ¤å·¥ä½
+
+# 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=æ¨å·²ææ´¾ä»äººåè¦æ¤å·¥ä½
+
+# 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=æ¨å°æªåè¦æ¤å·¥ä½
+
+# LOCALIZATION NOTE (taskInProgress) - this will be displayed as notification
+# in the summary dialog if the user is working on an assigned task
+taskInProgress=æ¨å·²éå§é²è¡æ¤å·¥ä½
+
+# 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=æ¨å·²å®ææ¤å·¥ä½
+
+# 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=å³é並éé
+
+# 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=éç¥åèè
並éé
+
+# 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=å²å並å³é
+
+# 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=å²å並éç¥åèè
+
+# 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=å²å並å³é
+
+# 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=å³é並éé
+
+# 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=èæè
ï¼%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=éä»¶ï¼%1$Sï¼:
diff --git a/calendar/chrome/calendar/calendar-extract.properties b/calendar/chrome/calendar/calendar-extract.properties
new file mode 100644
index 00000000000..151e45c4a9d
--- /dev/null
+++ b/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 = èµ· | - | èµ· | è | éå§ | å°
+
+# LOCALIZATION NOTE (end.prefix):
+# datetimes with these in front are extracted as end times
+end.prefix = è¿ | è³ | å° | ~ | - | æé: | æéï¼ | å°ææ¥: | å°ææ¥ï¼| çµææ¼
+
+# 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 = > | $
+
+# LOCALIZATION NOTE (no.datetime.suffix):
+# datetimes followed by these won't be used
+no.datetime.suffix = æ¨ | F | : | éµä»¶ | ä¿¡ | å
| å | å¡ | å¼µ | $
+
+# LOCALIZATION NOTE (from.*):
+# can be a list of values, separate variants by |
+
+# LOCALIZATION NOTE (from.today):
+# must not be empty!
+from.today = ä»å¤© | 仿¥ | æ¬æ¥
+
+from.tomorrow = æå¤© | ææ¥
+# 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 è
+
+# LOCALIZATION NOTE (until.ordinal.date):
+# #1 = matches numbers 1-31 and number.x
+until.ordinal.date =
+
+from.noon = ä¸å | æ£å
+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 = #1 æ | #1 é» | #1 - | #1 ~
+
+# 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 =
+
+# LOCALIZATION NOTE (from.hour.am):
+# #1 = matches numbers 0-23 and number.0-number.23
+from.hour.am = ä¸å #1 æ | ä¸å #1 é» | æ©ä¸ #1 æ | æ©ä¸ #1 é» | 忍 #1 æ | 忍 #1 é» | #1 am | #1 AM | #1 a.m.
+
+# 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 æ | ä¸å #1 é» | æä¸ #1 æ | æä¸ #1 é» | åæ #1 æ | åæ #1 é» | #1 pm | #1 PM | #1 p.m.
+
+# 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 ååå°æ
+
+# 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 é»å
+
+# 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 | æ¼ #1:#2 | ç #1:#2 | #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 | åå #1:#2 | æ©ä¸ #1:#2 | #1:#2 a.m. | #1:#2 am | #1:#2 AM | ä¸å #1 é» #2 å
+
+# 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 | åå¾ #1:#2 | æä¸ #1:#2 | #1:#2 pm | #1:#2 PM | #1:#2 p.m. | ä¸å #1 é» #2 å | ä¸å #1 æ #2 å
+
+# 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 = #2 #1 æ¥ | #2 #1 è | #2 第 #1 æ¥ | #2 第 #1 天
+
+# 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 = #2/#1 | #2-#1 | #2 æ #1 æ¥ | #2 æ #1 è | #2 æç¬¬ #1 æ¥ | #2 æç¬¬ #1 天
+
+# 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 = #2/#1/#3 | #3/#2/#1 | #3-#2-#1 | #3 å¹´ #2 æ #1 æ¥
+
+# 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 = #3/#2/#1 | #3-#2-#1 | #3 å¹´ #2 #1 æ¥ | #2 #1, #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 åé | #1 å
+
+# LOCALIZATION NOTE (duration.hours):
+# #1 = matches 1/2 numbers and number.0 - and number.31
+duration.hours = #1 å°æ | #1 æ | #1 åéé
+
+# LOCALIZATION NOTE (duration.days):
+# #1 = matches 1/2 numbers and number.0 - and number.31
+duration.days = #1 天 | #1 æ¥
+
+# LOCALIZATION NOTE (month.*):
+# can be a list of values, separate variants by |
+month.1 = 䏿 | 1 æ
+month.2 = äºæ | 2 æ
+month.3 = 䏿 | 3 æ
+month.4 = åæ | 4 æ
+month.5 = äºæ | 5 æ
+month.6 = å
æ | 6 æ
+month.7 = 䏿 | 7 æ
+month.8 = å
«æ | 8 æ
+month.9 = 乿 | 9 æ
+month.10 = åæ | 10 æ
+month.11 = å䏿 | 11 æ
+month.12 = åäºæ | 12 æ
+
+# 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 = æææ¥ | 禮æå¤© | 鱿¥ | 卿¥
+from.weekday.1 = ææä¸ | 禮æä¸ | é±ä¸ | å¨ä¸
+from.weekday.2 = ææäº | 禮æäº | é±äº | å¨äº
+from.weekday.3 = ææä¸ | 禮æä¸ | é±ä¸ | å¨ä¸
+from.weekday.4 = ææå | 禮æå | é±å | å¨å
+from.weekday.5 = ææäº | 禮æäº | é±äº | å¨äº
+from.weekday.6 = ææå
| 禮æå
| é±å
| å¨å
+
+# 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 = é¶ | ã
+number.1 = ä¸ | 第ä¸
+number.2 = äº | 第äº
+number.3 = ä¸ | 第ä¸
+number.4 = å | 第å
+number.5 = äº | 第äº
+number.6 = å
| 第å
+number.7 = ä¸ | 第ä¸
+number.8 = å
« | 第å
«
+number.9 = ä¹ | 第ä¹
+number.10 = å | 第å
+number.11 = åä¸ | 第åä¸
+number.12 = åäº | 第åäº
+number.13 = åä¸ | 第åä¸
+number.14 = åå | 第åå
+number.15 = åäº | 第åäº
+number.16 = åå
| 第åå
+number.17 = åä¸ | 第åä¸
+number.18 = åå
« | 第åå
«
+number.19 = åä¹ | 第åä¹
+number.20 = äºå | 第äºå | 廿 | 第廿
+number.21 = äºåä¸ | 第äºåä¸ | å»¿ä¸ | 第廿ä¸
+number.22 = äºåäº | 第äºåäº | å»¿äº | 第廿äº
+number.23 = äºåä¸ | 第äºåä¸ | å»¿ä¸ | 第廿ä¸
+number.24 = äºåå | 第äºåå | 廿å | 第廿å
+number.25 = äºåäº | 第äºåäº | å»¿äº | 第廿äº
+number.26 = äºåå
| 第äºåå
| 廿å
| 第廿å
+number.27 = äºåä¸ | 第äºåä¸ | å»¿ä¸ | 第廿ä¸
+number.28 = äºåå
« | 第äºåå
« | 廿å
« | 第廿å
«
+number.29 = äºåä¹ | 第äºåä¹ | å»¿ä¹ | 第廿ä¹
+number.30 = ä¸å | 第ä¸å | å
| 第å
+number.31 = ä¸åä¸ | 第ä¸åä¸ | å
ä¸ | 第å
ä¸
+
+# LOCALIZATION NOTE (alphabet):
+# list all lower and uppercase letters if your language has an alphabet
+# otherwise leave it empty
+alphabet =
diff --git a/calendar/chrome/calendar/calendar-invitations-dialog.dtd b/calendar/chrome/calendar/calendar-invitations-dialog.dtd
new file mode 100644
index 00000000000..20385cd0d9d
--- /dev/null
+++ b/calendar/chrome/calendar/calendar-invitations-dialog.dtd
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/calendar-invitations-dialog.properties b/calendar/chrome/calendar/calendar-invitations-dialog.properties
new file mode 100644
index 00000000000..2c815d5afe1
--- /dev/null
+++ b/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=å
¨æ¥äºä»¶
+recurrent-event=éè¤äºä»¶
+location=å°é»: %S
+organizer=主辦è
: %S
+attendee=åå è
: %S
+none=ç¡
diff --git a/calendar/chrome/calendar/calendar-occurrence-prompt.dtd b/calendar/chrome/calendar/calendar-occurrence-prompt.dtd
new file mode 100644
index 00000000000..bad516ed20d
--- /dev/null
+++ b/calendar/chrome/calendar/calendar-occurrence-prompt.dtd
@@ -0,0 +1,8 @@
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/calendar-occurrence-prompt.properties b/calendar/chrome/calendar/calendar-occurrence-prompt.properties
new file mode 100644
index 00000000000..6bf28e7f8f5
--- /dev/null
+++ b/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=æ¯éè¤çäºä»¶
+header.isrepeating.task.label=æ¯éè¤çå·¥ä½
+header.containsrepeating.event.label=å
å«éè¤çäºä»¶
+header.containsrepeating.task.label=å
å«éè¤çå·¥ä½
+header.containsrepeating.mixed.label=å
å«ä¸åé¡åçéè¤é
ç®
+
+windowtitle.event.copy=è¤è£½éè¤çäºä»¶
+windowtitle.task.copy=è¤è£½éè¤çå·¥ä½
+windowtitle.mixed.copy=è¤è£½éè¤çé
ç®
+windowtitle.event.cut=åªä¸éè¤çäºä»¶
+windowtitle.task.cut=åªä¸éè¤çå·¥ä½
+windowtitle.mixed.cut=åªä¸éè¤çé
ç®
+windowtitle.event.delete=åªé¤éè¤çäºä»¶
+windowtitle.task.delete=åªé¤éè¤çå·¥ä½
+windowtitle.mixed.delete=åªé¤éè¤çé
ç®
+windowtitle.event.edit=編輯éè¤çäºä»¶
+windowtitle.task.edit=編輯éè¤çå·¥ä½
+windowtitle.mixed.edit=編輯éè¤çé
ç®
+windowtitle.multipleitems=鏿çé
ç®
+
+buttons.single.occurrence.copy.label=åªè¤è£½é䏿¬¡
+buttons.single.occurrence.cut.label=åªåªä¸é䏿¬¡
+buttons.single.occurrence.delete.label=åªåªé¤é䏿¬¡
+buttons.single.occurrence.edit.label=åªç·¨è¼¯é䏿¬¡
+
+buttons.multiple.occurrence.copy.label=åªè¤è£½é¸æçé
ç®
+buttons.multiple.occurrence.cut.label=åªåªä¸é¸æçé
ç®
+buttons.multiple.occurrence.delete.label=åªåªé¤é¸æçé
ç®
+buttons.multiple.occurrence.edit.label=åªç·¨è¼¯é¸æçé
ç®
+
+buttons.single.allfollowing.copy.label=è¤è£½éåèæªä¾ææçé
ç®
+buttons.single.allfollowing.cut.label=åªä¸éåèæªä¾ææçé
ç®
+buttons.single.allfollowing.delete.label=åªé¤éåèæªä¾ææçé
ç®
+buttons.single.allfollowing.edit.label=編輯éåèæªä¾ææçé
ç®
+
+buttons.multiple.allfollowing.copy.label=è¤è£½é¸æçèæªä¾ææçé
ç®
+buttons.multiple.allfollowing.cut.label=åªä¸é¸æçèæªä¾ææçé
ç®
+buttons.multiple.allfollowing.delete.label=åªé¤é¸æçèæªä¾ææçé
ç®
+buttons.multiple.allfollowing.edit.label=ç·¨è¼¯é¸æçèæªä¾ææçé
ç®
+
+buttons.single.parent.copy.label=è¤è£½æææç¼ççé
ç®
+buttons.single.parent.cut.label=åªä¸æææç¼ççé
ç®
+buttons.single.parent.delete.label=åªé¤æææç¼ççé
ç®
+buttons.single.parent.edit.label=ç·¨è¼¯æææç¼ççé
ç®
+
+buttons.multiple.parent.copy.label=è¤è£½æé¸çé
ç®ï¼å
¶æææç¼ççæ¬¡æ¸
+buttons.multiple.parent.cut.label=åªä¸æé¸çé
ç®ï¼å
¶æææç¼ççæ¬¡æ¸
+buttons.multiple.parent.delete.label=åªé¤æé¸çé
ç®ï¼å
¶æææç¼ççæ¬¡æ¸
+buttons.multiple.parent.edit.label=編輯æé¸çé
ç®ï¼å
¶æææç¼ççæ¬¡æ¸
diff --git a/calendar/chrome/calendar/calendar.dtd b/calendar/chrome/calendar/calendar.dtd
new file mode 100644
index 00000000000..0b406b8df13
--- /dev/null
+++ b/calendar/chrome/calendar/calendar.dtd
@@ -0,0 +1,411 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/calendar.properties b/calendar/chrome/calendar/calendar.properties
new file mode 100644
index 00000000000..3648f873e26
--- /dev/null
+++ b/calendar/chrome/calendar/calendar.properties
@@ -0,0 +1,809 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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=%1$S çåå°é 覽
+Untitled=ç¡æ¨é¡
+
+# Default name for new events
+newEvent=æ°å¢äºä»¶
+
+# Titles for the event/task dialog
+newEventDialog=æ°å¢äºä»¶
+editEventDialog=編輯äºä»¶
+newTaskDialog=æ°å¢å·¥ä½
+editTaskDialog=編輯工ä½
+
+# Do you want to save changes?
+askSaveTitleEvent=å²åäºä»¶
+askSaveTitleTask=å²åå·¥ä½
+askSaveMessageEvent=å°æªå²åäºä»¶ãæ¨æ³è¦å²åæ¤äºä»¶åï¼
+askSaveMessageTask=å°æªå²åå·¥ä½ãæ¨æ³è¦å²åæ¤å·¥ä½åï¼
+
+# Event Dialog Warnings
+warningEndBeforeStart=æ¨è¼¸å
¥çãçµææ¥æãæ©æ¼ãéå§æ¥æã
+warningUntilDateBeforeStart=æ¨è¼¸å
¥çãçµææ¥æãæ©æ¼ãéå§æ¥æã
+
+# The name of the calendar provided with the application by default
+homeCalendarName=é¦é
+
+# The name given to a calendar if an opened calendar has an empty filename
+untitledCalendarName=æªå½åçè¡äºæ
+
+# Event status: Tentative, Confirmed, Cancelled
+# ToDo task status: NeedsAction, InProcess, Completed, Cancelled
+statusTentative =æ«å®
+statusConfirmed =已確èª
+eventStatusCancelled=已忶
+todoStatusCancelled =已忶
+statusNeedsAction =å¾
èç
+statusInProcess =é²è¡ä¸
+statusCompleted =已宿
+
+# Task priority, these should match the priority.level.* labels in calendar.dtd
+highPriority=é«
+normalPriority=æ¨æº
+lowPriority=ä½
+
+importPrompt=æ¨æ³æéäºé
ç®å¯å
¥åªä¸åè¡äºæï¼
+exportPrompt=æ¨æ³å¾åªä¸åæ¥æå¯åºï¼
+pastePrompt=æ¨æ³è¦è²¼å°åªåç®åå¯å¯«å
¥çè¡äºæï¼
+publishPrompt=æ¨æ³è¦ç¼ä½åªä¸åè¡äºæï¼
+
+# LOCALIZATION NOTE (pasteEventAlso): The users pasting operation includes among
+# others also a meeting invitation - this is used as a affix in
+# pasteNotifyAbout
+pasteEventAlso=æ¨å¼µè²¼çæ±è¥¿å
å«ä¸å ´æè°
+# LOCALIZATION NOTE (pasteEventsAlso): The users pasting operation includes among
+# others also several meeting invitations - this is used as a affix in
+# pasteNotifyAbout
+pasteEventsAlso=æ¨å¼µè²¼çæ±è¥¿å
å«å¤å ´æè°
+# LOCALIZATION NOTE (pasteTaskAlso): The users pasting operation includes among
+# others also an assigned task - this is used as a affix in pasteNotifyAbout
+pasteTaskAlso=æ¨å¼µè²¼çæ±è¥¿å
å«å·²ææ´¾ä»äººèççå·¥ä½
+# LOCALIZATION NOTE (pasteTasksAlso): The users pasting operation include among
+# others also several assigned tasks - this is used as a affix in
+# pasteNotifyAbout
+pasteTasksAlso=æ¨å¼µè²¼çæ±è¥¿å
å«å·²ææ´¾ä»äººèççå·¥ä½
+# 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=æ¨å¼µè²¼çæ±è¥¿å
嫿è°åå·²ææ´¾ä»äººèççå·¥ä½
+# LOCALIZATION NOTE (pasteEventOnly): The users is pasting a meeting -
+# this is used as a affix in pasteNotifyAbout
+pasteEventOnly=æ¨æ£å¨å¼µè²¼çæ±è¥¿å
å«ä¸å ´æè°
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting several meetings -
+# this is used as a affix in pasteNotifyAbout
+pasteEventsOnly=æ¨æ£å¨å¼µè²¼çæ±è¥¿å
å«å¤å ´æè°
+# LOCALIZATION NOTE (pasteEventOnly): The users is pasting an assigned task -
+# this is used as a affix in pasteNotifyAbout
+pasteTaskOnly=æ¨æ£å¨å¼µè²¼çæ±è¥¿å
å«ä¸ä»¶å·²ææ´¾ä»äººèççå·¥ä½
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting several assigned
+# tasks - this is used as a affix in pasteNotifyAbout
+pasteTasksOnly=æ¨æ£å¨å¼µè²¼çæ±è¥¿å
å«å¤ä»¶å·²ææ´¾ä»äººèççå·¥ä½
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting assigned task(s) and
+# meeting(s) - this is used as a affix in pasteNotifyAbout
+pasteItemsOnly=æ¨å¼µè²¼çæ±è¥¿å
å«å¤å ´æè°åå·²ææ´¾ä»äººèççå·¥ä½
+
+# LOCALIZATION NOTE (pasteNotifyAbout): Text displayed if pasting an invitation
+# or assigned task
+# %1$S - pasteEvent* or pasteTask*
+pasteNotifyAbout=%1$S - æ¨æ³å³éæ´æ°çµ¦ææç¸é人å¡åï¼
+
+# LOCALIZATION NOTE (pasteAndNotifyLabel): button label used in calendar prompt
+# of the pasted item has attendees
+pasteAndNotifyLabel=張貼並å³é
+# LOCALIZATION NOTE (pasteDontNotifyLabel): button label used in calendar prompt
+# of the pasted item has attendees
+pasteDontNotifyLabel=張貼èä¸å³é
+
+# 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 åé
ç®å¤±æãæå¾ä¸åé¯èª¤æ¯: %2$S
+# LOCALIZATION NOTE (noItemsInCalendarFile2):
+# %1$S will be replaced with file path
+noItemsInCalendarFile2=ç¡æ³å¾ %1$S å¯å
¥ãæ¤æªæ¡ä¸æ²æå¯å¯å
¥çé
ç®ã
+
+#spaces needed at the end of the following lines
+eventDescription=æè¿°:
+
+unableToRead=ç¡æ³è®åæªæ¡:
+unableToWrite=ç¡æ³å¯«å
¥æªæ¡:
+defaultFileName=MozillaCalEvents
+HTMLTitle=Mozilla Calendar
+
+# 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=è®å %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 åé
ç®ï¼å çºç®æ¨è¡äºæè %2$S 齿éäºé
ç®ã
+
+unableToCreateProvider=æºå使¼ %1$S çè¡äºæä¾ä½¿ç¨æç¼çé¯èª¤ï¼å°ç¡æ³ä½¿ç¨æ¤è¡äºæã
+
+# Sample: Unknown timezone "USPacific" in "Dentist Appt". Using the 'floating' local timezone instead: 2008/02/28 14:00:00
+unknownTimezoneInItem=ã%2$Sãæå¨çæåã%1$Sãæ¯æªç¥æåãå·²æ¹ç¨ãæµ®åçãç¶å°æå: %3$S
+TimezoneErrorsAlertTitle=æåé¯èª¤
+TimezoneErrorsSeeConsole=詳è¦é¯èª¤ä¸»æ§å°: æªç¥æåå°æ¡ç¨ãæµ®åçãç¶å°æåã
+
+# The following strings are for the prompt to delete/unsubscribe from the calendar
+removeCalendarTitle=ç§»é¤è¡äºæ
+removeCalendarButtonDelete=åªé¤è¡äºæ
+removeCalendarButtonUnsubscribe=åæ¶è¨é±
+
+# LOCALIZATION NOTE (removeCalendarMessageDeleteOrUnsubscribe): Shown for
+# calendar where both deleting and unsubscribing is possible.
+# %1$S: The name of a calendar
+removeCalendarMessageDeleteOrUnsubscribe=æ¨æ¯å¦è¦ç§»é¤è¡äºæã%1$Sãï¼åæ¶è¨é±å°æèªæ¸
å®ä¸ç§»é¤è©²è¡äºæï¼èåªé¤åæç§»é¤è©²è¡äºæä¸¦æ°¸ä¹
æ¸
é¤å
¶è³æã
+
+# LOCALIZATION NOTE (removeCalendarMessageDelete): Shown for calendar where
+# deleting is the only option.
+# %1$S: The name of a calendar
+removeCalendarMessageDelete=æ¨ç¢ºå®è¦æ°¸ä¹
åªé¤è¡äºæã%1$Sãåï¼
+
+# LOCALIZATION NOTE (removeCalendarMessageUnsubscribe): Shown for calendar
+# where unsubscribing is the only option.
+# %1$S: The name of a calendar
+removeCalendarMessageUnsubscribe=æ¨ç¢ºå®è¦åæ¶è¨é±è¡äºæã%1$Sãåï¼
+
+WeekTitle=第 %1$S é±
+None=ç¡
+
+# 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=æ¨çè¡äºæè¨å®æªè³æå·²è¢«æ°ç %1$S æ´æ°ï¼èéåçæ¬ç %1$S ä¸ç¸å®¹ã已建ç«åçºã%2$Sãçåä»½è³æï¼ä¸¦ä½¿ç¨æ°å»ºç«çè³ææªæ¡ç¹¼çºã
+
+# List of events or todos (unifinder)
+eventUntitled=ç¡æ¨é¡
+
+# Tooltips of events or todos
+tooltipTitle=æ¨é¡:
+tooltipLocation=å°é»:
+# 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=æ¥æ:
+# event calendar name
+tooltipCalName=è¡äºæå稱:
+# event status: tentative, confirmed, cancelled
+tooltipStatus=çæ
:
+# event organizer
+tooltipOrganizer=å¬é人:
+# task/todo fields
+# start date time, due date time, task priority number, completed date time
+tooltipStart=éå§:
+tooltipDue=å°ææ¥:
+tooltipPriority=éè¦æ§:
+tooltipPercent=å®æåº¦ %:
+tooltipCompleted=已宿:
+
+# 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 æ¯æ´»åè² è²¬äººã
+# 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 䏿¯åºå¸äººå¡ã
+# 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 æ¯éå¿
è¦åºå¸äººå¡ã
+# 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 æ¯å¿
é åºå¸äººå¡ã
+
+# 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 已確èªåºå¸ã
+# 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 å·²æçµåºå¸ã
+# 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 å·²ææ´¾ä»äººåèã
+# 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ã
+# 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 å·²æ«æç¢ºèªåºå¸ã
+
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.INDIVIDUAL): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name representing individual attendee
+dialog.tooltip.attendeeUserType2.INDIVIDUAL=%1$S
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.GROUP): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name representing a group (e.g. a distribution list)
+dialog.tooltip.attendeeUserType2.GROUP=%1$Sï¼ç¾¤çµï¼
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.RESOURCE): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name representing a resource (e.g. projector)
+dialog.tooltip.attendeeUserType2.RESOURCE=%1$Sï¼è³æºï¼
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.ROOM): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name representing a room
+dialog.tooltip.attendeeUserType2.ROOM=%1$Sï¼æè°å®¤ï¼
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.UNKNOWN): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name representing an attendee of unknown type
+dialog.tooltip.attendeeUserType2.UNKNOWN=%1$S
+
+#File commands and dialogs
+New=éæ°æªæ¡
+Open=éåèæª
+filepickerTitleImport=å¯å
¥
+filepickerTitleExport=å¯åº
+
+# 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=XML æä»¶ (%1$S)
+filterHtml=ç¶²é (%1$S)
+filterOutlookCsv=Outlook éèåéæªæ¡ (%1$S)
+
+# Remote calendar errors
+genericErrorTitle=ç¼çé¯èª¤
+httpPutError=ç¼ä½è¡äºææªæ¡å¤±æã\nçæ
碼: %1$S: %2$S
+otherPutError=ç¼ä½æ¤è¡äºææªæ¡å¤±æã\nçæ
碼: 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=è®åè¡äºæè³ææç¼çé¯èª¤: %1$Sãå çºè®æ´æ¤è¡äºæå¯è½å°è´è³æéºå¤±ï¼å·²å°å
¶ç½®å
¥å¯è®æ¨¡å¼ãæ¨å¯ä»¥é¸æã編輯è¡äºæãè®æ´æ¤è¨å®ã
+
+# 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=è®åè¡äºæè³ææç¼çé¯èª¤: %1$Sãå·²å°å
¶åç¨ï¼ç´å°å¯å®å
¨ä½¿ç¨çºæ¢ã
+
+# 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=è®åè¡äºæè³ææç¼çé¯èª¤: %1$Sã使¤é¯èª¤ä¸¦ä¸å´éï¼æä»¥ç¨å¼æå試繼çºå·è¡ã
+
+# 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=è®åè¡äºæè³ææåºç¾é¯èª¤: %1$Sã
+utf8DecodeError=å° iCalendar (ics) æªæ¡è§£ç¢¼çº UTF-8 æç¼çé¯èª¤ãè«æª¢æ¥è©²æªæ¡ (å
å«ç¬¦èèéé³åæ¯) æ¯å¦æ¯ä½¿ç¨ UTF-8 åå
ç·¨ç¢¼çæ¹å¼é²è¡ç·¨ç¢¼ã
+icsMalformedError=åæ iCalendar (ics) æªæ¡å¤±æãè«æª¢æ¥æªæ¡æ¯å¦éµå® iCalendar (ics) æªæ¡èªæ³ã
+itemModifiedOnServerTitle=伺æå¨ä¸çé
ç®å·²è®æ´
+itemModifiedOnServer=æ¤é
ç®æè¿å¨ä¼ºæå¨ä¸å·²è®æ´ã\n
+modifyWillLoseData=éåºæ¨çè®æ´å°æè¦å¯«å¨ä¼ºæå¨ä¸æåçè®æ´ã
+deleteWillLoseData=åªé¤æ¤é
ç®æå¤±å»å¨ä¼ºæå¨ä¸æåçè®æ´ã
+updateFromServer=æ¾æ£æçè®æ´ä¸¦éæ°è®å
+proceedModify=ä¸å¾éåºæçè®æ´
+proceedDelete=ä¸å¾åªé¤
+dav_notDav=%1$S ä¸çè³æºè¥ä¸æ¯é DAV collection å°±æ¯ç¡æ³ç²å
+dav_davNotCaldav=%1$S ä¸çè³æºæ¯ DAV collection ä½ä¸¦ä¸æ¯ CalDAV è¡äºæ
+itemPutError=å²åé
ç®å°ä¼ºæå¨ä¸æç¼çé¯èª¤ã
+itemDeleteError=åªé¤ä¼ºæå¨ä¸çå²åé
ç®æç¼çé¯èª¤ã
+caldavRequestError=å³ééè«æç¼çé¯èª¤ã
+caldavResponseError=å³éåè¦æç¼çé¯èª¤ã
+caldavRequestStatusCode=çæ
碼: %1$S
+caldavRequestStatusCodeStringGeneric=ç¡æ³èçè¦æ±ã
+caldavRequestStatusCodeString400=è¦æ±å
å«é¯èª¤ç奿³ï¼ç¡æ³è¢«èçã
+caldavRequestStatusCodeString403=使ç¨è
缺å°å¿
è¦çæ¬éä¾å·è¡è¦æ±ã
+caldavRequestStatusCodeString404=æ¾ä¸å°è³æºã
+caldavRequestStatusCodeString409=ç¼çè³æºè¡çªã
+caldavRequestStatusCodeString412=缺å°å
決æ¢ä»¶ã
+caldavRequestStatusCodeString500=伺æå¨å
§é¨ç¼çé¯èª¤ã
+caldavRequestStatusCodeString502=ç¡æçééå¨ï¼Proxy è¨å®æ¯ä¸æ¯æåé¡ï¼ï¼ã
+caldavRequestStatusCodeString503=伺æå¨å
§é¨ç¼çé¯èª¤ï¼ä¼ºæå¨æ«æé¢ç·äºï¼ï¼ã
+caldavRedirectTitle=æ´æ°è¡äºæ %1$S çä½ç½®ï¼
+caldavRedirectText=%1$S çè«æ±å°ç§»åè³æ°çå°é»ï¼æ¨æ³è¦ä¿®æ¹çºä¸åå°é»åï¼
+caldavRedirectDisableCalendar=åç¨è¡äºæ
+
+
+# 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/Taipei, Asia/Hong_Kong, Asia/Singapore, Asia/Shanghai, Asia/Macau, Asia/Kuala_Lumpur, Asia/Kuching, Asia/Tokyo
+
+# 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=è¦å: 使¥ç³»çµ±æåã%1$Sãè ZoneInfo æåã%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=ç¥é使¥ç³»çµ±æåã%1$Sãã
+
+# "Skipping locale timezone 'America/New_Yawk'."
+# Testing note: Skipping occurs if a likelyTimezone id is unknown or misspelled.
+SkippingLocaleTimezone=ç¥éèªç³»æåã%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=è¦å: 使ç¨ãæµ®åãæåã\næ²æç¬¦å使¥ç³»çµ±æåè³æç ZoneInfo æåè³æã
+
+# "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=è¦å: 使ç¨ç測çæå\n %1$S (UTC%2$S)ã\n%3$S\n%4$S
+
+# Testing note: "Almost match" timezones include Cairo on W2k.
+TZAlmostMatchesOSDifferAtMostAWeek=æ¤ ZoneInfo æåå¹¾ä¹ç¬¦å使¥ç³»çµ±çæåã\nå°æ¤è¦åèè¨ï¼ä¸æ¬¡æ¥å
ç¯ç´æéèæ¨æºæéä¹éç鿏¡æ\nè使¥ç³»çµ±æåè½ææå°è´çå·®ç°æå¤ä¸åææã\nå±æè³æå¯è½ææåå·®ï¼ä¾å¦ä¸åçéå§æ¥æãä¸åçè¦åï¼æå°éç¾
馬弿æè¦åçè¿ä¼¼å¼ã
+
+TZSeemsToMatchOS=æ¤ ZoneInfo æå卿¬å¹´åº¦ä¼¼ä¹ç¬¦å使¥ç³»çµ±æåã
+
+# LOCALIZATION NOTE (TZFromOS):
+# used for a display of a chosen timezone
+# %1$S will be replaced with the name of a timezone
+TZFromOS=æ¤ ZoneInfo æåçé¸æä¾æï¼æ¯ä¾ç
§ä½æ¥ç³»çµ±æå IDã%1$Sãã
+
+# Localization note (TZFromLocale): Substitute name of your locale language.
+TZFromLocale=æ¤ ZoneInfo æåçé¸æä¾æï¼æ¯ä½æ¥ç³»çµ±æåè使ç¨ç¾å¼è±æçç¶²é網路使ç¨è
æå乿¯å°çµæã
+
+TZFromKnownTimezones=æ¤ ZoneInfo æåçé¸æä¾æï¼æ¯ä½æ¥ç³»çµ±æåèæåæ¯é åºä¹æå ID å
§å·²ç¥æåçæ¯å°çµæã
+
+# Print Layout
+formatListName = æ¸
å®
+weekPrinterName = é±è¨ç«
+monthPrinterName = ææ¥ç¨è¡¨
+
+# Print Layout
+tasksWithNoDueDate = æ²æå°ææ¥çå·¥ä½
+
+# Providers
+caldavName=CalDAV
+compositeName=æ··å
+icsName=iCalendar (ICS)
+memoryName=æ«æ (è¨æ¶é«)
+storageName=æ¬æ© (SQLite)
+
+# Used in created html code for export
+htmlPrefixTitle=æ¨é¡
+htmlPrefixWhen=ç¶
+htmlPrefixLocation=å°é»
+htmlPrefixDescription=æè¿°
+htmlTaskCompleted=%1$Sï¼å·²å®æï¼
+
+# Categories
+addCategory=æ°å¢é¡å¥
+multipleCategories=å¤éåé¡
+
+today=ä»å¤©
+tomorrow=æå¤©
+yesterday=æ¨å¤©
+
+#Today pane
+eventsonly=äºä»¶
+eventsandtasks=äºä»¶èå·¥ä½
+tasksonly=å·¥ä½
+shortcalendarweek=é±
+
+go=åå¾
+
+# 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=ä¸ä¸å
+next2=ä¸ä¸å
+last1=ä¸ä¸å
+last2=ä¸ä¸å
+
+# Alarm Dialog
+# LOCALIZATION NOTE (alarmWindowTitle.label): Semi-colon list of plural
+# forms. See: http://developer.mozilla.org/en/Localization_and_Plurals
+alarmWindowTitle.label=#1 åæé
+
+# 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=éå§: %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=ä»å¤© %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=æå¤© %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=æ¨å¤© %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=é è¨ Mozilla 說æ
+alarmDefaultSummary=é è¨ Mozilla æè¦
+
+# LOCALIZATION NOTE (alarmSnoozeLimitExceeded): Semi-colon list of plural
+# forms.
+alarmSnoozeLimitExceeded=æ¨ç¡æ³è¨å®è¶
é #1 åæåçæéã
+
+taskDetailsStatusNeedsAction=å¾
èç
+
+# 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%%
+taskDetailsStatusCompleted=已宿
+
+# 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=å·²æ¼ %1$S 宿
+taskDetailsStatusCancelled=已忶
+
+gettingCalendarInfoCommon=æ£å¨æª¢æ¥æ¥æâ¦
+
+# 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=æ£å¨æª¢æ¥ç¬¬ %1$Sï¼%2$S 忥æ
+
+# LOCALIZATION NOTE (errorCode):
+# %1$S will be replaced with the number of an error code
+errorCode=é¯èª¤ç¢¼: %1$S
+
+# LOCALIZATION NOTE (errorDescription):
+# %1$S will be replaced with the description of an error
+errorDescription=æè¿°: %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=寫å
¥è³è¡äºæ %1$S æç¼çé¯èª¤ï¼è«åè䏿¹çæ´å¤è³è¨ã
+
+# LOCALIZATION NOTE (errorWritingDetails):
+# This will be displayed in the detail section of the error dialog
+errorWritingDetails=è¥æ¨å¨ééæéï¼æå°æéè¨è¨è²ªç¡æéå¾çå°æ¤è¨æ¯ï¼èå䏿³å¨æ¤è¡äºææ°å¢æç·¨è¼¯äºä»¶ï¼å¯å°æ¤è¡äºæè¨çºå¯è®ä»¥é¿å
ç¸åæ
æ³å¨æªä¾å次ç¼çãè¥è¦é麼åï¼è«å¨è¡äºææå·¥ä½ç«é¢ä¸ï¼å°è¡äºææå³éµéåè¡äºæå±¬æ§é²è¡è¨è¨ã
+
+# 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=æ¥æ %1$S æ«æç¡æ³ä½¿ç¨
+
+# 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=æ¤æ¥æ %1$S æ¯å¯è®ç
+
+taskEditInstructions=æéè£¡ä¾æ°å¢å·¥ä½
+taskEditInstructionsReadonly=è«é¸æå¯å¯«å
¥çæ¥æ
+taskEditInstructionsCapability=è«é¸ææ¯æ´å·¥ä½çæ¥æ
+
+eventDetailsStartDate=éå§:
+eventDetailsEndDate=çµæ:
+
+# 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=鱿¸: %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=鱿¸ç¯å %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=鱿¸: %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=鱿¸ç¯å: %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
+
+# LOCALIZATION NOTE (multiweekViewWeek):
+# Used for displaying the week number in the first day box of every week
+# in multiweek and month views.
+# It allows to localize the label with the week number in case your locale
+# requires it.
+# Take into account that this label is placed in the same room of the day label
+# inside the day boxes, exactly on left side, hence a possible string shouldn't
+# be too long otherwise it will create confusion between the week number and
+# the day number other than a possible crop when the window is resized.
+#
+# %1$S is a number from 1 to 53 that represents the week number.
+multiweekViewWeek=第 %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 æ¥
+dueInHours=#1 å°æ
+dueInLessThanOneHour=å°æ¼ 1 å°æ
+
+# 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=%2$S %1$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=nominative
+
+# 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=%4$S å¹´ %3$S %2$S æ¥ %1$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=%2$S %1$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=%4$S å¹´ %1$S %2$S â %3$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=%5$S å¹´ %1$S %2$S æ¥ â %3$S %4$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=%3$S å¹´ %1$S %2$S æ¥ â %6$S å¹´ %4$S %5$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= æ²æéå§æå°ææ¥
+# 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=éå§æ¥ %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=çµææ¥ %1$S %2$S
+
+# LOCALIZATION NOTE (dragLabelTasksWithOnlyEntryDate
+# dragLabelTasksWithOnlyDueDate)
+# Labels that appear while dragging a task with only
+# entry date OR due date
+dragLabelTasksWithOnlyEntryDate=éå§æé
+dragLabelTasksWithOnlyDueDate=å°ææ¼
+
+deleteTaskLabel=åªé¤å·¥ä½
+deleteTaskMessage=æ¨ç¢ºå®è¦åªé¤éåå·¥ä½å?
+deleteTaskAccesskey=l
+deleteItemLabel=åªé¤
+deleteItemMessage=æ¨ç¢ºå®è¦åªé¤éåé
ç®å?
+deleteItemAccesskey=l
+deleteEventLabel=åªé¤äºä»¶
+deleteEventMessage=æ¨ç¢ºå®è¦åªé¤éåäºä»¶å?
+deleteEventAccesskey=l
+
+calendarPropertiesEveryMinute=æ¯ #1 åé
+
+# LOCALIZATION NOTE (extractUsing)
+# Used in message header
+# %1$S will be replaced with language name from languageNames.properties
+extractUsing=ä½¿ç¨ %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=ä½¿ç¨ %1$Sï¼%2$Sï¼
+
+# LOCALIZATION NOTE (unit)
+# Used to determine the correct plural form of a unit
+unitMinutes=#1 åé
+unitHours=#1 å°æ
+unitDays=#1 æ¥
+unitWeeks=#1 é±
+
+# 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=顯示 %1$S
+hideCalendar=é±è %1$S
+# uses the access key calendar.context.showonly.accesskey
+showOnlyCalendar=å
顯示 %1$S
+
+# LOCALIZATION NOTE (modifyConflict)
+# Used by the event dialog to resolve item modification conflicts.
+modifyConflictPromptTitle=é
ç®ä¿®æ¹è¡çª
+modifyConflictPromptMessage=æ¤é
ç®å¨éåå°è©±çªå¾å·²è¢«ä¿®æ¹ã
+modifyConflictPromptButton1=è¦èè®æ´
+modifyConflictPromptButton2=忽ç¥éäºè®æ´
+
+# 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=ï¼ç± %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=ï¼ææ´¾çµ¦ %1$Sï¼
+
+# Accessible description of a grid calendar with no selected date
+minimonthNoSelectedDate=æªé¸ææ¥æ
diff --git a/calendar/chrome/calendar/calendarCreation.dtd b/calendar/chrome/calendar/calendarCreation.dtd
new file mode 100644
index 00000000000..36716e13f6b
--- /dev/null
+++ b/calendar/chrome/calendar/calendarCreation.dtd
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/calendarCreation.properties b/calendar/chrome/calendar/calendarCreation.properties
new file mode 100644
index 00000000000..1a8910612d5
--- /dev/null
+++ b/calendar/chrome/calendar/calendarCreation.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/.
+
+error.invalidUri=è«è¼¸å
¥ä¸åææçä½ç½®ã
+error.alreadyExists=æ¨å·²ç¶è¨é±äºéåä½ç½®çè¡äºæã
+
diff --git a/calendar/chrome/calendar/categories.properties b/calendar/chrome/calendar/categories.properties
new file mode 100644
index 00000000000..32d27fbb15a
--- /dev/null
+++ b/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=ç´å¿µæ¥,çæ¥,å·¥ä½,é»è©±,客æ¶,å°æ,顧客,ææ,è·é²,é禮,ç¯æ¥,æ³æ³,è°é¡,æè°,å
¶ä»,å人,å°æ¡,å
¬ç¾åæ¥,çæ
,便å,æ
è¡,åæ
diff --git a/calendar/chrome/calendar/dateFormat.properties b/calendar/chrome/calendar/dateFormat.properties
new file mode 100644
index 00000000000..b9df1bdf1ed
--- /dev/null
+++ b/calendar/chrome/calendar/dateFormat.properties
@@ -0,0 +1,147 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# 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=䏿
+month.2.name=äºæ
+month.3.name=䏿
+month.4.name=åæ
+month.5.name=äºæ
+month.6.name=å
æ
+month.7.name=䏿
+month.8.name=å
«æ
+month.9.name=乿
+month.10.name=åæ
+month.11.name=å䏿
+month.12.name=åäºæ
+
+# 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=䏿
+month.2.genitive=äºæ
+month.3.genitive=䏿
+month.4.genitive=åæ
+month.5.genitive=äºæ
+month.6.genitive=å
æ
+month.7.genitive=䏿
+month.8.genitive=å
«æ
+month.9.genitive=乿
+month.10.genitive=åæ
+month.11.genitive=å䏿
+month.12.genitive=åäºæ
+
+month.1.Mmm=1 æ
+month.2.Mmm=2 æ
+month.3.Mmm=3 æ
+month.4.Mmm=4 æ
+month.5.Mmm=5 æ
+month.6.Mmm=6 æ
+month.7.Mmm=7 æ
+month.8.Mmm=8 æ
+month.9.Mmm=9 æ
+month.10.Mmm=10 æ
+month.11.Mmm=11 æ
+month.12.Mmm=12 æ
+
+day.1.name=æææ¥
+day.2.name=ææä¸
+day.3.name=ææäº
+day.4.name=ææä¸
+day.5.name=ææå
+day.6.name=ææäº
+day.7.name=ææå
+
+day.1.Mmm=æ¥
+day.2.Mmm=ä¸
+day.3.Mmm=äº
+day.4.Mmm=ä¸
+day.5.Mmm=å
+day.6.Mmm=äº
+day.7.Mmm=å
+
+# Can someone tell me why we're not counting from zero?
+day.1.short=æ¥
+day.2.short=ä¸
+day.3.short=äº
+day.4.short=ä¸
+day.5.short=å
+day.6.short=äº
+day.7.short=å
+
+# 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.
+# .
+# -> daysIntervalInMonth: 'March 3. - 9., 2008'
+# 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=ä¸å
+midnight=åå¤
+
+AllDay=å
¨å¤©
+Repeating=ï¼éè¤ç¼çï¼
+
diff --git a/calendar/chrome/calendar/dialogs/calendar-event-dialog-reminder.dtd b/calendar/chrome/calendar/dialogs/calendar-event-dialog-reminder.dtd
new file mode 100644
index 00000000000..0b4f8bb4dba
--- /dev/null
+++ b/calendar/chrome/calendar/dialogs/calendar-event-dialog-reminder.dtd
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/global.dtd b/calendar/chrome/calendar/global.dtd
new file mode 100644
index 00000000000..2d79a800fcb
--- /dev/null
+++ b/calendar/chrome/calendar/global.dtd
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/menuOverlay.dtd b/calendar/chrome/calendar/menuOverlay.dtd
new file mode 100644
index 00000000000..b42b9fe9eae
--- /dev/null
+++ b/calendar/chrome/calendar/menuOverlay.dtd
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/migration.dtd b/calendar/chrome/calendar/migration.dtd
new file mode 100644
index 00000000000..8a82e92db3b
--- /dev/null
+++ b/calendar/chrome/calendar/migration.dtd
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/migration.properties b/calendar/chrome/calendar/migration.properties
new file mode 100644
index 00000000000..c7b6a52993d
--- /dev/null
+++ b/calendar/chrome/calendar/migration.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/.
+
+migratingApp = æ£å¨è½ç§» %1$Sâ¦
+
+# The next two lines are duplicated from migration.dtd until there is branding
+# for lightning
+migrationTitle = %1$S: å¯å
¥è³æ
+migrationDescription=%1$S å¯ä»¥å¾è¨±å¤åæ¡è¿çæç¨ç¨å¼å¯å
¥è¡äºæè³æã已徿¨çé»è
¦ç¼ç¾ä¸åæç¨ç¨å¼çè³æï¼è«é¸åæ³è¦å¾åªä¸åæç¨ç¨å¼å¯å
¥è³æã
+finished = 宿
+disableExtTitle = ç¼ç¾ä¸ç¸å®¹çæ´å
ç¨å¼
+disableExtText = æ¨å·²å®è£äºè Lightning ä¸ç¸å®¹çèç Mozilla Calendar æ´å
ç¨å¼ãå°æåç¨è©²ç¨å¼ä¸¦éæ°åå %1$Sã
+
diff --git a/calendar/chrome/calendar/provider-uninstall.dtd b/calendar/chrome/calendar/provider-uninstall.dtd
new file mode 100644
index 00000000000..3dec9c28816
--- /dev/null
+++ b/calendar/chrome/calendar/provider-uninstall.dtd
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/timezones.properties b/calendar/chrome/calendar/timezones.properties
new file mode 100644
index 00000000000..c6fb3e929a2
--- /dev/null
+++ b/calendar/chrome/calendar/timezones.properties
@@ -0,0 +1,486 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+pref.timezone.floating=æ¬å°æé
+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=éæ´²ï¼é¿æ¯è®
+pref.timezone.Africa.Accra=éæ´²ï¼é¿å
æ
+pref.timezone.Africa.Addis_Ababa=éæ´²ï¼é¿è¿ªæ¯é¿è²å·´
+pref.timezone.Africa.Algiers=éæ´²ï¼é¿ç¾åç¾
+pref.timezone.Africa.Asmara=éæ´²ï¼é¿æ¯é¦¬æ
+pref.timezone.Africa.Bamako=éæ´²ï¼å·´é¦¬ç§
+pref.timezone.Africa.Bangui=éæ´²ï¼çåº
+pref.timezone.Africa.Banjul=éæ´²ï¼ç竹
+pref.timezone.Africa.Bissau=éæ´²ï¼æ¯ç´¢
+pref.timezone.Africa.Blantyre=éæ´²ï¼å¸èæ³°ç¾
+pref.timezone.Africa.Brazzaville=éæ´²ï¼å¸ææ´ç¶ç¾
+pref.timezone.Africa.Bujumbura=éæ´²ï¼å¸ç叿
+pref.timezone.Africa.Cairo=éæ´²ï¼éç¾
+pref.timezone.Africa.Casablanca=éæ´²ï¼å¡è©å¸èå¡
+pref.timezone.Africa.Ceuta=éæ´²ï¼ä¼é
+pref.timezone.Africa.Conakry=éæ´²ï¼ç§ç´å
é
+pref.timezone.Africa.Dakar=éæ´²ï¼éå¡
+pref.timezone.Africa.Dar_es_Salaam=éæ´²ï¼æ²è港
+pref.timezone.Africa.Djibouti=éæ´²ï¼åå¸å°
+pref.timezone.Africa.Douala=éæ´²ï¼æç¦æ
+pref.timezone.Africa.El_Aaiun=éæ´²ï¼è¾æè
+pref.timezone.Africa.Freetown=éæ´²ï¼èªç±å
+pref.timezone.Africa.Gaborone=éæ´²ï¼å伯éé
+pref.timezone.Africa.Harare=éæ´²ï¼åæé·
+pref.timezone.Africa.Johannesburg=éæ´²ï¼ç´ç¿°å°¼æ¯å ¡
+pref.timezone.Africa.Kampala=éæ´²ï¼å叿
+pref.timezone.Africa.Khartoum=éæ´²ï¼ååç©
+pref.timezone.Africa.Kigali=éæ´²ï¼åºå å
+pref.timezone.Africa.Kinshasa=éæ´²ï¼é夿²
+pref.timezone.Africa.Lagos=éæ´²ï¼æå¥æ¯
+pref.timezone.Africa.Libreville=éæ´²ï¼èªç±å¸
+pref.timezone.Africa.Lome=éæ´²ï¼æ´ç¾
+pref.timezone.Africa.Luanda=éæ´²ï¼ç¾
å®é
+pref.timezone.Africa.Lubumbashi=éæ´²ï¼ç§æ¬å·´å¤
+pref.timezone.Africa.Lusaka=éæ´²ï¼ç§è©å¡
+pref.timezone.Africa.Malabo=éæ´²ï¼é¦¬æå
+pref.timezone.Africa.Maputo=éæ´²ï¼é¦¬æ®æ
+pref.timezone.Africa.Maseru=éæ´²ï¼é¦¬è³½é¯
+pref.timezone.Africa.Mbabane=éæ´²ï¼å¢¨å·´æ¬
+pref.timezone.Africa.Mogadishu=éæ´²ï¼æ©å 迪ä¼
+pref.timezone.Africa.Monrovia=éæ´²ï¼èç¾
ç¶äº
+pref.timezone.Africa.Nairobi=éæ´²ï¼å¥æ´æ¯
+pref.timezone.Africa.Ndjamena=éæ´²ï¼æ©å ç¾ç´
+pref.timezone.Africa.Niamey=éæ´²ï¼å°¼äºç¾
+pref.timezone.Africa.Nouakchott=éæ´²ï¼è«¾å
å°
+pref.timezone.Africa.Ouagadougou=éæ´²ï¼ç¦å æå¤
+pref.timezone.Africa.Porto-Novo=éæ´²ï¼æ°æ¸¯
+pref.timezone.Africa.Sao_Tome=éæ´²ï¼èå¤ç¾
+pref.timezone.Africa.Tripoli=éæ´²ï¼ç黿³¢é
+pref.timezone.Africa.Tunis=éæ´²ï¼çªå°¼æ¯
+pref.timezone.Africa.Windhoek=éæ´²ï¼æº«è·å
+pref.timezone.America.Adak=ç¾æ´²ï¼è¾éå
+pref.timezone.America.Anchorage=ç¾æ´²ï¼å®å
ææ²»
+pref.timezone.America.Anguilla=ç¾æ´²ï¼å®åæ
+pref.timezone.America.Antigua=ç¾æ´²ï¼å®å°å¡
+pref.timezone.America.Araguaina=ç¾æ´²ï¼é¿æåé£
+pref.timezone.America.Argentina.Buenos_Aires=ç¾æ´²ï¼é¿æ ¹å»·ï¼å¸å®è«¾æ¯è¾å©æ¯
+pref.timezone.America.Argentina.Catamarca=ç¾æ´²ï¼é¿æ ¹å»·ï¼å¡å¡é¦¬å¡
+pref.timezone.America.Argentina.Cordoba=ç¾æ´²ï¼é¿æ ¹å»·ï¼å¥å¤è¯
+pref.timezone.America.Argentina.Jujuy=ç¾æ´²ï¼é¿æ ¹å»·ï¼è¡è¡ä¼
+pref.timezone.America.Argentina.La_Rioja=ç¾æ´²ï¼é¿æ ¹å»·ï¼æé奧å
+pref.timezone.America.Argentina.Mendoza=ç¾æ´²ï¼é¿æ ¹å»·ï¼éå¤è©
+pref.timezone.America.Argentina.Rio_Gallegos=ç¾æ´²ï¼é¿æ ¹å»·ï¼éç´å è¶ææ¯
+pref.timezone.America.Argentina.San_Juan=ç¾æ´²ï¼é¿æ ¹å»·ï¼èè¡å®
+pref.timezone.America.Argentina.Tucuman=ç¾æ´²ï¼é¿æ ¹å»·ï¼æåº«æ¼
+pref.timezone.America.Argentina.Ushuaia=ç¾æ´²ï¼é¿æ ¹å»·ï¼çæ¯æ·äº
+pref.timezone.America.Aruba=ç¾æ´²ï¼é¿é¯å·´
+pref.timezone.America.Asuncion=ç¾æ´²ï¼äºæ¾æ£®
+pref.timezone.America.Atikokan=ç¾æ´²ï¼é¿èå¯å
+pref.timezone.America.Bahia=ç¾æ´²ï¼å·´ä¼äº
+pref.timezone.America.Barbados=ç¾æ´²ï¼å·´è²å¤
+pref.timezone.America.Belem=ç¾æ´²ï¼å·´é£å§
+pref.timezone.America.Belize=ç¾æ´²ï¼è²éæ¯
+pref.timezone.America.Blanc-Sablon=ç¾æ´²ï¼ç½æè©å¸é
+pref.timezone.America.Boa_Vista=ç¾æ´²ï¼æ³¢äºç¶æ¯å¡
+pref.timezone.America.Bogota=ç¾æ´²ï¼æ³¢å¥å¤§
+pref.timezone.America.Boise=ç¾æ´²ï¼æ³¢å¤
+pref.timezone.America.Cambridge_Bay=ç¾æ´²ï¼åæ©ç£
+pref.timezone.America.Campo_Grande=ç¾æ´²ï¼æ ¼èå ´
+pref.timezone.America.Cancun=ç¾æ´²ï¼å庫æ©
+pref.timezone.America.Caracas=ç¾æ´²ï¼å¡æå¡æ¯
+pref.timezone.America.Cayenne=ç¾æ´²ï¼éé²
+pref.timezone.America.Cayman=ç¾æ´²ï¼éæ¼
+pref.timezone.America.Chicago=ç¾æ´²ï¼èå å¥
+pref.timezone.America.Chihuahua=ç¾æ´²ï¼å¾¹ç¦ç¦
+pref.timezone.America.Costa_Rica=ç¾æ´²ï¼å¥æ¯å¤§é»å
+pref.timezone.America.Cuiaba=ç¾æ´²ï¼åäºå·´
+pref.timezone.America.Curacao=ç¾æ´²ï¼åº«æç´¢
+pref.timezone.America.Danmarkshavn=ç¾æ´²ï¼ä¸¹éº¥æ¸¯
+pref.timezone.America.Dawson=ç¾æ´²ï¼é森
+pref.timezone.America.Dawson_Creek=ç¾æ´²ï¼é森河
+pref.timezone.America.Denver=ç¾æ´²ï¼ä¸¹ä½
+pref.timezone.America.Detroit=ç¾æ´²ï¼åºç¹å¾
+pref.timezone.America.Dominica=ç¾æ´²ï¼å¤ç±³å°¼å
+pref.timezone.America.Edmonton=ç¾æ´²ï¼è¾å¾·èé
+pref.timezone.America.Eirunepe=ç¾æ´²ï¼è¾é¯å
§ä½©
+pref.timezone.America.El_Salvador=ç¾æ´²ï¼è©ç¾ç¦å¤
+pref.timezone.America.Fortaleza=ç¾æ´²ï¼ç¦å¡é·è©
+pref.timezone.America.Glace_Bay=ç¾æ´²ï¼èé·æ¯ç£
+pref.timezone.America.Godthab=ç¾æ´²ï¼é«ç¹å
+pref.timezone.America.Goose_Bay=ç¾æ´²ï¼éµç£
+pref.timezone.America.Grand_Turk=ç¾æ´²ï¼å¤§ç¹å
+pref.timezone.America.Grenada=ç¾æ´²ï¼æ ¼çç´é
+pref.timezone.America.Guadeloupe=ç¾æ´²ï¼çå¾·æ´ä½©
+pref.timezone.America.Guatemala=ç¾æ´²ï¼çå°é¦¬æ
+pref.timezone.America.Guayaquil=ç¾æ´²ï¼çäºåºç¾
+pref.timezone.America.Guyana=ç¾æ´²ï¼èäºé£
+pref.timezone.America.Halifax=ç¾æ´²ï¼å婿³å
æ¯
+pref.timezone.America.Havana=ç¾æ´²ï¼åç¦é£
+pref.timezone.America.Hermosillo=ç¾æ´²ï¼åè«è¥¿ç´
+pref.timezone.America.Indiana.Indianapolis=ç¾æ´²ï¼å°å°å®ç´ï¼å°å°å®ç´æ³¢é
+pref.timezone.America.Indiana.Knox=ç¾æ´²ï¼å°å°å®ç´ï¼ç´å
æ¯
+pref.timezone.America.Indiana.Marengo=ç¾æ´²ï¼å°å°å®ç´ï¼é¦¬å«æ
+pref.timezone.America.Indiana.Petersburg=ç¾æ´²ï¼å°å°å®ç´ï¼å½¼å¾æ¯å ¡
+pref.timezone.America.Indiana.Vevay=ç¾æ´²ï¼å°å°å®ç´ï¼åå¨
+pref.timezone.America.Indiana.Vincennes=ç¾æ´²ï¼å°å°å®ç´ï¼ææ£®å
¹
+pref.timezone.America.Inuvik=ç¾æ´²ï¼ä¼ç´ç¶å
+pref.timezone.America.Iqaluit=ç¾æ´²ï¼ä¼éç¹
+pref.timezone.America.Jamaica=ç¾æ´²ï¼çè²·å
+pref.timezone.America.Juneau=ç¾æ´²ï¼æ±è«¾
+pref.timezone.America.Kentucky.Louisville=ç¾æ´²ï¼è¯å¡åºï¼è·¯æç¶ç¾
+pref.timezone.America.Kentucky.Monticello=ç¾æ´²ï¼è¯å¡åºï¼èå°å»ç¾
+pref.timezone.America.La_Paz=ç¾æ´²ï¼æå·´æ¯
+pref.timezone.America.Lima=ç¾æ´²ï¼å©é¦¬
+pref.timezone.America.Los_Angeles=ç¾æ´²ï¼æ´æç£¯
+pref.timezone.America.Maceio=ç¾æ´²ï¼å¢¨å¡æ
+pref.timezone.America.Managua=ç¾æ´²ï¼é¦¬æ¿ç
+pref.timezone.America.Manaus=ç¾æ´²ï¼çªçæ¯
+pref.timezone.America.Martinique=ç¾æ´²ï¼é¦¬æ±å°¼å
+pref.timezone.America.Mazatlan=ç¾æ´²ï¼é¦¬å¡ç¹è
+pref.timezone.America.Menominee=ç¾æ´²ï¼é諾米尼
+pref.timezone.America.Merida=ç¾æ´²ï¼æ¢
éé
+pref.timezone.America.Mexico_City=ç¾æ´²ï¼å¢¨è¥¿å¥å
+pref.timezone.America.Miquelon=ç¾æ´²ï¼å¯å
æ
+pref.timezone.America.Moncton=ç¾æ´²ï¼èå
é
+pref.timezone.America.Monterrey=ç¾æ´²ï¼èç¹ç
+pref.timezone.America.Montevideo=ç¾æ´²ï¼èç¹ç¶å¤
+pref.timezone.America.Montreal=ç¾æ´²ï¼èç¹å©
+pref.timezone.America.Montserrat=ç¾æ´²ï¼è塿ç¹
+pref.timezone.America.Nassau=ç¾æ´²ï¼æ¿é¨·
+pref.timezone.America.New_York=ç¾æ´²ï¼ç´ç´
+pref.timezone.America.Nipigon=ç¾æ´²ï¼å°¼å¤å´
+pref.timezone.America.Nome=ç¾æ´²ï¼è«¾å§
+pref.timezone.America.Noronha=ç¾æ´²ï¼è«¾å«å
+pref.timezone.America.North_Dakota.Center=ç¾æ´²ï¼åéç§ä»ï¼ä¸é¨
+pref.timezone.America.North_Dakota.New_Salem=ç¾æ´²ï¼åéç§ä»ï¼æ°æ¦å·
+pref.timezone.America.Panama=ç¾æ´²ï¼å·´æ¿é¦¬
+pref.timezone.America.Pangnirtung=ç¾æ´²ï¼æ½å°¼ç¾æ±
+pref.timezone.America.Paramaribo=ç¾æ´²ï¼å·´æé¦¬å©æ³¢
+pref.timezone.America.Phoenix=ç¾æ´²ï¼é³³å°å
+pref.timezone.America.Port-au-Prince=ç¾æ´²ï¼å¤ªå港
+pref.timezone.America.Port_of_Spain=ç¾æ´²ï¼è¥¿ççæ¸¯
+pref.timezone.America.Porto_Velho=ç¾æ´²ï¼ç¶å©å°¤æ¸¯
+pref.timezone.America.Puerto_Rico=ç¾æ´²ï¼æ³¢å¤é»å
+pref.timezone.America.Rainy_River=ç¾æ´²ï¼ç尼河
+pref.timezone.America.Rankin_Inlet=ç¾æ´²ï¼æéç£
+pref.timezone.America.Recife=ç¾æ´²ï¼ç西ä½
+pref.timezone.America.Regina=ç¾æ´²ï¼çåé£
+pref.timezone.America.Rio_Branco=ç¾æ´²ï¼éç´å¸èç§
+pref.timezone.America.Santiago=ç¾æ´²ï¼èå°çå¥
+pref.timezone.America.Santo_Domingo=ç¾æ´²ï¼è夿å¥
+pref.timezone.America.Sao_Paulo=ç¾æ´²ï¼èä¿ç¾
+pref.timezone.America.Scoresbysund=ç¾æ´²ï¼å²ç§æ¯æ¯å«
+pref.timezone.America.Shiprock=ç¾æ´²ï¼è¹å²©
+pref.timezone.America.St_Johns=ç¾æ´²ï¼èç´ç¿°
+pref.timezone.America.St_Kitts=ç¾æ´²ï¼èåºè¨
+pref.timezone.America.St_Lucia=ç¾æ´²ï¼èé²è¥¿äº
+pref.timezone.America.St_Thomas=ç¾æ´²ï¼è湯馬æ¯
+pref.timezone.America.St_Vincent=ç¾æ´²ï¼èææ£®
+pref.timezone.America.Swift_Current=ç¾æ´²ï¼æ¹æ°´
+pref.timezone.America.Tegucigalpa=ç¾æ´²ï¼å¾·å¤æ¯å å·´
+pref.timezone.America.Thule=ç¾æ´²ï¼åé
+pref.timezone.America.Thunder_Bay=ç¾æ´²ï¼é·ç£
+pref.timezone.America.Tijuana=ç¾æ´²ï¼æäºç¦ç´
+pref.timezone.America.Toronto=ç¾æ´²ï¼å¤å«å¤
+pref.timezone.America.Tortola=ç¾æ´²ï¼æç¾ææ
+pref.timezone.America.Vancouver=ç¾æ´²ï¼æº«å¥è¯
+pref.timezone.America.Whitehorse=ç¾æ´²ï¼ç½é¦¬
+pref.timezone.America.Winnipeg=ç¾æ´²ï¼æº«å°¼ä¼¯
+pref.timezone.America.Yakutat=ç¾æ´²ï¼é
庫å¡
+pref.timezone.America.Yellowknife=ç¾æ´²ï¼é»å
+pref.timezone.Antarctica.Casey=忥µæ´²ï¼å±è¥¿
+pref.timezone.Antarctica.Davis=忥µæ´²ï¼æ´ç¶æ¯
+pref.timezone.Antarctica.DumontDUrville=忥µæ´²ï¼è¿ªèâ§è¿ªç¶ç¾
+pref.timezone.Antarctica.Mawson=忥µæ´²ï¼å¢¨ç
+pref.timezone.Antarctica.McMurdo=忥µæ´²ï¼éº¥å
è«å¤
+pref.timezone.Antarctica.Palmer=忥µæ´²ï¼å¸ç¾è«
+pref.timezone.Antarctica.Rothera=忥µæ´²ï¼ç¾
西æ
+pref.timezone.Antarctica.South_Pole=忥µæ´²ï¼å極é»
+pref.timezone.Antarctica.Syowa=忥µæ´²ï¼æå
+pref.timezone.Antarctica.Vostok=忥µæ´²ï¼æ±æ¹
+pref.timezone.Arctic.Longyearbyen=忥µï¼æä¼ç¾å
+pref.timezone.Asia.Aden=äºæ´²ï¼äºä¸
+pref.timezone.Asia.Almaty=äºæ´²ï¼é¿ææ¨å
+pref.timezone.Asia.Amman=äºæ´²ï¼å®æ¼
+pref.timezone.Asia.Anadyr=äºæ´²ï¼é¿ç´å¾·ç¾
+pref.timezone.Asia.Aqtau=äºæ´²ï¼é¿å
å¥
+pref.timezone.Asia.Aqtobe=äºæ´²ï¼é¿å
ææ¯
+pref.timezone.Asia.Ashgabat=äºæ´²ï¼é¿ä»åå·´å¾
+pref.timezone.Asia.Baghdad=äºæ´²ï¼å·´æ ¼é
+pref.timezone.Asia.Bahrain=äºæ´²ï¼å·´æ
+pref.timezone.Asia.Baku=äºæ´²ï¼å·´åº«
+pref.timezone.Asia.Bangkok=äºæ´²ï¼æ¼è°·
+pref.timezone.Asia.Beirut=äºæ´²ï¼è²é¯ç¹
+pref.timezone.Asia.Bishkek=äºæ´²ï¼æ¯ä»å±å
+pref.timezone.Asia.Brunei=äºæ´²ï¼æ±¶è
+pref.timezone.Asia.Choibalsan=äºæ´²ï¼å¬å·´å±±
+pref.timezone.Asia.Chongqing=äºæ´²ï¼éæ
¶
+pref.timezone.Asia.Colombo=äºæ´²ï¼å¯å«å¡
+pref.timezone.Asia.Damascus=äºæ´²ï¼å¤§é¦¬å£«é©
+pref.timezone.Asia.Dhaka=äºæ´²ï¼éå¡
+pref.timezone.Asia.Dili=äºæ´²ï¼å¸å©
+pref.timezone.Asia.Dubai=äºæ´²ï¼ææ
+pref.timezone.Asia.Dushanbe=äºæ´²ï¼æå°å¥
+pref.timezone.Asia.Gaza=äºæ´²ï¼è¿¦è©
+pref.timezone.Asia.Harbin=äºæ´²ï¼åç¾æ¿±
+pref.timezone.Asia.Hong_Kong=äºæ´²ï¼é¦æ¸¯
+pref.timezone.Asia.Hovd=äºæ´²ï¼ç§å¸å¤
+pref.timezone.Asia.Irkutsk=äºæ´²ï¼ä¼ç¾åº«è¨å
+pref.timezone.Asia.Istanbul=äºæ´²ï¼ä¼æ¯å¦å ¡
+pref.timezone.Asia.Jakarta=äºæ´²ï¼é
å é
+pref.timezone.Asia.Jayapura=äºæ´²ï¼åé
浦æ
+pref.timezone.Asia.Jerusalem=äºæ´²ï¼è¶è·¯æå·
+pref.timezone.Asia.Kabul=äºæ´²ï¼åå¸ç¾
+pref.timezone.Asia.Kamchatka=äºæ´²ï¼å ªå¯å
+pref.timezone.Asia.Karachi=äºæ´²ï¼åæè©
+pref.timezone.Asia.Kashgar=äºæ´²ï¼åä»
+pref.timezone.Asia.Kathmandu=äºæ´²ï¼å 德滿é½
+pref.timezone.Asia.Krasnoyarsk=äºæ´²ï¼å
ææ¯è«¾äºç¾æ¯å
+pref.timezone.Asia.Kuala_Lumpur=äºæ´²ï¼åéå¡
+pref.timezone.Asia.Kuching=äºæ´²ï¼å¤æ
+pref.timezone.Asia.Kuwait=äºæ´²ï¼ç§å¨ç¹
+pref.timezone.Asia.Macau=äºæ´²ï¼æ¾³é
+pref.timezone.Asia.Magadan=äºæ´²ï¼é¦¬å 丹
+pref.timezone.Asia.Makassar=äºæ´²ï¼æå é«
+pref.timezone.Asia.Manila=äºæ´²ï¼é¦¬å°¼æ
+pref.timezone.Asia.Muscat=äºæ´²ï¼é¦¬æ¯åç¹
+pref.timezone.Asia.Nicosia=äºæ´²ï¼å°¼ç§è¥¿äº
+pref.timezone.Asia.Novosibirsk=äºæ´²ï¼æ°è¥¿ä¼¯å©äº
+pref.timezone.Asia.Omsk=äºæ´²ï¼éæ¨æ¯å
+pref.timezone.Asia.Oral=äºæ´²ï¼çæç¾
+pref.timezone.Asia.Phnom_Penh=äºæ´²ï¼éé
+pref.timezone.Asia.Pontianak=äºæ´²ï¼å¤ç¸
+pref.timezone.Asia.Pyongyang=äºæ´²ï¼å¹³å£¤
+pref.timezone.Asia.Qatar=äºæ´²ï¼å¡é
+pref.timezone.Asia.Qyzylorda=äºæ´²ï¼å
å絡é
+pref.timezone.Asia.Rangoon=äºæ´²ï¼ä»°å
+pref.timezone.Asia.Riyadh=äºæ´²ï¼å©é
å¾·
+pref.timezone.Asia.Sakhalin=äºæ´²ï¼åº«é å³¶
+pref.timezone.Asia.Samarkand=äºæ´²ï¼æé¦¬ç¾ç½
+pref.timezone.Asia.Seoul=äºæ´²ï¼é¦ç¾
+pref.timezone.Asia.Shanghai=äºæ´²ï¼ä¸æµ·
+pref.timezone.Asia.Singapore=äºæ´²ï¼æ°å å¡
+pref.timezone.Asia.Taipei=äºæ´²ï¼å°å
+pref.timezone.Asia.Tashkent=äºæ´²ï¼å¡ä»å¹²
+pref.timezone.Asia.Tbilisi=äºæ´²ï¼ç¬¬æ¯å©æ¯
+pref.timezone.Asia.Tehran=äºæ´²ï¼å¾·é»è
+pref.timezone.Asia.Thimphu=äºæ´²ï¼å»·å¸
+pref.timezone.Asia.Tokyo=äºæ´²ï¼æ±äº¬
+pref.timezone.Asia.Ulaanbaatar=äºæ´²ï¼çèå·´æ
+pref.timezone.Asia.Urumqi=äºæ´²ï¼ç靿¨é½
+pref.timezone.Asia.Vientiane=äºæ´²ï¼æ°¸ç
+pref.timezone.Asia.Vladivostok=äºæ´²ï¼æµ·åå´´
+pref.timezone.Asia.Yakutsk=äºæ´²ï¼é
庫次å
+pref.timezone.Asia.Yekaterinburg=äºæ´²ï¼è塿·ç³å ¡
+pref.timezone.Asia.Yerevan=äºæ´²ï¼èéæº«
+pref.timezone.Atlantic.Azores=大西æ´ï¼äºéç¾ç¾¤å³¶
+pref.timezone.Atlantic.Bermuda=大西æ´ï¼ç¾æ
é
+pref.timezone.Atlantic.Canary=大西æ´ï¼å¡ç´é群島
+pref.timezone.Atlantic.Cape_Verde=大西æ´ï¼ç¶å¾·è§
+pref.timezone.Atlantic.Faroe=大西æ´ï¼æ³ç¾
群島
+pref.timezone.Atlantic.Madeira=大西æ´ï¼é¦¬å¾·æç¾¤å³¶
+pref.timezone.Atlantic.Reykjavik=大西æ´ï¼é·å
é
ç¶å
+pref.timezone.Atlantic.South_Georgia=大西æ´ï¼å嬿²»äº
+pref.timezone.Atlantic.St_Helena=大西æ´ï¼è赫åç´å³¶
+pref.timezone.Atlantic.Stanley=大西æ´ï¼å²å¦å©å³¶
+pref.timezone.Australia.Adelaide=澳洲ï¼é¿å¾·é·å¾·
+pref.timezone.Australia.Brisbane=澳洲ï¼å¸å©æ¯ç
+pref.timezone.Australia.Broken_Hill=æ¾³æ´²ï¼æ·å±±
+pref.timezone.Australia.Currie=澳洲ï¼å
é»
+pref.timezone.Australia.Darwin=澳洲ï¼éç¾æå¸
+pref.timezone.Australia.Eucla=澳洲ï¼å°¤å
æ
+pref.timezone.Australia.Hobart=澳洲ï¼åå·´ç¹
+pref.timezone.Australia.Lindeman=æ¾³æ´²ï¼æå¾·æ¼
+pref.timezone.Australia.Lord_Howe=澳洲ï¼ç¾
豪島
+pref.timezone.Australia.Melbourne=澳洲ï¼å¢¨ç¾æ¬
+pref.timezone.Australia.Perth=澳洲ï¼ä¼¯æ¯
+pref.timezone.Australia.Sydney=澳洲ï¼éªæ¢¨
+pref.timezone.Europe.Amsterdam=ææ´²ï¼é¿å§æ¯ç¹ä¸¹
+pref.timezone.Europe.Andorra=ææ´²ï¼å®éç¾
+pref.timezone.Europe.Athens=ææ´²ï¼é
å
¸
+pref.timezone.Europe.Belgrade=ææ´²ï¼è²ç¾æ ¼å
+pref.timezone.Europe.Berlin=ææ´²ï¼ææ
+pref.timezone.Europe.Bratislava=ææ´²ï¼å¸æç¬¬æ¯æç¦
+pref.timezone.Europe.Brussels=ææ´²ï¼å¸é¯å¡ç¾
+pref.timezone.Europe.Bucharest=ææ´²ï¼å¸å 忝ç¹
+pref.timezone.Europe.Budapest=ææ´²ï¼å¸é佩æ¯
+pref.timezone.Europe.Chisinau=ææ´²ï¼åºå¸æ¶
夫
+pref.timezone.Europe.Copenhagen=ææ´²ï¼å¥æ¬åæ ¹
+pref.timezone.Europe.Dublin=ææ´²ï¼é½ææ
+pref.timezone.Europe.Gibraltar=ææ´²ï¼ç´å¸ç¾
é
+pref.timezone.Europe.Guernsey=ææ´²ï¼æ ¹è¥¿
+pref.timezone.Europe.Helsinki=ææ´²ï¼èµ«ç¾è¾åº
+pref.timezone.Europe.Isle_of_Man=ææ´²ï¼æ¼å³¶
+pref.timezone.Europe.Istanbul=ææ´²ï¼ä¼æ¯å¦å ¡
+pref.timezone.Europe.Jersey=ææ´²ï¼æ¾¤è¥¿
+pref.timezone.Europe.Kaliningrad=ææ´²ï¼å éå¯§æ ¼å
+pref.timezone.Europe.Kiev=ææ´²ï¼åºè¼
+pref.timezone.Europe.Lisbon=ææ´²ï¼éæ¯æ¬
+pref.timezone.Europe.Ljubljana=ææ´²ï¼ç§å¸é
é£
+pref.timezone.Europe.London=ææ´²ï¼å«æ¦
+pref.timezone.Europe.Luxembourg=ææ´²ï¼ç§æ£®å ¡
+pref.timezone.Europe.Madrid=ææ´²ï¼é¦¬å¾·é
+pref.timezone.Europe.Malta=ææ´²ï¼é¦¬ç¾ä»
+pref.timezone.Europe.Mariehamn=ææ´²ï¼é¦¬éæ¼¢
+pref.timezone.Europe.Minsk=ææ´²ï¼ææ¯å
+pref.timezone.Europe.Monaco=ææ´²ï¼æ©ç´å¥
+pref.timezone.Europe.Moscow=ææ´²ï¼è«æ¯ç§
+pref.timezone.Europe.Nicosia=ææ´²ï¼å°¼ç§è¥¿äº
+pref.timezone.Europe.Oslo=ææ´²ï¼å¥§æ¯é¸
+pref.timezone.Europe.Paris=ææ´²ï¼å·´é»
+pref.timezone.Europe.Podgorica=ææ´²ï¼æ³¢å¤éå¯
+pref.timezone.Europe.Prague=ææ´²ï¼å¸ææ ¼
+pref.timezone.Europe.Riga=ææ´²ï¼éå
+pref.timezone.Europe.Rome=ææ´²ï¼ç¾
馬
+pref.timezone.Europe.Samara=ææ´²ï¼æ²é¦¬æ
+pref.timezone.Europe.San_Marino=ææ´²ï¼è馬å©è«¾
+pref.timezone.Europe.Sarajevo=ææ´²ï¼å¡æè¶ä½
+pref.timezone.Europe.Simferopol=ææ´²ï¼è¾è²æ´æ®
+pref.timezone.Europe.Skopje=ææ´²ï¼å²é«æ¯è¶
+pref.timezone.Europe.Sofia=ææ´²ï¼ç´¢éäº
+pref.timezone.Europe.Stockholm=ææ´²ï¼æ¯å¾·å¥ç¾æ©
+pref.timezone.Europe.Tallinn=ææ´²ï¼å¡æ
+pref.timezone.Europe.Tirane=ææ´²ï¼ç¹æé£
+pref.timezone.Europe.Uzhgorod=ææ´²ï¼çæ¥æç¾
å¾·
+pref.timezone.Europe.Vaduz=ææ´²ï¼ç¦æè²
+pref.timezone.Europe.Vatican=ææ´²ï¼æ¢µè岡
+pref.timezone.Europe.Vienna=ææ´²ï¼ç¶ä¹ç´
+pref.timezone.Europe.Vilnius=ææ´²ï¼ç¶ç¾ç´æ¯
+pref.timezone.Europe.Volgograd=ææ´²ï¼ä¼ç¾å æ ¼å
+pref.timezone.Europe.Warsaw=ææ´²ï¼è¯æ²
+pref.timezone.Europe.Zagreb=ææ´²ï¼ææ ¼åå¸
+pref.timezone.Europe.Zaporozhye=ææ´²ï¼ææ³¢ç¾
ç±
+pref.timezone.Europe.Zurich=ææ´²ï¼èé»ä¸
+pref.timezone.Indian.Antananarivo=å°åº¦æ´ï¼å®å¡é£é£å©ä½
+pref.timezone.Indian.Chagos=å°åº¦æ´ï¼æ¥ææ¯
+pref.timezone.Indian.Christmas=å°åº¦æ´ï¼èèªå³¶
+pref.timezone.Indian.Cocos=å°åº¦æ´ï¼å¯å¯æ¯
+pref.timezone.Indian.Comoro=å°åº¦æ´ï¼èæ©ç¾¤å³¶
+pref.timezone.Indian.Kerguelen=å°åº¦æ´ï¼å
ç¾æ ¼å«ç¾¤å³¶
+pref.timezone.Indian.Mahe=å°åº¦æ´ï¼çªé»
+pref.timezone.Indian.Maldives=å°åº¦æ´ï¼é¦¬ç¾å°å¤«
+pref.timezone.Indian.Mauritius=å°åº¦æ´ï¼æ¨¡é西æ¯
+pref.timezone.Indian.Mayotte=å°åº¦æ´ï¼é¦¬ç´ç¹å³¶
+pref.timezone.Indian.Reunion=å°åº¦æ´ï¼çå°¼æºå³¶
+pref.timezone.Pacific.Apia=太平æ´ï¼äºåº
+pref.timezone.Pacific.Auckland=太平æ´ï¼å¥§å
è
+pref.timezone.Pacific.Chatham=太平æ´ï¼å æ¾
+pref.timezone.Pacific.Easter=太平æ´ï¼å¾©æ´»ç¯å³¶
+pref.timezone.Pacific.Efate=太平æ´ï¼ä¼æ³æ
+pref.timezone.Pacific.Enderbury=太平æ´ï¼è±å¾·è²é
+pref.timezone.Pacific.Fakaofo=太平æ´ï¼æ³å
奧ä½
+pref.timezone.Pacific.Fiji=太平æ´ï¼ææ¿
+pref.timezone.Pacific.Funafuti=太平æ´ï¼ç¦é£å¯æ
+pref.timezone.Pacific.Galapagos=太平æ´ï¼å æå¸å¥ç¾¤å³¶
+pref.timezone.Pacific.Gambier=太平æ´ï¼çç¢ç¾
+pref.timezone.Pacific.Guadalcanal=太平æ´ï¼çéç¾å¡ç´ç¾å³¶
+pref.timezone.Pacific.Guam=太平æ´ï¼éå³¶
+pref.timezone.Pacific.Honolulu=太平æ´ï¼æªé¦å±±
+pref.timezone.Pacific.Johnston=太平æ´ï¼å¼·æ¯æ¦
+pref.timezone.Pacific.Kiritimati=太平æ´ï¼èèªå³¶
+pref.timezone.Pacific.Kosrae=太平æ´ï¼ç§æ¯è
+pref.timezone.Pacific.Kwajalein=太平æ´ï¼å¤¸å é£å³¶
+pref.timezone.Pacific.Majuro=太平æ´ï¼é¦¬ä¹
ç¾
+pref.timezone.Pacific.Marquesas=太平æ´ï¼é¦¬å±è©æ¯
+pref.timezone.Pacific.Midway=太平æ´ï¼ä¸éå³¶
+pref.timezone.Pacific.Nauru=太平æ´ï¼è«¾é¯
+pref.timezone.Pacific.Niue=太平æ´ï¼ç´åå³¶
+pref.timezone.Pacific.Norfolk=太平æ´ï¼è«¾ç¦å
+pref.timezone.Pacific.Noumea=太平æ´ï¼åªç¾é
+pref.timezone.Pacific.Pago_Pago=太平æ´ï¼å¸æå¸æ
+pref.timezone.Pacific.Palau=太平æ´ï¼å¸ç
+pref.timezone.Pacific.Pitcairn=太平æ´ï¼ç®ç¹å±æ©
+pref.timezone.Pacific.Ponape=太平æ´ï¼æ³¢é£ä½©
+pref.timezone.Pacific.Port_Moresby=太平æ´ï¼æ©åæ¯æ¯æ¸¯
+pref.timezone.Pacific.Rarotonga=太平æ´ï¼æç¾
æ±å å³¶
+pref.timezone.Pacific.Saipan=太平æ´ï¼å¡çå³¶
+pref.timezone.Pacific.Tahiti=太平æ´ï¼å¤§æºªå°å³¶
+pref.timezone.Pacific.Tarawa=太平æ´ï¼å¡æç¦å³¶
+pref.timezone.Pacific.Tongatapu=太平æ´ï¼æ±å 塿®
+pref.timezone.Pacific.Truk=太平æ´ï¼æ¥å
+pref.timezone.Pacific.Wake=太平æ´ï¼å¨å
å³¶
+pref.timezone.Pacific.Wallis=太平æ´ï¼æ²å©æ¯
+
+# the following have been missing
+pref.timezone.America.Indiana.Tell_City=ç¾æ´²ï¼å°å°å®ç´ï¼ç¹ç¾å¸
+pref.timezone.America.Indiana.Winamac=ç¾æ´²ï¼å°å°å®ç´ï¼å¨ç´é¦¬å
+pref.timezone.America.Marigot=ç¾æ´²ï¼çªèé«ç£
+pref.timezone.America.Resolute=ç¾æ´²ï¼ç¾
æ¯é¯ç¹
+pref.timezone.America.St_Barthelemy=ç¾æ´²ï¼èå·´ç米島
+
+# added with 2008d:
+pref.timezone.America.Argentina.San_Luis=ç¾æ´²ï¼é¿æ ¹å»·ï¼èè·¯æ
+pref.timezone.America.Santarem=ç¾æ´²ï¼èå¡å«
+pref.timezone.Asia.Ho_Chi_Minh=äºæ´²ï¼è¡å¿æå¸
+pref.timezone.Asia.Kolkata=äºæ´²ï¼å ç¾åç
+
+# added with 2008i:
+pref.timezone.America.Argentina.Salta=ç¾æ´²ï¼é¿æ ¹å»·ï¼è©ç¾å¡
+
+# added with 2010i
+pref.timezone.America.Matamoros=ç¾æ´²ï¼é¦¬å¡è«ç¾
æ¯
+pref.timezone.America.Ojinaga=ç¾æ´²ï¼æå¸ç´è³
+pref.timezone.America.Santa_Isabel=ç¾æ´²ï¼è伿²æ
+pref.timezone.Antarctica.Macquarie=忥µæ´²ï¼éº¥å¤¸å©
+pref.timezone.Asia.Novokuznetsk=äºæ´²ï¼æ°åº«è²æ¶
è¨å
+
+#added with 2011b
+pref.timezone.America.Bahia_Banderas=ç¾æ´²ï¼å·´ä¼äºçå¾·ææ¯
+pref.timezone.America.North_Dakota.Beulah=ç¾æ´²ï¼åéç§ä»ï¼æ¯å°¤æ
+pref.timezone.Pacific.Chuuk=太平æ´ï¼æ¥å
+pref.timezone.Pacific.Pohnpei=太平æ´ï¼æ³¢ç´ä½©
+
+#added with 2011n
+pref.timezone.Africa.Juba=éæ´²ï¼æ±å·´
+pref.timezone.America.Kralendijk=ç¾æ´²ï¼å
æå«ä»£å
+pref.timezone.America.Lower_Princes=ç¾æ´²ï¼ä¸å¤ªå
+pref.timezone.America.Metlakatla=ç¾æ´²ï¼æ¢
ç¹æå¡ç¹æ
+pref.timezone.America.Sitka=ç¾æ´²ï¼å¤ç¹å¡
+pref.timezone.Asia.Hebron=äºæ´²ï¼å¸ä¼¯ä¾
+
+#added with 2013a
+pref.timezone.America.Creston=ç¾æ´²ï¼å
é·æ¯é
+pref.timezone.Asia.Khandyga=äºæ´²ï¼å ªå°å
+pref.timezone.Asia.Ust-Nera=äºæ´²ï¼çæ¯å
§æ
+pref.timezone.Europe.Busingen=ææ´²ï¼å¸è¾æ ¹
+
+#added with 2014b
+pref.timezone.Antarctica.Troll=忥µæ´²ï¼ç¹æ´
+
+#added with 2014j
+pref.timezone.Asia.Chita=äºæ´²ï¼èµ¤å¡
+pref.timezone.Asia.Srednekolymsk=äºæ´²ï¼ä¸ç§é·å§æ¯å
+pref.timezone.Pacific.Bougainville=太平æ´ï¼å¸å¹²ç¶ç¾å³¶
+
+#added with 2.2015g
+pref.timezone.America.Fort_Nelson=ç¾æ´²ï¼å°¼ç¾æ£®å ¡
+
+#added with 2.2016b
+pref.timezone.Europe.Ulyanovsk=ææ´²ï¼çéæè«¾å¤«æ¯å
+pref.timezone.Europe.Astrakhan=ææ´²ï¼é¿æ¯ç¹æç½
+pref.timezone.Asia.Barnaul=äºæ´²ï¼å·´ç¾çç¾
+
+#added with 2.2016i
+pref.timezone.Asia.Yangon=äºæ´²ï¼ä»°å
+pref.timezone.Asia.Tomsk=äºæ´²ï¼ææ¨æ¯å
+pref.timezone.Asia.Famagusta=äºæ´²ï¼æ³çªå¤æ¯å¡
+pref.timezone.Europe.Kirov=ææ´²ï¼åºæ´å¤«
+
+#added with 2.2016j
+pref.timezone.Europe.Saratov=ææ´²ï¼è©ææå¤«
+pref.timezone.Asia.Atyrau=äºæ´²ï¼é¿ç¹å
+
+#added with 2.2017b
+pref.timezone.America.Punta_Arenas=ç¾æ´²ï¼è¬å¡é¿é·ç´æ¯
+
+#added with 2.2018i
+pref.timezone.Asia.Qostanay=Asia/æ¯æ¯å¡å¥
+
+#added with 2.2020a
+pref.timezone.America.Nuuk=ç¾æ´²ï¼åªå
+
+#added with 2.2021c
+pref.timezone.Pacific.Kanton=太平æ´ï¼åé å³¶
diff --git a/calendar/chrome/lightning/lightning-toolbar.dtd b/calendar/chrome/lightning/lightning-toolbar.dtd
new file mode 100644
index 00000000000..ea2ebb75fc2
--- /dev/null
+++ b/calendar/chrome/lightning/lightning-toolbar.dtd
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/lightning/lightning.dtd b/calendar/chrome/lightning/lightning.dtd
new file mode 100644
index 00000000000..a7b5d0c2b5a
--- /dev/null
+++ b/calendar/chrome/lightning/lightning.dtd
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/lightning/lightning.properties b/calendar/chrome/lightning/lightning.properties
new file mode 100644
index 00000000000..564610534f0
--- /dev/null
+++ b/calendar/chrome/lightning/lightning.properties
@@ -0,0 +1,165 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Task mode title
+taskModeApplicationTitle=å·¥ä½
+
+# Tab titles
+tabTitleCalendar=è¡äºæ
+tabTitleTasks=å·¥ä½
+
+# Html event display in message
+imipHtml.header=äºä»¶éè«
+imipHtml.summary=æ¨é¡:
+imipHtml.location=ä½ç½®:
+imipHtml.when=æé:
+imipHtml.organizer=å¬é人:
+imipHtml.description=說æ:
+# LOCALIZATION_NOTE(imipHtml.attachments): This is a label for one or more (additional) links to
+# documents or websites attached to this event.
+imipHtml.attachments=éä»¶:
+imipHtml.comment=註解:
+imipHtml.attendees=èæè
:
+# 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=ç¸ééçµ:
+imipHtml.canceledOccurrences=已忶çäºä»¶:
+imipHtml.modifiedOccurrences=已修æ¹çäºä»¶:
+imipHtml.newLocation=æ°ä½ç½®: %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=ï¼ç± %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=ï¼ææ´¾çµ¦ %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 æ¯æ´»åè² è²¬äººã
+# LOCALIZATION_NOTE(imipHtml.attendeeRole2.NON-PARTICIPANT): used to compose
+# imipHtml.attendee.combined
+# %1$S - value of imipHtml.attendeeUserType2.*
+imipHtml.attendeeRole2.NON-PARTICIPANT=%1$S 䏿¯åºå¸äººå¡ã
+# LOCALIZATION_NOTE(imipHtml.attendeeRole2.OPT-PARTICIPANT): used to compose
+# imipHtml.attendee.combined
+# %1$S - value of imipHtml.attendeeUserType2.*
+imipHtml.attendeeRole2.OPT-PARTICIPANT=%1$S æ¯éå¿
è¦åºå¸äººå¡ã
+# LOCALIZATION_NOTE(imipHtml.attendeeRole2.REQ-PARTICIPANT): used to compose
+# imipHtml.attendee.combined
+# %1$S - value of imipHtml.attendeeUserType2.*
+imipHtml.attendeeRole2.REQ-PARTICIPANT=%1$S æ¯å¿
é åºå¸äººå¡ã
+
+# 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 已確èªåºå¸ã
+# 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 å·²æçµåºå¸ã
+# 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 å·²ææ´¾ä»äººåè %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ã
+# 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 å·²æ«æç¢ºèªåºå¸ã
+
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.INDIVIDUAL): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name representing an individual attendee
+imipHtml.attendeeUserType2.INDIVIDUAL=%1$S
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.GROUP): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name representing a group (e.g. a distribution list)
+imipHtml.attendeeUserType2.GROUP=%1$Sï¼ç¾¤çµï¼
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.RESOURCE): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name representing a resource (e.g. projector)
+imipHtml.attendeeUserType2.RESOURCE=%1$Sï¼è³æºï¼
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.ROOM): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name representing a room
+imipHtml.attendeeUserType2.ROOM=%1$Sï¼æè°å®¤ï¼
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.UNKNOWN): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name representing an attendee of unknown type
+imipHtml.attendeeUserType2.UNKNOWN=%1$S
+
+imipAddedItemToCal2=å·²å°äºä»¶å å
¥æ¨çè¡äºæã
+imipCanceledItem2=å·²å°äºä»¶å¾æ¨çè¡äºæåªé¤ã
+imipUpdatedItem2=å·²æ´æ°äºä»¶ã
+imipBarCancelText=æ¤éµä»¶å
å«äºä»¶çåæ¶è¨æ¯ã
+imipBarCounterErrorText=æ¤è¨æ¯å
å«å°éè«çåå°æè°ï¼ç¡æ³èçã
+imipBarCounterPreviousVersionText=æ¤è¨æ¯å
å«å°å
åçæ¬éè«çåå°æè°ã
+imipBarCounterText=æ¤è¨æ¯å
å«å°éè«çåå°æè°ã
+imipBarDisallowedCounterText=æ¤è¨æ¯å
å«å°äºä»¶çåå°æè°ï¼ä½æ¨å
åå·²è¨å®ä¸å
許åå°æ¤äºä»¶ã
+imipBarDeclineCounterText=æ¤è¨æ¯å
å«å°æ¨åå°æè°çåè¦ã
+imipBarRefreshText=æ¤éµä»¶å
å«äºä»¶çæ´æ°ã
+imipBarPublishText=æ¤éµä»¶å
å«äºä»¶ã
+imipBarRequestText=æ¤éµä»¶å
å«äºä»¶çéè«ã
+imipBarSentText=æ¤è¨æ¯ä¸å
å«å·²ç¼åºçäºä»¶ã
+imipBarSentButRemovedText=æ¤è¨æ¯ä¸å
å«å·²å¯åºï¼ä½ä¸ååºç¾æ¼æ¨çè¡äºæä¸çäºä»¶ã
+imipBarUpdateText=æ¤éµä»¶å
å«ç¾æäºä»¶çæ´æ°ã
+imipBarUpdateMultipleText=æ¤è¨æ¯å
å«å°å¤å ´ç¾æäºä»¶çæ´æ°ã
+imipBarUpdateSeriesText=æ¤è¨æ¯å
å«å°ä¸ç³»åç¾æäºä»¶çæ´æ°ã
+imipBarAlreadyProcessedText=æ¤éµä»¶å
å«ä¸å·²ç¶èçéçäºä»¶ã
+imipBarProcessedNeedsAction=æ¤è¨æ¯å
嫿¨å°æªåè¦çäºä»¶ã
+imipBarProcessedMultipleNeedsAction=æ¤è¨æ¯å
å«å¤å ´æ¨å°æªåè¦çäºä»¶ã
+imipBarProcessedSeriesNeedsAction=æ¤è¨æ¯å
å«ä¸ç³»åæ¨å°æªåè¦çäºä»¶ã
+imipBarReplyText=æ¤éµä»¶å
å«å°éè«çåè¦ã
+imipBarReplyToNotExistingItem=æ¤è¨æ¯å
嫿å°ä¸å¨æ¨è¡äºæç¶ä¸çæ´»åçåè¦è³è¨ã
+# LOCALIZATION_NOTE(imipBarReplyToRecentlyRemovedItem):
+# %1$S - datetime of deletion
+imipBarReplyToRecentlyRemovedItem=æ¤è¨æ¯å
嫿尿¨å¨ %1$S çæ´»åèªè¡äºæç§»é¤çåè¦è³è¨ã
+imipBarUnsupportedText2=æ¤è¨æ¯å
å«éåçæ¬ç %1$S ç¡æ³èççäºä»¶è³è¨ã
+imipBarProcessingFailed=éµä»¶èç失æãçæ
: %1$Sã
+imipBarCalendarDeactivated=æ¤è¨æ¯å
å«äºä»¶è³è¨ï¼è«éåä»»ä¸è¡äºæå³å¯èçã
+imipBarNotWritable=éæ²æçºéè«è¨å®å¯å¯«å
¥çè¡äºæï¼è«æª¢æ¥è¡äºæå±¬æ§ã
+imipSendMail.title=é»åéµä»¶éç¥
+imipSendMail.text=æ¨æ³è¦ç¾å¨å°±ç¨é»åéµä»¶å¯åºéç¥å?
+imipNoIdentity=ç¡
+imipNoCalendarAvailable=ç®åæ²æå¯å¯«å
¥çè¡äºæã
+
+itipReplySubject2=åè¦éè«: %1$S
+itipReplyBodyAccept=%1$S å·²æ¥åæ¨çäºä»¶éè«ã
+itipReplyBodyDecline=%1$S å·²æçµæ¨çäºä»¶éè«ã
+itipReplySubjectAccept2=å·²æ¥å: %1$S
+itipReplySubjectDecline2=å·²æçµéè«: %1$S
+itipReplySubjectTentative2=æ«å®: %1$S
+itipRequestSubject2=éè«: %1$S
+itipRequestUpdatedSubject2=æ´æ°: %1$S
+itipRequestBody=%1$S å·²éè«æ¨åå %2$S
+itipCancelSubject2=åæ¶: %1$S
+itipCancelBody=%1$S 已忶æ¤äºä»¶:ã%2$Sã
+itipCounterBody=%1$S å·²å°ã%2$Sãæåºåå°æè°:
+itipDeclineCounterBody=%1$S å·²æçµæ¨å°ã%2$Sãæåºçåå°æè°ã
+itipDeclineCounterSubject=å·²æçµåå°æè°: %1$S
+
+confirmProcessInvitation=æ¨æè¿åªé¤äºæ¤é
ç®ï¼ç¢ºå®éè¦èçæ¤éè«å½åï¼
+confirmProcessInvitationTitle=èçéè«ï¼
+
+invitationsLink.label=éè«: %1$S
+
+# LOCALIZATION NOTE(noIdentitySelectedNotification):
+noIdentitySelectedNotification=è¥æ¨æ³ä½¿ç¨éæ¬è¡äºæå²åç¼çµ¦å¥äººæä¾èªå¥äººçéè«ï¼è«å¨ä¸æ¹æå®éµä»¶èº«åã
diff --git a/calendar/lightning-l10n.js b/calendar/lightning-l10n.js
new file mode 100644
index 00000000000..8d93767b0a3
--- /dev/null
+++ b/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", 1);
+
+# 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", "é±å¹´ç´å¿µ,çæ¥,æ¥å,é»è©±,客æ¶,ç«¶ç,顧客,æçææ,追蹤,禮ç©,忥,æ§æ³,çè°,éé
,å人,è¨å,åå®åæ¥,çæ
,便å,æ
é,åæ");
diff --git a/chat/accounts.dtd b/chat/accounts.dtd
new file mode 100644
index 00000000000..145adc84e05
--- /dev/null
+++ b/chat/accounts.dtd
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/chat/accounts.properties b/chat/accounts.properties
new file mode 100644
index 00000000000..931960cd157
--- /dev/null
+++ b/chat/accounts.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 (passwordPromptTitle, passwordPromptText):
+# %S is replaced with the name of the account
+passwordPromptTitle=%S çå¯ç¢¼
+passwordPromptText=è«è¼¸å
¥ %S çå¯ç¢¼ä»¥é£ç·ã
+passwordPromptSaveCheckbox=使ç¨å¯ç¢¼ç®¡çå¡è¨ä½æ¤å¯ç¢¼ã
+
diff --git a/chat/commands.properties b/chat/commands.properties
new file mode 100644
index 00000000000..0f1d1b3fa64
--- /dev/null
+++ b/chat/commands.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 (commands):
+# %S is a comma separated list of command names.
+commands=å½ä»¤: %Sã\nè«ä½¿ç¨ /help <å½ä»¤> å徿´å¤è³è¨ã
+# LOCALIZATION NOTE (noCommand, noHelp):
+# %S is the command name the user typed.
+noCommand=æ¾ä¸å°ã%Sãå½ä»¤ã
+noHelp=æ±æï¼æ²æã%Sãå½ä»¤ç說æè¨æ¯ï¼
+
+sayHelpString=say <è¨æ¯>: åå¯ä¸èçè¨æ¯ç¶ä¸çå½ä»¤ï¼ç´æ¥å³éè¨æ¯ã
+rawHelpString=raw <è¨æ¯>: å¯å³éæªè·³è« HTML entity çè¨æ¯ã
+helpHelpString=help <å½ä»¤å稱>: 顯示 <å½ä»¤> çåç¨±ï¼æªå ä¸åæ¸æå顯示ç®åå¯ç¨çå½ä»¤æ¸
å®ã
+
+# 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 <çæ
è¨æ¯>: å°çæ
è¨å®æ %2$Sï¼ä¸¦å ä¸çæ
è¨æ¯ï¼éå¿
è¦ï¼ã
+back=æç©º
+away=é¢é
+busy=å¿ç¢
+dnd=å¿ç¢
+offline=é¢ç·
+
diff --git a/chat/contacts.properties b/chat/contacts.properties
new file mode 100644
index 00000000000..730288cc0cb
--- /dev/null
+++ b/chat/contacts.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 (defaultGroup):
+# This is the name of the group that will automatically be created when adding a
+# buddy without specifying a group.
+defaultGroup=è¯çµ¡äºº
+
diff --git a/chat/conversations.properties b/chat/conversations.properties
new file mode 100644
index 00000000000..9a0a0cbcf72
--- /dev/null
+++ b/chat/conversations.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 (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=å°æä½¿ç¨ %2$S ç¹¼çºè %1$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 ççæ
å·²è®æ´çº %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 ççæ
å·²è®æ´çº %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 ç®åççæ
çº %2$Sã
+statusChangedFromUnknownWithStatusText=%1$S ç®åççæ
çº %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=æ¨ç帳è已鿰é£ç·ï¼%1$S ç®åççæ
çº %2$Sï¼ã
+statusKnownWithStatusText=æ¨ç帳è已鿰é£ç·ï¼%1$S ç®åççæ
çº %2$S: %3$Sï¼ã
+# LOCALIZATION NOTE (statusUnknown):
+# %S is the display name of the contact.
+statusUnknown=æ¨ç帳èå·²é¢ç·ï¼å·²ç¡æ³å¾ç¥ %S ççæ
ï¼ã
+
+accountDisconnected=æ¨ç帳èå·²é¢ç·ã
+accountReconnected=æ¨ç帳è已鿰é£ç·ã
+
+# LOCALIZATION NOTE (autoReply):
+# %S is replaced by the text of a message that was sent as an automatic reply.
+autoReply=èªååè¦ - %S
+
+# LOCALIZATION NOTE (noTopic):
+# Displayed instead of the topic when no topic is set.
+noTopic=æ¤è天室ç®åæ²æä¸»é¡è¨æ¯ã
+
+# LOCALIZATION NOTE (topicSet):
+# %1$S is the conversation name, %2$S is the topic.
+topicSet=%1$S ç䏻顿¯: %2$Sã
+# LOCALIZATION NOTE (topicNotSet):
+# %S is the conversation name.
+topicNotSet=%S æ²æè¨å®è天主é¡ã
+# LOCALIZATION NOTE (topicChanged):
+# %1$S is the user who changed the topic, %2$S is the new topic.
+topicChanged=%1$S å·²å°ä¸»é¡ä¿®æ¹çº: %2$Sã
+# LOCALIZATION NOTE (topicCleared):
+# %1$S is the user who cleared the topic.
+topicCleared=%1$S å·²æ¸
é¤ä¸»é¡ã
+
+# 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 已尿±ç¨±ä¿®æ¹çº %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=æ¨å·²å°æ±ç¨±ä¿®æ¹çº %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=%time% - %sender%: %message%
+messenger.conversations.selections.actionMessagesTemplate=%time% * %sender% %message%
+
+# LOCALIZATION NOTE (message.status):
+# This is used as title attribute for the visible lock icon in case a message
+# was sent encrypted through the OTR protocol.
+message.status=è¨æ¯å·²å å¯
diff --git a/chat/dateFormat.properties b/chat/dateFormat.properties
new file mode 100644
index 00000000000..f25d937a5eb
--- /dev/null
+++ b/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=1 æ
+month.2.Mmm=2 æ
+month.3.Mmm=3 æ
+month.4.Mmm=4 æ
+month.5.Mmm=5 æ
+month.6.Mmm=6 æ
+month.7.Mmm=7 æ
+month.8.Mmm=8 æ
+month.9.Mmm=9 æ
+month.10.Mmm=10 æ
+month.11.Mmm=11 æ
+month.12.Mmm=12 æ
+
+month.1.name=䏿
+month.2.name=äºæ
+month.3.name=䏿
+month.4.name=åæ
+month.5.name=äºæ
+month.6.name=å
æ
+month.7.name=䏿
+month.8.name=å
«æ
+month.9.name=乿
+month.10.name=åæ
+month.11.name=å䏿
+month.12.name=åäºæ
+
+day.1.name=æææ¥
+day.2.name=ææä¸
+day.3.name=ææäº
+day.4.name=ææä¸
+day.5.name=ææå
+day.6.name=ææäº
+day.7.name=ææå
+
+day.1.Mmm=æ¥
+day.2.Mmm=ä¸
+day.3.Mmm=äº
+day.4.Mmm=ä¸
+day.5.Mmm=å
+day.6.Mmm=äº
+day.7.Mmm=å
+
+day.1.short=æ¥
+day.2.short=ä¸
+day.3.short=äº
+day.4.short=ä¸
+day.5.short=å
+day.6.short=äº
+day.7.short=å
+
+noon=ä¸å
+midnight=åå¤
+
+AllDay=å
¨å¤©
+
+# LOCALIZATION NOTE (finduri-MonthYear):
+# %1$S is the month name, %2$S is the year (4 digits format).
+finduri-MonthYear=%2$S %1$S
diff --git a/chat/facebook.properties b/chat/facebook.properties
new file mode 100644
index 00000000000..e406f28357b
--- /dev/null
+++ b/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=Facebook è天
+facebook.disabled=ç±æ¼ Facebook åç¨äº XMPP ééï¼å°ä¸åæ¯æ´ Facebook è天室ã
diff --git a/chat/imtooltip.properties b/chat/imtooltip.properties
new file mode 100644
index 00000000000..c3591103ec1
--- /dev/null
+++ b/chat/imtooltip.properties
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+buddy.username=使ç¨è
å稱
+buddy.account=帳è
+contact.tags=æ¨ç±¤
+
+otr.tag=OTR çæ
+
+encryption.tag=å å¯çæ
+message.status=è¨æ¯å·²å å¯
diff --git a/chat/irc.properties b/chat/irc.properties
new file mode 100644
index 00000000000..384d359a73d
--- /dev/null
+++ b/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=æ±ç¨±
+
+# LOCALIZATION NOTE (connection.error.*):
+# These will show in the account manager if the account is
+# disconnected because of an error.
+connection.error.lost=失å»ä¼ºæå¨çé£ç·
+connection.error.timeOut=é£ç·é¾æ
+connection.error.invalidUsername=%S æ¯ä¸è¢«å
許使ç¨ç使ç¨è
å稱
+connection.error.invalidPassword=伺æå¨å¯ç¢¼ç¡æ
+connection.error.passwordRequired=éè¦å¯ç¢¼
+
+# LOCALIZATION NOTE (joinChat.*):
+# These show up on the join chat menu. An underscore is for the access key.
+joinChat.channel=é »éï¼_Cï¼
+joinChat.password=å¯ç¢¼ï¼_Pï¼
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.server=伺æå¨
+options.port=å
+options.ssl=ä½¿ç¨ SSL
+options.encoding=åå
編碼é
+options.quitMessage=é¢ç·è¨æ¯
+options.partMessage=é¢éè¨æ¯
+options.showServerTab=顯示ä¾èªä¼ºæå¨çè¨æ¯
+options.alternateNicks=åç¨æ±ç¨±
+
+# 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 æ£å¨ä½¿ç¨ã%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=%1$S ç®åçæéæ¯ %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 <è¦åçåä½>: ååºæååä½ã
+command.ban=%S <æ±ç¨±!帳è@主æ©>: å°é符åæå®è¦åç使ç¨è
ã
+command.ctcp=%S <æ±ç¨±> <è¨æ¯>: å³é CTCP è¨æ¯çµ¦æå®æ±ç¨±ç人ã
+command.chanserv=%S <å½ä»¤>: å³éå½ä»¤çµ¦ ChanServã
+command.deop=%S <æ±ç¨±ä¸>[,<æ±ç¨±äº>]*: ç§»é¤æå人çé »é管çå¡èº«ä»½ãæ¨å¿
é æ¯é »é管ç塿è½é樣åã
+command.devoice=%S <æ±ç¨±ä¸>[,<æ±ç¨±äº>]*: è¥é »éæ¯å管ççï¼+mï¼ï¼åå¯ç§»é¤æå人å¨é »éä¸çç¼è¨çæ
ï¼è®é£åäººç¡æ³å¨é »éä¸ç¼è¨ãæ¨å¿
é æ¯é »é管ç塿è½é麼åã
+command.invite2=%S <æ±ç¨±>[ <æ±ç¨±>]* [<é »é>]: éè«ä¸æå¤åæ±ç¨±å å
¥æ¨ç®åçé »éï¼æå å
¥æå®çé »éã
+command.join=%S <è天室ä¸>[ <éé°ä¸>][,<è天室äº>[ <éé°äº>]]*: 輸å
¥ä¸åæå¤åé »éï¼æéè¦æä¹å¯ä»¥è¼¸å
¥é »ééé°ã
+command.kick=%S <æ±ç¨±> [<è¨æ¯>]: ææäººå¾é »é踢åºå»ãæ¨å¿
é æ¯é »é管ç塿è½é麼åã
+command.list=%S: 顯示網路ä¸çè天室æ¸
å®ãè¦å: æäºä¼ºæå¨å¯è½æå¨æ¨å·è¡æ¤æä»¤å¾ææ¨è¸¢åºå»ã
+command.memoserv=%S <å½ä»¤>: å³éå½ä»¤çµ¦ MemoServã
+command.modeUser2=%S <æ±ç¨±> [(+|-)<模å¼>]: åå¾ãè¨å®æåæ¶è¨å®ä½¿ç¨è
çæ¨¡å¼ã
+command.modeChannel2=%S [<é »é>] [(+|-)<æ°æ¨¡å¼> [<忏>][,<忏>]*]: åå¾ãè¨å®æåæ¶è¨å®é »éçæ¨¡å¼ã
+command.msg=%S <æ±ç¨±> <è¨æ¯>: å³éç§äººè¨æ¯çµ¦æå使ç¨è
ï¼è䏿¯ç´æ¥ç¼å°é »éä¸ï¼ã
+command.nick=%S <æ°æ±ç¨±>: ä¿®æ¹æ¨çæ±ç¨±ã
+command.nickserv=%S <å½ä»¤>: å³éå½ä»¤çµ¦ NickServã
+command.notice=%S <ç®æ¨> <è¨æ¯>: å³ééç¥çµ¦æå使ç¨è
ææåé »éã
+command.op=%S <æ±ç¨±ä¸>[,<æ±ç¨±äº>]*: ææ¬æå人æçºé »é管çå¡ãæ¨å¿
é æ¯é »é管ç塿è½é樣ã
+command.operserv=%S <å½ä»¤>: å³éå½ä»¤çµ¦ OperServã
+command.part=%S [è¨æ¯]: é¢éç®åé »é並çä¸è¨æ¯ï¼éå¿
è¦ï¼ã
+command.ping=%S [<æ±ç¨±>]: è©¢åæå使ç¨è
ç®åçå»¶é²ç¨åº¦ï¼è¥æªæå®ä½¿ç¨è
çè©±åæ¯ä¼ºæå¨çå»¶é²ç¨åº¦ï¼ã
+command.quit=%S <è¨æ¯>: èªä¼ºæå¨é¢ç·ä¸¦çä¸è¨æ¯ï¼éå¿
è¦ï¼ã
+command.quote=%S <å½ä»¤>: å³éå½ä»¤çµ¦ä¼ºæå¨ã
+command.time=%S: 顯示 IRC 伺æå¨ç®åçæ¬å°æéã
+command.topic=%S [<æ°ä¸»é¡>]: è¨å®é »é主é¡ã
+command.umode=%S (+|-)<æ°æ¨¡å¼>: è¨å®æåæ¶è¨å®ä½¿ç¨è
模å¼ã
+command.version=%S <æ±ç¨±>: æ¥è©¢æå使ç¨è
ç客æ¶ç«¯çæ¬ã
+command.voice=%S <æ±ç¨±ä¸>[,<æ±ç¨±äº>]*: ææ¬æäººçé »éç¼è¨çæ
ãæ¨å¿
é æ¯é »é管ç塿è½é樣åã
+command.whois2=%S [<æ±ç¨±>]: åå¾ä½¿ç¨è
çè³è¨ã
+
+# 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] å·²é²å
¥è天室ã
+message.rejoined=æ¨å·²éæ°å å
¥è天室ã
+# %1$S is the nick of who kicked you.
+# %2$S is message.kicked.reason, if a kick message was given.
+message.kicked.you=æ¨å·²ç¶è¢« %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 å·²ç¶è¢« %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=%3$S å·²å° %2$S çæ¨¡å¼è¨å®çº %1$Sã
+# %1$S is the new channel mode and %2$S is who set the mode.
+message.channelmode=%2$S å·²å°é »é模å¼è¨å®çº %1$Sã
+# %S is the user's mode.
+message.yourmode=æ¨ç模å¼çº %Sã
+# Could not change the nickname. %S is the user's nick.
+message.nick.fail=ç¡æ³ä½¿ç¨ææå®çæ±ç¨±ï¼æ¨çæ±ç¨±éæ¯ %Sã
+# The parameter is the message.parted.reason, if a part message is given.
+message.parted.you=æ¨å·²é¢éè天室ï¼Part%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 å·²é¢éè天室ï¼Part%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 å·²é¢éè天室ï¼Quit%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 å·²éè«æ¨å å
¥ %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 已被æåéè«è³ %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 å·²å¨ %2$S ç¶ä¸ã
+# %S is the nickname of the user who was summoned.
+message.summoned=å·²å¬å %Sã
+# %S is the nickname of the user whose WHOIS information follows this message.
+message.whois=%S ç WHOIS è³è¨:
+# %1$S is the nickname of the (offline) user whose WHOWAS information follows this message.
+message.whowas=%1$S ä¸å¨ç·ä¸ã%1$S ç WHOWAS è³è¨:
+# %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 æ¯æªç¥çæ±ç¨±ã
+# %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 å·²å°é »éå¯ç¢¼ä¿®æ¹çº %2$Sã
+message.channelKeyRemoved=%S 已移é¤é »éå¯ç¢¼ã
+# This will be followed by a list of ban masks.
+message.banMasks=é£ç·èªä¸åä½ç½®ç使ç¨è
å°è¢«å°éæ¼ %S å¤:
+message.noBanMasks=%S æ²æå°éçä½ç½®ã
+message.banMaskAdded=é£ç·èªç¬¦å %1$S ä½ç½®ç使ç¨è
已被 %2$S å°éã
+message.banMaskRemoved=é£ç·èªç¬¦å %1$S ä½ç½®ç使ç¨è
å°ä¸å被 %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=æ¼ #2 毫ç§å¾æ¶å°ä¾èª %1$S ç Ping åè¦ã
+
+
+# LOCALIZATION NOTE (error.*):
+# These are shown as error messages in the conversation or server tab.
+# %S is the channel name.
+error.noChannel=ç¡æ¤é »é: %Sã
+error.tooManyChannels=ç¡æ³å å
¥ %Sï¼æ¨å·²å å
¥å¤ªå¤é »éã
+# %1$S is your new nick, %2$S is the kill message from the server.
+error.nickCollision=該æ±ç¨±å·²è¢«ä½¿ç¨ï¼æ±ç¨±å°ä¿®æ¹çº %1$S [%2$S]ã
+error.erroneousNickname=%S éåæ±ç¨±ä¸è¢«å
許使ç¨ã
+error.banned=æ¨å·²è¢«ä¼ºæå¨é»æã
+error.bannedSoon=æ¨å°æè¢«æ¤ä¼ºæå¨é»æã
+error.mode.wrongUser=æ¨ç¡æ³ä¿®æ¹å
¶ä»ä½¿ç¨è
ç使ç¨è
模å¼ã
+# %S is the nickname or channel name that isn't available.
+error.noSuchNick=%S ä¸å¨ç·ä¸ã
+error.wasNoSuchNick=ç¡æ¤æ±ç¨±: %S
+error.noSuchChannel=ç¡æ¤é »é: %Sã
+error.unavailable=æ«æç¡æ³ä½¿ç¨ %Sã
+# %S is the channel name.
+error.channelBanned=æ¨å·²è¢« %S å°éã
+error.cannotSendToChannel=æ¨ç¡æ³å³éè¨æ¯å° %Sã
+error.channelFull=é »é %S 已滿ã
+error.inviteOnly=æ¨å¿
é 被éè«æè½å å
¥ %Sã
+error.nonUniqueTarget=%S 䏿¯å¯ä¸ç user@host å稱ãçæ±ç¨±ï¼ææ¨å¨å䏿éå
§å試å å
¥äºå¤ªå¤é »éã
+error.notChannelOp=æ¨ä¸æ¯ %S çé »é管çå¡ã
+error.notChannelOwner=æ¨ä¸æ¯ %S çé »é管çè
ã
+error.wrongKey=ç¡æ³å å
¥ %Sï¼é »éå¯ç¢¼é¯èª¤ã
+error.sendMessageFailed=å³éæ¨ä¸ä¸çè¨æ¯æç¼çé¯èª¤ï¼è«çé£ç·æ¢å¾©æ£å¸¸ä¹å¾åè©¦ä¸æ¬¡ã
+# %1$S is the channel the user tried to join, %2$S is the channel
+# he was forwarded to.
+error.channelForward=æ¨ç¡æ³å å
¥ %1$Sï¼å·²è¢«èªåè½æ¥è³ %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ã䏿¯æ¤ä¼ºæå¨ä¸çææä½¿ç¨è
模å¼ã
+
+# 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=å稱
+tooltip.server=å·²é£ç·å°
+# 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=é£ç·èª
+tooltip.registered=已註å
+tooltip.registeredAs=已註åçº
+tooltip.secure=æ£ä½¿ç¨å®å
¨é£ç·
+# The away message of the user
+tooltip.away=é¢é
+tooltip.ircOp=IRC 管çå¡
+tooltip.bot=Bot
+tooltip.lastActivity=æå¾æ´»å
+# %S is the timespan elapsed since the last activity.
+tooltip.timespan=%S å
+tooltip.channels=ç®å使¼
+
+# %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=æ¯
+no=å¦
diff --git a/chat/logger.properties b/chat/logger.properties
new file mode 100644
index 00000000000..5ed057e1478
--- /dev/null
+++ b/chat/logger.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 (badLogfile):
+# %S is the filename of the log file.
+badLogfile=ç©ºç½ææ¯æçç´éæª: %S
+
diff --git a/chat/matrix.properties b/chat/matrix.properties
new file mode 100644
index 00000000000..3070e64f39e
--- /dev/null
+++ b/chat/matrix.properties
@@ -0,0 +1,244 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (matrix.usernameHint):
+# This is displayed inside the accountUsernameInfoWithDescription
+# string defined in imAccounts.properties when the user is
+# configuring a Matrix account.
+matrix.usernameHint=Matrix ID
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.saveToken=å²ååå token
+options.deviceDisplayName=è£ç½®é¡¯ç¤ºå稱
+options.homeserver=伺æå¨
+
+options.backupPassphrase=å份éé°å¯èª
+
+# LOCALIZATION NOTE (options.encryption.*):
+# These are strings used to build the status information of the encryption
+# storage, shown in the account manager. %S is one of the statuses and the
+# strings are combined with a pipe (|) between.
+options.encryption.enabled=å å¯å½æ¸: %S
+options.encryption.secretStorage=ç§å¯è³æå²å空é: %S
+options.encryption.keyBackup=å å¯éé°å份: %S
+options.encryption.crossSigning=交äºç°½ç½²: %S
+options.encryption.statusOk=確å®
+options.encryption.statusNotOk=æªå°±ç·
+options.encryption.needBackupPassphrase=è«å°éè¨åå®é¸é
ä¸è¼¸å
¥å份éé°å¯èªã
+options.encryption.setUpSecretStorage=è¦è¨å®ç§å¯è³æå²å空éï¼è«ä½¿ç¨å¦ä¸å¥å®¢æ¶ç«¯ç»å
¥ä¸¦å¨è©²å®¢æ¶ç«¯è¼¸å
¥æ¼ãä¸è¬ãåé ç¢ççå份éé°å¯èªã
+options.encryption.setUpBackupAndCrossSigning=è«è¼¸å
¥æ¨å¨ãä¸è¬ãåé è¨å®çå份éé°å¯èªæé©èä¸åä»»ä¸å使ç¨é段身åï¼å³å¯éåå å¯éé°å份以å交äºç°½ç½²åè½ã
+# %1$S is the session ID, %2$S is the session display name
+options.encryption.session=%1$S (%2$S)
+
+# LOCALIZATION NOTE (connection.*):
+# These will be displayed in the account manager in order to show the progress
+# of the connection.
+# (These will be displayed in account.connection.progress from
+# accounts.properties, which adds ⦠at the end, so do not include
+# periods at the end of these messages.)
+connection.requestAuth=æ£å¨çå¾
æ¨çææ¬
+connection.requestAccess=æ£å¨å®æèªè
+
+# LOCALIZATION NOTE (connection.error.*):
+# These will show in the account manager if an error occurs during the
+# connection attempt.
+connection.error.noSupportedFlow=伺æå¨ç¡æ³æä¾ç¸å®¹çç»å
¥æµç¨ã
+connection.error.authCancelled=æ¨åæ¶äºææ¬åä½ã
+connection.error.sessionEnded=使ç¨éæ®µå·²çµæã
+connection.error.serverNotFound=æ¾ä¸å°æä¾ç Matrix 帳èæå¨ç Matrix 伺æå¨ã
+
+# 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=è天室ï¼_Rï¼
+
+# 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=顯示å稱
+# %S is the timespan elapsed since the last activity.
+tooltip.timespan=%S å
+tooltip.lastActive=æå¾æ´»å
+
+# LOCALIZATION NOTE (powerLevel.*):
+# These are the string representations of different standard power levels and strings.
+# %S are one of the power levels, Default/Moderator/Admin/Restricted/Custom.
+powerLevel.default=é è¨
+powerLevel.moderator=ç主
+powerLevel.admin=管çå¡
+powerLevel.restricted=å·²åé
+powerLevel.custom=èªè¨
+# %1$S is the power level name
+# %2$S is the power level number
+powerLevel.detailed=%1$Sï¼%2$Sï¼
+powerLevel.defaultRole=é è¨è§è²: %S
+powerLevel.inviteUser=éè«ä½¿ç¨è
: %S
+powerLevel.kickUsers=踢走使ç¨è
: %S
+powerLevel.ban=å°é使ç¨è
: %S
+powerLevel.roomAvatar=æ´æ¹è天室åç: %S
+powerLevel.mainAddress=æ´æ¹è天室ç主è¦å°å: %S
+powerLevel.history=æ´æ¹è天ç´éå¯è¦åº¦: %S
+powerLevel.roomName=æ´æ¹è天室å稱: %S
+powerLevel.changePermissions=æ´æ¹æ¬é: %S
+powerLevel.server_acl=å³é m.room.server_acl äºä»¶: %S
+powerLevel.upgradeRoom=åç´è天室: %S
+powerLevel.remove=ç§»é¤è¨æ¯: %S
+powerLevel.events_default=äºä»¶é è¨å¼: %S
+powerLevel.state_default=æ´æ¹è¨å®: %S
+powerLevel.encryption=éåè天室å å¯: %S
+powerLevel.topic=è¨å®è天室主é¡: %S
+
+# LOCALIZATION NOTE (detail.*):
+# These are the string representations of different matrix properties.
+# %S will typically be strings with the actual values.
+# Example placeholder: "Foo bar"
+detail.name=å稱: %S
+# Example placeholder: "My first room"
+detail.topic=主é¡: %S
+# Example placeholder: "5"
+detail.version=èå¤©å®¤çæ¬: %S
+# Example placeholder: "#thunderbird:mozilla.org"
+detail.roomId=RoomID: %S
+# %S are all admin users. Example: "@foo:example.com, @bar:example.com"
+detail.admin=管çå¡: %S
+# %S are all moderators. Example: "@lorem:mozilla.org, @ipsum:mozilla.org"
+detail.moderator=ç主: %S
+# Example placeholder: "#thunderbird:matrix.org"
+detail.alias=æ±ç¨±: %S
+# Example placeholder: "can_join"
+detail.guest=訪客å忬: %S
+# This is a heading, followed by the powerLevel.* strings
+detail.power=æ¬åçç´:
+
+# LOCALIZATION NOTE (command.*):
+# These are the help messages for each command, the %S is the command name
+# Each command first gives the parameter it accepts and then a description of
+# the command.
+command.ban=%S <userId> [<åå >]: å°é ID çº userId ç使ç¨è
ï¼å¯é¸å¡«å°éåå ï¼ãå¿
é è¦æå°é使ç¨è
çæ¬éã
+command.invite=%S <userId>: éè«ä½¿ç¨è
å å
¥è天室ã
+command.kick=%S <userId> [<åå >]: å° ID çº userId ç使ç¨è
踢走ï¼å¯é¸å¡«åå ï¼ãå¿
é è¦æè¸¢èµ°ä½¿ç¨è
çæ¬éã
+command.nick=%S <æ°é¡¯ç¤ºå稱>: ä¿®æ¹æ¨ç顯示å稱ã
+command.op=%S <userId> [<æ¬åçç´>]: æå®ä½¿ç¨è
çæ¬åçç´ãè«å¨çç´æ¬ä½è¼¸å
¥æ´æ¸ï¼ä¸è¬ä½¿ç¨è
: 0ãç主: 50ã管çå¡: 100ãè¥æªæå®åæ¸ï¼åé è¨çº 50ãå¿
é è¦æè½æ´æ¹æå¡æ¬åçç´çæ¬éï¼å°æ¨èªå·±ä»¥å¤ç管çå¡ç¡æã
+command.deop=%S <userId>: å°ä½¿ç¨è
çæ¬åçç´éè¨çº 0ï¼ä¸è¬ä½¿ç¨è
ï¼ãå¿
é è¦æè½æ´æ¹æå¡æ¬åçç´çæ¬éï¼å°æ¨èªå·±ä»¥å¤ç管çå¡ç¡æã
+command.leave=%S: é¢éç®åè天室ã
+command.topic=%S <æ°ä¸»é¡>: è¨å®è天室ç主é¡ãå¿
é è¦ææ´æ¹è天室主é¡çæ¬éã
+command.unban=%S <userId>: è§£é¤å°é已被è天室å°éç使ç¨è
ãå¿
é è¦æå°é使ç¨è
çæ¬éã
+command.visibility=%S [<visibility>]: è¨å®ç®å Home Server çè天室ç®éç¶ä¸çç®åè天室çå¯è¦åº¦ãè«æå®æ´æ¸å¼: 0 代表ç§äººè天室ã1 代表å
¬éè天室ãè¥æªæå®å¯è¦åº¦ï¼é è¨çºç§äººï¼0ï¼ãå¿
é è¦ææ´æ¹è天室å¯è¦åº¦çæ¬éã
+command.guest=%S <guest access> <history visibility>: è¨å®è¨ªå®¢æ¯å¦å¯ä»¥ååç®åè天室ï¼ä»¥åè天ç´éçå¯è¦åº¦ãè«è¼¸å
¥å
©çµæ´æ¸å¼: 第ä¸çµçºè¨ªå®¢å忬éï¼0 代表ä¸å
許ã1 代表å
許ï¼ï¼ç¬¬äºçµçºè天ç´éçå¯è¦åº¦ï¼0 代表ä¸å¯è¦ã1 代表å¯è¦ï¼ãå¿
é è¦ææ´æ¹è天ç´éå¯è¦åº¦çæ¬éã
+command.roomname=%S <æ°å稱>: è¨å®è天室çå稱ãå¿
é è¦ææ´æ¹è天室åç¨±çæ¬éã
+command.detail=%S: 顯示è天室詳細è³è¨ã
+command.addalias=%S <å¥å>: çºè天室建ç«å¥åãé æçå¥åæ ¼å¼æçºã#localname:domainããå¿
é è¦æå»ºç«å¥åçæ¬éã
+command.removealias=%S <å¥å>: ç§»é¤è天室çå¥åãé æçå¥åæ ¼å¼æçºã#localname:domainããå¿
é è¦æç§»é¤å¥åçæ¬éã
+command.upgraderoom=%S <æ°çæ¬>: å°è天室åç´å°æ°ççæ¬ãå¿
é è¦æè½å¤ åç´èå¤©å®¤çæ¬éã
+command.me=%S <åä½>: ååºæååä½ã
+command.msg=%S <userId> <è¨æ¯>: å³éç§äººè¨æ¯çµ¦æå®ç使ç¨è
ã
+command.join=%S <roomId>: å å
¥æå®çè天室ã
+
+# LOCALIZATION NOTE (message.*):
+# These are shown as system messages in the conversation.
+# %S is the reason string for the particular action.
+# Used within context of ban, kick and withdrew invite.
+message.reason=åå : %Sã
+
+# LOCALIZATION NOTE (message.*):
+# These are shown as system messages in the conversation.
+# %1$S is the name of the user who banned.
+# %2$S is the name of the user who got banned.
+message.banned=%1$S å·²å°é %2$Sã
+# Same as message.banned but with a reason.
+# %3$S is the reason the user was banned.
+message.bannedWithReason=%1$S å·²å°é %2$Sãåå : %3$S
+# %1$S is the name of the user who accepted the invitation.
+# %2$S is the name of the user who sent the invitation.
+message.acceptedInviteFor=%1$S æ¥åäºä¾èª %2$S çéè«ã
+# %S is the name of the user who accepted an invitation.
+message.acceptedInvite=$S æ¥åäºéè«å½ã
+# %1$S is the name of the user who invited.
+# %2$S is the name of the user who got invited.
+message.invited=%1$S å·²éè« %2$Sã
+# %1$S is the name of the user who changed their display name.
+# %2$S is the old display name.
+# %3$S is the new display name.
+message.displayName.changed=%1$S å·²å°é¡¯ç¤ºåç¨±å¾ %2$S æ´æ¹çº %3$Sã
+# %1$S is the name of the user who set their display name.
+# %2$S is the newly set display name.
+message.displayName.set=%1$S å·²å°é¡¯ç¤ºå稱è¨å®çº %2$Sã
+# %1$S is the name of the user who removed their display name.
+# %2$S is the old display name which has been removed.
+message.displayName.remove=%1$S 已移é¤é¡¯ç¤ºå稱 %2$Sã
+# %S is the name of the user who has joined the room.
+message.joined=%S å·²å å
¥è天室ã
+# %S is the name of the user who has rejected the invitation.
+message.rejectedInvite=%S å·²æçµéè«ã
+# %S is the name of the user who has left the room.
+message.left=%S å·²é¢éè天室ã
+# %1$S is the name of the user who unbanned.
+# %2$S is the name of the user who got unbanned.
+message.unbanned=%1$S 已解é¤å°é %2$Sã
+# %1$S is the name of the user who kicked.
+# %2$S is the name of the user who got kicked.
+message.kicked=%1$S 已踢走 %2$Sã
+# Same as message.kicked but with a third parameter for the reason.
+# %3$S is the reason for the kick.
+message.kickedWithReason=%1$S 已踢走 %2$Sãåå : %3$S
+# %1$S is the name of the user who withdrew invitation.
+# %2$S is the name of the user whose invitation has been withdrawn.
+message.withdrewInvite=%1$S åæ¶äº %2$S çéè«å½ã
+# Same as message.withdrewInvite but with a third paramter for the reason.
+# %3$S is the reason the invite was withdrawn.
+message.withdrewInviteWithReason=%1$S åæ¶äº %2$S çéè«å½ãåå : %3$S
+# %S is the name of the user who has removed the room name.
+message.roomName.remove=%S 已移é¤è天室å稱ã
+# %1$S is the name of the user who changed the room name.
+# %2$S is the new room name.
+message.roomName.changed=%1$S å·²å°è天室åç¨±æ´æ¹çº %2$Sã
+# %1$S is the name of the user who changed the power level.
+# %2$S is a list of "message.powerLevel.fromTo" strings representing power level changes separated by commas
+# power level changes, separated by commas if there are multiple changes.
+message.powerLevel.changed=%1$S å·²èª¿æ´æ¬åçç´: %2$Sã
+# %1$S is the name of the target user whose power level has been changed.
+# %2$S is the old power level.
+# %2$S is the new power level.
+message.powerLevel.fromTo=å° %1$S å¾ %2$S æ´æ¹çº %3$S
+# %S is the name of the user who has allowed guests to join the room.
+message.guest.allowed=%S å·²å
許訪客å å
¥è天室ã
+# %S is the name of the user who has prevented guests to join the room.
+message.guest.prevented=%S å·²æçµè¨ªå®¢å å
¥è天室ã
+# %S is the name of the user who has made future room history visible to anyone.
+message.history.anyone=%S å·²è®æªä¾çè天ç´éï¼éæ¾çµ¦ææäººé±è®ã
+# %S is the name of the user who has made future room history visible to all room members.
+message.history.shared=%S å·²è®æªä¾çè天ç´éï¼éæ¾çµ¦ææè天室æå¡é±è®ã
+# %S is the name of the user who has made future room history visible to all room members, from the point they are invited.
+message.history.invited=%S å·²è®æªä¾çè天ç´éï¼å¾æå¡è¢«éè«çæéé»éå§ï¼éæ¾çµ¦ææè天室æå¡é±è®ã
+# %S is the name of the user who has made future room history visible to all room members, from the point they joined.
+message.history.joined=%S å·²è®æªä¾çè天ç´éï¼å¾æå¡å å
¥çæéé»éå§ï¼éæ¾çµ¦ææè天室æå¡é±è®ã
+# %1$S is the name of the user who changed the address.
+# %2$S is the old address.
+# %3$S is the new address.
+message.alias.main=%1$S 已尿¤è天室ç主è¦å°åå¾ %2$S æ´æ¹çº %3$Sã
+# %1$S is the name of the user who added the address.
+# %2$S is a comma delimited list of added addresses.
+message.alias.added=%1$S å·²å° %2$S å å
¥çºæ¤è天室çåç¨å°åã
+# %1$S is the name of the user who removed the address.
+# %2$S is a comma delimited list of removed addresses.
+message.alias.removed=%1$S å·²å° %2$S 徿¤è天室çåç¨å°åç§»é¤ã
+# %1$S is the name of the user that edited the alias addresses.
+# %2$S is a comma delimited list of removed addresses.
+# %3$S is a comma delmited list of added addresses.
+message.alias.removedAndAdded=%1$S å·²ç§»é¤ %2$Sï¼ä¸¦å å
¥ %3$S ä½çºæ¤è天室çåç¨å°åã
+message.spaceNotSupported=éåæ¿éæ¯ä¸å空éï¼ä¸åæ¯æ´ã
+message.encryptionStart=ç¾å¨èµ·ï¼æ¤å°è©±ä¸çè¨æ¯å°é²è¡ç«¯å°ç«¯å å¯ã
+# %1$S is the name of the user who sent the verification request.
+# %2$S is the name of the user that is receiving the verification request.
+message.verification.request2=%1$S æ³è¦é©è %2$S ç身åã
+# %1$S is the name of the user who cancelled the verification request.
+# %2$S is the reason given why the verification was cancelled.
+message.verification.cancel2=%1$S ç±æ¼ä¸ååå ï¼åæ¶äºèº«åé©èè«æ±: %2$S
+message.verification.done=確èªå®æã
diff --git a/chat/status.properties b/chat/status.properties
new file mode 100644
index 00000000000..ea29e405b71
--- /dev/null
+++ b/chat/status.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/.
+
+availableStatusType=æç©º
+awayStatusType=é¢é
+unavailableStatusType=æ²ç©º
+offlineStatusType=é¢ç·
+invisibleStatusType=é±èº«
+idleStatusType=éç½®
+mobileStatusType=å¨è¡åè£ç½®ä¸
+# LOCALIZATION NOTE (unknownStatusType):
+# the status of a buddy is unknown when it's in the list of a disconnected account
+unknownStatusType=æªç¥
+
+# 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=æä¸å¨é»è
¦åã
+
diff --git a/chat/twitter.properties b/chat/twitter.properties
new file mode 100644
index 00000000000..7a7af058a04
--- /dev/null
+++ b/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=çæ
å·²è¶
é 140 åã
+# 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=å³é %2$S è¨æ¯æç¼çé¯èª¤: %1$S
+error.retweet=è½æ¨ %2$S æç¼ç %1$S é¯èª¤
+error.delete=åªé¤ %2$S æç¼ç %1$S é¯èª¤
+error.like=æè®æç¼çé¯èª¤ %1$S: %2$S
+error.unlike=æ¶åè®æç¼çé¯èª¤ %1$S: %2$S
+# LOCALIZATION NOTE (error.descriptionTooLong)
+# %S is the truncated string that was sent to the server.
+error.descriptionTooLong=æè¿°å·²è¶
éæå¤§åæ¸éå¶ï¼160 åï¼ï¼å·²è¢«èªåæªççº: %Sã
+
+# LOCALIZATION NOTE (timeline):
+# This is the title of the conversation tab, %S will be replaced by
+# @.
+timeline=%S çæé軸
+
+# LOCALIZATION NOTE (action.*):
+# This will be an action in the context menu of displayed tweets.
+action.copyLink=è¤è£½éçµå°æ¨æç¶ä¸
+action.retweet=è½æ¨
+action.reply=åè¦
+action.delete=åªé¤
+# LOCALIZATION NOTE (action.follow, action.stopFollowing):
+# %S will be replaced by the screen name of a twitter user.
+action.follow=éæ³¨ %S
+action.stopFollowing=忢鿳¨ %S
+action.like=è®
+action.unlike=åæ¶è®
+
+# 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=æ¨æ£å¨é注 %Sã
+event.unfollow=æ¨ä¸åéæ³¨ %Sã
+event.followed=%S æ£å¨é注æ¨ã
+# LOCALIZATION NOTE (event.deleted):
+# %S will be replaced by the text of the deleted tweet.
+event.deleted=æ¨å·²åªé¤æ¤æ¨æ:ã%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=æ£å¨åæ: %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=æ£å¨èµ·å§èªèéç¨
+connection.requestAuth=æ£å¨çå¾
æ¨çææ¬
+connection.requestAccess=æ£å¨å®æèªè
+connection.requestTimelines=æ£å¨è¦æ±ä½¿ç¨è
çæé軸
+# LOCALIZATION NOTE (connection.error.*):
+# These will show in the account manager if an error occurs during the
+# connection attempt.
+connection.error.userMismatch=䏿£ç¢ºç使ç¨è
å稱ã
+connection.error.failedToken=ç¡æ³åå¾è«æ±ç tokenã
+connection.error.authCancelled=æ¨å·²åæ¶ææ¬éç¨ã
+connection.error.authFailed=ç¡æ³å徿æ¬ã
+connection.error.noNetwork=æ²æå¯ç¨ç網路é£ç·ã
+
+# 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=ææ¬ä½¿ç¨æ¨ç Twitter 帳è
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.track=è¦è¿½è¹¤çééµå
+
+# 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=å å
¥æ¥æ
+tooltip.location=å°é»
+tooltip.lang=èªè¨
+tooltip.time_zone=æå
+tooltip.url=å人é¦é
+# LOCALIZATION NOTE (tooltip.protected):
+# whether the user's tweets are publicly visible.
+tooltip.protected=ä¿è·æ¨æ
+# LOCALIZATION NOTE (tooltip.following):
+# whether you are subscribed to the user's tweets.
+tooltip.following=éæ³¨ä¸
+tooltip.name=å稱
+tooltip.description=æè¿°
+# LOCALIZATION NOTE (tooltip.*_count):
+# Please see the right side of the official Twitter website UI.
+tooltip.friends_count=éæ³¨ä¸
+tooltip.statuses_count=æ¨æ
+tooltip.followers_count=éæ³¨è
+tooltip.listed_count=ååº
+
+# LOCALIZATION NOTE (yes, no):
+# These are used to turn true/false values into a yes/no response.
+yes=æ¯
+no=å¦
+
+command.follow=%S <使ç¨è
å稱>[ <使ç¨è
å稱>]*: éå§éæ³¨ä¸æå¤ä½ä½¿ç¨è
ã
+command.unfollow=%S <使ç¨è
å稱>[ <使ç¨è
å稱>]*: 忢鿳¨ä¸æå¤ä½ä½¿ç¨è
ã
+
+twitter.disabled=ç±æ¼ Twitter åç¨äºä¸²æµéè¨åå®ï¼å·²ä¸åæ¯æ´ã
diff --git a/chat/xmpp.properties b/chat/xmpp.properties
new file mode 100644
index 00000000000..fc0cabfae87
--- /dev/null
+++ b/chat/xmpp.properties
@@ -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 (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=æ£å¨èµ·å§ä¸²æµ
+connection.initializingEncryption=æ£å¨èµ·å§å å¯
+connection.authenticating=é©èä¸
+connection.gettingResource=æ£å¨åå¾è³æº
+connection.downloadingRoster=æ£å¨ä¸è¼è¯çµ¡äººæ¸
å®
+connection.srvLookup=æ£å¨æ¥è©¢ SRV ç´é
+
+# LOCALIZATION NOTE (connection.error.*)
+# These will show in the account manager if an error occurs during the
+# connection attempt.
+connection.error.invalidUsername=ç¡æç使ç¨è
åç¨±ï¼æ¨ç使ç¨è
å稱æè©²å
å«ã@ã符èï¼
+connection.error.failedToCreateASocket=ç¡æ³å»ºç« Socketï¼æ¨é¢ç·äºåï¼ï¼
+connection.error.serverClosedConnection=伺æå¨å·²ééé£ç·
+connection.error.resetByPeer=é£ç·æªéç®çå°å³è¢«éè¨
+connection.error.timedOut=é£ç·é¾æ
+connection.error.receivedUnexpectedData=æ¶å°æªé æçè³æ
+connection.error.incorrectResponse=æ¶å°ä¸æ£ç¢ºçåæ
+connection.error.startTLSRequired=伺æå¨éè¦å å¯é£ç·ï¼ä½æ¨å·²åç¨
+connection.error.startTLSNotSupported=伺æå¨ä¸æ¯æ´å å¯ï¼ä½æ¨å¨è¨å®ç¶ä¸è¦æ±å å¯
+connection.error.failedToStartTLS=ç¡æ³èµ·å§å å¯
+connection.error.noAuthMec=伺æå¨æªæä¾èªèæ©å¶
+connection.error.noCompatibleAuthMec=䏿¯æ´ä¼ºæå¨ææä¾çèªèæ©å¶
+connection.error.notSendingPasswordInClear=伺æå¨åªæ¯æ´å³éæç¢¼çèªèæ©å¶
+connection.error.authenticationFailure=èªè失æ
+connection.error.notAuthorized=æªè¢«ææ¬ï¼æ¨æ¯ä¸æ¯æé¯å¯ç¢¼äºï¼ï¼
+connection.error.failedToGetAResource=ç¡æ³åå¾è³æº
+connection.error.failedMaxResourceLimit=æ¤å¸³èåæè·å¤ªå¤å°æ¹é£çµã
+connection.error.failedResourceNotValid=è³æºç¡æã
+connection.error.XMPPNotSupported=該伺æå¨ä¸æ¯æ´ 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=ç¡æ³å³éæ¤è¨æ¯: %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=ç¡æ³å å
¥: %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=å çºæ¨å·²è¢« %S è天室å°éï¼ç¡æ³å å
¥è©²è天室ã
+conversation.error.joinFailedNotAuthorized=éè¦è¨»å: æ¨æªè¢«ææ¬å å
¥æ¤è天室ã
+conversation.error.creationFailedNotAllowed=åååé: æ¨æªè¢«å
許建ç«è天室ã
+# This is displayed in a conversation as an error message when remote server
+# is not found.
+# %S is the name of MUC room.
+conversation.error.joinFailedRemoteServerNotFound=å çºç¡æ³é£ç·è³è天室æå¨ç主æ©ï¼ç¡æ³å å
¥è天室 %Sã
+conversation.error.changeTopicFailedNotAuthorized=æ¨ä¸¦æªææ¬è¨å®æ¤è天室ç主é¡ã
+# This is displayed in a conversation as an error message when the user sends
+# a message to a room that he is not in.
+# %1$S is the name of MUC room.
+# %2$S is the text of the message that wasn't delivered.
+conversation.error.sendFailedAsNotInRoom=å çºæ¨å·²ç¶ä¸å¨è天室ï¼ç¡æ³å°ä¸åè¨æ¯å³éå° %1$S: %2$S
+# This is displayed in a conversation as an error message when the user sends
+# a message to a room that the recipient is not in.
+# %1$S is the jid of the recipient.
+# %2$S is the text of the message that wasn't delivered.
+conversation.error.sendFailedAsRecipientNotInRoom=å çºæ¶ä»¶è
å·²ç¶ä¸å¨è天室ä¸ï¼ç¡æ³å³éä¸åè¨æ¯çµ¦ %1$S: %2$S
+# These are displayed in a conversation as a system error message.
+conversation.error.remoteServerNotFound=ç¡æ³è¯ç¹«æ¶ä»¶è
ç伺æå¨ã
+conversation.error.unknownSendError=å³éæ¤è¨æ¯æç¼çæªç¥é¯èª¤ã
+# %S is the name of the message recipient.
+conversation.error.sendServiceUnavailable=ç®åç¡æ³å³éè¨æ¯çµ¦ %Sã
+# %S is the nick of participant that is not in room.
+conversation.error.nickNotInRoom=%S ä¸å¨æ¤è天室ã
+conversation.error.banCommandAnonymousRoom=æ¨ç¡æ³å¨å¿åè天室å
§å°éæå¡ãè«å試以 /kick 代æ¿ã
+conversation.error.banKickCommandNotAllowed=卿¤è天室䏿¨ä¸éè¦æ¬éå³å¯è¸¢é¤æå¡ã
+conversation.error.banKickCommandConflict=æ±æï¼æ¨ç¡æ³å°èªå·±è¸¢åºè天室ã
+conversation.error.changeNickFailedConflict=æ¤æ±ç¨±å·²è¢«ä½¿ç¨ï¼ç¡æ³å°æ¨çæ±ç¨±è®æ´çº %Sã
+conversation.error.changeNickFailedNotAcceptable=æ¤è天室å
§çæ±ç¨±å·²è¢«éå®ï¼ç¡æ³å°æ¨çæ±ç¨±è®æ´çº %Sã
+conversation.error.inviteFailedForbidden=æ¨ä¸éè¦æ¬éå³å¯éè«æå¡å å
¥æ¤è天室ã
+# %S is the jid of user that is invited.
+conversation.error.failedJIDNotFound=ç¡æ³è %S è¯ç¹«ã
+# %S is the jid that is invalid.
+conversation.error.invalidJID=%S æ¯ç¡æç jidï¼Jabber ID å¿
é æ¯ user@domain æ ¼å¼ï¼ã
+conversation.error.commandFailedNotInRoom=æ¨å¿
é éæ°å å
¥è天室æè½ä½¿ç¨æ¤æä»¤ã
+# %S is the name of the recipient.
+conversation.error.resourceNotAvailable=æ¨å¿
é å
è %S é話æè½èè¶
éä¸å客æ¶ç«¯é£çµã
+
+# LOCALIZATION NOTE (conversation.error.version.*):
+# %S is the name of the recipient.
+conversation.error.version.unknown=%S ç客æ¶ç«¯ä¸æ¥åæ¥è©¢è»é«çæ¬ã
+
+# 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=çæ
ï¼%Sï¼
+tooltip.statusNoResource=çæ
+tooltip.subscription=è¨é±
+tooltip.fullName=å
¨å
+tooltip.nickname=æ±ç¨±
+tooltip.email=é»åéµä»¶
+tooltip.birthday=çæ¥
+tooltip.userName=使ç¨è
å稱
+tooltip.title=é é
+tooltip.organization=å
¬å¸
+tooltip.locality=å°é»
+tooltip.country=åå®¶
+
+tooltip.telephone=é»è©±è碼
+
+# 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=è天室ï¼_Rï¼
+chatRoomField.server=伺æå¨ï¼_Sï¼
+chatRoomField.nick=æ±ç¨±ï¼_Nï¼
+chatRoomField.password=å¯ç¢¼ï¼_Pï¼
+
+# 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 éè«æ¨å å
¥ %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 éè«æ¨ä½¿ç¨å¯ç¢¼ %3$S å å
¥ %2$S: %4$S
+conversation.muc.invitationWithoutReason=%1$S éè«æ¨å å
¥ %2$S
+# %3$S is the password of the room.
+conversation.muc.invitationWithoutReason.password=%1$S å·²éè«æ¨ä½¿ç¨å¯ç¢¼ %3$S å å
¥ %2$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 å·²å å
¥è天室ã
+
+# LOCALIZATION NOTE (conversation.muc.rejoined):
+# This is displayed as a system message when a participant rejoins room after
+# parting it.
+conversation.message.rejoined=æ¨å·²éæ°å å
¥è天室ã
+
+# 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=æ¨å·²é¢éè天室ã
+conversation.message.parted.you.reason=æ¨å·²é¢éè天室: %S
+# %1$S is the participant that is leaving.
+# %2$S is the part message supplied by the participant.
+conversation.message.parted=%1$S å·²é¢éè天室ã
+conversation.message.parted.reason=%1$S å·²é¢éè天室: %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 æçµäºæ¨çéè«ã
+conversation.message.invitationDeclined.reason=%1$S æçµäºæ¨çéè«: %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 已被è天室å°éã
+conversation.message.banned.reason=%1$S 已被è天室å°é: %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 å·²å° %2$S èªè天室å°éã
+conversation.message.banned.actor.reason=%1$S å·²å° %2$S èªè天室å°é: %3$S
+conversation.message.banned.you=æ¨å·²è¢«è天室å°éã
+# %1$S is the reason.
+conversation.message.banned.you.reason=æ¨å·²è¢«è天室å°é: %1$S
+# %1$S is the person who is banning.
+# %2$S is the reason.
+conversation.message.banned.you.actor=%1$S 已尿¨å¾è天室å°éã
+conversation.message.banned.you.actor.reason=%1$S 已尿¨å¾è天室å°é: %2$S
+
+# LOCALIZATION NOTE (conversation.message.kicked.*):
+# These are displayed as a system message when a participant is kicked from
+# a room.
+# %1$S is the participant that is kicked.
+# %2$S is the reason.
+conversation.message.kicked=%1$S 已被踢åºè天室ã
+conversation.message.kicked.reason=%1$S 已被踢åºè天室: %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 å·²å° %2$S 踢åºè天室ã
+conversation.message.kicked.actor.reason=%1$S å·²å° %2$S 踢åºè天室: %3$S
+conversation.message.kicked.you=æ¨å·²è¢«è¸¢åºè天室ã
+# %1$S is the reason.
+conversation.message.kicked.you.reason=æ¨å·²è¢«è¸¢åºè天室: %1$S
+# %1$S is the person who is kicking.
+# %2$S is the reason.
+conversation.message.kicked.you.actor=%1$S 已尿¨è¸¢åºè天室ã
+conversation.message.kicked.you.actor.reason=%1$S 已尿¨è¸¢åºè天室: %2$S
+
+# LOCALIZATION NOTE (conversation.message.removedNonMember.*):
+# These are displayed as a system message when a participant is removed from
+# a room because the room has been changed to members-only.
+# %1$S is the participant that is removed.
+# %2$S is the person who changed the room configuration.
+conversation.message.removedNonMember=ç±æ¼èå¤©å®¤æ´æ¹è¨å®çºé宿å¡ï¼%1$S å·²ç¶è¢«è¸¢åºè天室ã
+conversation.message.removedNonMember.actor=ç±æ¼ %2$S æ´æ¹è¨å®çºé宿å¡ï¼%1$S å·²ç¶è¢«è¸¢åºè天室ã
+conversation.message.removedNonMember.you=ç±æ¼èå¤©å®¤æ´æ¹è¨å®çºé宿å¡ï¼æ¨å·²ç¶è¢«è¸¢åºè天室ã
+# %1$S is the person who changed the room configuration.
+conversation.message.removedNonMember.you.actor=ç±æ¼ %1$S æ´æ¹è天室è¨å®çºé宿å¡ï¼æ¨å·²ç¶è¢«è¸¢åºè天室ã
+
+# LOCALIZATION NOTE (conversation.message.MUCShutdown):
+# These are displayed as a system message when a participant is removed from
+# a room because of a system shutdown.
+conversation.message.mucShutdown=ç±æ¼ç³»çµ±ééï¼æ¨å·²è¢«è¸¢åºè天室ã
+
+# 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 æ£å¨ä½¿ç¨ã%2$S %3$Sãã
+conversation.message.versionWithOS=%1$S æ£å¨ä½¿ç¨ %4$S ä¸çã%2$S %3$Sãã
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.resource=è³æº
+options.priority=éè¦æ§
+options.connectionSecurity=é£ç·å®å
¨æ§
+options.connectionSecurity.requireEncryption=å¿
éå å¯
+options.connectionSecurity.opportunisticTLS=å¯ç¨æå å¯
+options.connectionSecurity.allowUnencryptedAuth=å
許以æªå å¯çæ¹å¼å³éå¯ç¢¼
+options.connectServer=伺æå¨
+options.connectPort=å
+options.domain=ç¶²å
+
+# 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=é»åéµä»¶å°å
+
+# 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
+
+# LOCALZIATION NOTE (command.*):
+# These are the help messages for each command.
+command.join3=%S [<è天室>[@<伺æå¨>][/<æ±ç¨±>]] [<å¯ç¢¼>]: å å
¥è天室ï¼å¯å¦å¤æå®é£ç·è³ä¸åç伺æå¨ãæå®æ±ç¨±æä½¿ç¨è天室å¯ç¢¼ã
+command.part2=%S [<è¨æ¯>]: é¢éè天室ï¼å¯çä¸é¢éè¨æ¯ã
+command.topic=%S [<æ°ä¸»é¡>]: è¨å®æ¤èå¤©å®¤çæ°ä¸»é¡ã
+command.ban=%S <æ±ç¨±>[<è¨æ¯>]ï¼æ¨å¿
é æææ¤è天室管çå¡çè³æ ¼ï¼æè½å°éæ¤è天室ä¸çæäººã
+command.kick=%S <æ±ç¨±>[<è¨æ¯>]ï¼æ¨å¿
é æææ¤è天室管çå¡çè³æ ¼ï¼æè½è¸¢é¤æ¤è天室ä¸çæäººã
+command.invite=%S <jid>[<message>]ï¼éè«ä½¿ç¨è
å å
¥ç®åè天室並çä¸è¨æ¯ã
+command.inviteto=%S <è天室 jid>[<å¯ç¢¼>]: éè«æ¨çéè¨å¤¥ä¼´å å
¥è天室ï¼è¥éè¦ç話å¯è¼¸å
¥å¯ç¢¼ã
+command.me=%S <è¦åçåä½>: ååºæååä½ã
+command.nick=%S <æ°æ±ç¨±>: ä¿®æ¹æ¨çæ±ç¨±ã
+command.msg=%S <æ±ç¨±> <è¨æ¯>: å³éç§äººè¨æ¯çµ¦è天室å
§çæå¡ã
+command.version=%S: è«æ±æ¨çéè¨å¤¥ä¼´æä¾æ£å¨ä½¿ç¨ä¸ç客æ¶ç«¯çæ¬è³è¨ã
diff --git a/chat/yahoo.properties b/chat/yahoo.properties
new file mode 100644
index 00000000000..f4822f06948
--- /dev/null
+++ b/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 åç¨äºèççéè¨åå®ï¼å°ä¸åæ¯æ´ Yahoo Messengerã
diff --git a/devtools/client/aboutdebugging.ftl b/devtools/client/aboutdebugging.ftl
new file mode 100644
index 00000000000..681617423ce
--- /dev/null
+++ b/devtools/client/aboutdebugging.ftl
@@ -0,0 +1,390 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 = é¤é¯ - è¨å®
+
+# 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 = é¤é¯ - 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 }
+
+# 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 = è¨å®
+
+# Text displayed in the about:debugging sidebar when USB devices discovery is enabled.
+about-debugging-sidebar-usb-enabled = å·²åç¨ 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 = å·²åç¨ USB
+
+# Connection status (connected) for runtime items in the sidebar
+aboutdebugging-sidebar-runtime-connection-status-connected = å·²é£ç·
+# Connection status (disconnected) for runtime items in the sidebar
+aboutdebugging-sidebar-runtime-connection-status-disconnected = 已䏿·é£ç·
+
+# Text displayed in the about:debugging sidebar when no device was found.
+about-debugging-sidebar-no-devices = æªç¼ç¾è£ç½®
+
+# 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 = é£ç·
+
+# Text displayed in buttons found in sidebar items when the runtime is connecting.
+about-debugging-sidebar-item-connect-button-connecting = é£ç·ä¸â¦
+
+# Text displayed in buttons found in sidebar items when the connection failed.
+about-debugging-sidebar-item-connect-button-connection-failed = é£ç·å¤±æ
+
+# 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 = ä»ç¶çå¾
é£ç·ä¸ï¼è«å°ç®æ¨ç覽å¨ç¢ºèªè¨æ¯
+
+# Text displayed as connection error in sidebar item when the connection has timed out.
+about-debugging-sidebar-item-connect-button-connection-timeout = é£ç·é¾æ
+
+# 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 = æ£å¨çå¾
ç覽å¨é£ç·â¦
+
+# Text displayed in sidebar items for remote devices that have been disconnected from the
+# computer.
+about-debugging-sidebar-runtime-item-unplugged = æªé£çµ
+
+# 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 = é¤é¯å¨æè¡æ¯æ´
+
+# 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 = è¼å©èªªæå示
+
+# 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 = éæ°æ´çè£ç½®
+
+# Setup Page strings
+
+# Title of the Setup page.
+about-debugging-setup-title = è¨å®
+
+# Introduction text in the Setup page to explain how to configure remote debugging.
+about-debugging-setup-intro = è¨å®è¦ç¨åªç¨®æ¹å¼ä¾å¾é ç«¯å°æ¨çè£ç½®é¤é¯ã
+
+# Explanatory text in the Setup page about what the 'This Firefox' page is for
+about-debugging-setup-this-firefox2 = æ¼éåçæ¬ç { -brand-shorter-name } ä½¿ç¨ { about-debugging-this-firefox-runtime-name } ä¾å°æ´å
å¥ä»¶è Service Worker é¤é¯ã
+
+# Title of the heading Connect section of the Setup page.
+about-debugging-setup-connect-heading = é£ç·å°è£ç½®
+
+# 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 = é忤åè½å¾ï¼å°æä¸è¼ä¸¦å®è£å¿
éç Android USB é¤é¯å
ä»¶å° { -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 = åç¨ 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 = åç¨ 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 = æ´æ°ä¸â¦
+
+# USB section of the Setup page (USB status)
+about-debugging-setup-usb-status-enabled = å·²åç¨
+about-debugging-setup-usb-status-disabled = å·²åç¨
+about-debugging-setup-usb-status-updating = æ´æ°ä¸â¦
+
+# USB section step by step guide
+about-debugging-setup-usb-step-enable-dev-menu2 = æ¼æ¨ç Android è£ç½®éåãéç¼è
é¸å®ãã
+
+# USB section step by step guide
+about-debugging-setup-usb-step-enable-debug2 = æ¼ãéç¼è
é¸å®ãéåãUSB é¤é¯ãã
+
+# USB section step by step guide
+about-debugging-setup-usb-step-enable-debug-firefox2 = æ¼ Android è£ç½®ä¸ç Firefox éåãUSB é¤é¯ãã
+
+# USB section step by step guide
+about-debugging-setup-usb-step-plug-device = å° Android è£ç½®é£ç·å°æ¨çé»è
¦ã
+
+# 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 = é£ç·å° USB è£ç½®æç¼çåé¡ï¼çé£æè§£
+
+# Network section of the Setup page
+about-debugging-setup-network =
+ .title = 網路ä½ç½®
+
+# 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 = éé網路é£ç·å°è£ç½®æç¼çåé¡ï¼çé£æè§£
+
+# 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 = æ°å¢
+
+# Text to display when there are no locations to show.
+about-debugging-network-locations-empty-text = å°æªæ°å¢ä»»ä½ç¶²è·¯ä½ç½®ã
+
+# 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 = 主æ©
+
+# 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 = ç§»é¤
+
+# 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 = 主æ©ã{ $host-value }ãç¡æãé æçæ ¼å¼æ¯ãhostname: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 = 主æ©ã{ $host-value }ãå·²ç¶è¨»å
+
+# 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 = æ«ç¨æ´å
å¥ä»¶
+# Title of the extensions category.
+about-debugging-runtime-extensions =
+ .name = æ´å
å¥ä»¶
+# Title of the tabs category.
+about-debugging-runtime-tabs =
+ .name = åé
+# Title of the service workers category.
+about-debugging-runtime-service-workers =
+ .name = Service Worker
+# Title of the shared workers category.
+about-debugging-runtime-shared-workers =
+ .name = å
񄧮 Workers
+# Title of the other workers category.
+about-debugging-runtime-other-workers =
+ .name = å
¶ä» Workers
+# Title of the processes category.
+about-debugging-runtime-processes =
+ .name = Processes
+
+# Label of the button opening the performance profiler panel in runtime pages for remote
+# runtimes.
+about-debugging-runtime-profile-button2 = 檢測æè½
+
+# 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 = æ¨ç覽å¨çè¨å®è Service Worker ä¸ç¸å®¹ãäºè§£æ´å¤è³è¨
+
+# 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 = é£çµçç覽å¨ä½¿ç¨çæ¯èçï¼{ $runtimeVersion }ï¼ãç®åæ¯æ´çæå°çæ¬çºï¼{ $minVersion }ï¼ã䏿¯æ´é種è¨å®ï¼å¯è½æé æéç¼è
å·¥å
·ç¼çé¯èª¤ï¼è«æ´æ°é£ç·çç覽å¨ã黿¤é²è¡çé£æè§£
+
+# 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 = æ¤çæ¬ç Firefox ç¡æ³å° Firefox for Android 68 çé²è¡é¤é¯ãæåå»ºè°æ¨å¨ææ©ä¸å®è£ Firefox for Android Nightly ä¾é²è¡æ¸¬è©¦ãæ´å¤è©³æ
+
+# 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 = é£çµçç覽å¨ï¼çæ¬ { $runtimeVersion }ãbuildID { $runtimeID }ï¼æ¯æ¨ç { -brand-shorter-name }ï¼{ $localVersion }ãbuildID { $localID }ï¼ éæ°ã鿝䏿¯æ´çè¨å®ï¼å¯è½æé æéç¼è
å·¥å
·ç¼çé¯èª¤ï¼è«æ´æ° Firefoxã黿¤é²è¡çé£æè§£
+
+# 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 = 䏿·é£ç·
+
+# 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 = éåé£ç·æç¤º
+
+# 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 = ééé£ç·æç¤º
+
+# Title of a modal dialog displayed on remote runtime pages after clicking on the Profile Runtime button.
+about-debugging-profiler-dialog-title2 = æè½æª¢æ¸¬å¨
+
+# 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 = å±é / æºç
+
+# 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 = æ²æä»»ä½æ±è¥¿ã
+
+# 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 = 檢測
+
+# 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 = è¼å
¥æ«ç¨éå å
ä»¶â¦
+
+# Text displayed when trying to install a temporary extension in the "This Firefox" page.
+about-debugging-tmp-extension-install-error = å®è£æ«ç¨éå å
ä»¶æç¼çé¯èª¤ã
+
+# 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 = éæ°è¼å
¥
+
+# 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 = ç§»é¤
+
+# 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 = è«é¸æ manifest.json æªæ¡æ .xpi/.zip å°åæª
+
+# This string is displayed as a message about the add-on having a temporaryID.
+about-debugging-tmp-extension-temporary-id = æ¤ WebExtension ä½¿ç¨æ«ç¨ IDãäºè§£æ´å¤è³è¨
+
+# Text displayed for extensions in "runtime" pages, before displaying a link the extension's
+# manifest URL.
+about-debugging-extension-manifest-url =
+ .label = å®è£è³è¨æªç¶²å
+
+# 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
+
+# Text displayed for extensions (temporary extensions only) in "runtime" pages, before
+# displaying the location of the temporary extension.
+about-debugging-extension-location =
+ .label = ä½ç½®
+
+# 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
+
+# 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 = æ¨é
+ .disabledTitle = å¤ç¨åºç { -brand-shorter-name } ç®åæ«æç¡æ³ä½¿ç¨ Service Worker push
+
+# This string is displayed as a label of the button that starts a service worker.
+about-debugging-worker-action-start2 = éå§
+ .disabledTitle = å¤ç¨åºç { -brand-shorter-name } ç®åæ«æç¡æ³ä½¿ç¨ Service Worker start
+
+# This string is displayed as a label of the button that unregisters a service worker.
+about-debugging-worker-action-unregister = åæ¶è¨»å
+
+# Displayed for service workers in runtime pages that listen to Fetch events.
+about-debugging-worker-fetch-listening =
+ .label = Fetch
+ .value = æ£å¨èè½ fetch äºä»¶
+
+# Displayed for service workers in runtime pages that do not listen to Fetch events.
+about-debugging-worker-fetch-not-listening =
+ .label = Fetch
+ .value = æ²æå¨èè½ fetch äºä»¶
+
+# Displayed for service workers in runtime pages that are currently running (service
+# worker instance is active).
+about-debugging-worker-status-running = å·è¡ä¸
+
+# Displayed for service workers in runtime pages that are registered but stopped.
+about-debugging-worker-status-stopped = 忢
+
+# Displayed for service workers in runtime pages that are registering.
+about-debugging-worker-status-registering = 註åä¸
+
+# Displayed for service workers in runtime pages, to label the scope of a worker
+about-debugging-worker-scope =
+ .label = Scope
+
+# Displayed for service workers in runtime pages, to label the push service endpoint (url)
+# of a worker
+about-debugging-worker-push-service =
+ .label = æ¨éæå
+
+# Displayed as title of the inspect button when service worker debugging is disabled.
+about-debugging-worker-inspect-action-disabled =
+ .title = å¤ç¨åºç { -brand-shorter-name } ç®åæ«æç¡æ³ä½¿ç¨ Service Worker 檢測
+
+# 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 = éæ²æå®å
¨è¼å
¥åé å
§å®¹ï¼ç¡æ³æª¢æ¸¬
+
+# 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 = ä¸»è¦ Process
+
+# 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 = ç®æ¨ç覽å¨çä¸»è¦ Process
+
+# Displayed instead of the Main Process debug target when the preference
+# `devtools.browsertoolbox.fission` is true.
+about-debugging-multiprocess-toolbox-name = å¤èçç¨åºå·¥å
·ç®±
+
+# Description for the Multiprocess Toolbox target.
+about-debugging-multiprocess-toolbox-description = ç®æ¨ç覽å¨ç主è¦èå
§å®¹èçç¨åº
+
+# Alt text used for the close icon of message component (warnings, errors and notifications).
+about-debugging-message-close-icon =
+ .alt = ééè¨æ¯
+
+# Label text used for the error details of message component.
+about-debugging-message-details-label-error = é¯èª¤è©³ç´°è³è¨
+
+# Label text used for the warning details of message component.
+about-debugging-message-details-label-warning = è¦å詳細è³è¨
+
+# Label text used for default state of details of message component.
+about-debugging-message-details-label = 詳細è³è¨
diff --git a/devtools/client/accessibility.ftl b/devtools/client/accessibility.ftl
new file mode 100644
index 00000000000..f5727f71b88
--- /dev/null
+++ b/devtools/client/accessibility.ftl
@@ -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 used inside the Accessibility panel.
+
+accessibility-learn-more = äºè§£æ´å¤
+
+accessibility-text-label-header = æåæ¨ç±¤èå稱
+
+accessibility-keyboard-header = éµç¤
+
+## Text entries that are used as text alternative for icons that depict accessibility isses.
+
+accessibility-warning =
+ .alt = è¦å
+
+accessibility-fail =
+ .alt = é¯èª¤
+
+accessibility-best-practices =
+ .alt = æä½³å¯¦è¸
+
+## 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 = ä½¿ç¨ alt 屬æ§ä¾æ¨ç¤ºå«æ href 屬æ§ç area
å
ç´ ãäºè§£æ´å¤
+
+accessibility-text-label-issue-dialog = å°è©±æ¡ä¸æè©²å å
¥æ¨ç±¤ãäºè§£æ´å¤
+
+accessibility-text-label-issue-document-title = æä»¶å¿
é å
å« title å
ç´ ãäºè§£æ´å¤
+
+accessibility-text-label-issue-embed = åµå
¥å
§å®¹å¿
é å å
¥æ¨ç±¤ãäºè§£æ´å¤
+
+accessibility-text-label-issue-figure = 嫿æ¨é¡çå表é
ç®æè©²å å
¥æ¨ç±¤ãäºè§£æ´å¤
+
+accessibility-text-label-issue-fieldset = fieldset å
ç´ æè©²å å
¥æ¨ç±¤ãäºè§£æ´å¤
+
+accessibility-text-label-issue-fieldset-legend2 = ä½¿ç¨ legend å
ç´ ä¾çº fieldset å 䏿¨ç±¤ãäºè§£æ´å¤
+
+accessibility-text-label-issue-form = 表å®å
ç´ å¿
é å å
¥æ¨ç±¤ãäºè§£æ´å¤
+
+accessibility-text-label-issue-form-visible = 表å®å
ç´ æè©²å«æå¯è¦çæåæ¨ç±¤ãäºè§£æ´å¤
+
+accessibility-text-label-issue-frame = frame å
ç´ å¿
é å å
¥æ¨ç±¤ãäºè§£æ´å¤
+
+accessibility-text-label-issue-glyph = ä½¿ç¨ alt 屬æ§ä¾çº mglyph å
ç´ å å
¥æ¨ç±¤ãäºè§£æ´å¤
+
+accessibility-text-label-issue-heading = æ¨é¡å¿
é 嫿æ¨ç±¤ãäºè§£æ´å¤
+
+accessibility-text-label-issue-heading-content = æ¨é¡æè©²æå¯è¦çæåå
§å®¹ãäºè§£æ´å¤
+
+accessibility-text-label-issue-iframe = ä½¿ç¨ title 屬æ§ä¾èªªæ iframe ç¶ä¸çå
§å®¹ãäºè§£æ´å¤
+
+accessibility-text-label-issue-image = å
å«åççå
§å®¹å¿
é å å
¥æ¨ç±¤ãäºè§£æ´å¤
+
+accessibility-text-label-issue-interactive = äºåå¼å
ç´ å¿
é å å
¥æ¨ç±¤ãäºè§£æ´å¤
+
+accessibility-text-label-issue-optgroup-label2 = ä½¿ç¨ label 屬æ§ä¾çº optgroup å 䏿¨ç±¤ãäºè§£æ´å¤
+
+accessibility-text-label-issue-toolbar = æè¶
éä¸åå·¥å
·åæï¼å¿
é çºææå·¥å
·åå å
¥æ¨ç±¤ãäºè§£æ´å¤
+
+## 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 = å¯èç¦çå
ç´ ï¼ææäºåèªæãäºè§£æ´å¤
+
+accessibility-keyboard-issue-tabindex = é¿å
使ç¨å¤§æ¼ 0 ç tabindex 屬æ§ãäºè§£æ´å¤
+
+accessibility-keyboard-issue-action = äºåå¼å
ç´ å¿
é å¯ç¨éµç¤ä½åãäºè§£æ´å¤
+
+accessibility-keyboard-issue-focusable = äºåå¼å
ç´ å¿
é å¯èç¦ãäºè§£æ´å¤
+
+accessibility-keyboard-issue-focus-visible = å¯èç¦å
ç´ å¯è½ç¼ºå°èç¦æ¨£å¼ãäºè§£æ´å¤
+
+accessibility-keyboard-issue-mouse-only = å¯é»æçå
ç´ éå¯èç¦ï¼ä¸ææäºåèªæãäºè§£æ´å¤
diff --git a/devtools/client/accessibility.properties b/devtools/client/accessibility.properties
new file mode 100644
index 00000000000..356e251e8e8
--- /dev/null
+++ b/devtools/client/accessibility.properties
@@ -0,0 +1,298 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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=è§è²
+
+# LOCALIZATION NOTE (accessibility.name): A title text used for Accessibility
+# tree header column that represents accessible element name.
+accessibility.name=å稱
+
+# LOCALIZATION NOTE (accessibility.logo): A title text used for Accessibility
+# logo used on the accessibility panel landing page.
+accessibility.logo=ç¡éç¤è¼å©åè½å示
+
+# LOCALIZATION NOTE (accessibility.properties): A title text used for header
+# for Accessibility details sidebar.
+accessibility.properties=屬æ§
+
+# LOCALIZATION NOTE (accessibility.treeName): A title text used for
+# Accessibility tree (that represents accessible element name) container.
+accessibility.treeName=è¼å©åè½æ¨¹
+
+# LOCALIZATION NOTE (accessibility.accessible.notAvailable): A title text
+# displayed when accessible sidebar panel does not have an accessible object to
+# display.
+accessibility.accessible.notAvailable=ç¡æ³æä¾è¼å©åè½è³è¨
+
+# LOCALIZATION NOTE (accessibility.enable): A title text for Enable
+# accessibility button used to enable accessibility service.
+accessibility.enable=éåè¼å©åè½
+
+# LOCALIZATION NOTE (accessibility.enabling): A title text for Enable
+# accessibility button used when accessibility service is being enabled.
+accessibility.enabling=æ£å¨éåè¼å©åè½â¦
+
+# LOCALIZATION NOTE (accessibility.disable): A title text for Disable
+# accessibility button used to disable accessibility service.
+accessibility.disable=ééè¼å©åè½
+
+# LOCALIZATION NOTE (accessibility.disabling): A title text for Disable
+# accessibility button used when accessibility service is being
+# disabled.
+accessibility.disabling=æ£å¨ééè¼å©åè½â¦
+
+# LOCALIZATION NOTE (accessibility.pick): A title text for Picker button
+# button used to pick accessible objects from the page.
+accessibility.pick=æé¸é é¢ä¸çè¼å©åè½ç©ä»¶
+
+# 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=è¼å©åè½æåä»è¢«éç¼è
å·¥å
·ä»¥å¤çé¨å使ç¨ä¸ï¼ç¡æ³ééã
+
+# 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=å°ééææåé èè¦çªä¸çè¼å©åè½æåã
+
+# 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=å·²å¨è¼å©åè½æåé±ç§è¨å®ä¸å¼·å¶ééï¼ç¡æ³éåã
+
+# 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=å°éåææåé èè¦çªä¸çè¼å©åè½æåã
+
+# 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=äºè§£æ´å¤
+
+# 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=è¼å©åè½æª¢æ¸¬å¨å¯è®æ¨æª¢æ¸¬ç®åé é¢ç¶ä¸ï¼è¢å¹é±è®å¨èå
¶ä»è¼å©æè¡æç¨å°çè¼å©åè½æ¨¹ã%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=è¼å©åè½å¯è½æå½±é¿å
¶ä»éç¼è
å·¥å
·é¢æ¿çæè½ï¼ä¸ä½¿ç¨ææè©²ééã
+
+# 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=åå°çº JSON
+
+# LOCALIZATION NOTE (accessibility.checks): A title text used for header for checks
+# section in Accessibility details sidebar.
+accessibility.checks=檢æ¥
+
+# 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=䏿ª¢æ¥æ¤ç¯é»ã
+
+# LOCALIZATION NOTE (accessibility.contrast.header): A title text used for header for
+# checks related to color and contrast.
+accessibility.contrast.header=é¡è²èå°æ¯
+
+# 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=ç¡æ³è¨ç®
+
+# 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=大åæå
+
+# 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=æåå¤§æ¼ 14 é»å ç²é«ï¼æ 18 é»ä»¥ä¸
+
+# 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=符å WCAG AA æ¨æºçç¡éç¤è¼å©æåã%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=符å WCAG AAA æ¨æºçç¡éç¤è¼å©æåã%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=ä¸ç¬¦å WCAG æ¨æºçç¡éç¤è¼å©æåã%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=æé¸ä¸ç¨®ä¸éæçé¡è²ã
+
+# 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=è¼å©åè½æª¢æ¥
+
+# 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=ç¡
+
+# 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=ææåé¡
+
+# 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=å°æ¯
+
+# 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=æåæ¨ç±¤
+
+# 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=éµç¤
+
+# 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=å°æ¯
+
+# 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=å°æ¯è¦å
+
+# 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=éµç¤
+
+# 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=æåæ¨ç±¤
+
+# 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=ä¸ç¬¦å WCAG æ¨æºçç¡éç¤è¼å©æåã
+
+# 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=ä¸ç¬¦å WCAG çéµç¤ç¡éç¤è¼å©æ¨æºã
+
+# 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=ä¸ç¬¦å WCAG æ¨æºçæ¿ä»£æåã
+
+# 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=檢æ¥åé¡:
+
+# LOCALIZATION NOTE (accessibility.tree.filters.prefs): A title text for the
+# preferences button tooltip that contains preferences for accessibility audit.
+accessibility.tree.filters.prefs=管çå好è¨å®
+
+# LOCALIZATION NOTE (accessibility.progress.initializing): A title text for the
+# accessibility panel overlay shown when accessibility audit is starting up.
+accessibility.progress.initializing=æ£å¨åå§åâ¦
+
+# 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=æª¢æ¥ #1 åç¯é»
+
+# LOCALIZATION NOTE (accessibility.progress.finishing): A title text for the
+# accessibility panel overlay shown when accessibility audit is finishing up.
+accessibility.progress.finishing=å³å°å®æâ¦
+
+# 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=èªåå°ç«é¢æ²åå°é¸æçç¯é»
+
+# 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=å°ç«é¢æ²åè³æ¤ç¯é»
+
+# LOCALIZATION NOTE (accessibility.documentation.label): This is the label for
+# the Documentation menu item.
+accessibility.documentation.label=æä»¶â¦
+
+# 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=模æ¬:
+
+# 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=ç´
è²è²ç²
+
+# 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=ç¶ è²è²ç²
+
+# 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=èè²è²ç²
+
+# 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=å°æ¯æå¤±
+
+# 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=å®å
¨è²ç²
+
+# 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=顯示 Tab éµè·³è½é åº
+
+# 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=顯示å
ç´ ç Tab éµè·³è½é åºèç·¨èã
diff --git a/devtools/client/animationinspector.properties b/devtools/client/animationinspector.properties
new file mode 100644
index 00000000000..078805dc252
--- /dev/null
+++ b/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=ç®åçå
ç´ ä¸æ²æåç«ã\nè«æé¸é é¢ä¸çå
¶ä»å
ç´ ã
+
+# LOCALIZATION NOTE (player.animationDurationLabel):
+# This string is displayed in each animation player widget. It is the label
+# displayed before the animation duration.
+player.animationDurationLabel=æçºæé:
+
+# 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=延滯:
+
+# LOCALIZATION NOTE (player.animationEndDelayLabel):
+# This string is displayed in each animation player widget. It is the label
+# displayed before the animation endDelay.
+player.animationEndDelayLabel=çµæå»¶æ»¯:
+
+# 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=ææ¾é度:
+
+# 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=éè¤:
+
+# LOCALIZATION NOTE (player.infiniteIterationCount):
+# In case the animation repeats infinitely, this string is displayed next to the
+# player.animationIterationCountLabel string, instead of a number.
+player.infiniteIterationCount=∞
+
+# LOCALIZATION NOTE (player.infiniteIterationCountText):
+# See player.infiniteIterationCount for a description of what this is.
+# Unlike player.infiniteIterationCount, this string isn't used in HTML, but in
+# a tooltip.
+player.infiniteIterationCountText=â
+
+# LOCALIZATION NOTE (player.animationIterationStartLabel2):
+# This string is displayed in a tooltip that appears when hovering over
+# animations in the timeline. It is the label displayed before the animation
+# iterationStart value.
+# %1$S will be replaced by the original iteration start value
+# %2$S will be replaced by the actual time of iteration start without time unit
+# e.g.
+# If iterationStart of animation is 0.5 and duration is 1 sec, the string will be
+# "Iteration start: 0.5 (0.5s)"
+player.animationIterationStartLabel2=Iteration éå§: %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=總緩å:
+
+# 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=åç«è¨æå½æ¸:
+
+# 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=å¡«å
¥:
+
+# 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=æ¹å:
+
+# 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=æ¤åç«å¨åæå·è¡ç·ä¸å·è¡
+
+# 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=å·²æä½³åææåç«å±¬æ§
+
+# 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=å·²æä½³åæäºåç«å±¬æ§
+
+# 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=æ¢å¾©åç«
+
+# 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=æ«ååç«
+
+# 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=åç«å帶
+
+# 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 â 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 â 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 â æä»¤ç¢¼åç«
+
+# 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=æä»¤ç¢¼åç«
+
+# 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/devtools/client/application.ftl b/devtools/client/application.ftl
new file mode 100644
index 00000000000..213c8098532
--- /dev/null
+++ b/devtools/client/application.ftl
@@ -0,0 +1,147 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### These strings are used inside the Application panel which is available
+### by setting the preference `devtools-application-enabled` to true.
+
+
+### The correct localization of this file might be to keep it in English, or another
+### language commonly spoken among web developers. You want to make that choice consistent
+### across the developer tools. A good criteria is the language in which you'd find the
+### best documentation on web development on the web.
+
+# Header for the list of Service Workers displayed in the application panel for the current page.
+serviceworker-list-header = Service Worker
+
+# 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 = éå about:debugging 檢測ä¾èªå
¶ä»ç¶²åç Service Worker
+
+# Text for the button to unregister a Service Worker. Displayed for active Service Workers.
+serviceworker-worker-unregister = åæ¶è¨»å
+
+# 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 = é¤é¯
+ .title = å
è½å°éä½ä¸ç service worker é²è¡é¤é¯
+
+# Alt text for the image icon displayed inside a debug link for a service worker.
+serviceworker-worker-inspect-icon =
+ .alt = 檢測
+
+# 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 = éå§
+
+# Text displayed for the updated time of the service worker. The