From 0dffceacf7834f56c4a6b9c6df531a151cd1ccac Mon Sep 17 00:00:00 2001
From: Mike Hommey
Date: Tue, 15 Nov 2022 21:20:30 +0000
Subject: [PATCH] Import firefox-esr_102.5.0esr.orig-l10n-zh-CN.tar.bz2
[dgit import orig firefox-esr_102.5.0esr.orig-l10n-zh-CN.tar.bz2]
---
browser/branding/official/brand.dtd | 7 +
browser/branding/official/brand.ftl | 37 +
browser/branding/official/brand.properties | 8 +
browser/browser/aboutCertError.ftl | 127 +
browser/browser/aboutConfig.ftl | 54 +
browser/browser/aboutDialog.ftl | 64 +
browser/browser/aboutLogins.ftl | 343 +++
browser/browser/aboutPocket.ftl | 77 +
browser/browser/aboutPolicies.ftl | 17 +
browser/browser/aboutPrivateBrowsing.ftl | 62 +
browser/browser/aboutRestartRequired.ftl | 10 +
browser/browser/aboutRobots.ftl | 29 +
browser/browser/aboutSessionRestore.ftl | 51 +
browser/browser/aboutTabCrashed.ftl | 22 +
browser/browser/aboutUnloads.ftl | 36 +
browser/browser/accounts.ftl | 17 +
browser/browser/allTabsMenu.ftl | 17 +
browser/browser/appExtensionFields.ftl | 31 +
browser/browser/appMenuNotifications.ftl | 66 +
browser/browser/appmenu.ftl | 252 ++
browser/browser/branding/brandings.ftl | 40 +
browser/browser/branding/sync-brand.ftl | 7 +
browser/browser/browser.ftl | 909 ++++++
browser/browser/browserContext.ftl | 420 +++
browser/browser/browserSets.ftl | 218 ++
browser/browser/colorwaycloset.ftl | 20 +
browser/browser/colorways.ftl | 26 +
browser/browser/customizeMode.ftl | 38 +
.../browser/defaultBrowserNotification.ftl | 23 +
browser/browser/downloads.ftl | 234 ++
browser/browser/editBookmarkOverlay.ftl | 49 +
browser/browser/featureCallout.ftl | 20 +
browser/browser/firefoxView.ftl | 72 +
browser/browser/menubar.ftl | 329 +++
browser/browser/migration.ftl | 160 ++
browser/browser/netError.ftl | 12 +
browser/browser/newInstallPage.ftl | 33 +
browser/browser/newtab/asrouter.ftl | 170 ++
browser/browser/newtab/newtab.ftl | 264 ++
browser/browser/newtab/onboarding.ftl | 371 +++
browser/browser/nsserrors.ftl | 355 +++
browser/browser/pageInfo.ftl | 258 ++
browser/browser/panelUI.ftl | 25 +
browser/browser/panicButton.ftl | 31 +
browser/browser/places.ftl | 239 ++
.../policies/policies-descriptions.ftl | 124 +
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 | 40 +
browser/browser/preferences/connection.ftl | 102 +
browser/browser/preferences/containers.ftl | 94 +
browser/browser/preferences/fonts.ftl | 121 +
browser/browser/preferences/formAutofill.ftl | 117 +
browser/browser/preferences/fxaPairDevice.ftl | 19 +
browser/browser/preferences/languages.ftl | 55 +
.../browser/preferences/moreFromMozilla.ftl | 38 +
browser/browser/preferences/permissions.ftl | 186 ++
browser/browser/preferences/preferences.ftl | 1154 ++++++++
.../browser/preferences/selectBookmark.ftl | 9 +
.../browser/preferences/siteDataSettings.ftl | 67 +
browser/browser/preferences/translation.ftl | 40 +
browser/browser/profile/default-bookmarks.ftl | 53 +
browser/browser/protections.ftl | 190 ++
browser/browser/protectionsPanel.ftl | 112 +
browser/browser/safeMode.ftl | 15 +
browser/browser/safebrowsing/blockedSite.ftl | 30 +
browser/browser/sanitize.ftl | 110 +
browser/browser/screenshots.ftl | 57 +
browser/browser/screenshotsOverlay.ftl | 8 +
browser/browser/search.ftl | 38 +
browser/browser/setDesktopBackground.ftl | 40 +
browser/browser/sidebarMenu.ftl | 18 +
browser/browser/sitePermissions.ftl | 11 +
browser/browser/spotlight.ftl | 22 +
browser/browser/sync.ftl | 33 +
browser/browser/syncedTabs.ftl | 81 +
browser/browser/tabContextMenu.ftl | 112 +
browser/browser/tabbrowser.ftl | 8 +
browser/browser/textRecognition.ftl | 14 +
browser/browser/toolbarContextMenu.ftl | 77 +
browser/browser/touchbar/touchbar.ftl | 38 +
browser/browser/translationNotification.ftl | 74 +
browser/browser/upgradeDialog.ftl | 63 +
browser/browser/webrtcIndicator.ftl | 38 +
browser/chrome/browser/accounts.properties | 111 +
browser/chrome/browser/browser.properties | 1015 +++++++
.../customizableWidgets.properties | 54 +
.../browser/downloads/downloads.properties | 83 +
.../chrome/browser/feeds/subscribe.properties | 10 +
.../places/bookmarkProperties.properties | 24 +
.../chrome/browser/places/places.properties | 79 +
.../safebrowsing/safebrowsing.properties | 6 +
browser/chrome/browser/search.properties | 32 +
.../chrome/browser/shellservice.properties | 16 +
browser/chrome/browser/siteData.properties | 8 +
.../chrome/browser/sitePermissions.properties | 52 +
browser/chrome/browser/syncSetup.properties | 14 +
browser/chrome/browser/tabbrowser.properties | 106 +
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 | 44 +
browser/chrome/overrides/netError.dtd | 159 ++
.../crashreporter/crashreporter-override.ini | 9 +
.../defaultagent/defaultagent_localized.ini | 12 +
browser/defines.inc | 12 +
.../formautofill/formautofill.properties | 230 ++
.../report-site-issue/webcompat.properties | 10 +
browser/firefox-l10n.js | 7 +
browser/installer/custom.properties | 94 +
browser/installer/mui.properties | 61 +
browser/installer/nsisstrings.properties | 50 +
browser/installer/override.properties | 86 +
browser/pdfviewer/chrome.properties | 20 +
browser/pdfviewer/viewer.properties | 281 ++
browser/updater/updater.ini | 10 +
calendar/README.txt | 3 +
calendar/calendar/calendar-context-menus.ftl | 7 +
calendar/calendar/calendar-delete-prompt.ftl | 32 +
calendar/calendar/calendar-editable-item.ftl | 30 +
.../calendar-event-dialog-reminder.ftl | 10 +
.../calendar/calendar-ics-file-dialog.ftl | 43 +
.../calendar/calendar-invitation-panel.ftl | 42 +
.../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 | 192 ++
.../calendar/calendar-alarms.properties | 39 +
...calendar-event-dialog-attendees.properties | 15 +
.../chrome/calendar/calendar-event-dialog.dtd | 428 +++
.../calendar/calendar-event-dialog.properties | 541 ++++
.../calendar/calendar-extract.properties | 294 ++
.../calendar/calendar-invitations-dialog.dtd | 19 +
.../calendar-invitations-dialog.properties | 10 +
.../calendar/calendar-occurrence-prompt.dtd | 7 +
.../calendar-occurrence-prompt.properties | 63 +
calendar/chrome/calendar/calendar.dtd | 407 +++
calendar/chrome/calendar/calendar.properties | 696 +++++
calendar/chrome/calendar/calendarCreation.dtd | 51 +
.../calendar/calendarCreation.properties | 6 +
.../chrome/calendar/categories.properties | 7 +
.../chrome/calendar/dateFormat.properties | 146 +
.../calendar-event-dialog-reminder.dtd | 19 +
calendar/chrome/calendar/global.dtd | 25 +
calendar/chrome/calendar/menuOverlay.dtd | 50 +
calendar/chrome/calendar/migration.dtd | 9 +
calendar/chrome/calendar/migration.properties | 13 +
.../chrome/calendar/provider-uninstall.dtd | 12 +
calendar/chrome/calendar/timezones.properties | 489 ++++
.../chrome/lightning/lightning-toolbar.dtd | 51 +
calendar/chrome/lightning/lightning.dtd | 114 +
.../chrome/lightning/lightning.properties | 201 ++
calendar/lightning-l10n.js | 23 +
chat/accounts.dtd | 41 +
chat/accounts.properties | 9 +
chat/commands.properties | 27 +
chat/contacts.properties | 8 +
chat/conversations.properties | 85 +
chat/facebook.properties | 6 +
chat/imtooltip.properties | 12 +
chat/irc.properties | 209 ++
chat/logger.properties | 7 +
chat/matrix.properties | 263 ++
chat/status.properties | 23 +
chat/twitter.properties | 122 +
chat/xmpp.properties | 281 ++
chat/yahoo.properties | 5 +
devtools/client/aboutdebugging.ftl | 410 +++
devtools/client/accessibility.ftl | 79 +
devtools/client/accessibility.properties | 304 ++
devtools/client/animationinspector.properties | 182 ++
devtools/client/application.ftl | 147 +
devtools/client/boxmodel.properties | 48 +
devtools/client/changes.properties | 64 +
devtools/client/compatibility.ftl | 53 +
devtools/client/components.properties | 37 +
devtools/client/debugger.properties | 988 +++++++
devtools/client/device.properties | 21 +
devtools/client/dom.properties | 19 +
devtools/client/filterwidget.properties | 59 +
devtools/client/font-inspector.properties | 69 +
devtools/client/graphs.properties | 24 +
devtools/client/har.properties | 22 +
devtools/client/inspector.properties | 575 ++++
devtools/client/jit-optimizations.properties | 35 +
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 | 1652 +++++++++++
devtools/client/network-throttling.properties | 27 +
devtools/client/performance.dtd | 129 +
devtools/client/performance.properties | 160 ++
devtools/client/perftools.ftl | 142 +
devtools/client/responsive.properties | 173 ++
devtools/client/shared.properties | 26 +
devtools/client/sourceeditor.dtd | 24 +
devtools/client/sourceeditor.properties | 117 +
devtools/client/startup.properties | 247 ++
devtools/client/storage.dtd | 17 +
devtools/client/storage.ftl | 132 +
devtools/client/storage.properties | 104 +
devtools/client/styleeditor.ftl | 42 +
devtools/client/styleeditor.properties | 73 +
devtools/client/toolbox-options.ftl | 149 +
devtools/client/toolbox.ftl | 44 +
devtools/client/toolbox.properties | 292 ++
devtools/client/tooltips.ftl | 75 +
devtools/client/webconsole.properties | 571 ++++
devtools/shared/accessibility.properties | 142 +
devtools/shared/debugger-paused-reasons.ftl | 87 +
devtools/shared/debugger.properties | 59 +
devtools/shared/eyedropper.properties | 14 +
devtools/shared/highlighters.ftl | 58 +
devtools/shared/screenshot.properties | 138 +
devtools/shared/shared.properties | 6 +
devtools/shared/styleinspector.properties | 245 ++
devtools/startup/key-shortcuts.ftl | 36 +
dom/chrome/accessibility/AccessFu.properties | 357 +++
.../accessibility/mac/accessible.properties | 70 +
.../accessibility/unix/accessible.properties | 21 +
.../accessibility/win/accessible.properties | 21 +
dom/chrome/appstrings.properties | 37 +
dom/chrome/dom/dom.properties | 461 +++
dom/chrome/global-strres.properties | 5 +
dom/chrome/global.dtd | 5 +
dom/chrome/layout/HtmlForm.properties | 43 +
dom/chrome/layout/MediaDocument.properties | 22 +
dom/chrome/layout/css.properties | 46 +
dom/chrome/layout/htmlparser.properties | 145 +
dom/chrome/layout/layout_errors.properties | 55 +
dom/chrome/layout/printing.properties | 56 +
dom/chrome/layout/xmlparser.properties | 48 +
dom/chrome/layout/xul.properties | 5 +
dom/chrome/mathml/mathml.properties | 15 +
dom/chrome/netError.dtd | 101 +
dom/chrome/netErrorApp.dtd | 34 +
dom/chrome/nsWebBrowserPersist.properties | 17 +
dom/chrome/security/caps.properties | 9 +
dom/chrome/security/csp.properties | 119 +
dom/chrome/security/security.properties | 166 ++
dom/chrome/svg/svg.properties | 5 +
dom/chrome/xml/prettyprint.dtd | 5 +
dom/chrome/xslt/xslt.properties | 39 +
dom/dom/media.ftl | 5 +
editor/ui/chrome/region/region.properties | 8 +
mail/all-l10n.js | 7 +
mail/branding/thunderbird/brand.dtd | 12 +
mail/branding/thunderbird/brand.ftl | 21 +
mail/branding/thunderbird/brand.properties | 7 +
mail/browser/appExtensionFields.ftl | 16 +
mail/browser/branding/brandings.ftl | 18 +
mail/chrome/communicator/utilityOverlay.dtd | 43 +
mail/chrome/messenger-mapi/mapi.properties | 36 +
.../chrome/messenger-newsblog/am-newsblog.dtd | 14 +
.../messenger-newsblog/feed-subscriptions.dtd | 55 +
.../messenger-newsblog/newsblog.properties | 93 +
.../chrome/messenger-region/region.properties | 29 +
.../messenger-smime/certFetchingStatus.dtd | 10 +
.../messenger-smime/msgCompSMIMEOverlay.dtd | 16 +
.../messenger-smime/msgCompSecurityInfo.dtd | 18 +
.../msgCompSecurityInfo.properties | 13 +
.../msgReadSMIMEOverlay.properties | 11 +
.../messenger-smime/msgReadSecurityInfo.dtd | 17 +
.../msgSecurityInfo.properties | 36 +
mail/chrome/messenger/AccountManager.dtd | 25 +
mail/chrome/messenger/AccountWizard.dtd | 55 +
mail/chrome/messenger/CustomHeaders.dtd | 11 +
mail/chrome/messenger/FilterEditor.dtd | 67 +
mail/chrome/messenger/FilterListDialog.dtd | 43 +
mail/chrome/messenger/SearchDialog.dtd | 38 +
mail/chrome/messenger/aboutDialog.dtd | 116 +
mail/chrome/messenger/aboutDownloads.dtd | 23 +
mail/chrome/messenger/aboutRights.properties | 6 +
.../messenger/aboutSupportMail.properties | 15 +
.../messenger/accountCreationModel.properties | 21 +
.../messenger/accountCreationUtil.properties | 34 +
mail/chrome/messenger/activity.dtd | 19 +
mail/chrome/messenger/activity.properties | 99 +
mail/chrome/messenger/addbuddy.dtd | 7 +
mail/chrome/messenger/addons.properties | 256 ++
.../addressbook/abAddressBookNameDialog.dtd | 7 +
mail/chrome/messenger/addressbook/abCard.dtd | 154 +
.../messenger/addressbook/abContactsPanel.dtd | 49 +
.../addressbook/abMailListDialog.dtd | 22 +
.../messenger/addressbook/abMainWindow.dtd | 220 ++
.../messenger/addressbook/abNewCardDialog.dtd | 7 +
.../messenger/addressbook/abResultsPane.dtd | 38 +
.../addressbook/addressBook.properties | 179 ++
.../addressbook/ldapAutoCompErrs.properties | 109 +
.../addressbook/pref-directory-add.dtd | 45 +
.../messenger/addressbook/pref-directory.dtd | 17 +
.../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 | 50 +
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 | 16 +
mail/chrome/messenger/am-junk.dtd | 31 +
mail/chrome/messenger/am-main.dtd | 49 +
mail/chrome/messenger/am-mdn.dtd | 33 +
mail/chrome/messenger/am-mdn.properties | 6 +
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 | 6 +
mail/chrome/messenger/am-smime.dtd | 47 +
mail/chrome/messenger/am-smime.properties | 39 +
mail/chrome/messenger/appUpdate.properties | 40 +
.../messenger/appleMailImportMsgs.properties | 20 +
mail/chrome/messenger/baseMenuOverlay.dtd | 33 +
.../messenger/beckyImportMsgs.properties | 19 +
.../chrome/messenger/charsetTitles.properties | 84 +
mail/chrome/messenger/chat.dtd | 44 +
mail/chrome/messenger/chat.properties | 110 +
mail/chrome/messenger/configEditorOverlay.dtd | 5 +
mail/chrome/messenger/converterDialog.dtd | 11 +
.../messenger/converterDialog.properties | 41 +
mail/chrome/messenger/custom.properties | 5 +
mail/chrome/messenger/customizeToolbar.dtd | 18 +
.../messenger/customizeToolbar.properties | 11 +
mail/chrome/messenger/devtools/dbgserver.dtd | 8 +
.../messenger/devtools/dbgserver.properties | 15 +
mail/chrome/messenger/downloadheaders.dtd | 27 +
mail/chrome/messenger/editContactOverlay.dtd | 20 +
.../messenger/editContactOverlay.properties | 14 +
mail/chrome/messenger/fieldMapImport.dtd | 17 +
mail/chrome/messenger/filter.properties | 109 +
mail/chrome/messenger/folderProps.dtd | 70 +
.../chrome/messenger/folderWidgets.properties | 12 +
mail/chrome/messenger/folderpane.dtd | 7 +
mail/chrome/messenger/gloda.properties | 175 ++
.../chrome/messenger/glodaComplete.properties | 19 +
mail/chrome/messenger/glodaFacetView.dtd | 29 +
.../messenger/glodaFacetView.properties | 171 ++
mail/chrome/messenger/imAccountWizard.dtd | 32 +
mail/chrome/messenger/imAccounts.properties | 63 +
mail/chrome/messenger/imapMsgs.properties | 266 ++
mail/chrome/messenger/importDialog.dtd | 56 +
mail/chrome/messenger/importMsgs.properties | 304 ++
mail/chrome/messenger/joinChat.dtd | 10 +
mail/chrome/messenger/junkLog.dtd | 10 +
mail/chrome/messenger/localMsgs.properties | 139 +
mail/chrome/messenger/mailEditorOverlay.dtd | 6 +
mail/chrome/messenger/mailOverlay.dtd | 11 +
mail/chrome/messenger/mailViewList.dtd | 9 +
mail/chrome/messenger/mailViewSetup.dtd | 12 +
mail/chrome/messenger/mailviews.properties | 13 +
mail/chrome/messenger/markByDate.dtd | 9 +
mail/chrome/messenger/messenger.dtd | 946 +++++++
mail/chrome/messenger/messenger.properties | 767 +++++
.../messengercompose/EdAdvancedEdit.dtd | 18 +
.../messengercompose/EdColorPicker.dtd | 22 +
.../messengercompose/EdConvertToTable.dtd | 15 +
.../messengercompose/EdDialogOverlay.dtd | 17 +
.../EdNamedAnchorProperties.dtd | 9 +
.../EditorColorProperties.dtd | 29 +
.../EditorHLineProperties.dtd | 27 +
.../EditorImageProperties.dtd | 79 +
.../messengercompose/EditorInsertChars.dtd | 19 +
.../messengercompose/EditorInsertMath.dtd | 21 +
.../messengercompose/EditorInsertSource.dtd | 15 +
.../messengercompose/EditorInsertTOC.dtd | 16 +
.../messengercompose/EditorInsertTable.dtd | 18 +
.../messengercompose/EditorLinkProperties.dtd | 6 +
.../messengercompose/EditorListProperties.dtd | 20 +
.../EditorPersonalDictionary.dtd | 18 +
.../messengercompose/EditorReplace.dtd | 29 +
.../messengercompose/EditorSpellCheck.dtd | 38 +
.../EditorTableProperties.dtd | 75 +
.../messengercompose/composeMsgs.properties | 461 +++
.../messengercompose/editor.properties | 208 ++
.../messengercompose/editorOverlay.dtd | 304 ++
.../mailComposeEditorOverlay.dtd | 9 +
.../messengercompose/messengercompose.dtd | 306 ++
.../messengercompose/sendProgress.dtd | 8 +
.../messengercompose/sendProgress.properties | 21 +
mail/chrome/messenger/migration/migration.dtd | 30 +
.../messenger/migration/migration.properties | 32 +
mail/chrome/messenger/mime.properties | 154 +
mail/chrome/messenger/mimeheader.properties | 35 +
.../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 | 8 +
.../messenger/multimessageview.properties | 66 +
mail/chrome/messenger/newFolderDialog.dtd | 16 +
mail/chrome/messenger/news.properties | 56 +
mail/chrome/messenger/newsError.dtd | 31 +
mail/chrome/messenger/offline.properties | 28 +
.../messenger/offlineStartup.properties | 8 +
.../messenger/outlookImportMsgs.properties | 82 +
mail/chrome/messenger/pgpmime.properties | 10 +
.../preferences/applicationManager.properties | 13 +
.../preferences/applications.properties | 13 +
.../preferences/messagestyle.properties | 13 +
.../preferences/preferences.properties | 100 +
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 | 9 +
mail/chrome/messenger/sanitize.dtd | 36 +
.../messenger/seamonkeyImportMsgs.properties | 18 +
.../messenger/search-attributes.properties | 45 +
.../messenger/search-operators.properties | 31 +
mail/chrome/messenger/search.properties | 27 +
mail/chrome/messenger/searchTermOverlay.dtd | 19 +
.../messenger/shutdownWindow.properties | 10 +
mail/chrome/messenger/smime.properties | 13 +
mail/chrome/messenger/smtpEditOverlay.dtd | 24 +
mail/chrome/messenger/subscribe.dtd | 22 +
mail/chrome/messenger/subscribe.properties | 13 +
mail/chrome/messenger/tabmail.dtd | 9 +
mail/chrome/messenger/taskbar.properties | 8 +
mail/chrome/messenger/telemetry.properties | 13 +
.../chrome/messenger/templateUtils.properties | 7 +
.../messenger/textImportMsgs.properties | 53 +
.../messenger/vCardImportMsgs.properties | 26 +
mail/chrome/messenger/viewLog.dtd | 12 +
mail/chrome/messenger/viewSource.dtd | 86 +
mail/chrome/messenger/viewSource.properties | 17 +
mail/chrome/messenger/viewZoomOverlay.dtd | 32 +
.../messenger/virtualFolderListDialog.dtd | 10 +
.../messenger/virtualFolderProperties.dtd | 22 +
mail/chrome/messenger/wmImportMsgs.properties | 76 +
mail/chrome/mozldap/ldap.properties | 272 ++
mail/chrome/overrides/netError.dtd | 141 +
mail/chrome/overrides/profileDowngrade.dtd | 20 +
mail/defines.inc | 11 +
mail/installer/custom.properties | 86 +
mail/installer/mui.properties | 60 +
mail/installer/override.properties | 86 +
mail/messenger/aboutAddonsExtra.ftl | 12 +
mail/messenger/aboutDialog.ftl | 5 +
mail/messenger/aboutImport.ftl | 156 ++
mail/messenger/aboutProfilesExtra.ftl | 5 +
mail/messenger/aboutRights.ftl | 30 +
mail/messenger/aboutSupportCalendar.ftl | 33 +
mail/messenger/aboutSupportChat.ftl | 11 +
mail/messenger/aboutSupportMail.ftl | 20 +
mail/messenger/accountCentral.ftl | 65 +
mail/messenger/accountManager.ftl | 13 +
mail/messenger/accountProvisioner.ftl | 77 +
mail/messenger/accountcreation/accountHub.ftl | 5 +
.../accountcreation/accountSetup.ftl | 427 +++
.../messenger/addressbook/abCardDAVDialog.ftl | 26 +
.../addressbook/abCardDAVProperties.ftl | 33 +
.../addressbook/aboutAddressBook.ftl | 203 ++
mail/messenger/addressbook/fieldMapImport.ftl | 12 +
mail/messenger/addressbook/vcard.ftl | 104 +
mail/messenger/appmenu.ftl | 157 ++
mail/messenger/chat-verifySession.ftl | 17 +
mail/messenger/chat.ftl | 47 +
mail/messenger/compactFoldersDialog.ftl | 24 +
mail/messenger/exportDialog.ftl | 22 +
mail/messenger/importDialog.ftl | 30 +
mail/messenger/mailWidgets.ftl | 10 +
mail/messenger/menubar.ftl | 112 +
mail/messenger/messageheader/headerFields.ftl | 36 +
mail/messenger/messenger.ftl | 268 ++
.../messengercompose/messengercompose.ftl | 366 +++
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/keyAssistant.ftl | 58 +
mail/messenger/openpgp/keyWizard.ftl | 124 +
mail/messenger/openpgp/msgReadStatus.ftl | 76 +
mail/messenger/openpgp/oneRecipientStatus.ftl | 48 +
mail/messenger/openpgp/openpgp-frontend.ftl | 55 +
mail/messenger/openpgp/openpgp.ftl | 562 ++++
mail/messenger/otr/add-finger.ftl | 16 +
mail/messenger/otr/am-im-otr.ftl | 23 +
mail/messenger/otr/auth.ftl | 60 +
mail/messenger/otr/chat.ftl | 19 +
mail/messenger/otr/finger-sync.ftl | 12 +
mail/messenger/otr/finger.ftl | 20 +
mail/messenger/otr/otr.ftl | 97 +
mail/messenger/otr/otrUI.ftl | 87 +
mail/messenger/policies/aboutPolicies.ftl | 17 +
.../policies/policies-descriptions.ftl | 157 ++
mail/messenger/preferences/am-copies.ftl | 5 +
mail/messenger/preferences/am-im.ftl | 23 +
.../preferences/application-manager.ftl | 11 +
.../preferences/attachment-reminder.ftl | 26 +
mail/messenger/preferences/colors.ftl | 52 +
mail/messenger/preferences/connection.ftl | 120 +
mail/messenger/preferences/cookies.ftl | 55 +
mail/messenger/preferences/dock-options.ftl | 30 +
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 | 707 +++++
mail/messenger/preferences/receipts.ftl | 51 +
mail/messenger/preferences/sendoptions.ftl | 50 +
.../preferences/system-integration.ftl | 46 +
mail/messenger/shortcuts.ftl | 96 +
mail/messenger/troubleshootMode.ftl | 39 +
mail/messenger/viewSource.ftl | 16 +
mail/updater/updater.ini | 7 +
minimo/chrome/contents.rdf | 28 +
mobile/android/chrome/browser.properties | 118 +
mobile/android/chrome/config.dtd | 21 +
mobile/android/chrome/config.properties | 9 +
mobile/android/chrome/passwordmgr.properties | 20 +
mobile/android/defines.inc | 12 +
mobile/chrome/region.properties | 22 +
mobile/overrides/appstrings.properties | 40 +
mobile/overrides/netError.dtd | 169 ++
netwerk/necko.properties | 92 +
other-licenses/branding/sunbird/brand.dtd | 6 +
.../branding/sunbird/brand.properties | 20 +
.../chrome/pipnss/nsserrors.properties | 331 +++
.../manager/chrome/pipnss/pipnss.properties | 123 +
.../manager/chrome/pippki/pippki.properties | 76 +
.../security/certificates/certManager.ftl | 230 ++
.../security/certificates/deviceManager.ftl | 133 +
security/manager/security/pippki/pippki.ftl | 83 +
services/sync/sync.properties | 11 +
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 | 870 ++++++
suite/chatzilla/chrome/chatzillaOverlay.dtd | 7 +
suite/chatzilla/chrome/config.dtd | 40 +
suite/chatzilla/chrome/install-plugin.dtd | 17 +
suite/chatzilla/chrome/networks.dtd | 58 +
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 | 30 +
suite/chrome/browser/metadata.dtd | 31 +
suite/chrome/browser/metadata.properties | 19 +
suite/chrome/browser/navigator.dtd | 87 +
suite/chrome/browser/navigator.properties | 79 +
suite/chrome/browser/navigatorOverlay.dtd | 157 ++
suite/chrome/browser/pageInfo.dtd | 111 +
suite/chrome/browser/pageInfo.properties | 78 +
suite/chrome/browser/region.properties | 26 +
suite/chrome/browser/tabbrowser.dtd | 27 +
suite/chrome/browser/tabbrowser.properties | 33 +
suite/chrome/browser/taskbar.properties | 21 +
suite/chrome/browser/webDeveloper.dtd | 72 +
suite/chrome/common/about.dtd | 70 +
suite/chrome/common/aboutPrivateBrowsing.dtd | 26 +
suite/chrome/common/aboutSessionRestore.dtd | 22 +
suite/chrome/common/aboutSyncTabs.dtd | 22 +
suite/chrome/common/askViewZoom.dtd | 6 +
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 | 15 +
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 | 14 +
.../common/downloads/downloadmanager.dtd | 96 +
.../downloads/downloadmanager.properties | 147 +
.../common/downloads/progressDialog.dtd | 20 +
suite/chrome/common/feeds/subscribe.dtd | 8 +
.../chrome/common/feeds/subscribe.properties | 52 +
suite/chrome/common/gopherAddon.dtd | 9 +
.../chrome/common/help/cert_dialog_help.xhtml | 491 ++++
suite/chrome/common/help/certs_help.xhtml | 423 +++
.../chrome/common/help/certs_prefs_help.xhtml | 88 +
suite/chrome/common/help/composer_help.xhtml | 2494 +++++++++++++++++
.../common/help/cs_nav_prefs_advanced.xhtml | 608 ++++
.../common/help/cs_nav_prefs_appearance.xhtml | 257 ++
.../common/help/cs_nav_prefs_navigator.xhtml | 678 +++++
.../common/help/cs_priv_prefs_popup.xhtml | 149 +
suite/chrome/common/help/customize_help.xhtml | 1403 ++++++++++
.../chrome/common/help/developer_tools.xhtml | 79 +
suite/chrome/common/help/forieusers.xhtml | 149 +
suite/chrome/common/help/glossary.xhtml | 792 ++++++
suite/chrome/common/help/help-glossary.rdf | 144 +
suite/chrome/common/help/help-index1.rdf | 2281 +++++++++++++++
suite/chrome/common/help/help-indexAZ.rdf | 41 +
suite/chrome/common/help/help-win.rdf | 119 +
suite/chrome/common/help/helpFileLayout.css | 63 +
suite/chrome/common/help/help_help.xhtml | 118 +
.../common/help/images/anchor-in-doc.gif | Bin 0 -> 126 bytes
suite/chrome/common/help/images/broken.gif | Bin 0 -> 203 bytes
suite/chrome/common/help/images/bullets.gif | Bin 0 -> 154 bytes
suite/chrome/common/help/images/columns.png | Bin 0 -> 139 bytes
.../common/help/images/composer_icon.png | Bin 0 -> 2494 bytes
suite/chrome/common/help/images/help_nav.png | Bin 0 -> 2885 bytes
.../chrome/common/help/images/help_print.gif | Bin 0 -> 723 bytes
suite/chrome/common/help/images/image.gif | Bin 0 -> 489 bytes
suite/chrome/common/help/images/link.gif | Bin 0 -> 419 bytes
.../chrome/common/help/images/locationbar.png | Bin 0 -> 1673 bytes
suite/chrome/common/help/images/mail_flag.png | Bin 0 -> 924 bytes
.../common/help/images/mail_flag_column.png | Bin 0 -> 945 bytes
.../common/help/images/mail_junk_column.png | Bin 0 -> 571 bytes
.../common/help/images/mail_newmail_alert.png | Bin 0 -> 1342 bytes
.../help/images/mail_newmail_trayicon.png | Bin 0 -> 239 bytes
.../common/help/images/mail_quicksearch.png | Bin 0 -> 531 bytes
suite/chrome/common/help/images/mail_read.png | Bin 0 -> 110 bytes
.../common/help/images/mail_read_column.png | Bin 0 -> 185 bytes
.../chrome/common/help/images/mail_unread.png | Bin 0 -> 144 bytes
suite/chrome/common/help/images/numbers.gif | Bin 0 -> 181 bytes
suite/chrome/common/help/images/offline.png | Bin 0 -> 184 bytes
suite/chrome/common/help/images/online.png | Bin 0 -> 180 bytes
.../chrome/common/help/images/personalbar.png | Bin 0 -> 5037 bytes
suite/chrome/common/help/images/reload.gif | Bin 0 -> 2860 bytes
suite/chrome/common/help/images/search.png | Bin 0 -> 2574 bytes
.../help/images/search_personal_toolbar.gif | Bin 0 -> 776 bytes
suite/chrome/common/help/images/sidebar.png | Bin 0 -> 4185 bytes
.../help/images/tabbed_browsing_bar.png | Bin 0 -> 2589 bytes
suite/chrome/common/help/images/table.gif | Bin 0 -> 512 bytes
suite/chrome/common/help/images/task_mail.png | Bin 0 -> 545 bytes
.../common/help/images/task_newmail.png | Bin 0 -> 569 bytes
.../chrome/common/help/images/taskbar-ab.png | Bin 0 -> 2357 bytes
suite/chrome/common/help/images/taskbar.png | Bin 0 -> 616 bytes
.../common/help/images/threadbutton.png | Bin 0 -> 589 bytes
suite/chrome/common/help/images/web-links.png | Bin 0 -> 226 bytes
.../help/mailnews_account_settings.xhtml | 1122 ++++++++
.../common/help/mailnews_addressbooks.xhtml | 572 ++++
.../help/mailnews_blogs_and_feeds.xhtml | 388 +++
.../help/mailnews_getting_started.xhtml | 391 +++
.../common/help/mailnews_newsgroups.xhtml | 203 ++
.../chrome/common/help/mailnews_offline.xhtml | 504 ++++
.../common/help/mailnews_organizing.xhtml | 838 ++++++
.../common/help/mailnews_preferences.xhtml | 655 +++++
.../common/help/mailnews_security.xhtml | 459 +++
.../common/help/mailnews_using_mail.xhtml | 1185 ++++++++
suite/chrome/common/help/nav_help.xhtml | 1501 ++++++++++
suite/chrome/common/help/page_info_help.xhtml | 266 ++
suite/chrome/common/help/passwords_help.xhtml | 448 +++
suite/chrome/common/help/privacy_help.xhtml | 224 ++
suite/chrome/common/help/privsec_help.xhtml | 49 +
suite/chrome/common/help/profiles_help.xhtml | 113 +
suite/chrome/common/help/shortcuts.xhtml | 524 ++++
.../common/help/shortcuts_composer.xhtml | 184 ++
.../common/help/shortcuts_mailnews.xhtml | 359 +++
.../common/help/shortcuts_navigator.xhtml | 535 ++++
suite/chrome/common/help/ssl_help.xhtml | 129 +
suite/chrome/common/help/suite-toc.rdf | 1174 ++++++++
suite/chrome/common/help/suitehelp.rdf | 58 +
.../chrome/common/help/using_certs_help.xhtml | 731 +++++
.../chrome/common/help/using_priv_help.xhtml | 796 ++++++
suite/chrome/common/help/welcome_help.xhtml | 96 +
suite/chrome/common/helpviewer/help.dtd | 56 +
.../chrome/common/helpviewer/help.properties | 5 +
.../common/helpviewer/help/help-toc.rdf | 29 +
.../common/helpviewer/help/welcome.xhtml | 61 +
suite/chrome/common/migration/migration.dtd | 28 +
.../common/migration/migration.properties | 52 +
suite/chrome/common/notification.dtd | 15 +
suite/chrome/common/notification.properties | 162 ++
suite/chrome/common/openLocation.dtd | 22 +
suite/chrome/common/openLocation.properties | 11 +
.../common/permissions/cookieViewer.dtd | 46 +
.../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 | 8 +
.../pref/pref-applicationManager.properties | 10 +
.../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 | 23 +
suite/chrome/common/pref/pref-colors.dtd | 35 +
suite/chrome/common/pref/pref-content.dtd | 40 +
suite/chrome/common/pref/pref-cookies.dtd | 40 +
suite/chrome/common/pref/pref-debugging.dtd | 40 +
suite/chrome/common/pref/pref-download.dtd | 31 +
.../chrome/common/pref/pref-findasyoutype.dtd | 21 +
suite/chrome/common/pref/pref-fonts.dtd | 79 +
suite/chrome/common/pref/pref-history.dtd | 25 +
suite/chrome/common/pref/pref-http.dtd | 24 +
suite/chrome/common/pref/pref-images.dtd | 22 +
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 | 29 +
suite/chrome/common/pref/pref-locationbar.dtd | 42 +
suite/chrome/common/pref/pref-masterpass.dtd | 13 +
suite/chrome/common/pref/pref-media.dtd | 23 +
suite/chrome/common/pref/pref-mousewheel.dtd | 36 +
suite/chrome/common/pref/pref-navigator.dtd | 49 +
suite/chrome/common/pref/pref-offlineapps.dtd | 24 +
suite/chrome/common/pref/pref-passwords.dtd | 13 +
suite/chrome/common/pref/pref-popups.dtd | 35 +
suite/chrome/common/pref/pref-privatedata.dtd | 34 +
.../common/pref/pref-proxies-advanced.dtd | 32 +
suite/chrome/common/pref/pref-proxies.dtd | 32 +
suite/chrome/common/pref/pref-scripts.dtd | 27 +
suite/chrome/common/pref/pref-search.dtd | 23 +
suite/chrome/common/pref/pref-security.dtd | 42 +
suite/chrome/common/pref/pref-smartupdate.dtd | 31 +
suite/chrome/common/pref/pref-spelling.dtd | 20 +
suite/chrome/common/pref/pref-ssl.dtd | 44 +
suite/chrome/common/pref/pref-sync.dtd | 56 +
suite/chrome/common/pref/pref-tabs.dtd | 35 +
suite/chrome/common/pref/preferences.dtd | 58 +
suite/chrome/common/pref/prefutilities.dtd | 43 +
.../common/pref/prefutilities.properties | 45 +
suite/chrome/common/printPreview.dtd | 39 +
.../common/profile/profileSelection.dtd | 35 +
.../profile/profileSelection.properties | 22 +
suite/chrome/common/quitDialog.properties | 29 +
suite/chrome/common/region.properties | 7 +
suite/chrome/common/safeBrowsing.dtd | 33 +
suite/chrome/common/safeMode.dtd | 27 +
suite/chrome/common/sanitize.dtd | 68 +
suite/chrome/common/sanitize.properties | 9 +
suite/chrome/common/search/engineManager.dtd | 29 +
.../common/search/engineManager.properties | 9 +
suite/chrome/common/search/search-panel.dtd | 8 +
suite/chrome/common/search/search.properties | 6 +
suite/chrome/common/search/searchbar.dtd | 6 +
suite/chrome/common/setDesktopBackground.dtd | 19 +
suite/chrome/common/shellservice.properties | 7 +
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 | 44 +
suite/chrome/common/sync/syncBrand.dtd | 6 +
.../common/sync/syncGenericChange.properties | 37 +
suite/chrome/common/sync/syncKey.dtd | 18 +
suite/chrome/common/sync/syncQuota.dtd | 8 +
suite/chrome/common/sync/syncQuota.properties | 42 +
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 | 17 +
suite/chrome/common/utilityOverlay.dtd | 206 ++
suite/chrome/common/utilityOverlay.properties | 35 +
suite/chrome/common/viewApplyThemeOverlay.dtd | 10 +
.../common/viewApplyThemeOverlay.properties | 8 +
suite/chrome/common/viewZoomOverlay.dtd | 18 +
.../chrome/common/viewZoomOverlay.properties | 32 +
.../chrome/editor/dialogs/EdAdvancedEdit.dtd | 18 +
suite/chrome/editor/dialogs/EdColorPicker.dtd | 22 +
.../editor/dialogs/EdConvertToTable.dtd | 15 +
.../chrome/editor/dialogs/EdDialogOverlay.dtd | 17 +
.../dialogs/EdNamedAnchorProperties.dtd | 9 +
suite/chrome/editor/dialogs/EditConflict.dtd | 10 +
.../editor/dialogs/EditorButtonProperties.dtd | 27 +
.../editor/dialogs/EditorColorProperties.dtd | 29 +
.../dialogs/EditorFieldSetProperties.dtd | 20 +
.../editor/dialogs/EditorFormProperties.dtd | 21 +
.../editor/dialogs/EditorHLineProperties.dtd | 27 +
.../editor/dialogs/EditorImageProperties.dtd | 79 +
.../editor/dialogs/EditorInputProperties.dtd | 50 +
.../editor/dialogs/EditorInsertChars.dtd | 19 +
.../editor/dialogs/EditorInsertMath.dtd | 21 +
.../editor/dialogs/EditorInsertSource.dtd | 15 +
.../chrome/editor/dialogs/EditorInsertTOC.dtd | 16 +
.../editor/dialogs/EditorInsertTable.dtd | 18 +
.../editor/dialogs/EditorLabelProperties.dtd | 18 +
.../editor/dialogs/EditorLinkProperties.dtd | 6 +
.../editor/dialogs/EditorListProperties.dtd | 20 +
.../editor/dialogs/EditorPageProperties.dtd | 17 +
.../dialogs/EditorPersonalDictionary.dtd | 20 +
suite/chrome/editor/dialogs/EditorPublish.dtd | 65 +
.../editor/dialogs/EditorPublishProgress.dtd | 16 +
suite/chrome/editor/dialogs/EditorReplace.dtd | 29 +
.../editor/dialogs/EditorSaveAsCharset.dtd | 17 +
.../editor/dialogs/EditorSelectProperties.dtd | 48 +
.../editor/dialogs/EditorSnapToGrid.dtd | 15 +
.../editor/dialogs/EditorSpellCheck.dtd | 38 +
.../editor/dialogs/EditorTableProperties.dtd | 75 +
.../dialogs/EditorTextAreaProperties.dtd | 33 +
suite/chrome/editor/editingOverlay.dtd | 62 +
suite/chrome/editor/editor.dtd | 69 +
suite/chrome/editor/editor.properties | 208 ++
suite/chrome/editor/editorOverlay.dtd | 368 +++
suite/chrome/editor/editorSmileyOverlay.dtd | 58 +
.../editor/prefs/editorPrefsOverlay.dtd | 12 +
suite/chrome/editor/prefs/pref-composer.dtd | 31 +
suite/chrome/editor/prefs/pref-editing.dtd | 32 +
suite/chrome/mailnews/CustomHeaders.dtd | 11 +
suite/chrome/mailnews/FilterEditor.dtd | 68 +
suite/chrome/mailnews/FilterListDialog.dtd | 36 +
suite/chrome/mailnews/SearchDialog.dtd | 38 +
.../addressbook/abAddressBookNameDialog.dtd | 5 +
.../mailnews/addressbook/abCardOverlay.dtd | 157 ++
.../mailnews/addressbook/abMailListDialog.dtd | 19 +
.../mailnews/addressbook/abMainWindow.dtd | 122 +
.../mailnews/addressbook/abNewCardDialog.dtd | 7 +
.../addressbook/abResultsPaneOverlay.dtd | 52 +
.../addressbook/abSelectAddressesDialog.dtd | 31 +
.../addressbook/addressBook.properties | 264 ++
.../addressbook/ldapAutoCompErrs.properties | 104 +
.../mailnews/appleMailImportMsgs.properties | 20 +
.../mailnews/beckyImportMsgs.properties | 19 +
.../chrome/mailnews/charsetTitles.properties | 80 +
.../compose/addressingWidgetOverlay.dtd | 12 +
.../chrome/mailnews/compose/askSendFormat.dtd | 20 +
.../mailnews/compose/askSendFormat.properties | 8 +
.../mailnews/compose/composeMsgs.properties | 318 +++
.../compose/mailComposeEditorOverlay.dtd | 9 +
.../mailnews/compose/messengercompose.dtd | 137 +
.../chrome/mailnews/compose/sendProgress.dtd | 8 +
.../mailnews/compose/sendProgress.properties | 21 +
suite/chrome/mailnews/custom.properties | 5 +
suite/chrome/mailnews/downloadheaders.dtd | 27 +
suite/chrome/mailnews/fieldMapImport.dtd | 20 +
suite/chrome/mailnews/filter.properties | 102 +
suite/chrome/mailnews/folderProps.dtd | 70 +
.../chrome/mailnews/folderWidgets.properties | 12 +
suite/chrome/mailnews/folderpane.dtd | 11 +
suite/chrome/mailnews/gloda.properties | 104 +
suite/chrome/mailnews/imapMsgs.properties | 269 ++
suite/chrome/mailnews/importDialog.dtd | 43 +
suite/chrome/mailnews/importMsgs.properties | 306 ++
suite/chrome/mailnews/junkLog.dtd | 10 +
suite/chrome/mailnews/junkMailInfo.dtd | 11 +
suite/chrome/mailnews/localMsgs.properties | 136 +
suite/chrome/mailnews/mailEditorOverlay.dtd | 7 +
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 | 13 +
suite/chrome/mailnews/mapi/mapi.properties | 13 +
suite/chrome/mailnews/markByDate.dtd | 9 +
suite/chrome/mailnews/messenger.dtd | 547 ++++
suite/chrome/mailnews/messenger.properties | 516 ++++
suite/chrome/mailnews/mime.properties | 156 ++
suite/chrome/mailnews/mimeheader.properties | 39 +
suite/chrome/mailnews/msgAccountCentral.dtd | 24 +
suite/chrome/mailnews/msgHdrViewOverlay.dtd | 43 +
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 | 16 +
suite/chrome/mailnews/news.properties | 56 +
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 | 51 +
.../chrome/mailnews/offlineStartup.properties | 8 +
.../mailnews/outlookImportMsgs.properties | 87 +
suite/chrome/mailnews/pgpmime.properties | 13 +
suite/chrome/mailnews/pref/AccountManager.dtd | 26 +
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 | 31 +
suite/chrome/mailnews/pref/am-main.dtd | 46 +
suite/chrome/mailnews/pref/am-mdn.dtd | 33 +
suite/chrome/mailnews/pref/am-mdn.properties | 6 +
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 | 6 +
.../chrome/mailnews/pref/mailPrefsOverlay.dtd | 23 +
.../chrome/mailnews/pref/pref-addressing.dtd | 22 +
.../mailnews/pref/pref-character_encoding.dtd | 17 +
.../mailnews/pref/pref-composing_messages.dtd | 56 +
.../mailnews/pref/pref-directory-add.dtd | 45 +
suite/chrome/mailnews/pref/pref-directory.dtd | 17 +
.../chrome/mailnews/pref/pref-formatting.dtd | 42 +
suite/chrome/mailnews/pref/pref-junk.dtd | 40 +
suite/chrome/mailnews/pref/pref-mailnews.dtd | 33 +
.../mailnews/pref/pref-notifications.dtd | 46 +
suite/chrome/mailnews/pref/pref-offline.dtd | 38 +
suite/chrome/mailnews/pref/pref-receipts.dtd | 28 +
suite/chrome/mailnews/pref/pref-tags.dtd | 20 +
.../mailnews/pref/pref-viewing_messages.dtd | 47 +
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 | 22 +
suite/chrome/mailnews/renameFolderDialog.dtd | 9 +
.../mailnews/search-attributes.properties | 45 +
.../mailnews/search-operators.properties | 31 +
suite/chrome/mailnews/search.properties | 28 +
suite/chrome/mailnews/searchTermOverlay.dtd | 18 +
.../chrome/mailnews/shutdownWindow.properties | 10 +
suite/chrome/mailnews/smime.properties | 13 +
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 | 6 +
.../mailnews/smime/msgCompSecurityInfo.dtd | 18 +
.../smime/msgCompSecurityInfo.properties | 13 +
.../mailnews/smime/msgReadSMIMEOverlay.dtd | 9 +
.../smime/msgReadSMIMEOverlay.properties | 11 +
.../mailnews/smime/msgReadSecurityInfo.dtd | 15 +
.../mailnews/smime/msgSecurityInfo.properties | 44 +
suite/chrome/mailnews/start.dtd | 25 +
suite/chrome/mailnews/subscribe.dtd | 22 +
suite/chrome/mailnews/subscribe.properties | 14 +
suite/chrome/mailnews/tabmail.properties | 13 +
.../chrome/mailnews/textImportMsgs.properties | 56 +
suite/chrome/mailnews/threadpane.dtd | 45 +
.../mailnews/vCardImportMsgs.properties | 26 +
suite/chrome/mailnews/viewLog.dtd | 12 +
.../mailnews/virtualFolderListDialog.dtd | 10 +
.../mailnews/virtualFolderProperties.dtd | 22 +
suite/chrome/mailnews/wmImportMsgs.properties | 76 +
suite/chrome/mozldap/ldap.properties | 261 ++
.../crashreporter/crashreporter-override.ini | 8 +
suite/defines.inc | 11 +
suite/extra-jar.mn | 8 +
suite/installer/windows/custom.properties | 86 +
suite/installer/windows/mui.properties | 64 +
suite/installer/windows/override.properties | 86 +
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 | 7 +
toolkit/chrome/alerts/alert.dtd | 6 +
toolkit/chrome/alerts/alert.properties | 23 +
.../chrome/autoconfig/autoconfig.properties | 12 +
.../global-platform/mac/intl.properties | 7 +
.../mac/platformKeys.properties | 34 +
.../global-platform/unix/intl.properties | 7 +
.../unix/platformKeys.properties | 34 +
.../global-platform/win/intl.properties | 7 +
.../win/platformKeys.properties | 34 +
toolkit/chrome/global/aboutReader.properties | 67 +
toolkit/chrome/global/aboutStudies.properties | 32 +
toolkit/chrome/global/appPicker.dtd | 7 +
toolkit/chrome/global/autocomplete.properties | 9 +
toolkit/chrome/global/browser.properties | 7 +
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 | 12 +
toolkit/chrome/global/dialogOverlay.dtd | 10 +
toolkit/chrome/global/editMenuOverlay.dtd | 11 +
toolkit/chrome/global/extensions.properties | 27 +
.../chrome/global/fallbackMenubar.properties | 8 +
toolkit/chrome/global/filepicker.properties | 18 +
toolkit/chrome/global/findbar.properties | 23 +
toolkit/chrome/global/globalKeys.dtd | 6 +
toolkit/chrome/global/intl.css | 11 +
toolkit/chrome/global/intl.properties | 43 +
toolkit/chrome/global/keys.properties | 78 +
toolkit/chrome/global/narrate.properties | 24 +
toolkit/chrome/global/notification.dtd | 14 +
toolkit/chrome/global/printdialog.properties | 53 +
toolkit/chrome/global/resetProfile.dtd | 7 +
toolkit/chrome/global/resetProfile.properties | 14 +
toolkit/chrome/global/tree.dtd | 5 +
toolkit/chrome/global/videocontrols.dtd | 49 +
toolkit/chrome/global/viewSource.properties | 16 +
toolkit/chrome/global/wizard.properties | 8 +
.../mozapps/downloads/downloads.properties | 115 +
.../downloads/unknownContentType.properties | 23 +
.../chrome/mozapps/extensions/extensions.dtd | 5 +
.../mozapps/extensions/extensions.properties | 77 +
.../profile/profileSelection.properties | 55 +
.../chrome/mozapps/update/updates.properties | 43 +
.../chrome/passwordmgr/passwordmgr.properties | 75 +
toolkit/chrome/places/places.properties | 32 +
toolkit/crashreporter/aboutcrashes.ftl | 31 +
toolkit/crashreporter/crashreporter.ini | 60 +
toolkit/defines.inc | 1 +
toolkit/toolkit/about/aboutAbout.ftl | 6 +
toolkit/toolkit/about/aboutAddons.ftl | 416 +++
toolkit/toolkit/about/aboutCompat.ftl | 22 +
toolkit/toolkit/about/aboutConfig.ftl | 109 +
toolkit/toolkit/about/aboutGlean.ftl | 15 +
toolkit/toolkit/about/aboutHttpsOnlyError.ftl | 26 +
toolkit/toolkit/about/aboutMozilla.ftl | 7 +
toolkit/toolkit/about/aboutNetworking.ftl | 73 +
toolkit/toolkit/about/aboutPerformance.ftl | 67 +
toolkit/toolkit/about/aboutPlugins.ftl | 46 +
toolkit/toolkit/about/aboutProcesses.ftl | 183 ++
toolkit/toolkit/about/aboutProfiles.ftl | 74 +
toolkit/toolkit/about/aboutRights.ftl | 36 +
toolkit/toolkit/about/aboutServiceWorkers.ftl | 40 +
toolkit/toolkit/about/aboutSupport.ftl | 360 +++
toolkit/toolkit/about/aboutTelemetry.ftl | 141 +
toolkit/toolkit/about/aboutThirdParty.ftl | 49 +
toolkit/toolkit/about/aboutWebrtc.ftl | 270 ++
toolkit/toolkit/about/abuseReports.ftl | 91 +
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 | 69 +
toolkit/toolkit/global/alert.ftl | 8 +
toolkit/toolkit/global/appPicker.ftl | 10 +
toolkit/toolkit/global/browser-utils.ftl | 6 +
toolkit/toolkit/global/commonDialog.ftl | 18 +
.../toolkit/global/createProfileWizard.ftl | 53 +
toolkit/toolkit/global/cspErrors.ftl | 32 +
toolkit/toolkit/global/datetimebox.ftl | 36 +
toolkit/toolkit/global/handlerDialog.ftl | 76 +
toolkit/toolkit/global/notification.ftl | 12 +
toolkit/toolkit/global/popupnotification.ftl | 10 +
toolkit/toolkit/global/processTypes.ftl | 61 +
toolkit/toolkit/global/profileDowngrade.ftl | 20 +
toolkit/toolkit/global/profileSelection.ftl | 38 +
toolkit/toolkit/global/resetProfile.ftl | 14 +
toolkit/toolkit/global/run-from-dmg.ftl | 28 +
toolkit/toolkit/global/tabprompts.ftl | 12 +
toolkit/toolkit/global/textActions.ftl | 59 +
toolkit/toolkit/global/tree.ftl | 6 +
toolkit/toolkit/global/unknownContentType.ftl | 42 +
toolkit/toolkit/global/videocontrols.ftl | 67 +
toolkit/toolkit/global/wizard.ftl | 37 +
toolkit/toolkit/intl/languageNames.ftl | 214 ++
toolkit/toolkit/intl/regionNames.ftl | 285 ++
toolkit/toolkit/main-window/autocomplete.ftl | 17 +
toolkit/toolkit/main-window/findbar.ftl | 38 +
toolkit/toolkit/payments/payments.ftl | 51 +
.../pictureinpicture/pictureinpicture.ftl | 62 +
toolkit/toolkit/preferences/preferences.ftl | 41 +
toolkit/toolkit/printing/printDialogs.ftl | 112 +
toolkit/toolkit/printing/printPreview.ftl | 73 +
toolkit/toolkit/printing/printUI.ftl | 129 +
toolkit/toolkit/updates/backgroundupdate.ftl | 5 +
toolkit/toolkit/updates/elevation.ftl | 14 +
toolkit/toolkit/updates/history.ftl | 27 +
1064 files changed, 91180 insertions(+)
create mode 100755 browser/branding/official/brand.dtd
create mode 100644 browser/branding/official/brand.ftl
create mode 100755 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/colorwaycloset.ftl
create mode 100644 browser/browser/colorways.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/featureCallout.ftl
create mode 100644 browser/browser/firefoxView.ftl
create mode 100644 browser/browser/menubar.ftl
create mode 100644 browser/browser/migration.ftl
create mode 100644 browser/browser/netError.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/formAutofill.ftl
create mode 100644 browser/browser/preferences/fxaPairDevice.ftl
create mode 100644 browser/browser/preferences/languages.ftl
create mode 100644 browser/browser/preferences/moreFromMozilla.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/profile/default-bookmarks.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/screenshotsOverlay.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/spotlight.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/textRecognition.ftl
create mode 100644 browser/browser/toolbarContextMenu.ftl
create mode 100644 browser/browser/touchbar/touchbar.ftl
create mode 100644 browser/browser/translationNotification.ftl
create mode 100644 browser/browser/upgradeDialog.ftl
create mode 100644 browser/browser/webrtcIndicator.ftl
create mode 100644 browser/chrome/browser/accounts.properties
create mode 100755 browser/chrome/browser/browser.properties
create mode 100755 browser/chrome/browser/customizableui/customizableWidgets.properties
create mode 100755 browser/chrome/browser/downloads/downloads.properties
create mode 100755 browser/chrome/browser/feeds/subscribe.properties
create mode 100755 browser/chrome/browser/places/bookmarkProperties.properties
create mode 100755 browser/chrome/browser/places/places.properties
create mode 100644 browser/chrome/browser/safebrowsing/safebrowsing.properties
create mode 100755 browser/chrome/browser/search.properties
create mode 100755 browser/chrome/browser/shellservice.properties
create mode 100644 browser/chrome/browser/siteData.properties
create mode 100755 browser/chrome/browser/sitePermissions.properties
create mode 100755 browser/chrome/browser/syncSetup.properties
create mode 100755 browser/chrome/browser/tabbrowser.properties
create mode 100755 browser/chrome/browser/taskbar.properties
create mode 100755 browser/chrome/browser/translation.dtd
create mode 100755 browser/chrome/browser/translation.properties
create mode 100644 browser/chrome/browser/uiDensity.properties
create mode 100755 browser/chrome/browser/webrtcIndicator.properties
create mode 100755 browser/chrome/overrides/appstrings.properties
create mode 100755 browser/chrome/overrides/netError.dtd
create mode 100755 browser/crashreporter/crashreporter-override.ini
create mode 100644 browser/defaultagent/defaultagent_localized.ini
create mode 100755 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 100755 browser/installer/custom.properties
create mode 100755 browser/installer/mui.properties
create mode 100755 browser/installer/nsisstrings.properties
create mode 100755 browser/installer/override.properties
create mode 100755 browser/pdfviewer/chrome.properties
create mode 100755 browser/pdfviewer/viewer.properties
create mode 100755 browser/updater/updater.ini
create mode 100755 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-invitation-panel.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 100755 calendar/chrome/calendar/calendar-alarms.properties
create mode 100755 calendar/chrome/calendar/calendar-event-dialog-attendees.properties
create mode 100755 calendar/chrome/calendar/calendar-event-dialog.dtd
create mode 100755 calendar/chrome/calendar/calendar-event-dialog.properties
create mode 100755 calendar/chrome/calendar/calendar-extract.properties
create mode 100755 calendar/chrome/calendar/calendar-invitations-dialog.dtd
create mode 100644 calendar/chrome/calendar/calendar-invitations-dialog.properties
create mode 100755 calendar/chrome/calendar/calendar-occurrence-prompt.dtd
create mode 100755 calendar/chrome/calendar/calendar-occurrence-prompt.properties
create mode 100755 calendar/chrome/calendar/calendar.dtd
create mode 100755 calendar/chrome/calendar/calendar.properties
create mode 100755 calendar/chrome/calendar/calendarCreation.dtd
create mode 100755 calendar/chrome/calendar/calendarCreation.properties
create mode 100755 calendar/chrome/calendar/categories.properties
create mode 100755 calendar/chrome/calendar/dateFormat.properties
create mode 100755 calendar/chrome/calendar/dialogs/calendar-event-dialog-reminder.dtd
create mode 100755 calendar/chrome/calendar/global.dtd
create mode 100755 calendar/chrome/calendar/menuOverlay.dtd
create mode 100755 calendar/chrome/calendar/migration.dtd
create mode 100755 calendar/chrome/calendar/migration.properties
create mode 100755 calendar/chrome/calendar/provider-uninstall.dtd
create mode 100755 calendar/chrome/calendar/timezones.properties
create mode 100755 calendar/chrome/lightning/lightning-toolbar.dtd
create mode 100755 calendar/chrome/lightning/lightning.dtd
create mode 100755 calendar/chrome/lightning/lightning.properties
create mode 100755 calendar/lightning-l10n.js
create mode 100644 chat/accounts.dtd
create mode 100755 chat/accounts.properties
create mode 100755 chat/commands.properties
create mode 100755 chat/contacts.properties
create mode 100755 chat/conversations.properties
create mode 100755 chat/facebook.properties
create mode 100755 chat/imtooltip.properties
create mode 100755 chat/irc.properties
create mode 100755 chat/logger.properties
create mode 100644 chat/matrix.properties
create mode 100755 chat/status.properties
create mode 100755 chat/twitter.properties
create mode 100755 chat/xmpp.properties
create mode 100755 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 100755 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 100755 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 100755 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 100755 devtools/client/sourceeditor.dtd
create mode 100755 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 100755 devtools/client/styleeditor.properties
create mode 100644 devtools/client/toolbox-options.ftl
create mode 100644 devtools/client/toolbox.ftl
create mode 100755 devtools/client/toolbox.properties
create mode 100644 devtools/client/tooltips.ftl
create mode 100755 devtools/client/webconsole.properties
create mode 100644 devtools/shared/accessibility.properties
create mode 100644 devtools/shared/debugger-paused-reasons.ftl
create mode 100755 devtools/shared/debugger.properties
create mode 100755 devtools/shared/eyedropper.properties
create mode 100644 devtools/shared/highlighters.ftl
create mode 100644 devtools/shared/screenshot.properties
create mode 100644 devtools/shared/shared.properties
create mode 100755 devtools/shared/styleinspector.properties
create mode 100644 devtools/startup/key-shortcuts.ftl
create mode 100755 dom/chrome/accessibility/AccessFu.properties
create mode 100755 dom/chrome/accessibility/mac/accessible.properties
create mode 100755 dom/chrome/accessibility/unix/accessible.properties
create mode 100755 dom/chrome/accessibility/win/accessible.properties
create mode 100755 dom/chrome/appstrings.properties
create mode 100755 dom/chrome/dom/dom.properties
create mode 100755 dom/chrome/global-strres.properties
create mode 100755 dom/chrome/global.dtd
create mode 100755 dom/chrome/layout/HtmlForm.properties
create mode 100755 dom/chrome/layout/MediaDocument.properties
create mode 100755 dom/chrome/layout/css.properties
create mode 100755 dom/chrome/layout/htmlparser.properties
create mode 100755 dom/chrome/layout/layout_errors.properties
create mode 100755 dom/chrome/layout/printing.properties
create mode 100755 dom/chrome/layout/xmlparser.properties
create mode 100755 dom/chrome/layout/xul.properties
create mode 100755 dom/chrome/mathml/mathml.properties
create mode 100755 dom/chrome/netError.dtd
create mode 100755 dom/chrome/netErrorApp.dtd
create mode 100755 dom/chrome/nsWebBrowserPersist.properties
create mode 100755 dom/chrome/security/caps.properties
create mode 100755 dom/chrome/security/csp.properties
create mode 100755 dom/chrome/security/security.properties
create mode 100755 dom/chrome/svg/svg.properties
create mode 100755 dom/chrome/xml/prettyprint.dtd
create mode 100755 dom/chrome/xslt/xslt.properties
create mode 100644 dom/dom/media.ftl
create mode 100755 editor/ui/chrome/region/region.properties
create mode 100755 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/browser/branding/brandings.ftl
create mode 100755 mail/chrome/communicator/utilityOverlay.dtd
create mode 100755 mail/chrome/messenger-mapi/mapi.properties
create mode 100755 mail/chrome/messenger-newsblog/am-newsblog.dtd
create mode 100755 mail/chrome/messenger-newsblog/feed-subscriptions.dtd
create mode 100755 mail/chrome/messenger-newsblog/newsblog.properties
create mode 100755 mail/chrome/messenger-region/region.properties
create mode 100755 mail/chrome/messenger-smime/certFetchingStatus.dtd
create mode 100755 mail/chrome/messenger-smime/msgCompSMIMEOverlay.dtd
create mode 100755 mail/chrome/messenger-smime/msgCompSecurityInfo.dtd
create mode 100755 mail/chrome/messenger-smime/msgCompSecurityInfo.properties
create mode 100755 mail/chrome/messenger-smime/msgReadSMIMEOverlay.properties
create mode 100755 mail/chrome/messenger-smime/msgReadSecurityInfo.dtd
create mode 100755 mail/chrome/messenger-smime/msgSecurityInfo.properties
create mode 100755 mail/chrome/messenger/AccountManager.dtd
create mode 100755 mail/chrome/messenger/AccountWizard.dtd
create mode 100755 mail/chrome/messenger/CustomHeaders.dtd
create mode 100755 mail/chrome/messenger/FilterEditor.dtd
create mode 100755 mail/chrome/messenger/FilterListDialog.dtd
create mode 100755 mail/chrome/messenger/SearchDialog.dtd
create mode 100755 mail/chrome/messenger/aboutDialog.dtd
create mode 100644 mail/chrome/messenger/aboutDownloads.dtd
create mode 100755 mail/chrome/messenger/aboutRights.properties
create mode 100755 mail/chrome/messenger/aboutSupportMail.properties
create mode 100755 mail/chrome/messenger/accountCreationModel.properties
create mode 100755 mail/chrome/messenger/accountCreationUtil.properties
create mode 100755 mail/chrome/messenger/activity.dtd
create mode 100755 mail/chrome/messenger/activity.properties
create mode 100755 mail/chrome/messenger/addbuddy.dtd
create mode 100644 mail/chrome/messenger/addons.properties
create mode 100755 mail/chrome/messenger/addressbook/abAddressBookNameDialog.dtd
create mode 100644 mail/chrome/messenger/addressbook/abCard.dtd
create mode 100755 mail/chrome/messenger/addressbook/abContactsPanel.dtd
create mode 100755 mail/chrome/messenger/addressbook/abMailListDialog.dtd
create mode 100755 mail/chrome/messenger/addressbook/abMainWindow.dtd
create mode 100755 mail/chrome/messenger/addressbook/abNewCardDialog.dtd
create mode 100644 mail/chrome/messenger/addressbook/abResultsPane.dtd
create mode 100755 mail/chrome/messenger/addressbook/addressBook.properties
create mode 100755 mail/chrome/messenger/addressbook/ldapAutoCompErrs.properties
create mode 100755 mail/chrome/messenger/addressbook/pref-directory-add.dtd
create mode 100755 mail/chrome/messenger/addressbook/pref-directory.dtd
create mode 100755 mail/chrome/messenger/addressbook/replicationProgress.properties
create mode 100755 mail/chrome/messenger/am-addressing.dtd
create mode 100755 mail/chrome/messenger/am-advanced.dtd
create mode 100755 mail/chrome/messenger/am-archiveoptions.dtd
create mode 100755 mail/chrome/messenger/am-copies.dtd
create mode 100644 mail/chrome/messenger/am-e2e.properties
create mode 100755 mail/chrome/messenger/am-identities-list.dtd
create mode 100755 mail/chrome/messenger/am-identity-edit.dtd
create mode 100755 mail/chrome/messenger/am-im.dtd
create mode 100755 mail/chrome/messenger/am-junk.dtd
create mode 100755 mail/chrome/messenger/am-main.dtd
create mode 100755 mail/chrome/messenger/am-mdn.dtd
create mode 100755 mail/chrome/messenger/am-mdn.properties
create mode 100755 mail/chrome/messenger/am-offline.dtd
create mode 100755 mail/chrome/messenger/am-server-advanced.dtd
create mode 100755 mail/chrome/messenger/am-server-top.dtd
create mode 100755 mail/chrome/messenger/am-serverwithnoidentities.dtd
create mode 100755 mail/chrome/messenger/am-smime.dtd
create mode 100755 mail/chrome/messenger/am-smime.properties
create mode 100644 mail/chrome/messenger/appUpdate.properties
create mode 100755 mail/chrome/messenger/appleMailImportMsgs.properties
create mode 100755 mail/chrome/messenger/baseMenuOverlay.dtd
create mode 100644 mail/chrome/messenger/beckyImportMsgs.properties
create mode 100755 mail/chrome/messenger/charsetTitles.properties
create mode 100755 mail/chrome/messenger/chat.dtd
create mode 100755 mail/chrome/messenger/chat.properties
create mode 100755 mail/chrome/messenger/configEditorOverlay.dtd
create mode 100644 mail/chrome/messenger/converterDialog.dtd
create mode 100644 mail/chrome/messenger/converterDialog.properties
create mode 100755 mail/chrome/messenger/custom.properties
create mode 100644 mail/chrome/messenger/customizeToolbar.dtd
create mode 100644 mail/chrome/messenger/customizeToolbar.properties
create mode 100755 mail/chrome/messenger/devtools/dbgserver.dtd
create mode 100755 mail/chrome/messenger/devtools/dbgserver.properties
create mode 100755 mail/chrome/messenger/downloadheaders.dtd
create mode 100755 mail/chrome/messenger/editContactOverlay.dtd
create mode 100755 mail/chrome/messenger/editContactOverlay.properties
create mode 100755 mail/chrome/messenger/fieldMapImport.dtd
create mode 100755 mail/chrome/messenger/filter.properties
create mode 100755 mail/chrome/messenger/folderProps.dtd
create mode 100755 mail/chrome/messenger/folderWidgets.properties
create mode 100755 mail/chrome/messenger/folderpane.dtd
create mode 100755 mail/chrome/messenger/gloda.properties
create mode 100755 mail/chrome/messenger/glodaComplete.properties
create mode 100755 mail/chrome/messenger/glodaFacetView.dtd
create mode 100755 mail/chrome/messenger/glodaFacetView.properties
create mode 100755 mail/chrome/messenger/imAccountWizard.dtd
create mode 100755 mail/chrome/messenger/imAccounts.properties
create mode 100755 mail/chrome/messenger/imapMsgs.properties
create mode 100755 mail/chrome/messenger/importDialog.dtd
create mode 100755 mail/chrome/messenger/importMsgs.properties
create mode 100755 mail/chrome/messenger/joinChat.dtd
create mode 100755 mail/chrome/messenger/junkLog.dtd
create mode 100755 mail/chrome/messenger/localMsgs.properties
create mode 100755 mail/chrome/messenger/mailEditorOverlay.dtd
create mode 100755 mail/chrome/messenger/mailOverlay.dtd
create mode 100755 mail/chrome/messenger/mailViewList.dtd
create mode 100755 mail/chrome/messenger/mailViewSetup.dtd
create mode 100755 mail/chrome/messenger/mailviews.properties
create mode 100755 mail/chrome/messenger/markByDate.dtd
create mode 100755 mail/chrome/messenger/messenger.dtd
create mode 100755 mail/chrome/messenger/messenger.properties
create mode 100755 mail/chrome/messenger/messengercompose/EdAdvancedEdit.dtd
create mode 100755 mail/chrome/messenger/messengercompose/EdColorPicker.dtd
create mode 100755 mail/chrome/messenger/messengercompose/EdConvertToTable.dtd
create mode 100755 mail/chrome/messenger/messengercompose/EdDialogOverlay.dtd
create mode 100755 mail/chrome/messenger/messengercompose/EdNamedAnchorProperties.dtd
create mode 100755 mail/chrome/messenger/messengercompose/EditorColorProperties.dtd
create mode 100755 mail/chrome/messenger/messengercompose/EditorHLineProperties.dtd
create mode 100755 mail/chrome/messenger/messengercompose/EditorImageProperties.dtd
create mode 100755 mail/chrome/messenger/messengercompose/EditorInsertChars.dtd
create mode 100755 mail/chrome/messenger/messengercompose/EditorInsertMath.dtd
create mode 100755 mail/chrome/messenger/messengercompose/EditorInsertSource.dtd
create mode 100755 mail/chrome/messenger/messengercompose/EditorInsertTOC.dtd
create mode 100755 mail/chrome/messenger/messengercompose/EditorInsertTable.dtd
create mode 100755 mail/chrome/messenger/messengercompose/EditorLinkProperties.dtd
create mode 100755 mail/chrome/messenger/messengercompose/EditorListProperties.dtd
create mode 100755 mail/chrome/messenger/messengercompose/EditorPersonalDictionary.dtd
create mode 100755 mail/chrome/messenger/messengercompose/EditorReplace.dtd
create mode 100755 mail/chrome/messenger/messengercompose/EditorSpellCheck.dtd
create mode 100755 mail/chrome/messenger/messengercompose/EditorTableProperties.dtd
create mode 100755 mail/chrome/messenger/messengercompose/composeMsgs.properties
create mode 100755 mail/chrome/messenger/messengercompose/editor.properties
create mode 100755 mail/chrome/messenger/messengercompose/editorOverlay.dtd
create mode 100755 mail/chrome/messenger/messengercompose/mailComposeEditorOverlay.dtd
create mode 100755 mail/chrome/messenger/messengercompose/messengercompose.dtd
create mode 100755 mail/chrome/messenger/messengercompose/sendProgress.dtd
create mode 100755 mail/chrome/messenger/messengercompose/sendProgress.properties
create mode 100755 mail/chrome/messenger/migration/migration.dtd
create mode 100755 mail/chrome/messenger/migration/migration.properties
create mode 100755 mail/chrome/messenger/mime.properties
create mode 100755 mail/chrome/messenger/mimeheader.properties
create mode 100644 mail/chrome/messenger/morkImportMsgs.properties
create mode 100755 mail/chrome/messenger/msgAccountCentral.dtd
create mode 100755 mail/chrome/messenger/msgHdrViewOverlay.dtd
create mode 100755 mail/chrome/messenger/msgSynchronize.dtd
create mode 100755 mail/chrome/messenger/msgViewPickerOverlay.dtd
create mode 100755 mail/chrome/messenger/msgmdn.properties
create mode 100755 mail/chrome/messenger/multimessageview.dtd
create mode 100755 mail/chrome/messenger/multimessageview.properties
create mode 100755 mail/chrome/messenger/newFolderDialog.dtd
create mode 100755 mail/chrome/messenger/news.properties
create mode 100644 mail/chrome/messenger/newsError.dtd
create mode 100755 mail/chrome/messenger/offline.properties
create mode 100755 mail/chrome/messenger/offlineStartup.properties
create mode 100755 mail/chrome/messenger/outlookImportMsgs.properties
create mode 100755 mail/chrome/messenger/pgpmime.properties
create mode 100755 mail/chrome/messenger/preferences/applicationManager.properties
create mode 100755 mail/chrome/messenger/preferences/applications.properties
create mode 100644 mail/chrome/messenger/preferences/messagestyle.properties
create mode 100755 mail/chrome/messenger/preferences/preferences.properties
create mode 100755 mail/chrome/messenger/prefs.properties
create mode 100755 mail/chrome/messenger/quickFilterBar.dtd
create mode 100644 mail/chrome/messenger/removeAccount.dtd
create mode 100644 mail/chrome/messenger/removeAccount.properties
create mode 100755 mail/chrome/messenger/renameFolderDialog.dtd
create mode 100755 mail/chrome/messenger/sanitize.dtd
create mode 100644 mail/chrome/messenger/seamonkeyImportMsgs.properties
create mode 100755 mail/chrome/messenger/search-attributes.properties
create mode 100755 mail/chrome/messenger/search-operators.properties
create mode 100755 mail/chrome/messenger/search.properties
create mode 100755 mail/chrome/messenger/searchTermOverlay.dtd
create mode 100755 mail/chrome/messenger/shutdownWindow.properties
create mode 100755 mail/chrome/messenger/smime.properties
create mode 100755 mail/chrome/messenger/smtpEditOverlay.dtd
create mode 100755 mail/chrome/messenger/subscribe.dtd
create mode 100755 mail/chrome/messenger/subscribe.properties
create mode 100755 mail/chrome/messenger/tabmail.dtd
create mode 100755 mail/chrome/messenger/taskbar.properties
create mode 100755 mail/chrome/messenger/telemetry.properties
create mode 100755 mail/chrome/messenger/templateUtils.properties
create mode 100755 mail/chrome/messenger/textImportMsgs.properties
create mode 100755 mail/chrome/messenger/vCardImportMsgs.properties
create mode 100755 mail/chrome/messenger/viewLog.dtd
create mode 100644 mail/chrome/messenger/viewSource.dtd
create mode 100644 mail/chrome/messenger/viewSource.properties
create mode 100755 mail/chrome/messenger/viewZoomOverlay.dtd
create mode 100755 mail/chrome/messenger/virtualFolderListDialog.dtd
create mode 100755 mail/chrome/messenger/virtualFolderProperties.dtd
create mode 100755 mail/chrome/messenger/wmImportMsgs.properties
create mode 100755 mail/chrome/mozldap/ldap.properties
create mode 100755 mail/chrome/overrides/netError.dtd
create mode 100644 mail/chrome/overrides/profileDowngrade.dtd
create mode 100755 mail/defines.inc
create mode 100755 mail/installer/custom.properties
create mode 100755 mail/installer/mui.properties
create mode 100755 mail/installer/override.properties
create mode 100644 mail/messenger/aboutAddonsExtra.ftl
create mode 100644 mail/messenger/aboutDialog.ftl
create mode 100644 mail/messenger/aboutImport.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/aboutSupportChat.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/addressbook/vcard.ftl
create mode 100644 mail/messenger/appmenu.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/mailWidgets.ftl
create mode 100644 mail/messenger/menubar.ftl
create mode 100644 mail/messenger/messageheader/headerFields.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/keyAssistant.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/shortcuts.ftl
create mode 100644 mail/messenger/troubleshootMode.ftl
create mode 100644 mail/messenger/viewSource.ftl
create mode 100755 mail/updater/updater.ini
create mode 100755 minimo/chrome/contents.rdf
create mode 100755 mobile/android/chrome/browser.properties
create mode 100755 mobile/android/chrome/config.dtd
create mode 100755 mobile/android/chrome/config.properties
create mode 100755 mobile/android/chrome/passwordmgr.properties
create mode 100755 mobile/android/defines.inc
create mode 100755 mobile/chrome/region.properties
create mode 100755 mobile/overrides/appstrings.properties
create mode 100755 mobile/overrides/netError.dtd
create mode 100755 netwerk/necko.properties
create mode 100644 other-licenses/branding/sunbird/brand.dtd
create mode 100644 other-licenses/branding/sunbird/brand.properties
create mode 100755 security/manager/chrome/pipnss/nsserrors.properties
create mode 100755 security/manager/chrome/pipnss/pipnss.properties
create mode 100755 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 100755 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 100755 suite/chrome/branding/aboutRights.dtd
create mode 100755 suite/chrome/branding/aboutRights.properties
create mode 100755 suite/chrome/browser/linkToolbar.dtd
create mode 100755 suite/chrome/browser/mailNavigatorOverlay.dtd
create mode 100755 suite/chrome/browser/metadata.dtd
create mode 100755 suite/chrome/browser/metadata.properties
create mode 100755 suite/chrome/browser/navigator.dtd
create mode 100755 suite/chrome/browser/navigator.properties
create mode 100755 suite/chrome/browser/navigatorOverlay.dtd
create mode 100755 suite/chrome/browser/pageInfo.dtd
create mode 100755 suite/chrome/browser/pageInfo.properties
create mode 100755 suite/chrome/browser/region.properties
create mode 100755 suite/chrome/browser/tabbrowser.dtd
create mode 100755 suite/chrome/browser/tabbrowser.properties
create mode 100755 suite/chrome/browser/taskbar.properties
create mode 100755 suite/chrome/browser/webDeveloper.dtd
create mode 100755 suite/chrome/common/about.dtd
create mode 100755 suite/chrome/common/aboutPrivateBrowsing.dtd
create mode 100755 suite/chrome/common/aboutSessionRestore.dtd
create mode 100755 suite/chrome/common/aboutSyncTabs.dtd
create mode 100755 suite/chrome/common/askViewZoom.dtd
create mode 100755 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 100755 suite/chrome/common/contentAreaCommands.dtd
create mode 100755 suite/chrome/common/contentAreaCommands.properties
create mode 100644 suite/chrome/common/customizeToolbar.dtd
create mode 100644 suite/chrome/common/customizeToolbar.properties
create mode 100755 suite/chrome/common/dataman/dataman.dtd
create mode 100755 suite/chrome/common/dataman/dataman.properties
create mode 100644 suite/chrome/common/datetimepicker.dtd
create mode 100755 suite/chrome/common/defaultClientDialog.dtd
create mode 100755 suite/chrome/common/downloads/downloadmanager.dtd
create mode 100755 suite/chrome/common/downloads/downloadmanager.properties
create mode 100755 suite/chrome/common/downloads/progressDialog.dtd
create mode 100755 suite/chrome/common/feeds/subscribe.dtd
create mode 100755 suite/chrome/common/feeds/subscribe.properties
create mode 100755 suite/chrome/common/gopherAddon.dtd
create mode 100755 suite/chrome/common/help/cert_dialog_help.xhtml
create mode 100755 suite/chrome/common/help/certs_help.xhtml
create mode 100755 suite/chrome/common/help/certs_prefs_help.xhtml
create mode 100755 suite/chrome/common/help/composer_help.xhtml
create mode 100755 suite/chrome/common/help/cs_nav_prefs_advanced.xhtml
create mode 100755 suite/chrome/common/help/cs_nav_prefs_appearance.xhtml
create mode 100755 suite/chrome/common/help/cs_nav_prefs_navigator.xhtml
create mode 100755 suite/chrome/common/help/cs_priv_prefs_popup.xhtml
create mode 100755 suite/chrome/common/help/customize_help.xhtml
create mode 100755 suite/chrome/common/help/developer_tools.xhtml
create mode 100755 suite/chrome/common/help/forieusers.xhtml
create mode 100755 suite/chrome/common/help/glossary.xhtml
create mode 100755 suite/chrome/common/help/help-glossary.rdf
create mode 100755 suite/chrome/common/help/help-index1.rdf
create mode 100755 suite/chrome/common/help/help-indexAZ.rdf
create mode 100755 suite/chrome/common/help/help-win.rdf
create mode 100755 suite/chrome/common/help/helpFileLayout.css
create mode 100755 suite/chrome/common/help/help_help.xhtml
create mode 100755 suite/chrome/common/help/images/anchor-in-doc.gif
create mode 100755 suite/chrome/common/help/images/broken.gif
create mode 100755 suite/chrome/common/help/images/bullets.gif
create mode 100755 suite/chrome/common/help/images/columns.png
create mode 100755 suite/chrome/common/help/images/composer_icon.png
create mode 100755 suite/chrome/common/help/images/help_nav.png
create mode 100755 suite/chrome/common/help/images/help_print.gif
create mode 100755 suite/chrome/common/help/images/image.gif
create mode 100755 suite/chrome/common/help/images/link.gif
create mode 100755 suite/chrome/common/help/images/locationbar.png
create mode 100755 suite/chrome/common/help/images/mail_flag.png
create mode 100755 suite/chrome/common/help/images/mail_flag_column.png
create mode 100755 suite/chrome/common/help/images/mail_junk_column.png
create mode 100755 suite/chrome/common/help/images/mail_newmail_alert.png
create mode 100755 suite/chrome/common/help/images/mail_newmail_trayicon.png
create mode 100755 suite/chrome/common/help/images/mail_quicksearch.png
create mode 100755 suite/chrome/common/help/images/mail_read.png
create mode 100755 suite/chrome/common/help/images/mail_read_column.png
create mode 100755 suite/chrome/common/help/images/mail_unread.png
create mode 100755 suite/chrome/common/help/images/numbers.gif
create mode 100755 suite/chrome/common/help/images/offline.png
create mode 100755 suite/chrome/common/help/images/online.png
create mode 100755 suite/chrome/common/help/images/personalbar.png
create mode 100755 suite/chrome/common/help/images/reload.gif
create mode 100755 suite/chrome/common/help/images/search.png
create mode 100755 suite/chrome/common/help/images/search_personal_toolbar.gif
create mode 100755 suite/chrome/common/help/images/sidebar.png
create mode 100755 suite/chrome/common/help/images/tabbed_browsing_bar.png
create mode 100755 suite/chrome/common/help/images/table.gif
create mode 100755 suite/chrome/common/help/images/task_mail.png
create mode 100755 suite/chrome/common/help/images/task_newmail.png
create mode 100755 suite/chrome/common/help/images/taskbar-ab.png
create mode 100755 suite/chrome/common/help/images/taskbar.png
create mode 100755 suite/chrome/common/help/images/threadbutton.png
create mode 100755 suite/chrome/common/help/images/web-links.png
create mode 100755 suite/chrome/common/help/mailnews_account_settings.xhtml
create mode 100755 suite/chrome/common/help/mailnews_addressbooks.xhtml
create mode 100755 suite/chrome/common/help/mailnews_blogs_and_feeds.xhtml
create mode 100755 suite/chrome/common/help/mailnews_getting_started.xhtml
create mode 100755 suite/chrome/common/help/mailnews_newsgroups.xhtml
create mode 100755 suite/chrome/common/help/mailnews_offline.xhtml
create mode 100755 suite/chrome/common/help/mailnews_organizing.xhtml
create mode 100755 suite/chrome/common/help/mailnews_preferences.xhtml
create mode 100755 suite/chrome/common/help/mailnews_security.xhtml
create mode 100755 suite/chrome/common/help/mailnews_using_mail.xhtml
create mode 100755 suite/chrome/common/help/nav_help.xhtml
create mode 100755 suite/chrome/common/help/page_info_help.xhtml
create mode 100755 suite/chrome/common/help/passwords_help.xhtml
create mode 100755 suite/chrome/common/help/privacy_help.xhtml
create mode 100755 suite/chrome/common/help/privsec_help.xhtml
create mode 100755 suite/chrome/common/help/profiles_help.xhtml
create mode 100755 suite/chrome/common/help/shortcuts.xhtml
create mode 100755 suite/chrome/common/help/shortcuts_composer.xhtml
create mode 100755 suite/chrome/common/help/shortcuts_mailnews.xhtml
create mode 100755 suite/chrome/common/help/shortcuts_navigator.xhtml
create mode 100755 suite/chrome/common/help/ssl_help.xhtml
create mode 100755 suite/chrome/common/help/suite-toc.rdf
create mode 100755 suite/chrome/common/help/suitehelp.rdf
create mode 100755 suite/chrome/common/help/using_certs_help.xhtml
create mode 100755 suite/chrome/common/help/using_priv_help.xhtml
create mode 100755 suite/chrome/common/help/welcome_help.xhtml
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 100755 suite/chrome/common/migration/migration.dtd
create mode 100755 suite/chrome/common/migration/migration.properties
create mode 100755 suite/chrome/common/notification.dtd
create mode 100755 suite/chrome/common/notification.properties
create mode 100755 suite/chrome/common/openLocation.dtd
create mode 100755 suite/chrome/common/openLocation.properties
create mode 100755 suite/chrome/common/permissions/cookieViewer.dtd
create mode 100755 suite/chrome/common/permissions/cookieViewer.properties
create mode 100755 suite/chrome/common/permissions/permissionsManager.dtd
create mode 100755 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 100755 suite/chrome/common/places/places.properties
create mode 100755 suite/chrome/common/pref/pref-advanced.dtd
create mode 100755 suite/chrome/common/pref/pref-appearance.dtd
create mode 100755 suite/chrome/common/pref/pref-applicationManager.dtd
create mode 100755 suite/chrome/common/pref/pref-applicationManager.properties
create mode 100755 suite/chrome/common/pref/pref-applications.dtd
create mode 100755 suite/chrome/common/pref/pref-applications.properties
create mode 100755 suite/chrome/common/pref/pref-cache.dtd
create mode 100755 suite/chrome/common/pref/pref-certs.dtd
create mode 100755 suite/chrome/common/pref/pref-colors.dtd
create mode 100755 suite/chrome/common/pref/pref-content.dtd
create mode 100755 suite/chrome/common/pref/pref-cookies.dtd
create mode 100644 suite/chrome/common/pref/pref-debugging.dtd
create mode 100755 suite/chrome/common/pref/pref-download.dtd
create mode 100755 suite/chrome/common/pref/pref-findasyoutype.dtd
create mode 100755 suite/chrome/common/pref/pref-fonts.dtd
create mode 100755 suite/chrome/common/pref/pref-history.dtd
create mode 100755 suite/chrome/common/pref/pref-http.dtd
create mode 100755 suite/chrome/common/pref/pref-images.dtd
create mode 100755 suite/chrome/common/pref/pref-keynav.dtd
create mode 100755 suite/chrome/common/pref/pref-languages.dtd
create mode 100755 suite/chrome/common/pref/pref-languages.properties
create mode 100755 suite/chrome/common/pref/pref-links.dtd
create mode 100755 suite/chrome/common/pref/pref-locationbar.dtd
create mode 100755 suite/chrome/common/pref/pref-masterpass.dtd
create mode 100644 suite/chrome/common/pref/pref-media.dtd
create mode 100755 suite/chrome/common/pref/pref-mousewheel.dtd
create mode 100755 suite/chrome/common/pref/pref-navigator.dtd
create mode 100755 suite/chrome/common/pref/pref-offlineapps.dtd
create mode 100755 suite/chrome/common/pref/pref-passwords.dtd
create mode 100755 suite/chrome/common/pref/pref-popups.dtd
create mode 100755 suite/chrome/common/pref/pref-privatedata.dtd
create mode 100755 suite/chrome/common/pref/pref-proxies-advanced.dtd
create mode 100755 suite/chrome/common/pref/pref-proxies.dtd
create mode 100755 suite/chrome/common/pref/pref-scripts.dtd
create mode 100755 suite/chrome/common/pref/pref-search.dtd
create mode 100755 suite/chrome/common/pref/pref-security.dtd
create mode 100755 suite/chrome/common/pref/pref-smartupdate.dtd
create mode 100755 suite/chrome/common/pref/pref-spelling.dtd
create mode 100755 suite/chrome/common/pref/pref-ssl.dtd
create mode 100755 suite/chrome/common/pref/pref-sync.dtd
create mode 100755 suite/chrome/common/pref/pref-tabs.dtd
create mode 100755 suite/chrome/common/pref/preferences.dtd
create mode 100755 suite/chrome/common/pref/prefutilities.dtd
create mode 100755 suite/chrome/common/pref/prefutilities.properties
create mode 100755 suite/chrome/common/printPreview.dtd
create mode 100755 suite/chrome/common/profile/profileSelection.dtd
create mode 100755 suite/chrome/common/profile/profileSelection.properties
create mode 100755 suite/chrome/common/quitDialog.properties
create mode 100755 suite/chrome/common/region.properties
create mode 100755 suite/chrome/common/safeBrowsing.dtd
create mode 100755 suite/chrome/common/safeMode.dtd
create mode 100755 suite/chrome/common/sanitize.dtd
create mode 100644 suite/chrome/common/sanitize.properties
create mode 100755 suite/chrome/common/search/engineManager.dtd
create mode 100755 suite/chrome/common/search/engineManager.properties
create mode 100755 suite/chrome/common/search/search-panel.dtd
create mode 100755 suite/chrome/common/search/search.properties
create mode 100755 suite/chrome/common/search/searchbar.dtd
create mode 100755 suite/chrome/common/setDesktopBackground.dtd
create mode 100755 suite/chrome/common/shellservice.properties
create mode 100755 suite/chrome/common/sidebar/customize.dtd
create mode 100755 suite/chrome/common/sidebar/preview.dtd
create mode 100755 suite/chrome/common/sidebar/sidebar.properties
create mode 100755 suite/chrome/common/sidebar/sidebarOverlay.dtd
create mode 100644 suite/chrome/common/sitePermissions.properties
create mode 100755 suite/chrome/common/sync/syncBrand.dtd
create mode 100755 suite/chrome/common/sync/syncGenericChange.properties
create mode 100755 suite/chrome/common/sync/syncKey.dtd
create mode 100755 suite/chrome/common/sync/syncQuota.dtd
create mode 100755 suite/chrome/common/sync/syncQuota.properties
create mode 100755 suite/chrome/common/sync/syncSetup.dtd
create mode 100755 suite/chrome/common/sync/syncSetup.properties
create mode 100755 suite/chrome/common/tasksOverlay.dtd
create mode 100755 suite/chrome/common/typeaheadfind.properties
create mode 100755 suite/chrome/common/utilityOverlay.dtd
create mode 100755 suite/chrome/common/utilityOverlay.properties
create mode 100755 suite/chrome/common/viewApplyThemeOverlay.dtd
create mode 100755 suite/chrome/common/viewApplyThemeOverlay.properties
create mode 100755 suite/chrome/common/viewZoomOverlay.dtd
create mode 100755 suite/chrome/common/viewZoomOverlay.properties
create mode 100755 suite/chrome/editor/dialogs/EdAdvancedEdit.dtd
create mode 100755 suite/chrome/editor/dialogs/EdColorPicker.dtd
create mode 100755 suite/chrome/editor/dialogs/EdConvertToTable.dtd
create mode 100755 suite/chrome/editor/dialogs/EdDialogOverlay.dtd
create mode 100755 suite/chrome/editor/dialogs/EdNamedAnchorProperties.dtd
create mode 100755 suite/chrome/editor/dialogs/EditConflict.dtd
create mode 100755 suite/chrome/editor/dialogs/EditorButtonProperties.dtd
create mode 100755 suite/chrome/editor/dialogs/EditorColorProperties.dtd
create mode 100755 suite/chrome/editor/dialogs/EditorFieldSetProperties.dtd
create mode 100755 suite/chrome/editor/dialogs/EditorFormProperties.dtd
create mode 100755 suite/chrome/editor/dialogs/EditorHLineProperties.dtd
create mode 100755 suite/chrome/editor/dialogs/EditorImageProperties.dtd
create mode 100755 suite/chrome/editor/dialogs/EditorInputProperties.dtd
create mode 100755 suite/chrome/editor/dialogs/EditorInsertChars.dtd
create mode 100755 suite/chrome/editor/dialogs/EditorInsertMath.dtd
create mode 100755 suite/chrome/editor/dialogs/EditorInsertSource.dtd
create mode 100755 suite/chrome/editor/dialogs/EditorInsertTOC.dtd
create mode 100755 suite/chrome/editor/dialogs/EditorInsertTable.dtd
create mode 100755 suite/chrome/editor/dialogs/EditorLabelProperties.dtd
create mode 100755 suite/chrome/editor/dialogs/EditorLinkProperties.dtd
create mode 100755 suite/chrome/editor/dialogs/EditorListProperties.dtd
create mode 100755 suite/chrome/editor/dialogs/EditorPageProperties.dtd
create mode 100755 suite/chrome/editor/dialogs/EditorPersonalDictionary.dtd
create mode 100755 suite/chrome/editor/dialogs/EditorPublish.dtd
create mode 100755 suite/chrome/editor/dialogs/EditorPublishProgress.dtd
create mode 100755 suite/chrome/editor/dialogs/EditorReplace.dtd
create mode 100755 suite/chrome/editor/dialogs/EditorSaveAsCharset.dtd
create mode 100755 suite/chrome/editor/dialogs/EditorSelectProperties.dtd
create mode 100755 suite/chrome/editor/dialogs/EditorSnapToGrid.dtd
create mode 100755 suite/chrome/editor/dialogs/EditorSpellCheck.dtd
create mode 100755 suite/chrome/editor/dialogs/EditorTableProperties.dtd
create mode 100755 suite/chrome/editor/dialogs/EditorTextAreaProperties.dtd
create mode 100755 suite/chrome/editor/editingOverlay.dtd
create mode 100755 suite/chrome/editor/editor.dtd
create mode 100755 suite/chrome/editor/editor.properties
create mode 100755 suite/chrome/editor/editorOverlay.dtd
create mode 100755 suite/chrome/editor/editorSmileyOverlay.dtd
create mode 100755 suite/chrome/editor/prefs/editorPrefsOverlay.dtd
create mode 100755 suite/chrome/editor/prefs/pref-composer.dtd
create mode 100755 suite/chrome/editor/prefs/pref-editing.dtd
create mode 100755 suite/chrome/mailnews/CustomHeaders.dtd
create mode 100755 suite/chrome/mailnews/FilterEditor.dtd
create mode 100755 suite/chrome/mailnews/FilterListDialog.dtd
create mode 100755 suite/chrome/mailnews/SearchDialog.dtd
create mode 100755 suite/chrome/mailnews/addressbook/abAddressBookNameDialog.dtd
create mode 100755 suite/chrome/mailnews/addressbook/abCardOverlay.dtd
create mode 100755 suite/chrome/mailnews/addressbook/abMailListDialog.dtd
create mode 100755 suite/chrome/mailnews/addressbook/abMainWindow.dtd
create mode 100755 suite/chrome/mailnews/addressbook/abNewCardDialog.dtd
create mode 100755 suite/chrome/mailnews/addressbook/abResultsPaneOverlay.dtd
create mode 100755 suite/chrome/mailnews/addressbook/abSelectAddressesDialog.dtd
create mode 100755 suite/chrome/mailnews/addressbook/addressBook.properties
create mode 100755 suite/chrome/mailnews/addressbook/ldapAutoCompErrs.properties
create mode 100755 suite/chrome/mailnews/appleMailImportMsgs.properties
create mode 100644 suite/chrome/mailnews/beckyImportMsgs.properties
create mode 100755 suite/chrome/mailnews/charsetTitles.properties
create mode 100755 suite/chrome/mailnews/compose/addressingWidgetOverlay.dtd
create mode 100755 suite/chrome/mailnews/compose/askSendFormat.dtd
create mode 100755 suite/chrome/mailnews/compose/askSendFormat.properties
create mode 100755 suite/chrome/mailnews/compose/composeMsgs.properties
create mode 100755 suite/chrome/mailnews/compose/mailComposeEditorOverlay.dtd
create mode 100755 suite/chrome/mailnews/compose/messengercompose.dtd
create mode 100755 suite/chrome/mailnews/compose/sendProgress.dtd
create mode 100755 suite/chrome/mailnews/compose/sendProgress.properties
create mode 100755 suite/chrome/mailnews/custom.properties
create mode 100755 suite/chrome/mailnews/downloadheaders.dtd
create mode 100755 suite/chrome/mailnews/fieldMapImport.dtd
create mode 100755 suite/chrome/mailnews/filter.properties
create mode 100755 suite/chrome/mailnews/folderProps.dtd
create mode 100755 suite/chrome/mailnews/folderWidgets.properties
create mode 100755 suite/chrome/mailnews/folderpane.dtd
create mode 100755 suite/chrome/mailnews/gloda.properties
create mode 100755 suite/chrome/mailnews/imapMsgs.properties
create mode 100755 suite/chrome/mailnews/importDialog.dtd
create mode 100755 suite/chrome/mailnews/importMsgs.properties
create mode 100755 suite/chrome/mailnews/junkLog.dtd
create mode 100755 suite/chrome/mailnews/junkMailInfo.dtd
create mode 100755 suite/chrome/mailnews/localMsgs.properties
create mode 100755 suite/chrome/mailnews/mailEditorOverlay.dtd
create mode 100755 suite/chrome/mailnews/mailKeysOverlay.dtd
create mode 100755 suite/chrome/mailnews/mailOverlay.dtd
create mode 100755 suite/chrome/mailnews/mailTasksOverlay.dtd
create mode 100755 suite/chrome/mailnews/mailViewList.dtd
create mode 100755 suite/chrome/mailnews/mailViewSetup.dtd
create mode 100755 suite/chrome/mailnews/mailviews.properties
create mode 100755 suite/chrome/mailnews/mapi/mapi.properties
create mode 100755 suite/chrome/mailnews/markByDate.dtd
create mode 100755 suite/chrome/mailnews/messenger.dtd
create mode 100755 suite/chrome/mailnews/messenger.properties
create mode 100755 suite/chrome/mailnews/mime.properties
create mode 100755 suite/chrome/mailnews/mimeheader.properties
create mode 100755 suite/chrome/mailnews/msgAccountCentral.dtd
create mode 100755 suite/chrome/mailnews/msgHdrViewOverlay.dtd
create mode 100755 suite/chrome/mailnews/msgHdrViewPopup.dtd
create mode 100644 suite/chrome/mailnews/msgPrintEngine.dtd
create mode 100755 suite/chrome/mailnews/msgSynchronize.dtd
create mode 100755 suite/chrome/mailnews/msgViewPickerOverlay.dtd
create mode 100755 suite/chrome/mailnews/msgmdn.properties
create mode 100755 suite/chrome/mailnews/newFolderDialog.dtd
create mode 100755 suite/chrome/mailnews/news.properties
create mode 100644 suite/chrome/mailnews/newsError.dtd
create mode 100755 suite/chrome/mailnews/newsblog/am-newsblog.dtd
create mode 100755 suite/chrome/mailnews/newsblog/feed-subscriptions.dtd
create mode 100755 suite/chrome/mailnews/newsblog/newsblog.properties
create mode 100755 suite/chrome/mailnews/offline.properties
create mode 100755 suite/chrome/mailnews/offlineStartup.properties
create mode 100755 suite/chrome/mailnews/outlookImportMsgs.properties
create mode 100755 suite/chrome/mailnews/pgpmime.properties
create mode 100755 suite/chrome/mailnews/pref/AccountManager.dtd
create mode 100755 suite/chrome/mailnews/pref/AccountWizard.dtd
create mode 100755 suite/chrome/mailnews/pref/am-addressing.dtd
create mode 100755 suite/chrome/mailnews/pref/am-advanced.dtd
create mode 100755 suite/chrome/mailnews/pref/am-archiveoptions.dtd
create mode 100755 suite/chrome/mailnews/pref/am-copies.dtd
create mode 100755 suite/chrome/mailnews/pref/am-identities-list.dtd
create mode 100755 suite/chrome/mailnews/pref/am-identity-edit.dtd
create mode 100755 suite/chrome/mailnews/pref/am-junk.dtd
create mode 100755 suite/chrome/mailnews/pref/am-main.dtd
create mode 100755 suite/chrome/mailnews/pref/am-mdn.dtd
create mode 100755 suite/chrome/mailnews/pref/am-mdn.properties
create mode 100755 suite/chrome/mailnews/pref/am-offline.dtd
create mode 100755 suite/chrome/mailnews/pref/am-server-advanced.dtd
create mode 100755 suite/chrome/mailnews/pref/am-server-top.dtd
create mode 100755 suite/chrome/mailnews/pref/am-serverwithnoidentities.dtd
create mode 100755 suite/chrome/mailnews/pref/mailPrefsOverlay.dtd
create mode 100755 suite/chrome/mailnews/pref/pref-addressing.dtd
create mode 100755 suite/chrome/mailnews/pref/pref-character_encoding.dtd
create mode 100755 suite/chrome/mailnews/pref/pref-composing_messages.dtd
create mode 100755 suite/chrome/mailnews/pref/pref-directory-add.dtd
create mode 100755 suite/chrome/mailnews/pref/pref-directory.dtd
create mode 100755 suite/chrome/mailnews/pref/pref-formatting.dtd
create mode 100755 suite/chrome/mailnews/pref/pref-junk.dtd
create mode 100755 suite/chrome/mailnews/pref/pref-mailnews.dtd
create mode 100755 suite/chrome/mailnews/pref/pref-notifications.dtd
create mode 100755 suite/chrome/mailnews/pref/pref-offline.dtd
create mode 100755 suite/chrome/mailnews/pref/pref-receipts.dtd
create mode 100755 suite/chrome/mailnews/pref/pref-tags.dtd
create mode 100755 suite/chrome/mailnews/pref/pref-viewing_messages.dtd
create mode 100755 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 100755 suite/chrome/mailnews/pref/replicationProgress.properties
create mode 100755 suite/chrome/mailnews/pref/smtpEditOverlay.dtd
create mode 100755 suite/chrome/mailnews/region.properties
create mode 100755 suite/chrome/mailnews/renameFolderDialog.dtd
create mode 100755 suite/chrome/mailnews/search-attributes.properties
create mode 100755 suite/chrome/mailnews/search-operators.properties
create mode 100755 suite/chrome/mailnews/search.properties
create mode 100755 suite/chrome/mailnews/searchTermOverlay.dtd
create mode 100755 suite/chrome/mailnews/shutdownWindow.properties
create mode 100755 suite/chrome/mailnews/smime.properties
create mode 100755 suite/chrome/mailnews/smime/am-smime.dtd
create mode 100755 suite/chrome/mailnews/smime/am-smime.properties
create mode 100755 suite/chrome/mailnews/smime/certFetchingStatus.dtd
create mode 100755 suite/chrome/mailnews/smime/msgCompSMIMEOverlay.dtd
create mode 100755 suite/chrome/mailnews/smime/msgCompSMIMEOverlay.properties
create mode 100755 suite/chrome/mailnews/smime/msgCompSecurityInfo.dtd
create mode 100755 suite/chrome/mailnews/smime/msgCompSecurityInfo.properties
create mode 100755 suite/chrome/mailnews/smime/msgReadSMIMEOverlay.dtd
create mode 100755 suite/chrome/mailnews/smime/msgReadSMIMEOverlay.properties
create mode 100755 suite/chrome/mailnews/smime/msgReadSecurityInfo.dtd
create mode 100755 suite/chrome/mailnews/smime/msgSecurityInfo.properties
create mode 100755 suite/chrome/mailnews/start.dtd
create mode 100755 suite/chrome/mailnews/subscribe.dtd
create mode 100755 suite/chrome/mailnews/subscribe.properties
create mode 100644 suite/chrome/mailnews/tabmail.properties
create mode 100755 suite/chrome/mailnews/textImportMsgs.properties
create mode 100755 suite/chrome/mailnews/threadpane.dtd
create mode 100755 suite/chrome/mailnews/vCardImportMsgs.properties
create mode 100755 suite/chrome/mailnews/viewLog.dtd
create mode 100755 suite/chrome/mailnews/virtualFolderListDialog.dtd
create mode 100755 suite/chrome/mailnews/virtualFolderProperties.dtd
create mode 100755 suite/chrome/mailnews/wmImportMsgs.properties
create mode 100755 suite/chrome/mozldap/ldap.properties
create mode 100755 suite/crashreporter/crashreporter-override.ini
create mode 100755 suite/defines.inc
create mode 100755 suite/extra-jar.mn
create mode 100755 suite/installer/windows/custom.properties
create mode 100755 suite/installer/windows/mui.properties
create mode 100755 suite/installer/windows/override.properties
create mode 100755 suite/profile/bookmarks.extra
create mode 100755 suite/profile/bookmarks.inc
create mode 100755 suite/profile/chrome/userChrome-example.css
create mode 100755 suite/profile/chrome/userContent-example.css
create mode 100755 suite/profile/panels.extra
create mode 100755 suite/suite-l10n.js
create mode 100755 suite/updater/updater.ini
create mode 100755 toolkit/chrome/alerts/alert.dtd
create mode 100644 toolkit/chrome/alerts/alert.properties
create mode 100755 toolkit/chrome/autoconfig/autoconfig.properties
create mode 100755 toolkit/chrome/global-platform/mac/intl.properties
create mode 100755 toolkit/chrome/global-platform/mac/platformKeys.properties
create mode 100755 toolkit/chrome/global-platform/unix/intl.properties
create mode 100755 toolkit/chrome/global-platform/unix/platformKeys.properties
create mode 100755 toolkit/chrome/global-platform/win/intl.properties
create mode 100755 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 100755 toolkit/chrome/global/appPicker.dtd
create mode 100644 toolkit/chrome/global/autocomplete.properties
create mode 100755 toolkit/chrome/global/browser.properties
create mode 100755 toolkit/chrome/global/commonDialog.dtd
create mode 100755 toolkit/chrome/global/commonDialogs.properties
create mode 100755 toolkit/chrome/global/contentAreaCommands.properties
create mode 100644 toolkit/chrome/global/datetimebox.dtd
create mode 100755 toolkit/chrome/global/dialog.properties
create mode 100755 toolkit/chrome/global/dialogOverlay.dtd
create mode 100755 toolkit/chrome/global/editMenuOverlay.dtd
create mode 100644 toolkit/chrome/global/extensions.properties
create mode 100644 toolkit/chrome/global/fallbackMenubar.properties
create mode 100755 toolkit/chrome/global/filepicker.properties
create mode 100755 toolkit/chrome/global/findbar.properties
create mode 100755 toolkit/chrome/global/globalKeys.dtd
create mode 100644 toolkit/chrome/global/intl.css
create mode 100755 toolkit/chrome/global/intl.properties
create mode 100755 toolkit/chrome/global/keys.properties
create mode 100644 toolkit/chrome/global/narrate.properties
create mode 100755 toolkit/chrome/global/notification.dtd
create mode 100755 toolkit/chrome/global/printdialog.properties
create mode 100755 toolkit/chrome/global/resetProfile.dtd
create mode 100755 toolkit/chrome/global/resetProfile.properties
create mode 100755 toolkit/chrome/global/tree.dtd
create mode 100755 toolkit/chrome/global/videocontrols.dtd
create mode 100755 toolkit/chrome/global/viewSource.properties
create mode 100755 toolkit/chrome/global/wizard.properties
create mode 100755 toolkit/chrome/mozapps/downloads/downloads.properties
create mode 100755 toolkit/chrome/mozapps/downloads/unknownContentType.properties
create mode 100755 toolkit/chrome/mozapps/extensions/extensions.dtd
create mode 100755 toolkit/chrome/mozapps/extensions/extensions.properties
create mode 100755 toolkit/chrome/mozapps/profile/profileSelection.properties
create mode 100755 toolkit/chrome/mozapps/update/updates.properties
create mode 100755 toolkit/chrome/passwordmgr/passwordmgr.properties
create mode 100755 toolkit/chrome/places/places.properties
create mode 100644 toolkit/crashreporter/aboutcrashes.ftl
create mode 100755 toolkit/crashreporter/crashreporter.ini
create mode 100755 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/alert.ftl
create mode 100644 toolkit/toolkit/global/appPicker.ftl
create mode 100644 toolkit/toolkit/global/browser-utils.ftl
create mode 100644 toolkit/toolkit/global/commonDialog.ftl
create mode 100644 toolkit/toolkit/global/createProfileWizard.ftl
create mode 100644 toolkit/toolkit/global/cspErrors.ftl
create mode 100644 toolkit/toolkit/global/datetimebox.ftl
create mode 100644 toolkit/toolkit/global/handlerDialog.ftl
create mode 100644 toolkit/toolkit/global/notification.ftl
create mode 100644 toolkit/toolkit/global/popupnotification.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/tabprompts.ftl
create mode 100644 toolkit/toolkit/global/textActions.ftl
create mode 100644 toolkit/toolkit/global/tree.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 100755
index 00000000000..b6b67c5c440
--- /dev/null
+++ b/browser/branding/official/brand.dtd
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/browser/branding/official/brand.ftl b/browser/branding/official/brand.ftl
new file mode 100644
index 00000000000..13c03ef7f11
--- /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 100755
index 00000000000..9d6a612125f
--- /dev/null
+++ b/browser/branding/official/brand.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/.
+
+brandShorterName=Firefox
+brandShortName=Firefox
+brandFullName=Mozilla Firefox
+
diff --git a/browser/browser/aboutCertError.ftl b/browser/browser/aboutCertError.ftl
new file mode 100644
index 00000000000..3f48c51859b
--- /dev/null
+++ b/browser/browser/aboutCertError.ftl
@@ -0,0 +1,127 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# 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 = 该è¯ä¹¦ä¸è¢«ä¿¡ä»»ï¼å 为å®ç±æ æç CA è¯ä¹¦é¢åè
é¢åã
+
+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 = å个ç½ç«éè¿è¯ä¹¦è¯æèªå·±ç身份ã{ -brand-short-name } ä¸è½ä¿¡ä»»æ¤ç½ç«ï¼å 为å®ä½¿ç¨çè¯ä¹¦å¯¹ { $hostname } æ æã
+
+# Variables:
+# $hostname (String) - Hostname of the website with cert error.
+# $alt-name (String) - Alternate domain name for which the cert is valid.
+cert-error-domain-mismatch-single = å个ç½ç«éè¿è¯ä¹¦è¯æèªå·±ç身份ã{ -brand-short-name } ä¸è½ä¿¡ä»»æ¤ç½ç«ï¼å®ä½¿ç¨çè¯ä¹¦å¯¹ { $hostname } æ æã æ¤è¯ä¹¦ä»
对 { $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 = å个ç½ç«éè¿è¯ä¹¦è¯æèªå·±ç身份ã{ -brand-short-name } ä¸è½ä¿¡ä»»æ¤ç½ç«ï¼å®ä½¿ç¨çè¯ä¹¦å¯¹ { $hostname } æ æã æ¤è¯ä¹¦ä»
对 { $alt-name } ææã
+
+# Variables:
+# $subject-alt-names (String) - Alternate domain names for which the cert is valid.
+cert-error-domain-mismatch-multiple = å个ç½ç«éè¿è¯ä¹¦è¯æèªå·±ç身份ã{ -brand-short-name } ä¸è½ä¿¡ä»»æ¤ç½ç«ï¼å®ä½¿ç¨çè¯ä¹¦å¯¹ { $hostname } æ æã该è¯ä¹¦åªéç¨äºä¸ååç§°ï¼ { $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 = æ¨å¯ä»¥åç½ç«ç®¡çåå馿¤é®é¢ã
+
+cert-error-old-tls-version = æ¤ç½ç«å¯è½ä¸æ¯æ TLS 1.2 åè®®ï¼èè¿æ¯ { -brand-short-name } æ¯æçæä½çæ¬ã
+
+# Variables:
+# $hasHSTS (Boolean) - Indicates whether HSTS header is present.
+cert-error-details-hsts-label = HTTP ä¸¥æ ¼ä¼ è¾å®å
¨ï¼HSTSï¼ï¼{ $hasHSTS }
+
+# Variables:
+# $hasHPKP (Boolean) - Indicates whether HPKP header is present.
+cert-error-details-key-pinning-label = HTTP å
¬é¥åºå®ï¼{ $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 = 代çæå¡å¨æç»è¿æ¥
+proxyResolveFailure-title = æ æ³æ¾å°ä»£çæå¡å¨
+redirectLoop-title = æ¤é¡µé¢ä¸è½æ£ç¡®å°éå®å
+unknownSocketType-title = æå¡å¨ååºå¼å¸¸
+nssFailure2-title = 建ç«å®å
¨è¿æ¥å¤±è´¥
+csp-xfo-error-title = { -brand-short-name } æ æ³æå¼æ¤é¡µé¢
+corruptedContentError-title = å
容æåé误
+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..adbd61c7673
--- /dev/null
+++ b/browser/browser/aboutConfig.ftl
@@ -0,0 +1,54 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+## These strings 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 = å¸å°
+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..af77e09a4a6
--- /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 } è¯çäº ãæä»¬æ¯ä¸ä¸ªï¼æºæè´åäºè®©äºèç½ä¿æå¼æ¾ãå
¬å¼ä¸äººäººå¯ç¨ã
+
+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..5102a3b226a
--- /dev/null
+++ b/browser/browser/aboutLogins.ftl
@@ -0,0 +1,343 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 = æçå¯ç
+
+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-passwords-help = è¥éæ´å¤å¸®å©ï¼è¯·è®¿é®å¯ç æ¯æé¡µé¢ã
+about-logins-intro-browser-only-import = è¥ç»å½ä¿¡æ¯ä¿åå¨å
¶ä»æµè§å¨ï¼æ¨å¯ä»¥å¯¼å
¥å° { -brand-product-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 = å¤å¶åæ¾çå¯ç
+
+# 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
+
+## 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 = ç»å½ä¿¡æ¯.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..d9e6056f0c5
--- /dev/null
+++ b/browser/browser/aboutPocket.ftl
@@ -0,0 +1,77 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### Pocket button panel strings for about:pocket-saved, about:pocket-signup, and about:pocket-home
+
+
+## about:pocket-saved panel
+
+# Placeholder text for tag input
+pocket-panel-saved-add-tags =
+ .placeholder = æ·»å æ ç¾
+
+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-error-remove = å°è¯ç§»é¤æ¤é¡µé¢æ¶åºéã
+pocket-panel-saved-page-removed = 页é¢å·²ç§»é¤
+pocket-panel-saved-page-saved = å·²ä¿åå° { -pocket-brand-name }
+pocket-panel-saved-page-saved-b = å·²ä¿åè³ { -pocket-brand-name }ï¼
+pocket-panel-saved-processing-remove = æ£å¨ç§»é¤é¡µé¢â¦
+pocket-panel-saved-removed = å·²ä»âæçå表âç§»é¤é¡µé¢
+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 = æ¥çå表
+
+# This is displayed above a field where the user can add tags
+pocket-panel-signup-add-tags = æ·»å æ ç¾ï¼
+
+## 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 = ç¹å» { -pocket-brand-name } æé®ä¿å { -brand-product-name } ä¸çä»»ä½æç« ãè§é¢æé¡µé¢ã
+pocket-panel-signup-tagline-story-two = å¨ä»»ä½æ¶é´ãä»»ä½è®¾å¤ä¸ç { -pocket-brand-name } 䏿¥çã
+
+pocket-panel-signup-cta-a-fix = æ¨çäºèç½å
容ä¿åæé®ã
+pocket-panel-signup-cta-b = ç¹å» { -pocket-brand-name } æé®ï¼å³å¯ä¿åæç« ãè§é¢å龿¥ãæ¨å¯ä»¥éæ¶éå°å¨ä»»ä½è®¾å¤ä¸æ¥çé
读å表ã
+pocket-panel-signup-cta-b-short = ç¹å» { -pocket-brand-name } æé®ï¼å³å¯ä¿åæç« ãè§é¢å龿¥ã
+pocket-panel-signup-cta-c = éæ¶éå°å¨ä»»ä½è®¾å¤ä¸æ¥çé
读å表ã
+
+## about:pocket-home panel
+
+pocket-panel-home-my-list = æçå表
+pocket-panel-home-welcome-back = 欢è¿åæ¥
+pocket-panel-home-paragraph = æ¨å¯ä»¥ä½¿ç¨ { -pocket-brand-name } æµè§åä¿åç½é¡µãæç« ãè§é¢ãæå®¢ï¼æåå°ä¸æ¬¡æªé
读å®çå
容ã
+pocket-panel-home-explore-popular-topics = æµè§çé¨è¯é¢
+pocket-panel-home-discover-more = åç°æ´å¤
+pocket-panel-home-explore-more = åç°
+
+pocket-panel-home-most-recent-saves = 以䏿¯æ¨æè¿ä¿åçå
容ï¼
+pocket-panel-home-most-recent-saves-loading = æ£å¨å è½½è¿æä¿åå
容â¦
+pocket-panel-home-new-user-cta = ç¹å» { -pocket-brand-name } æé®ï¼å³å¯ä¿åæç« ãè§é¢å龿¥ã
+pocket-panel-home-new-user-message = 卿¤æ¥çæ¨æè¿ä¿åçå
容ã
+
+## Pocket panel header component
+
+pocket-panel-header-my-list = æ¥çæçå表
+pocket-panel-header-sign-in = ç»å½
+
+## Pocket panel buttons
+
+pocket-panel-button-show-all = æ¾ç¤ºå
¨é¨
+pocket-panel-button-activate = å¯ç¨ { -brand-product-name } ä¸ç { -pocket-brand-name }
+pocket-panel-button-remove = ç§»é¤
diff --git a/browser/browser/aboutPolicies.ftl b/browser/browser/aboutPolicies.ftl
new file mode 100644
index 00000000000..9099cd03477
--- /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..4bacb4d8448
--- /dev/null
+++ b/browser/browser/aboutPrivateBrowsing.ftl
@@ -0,0 +1,62 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+privatebrowsingpage-open-private-window-label = æå¼éç§çªå£
+ .accesskey = P
+about-private-browsing-search-placeholder = å¨ç½ç»ä¸æç´¢
+about-private-browsing-info-title = æ¨å·²è¿å
¥éç§çªå£
+about-private-browsing-search-btn =
+ .title = ç½ä¸æç´¢
+# 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-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 } 坿ä¾éç§ä¿æ¤
+about-private-browsing-focus-promo-cta = ä¸è½½ { -focus-brand-name }
+about-private-browsing-focus-promo-header = { -focus-brand-name }ï¼éæå¯å¾çéç§æµè§
+about-private-browsing-focus-promo-text = æä»¬éç§æµè§ä¸ç¨ Appï¼å¯èªå¨æ¸
餿¨æ¯æ¬¡ä¸ç½çæµè§è®°å½å Cookieã
+
+## The following strings will be used for experiments in Fx99 and Fx100
+
+about-private-browsing-focus-promo-header-b = ææºä¸äº¦å¯ç§å¯æµè§
+about-private-browsing-focus-promo-text-b = å¨ { -focus-brand-name } ä¸éç§æç´¢ä¸æ¿è¢«ä¸»æµè§å¨è®°å½çå
容ã
+about-private-browsing-focus-promo-header-c = ç§»å¨ç«¯æ´å¼ºå¤§çéç§ä¿æ¤
+about-private-browsing-focus-promo-text-c = { -focus-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 = å
³é
+about-private-browsing-promo-close-button =
+ .title = å
³é
+
+## Strings used in a âpin promotionâ message, which prompts users to pin a private window
+
+about-private-browsing-pin-promo-header = ä¸é®è¿å
¥éç§æµè§æ¨¡å¼
+about-private-browsing-pin-promo-link-text =
+ { PLATFORM() ->
+ [macos] å¨ç¨åºåä¸ä¿ç
+ *[other] åºå®å°ä»»å¡æ
+ }
+about-private-browsing-pin-promo-title = ä¸ä¿åä»»ä½ Cookie ååå²è®°å½ï¼éç§æµè§ä¸çç迹ã
diff --git a/browser/browser/aboutRestartRequired.ftl b/browser/browser/aboutRestartRequired.ftl
new file mode 100644
index 00000000000..8112de68119
--- /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-heading = é坿µè§å¨ä»¥ç»§ç»ä½¿ç¨ { -brand-short-name }
+restart-required-intro = å·²å¨åå°æ´æ° { -brand-short-name }ï¼éé坿µè§å¨æè½å®ææ´æ°ã
+window-restoration-info = æ¨å¨ééç§æ¨¡å¼ä¸ççªå£åæ ç¾é¡µï¼å°ä¼å¾å¿«æ¢å¤ã
+
+restart-button-label = éå¯ { -brand-short-name }
diff --git a/browser/browser/aboutRobots.ftl b/browser/browser/aboutRobots.ftl
new file mode 100644
index 00000000000..85cb24d4334
--- /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 = é«ç¹ï¼ä¸è¦ç¸é£è¿ä¸ªä¸çï¼
+# 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..21b4eef2065
--- /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..324cb6940ec
--- /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..cbe88bd96f5
--- /dev/null
+++ b/browser/browser/aboutUnloads.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### Strings used in about:unloads, allowing users to manage the "tab unloading"
+### feature.
+
+about-unloads-page-title = æ ç¾é¡µå¸è½½
+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..2ddc7295e52
--- /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..b0d9ed6940d
--- /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..bf514c5f52f
--- /dev/null
+++ b/browser/browser/appExtensionFields.ftl
@@ -0,0 +1,31 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Theme names and descriptions used in the Themes panel in about:addons
+
+# "Auto" is short for automatic. It can be localized without limitations.
+extension-default-theme-name-auto = ç³»ç»ä¸»é¢ â èªå¨
+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 æå±±é
+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..15e2497bc48
--- /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 } çå¦ä¸å¯æ¬è¿å¨è¿è¡ï¼å æ¤æ æ³å®è£
ãæ¨å¯ä»¥å°å
¶å
³éä»¥ç»§ç»æ´æ°ï¼æéæ©ä»è¦æ´æ°ï¼å
¶ä»å¯æ¬å¨éæ°å¯å¨ä¹åå¯è½æ æ³æ£å¸¸å·¥ä½ï¼ã
+
+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..28adfe51398
--- /dev/null
+++ b/browser/browser/appmenu.ftl
@@ -0,0 +1,252 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## App Menu
+
+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 = å¼å¯åæ¥...
+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-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-button =
+ .label = ç¼è¾è®¾ç½®â¦
+profiler-popup-recording-screen = æ£å¨è®°å½â¦
+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 = æ¨èå¨è°è¯å¤§é¨å Web åºç¨ç¨åºæ¶ä½¿ç¨ï¼å¼éè¾å°ã
+profiler-popup-presets-web-developer-label =
+ .label = Web å¼åè
+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-networking-description = æ¨èå¨ææ¥ { -brand-shorter-name } èç½ Bug æ¶ä½¿ç¨ã
+profiler-popup-presets-networking-label =
+ .label = èç½
+profiler-popup-presets-power-description = æ¨èå¨ææ¥ { -brand-shorter-name } èçµ Bug æ¶ä½¿ç¨ï¼å¼éè¾å°ã
+# "Power" is used in the sense of energy (electricity used by the computer).
+profiler-popup-presets-power-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-share-ideas =
+ .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-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..5d6c6a3a117
--- /dev/null
+++ b/browser/browser/branding/brandings.ftl
@@ -0,0 +1,40 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## The following feature names must be treated as a brand.
+##
+## They cannot be:
+## - Transliterated.
+## - Translated.
+##
+## Declension should be avoided where possible, leaving the original
+## brand unaltered in prominent UI positions.
+##
+## For further details, consult:
+## https://mozilla-l10n.github.io/styleguides/mozilla_general/#brands-copyright-and-trademark
+
+-facebook-container-brand-name = Facebook Container
+-lockwise-brand-name = Firefox Lockwise
+-lockwise-brand-short-name = Lockwise
+-monitor-brand-name = Firefox Monitor
+-monitor-brand-short-name = Monitor
+-pocket-brand-name = Pocket
+-send-brand-name = Firefox Send
+-screenshots-brand-name = Firefox Screenshots
+-mozilla-vpn-brand-name = Mozilla VPN
+-profiler-brand-name = Firefox Profiler
+-translations-brand-name = Firefox Translations
+-rally-brand-name = Mozilla Rally
+-rally-short-name = Rally
+-focus-brand-name = Firefox Focus
+# âSuggestâ can be localized, âFirefoxâ must be treated as a brand
+# and kept in English.
+-firefox-suggest-brand-name = Firefoxâ建议
+# âHome" can be localized, âFirefoxâ must be treated as a brand
+# and kept in English.
+-firefox-home-brand-name = Firefox 主页
+# View" can be localized, âFirefoxâ must be treated as a brand
+# and kept in English.
+-firefoxview-brand-name = Firefox View
diff --git a/browser/browser/branding/sync-brand.ftl b/browser/browser/branding/sync-brand.ftl
new file mode 100644
index 00000000000..e8ec99e208e
--- /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..eabd7f128c4
--- /dev/null
+++ b/browser/browser/browser.ftl
@@ -0,0 +1,909 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 } âï¼éç§æµè§ï¼
+# These are the default window titles everywhere except macOS. The first two
+# attributes are used when the web content opened has no title:
+#
+# default - "Mozilla Firefox"
+# private - "Mozilla Firefox (Private Browsing)"
+#
+# The last two are for use when there *is* a content title.
+# Variables:
+# $content-title (String): the title of the web content.
+browser-main-window-window-titles =
+ .data-title-default = { -brand-full-name }
+ .data-title-private = { -brand-full-name } éç§æµè§
+ .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-window-titles =
+ .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 }
+private-browsing-shortcut-text = { -brand-short-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-search-mode-actions = æä½
+
+##
+
+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 = ç§»é¤æ©å±
+page-action-manage-extension2 =
+ .label = ç®¡çæ©å±â¦
+ .accesskey = E
+page-action-remove-extension2 =
+ .label = ç§»é¤æ©å±
+ .accesskey = v
+
+## 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 }ï¼
+search-one-offs-actions =
+ .tooltiptext = æä½ï¼{ $restrict }ï¼
+
+## QuickActions are shown in the urlbar as the user types a matching string
+
+
+## QuickActions are shown in the urlbar as the user types a matching string
+## The -cmd- strings are comma separated list of keywords that will match
+## the action.
+
+# Opens the about:addons page in the home / recommendations section
+quickactions-addons = æ¥çéå ç»ä»¶
+quickactions-cmd-addons = éå ç»ä»¶, æ©å±, 主é¢, add-ons, extensions, themes
+quickactions-cmd-addons2 = éå ç»ä»¶
+# Opens the bookmarks library window
+quickactions-bookmarks = æ¥ç书ç¾
+quickactions-cmd-bookmarks = 书ç¾, bookmarks
+# Opens a SUMO article explaining how to clear history
+quickactions-clearhistory = æ¸
é¤åå²
+quickactions-cmd-clearhistory = æ¸
é¤åå², clear history
+# Opens about:downloads page
+quickactions-downloads = æå¼ä¸è½½
+quickactions-cmd-downloads = ä¸è½½, downloads
+# Opens about:addons page in the extensions section
+quickactions-extensions = ç®¡çæ©å±
+quickactions-cmd-extensions = æ©å±
+# Opens the devtools web inspector
+quickactions-inspector = æ¥çæºä»£ç
+quickactions-cmd-inspector = æ¥çå¨, å¼åå·¥å
·, inspector, devtools
+# Opens about:logins
+quickactions-logins = æ¥çç»å½ä¿¡æ¯
+quickactions-cmd-logins = ç»å½ä¿¡æ¯, å¯ç , logins, passwords
+# Opens about:addons page in the plugins section
+quickactions-plugins = 管çæä»¶
+quickactions-cmd-plugins = æä»¶
+# Opens the print dialog
+quickactions-print = æå°
+quickactions-cmd-print = æå°, print
+# Opens a new private browsing window
+quickactions-private = æå¼éç§æµè§çªå£
+quickactions-cmd-private = éç§æµè§, private browsing
+# Opens a SUMO article explaining how to refresh
+quickactions-refresh = ç¿»æ° { -brand-short-name }
+quickactions-cmd-refresh = å·æ°, refresh
+# Restarts the browser
+quickactions-restart = éå¯ { -brand-short-name }
+quickactions-cmd-restart = éæ°å¯å¨, éå¯, restart
+# Opens the screenshot tool
+quickactions-screenshot2 = æªå¾
+quickactions-cmd-screenshot = æªå¾, screenshot
+# Opens about:preferences
+quickactions-settings = æå¼è®¾ç½®
+quickactions-cmd-settings = 设置, å好设置, é项, settings, preferences, options
+# Opens about:addons page in the themes section
+quickactions-themes = 管ç主é¢
+quickactions-cmd-themes = 主é¢
+# Opens a SUMO article explaining how to update the browser
+quickactions-update = æ´æ° { -brand-short-name }
+quickactions-cmd-update = æ´æ°, update
+# Opens the view-source UI with current pages source
+quickactions-viewsource = æ¥çæºä»£ç
+quickactions-cmd-viewsource = æ¥çæºä»£ç , æºä»£ç , view source, source
+
+## 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 } 个书ç¾
+ .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-Only 模å¼
+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-Only 模å¼ã
+identity-https-only-info-turn-off2 = è¥é¡µé¢çèµ·æ¥ä¸æ£å¸¸ï¼åå¯è½éè¦ä¸ºæ¤ç½ç«å
³é HTTPS-Only 模å¼ï¼ä½¿ç¨ä¸å®å
¨ç 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 = 请éè¿âWeb å¼åè
âèåæå¼å¼åè
å·¥å
·ï¼æè½ä½¿ç¨ 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 = ç½ä¸æç´¢
+ .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 = æç´¢æ ç¾é¡µ
+# This placeholder is used when searching quick actions.
+urlbar-placeholder-search-mode-other-actions =
+ .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 = æç´¢æ ç¾é¡µ
+urlbar-result-action-search-actions = æç´¢æä½
+
+## Labels shown above groups of urlbar results
+
+# A label shown above the "Firefox Suggest" (bookmarks/history) group in the
+# urlbar results.
+urlbar-group-firefox-suggest =
+ .label = { -firefox-suggest-brand-name }
+# A label shown above the search suggestions group in the urlbar results. It
+# should use sentence case.
+# Variables
+# $engine (String): the name of the search engine providing the suggestions
+urlbar-group-search-suggestions =
+ .label = { $engine }â建议
+# A label shown above Quick Actions in the urlbar results.
+urlbar-group-quickactions =
+ .label = å¿«æ·æä½
+
+## 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 = ç¼è¾æ¤ä¹¦ç¾
+bookmarks-subview-edit-bookmark =
+ .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 = å°å½åæ ç¾é¡µå å
¥ä¹¦ç¾
+# "Bookmark" is a verb, as in "Add current tab to bookmarks".
+bookmarks-subview-bookmark-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] æå¼è®¾ç½®
+ }
+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 } ä¸¾æ¥æ¤æ©å±
+
+##
+
+# "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-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 = åè¯æå¦ä½å
+
+## Mozilla data reporting notification (Telemetry, Firefox Health Report, etc)
+
+data-reporting-notification-message = { -brand-short-name } ä¼èªå¨å { -vendor-short-name } åé¦ä¸äºæ°æ®ï¼ä»¥ä¾¿æä»¬æ¹åæ¨ç使ç¨ä½éªã
+data-reporting-notification-button =
+ .label = æè¦éæ©æä¾åªäºä¿¡æ¯
+ .accesskey = C
+# Label for the indicator shown in the private browsing window titlebar.
+private-browsing-indicator-label = éç§æµè§
+
+## Unified extensions (toolbar) button
+
+unified-extensions-button =
+ .label = æ©å±
+ .tooltiptext = æ©å±
diff --git a/browser/browser/browserContext.ftl b/browser/browser/browserContext.ftl
new file mode 100644
index 00000000000..78be0c77147
--- /dev/null
+++ b/browser/browser/browserContext.ftl
@@ -0,0 +1,420 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+navbar-tooltip-instruction =
+ .value =
+ { PLATFORM() ->
+ [macos] 䏿æ¾ç¤ºåå²
+ *[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-bookmark-page =
+ .aria-label = å°é¡µé¢å å
¥ä¹¦ç¾â¦
+ .accesskey = m
+ .tooltiptext = å°é¡µé¢å å
¥ä¹¦ç¾
+# This menuitem is only visible on macOS
+# Cannot be shown at the same time as main-context-menu-edit-bookmark-mac,
+# so should probably have the same access key if possible.
+main-context-menu-bookmark-page-mac =
+ .label = å°é¡µé¢å å
¥ä¹¦ç¾â¦
+ .accesskey = m
+# This menuitem is only visible on macOS
+# Cannot be shown at the same time as main-context-menu-bookmark-page-mac,
+# so should probably have the same access key if possible.
+main-context-menu-edit-bookmark-mac =
+ .label = ç¼è¾ä¹¦ç¾â¦
+ .accesskey = m
+# Variables
+# $shortcut (String) - A keyboard shortcut for the add bookmark command.
+main-context-menu-bookmark-page-with-shortcut =
+ .aria-label = å°é¡µé¢å å
¥ä¹¦ç¾â¦
+ .accesskey = m
+ .tooltiptext = å°é¡µé¢å å
¥ä¹¦ç¾ï¼{ $shortcut }ï¼
+main-context-menu-edit-bookmark =
+ .aria-label = ç¼è¾ä¹¦ç¾â¦
+ .accesskey = m
+ .tooltiptext = ç¼è¾ä¹¦ç¾
+# Variables
+# $shortcut (String) - A keyboard shortcut for the edit bookmark command.
+main-context-menu-edit-bookmark-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 = C
+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-bookmark-link-2 =
+ .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" 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-phone =
+ .label = å¤å¶çµè¯å·ç
+ .accesskey = o
+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-copy-text =
+ .label = å¤å¶å¾åå
æå
+ .accesskey = T
+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-add-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-print-selection-2 =
+ .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
+main-context-menu-reveal-password =
+ .label = æ¾ç¤ºå¯ç
+ .accesskey = v
diff --git a/browser/browser/browserSets.ftl b/browser/browser/browserSets.ftl
new file mode 100644
index 00000000000..6cb50fedaab
--- /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/colorwaycloset.ftl b/browser/browser/colorwaycloset.ftl
new file mode 100644
index 00000000000..81ba0c6ee3a
--- /dev/null
+++ b/browser/browser/colorwaycloset.ftl
@@ -0,0 +1,20 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Variables:
+# $expiryDate (string) - date on which the colorway collection expires. When formatting this, you may omit the year, only exposing the month and day, as colorway collections will always expire within a year.
+colorway-collection-expiry-label = { DATETIME($expiryDate, month: "long", day: "numeric") }å°æ
+colorway-intensity-selector-label = 飿 ¼
+colorway-intensity-soft = æå
+colorway-intensity-balanced = 平衡
+# "Bold" is used in the sense of bravery or courage, not in the sense of
+# emphasized text.
+colorway-intensity-bold = æµç
+# Label for the button to keep using the selected colorway in the browser
+colorway-closet-set-colorway-button = 设置é
è²
+colorway-closet-cancel-button = åæ¶
+colorway-homepage-reset-prompt = å°â{ -firefox-home-brand-name }â设为æ¨çå¤å½©ä¸»é¡µ
+colorway-homepage-reset-success-message = å·²å°â{ -firefox-home-brand-name }â设为æ¨ç主页
+colorway-homepage-reset-apply-button = åºç¨
+colorway-homepage-reset-undo-button = æ¤é
diff --git a/browser/browser/colorways.ftl b/browser/browser/colorways.ftl
new file mode 100644
index 00000000000..cddb566b534
--- /dev/null
+++ b/browser/browser/colorways.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/.
+
+
+## Colorway collections
+
+colorway-collection-independent-voices = å¡äººä¹å£°
+colorway-collection-independent-voices-description = è²å½©ä¹é
ï¼æåä¹å³ãææ°çé
è²æ¯ä¸ºèµé¢è®©ä¸çå徿´ç¾å¥½ç声é³ã
+# Used as a subheading for the colorway collection card in about:addons
+colorway-collection-independent-voices-short-description = è²å½©ä¹é
ï¼æåä¹å³
+
+## Colorway names and descriptions
+
+playmaker-colorway-name = å®åæ´¾
+playmaker-colorway-description = æ¨æ¯åäºæåçå
³é®ï¼å¹¶ä¹äºå¸®å©å¨å´ç人ä¸åæåã
+expressionist-colorway-name = è¡¨ç°æ´¾
+expressionist-colorway-description = æ¨ä»¥ä¸åçæ¹å¼çå¾
ä¸çï¼å¹¶åç¨åä½å¼èµ·ä»äººçæ
æå
±é¸£ã
+visionary-colorway-name = è¿è§æ´¾
+visionary-colorway-description = æ¨ä¸æ»¡è¶³äºç°ç¶ï¼å¹¶å¸¦é¢å¤§å®¶ç
æ³æ´ç¾å¥½çæªæ¥ã
+activist-colorway-name = è¡å¨æ´¾
+activist-colorway-description = æ¨è®©ä¸çå徿´ç¾å¥½ï¼å¹¶å¼å¯¼ä»äººç¸ä¿¡äº¦åºå¦æ¤ã
+dreamer-colorway-name = çæ³æ´¾
+dreamer-colorway-description = æ¨ç¸ä¿¡å½è¿åç±å¤§èç人ï¼å¹¶æ¿å±ä»äººåæ¢åèªå·±ã
+innovator-colorway-name = åæ°æ´¾
+innovator-colorway-description = æ¨åäºææå夿ºä¼ï¼å¹¶æ£åå½±å身边ææäººã
diff --git a/browser/browser/customizeMode.ftl b/browser/browser/customizeMode.ftl
new file mode 100644
index 00000000000..9d1a92dcece
--- /dev/null
+++ b/browser/browser/customizeMode.ftl
@@ -0,0 +1,38 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+customize-mode-restore-defaults =
+ .label = æ¢å¤é»è®¤è®¾ç½®
+customize-mode-menu-and-toolbars-header = æéè¦çä¸è¥¿æè¿å·¥å
·æ ææå èåã
+customize-mode-overflow-list-title = æå èå
+customize-mode-uidensity =
+ .label = å¯åº¦
+customize-mode-done =
+ .label = 宿
+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-overflow-list-description = æé®å¯ä»¥ææ¾å°è¿éï¼æ¹ä¾¿ä½¿ç¨ãä¸å ç¨å·¥å
·æ 空é´
+customize-mode-uidensity-menu-normal =
+ .label = æ®é
+ .accesskey = N
+ .tooltiptext = æ®é
+customize-mode-uidensity-menu-compact-unsupported =
+ .label = ç´§åï¼ä¸æ¯æï¼
+ .accesskey = C
+ .tooltiptext = ç´§åï¼ä¸æ¯æï¼
+customize-mode-undo-cmd =
+ .label = æ¤é
+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..67fdfbb9f93
--- /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 } 设为é»è®¤æµè§å¨å¹¶ä¿çå¨ç¨åºåä¸ï¼æ¹ä¾¿éæå¼å¯ã
+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..8fc8c425b55
--- /dev/null
+++ b/browser/browser/downloads.ftl
@@ -0,0 +1,234 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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: 45em
+
+downloads-cmd-pause =
+ .label = æå
+ .accesskey = P
+downloads-cmd-resume =
+ .label = ç»§ç»
+ .accesskey = R
+downloads-cmd-cancel =
+ .tooltiptext = åæ¶
+downloads-cmd-cancel-panel =
+ .aria-label = åæ¶
+
+downloads-cmd-show-menuitem-2 =
+ .label =
+ { PLATFORM() ->
+ [macos] å¨è®¿è¾¾ä¸æ¾ç¤º
+ *[other] 卿件夹䏿¾ç¤º
+ }
+ .accesskey = F
+
+## Displayed in the downloads context menu for files that can be opened.
+## Variables:
+## $handler (String) - The name of the mime type's default file handler.
+## Example: "Notepad", "Acrobat Reader DC", "7-Zip File Manager"
+
+downloads-cmd-use-system-default =
+ .label = ç¨ç³»ç»æ¥ç卿å¼
+ .accesskey = V
+# This version is shown when the download's mime type has a valid file handler.
+downloads-cmd-use-system-default-named =
+ .label = ç¨ { $handler } æå¼
+ .accesskey = I
+
+# We can use the same accesskey as downloads-cmd-always-open-similar-files.
+# Both should not be visible in the downloads context menu at the same time.
+downloads-cmd-always-use-system-default =
+ .label = ä¸å¾ä½¿ç¨ç³»ç»æ¥ç卿å¼
+ .accesskey = w
+# We can use the same accesskey as downloads-cmd-always-open-similar-files.
+# Both should not be visible in the downloads context menu at the same time.
+# This version is shown when the download's mime type has a valid file handler.
+downloads-cmd-always-use-system-default-named =
+ .label = æ»æ¯ä½¿ç¨ { $handler } æå¼
+ .accesskey = w
+
+##
+
+# We can use the same accesskey as downloads-cmd-always-use-system-default.
+# Both should not be visible in the downloads context menu at the same time.
+downloads-cmd-always-open-similar-files =
+ .label = èªå¨æå¼è¯¥ç±»åæä»¶
+ .accesskey = w
+
+downloads-cmd-show-button-2 =
+ .tooltiptext =
+ { PLATFORM() ->
+ [macos] å¨è®¿è¾¾ä¸æ¾ç¤º
+ *[other] 卿件夹䏿¾ç¤º
+ }
+
+downloads-cmd-show-panel-2 =
+ .aria-label =
+ { PLATFORM() ->
+ [macos] å¨è®¿è¾¾ä¸æ¾ç¤º
+ *[other] 卿件夹䏿¾ç¤º
+ }
+downloads-cmd-show-description-2 =
+ .value =
+ { PLATFORM() ->
+ [macos] å¨è®¿è¾¾ä¸æ¾ç¤º
+ *[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
+downloads-cmd-delete-file =
+ .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 = å°å¨ä¸è½½å®æåæå¼â¦
+downloading-file-click-to-open =
+ .value = ä¸è½½å®æåæå¼
+
+##
+
+# 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..9542023e7a8
--- /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/featureCallout.ftl b/browser/browser/featureCallout.ftl
new file mode 100644
index 00000000000..98aca067bfe
--- /dev/null
+++ b/browser/browser/featureCallout.ftl
@@ -0,0 +1,20 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Callout dialog primary button to advance to next screen
+callout-primary-advance-button-label = ä¸ä¸æ¥
+# Callout dialog primary button to complete the feature tour
+callout-primary-complete-button-label = ç¥éäºï¼
+
+## Firefox View feature tour strings
+
+# "Tab pickup" refers to the section in Firefox View that displays open
+# tabs from other devices
+callout-firefox-view-tab-pickup-title = éè¿âæ¥æ¶æ ç¾é¡µâåè½å¨è®¾å¤é´èªç±åæ¢
+callout-firefox-view-tab-pickup-subtitle = ææºä¸æå¼çæ ç¾é¡µï¼é¡»è¾é´ä¾¿å¯å¨æ¤å¤æµè§ï¼åæ¢èªå¦ã
+callout-firefox-view-recently-closed-title = å¿«éæ¢å¤å
³éçæ ç¾é¡µ
+callout-firefox-view-recently-closed-subtitle = æ¨å
³éçæ ç¾é¡µé½ä¼ç¥å¥å°åºç°å¨è¿éï¼æ æ§è¯¯å
³æ ç¾é¡µã
+callout-firefox-view-colorways-title = å¢å
添彩
+# "Shade" refer to different color options in each colorway.
+callout-firefox-view-colorways-subtitle = éæ©æå¿å¨çé
è²ï¼åªå¨ { -brand-product-name }ã
diff --git a/browser/browser/firefoxView.ftl b/browser/browser/firefoxView.ftl
new file mode 100644
index 00000000000..ffb3531748d
--- /dev/null
+++ b/browser/browser/firefoxView.ftl
@@ -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/.
+
+toolbar-button-firefox-view =
+ .label = { -firefoxview-brand-name }
+ .tooltiptext = { -firefoxview-brand-name }
+menu-tools-firefox-view =
+ .label = { -firefoxview-brand-name }
+ .accesskey = F
+firefoxview-page-title = { -firefoxview-brand-name }
+firefoxview-close-button =
+ .title = å
³é
+ .aria-label = å
³é
+# Used instead of the localized relative time when a timestamp is within a minute or so of now
+firefoxview-just-now-timestamp = åå
+# This is a headline for an area in the product where users can resume and re-open tabs they have previously viewed on other devices.
+firefoxview-tabpickup-header = æ¥æ¶æ ç¾é¡µ
+firefoxview-tabpickup-description = æå¼æ¥èªå
¶ä»è®¾å¤çæ ç¾é¡µã
+firefoxview-tabpickup-recenttabs-description = æè¿çæ ç¾é¡µå°åäºæ¤å¤
+# Variables:
+# $percentValue (Number): the percentage value for setup completion
+firefoxview-tabpickup-progress-label = 宿 { $percentValue }%
+firefoxview-tabpickup-step-signin-header = æ ç¼åæ¢è®¾å¤
+firefoxview-tabpickup-step-signin-description = 请å
ç»å½æå建账æ·ï¼å³å¯å¨æ¤å¤æ¥æ¶ææºä¸çæ ç¾é¡µã
+firefoxview-tabpickup-step-signin-primarybutton = ç»§ç»
+firefoxview-tabpickup-adddevice-header = 䏿¨çææºæå¹³æ¿çµè忥 { -brand-product-name }
+firefoxview-tabpickup-adddevice-description = ä¸è½½ç§»å¨ç { -brand-product-name } å¹¶ç»å½ã
+firefoxview-tabpickup-adddevice-learn-how = äºè§£è¦å¦ä½å
+firefoxview-tabpickup-adddevice-primarybutton = ä¸è½½ { -brand-product-name } ç§»å¨ç
+firefoxview-tabpickup-synctabs-header = å¼å¯æ ç¾é¡µåæ¥
+firefoxview-tabpickup-synctabs-description = å
许 { -brand-short-name } 跨设å¤å
±äº«æ ç¾é¡µã
+firefoxview-tabpickup-synctabs-learn-how = äºè§£è¦å¦ä½å
+firefoxview-tabpickup-synctabs-primarybutton = 忥æå¼çæ ç¾é¡µ
+firefoxview-tabpickup-fxa-admin-disabled-header = æ¨çç»ç»å·²ç¦ç¨åæ¥æå¡
+firefoxview-tabpickup-fxa-admin-disabled-description = ç±äºæ¨ç管çåå·²ç¦ç¨åæ¥æå¡ï¼{ -brand-short-name } æ æ³è·¨è®¾å¤åæ¥æ ç¾é¡µã
+firefoxview-tabpickup-network-offline-header = è¯·æ£æ¥æ¨çäºèç½è¿æ¥
+firefoxview-tabpickup-network-offline-description = è¥æ¨æ£å¨ä½¿ç¨é²ç«å¢æä»£çï¼è¯·æ£æ¥ { -brand-short-name } æ¯å¦æèç½æéã
+firefoxview-tabpickup-network-offline-primarybutton = éè¯
+firefoxview-tabpickup-sync-error-header = 忥æ¶éå°é®é¢
+firefoxview-tabpickup-generic-sync-error-description = { -brand-short-name } ç®åæ æ³è¿æ¥å°åæ¥æå¡ï¼è¯·ç¨ååè¯ã
+firefoxview-tabpickup-sync-error-primarybutton = éè¯
+firefoxview-tabpickup-sync-disconnected-header = å¯ç¨åæ¥æå¡ä»¥ç»§ç»
+firefoxview-tabpickup-sync-disconnected-description = è¥è¦æ¥æ¶æ¨çæ ç¾é¡µï¼éå
å¯ç¨ { -brand-short-name } ç忥æå¡ã
+firefoxview-tabpickup-sync-disconnected-primarybutton = å¨è®¾ç½®ä¸å¯ç¨
+firefoxview-tabpickup-syncing = æ¨çæ ç¾é¡µæ£å¨åæ¥ï¼è¯·ç¨ççå»ã
+firefoxview-mobile-promo-header = ä»ææºæå¹³æ¿çµèæ¥æ¶æ ç¾é¡µ
+firefoxview-mobile-promo-description = è¥è¦æ¥çè¿ææ¨ç§»å¨è®¾å¤ä¸çæ ç¾é¡µï¼è¯·ç»å½ iOS/Android ç { -brand-product-name }ã
+firefoxview-mobile-promo-primarybutton = ä¸è½½ { -brand-product-name } ç§»å¨ç
+firefoxview-mobile-confirmation-header = ð大ååæï¼
+firefoxview-mobile-confirmation-description = æ¨ç°å¨å¯ä»¥æ¶å°æ¥èªå¹³æ¿çµèæææºä¸ç { -brand-product-name } æ ç¾é¡µã
+firefoxview-closed-tabs-title = æè¿å
³é
+firefoxview-closed-tabs-description = 忬¡æå¼æ¨å¨æ¤è®¾å¤ä¸å
³éç页é¢ã
+firefoxview-closed-tabs-placeholder = 没ææè¿å
³éç页é¢
æ æ§è¯¯å
³æ ç¾é¡µï¼æ¨å¯éæ¶å¨æ¤å¤æ¾åã
+# refers to the last tab that was used
+firefoxview-pickup-tabs-badge = æåæµè§
+# Variables:
+# $targetURI (string) - URL that will be opened in the new tab
+firefoxview-tabs-list-tab-button =
+ .title = æ°å»ºæ ç¾é¡µæå¼ { $targetURI }
+firefoxview-try-colorways-button = é
è²éå¿æ¢
+firefoxview-no-current-colorway-collection = æ°çé
è²å³å°ä¸çº¿
+firefoxview-change-colorway-button = æ´æ¹é
è²
+# Variables:
+# $intensity (String): Colorway intensity
+# $collection (String): Colorway Collection name
+firefoxview-colorway-description = { $intensity } · { $collection }
+firefoxview-synced-tabs-placeholder = 空空å¦ä¹
䏿¬¡æ¨å¨å
¶ä»è®¾å¤ä¸ç { -brand-product-name } æå¼é¡µé¢æ¶ï¼å°å¯å¨æ¤çå°åæ¥å
容ã
+firefoxview-collapse-button-show =
+ .title = æ¾ç¤ºå表
+firefoxview-collapse-button-hide =
+ .title = éèå表
diff --git a/browser/browser/menubar.ftl b/browser/browser/menubar.ftl
new file mode 100644
index 00000000000..c9a9fcc0eed
--- /dev/null
+++ b/browser/browser/menubar.ftl
@@ -0,0 +1,329 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 }
+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 = C
+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
+# 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 =
+ .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-bookmark-tab =
+ .label = å°å½åæ ç¾é¡µå å
¥ä¹¦ç¾â¦
+menu-edit-bookmark =
+ .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-share-ideas =
+ .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..db49708c72e
--- /dev/null
+++ b/browser/browser/migration.ftl
@@ -0,0 +1,160 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+migration-wizard =
+ .title = 导å
¥å导
+
+import-from =
+ { PLATFORM() ->
+ [windows] ä»ä¸åæ¥æºå¯¼å
¥é项ã书ç¾ãåå²è®°å½ãå¯ç 以åå
¶ä»æ°æ®ï¼
+ *[other] ä»ä¸åæ¥æºå¯¼å
¥é¦é项ã书ç¾ãåå²è®°å½ãå¯ç 以åå
¶ä»æ°æ®ï¼
+ }
+
+import-from-bookmarks = ä»ä¸åæ¥æºå¯¼å
¥ä¹¦ç¾ï¼
+import-from-ie =
+ .label = 微软 IE æµè§å¨
+ .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 = 请å
å
³ééå®çæµè§å¨ï¼åç»§ç»æä½ã
+
+source-name-ie = 微软 IE æµè§å¨
+source-name-edge = Microsoft Edge
+source-name-chrome = Google Chrome
+
+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/netError.ftl b/browser/browser/netError.ftl
new file mode 100644
index 00000000000..190cac275e8
--- /dev/null
+++ b/browser/browser/netError.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/.
+
+dns-not-found-title = æ¾ä¸å°æå¡å¨
+# Variables:
+# $hostAndPath (String) - a suggested site (e.g. "www.example.com") that the user may have meant instead.
+dns-not-found-with-suggestion = æ¨æ¯è¦æå¼ { $hostAndPath } åï¼
+dns-not-found-hint-header = è¥æ¨ç¡®è®¤è¾å
¥çæ¯æ£ç¡®ç½åï¼å¯ä»¥ï¼
+dns-not-found-hint-try-again = ç¨ååè¯
+dns-not-found-hint-check-network = æ£æ¥æ¨çç½ç»è¿æ¥
+dns-not-found-hint-firewall = æ£æ¥ { -brand-short-name } æ¯å¦æèç½æéï¼å¯è½å·²æ¥å
¥ç½ç»ï¼ä½è¢«é²ç«å¢é»æ¢ï¼
diff --git a/browser/browser/newInstallPage.ftl b/browser/browser/newInstallPage.ftl
new file mode 100644
index 00000000000..839cafb79a7
--- /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..77e45181809
--- /dev/null
+++ b/browser/browser/newtab/asrouter.ftl
@@ -0,0 +1,170 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 = ç«å³å¼å¯
+spotlight-total-cookie-protection-secondary-button = ææ¶ä¸è¦
+cfr-total-cookie-protection-header = æè°¢ææ¨ï¼{ -brand-short-name } çéç§ä¿æ¤è½ååå®å
¨æ§æ¯ä»¥å¾æäº¿ç¹å¼º
+# "Early access" for this feature rollout means it's a "feature preview" or
+# "soft launch". Only those who received it and accepted are shown this message.
+cfr-total-cookie-protection-body = âå
¨æ¹ä½ Cookie ä¿æ¤âæ¯æä»¬è¿ä»ä¸ºæ¢æå¼ºå¤§çéç§ä¿æ¤åè½ï¼ç°å·²ä¸ºææ { -brand-short-name } ç¨æ·é»è®¤å¯ç¨ãè¥æ²¡æåæ¨è¿æ ·çæ©æç¨æ·å䏿µè¯ï¼æä»¬å°±æ æ³æ¨åºæ¤åè½ãé常æè°¢æ¨å¸®å©æä»¬å»ºæä¸ä¸ªæ´ç¾å¥½ãæ´ä¿æ¤éç§çäºèç½ã
+
+## Emotive Continuous Onboarding
+
+spotlight-better-internet-header = æ´å¥½çäºèç½ï¼å§äºä½ æ
+spotlight-better-internet-body = 彿¨ä½¿ç¨ { -brand-short-name }ï¼å³ä»£è¡¨æ¨æç¥¨æ¯æä¸ä¸ªäººäººå¯ç¨ãå¤å¤å¯åï¼è½å¤é ç¦äºææäººççäºèç½ã
+spotlight-peace-mind-header = ä¿æ¤æ¨æ¯æçèè´£
+spotlight-peace-mind-body = { -brand-short-name } 为æ¯ä½ç¨æ·æåæ¦æªè¶
è¿ 3,000 个è·è¸ªå¨ãæ¨è¯å¥½çäºèç½ä½éªï¼ä¸åºåå°ä»»ä½ç ´åï¼å°¤å
¶æ¯å½±åéç§çè·è¸ªå¨ã
+spotlight-pin-primary-button =
+ { PLATFORM() ->
+ [macos] å¨ç¨åºåä¸ä¿ç
+ *[other] åºå®å°ä»»å¡æ
+ }
+spotlight-pin-secondary-button = ææ¶ä¸è¦
diff --git a/browser/browser/newtab/newtab.ftl b/browser/browser/newtab/newtab.ftl
new file mode 100644
index 00000000000..03c30f4a2a1
--- /dev/null
+++ b/browser/browser/newtab/newtab.ftl
@@ -0,0 +1,264 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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-text = ç½ä¸æç´¢
+newtab-search-box-input =
+ .placeholder = ç½ä¸æç´¢
+ .aria-label = ç½ä¸æç´¢
+
+## Top Sites - General form dialog.
+
+newtab-topsites-add-search-engine-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] å¨è®¿è¾¾ä¸æ¾ç¤º
+ *[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-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 } å°æ¨èæ´å¤ç²¾å½©æç« ãçä¸åäºï¼éæ©çé¨ä¸»é¢ï¼æ¾å°æ´å¤ç½ä¸ç好æç« ã
+
+## 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 = é½è¯»å®äº
+# A save to Pocket button that shows over the card thumbnail on hover.
+newtab-pocket-save = ä¿å
+newtab-pocket-saved = å·²ä¿å
+
+## 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-pocket-show-recent-saves = æ¾ç¤ºè¿æä¿åå
容
+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..83fb4dc740e
--- /dev/null
+++ b/browser/browser/newtab/onboarding.ftl
@@ -0,0 +1,371 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### UI strings for the MR1 onboarding / multistage about:welcome
+### Various strings use a non-breaking space to avoid a single dangling /
+### widowed word, so test on various window sizes if you also want this.
+
+
+## Welcome page strings
+
+onboarding-welcome-header = 欢è¿ä½¿ç¨ { -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 = æ·»å æ©å±
+return-to-amo-add-theme-label = å®è£
主é¢
+
+## 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 } å±
+
+# Aria-label to make the "steps" of multistage onboarding visible to screen readers.
+# Variables:
+# $current (Int) - Number of the current page
+# $total (Int) - Total number of pages
+
+onboarding-welcome-steps-indicator2 =
+ .aria-valuetext = è¿åº¦ï¼æ¥éª¤ { $current } / { $total }
+# "Hero Text" displayed on left side of welcome screen.
+# The "Fire" in "Fire starts here" plays on the "Fire" in "Firefox".
+# It also signals the passion users bring to Firefox, how they use
+# Firefox to pursue those passions, as well as the boldness in their
+# choice to use Firefox over a larger competitor browser.
+# An alternative title for localization is: "It starts here".
+# This text can be formatted to span multiple lines as needed.
+mr1-welcome-screen-hero-text = ææä¹ç« æ£å°çå
+# 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 }ï¼æ¹ä¾¿è®¿é®
+ *[other] å° { -brand-short-name } åºå®å°æ¨ç任塿 ï¼æ¹ä¾¿è®¿é®
+ }
+# Primary button string used on welcome page when Firefox is not pinned.
+mr1-onboarding-pin-primary-button-label =
+ { PLATFORM() ->
+ [macos] å¨ç¨åºåä¸ä¿ç
+ *[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 = æå±±é
+onboarding-theme-primary-button-label = 宿
+
+## Please make sure to split the content of the title attribute into lines whose
+## width corresponds to about 40 Latin characters, to ensure that the tooltip
+## doesn't become too long. Line breaks will be preserved when displaying the
+## tooltip.
+
+# Tooltip displayed on hover of system theme
+mr1-onboarding-theme-tooltip-system =
+ .title = è·éç³»ç»ä¸»é¢é
è²æ¾ç¤ºæé®ãèååçªå£
+# 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-label = æ¢ç´¢ { $colorwayName } é
è²ã
+# Tooltip displayed on hover of default themes
+mr2-onboarding-default-theme-tooltip =
+ .title = æ¢ç´¢é»è®¤ä¸»é¢ã
+# Selector description for default themes
+mr2-onboarding-default-theme-label = æ¢ç´¢é»è®¤ä¸»é¢ã
+
+## Strings for Thank You page
+
+mr2-onboarding-thank-you-header = æè°¢æ¨éç¨
+mr2-onboarding-thank-you-text = { -brand-short-name } æ¯ä¸æ¬¾ç±éè¥å©ç»ç»æ¯æçç¬ç«æµè§å¨ãæä»¬å
±ååªåï¼è®©ç½ç»ç¯å¢æ´å®å
¨ãæ´å¥åº·ã乿´æéç§ã
+mr2-onboarding-start-browsing-button-label = å¼å§ä¸ç½å²æµª
+
+## Multistage live language reloading onboarding strings (about:welcome pages)
+##
+## The following language names are generated by the browser's Intl.DisplayNames API.
+##
+## Variables:
+## $negotiatedLanguage (String) - The name of the langpack's language, e.g. "Español (ES)"
+
+
+## Multistage live language reloading onboarding strings (about:welcome pages)
+##
+## The following language names are generated by the browser's Intl.DisplayNames API.
+##
+## Variables:
+## $negotiatedLanguage (String) - The name of the langpack's language, e.g. "Español (ES)"
+## $systemLanguage (String) - The name of the system language, e.g "Español (ES)"
+## $appLanguage (String) - The name of the language shipping in the browser build, e.g. "English (EN)"
+
+onboarding-live-language-header = éæ©æ¨çè¯è¨
+mr2022-onboarding-live-language-text = { -brand-short-name } 乿æ¨çè¯è¨
+mr2022-language-mismatch-subtitle = 幸å¾ç¤¾åºç¸å©ï¼{ -brand-short-name } å·²è¢«ç¿»è¯æ 90 ä½ç§è¯è¨ãæ¨çæä½ç³»ç»ä¼¼ä¹æ£å¨ä½¿ç¨â{ $systemLanguage }âï¼è { -brand-short-name } æ£å¨ä½¿ç¨â{ $appLanguage }âã
+onboarding-live-language-button-label-downloading = æ£å¨ä¸è½½â{ $negotiatedLanguage }âè¯è¨å
â¦
+onboarding-live-language-waiting-button = æ£å¨è·åå¯ç¨è¯è¨å表â¦
+onboarding-live-language-installing = æ£å¨å®è£
â{ $negotiatedLanguage }âè¯è¨å
â¦
+mr2022-onboarding-live-language-switch-to = åæ¢ä¸ºâ{ $negotiatedLanguage }â
+mr2022-onboarding-live-language-continue-in = ç»§ç»ä½¿ç¨â{ $appLanguage }â
+onboarding-live-language-secondary-cancel-download = åæ¶
+onboarding-live-language-skip-button-label = è·³è¿
+
+## Firefox 100 Thank You screens
+
+# "Hero Text" displayed on left side of welcome screen. This text can be
+# formatted to span multiple lines as needed. The
+# in this string allows a "zap" underline style to be automatically
+# added to the text inside it. "Yous" should stay inside the zap span, but
+# "Thank" can be put inside instead if there's no "you" in the translation.
+# The English text would normally be "100 Thank-Yous" i.e., plural noun, but for
+# aesthetics of splitting it across multiple lines, the hyphen is omitted.
+fx100-thank-you-hero-text =
+ ç¾çä¹çº¦
+ ä¸åæè°¢
+fx100-thank-you-subtitle = 第 100 ä¸ªçæ¬å¦çº¦èè³ãæè°¢æ¨æ¯ææä»¬å»ºè®¾æ´å¥½ãæ´å¥åº·çäºèç½ã
+fx100-thank-you-pin-primary-button-label =
+ { PLATFORM() ->
+ [macos] å¨ç¨åºåä¸ä¿ç { -brand-short-name }
+ *[other] å° { -brand-short-name } åºå®å°ä»»å¡æ
+ }
+fx100-upgrade-thanks-header = ç¾çä¹çº¦ï¼ä¸åæè°¢
+# Message shown with a start-browsing button. Emphasis should be for "you"
+# but "Thank" can be used instead if there's no "you" in the translation.
+fx100-upgrade-thank-you-body = { -brand-short-name } ç第 100 ä¸ªçæ¬å¦çº¦èè³ãæè°¢æ¨âæ¯ææä»¬å»ºè®¾æ´å¥½ãæ´å¥åº·çäºèç½ã
+# Message shown with either a pin-to-taskbar or set-default button.
+fx100-upgrade-thanks-keep-body = è¿æ¯æä»¬ç第 100 ä¸ªçæ¬ï¼ä¸è·¯ç¸ä¼´ï¼æè°¢ææ¨ã{ -brand-short-name } è¯æéæ¨å
±èµ´ä¸ä¸ªç¾çä¹çº¦ã
+mr2022-onboarding-secondary-skip-button-label = è·³è¿æ¤æ¥
+
+## MR2022 New User Pin Firefox screen strings
+
+# Title used on about:welcome for new users when Firefox is not pinned.
+# In this context, open up is synonymous with "Discover".
+# The metaphor is that when they open their Firefox browser, it helps them discover an amazing internet.
+# If this translation does not make sense in your language, feel free to use the word "discover."
+mr2022-onboarding-welcome-pin-header = æ¢ç´¢ç²¾å½©äºèç½
+# Subtitle is used on onboarding page for new users page when Firefox is not pinned
+mr2022-onboarding-welcome-pin-subtitle = éæ¶éå°ä¸é®è¿å
¥ { -brand-short-name }ãæ¨çæ¯æ¬¡ç¹å»é½ä»£è¡¨çéæ©æ´å 弿¾ä¸ç¬ç«çäºèç½ã
+# Primary button string used on welcome page for when Firefox is not pinned.
+mr2022-onboarding-pin-primary-button-label =
+ { PLATFORM() ->
+ [macos] å¨ç¨åºåä¸ä¿ç { -brand-short-name }
+ *[other] å° { -brand-short-name } åºå®å°ä»»å¡æ
+ }
+# Subtitle will be used when user already has Firefox pinned, but
+# has not set it as their default browser.
+# When translating "zip", please feel free to pick a verb that signifies movement and/or exploration
+# and makes sense in the context of navigating the web.
+mr2022-onboarding-set-default-only-subtitle = éç¨ç±éè¥å©ç»ç»æ¯æçæµè§å¨ã鍿¸¸ç½ç»ï¼ææä»¬æå«éç§ã
+
+## MR2022 Existing User Pin Firefox Screen Strings
+
+# Title used on multistage onboarding page for existing users when Firefox is not pinned
+mr2022-onboarding-existing-pin-header = æè°¢æ¨å¯¹ { -brand-product-name } çéç
+# Subtitle is used on onboarding page for existing users when Firefox is not pinned
+mr2022-onboarding-existing-pin-subtitle = éæ¶éå°ä¸é®æå¼æ´å¥åº·çäºèç½ãæä»¬çæ´æ°æ»¡è½½æ°é²å
容ï¼å¸ææ¨ä¼å欢ã
+# Subtitle will be used on the welcome screen for existing users
+# when they already have Firefox pinned but not set as default
+mr2022-onboarding-existing-set-default-only-subtitle = 使ç¨è½å¨æµè§ç½é¡µæ¶æå«éç§çæµè§å¨ãæä»¬çæ´æ°æ»¡è½½æ¨å欢çå
容ã
+mr2022-onboarding-existing-pin-checkbox-label = åæ¶åºå® { -brand-short-name } éç§æµè§æ¨¡å¼
+
+## MR2022 New User Set Default screen strings
+
+# This string is the title used when the user already has pinned the browser, but has not set default.
+mr2022-onboarding-set-default-title = è¦å° { -brand-short-name } 设为æ¨çé»è®¤æµè§å¨åï¼
+mr2022-onboarding-set-default-primary-button-label = å° { -brand-short-name } 设为é»è®¤æµè§å¨
+# When translating "zip", please feel free to pick a verb that signifies movement and/or exploration
+# and makes sense in the context of navigating the web.
+mr2022-onboarding-set-default-subtitle = éç¨ç±éè¥å©ç»ç»æ¯æçæµè§å¨ã鍿¸¸ç½ç»ï¼ææä»¬æå«éç§ã
+
+## MR2022 Get Started screen strings.
+## These strings will be used on the welcome page
+## when Firefox is already set to default and pinned.
+
+# When translating "zip", please feel free to pick a verb that signifies movement and/or exploration
+# and makes sense in the context of navigating the web.
+mr2022-onboarding-get-started-primary-subtitle = æä»¬çææ°çæ¬è´´åæ¨çéæ±ï¼æ»¡è½½æ¨å欢çå
容ï¼è®©æ¨è½»æ¾æµè§äºèç½ã
+mr2022-onboarding-get-started-primary-button-label = å ç§éå°±è½å®æè®¾ç½®
+
+## MR2022 Import Settings screen strings
+
+mr2022-onboarding-import-header = å¿«é设置
+mr2022-onboarding-import-subtitle = æèªå·±çå好设置 { -brand-short-name }ãå¯ä»æ¨çæ§æµè§å¨å¯¼å
¥ä¹¦ç¾ãå¯ç çæ°æ®ã
+mr2022-onboarding-import-primary-button-label-no-attribution = ä»å
åæç¨æµè§å¨å¯¼å
¥
+
+## If your language uses grammatical genders, in the description for the
+## colorway feel free to switch from "You are a X. Youâ¦" (e.g. "You are a
+## Playmaker. You createâ¦") to "X: youâ¦" ("Playmaker: You createâ¦"). This might
+## help creating a more inclusive translation.
+
+mr2022-onboarding-colorway-title = éæ©æ¨å¿å¨çé
è²
+mr2022-onboarding-colorway-subtitle = å¡äººä¹å£°ï¼æå乿 ¹
+mr2022-onboarding-colorway-primary-button-label = 设置é
è²
+mr2022-onboarding-existing-colorway-checkbox-label = å°â{ -firefox-home-brand-name }â设为æ¨çå¤å½©ä¸»é¡µ
+mr2022-onboarding-colorway-label-default = é»è®¤
+mr2022-onboarding-colorway-tooltip-default =
+ .title = é»è®¤
+mr2022-onboarding-colorway-description-default = ä½¿ç¨æå½åç { -brand-short-name } é¢è²ã
+mr2022-onboarding-colorway-label-playmaker = å®åæ´¾
+mr2022-onboarding-colorway-tooltip-playmaker =
+ .title = å®åæ´¾
+mr2022-onboarding-colorway-description-playmaker = æ¨æ¯å®åæ´¾ãæ¨æ¯åäºæåçå
³é®ï¼å¹¶ä¹äºå¸®å©å¨å´ç人ä¸åæåã
+mr2022-onboarding-colorway-label-expressionist = è¡¨ç°æ´¾
+mr2022-onboarding-colorway-tooltip-expressionist =
+ .title = è¡¨ç°æ´¾
+mr2022-onboarding-colorway-description-expressionist = æ¨æ¯è¡¨ç°æ´¾ãæ¨ä»¥ä¸åçæ¹å¼çå¾
ä¸çï¼å¹¶åç¨åä½å¼èµ·ä»äººçæ
æå
±é¸£ã
+mr2022-onboarding-colorway-label-visionary = è¿è§æ´¾
+mr2022-onboarding-colorway-tooltip-visionary =
+ .title = è¿è§æ´¾
+mr2022-onboarding-colorway-description-visionary = æ¨æ¯è¿è§æ´¾ãæ¨ä¸æ»¡è¶³äºç°ç¶ï¼å¹¶å¸¦é¢å¤§å®¶ç
æ³æ´ç¾å¥½çæªæ¥ã
+mr2022-onboarding-colorway-label-activist = è¡å¨æ´¾
+mr2022-onboarding-colorway-tooltip-activist =
+ .title = è¡å¨æ´¾
+mr2022-onboarding-colorway-description-activist = æ¨æ¯è¡å¨æ´¾ãæ¨è®©ä¸çå徿´ç¾å¥½ï¼å¹¶å¼å¯¼ä»äººç¸ä¿¡äº¦åºå¦æ¤ã
+mr2022-onboarding-colorway-label-dreamer = çæ³æ´¾
+mr2022-onboarding-colorway-tooltip-dreamer =
+ .title = çæ³æ´¾
+mr2022-onboarding-colorway-description-dreamer = æ¨æ¯çæ³æ´¾ãæ¨ç¸ä¿¡å½è¿åç±å¤§èç人ï¼å¹¶æ¿å±ä»äººåæ¢åèªå·±ã
+mr2022-onboarding-colorway-label-innovator = åæ°æ´¾
+mr2022-onboarding-colorway-tooltip-innovator =
+ .title = åæ°æ´¾
+mr2022-onboarding-colorway-description-innovator = æ¨æ¯åæ°æ´¾ãæ¨åäºææå夿ºä¼ï¼å¹¶æ£åå½±å身边ææäººã
+
+## MR2022 Multistage Mobile Download screen strings
+
+mr2022-onboarding-mobile-download-title = å
¨å¹³å°èªç±åæ¢
+mr2022-onboarding-mobile-download-subtitle = ä¸å¤æå¼ç½é¡µï¼å¤å¤æ¥ç»æµè§ãè¿å¯å¨ä½¿ç¨ { -brand-product-name } ç设å¤é´åæ¥ä¹¦ç¾åå¯ç ã
+mr2022-onboarding-mobile-download-cta-text = æ«ç ä¸è½½ç§»å¨ç { -brand-product-name } æåèªå·±åéä¸è½½é¾æ¥ã
+mr2022-onboarding-no-mobile-download-cta-text = æ«ç ä¸è½½ç§»å¨ç { -brand-product-name }ã
+
+## MR2022 Upgrade Dialog screens
+## Pin private window screen shown only for users who don't have Firefox private pinned
+
+mr2022-upgrade-onboarding-pin-private-window-header = ä¸é®è¿å
¥éç§æµè§æ¨¡å¼
+mr2022-upgrade-onboarding-pin-private-window-subtitle = ä¸ä¿åä»»ä½ Cookie ååå²è®°å½ï¼éç§æµè§ä¸çç迹ã
+mr2022-upgrade-onboarding-pin-private-window-primary-button-label =
+ { PLATFORM() ->
+ [macos] å¨ç¨åºåä¸ä¿ç { -brand-short-name } éç§æµè§çªå£
+ *[other] å° { -brand-short-name } éç§æµè§çªå£åºå®å°ä»»å¡æ
+ }
+
+## MR2022 Privacy Segmentation screen strings
+
+mr2022-onboarding-privacy-segmentation-title = å°éæ¨çéç§æ¯æä»¬ä¸åçæ¿è¯º
+mr2022-onboarding-privacy-segmentation-subtitle = ä»æç´¢å»ºè®®å°æ´æºè½çæç´¢åè½ï¼æä»¬ä¸ç´è´åäºæå»ºæ´å¥½ç¨ãæ´ä¸ªæ§åç { -brand-product-name }ã
+mr2022-onboarding-privacy-segmentation-text-cta = 彿们æ¨åºéä½¿ç¨æ¨æ°æ®ä»¥æä¾å¢å¼ºæµè§ä½éªçæ°åè½æ¶ï¼æ¨å¸æå
¶å¦ä½åç°ï¼
+mr2022-onboarding-privacy-segmentation-button-primary-label = ä½¿ç¨ { -brand-product-name } æ¨è
+mr2022-onboarding-privacy-segmentation-button-secondary-label = æ¾ç¤ºè¯¦ç»ä¿¡æ¯
+
+## MR2022 Multistage Gratitude screen strings
+
+mr2022-onboarding-gratitude-title = æ¨æ£å¨å¸®å©æä»¬å»ºè®¾æ´å¥½çäºèç½ã
+mr2022-onboarding-gratitude-subtitle = æè°¢ä½¿ç¨ç± Mozilla åºé伿¯æç { -brand-short-name }ãæ¨çæ¯ææ¿å±çæä»¬ä¸ºæ´å¼æ¾ãæ´ç¾å¥½ä¸äººäººå¯ç¨çäºèç½ç»§ç»å¥æã
+mr2022-onboarding-gratitude-primary-button-label = äºè§£æ°çåå
+mr2022-onboarding-gratitude-secondary-button-label = å¼å§æµè§
diff --git a/browser/browser/nsserrors.ftl b/browser/browser/nsserrors.ftl
new file mode 100644
index 00000000000..3a18c29883b
--- /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 = 对ç端ä»
æ¯æç¬¬2çç SSLï¼èæ¤çæ¬å¨æ¬å°å·²ç¦ç¨ã
+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 è¦æ±æ¡ææ¶æ¯ã
+ssl-error-rx-malformed-client-hello = SSL æ¥æ¶å°ä¸ä¸ªå¼å¸¸ç客æ·ç«¯ Hello æ¡ææ¶æ¯ã
+ssl-error-rx-malformed-server-hello = SSL æ¥æ¶å°ä¸ä¸ªå¼å¸¸çæå¡å¨ Hello æ¡ææ¶æ¯ã
+ssl-error-rx-malformed-certificate = SSL æ¥æ¶å°ä¸ä¸ªå¼å¸¸çè¯ä¹¦æ¡æä¿¡æ¯ã
+ssl-error-rx-malformed-server-key-exch = SSL æ¥æ¶å°ä¸ä¸ªå¼å¸¸çæå¡å¨å¯é¥äº¤æ¢æ¡ææ¶æ¯ã
+ssl-error-rx-malformed-cert-request = SSL æ¥æ¶å°ä¸ä¸ªå¼å¸¸çè¯ä¹¦è¯·æ±æ¡ææ¶æ¯ã
+ssl-error-rx-malformed-hello-done = SSL æ¥æ¶å°ä¸ä¸ªå¼å¸¸çæå¡å¨å®æ Hello æ¡ææ¶æ¯ã
+ssl-error-rx-malformed-cert-verify = SSL æ¥æ¶å°ä¸ä¸ªå¼å¸¸çè¯ä¹¦æ ¸å®æ¡ææ¶æ¯ã
+ssl-error-rx-malformed-client-key-exch = SSL æ¥æ¶å°ä¸ä¸ªå¼å¸¸ç客æ·ç«¯å¯é¥äº¤æ¢æ¡ææ¶æ¯ã
+ssl-error-rx-malformed-finished = SSL æ¥æ¶å°ä¸ä¸ªå¼å¸¸çå®æçæ¡ææ¶æ¯ã
+ssl-error-rx-malformed-change-cipher = SSL æ¥æ¶å°ä¸ä¸ªå¼å¸¸çæ´æ¢å¯ç è§æ ¼è®°å½ã
+ssl-error-rx-malformed-alert = SSL æ¥æ¶å°ä¸ä¸ªå¼å¸¸çè¦åè®°å½ã
+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 æ¥æ¶å°ä¸ä¸ªæå¤ç客æ·ç«¯ Hello æ¡ææ¶æ¯ã
+ssl-error-rx-unexpected-server-hello = SSL æ¥æ¶å°ä¸ä¸ªæå¤çæå¡å¨ Hello æ¡æä¿¡æ¯ã
+ssl-error-rx-unexpected-certificate = SSL æ¥æ¶å°ä¸ä¸ªæå¤çè¯ä¹¦æ¡ææ¶æ¯ã
+ssl-error-rx-unexpected-server-key-exch = SSL æ¥æ¶å°ä¸ä¸ªæå¤çæå¡å¨å¯é¥äº¤æ¢æ¡æä¿¡æ¯ã
+ssl-error-rx-unexpected-cert-request = SSL æ¥æ¶å°ä¸ä¸ªæå¤çè¯ä¹¦è¯·æ±æ¡æä¿¡æ¯ã
+ssl-error-rx-unexpected-hello-done = SSL æ¥æ¶å°ä¸ä¸ªæå¤çæå¡å¨å®æ Hello æ¡æä¿¡æ¯ã
+ssl-error-rx-unexpected-cert-verify = SSL æ¥æ¶å°ä¸ä¸ªæå¤çè¯ä¹¦æ ¸å®æ¡æä¿¡æ¯ã
+ssl-error-rx-unexpected-client-key-exch = SSL æ¥æ¶å°ä¸ä¸ªæå¤ç客æ·ç«¯å¯é¥äº¤æ¢æ¡æä¿¡æ¯ã
+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 = å°è¯æ³æ¥å£åºå±åå
¥å 坿°æ®å¤±è´¥ã
+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 æ 记被æå
¥æè¢«å é¤ã
+ssl-error-token-slot-not-found = æ²¡ææ¾å° PKCS#11 æ è®°è¿è¡è¯·æ±çæä½ã
+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 æå¡å¨ç¼åæªé
ç½®ï¼ä¸æªå¯¹æ¤å¥æ¥åç¦ç¨ã
+ssl-error-unsupported-extension-alert = SSL 对çç«¯ä¸æ¯ææè¯·æ±ç TLS hello æ©å±ã
+ssl-error-certificate-unobtainable-alert = SSL 对çç«¯æ æ³ä»ææä¾ç URL è·å¾æ¨çè¯ä¹¦ã
+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 æ¶å°äºä¸ä¸ªå¼±ä¸´æ¶ 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 éªè¯è¯·æ±æ¡ææ¶æ¯ã
+ssl-error-rx-unexpected-hello-verify-request = SSL æ¶å°äºä¸ä¸ªæå¤ç Hello éªè¯è¯·æ±æ¡ææ¶æ¯ã
+ssl-error-feature-not-supported-for-version = 该åè®®çæ¬ä¸æ¯æç SSL ç¹æ§ã
+ssl-error-rx-unexpected-cert-status = SSL æ¶å°äºä¸ä¸ªæå¤çè¯ä¹¦ç¶ææ¡ææ¶æ¯ã
+ssl-error-unsupported-hash-algorithm = TLS 对ç端使ç¨äºä¸æ¯æçæ£åç®æ³ã
+ssl-error-digest-failure = æè¦å½æ°å¤±è´¥ã
+ssl-error-incorrect-signature-algorithm = ä¸ä¸ªæ°åç¾åçå
ç´ ä¸æå®äºä¸æ£ç¡®çç¾åç®æ³ã
+ssl-error-next-protocol-no-callback = Next Protocol Negotiation Extension å·²ç»å¯ç¨ï¼ä½åè°å·²å¨éè¦ä¹å被æ¸
é¤ã
+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 = å®å
¨ç¨åºåº: æ èç¹éã
+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 = è¯ä¹¦ç¾åè
çè¯ä¹¦åéå表ï¼CRLï¼å·²è¿æãè¯·æ´æ°åéåè¡¨ï¼æè
æ£æ¥æ¨çç³»ç»æ¥æåæ¶é´ã
+sec-error-crl-bad-signature = è¯ä¹¦é¢åè
çè¯ä¹¦åéåè¡¨å«æçç¾åæ æã
+sec-error-crl-invalid = æ°ç CRL æ ¼å¼æ æã
+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 = è¯ä¹¦å
嫿ªç¥çå
³é®æ©å±ã
+sec-error-old-crl = æ°çè¯ä¹¦åéå表ï¼CRLï¼ä¸æ¯å½åçæ°ã
+sec-error-no-email-cert = 没æå 坿ç¾ç½²ï¼æ¨è¿æ²¡æçµåé®ä»¶è¯ä¹¦ã
+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 = æ²¡ææ¾å°æ¤ç«ç¹è¯ä¹¦çå¯é¥åéå表ï¼KRLï¼ã
+sec-error-krl-expired = æ¤ç«ç¹è¯ä¹¦çå¯é¥åéå表ï¼KRLï¼å·²è¿æã
+sec-error-krl-bad-signature = æ¤ç«ç¹è¯ä¹¦çå¯é¥åéå表ï¼KRLï¼æä¸ä¸ªæ æçç¾åã
+sec-error-revoked-key = æ¤ç«ç¹çè¯ä¹¦çå¯é¥å·²è¢«åéã
+sec-error-krl-invalid = æ°çå¯é¥åéå表ï¼KRLï¼æ ¼å¼æ æã
+sec-error-need-random = å®å
¨ç¨åºåºï¼éè¦éæºæ°æ®ã
+sec-error-no-module = å®å
¨ç¨åºåºï¼æ²¡æå®å
¨æ¨¡åå¯ä»¥æ§è¡è¯·æ±çæä½ã
+sec-error-no-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 = æ æ³å 餿é
+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 = æ æ³å°ææå¯é¥ç§»å¨å°éè¦çä½ç½®ã
+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 = æ°çå¯é¥åéå表ï¼KRLï¼ä¸æ¯å½åçæ°ã
+sec-error-ckl-conflict = æ°ç CKL ä¸å½å CKL çé¢åè
ä¸åã请å é¤å½åç CKLã
+sec-error-cert-not-in-name-space = æ¤è¯ä¹¦çé¢åæºææªè¢«å许é¢åæ¤åç§°çè¯ä¹¦ã
+sec-error-krl-not-yet-valid = æ¤è¯ä¹¦çå¯é¥åéå表ï¼KRLï¼å°æªçæã
+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 = æ²¡ææ¾å°å¹é
ç CRLã
+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 åéè¯ä¹¦å表æä¸ä¸ªå
³é®æ©å±ã
+sec-error-crl-unknown-critical-extension = åè¡è
ç V2 åéè¯ä¹¦å表æä¸ä¸ªæªç¥çå
³é®æ©å±ã
+sec-error-unknown-object-type = æå®çç®æ ç±»åæªç¥ã
+sec-error-incompatible-pkcs11 = PKCS #11 驱å¨ç¨åºå¨å
¼å®¹æ¹å¼ä¸è¿åè§å®ã
+sec-error-no-event = ç®åæ²¡ææ°ææ§½äºä»¶ã
+sec-error-crl-already-exists = CRL å·²ç»åå¨ã
+sec-error-not-initialized = NSS 没æè¢«åå§åã
+sec-error-token-not-logged-in = ç±äº PKCS#1 æ è®°æ²¡ææ³¨åï¼æä½å¤±è´¥ã
+sec-error-ocsp-responder-cert-invalid = å·²é
ç½®ç OCSP ååºå¨è¯ä¹¦æ æã
+sec-error-ocsp-bad-signature = OCSP ååºä¸æä¸ä¸ªæ æç¾åã
+sec-error-out-of-search-limits = è¯ä¹¦éªè¯æç´¢è¶
åºäºæç´¢éå¶
+sec-error-invalid-policy-mapping = çç¥æ å°å
å«ä»»ä½çç¥
+sec-error-policy-validation-failed = è¯ä¹¦é¾çç¥éªè¯å¤±è´¥
+sec-error-unknown-aia-location-type = å¨è¯ä¹¦AIAæ©å±ä¸çä½ç½®ç±»åæªç¥
+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ï¼è¿è¡¨æä»¤çæè
ææ§½åçäºä¸ä¸ªé®é¢ã
+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 = CRL ååç¹åç§°ç URL æ ææä¸æ¯æã
+sec-error-cert-signature-algorithm-disabled = 该è¯ä¹¦ä½¿ç¨çç¾åç®æ³å·²å ä¸å®å
¨è被ç¦ç¨ã
+mozilla-pkix-error-key-pinning-failure = æ¤æå¡å¨ä½¿ç¨äºå
¬é¥åºå®ï¼HPKPï¼æºå¶ï¼ä½æ æ³ææä¸å
¶åºå®çè¯ä¹¦éåï¼pinsetï¼å¹é
çå¯ä¿¡ä»»è¯ä¹¦é¾ãæ æ³å¿½è§å¯¹å¯é¥åºå®çè¿åã
+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 模æ°åä¸å¿
è¦çç¼ç ã
+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..bc97da8ce0c
--- /dev/null
+++ b/browser/browser/pageInfo.ftl
@@ -0,0 +1,258 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/. --
+
+page-info-window =
+ .style = width: 600px; min-height: 550px;
+
+copy =
+ .key = C
+menu-copy =
+ .label = å¤å¶
+ .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 = æªå¼æ¨¡å¼
+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 ->
+ [one] å
ä¿¡æ¯ï¼1 个æ ç¾ï¼
+ *[other] å
ä¿¡æ¯ï¼{ $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 ->
+ [one] { $kb } KB ({ $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 ->
+ [one] { $type } å¾åï¼å¨ç»ï¼{ $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..f431e94bdb5
--- /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..020f6db2b01
--- /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..619ccd845f1
--- /dev/null
+++ b/browser/browser/places.ftl
@@ -0,0 +1,239 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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-in-container-tab =
+ .label = æ°å»ºèº«ä»½æ ç¾é¡µæå¼
+ .accesskey = i
+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-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 = å
¶ä»ä¹¦ç¾
+
+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..829b516021b
--- /dev/null
+++ b/browser/browser/policies/policies-descriptions.ftl
@@ -0,0 +1,124 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## The 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-AppUpdatePin = 黿¢ { -brand-short-name } æ´æ°è¶
è¿ç¹å®çæ¬ã
+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 = å¯ç¨æç¦ç¨å¼ºå¶é¨æ·æ¯æã
+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 }çåºç¡æå¡ï¼å
å«åæ¥ã
+# Firefox Screenshots is the name of the feature, and should not be translated.
+policy-DisableFirefoxScreenshots = ç¦ç¨ Firefox çâæªå¾âåè½ã
+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 = ç¦ç¨ä»¥å®å
¨æ¨¡å¼é坿µè§å¨çåè½ã注æï¼ä»
å¯å¨ Windows ä¸ä½¿ç¨ç»çç¥ç¦ç¨æä½ Shift é®è¿å
¥å®å
¨æ¨¡å¼ã
+policy-DisableSecurityBypass = 黿¢ç¨æ·ç»è¿æäºå®å
¨æ§è¦åã
+policy-DisableSetAsDesktopBackground = ç¦ç¨å°å¾åâ设为æ¡é¢èæ¯âçèåå½ä»¤ã
+policy-DisableSystemAddonUpdate = 黿¢æµè§å¨å®è£
ææ´æ°âç³»ç»éå ç»ä»¶âã
+policy-DisableTelemetry = å
³éâ饿µâç»ä»¶ã
+policy-DisplayBookmarksToolbar = é»è®¤æ¾ç¤ºä¹¦ç¾å·¥å
·æ ã
+policy-DisplayMenuBar = é»è®¤æ¾ç¤ºèåæ ã
+policy-DNSOverHTTPS = é
ç½®åºäº HTTPS ç DNSã
+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 = å¯ç¨æç¦ç¨âå å¯åªä½æ©å±ï¼EMEï¼âï¼å¹¶å¯éæ©éå®è¯¥åè½ã
+policy-ExemptDomainFileTypePairsFromFileTypeDownloadWarnings = é对æå®ååçç¹å®æä»¶ç±»åï¼ç¦ç¨æä»¶æ©å±åè¦åã
+# 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 主页ã
+policy-FirefoxHome2 = é
ç½® { -firefox-home-brand-name }ã
+policy-FlashPlugin = å
许ææç»ä½¿ç¨ Flash æä»¶ã
+policy-GoToIntranetSiteForSingleWordEntryInAddressBar = å¨å°åæ è¾å
¥åä¸ªè¯æ¡æ¶ï¼å¼ºå¶å¯¼èªè³å
é¨ç½ç«ï¼èéè¿è¡ç½ä¸æç´¢ã
+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 = å¯ç¨å¯ç 管çå¨çå¯ç ä¿ååè½ã
+policy-PasswordManagerExceptions = 黿¢ { -brand-short-name } ä¿åç¹å®ç½ç«çå¯ç ã
+# 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 = é
ç½®æç´¢å¼æè®¾ç½®ãæ¤çç¥ä»
éç¨äºå»¶é¿æ¯æçï¼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-StartDownloadsInTempDirectory = 强å¶ä¸è½½è³æ¬å°ä¸´æ¶æä»¶å¤¹ï¼èéé»è®¤ä¸è½½è·¯å¾ã
+policy-SupportMenu = å帮å©èåèªéæ·»å ææ¯æ¯æé¡¹ç®ã
+policy-UserMessaging = ä¸åç¨æ·æ¾ç¤ºæäºæ¶æ¯ã
+policy-UseSystemPrintDialog = 使ç¨ç³»ç»æå°å¯¹è¯æ¡æå°ã
+# âformatâ refers to the format used for the value of this policy.
+policy-WebsiteFilter = 黿¢è®¿é®æäºç½ç«ãåé
ææ¡£äºè§£è¯¥æ ¼å¼çæ´å¤è¯¦æ
ã
+policy-Windows10SSO = å
许é¢å Microsoft è´¦æ·ï¼ä¸ªäºº/å·¥ä½/妿 ¡ï¼ç Windows åç¹ç»å½ã
diff --git a/browser/browser/preferences/addEngine.ftl b/browser/browser/preferences/addEngine.ftl
new file mode 100644
index 00000000000..000e0b48f4c
--- /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 = æç´¢å¼æ 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..183086885dd
--- /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..e8ed5a6c4e0
--- /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: 50em
+
+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..4abe87ab983
--- /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..688a370c85b
--- /dev/null
+++ b/browser/browser/preferences/colors.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/.
+
+colors-window =
+ .title = é¢è²
+ .style =
+ { PLATFORM() ->
+ [macos] width: 41em
+ *[other] width: 38em
+ }
+colors-dialog =
+ .title = é¢è²
+ .style = width: 41em;
+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..d44d414effb
--- /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 = ä¸ä½¿ç¨ä»£çæå¡å¨
+ .accesskey = y
+connection-proxy-option-system =
+ .label = 使ç¨ç³»ç»ä»£ç设置
+ .accesskey = U
+connection-proxy-option-auto =
+ .label = èªå¨æ£æµæ¤ç½ç»ç代ç设置
+ .accesskey = w
+connection-proxy-option-manual =
+ .label = æå¨é
置代ç
+ .accesskey = m
+
+connection-proxy-http = HTTP 代ç
+ .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.nz, 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 = èªå¨ä»£çé
ç½®ç URLï¼PACï¼
+ .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 = å¯ç¨åºäº HTTPS ç DNS
+ .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 = 使ç¨é»è®¤ URL 宿åºäº HTTPS ç DNS è§£æ
+
+connection-dns-over-https-url-custom =
+ .label = èªå®ä¹
+ .accesskey = C
+ .tooltiptext = è¾å
¥æ¨å好ç URLï¼ç¨æ¥å®æåºäº HTTPS ç DNS è§£æ
+
+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..c83addd028d
--- /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..fa815c7e0d1
--- /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 = 衬线åä½
+fonts-default-sans-serif =
+ .label = æ 衬线åä½
+
+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/formAutofill.ftl b/browser/browser/preferences/formAutofill.ftl
new file mode 100644
index 00000000000..d98543a2335
--- /dev/null
+++ b/browser/browser/preferences/formAutofill.ftl
@@ -0,0 +1,117 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## The address and credit card autofill management dialog in browser preferences
+
+autofill-manage-addresses-title = å·²ä¿åçå°å
+autofill-manage-addresses-list-header = å°å
+autofill-manage-credit-cards-title = å·²ä¿åçä¿¡ç¨å¡
+autofill-manage-credit-cards-list-header = ä¿¡ç¨å¡
+autofill-manage-dialog =
+ .style = min-width: 560px
+autofill-manage-remove-button = ç§»é¤
+autofill-manage-add-button = æ·»å â¦
+autofill-manage-edit-button = ç¼è¾â¦
+
+##
+
+# The dialog title for creating addresses in browser preferences.
+autofill-add-new-address-title = æ·»å æ°å°å
+# The dialog title for editing addresses in browser preferences.
+autofill-edit-address-title = ç¼è¾å°å
+autofill-address-given-name = å
+autofill-address-additional-name = ä¸é´å
+autofill-address-family-name = å§
+autofill-address-organization = ç»ç»
+autofill-address-street = è¡éå°å
+
+## address-level-3 (Sublocality) names
+
+# Used in IR, MX
+autofill-address-neighborhood = è¡åº
+# Used in MY
+autofill-address-village-township = ææä¹¡é
+autofill-address-island = å²
+# Used in IE
+autofill-address-townland = é
+
+## address-level-2 names
+
+autofill-address-city = å¸
+# Used in HK, SD, SY, TR as Address Level-2 and used in KR as Sublocality.
+autofill-address-district = åº
+# Used in GB, NO, SE
+autofill-address-post-town = é®é
+# Used in AU as Address Level-2 and used in ZZ as Sublocality.
+autofill-address-suburb = å¸é
+
+## address-level-1 names
+
+autofill-address-province = ç
+autofill-address-state = å·
+autofill-address-county = å¿
+# Used in BB, JM
+autofill-address-parish = æåº
+# Used in JP
+autofill-address-prefecture = é½éåºå¿
+# Used in HK
+autofill-address-area = åºå
+# Used in KR
+autofill-address-do-si = é/å¸
+# Used in NI, CO
+autofill-address-department = ç
+# Used in AE
+autofill-address-emirate = é
é¿å½
+# Used in RU and UA
+autofill-address-oblast = å·
+
+## Postal code name types
+
+# Used in IN
+autofill-address-pin = 鮿¿ç¼ç
+autofill-address-postal-code = 鮿¿ç¼ç
+autofill-address-zip = Zip ç¼ç
+# Used in IE
+autofill-address-eircode = Eircode 鮿¿ç¼ç
+
+##
+
+autofill-address-country = å½å®¶/å°åº
+autofill-address-tel = çµè¯å·ç
+autofill-address-email = çµåé®ç®±
+autofill-cancel-button = åæ¶
+autofill-save-button = ä¿å
+autofill-country-warning-message = 表åèªå¨å¡«åç®åä»
éç¨äºé¨åå°åºã
+# The dialog title for creating credit cards in browser preferences.
+autofill-add-new-card-title = æ·»å æ°ä¿¡ç¨å¡
+# The dialog title for editing credit cards in browser preferences.
+autofill-edit-card-title = ç¼è¾ä¿¡ç¨å¡
+# In macOS, this string is preceded by the operating system with "Firefox is trying to ",
+# and has a period added to its end. Make sure to test in your locale.
+autofill-edit-card-password-prompt =
+ { PLATFORM() ->
+ [macos] æ¾ç¤ºä¿¡ç¨å¡ä¿¡æ¯
+ [windows] { -brand-short-name } æ£å°è¯æ¾ç¤ºä¿¡ç¨å¡ä¿¡æ¯ã请å¨ä¸æ¹ç»å½æ¤ Windows è´¦æ·ç¡®è®¤ã
+ *[other] { -brand-short-name } æ£å°è¯æ¾ç¤ºä¿¡ç¨å¡ä¿¡æ¯ã
+ }
+autofill-card-number = å¡å·
+autofill-card-invalid-number = 请è¾å
¥ææçå¡å·
+autofill-card-name-on-card = å¡ä¸åç§°
+autofill-card-expires-month = å°ææ
+autofill-card-expires-year = å°æå¹´
+autofill-card-billing-address = è´¦åå°å
+autofill-card-network = å¡çç±»å
+
+## These are brand names and should only be translated when a locale-specific name for that brand is in common use
+
+autofill-card-network-amex = ç¾å½è¿éï¼American Expressï¼
+autofill-card-network-cartebancaire = Carte Bancaire
+autofill-card-network-diners = 大æ¥å¡ï¼Diners Clubï¼
+autofill-card-network-discover = åç°å¡ï¼Discoverï¼
+autofill-card-network-jcb = å士ç¾ï¼JCBï¼
+autofill-card-network-mastercard = ä¸äºè¾¾ï¼MasterCardï¼
+autofill-card-network-mir = MIR
+autofill-card-network-unionpay = é¶èï¼Union Payï¼
+autofill-card-network-visa = Visa
diff --git a/browser/browser/preferences/fxaPairDevice.ftl b/browser/browser/preferences/fxaPairDevice.ftl
new file mode 100644
index 00000000000..ef329e65c7a
--- /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. æå¼èåï¼
æ
ï¼ï¼ç¹æ
è®¾ç½®å¹¶éæ©å¼å¯åæ¥
+fxa-qrcode-heading-step4 = 4. æ«ææ¤äºç»´ç ï¼
+fxa-pair-device-dialog-sync =
+ .style = width: 32em;
+fxa-qrcode-pair-title = 䏿¨çææºæå¹³æ¿çµè忥 { -brand-product-name }
+fxa-qrcode-pair-step1 = 1. æå¼æ¨ç§»å¨è®¾å¤ä¸ç { -brand-product-name }ã
+fxa-qrcode-pair-step2 = 2. æå¼èåï¼iOS ä¸ç
æ Android ä¸ç
ï¼ï¼ç¹æç»å½åæ¥æå¡
+fxa-qrcode-pair-step3 = 3. ç¹ææ«æå°±ç»ªï¼å°ææºå¯¹åäºç»´ç
+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..589f0d5abaf
--- /dev/null
+++ b/browser/browser/preferences/languages.ftl
@@ -0,0 +1,55 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+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/moreFromMozilla.ftl b/browser/browser/preferences/moreFromMozilla.ftl
new file mode 100644
index 00000000000..b3ce5ed8edc
--- /dev/null
+++ b/browser/browser/preferences/moreFromMozilla.ftl
@@ -0,0 +1,38 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## These strings are used in the about:preferences moreFromMozilla page
+
+more-from-moz-title = { -vendor-short-name } 产å
+more-from-moz-category =
+ .tooltiptext = { -vendor-short-name } 产å
+
+more-from-moz-subtitle = æ´å¤è´åäºä¿è¿äºèç½å¥åº·åå±ç { -vendor-short-name } 产åã
+
+more-from-moz-firefox-mobile-title = { -brand-product-name } ç§»å¨ç
+more-from-moz-firefox-mobile-description = éç§ä¸ºå
çç§»å¨æµè§å¨ã
+more-from-moz-firefox-mobile-description-advanced = 仿¦æªè·è¸ªå¨å°é»æ¢æ¼äººçèªå¨ææ¾ï¼{ -brand-product-name } ç§»å¨æµè§å¨å¯ä¸ºæ¨æ¶å»æä¾è¯å¥½çä¸ç½ä½éªã
+
+more-from-moz-mozilla-vpn-title = { -mozilla-vpn-brand-name }
+more-from-moz-mozilla-vpn-description = æ¢ç´¢æ´è¿ä¸æ¥çå¿åæµè§åä¿æ¤æºå¶ã
+more-from-moz-mozilla-vpn-description-advanced = { -mozilla-vpn-brand-name } å¯ä¸ºæ¨æä¾æ´è¿ä¸æ¥çå¿åæµè§åä¿æ¤æºå¶ãä¸å¤§é¨å VPN ä¸åï¼å®æ¢å®å
¨ï¼åä¸ä¼è·è¸ªæ¨çä¸ç½æ´»å¨ã
+
+# This string is specific to the product Mozilla Rally which is US only.
+more-from-moz-mozilla-rally-title = { -rally-brand-name }
+# This string is specific to the product Mozilla Rally which is US only.
+more-from-moz-mozilla-rally-description = å°æ¨çæ°æ®ç¨äºä¸ºä½ æå»ºç«æ´å¥½çäºèç½ã
+# This string is specific to the product Mozilla Rally which is US only.
+more-from-moz-mozilla-rally-description-advanced = æåºæ¨çæ°æ®ç¨äºç ç©¶ï¼ä»¥å»ºç«æ´å®å
¨ãæ´å¼æ¾ãè½å¤å¸®å©äººä»¬ï¼èé大åç§æå
¬å¸çäºèç½ã
+# This string is specific to the product Mozilla Rally which is US only.
+more-from-moz-button-mozilla-rally-2 = å å
¥ { -rally-short-name }
+
+more-from-moz-qr-code-box-firefox-mobile-title = æ«ç åç¹æé¾æ¥å¼å§ä¸è½½ã
+more-from-moz-qr-code-box-firefox-mobile-button = æ¹åçµåé®ä»¶å°æ¨çææº
+more-from-moz-qr-code-firefox-mobile-img =
+ .alt = äºç»´ç ï¼ä¸è½½ { -brand-product-name } ç§»å¨ç
+
+more-from-moz-button-mozilla-vpn-2 = ä¸è½½ VPN
+
+more-from-moz-learn-more-link = 详ç»äºè§£
diff --git a/browser/browser/preferences/permissions.ftl b/browser/browser/preferences/permissions.ftl
new file mode 100644
index 00000000000..d692b0f16b9
--- /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-Only 模å¼
+ .style = { permissions-window.style }
+permissions-exceptions-https-only-desc = æ¨å¯ä»¥å
³éç¹å®ç½ç«ç HTTPS-Only 模å¼ã{ -brand-short-name } å°ä¸åå°è¯å°è¿äºç½ç«çè¿æ¥å级为å®å
¨ç HTTPSãâä¾å¤âä¸ä¼åºç¨è³éç§çªå£ã
+
+## Exceptions - Pop-ups
+
+permissions-exceptions-popup-window =
+ .title = æç¹æ®æéçç½ç« - å¼¹åºå¼çªå£
+ .style = { permissions-window.style }
+permissions-exceptions-popup-desc = æ¨å¯ä»¥æå®åªäºç½ç«å¯ä»¥æå¼å¼¹åºå¼çªå£ã请è¾å
¥æè¦æå®ç宿´ç½åï¼ç¶åç¹å»âå
许âã
+
+## 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 = ä¸åç½ç«æ¾è¯·æ±ä½¿ç¨æ¨çèæç°å®è®¾å¤ãæ¨å¯éæ©å
许åªäºç½ç«ä½¿ç¨æ¨çèæç°å®è®¾å¤ï¼ä¹å¯ç¦æ¢æåºå¯¹èæç°å®è®¾å¤çæé请æ±ã
+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..bcf9e8d5bfd
--- /dev/null
+++ b/browser/browser/preferences/preferences.ftl
@@ -0,0 +1,1154 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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-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-controlling-password-saving =
{ $name } æ§å¶æ¤è®¾ç½®ã
+# This string is shown to notify the user that their notifications permission
+# is being controlled by an extension.
+extension-controlling-web-notifications =
{ $name } æ§å¶æ¤è®¾ç½®ã
+# This string is shown to notify the user that Container Tabs
+# are being enabled by an extension.
+extension-controlling-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-controlling-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-controlling-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-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
+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 ->
+ [one] 妿æ¨ç°å¨ç¦ç¨èº«ä»½æ ç¾é¡µï¼å°æ { $tabCount } ä¸ªå®¹å¨æ ç¾é¡µè¢«å
³éãæ¨ç¡®å®è¦ç¦ç¨èº«ä»½æ ç¾é¡µåï¼
+ *[other] 妿æ¨ç°å¨ç¦ç¨èº«ä»½æ ç¾é¡µï¼å°æ { $tabCount } ä¸ªå®¹å¨æ ç¾é¡µè¢«å
³éãæ¨ç¡®å®è¦ç¦ç¨èº«ä»½æ ç¾é¡µåï¼
+ }
+containers-disable-alert-ok-button =
+ { $tabCount ->
+ [one] å
³é { $tabCount } 个身份æ ç¾é¡µ
+ *[other] å
³é { $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 = è¯è¨ä¸å¤è§
+preferences-web-appearance-header = ç½ç«å¤è§
+preferences-web-appearance-description = æäºç½ç«å¯ä¾ç
§æ¨çåå¥½è°æ´èªèº«é
è²ï¼æ¨å¯å¨ä¸æ¹éæ©è¦ä½¿ç¨çç½ç«é
è²æ¹æ¡ã
+preferences-web-appearance-choice-browser = { -brand-short-name } 主é¢
+preferences-web-appearance-choice-system = ç³»ç»ä¸»é¢
+preferences-web-appearance-choice-auto = èªå¨
+preferences-web-appearance-choice-light = æµ
è²
+preferences-web-appearance-choice-dark = æ·±è²
+preferences-web-appearance-choice-tooltip-browser =
+ .title = å¨ç½ç«èæ¯åå
容使ç¨éµå¾ªæ¨ { -brand-short-name } 主é¢çé
è²ã
+preferences-web-appearance-choice-tooltip-system =
+ .title = å¨ç½ç«èæ¯åå
容使ç¨éµå¾ªæ¨ç³»ç»è®¾ç½®çé
è²ã
+preferences-web-appearance-choice-tooltip-auto =
+ .title = ä¾ç
§ç³»ç»è®¾ç½®å { -brand-short-name } 主é¢ï¼èªå¨æ´æ¹ç½ç«èæ¯åå
容å¤è§ã
+preferences-web-appearance-choice-tooltip-light =
+ .title = å¨ç½ç«èæ¯åå
å®¹ä½¿ç¨æµ
è²å¤è§ã
+preferences-web-appearance-choice-tooltip-dark =
+ .title = å¨ç½ç«èæ¯åå
å®¹ä½¿ç¨æ·±è²å¤è§ã
+preferences-web-appearance-choice-input-browser =
+ .aria-description = { preferences-web-appearance-choice-tooltip-browser.title }
+preferences-web-appearance-choice-input-system =
+ .aria-description = { preferences-web-appearance-choice-tooltip-system.title }
+preferences-web-appearance-choice-input-auto =
+ .aria-description = { preferences-web-appearance-choice-tooltip-auto.title }
+preferences-web-appearance-choice-input-light =
+ .aria-description = { preferences-web-appearance-choice-tooltip-light.title }
+preferences-web-appearance-choice-input-dark =
+ .aria-description = { preferences-web-appearance-choice-tooltip-dark.title }
+# This can appear when using windows HCM or "Override colors: always" without
+# system colors.
+preferences-web-appearance-override-warning = æ¨çé¢è²éæ©å°è¦çç½ç«å¤è§ã管çé¢è²
+# This message contains one link. It can be moved within the sentence as needed
+# to adapt to your language, but should not be changed.
+preferences-web-appearance-footer = å°æ©å±å主é¢ç®¡ç { -brand-short-name } 主é¢
+preferences-colors-header = é¢è²
+preferences-colors-description = è¦ç { -brand-short-name } çé»è®¤ææ¬ãç½ç«èæ¯ã龿¥é¢è²ã
+preferences-colors-manage-button =
+ .label = 管çé¢è²â¦
+ .accesskey = C
+preferences-fonts-header = åä½
+default-font = é»è®¤åä½
+ .accesskey = D
+default-font-size = åå·
+ .accesskey = S
+advanced-fonts =
+ .label = é«çº§â¦
+ .accesskey = A
+# 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-where = ä¿åæä»¶è³
+ .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 }
+
+##
+
+applications-handle-new-file-types-description = { -brand-short-name } åºå¦ä½å¤çå
¶ä»æä»¶ï¼
+applications-save-for-new-types =
+ .label = ä¿åæä»¶
+ .accesskey = S
+applications-ask-before-handling =
+ .label = 询é®è¦æå¼è¿æ¯ä¿åæä»¶
+ .accesskey = A
+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 = æ¤è®¾ç½®å°å½±å使ç¨è¿ä»½ { -brand-short-name } ç¨åºçææ Windows è´¦æ·å { -brand-short-name } é
ç½®æä»¶ã
+update-application-use-service =
+ .label = 使ç¨åå°æå¡éé»å®è£
æ´æ°
+ .accesskey = b
+update-application-suppress-prompts =
+ .label = åå°æ´æ°éç¥æé
+ .accesskey = n
+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 = æ¾å¼
+# 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 = ç»§ç»
+
+## 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-gtk-use-non-overlay-scrollbars =
+ .label = æ»æ¯æ¾ç¤ºæ»å¨æ¡
+ .accesskey = o
+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-default-fx =
+ .label = { -firefox-home-brand-name }ï¼é»è®¤ï¼
+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-content-header2 = { -firefox-home-brand-name }å
容
+home-prefs-content-description2 = éæ©è¦å¨æ¨ç { -firefox-home-brand-name }䏿¾ç¤ºçå
容ã
+home-prefs-search-header =
+ .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-new = ç± { -brand-product-name } æä¸ { $provider } çåçç¹å«å
容
+
+##
+
+home-prefs-recommended-by-learn-more = ä½¿ç¨æ¹æ³
+home-prefs-recommended-by-option-sponsored-stories =
+ .label = èµå©å
容
+home-prefs-recommended-by-option-recent-saves =
+ .label = æ¾ç¤ºè¿æä¿åå
容
+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-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 = 让æ¨ä¸ªæ§åçç½ç»ä½éªé身ç¸ä¼´
+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 = å¨
Android æè
iOS ä¸å®è£
Firefoxï¼è®©æ¨ç个æ§ä½éªé身ç¸ä¼´ã
+
+## 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 模å¼ã该模å¼éè¦ä¸ä¸ªé空ç主å¯ç ã
+forms-master-pw-fips-desc = å¯ç ä¿®æ¹å¤±è´¥
+forms-windows-sso =
+ .label = å
许é¢å Microsoft è´¦æ·ï¼ä¸ªäºº/å·¥ä½/妿 ¡ï¼ç 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-tracking-cookies =
+ .label = è·¨ç«è·è¸ªæ§ Cookie
+sitedata-option-block-cross-site-cookies =
+ .label = è·¨ç«è·è¸ªæ§ Cookieï¼å¹¶é离å
¶ä½è·¨ç« 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-locbar-quickactions-option =
+ .label = å¿«æ·æä½
+ .accesskey = Q
+addressbar-suggestions-settings = æ´æ¹æç´¢å¼æå»ºè®®çé¦é项
+addressbar-quickactions-learn-more = 详ç»äºè§£
+
+## 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-cookies-in-all-windows2 = ææçªå£ä¸çè·¨ç« 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ï¼é»æ¢è·è¸ªå¨åå
¶è·¨ç«è·è¸ªæ¨ã
+content-blocking-etp-standard-tcp-rollout-learn-more = 详ç»äºè§£
+content-blocking-etp-standard-tcp-title = å
嫿们è¿ä»æå¼ºå¤§çéç§ä¿æ¤åè½ â å
¨æ¹ä½ Cookie ä¿æ¤
+content-blocking-warning-title = 注æï¼
+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
+# "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-segmentation-section-header = å¢å¼ºæµè§ä½éªçæ°åè½
+privacy-segmentation-section-description = 彿们æ¨åºéä½¿ç¨æ¨æ°æ®ä»¥æä¾æ´ä¸ªæ§åçä¸ç½ä½éªçæ°åè½æ¶ï¼
+privacy-segmentation-radio-off =
+ .label = ä½¿ç¨ { -brand-product-name } æ¨è
+privacy-segmentation-radio-on =
+ .label = æ¾ç¤ºè¯¦ç»ä¿¡æ¯
+
+## 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-Only 模å¼
+httpsonly-description = HTTPS å¯å¨ { -brand-short-name } åæ¨è®¿é®çç½ç«ä¹é´æä¾å®å
¨ãå å¯çè¿æ¥ãç°ä»ï¼å¤§å¤æ°ç½ç«é½æ¯æ HTTPSï¼è¥éæ©å¯ç¨ HTTPS-Only 模å¼ï¼{ -brand-short-name } å°ä¼å级ææè¿æ¥ä¸º HTTPSã
+httpsonly-learn-more = 详ç»äºè§£
+httpsonly-radio-enabled =
+ .label = 卿æçªå£å¯ç¨ HTTPS-Only 模å¼
+httpsonly-radio-enabled-pbm =
+ .label = ä»
å¨éç§çªå£å¯ç¨ HTTPS-Only 模å¼
+httpsonly-radio-disabled =
+ .label = ä¸å¯ç¨ HTTPS-Only 模å¼
+
+## The following strings are used in the Download section of settings
+
+desktop-folder-name = æ¡é¢
+downloads-folder-name = ä¸è½½
+choose-download-folder-title = éæ©ä¸è½½æä»¶å¤¹ï¼
diff --git a/browser/browser/preferences/selectBookmark.ftl b/browser/browser/preferences/selectBookmark.ftl
new file mode 100644
index 00000000000..93d6206435f
--- /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..fde55b774da
--- /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..b4df665628f
--- /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/profile/default-bookmarks.ftl b/browser/browser/profile/default-bookmarks.ftl
new file mode 100644
index 00000000000..e8d2aa47e4e
--- /dev/null
+++ b/browser/browser/profile/default-bookmarks.ftl
@@ -0,0 +1,53 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+# This file intentionally uses hard-coded brand names instead of Fluent terms.
+# This approach minimizes issues across multiple release channels and rebranded
+# versions.
+
+default-bookmarks-title = 书ç¾
+default-bookmarks-heading = 书ç¾
+
+default-bookmarks-toolbarfolder = 书ç¾å·¥å
·æ æä»¶å¤¹
+default-bookmarks-toolbarfolder-description = æ¤æä»¶å¤¹ç书ç¾ä¼åºç°å¨ä¹¦ç¾å·¥å
·æ ä¸
+
+# link title for https://www.mozilla.org/firefox/central/
+default-bookmarks-getting-started = æ°æä¸è·¯
+
+# Firefox links folder name
+default-bookmarks-firefox-heading = Mozilla Firefox
+
+# link title for https://www.mozilla.org/firefox/help/
+default-bookmarks-firefox-get-help = è·å帮å©
+
+# link title for https://www.mozilla.org/firefox/customize/
+default-bookmarks-firefox-customize = å®å¶ Firefox
+
+# link title for https://www.mozilla.org/contribute/
+default-bookmarks-firefox-community = åä¸è¿æ¥
+
+# link title for https://www.mozilla.org/about/
+default-bookmarks-firefox-about = å
³äºæä»¬
+
+# Firefox Nightly links folder name
+default-bookmarks-nightly-heading = Firefox Nightly èµæº
+
+# Nightly builds only, link title for https://blog.nightly.mozilla.org/
+default-bookmarks-nightly-blog = Firefox Nightly å客
+
+# Nightly builds only, link title for https://bugzilla.mozilla.org/
+default-bookmarks-bugzilla = Mozilla 缺é·è·è¸ªç½ç«
+
+# Nightly builds only, link title for https://developer.mozilla.org/
+default-bookmarks-mdn = Mozilla å¼åè
ç½ç»
+
+# Nightly builds only, link title for https://addons.mozilla.org/firefox/addon/nightly-tester-tools/
+default-bookmarks-nightly-tester-tools = Nightly æµè¯è
å·¥å
·
+
+# Nightly builds only, link title for about:crashes
+default-bookmarks-crashes = ææå´©æºä¿¡æ¯
+
+# Nightly builds only, link title for https://planet.mozilla.org/
+default-bookmarks-planet = Planet Mozilla
diff --git a/browser/browser/protections.ftl b/browser/browser/protections.ftl
new file mode 100644
index 00000000000..75fe22f3d2b
--- /dev/null
+++ b/browser/browser/protections.ftl
@@ -0,0 +1,190 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# 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 ç±ç¬¬ä¸æ¹å¹¿ååæåæå
¬å¸è®¾ç½®ï¼è½å¤å¨ä¸åç½ç«é´è·è¸ªæ¨ï¼ä»¥æ¶éæ¨çå¨çº¿æ´»å¨æ°æ®ã详ç»äºè§£
+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 = å¯ç 䏿åå¿
+passwords-title-logged-in = ç®¡çæ¨çå¯ç
+passwords-header-content = { -brand-product-name } è½å°æ¨çå¯ç å®å
¨å°åå¨å¨æµè§å¨ä¸ã
+lockwise-header-content-logged-in = å®å
¨å°åå¨å¯ç ï¼å¹¶åæ¥å°æ¨çææè®¾å¤ä¸ã
+protection-report-passwords-save-passwords-button = ä¿åå¯ç
+ .title = ä¿åå¯ç
+protection-report-passwords-manage-passwords-button = 管çå¯ç
+ .title = 管çå¯ç
+# 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..c5600c60e77
--- /dev/null
+++ b/browser/browser/protectionsPanel.ftl
@@ -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/.
+
+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 = ä¿æ¤è®¾ç½®
+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..b03abed7141
--- /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..75169226554
--- /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 = æ¥é
æµæ°è½¯ä»¶æ¿ç å¯ä»¥è¯¦ç»äºè§£æå®³åæµæ°ç软件ãå° 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..4e2c2633b3d
--- /dev/null
+++ b/browser/browser/sanitize.ftl
@@ -0,0 +1,110 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+sanitize-prefs =
+ .title = æ¸
é¤åå²è®°å½è®¾ç½®
+ .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-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..ab27a01a2b8
--- /dev/null
+++ b/browser/browser/screenshots.ftl
@@ -0,0 +1,57 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+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-retry-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/screenshotsOverlay.ftl b/browser/browser/screenshotsOverlay.ftl
new file mode 100644
index 00000000000..f2b4bc241ee
--- /dev/null
+++ b/browser/browser/screenshotsOverlay.ftl
@@ -0,0 +1,8 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+screenshots-overlay-cancel-button = åæ¶
+screenshots-overlay-instructions = ææ½æåå»éæ©æªå¾åºåï¼æ ESC é®åæ¶æªå¾ã
+screenshots-overlay-download-button = ä¸è½½
+screenshots-overlay-copy-button = å¤å¶
diff --git a/browser/browser/search.ftl b/browser/browser/search.ftl
new file mode 100644
index 00000000000..4c0d6fade27
--- /dev/null
+++ b/browser/browser/search.ftl
@@ -0,0 +1,38 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## These strings are used for errors when installing OpenSearch engines, e.g.
+## via "Add Search Engine" on the address bar or search bar.
+## Variables
+## $location-url (String) - the URL of the OpenSearch engine that was attempted to be installed.
+
+opensearch-error-duplicate-title = å®è£
é误
+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 = æç´¢
+
+## Infobar shown when search engine is removed and replaced.
+## Variables
+## $oldEngine (String) - the search engine to be removed.
+## $newEngine (String) - the search engine to replace the removed search engine.
+
+removed-search-engine-message = æ¨çé»è®¤æç´¢å¼ææåå¨ã{ $oldEngine } ä¸åä½ä¸º { -brand-short-name } çé»è®¤æç´¢å¼æï¼ç°å·²æ¿æ¢ä¸º { $newEngine }ãè¥è¦ä½¿ç¨å
¶ä»æç´¢å¼æï¼è¯·åå¾â设置â页é¢ã
+remove-search-engine-button = ç¡®å®
diff --git a/browser/browser/setDesktopBackground.ftl b/browser/browser/setDesktopBackground.ftl
new file mode 100644
index 00000000000..7b1b1c60cb1
--- /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..7ffb7e8e5d6
--- /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..e47a0e789fe
--- /dev/null
+++ b/browser/browser/sitePermissions.ftl
@@ -0,0 +1,11 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# This string is used to display the option to open blocked popup(s) in site permission management panels.
+# Variables:
+# $count (String) - Number of blocked pop-ups
+site-permissions-open-blocked-popups =
+ { $count ->
+ *[other] æå¼ { $count } ä¸ªé»æ¢çå¼¹åºå¼çªå£â¦
+ }
diff --git a/browser/browser/spotlight.ftl b/browser/browser/spotlight.ftl
new file mode 100644
index 00000000000..4bfb09d72e3
--- /dev/null
+++ b/browser/browser/spotlight.ftl
@@ -0,0 +1,22 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Dialog close button
+spotlight-dialog-close-button =
+ .title = å
³é
+ .aria-label = å
³é
+
+## Mobile download button strings
+
+spotlight-android-marketplace-button =
+ .title = å° Google Play ä¸è½½
+spotlight-ios-marketplace-button =
+ .title = å° App Store ä¸è½½
+
+## Firefox Focus promo message strings
+
+spotlight-focus-promo-title = ä¸è½½ { -focus-brand-name }
+spotlight-focus-promo-subtitle = æ«ç ä¸è½½ã
+spotlight-focus-promo-qr-code =
+ .alt = æ«ç ä¸è½½ { -focus-brand-name }
diff --git a/browser/browser/sync.ftl b/browser/browser/sync.ftl
new file mode 100644
index 00000000000..469aaa2e91e
--- /dev/null
+++ b/browser/browser/sync.ftl
@@ -0,0 +1,33 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+fxa-toolbar-sync-syncing2 = æ£å¨åæ¥â¦
+
+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..c0f42288cc2
--- /dev/null
+++ b/browser/browser/syncedTabs.ftl
@@ -0,0 +1,81 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+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 = å¨ååæ¥çæ ç¾é¡µä¸æç´¢
+
+## Displayed in the Synced Tabs sidebar's context menu when right-clicking tabs
+## and/or devices in the list. The "Open" strings below should be translated
+## consistently with the equivalent strings for the bookmarks manager's context
+## menu. That menu is activated by right-clicking a bookmark in the Library
+## window. The bookmarks manager context's strings are located in places.ftl.
+
+synced-tabs-context-open =
+ .label = æå¼
+ .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-open-in-tab =
+ .label = æ°å»ºæ ç¾é¡µæå¼
+ .accesskey = w
+synced-tabs-context-open-in-container-tab =
+ .label = æ°å»ºèº«ä»½æ ç¾é¡µæå¼
+ .accesskey = i
+synced-tabs-context-open-in-window =
+ .label = æ°å»ºçªå£æå¼
+ .accesskey = N
+synced-tabs-context-open-in-private-window =
+ .label = æ°å»ºéç§çªå£æå¼
+ .accesskey = N
+
+##
+
+# Displayed in the Synced Tabs sidebar's context menu when right-clicking tabs
+# and/or devices in the list. This string is for a menuitem equivalent to one in
+# the tab context menu (activated by right-clicking a tab in the tabstrip). That
+# string is located in tabContextMenu.ftl. So, this string should be translated
+# consistently with the "Bookmark Tab" string there.
+synced-tabs-context-bookmark-tab =
+ .label = å°æ ç¾é¡µå å
¥ä¹¦ç¾
+ .accesskey = B
+# Displayed in the Synced Tabs sidebar's context menu when right-clicking tabs
+# and/or devices in the list. This string is for a menuitem equivalent to one in
+# the tab context menu (activated by right-clicking a tab in the tabstrip). That
+# string is located in tabContextMenu.ftl. So, this string should be translated
+# consistently with the "Bookmark Tabâ¦" string there.
+synced-tabs-context-bookmark =
+ .label = å°æ ç¾é¡µå å
¥ä¹¦ç¾â¦
+ .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..4d635143078
--- /dev/null
+++ b/browser/browser/tabContextMenu.ftl
@@ -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/.
+
+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-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
+
+## 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-n-tabs =
+ .label =
+ { $tabCount ->
+ [1] å
³éæ ç¾é¡µ
+ *[other] å
³é { $tabCount } 个æ ç¾é¡µ
+ }
+ .accesskey = C
+tab-context-move-tabs =
+ .label =
+ { $tabCount ->
+ [1] ç§»å¨æ ç¾é¡µ
+ *[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..3fa9aeb45ae
--- /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/textRecognition.ftl b/browser/browser/textRecognition.ftl
new file mode 100644
index 00000000000..e9ae2a12201
--- /dev/null
+++ b/browser/browser/textRecognition.ftl
@@ -0,0 +1,14 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Text recognition works through a modal that presents the text that is found
+## in an image, and copies the results to the clipboard.
+
+text-recognition-modal-searching-title = æ£å¨è¯å«å¾åå
æåâ¦
+text-recognition-modal-results-title = å·²å¤å¶å¾åå
æå
+text-recognition-modal-no-results-title = æ±æï¼æä»¬æªæååºä»»ä½æåï¼è¯·å°è¯å
¶ä»å¾åã详ç»äºè§£ã
+text-recognition-modal-close-button = å
³é
+# The title of the the modal is only available to screen readers.
+text-recognition-modal-accessible-modal-title = æåæåç»æ
diff --git a/browser/browser/toolbarContextMenu.ftl b/browser/browser/toolbarContextMenu.ftl
new file mode 100644
index 00000000000..2042b713902
--- /dev/null
+++ b/browser/browser/toolbarContextMenu.ftl
@@ -0,0 +1,77 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+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 toolbar-context-menu-menu-bar-cmd
+# ("Menu Bar") and personalbarCmd ("Bookmarks Toolbar"), so they should
+# have different access keys.
+toolbar-context-menu-pin-to-overflow-menu =
+ .label = éèå°æå èå
+ .accesskey = P
+toolbar-context-menu-auto-hide-downloads-button-2 =
+ .label = ç©ºé²æ¶éèæé®
+ .accesskey = H
+toolbar-context-menu-always-open-downloads-panel =
+ .label = ä¸è½½å¼å§æ¶æ¾ç¤ºé¢æ¿
+ .accesskey = S
+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..5956a0a46ea
--- /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/translationNotification.ftl b/browser/browser/translationNotification.ftl
new file mode 100644
index 00000000000..6454207cc42
--- /dev/null
+++ b/browser/browser/translationNotification.ftl
@@ -0,0 +1,74 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## These 2 strings are used to construct a sentence that contains a dropdown
+## showing the detected language of the current web page.
+## In en-US it looks like this:
+## This page is in [detected language] Translate this page?
+## "detected language" here is a language name coming from the
+## toolkit/intl/languageNames.ftl file; for some locales it may not be in
+## the correct grammar case to keep the same structure of the original
+## sentence.
+
+translation-notification-this-page-is-in =
+ .value = æ¤é¡µé¢ä½¿ç¨
+translation-notification-translate-this-page =
+ .value = ç¿»è¯æ¤é¡µé¢ï¼
+
+##
+
+translation-notification-translate-button =
+ .label = ç¿»è¯
+translation-notification-not-now-button =
+ .label = æä¸
+translation-notification-translating-content =
+ .value = æ£å¨ç¿»è¯é¡µé¢å
容â¦
+
+## These 3 strings are used to construct a sentence that contains 2 dropdowns
+## showing the source and target language of a translated web page.
+## In en-US it looks like this:
+## This page has been translated from [from language] to [to language]
+## "from language" and "to language" here are language names coming from the
+## toolkit/intl/languageNames.ftl file; for some locales they may not be in
+## the correct grammar case to keep the same structure of the original
+## sentence.
+
+translation-notification-translated-from =
+ .value = æ¤é¡µé¢å·²è¢«ç¿»è¯ï¼ä»
+translation-notification-translated-to =
+ .value = è¯è³
+# This string (empty in en-US) is for locales that need to display some text
+# after the second drop down for the sentence to be grammatically correct.
+translation-notification-translated-to-suffix =
+ .value = { "" }
+
+##
+
+translation-notification-show-original-button =
+ .label = æ¾ç¤ºåæ
+translation-notification-show-translation-button =
+ .label = æ¾ç¤ºç¿»è¯
+translation-notification-error-translating =
+ .value = ç¿»è¯æ¤é¡µé¢æ¶åºéã
+translation-notification-try-again-button =
+ .label = éè¯
+translation-notification-service-unavailable =
+ .value = ææ¶æ æ³ç¿»è¯ã请ç¨ååè¯ã
+translation-notification-options-menu =
+ .label = é项
+
+## The accesskey values used here should not clash with each other
+
+# Variables:
+# $langName (String): a language name coming from the toolkit/intl/languageNames.ftl file.
+translation-notification-options-never-for-language =
+ .label = ä¸ç¿»è¯ { $langName }
+ .accesskey = N
+translation-notification-options-never-for-site =
+ .label = ä¸ç¿»è¯æ¤ç½ç«
+ .accesskey = e
+translation-notification-options-preferences =
+ .label = ç¿»è¯é¦é项
+ .accesskey = T
diff --git a/browser/browser/upgradeDialog.ftl b/browser/browser/upgradeDialog.ftl
new file mode 100644
index 00000000000..eefe65699c7
--- /dev/null
+++ b/browser/browser/upgradeDialog.ftl
@@ -0,0 +1,63 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### Strings for the upgrade dialog that can be displayed on major version change.
+
+
+## New changes screen
+
+## 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).
+
+## Default browser screen
+
+## Theme selection screen
+
+## 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-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..6f834fd80d3
--- /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/accounts.properties b/browser/chrome/browser/accounts.properties
new file mode 100644
index 00000000000..26779fc1c6d
--- /dev/null
+++ b/browser/chrome/browser/accounts.properties
@@ -0,0 +1,111 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# 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/browser.properties b/browser/chrome/browser/browser.properties
new file mode 100755
index 00000000000..a0a7b19b600
--- /dev/null
+++ b/browser/chrome/browser/browser.properties
@@ -0,0 +1,1015 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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
+# LOCALIZATION NOTE (addonDomainBlockedByPolicy)
+# This message is shown when the installation of add-ons from a domain
+# is blocked by enterprise policy.
+addonDomainBlockedByPolicy=æ¨çç³»ç»ç®¡çå已黿¢æ¤ç½ç«å¨æ¨çè®¡ç®æºä¸å®è£
软件ç请æ±ã
+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.declarativeNetRequest=æ¦æªä»»ä½é¡µé¢ä¸çå
容
+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 (webextSitePerms.headerWithPerms,webextSitePerms.headerUnsignedWithPerms)
+# This string is used as a header in the webextension permissions dialog,
+# %1$S is replaced with the localized name of the extension being installed.
+# %2$S will be replaced by the DNS host name for which a webextension enables permissions
+# Note, this string will be used as raw markup. Avoid characters like <, >, &
+webextSitePerms.headerWithPerms=è¦å®è£
%1$S åï¼æ¤æ©å±å°æäº %2$S 以ä¸åè½ï¼
+webextSitePerms.headerUnsignedWithPerms=è¦å®è£
%1$S åï¼æ¤æ©å±æªç»éªè¯ãæ¶æçæ©å±å¯è½ä¼çªåæ¨çç§å¯ä¿¡æ¯ææåæ¨çè®¡ç®æºã请ä»
å¨ä¿¡ä»»å
¶æ¥æºæ¶æå®è£
ãæ¤æ©å±å°æäº %2$S 以ä¸åè½ï¼
+
+# These should remain in sync with permissions.NAME.label in sitePermissions.properties
+webextSitePerms.description.midi=è®¿é® MIDI 设å¤
+webextSitePerms.description.midi-sysex=è®¿é®æ¯æ SysEx ç MIDI 设å¤
+
+# 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=注æï¼æ¤ç½ç«æ³å¨ #1 ä¸å®è£
#2 个æªéè¿éªè¯çéå ç»ä»¶ã请谨æ
å³å®ã
+
+# 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=注æï¼æ¤ç½ç«æ³å¨ #1 ä¸å®è£
#2 个éå ç»ä»¶ï¼å
¶ä¸ä¸äºæªéè¿éªè¯ã请谨æ
å³å®ã
+
+# 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=%2$S æªè½å®è£
ï¼å 为 %1$S æ æ³ä¿®æ¹æéçæä»¶ã
+addonInstallError-5=%1$S 已黿¢æ¤ç½ç«å®è£
æªéè¿éªè¯çéå ç»ä»¶ã
+addonInstallError-8=æ æ³ä»æ¤ä½ç½®å®è£
%2$S éå ç»ä»¶ã
+addonLocalInstallError-1=å 为æä»¶ç³»ç»éè¯¯ï¼æ æ³å®è£
该éå ç»ä»¶ã
+addonLocalInstallError-2=æä¸è½½ç䏿¯æ¬è¦å®è£
éå ç»ä»¶ %1$Sï¼æ æ³å®è£
ã
+addonLocalInstallError-3=该éå ç»ä»¶æ æ³å®è£
ï¼å 为å®ä¼¼ä¹å·²æåã
+addonLocalInstallError-4=%2$S æªè½å®è£
ï¼å 为 %1$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=%3$S æªè½å®è£
ï¼å 为å®ä¸ %1$S %2$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
+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 åï¼è¯·åªå¨æ¨ä¿¡ä»»çç½ç«ä¸å
许 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=åç卿¤é¡µ
+
+# Unified Back-/Forward Popup
+tabHistory.reloadCurrent=å·æ°æ¤é¡µé¢
+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)
+
+# 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.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 è®¿é® VR 设å¤åï¼è¿å¯è½ä¼æ³é²ææä¿¡æ¯ã
+xr.shareWithFile4=è¦å
许æ¬å°æä»¶è®¿é® VR 设å¤åï¼è¿å¯è½ä¼æ³é²ææä¿¡æ¯ã
+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=false
+
+# 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.notNow.label = ææ¶ä¸è¦
+getUserMedia.notNow.accesskey = N
+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 (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 å»¶é¿æ¯æçï¼ESRï¼ã
+
+# 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
+
+muteTab.label = é鳿 ç¾é¡µ
+muteTab.accesskey = M
+unmuteTab.label = åæ¶é鳿 ç¾é¡µ
+unmuteTab.accesskey = M
+
+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
+
+# 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 = åé
+
+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.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
+
+# LOCALIZATION NOTE (gnomeSearchProviderSearchWeb):
+# Used for search by Gnome Shell activity screen, %S is a searched string.
+gnomeSearchProviderSearchWeb=å¨ç½ä¸æç´¢â%Sâ
+browser.startup.homepage = https://start.firefoxchina.cn
diff --git a/browser/chrome/browser/customizableui/customizableWidgets.properties b/browser/chrome/browser/customizableui/customizableWidgets.properties
new file mode 100755
index 00000000000..ed2450c906f
--- /dev/null
+++ b/browser/chrome/browser/customizableui/customizableWidgets.properties
@@ -0,0 +1,54 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+history-panelmenu.label = åå²è®°å½
+# LOCALIZATION NOTE(history-panelmenu.tooltiptext2): %S is the keyboard shortcut
+history-panelmenu.tooltiptext2 = æ¾ç¤ºæ¨çåå²è®°å½ï¼%Sï¼
+
+find-button.label = æ¥æ¾
+# LOCALIZATION NOTE(find-button.tooltiptext3): %S is the keyboard shortcut.
+find-button.tooltiptext3 = 卿¤é¡µé¢ä¸æ¥æ¾ (%S)
+
+developer-button.label = å¼åè
+# LOCALIZATION NOTE(developer-button.tooltiptext): %S is the keyboard shortcut
+developer-button.tooltiptext2 = æå¼ Web å¼åè
å·¥å
· (%S)
+
+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)
+
+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 100755
index 00000000000..ce871ec7fb3
--- /dev/null
+++ b/browser/chrome/browser/downloads/downloads.properties
@@ -0,0 +1,83 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this file,
+# You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (stateStarting):
+# Indicates that the download is starting.
+stateStarting=æ£å¨å¼å§â¦
+# 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 (fileDeleted):
+# Displayed when a downloaded file has been deleted by Firefox, e.g. by the
+# "Delete File" context menu item.
+fileDeleted=æä»¶å·²å é¤
+
+# 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 â %2$S
+statusSeparatorBeforeNumber=%1$S â %2$S
+
diff --git a/browser/chrome/browser/feeds/subscribe.properties b/browser/chrome/browser/feeds/subscribe.properties
new file mode 100755
index 00000000000..f93cd4e1343
--- /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 100755
index 00000000000..0e9b66533f6
--- /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.properties b/browser/chrome/browser/places/places.properties
new file mode 100755
index 00000000000..dc73be1ffe0
--- /dev/null
+++ b/browser/chrome/browser/places/places.properties
@@ -0,0 +1,79 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+load-js-data-url-error=åºäºå®å
¨å ç´ ï¼javascript æè
æ°æ® URL ä¸ä¼å¨åå²è®°å½çªå£æè
ä¾§æ ä¸è½½å
¥ã
+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.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
+
+# LOCALIZATION NOTE (cmd.bookmarkSinglePage.accesskey,
+# cmd.bookmarkMultiplePages.accesskey): these accesskeys can use the same
+# character, since they're never displayed at the same time
+cmd.bookmarkSinglePage2.label=å°é¡µé¢å å
¥ä¹¦ç¾â¦
+cmd.bookmarkSinglePage2.accesskey=B
+cmd.bookmarkMultiplePages2.label=å°é¡µé¢å å
¥ä¹¦ç¾â¦
+cmd.bookmarkMultiplePages2.accesskey=B
diff --git a/browser/chrome/browser/safebrowsing/safebrowsing.properties b/browser/chrome/browser/safebrowsing/safebrowsing.properties
new file mode 100644
index 00000000000..0efa01a94b2
--- /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 100755
index 00000000000..dc5f54794ce
--- /dev/null
+++ b/browser/chrome/browser/search.properties
@@ -0,0 +1,32 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+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 and Go"
+cmd_pasteAndSearch=ç²è´´å¹¶æç´¢
+
+cmd_clearHistory=æ¸
空æç´¢åå²
+cmd_clearHistory_accesskey=H
+
+# LOCALIZATION NOTE (searchForSomethingWith2):
+# This string is used to build the header above the list of search shortcuts,
+# for example "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 100755
index 00000000000..e0310124549
--- /dev/null
+++ b/browser/chrome/browser/shellservice.properties
@@ -0,0 +1,16 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (setDefaultBrowserTitle, setDefaultBrowserMessage, setDefaultBrowserDontAsk, setDefaultBrowserAlertConfirm.label, setDefaultBrowserAlertNotNow.label):
+# These strings are used as an alternative to the ones above, in a modal dialog.
+# %S will be replaced by brandShortName
+setDefaultBrowserTitle=é»è®¤æµè§å¨
+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..4c1b3c51c6b
--- /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 100755
index 00000000000..9b36383078f
--- /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 = è®¿é®æ¯æ SysEx ç MIDI 设å¤
+# 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 100755
index 00000000000..513a50a974b
--- /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 = æ¨ç¡®å®è¦ç»å½åæ¥æå¡åï¼
+# LOCALIZATION NOTE (relinkVerify.description): Email address of a user previously signed into sync.
+relinkVerify.description = å
åæå¦å¤çç¨æ·å¨æ¤è®¡ç®æºä¸ç»å½è¿åæ¥æå¡ãè¥ç»§ç»åæ¥ï¼å°ä¸ %S åå¹¶æ¤æµè§å¨ç书ç¾ãå¯ç ç设置
diff --git a/browser/chrome/browser/tabbrowser.properties b/browser/chrome/browser/tabbrowser.properties
new file mode 100755
index 00000000000..ee22919704c
--- /dev/null
+++ b/browser/chrome/browser/tabbrowser.properties
@@ -0,0 +1,106 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+tabs.emptyTabTitle=æ°æ ç¾é¡µ
+tabs.emptyPrivateTabTitle=éç§æµè§
+tabs.emptyPrivateTabTitle2=æ°å»ºéç§æ ç¾é¡µ
+tabs.closeTab=å
³éæ ç¾é¡µ
+tabs.close=å
³é
+
+# 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=å
³éæ ç¾é¡µ
+
+# 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 100755
index 00000000000..78a97fc2be3
--- /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 100755
index 00000000000..3c6bc09a9c2
--- /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 100755
index 00000000000..342bb56df96
--- /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..bb003ea1cf1
--- /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 100755
index 00000000000..034ba453264
--- /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 100755
index 00000000000..b975690c3c9
--- /dev/null
+++ b/browser/chrome/overrides/appstrings.properties
@@ -0,0 +1,44 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+malformedURI2=è¯·æ£æ¥ç½åæ¯å¦æ£ç¡®ï¼ç¶åéè¯ã
+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=æ¤ç½å使ç¨äºä¸ä¸ªé常ç¨äºç½ç»æµè§ä»¥å¤ç®çç端å£ãåºäºå®å
¨åå ï¼Firefox åæ¶äºè¯¥è¯·æ±ã
+proxyResolveFailure=Firefox æ æ³æ¾å°æ¨æå®ç代çæå¡å¨ã
+proxyConnectFailure=Firefox å°è¯ä¸æ¨æå®ç代çæå¡å¨è¿æ¥æ¶è¢«æç»ã
+contentEncodingError=æ¨å°è¯æ¥çç页颿 æ³æ¾ç¤ºï¼å 为å®ä½¿ç¨äºæ æçæè
ä¸åæ¯æçåç¼©æ ¼å¼ã
+unsafeContentType=æ æ³æ¾ç¤ºæ¨å°è¯æ¥çç页é¢ï¼å®å
å«å¨ä¸è½å®å
¨æå¼çæä»¶ç±»åä¸ãå»ºè®®åæ¤ç½ç«ç管çååé¦è¿ä¸ªé®é¢ã
+externalProtocolTitle=å¤é¨å议请æ±
+externalProtocolPrompt=éè¦å¯å¨ä¸ä¸ªå¤é¨ç¨åºæ¥å¤ç %1$S: 龿¥ã\n\n\n请æ±ç龿¥ï¼\n\n%2$S\n\nåºç¨ç¨åº: %3$S\n\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=æ¤é¡µé¢å
å«çå
容å®å
¨æ¿ç黿¢äºå¨æ¤ä¸ä¸æä¸è¿è¡çè½½å
¥ã
+corruptedContentErrorv2=å¨ç½ç« %S éå°ä¸ä¸ªæ æ³ä¿®å¤çç½ç»åè®®è¿è§ã
+## 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 100755
index 00000000000..d4ead9bb62f
--- /dev/null
+++ b/browser/chrome/overrides/netError.dtd
@@ -0,0 +1,159 @@
+
+
+
+%brandDTD;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+å¦æç¡®å®æ¤ç½åæ£ç¡®ï¼æ¨å¯ä»¥å°è¯ï¼
+
+ - è¿ä¼å¿åéè¯ã
+ - æ£æ¥æ¨çç½ç»è¿æ¥æ¯å¦æ£å¸¸ã
+ - 妿æ¨é¨ç½²æç½ç»é²ç«å¢ï¼è¯·æ£æ¥ &brandShortName; æ¯å¦å·²è¢«ææè®¿é®ç½ç»ã
+
+">
+
+
+è¯·æ£æ¥æä»¶åæ¯å¦å¤§å°åè¾éï¼æè
æå
¶ä»è¾å
¥é误ã
+è¯·æ£æ¥æä»¶æ¯å¦å·²è¢«ç§»å¨ï¼éå½åæå é¤ã
+">
+
+
+ æä»¶å¯è½å·²è¢«å é¤ãç§»å¨ï¼æè
å æä»¶æéé®é¢è¢«æç»è®¿é®ã
+
+">
+
+&brandShortName; å æäºä¸æåå æ æ³è½½å
¥æ¤é¡µé¢ã
">
+
+
+æ¨å¿
é¡»å
ç»å½æ¤ç½ç»æè½è®¿é®äºèç½ã">
+
+
+
+
+
+
+
+æ¨è¯·æ±çææ¡£å·²æ æ³å¨ &brandShortName; çç¼å䏿¾å°ã- åºäºå®å
¨èèï¼&brandShortName; ä¸ä¼èªå¨éæ°è·åææææ¡£ã
- æ¨å¯ä»¥ç¹å»âéè¯âæ¥éæ°è¯·æ±ä»ç½ç«è·åè¯¥ææ¡£ã
">
+
+
+
+ 请æâéè¯â忢å°èç½æ¨¡å¼å¹¶éæ°è½½å
¥æ¤é¡µé¢ã
+">
+
+
+ å»ºè®®åæ¤ç½ç«ç管çååé¦è¿ä¸ªé®é¢ã">
+
+
+ å»ºè®®åæ¤ç½ç«ç管çååé¦è¿ä¸ªé®é¢ã ">
+
+
+
+
+
+
+æ¨å¯è½éè¦å®è£
å
¶ä»è½¯ä»¶æè½æå¼æ¤ç½åã
+">
+
+è¯·æ£æ¥æµè§å¨ç代çæå¡å¨è®¾ç½®æ¯å¦æ£ç¡®ã请èç³»æ¨çç½ç»ç®¡çå以确认代çæå¡å¨å·¥ä½æ£å¸¸ã">
+
+è¯·æ£æ¥æµè§å¨ç代çæå¡å¨è®¾ç½®æ¯å¦æ£ç¡®ãè¯·æ£æ¥ç¡®è®¤æ¨çè®¡ç®æºè½æ£å¸¸è¿ä¸ç½ã妿æ¨çè®¡ç®æºæç½ç»åå°é²ç«å¢æè
代çæå¡å¨çä¿æ¤ï¼è¯·ç¡®è®¤ &brandShortName; 已被ææè®¿é®ç½ç»ã">
+
+ææ¶åç¦ç¨ææç»æ¥å Cookie ä¼å¯¼è´æ¤é®é¢ã">
+
+
+è¯·æ£æ¥æ¨çç³»ç»æ¯å¦å®è£
äºä¸ªäººå®å
¨ç®¡çå¨ï¼PSMï¼ã
+è¿å¯è½æ¯ç±æå¡å¨ç«¯çéæ åé
ç½®æè´ã
+">
+
+
+ç±äºä¸è½éªè¯ææ¶å°çæ°æ®æ¯å¦å¯ä¿¡ï¼æ æ³æ¾ç¤ºæ¨æ³è¦æ¥çç页é¢ã
+å»ºè®®åæ¤ç½ç«ç管çååé¦è¿ä¸ªé®é¢ã
+">
+
+
+ãè¥æ¨è®¿é®æ¤ç½ç«ï¼æ»å»è
å¯è½ä¼å°è¯çªåæ¨çå¯ç ãçµåé®ä»¶ãä¿¡ç¨å¡çä¿¡æ¯ã">
+ è¦æ±å®å
¨è¿æ¥è没æç»§ç»ã">
+
+ãå¯è½æ¯è¯¥ç½ç«é
ç½®æè¯¯ï¼æè
æ¨çè®¡ç®æºæ¶é设置æè¯¯ã">
+
+
+
+
+
+è¿ä¸ªé®é¢å¤§å¤ä¸ç½ç«æå
³ï¼æ æ³éè¿æ¨çæä½è§£å³ã
+å¦ææ¨æ¯å¨ä½¿ç¨å
¬å¸ç½ç»ææäºé²ç
æ¯è½¯ä»¶æ¶éå°æ¤é®é¢ï¼å¯èèè系客æï¼ææ¯æ¯æï¼ä»¥å¯»æ±å¸®å©ãæ¨ä¹å¯ä»¥åç½ç«ç®¡çååç¥æ¤é®é¢ã
+">
+
+æ¨çè®¡ç®æºæ¶éç®å设置为 ãè¯·ç¡®ä¿æ¨çè®¡ç®æºå¨ç³»ç»è®¾ç½®ä¸å·²è®¾ç½®äºæ£ç¡®çæ¥æãæ¶é´åæ¶åºï¼ç¶åå·æ° ã
+妿æ¨çæ¶é已设置æ£ç¡®çæ¶é´ï¼åæ¤ç½ç«å¯è½åå¨é
ç½®éè¯¯ï¼æ¨æ æ³è§£å³æ¤é®é¢ãæ¨å¯ä»¥åç½ç«ç®¡çååé¦è¯¥é®é¢ã
">
+
+è¿ä¸ªé®é¢å¤§å¤ä¸ç½ç«æå
³ï¼æ æ³éè¿æ¨çæä½è§£å³ãæ¨å¯ä»¥åæ¤ç½ç«ç管çè
å馿¤é®é¢ã
+">
+
+
+æ¤ç«ç¹ææ¶æ æ³ä½¿ç¨æè
太è¿å¿ç¢ã请è¿å åéååè¯ã
+å¦ææ¨æ æ³è½½å
¥ä»»ä½ç½é¡µï¼è¯·æ£æ¥æ¨è®¡ç®æºçç½ç»è¿æ¥ç¶æã
+妿æ¨çè®¡ç®æºæç½ç»åå°é²ç«å¢æè
代çæå¡å¨çä¿æ¤ï¼è¯·ç¡®è®¤ &brandShortName; 已被ææè®¿é®ç½ç»ã
+">
+
+&brandShortName; å·²ä¾ç
§è¯¥é¡µé¢çå
容å®å
¨çç¥é»æ¢äºå®ä»¥è¿ç§æ¹å¼è½½å
¥ã">
+
+&brandShortName; å·²ä¾ç
§è¯¥é¡µé¢ç X-Frame-Options æ¿ç黿¢äºå
¶å¨æ¤ä¸ä¸æä¸çè½½å
¥ã">
+
+ç±äºæ£æµå°å¨æ°æ®ä¼ è¾è¿ç¨ä¸åå¨éè¯¯ï¼æ æ³æ¾ç¤ºæ¨æ£è¦æ¥çç页é¢ã- å»ºè®®åæ¤ç½ç«ç管çååé¦è¿ä¸ªé®é¢ã
">
+
+
+
+
+
+
+
+
+
+
+
+ å¯ç¨äºè¢«ç§°ä¸º HTTP ä¸¥æ ¼ä¼ è¾å®å
¨ï¼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 100755
index 00000000000..52eee1b1d00
--- /dev/null
+++ b/browser/crashreporter/crashreporter-override.ini
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# This file is in the UTF-8 encoding
+[Strings]
+# 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..4cacf58add4
--- /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 100755
index 00000000000..fe10a8aa361
--- /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 Mozest
+
+# If non-English locales wish to credit multiple contributors, uncomment this
+# variable definition and use the format specified.
+#define MOZ_LANGPACK_CONTRIBUTORS Wen Shaohua Jin Jian Rongjun Mu Xie Yanbo Cathayan YFdyh000 xcffl Shen Hao Liu Xing
+
+#unfilter emptyLines
diff --git a/browser/extensions/formautofill/formautofill.properties b/browser/extensions/formautofill/formautofill.properties
new file mode 100644
index 00000000000..ace56a7f0e6
--- /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 = ,\u0020
+# LOCALIZATION NOTE (phishingWarningMessage, phishingWarningMessage2): The warning
+# text that is displayed for informing users what categories are about to be filled.
+# "%S" will be replaced with a list generated from the pre-defined categories.
+# The text would be e.g. Also autofills organization, phone, email.
+phishingWarningMessage = è¿å°èªå¨å¡«å %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 = 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 = å®å
¨ç
+
+# LOCALIZATION NOTE: (cardNetwork.*): These are brand names and should only be translated when a locale-specific name for that brand is in common use
+cardNetwork.amex = ç¾å½è¿éï¼American Expressï¼
+cardNetwork.cartebancaire = Carte Bancaire
+cardNetwork.diners = 大æ¥å¡ï¼Diners Clubï¼
+cardNetwork.discover = åç°å¡ï¼Discoverï¼
+cardNetwork.jcb = å士ç¾ï¼JCBï¼
+cardNetwork.mastercard = ä¸äºè¾¾ï¼MasterCardï¼
+cardNetwork.mir = MIR
+cardNetwork.unionpay = é¶èï¼Union Payï¼
+cardNetwork.visa = Visa
+
+# LOCALIZATION NOTE (editCreditCardPasswordPrompt.*, useCreditCardPasswordPrompt.*): %S is brandShortName.
+editCreditCardPasswordPrompt.win = %S æ£å°è¯æ¾ç¤ºä¿¡ç¨å¡ä¿¡æ¯ã请å¨ä¸æ¹ç»å½æ¤ 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..1724f67c84c
--- /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..acd7de10529
--- /dev/null
+++ b/browser/firefox-l10n.js
@@ -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/.
+
+#filter substitution
+
+pref("browser.startup.homepage", "chrome://browser/locale/browser.properties");
diff --git a/browser/installer/custom.properties b/browser/installer/custom.properties
new file mode 100755
index 00000000000..18735a51359
--- /dev/null
+++ b/browser/installer/custom.properties
@@ -0,0 +1,94 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE:
+
+# This file must be saved as UTF8
+
+# Accesskeys are defined by prefixing the letter that is to be used for the
+# accesskey with an ampersand (e.g. &).
+
+# Do not replace $BrandShortName, $BrandFullName, or $BrandFullNameDA with a
+# custom string and always use the same one as used by the en-US files.
+# $BrandFullNameDA allows the string to contain an ampersand (e.g. DA stands
+# for double ampersand) and prevents the letter following the ampersand from
+# being used as an accesskey.
+
+# You can use \n to create a newline in the string but only when the string
+# from en-US contains a \n.
+
+REG_APP_DESC=$BrandShortName å°ç»æ¨å¸¦æ¥å®å
¨ãæç¨çç½ç»æµè§ä½éªãçæçç¨æ·çé¢ã强åçå®å
¨ç¹æ§ï¼å
æ¬é²æ¢å¨çº¿èº«ä»½çç¨ï¼ï¼å¹¶ä¸æ´åäºä¾¿äºæ¨ä»ç½ç»è·å浩çä¿¡æ¯çæç´¢å¼æã
+PRIVATE_BROWSING_SHORTCUT_TITLE=$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 设为æçé»è®¤æµè§å¨
+SUMMARY_INSTALL_CLICK=ç¹å»ï¼»å®è£
]继ç»ã
+SUMMARY_UPGRADE_CLICK=ç¹å»ï¼»å级]继ç»ã
+SURVEY_TEXT=åè¯æä»¬æ¨æ¯æä¹ç $BrandShortName ç (&T)
+LAUNCH_TEXT=ç«å³è¿è¡ $BrandShortName (&L)
+CREATE_ICONS_DESC=å建 $BrandShortName 徿 ï¼
+ICONS_DESKTOP=å¨æçæ¡é¢
+ICONS_STARTMENU=卿çå¼å§èåç¨åºæä»¶å¤¹ (&S)
+ICONS_QUICKLAUNCH=卿çå¿«éå¯å¨æ ä¸ (&Q)
+ICONS_TASKBAR=卿ç任塿 (&t)
+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\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 100755
index 00000000000..6544ebabd6a
--- /dev/null
+++ b/browser/installer/mui.properties
@@ -0,0 +1,61 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# To make the l10n tinderboxen see changes to this file you can change a value
+# name by adding - to the end of the name followed by chars (e.g. Branding-2).
+
+# LOCALIZATION NOTE:
+
+# This file must be saved as UTF8
+
+# Accesskeys are defined by prefixing the letter that is to be used for the
+# accesskey with an ampersand (e.g. &).
+
+# Do not replace $BrandShortName, $BrandFullName, or $BrandFullNameDA with a
+# custom string and always use the same one as used by the en-US files.
+# $BrandFullNameDA allows the string to contain an ampersand (e.g. DA stands
+# for double ampersand) and prevents the letter following the ampersand from
+# being used as an accesskey.
+
+# You can use \n to create a newline in the string but only when the string
+# from en-US contains a \n.
+
+MUI_TEXT_WELCOME_INFO_TITLE=欢è¿ä½¿ç¨ $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 100755
index 00000000000..5729b09321d
--- /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 100755
index 00000000000..a46bdcb167e
--- /dev/null
+++ b/browser/installer/override.properties
@@ -0,0 +1,86 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE:
+
+# This file must be saved as UTF8
+
+# Accesskeys are defined by prefixing the letter that is to be used for the
+# accesskey with an ampersand (e.g. &).
+
+# Do not replace $BrandShortName, $BrandFullName, or $BrandFullNameDA with a
+# custom string and always use the same one as used by the en-US files.
+# $BrandFullNameDA allows the string to contain an ampersand (e.g. DA stands
+# for double ampersand) and prevents the letter following the ampersand from
+# being used as an accesskey.
+
+# You can use \n to create a newline in the string but only when the string
+# from en-US contains a \n.
+
+# Strings that require a space at the end should be enclosed with double
+# quotes and the double quotes will be removed. To add quotes to the beginning
+# and end of a strong enclose the add and additional double quote to the
+# beginning and end of the string (e.g. ""This will include quotes"").
+
+SetupCaption=$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æ å¿½ç¥ ä»¥è·³è¿è¯¥æä»¶ã
+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=âæ§è¡ï¼â
+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 100755
index 00000000000..3be9fd8babd
--- /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 100755
index 00000000000..5a33d65b940
--- /dev/null
+++ b/browser/pdfviewer/viewer.properties
@@ -0,0 +1,281 @@
+# 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=è±å¯¸
+document_properties_page_size_unit_millimeters=毫米
+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=ææ¬
+document_properties_page_size_name_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_match_diacritics_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 åä½å·²è¢«ç¦ç¨ï¼æ æ³ä½¿ç¨åµå
¥ç PDF åä½ã
+
+# Editor
+editor_none.title=ç¦ç¨ç¼è¾æ³¨é
+editor_none_label=ç¦ç¨ç¼è¾
+editor_free_text.title=æ·»å ææ¬æ³¨é
+editor_free_text_label=ææ¬æ³¨é
+editor_ink.title=æ·»å 墨迹注é
+editor_ink_label=墨迹注é
+
+freetext_default_content=è¾å
¥ä¸æ®µææ¬â¦
+
+free_text_default_content=è¾å
¥ææ¬â¦
+
+# Editor Parameters
+editor_free_text_font_color=åä½é¢è²
+editor_free_text_font_size=åä½å¤§å°
+editor_ink_line_color=线æ¡é¢è²
+editor_ink_line_thickness=线æ¡ç²ç»
+
+# Editor Parameters
+editor_free_text_color=é¢è²
+editor_free_text_size=åå·
+editor_ink_color=é¢è²
+editor_ink_thickness=ç²ç»
+editor_ink_opacity=ä¸éæåº¦
+
+# Editor aria
+editor_free_text_aria_label=ææ¬ç¼è¾å¨
+editor_ink_aria_label=墨迹ç¼è¾å¨
+editor_ink_canvas_aria_label=ç¨æ·å建å¾å
diff --git a/browser/updater/updater.ini b/browser/updater/updater.ini
new file mode 100755
index 00000000000..91fd7178620
--- /dev/null
+++ b/browser/updater/updater.ini
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# This file is in the UTF-8 encoding
+# All strings must be less than 600 chars.
+[Strings]
+TitleText=%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 100755
index 00000000000..927fc142f28
--- /dev/null
+++ b/calendar/README.txt
@@ -0,0 +1,3 @@
+For information about installing, running and configuring Sunbird
+including a list of known issues and troubleshooting information,
+refer to: http://www.mozilla.org/projects/calendar/
diff --git a/calendar/calendar/calendar-context-menus.ftl b/calendar/calendar/calendar-context-menus.ftl
new file mode 100644
index 00000000000..78fa1cf8be7
--- /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..72395e30a20
--- /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..56a9d63fd4c
--- /dev/null
+++ b/calendar/calendar/calendar-editable-item.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-editable-item-privacy-icon-private =
+ .alt = éç§ï¼ç§äººäºä»¶
+calendar-editable-item-privacy-icon-confidential =
+ .alt = éç§ï¼åªæ¾ç¤ºæ¶é´åæ¥æ
+calendar-editable-item-recurrence =
+ .alt = éå¤åç
+calendar-editable-item-recurrence-exception =
+ .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..1ef555d613a
--- /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..5d9e75a7034
--- /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 = ææ é¢æåºï¼A > Zï¼
+# "Z > A" is used as a concise way to say "reverse alphabetical order".
+# You may replace it with something appropriate to your language.
+calendar-ics-file-dialog-sort-title-descending =
+ .label = ææ é¢æåºï¼Z > Aï¼
+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-invitation-panel.ftl b/calendar/calendar/calendar-invitation-panel.ftl
new file mode 100644
index 00000000000..4aa2e9b7fff
--- /dev/null
+++ b/calendar/calendar/calendar-invitation-panel.ftl
@@ -0,0 +1,42 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Variables:
+# $organizer (String) - The participant that created the original invitation.
+calendar-invitation-panel-intro = { $organizer } é请æ¨åå ï¼
+# Variables:
+# $summary (String) - A short summary or title of the event.
+calendar-invitation-panel-title = { $summary }
+calendar-invitation-panel-action-button = ä¿å
+calendar-invitation-panel-accept-button = åå
+calendar-invitation-panel-decline-button = ä¸åå
+calendar-invitation-panel-tentative-button = ä¹è®¸ä¼åå
+calendar-invitation-panel-reply-status = * æ¨å°æªå³å®æåå¤
+calendar-invitation-panel-prop-title-when = æ¶é´ï¼
+calendar-invitation-panel-prop-title-location = å°ç¹ï¼
+# Variables:
+# $dayOfWeek (String) - The day of the week for a given date.
+# $date (String) - The date example: Tuesday, February 24, 2022.
+calendar-invitation-datetime-date = { $date } { $dayOfWeek }
+# Variables:
+# $time (String) - The time part of a datetime using the "short" timeStyle.
+# $timezone (String) - The timezone info for the datetime.
+calendar-invitation-datetime-time = { $time }ï¼{ $timezone }ï¼
+calendar-invitation-panel-prop-title-attendees = åå è
ï¼
+calendar-invitation-panel-prop-title-description = 说æï¼
+# Variables:
+# $count (Number) - The number of attendees with the "ACCEPTED" participation status.
+calendar-invitation-panel-partstat-accepted = { $count } 使¥å
+# Variables:
+# $count (Number) - The number of attendees with the "DECLINED" participation status.
+calendar-invitation-panel-partstat-declined = { $count } 使æ¥
+# Variables:
+# $count (Number) - The number of attendees with the "TENTATIVE" participation status.
+calendar-invitation-panel-partstat-tentative = { $count } 使宿¥å
+# Variables:
+# $count (Number) - The number of attendees with the "NEEDS-ACTION" participation status.
+calendar-invitation-panel-partstat-needs-action = { $count } 使ªåå¤
+# Variables:
+# $count (Number) - The total number of attendees.
+calendar-invitation-panel-partstat-total = { $count } ä½åå è
diff --git a/calendar/calendar/calendar-invitations-dialog.ftl b/calendar/calendar/calendar-invitations-dialog.ftl
new file mode 100644
index 00000000000..fcf5ccb8bb8
--- /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..596334b7ea2
--- /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..593eedf6b48
--- /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..d38813856fa
--- /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..9209fa3f9fe
--- /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 = æ¥å 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..8f8be660b3c
--- /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..48cb69c1bf0
--- /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..04fb7e7637b
--- /dev/null
+++ b/calendar/calendar/preferences.ftl
@@ -0,0 +1,192 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+calendar-title = æ¥å
+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 }
+use-system-timezone-radio-button =
+ .label = 使ç¨ç³»ç»æ¶åº
+set-timezone-manually-radio-button =
+ .label = æå¨è®¾ç½®æ¶åº
+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 = 仿¥çªæ ¼
+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 = 该åç§°ç±»å«å·²åå¨ã æ¨æ¯å¦å¸æè¦ç该类å«ï¼
+category-blank-warning = æ¨å¿
é¡»è¾å
¥ç±»å«åç§°ã
diff --git a/calendar/chrome/calendar/calendar-alarms.properties b/calendar/chrome/calendar/calendar-alarms.properties
new file mode 100755
index 00000000000..5cb3cca16c6
--- /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 个æéã;å½åéä¸çæ¥åéå¶ä¸ºæ¯ä¸ªäºä»¶è®¾ç½®æå¤ #1 个æéã
+reminderErrorMaxCountReachedTask=å½åéä¸çæ¥åéå¶ä¸ºæ¯ä¸ªä»»å¡è®¾ç½®æå¤ #1 个æéã;å½åéä¸çæ¥åéå¶ä¸ºæ¯ä¸ªä»»å¡è®¾ç½®æå¤ #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 100755
index 00000000000..9ab2b4a7c3d
--- /dev/null
+++ b/calendar/chrome/calendar/calendar-event-dialog-attendees.properties
@@ -0,0 +1,15 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+event.attendee.role.required = å¿
é¡»åä¸è
+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 100755
index 00000000000..92f26d2e61e
--- /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 100755
index 00000000000..36b11d6019e
--- /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=æ¯ %1$S;æ¯ #2 å¨ç %1$S
+weeklyNthOnNounclass2=æ¯ %1$S;æ¯ #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=æ¯æç %1$S;æ¯ #2 个æç %1$S
+monthlyRuleNthOfEveryNounclass2=æ¯æç %1$S;æ¯ #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=æ¯æç %1$S;æ¯ #2 æç %1$S
+monthlyEveryOfEveryNounclass2=æ¯æç %1$S;æ¯ #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 æ¥;第 %1$S æ¥
+
+# LOCALIZATION NOTE (monthlyDaysOfNth):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# %1$S - it's the string monthlyDaysOfNth_day: day of month or a sequence of days
+# of month, possibly followed by an ordinal symbol, separated with commas;
+# #2 - monthly interval
+# e.g. "days 3, 6, 9 and 12 of every 3 months"
+monthlyDaysOfNth=æ¯æç %1$S;æ¯ #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=æ¯ %1$S %2$S;æ¯ #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=æ¯ %3$S ç %1$S %2$Sï¼æ¯ #4 å¹´ %3$S ç %1$S %2$S
+yearlyNthOnNthOfNounclass2=æ¯ %3$S ç %1$S %2$Sï¼æ¯ #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=%2$S çæ¯ä¸ª %1$S;æ¯ #3 å¹´ä¸ %2$S çæ¯ä¸ª %1$S
+yearlyOnEveryNthOfNthNounclass2=%2$S çæ¯ä¸ª %1$S;æ¯ #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=%1$S æçæ¯ä¸å¤©;æ¯ #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 occurence 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=åç %1$S\næææä» %2$S å¼å§éå¤ #5 次\nä» %3$S å° %4$Sæ¶é´æ®µ;åç %1$S\næææä» %2$S å¼å§éå¤ #5 次\nä» %3$S å° %4$Sæ¶é´æ®µã
+
+# LOCALIZATION NOTE (repeatCountAllDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# #3 - event occurence 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=åç %1$S\nçææ¥ %2$S éå¤ #3 次ã;åç %1$S\nçææ¥ %2$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=åç %1$S\næææä» %2$S å° %3$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=åç %1$S\næææä» %2$S å° %3$Sã
+
+# LOCALIZATION NOTE (repeatDetailsInfinite):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# %3$S - event start time (e.g. hh:mm (PM/AM))
+# %4$S - event end time (e.g. hh:mm (PM/AM))
+# e.g. with monthlyDaysOfNth:
+# "Occurs day 3 of every 5 month
+# effective 1/1/2009
+# from 5:00 PM to 6:00 PM"
+repeatDetailsInfinite=åç %1$S\nçææ¥ %2$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=åç %1$S\n çææ¥ %2$Sã
+
+# LOCALIZATION NOTE (monthlyLastDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# A monthly rule with one or more days of the month (monthlyDaysOfNth) and the
+# string "the last day" of the month.
+# e.g.: "Occurs day 15, 20, 25 and the last day of every 3 months"
+monthlyLastDay=æåä¸å¤©
+
+# 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=F
+itemMenuLabelTask=ä»»å¡
+itemMenuAccesskeyTask2=F
+
+emailSubjectReply=åå¤ï¼ %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=%1$S %3$S %2$S
+
+# Edit recurrence window -> Recurrence pattern -> Repeat yearly
+# %1$S - ordinal with article, %2$S - weekday, %3$S - of, %4$S - month
+# e.g. "the First Saturday of September"
+# If you don't need %3$S in your locale - please put this on the third place.
+# DONT_TRANSLATE: Make sure there are no extra words in this property, just variables.
+yearlyOrder2=%1$S %2$S %3$S %4$S
+
+# LOCALIZATION NOTE (pluralForWeekdays):
+# This string allows to set the use of weekdays nouns in plural form for
+# languages that need them in sentences like "every Monday" or "every Sunday
+# of March" etc.
+# Rule strings involved by this setting are:
+# - weeklyNthOn (only the first part) e.g. "every Sunday"
+# - monthlyEveryOfEvery
+# e.g. "every Monday of every month;every Monday every 2 months"
+# - yearlyOnEveryNthOfNth
+# e.g. "every Friday of March;every 2 years on every Friday of March"
+# In your local write:
+# "true" if sentences like those above need weekday in plural form;
+# "false" if sentences like those above don't need weekday in plural form;
+pluralForWeekdays=false
+
+# LOCALIZATION NOTE (repeatDetailsDayxxxPlural):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# Weekdays in plural form used inside sentences like "every Monday" or
+# "every Sunday of May" etc. for languages that need them.
+# These plurals will be used inside the following rule strings only if string
+# 'pluralForWeekdays' (see above) is set to "true":
+# - weeklyNthOn (only the first part) e.g. "every Sunday"
+# - monthlyEveryOfEvery
+# e.g. "every Monday of every month;every Monday every 2 months"
+# - yearlyOnEveryNthOfNth
+# e.g. "every Friday of March;every 2 years on every Friday of March"
+repeatDetailsDay1Plural=ææå¤©
+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 assignement 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 100755
index 00000000000..206949a8ca5
--- /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 = by | until | to | - | till | til | and
+
+# LOCALIZATION NOTE (end.prefix):
+# datetimes with these in front are extracted as end times
+end.prefix = by | until | to | - | till | til | and | due: | due | ends | æªæ¢æ¥æä¸º | æªæ¢æ¥æ:
+
+# 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 = ä¸å¨ | å·²åé | çµé® | çµåé®ä»¶ | ä»£æ¿ | > | unfortunately | in | 䏿¯
+
+# LOCALIZATION NOTE (no.datetime.suffix):
+# datetimes followed by these won't be used
+no.datetime.suffix = 楼 | å± | : | çµé® | çµåé®ä»¶ | > | % | å
| ç¾å
| $
+
+# 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$S = matches numbers 1-31 and number.x
+# should not have "%1$S" as this would match any single number in email to a time
+from.ordinal.date = %1$Sst | %1$Snd | %1$Srd | %1$Sth
+
+# LOCALIZATION NOTE (until.ordinal.date):
+# %1$S = matches numbers 1-31 and number.x
+until.ordinal.date =第 %1$S | %1$S æ¥ | %1$S å·
+
+from.noon = ä¸å
+until.noon =ä¸å | æ£å
+
+# LOCALIZATION NOTE (from.hour):
+# %1$S = matches numbers 0-23 and number.0-number.23
+# should not have "%1$S" as this would match any single number in email to a time
+from.hour = å¨ %1$S | 大约 %1$S | %1$S - | %1$S è³
+
+# LOCALIZATION NOTE (until.hour):
+# %1$S = matches numbers 0-23 and number.0-number.23
+# should also list how to find end of a timeframe
+until.hour = - %1$S | è³ %1$S | ç´å° %1$S | å° %1$S
+
+# LOCALIZATION NOTE (from.hour.am):
+# %1$S = matches numbers 0-23 and number.0-number.23
+from.hour.am = ä¸å %1$S ç¹ | ä¸å %1$S æ¶
+
+# LOCALIZATION NOTE (until.hour.am):
+# %1$S = matches numbers 0-23 and number.0-number.23
+# should also list how to find end of a timeframe
+until.hour.am =ä¸å %1$S æ¶ | ä¸å %1$S ç¹ | æ©ä¸ %1$S æ¶ | æ©ä¸ %1$S ç¹ | 忍 %1$S ç¹ | 忍 %1$S æ¶ | %1$S am | %1$S AM | %1$S a.m.
+
+# LOCALIZATION NOTE (from.hour.pm):
+# %1$S = matches numbers 0-23 and number.0-number.23
+from.hour.pm = ä¸å %1$S ç¹ | ä¸å %1$S æ¶ | ä¸å %1$S æ¶
+
+# LOCALIZATION NOTE (until.hour.pm):
+# %1$S = matches numbers 0-23 and number.0-number.23
+# should also list how to find end of a timeframe
+until.hour.pm =ä¸å %1$S ç¹ | ä¸å %1$S æ¶ | %1$S p.m. | %1$S PM | æä¸ %1$S ç¹ | æä¸ %1$S æ¶
+
+# LOCALIZATION NOTE (from.half.hour.before):
+# denotes times 30 minutes before next full hour
+from.half.hour.before = %1$S ä¹åçåå°æ¶
+
+# LOCALIZATION NOTE (until.half.hour.before):
+# denotes times 30 minutes before next full hour
+until.half.hour.before =%1$S ç¹ååå°æ¶
+
+# LOCALIZATION NOTE (from.half.hour.after):
+# denotes times 30 minutes after last full hour
+from.half.hour.after = %1$S åå°æ¶å
+
+# LOCALIZATION NOTE (until.half.hour.after):
+# denotes times 30 minutes after last full hour
+until.half.hour.after =%1$S ç¹å
+
+# LOCALIZATION NOTE (from.hour.minutes):
+# %1$S = matches numbers 0-23
+# %2$S = matches numbers 0-59
+from.hour.minutes = %1$S:%2$S | å¨ %1$S%2$S
+
+# LOCALIZATION NOTE (until.hour.minutes):
+# %1$S = matches numbers 0-23
+# %2$S = matches numbers 0-59
+until.hour.minutes =%1$S:%2$S | äº %$S%2$S | ç %1$S:%2$S
+
+# LOCALIZATION NOTE (from.hour.minutes.am):
+# %1$S = matches numbers 0-23
+# %2$S = matches numbers 0-59
+from.hour.minutes.am = ä¸å %1$S:%2$S | ä¸å %1$S:%2$S
+
+# LOCALIZATION NOTE (until.hour.minutes.am):
+# %1$S = matches numbers 0-23
+# %2$S = matches numbers 0-59
+until.hour.minutes.am =ä¸å %1$S:%2$S | æ©ä¸ %1$S:%2$S | æ©ä¸ %1$S ç¹ %2$S å | ä¸å %1$S ç¹ %2$S å | 忍 %1$S ç¹ %2$S å | ä¸å %1$S ç¹ %2$S å | æ©ä¸ %1$S æ¶ %2$S å | ä¸å %1$S æ¶ %2$S å | 忍 %1$S æ¶ %2$S å | %1$S:%2$S a.m. | %1$S:%2$S am | %1$S:%2$S AM
+
+# LOCALIZATION NOTE (from.hour.minutes.pm):
+# %1$S = matches numbers 0-23
+# %2$S = matches numbers 0-59
+from.hour.minutes.pm = ä¸å %1$S:%2$S | ä¸å %1$S:%2$S |ä¸å %1$S:%2$S
+
+# LOCALIZATION NOTE (until.hour.minutes.pm):
+# %1$S = matches numbers 0-23
+# %2$S = matches numbers 0-59
+until.hour.minutes.pm =å°ä¸å %1$S:%2$S | å°æä¸ %1$S:%2$S | å°ä¸å %1$S ç¹ %2$S å | å°æä¸ %1$S ç¹ %2$S å | %1$S:%2$S pm | %1$S:%2$S PM | %1$S:%2$S p.m.
+
+# LOCALIZATION NOTE (from.monthname.day):
+# %1$S = matches numbers 1-31 and number.x
+# %2$S = matches monthname
+from.monthname.day = %1$S %2$S | %2$S %1$S | %2$S %1$Sst | %2$S %1$Snd | %2$S %1$Srd | %2$S %1$Sth | %1$Sst of %2$S | %1$Snd of %2$S | %1$Srd of %2$S | %1$Sth of %2$S
+
+# LOCALIZATION NOTE (until.monthname.day):
+# %1$S = matches numbers 1-31
+# %2$S = matches monthname
+until.monthname.day =å° %2$S æ %1$S æ¥ | è³ %2$S æ %1$S æ¥ | å° %2$S æ %1$S å· | è³ %2$S æ %1$S å· | %2$S æ %1$S å·æ¢ | %2$S æ %1$S å·å | %2$S æ %1$S æ¥æ¢ | %2$S æ %1$S æ¥å| å° %2$S/%1$S | è³ %2$S/%1$S | %2$S/%1$S æ¢ | %2$S/%1$S å| ~ %2$S/%1$S | - %2$S/%1$S
+
+# LOCALIZATION NOTE (from.month.day):
+# %1$S = matches numbers 1-31
+# %2$S = matches numbers 1-12
+from.month.day = %2$S/%1$S
+
+# LOCALIZATION NOTE (until.month.day):
+# %1$S = matches numbers 1-31 and number.x
+# %2$S = matches numbers 1-12
+until.month.day =
+
+# LOCALIZATION NOTE (from.year.month.day):
+# %1$S = matches numbers 1-31
+# %2$S = matches numbers 1-12
+# %3$S = matches 2/4 numbers
+from.year.month.day = %2$S/%1$S/%3$S | %3$S/%2$S/%1$S | %3$S-%2$S-%1$S
+
+# LOCALIZATION NOTE (until.year.month.day):
+# %1$S = matches numbers 1-31
+# %2$S = matches numbers 1-12
+# %3$S = matches 2/4 numbers
+until.year.month.day =è³ %3$S/%2$S/%1$S | è³ %3$S-%2$S-%1$S | %3$S/%2$S/%1$S å | %3$S/%2$S/%1$S æ¢ | %3$S/%2$S/%1$S 为æ¢
+
+# LOCALIZATION NOTE (from.year.monthname.day):
+# %1$S = matches numbers 1-31
+# %2$S = matches monthname
+# %3$S = matches 2/4 numbers
+from.year.monthname.day = %1$S %2$S %3$S | %1$Sst %2$S %3$S | %1$Snd %2$S %3$S | %1$Srd %2$S %3$S | %1$Sth %2$S %3$S | %2$S %1$S, %3$S | %3$S-%2$S-%1$S
+
+# LOCALIZATION NOTE (until.year.monthname.day):
+# %1$S = matches numbers 1-31
+# %2$S = matches monthname
+# %3$S = matches 2/4 numbers
+until.year.monthname.day =è³ %3$S/%2$S/%1$S | è³ %3$S-%2$S-%1$S | %3$S/%2$S/%1$S å | %3$S/%2$S/%1$S æ¢ | %3$S/%2$S/%1$S 为æ¢
+
+# LOCALIZATION NOTE (duration.*):
+# can be a list of values, separate variants by |
+
+# LOCALIZATION NOTE (duration.minutes):
+# %1$S = matches 1/2 numbers and number.0 - and number.31
+duration.minutes = %1$S åé | %1$S å | %1$S å
+
+# LOCALIZATION NOTE (duration.hours):
+# %1$S = matches 1/2 numbers and number.0 - and number.31
+duration.hours = %1$S å°æ¶ | %1$S å°æ¶
+
+# LOCALIZATION NOTE (duration.days):
+# %1$S = matches 1/2 numbers and number.0 - and number.31
+duration.days = %1$S 天
+
+# LOCALIZATION NOTE (month.*):
+# can be a list of values, separate variants by |
+month.1 = 䏿
+month.2 = äºæ
+month.3 = 䏿
+month.4 = åæ
+month.5 = äºæ
+month.6 = å
æ
+month.7 = 䏿
+month.8 = å
«æ
+month.9 = 乿
+month.10 = åæ
+month.11 = å䏿
+month.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 = 1 | 1æ¥
+number.2 = 2 | 2æ¥
+number.3 = 3 | 3æ¥
+number.4 = 4 | 4æ¥
+number.5 = 5 | 5æ¥
+number.6 = 6 | 6æ¥
+number.7 = 7 | 7æ¥
+number.8 = 8 | 8æ¥
+number.9 = 9 | 9æ¥
+number.10 = 10 | 10æ¥
+number.11 = 11 | 11æ¥
+number.12 = 12 | 12æ¥
+number.13 = 13 | 13æ¥
+number.14 = 14 | 14æ¥
+number.15 = 15 | 15æ¥
+number.16 = 16 | 16æ¥
+number.17 = 17 | 17æ¥
+number.18 = 18 | 18æ¥
+number.19 = 19 | 19æ¥
+number.20 = 20 | 20æ¥
+number.21 = 21 | 21æ¥
+number.22 = 22 | 22æ¥
+number.23 = 23 | 23æ¥
+number.24 = 24 | 24æ¥
+number.25 = 25 | 25æ¥
+number.26 = 26 | 26æ¥
+number.27 = 27 | 27æ¥
+number.28 = 28 | 28æ¥
+number.29 = 29 | 29æ¥
+number.30 = 30 | 30æ¥
+number.31 = 31 | 31æ¥
+
+# LOCALIZATION NOTE (alphabet):
+# list all lower and uppercase letters if your language has an alphabet
+# otherwise leave it empty
+alphabet = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
diff --git a/calendar/chrome/calendar/calendar-invitations-dialog.dtd b/calendar/chrome/calendar/calendar-invitations-dialog.dtd
new file mode 100755
index 00000000000..d2b9eef31f5
--- /dev/null
+++ b/calendar/chrome/calendar/calendar-invitations-dialog.dtd
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/calendar-invitations-dialog.properties b/calendar/chrome/calendar/calendar-invitations-dialog.properties
new file mode 100644
index 00000000000..e0cac9c9639
--- /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 100755
index 00000000000..5864a9335f4
--- /dev/null
+++ b/calendar/chrome/calendar/calendar-occurrence-prompt.dtd
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/calendar/chrome/calendar/calendar-occurrence-prompt.properties b/calendar/chrome/calendar/calendar-occurrence-prompt.properties
new file mode 100755
index 00000000000..443d49dd5d4
--- /dev/null
+++ b/calendar/chrome/calendar/calendar-occurrence-prompt.properties
@@ -0,0 +1,63 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+header.isrepeating.event.label=æ¯ä¸ä¸ªéå¤äºä»¶
+header.isrepeating.task.label=æ¯ä¸ä¸ªéå¤ä»»å¡\u0020
+
+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=ç¼è¾éå¤ä»»å¡
+
+buttons.occurrence.delete.label=åªå é¤å½åäºé¡¹
+buttons.occurrence.edit.label=åªç¼è¾å½åäºé¡¹
+
+buttons.allfollowing.delete.label=å é¤å½ååå°æ¥çéå¤äºé¡¹
+buttons.allfollowing.edit.label=ç¼è¾å½ååå°æ¥çéå¤äºé¡¹
+
+buttons.parent.delete.label=å 餿æéå¤äºé¡¹
+buttons.parent.edit.label=ç¼è¾ææéå¤äºé¡¹
+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 100755
index 00000000000..cbbd8ecab74
--- /dev/null
+++ b/calendar/chrome/calendar/calendar.dtd
@@ -0,0 +1,407 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/calendar.properties b/calendar/chrome/calendar/calendar.properties
new file mode 100755
index 00000000000..184d7fb8558
--- /dev/null
+++ b/calendar/chrome/calendar/calendar.properties
@@ -0,0 +1,696 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Default name for new events
+newEvent=æ°å»ºäºä»¶
+
+# 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 æ¥å
+
+# 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=已宿ï¼
+
+#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)
+filterHtml=ç½é¡µ ï¼%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=以 UTF-8 è§£ç iCalendar ï¼icsï¼ æä»¶åçé误ãè¯·æ£æ¥è¯¥æä»¶ï¼å
æ¬ç¬¦å·å读é³ç¬¦å·ï¼æ¯å¦é½æ¯ç¨ UTF-8 ç¼ç çã
+icsMalformedError=éªè¯ iCalendar ï¼icsï¼ æä»¶å¤±è´¥ãæ£æ¥è¯¥æä»¶ç¬¦å iCalendar ï¼icsï¼ æä»¶çè¯æ³ã
+itemModifiedOnServerTitle=卿å¡å¨ä¸ç项ç®åçåå
+itemModifiedOnServer=卿å¡å¨ä¸çè¿ä¸ªé¡¹ç®æè¿å·²è¢«åæ´ã\n
+modifyWillLoseData=妿æäº¤æ¨çåæ´ï¼é£ä¹æå¡å¨ä¸è¿è¡çä¿®æ¹å°è¢«è¦ç
+deleteWillLoseData=妿å é¤è¿ä¸ªé¡¹ç®ï¼é£ä¹æå¡å¨ä¸è¿è¡çä¿®æ¹ä¹å°ä¸¢å¤±ã
+updateFromServer=æ¾å¼æ´æ¹å¹¶éæ°å è½½
+proceedModify=ç»§ç»æäº¤æçæ´æ¹
+proceedDelete=ä¸å¾å é¤
+dav_notDav=å¨ %1$S çèµæºæ¯å¦ä¸æ¯ä¸ä¸ª DAV éåæä¸å¯ç¨
+dav_davNotCaldav=å¨ %1$S çèµæºæ¯ä¸ä¸ª DAV éåï¼ä½ä¸æ¯ CalDAV æ¥å
+itemPutError=ä¿å项ç®è³æå¡å¨æ¶åçé误ã
+itemDeleteError=仿å¡å¨ä¸å é¤é¡¹ç®æ¶åçé误ã
+caldavRequestError=åéé请æ¶åçäºé误ï¼
+caldavResponseError=åéå夿¶åçäºé误ï¼
+caldavRequestStatusCode=ç¶æç ï¼%1$S
+caldavRequestStatusCodeStringGeneric=æ¤è¯·æ±æ æ³å¤çã
+caldavRequestStatusCodeString400=æ¤è¯·æ±å
å«è¯æ³éè¯¯å¹¶ä¸æ æ³å¤çã
+caldavRequestStatusCodeString403=ç¨æ·ç¼ºå°æéæéæ¥æ§è¡è¯¥è¯·æ±ã
+caldavRequestStatusCodeString404=æ¾ä¸å°èµæºã
+caldavRequestStatusCodeString409=èµæºå²çªã
+caldavRequestStatusCodeString412=䏿»¡è¶³åææ¡ä»¶ã
+caldavRequestStatusCodeString500=å
鍿å¡å¨é误ã
+caldavRequestStatusCodeString502=é误ç½å
³ï¼ä»£çé
ç½®ï¼ï¼ã
+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/Chongqing, Asia/Shanghai, Asia/Urumqi, Asia/Hong_Kong, Asia/Macao, Asia/Taipei, Asia/Singapore, Asia/Tokyo, Asia/Seoul, America/Los_Angeles, America/New_York, America/Toronto, Europe/London, Australia/Sydney
+
+# 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 æ¶åºçéæ©ï¼åºäºæä½ç³»ç»æ¶åºçæ è¯ç¬¦â%1$Sâã
+
+# Localization note (TZFromLocale): Substitute name of your locale language.
+TZFromLocale=æ¤ ZoneInfo æ¶åºçéæ©ï¼åºäºæä½ç³»ç»æ¶åºåç®ä½ä¸æäºèç½ç¨æ·å¯è½æ¶åºçå¹é
ã
+
+TZFromKnownTimezones=æ¤ ZoneInfo æ¶åºçéæ©ï¼åºäºæä½ç³»ç»æ¶åºåæåæ¯é¡ºåºçæ¶åºä»£ç ä¸å·²ç¥æ¶åºçå¹é
ã
+
+# 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=CW
+
+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 个æ;æ¨ä¸è½å°æéæ¨è¿è¶
è¿ #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=æ£æ¥æ¥å %2$S ç %1$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=CW: %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=CWs: %1$S-%2$S
+
+# LOCALIZATION NOTE (multiweekViewWeek):
+# Used for displaying the week number in the first day box of every week
+# in multiweek and month views.
+# It allows to localize the label with the week number in case your locale
+# requires it.
+# Take into account that this label is placed in the same room of the day label
+# inside the day boxes, exactly on left side, hence a possible string shouldn't
+# be too long otherwise it will create confusion between the week number and
+# the day number other than a possible crop when the window is resized.
+#
+# %1$S is a number from 1 to 53 that represents the week number.
+multiweekViewWeek=第 %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 å°æ¶;#1 å°æ¶
+dueInLessThanOneHour=< ä¸å°æ¶
+
+# LOCALIZATION NOTE (monthInYear):
+# used for display of Month-dates like 'December 2008'
+# %1$S will be replaced with name of the month
+# %2$S will be replaced with the year
+monthInYear=%1$S %2$S
+
+# LOCALIZATION NOTE (monthInYear.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+monthInYear.monthFormat=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=%1$S %2$S
+
+# LOCALIZATION NOTE (daysIntervalInMonth):
+# used for display of intervals in the form of 'March 3 - 9, 2008'
+# %1$S will be replaced with name of the month of the start date
+# %2$S will be replaced with the day-index of the start date possibly followed by an ordinal symbol
+# %3$S will be replaced with the day-index of the end date possibly followed by an ordinal symbol
+# %4$S will be replaced with the common year of both dates
+# The presence of the ordinal symbol in the day-indexes depends on the string
+# dayOrdinalSymbol in dateFormat.properties
+daysIntervalInMonth=%1$S %2$S â %3$S, %4$S
+
+# LOCALIZATION NOTE (daysIntervalInMonth.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+daysIntervalInMonth.monthFormat=nominative
+
+# LOCALIZATION NOTE (daysIntervalBetweenMonths):
+# used for display of intervals in the form 'September 29 - October 5, 2008'
+# %1$S will be replaced with name of the month of the start date
+# %2$S will be replaced with the day-index of the start date possibly followed by an ordinal symbol
+# %3$S will be replaced with name of the month of the end date
+# %4$S will be replaced with the day-index of the end date possibly followed by an ordinal symbol
+# %5$S will be replaced with the common year of both dates
+# The presence of the ordinal symbol in the day-indexes depends on the string
+# dayOrdinalSymbol in dateFormat.properties
+daysIntervalBetweenMonths=%1$S %2$S â %3$S %4$S, %5$S
+
+# LOCALIZATION NOTE (daysIntervalBetweenMonths.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+daysIntervalBetweenMonths.monthFormat=nominative
+
+# LOCALIZATION NOTE (daysIntervalBetweenYears):
+# used for display of intervals in the form 'December 29, 2008 - January 4, 2009'
+# %1$S will be replaced with name of the month of the start date
+# %2$S will be replaced with the day-index of the start date possibly followed by an ordinal symbol
+# %3$S will be replaced with the year of the start date
+# %4$S will be replaced with name of the month of the end date
+# %5$S will be replaced with the day-index of the end date possibly followed by an ordinal symbol
+# %6$S will be replaced with the year of the end date
+# The presence of the ordinal symbol in the day-indexes depends on the string
+# dayOrdinalSymbol in dateFormat.properties
+daysIntervalBetweenYears=%1$S %2$S, %3$S â %4$S %5$S, %6$S
+
+# LOCALIZATION NOTE (daysIntervalBetweenYears.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+daysIntervalBetweenYears.monthFormat=nominative
+
+# LOCALIZATION NOTE (datetimeIntervalOnSameDateTime):
+# used for intervals where end is equals to start
+# displayed form is '5 Jan 2006 13:00'
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+datetimeIntervalOnSameDateTime=%2$S %1$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=å é¤ä»»å¡
+deleteTaskAccesskey=l
+deleteItemLabel=å é¤
+deleteItemAccesskey=l
+deleteEventLabel=å é¤äºä»¶
+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 åé;#1 åé
+unitHours=#1 å°æ¶;#1 å°æ¶
+unitDays=#1 天;#1 天
+unitWeeks=#1 å¨;#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=èå¼è¿äºæ¹å¨
+
+# 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 100755
index 00000000000..3b1c5f09bc5
--- /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 100755
index 00000000000..13a0556c235
--- /dev/null
+++ b/calendar/chrome/calendar/calendarCreation.properties
@@ -0,0 +1,6 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+error.invalidUri=请è¾å
¥ä¸ä¸ªææä½ç½®ã
+error.alreadyExists=æ¨å·²ç»è®¢é
äºå¨æ¤ä½ç½®çæ¥åã
diff --git a/calendar/chrome/calendar/categories.properties b/calendar/chrome/calendar/categories.properties
new file mode 100755
index 00000000000..471382e438b
--- /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 100755
index 00000000000..b0bbe74a2b9
--- /dev/null
+++ b/calendar/chrome/calendar/dateFormat.properties
@@ -0,0 +1,146 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# In case you are looking for the note about different declensions on date
+# formats, here it is. If your language doesn't use different declensions of
+# month names, you shouldn't have much work. Just leave the *.monthFormat
+# string on "nominative" and the string month.*.name will be filled in.
+#
+# If you need a different form for a string, you can change the
+# *.monthFormat to a different value. Supported values are currently:
+# nominative (default), genitive
+# The modified month name form will then be filled in accordingly. If this
+# system does not suit your needs, please file a bug!
+
+# LOCALIZATION NOTE (month.*.name):
+# Some languages require different declensions of month names.
+# These values will be used if *.monthFormat is set to "nominative" or in places
+# where using a different declension is not yet supported.
+month.1.name=䏿
+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=䏿
+month.2.Mmm=äºæ
+month.3.Mmm=䏿
+month.4.Mmm=åæ
+month.5.Mmm=äºæ
+month.6.Mmm=å
æ
+month.7.Mmm=䏿
+month.8.Mmm=å
«æ
+month.9.Mmm=乿
+month.10.Mmm=åæ
+month.11.Mmm=å䏿
+month.12.Mmm=åäºæ
+
+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.
+# dayOrdinalSymbol=.
+# -> daysIntervalInMonth: 'March 3. - 9., 2008'
+# dayOrdinalSymbol=st,nd,rd,th,th,th,th,th,th,th,th,th,th,th,th,
+# th,th,th,th,th,st,nd,rd,th,th,th,th,th,th,th,st
+# -> daysIntervalBetweenMonths: 'September 29th - November 1st, 2008'
+dayOrdinalSymbol=
+
+noon=ä¸å
+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 100755
index 00000000000..788dafe3426
--- /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 100755
index 00000000000..5ab4ec09dcd
--- /dev/null
+++ b/calendar/chrome/calendar/global.dtd
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/menuOverlay.dtd b/calendar/chrome/calendar/menuOverlay.dtd
new file mode 100755
index 00000000000..8a4acb5d916
--- /dev/null
+++ b/calendar/chrome/calendar/menuOverlay.dtd
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/migration.dtd b/calendar/chrome/calendar/migration.dtd
new file mode 100755
index 00000000000..5fe528b8ecd
--- /dev/null
+++ b/calendar/chrome/calendar/migration.dtd
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/migration.properties b/calendar/chrome/calendar/migration.properties
new file mode 100755
index 00000000000..141367df641
--- /dev/null
+++ b/calendar/chrome/calendar/migration.properties
@@ -0,0 +1,13 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+migratingApp = è¿ç§» %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 æ¥åæ©å±ã å®å°è¢«ç¦ç¨å¹¶ä¸ %1$S å°éæ°å¯å¨ã
diff --git a/calendar/chrome/calendar/provider-uninstall.dtd b/calendar/chrome/calendar/provider-uninstall.dtd
new file mode 100755
index 00000000000..68e17e04b70
--- /dev/null
+++ b/calendar/chrome/calendar/provider-uninstall.dtd
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/timezones.properties b/calendar/chrome/calendar/timezones.properties
new file mode 100755
index 00000000000..814a472debe
--- /dev/null
+++ b/calendar/chrome/calendar/timezones.properties
@@ -0,0 +1,489 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+pref.timezone.floating=æ¬å°æ¶é´
+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=åææ´²/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=äºæ´²/åºæ¯å¡å¥
+
+#added with 2.2020a
+pref.timezone.America.Nuuk=ç¾æ´²/åªå
+
+#added with 2.2021c
+pref.timezone.Pacific.Kanton=太平æ´/åé¡¿å²
+
+#added with 2.2022b
+pref.timezone.Europe.Kyiv=欧洲/åºè¾
diff --git a/calendar/chrome/lightning/lightning-toolbar.dtd b/calendar/chrome/lightning/lightning-toolbar.dtd
new file mode 100755
index 00000000000..8658b2f8feb
--- /dev/null
+++ b/calendar/chrome/lightning/lightning-toolbar.dtd
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/lightning/lightning.dtd b/calendar/chrome/lightning/lightning.dtd
new file mode 100755
index 00000000000..42ea9c1a80e
--- /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 100755
index 00000000000..091eed97eea
--- /dev/null
+++ b/calendar/chrome/lightning/lightning.properties
@@ -0,0 +1,201 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# addon description:
+extensions.{e2fda1a4-762b-4020-b5ad-a41df1933103}.name=Lightning
+extensions.{e2fda1a4-762b-4020-b5ad-a41df1933103}.description=æ´åå
¥çµåé®ä»¶å®¢æ·ç«¯çæ¥å䏿ç¨å·¥å
·
+extensions.{e2fda1a4-762b-4020-b5ad-a41df1933103}.creator=Mozilla Calendar Project
+
+# Lightning branding
+brandShortName=Lightning
+
+# 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 已移é¤çäºä»¶ã
+imipBarUnsupportedText=æ¤æ¶æ¯å
å«ä¸ä¸ª Lightning æ æ³å¤ççäºä»¶ã
+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(binaryComponentKnown): This is shown when Lightning is
+# missing the binary component and knows how to calculate the expected version
+# number. To test, remove the binary component from the components/
+# subdirectory and start Lightning, or force install into a different
+# Thunderbird version. In the last part of the sentence it should be made clear
+# that the user can install e.g. 3.7, 3.7.1 or anything other 3.7.x version
+# %1$S - The Lightning brand name, from the brandShortName string above.
+# %2$S - The current Lightning version
+# %3$S - The expected Lightning version
+binaryComponentKnown=å¯è½æ¯å®è£
äºéè¯¯çæ¬ï¼æ æ³è½½å
¥ %1$S æéçäºè¿å¶ç»ä»¶ãæ¨ç®åå®è£
äº %1$S %2$Sï¼ä½åºè¯¥ä½¿ç¨ %3$S ç³»åçæ¬ã
+
+# LOCALIZATION_NOTE(binaryComponentUnknown): This is shown when Lightning is
+# missing the binary component but can't calculate the expected version. This
+# happens in the rare case that Lightning is installed into something other
+# than Thunderbird or Seamonkey. You may link to a different page if you can
+# commit to keeping it up to date, I'd recommend staying with the English page.
+# %1$S - The Lightning brand name, from the brandShortName string above.
+# %2$S - The application brand name, e.g. Postbox
+# %3$S - The application version
+# %3$S - The current Lightning version
+binaryComponentUnknown=å¯è½æ¯å®è£
äºéè¯¯çæ¬ï¼æ æ³è½½å
¥ %1$S æéçäºè¿å¶ç»ä»¶ãæ¨ç®åå¨ %2$S %3$S å®è£
äº %1$S %4$Sï¼è¥é详ç»ä¿¡æ¯ï¼è¯·åè§ https://developer.mozilla.org/en/Calendar/Calendar_Versionsã
+
+# LOCALIZATION_NOTE(binaryComponentTitle): The title for the dialog that
+# notifies about a version mismatch.
+# %1$S - The Lightning brand name, from the brandShortName string above.
+binaryComponentTitle=%1$S çæ¬ä¸ç¬¦å
+
+# LOCALIZATION NOTE(noIdentitySelectedNotification):
+noIdentitySelectedNotification=å¦ææ¨æ³ç¨æ¤æ¥åæ¥å¨ååç»å«äººæå«äººå¯æ¥çé请ï¼è¯·å¨ä¸æ¹æå®ç¨äºè¿äºé®ä»¶ç身份ã
diff --git a/calendar/lightning-l10n.js b/calendar/lightning-l10n.js
new file mode 100755
index 00000000000..8a4219d9fd1
--- /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", 0);
+
+# default days off (not in work week)
+pref("calendar.week.d0sundaysoff", true);
+pref("calendar.week.d1mondaysoff", false);
+pref("calendar.week.d2tuesdaysoff", false);
+pref("calendar.week.d3wednesdaysoff", false);
+pref("calendar.week.d4thursdaysoff", false);
+pref("calendar.week.d5fridaysoff", false);
+pref("calendar.week.d6saturdaysoff", true);
+
+pref("general.useragent.locale", "@AB_CD@");
+
+# categories
+pref("calendar.categories.names", "å¨å¹´çºªå¿µ,çæ¥,åå¡,æçµè¯,客人,ç«äº,客æ·,æ¶è,åç»,礼ç©,忥,ç¹å,é®é¢,å
¶ä»,个人,项ç®,å
Œ
±åæ¥,ç¶æ,ä¾åºå,æ
è¡,ä¼å");
diff --git a/chat/accounts.dtd b/chat/accounts.dtd
new file mode 100644
index 00000000000..9b1a6d429b4
--- /dev/null
+++ b/chat/accounts.dtd
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/chat/accounts.properties b/chat/accounts.properties
new file mode 100755
index 00000000000..67dd5e8beb7
--- /dev/null
+++ b/chat/accounts.properties
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (passwordPromptTitle, passwordPromptText):
+# %S is replaced with the name of the account
+passwordPromptTitle=%S çå¯ç
+passwordPromptText=请è¾å
¥ %S çå¯ç 以ä¾è¿æ¥ã
+passwordPromptSaveCheckbox=使ç¨å¯ç 管ç卿¥è®°ä½è¿ä¸ªå¯ç ã
diff --git a/chat/commands.properties b/chat/commands.properties
new file mode 100755
index 00000000000..92025fde287
--- /dev/null
+++ b/chat/commands.properties
@@ -0,0 +1,27 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (commands):
+# %S is a comma separated list of command names.
+commands=å½ä»¤: %S.\nä½¿ç¨ /help <å½ä»¤>äºè§£æ´å¤ä¿¡æ¯ã
+# LOCALIZATION NOTE (noCommand, noHelp):
+# %S is the command name the user typed.
+noCommand=没æâ%Sâå½ä»¤ã
+noHelp=æ±æï¼â%Sâæ²¡æå¸®å©ä¿¡æ¯ã
+
+sayHelpString=say <ä¿¡æ¯>: åé䏿¡å纯çä¿¡æ¯èä¸è¿è¡å½ä»¤å¤çã
+rawHelpString=raw <ä¿¡æ¯>: åé䏿¡æªè¿è¡ HTML 项ç®è½¬ä¹çä¿¡æ¯ã
+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 100755
index 00000000000..ae848468f93
--- /dev/null
+++ b/chat/contacts.properties
@@ -0,0 +1,8 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (defaultGroup):
+# This is the name of the group that will automatically be created when adding a
+# buddy without specifying a group.
+defaultGroup=è系人
diff --git a/chat/conversations.properties b/chat/conversations.properties
new file mode 100755
index 00000000000..c404678a1ee
--- /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=å°ä¼ç»§ç» %1$S çä¼è¯ï¼ä½¿ç¨ %2$S ã
+
+# LOCALIZATION NOTE (statusChanged):
+# %1$S is the display name of the contact.
+# %2$S is the new status type (a value from status.properties).
+statusChanged=%1$S ç°å¨å¤äº %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/facebook.properties b/chat/facebook.properties
new file mode 100755
index 00000000000..caf0032f402
--- /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 Chatã
diff --git a/chat/imtooltip.properties b/chat/imtooltip.properties
new file mode 100755
index 00000000000..00f2d86d48f
--- /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 100755
index 00000000000..1567a923be1
--- /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=é¢é
+joinChat.password=å¯ç
+
+# 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 <nick!user@host>ï¼å°ç¦ç¬¦åæå®æ¨¡å¼çç¨æ·ã
+command.ctcp=%S <æµç§°> <æ¶æ¯>ï¼åé CTCP æ¶æ¯è³æµç§°ã
+command.chanserv=%S <å½ä»¤>ï¼åéå½ä»¤è³ ChanServã
+command.deop=%S <æµç§°1>[,<æµç§°2>]*ï¼ç§»é¤æäººçé¢éæä½åç¶æãæ¨å¿
须为é¢éæä½åæè½è¿ä¹åã
+command.devoice=%S <æµç§°1>[,<æµç§°2>]*ï¼ææäººçé¢éåè¨ç¶æç§»é¤ï¼ç¨äºé»æ¢è¢«ä¸»æ(+m)é¢éä¸çæäººè¯´è¯ãæ¨å¿
须为é¢éæä½åæè½è¿ä¹åã
+command.invite2=%S <nick>[ <nick>]* [<channel>]: ç¨æµç§°é请ä¸ä¸ªæè
å¤ä¸ªç¨æ·å å
¥ä½ å½åæå¨é¢éï¼æè
å å
¥æå®é¢éã
+command.join=%S <æ¿é´1>[,<æ¿é´2>]* [<å¯é¥1>[,<å¯é¥2>]*]ï¼è¿å
¥ä¸ä¸ªæè
å¤ä¸ªé¢éï¼å¯æ ¹æ®éè¦ä¸ºæ¯ä¸ªæ¿é´æä¾é¢éå¯é¥ã
+command.kick=%S <æµç§°> [<æ¶æ¯>]ï¼å°æäººä»ä¸ä¸ªé¢éç§»é¤ãæ¨å¿
é¡»æ¯é¢éæä½åæè½è¿ä¹åã
+command.list=%Sï¼æ¾ç¤ºç½ç»çè天室å表ãè¦åï¼æäºæå¡å¨å¯è½ä¼å æ¤æå¼ä¸æ¨çè¿æ¥ã
+command.memoserv=%S <å½ä»¤>ï¼åéå½ä»¤è³ MemoServã
+command.modeUser2=%S <nick> [(+|-)<模å¼>]ï¼è·åã设置æåæ¶ç¨æ·ç模å¼ã
+command.modeChannel2=%S [<channel>] [(+|-)<æ°æ¨¡å¼> [<åæ°>][,<åæ°>]*]ï¼è·åã设置æåæ¶é¢é模å¼ã
+command.msg=%S <æµç§°> <æ¶æ¯>ï¼åéç§ä¿¡è³ç¨æ·ï¼ç¸å¯¹äºé¢éèè¨ï¼ã
+command.nick=%S <æ°æµç§°>ï¼æ´æ¹æ¨çæµç§°ã
+command.nickserv=%S <å½ä»¤>ï¼åéå½ä»¤è³ NickServã
+command.notice=%S <ç®æ > <æ¶æ¯>ï¼åééç¥è³ç¨æ·æé¢éã
+command.op=%S <æµç§°1>[,<æµç§°2>]*ï¼æææäººä¸ºé¢éæä½åãæ¨å¿
é¡»æ¯é¢éæä½åæè½è¿ä¹åã
+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 <æµç§°1>[,<æµç§°2>]*ï¼æææäººä»¥é¢éåè¨ç¶æãæ¨å¿
须为é¢éæä½åæè½è¿ä¹åã
+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=æ¨å·²ç¦»å¼æ¿é´ (离å¼%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 å·²ç¦»å¼æ¿é´ (离å¼%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 å·²ç¦»å¼æ¿é´ (éåº%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=\u00A0Â Â Â %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=æºå¨äºº
+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 100755
index 00000000000..9306f313f0c
--- /dev/null
+++ b/chat/logger.properties
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (badLogfile):
+# %S is the filename of the log file.
+badLogfile=空çæè
ä¸æçæ¥å¿æä»¶ï¼%S
diff --git a/chat/matrix.properties b/chat/matrix.properties
new file mode 100644
index 00000000000..33b3bd4feea
--- /dev/null
+++ b/chat/matrix.properties
@@ -0,0 +1,263 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 parameter 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=éªè¯å®æã
+message.decryptionError=æ æ³è§£å¯æ¤æ¶æ¯å
容ãè¥è¦ä»æ¨çå
¶ä»è®¾å¤è¯·æ±å è§£å¯å¯é¥ï¼è¯·å³é®ç¹å»æ¤æ¶æ¯ã
+message.decrypting=æ£å¨è§£å¯...
+message.redacted=æ¶æ¯å·²éçªæ¹ã
+
+# %1$S is the username of the user that reacted.
+# %2$S is the username of the user that sent the message the reaction was added to.
+# %3$S is the content (typically an emoji) of the reaction.
+message.reaction=%1$S ååº %2$S - %3$Sã
+
+# Label in the message context menu
+message.action.requestKey=éæ°è¯·æ±å¯é¥
+message.action.redact=çªæ¹
+message.action.report=ä¸¾æ¥æ¶æ¯
+message.action.retry=éè¯åé
+message.action.cancel=æ¤éæ¶æ¯
+
+# LOCALIZATION NOTE (error.*)
+# These are strings shown as system messages when an action the user took fails.
+error.sendMessageFailed=åéæ¨çæ¶æ¯â%1$Sâæ¶åºéã
diff --git a/chat/status.properties b/chat/status.properties
new file mode 100755
index 00000000000..158fa1555dd
--- /dev/null
+++ b/chat/status.properties
@@ -0,0 +1,23 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+availableStatusType=æç©º
+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 100755
index 00000000000..ed7a9698acc
--- /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=æ æ³è·å请æ±ä»¤çã
+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=ææä½¿ç¨æ¨çæ¨ç¹è´¦æ·
+
+# 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 <username>[ <username>]*: å¼å§å
³æ³¨ä¸ä¸ªæå¤ä¸ªç¨æ·ã
+command.unfollow=%S <username>[ <username>]*: 忢å
³æ³¨ä¸ä¸ªæå¤ä¸ªç¨æ·ã
+
+twitter.disabled=ç±äº Twitter ç¦ç¨äºå
¶æµåªä½åè®®ï¼å·²ä¸åæ¯æã
diff --git a/chat/xmpp.properties b/chat/xmpp.properties
new file mode 100755
index 00000000000..1cf04af91bc
--- /dev/null
+++ b/chat/xmpp.properties
@@ -0,0 +1,281 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (connection.*)
+# These will be displayed in the account manager in order to show the progress
+# of the connection.
+# (These will be displayed in account.connection.progress from
+# accounts.properties, which adds ⦠at the end, so do not include
+# periods at the end of these messages.)
+connection.initializingStream=æ£å¨åå§åæµ
+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=åå»ºå¥æ¥åå¤±è´¥ï¼æ¨ç¦»çº¿äºåï¼ï¼
+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=å¯ç
+
+# 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 å·²é请æ¨å å
¥ %2$Sï¼ä½¿ç¨å¯ç %3$S
+
+# LOCALIZATION NOTE (conversation.muc.join):
+# This is displayed as a system message when a participant joins room.
+# %S is the nick of the participant.
+conversation.message.join=%S è¿å
¥äºè天室ã
+
+# 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 å¨è天室 %3$S å°ç¦äº %2$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 (gtalk.disabled):
+# It is reported that Google Talk will be disabled on June 16, 2022. The message
+# below is being pre-emptively included so a localized error message can be
+# displayed to users if this happens.
+gtalk.disabled=ç±äº Google ç¦ç¨äº XMPP ç½å
³ï¼å æ¤ä¸åæ¯æ Google Talkã
+
+# 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=é
ç½®æä»¶ç¼å·
+
+# LOCALZIATION NOTE (command.*):
+# These are the help messages for each command.
+command.join3=%S [<room>[@<server>][/<nick>]] [<password>]: å å
¥ä¸ä¸ªè天室ï¼å¯ä»¥æä¾å
¶ä»æå¡å¨ãæµç§°åè天室å¯ç ã
+command.part2=%S [<message>]: 使ç¨å¯éçæ¶æ¯ç¦»å¼å½åè天室ã
+command.topic=%S [<new topic>]: 设置æ¤è天室ç主é¢ã
+command.ban=%S <æµç§°>[<æ¶æ¯>]ï¼å°ç¦è天室ä¸çæäººãæ¨å¿
é¡»æ¯è天室ç管çåæè½æ§è¡ã
+command.kick=%S <æµç§°>[<æ¶æ¯>]ï¼è¸¢èµ°è天室ä¸çæäººãæ¨å¿
é¡»æ¯è天室ç主æäººæè½æ§è¡ã
+command.invite=%S <jid>[<message>]ï¼éè¯·ç¨æ·å å
¥å½åè天室并ç䏿¶æ¯ã
+command.inviteto=%S <è天室 jid>[<å¯ç >]: é请æ¨çè天ä¼ä¼´å å
¥è天室ï¼å¦éè¦çè¯å¯è¾å
¥å¯ç ã
+command.me=%S <action to perform>: Perform an action.
+command.nick=%S <æ°æµç§°>ï¼æ´æ¹æ¨çæµç§°ã
+command.msg=%S <æµç§°> <æ¶æ¯>ï¼åé䏿¡ç§ä¿¡ç»è天室ä¸çæä¸ªåä¸è
ã
+command.version=%Sï¼è¯·æ±ä¸æ¨å¯¹è¯çå伴使ç¨ç客æ·ç«¯ä¿¡æ¯ã
diff --git a/chat/yahoo.properties b/chat/yahoo.properties
new file mode 100755
index 00000000000..b2373ab76d7
--- /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 Messenger å·²ä¸åæ¯æï¼å 为 Yahoo ç¦ç¨äºå®ä»¬çæ§çåè®®ã
diff --git a/devtools/client/aboutdebugging.ftl b/devtools/client/aboutdebugging.ftl
new file mode 100644
index 00000000000..9777685e6ac
--- /dev/null
+++ b/devtools/client/aboutdebugging.ftl
@@ -0,0 +1,410 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 = è°è¯ - è¿è¡æ¶ / { $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://firefox-source-docs.mozilla.org/devtools-user/about_colon_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 = 使ç¨{ about-debugging-this-firefox-runtime-name } è°è¯æ¤çæ¬ { -brand-shorter-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 = å¯ç¨ Android å¼åè
é项ä¸çâ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://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/index.html#connecting-to-a-remote-device
+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://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/index.html#connecting-over-the-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 = Shared Worker
+# Title of the other workers category.
+about-debugging-runtime-other-workers =
+ .name = å
¶ä» Worker
+# Title of the processes category.
+about-debugging-runtime-processes =
+ .name = è¿ç¨
+
+# 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:
+# https://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/index.html#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://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/
+# { $runtimeVersion } is the version of the remote browser (for instance "67.0a1")
+# { $minVersion } is the minimum version that is compatible with the current Firefox instance (same format)
+about-debugging-browser-version-too-old = å·²è¿æ¥çæµè§å¨ä¸ºæ§çæ¬ï¼{ $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 æ æ³è°è¯ Android ç Firefoxï¼68ï¼ãæä»¬å»ºè®®æ¨å¨ææºä¸å®è£
Android ç Firefox Nightly è¿è¡æµè¯ãæ´å¤ä¿¡æ¯
+
+# This string is displayed in the runtime page if the remote browser version is too recent.
+# "Troubleshooting" link points to https://firefox-source-docs.mozilla.org/devtools-user/about_colon_debugging/
+# { $runtimeID } is the build ID of the remote browser (for instance "20181231", format is yyyyMMdd)
+# { $localID } is the build ID of the current Firefox instance (same format)
+# { $runtimeVersion } is the version of the remote browser (for instance "67.0a1")
+# { $localVersion } is the version of your current browser (same format)
+about-debugging-browser-version-too-recent =
+ å·²è¿æ¥çæµè§å¨ï¼çæ¬ { $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 = ç§»é¤
+
+# Text of a button displayed for a temporary extension loaded in the "This Firefox" page.
+# Clicking on the button will forcefully terminate the extension background script (button
+# only visible in extensions that includes a non-persistent background script, either an
+# event page or a background service worker).
+about-debugging-tmp-extension-terminate-bgscript-button = ç»æ¢åå°èæ¬
+
+# 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 = Manifest URL
+
+# 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
+
+# Text displayed for extensions in "runtime" pages, before displaying the status of the
+# extension background script.
+about-debugging-extension-backgroundscript =
+ .label = åå°èæ¬
+
+# Displayed for extension using a non-persistent background page (either an event page or
+# background service worker) when the background script is currently running.
+about-debugging-extension-backgroundscript-status-running = è¿è¡ä¸
+
+# Displayed for extension using a non-persistent background page when is currently stopped.
+about-debugging-extension-backgroundscript-status-stopped = 已忢
+
+# 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 = Service Worker âæ¨éâç®åå¨å¤è¿ç¨ { -brand-shorter-name } ä¸ç¦ç¨
+
+# This string is displayed as a label of the button that starts a service worker.
+about-debugging-worker-action-start2 = å¯å¨
+ .disabledTitle = Service Worker âå¯å¨âåè½ç®åå¨å¤è¿ç¨ { -brand-shorter-name } 䏿 æ³ä½¿ç¨
+
+# 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 = èå´
+
+# 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 = Service Worker æ£æ¥åè½ç®åå¨å¤è¿ç¨ { -brand-shorter-name } ä¸ææ¶æ æ³ä½¿ç¨
+
+# Displayed as title of the inspect button for zombie tabs (e.g. tabs loaded via a session restore).
+about-debugging-zombie-tab-inspect-action-disabled =
+ .title = ç±äºæ ç¾é¡µæªå®å
¨å è½½ï¼æ æ³æ£æ¥
+
+# 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 = 主è¿ç¨
+
+# 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 = ç®æ æµè§å¨ç主è¿ç¨
+
+# 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..3dd32993a44
--- /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 = ææ¡£ï¼Documentsï¼å¿
é¡»è¦æ 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 = æ é¢ï¼Headingï¼å¿
é¡»éæææ¬æ ç¾ã详ç»äºè§£
+
+accessibility-text-label-issue-heading-content = æ é¢ï¼Headingï¼åºè¯¥æå¯è§çææ¬å
容ã详ç»äºè§£
+
+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..3b0cdf06518
--- /dev/null
+++ b/devtools/client/accessibility.properties
@@ -0,0 +1,304 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# 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.selectElement.title): A title text
+# displayed on buttons next to accessible elements in the `relations` section, allowing the
+# user to select the element in the accessibility tree.
+accessibility.accessible.selectElement.title=åå»ä»¥éæ©æ éç¢å
ç´ æ ä¸çèç¹
+
+# LOCALIZATION NOTE (accessibility.accessible.selectNodeInInspector.title): A title text
+# displayed on buttons next to nodes in the sidebar, allowing the user to select the node
+# in the Inspector panel.
+accessibility.accessible.selectNodeInInspector.title=åå»ä»¥éæ©æ¥çå¨ä¸çèç¹
+
+# 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.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..7243a149a23
--- /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=è¿ä»£å¼å§ï¼%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=%Sç§
+
+# 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=%S毫ç§
+
+# 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 è¿æ¸¡(Transition)
+
+# 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..2508bc8b4ae
--- /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 Workers æ¶å¯è¢«è°è¯
+
+# 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