From: Mike Hommey
Date: Tue, 9 Jul 2019 22:13:23 +0000 (+0100)
Subject: Import firefox-esr_60.8.0esr.orig-l10n-zh-CN.tar.bz2
X-Git-Tag: archive/raspbian/60.8.0esr-1_deb10u1+rpi1^2~32^97
X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=5a4aa1445c026c2cfe72ed53b9280df6206bff6b;p=firefox-esr.git
Import firefox-esr_60.8.0esr.orig-l10n-zh-CN.tar.bz2
[dgit import orig firefox-esr_60.8.0esr.orig-l10n-zh-CN.tar.bz2]
---
5a4aa1445c026c2cfe72ed53b9280df6206bff6b
diff --git a/browser/branding/official/brand.dtd b/browser/branding/official/brand.dtd
new file mode 100755
index 00000000000..35c18c2dc94
--- /dev/null
+++ b/browser/branding/official/brand.dtd
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
diff --git a/browser/branding/official/brand.ftl b/browser/branding/official/brand.ftl
new file mode 100644
index 00000000000..da0d9af8b0f
--- /dev/null
+++ b/browser/branding/official/brand.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/.
+
+
+## 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/
+
+-brand-short-name = Firefox
+-vendor-short-name = Mozilla
diff --git a/browser/branding/official/brand.properties b/browser/branding/official/brand.properties
new file mode 100755
index 00000000000..4cc2d6c71a8
--- /dev/null
+++ b/browser/branding/official/brand.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/.
+
+brandShorterName=Firefox
+brandShortName=Firefox
+brandFullName=Mozilla Firefox
+vendorShortName=Mozilla
+
+homePageSingleStartMain=éææç´¢åè½ç Firefox èµ·å§é¡µ
+homePageImport=ä» %S 导å
¥æ¨ç主页
+
+homePageMigrationPageTitle=䏻页鿩
+homePageMigrationDescription=è¯·éæ©æ¨æ³è¦ä½¿ç¨ç主页:
+
+syncBrandShortName=忥
diff --git a/browser/browser/branding/sync-brand.ftl b/browser/browser/branding/sync-brand.ftl
new file mode 100644
index 00000000000..da2e37e9b27
--- /dev/null
+++ b/browser/browser/branding/sync-brand.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/.
+
+-sync-brand-short-name = 忥
+# âSyncâ can be localized, âFirefoxâ must be treated as a brand,
+# and kept in English.
+-sync-brand-name = Firefox 忥
+# âAccountâ can be localized, âFirefoxâ must be treated as a brand,
+# and kept in English.
+-fxaccount-brand-name = Firefox è´¦æ·
diff --git a/browser/browser/preferences/applicationManager.ftl b/browser/browser/preferences/applicationManager.ftl
new file mode 100644
index 00000000000..6ebbd1b3990
--- /dev/null
+++ b/browser/browser/preferences/applicationManager.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/.
+
+app-manager-window =
+ .title = åºç¨ç¨åºè¯¦ç»ä¿¡æ¯
+ .style = width: 30em; min-height: 20em;
+app-manager-remove =
+ .label = ç§»é¤
+ .accesskey = R
+app-manager-handle-webfeeds = å¦ä¸åºç¨ç¨åºå¯ç¨æ¥å¤çâç½ç«æ¶åç¹âã
+# 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..94e836ccde0
--- /dev/null
+++ b/browser/browser/preferences/blocklists.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/.
+
+blocklist-window =
+ .title = æ¦æªå表
+ .style = width: 50em
+blocklist-desc = æ¨å¯ä»¥éæ©ä¸ä¸ªå表ï¼{ -brand-short-name } å°ä¾æ¤è¿æ»¤å¯è½ä¼è·è¸ªæ¨ç½ä¸æ´»å¨çç½é¡µå
ç´ ã
+blocklist-close-key =
+ .key = w
+blocklist-treehead-list =
+ .label = å表
+blocklist-button-cancel =
+ .label = åæ¶
+ .accesskey = C
+blocklist-button-ok =
+ .label = ä¿åæ´æ¹
+ .accesskey = S
diff --git a/browser/browser/preferences/clearSiteData.ftl b/browser/browser/preferences/clearSiteData.ftl
new file mode 100644
index 00000000000..5406e447585
--- /dev/null
+++ b/browser/browser/preferences/clearSiteData.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/.
+
+clear-site-data-window =
+ .title = æ¸
餿°æ®
+ .style = width: 35em
+clear-site-data-description = æ¸
é¤ { -brand-short-name } åå¨çææ Cookie åç½ç«æ°æ®å¯è½ä½¿æ¨çç½ç«ç»å½ç¶æä¸¢å¤±ï¼è¿ä¼å é¤ç¦»çº¿ç½é¡µå
容ãä»
æ¸
é¤ç¼åæ°æ®åä¸ä¼å½±åæ¨çç»å½ç¶æã
+clear-site-data-close-key =
+ .key = w
+clear-site-data-cookies = Cookie åç½ç«æ°æ®
+ .accesskey = S
+clear-site-data-cookies-info = 妿æ¸
é¤ï¼æ¨çç½ç«ç»å½ç¶æå¯è½ä¸¢å¤±
+clear-site-data-cache = å·²ç¼åç½ç»å
容
+ .accesskey = W
+clear-site-data-cache-info = å°éè¦éæ°å è½½ç½ç«çå¾åçæ°æ®
+clear-site-data-cancel =
+ .label = åæ¶
+ .accesskey = C
+clear-site-data-clear =
+ .label = æ¸
é¤
+ .accesskey = l
diff --git a/browser/browser/preferences/colors.ftl b/browser/browser/preferences/colors.ftl
new file mode 100644
index 00000000000..cf0a1b8044a
--- /dev/null
+++ b/browser/browser/preferences/colors.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/.
+
+colors-window =
+ .title = é¢è²
+ .style =
+ { PLATFORM() ->
+ [macos] width: 41em
+ *[other] width: 38em
+ }
+colors-close-key =
+ .key = w
+colors-page-override = ä½¿ç¨æ¨å¨ä¸é¢éæ©çé¢è²è¦ç页颿å®çé¢è²
+ .accesskey = O
+colors-page-override-option-always =
+ .label = æ»æ¯
+colors-page-override-option-auto =
+ .label = ä»
å¨ä½¿ç¨é«å¯¹æ¯åº¦ä¸»é¢æ¶
+colors-page-override-option-never =
+ .label = æ»ä¸
+colors-text-and-background = æååèæ¯
+colors-text-header = ææ¬
+ .accesskey = T
+colors-background = èæ¯
+ .accesskey = B
+colors-use-system =
+ .label = 使ç¨ç³»ç»é¢è²
+ .accesskey = s
+colors-underline-links =
+ .label = ä¸ºé¾æ¥æ·»å ä¸å线
+ .accesskey = U
+colors-links-header = 龿¥é¢è²
+colors-unvisited-links = æªè®¿é®è¿ç龿¥
+ .accesskey = L
+colors-visited-links = 访é®è¿ç龿¥
+ .accesskey = V
diff --git a/browser/browser/preferences/connection.ftl b/browser/browser/preferences/connection.ftl
new file mode 100644
index 00000000000..bf02b387a44
--- /dev/null
+++ b/browser/browser/preferences/connection.ftl
@@ -0,0 +1,69 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+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-http-share =
+ .label = 为ææå议使ç¨ç¸å代çæå¡å¨
+ .accesskey = s
+connection-proxy-ssl = SSL 代ç
+ .accesskey = L
+connection-proxy-ssl-port = 端å£
+ .accesskey = o
+connection-proxy-ftp = FTP 代ç
+ .accesskey = F
+connection-proxy-ftp-port = 端å£
+ .accesskey = r
+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
+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
diff --git a/browser/browser/preferences/containers.ftl b/browser/browser/preferences/containers.ftl
new file mode 100644
index 00000000000..5f3ec9ddd1f
--- /dev/null
+++ b/browser/browser/preferences/containers.ftl
@@ -0,0 +1,80 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+containers-window-new =
+ .title = æ·»å æ°èº«ä»½
+ .style = width: 45em
+# Variables
+# $name (String) - Name of the container
+containers-window-update =
+ .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-button-done =
+ .label = 宿
+ .accesskey = 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-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..ebe0f683358
--- /dev/null
+++ b/browser/browser/preferences/fonts.ftl
@@ -0,0 +1,140 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+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.
+
+fonts-languages-fallback-header = æ§å¼å
容çæåç¼ç
+fonts-languages-fallback-desc = è¿ä¸ªæåç¼ç ç¨äºæªè½å£°æå
¶ç¼ç çæ§å¼å
容ã
+fonts-languages-fallback-label = å夿åç¼ç
+ .accesskey = T
+fonts-languages-fallback-name-auto =
+ .label = å½åè¯è¨ç¯å¢çé»è®¤å¼
+fonts-languages-fallback-name-arabic =
+ .label = é¿æä¼¯è¯
+fonts-languages-fallback-name-baltic =
+ .label = æ³¢ç½çè¯
+fonts-languages-fallback-name-ceiso =
+ .label = 䏿¬§ï¼ISO
+fonts-languages-fallback-name-cewindows =
+ .label = 䏿¬§ï¼å¾®è½¯
+fonts-languages-fallback-name-simplified =
+ .label = ç®ä½ä¸æ
+fonts-languages-fallback-name-traditional =
+ .label = ç¹ä½ä¸æ
+fonts-languages-fallback-name-cyrillic =
+ .label = 西éå°åæ¯
+fonts-languages-fallback-name-greek =
+ .label = å¸è
è¯
+fonts-languages-fallback-name-hebrew =
+ .label = å¸ä¼¯è±è¯
+fonts-languages-fallback-name-japanese =
+ .label = æ¥æ
+fonts-languages-fallback-name-korean =
+ .label = æé²æ
+fonts-languages-fallback-name-thai =
+ .label = æ³°æ
+fonts-languages-fallback-name-turkish =
+ .label = åè³å
¶æ
+fonts-languages-fallback-name-vietnamese =
+ .label = è¶åæ
+fonts-languages-fallback-name-other =
+ .label = å
¶ä»ï¼å«è¥¿æ¬§ï¼
diff --git a/browser/browser/preferences/languages.ftl b/browser/browser/preferences/languages.ftl
new file mode 100644
index 00000000000..8706bed44f4
--- /dev/null
+++ b/browser/browser/preferences/languages.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/.
+
+languages-window =
+ .title = è¯è¨åå符ç¼ç
+ .style = width: 30em
+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
diff --git a/browser/browser/preferences/main.ftl b/browser/browser/preferences/main.ftl
new file mode 100644
index 00000000000..0837322dc43
--- /dev/null
+++ b/browser/browser/preferences/main.ftl
@@ -0,0 +1,4 @@
+// Variables:
+// $num - default value of the `dom.ipc.processCount` pref.
+default-content-process-count
+ .label = { $num } (é»è®¤)
diff --git a/browser/browser/preferences/permissions.ftl b/browser/browser/preferences/permissions.ftl
new file mode 100644
index 00000000000..303e7538d53
--- /dev/null
+++ b/browser/browser/preferences/permissions.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/.
+
+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-site-name =
+ .label = ç½ç«
+permissions-status =
+ .label = ç¶æ
+permissions-remove =
+ .label = ç§»é¤ç½ç«
+ .accesskey = R
+permissions-remove-all =
+ .label = ç§»é¤å
¨é¨ç½ç«
+ .accesskey = e
+permissions-button-cancel =
+ .label = åæ¶
+ .accesskey = C
+permissions-button-ok =
+ .label = ä¿åæ´æ¹
+ .accesskey = S
+permissions-searchbox =
+ .placeholder = æç´¢ç½ç«
diff --git a/browser/browser/preferences/preferences.ftl b/browser/browser/preferences/preferences.ftl
new file mode 100644
index 00000000000..4b16075e651
--- /dev/null
+++ b/browser/browser/preferences/preferences.ftl
@@ -0,0 +1,723 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 =
+ .label = ä»
å¨ä½¿ç¨è·è¸ªä¿æ¤æ¶
+do-not-track-option-always =
+ .label = å§ç»
+pref-page =
+ .title =
+ { PLATFORM() ->
+ [windows] é项
+ *[other] é¦é项
+ }
+# This is used to determine the width of the search field in about:preferences,
+# in order to make the entire placeholder string visible
+#
+# 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 =
+ .style = width: 15.4em
+# This is used to determine the width of the search field in about:preferences,
+# in order to make the entire placeholder string visible
+#
+# Please keep the placeholder string short to avoid truncation.
+#
+# Notice: The value of the `.style` attribute is a CSS string, and the `width`
+# is the name of the CSS property. It is intended only to adjust the element's width.
+# Do not translate.
+search-input-box =
+ .style = width: 15.4em
+ .placeholder =
+ { PLATFORM() ->
+ [windows] å¨é项䏿¥æ¾
+ *[other] å¨é¦é项䏿¥æ¾
+ }
+policies-notice =
+ { PLATFORM() ->
+ [windows] æ¨çç»ç»å·²ç¦ç¨æäºé项ã
+ *[other] æ¨çç»ç»å·²ç¦ç¨æäºé¦é项ã
+ }
+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 }
+# The word "account" can be translated, do not translate or transliterate "Firefox".
+pane-sync-title = Firefox è´¦æ·
+category-sync =
+ .tooltiptext = { pane-sync-title }
+help-button-label = { -brand-short-name } 帮å©
+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 = ç¨åéå¯
+
+## Preferences UI Search Results
+
+search-results-header = æç´¢ç»æ
+# `` will be replaced by the search term.
+search-results-empty-message =
+ { PLATFORM() ->
+ [windows] 徿±æï¼æ²¡ææ¾å°æå
³ââçé项ã
+ *[other] 徿±æï¼æ²¡ææ¾å°æå
³ââçé¦é项ã
+ }
+search-results-help-link = éè¦å¸®å©ï¼è®¿é® { -brand-short-name } ææ¯æ¯æ
+
+## General Section
+
+startup-header = å¯å¨
+# { -brand-short-name } will be 'Firefox Developer Edition',
+# since this setting is only exposed in Firefox Developer Edition
+separate-profile-mode =
+ .label = å
许 { -brand-short-name } å Firefox åæ¶è¿è¡
+use-firefox-sync = æç¤ºï¼è¿å°ä½¿ç¨åç¬çé
ç½®æä»¶ã使ç¨â忥âå¨å®ä»¬ä¹é´åæ¥æ°æ®ã
+get-started-not-logged-in = ç»å½å° { -sync-brand-short-name }â¦
+get-started-configured = æå¼{ -sync-brand-short-name }æå¡é¦é项
+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-page = å¨ { -brand-short-name } å¯å¨æ¶
+ .accesskey = s
+startup-user-homepage =
+ .label = æ¾ç¤ºæ¨ç主页
+startup-blank-page =
+ .label = æ¾ç¤ºç©ºç½é¡µ
+startup-prev-session =
+ .label = æ¾ç¤ºæ¨ä¸æ¬¡ççªå£åæ ç¾é¡µ
+disable-extension =
+ .label = ç¦ç¨æ©å±
+home-page-header = 主页
+tabs-group-header = æ ç¾é¡µ
+ctrl-tab-recently-used-order =
+ .label = æä¸ Ctrl+Tab æ¶ï¼ä¾ç
§æè¿ä½¿ç¨é¡ºåºå¾ªç¯åæ¢æ ç¾é¡µ
+ .accesskey = T
+open-new-link-as-tabs =
+ .label = 卿°æ ç¾é¡µä¸æå¼é¾æ¥è䏿¯æ°çªå£
+ .accesskey = w
+warn-on-close-multiple-tabs =
+ .label = æé确认å
³éå¤ä¸ªæ ç¾é¡µ
+ .accesskey = m
+warn-on-open-many-tabs =
+ .label = æå¼å¤ä¸ªæ ç¾é¡µå¯è½è´ä½¿ { -brand-short-name } ç¼æ
¢æ¶è¦å
+ .accesskey = d
+switch-links-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 = è¯è¨ä¸å¤è§
+fonts-and-colors-header = åä½åé¢è²
+default-font = é»è®¤åä½
+ .accesskey = D
+default-font-size = 大å°
+ .accesskey = S
+advanced-fonts =
+ .label = é«çº§â¦
+ .accesskey = A
+colors-settings =
+ .label = é¢è²â¦
+ .accesskey = C
+language-header = è¯è¨
+choose-language-description = éæ©æ¨æ³è¦ä¼å
使ç¨åªç§è¯è¨æ¾ç¤ºé¡µé¢
+choose-button =
+ .label = éæ©â¦
+ .accesskey = o
+translate-web-pages =
+ .label = ç¿»è¯ç½é¡µå
容
+ .accesskey = T
+# 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
+check-user-spelling =
+ .label = 卿¨è¾å
¥æ¶æ£æ¥æ¼å
+ .accesskey = t
+
+## General Section - Files and Applications
+
+files-and-applications-title = æä»¶ä¸åºç¨ç¨åº
+download-header = ä¸è½½
+download-save-to =
+ .label = ä¿åæä»¶è³
+ .accesskey = v
+download-choose-folder =
+ .label =
+ { PLATFORM() ->
+ [macos] éæ©â¦
+ *[other] æµè§â¦
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [macos] e
+ *[other] o
+ }
+download-always-ask-where =
+ .label = æ»æ¯è¯¢é®æ¨ä¿åæä»¶çä½ç½®
+ .accesskey = A
+applications-header = åºç¨ç¨åº
+applications-description = éæ© { -brand-short-name } å¦ä½å¤çè¿äºæä»¶ã
+applications-filter =
+ .placeholder = æç´¢æä»¶ç±»åæåºç¨ç¨åº
+applications-type-column =
+ .label = å
容类å
+ .accesskey = T
+applications-action-column =
+ .label = æä½
+ .accesskey = A
+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-info = çæ¬: { $version } æ°çåå
+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-use-service =
+ .label = 使ç¨ä¸é¡¹ç³»ç»æå¡ä»¥éé»å®è£
æ´æ°
+ .accesskey = b
+update-enable-search-update =
+ .label = èªå¨æ´æ°æç´¢å¼æ
+ .accesskey = e
+
+## 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-disabled-desc = ä»
å¨å¤è¿ç¨ { -brand-short-name } æ¶å¯ä¿®æ¹è¿ç¨æ°éã äºè§£å¦ä½æ£æ¥å¤è¿ç¨çå¯ç¨ç¶åµ
+performance-limit-content-process-blocked-desc = ä»
å¨å¤è¿ç¨ { -brand-short-name } æ¶å¯ä¿®æ¹è¿ç¨æ°éã äºè§£å¦ä½æ£æ¥å¤è¿ç¨çå¯ç¨ç¶åµ
+# Variables:
+# $num - default value of the `dom.ipc.processCount` pref.
+performance-default-content-process-count =
+ .label = { $num } (é»è®¤)
+
+## General Section - Browsing
+
+browsing-title = æµè§
+browsing-use-autoscroll =
+ .label = 使ç¨èªå¨æ»å±
+ .accesskey = a
+browsing-use-smooth-scrolling =
+ .label = 使ç¨å¹³æ»æ»å¨
+ .accesskey = m
+browsing-use-onscreen-keyboard =
+ .label = å¨éè¦æ¶æ¾ç¤ºè§¦æ¸é®ç
+ .accesskey = k
+browsing-use-cursor-navigation =
+ .label = å§ç»ä½¿ç¨æ¹åé®å¨é¡µé¢å
导èª
+ .accesskey = c
+browsing-search-on-start-typing =
+ .label = è¥å¨ææ¬æ¡å¤è¾å
¥ï¼åå¨é¡µé¢ä¸æ¥æ¾ææ¬
+ .accesskey = x
+
+## General Section - Proxy
+
+network-proxy-title = ç½ç»ä»£ç
+network-proxy-connection-learn-more = 详ç»äºè§£
+network-proxy-connection-settings =
+ .label = 设置â¦
+ .accesskey = e
+
+## Home Section
+
+home-new-windows-tabs-header = æ°çªå£åæ ç¾é¡µ
+home-new-windows-tabs-description2 = éæ©æ¨æå¼ä¸»é¡µãæ°çªå£åæ°æ ç¾é¡µæ¶è¦çå°çå
容ã
+
+## Home Section - Home Page Customization
+
+home-homepage-mode-label = 䏻页忰çªå£
+home-newtabs-mode-label = æ°æ ç¾é¡µ
+home-restore-defaults =
+ .label = æ¢å¤é»è®¤è®¾ç½®
+ .accesskey = R
+# "Firefox" should be treated as a brand and kept in English,
+# while "Home" and "(Default)" can be localized.
+home-mode-choice-default =
+ .label = Firefox 主页ï¼é»è®¤ï¼
+home-mode-choice-custom =
+ .label = èªå®ä¹ç½åâ¦
+home-mode-choice-blank =
+ .label = 空ç½é¡µ
+home-homepage-custom-url =
+ .placeholder = ç²è´´ä¸ä¸ªç½åâ¦
+# This string has a special case for '1' and [other] (default). If necessary for
+# your language, you can add {$tabCount} to your translations and use the
+# standard CLDR forms, or only use the form for [other] if both strings should
+# be identical.
+use-current-pages =
+ .label =
+ { $tabCount ->
+ [1] 使ç¨å½å页é¢
+ *[other] 使ç¨å½åææé¡µé¢
+ }
+ .accesskey = C
+choose-bookmark =
+ .label = 使ç¨ä¹¦ç¾â¦
+ .accesskey = B
+restore-default =
+ .label = æ¢å¤é»è®¤è®¾ç½®
+ .accesskey = R
+
+## Search Section
+
+search-bar-header = æç´¢æ
+search-bar-hidden =
+ .label = 使ç¨å°åæ 宿æç´¢å访é®
+search-bar-shown =
+ .label = æ·»å æç´¢æ å°å·¥å
·æ
+search-engine-default-header = é»è®¤æç´¢å¼æ
+search-engine-default-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-suggestions-cant-show = ç±äºæ¨å·²ç»è®¾ç½® { -brand-short-name } ä¸è¦è®°ä½æµè§åå²ï¼å°åæ ä¸å°ä¸ä¼æ¾ç¤ºæç´¢å»ºè®®ã
+search-one-click-header = å¿«æ·æç´¢å¼æå表
+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-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-link = « è¿å
+containers-header = 身份æ ç¾é¡µ
+containers-add-button =
+ .label = æ·»å æ°èº«ä»½
+ .accesskey = A
+containers-preferences-button =
+ .label = é¦é项
+containers-remove-button =
+ .label = ç§»é¤
+
+## Sync Section - Signed out
+
+sync-signedout-caption = 让æ¨ä¸ªæ§åçç½ç»ä½éªé身ç¸ä¼´
+sync-signedout-description = 卿¨çåç§è®¾å¤é´åæ¥æ¨ç书ç¾ãåå²è®°å½ãæ ç¾é¡µãå¯ç ãéå ç»ä»¶ä¸é¦é项ã
+sync-signedout-account-title = ä½¿ç¨ { -fxaccount-brand-name } ç»å½ï¼å¼å¯åæ¥åè½
+sync-signedout-account-create = 没æè´¦æ·åï¼æ³¨åä¸ä¸ªå§
+ .accesskey = C
+sync-signedout-account-signin =
+ .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ï¼è®©æ¨ç个æ§ä½éªé身ç¸ä¼´ã
+
+## Sync Section - Signed in
+
+sync-profile-picture =
+ .tooltiptext = æ´æ¹å¤´å
+sync-disconnect =
+ .label = æå¼è¿æ¥â¦
+ .accesskey = D
+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-signedin-settings-header = åæ¥è®¾ç½®
+sync-signedin-settings-desc = éæ© { -brand-short-name } è¦å¨æ¨ç设å¤é´åæ¥åªäºæ°æ®ã
+sync-engine-bookmarks =
+ .label = 书ç¾
+ .accesskey = m
+sync-engine-history =
+ .label = åå²è®°å½
+ .accesskey = r
+sync-engine-tabs =
+ .label = æå¼çæ ç¾é¡µ
+ .tooltiptext = å·²åæ¥çææè®¾å¤ç®åæå¼ä»ä¹
+ .accesskey = T
+sync-engine-logins =
+ .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-prefs =
+ .label =
+ { PLATFORM() ->
+ [windows] é项
+ *[other] é¦é项
+ }
+ .tooltiptext = æ¨å·²æ´æ¹ç常è§ãéç§åå®å
¨è®¾ç½®
+ .accesskey = s
+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-mobilepromo-single = è¿æ¥å
¶ä»è®¾å¤
+sync-mobilepromo-multi = 管ç设å¤
+sync-tos-link = æå¡æ¡æ¬¾
+sync-fxa-privacy-notice = éç§å£°æ
+
+## Privacy Section
+
+privacy-header = æµè§å¨éç§
+
+## Privacy Section - Forms
+
+forms-header = 表åä¸å¯ç
+forms-ask-to-save-logins =
+ .label = åæ¨è¯¢é®æ¯å¦è¦è®°ä½ç½ç«çç»å½è´¦å·åå¯ç
+ .accesskey = r
+forms-exceptions =
+ .label = ä¾å¤â¦
+ .accesskey = x
+forms-saved-logins =
+ .label = å·²ä¿åçç»å½ä¿¡æ¯â¦
+ .accesskey = L
+forms-master-pw-use =
+ .label = 使ç¨ä¸»å¯ç
+ .accesskey = U
+forms-master-pw-change =
+ .label = ä¿®æ¹ä¸»å¯ç â¦
+ .accesskey = M
+
+## 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-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-learn-more = 详ç»äºè§£
+sitedata-accept-cookies-option =
+ .label = æ¥åæ¥èªç½ç«ç Cookie åç½ç«æ°æ®ï¼æ¨èï¼
+ .accesskey = A
+sitedata-block-cookies-option =
+ .label = å±è½ Cookie åç½ç«æ°æ®ï¼å¯è½å¯¼è´ç½ç«æ
éï¼
+ .accesskey = B
+sitedata-keep-until = ä¿åï¼ç´å°
+ .accesskey = u
+sitedata-keep-until-expire =
+ .label = å®ä»¬è¿æ
+sitedata-keep-until-closed =
+ .label = { -brand-short-name } å
³é
+sitedata-accept-third-party-desc = æ¥åç¬¬ä¸æ¹ Cookie åç½ç«æ°æ®
+ .accesskey = y
+sitedata-accept-third-party-always-option =
+ .label = å§ç»
+sitedata-accept-third-party-visited-option =
+ .label = æ¥èªè®¿é®è¿çç½ç«
+sitedata-accept-third-party-never-option =
+ .label = æ°¸ä¸
+sitedata-clear =
+ .label = æ¸
餿°æ®â¦
+ .accesskey = l
+sitedata-settings =
+ .label = ç®¡çæ°æ®â¦
+ .accesskey = M
+sitedata-cookies-exceptions =
+ .label = ä¾å¤â¦
+ .accesskey = E
+
+## 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
+addressbar-suggestions-settings = æ´æ¹æç´¢å¼æå»ºè®®çé¦é项
+
+## Privacy Section - Tracking
+
+tracking-header = è·è¸ªä¿æ¤
+tracking-desc = è·è¸ªä¿æ¤åè½å¯é»æ¢è·è¸ªè
å¨ä¸åç½ç«é´æ¶éæ¨çæµè§æ°æ®ã 详ç»äºè§£è·è¸ªä¿æ¤åæ¨çéç§
+tracking-mode-label = 使ç¨è·è¸ªä¿æ¤åè½æ¦æªå·²ç¥çè·è¸ªå¨
+tracking-mode-always =
+ .label = å§ç»
+ .accesskey = y
+tracking-mode-private =
+ .label = åªå¨éç§çªå£ä¸
+ .accesskey = l
+tracking-mode-never =
+ .label = æ°¸ä¸
+ .accesskey = n
+# This string is displayed if privacy.trackingprotection.ui.enabled is set to false.
+# This currently happens on the release and beta channel.
+tracking-pbm-label = å¨éç§æµè§æ¨¡å¼ä¸ä½¿ç¨è·è¸ªä¿æ¤æ¦æªå·²ç¥çè·è¸ªå¨
+ .accesskey = v
+tracking-exceptions =
+ .label = ä¾å¤â¦
+ .accesskey = x
+tracking-change-block-list =
+ .label = æ´æ¢æ¦æªå表â¦
+ .accesskey = C
+
+## Privacy Section - Permissions
+
+permissions-header = æé
+permissions-location = ä½ç½®
+permissions-location-settings =
+ .label = 设置â¦
+ .accesskey = l
+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-block-popups =
+ .label = æ¦æªå¼¹åºå¼çªå£
+ .accesskey = B
+permissions-block-popups-exceptions =
+ .label = ä¾å¤â¦
+ .accesskey = E
+permissions-addon-install-warning =
+ .label = å½ç½ç«å°è¯å®è£
éå ç»ä»¶æ¶è¦åæ¨
+ .accesskey = W
+permissions-addon-exceptions =
+ .label = ä¾å¤â¦
+ .accesskey = E
+permissions-a11y-privacy-checkbox =
+ .label = 黿¢æ éç¢æå¡æ¥å
¥æ¨çæµè§å¨
+ .accesskey = a
+permissions-a11y-privacy-link = 详ç»äºè§£
+
+## Privacy Section - Data Collection
+
+collection-header = { -brand-short-name } æ°æ®æ¶éä¸ä½¿ç¨
+collection-description = æä»¬åå¾ä¸ºæ¨æä¾éæ©æï¼å¹¶ä¿è¯åªæ¶éæä»¬ä¸ºä¼äººæä¾åæ¹è¿ { -brand-short-name } æéçä¿¡æ¯ãæä»¬ä»
å¨å¾å¾æ¨çåæåæ¥æ¶ä¸ªäººä¿¡æ¯ã
+collection-privacy-notice = éç§å£°æ
+collection-health-report =
+ .label = å
许 { -brand-short-name } å { -vendor-short-name } åéææ¯ä¿¡æ¯åäº¤äºæ°æ®
+ .accesskey = r
+collection-health-report-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-browser-errors =
+ .label = å
许 { -brand-short-name } åéæµè§å¨é误æ¥åï¼å
å«é误信æ¯ï¼å° { -vendor-short-name }
+ .accesskey = b
+collection-browser-errors-link = 详ç»äºè§£
+collection-backlogged-crash-reports =
+ .label = å
许 { -brand-short-name } 代æ¨åé积åçå´©æºæ¥å
+ .accesskey = c
+collection-backlogged-crash-reports-link = 详ç»äºè§£
+
+## 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-personal-label = 彿å¡å¨è¯·æ±æ¨ç个人è¯ä¹¦æ¶
+certs-select-auto-option =
+ .label = èªå¨éæ©ä¸ä¸ª
+ .accesskey = S
+certs-select-ask-option =
+ .label = æ¯æ¬¡åè¯¢é®æ
+ .accesskey = A
+certs-enable-ocsp =
+ .label = æ¥è¯¢ OCSP ååºæå¡å¨ï¼ä»¥ç¡®è®¤è¯ä¹¦å½åæ¯å¦ææ
+ .accesskey = Q
+certs-view =
+ .label = æ¥çè¯ä¹¦â¦
+ .accesskey = C
+certs-devices =
+ .label = å®å
¨è®¾å¤â¦
+ .accesskey = D
diff --git a/browser/browser/preferences/selectBookmark.ftl b/browser/browser/preferences/selectBookmark.ftl
new file mode 100644
index 00000000000..7271aafaf97
--- /dev/null
+++ b/browser/browser/preferences/selectBookmark.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/.
+
+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..4d5ef89c955
--- /dev/null
+++ b/browser/browser/preferences/siteDataSettings.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/.
+
+
+## Settings
+
+site-data-settings-window =
+ .title = 管ç Cookie åç½ç«æ°æ®
+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 = 䏿¬¡ä½¿ç¨
+site-data-remove-selected =
+ .label = ç§»é¤éä¸
+ .accesskey = r
+site-data-button-cancel =
+ .label = åæ¶
+ .accesskey = C
+site-data-button-save =
+ .label = ä¿åæ´æ¹
+ .accesskey = a
+
+## Removing
+
+site-data-removing-window =
+ .title = { site-data-removing-header }
+site-data-removing-header = ç§»é¤ Cookie åç½ç«æ°æ®
+site-data-removing-desc = ç§»é¤ 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..65e60a84f1e
--- /dev/null
+++ b/browser/browser/preferences/translation.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/.
+
+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-button-close =
+ .label = å
³é
+ .accesskey = C
diff --git a/browser/chrome/browser-region/region.properties b/browser/chrome/browser-region/region.properties
new file mode 100755
index 00000000000..80c5b6a80a3
--- /dev/null
+++ b/browser/chrome/browser-region/region.properties
@@ -0,0 +1,37 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Default search engine
+browser.search.defaultenginename=ç¾åº¦
+
+# Search engine order (order displayed in the search bar dropdown)s
+browser.search.order.1=ç¾åº¦
+browser.search.order.2=Google
+browser.search.order.3=Bing
+
+# This is the default set of web based feed handlers shown in the reader
+# selection UI
+browser.contentHandlers.types.0.title=æç Yahoo
+browser.contentHandlers.types.0.uri=https://add.my.yahoo.com/rss?url=%s
+
+# increment this number when anything gets changed in the list below. This will
+# cause Firefox to re-read these prefs and inject any new handlers into the
+# profile database. Note that "new" is defined as "has a different URL"; this
+# means that it's not possible to update the name of existing handler, so
+# don't make any spelling errors here.
+gecko.handlerService.defaultHandlersVersion=4
+
+# The default set of protocol handlers for mailto:
+gecko.handlerService.schemes.mailto.0.name=Yahoo! é®ä»¶
+gecko.handlerService.schemes.mailto.0.uriTemplate=https://compose.mail.yahoo.com/?To=%s
+gecko.handlerService.schemes.mailto.1.name=Gmail
+gecko.handlerService.schemes.mailto.1.uriTemplate=https://mail.google.com/mail/?extsrc=mailto&url=%s
+
+# The default set of protocol handlers for irc:
+gecko.handlerService.schemes.irc.0.name=Mibbit
+gecko.handlerService.schemes.irc.0.uriTemplate=https://www.mibbit.com/?url=%s
+
+# The default set of protocol handlers for ircs:
+gecko.handlerService.schemes.ircs.0.name=Mibbit
+gecko.handlerService.schemes.ircs.0.uriTemplate=https://www.mibbit.com/?url=%s
diff --git a/browser/chrome/browser/aboutDialog.dtd b/browser/chrome/browser/aboutDialog.dtd
new file mode 100755
index 00000000000..17c763e55dd
--- /dev/null
+++ b/browser/chrome/browser/aboutDialog.dtd
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/aboutHome.dtd b/browser/chrome/browser/aboutHome.dtd
new file mode 100755
index 00000000000..86cdd9459f3
--- /dev/null
+++ b/browser/chrome/browser/aboutHome.dtd
@@ -0,0 +1,40 @@
+
+
+
+%brandDTD;
+
+%syncBrandDTD;
+
+
+
+
+
+
+ææ°åè½ã">
+
+åä¸ç§éå ç»ä»¶æ¨ä½ éã">
+
+äºè§£æ¨çæå©â¦">
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/aboutPrivateBrowsing.dtd b/browser/chrome/browser/aboutPrivateBrowsing.dtd
new file mode 100755
index 00000000000..b43c2215d42
--- /dev/null
+++ b/browser/chrome/browser/aboutPrivateBrowsing.dtd
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/aboutPrivateBrowsing.properties b/browser/chrome/browser/aboutPrivateBrowsing.properties
new file mode 100644
index 00000000000..5bd5266d5e4
--- /dev/null
+++ b/browser/chrome/browser/aboutPrivateBrowsing.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/.
+
+title.head=éç§æµè§
+title.normal=è¦æå¼éç§çªå£åï¼
diff --git a/browser/chrome/browser/aboutRobots.dtd b/browser/chrome/browser/aboutRobots.dtd
new file mode 100755
index 00000000000..be1030211cd
--- /dev/null
+++ b/browser/chrome/browser/aboutRobots.dtd
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/aboutSearchReset.dtd b/browser/chrome/browser/aboutSearchReset.dtd
new file mode 100644
index 00000000000..74cc881df6d
--- /dev/null
+++ b/browser/chrome/browser/aboutSearchReset.dtd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/aboutSessionRestore.dtd b/browser/chrome/browser/aboutSessionRestore.dtd
new file mode 100755
index 00000000000..5f03096cd05
--- /dev/null
+++ b/browser/chrome/browser/aboutSessionRestore.dtd
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/aboutTabCrashed.dtd b/browser/chrome/browser/aboutTabCrashed.dtd
new file mode 100644
index 00000000000..025fccb9077
--- /dev/null
+++ b/browser/chrome/browser/aboutTabCrashed.dtd
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/accounts.properties b/browser/chrome/browser/accounts.properties
new file mode 100644
index 00000000000..118ded4b97c
--- /dev/null
+++ b/browser/chrome/browser/accounts.properties
@@ -0,0 +1,109 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# 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 (deviceConnectedTitle, deviceConnectedBody, deviceConnectedBody.noDeviceName)
+# These strings are used in a notification shown when a new device joins the Sync account.
+# deviceConnectedBody.noDeviceName is shown instead of deviceConnectedBody when we
+# could not get the device name that joined
+deviceConnectedTitle = Firefox 忥
+deviceConnectedBody = è¿å°çµèæ£å¨ä¸ %S è¿è¡åæ¥ã
+deviceConnectedBody.noDeviceName = è¿å°çµèæ£å¨ä¸ä¸å°æ°è®¾å¤è¿è¡åæ¥ã
+
+# LOCALIZATION NOTE (syncStartNotification.title, syncStartNotification.body)
+# These strings are used in a notification shown after Sync is connected.
+syncStartNotification.title = 忥æå¡å·²å¯ç¨
+# %S is brandShortName
+syncStartNotification.body2 = %S å³å°å¼å§åæ¥ã
+
+# LOCALIZATION NOTE (deviceDisconnectedNotification.title, deviceDisconnectedNotification.body)
+# These strings are used in a notification shown after Sync was disconnected remotely.
+deviceDisconnectedNotification.title = 忥æå¡å·²æå¼
+deviceDisconnectedNotification.body = è¿å°çµèå·²æåæå¼ Firefox 忥æå¡ã
+
+# 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 (sendTabToDevice.unconfigured, sendTabToDevice.unconfigured.status)
+# 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.status = æªè¿æ¥å°åæ¥
+sendTabToDevice.unconfigured = äºè§£æå
³åéæ ç¾é¡µâ¦
+
+# LOCALIZATION NOTE (sendTabToDevice.signintosync)
+# Displayed in the Send Tabs context menu and the page action panel when sync is not
+# configured. Allows users to immediately sign into sync via the preferences.
+sendTabToDevice.signintosync = ç»å½ä»¥åæ¥â¦
+
+# 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)
+# 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,
+# 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 recieved
+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/baseMenuOverlay.dtd b/browser/chrome/browser/baseMenuOverlay.dtd
new file mode 100755
index 00000000000..33894765bd6
--- /dev/null
+++ b/browser/chrome/browser/baseMenuOverlay.dtd
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/browser.dtd b/browser/chrome/browser/browser.dtd
new file mode 100755
index 00000000000..ed08a03ca79
--- /dev/null
+++ b/browser/chrome/browser/browser.dtd
@@ -0,0 +1,1032 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Cookie">
+åå²è®°å½">
+æ ç¾é¡µåçªå£">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ èåä¸ç æ¥ç®¡çæ¨çéå ç»ä»¶ã">
diff --git a/browser/chrome/browser/browser.properties b/browser/chrome/browser/browser.properties
new file mode 100755
index 00000000000..b807649a091
--- /dev/null
+++ b/browser/chrome/browser/browser.properties
@@ -0,0 +1,991 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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
+
+# bookmark dialog strings
+
+bookmarkAllTabsDefault=[æä»¶å¤¹åç§°]
+
+xpinstallPromptMessage=%S 已黿¢æ¤ç½ç«å¨æ¨çè®¡ç®æºä¸å®è£
软件ç请æ±ã
+xpinstallPromptMessage.dontAllow=ä¸å
许
+xpinstallPromptMessage.dontAllow.accesskey=D
+xpinstallPromptAllowButton=å
许
+# Accessibility Note:
+# Be sure you do not choose an accesskey that is used elsewhere in the active context (e.g. main menu bar, submenu of the warning popup button)
+# See http://www.mozilla.org/access/keyboard/accesskey for details
+xpinstallPromptAllowButton.accesskey=A
+xpinstallDisabledMessageLocked=软件å®è£
已被æ¨çç³»ç»ç®¡çåç¦ç¨ã
+xpinstallDisabledMessage=软件å®è£
已被ç¦ç¨ã请åå»âå¯ç¨âå¹¶éè¯ã
+xpinstallDisabledButton=å¯ç¨
+xpinstallDisabledButton.accesskey=n
+
+# LOCALIZATION NOTE (webextPerms.header)
+# This string is used as a header in the webextension permissions dialog,
+# %S is replaced with the localized name of the extension being installed.
+# See https://bug1308309.bmoattachments.org/attachment.cgi?id=8814612
+# for an example of the full dialog.
+# Note, this string will be used as raw markup. Avoid characters like <, >, &
+webextPerms.header=æ·»å %Sï¼
+
+webextPerms.unsignedWarning=注æï¼æ¤éå ç»ä»¶æªç»éªè¯ãæ¶æçéå ç»ä»¶å¯è½ä¼çªåæ¨çç§å¯ä¿¡æ¯ææåæ¨çè®¡ç®æºã请ä»
å¨ä¿¡ä»»æ¤éå ç»ä»¶çæ¥æºæ¶æå®è£
ã
+
+# LOCALIZATION NOTE (webextPerms.listIntro)
+# This string will be followed by a list of permissions requested
+# by the webextension.
+webextPerms.listIntro=è¦æ±åå¾ä¸åæéï¼
+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.updateText=%S å·²ææ´æ°ãæ¨å¿
é¡»æ¥åæ°çæ¬ä¸çæ°æéæè½å®è£
æ´æ°ãéæ©âåæ¶âåä¿æç®å使ç¨ççæ¬ã
+
+webextPerms.updateAccept.label=æ´æ°
+webextPerms.updateAccept.accessKey=U
+
+# LOCALIZATION NOTE (webextPerms.optionalPermsHeader)
+# %S is replace with the localized name of the extension requested new
+# permissions.
+# Note, this string will be used as raw markup. Avoid characters like <, >, &
+webextPerms.optionalPermsHeader=%S éè¦é¢å¤æéã
+webextPerms.optionalPermsListIntro=宿³è¦ï¼
+webextPerms.optionalPermsAllow.label=å
许
+webextPerms.optionalPermsAllow.accessKey=A
+webextPerms.optionalPermsDeny.label=æç»
+webextPerms.optionalPermsDeny.accessKey=D
+
+webextPerms.description.bookmarks=读ååä¿®æ¹ä¹¦ç¾
+webextPerms.description.browserSettings=读ååä¿®æ¹æµè§å¨è®¾ç½®
+webextPerms.description.browsingData=æ¸
餿è¿çæµè§è®°å½ãCookie åæå
³æ°æ®
+webextPerms.description.clipboardRead=è·ååªè´´æ¿æ°æ®
+webextPerms.description.clipboardWrite=è¾å
¥æ°æ®å°åªè´´æ¿
+webextPerms.description.devtools=让å¼åè
å·¥å
·å¯ä»¥å忍æå¼çæ ç¾é¡µä¸çæ°æ®
+webextPerms.description.dns=è®¿é® IP å°åå主æºåç§°ä¿¡æ¯
+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.unlimitedStorage=æ ééåå¨å®¢æ·ç«¯æ°æ®
+webextPerms.description.webNavigation=è·ç¥æµè§å¨å¯¼èªæ¶çè¡ä¸ºç¶æ
+
+webextPerms.hostDescription.allUrls=å忍卿æç½ç«çæ°æ®
+
+# LOCALIZATION NOTE (webextPerms.hostDescription.wildcard)
+# %S will be replaced by the DNS domain for which a webextension
+# is requesting access (e.g., mozilla.org)
+webextPerms.hostDescription.wildcard=ååæ¨å¨ %S ååçæ°æ®
+
+# LOCALIZATION NOTE (webextPerms.hostDescription.tooManyWildcards):
+# Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 will be replaced by an integer indicating the number of additional
+# domains for which this webextension is requesting permission.
+webextPerms.hostDescription.tooManyWildcards=å忍ç¨äºå
¶ä» #1 个ååçæ°æ®
+
+# LOCALIZATION NOTE (webextPerms.hostDescription.oneSite)
+# %S will be replaced by the DNS host name for which a webextension
+# is requesting access (e.g., www.mozilla.org)
+webextPerms.hostDescription.oneSite=ååæ¨å¨ %S çæ°æ®
+
+# LOCALIZATION NOTE (webextPerms.hostDescription.tooManySites)
+# Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 will be replaced by an integer indicating the number of additional
+# hosts for which this webextension is requesting permission.
+webextPerms.hostDescription.tooManySites=å忍ç¨äºå
¶ä» #1 个ç½ç«çæ°æ®
+
+# LOCALIZATION NOTE (webext.defaultSearch.description)
+# %1$S is replaced with the localized named of the extension that is asking to change the default search engine.
+# %2$S is replaced with the name of the current search engine
+# %3$S is replaced with the name of the new search engine
+webext.defaultSearch.description=%1$S æ³å°æ¨çé»è®¤æç´¢å¼æä» %2$S æ´æ¹ä¸º %3$Sãæ¨åæåï¼
+webext.defaultSearchYes.label=æ¯
+webext.defaultSearchYes.accessKey=Y
+webext.defaultSearchNo.label=å¦
+webext.defaultSearchNo.accessKey=N
+
+# LOCALIZATION NOTE (addonPostInstall.message1)
+# %1$S is replaced with the localized named of the extension that was
+# just installed.
+# %2$S is replaced with the localized name of the application.
+addonPostInstall.message1=%1$S 已添å å° %2$Sã
+
+# LOCALIZATION NOTE (addonPostInstall.messageDetail)
+# %1$S is replaced with the icon for the add-ons menu.
+# %2$S is replaced with the icon for the toolbar menu.
+# Note, this string will be used as raw markup. Avoid characters like <, >, &
+addonPostInstall.messageDetail=ç¹å» %2$S èåä¸ç %1$S å³å¯ç®¡çæ¨çéå ç»ä»¶ã
+addonPostInstall.okay.label=ç¡®å®
+addonPostInstall.okay.key=O
+
+# LOCALIZATION NOTE (addonDownloadingAndVerifying):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# Also see https://bugzilla.mozilla.org/show_bug.cgi?id=570012 for mockups
+addonDownloadingAndVerifying=æ£å¨ä¸è½½å¹¶éªè¯ #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=æ¤ç½ç«æ³è®©æ¨å¨ #1 ä¸å®è£
#2 个éå ç»ä»¶ï¼
+addonConfirmInstallUnsigned.message=注æï¼æ¤ç½ç«æ³å¨ #1 ä¸å®è£
ä¸ä¸ªæªéè¿éªè¯çéå ç»ä»¶ã请谨æ
å³å®ã;注æï¼æ¤ç½ç«æ³å¨ #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 (addonInstalledNeedsRestart):
+# %1$S is the name of the add-on, %2$S is the application's name
+addonInstalledNeedsRestart=%1$S å°å¨æ¨éå¯ %2$S åå®è£
ã
+# LOCALIZATION NOTE (addonsGenericInstalledNeedsRestart):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 number of add-ons. #2 application's name
+addonsGenericInstalledNeedsRestart=#1 个éå ç»ä»¶å°å¨æ¨éå¯ #2 åå®è£
ã
+addonInstallRestartButton=ç«å³éå¯
+addonInstallRestartButton.accesskey=R
+addonInstallRestartIgnoreButton=ææ¶ä¸è¦
+addonInstallRestartIgnoreButton.accesskey=N
+
+# LOCALIZATION NOTE (addonInstallError-1, addonInstallError-2, addonInstallError-3, addonInstallError-4, addonInstallError-5, addonLocalInstallError-1, addonLocalInstallError-2, addonLocalInstallError-3, addonLocalInstallError-4, addonLocalInstallError-5):
+# %1$S is the application name, %2$S is the add-on name
+addonInstallError-1=æ¤éå ç»ä»¶æªè½ä¸è½½ï¼å ä¸ºè¿æ¥å¤±è´¥ã
+addonInstallError-2=æä¸è½½ç䏿¯æ¬è¦å®è£
éå ç»ä»¶ %1$Sï¼æ æ³å®è£
ã
+addonInstallError-3=仿¤ç½ç«ä¸è½½çè¿ä¸ªéå ç»ä»¶æä»¶æåäºï¼æ æ³å®è£
ã
+addonInstallError-4=%2$S æªè½å®è£
ï¼å 为 %1$S æ æ³ä¿®æ¹æéçæä»¶ã
+addonInstallError-5=%1$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 (lightTheme.name): This is displayed in about:addons -> Appearance
+lightTheme.name=æäº®
+lightTheme.description=æäº®é
è²ç主é¢ã
+
+# LOCALIZATION NOTE (darkTheme.name): This is displayed in about:addons -> Appearance
+darkTheme.name=æ·±é
+darkTheme.description=æ·±éé
è²ç主é¢ã
+
+# LOCALIZATION NOTE (lwthemeInstallRequest.message2): %S will be replaced with
+# the host name of the site.
+lwthemeInstallRequest.message2=æ¤ç½ç« (%S) å°è¯å®è£
ä¸ä¸ªä¸»é¢ã
+lwthemeInstallRequest.allowButton2=å
许
+lwthemeInstallRequest.allowButton.accesskey2=a
+
+# LOCALIZATION NOTE (lwthemeNeedsRestart.message):
+# %S will be replaced with the new theme name.
+lwthemeNeedsRestart.message=%S å°å¨æ¨éæ°å¯å¨å被å®è£
ã
+lwthemeNeedsRestart.button=ç«å³éå¯
+lwthemeNeedsRestart.accesskey=R
+
+# 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 黿¢äºæ¤ç½ç«å¼¹åº 1 个çªå£ã
+popupWarningButton=é项
+popupWarningButton.accesskey=O
+popupWarningButtonUnix=é¦é项
+popupWarningButtonUnix.accesskey=P
+popupAllow=å
许 %S å¼¹åºçªå£
+popupBlock=黿¢ %S å¼¹åºçªå£
+popupWarningDontShowFromMessage=å½å¼¹åºå¼çªå£è¢«æ¦æªæ¶ä¸æ¾ç¤ºæ¤æ¶æ¯
+popupShowPopupPrefix=æ¾ç¤ºâ%Sâ
+
+# LOCALIZATION NOTE (popupShowBlockedPopupsIndicatorText): Semicolon seperated list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of pop-ups blocked.
+popupShowBlockedPopupsIndicatorText=æ¾ç¤º #1 ä¸ªå·²æ¦æªçå¼¹åºçªå£â¦
+
+# Bad Content Blocker Doorhanger Notification
+# %S is brandShortName
+badContentBlocked.blocked.message=%S æ¦æªäºæ¤é¡µé¢ä¸çé¨åå
容ã
+badContentBlocked.notblocked.message=%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
+keywordURIFixup.dismiss=ä¸äºï¼è°¢è°¢
+keywordURIFixup.dismiss.accesskey=N
+
+## Plugin doorhanger strings
+# LOCALIZATION NOTE (pluginActivate2.message):
+# Used for normal plugin activation if we don't know of a specific security issue.
+# %1$S is the plugin name, %2$S is the domain, and %3$S is brandShortName.
+pluginActivate2.message=æ¨æ¯å¦è¦å
许 %2$S è¿è¡ %1$Sï¼æä»¶å¯è½ä½¿ %3$S åæ
¢ã
+pluginActivateMultiple.message=å
许 %S è¿è¡æä»¶ï¼
+
+# LOCALIZATION NOTE (pluginActivationWarning.message): this should use the
+# same string as "pluginActivationWarning" in pluginproblem.dtd
+pluginActivationWarning.message=æ¤ç½ç«ä½¿ç¨çä¸ä¸ªæä»¶å¯è½ä½¿ %S åæ
¢ã
+
+pluginActivate.learnMore=详ç»äºè§£â¦
+# LOCALIZATION NOTE (pluginActivateOutdated.message, pluginActivateOutdated.label):
+# These strings are used when an unsafe plugin has an update available.
+# %1$S is the plugin name, %2$S is the domain, and %3$S is brandShortName.
+pluginActivateOutdated.message=%3$S 黿¢äºè¿æ§çæ¬çâ%1$Sâå¨ %2$S ä¸è¿è¡ã
+pluginActivateOutdated.label=è¿æ¶çæä»¶
+pluginActivate.updateLabel=ç°å¨æ´æ°â¦
+# LOCALIZATION NOTE (pluginActivateVulnerable.message):
+# This string is used when an unsafe plugin has no update available.
+# %1$S is the plugin name, %2$S is the domain, and %3$S is brandShortName.
+pluginActivateVulnerable.message=%3$S 黿¢äºä¸å®å
¨çæä»¶â%1$Sâå¨ %2$S ä¸è¿è¡ã
+pluginActivateVulnerable.label=æä»¶åå¨å®å
¨éæ£ï¼
+pluginActivate.riskLabel=æä»ä¹é£é©ï¼
+# LOCALIZATION NOTE (pluginActivateBlocked.message): %1$S is the plugin name, %2$S is brandShortName
+pluginActivateBlocked.message=%2$S 已黿¢â%1$Sâ以ä¿éæ¨çå®å
¨ã
+pluginActivateBlocked.label=已为æ¨é»æ¢ï¼ä»¥ä¿éæ¨çå®å
¨
+pluginActivateDisabled.message=â%Sâå·²ç¦ç¨ã
+pluginActivateDisabled.label=å·²åç¨
+pluginActivateDisabled.manage=管çæä»¶â¦
+pluginEnabled.message=â%Sâå¨ %S ä¸å·²å¯ç¨ã
+pluginEnabledOutdated.message=è¿æçæä»¶â%Sâä»å¨ %S ä¸å¯ç¨ã
+pluginEnabledVulnerable.message=ä¸å®å
¨çæä»¶â%Sâä»å¨ %S ä¸å¯ç¨ã
+pluginInfo.unknownPlugin=æªç¥
+
+# LOCALIZATION NOTE (pluginActivateNow.label, pluginActivateAlways.label, pluginBlockNow.label): These should be the same as the matching strings in browser.dtd
+# LOCALIZATION NOTE (pluginActivateNow.label): This button will enable the
+# plugin in the current session for an short time (about an hour), auto-renewed
+# if the site keeps using the plugin.
+pluginActivateNow.label=æ¬æ¬¡å
许
+pluginActivateNow.accesskey=N
+# LOCALIZATION NOTE (pluginActivateAlways.label): This button will enable the
+# plugin for a long while (90 days), auto-renewed if the site keeps using the
+# plugin.
+pluginActivateAlways.label=é¿æå
许
+pluginActivateAlways.accesskey=R
+pluginBlockNow.label=æ¦æªæä»¶
+pluginBlockNow.accesskey=B
+pluginContinue.label=ç»§ç»å
许
+pluginContinue.accesskey=C
+
+# Flash activation doorhanger UI
+flashActivate.message=æ¨æ³å
è®¸å¨æ¤ç½ç«ä¸è¿è¡ Adobe Flash åï¼è¯·åªå¨æ¨ä¿¡ä»»çç½ç«ä¸å
许 Adobe Flashã
+flashActivate.outdated.message=æ¨æ³å
è®¸å¨æ¤ç½ç«ä¸è¿è¡çæ¬è¿æ¶ç Adobe Flash åï¼è¿æ¶ççæ¬å¯è½å½±åæµè§å¨æ§è½åå®å
¨æ§ã
+flashActivate.remember=è®°ä½æ¤å³å®
+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=æ¤æä»¶æå®å
¨éæ£ã
+
+# infobar UI
+pluginContinueBlocking.label=ç»§ç»æ¦æª
+pluginContinueBlocking.accesskey=B
+# LOCALIZATION NOTE (pluginActivateTrigger): Use the unicode ellipsis char, \u2026,
+# or use "..." if \u2026 doesn't suit traditions in your locale.
+pluginActivateTrigger.label=å
许â¦
+pluginActivateTrigger.accesskey=A
+
+# Sanitize
+# LOCALIZATION NOTE (sanitizeDialog2.everything.title): When "Time range to
+# clear" is set to "Everything", the Clear Recent History dialog's title is
+# changed to this. See UI mockup and comment 11 at bug 480169 -->
+sanitizeDialog2.everything.title=æ¸
é¤å
¨é¨åå²
+sanitizeButtonOK=ç«å³æ¸
é¤
+# LOCALIZATION NOTE (sanitizeButtonClearing): The label for the default
+# button between the user clicking it and the window closing. Indicates the
+# items are being cleared.
+sanitizeButtonClearing=æ¸
é¤
+
+# LOCALIZATION NOTE (sanitizeEverythingWarning2): Warning that appears when
+# "Time range to clear" is set to "Everything" in Clear Recent History dialog,
+# provided that the user has not modified the default set of history items to clear.
+sanitizeEverythingWarning2=å
¨é¨åå²è®°å½ä¼è¢«æ¸
空ã
+# LOCALIZATION NOTE (sanitizeSelectedWarning): Warning that appears when
+# "Time range to clear" is set to "Everything" in Clear Recent History dialog,
+# provided that the user has modified the default set of history items to clear.
+sanitizeSelectedWarning=å°æ¸
空éä¸ç项ç®å
容ã
+
+# 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
+menuRestoreAllTabs.label=è¿åæææ ç¾é¡µ
+# LOCALIZATION NOTE (menuRestoreAllTabsSubview.label): like menuRestoreAllTabs.label,
+# but used in the history subview in the panel UI, so needs to mention these are *closed* tabs.
+menuRestoreAllTabsSubview.label=æ¢å¤å
³éçæ ç¾é¡µ
+# LOCALIZATION NOTE (menuRestoreAllWindows, menuUndoCloseWindowLabel, menuUndoCloseWindowSingleTabLabel):
+# see bug 394759
+menuRestoreAllWindows.label=æ¢å¤ææçªå£
+# LOCALIZATION NOTE (menuRestoreAllWindowsSubview.label): like menuRestoreAllWindows.label,
+# but used in the history subview in the panel UI, so needs to mention these are *closed* windows.
+menuRestoreAllWindowsSubview.label=æ¢å¤å
³éççªå£
+# LOCALIZATION NOTE (menuUndoCloseWindowLabel): Semicolon-separated list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 Window Title, #2 Number of tabs
+menuUndoCloseWindowLabel=#1 (ä¸å
¶ä»å
± #2 个æ ç¾é¡µ)
+menuUndoCloseWindowSingleTabLabel=#1
+
+# Unified Back-/Forward Popup
+tabHistory.current=åç卿¤é¡µ
+tabHistory.goBack=åéè³æ¤é¡µé¢
+tabHistory.goForward=åè¿è³æ¤é¡µé¢
+
+# URL Bar
+pasteAndGo.label=ç²è´´å¹¶åå¾
+# LOCALIZATION NOTE (reloadButton.tooltip):
+# %S is the keyboard shortcut for reloading the current page
+reloadButton.tooltip=éæ°è½½å
¥å½åé¡µé¢ (%S)
+# LOCALIZATION NOTE (stopButton.tooltip):
+# %S is the keyboard shortcut for stopping loading the page
+stopButton.tooltip=忢å è½½æ¤é¡µé¢ (%S)
+# LOCALIZATION NOTE (urlbar-zoom-button.tooltip):
+# %S is the keyboard shortcut for resetting the zoom level to 100%
+urlbar-zoom-button.tooltip=é置缩æ¾çº§å« (%S)
+
+# LOCALIZATION NOTE (reader-mode-button.tooltip):
+# %S is the keyboard shortcut for entering/exiting reader view
+reader-mode-button.tooltip=忢é
读å¨è§å¾ (%S)
+# LOCALIZATION NOTE (urlbar.placeholder):
+# %S is the name of the user's current search engine
+urlbar.placeholder=ä½¿ç¨ %S æç´¢ï¼æè
è¾å
¥ç½å
+# LOCALIZATION NOTE (urlbarSearchTip.onboarding):
+# %S is the name of the user's current search engine
+urlbarSearchTip.onboarding=è¾å
¥å¯¥å¯¥ï¼æéä¸åï¼å¨å°åæ å°±è½ç¨ %S æç´¢ã
+# LOCALIZATION NOTE (urlbarSearchTip.engineIsCurrentPage):
+# %S is the name of the user's current search engine
+urlbarSearchTip.engineIsCurrentPage=å¨è¿éå¼å§æç´¢ï¼å¯ä»¥çå° %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)
+# Star button
+starButtonOn.tooltip2=ç¼è¾æ¤ä¹¦ç¾ï¼%Sï¼
+starButtonOff.tooltip2=为æ¤é¡µæ·»å 书ç¾ï¼%Sï¼
+
+# Downloads button tooltip
+# LOCALIZATION NOTE (downloads.tooltip):
+# %S is the keyboard shortcut for "Downloads"
+downloads.tooltip=æ¾ç¤ºä¸è½½è¿åº¦ (%S)
+
+# Print button tooltip on OS X
+# LOCALIZATION NOTE (printButton.tooltip):
+# Use the unicode ellipsis char, \u2026,
+# or use "..." if \u2026 doesn't suit traditions in your locale.
+# %S is the keyboard shortcut for "Print"
+printButton.tooltip=æå°æ¤é¡µâ¦ (%S)
+
+# New Window button tooltip
+# LOCALIZATION NOTE (newWindowButton.tooltip):
+# %S is the keyboard shortcut for "New Window"
+newWindowButton.tooltip=æå¼æ°çªå£ (%S)
+
+# New Tab button tooltip
+# LOCALIZATION NOTE (newTabButton.tooltip):
+# %S is the keyboard shortcut for "New Tab"
+newTabButton.tooltip=æå¼æ°æ ç¾é¡µ (%S)
+
+# Offline web applications
+offlineApps.available2=æ¨æ¯å¦è¦å
许 %S 卿¨çè®¡ç®æºä¸å卿°æ®ï¼
+offlineApps.allowStoring.label=å
许å卿°æ®
+offlineApps.allowStoring.accesskey=A
+offlineApps.dontAllow.label=ä¸å
许
+offlineApps.dontAllow.accesskey=n
+
+offlineApps.usage=æ¤ç«ç¹ ï¼%Sï¼ æ£å¨ä¿åè¶
è¿ %SMB çæ°æ®è³æ¨çè®¡ç®æºä»¥ä¾è±æºä½¿ç¨ã
+offlineApps.manageUsage=æ¾ç¤ºè®¾ç½®
+offlineApps.manageUsageAccessKey=S
+
+# Canvas permission prompt
+# LOCALIZATION NOTE (canvas.siteprompt): %S is hostname
+canvas.siteprompt=æ¨æ³å
许 %S ä½¿ç¨æ¨ç HTML5 Canvas å¾åæ°æ®åï¼ç½ç«å¯è½ç¨æ¤æ°æ®æ¥è¯å«æ¨ççµèã
+canvas.notAllow=ä¸å
许
+canvas.notAllow.accesskey=n
+canvas.allow=å
许è·å¾æ°æ®
+canvas.allow.accesskey=A
+canvas.remember=è®°ä½æçå³å®
+
+# WebAuthn prompts
+# LOCALIZATION NOTE (webauthn.registerPrompt): %S is hostname
+webauthn.registerPrompt=%S æ³è¦ç¨æ¨çä¸ä¸ªå®å
¨ä»¤ç注åè´¦æ·ãæ¨å¯ä»¥ç°å¨è¿æ¥éªè¯å¨ï¼Uç¾ï¼å¹¶ææï¼ä¹å¯ä»¥åæ¶ã
+# LOCALIZATION NOTE (webauthn.registerDirectPrompt):
+# %1$S is hostname. %2$S is brandShortName.
+# The website is asking for extended information about your
+# hardware authenticator that shouldn't be generally necessary. Permitting
+# this is safe if you only use one account at this website. If you have
+# multiple accounts at this website, and you use the same hardware
+# authenticator, then the website could link those accounts together.
+# And this is true even if you use a different profile / browser (or even Tor
+# Browser). To avoid this, you should use different hardware authenticators
+# for different accounts on this website.
+webauthn.registerDirectPrompt=%1$S æ³è·å¾æå
³æ¨éªè¯å¨çé¢å¤ä¿¡æ¯ï¼è¿å¯è½ä¼æå®³æ¨çéç§æã\n\n%2$S å¯ä»¥ä¸åç½ç«æä¾é¢å¤ä¿¡æ¯ï¼å¸®æ¨ä¿æå¿åï¼ä½ç½ç«ä¹è®¸ä¼æç»ãæ¨å¯ä»¥å¨ç½ç«æç»ååéè¯ã
+# LOCALIZATION NOTE (webauthn.signPrompt): %S is hostname
+webauthn.signPrompt=%S å¸æä½¿ç¨å·²æ³¨åçå®å
¨ä»¤çéªè¯æ¨çèº«ä»½ãæ¨ç°å¨å¯ä»¥è¿æ¥éªè¯å¨ï¼Uç¾ï¼å¹¶ææï¼ä¹å¯ä»¥åæ¶ã
+webauthn.cancel=åæ¶
+webauthn.cancel.accesskey=c
+webauthn.proceed=ç»§ç»
+webauthn.proceed.accesskey=p
+webauthn.anonymize=è¿æ¯è¦å¿å
+
+# Spoof Accept-Language prompt
+privacy.spoof_english=å°æ¨çè¯è¨è®¾ä¸ºè±è¯è½è®©ç½ç«æ´é¾è¯å«æ¨ï¼æå©äºå¼ºåä¿æ¤æ¨çéç§ãè¦æ¹ä¸ºè¦æ±è±è¯ç½é¡µåï¼
+
+identity.identified.verifier=éªè¯è
ï¼%S
+identity.identified.verified_by_you=æ¨å·²å°æ¤ç½ç«å å
¥å®å
¨ä¾å¤ã
+identity.identified.state_and_country=%S, %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.icon.tooltip=æ¾ç¤ºç½ç«ä¿¡æ¯
+identity.extension.label=æ©å± (%S)
+identity.extension.tooltip=ç±æ©å±è½½å
¥ï¼%S
+identity.showDetails.tooltip=æ¾ç¤ºè¿æ¥ç»è
+
+trackingProtection.intro.title=è·è¸ªä¿æ¤çè¿ä½æ¹å¼
+# LOCALIZATION NOTE (trackingProtection.intro.description2):
+# %S is brandShortName. This string should match the one from Step 1 of the tour
+# when it starts from the button shown when a new private window is opened.
+trackingProtection.intro.description2=彿¨çå°è¿ä¸ªç¾çæ¶ï¼æå³ç %S å·²æ¦æªè¯¥é¡µé¢ä¸å¯è½è·è¸ªæ¨çæµè§è¡ä¸ºçå
容ã
+# LOCALIZATION NOTE (trackingProtection.intro.step1of3): Indicates that the intro panel is step one of three in a tour.
+trackingProtection.intro.step1of3=1 / 3
+trackingProtection.intro.nextButton.label=ä¸ä¸æ¥
+
+trackingProtection.icon.activeTooltip=å·²æ¦æªè·è¸ªè¡ä¸º
+trackingProtection.icon.disabledTooltip=æ£æµå°è·è¸ªå
容
+
+# Edit Bookmark UI
+editBookmarkPanel.pageBookmarkedTitle=已为æ¤é¡µé¢æ·»å 书ç¾
+editBookmarkPanel.pageBookmarkedDescription=%S å°ä¸ºæ¨è®°ä½æ¤é¡µé¢ã
+editBookmarkPanel.bookmarkedRemovedTitle=书ç¾å·²ç§»é¤
+editBookmarkPanel.editBookmarkTitle=ç¼è¾æ¤ä¹¦ç¾
+
+# LOCALIZATION NOTE (editBookmark.removeBookmarks.label): Semicolon-separated list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# Replacement for #1 is the number of bookmarks to be removed.
+# If this causes problems with localization you can also do "Remove Bookmarks (#1)"
+# instead of "Remove #1 Bookmarks".
+editBookmark.removeBookmarks.label=ç§»é¤ #1 个书ç¾
+
+# Post Update Notifications
+pu.notifyButton.label=详æ
â¦
+pu.notifyButton.accesskey=D
+# LOCALIZATION NOTE %S will be replaced by the short name of the application.
+puNotifyText=%S æ´æ°å®æ¯
+puAlertTitle=%S å·²æ´æ°
+puAlertText=å廿¤å¤æ¥ç详ç»ä¿¡æ¯
+
+# 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.allowLocation=å
许è·åä½ç½®
+geolocation.allowLocation.accesskey=A
+geolocation.dontAllowLocation=ä¸å
许
+geolocation.dontAllowLocation.accesskey=n
+geolocation.shareWithSite3=æ¨æ¯å¦è¦å
许 %S è·åæ¨çä½ç½®ï¼
+geolocation.shareWithFile3=æ¨æ¯å¦è¦å
è®¸æ¤æ¬å°æä»¶è·åæ¨çä½ç½®ï¼
+geolocation.remember=è®°ä½æ¤å³å®
+
+# Persistent storage UI
+persistentStorage.allow=å
许
+persistentStorage.allow.accesskey=A
+persistentStorage.dontAllow=ä¸å
许
+persistentStorage.dontAllow.accesskey=n
+persistentStorage.allowWithSite=æ¨è¦å
许 %S 卿ä¹
åå¨ä¸å卿°æ®åï¼
+persistentStorage.remember=è®°ä½æ¤å³å®
+
+webNotifications.allow=å
许éç¥
+webNotifications.allow.accesskey=A
+webNotifications.notNow=ææ¶ä¸è¦
+webNotifications.notNow.accesskey=n
+webNotifications.never=æ°¸ä¸å
许
+webNotifications.never.accesskey=v
+webNotifications.receiveFromSite2=æ¨æ¯å¦è¦å
许 %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 æç´¢
+
+extensions.{972ce4c6-7e08-4474-a285-3208198ce6fd}.name=é»è®¤
+extensions.{972ce4c6-7e08-4474-a285-3208198ce6fd}.description=é»è®¤ä¸»é¢ã
+
+# safeModeRestart
+safeModeRestartPromptTitle=éæ°å¯å¨å¹¶ç¦ç¨éå ç»ä»¶
+safeModeRestartPromptMessage=æ¨ç¡®å®è¦ç¦ç¨ææéå ç»ä»¶å¹¶éæ°å¯å¨åï¼
+safeModeRestartButton=éæ°å¯å¨
+
+# 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
+
+# Mozilla data reporting notification (Telemetry, Firefox Health Report, etc)
+dataReportingNotification.message = %1$S ä¼èªå¨å %2$S åé¦ä¸äºæ°æ®ï¼è®©æä»¬è½å¤æ¹åæ¨ç使ç¨ä½éªã
+dataReportingNotification.button.label = æè¦éæ©æä¾åªäºä¿¡æ¯
+dataReportingNotification.button.accessKey = C
+
+# Process hang reporter
+processHang.label = æä¸ªç½é¡µè®©æ¨çæµè§å¨åæ
¢äºãæ¨æ³å¦ä½å¤çï¼
+# LOCALIZATION NOTE (processHang.add-on.label): %1$S is the name of the
+# extension. %2$S is the name of the product (e.g., Firefox)
+processHang.add-on.label = æ©å±â%1$Sâ嫿çæä¸ªèæ¬ææ
¢äº %2$Sã
+processHang.add-on.learn-more.text = 详ç»äºè§£
+processHang.button_stop.label = 忢
+processHang.button_stop.accessKey = S
+processHang.button_stop_sandbox.label = 卿¤é¡µé¢ä¸´æ¶ç¦ç¨æ©å±
+processHang.button_stop_sandbox.accessKey = A
+processHang.button_wait.label = çå¾
+processHang.button_wait.accessKey = W
+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.shareCamera2.message,
+# getUserMedia.shareMicrophone2.message,
+# getUserMedia.shareScreen3.message,
+# getUserMedia.shareCameraAndMicrophone2.message,
+# getUserMedia.shareCameraAndAudioCapture2.message,
+# getUserMedia.shareScreenAndMicrophone3.message,
+# getUserMedia.shareScreenAndAudioCapture3.message,
+# getUserMedia.shareAudioCapture2.message):
+# %S is the website origin (e.g. www.mozilla.org)
+getUserMedia.shareCamera2.message = æ¨æ¯å¦è¦å
许 %S ä½¿ç¨æ¨çæå头ï¼
+getUserMedia.shareMicrophone2.message = æ¨æ¯å¦è¦å
许 %S ä½¿ç¨æ¨ç麦å
é£ï¼
+getUserMedia.shareScreen3.message = æ¨æ¯å¦è¦å
许 %S æ¥çæ¨çå±å¹ï¼
+getUserMedia.shareCameraAndMicrophone2.message = æ¨æ¯å¦è¦å
许 %S ä½¿ç¨æ¨çæå头å麦å
é£ï¼
+getUserMedia.shareCameraAndAudioCapture2.message = æ¨æ¯å¦è¦å
许 %S ä½¿ç¨æ¨çæå头åå¬å°æ¤æ ç¾é¡µç声é³ï¼
+getUserMedia.shareScreenAndMicrophone3.message = æ¨æ¯å¦è¦å
许 %S ä½¿ç¨æ¨ç麦å
é£åæ¥çæ¨çå±å¹ï¼
+getUserMedia.shareScreenAndAudioCapture3.message = æ¨æ¯å¦è¦å
许 %S å¬å°æ¤æ ç¾é¡µç声é³åæ¥çæ¨çå±å¹ï¼
+getUserMedia.shareAudioCapture2.message = æ¨æ¯å¦è¦å
许 %S å¬å°æ¤æ ç¾é¡µç声é³ï¼
+# LOCALIZATION NOTE (getUserMedia.shareScreenWarning.message): NB: inserted via innerHTML, so please don't use <, > or & in this string.
+# %S will be the 'learn more' link
+getUserMedia.shareScreenWarning.message = 请åªä¸æ¨ä¿¡ä»»çç½ç«å
±äº«å±å¹ãå¦åè¯éªç½ç«å°è·æ¨çå°ç¸åçç»é¢ï¼å¹¶å èè½çªåæ¨çéç§æ°æ®ã%S
+# LOCALIZATION NOTE (getUserMedia.shareFirefoxWarning.message): NB: inserted via innerHTML, so please don't use <, > or & in this string.
+# %1$S is brandShortName (eg. Firefox)
+# %2$S will be the 'learn more' link
+getUserMedia.shareFirefoxWarning.message = 请åªä¸æ¨ä¿¡ä»»çç½ç«å
±äº« %1$Sãå¦åè¯éªç½ç«å°è·æ¨çå°ç¸åçç»é¢ï¼å¹¶å èè½çªåæ¨çéç§æ°æ®ã%2$S
+# LOCALIZATION NOTE(getUserMedia.shareScreen.learnMoreLabel): NB: inserted via innerHTML, so please don't use <, > or & in this string.
+getUserMedia.shareScreen.learnMoreLabel = 详ç»äºè§£
+getUserMedia.selectWindow.label=è¦å
±äº«ççªå£ï¼
+getUserMedia.selectWindow.accesskey=W
+getUserMedia.selectScreen.label=è¦å
±äº«çå±å¹ï¼
+getUserMedia.selectScreen.accesskey=S
+getUserMedia.selectApplication.label=è¦å
±äº«çåºç¨ç¨åºï¼
+getUserMedia.selectApplication.accesskey=A
+getUserMedia.pickApplication.label = éæ©åºç¨ç¨åº
+getUserMedia.pickScreen.label = éæ©å±å¹
+getUserMedia.pickWindow.label = éæ©çªå£
+getUserMedia.shareEntireScreen.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.dontAllow.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.dontAllow.label = ä¸å
许
+getUserMedia.dontAllow.accesskey = D
+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.drmContentPlaying.message2): %S is brandShortName.
+emeNotifications.drmContentPlaying.message2 = æ¤ç½ç«çä¸äºé³é¢æè§é¢ä½¿ç¨äºå«æ°åçæç®¡çï¼DRMï¼ç软件ï¼è¿å¯è½ä¼éå¶ %S è½è®©æ¨ä½¿ç¨çåè½ã
+emeNotifications.drmContentPlaying.button.label = é
ç½®â¦
+emeNotifications.drmContentPlaying.button.accesskey = C
+
+# LOCALIZATION NOTE(emeNotifications.drmContentDisabled.message): NB: inserted via innerHTML, so please don't use <, > or & in this string. %S will be the 'learn more' link
+emeNotifications.drmContentDisabled.message = æ¨å¿
é¡»å¯ç¨ DRM æè½ææ¾æ¤é¡µé¢ä¸çæäºé³é¢æè§é¢ã%S
+emeNotifications.drmContentDisabled.button.label = å¯ç¨æ°åçæç®¡çï¼DRMï¼
+emeNotifications.drmContentDisabled.button.accesskey = E
+# LOCALIZATION NOTE(emeNotifications.drmContentDisabled.learnMoreLabel): NB: inserted via innerHTML, so please don't use <, > or & in this string.
+emeNotifications.drmContentDisabled.learnMoreLabel = 详ç»äºè§£
+
+# LOCALIZATION NOTE(emeNotifications.drmContentCDMInstalling.message): NB: inserted via innerHTML, so please don't use <, > or & in this string. %S is brandShortName
+emeNotifications.drmContentCDMInstalling.message = %S æ£å¨å®è£
ç»ä»¶ï¼ä»¥ä¾¿ææ¾æ¤é¡µé¢ä¸çé³é¢æè§é¢ã请ç¨ååè¯ã
+
+emeNotifications.unknownDRMSoftware = æªç¥
+
+# LOCALIZATION NOTE - %S is brandShortName
+slowStartup.message = %S å¯å¨å¾â¦ä¼¼ä¹â¦å¤ªæ
¢äºâ¦
+slowStartup.helpButton.label = äºè§£å¦ä½å å¿«å¯å¨é度
+slowStartup.helpButton.accesskey = L
+slowStartup.disableNotificationButton.label = ä¸è¦åéç¥æ
+slowStartup.disableNotificationButton.accesskey = A
+
+# LOCALIZATION NOTE - %S is brandShortName
+flashHang.message = %S æ´æ¹äºä¸äº Adobe Flash ç设置以æ¹åæ§è½ã
+flashHang.helpButton.label = 详ç»äºè§£â¦
+flashHang.helpButton.accesskey = L
+
+# LOCALIZATION NOTE (customizeMode.tabTitle): %S is brandShortName
+customizeMode.tabTitle = å®å¶ %S
+
+# LOCALIZATION NOTE (e10s.accessibilityNotice.mainMessage,
+# e10s.accessibilityNotice.enableAndRestart.label,
+# e10s.accessibilityNotice.enableAndRestart.accesskey):
+# These strings are related to the messages we display to offer e10s (Multi-process) to users
+# on the pre-release channels. They won't be used in release but they will likely be used in
+# beta starting from version 41, so it's still useful to have these strings properly localized.
+# %S is brandShortName
+e10s.accessibilityNotice.mainMessage2 = ç±äºä¸æ°ç %S åè½ä¸å
¼å®¹ï¼é¨åæ éç¢åè½å·²è¢«ç¦ç¨ã
+e10s.accessibilityNotice.acceptButton.label = ç¡®å®
+e10s.accessibilityNotice.acceptButton.accesskey = O
+e10s.accessibilityNotice.enableAndRestart.label = å¯ç¨ (éè¦é坿µè§å¨)
+e10s.accessibilityNotice.enableAndRestart.accesskey = E
+
+# 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
+
+userContextOpenLink.label = æ°å»º%Sæ ç¾é¡µæå¼é¾æ¥
+
+muteTab.label = è®©æ¤æ ç¾é¡µéé³
+muteTab.accesskey = M
+unmuteTab.label = 忶坹æ ç¾é¡µçéé³
+unmuteTab.accesskey = M
+playTab.label = ææ¾æ ç¾é¡µ
+playTab.accesskey = P
+
+# LOCALIZATION NOTE (certErrorDetails*.label): These are text strings that
+# appear in the about:certerror page, so that the user can copy and send them to
+# the server administrators for troubleshooting.
+certErrorDetailsHSTS.label = HTTP ä¸¥æ ¼ä¼ è¾å®å
¨ï¼HSTSï¼ï¼%S
+certErrorDetailsKeyPinning.label = HTTP å
¬é¥åºå®ï¼%S
+certErrorDetailsCertChain.label = è¯ä¹¦é¾ï¼
+
+# 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.noCodecs.message = ä¸ºäºææ¾è§é¢ï¼æ¨å¯è½éè¦å®è£
微软çâåªä½åè½å
âï¼Media Feature Packï¼ã
+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 = æå¼ç½ç»ç»å½é¡µé¢
+
+permissions.remove.tooltip = æ¸
餿¤æéå¹¶éæ°è¯¢é®
+
+# 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 ä½
+
+# LOCALIZATION NOTE (certImminentDistrust.message):
+# Shown in the browser console when visiting a website that is trusted today,
+# but won't be in the future unless the site operator makes a change.
+certImminentDistrust.message = æ¤ç½ç«ä½¿ç¨çå®å
¨è¯ä¹¦å¨æªæ¥çæ¬ä¸å°ä¸ååä¿¡ä»»ãæ´å¤ä¿¡æ¯è¯·è®¿é® https://wiki.mozilla.org/CA/Upcoming_Distrust_Actions
+
+midi.Allow.label = å
许
+midi.Allow.accesskey = A
+midi.DontAllow.label = ä¸å
许
+midi.DontAllow.accesskey = N
+midi.remember=è®°ä½æ¤å³å®
+midi.shareWithFile.message = å
è®¸æ¤æ¬å°æä»¶è®¿é®æ¨ç MIDI 设å¤ï¼
+# LOCALIZATION NOTE (midi.shareWithSite.message): %S is the name of the site URL (https://...) requesting MIDI access
+midi.shareWithSite.message = å
许 %S è®¿é®æ¨ç MIDI 设å¤ï¼
+midi.shareSysexWithFile.message = å
è®¸æ¤æ¬å°æä»¶è®¿é®æ¨ç MIDI 设å¤å¹¶åé/æ¥æ¶ SysEx æ¶æ¯ï¼
+# LOCALIZATION NOTE (midi.shareSysexWithSite.message): %S is the name of the site URL (https://...) requesting MIDI access
+midi.shareSysexWithSite.message = å
许 %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 = åé
+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..e81a063fab6
--- /dev/null
+++ b/browser/chrome/browser/customizableui/customizableWidgets.properties
@@ -0,0 +1,115 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+history-panelmenu.label = åå²è®°å½
+# LOCALIZATION NOTE(history-panelmenu.tooltiptext2): %S is the keyboard shortcut
+history-panelmenu.tooltiptext2 = æ¾ç¤ºæ¨çåå²è®°å½ï¼%Sï¼
+
+remotetabs-panelmenu.label = å忥æ ç¾é¡µ
+remotetabs-panelmenu.tooltiptext2 = æ¾ç¤ºæ¥èªå
¶ä»è®¾å¤çæ ç¾é¡µ
+
+privatebrowsing-button.label = æ°å»ºéç§çªå£
+# LOCALIZATION NOTE(privatebrowsing-button.tooltiptext): %S is the keyboard shortcut
+privatebrowsing-button.tooltiptext = æ°å»ºä¸ä¸ªéç§æµè§çªå£ (%S)
+
+save-page-button.label = ä¿å页é¢
+# LOCALIZATION NOTE(save-page-button.tooltiptext3): %S is the keyboard shortcut
+save-page-button.tooltiptext3 = ä¿åæ¤é¡µ (%S)
+
+find-button.label = æ¥æ¾
+# LOCALIZATION NOTE(find-button.tooltiptext3): %S is the keyboard shortcut.
+find-button.tooltiptext3 = 卿¤é¡µé¢ä¸æ¥æ¾ (%S)
+
+open-file-button.label = æå¼æä»¶
+# LOCALIZATION NOTE (open-file-button.tooltiptext3): %S is the keyboard shortcut.
+open-file-button.tooltiptext3 = æå¼æä»¶ (%S)
+
+developer-button.label = å¼åè
+# LOCALIZATION NOTE(developer-button.tooltiptext): %S is the keyboard shortcut
+developer-button.tooltiptext2 = æå¼ Web å¼åè
å·¥å
· (%S)
+
+sidebar-button.label = ä¾§æ
+sidebar-button.tooltiptext2 = æ¾ç¤ºä¾§æ
+
+add-ons-button.label = éå ç»ä»¶
+# LOCALIZATION NOTE(add-ons-button.tooltiptext3): %S is the keyboard shortcut
+add-ons-button.tooltiptext3 = ç®¡çæ¨çéå ç»ä»¶ (%S)
+
+preferences-button.label = é¦é项
+preferences-button.tooltiptext2 = æå¼é¦é项
+preferences-button.tooltiptext.withshortcut = æå¼é¦é项ï¼%Sï¼
+# LOCALIZATION NOTE (preferences-button.labelWin): Windows-only label for Options
+preferences-button.labelWin = é项
+# LOCALIZATION NOTE (preferences-button.tooltipWin): Windows-only tooltip for Options
+preferences-button.tooltipWin2 = æå¼é项
+
+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)
+
+feed-button.label = 订é
+feed-button.tooltiptext2 = 订é
æ¤é¡µ
+
+containers-panelmenu.label = æ°å»ºèº«ä»½æ ç¾é¡µ
+containers-panelmenu.tooltiptext = æ°å»ºèº«ä»½æ ç¾é¡µ
+
+# LOCALIZATION NOTE (characterencoding-button2.label): The \u00ad text at the beginning
+# of the string is used to disable auto hyphenation on the button text when it is displayed
+# in the menu panel.
+characterencoding-button2.label = æåç¼ç
+characterencoding-button2.tooltiptext = æ¾ç¤ºæåç¼ç é项
+
+email-link-button.label = ç¨é®ä»¶åé龿¥
+email-link-button.tooltiptext3 = ç¨é®ä»¶å鿤页龿¥
+
+# LOCALIZATION NOTE(quit-button.tooltiptext.linux2): %1$S is the brand name (e.g. Firefox),
+# %2$S is the keyboard shortcut
+quit-button.tooltiptext.linux2 = éåº %1$S (%2$S)
+# LOCALIZATION NOTE(quit-button.tooltiptext.mac): %1$S is the brand name (e.g. Firefox),
+# %2$S is the keyboard shortcut
+quit-button.tooltiptext.mac = éåº %1$S (%2$S)
+
+social-share-button.label = å享æ¤é¡µé¢
+social-share-button.tooltiptext = å享æ¤é¡µé¢
+
+panic-button.label = æ¹å»è¶³è¿¹
+panic-button.tooltiptext = æ¹å»æäºæµè§åå²
+
+# LOCALIZATION NOTE(devtools-webide-button.label, devtools-webide-button.tooltiptext):
+# widget is only visible after WebIDE has been started once (Tools > Web Developers > WebIDE)
+# %S is the keyboard shortcut
+devtools-webide-button2.label = WebIDE
+devtools-webide-button2.tooltiptext = æå¼ WebIDE (%S)
+
+e10s-button.label = æ°å»ºåè¿ç¨çªå£
+e10s-button.tooltiptext = æ°å»ºä¸ä¸ªåè¿ç¨çªå£
+
+toolbarspring.label = å¯å空ç½
+toolbarseparator.label = åé符
+toolbarspacer.label = 空ç½
diff --git a/browser/chrome/browser/downloads/downloads.dtd b/browser/chrome/browser/downloads/downloads.dtd
new file mode 100755
index 00000000000..349ecf1dc39
--- /dev/null
+++ b/browser/chrome/browser/downloads/downloads.dtd
@@ -0,0 +1,168 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/downloads/downloads.properties b/browser/chrome/browser/downloads/downloads.properties
new file mode 100755
index 00000000000..5fda3b7fd46
--- /dev/null
+++ b/browser/chrome/browser/downloads/downloads.properties
@@ -0,0 +1,118 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this file,
+# You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (stateStarting):
+# Indicates that the download is starting.
+stateStarting=æ£å¨å¼å§â¦
+# LOCALIZATION NOTE (stateScanning):
+# Indicates that an external program is scanning the download for viruses.
+stateScanning=æ£å¨è¿è¡ç
æ¯æ«æâ¦
+# 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 (stateBlockedPolicy):
+# Indicates that the download was blocked on Windows because of the "Launching
+# applications and unsafe files" setting of the "security zone" associated with
+# the target site. "Security zone" 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 "security zone" in various
+# languages:
+# http://support.microsoft.com/kb/174360
+stateBlockedPolicy=å·²ä¾ç
§æ¨çå®å
¨åºåçç¥æ¦æª
+# LOCALIZATION NOTE (stateDirty):
+# Indicates that the download was blocked after scanning.
+stateDirty=å·²æ¦æªï¼å¯è½å«æç
æ¯æé´è°è½¯ä»¶
+
+# LOCALIZATION NOTE (blockedMalware, blockedPotentiallyUnwanted,
+# blockedUncommon2):
+# These strings are shown in the panel for some types of blocked downloads, and
+# are immediately followed by the "Learn More" link, thus they must end with a
+# period. You may need to adjust "downloadDetails.width" in "downloads.dtd" if
+# this turns out to be longer than the other existing status strings.
+# Note: These strings don't exist in the UI yet. See bug 1053890.
+blockedMalware=æ¤æä»¶å
å«ç
æ¯ææ¶æè½¯ä»¶ã
+blockedPotentiallyUnwanted=æ¤æä»¶å¯è½å±å®³æ¨çè®¡ç®æºã
+blockedUncommon2=æ¤æä»¶å¾å°è¢«ä¸è½½ã
+
+# LOCALIZATION NOTE (fileMovedOrMissing):
+# Displayed when a complete download which is not at the original folder.
+fileMovedOrMissing=æä»¶å·²è¢«ç§»å¨æç§»é¤
+
+# LOCALIZATION NOTE (unblockHeaderUnblock, unblockHeaderOpen,
+# unblockTypeMalware, unblockTypePotentiallyUnwanted2,
+# unblockTypeUncommon2, unblockTip2, unblockButtonOpen,
+# unblockButtonUnblock, unblockButtonConfirmBlock):
+# 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=æ¤æä»¶å¾å°è¢«ä¸è½½ï¼æå¼å®å¯è½ä¸å®å
¨ãå®å¯è½å
å«ç
æ¯ï¼æä¼èªè¡å¯¹æ¨çç¨åºä¸è®¾ç½®ä½åºææå¤çæ´æ¹ã
+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
+
+fileExecutableSecurityWarning=â%Sâæ¯å¯æ§è¡æä»¶ãè¿ç±»æä»¶æå¯è½æºå¸¦ç
æ¯ãæ¨é©¬çæ¶æä»£ç ï¼æå¼æ¶è¯·å°å¿ãæ¨ç¡®å®è¦å¯å¨â%Sâåï¼
+fileExecutableSecurityWarningTitle=æå¼å¯æ§è¡æä»¶ï¼
+fileExecutableSecurityWarningDontAsk=ä¸å询é®
+
+# LOCALIZATION NOTE (otherDownloads3):
+# This is displayed in an item at the bottom of the Downloads Panel when
+# there are more downloads than can fit in the list in the panel. Use a
+# semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/Localization_and_Plurals
+otherDownloads3=æ£å¨ä¸è½½ %1$S 个æä»¶
+
+# LOCALIZATION NOTE (showLabel, showMacLabel):
+# This is displayed when you hover a download item in the Library widget view.
+# showMacLabel is only shown on Mac OSX.
+showLabel=æå¼æå¨çæä»¶å¤¹
+showMacLabel=å¨ Finder 䏿å¼
+# LOCALIZATION NOTE (openFileLabel):
+# Displayed when hovering a complete download, indicates that it's possible to
+# open the file using an app available in the system.
+openFileLabel=æå¼æä»¶
+# LOCALIZATION NOTE (retryLabel):
+# Displayed when hovering a download which is able to be retried by users,
+# indicates that it's possible to download this file again.
+retryLabel=éè¯ä¸è½½
diff --git a/browser/chrome/browser/engineManager.properties b/browser/chrome/browser/engineManager.properties
new file mode 100755
index 00000000000..89adcb3cec4
--- /dev/null
+++ b/browser/chrome/browser/engineManager.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/.
+
+duplicateTitle=å
³é®è¯éå¤
+duplicateEngineMsg=æ¨éæ©çå
³é®è¯å·²ç¨äºâ%Sâï¼è¯·æ¢ä¸ä¸ªã
+duplicateBookmarkMsg=æ¨éæ©çå
³é®è¯å·²ç¨äºæä¸ªä¹¦ç¾ï¼è¯·æ¢ä¸ä¸ªã
diff --git a/browser/chrome/browser/feeds/subscribe.dtd b/browser/chrome/browser/feeds/subscribe.dtd
new file mode 100755
index 00000000000..edd40fd6fd6
--- /dev/null
+++ b/browser/chrome/browser/feeds/subscribe.dtd
@@ -0,0 +1,10 @@
+
+
+
+
+
diff --git a/browser/chrome/browser/feeds/subscribe.properties b/browser/chrome/browser/feeds/subscribe.properties
new file mode 100755
index 00000000000..4a72842d15e
--- /dev/null
+++ b/browser/chrome/browser/feeds/subscribe.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/.
+
+linkTitleTextFormat=è½¬å° %S
+addHandler=å° "%S" (%S) æ·»å 为æ¶åç¹é
读å¨ï¼
+addHandlerAddButton=æ·»å æ¶åç¹é
读å¨
+addHandlerAddButtonAccesskey=A
+handlerRegistered="%S"å·²ç»æ³¨å为æ¶åç¹é
读å¨
+liveBookmarks=宿¶ä¹¦ç¾
+subscribeNow=ç«å³è®¢é
+chooseApplicationMenuItem=éæ©åºç¨ç¨åºâ¦
+chooseApplicationDialogTitle=éæ©åºç¨ç¨åº
+alwaysUse=æ»æ¯ç¨ %S 订é
æ¶åç¹
+mediaLabel=åªä½æä»¶
+
+# LOCALIZATION NOTE: The next string is for the size of the enclosed media.
+# e.g. enclosureSizeText : "50.23 MB"
+# %1$S = size (in bytes or megabytes, ...)
+# %2$S = unit of measure (bytes, KB, MB, ...)
+enclosureSizeText=%1$S %2$S
+
+bytes=æ¯ç¹
+kilobyte=KB
+megabyte=MB
+gigabyte=GB
+
+# LOCALIZATION NOTE: The next three strings explains to the user what they're
+# doing.
+# e.g. alwaysUseForVideoPodcasts : "Always use Miro to subscribe to video podcasts."
+# %S = application to use (Miro, iTunes, ...)
+alwaysUseForFeeds=æ»æ¯ç¨ %S 订é
æ¶åç¹ã
+alwaysUseForAudioPodcasts=æ»æ¯ç¨ %S 订é
æå®¢ã
+alwaysUseForVideoPodcasts=æ»æ¯ç¨ %S 订é
è§é¢æå®¢ã
+
+subscribeFeedUsing=订é
æ¤æ¶åç¹ï¼ä½¿ç¨\u0020
+subscribeAudioPodcastUsing=订é
æ¤æå®¢ï¼ä½¿ç¨\u0020
+subscribeVideoPodcastUsing=订é
æ¤è§é¢æå®¢ï¼ä½¿ç¨\u0020
+
+feedSubscriptionFeed1=è¿æ¯æ¤ç½ç«çâæ¶åç¹âï¼æ¹ä¾¿æ¨æ¶åè¿ä¸ªç½ç«é¢ç¹æ´æ°çå
容ã
+feedSubscriptionAudioPodcast1=è¿æ¯æ¤ç½ç«çâæå®¢âï¼æ¶å¸¸æéæ¤ç½ç«çå
容ã
+feedSubscriptionVideoPodcast1=è¿æ¯æ¤ç½ç«çâè§é¢æå®¢âï¼æ¶å¸¸æéæ¤ç½ç«çå
容ã
+
+feedSubscriptionFeed2=æ¨å¯ä»¥è®¢é
æ¤æ¶åç¹ï¼å½æ¤å
容åçååæ¶å³å¯æ¶å°æ´æ°ã
+feedSubscriptionAudioPodcast2=æ¨å¯ä»¥è®¢é
æ¤æå®¢ï¼å½æ¤å
容åçååæ¶å³å¯æ¶å°æ´æ°ã
+feedSubscriptionVideoPodcast2=æ¨å¯ä»¥è®¢é
æ¤è§é¢æå®¢ï¼å½æ¤å
容åçååæ¶å³å¯æ¶å°æ´æ°ã
+
+# Protocol Handling
+# "Add %appName (%appDomain) as an application for %protocolType links?"
+addProtocolHandler=å° %S (%S) æ·»å 为å¤ç %S 龿¥çåºç¨ç¨åºï¼
+addProtocolHandlerAddButton=æ·»å åºç¨ç¨åº
+addProtocolHandlerAddButtonAccesskey=A
\ No newline at end of file
diff --git a/browser/chrome/browser/lightweightThemes.properties b/browser/chrome/browser/lightweightThemes.properties
new file mode 100644
index 00000000000..99e7f0d615b
--- /dev/null
+++ b/browser/chrome/browser/lightweightThemes.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/.
+
+lightweightThemes.recommended-1.name=ç«çå¤å
´
+lightweightThemes.recommended-1.description=A Web Browser Renaissance ç³» Sean.Martell çæææ (C)ï¼éç¨âç¥è¯å
±äº« ç½²å-ç¸åæ¹å¼å
±äº«â许å¯åè®®è¿è¡ææãä¸ä½ä»»ä½æ
ä¿ã
+
+lightweightThemes.recommended-2.name=å¹»æ³ç©ºé´
+lightweightThemes.recommended-2.description=Space Fantasy ç³» fx5800p çæææ (C)ï¼éç¨âç¥è¯å
±äº« ç½²å-ç¸åæ¹å¼å
±äº«â许å¯åè®®è¿è¡ææãä¸ä½ä»»ä½æ
ä¿ã
+
+lightweightThemes.recommended-4.name=æåæ¸å
+lightweightThemes.recommended-4.description=Pastel Gradient ç³» darrinhenein çæææ (C)ï¼éç¨âç¥è¯å
±äº« ç½²åâ许å¯åè®®è¿è¡ææãä¸ä½ä»»ä½æ
ä¿ã
diff --git a/browser/chrome/browser/migration/migration.dtd b/browser/chrome/browser/migration/migration.dtd
new file mode 100755
index 00000000000..9decbfb9a1b
--- /dev/null
+++ b/browser/chrome/browser/migration/migration.dtd
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/migration/migration.properties b/browser/chrome/browser/migration/migration.properties
new file mode 100755
index 00000000000..40b0acf8423
--- /dev/null
+++ b/browser/chrome/browser/migration/migration.properties
@@ -0,0 +1,89 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+profileName_format=%S %S
+
+# Browser Specific
+sourceNameIE=微软 IE æµè§å¨
+sourceNameEdge=Microsoft Edge
+sourceNameSafari=Safari
+sourceNameCanary=Google Chrome Canary
+sourceNameChrome=Google Chrome
+sourceNameChromeBeta=Google Chrome Beta
+sourceNameChromeDev=Google Chrome Dev
+sourceNameChromium=Chromium
+sourceNameFirefox=Mozilla Firefox
+sourceName360se=360 å®å
¨æµè§å¨
+
+importedBookmarksFolder=æ¥èª %S
+
+importedSafariReadingList=é
读åè¡¨ï¼æ¥èª Safariï¼
+importedEdgeReadingList=é
读åè¡¨ï¼æ¥èª Edgeï¼
+
+# Import Sources
+# Note: When adding an import source for profile reset, add the string name to
+# resetProfile.js if it should be listed in the reset dialog.
+1_ie=äºèç½é项
+1_edge=设置
+1_safari=é¦é项
+1_chrome=é¦é项
+1_360se=é¦é项
+
+2_ie=Cookie
+2_edge=Cookie
+2_safari=Cookie
+2_chrome=Cookie
+2_firefox=Cookie
+2_360se=Cookie
+
+4_ie=æµè§åå²
+4_edge=æµè§åå²
+4_safari=æµè§åå²
+4_chrome=æµè§åå²
+4_firefox_history_and_bookmarks=æµè§åå²å书ç¾
+4_360se=æµè§åå²
+
+8_ie=å·²ä¿åç表åè®°å½
+8_edge=å·²ä¿åç表åè®°å½
+8_safari=å·²ä¿åç表åè®°å½
+8_chrome=å·²ä¿åç表åè®°å½
+8_firefox=å·²ä¿åç表åè®°å½
+8_360se=å·²ä¿åç表åè®°å½
+
+16_ie=å·²ä¿åçå¯ç
+16_edge=å·²ä¿åçå¯ç
+16_safari=å·²ä¿åçå¯ç
+16_chrome=å·²ä¿åçå¯ç
+16_firefox=å·²ä¿åçå¯ç
+16_360se=å·²ä¿åçå¯ç
+
+32_ie=æ¶è夹
+32_edge=æ¶è夹
+32_safari=书ç¾
+32_chrome=书ç¾
+32_360se=书ç¾
+
+64_ie=å
¶ä»æ°æ®
+64_edge=å
¶ä»æ°æ®
+64_safari=å
¶ä»æ°æ®
+64_chrome=å
¶ä»æ°æ®
+64_firefox_other=å
¶ä»æ°æ®
+64_360se=å
¶ä»æ°æ®
+
+128_firefox=çªå£åæ ç¾é¡µ
+
+# Automigration undo notification.
+# %1$S will be replaced with brandShortName, %2$S will be replaced with the name of the browser we imported from
+automigration.undo.message2.all = æ¥å
¥ %1$Sï¼å·²ä» %2$S 导å
¥æ¨æç±çç½ç«ã书ç¾ãåå²è®°å½åå¯ç ã
+automigration.undo.message2.bookmarks = æ¥å
¥ %1$Sï¼å·²ä» %2$S 导å
¥æ¨æç±çç½ç«å书ç¾ã
+automigration.undo.message2.bookmarks.logins = æ¥å
¥ %1$Sï¼å·²ä» %2$S 导å
¥æ¨æç±çç½ç«ã书ç¾åå¯ç ã
+automigration.undo.message2.bookmarks.visits = æ¥å
¥ %1$Sï¼å·²ä» %2$S 导å
¥æ¨æç±çç½ç«ã书ç¾ååå²è®°å½ã
+automigration.undo.message2.logins = æ¥å
¥ %1$Sï¼å·²ä» %2$S 导å
¥æ¨çå¯ç ã
+automigration.undo.message2.logins.visits = æ¥å
¥ %1$Sï¼å·²ä» %2$S 导å
¥æ¨æç±çç½ç«ãåå²è®°å½åå¯ç ã
+automigration.undo.message2.visits = æ¥å
¥ %1$Sï¼å·²ä» %2$S 导å
¥æ¨æç±çç½ç«ååå²è®°å½ã
+automigration.undo.keep2.label = 好ï¼ç¥éäº
+automigration.undo.keep2.accesskey = O
+automigration.undo.dontkeep2.label = ä¸ç¨äº
+automigration.undo.dontkeep2.accesskey = N
+automigration.undo.unknownbrowser = æªç¥æµè§å¨
diff --git a/browser/chrome/browser/newTab.dtd b/browser/chrome/browser/newTab.dtd
new file mode 100755
index 00000000000..bf5ce321980
--- /dev/null
+++ b/browser/chrome/browser/newTab.dtd
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/newTab.properties b/browser/chrome/browser/newTab.properties
new file mode 100755
index 00000000000..b9d4da5895e
--- /dev/null
+++ b/browser/chrome/browser/newTab.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/.
+
+newtab.defaultTopSites.heading=常ç¨ç½ç«
+newtab.userTopSites.heading=æ¨å¸¸è®¿é®çç½ç«
+
+newtab.pin=å°æ¤ç½ç«åºå®å¨å®å½åçä½ç½®
+newtab.unpin=ä¸ååºå®è¿ä¸ªç½ç«
+newtab.block=ç§»é¤è¿ä¸ªç½ç«
diff --git a/browser/chrome/browser/pageInfo.dtd b/browser/chrome/browser/pageInfo.dtd
new file mode 100755
index 00000000000..16150e773db
--- /dev/null
+++ b/browser/chrome/browser/pageInfo.dtd
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/pageInfo.properties b/browser/chrome/browser/pageInfo.properties
new file mode 100755
index 00000000000..ca8cdd55b5a
--- /dev/null
+++ b/browser/chrome/browser/pageInfo.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/.
+
+pageInfo.page.title=页é¢ä¿¡æ¯ - %S
+pageInfo.frame.title=æ¡æ¶ä¿¡æ¯ - %S
+
+noPageTitle=æ æ é¢é¡µ
+unknown=æªç¥
+notset=æªææ
+yes=æ¯
+no=å¦
+
+mediaImg=å¾å
+mediaVideo=è§é¢
+mediaAudio=é³é¢
+mediaBGImg=èæ¯
+mediaBorderImg=è¾¹æ¡
+mediaListImg=项ç®
+mediaCursor=å
æ
+mediaObject=对象
+mediaEmbed=åµå
¥
+mediaLink=徿
+mediaInput=è¾å
¥
+mediaFileSize=%S KB
+mediaSize=%Spx à %Spx
+mediaSelectFolder=è¯·éæ©ä¿åå¾åçæä»¶å¤¹
+mediaBlockImage=æ¦æªæ¥èª %S çå¾å
+mediaUnknownNotCached=æªç¥ï¼æªç¼åï¼
+mediaImageType=%S å¾å
+mediaAnimatedImageType=%S å¾å (å¨ç»ï¼%S 帧)
+mediaDimensions=%Spx à %Spx
+mediaDimensionsScaled=%Spx à %Spx (缩æ¾è³ %Spx à %Spx)
+
+generalQuirksMode=æªå¼æ¨¡å¼
+generalStrictMode=æ åè§è模å¼
+generalSize=%S KB (%S åè)
+generalMetaTag=å
ä¿¡æ¯ (1 个æ ç¾)
+generalMetaTags=å
ä¿¡æ¯ (%S 个æ ç¾)
+
+feedRss=RSS
+feedAtom=Atom
+feedXML=XML
+
+feedSubscribe=订é
+feedSubscribe.accesskey=u
+
+securityNoOwner=æ¤ç½ç«æªæä¾ææè
ä¿¡æ¯ã
+securityOneVisit=æ¯ï¼ä»
䏿¬¡
+securityNVisits=æ¯ï¼%S 次
+
+# LOCALIZATION NOTE (securityVisitsNumber):
+# Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of visits and can be used in all plural forms as needed, e.g.
+# for '1': 'Yes, #1 time'
+securityVisitsNumber=æ¯ï¼å
± #1 次
+securityNoVisits=仿ª
+
+# LOCALIZATION NOTE: The next string is for the disk usage of the
+# database
+# e.g. indexedDBUsage : "50.23 MB"
+# %1$S = size (in bytes or megabytes, ...)
+# %2$S = unit of measure (bytes, KB, MB, ...)
+indexedDBUsage=æ¤ç½ç«å·²ä½¿ç¨ %1$S %2$S
+
+# LOCALIZATION NOTE(securitySiteDataCookies,securitySiteDataOnly): This is for site data disk usage.
+# It confirms that a website is indeed using this much space.
+# e.g. Is this website storing site data? "Yes, 50.23 MB"
+# %1$S = size (in bytes or megabytes, ...)
+# %2$S = unit of measure (bytes, KB, MB, ...)
+securitySiteDataCookies=æï¼Cookie å %1$S %2$S ç½ç«æ°æ®
+securitySiteDataOnly=æï¼%1$S %2$S ç½ç«æ°æ®
+# LOCALIZATION NOTE(securitySiteDataCookiesOnly,securitySiteDataNo):
+# This is for site data and cookies usage. It answers the question "Is this website storing cookies and/or site data?"
+securitySiteDataCookiesOnly=æï¼Cookie
+securitySiteDataNo=æ
+
+permissions.useDefault=使ç¨é»è®¤è®¾ç½®
diff --git a/browser/chrome/browser/places/bookmarkProperties.properties b/browser/chrome/browser/places/bookmarkProperties.properties
new file mode 100755
index 00000000000..72d8a8b8eb2
--- /dev/null
+++ b/browser/chrome/browser/places/bookmarkProperties.properties
@@ -0,0 +1,19 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+dialogAcceptLabelAddItem=æ·»å
+dialogAcceptLabelSaveItem=ä¿å
+dialogAcceptLabelAddLivemark=订é
+dialogAcceptLabelAddMulti=æ·»å 书ç¾
+dialogAcceptLabelEdit=ä¿å
+dialogTitleAddBookmark=æ°å»ºä¹¦ç¾
+dialogTitleAddLivemark=订é
宿¶ä¹¦ç¾
+dialogTitleAddFolder=æ°å»ºæä»¶å¤¹
+dialogTitleAddMulti=æ°å»ºä¹¦ç¾
+dialogTitleEdit=â%Sâç屿§
+
+bookmarkAllTabsDefault=[æä»¶å¤¹åç§°]
+newFolderDefault=æ°å»ºæä»¶å¤¹
+newBookmarkDefault=æ°å»ºä¹¦ç¾
+newLivemarkDefault=æ°å»ºå®æ¶ä¹¦ç¾
diff --git a/browser/chrome/browser/places/editBookmarkOverlay.dtd b/browser/chrome/browser/places/editBookmarkOverlay.dtd
new file mode 100755
index 00000000000..41b0638eec8
--- /dev/null
+++ b/browser/chrome/browser/places/editBookmarkOverlay.dtd
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/places/moveBookmarks.dtd b/browser/chrome/browser/places/moveBookmarks.dtd
new file mode 100755
index 00000000000..cad596bd51c
--- /dev/null
+++ b/browser/chrome/browser/places/moveBookmarks.dtd
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/places/places.dtd b/browser/chrome/browser/places/places.dtd
new file mode 100755
index 00000000000..f2090b5b017
--- /dev/null
+++ b/browser/chrome/browser/places/places.dtd
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Z æåº">
+
+ A æåº">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/places/places.properties b/browser/chrome/browser/places/places.properties
new file mode 100755
index 00000000000..cf31949a7dd
--- /dev/null
+++ b/browser/chrome/browser/places/places.properties
@@ -0,0 +1,118 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+load-js-data-url-error=åºäºå®å
¨å ç´ ï¼javascript æè
æ°æ® URL ä¸ä¼å¨åå²è®°å½çªå£æè
ä¾§æ ä¸è½½å
¥ã
+noTitle=(æ æ é¢)
+
+bookmarksMenuEmptyFolder=(空)
+
+bookmarksBackupTitle=书ç¾å¤ä»½æä»¶å
+
+bookmarksRestoreAlertTitle=æ¢å¤ä¹¦ç¾
+bookmarksRestoreAlert=æ¤æä½å°ç¨å¤ä»½ç书ç¾è¦çæ¨å½åç书ç¾ï¼ç¡®å®ï¼
+bookmarksRestoreTitle=鿩书ç¾å¤ä»½
+bookmarksRestoreFilterName=JSON
+
+bookmarksRestoreFormatError=䏿¯æçæä»¶ç±»åã
+bookmarksRestoreParseError=æ æ³å¤çå¤ä»½æä»¶ã
+
+bookmarksLivemarkLoading=宿¶ä¹¦ç¾è½½å
¥ä¸â¦
+bookmarksLivemarkFailed=宿¶ä¹¦ç¾æ¶åç¹è½½å
¥å¤±è´¥ã
+
+menuOpenLivemarkOrigin.label=æå¼ "%S"
+
+sortByName=æåç§°å° '%S' æåº
+sortByNameGeneric=æåç§°æåº
+# 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.description.label=ææè¿°æåº
+view.sortBy.1.description.accesskey=D
+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=æç´¢ä¸è½½é¡¹
+
+tabs.openWarningTitle=确认æå¼
+tabs.openWarningMultipleBranded=æ¨å°è¦æå¼ %S 个æ ç¾é¡µãä¸å¹¶è½½å
¥å¤ªå¤é¡µé¢å¯è½ä¼åæ
¢ %S çè¿è¡ãæ¨ç¡®å®è¦ä¸å¹¶æå¼åï¼
+tabs.openButtonMultiple=æå¼å¤ä¸ªæ ç¾é¡µ
+tabs.openWarningPromptMeBranded=彿å¼å¤ä¸ªæ ç¾é¡µä¼åæ
¢ %S è¿è¡æ¶ååºè¦å
+
+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个项ç®
+
+mostVisitedTitle=æå¸¸è®¿é®
+recentTagsTitle=æè¿ä½¿ç¨çæ ç¾
+
+OrganizerQueryHistory=åå²è®°å½
+OrganizerQueryDownloads=ä¸è½½é¡¹
+OrganizerQueryAllBookmarks=å
¨é¨ä¹¦ç¾
+OrganizerQueryTags=æ ç¾
+
+# LOCALIZATION NOTE (tagResultLabel, bookmarkResultLabel, switchtabResultLabel,
+# keywordResultLabel, searchengineResultLabel)
+# Noun used to describe the location bar autocomplete result type
+# to users with screen readers
+# See createResultLabel() in urlbarBindings.xml
+tagResultLabel=æ ç¾
+bookmarkResultLabel=书ç¾
+switchtabResultLabel=æ ç¾é¡µ
+keywordResultLabel=å
³é®è¯
+searchengineResultLabel=æç´¢
+
+
+# LOCALIZATION NOTE (lockPrompt.text)
+# %S will be replaced with the application name.
+lockPrompt.title=å¯å¨æµè§å¨åºé
+lockPrompt.text=ç±äºæä¸ª %S çæä»¶æ£è¢«å
¶ä»åºç¨ç¨åºä½¿ç¨ï¼ä¹¦ç¾ååå²è®°å½ç³»ç»æ æ³è¿è¡ãæäºå®å
¨è½¯ä»¶å¯è½å¼èµ·è¿ç±»é®é¢ã
+lockPromptInfoButton.label=详ç»äºè§£
+lockPromptInfoButton.accessKey=L
+
+# LOCALIZATION NOTE (deletePagesLabel): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+cmd.deletePages.label=å é¤é¡µé¢
+cmd.deletePages.accesskey=D
+
+# LOCALIZATION NOTE (bookmarkPagesLabel): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+cmd.bookmarkPages.label=å°é¡µé¢å å
¥ä¹¦ç¾
+cmd.bookmarkPages.accesskey=B
+
+# LOCALIZATION NOTE (cmd.deleteSinglePage.accesskey,
+# cmd.deleteMultiplePages.accesskey): these accesskeys can use the same
+# character, since they're never displayed at the same time
+cmd.deleteSinglePage.label=å é¤é¡µé¢
+cmd.deleteSinglePage.accesskey=D
+cmd.deleteMultiplePages.label=å é¤é¡µé¢
+cmd.deleteMultiplePages.accesskey=D
+
+# LOCALIZATION NOTE (cmd.bookmarkSinglePage.accesskey,
+# cmd.bookmarkMultiplePages.accesskey): these accesskeys can use the same
+# character, since they're never displayed at the same time
+cmd.bookmarkSinglePage.label=æ·»å 书ç¾
+cmd.bookmarkSinglePage.accesskey=B
+cmd.bookmarkMultiplePages.label=æ·»å 书ç¾
+cmd.bookmarkMultiplePages.accesskey=B
diff --git a/browser/chrome/browser/preferences/advanced.dtd b/browser/chrome/browser/preferences/advanced.dtd
new file mode 100755
index 00000000000..ea24b6be72f
--- /dev/null
+++ b/browser/chrome/browser/preferences/advanced.dtd
@@ -0,0 +1,153 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/preferences/applicationManager.dtd b/browser/chrome/browser/preferences/applicationManager.dtd
new file mode 100755
index 00000000000..3f5c3f4e78c
--- /dev/null
+++ b/browser/chrome/browser/preferences/applicationManager.dtd
@@ -0,0 +1,8 @@
+
+
+
+
+
+
diff --git a/browser/chrome/browser/preferences/applicationManager.properties b/browser/chrome/browser/preferences/applicationManager.properties
new file mode 100755
index 00000000000..db3e795bf3d
--- /dev/null
+++ b/browser/chrome/browser/preferences/applicationManager.properties
@@ -0,0 +1,14 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE
+# in descriptionApplications, %S will be replaced by one of the 3 following strings
+descriptionApplications=å¦ä¸åºç¨ç¨åºå¯ç¨æ¥å¤çâ%Sâã
+
+handleProtocol=%S 龿¥
+handleWebFeeds=ç½ç«æ¶åç¹
+handleFile=%S å
容
+
+descriptionWebApp=æ¤ç½é¡µåºç¨ç¨åºä½äºï¼
+descriptionLocalApp=æ¤åºç¨ç¨åºä½äºï¼
diff --git a/browser/chrome/browser/preferences/applications.dtd b/browser/chrome/browser/preferences/applications.dtd
new file mode 100755
index 00000000000..105c718f1f2
--- /dev/null
+++ b/browser/chrome/browser/preferences/applications.dtd
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/preferences/blocklists.dtd b/browser/chrome/browser/preferences/blocklists.dtd
new file mode 100644
index 00000000000..6f60ce7900e
--- /dev/null
+++ b/browser/chrome/browser/preferences/blocklists.dtd
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/preferences/clearSiteData.dtd b/browser/chrome/browser/preferences/clearSiteData.dtd
new file mode 100644
index 00000000000..8adb72d5d97
--- /dev/null
+++ b/browser/chrome/browser/preferences/clearSiteData.dtd
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/preferences/clearSiteData.properties b/browser/chrome/browser/preferences/clearSiteData.properties
new file mode 100644
index 00000000000..3df5c0793c7
--- /dev/null
+++ b/browser/chrome/browser/preferences/clearSiteData.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 (clearSiteDataWithEstimates.label, clearCacheWithEstimates.label):
+# The parameters in parentheses in these strings describe disk usage
+# in the format (size unit), e.g. "Cookies and Site Data (24 KB)"
+# %1$S = size
+# %2$S = unit (MB, KB, etc.)
+clearSiteDataWithEstimates.label = Cookie åç½ç«æ°æ® (%1$S %2$S)
+clearCacheWithEstimates.label = å·²ç¼åç½ç»æ°æ® (%1$S %2$S)
+
diff --git a/browser/chrome/browser/preferences/colors.dtd b/browser/chrome/browser/preferences/colors.dtd
new file mode 100755
index 00000000000..af91711a54e
--- /dev/null
+++ b/browser/chrome/browser/preferences/colors.dtd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/preferences/connection.dtd b/browser/chrome/browser/preferences/connection.dtd
new file mode 100755
index 00000000000..a667e27395f
--- /dev/null
+++ b/browser/chrome/browser/preferences/connection.dtd
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/preferences/containers.dtd b/browser/chrome/browser/preferences/containers.dtd
new file mode 100644
index 00000000000..811f276d949
--- /dev/null
+++ b/browser/chrome/browser/preferences/containers.dtd
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/preferences/containers.properties b/browser/chrome/browser/preferences/containers.properties
new file mode 100644
index 00000000000..0689ef0834d
--- /dev/null
+++ b/browser/chrome/browser/preferences/containers.properties
@@ -0,0 +1,31 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+containers.labelMinWidth = 4rem
+containers.updateContainerTitle = %S 身份é¦é项
+
+containers.blue.label = èè²
+containers.turquoise.label = éè²
+containers.green.label = 绿è²
+containers.yellow.label = é»è²
+containers.orange.label = æ©è²
+containers.red.label = 红è²
+containers.pink.label = ç²è²
+containers.purple.label = ç´«è²
+
+containers.fingerprint.label = æçº¹
+containers.briefcase.label = å
¬æå
+# LOCALIZATION NOTE (containers.dollar.label)
+# String represents a money sign but currently uses a dollar sign so don't change to local currency
+# See Bug 1291672
+containers.dollar.label = ç¾å
符å·
+containers.cart.label = è´ç©è½¦
+containers.circle.label = åç¹
+containers.vacation.label = åæ
+containers.gift.label = 礼ç©
+containers.food.label = é£å
+containers.fruit.label = æ°´æ
+containers.pet.label = å® ç©
+containers.tree.label = æ æ¨
+containers.chill.label = 墨é
diff --git a/browser/chrome/browser/preferences/content.dtd b/browser/chrome/browser/preferences/content.dtd
new file mode 100755
index 00000000000..6a4ed0b6ced
--- /dev/null
+++ b/browser/chrome/browser/preferences/content.dtd
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/preferences/cookies.dtd b/browser/chrome/browser/preferences/cookies.dtd
new file mode 100755
index 00000000000..5d668b57aad
--- /dev/null
+++ b/browser/chrome/browser/preferences/cookies.dtd
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/preferences/fonts.dtd b/browser/chrome/browser/preferences/fonts.dtd
new file mode 100755
index 00000000000..5a86484b72f
--- /dev/null
+++ b/browser/chrome/browser/preferences/fonts.dtd
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/preferences/languages.dtd b/browser/chrome/browser/preferences/languages.dtd
new file mode 100755
index 00000000000..3c0271347ab
--- /dev/null
+++ b/browser/chrome/browser/preferences/languages.dtd
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/preferences/main.dtd b/browser/chrome/browser/preferences/main.dtd
new file mode 100755
index 00000000000..b20a9d6013d
--- /dev/null
+++ b/browser/chrome/browser/preferences/main.dtd
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/preferences/permissions.dtd b/browser/chrome/browser/preferences/permissions.dtd
new file mode 100755
index 00000000000..455c293e741
--- /dev/null
+++ b/browser/chrome/browser/preferences/permissions.dtd
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/preferences/preferences.dtd b/browser/chrome/browser/preferences/preferences.dtd
new file mode 100755
index 00000000000..5475d5219b2
--- /dev/null
+++ b/browser/chrome/browser/preferences/preferences.dtd
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/preferences/preferences.properties b/browser/chrome/browser/preferences/preferences.properties
new file mode 100755
index 00000000000..3b43e81b321
--- /dev/null
+++ b/browser/chrome/browser/preferences/preferences.properties
@@ -0,0 +1,354 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#### Security
+
+# LOCALIZATION NOTE: phishBefore uses %S to represent the name of the provider
+# whose privacy policy must be accepted (for enabling
+# check-every-page-as-I-load-it phishing protection).
+phishBeforeText=é䏿¤é项æå³çæ¨åæå鿍æ¥ççç½é¡µå°åè³ %Sãè¥è¦ç»§ç»ï¼è¯·æ¥çå¹¶æ¥åå¦ä¸çæå¡æ¡æ¬¾ã
+
+#### Fonts
+
+labelDefaultFont=é»è®¤ï¼%Sï¼
+labelDefaultFontUnnamed=é»è®¤
+
+veryLargeMinimumFontTitle=è¾å¤§çæå°åä½å¤§å°
+veryLargeMinimumFontWarning=æ¨éæ©äºä¸ä¸ªé常大çæå°åå大å°ï¼è¶
è¿ 24 åç´ ï¼ãè¿å¯è½å¯¼è´æé¾æè
æ æ³ä½¿ç¨é常éè¦ç忝æ¬é¡µçé
置页é¢ã
+acceptVeryLargeMinimumFont=ç¡®å®ï¼ä¿åæçæ´æ¹
+
+#### Permissions Manager
+
+trackingprotectionpermissionstext2=æ¨å·²å¯¹ä¸åç½ç«åç¨è·è¸ªä¿æ¤åè½ã
+trackingprotectionpermissionstitle=ä¾å¤ - è·è¸ªä¿æ¤
+cookiepermissionstext=æ¨å¯ä»¥æå®å§ç»å
许æä¸å
许åªäºç½ç«ä½¿ç¨ Cookieã请è¾å
¥æè¦æå®ç宿´ç½åï¼éæ©â黿¢âãâå¨è¿æ¬¡æµè§å¨é´å
许âæâå
许âã
+cookiepermissionstitle=ä¾å¤ - Cookie
+cookiepermissionstext1=æ¨å¯ä»¥æå®å§ç»å
许æä¸å
许åªäºç½ç«ä½¿ç¨ Cookie åç½ç«æ°æ®ã请è¾å
¥æè¦æå®ç宿´ç½åï¼éæ©â黿¢âãâå¨è¿æ¬¡æµè§å¨é´å
许âæâå
许âã
+cookiepermissionstitle1=ä¾å¤ - Cookie åç½ç«æ°æ®
+addonspermissionstext=æ¨å¯ä»¥æå®åªäºç½ç«å¯ä»¥å®è£
éå ç»ä»¶ã请è¾å
¥æè¦æå®ç宿´ç½åï¼ç¶åç¹å»âå
许âã
+addons_permissions_title2=æç¹æ®æéçç½ç« - éå ç»ä»¶å®è£
+popuppermissionstext=æ¨å¯ä»¥æå®åªäºç½ç«å¯ä»¥æå¼å¼¹åºå¼çªå£ã请è¾å
¥æè¦æå®ç宿´ç½åï¼ç¶åç¹å»âå
许âã
+popuppermissionstitle2=æç¹æ®æéçç½ç« - å¼¹åºå¼çªå£
+notificationspermissionstext6=ä¸åç½ç«æ¾è¯·æ±åæ¨æ¨ä¼ ééç¥ãæ¨å¯éæ©å
许åªäºç½ç«ä¼ ééç¥ï¼è¿å¯ç¦æ¢è¯·æ±åæ¨ä¼ ééç¥ã
+notificationspermissionstitle2=设置 - éç¥æé
+notificationspermissionsdisablelabel=ç¦æ¢è¯·æ±åæ¨ä¼ ééç¥
+notificationspermissionsdisabledescription=ææå表å¤çç½ç«å°æ æ³è¯·æ±è·å¾ä¼ ééç¥çæéãç¦æ¢æ¤æéå¯è½ä¼å½±åæäºç½ç«çåè½ã
+locationpermissionstext2=ä¸åç½ç«æ¾è¯·æ±è·ç¥æ¨çä½ç½®ãæ¨å¯éæ©å
许åªäºç½ç«å¾è·ç¥çä½ç½®ï¼è¿å¯ç¦æ¢ç½ç«åæ¨è¯·æ±è·ç¥æ¨çä½ç½®ã
+locationpermissionstitle=设置 - ä½ç½®æé
+locationpermissionsdisablelabel=ç¦æ¢è¯·æ±è·ç¥æ¨çä½ç½®
+locationpermissionsdisabledescription=ææå表å¤çç½ç«å°æ æ³è¯·æ±è·ç¥æ¨çä½ç½®ãç¦æ¢æ¤æéå¯è½ä¼å½±åæäºç½ç«çåè½ã
+camerapermissionstext2=ä¸åç½ç«æ¾è¯·æ±ææ§æ¨çæåå¤´ãæ¨å¯éæ©å
许åªäºç½ç«ææ§æ¨çæå头ï¼è¿å¯ç¦æ¢ç½ç«åæ¨è¯·æ±ææ§æ¨çæå头ã
+camerapermissionstitle=设置 - æå头æé
+camerapermissionsdisablelabel=ç¦æ¢è¯·æ±ææ§æ¨çæå头
+camerapermissionsdisabledescription=ææå表å¤çç½ç«å°æ æ³è¯·æ±ææ§æ¨çæå头ãç¦æ¢æ¤æéå¯è½ä¼å½±åæäºç½ç«çåè½ã
+microphonepermissionstext2=ä¸åç½ç«æ¾è¯·æ±ææ§æ¨ç麦å
é£ãæ¨å¯éæ©å
许åªäºç½ç«ææ§æ¨ç麦å
é£ï¼è¿å¯ç¦æ¢ç½ç«åæ¨è¯·æ±ææ§æ¨ç麦å
é£ã
+microphonepermissionstitle=设置 - 麦å
飿é
+microphonepermissionsdisablelabel=ç¦æ¢è¯·æ±ææ§æ¨ç麦å
é£
+microphonepermissionsdisabledescription=ææå表å¤çç½ç«å°æ æ³è¯·æ±ææ§æ¨ç麦å
é£ãç¦æ¢æ¤æéå¯è½ä¼å½±åæäºç½ç«çåè½ã
+invalidURI=请è¾å
¥åæ³ç主æºå
+invalidURITitle=è¾å
¥äºéæ³ç主æºå
+savedLoginsExceptions_title=ä¾å¤ - å·²ä¿åçç»å½ä¿¡æ¯
+savedLoginsExceptions_desc3=ä¸åç½ç«çç»å½ä¿¡æ¯å°ä¸è¢«ä¿å
+
+# LOCALIZATION NOTE(pauseNotifications.label): %S is replaced with the
+# brandShortName of the application.
+pauseNotifications.label=æåéç¥ç´è³ %S éæ°å¯å¨
+pauseNotifications.accesskey=n
+
+#### Block List Manager
+
+blockliststext=æ¨å¯ä»¥éæ©ä¸ä¸ªå表ï¼Firefox å°ä¾æ¤è¿æ»¤å¯è½ä¼è·è¸ªæ¨ç½ä¸æ´»å¨çç½é¡µå
ç´ ã
+blockliststitle=æ¦æªå表
+
+# LOCALIZATION NOTE (mozNameTemplate): This template constructs the name of the
+# block list in the block lists dialog. It combines the list name and
+# description.
+# e.g. mozNameTemplate : "Standard (Recommended). This list does a pretty good job."
+# %1$S = list name (fooName), %2$S = list descriptive text (fooDesc)
+mozNameTemplate=%1$S %2$S
+# LOCALIZATION NOTE (mozstdName, etc.): These labels appear in the tracking
+# protection block lists dialog, mozNameTemplate is used to create the final
+# string. Note that in the future these two strings (name, desc) could be
+# displayed on two different lines.
+mozstdName=Disconnect.me æä¾çåºç¡ä¿æ¤åè¡¨ï¼æ¨èï¼ã
+mozstdDesc=å
许é¨åè·è¸ªè¡ä¸ºï¼åæ¶è®©ç½ç«åè½ä¿ææ£å¸¸ã
+mozfullName=Disconnect.me æä¾çä¸¥æ ¼å表ã
+mozfullDesc2=æ¦æªææå·²ç¥çè·è¸ªå¨ãæäºç½ç«å¯è½ä¼å¼å¸¸ã
+
+#### Master Password
+
+pw_change2empty_in_fips_mode=æ¨æ£å¤äº FIPS 模å¼ã该模å¼éè¦ä¸ä¸ªé空ç主å¯ç ã
+pw_change_failed_title=å¯ç ä¿®æ¹å¤±è´¥
+
+#### Fonts
+
+# LOCALIZATION NOTE: Next two strings are for language name representations with
+# and without the region.
+# e.g. languageRegionCodeFormat : "French/Canada [fr-ca]" languageCodeFormat : "French [fr]"
+# %1$S = language name, %2$S = region name, %3$S = language-region code
+languageRegionCodeFormat=%1$S/%2$S [%3$S]
+
+# LOCALIZATION NOTE: The string represents a localized locale name
+# followed by the BCP47 locale code.
+#
+# Example: "French (Canada) [fr-ca]"
+# %1$S = locale name, %2$S = locale code
+languageCodeFormat=%1$S [%2$S]
+
+#### Downloads
+
+desktopFolderName=æ¡é¢
+downloadsFolderName=ä¸è½½
+chooseDownloadFolderTitle=éæ©ä¸è½½æä»¶å¤¹ï¼
+
+#### Applications
+
+fileEnding=%S æä»¶
+saveFile=ä¿åæä»¶
+
+# LOCALIZATION NOTE (useApp, useDefault): %S = Application name
+useApp=ä½¿ç¨ %S
+useDefault=ä½¿ç¨ %S å¤çï¼é»è®¤ï¼
+
+useOtherApp=使ç¨å
¶ä»â¦
+fpTitleChooseApp=鿩婿åºç¨ç¨åº
+manageApp=åºç¨ç¨åºè¯¦ç»ä¿¡æ¯â¦
+webFeed=ç½ç«æ¶åç¹
+videoPodcastFeed=è§é¢æå®¢
+audioPodcastFeed=æå®¢
+alwaysAsk=æ»æ¯è¯¢é®
+portableDocumentFormat=便æºå¼ææ¡£æ ¼å¼ (PDF)
+
+# LOCALIZATION NOTE (usePluginIn):
+# %1$S = plugin name (for example "QuickTime Plugin-in 7.2")
+# %2$S = brandShortName from brand.properties (for example "Minefield")
+usePluginIn=ä½¿ç¨ %S ï¼å¨ %S ä¸ï¼
+
+# LOCALIZATION NOTE (previewInApp, addLiveBookmarksInApp): %S = brandShortName
+previewInApp=å¨ %S ä¸é¢è§
+addLiveBookmarksInApp=æ·»å 宿¶ä¹¦ç¾è³ %S
+
+# LOCALIZATION NOTE (typeDescriptionWithType):
+# %1$S = type description (for example "Portable Document Format")
+# %2$S = type (for example "application/pdf")
+typeDescriptionWithType=%S (%S)
+
+
+#### Cookie Viewer
+
+hostColon=主æºï¼
+domainColon=åï¼
+forSecureOnly=ä»
éå å¯è¿æ¥
+forAnyConnection=ä»»æç±»åçè¿æ¥
+expireAtEndOfSession=å¨è¿æ¬¡æµè§ç»ææ¶
+
+#### Permission labels
+
+can=å
许
+canAccessFirstParty=åªå
è®¸ç¬¬ä¸æ¹
+canSession=å¨è¿æ¬¡æµè§æé´å
许
+cannot=黿¢
+prompt=æ»æ¯è¯¢é®
+noCookieSelected=<æªéæ© Cookie>
+cookiesAll=以䏿¯å¨æ¨çè®¡ç®æºä¸åå¨ç Cookieï¼
+cookiesFiltered=以䏿¯å¹é
æ¨çæç´¢ç Cookieï¼
+
+# LOCALIZATION NOTE (removeAllCookies, removeAllShownCookies):
+# removeAllCookies and removeAllShownCookies are both used on the same one button,
+# never displayed together and can share the same accesskey.
+# When only partial cookies are shown as a result of keyword search,
+# removeAllShownCookies is displayed as button label.
+# removeAllCookies is displayed when no keyword search and all cookies are shown.
+removeAllCookies.label=å
¨é¨ç§»é¤
+removeAllCookies.accesskey=A
+removeAllShownCookies.label=ç§»é¤çéåºç项ç®
+removeAllShownCookies.accesskey=A
+
+# LOCALIZATION NOTE (removeSelectedCookies):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# If you need to display the number of selected elements in your language,
+# you can use #1 in your localization as a placeholder for the number.
+# For example this is the English string with numbers:
+# removeSelectedCookied=Remove #1 Selected;Remove #1 Selected
+removeSelectedCookies.label=ç§»é¤éä¸é¡¹ç®
+removeSelectedCookies.accesskey=R
+
+defaultUserContextLabel=æ
+
+####Preferences::Advanced::Network
+#LOCALIZATION NOTE: The next string is for the disk usage of the web content cache.
+# e.g., "Your web content cache is currently using 200 MB"
+# %1$S = size
+# %2$S = unit (MB, KB, etc.)
+actualDiskCacheSize=æ¨çç½ç»å
容ç¼åå½åå·²ä½¿ç¨ %1$S %2$S ç£ç空é´
+actualDiskCacheSizeCalculated=æ£å¨è®¡ç®ç½ç»å
容ç¼åç大å°â¦
+
+####Preferences::Advanced::Network
+#LOCALIZATION NOTE: The next string is for the disk usage of the application cache.
+# e.g., "Your application cache is currently using 200 MB"
+# %1$S = size
+# %2$S = unit (MB, KB, etc.)
+actualAppCacheSize=æ¨çåºç¨ç¨åºç¼åå½åå·²ä½¿ç¨ %1$S %2$S ç£ç空é´
+
+####Preferences::Advanced::Network
+#LOCALIZATION NOTE: The next string is for the total usage of site data.
+# e.g., "The total usage is currently using 200 MB"
+# %1$S = size
+# %2$S = unit (MB, KB, etc.)
+totalSiteDataSize=æ¨çç½ç«å卿°æ®ç®åå·²ä½¿ç¨ %1$S %2$S ç£ç空é´
+loadingSiteDataSize=æ£å¨è®¡ç®ç«ç¹æ°æ®ç大å°â¦
+clearSiteDataPromptTitle=æ¸
餿æ Cookie åç«ç¹æ°æ®
+clearSiteDataPromptText=éæ©âç«å³æ¸
é¤âå°æ¸
é¤ Firefox åå¨çææ Cookie åç«ç¹æ°æ®ãè¿å¯è½ä½¿æ¨éåºç½ç«çç»å½ï¼ä»¥åå é¤ç¦»çº¿çç½ç«å
容ã
+clearSiteDataNow=ç«å³æ¸
é¤
+persistent=æä¹
+
+#### Site Data Manager
+
+# LOCALIZATION NOTE (totalSiteDataSize2, siteUsage, siteUsagePersistent):
+# This is the total usage of site data, where we insert storage size and unit.
+# e.g., "The total usage is currently 200 MB"
+# %1$S = size
+# %2$S = unit (MB, KB, etc.)
+totalSiteDataSize2=æ¨å·²åå¨ç Cookieãç½ç«æ°æ®åç¼åç®åä½¿ç¨ %1$S %2$S ç£ç空é´ã
+siteUsage=%1$S %2$S
+siteUsagePersistent=%1$S %2$S (æä¹
)
+loadingSiteDataSize1=æ£å¨è®¡ç®ç½ç«æ°æ®åç¼åç大å°â¦
+
+acceptRemove=ç§»é¤
+# LOCALIZATION NOTE (siteDataSettings2.description): %S = brandShortName
+siteDataSettings2.description=ä¸åç½ç«å¨æ¨ççµèä¸åå¨äºç½ç«æ°æ®ã%S ä¼å°æ¥èªè¿äºç½ç«çæ°æ®ä¿çäºæç»æ§åå¨ç©ºé´ï¼å°æ¨ä¸»å¨å é¤ä¸ºæ¢ãä¹ä¼å¨éè¦ç£çç©ºé´æ¶ï¼èªå¨å é¤ä¿çäºéæç»æ§åå¨ç©ºé´çç½ç«æ°æ®ã
+# LOCALIZATION NOTE (siteDataSettings3.description): %S = brandShortName
+siteDataSettings3.description=以ä¸ç½ç«å¨æ¨çè®¡ç®æºä¸åå¨äº Cookie åç½ç«æ°æ®ã%S 伿°¸ä¹
åå¨ç½ç«çæ°æ®ï¼ç´è³æ¨å é¤ï¼æè
å¨éè¦ç©ºé´æ¶å é¤éæä¹
åå¨çç½ç«æ°æ®ã
+# LOCALIZATION NOTE (removeAllSiteData, removeAllSiteDataShown):
+# removeAllSiteData and removeAllSiteDataShown are both used on the same one button,
+# never displayed together and can share the same accesskey.
+# When only partial sites are shown as a result of keyword search,
+# removeAllShown is displayed as button label.
+# removeAll is displayed when no keyword search and all sites are shown.
+removeAllSiteData.label=å
¨é¨ç§»é¤
+removeAllSiteData.accesskey=e
+removeAllSiteDataShown.label=ç§»é¤çéåºç项ç®
+removeAllSiteDataShown.accesskey=e
+spaceAlert.learnMoreButton.label=详ç»äºè§£
+spaceAlert.learnMoreButton.accesskey=L
+spaceAlert.over5GB.prefButton.label=æå¼é¦é项
+spaceAlert.over5GB.prefButton.accesskey=O
+# LOCALIZATION NOTE (spaceAlert.over5GB.prefButtonWin.label): On Windows Preferences is called Options
+spaceAlert.over5GB.prefButtonWin.label=æå¼é项
+spaceAlert.over5GB.prefButtonWin.accesskey=O
+# LOCALIZATION NOTE (spaceAlert.over5GB.message): %S = brandShortName
+spaceAlert.over5GB.message=%S è¿è¡æéçç£ç空é´ä¸è¶³ãç½ç«å
容å¯è½æ æ³æ£å¸¸æ¾ç¤ºãæ¨å¯ä»¥å¨ é¦é项 > é«çº§ > ç«ç¹æ°æ® 䏿¸
é¤å·²åå¨çç«ç¹æ°æ®ã
+# LOCALIZATION NOTE (spaceAlert.over5GB.messageWin):
+# - On Windows Preferences is called Options
+# - %S = brandShortName
+spaceAlert.over5GB.messageWin=%S è¿è¡æéçç£ç空é´ä¸è¶³ãç½ç«å
容å¯è½æ æ³æ£å¸¸æ¾ç¤ºãæ¨å¯ä»¥å¨ é项 > é«çº§ > ç«ç¹æ°æ® 䏿¸
é¤å·²åå¨çç«ç¹æ°æ®ã
+# LOCALIZATION NOTE (spaceAlert.over5GB.message1): %S = brandShortName
+spaceAlert.over5GB.message1=%S è¿è¡æéçç£ç空é´ä¸è¶³ãç½ç«å
容å¯è½æ æ³æ£å¸¸æ¾ç¤ºãæ¨å¯ä»¥å¨ é¦é项 > éç§ä¸å®å
¨ > Cookie åç½ç«æ°æ® 䏿¸
é¤å·²åå¨çæ°æ®ã
+# LOCALIZATION NOTE (spaceAlert.over5GB.messageWin1):
+# - On Windows Preferences is called Options
+# - %S = brandShortName
+spaceAlert.over5GB.messageWin1=%S è¿è¡æéçç£ç空é´ä¸è¶³ãç½ç«å
容å¯è½æ æ³æ£å¸¸æ¾ç¤ºãæ¨å¯ä»¥å¨ é项 > éç§ä¸å®å
¨ > Cookie åç½ç«æ°æ® 䏿¸
é¤å·²åå¨çæ°æ®ã
+spaceAlert.under5GB.okButton.label=æç¥éäº
+spaceAlert.under5GB.okButton.accesskey=K
+# LOCALIZATION NOTE (spaceAlert.under5GB.message): %S = brandShortName
+spaceAlert.under5GB.message=%S è¿è¡æéçç£ç空é´ä¸è¶³ãç½ç«å
容å¯è½æ æ³æ£å¸¸æ¾ç¤ºãç¹å»â详ç»äºè§£âäºè§£å¦ä½ä¼åæ¨çç£ç空é´ï¼ä»èè·å¾æ´å¥½çæµè§ä½éªã
+
+# LOCALIZATION NOTE (featureEnableRequiresRestart, featureDisableRequiresRestart, restartTitle): %S = brandShortName
+featureEnableRequiresRestart=%S å¿
须鿰å¯å¨æè½å¯ç¨æ¤åè½ã
+featureDisableRequiresRestart=%S å¿
须鿰å¯å¨æè½ç¦ç¨æ¤åè½ã
+shouldRestartTitle=éæ°å¯å¨ %S
+okToRestartButton=ç«å³éå¯ %S
+revertNoRestartButton=è¿å
+
+restartNow=ç«å³éå¯
+restartLater=ç¨åéå¯
+
+disableContainersAlertTitle=å
³éææèº«ä»½æ ç¾é¡µï¼
+
+# LOCALIZATION NOTE (disableContainersMsg): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #S is the number of container tabs
+disableContainersMsg=妿æ¨ç°å¨ç¦ç¨èº«ä»½æ ç¾é¡µï¼å°æ #S ä¸ªå®¹å¨æ ç¾é¡µè¢«å
³éãæ¨ç¡®å®è¦ç¦ç¨èº«ä»½æ ç¾é¡µåï¼
+
+# LOCALIZATION NOTE (disableContainersOkButton): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #S is the number of container tabs
+disableContainersOkButton=å
³é #S 个身份æ ç¾é¡µ
+
+disableContainersButton2=ä¿æå¯ç¨
+
+removeContainerAlertTitle=ç§»é¤æ¤èº«ä»½ï¼
+
+# LOCALIZATION NOTE (removeContainerMsg): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #S is the number of container tabs
+removeContainerMsg=妿æ¨ç°å¨ç§»é¤æ¤èº«ä»½ï¼#S 个身份æ ç¾é¡µå°è¢«å
³éãæ¨ç¡®å®è¦ç§»é¤æ¤èº«ä»½åï¼
+
+removeContainerOkButton=ç§»é¤æ¤èº«ä»½
+removeContainerButton2=ä¸ç§»é¤æ¤èº«ä»½
+
+# Search Input
+# LOCALIZATION NOTE: Please keep the placeholder string shorter than around 30 characters to avoid truncation.
+searchInput.labelWin=å¨é项䏿¥æ¾
+searchInput.labelUnix=å¨é¦é项䏿¥æ¾
+
+# Search Results Pane
+# LOCALIZATION NOTE %S will be replaced by the word being searched
+searchResults.sorryMessageWin=徿±æï¼æ²¡ææ¾å°æå
³â%Sâçé项ã
+searchResults.sorryMessageUnix=徿±æï¼æ²¡ææ¾å°æå
³â%Sâçé¦é项ã
+# LOCALIZATION NOTE (searchResults.needHelp3): %S will be replaced with a link to the support page.
+# The label of the link is in searchResults.needHelpSupportLink .
+searchResults.needHelp3=éè¦å¸®å©ï¼è®¿é® %S
+# LOCALIZATION NOTE (searchResults.needHelpSupportLink): %S will be replaced with the browser name.
+searchResults.needHelpSupportLink=%S ææ¯æ¯æ
+
+# LOCALIZATION NOTE %S is the default value of the `dom.ipc.processCount` pref.
+defaultContentProcessCount=%S (é»è®¤)
+
+# LOCALIZATION NOTE (extensionControlled.homepage_override):
+# This string is shown to notify the user that their home page is being controlled by an extension.
+extensionControlled.homepage_override = æ¨çä¸»é¡µç±æ©å± %S æ§å¶ã
+
+# LOCALIZATION NOTE (extensionControlled.newTabURL):
+# This string is shown to notify the user that their new tab page is being controlled by an extension.
+extensionControlled.newTabURL = æ¨çæ°æ ç¾é¡µç±æ©å± %S æ§å¶ã
+
+# LOCALIZATION NOTE (extensionControlled.homepage_override2):
+# This string is shown to notify the user that their home page is being controlled by an extension.
+extensionControlled.homepage_override2 = æ©å± %S æ£å¨æ§å¶æ¨ç主页ã
+
+# LOCALIZATION NOTE (extensionControlled.newTabURL2):
+# This string is shown to notify the user that their new tab page is being controlled by an extension.
+extensionControlled.newTabURL2 = æ©å± %S æ£å¨æ§å¶æ¨çæ°æ ç¾é¡µã
+
+# LOCALIZATION NOTE (extensionControlled.defaultSearch):
+# This string is shown to notify the user that the default search engine is being controlled
+# by an extension. %S is the icon and name of the extension.
+extensionControlled.defaultSearch = æ¨çé»è®¤æç´¢å¼æç±æ©å± %S 设置ã
+
+# LOCALIZATION NOTE (extensionControlled.privacy.containers):
+# This string is shown to notify the user that Container Tabs are being enabled by an extension
+# %S is the container addon controlling it
+extensionControlled.privacy.containers = æ©å± %S éè¦å¯ç¨èº«ä»½æ ç¾é¡µåè½æè½ä½¿ç¨ã
+
+# LOCALIZATION NOTE (extensionControlled.websites.trackingProtectionMode):
+# This string is shown to notify the user that their tracking protection preferences are being controlled by an extension.
+extensionControlled.websites.trackingProtectionMode = è·è¸ªä¿æ¤åè½ç±æ©å± %S æ§å¶ã
+
+# LOCALIZATION NOTE (extensionControlled.proxyConfig):
+# This string is shown to notify the user that their proxy configuration preferences are being controlled by an extension.
+# %1$S is the icon and name of the extension.
+# %2$S is the brandShortName from brand.properties (for example "Nightly")
+extensionControlled.proxyConfig = æ©å± %1$S æ£å¨æ§å¶ %2$S å¦ä½è¿æ¥äºèç½ã
+
+# LOCALIZATION NOTE (extensionControlled.enable):
+# %1$S is replaced with the icon for the add-ons menu.
+# %2$S is replaced with the icon for the toolbar menu.
+# This string is shown to notify the user how to enable an extension that they disabled.
+extensionControlled.enable = è¦å¯ç¨è¯¥æ©å±ï¼è¯·ä» %2$S èåæå¼ %1$S éå ç»ä»¶é¡µé¢ã
+
+# LOCALIZATION NOTE (connectionDesc.label):
+# %S is the brandShortName from brand.properties (for example "Nightly")
+connectionDesc.label = é
ç½® %S å¦ä½è¿æ¥äºèç½ã
diff --git a/browser/chrome/browser/preferences/privacy.dtd b/browser/chrome/browser/preferences/privacy.dtd
new file mode 100755
index 00000000000..0d1cfe1db8c
--- /dev/null
+++ b/browser/chrome/browser/preferences/privacy.dtd
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/preferences/search.dtd b/browser/chrome/browser/preferences/search.dtd
new file mode 100644
index 00000000000..22738b01f5e
--- /dev/null
+++ b/browser/chrome/browser/preferences/search.dtd
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/preferences/security.dtd b/browser/chrome/browser/preferences/security.dtd
new file mode 100755
index 00000000000..9787c61617a
--- /dev/null
+++ b/browser/chrome/browser/preferences/security.dtd
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/preferences/selectBookmark.dtd b/browser/chrome/browser/preferences/selectBookmark.dtd
new file mode 100755
index 00000000000..1eaeb4b9f0a
--- /dev/null
+++ b/browser/chrome/browser/preferences/selectBookmark.dtd
@@ -0,0 +1,9 @@
+
+
+
+
+
diff --git a/browser/chrome/browser/preferences/siteDataSettings.dtd b/browser/chrome/browser/preferences/siteDataSettings.dtd
new file mode 100644
index 00000000000..84cddfbc797
--- /dev/null
+++ b/browser/chrome/browser/preferences/siteDataSettings.dtd
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/preferences/sync.dtd b/browser/chrome/browser/preferences/sync.dtd
new file mode 100755
index 00000000000..28816fae6e5
--- /dev/null
+++ b/browser/chrome/browser/preferences/sync.dtd
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/preferences/tabs.dtd b/browser/chrome/browser/preferences/tabs.dtd
new file mode 100755
index 00000000000..c710c4a3c86
--- /dev/null
+++ b/browser/chrome/browser/preferences/tabs.dtd
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/preferences/translation.dtd b/browser/chrome/browser/preferences/translation.dtd
new file mode 100755
index 00000000000..9dce3700851
--- /dev/null
+++ b/browser/chrome/browser/preferences/translation.dtd
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/quitDialog.properties b/browser/chrome/browser/quitDialog.properties
new file mode 100755
index 00000000000..9d5bb26d046
--- /dev/null
+++ b/browser/chrome/browser/quitDialog.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/.
+
+quitDialogTitle=éåº %S
+
+quitTitle=éåº (&Q)
+cancelTitle=åæ¶ (&C)
+saveTitle=ä¿åå¹¶éåº (&S)
+neverAsk2=ä¸å询é®(&D)
+message=æ¨æ³å
许 %S ä¿åæ¨çæ ç¾é¡µåçªå£å¹¶å¨ä¸æ¬¡å¯å¨æ¶æå¼å®ä»¬åï¼
+messageNoWindows=æ¨æ³å
许 %S ä¿åæ¨çæ ç¾é¡µå¹¶å¨ä¸æ¬¡å¯å¨æ¶æå¼å®ä»¬åï¼
+messagePrivate=æ¨å¤å¨éç§æµè§æ¨¡å¼ãç°å¨éåº %S å°æ¾å¼æ¨çææå·²æå¼çæ ç¾é¡µåçªå£ã
diff --git a/browser/chrome/browser/safeMode.dtd b/browser/chrome/browser/safeMode.dtd
new file mode 100755
index 00000000000..0aa74793acb
--- /dev/null
+++ b/browser/chrome/browser/safeMode.dtd
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/safebrowsing/phishing-afterload-warning-message.dtd b/browser/chrome/browser/safebrowsing/phishing-afterload-warning-message.dtd
new file mode 100755
index 00000000000..8b60fef0f1e
--- /dev/null
+++ b/browser/chrome/browser/safebrowsing/phishing-afterload-warning-message.dtd
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+ æä¾ã">
+
+
+
+
+
+
+
+ 被举æ¥å«ææ¶æè½¯ä»¶ãæ¨å¯ä»¥åæ ä¾¦æµæè¯¯æå¿½ç¥æ¤é£é©å¹¶ç»§ç»åå¾è¿ä¸ªä¸å®å
¨çç½ç«ã">
+
+ 被举æ¥å«ææ¶æè½¯ä»¶ãæ¨å¯ä»¥åæ ä¾¦æµæè¯¯ã">
+
+StopBadware.org å¯ä»¥è¯¦ç»äºè§£æå®³çç½é¡µå
容ï¼å
æ¬ç
æ¯åå
¶ä»æ¶æè½¯ä»¶ï¼ï¼ç½ç«ä¸è¿ä»ç»äºä¿æ¤æ¨ççµèçå°ç¥è¯ãå° support.mozilla.org å¯ä»¥è¯¦ç»äºè§£ &brandShortName; é²èé鱼忶æè½¯ä»¶çæºå¶ã">
+
+
+
+
+
+
+
+ 被举æ¥å«ææå®³è½¯ä»¶ãæ¨å¯ä»¥å¿½ç¥æ¤é£é©å¹¶ç»§ç»åå¾è¿ä¸ªä¸å®å
¨çç½ç«ã">
+
+ 被举æ¥å«ææå®³è½¯ä»¶ã">
+
+æµæ°è½¯ä»¶æ¿ç å¯ä»¥è¯¦ç»äºè§£æå®³åæµæ°ç软件ãå° support.mozilla.org å¯ä»¥è¯¦ç»äºè§£ &brandShortName; é²èé鱼忶æè½¯ä»¶çæºå¶ã">
+
+
+
+
+
+
+ 被举æ¥ä¸ºè¯éªç½ç«ãæ¨å¯ä»¥åæ ä¾¦æµæè¯¯ï¼æå¿½ç¥æ¤é£é©å¹¶ç»§ç»åå¾è¿ä¸ªä¸å®å
¨çç½ç«ã">
+
+ 被举æ¥ä¸ºè¯éªç½ç«ãæ¨å¯ä»¥åæ ä¾¦æµæè¯¯ã">
+
+www.antiphishing.org å¯ä»¥è¯¦ç»äºè§£è¯éªç½ç«åéé±¼ãå° support.mozilla.org å¯ä»¥è¯¦ç»äºè§£ &brandShortName; é²èé鱼忶æè½¯ä»¶çæºå¶ã">
+
+
+
+
+
+
+ 被举æ¥å«ææ½å¨æå®³çè½¯ä»¶ãæ¨å¯ä»¥å¿½ç¥æ¤é£é©å¹¶ç»§ç»åå¾è¿ä¸ªä¸å®å
¨çç½ç«ã">
+
+ 被举æ¥å«ææ½å¨æå®³ç软件ã">
+
+support.mozilla.org 详ç»äºè§£ &brandShortName; çéé±¼ç½ç«ä¸æ¶æç½ç«é²æ¤åè½ã">
diff --git a/browser/chrome/browser/safebrowsing/report-phishing.dtd b/browser/chrome/browser/safebrowsing/report-phishing.dtd
new file mode 100755
index 00000000000..1f28bf0ec76
--- /dev/null
+++ b/browser/chrome/browser/safebrowsing/report-phishing.dtd
@@ -0,0 +1,13 @@
+
+
+
+
+
+
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/sanitize.dtd b/browser/chrome/browser/sanitize.dtd
new file mode 100755
index 00000000000..d152bf2efeb
--- /dev/null
+++ b/browser/chrome/browser/sanitize.dtd
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/search.properties b/browser/chrome/browser/search.properties
new file mode 100755
index 00000000000..bdc42942558
--- /dev/null
+++ b/browser/chrome/browser/search.properties
@@ -0,0 +1,73 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+searchtip=ä½¿ç¨ %S æç´¢
+
+# LOCALIZATION NOTE (searchPlaceholder): this is shown in the searchbox when
+# the user hasn't typed anything yet.
+searchPlaceholder=æç´¢
+
+# LOCALIZATION NOTE (searchHeader): this is displayed at the top of the panel
+# showing search suggestions.
+# %S is replaced with the name of the current default search engine.
+searchHeader=ç¨ %S æç´¢
+
+# LOCALIZATION NOTE (cmd_pasteAndSearch): "Search" is a verb, this is the
+# search bar equivalent to the url bar's "Paste & Go"
+cmd_pasteAndSearch=ç²è´´å¹¶æç´¢
+
+cmd_clearHistory=æ¸
空æç´¢åå²
+cmd_clearHistory_accesskey=H
+
+cmd_showSuggestions=æ¾ç¤ºå»ºè®®
+cmd_showSuggestions_accesskey=S
+
+# LOCALIZATION NOTE (cmd_addFoundEngine): %S is replaced by the name of
+# a search engine offered by a web page. Each engine is displayed as a
+# menuitem at the bottom of the search panel.
+cmd_addFoundEngine=æ·»å "%S"
+# LOCALIZATION NOTE (cmd_addFoundEngineMenu): When more than 5 engines
+# are offered by a web page, instead of listing all of them in the
+# search panel using the cmd_addFoundEngine string, they will be
+# grouped in a submenu using cmd_addFoundEngineMenu as a label.
+cmd_addFoundEngineMenu=æ·»å æç´¢å¼æ
+
+# LOCALIZATION NOTE (searchForSomethingWith):
+# This string is used to build the header above the list of one-click
+# search providers: "Search for with:"
+# NB: please leave the and its class exactly as it is in English.
+searchForSomethingWith=ç¨ä»¥ä¸çå·¥å
·å¯»æ¾ ï¼
+
+searchAddFoundEngine2=æ·»å æç´¢å¼æ
+searchAddedFoundEngine2=æç´¢å¼æå·²æ·»å
+
+# LOCALIZATION NOTE (searchForSomethingWith2):
+# This string is used to build the header above the list of one-click
+# search providers: "Search for with:"
+searchForSomethingWith2=æç´¢ %Sï¼ä½¿ç¨ï¼
+
+# LOCALIZATION NOTE (searchWithHeader):
+# The wording of this string should be as close as possible to
+# searchForSomethingWith2. This string will be used when the user
+# has not typed anything.
+searchWithHeader=æç´¢å¼æï¼
+
+# LOCALIZATION NOTE (searchSettings):
+# This is the label for the button that opens Search preferences.
+searchSettings=æ´æ¹æç´¢è®¾ç½®
+
+# LOCALIZATION NOTE (searchReset.intro):
+# %S is the name of the user's current search engine.
+searchReset.intro=æ¨æ³ç¨ %S æç´¢åï¼
+# LOCALIZATION NOTE (searchReset.message):
+# %1$S is brandShortName. %2$S is the name of the user's current search engine.
+searchReset.message=æ¨çæç´¢å¼æä¼¼ä¹è¢«ä¿®æ¹äºã%1$S åºè¯¥å° %2$S 设为é»è®¤æç´¢å¼æåï¼
+# LOCALIZATION NOTE (searchReset.doNotResetButton):
+# This string is used as a button label in a notification popup.
+searchReset.doNotResetButton=谢谢ï¼ä¸ç¨
+# LOCALIZATION NOTE (searchReset.resetButton):
+# %S is the name of the user's current search engine. This string is used as a
+# button label in a notification popup, where space is limited. If necessary,
+# translate simply as "Yes, Use %S" (e.g., "Yes, use Google")
+searchReset.resetButton=好çï¼ä½¿ç¨ %S æç´¢
diff --git a/browser/chrome/browser/setDesktopBackground.dtd b/browser/chrome/browser/setDesktopBackground.dtd
new file mode 100755
index 00000000000..b778787723d
--- /dev/null
+++ b/browser/chrome/browser/setDesktopBackground.dtd
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/shellservice.properties b/browser/chrome/browser/shellservice.properties
new file mode 100755
index 00000000000..0972450372c
--- /dev/null
+++ b/browser/chrome/browser/shellservice.properties
@@ -0,0 +1,31 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+optionsLabel=%S é项
+safeModeLabel=%S å®å
¨æ¨¡å¼ (&S)
+
+# LOCALIZATION NOTE (setDefaultBrowserMessage2, setDefaultBrowserConfirm.label):
+# %S will be replaced by brandShortName
+setDefaultBrowserMessage2 = å° %S 设为æ¨çé»è®¤æµè§å¨ï¼äº«ç¨å®æ´åè½
+setDefaultBrowserConfirm.label = å° %S 设为æçé»è®¤æµè§å¨
+setDefaultBrowserConfirm.accesskey = U
+setDefaultBrowserOptions.label = é项
+setDefaultBrowserOptions.accesskey = O
+setDefaultBrowserNotNow.label = ææ¶ä¸è¦
+setDefaultBrowserNotNow.accesskey = N
+setDefaultBrowserNever.label = ä¸å询é®
+setDefaultBrowserNever.accesskey = D
+
+# 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..9a874b7121e
--- /dev/null
+++ b/browser/chrome/browser/sitePermissions.properties
@@ -0,0 +1,47 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (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 = æ»æ¯è¯¢é®
+
+state.current.hide = éèæç¤º
+
+# 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 = 黿¢
+
+permission.cookie.label = 设置 Cookie
+permission.desktop-notification2.label = æ¥æ¶éç¥
+permission.image.label = è½½å
¥å¾å
+permission.camera.label = ä½¿ç¨æå头
+permission.microphone.label = 使ç¨éº¦å
é£
+permission.screen.label = å
±äº«å±å¹
+permission.install.label = å®è£
éå ç»ä»¶
+permission.popup.label = æå¼å¼¹åºå¼çªå£
+permission.geo.label = è·åæ¨çä½ç½®
+permission.shortcuts.label = è¦çé®çå¿«æ·é®
+permission.focus-tab-by-prompt.label = 忢尿¤æ ç¾é¡µ
+permission.persistent-storage.label = 卿ä¹
åå¨ä¸å卿°æ®
+permission.canvas.label = è·å Canvas æ°æ®
+permission.flash-plugin.label = è¿è¡ Adobe Flash
+permission.midi.label = è®¿é® MIDI 设å¤
+permission.midi-sysex.label = è®¿é® MIDI 设å¤ï¼æ SysEx æ¯æï¼
\ No newline at end of file
diff --git a/browser/chrome/browser/syncBrand.dtd b/browser/chrome/browser/syncBrand.dtd
new file mode 100755
index 00000000000..bfe131c2fce
--- /dev/null
+++ b/browser/chrome/browser/syncBrand.dtd
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/browser/chrome/browser/syncSetup.properties b/browser/chrome/browser/syncSetup.properties
new file mode 100755
index 00000000000..3238398bd63
--- /dev/null
+++ b/browser/chrome/browser/syncSetup.properties
@@ -0,0 +1,22 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Several other strings are used (via Weave.Status.login), but they come from
+# /services/sync
+
+# Firefox Accounts based setup.
+continue.label = ç»§ç»
+
+# LOCALIZATION NOTE (disconnect.label, disconnect.verify.title, disconnect.verify.bodyHeading, disconnect.verify.bodyText):
+# These strings are used in the confirmation dialog shown when the user hits the disconnect button
+# LOCALIZATION NOTE (disconnect.label): This is the label for the disconnect button
+disconnect.label = æå¼è¿æ¥
+disconnect.verify.title = æå¼è¿æ¥
+disconnect.verify.bodyHeading = æå¼åæ¥ï¼
+disconnect.verify.bodyText = æ¨çæµè§æ°æ®å°ç»§ç»ä¿çå¨è¿å°è®¡ç®æºï¼ä½ä¸ä¼å䏿¨çè´¦æ·åæ¥ã
+
+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..a0461cfb578
--- /dev/null
+++ b/browser/chrome/browser/tabbrowser.properties
@@ -0,0 +1,53 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+tabs.restoreLastTabs=æ¢å¤ä¸æ¬¡çæ ç¾é¡µ
+tabs.emptyTabTitle=æ°æ ç¾é¡µ
+# LOCALIZATION NOTE (tabs.emptyPrivateTabTitle)
+# Please ensure this exactly matches aboutPrivateBrowsing.dtd's window title (aboutPrivateBrowsing.title).
+tabs.emptyPrivateTabTitle=éç§æµè§
+tabs.closeTab=å
³éæ ç¾é¡µ
+tabs.close=å
³é
+tabs.closeWarningTitle=确认å
³é
+# LOCALIZATION NOTE (tabs.closeWarningMultiple):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# The singular form is not considered since this string is used only for
+# multiple tabs.
+tabs.closeWarningMultiple=æ¨å³å°å
³é #1 个æ ç¾é¡µãæ¨ç¡®å®è¦ç»§ç»åï¼
+tabs.closeButtonMultiple=å
³éè¿äºæ ç¾é¡µ
+tabs.closeWarningPromptMe=彿å°è¯å
³éå¤ä¸ªæ ç¾é¡µæ¶ååºè¦å
+
+tabs.closeTab.tooltip=å
³éæ ç¾é¡µ
+# LOCALIZATION NOTE (tabs.closeSelectedTab.tooltip):
+# %S is the keyboard shortcut for closing the current tab
+tabs.closeSelectedTab.tooltip=å
³éæ ç¾é¡µ (%S)
+# LOCALIZATION NOTE (tabs.muteAudio.tooltip):
+# %S is the keyboard shortcut for "Mute tab"
+tabs.muteAudio.tooltip=æ ç¾é¡µéé³ (%S)
+# LOCALIZATION NOTE (tabs.unmuteAudio.tooltip):
+# %S is the keyboard shortcut for "Unmute tab"
+tabs.unmuteAudio.tooltip=è§£é¤æ ç¾é¡µéé³ (%S)
+tabs.muteAudio.background.tooltip=æ ç¾é¡µéé³
+tabs.unmuteAudio.background.tooltip=è§£é¤æ ç¾é¡µéé³
+
+tabs.unblockAudio.tooltip=ææ¾æ ç¾é¡µ
+
+# LOCALIZATION NOTE (tabs.allowTabFocusByPromptForSite):
+# %S is the hostname of the site where dialogs are allowed to switch tabs
+tabs.allowTabFocusByPromptForSite=å
许æ¥èª %S çå¯¹è¯æ¡å°æ¨å¸¦å¾æ ç¾é¡µ
+
+# 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 ç¼æ
¢æ¶è¦åæ
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..6de5f7e573d
--- /dev/null
+++ b/browser/chrome/browser/translation.dtd
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/translation.properties b/browser/chrome/browser/translation.properties
new file mode 100755
index 00000000000..2a9a3c5d30d
--- /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 global/languageNames.properties 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..8b3018a74a3
--- /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..9ff16f8e35b
--- /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..6515789a73e
--- /dev/null
+++ b/browser/chrome/overrides/appstrings.properties
@@ -0,0 +1,43 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+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=æ¤é¡µé¢å
å«çå
容å®å
¨çç¥ç¦æ¢å®ä»¥è¯¥ç§æ¹å¼å è½½ã
+corruptedContentErrorv2=å¨ç½ç« %S éå°ä¸ä¸ªæ æ³ä¿®å¤çç½ç»åè®®è¿è§ã
+remoteXUL=æ¤é¡µé¢ä½¿ç¨äºä¸æ¯æçææ¯ï¼Firefox é»è®¤ä¸åå¯ç¨è¯¥ææ¯ã
+## LOCALIZATION NOTE (sslv3Used) - Do not translate "%S".
+sslv3Used=Firefox æ æ³ä¿è¯æ¨å¨ %S ä¸çæ°æ®å®å
¨æ§ï¼å 为å®ä½¿ç¨ SSLv3ï¼ä¸ä¸ªç®åå®å
¨æ§æ¬ ä½³çå®å
¨åè®®ã
+inadequateSecurityError=该ç½ç«å°è¯ååçå®å
¨çº§å«ä¸è¶³ã
+blockedByPolicy=æ¨çç»ç»å·²å°éæ¤é¡µé¢æç½ç«ã
diff --git a/browser/chrome/overrides/netError.dtd b/browser/chrome/overrides/netError.dtd
new file mode 100755
index 00000000000..642bf07002c
--- /dev/null
+++ b/browser/chrome/overrides/netError.dtd
@@ -0,0 +1,161 @@
+
+
+
+%brandDTD;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+å¦æç¡®å®æ¤ç½åæ£ç¡®ï¼æ¨å¯ä»¥å°è¯ï¼
+
+ - è¿ä¼å¿åéè¯ã
+ - æ£æ¥æ¨çç½ç»è¿æ¥æ¯å¦æ£å¸¸ã
+ - 妿æ¨é¨ç½²æç½ç»é²ç«å¢ï¼è¯·æ£æ¥ &brandShortName; æ¯å¦å·²è¢«ææè®¿é®ç½ç»ã
+
+">
+
+
+
+è¯·æ£æ¥æä»¶åæ¯å¦å¤§å°åè¾éï¼æè
æå
¶ä»è¾å
¥é误ã
+è¯·æ£æ¥æä»¶æ¯å¦å·²è¢«ç§»å¨ï¼éå½åæå é¤ã
+">
+
+
+
+ æä»¶å¯è½å·²è¢«å é¤ãç§»å¨ï¼æè
å æä»¶æéé®é¢è¢«æç»è®¿é®ã
+
+">
+
+
+&brandShortName; å æäºä¸æåå æ æ³è½½å
¥æ¤é¡µé¢ã
">
+
+
+æ¨å¿
é¡»å
ç»å½æ¤ç½ç»æè½è®¿é®äºèç½ã">
+
+
+
+
+
+
+
+
+
+
+
+æ¨è¯·æ±çææ¡£å·²æ æ³å¨ &brandShortName; çç¼å䏿¾å°ã- åºäºå®å
¨èèï¼&brandShortName; ä¸ä¼èªå¨éæ°è·åææææ¡£ã
- æ¨å¯ä»¥ç¹å»âéè¯âæ¥éæ°è¯·æ±ä»ç½ç«è·åè¯¥ææ¡£ã
">
+
+
+
+
+ 请æâéè¯â忢å°å¨çº¿æ¨¡å¼å¹¶éæ°è½½å
¥æ¤é¡µé¢ã
+">
+
+
+
+ å»ºè®®åæ¤ç½ç«ç管çååé¦è¿ä¸ªé®é¢ã">
+
+
+
+ å»ºè®®åæ¤ç½ç«ç管çååé¦è¿ä¸ªé®é¢ã ">
+
+
+
+
+
+
+
+
+
+æ¨å¯è½éè¦å®è£
å
¶ä»è½¯ä»¶æè½æå¼æ¤ç½åã
+">
+
+
+è¯·æ£æ¥æµè§å¨ç代çæå¡å¨è®¾ç½®æ¯å¦æ£ç¡®ã请èç³»æ¨çç½ç»ç®¡çå以确认代çæå¡å¨å·¥ä½æ£å¸¸ã">
+
+
+è¯·æ£æ¥æµè§å¨ç代çæå¡å¨è®¾ç½®æ¯å¦æ£ç¡®ãè¯·æ£æ¥ç¡®è®¤æ¨çè®¡ç®æºè½æ£å¸¸è¿ä¸ç½ã妿æ¨çè®¡ç®æºæç½ç»åå°é²ç«å¢æè
代çæå¡å¨çä¿æ¤ï¼è¯·ç¡®è®¤ &brandShortName; 已被ææè®¿é®ç½ç»ã">
+
+
+ææ¶åç¦ç¨ææç»æ¥å Cookie ä¼å¯¼è´æ¤é®é¢ã">
+
+
+
+è¯·æ£æ¥æ¨çç³»ç»æ¯å¦å®è£
äºä¸ªäººå®å
¨ç®¡çå¨ï¼PSMï¼ã
+è¿å¯è½æ¯ç±æå¡å¨ç«¯çéæ åé
ç½®æè´ã
+">
+
+
+
+ç±äºä¸è½éªè¯ææ¶å°çæ°æ®æ¯å¦å¯ä¿¡ï¼æ æ³æ¾ç¤ºæ¨æ³è¦æ¥çç页é¢ã
+å»ºè®®åæ¤ç½ç«ç管çååé¦è¿ä¸ªé®é¢ã
+">
+
+
+
+ ç管çåæ²¡ææ£ç¡®é
置好æ¤ç½ç«ã为é¿å
æ¨çä¿¡æ¯å¤±çªï¼&brandShortName; å¹¶æªä¸æ¤ç½ç«å»ºç«è¿æ¥ã">
+
+
+æ¤ç«ç¹ææ¶æ æ³ä½¿ç¨æè
太è¿å¿ç¢ã请è¿å åéååè¯ã
+å¦ææ¨æ æ³è½½å
¥ä»»ä½ç½é¡µï¼è¯·æ£æ¥æ¨è®¡ç®æºçç½ç»è¿æ¥ç¶æã
+妿æ¨çè®¡ç®æºæç½ç»åå°é²ç«å¢æè
代çæå¡å¨çä¿æ¤ï¼è¯·ç¡®è®¤ &brandShortName; 已被ææè®¿é®ç½ç»ã
+">
+
+
+&brandShortName; å·²ä¾ç
§è¯¥é¡µé¢çå
容å®å
¨çç¥é»æ¢äºå®ä»¥è¿ç§æ¹å¼è½½å
¥ã">
+
+
+ç±äºæ£æµå°å¨æ°æ®ä¼ è¾è¿ç¨ä¸åå¨éè¯¯ï¼æ æ³æ¾ç¤ºæ¨æ£è¦æ¥çç页é¢ã- å»ºè®®åæ¤ç½ç«ç管çååé¦è¿ä¸ªé®é¢ã
">
+
+
+
+
+
+
+
+
+- å»ºè®®åæ¤ç½ç«ç管çååé¦è¿ä¸ªé®é¢ã
">
+
+
+
+
+
+
+æ¨çç³»ç»æ¶é´ä¼¼ä¹ä¸æ£ç¡®ï¼å æ¤ &brandShortName; æ æ³ä¸ 建ç«å®å
¨è¿æ¥ã æ¨çè®¡ç®æºæ¶é´ç®å被设置为 ï¼ä½æ£ç¡®çæ¶é´åºæ¯ ãè¯·æ´æ£æ¨çæ¥æåæ¶é´è®¾ç½®æ¥ä¿®å¤æ¤é®é¢ã
">
+æ¨çç³»ç»æ¶é´ä¼¼ä¹ä¸æ£ç¡®ï¼å æ¤ &brandShortName; æ æ³ä¸ 建ç«å®å
¨è¿æ¥ã æ¨çè®¡ç®æºæ¶é´ç®å被设置为 ãè¯·æ´æ£æ¨çæ¥æåæ¶é´è®¾ç½®æ¥ä¿®å¤æ¤é®é¢ã
">
+
+
+
+
+
+
+
+ 使ç¨äºè¿æ¶çå®å
¨ææ¯ï¼è¾å®¹æéåæ»å»ãæ»å»è
å¯ä»¥è½»æçªåæ¨çä¿¡æ¯ã该ç½ç«ç管çåä¿®æ£æå¡å¨åæ¨æè½è®¿é®è¯¥ç½ç«ãé误代ç ï¼NS_ERROR_NET_INADEQUATE_SECURITY
">
+
+
+
+
+
diff --git a/browser/chrome/overrides/settingsChange.dtd b/browser/chrome/overrides/settingsChange.dtd
new file mode 100755
index 00000000000..02a8ceb2620
--- /dev/null
+++ b/browser/chrome/overrides/settingsChange.dtd
@@ -0,0 +1,7 @@
+
+
+
+ åºç¨ç¨åº é项å¡ä¸ä¿®æ¹ç¸å
³è®¾ç½®ã">
+ åºç¨ç¨åº é项å¡ä¸ä¿®æ¹ç¸å
³è®¾ç½®ã">
diff --git a/browser/crashreporter/crashreporter-override.ini b/browser/crashreporter/crashreporter-override.ini
new file mode 100755
index 00000000000..a4513ec8b85
--- /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/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..cd679046b07
--- /dev/null
+++ b/browser/extensions/formautofill/formautofill.properties
@@ -0,0 +1,141 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 (autofillSecurityOptionsLink, autofillSecurityOptionsLinkOSX): These strings are used
+# in the doorhanger for saving credit card info. The link leads users to Form Autofill browser preferences.
+autofillSecurityOptionsLink = 表åèªå¨å¡«åä¸å®å
¨é项
+autofillSecurityOptionsLinkOSX = 表åèªå¨å¡«åä¸å®å
¨å好设置
+# 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 ( (autocompleteFooterOptionShort, autocompleteFooterOptionOSXShort): Used as a label for the button,
+# displayed at the bottom of the dropdown suggestion, to open Form Autofill browser preferences.
+autocompleteFooterOptionShort = æ´å¤é项
+autocompleteFooterOptionOSXShort = å好设置
+# 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 = æ¸
é¤èªå¨å¡«å表å
+
+# 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 = å·²ä¿åçä¿¡ç¨å¡â¦
+
+# 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 = ä¿¡ç¨å¡
+showCreditCardsBtnLabel = æ¾ç¤ºä¿¡ç¨å¡
+hideCreditCardsBtnLabel = éèä¿¡ç¨å¡
+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 = è¡éå°å
+city = åå¸
+province = ç
+state = å·
+postalCode = 鮿¿ç¼ç
+zip = Zip ç¼ç
+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 = å¡å·
+nameOnCard = å¡ä¸åç§°
+cardExpires = å°ææ¥
+billingAddress = è´¦åå°å
diff --git a/browser/extensions/onboarding/onboarding.properties b/browser/extensions/onboarding/onboarding.properties
new file mode 100644
index 00000000000..0dccf93ddca
--- /dev/null
+++ b/browser/extensions/onboarding/onboarding.properties
@@ -0,0 +1,126 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+# LOCALIZATION NOTE(onboarding.overlay-title2): This string will be used in the overlay title.
+onboarding.overlay-title2=å¼å§ä½¿ç¨
+onboarding.skip-tour-button-label=è·³è¿å¯¼è§
+#LOCALIZATION NOTE(onboarding.button.learnMore): this string is used as a button label, displayed near the message, and shared across all the onboarding notifications.
+onboarding.button.learnMore=详ç»äºè§£
+# LOCALIZATION NOTE(onboarding.overlay-icon-tooltip2): This string will be used
+# to show the tooltip alongside the notification icon in the overlay tour. %S is
+# brandShortName. The tooltip is designed to show in two lines. Please use \n to
+# do appropriate line breaking.
+onboarding.overlay-icon-tooltip2=ç¬¬ä¸æ¬¡ç¨ %Sï¼\nä¸èµ·æ¥ä¸æå§ã
+# LOCALIZATION NOTE(onboarding.overlay-icon-tooltip-updated2): %S is
+# brandShortName. The tooltip is designed to show in two lines. Please use \n to
+# do appropriate line breaking.
+onboarding.overlay-icon-tooltip-updated2=å´æ°ç %S æ¥äºã\nççæä»ä¹å¥½ç¨åè½ï¼
+# LOCALIZATION NOTE(onboarding.overlay-close-button-tooltip): The overlay close button is an icon button. This tooltip would be shown when mousing hovering on the button.
+onboarding.overlay-close-button-tooltip=å
³é
+onboarding.notification-icon-tooltip-updated=ççæ°çæä»ä¹åå
+# LOCALIZATION NOTE(onboarding.notification-close-button-tooltip): The notification close button is an icon button. This tooltip would be shown when mousing hovering on the button.
+onboarding.notification-close-button-tooltip=ç¥éäº
+
+# LOCALIZATION NOTE(onboarding.complete): This string is used to describe an
+# onboarding tour item that is complete.
+onboarding.complete=宿
+
+onboarding.tour-private-browsing=éç§æµè§
+onboarding.tour-private-browsing.title2=ä¸ç½å¾ç§å¯ã
+# LOCALIZATION NOTE(onboarding.tour-private-browsing.description3): This string will be used in the private-browsing tour description. %S is brandShortName.
+onboarding.tour-private-browsing.description3=æ³è¦ç§å¯ç©ºé´ï¼ä½¿ç¨å¸¦æè·è¸ªä¿æ¤çéç§æµè§æ¨¡å¼ã卿¨ç
游ç½ç»æ¶ï¼%S å°æ¦æªç½ç»è·è¸ªå¨ï¼ç»ææµè§åï¼æ¨çæµè§åå²å°è¢«æ¹å»ã
+onboarding.tour-private-browsing.button=ççèåä¸âéç§æµè§âæé®å¨åª
+onboarding.notification.onboarding-tour-private-browsing.title=ä¸ç½å¾ç§å¯ã
+onboarding.notification.onboarding-tour-private-browsing.message2=æ³è¦ç§å¯ç©ºé´ï¼ä½¿ç¨å¸¦æè·è¸ªä¿æ¤çéç§æµè§æ¨¡å¼ã
+
+onboarding.tour-addons=éå ç»ä»¶
+onboarding.tour-addons.title2=è¿è½åæ´å¤ã
+# LOCALIZATION NOTE(onboarding.tour-addons.description2): This string will be used in the add-on tour description. %S is brandShortName
+onboarding.tour-addons.description2=éå ç»ä»¶è½æ©å± %1$S çå
ç½®åè½ï¼ä½¿æµè§å¨æ´æ»¡è¶³æ¨çéæ±ãæ¨å¯ä»¥ç¨éå ç»ä»¶æ¥æ¯ä»·æ ¼ãæ¥å¤©æ°ï¼ææ¯éç¨ä¸»é¢æ¥ç§åºä¸ªæ§ã
+onboarding.tour-addons.button=ççèåä¸âéå ç»ä»¶âæé®å¨åª
+onboarding.notification.onboarding-tour-addons.title=è¿è½åæ´å¤ã
+# LOCALIZATION NOTE(onboarding.notification.onboarding-tour-addons.message): This string will be used in the notification message for the add-ons tour. %S is brandShortName.
+onboarding.notification.onboarding-tour-addons.message=éå ç»ä»¶æ¯ä¸äºå°åºç¨ï¼è½ä¸º %S éå åç§è½åââä¸è®ºæ¯ç®¡çå¾
忏
åãä¸è½½è§é¢ï¼è¿æ¯ç»æµè§å¨æ¢æ°è£
ã
+
+onboarding.tour-customize=å®å¶
+onboarding.tour-customize.title2=éæå·¥å
·æ ã
+# LOCALIZATION NOTE(onboarding.tour-customize.description2): This string will be used in the customize tour description. %S is brandShortName
+onboarding.tour-customize.description2=æå¸¸ç¨å·¥å
·æ¾å¨æè¾¹ãæ¨å¯ä»¥ééæ±ææ½ãéæ°æå %S çå·¥å
·æ åèåï¼è¿å¯éç¨ç´§å主é¢ï¼ç»ç½é¡µçåºæ´å¤å±å¹ç©ºé´ã
+onboarding.tour-customize.button=ççèåä¸âå®å¶âæé®å¨åª
+onboarding.notification.onboarding-tour-customize.title=éæå·¥å
·æ ã
+# LOCALIZATION NOTE(onboarding.notification.onboarding-tour-customize.message): This string will be used in the notification message for Customize tour. %S is brandShortName.
+onboarding.notification.onboarding-tour-customize.message=æå¸¸ç¨å·¥å
·æ¾å°æ´æ¹ä¾¿ç¹å»çä½ç½®ï¼åå·¥å
·æ æ·»å æ´å¤éé¡¹ï¼æè
为 %S æä¸ªå½°æ¾æ¨ç个æ§ç主é¢ã
+
+onboarding.tour-default-browser=é»è®¤æµè§å¨
+# LOCALIZATION NOTE(onboarding.tour-default-browser.title2): This string will be used in the default browser tour title. %S is brandShortName
+onboarding.tour-default-browser.title2=æ %S è®¾ä¸ºä¸»åæµè§å¨ã
+# LOCALIZATION NOTE(onboarding.tour-default-browser.description2): This string will be used in the default browser tour description. %1$S is brandShortName
+onboarding.tour-default-browser.description2=妿æ¨å欢 %1$Sï¼ä½ä¸å°å®è®¾ä¸ºé»è®¤æµè§å¨ï¼ä¹åä»å
¶ä»åºç¨ç¨åºæå¼é¾æ¥æ¶ï¼%1$S å³ä¼åºç°ã
+# LOCALIZATION NOTE(onboarding.tour-default-browser.button): Label for a button to open the OS default browser settings where it's not possible to set the default browser directly. (OSX, Linux, Windows 8 and higher)
+onboarding.tour-default-browser.button=æå¼é»è®¤æµè§å¨è®¾ç½®
+# LOCALIZATION NOTE(onboarding.tour-default-browser.win7.button): Label for a button to directly set the default browser (Windows 7). %S is brandShortName
+onboarding.tour-default-browser.win7.button=å° %S 设为æ¨çé»è®¤æµè§å¨
+# LOCALIZATION NOTE(onboarding.tour-default-browser.is-default.message): Label displayed when Firefox is already set as default browser. followed on a new line by "tour-default-browser.is-default.2nd-message".
+onboarding.tour-default-browser.is-default.message=å·²ç»æ¯äºï¼
+# LOCALIZATION NOTE(onboarding.tour-default-browser.is-default.2nd-message): Label displayed when Firefox is already set as default browser. %S is brandShortName
+onboarding.tour-default-browser.is-default.2nd-message=%S å·²ç»æ¯æ¨çé»è®¤æµè§å¨ã
+# LOCALIZATION NOTE(onboarding.notification.onboarding-tour-default-browser.title): This string will be used in the notification title for the default browser tour. %S is brandShortName.
+onboarding.notification.onboarding-tour-default-browser.title=æ %S è®¾ä¸ºä¸»åæµè§å¨ã
+# LOCALIZATION NOTE(onboarding.notification.onboarding-tour-default-browser.message): This string will be used in the notification message for the default browser tour. %1$S is brandShortName
+onboarding.notification.onboarding-tour-default-browser.message=让 %1$S 忥æä½³åè½å¹¶ä¸é¾ãæ %1$S 设为æ¨çé»è®¤æµè§å¨ï¼åç§ææ§ãå®å¶ãä¿æ¤çåè½é½ä¼èªå¨æå®ã
+
+onboarding.tour-sync2=忥
+onboarding.tour-sync.title2=ç»§ç»ä¸æ¬¡æµè§ã
+onboarding.tour-sync.description2=æ¨å¯ä»¥éè¿åæ¥æå¡è½»æ¾åå书ç¾ãå¯ç çè³æ¯å¨å个设å¤ä¸æå¼çæ ç¾é¡µãæ¨è¿å¯ä»¥èªè¡éæ©æç±»ä¿¡æ¯è¦ä¸è¦è·¨è®¾å¤åæ¥ã
+onboarding.tour-sync.logged-in.title=æµè§ä½éªå¸¦çèµ°ï¼
+# LOCALIZATION NOTE(onboarding.tour-sync.logged-in.description): %1$S is brandShortName.
+onboarding.tour-sync.logged-in.description=æ¨å¨å¤å°è®¾å¤ç»å½ %1$S åï¼åæ¥åè½å°å¤§æç¨å¤ãæææºãç¬è®°æ¬çµèææ¯å¹³æ¿çµèï¼å®è£
%1$S å¹¶ç»å½ï¼æä¹¦ç¾ãæµè§åå²ãå¯ç çæ°æ®é身带çèµ°ã
+# LOCALIZATION NOTE(onboarding.tour-sync.form.title): This string is displayed
+# as a title and followed by onboarding.tour-sync.form.description.
+onboarding.tour-sync.form.title=å建 Firefox è´¦æ·
+# LOCALIZATION NOTE(onboarding.tour-sync.form.description): The description
+# continues after onboarding.tour-sync.form.title to create a complete sentence.
+# If it's not possible for your locale, you can translate this string as
+# "Continue to Firefox Sync" instead.
+onboarding.tour-sync.form.description=ç»§ç»ä½¿ç¨ Firefox 忥æå¡
+onboarding.tour-sync.button=ä¸ä¸æ¥
+onboarding.tour-sync.connect-device.button=è¿æ¥å¦ä¸å°è®¾å¤
+onboarding.tour-sync.email-input.placeholder=çµåé®ä»¶å°å
+onboarding.notification.onboarding-tour-sync.title=ç»§ç»ä¸æ¬¡æµè§ã
+onboarding.notification.onboarding-tour-sync.message=è¿å¨æé¾æ¥åç»èªå·±ï¼ç¶å卿æºä¸é
读ï¼è¿ä¸ªæ¹æ³æ´ç®ä¾¿ï¼å¼å¯åæ¥æå¡ï¼æ¨å¨è¿éä¿åçä¸è¥¿å¨æ¨çææè®¾å¤ä¸é½è½çå°ã
+
+onboarding.tour-library=æç足迹
+onboarding.tour-library.title=精彩å¾äºå°½å¨æ¤ã
+# LOCALIZATION NOTE (onboarding.tour-library.description2): This string will be used in the library tour description. %1$S is brandShortName
+onboarding.tour-library.description2=卿°è®¾è®¡çå·¥å
·æ ä¸å°è¯æ°ç %1$S - æçè¶³è¿¹ãæ°çæé®å°æ¨éè¦çä¸è¥¿æ¾å¨ä¸èµ·äºââ æ¨çæµè§è®°å½ã书ç¾ãPocket å表ãååæ¥çæ ç¾é¡µçé½å·²éç»å¾
å½ã
+onboarding.tour-library.button2=ççâæç足迹âèåå¨åª
+onboarding.notification.onboarding-tour-library.title=精彩å¾äºå°½å¨æ¤ã
+# LOCALIZATION NOTE(onboarding.notification.onboarding-tour-library.message): This string will be used in the notification message for the library tour. %S is brandShortName
+onboarding.notification.onboarding-tour-library.message=å
¨æ°ç %S âæçè¶³è¿¹âææ¨å¨ç½ç»ä¸æ¢ç´¢å°çä¸è¥¿é½æ¾å¨ä¸å¤ï¼ä¾¿äºåç¨ã
+
+onboarding.tour-singlesearch=å°åæ
+onboarding.tour-singlesearch.title=æ´å¿«æ¾æ¨æéã
+# LOCALIZATION NOTE(onboarding.tour-singlesearch.description): %S is brandShortName
+onboarding.tour-singlesearch.description=å°åæ ä¹è®¸æ¯å
¨æ° %S å·¥å
·æ ä¸æä¸ºå¼ºå¤§çå·¥å
·äºãåªè¦è¾å
¥ï¼ä¸æ¹å°±ä¼åºäºæ¨çæµè§åæç´¢è®°å½åæ¨æä¾å»ºè®®ãç¹å»ä¸ä¸ï¼å³å¯åå¾æä¸ªç½ç«ãå¨æä¸ªç½ç«ä¸æç´¢ï¼ææ¯ç¨é»è®¤æç´¢å¼ææéæ´ä¸ªç½ç»ã
+onboarding.tour-singlesearch.button=ççå°åæ å¨åª
+onboarding.notification.onboarding-tour-singlesearch.title=æ´å¿«æ¾æ¨æéã
+onboarding.notification.onboarding-tour-singlesearch.message=æéæ´ä¸ªäºèç½ï¼ç¨å°åæ å°±å¤äºã
+
+onboarding.tour-performance=æ§è½
+onboarding.tour-performance.title=ææ£çä¸ç½ä½éªã
+# LOCALIZATION NOTE(onboarding.tour-performance.description): %1$S is brandShortName.
+onboarding.tour-performance.description=å
¨æ°ç %1$S ç°å¨è½½å
¥é¡µé¢æ´å¿«ãæ»å¨æ´å¹³æ»ãæ ç¾é¡µåæ¢æ´çµæãè¿äºæ§è½å级ä¸ç°ä»£ç´è§ç设计åè为ä¸ãå¿«æ¥ç¨æå²ä»¥æ¥ææ£ç %1$S ç
游ç½ç»å§ã
+onboarding.notification.onboarding-tour-performance.title=ææ£çä¸ç½ä½éªã
+# LOCALIZATION NOTE(onboarding.notification.onboarding-tour-performance.message): %S is brandShortName.
+onboarding.notification.onboarding-tour-performance.message=åå¤å¥½ä½¿ç¨æå²ä»¥æ¥æå¿«ãæé¡ºãæå¯é ç %S äºåï¼
+
+# LOCALIZATION NOTE (onboarding.tour-screenshots): "Screenshots" is the name of the Firefox Screenshots feature and should not be localized.
+onboarding.tour-screenshots=å±å¹æªå¾
+onboarding.tour-screenshots.title=å±å¹æªå¾æ´å®¹æã
+# LOCALIZATION NOTE(onboarding.tour-screenshots.description): %S is brandShortName.
+onboarding.tour-screenshots.description=æªåãä¿ååå享å±å¹æªå¾ï¼ä¸å¿
ç¦»å¼ %Sãæ¨å¯ä»¥ç´æ¥æªåæ´ä¸ªé¡µé¢æå
¶ä¸çæä¸ªåºåï¼ç¶åèªå¨ä¸ä¼ å°ç½ç»ä¸ï¼æ¹ä¾¿åç¨åå享ã
+# LOCALIZATION NOTE (onboarding.tour-screenshots.button): "Screenshots" is the name of the Firefox Screenshots feature and should not be localized.
+onboarding.tour-screenshots.button=æå¼å±å¹æªå¾ç½ç«
+onboarding.notification.onboarding-tour-screenshots.title=å±å¹æªå¾æ´å®¹æã
+# LOCALIZATION NOTE(onboarding.notification.onboarding-tour-screenshots.message): %S is brandShortName.
+onboarding.notification.onboarding-tour-screenshots.message=æªåãä¿åãå享å±å¹æªå¾ï¼ä¸å¿
ç¦»å¼ %Sã
diff --git a/browser/extensions/webcompat-reporter/webcompat.properties b/browser/extensions/webcompat-reporter/webcompat.properties
new file mode 100644
index 00000000000..1724f67c84c
--- /dev/null
+++ b/browser/extensions/webcompat-reporter/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..faa5f18e6b8
--- /dev/null
+++ b/browser/installer/custom.properties
@@ -0,0 +1,85 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE:
+
+# This file must be saved as UTF8
+
+# Accesskeys are defined by prefixing the letter that is to be used for the
+# accesskey with an ampersand (e.g. &).
+
+# Do not replace $BrandShortName, $BrandFullName, or $BrandFullNameDA with a
+# custom string and always use the same one as used by the en-US files.
+# $BrandFullNameDA allows the string to contain an ampersand (e.g. DA stands
+# for double ampersand) and prevents the letter following the ampersand from
+# being used as an accesskey.
+
+# You can use \n to create a newline in the string but only when the string
+# from en-US contains a \n.
+
+REG_APP_DESC=$BrandShortName å°ç»æ¨å¸¦æ¥å®å
¨ãæç¨çç½ç»æµè§ä½éªãçæçç¨æ·çé¢ã强åçå®å
¨ç¹æ§ï¼å
æ¬é²æ¢å¨çº¿èº«ä»½çç¨ï¼ï¼å¹¶ä¸æ´åäºä¾¿äºæ¨ä»ç½ç»è·å浩çä¿¡æ¯çæç´¢å¼æã
+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)
+WARN_MANUALLY_CLOSE_APP_INSTALL=å¿
é¡»å
³é $BrandShortName æè½ç»§ç»å®è£
ã\n\n请å
³é $BrandShortName 以继ç»ã
+WARN_MANUALLY_CLOSE_APP_UNINSTALL=å¿
é¡»å
³é $BrandShortName æè½ç»§ç»å¸è½½ã\n\n请å
³é $BrandShortName 以继ç»ã
+WARN_MANUALLY_CLOSE_APP_LAUNCH=$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=ç¹å» å¸è½½ 以继ç»ã
+
+BANNER_CHECK_EXISTING=æ£å¨æ£æ¥ç°æçå®è£
â¦
+
+STATUS_INSTALL_APP=æ£å¨å®è£
$BrandShortNameâ¦
+STATUS_INSTALL_LANG=æ£å¨å®è£
è¯è¨æä»¶ (${AB_CD})â¦
+STATUS_UNINSTALL_MAIN=æ£å¨å¸è½½ $BrandShortNameâ¦
+STATUS_CLEANUP=ä¸ç¹ç¹æ¸
æ´å·¥ä½â¦
+
+# _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=å级
diff --git a/browser/installer/mui.properties b/browser/installer/mui.properties
new file mode 100755
index 00000000000..d9d0062783f
--- /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..eb35a7aa29f
--- /dev/null
+++ b/browser/installer/nsisstrings.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:
+
+# 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.
+
+INSTALLER_WIN_CAPTION=$BrandShortName å®è£
ç¨åº
+
+# The \n in the next two strings can be moved or deleted as needed to make
+# the string fit in the 3 lines of space available.
+STUB_CLEANUP_PAVEOVER_HEADER=çæ¥å·²ç»å®è£
äº $BrandShortNameã\næ¥æ´æ°ä¸ä¸å§ã
+STUB_CLEANUP_REINSTALL_HEADER=çæ¥æ¾ç»å®è£
è¿ $BrandShortNameã\n欢è¿å次使ç¨ã
+STUB_CLEANUP_PAVEOVER_BUTTON=æ´æ°
+STUB_CLEANUP_REINSTALL_BUTTON=忬¡å®è£
+STUB_CLEANUP_CHECKBOX_LABEL=æ¢å¤é»è®¤è®¾ç½®å¹¶ç§»é¤èæ§éå ç»ä»¶ï¼ä»¥å徿佳æ§è½(&R)
+
+STUB_INSTALLING_LABEL2=æ£å¨å®è£
â¦
+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=æ¨æ²¡æè¶³å¤çç£ç空é´ç¨äºå®è£
ã
+WARN_MANUALLY_CLOSE_APP_LAUNCH=$BrandShortName æ£å¨è¿è¡ã\n\n请å
³é $BrandShortName ååå¯å¨æ¨æ°å®è£
ççæ¬ã
+
+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=åæ¶
+
+VERSION_32BIT=32 ä½ $BrandShortName
+VERSION_64BIT=64 ä½ $BrandShortName
diff --git a/browser/installer/override.properties b/browser/installer/override.properties
new file mode 100755
index 00000000000..8e857442a3e
--- /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..4ca72119448
--- /dev/null
+++ b/browser/pdfviewer/chrome.properties
@@ -0,0 +1,19 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Chrome notification bar messages and buttons
+unsupported_feature=è¿ä»½ PDF ææ¡£å¯è½å¹¶æªæ£ç¡®æ¾ç¤ºã
+unsupported_feature_forms=æ¤ 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..9f426124bb4
--- /dev/null
+++ b/browser/pdfviewer/viewer.properties
@@ -0,0 +1,201 @@
+# 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=转å°ç¬¬ä¸é¡µ
+first_page_label=转å°ç¬¬ä¸é¡µ
+last_page.title=è½¬å°æåä¸é¡µ
+last_page.label=è½¬å°æåä¸é¡µ
+last_page_label=è½¬å°æåä¸é¡µ
+page_rotate_cw.title=顺æ¶éæè½¬
+page_rotate_cw.label=顺æ¶éæè½¬
+page_rotate_cw_label=顺æ¶éæè½¬
+page_rotate_ccw.title=éæ¶éæè½¬
+page_rotate_ccw.label=éæ¶éæè½¬
+page_rotate_ccw_label=éæ¶éæè½¬
+
+cursor_text_select_tool.title=å¯ç¨ææ¬éæ©å·¥å
·
+cursor_text_select_tool_label=ææ¬éæ©å·¥å
·
+cursor_hand_tool.title=å¯ç¨æå½¢å·¥å
·
+cursor_hand_tool_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}}ï¼
+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_notification.title=忢侧æ ï¼ææ¡£æå«ç大纲/éä»¶ï¼
+toggle_sidebar_label=忢侧æ
+document_outline.title=æ¾ç¤ºææ¡£å¤§çº²ï¼åå»å±å¼/æå ææé¡¹ï¼
+document_outline_label=ææ¡£å¤§çº²
+attachments.title=æ¾ç¤ºéä»¶
+attachments_label=éä»¶
+thumbs.title=æ¾ç¤ºç¼©ç¥å¾
+thumbs_label=缩ç¥å¾
+findbar.title=å¨ææ¡£ä¸æ¥æ¾
+findbar_label=æ¥æ¾
+
+# 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_reached_top=å°è¾¾ææ¡£å¼å¤´ï¼ä»æ«å°¾ç»§ç»
+find_reached_bottom=å°è¾¾ææ¡£æ«å°¾ï¼ä»å¼å¤´ç»§ç»
+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_error_indicator=é误
+loading_error=è½½å
¥ PDF æ¶åçé误ã
+invalid_file_error=æ æææåç PDF æä»¶ã
+missing_file_error=ç¼ºå° PDF æä»¶ã
+unexpected_response_error=æå¤çæå¡å¨ååºã
+
+# 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 åä½ã
+document_colors_not_allowed=PDF ææ¡£æ æ³ä½¿ç¨èªå·±çé¢è²ï¼æµè§å¨ä¸âå
许页é¢éæ©èªå·±çé¢è²âçé项æªè¢«å¾éã
diff --git a/browser/profile/bookmarks.inc b/browser/profile/bookmarks.inc
new file mode 100755
index 00000000000..b36d03986ec
--- /dev/null
+++ b/browser/profile/bookmarks.inc
@@ -0,0 +1,72 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#filter emptyLines
+
+# LOCALIZATION NOTE: The 'en-US' strings in the URLs will be replaced with
+# your locale code, and link to your translated pages as soon as they're
+# live.
+
+#define bookmarks_title 书ç¾
+#define bookmarks_heading 书ç¾
+
+#define bookmarks_toolbarfolder 书ç¾å·¥å
·æ æä»¶å¤¹
+#define bookmarks_toolbarfolder_description æ·»å å°æ¤æä»¶å¤¹ç书ç¾ä¼è¢«æ¾ç¤ºå°ä¹¦ç¾å·¥å
·æ ä¸
+
+# LOCALIZATION NOTE (getting_started):
+# link title for https://www.mozilla.org/en-US/firefox/central/
+#define getting_started æ°æä¸è·¯
+
+# LOCALIZATION NOTE (firefox_heading):
+# Firefox links folder name
+#define firefox_heading Mozilla Firefox
+
+# LOCALIZATION NOTE (firefox_help):
+# link title for https://www.mozilla.org/en-US/firefox/help/
+#define firefox_help 帮å©åæç¨
+
+# LOCALIZATION NOTE (firefox_customize):
+# link title for https://www.mozilla.org/en-US/firefox/customize/
+#define firefox_customize èªå®ä¹ Firefox
+
+# LOCALIZATION NOTE (firefox_community):
+# link title for https://www.mozilla.org/en-US/contribute/
+#define firefox_community å å
¥è¿æ¥
+
+# LOCALIZATION NOTE (firefox_about):
+# link title for https://www.mozilla.org/en-US/about/
+#define firefox_about å
³äºæä»¬
+
+# LOCALIZATION NOTE (nightly_heading):
+# Firefox Nightly links folder name
+#define nightly_heading Firefox Nightly èµæº
+
+# LOCALIZATION NOTE (nightly_blog):
+# Nightly builds only, link title for https://blog.nightly.mozilla.org/
+#define nightly_blog Firefox Nightly å客
+
+# LOCALIZATION NOTE (bugzilla):
+# Nightly builds only, link title for https://bugzilla.mozilla.org/
+#define bugzilla Mozilla 缺é·è·è¸ªç½ç«
+
+# LOCALIZATION NOTE (mdn):
+# Nightly builds only, link title for https://developer.mozilla.org/
+#define mdn Mozilla å¼åè
ç½ç»
+
+# LOCALIZATION NOTE (nightly_tester_tools):
+# Nightly builds only, link title for https://addons.mozilla.org/en-US/firefox/addon/nightly-tester-tools/
+#define nightly_tester_tools Nightly Tester Tools
+
+# LOCALIZATION NOTE (crashes):
+# Nightly builds only, link title for about:crashes
+#define crashes æ¨çææå´©æº
+
+# LOCALIZATION NOTE (irc):
+# Nightly builds only, link title for ircs://irc.mozilla.org/nightly
+#define irc å¨ IRC ä¸è®¨è®º Nightly
+
+# LOCALIZATION NOTE (planet):
+# Nightly builds only, link title for https://planet.mozilla.org/
+#define planet Planet Mozilla
+
+#unfilter emptyLines
diff --git a/browser/updater/updater.ini b/browser/updater/updater.ini
new file mode 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/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..f0b5e1d12ec
--- /dev/null
+++ b/calendar/chrome/calendar/calendar-event-dialog.dtd
@@ -0,0 +1,433 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/calendar-event-dialog.properties b/calendar/chrome/calendar/calendar-event-dialog.properties
new file mode 100755
index 00000000000..22a651dc625
--- /dev/null
+++ b/calendar/chrome/calendar/calendar-event-dialog.properties
@@ -0,0 +1,529 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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=åéå¹¶å
³é
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-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-subscriptions-dialog.dtd b/calendar/chrome/calendar/calendar-subscriptions-dialog.dtd
new file mode 100755
index 00000000000..493f933ee79
--- /dev/null
+++ b/calendar/chrome/calendar/calendar-subscriptions-dialog.dtd
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/calendar.dtd b/calendar/chrome/calendar/calendar.dtd
new file mode 100755
index 00000000000..7cf77f52b1b
--- /dev/null
+++ b/calendar/chrome/calendar/calendar.dtd
@@ -0,0 +1,411 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/calendar.properties b/calendar/chrome/calendar/calendar.properties
new file mode 100755
index 00000000000..1d02c4aefb4
--- /dev/null
+++ b/calendar/chrome/calendar/calendar.properties
@@ -0,0 +1,806 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Misc. strings in JS
+
+# LOCALIZATION NOTE (PrintPreviewWindowTitle):
+# %1$S will be replaced with the title of a html frame
+PrintPreviewWindowTitle=æå°é¢è§ï¼ %1$S
+Untitled=æ æ é¢
+
+# Default name for new events
+newEvent=æ°å»ºäºä»¶
+
+# Titles for the event/task dialog
+newEventDialog=æ°å»ºäºä»¶
+editEventDialog=ç¼è¾äºä»¶
+newTaskDialog=æ°å»ºä»»å¡
+editTaskDialog=ç¼è¾ä»»å¡
+
+# Do you want to save changes?
+askSaveTitleEvent=ä¿åäºä»¶
+askSaveTitleTask=ä¿åä»»å¡
+askSaveMessageEvent=äºä»¶è¿æªä¿åï¼æ¨æ³ä¿ååï¼
+askSaveMessageTask=ä»»å¡è¿æªä¿åï¼æ¨æ³ä¿ååï¼
+
+# Event Dialog Warnings
+warningEndBeforeStart=æ¨è¾å
¥çç»ææ¥ææ©äºå¼å§æ¥æ
+warningUntilDateBeforeStart=æªæ¢æ¥æå¨å¼å§æ¥æä¹å
+
+# The name of the calendar provided with the application by default
+homeCalendarName=主æ¥å
+
+# The name given to a calendar if an opened calendar has an empty filename
+untitledCalendarName=æ æ 颿¥å
+
+# Event status: Tentative, Confirmed, Cancelled
+# ToDo task status: NeedsAction, InProcess, Completed, Cancelled
+statusTentative =æå®
+statusConfirmed =已确认
+eventStatusCancelled=已忶
+todoStatusCancelled =已忶
+statusNeedsAction =éå¤ç
+statusInProcess =è¿è¡ä¸
+statusCompleted =已宿
+
+# Task priority, these should match the priority.level.* labels in calendar.dtd
+highPriority=é«
+normalPriority=æ®é
+lowPriority=ä½
+
+importPrompt=æ¨æ³æè¿äºæ¡ç®å¯¼å
¥å°åªä¸ªæ¥åï¼
+exportPrompt=æ¨æ³å¯¼åºåªä¸ªæ¥åï¼
+pastePrompt=æ¨æ³ç²è´´å°åªä¸ªå½åå¯åçæ¥åï¼
+publishPrompt=æ¨æ³åå¸åªä¸ªæ¥åï¼
+
+# LOCALIZATION NOTE (pasteEventAlso): The users pasting operation includes among
+# others also a meeting invitation - this is used as a affix in
+# pasteNotifyAbout
+pasteEventAlso=æ¨ç²è´´çå
容æ¶åä¸åºä¼è®®
+# LOCALIZATION NOTE (pasteEventsAlso): The users pasting operation includes among
+# others also several meeting invitations - this is used as a affix in
+# pasteNotifyAbout
+pasteEventsAlso=æ¨ç²è´´çå
容æ¶åå¤åºä¼è®®
+# LOCALIZATION NOTE (pasteTaskAlso): The users pasting operation includes among
+# others also an assigned task - this is used as a affix in pasteNotifyAbout
+pasteTaskAlso=æ¨ç²è´´çå
容æ¶åå·²ææ´¾ä»äººå¤ççä»»å¡
+# LOCALIZATION NOTE (pasteTasksAlso): The users pasting operation include among
+# others also several assigned tasks - this is used as a affix in
+# pasteNotifyAbout
+pasteTasksAlso=æ¨ç²è´´çå
容æ¶åå·²ææ´¾ä»äººå¤ççä»»å¡
+# LOCALIZATION NOTE (pasteItemsAlso): The users pasting operation includes among
+# others also assigned task(s) and meeting invitation(s) - this is used as a affix
+# in pasteNotifyAbout
+pasteItemsAlso=æ¨ç²è´´çå
容æ¶åä¼è®®åå·²ææ´¾ä»äººå¤ççä»»å¡
+# LOCALIZATION NOTE (pasteEventOnly): The users is pasting a meeting -
+# this is used as a affix in pasteNotifyAbout
+pasteEventOnly=æ¨ç²è´´çæ¯ä¼è®®ä¿¡æ¯
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting several meetings -
+# this is used as a affix in pasteNotifyAbout
+pasteEventsOnly=æ¨ç²è´´çæ¯ä¼è®®ä¿¡æ¯
+# LOCALIZATION NOTE (pasteEventOnly): The users is pasting an assigned task -
+# this is used as a affix in pasteNotifyAbout
+pasteTaskOnly=æ¨ç²è´´çæ¯å·²ææ´¾ä»äººå¤ççä»»å¡
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting several assigned
+# tasks - this is used as a affix in pasteNotifyAbout
+pasteTasksOnly=æ¨ç²è´´çæ¯å·²ææ´¾ä»äººå¤ççä»»å¡
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting assigned task(s) and
+# meeting(s) - this is used as a affix in pasteNotifyAbout
+pasteItemsOnly=æ¨ç²è´´çæ¯ä¼è®®ä¿¡æ¯åå·²ææ´¾ä»äººå¤ççä»»å¡
+
+# LOCALIZATION NOTE (pasteNotifyAbout): Text displayed if pasting an invitation
+# or assigned task
+# %1$S - pasteEvent* or pasteTask*
+pasteNotifyAbout=%1$S - è¦æéææç¸å
³äººåæåæ´åï¼
+
+# LOCALIZATION NOTE (pasteAndNotifyLabel): button label used in calendar prompt
+# of the pasted item has attendees
+pasteAndNotifyLabel=ç²è´´å¹¶ç«å»åé
+# LOCALIZATION NOTE (pasteDontNotifyLabel): button label used in calendar prompt
+# of the pasted item has attendees
+pasteDontNotifyLabel=ä»
ç²è´´
+
+# LOCALIZATION NOTE (importItemsFailed):
+# %1$S will be replaced with number of failed items
+# %2$S will be replaced with last error code / error string
+importItemsFailed=%1$S 个æ¡ç®å¯¼å
¥å¤±è´¥ã æåä¸ä¸ªéè¯¯ä¸ºï¼ %2$S
+# LOCALIZATION NOTE (noItemsInCalendarFile):
+# %1$S will be replaced with file path
+noItemsInCalendarFile=ä» %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 çæ¥åæ¶åçäºé误ã å®å°æ æ³ä½¿ç¨ã
+unknownTimezonesError=åå¤ä½¿ç¨ä½äº %1$S çæ¥åæ¶åçäºéè¯¯ãæ¥åå¯è½å¼ç¨äºæªç¥æ¶åºã请å®è£
ææ°ç calendar-timezones.xpiã
+missingCalendarTimezonesError=æªæ¾å°æ¶åºï¼è¯·å®è£
calendar-timezones.xpiã
+
+# 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
+tooNewSchemaErrorBoxTitle=æ¨çæ¥åæ°æ®ä¸ %1$S çæ¬ä¸å
¼å®¹
+
+# LOCALIZATION NOTE (tooNewSchemaErrorBoxTextLightning):
+# %1$S will be replaced with the name of the calendar application e.g. 'Lightning'
+# %2$S will be replaced with the name of the host application 'calendar'
+tooNewSchemaErrorBoxTextLightning=æ¨çé
ç½®æä»¶ä¸çæ¥åæ°æ®å·²ç»æ´æ°å° %1$S çè¾æ°çæ¬, å¦æç»§ç»è¿è¡åå¯è½å¯¼è´ä¿¡æ¯ä¸¢å¤±ææ°æ®æåï¼%1$S ç°å°è¢«ç¦ç¨ï¼%2$S ä¹å·²ç»éæ°å¯å¨ã
+
+# LOCALIZATION NOTE (tooNewSchemaButtonRestart):
+# %1$S will be replaced with the name of the host application 'Calendar'
+tooNewSchemaButtonRestart=éå¯ %1$S
+
+# LOCALIZATION NOTE (tooNewSchemaButtonQuit):
+# %1$S will be replaced with the name of the host application 'Calendar'
+tooNewSchemaButtonQuit=éåº %1$S
+
+# List of events or todos (unifinder)
+eventUntitled=æ æ é¢
+
+# Tooltips of events or todos
+tooltipTitle=æ é¢ï¼
+tooltipLocation=ä½ç½®ï¼
+# event date, usually an interval, such as
+# Date: 7:00--8:00 Thu 9 Oct 2011
+# Date: Thu 9 Oct 2000 -- Fri 10 Oct 2000
+tooltipDate=æ¥æï¼
+# event calendar name
+tooltipCalName=æ¥ååç§°ï¼
+# event status: tentative, confirmed, cancelled
+tooltipStatus=ç¶æï¼
+# event organizer
+tooltipOrganizer=ç»ç»è
ï¼
+# task/todo fields
+# start date time, due date time, task priority number, completed date time
+tooltipStart=å¼å§ï¼
+tooltipDue=æéï¼
+tooltipPriority=ä¼å
级ï¼
+tooltipPercent=% 宿ï¼
+tooltipCompleted=已宿ï¼
+
+# Tooltips for attendees and organizer in event and summary dialog
+
+# LOCALIZATION_NOTE(dialog.tooltip.attendee.combined): tooltip for itip icon in summary/event dialog.
+# Given an attendee loungeexample.org of type room is a mandatory participant and has accepted the
+# invitation, the tooltip would be:
+# lounge@example.org (room) is a required participant. lounge@example.org has confirmed attendance.
+# %1$S - value of dialog.tooltip.attendeeRole2.*
+# %2$S - value of dialog.tooltip.attendeePartStat2.*
+dialog.tooltip.attendee.combined=%1$S %2$S
+
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeRole2.CHAIR): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - value of dialog.tooltip.attendeeUserType2.*
+dialog.tooltip.attendeeRole2.CHAIR=%1$S ä¸»ææ´»å¨ã
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeRole2.NON-PARTICIPANT): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - value of dialog.tooltip.attendeeUserType2.*
+dialog.tooltip.attendeeRole2.NON-PARTICIPANT=%1$S éåä¸è
ã
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeRole2.OPT-PARTICIPANT): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - value of dialog.tooltip.attendeeUserType2.*
+dialog.tooltip.attendeeRole2.OPT-PARTICIPANT=%1$S æ¯ä¸åå¯éåä¸è
ã
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeRole2.REQ-PARTICIPANT): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - value of dialog.tooltip.attendeeUserType2.*
+dialog.tooltip.attendeeRole2.REQ-PARTICIPANT=%1$S æ¯ä¸åå¿
éåä¸è
ã
+
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.ACCEPTED): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.ACCEPTED=%1$S 已确认åå ã
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.DECLINED): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.DECLINED=%1$S 已确å®ä¸ä¼åå ã
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.DELEGATED): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.DELEGATED=%1$S 已姿ä»äººåä¸ã
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.NEEDS-ACTION): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.NEEDS-ACTION=%1$S ä»éåå¤ã
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.TENTATIVE): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.TENTATIVE=%1$S å·²åæ¥ç¡®è®¤åå ã
+
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.INDIVIDUAL): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name representing individual attendee
+dialog.tooltip.attendeeUserType2.INDIVIDUAL=%1$S
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.GROUP): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name representing a group (e.g. a distribution list)
+dialog.tooltip.attendeeUserType2.GROUP=%1$S (ç»)
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.RESOURCE): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name representing a resource (e.g. projector)
+dialog.tooltip.attendeeUserType2.RESOURCE=%1$S (èµæº)
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.ROOM): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name representing a room
+dialog.tooltip.attendeeUserType2.ROOM=%1$S (æ¿é´)
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.UNKNOWN): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name representing an attendee of unknown type
+dialog.tooltip.attendeeUserType2.UNKNOWN=%1$S
+
+#File commands and dialogs
+New=æ°å»º
+Open=æå¼
+filepickerTitleImport=导å
¥
+filepickerTitleExport=导åº
+
+# Filters for export/import/open file picker. %1$S will be replaced with
+# wildmat used to filter files by extension, such as (*.html; *.htm).
+filterIcs=iCalendar (%1$S)
+filterXml=XML æä»¶ ï¼%1$Sï¼
+filterHtml=ç½é¡µ ï¼%1$Sï¼
+filterOutlookCsv=Outlook éå·åé ï¼%1$Sï¼
+filterWav=波形é³é¢ ï¼%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/Shanghai
+
+# 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" \nä¸å
ç½®æ¶åºä¿¡æ¯ "%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没æåæä½ç³»ç»ä¸çæ¶åºæ°æ®ç¸å¹é
çæ¶åºä¿¡æ¯ã
+
+# "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=è¿ä¸ªæ¶åºä¿¡æ¯æ¯è¾å¹é
æä½ç³»ç»æ¶åºã \nææ¤è§å, ä¸ä¸æ¬¡ç½å¤©ä¸æ åæ¶é´ç转æ¢ä»æä½ç³»ç»æ¶åºè½¬æ¢è¿æ¥ç¸å·®æå¤ä¸å¨ã \nè¿å¯è½ä¼å卿°æ®ä¸ççç¾, å¦ä¸åçå¼å§æ¶é´, \næä¸åçè§å, æéæ åå
¬åä¼°ç®è§åã
+
+TZSeemsToMatchOS=è¿ä¸ªæ¶åºä¿¡æ¯ä¼¼ä¹å¹é
æä½ç³»ç»ä¸å½åå¹´çæ¶åºã
+
+# LOCALIZATION NOTE (TZFromOS):
+# used for a display of a chosen timezone
+# %1$S will be replaced with the name of a timezone
+TZFromOS=è¿ä¸ªæ¶åºä¿¡æ¯ä¸çæ¶åºå·²æ ¹æ®æä½ç³»ç»æ¶åºå³å®\nè¯å«ç "%1$S"ã
+
+# Localization note (TZFromLocale): Substitute name of your locale language.
+TZFromLocale=è¿ä¸ªæ¶åºä¿¡æ¯ä¸çæ¶åºæ¯åºäºå¹é
\næä½ç³»ç»æ¶åºåç®ä½ä¸æç½ç»ç¨æ·å¯è½ä½äºçæ¶åºèéæ©çã
+
+TZFromKnownTimezones=è¿ä¸ªæ¶åºä¿¡æ¯ä¸çæ¶åºæ¯åºäºå¹é
\næä½ç³»ç»æ¶åºåæåæ¯æåºçæ¶åºä»£ç ä¸çå·²ç¥æ¶åºèéæ©çã
+
+# Print Layout
+formatListName = å表
+weekPrinterName = å¨è®¡åå¨
+monthPrinterName = æè¡¨æ ¼
+tasksWithNoDueDate = æªæå®å®ææ¥æçä»»å¡
+
+# Providers
+caldavName=CalDAV
+compositeName=ç»å
+icsName=iCalendar (ICS)
+memoryName=ä¸´æ¶ ï¼å
åï¼
+storageName=æ¬å° ï¼SQLiteï¼
+
+# Used in created html code for list layout print and html 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 (abbreviationOfWeek):
+# Used for displaying the week number in the first day box of every week
+# in multiweek and month views.
+# It allows to localize the label with the week number in case your locale
+# requires it.
+# Take into account that this label is placed in the same room of the day label
+# inside the day boxes, exactly on left side, hence a possible string shouldn't
+# be too long otherwise it will create confusion between the week number and
+# the day number other than a possible crop when the window is resized.
+#
+# %1$S is a number from 1 to 53 that represents the week number.
+abbreviationOfWeek=%1$S
+
+# Task tree, "Due In" column.
+# LOCALIZATION NOTE (dueInDays, dueInHours): Semi-colon list of plural
+# forms. See: http://developer.mozilla.org/en/Localization_and_Plurals
+dueInDays=#1 天
+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 commmon 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=å é¤ä»»å¡
+deleteTaskMessage=ä½ ç¡®å®è¦å é¤è¿ä¸ªä»»å¡ï¼
+deleteTaskAccesskey=l
+deleteItemLabel=å é¤
+deleteItemMessage=ä½ ç¡®å®è¦å é¤è¿ä¸ªé¡¹ç®ï¼
+deleteItemAccesskey=l
+deleteEventLabel=å é¤äºä»¶
+deleteEventMessage=ä½ ç¡®å®è¦å é¤è¿ä¸ªäºä»¶ï¼
+deleteEventAccesskey=l
+
+calendarPropertiesEveryMinute=æ¯åé;æ¯ #1 åé
+
+# LOCALIZATION NOTE (extractUsing)
+# Used in message header
+# %1$S will be replaced with language name from languageNames.properties
+extractUsing=ä½¿ç¨ %1$S
+
+# LOCALIZATION NOTE (extractUsingRegion)
+# Used in message header
+# %1$S will be replaced with language name from languageNames.properties
+# %2$S will be replaced with region like US in en-US
+extractUsingRegion=æ£å¨ä½¿ç¨ %1$S (%2$S)
+
+# LOCALIZATION NOTE (unit)
+# Used to determine the correct plural form of a unit
+unitMinutes=#1 åé;#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=èå¼è¿äºæ¹å¨
+
+# LOCALIZATION_NOTE(dialog.attendee.append.delegatedFrom): this is appended behind an attendee name
+# in the tooltip and the visible name for an attendee in the event summary dialog - don't add
+# leading or trailing whitespaces here
+# %1$S - a single delegatee or a comma separated list of delegatees
+# delegation is different from simple invitation forwarding - in case of delegation the orignal
+# invited attendee gets replaced
+dialog.attendee.append.delegatedFrom=ï¼ç± %1$S å§æï¼
+# LOCALIZATION_NOTE(dialog.attendee.append.delegatedTo): this is appended behind an attendee name
+# in the tooltip for an attendee in the event summary dialog - don't add leading or trailing
+# whitespaces here
+# delegation is different from simple invitation forwarding - in case of delegation the orignal
+# invited attendee gets replaced
+dialog.attendee.append.delegatedTo=ï¼å§æç» %1$Sï¼
+
+# Accessible description of a grid calendar with no selected date
+minimonthNoSelectedDate=æªéæ©æ¥æ
diff --git a/calendar/chrome/calendar/calendarCreation.dtd b/calendar/chrome/calendar/calendarCreation.dtd
new file mode 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..fb786562189
--- /dev/null
+++ b/calendar/chrome/calendar/global.dtd
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/menuOverlay.dtd b/calendar/chrome/calendar/menuOverlay.dtd
new file mode 100755
index 00000000000..a717a25a7ee
--- /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/preferences/alarms.dtd b/calendar/chrome/calendar/preferences/alarms.dtd
new file mode 100755
index 00000000000..2ebde7def4a
--- /dev/null
+++ b/calendar/chrome/calendar/preferences/alarms.dtd
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/preferences/categories.dtd b/calendar/chrome/calendar/preferences/categories.dtd
new file mode 100755
index 00000000000..0a20c582133
--- /dev/null
+++ b/calendar/chrome/calendar/preferences/categories.dtd
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/preferences/general.dtd b/calendar/chrome/calendar/preferences/general.dtd
new file mode 100755
index 00000000000..f6aabcd1143
--- /dev/null
+++ b/calendar/chrome/calendar/preferences/general.dtd
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/preferences/preferences.dtd b/calendar/chrome/calendar/preferences/preferences.dtd
new file mode 100755
index 00000000000..bc9c68f766f
--- /dev/null
+++ b/calendar/chrome/calendar/preferences/preferences.dtd
@@ -0,0 +1,8 @@
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/preferences/views.dtd b/calendar/chrome/calendar/preferences/views.dtd
new file mode 100755
index 00000000000..273d68b8d7c
--- /dev/null
+++ b/calendar/chrome/calendar/preferences/views.dtd
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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/providers/gdata/amo.properties b/calendar/chrome/calendar/providers/gdata/amo.properties
new file mode 100644
index 00000000000..8bb116e78b0
--- /dev/null
+++ b/calendar/chrome/calendar/providers/gdata/amo.properties
@@ -0,0 +1,21 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# The addon name and short description are localized in gdata.properties
+
+# This is the addon description. The en-US version will sometimes have
+# additional news items at the end of the description. If you notice this and
+# would like them translated, please email the author directly.
+# params: %1$S - See amo.faqlocation
+# %2$S - See amo.website
+# NOTE: This is a multiline string, be sure to end lines with \n\ to make sure
+# it stays that way.
+amo.description=æ¤æ©å±è®© Lightning å¯ä»¥è¯»å Google Calendar ä¸çäºä»¶ä¸ä»»å¡ã\n\nè¥éæ´å¤ä¿¡æ¯ï¼è¯·å¨åæ¥ bug åé
读 常è§é®é¢ãå¦å¤ï¼è¯·å
å° è®ºå ççï¼ä¹è®¸æ¨çé®é¢å·²ç»è¢«è§£å³äºï¼\n\nè¦æç´¢å¹¶æäº¤ bugï¼è¯·å° http://bugzilla.mozilla.org/ \nProduct: Calendar\nComponent: Provider: GData
+
+# You can change this if you have localized the FAQ on wiki.mozilla.org
+amo.faqlocation=http://wiki.mozilla.org/Calendar:GDATA_Provider
+
+# You can change this if you would like to provide localized support.
+amo.email=
+amo.website=http://groups.google.com/group/provider-for-google-calendar
diff --git a/calendar/chrome/calendar/providers/gdata/gdata.dtd b/calendar/chrome/calendar/providers/gdata/gdata.dtd
new file mode 100755
index 00000000000..aac94990cdd
--- /dev/null
+++ b/calendar/chrome/calendar/providers/gdata/gdata.dtd
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/providers/gdata/gdata.properties b/calendar/chrome/calendar/providers/gdata/gdata.properties
new file mode 100755
index 00000000000..745bf3ec6a6
--- /dev/null
+++ b/calendar/chrome/calendar/providers/gdata/gdata.properties
@@ -0,0 +1,57 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# If you wish to be mentioned as a translator, please make sure your name and
+# email is in the licence block as a contributor. Multiple names are fine too.
+
+# extension information.
+# When localizing, please keep in mind that these strings had to be approved by
+# the Google Brand Features Team. Be sure to make clear that this extension is
+# *FOR* Google Calendar and not *BY* Google. Also, it was explicitly stated,
+# that the phrase "Google Calendar" should be localized just as it is on the
+# localized versions of the Google Calendar UI.
+
+# Extension Manager strings
+extensions.{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}.description=å
许ååè®¿é® Google æ¥å
+extensions.{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}.name=Google æ¥åæä¾å¨
+
+# LOCALIZATION NOTE (busyTitle):
+# Events with only free/busy access don't have a title, they will use this
+# title instead. The calendar name is used as a parameter, since its often
+# named after the person whose calendar you are viewing.
+# %1$S = The calendar name
+busyTitle=å¿ç¢ï¼%1$Sï¼
+
+# LOCALIZATION NOTE (quotaExceeded):
+# This is shown when the request quota has been exceeded.
+# %1$S = The session id (what the user enters as an email
+# in the new calendar dialog)
+quotaExceeded=%1$S çé
é¢å·²ç»ç¨å®ï¼è¯·ç¨ååè¯ã
+providerOutdated=æ¤çæ¬çæä¾è
å·²ç»è¿æï¼è¯·æ´æ°å°ææ°çæ¬ã
+
+reminderOutOfRange=Google Calendar ä»
å
è®¸ææ©äºæ´»å¨å个ææåçæéã
+
+# LOCALIZATION NOTE (syncProgressEvent):
+# %1$S = The name of the calendar that is being synchronized
+# %2$S = The number of events that have been synchronzed
+# %3$S = The total number of events in the synchronization run
+syncProgressEvent=æ£å¨åæ¥ %1$S ç第 %2$S 个äºä»¶ï¼å
± %3$S æ¡
+
+# LOCALIZATION NOTE (syncProgressTask):
+# %1$S = The name of the calendar that is being synchronized
+# %2$S = The number of tasks that have been synchronzed
+# %3$S = The total number of tasks in the synchronization run
+syncProgressTask=æ£å¨åæ¥ %1$S ç第 %2$S 个任å¡ï¼å
± %3$S 个
+
+# LOCALIZATION NOTE (syncStatus):
+# %1$S = The name of the calendar that is being synchronized
+syncStatus=æ£å¨åæ¥è¡æ¥å %1$S
+
+# LOCALIZATION NOTE (requestWindowDescription):
+# %1$S - The session id (email) used for authentication
+requestWindowDescription=Google Calendar æä¾è
æ³è¦è®¿é®æ¨ç %1$S è´¦å·ä»¥ä¾¿å忍çäºä»¶åä»»å¡ãæ¨çè´¦å·å¯ç å°ä¼ç´æ¥ä»çµèä¼ éç» Googleï¼ä¸ä¼è¢«å
¶ä»äººç¥æã
+
+# LOCALIZATION NOTE (requestWindowTitle)
+# %1$S - The session id (email) used for authentication
+requestWindowTitle=ç»å½æ¨çè´¦å· %1$S
diff --git a/calendar/chrome/calendar/providers/wcap/wcap.properties b/calendar/chrome/calendar/providers/wcap/wcap.properties
new file mode 100755
index 00000000000..9820d5c4bdb
--- /dev/null
+++ b/calendar/chrome/calendar/providers/wcap/wcap.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/.
+
+# args: host
+accessingServerFailedError.text=æ æ³è®¿é®æå¡å¨ %1$Sï¼
+loginFailed.text=ç»å½å¤±è´¥ææ æçä¼è¯ IDã
+accessDenied.text=ç¨æ·æ æååã
+
+# args: host
+noHttpsConfirmation.text=ç»å½ %1$S ä¸å®å
¨ï¼è¯¥æå¡å¨ä¸æ¯æ HTTPSã\næ¯å¦ç»§ç»ï¼
+noHttpsConfirmation.check.text=ä¸å询é®ã
+noHttpsConfirmation.label=è¦å!
+
+# args: host, prodId, serverVersion, wcapVersion
+insufficientWcapVersionConfirmation.text=æå¡å¨ %1$S ï¼%2$S, v%3$S, WCAP v%4$Sï¼ ä¸æ¯ææé WCAP çæ¬ï¼æéæä½çæ¬ä¸º 3.0.0ã\næ¯å¦ç»§ç»ï¼
+insufficientWcapVersionConfirmation.label=ä¸å
¼å®¹ç WCAP çæ¬!
+
+loginDialog.label=æ¥åæå¡å¨éè¦å¯ç
+
+privateItem.title.text=ç§äºº
+confidentialItem.title.text=æºå¯
+busyItem.title.text=ç¹å¿
diff --git a/calendar/chrome/calendar/timezones.properties b/calendar/chrome/calendar/timezones.properties
new file mode 100755
index 00000000000..c9a1d16f74b
--- /dev/null
+++ b/calendar/chrome/calendar/timezones.properties
@@ -0,0 +1,482 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# extension:
+extensions.calendar-timezones@mozilla.org.name=ç¨äº Mozilla Calendar çæ¶åºå®ä¹
+extensions.calendar-timezones@mozilla.org.description=Lightning æéçæ¶åºå®ä¹
+extensions.calendar-timezones@mozilla.org.creator=Mozilla Calendar 项ç®
+
+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=ç¾å½/Kralendijk
+pref.timezone.America.Lower_Princes=ç¾æ´²/Lower Princes
+pref.timezone.America.Metlakatla=ç¾å½/Metlakatla
+pref.timezone.America.Sitka=ç¾å½/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=ç¾æ´²/è¬å¡é¿é·çº³æ¯
diff --git a/calendar/chrome/lightning/lightning-toolbar.dtd b/calendar/chrome/lightning/lightning-toolbar.dtd
new file mode 100755
index 00000000000..bdbf5b70ae2
--- /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..a8f67f7444d
--- /dev/null
+++ b/calendar/chrome/lightning/lightning.dtd
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/lightning/lightning.properties b/calendar/chrome/lightning/lightning.properties
new file mode 100755
index 00000000000..02dda6d7bd2
--- /dev/null
+++ b/calendar/chrome/lightning/lightning.properties
@@ -0,0 +1,222 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 æ æ³å¤ççäºä»¶ã
+imipBarProcessingFailed=å¤çæ¶æ¯å¤±è´¥. ç¶æ: %1$S.
+imipBarNotWritable=对éè¯·çæ¥åé
ç½®æ¯ä¸å¯åçï¼è¯·æ£æ¥è¯¥æ¥åç屿§ã
+imipSendMail.title=çµåé®ä»¶éç¥
+imipSendMail.text=æ¨æ³è¦ç«å³ååºéç¥çµåé®ä»¶å?
+imipSendMail.Outlook2000CompatMode.text=æ¯æ Outlook 2000 å Outlook 2002/XP
+imipNoIdentity=æ
+imipNoCalendarAvailable=没æå¯ç¨çå¯åæ¥åã
+
+itipReplySubject=äºä»¶é请åå¤ï¼ %1$S
+itipReplyBodyAccept=%1$S å·²ç»æ¥åäºæ¨çäºä»¶é请ã
+itipReplyBodyDecline=%1$S å·²ç»æç»äºæ¨çäºä»¶é请ã
+itipReplySubjectAccept=äºä»¶é请åå¤ï¼å·²æ¥åï¼ï¼%1$S
+itipReplySubjectDecline=äºä»¶é请åå¤ï¼æç»ï¼ï¼%1$S
+itipReplySubjectTentative=äºä»¶é请åå¤ï¼ä¸ç¡®å®ï¼ï¼%1$S
+itipRequestSubject=äºä»¶éè¯·ï¼ %1$S
+itipRequestUpdatedSubject=å·²æ´æ°æ¶é´é请ï¼%1$S
+itipRequestBody=%1$S å·²ç»é请æ¨å° %2$S
+itipCancelSubject=äºä»¶å·²åæ¶ï¼%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(integrationLabel): Used by the notification bar shown when
+# Lightning is installed from the distribution folder. To trigger it, start a
+# new profile without Lightning in a previous Thunderbird version, then upgrade
+# to a Thunderbird that has Lightning packaged. See bug 1130852 for details.
+integrationLabel=%1$S ç°å¨ä¹æ´åäº %2$S æ©å±çæ¥ååè½ã
+integrationLearnMoreButton=详ç»ä¿¡æ¯
+integrationLearnMoreAccessKey=m
+integrationOptOutButton=ç¦ç¨
+integrationOptOutAccessKey=D
+integrationKeepItButton=ä¿ç
+integrationKeepItAccessKey=K
+
+# LOCALIZATION_NOTE(integrationRestartLabel): At the current time its not yet
+# clear if we will be completely uninstalling Lightning or disabling it. Please
+# translate this string in a general manner, so that it makes sense for both
+# options.
+integrationRestartLabel=%1$S å°ä¼å¨æ¨ä¸æ¬¡éæ°å¯å¨ %2$S æ¶è¢«ç§»é¤ï¼æ¨å¯ä»¥éæ¶å°éå ç»ä»¶ç®¡çå¨ä¸æ·»å 忥ã
+integrationRestartButton=ç«å³éæ°å¯å¨
+integrationRestartAccessKey=R
+integrationUndoButton=æ¤é
+integrationUndoAccessKey=U
+
+# 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..4b7afb536aa
--- /dev/null
+++ b/chat/conversations.properties
@@ -0,0 +1,80 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (targetChanged):
+# %1$S is the new conversation title (display name of the new target),
+# %2$S is the protocol name used for the new target.
+targetChanged=å°ä¼ç»§ç» %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%
diff --git a/chat/dateFormat.properties b/chat/dateFormat.properties
new file mode 100644
index 00000000000..bf5cc310ac4
--- /dev/null
+++ b/chat/dateFormat.properties
@@ -0,0 +1,62 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+month.1.Mmm=1æ
+month.2.Mmm=2æ
+month.3.Mmm=3æ
+month.4.Mmm=4æ
+month.5.Mmm=5æ
+month.6.Mmm=6æ
+month.7.Mmm=7æ
+month.8.Mmm=8æ
+month.9.Mmm=9æ
+month.10.Mmm=10æ
+month.11.Mmm=11æ
+month.12.Mmm=12æ
+
+month.1.name=䏿
+month.2.name=äºæ
+month.3.name=䏿
+month.4.name=åæ
+month.5.name=äºæ
+month.6.name=å
æ
+month.7.name=䏿
+month.8.name=å
«æ
+month.9.name=乿
+month.10.name=åæ
+month.11.name=å䏿
+month.12.name=åäºæ
+
+day.1.name=æææ¥
+day.2.name=ææä¸
+day.3.name=ææäº
+day.4.name=ææä¸
+day.5.name=ææå
+day.6.name=ææäº
+day.7.name=ææå
+
+day.1.Mmm=卿¥
+day.2.Mmm=å¨ä¸
+day.3.Mmm=å¨äº
+day.4.Mmm=å¨ä¸
+day.5.Mmm=å¨å
+day.6.Mmm=å¨äº
+day.7.Mmm=å¨å
+
+day.1.short=æ¥
+day.2.short=ä¸
+day.3.short=äº
+day.4.short=ä¸
+day.5.short=å
+day.6.short=äº
+day.7.short=å
+
+noon=ä¸å
+midnight=æ·±å¤
+
+AllDay=å
¨å¤©
+
+# LOCALIZATION NOTE (finduri-MonthYear):
+# %1$S is the month name, %2$S is the year (4 digits format).
+finduri-MonthYear=%2$Så¹´%1$S
diff --git a/chat/facebook.properties b/chat/facebook.properties
new file mode 100755
index 00000000000..825cb877548
--- /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 Chat å·²ä¸åæ¯æï¼å 为 Facebook ç¦ç¨äºå®ä»¬ç XMPP ç½å
³ã
diff --git a/chat/imtooltip.properties b/chat/imtooltip.properties
new file mode 100755
index 00000000000..19923cf3bd5
--- /dev/null
+++ b/chat/imtooltip.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/.
+
+buddy.username=ç¨æ·å
+buddy.account=è´¦æ·
+contact.tags=æ ç¾
diff --git a/chat/irc.properties b/chat/irc.properties
new file mode 100755
index 00000000000..8c2eb1b8dda
--- /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..f2df2b6c3ed
--- /dev/null
+++ b/chat/matrix.properties
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.connectServer=æå¡å¨
+options.connectPort=端å£
+
+# 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)
diff --git a/chat/skype.properties b/chat/skype.properties
new file mode 100644
index 00000000000..b495066f629
--- /dev/null
+++ b/chat/skype.properties
@@ -0,0 +1,14 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (connection.*):
+# These will show in the account manager to show progress during a connection.
+connecting.authenticating=æ£å¨éªè¯èº«ä»½
+connecting.registrationToken=æ£å¨è·å注å令ç
+
+# LOCALIZATION NOTE (error.*):
+# These will show in the account manager if the account is disconnected
+# because of an error.
+error.auth=è³æå¡å¨ç身份éªè¯å¤±è´¥
+error.registrationToken=è·å注å令ç失败
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..9d7cbad6b22
--- /dev/null
+++ b/chat/twitter.properties
@@ -0,0 +1,120 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# 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>]*: 忢å
³æ³¨ä¸ä¸ªæå¤ä¸ªç¨æ·ã
diff --git a/chat/xmpp.properties b/chat/xmpp.properties
new file mode 100755
index 00000000000..8f928076e39
--- /dev/null
+++ b/chat/xmpp.properties
@@ -0,0 +1,274 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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=å½å®¶
+
+# 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=%1$S å·²è¢«ç§»åºæ¿é´ï¼å 为 %2$S åæ´ä¸ºä»
æåã
+conversation.message.removedNonMember.you=æ¨å·²è¢«ç§»åºæ¤æ¿é´ï¼å 为å®çé
ç½®åæ´ä¸ºä»
æåã
+# %1$S is the person who changed the room configuration.
+conversation.message.removedNonMember.you.actor=æ¨å·²è¢«ç§»åºæ¿é´ï¼å 为 %1$S åæ´ä¸ºä»
æåã
+
+# LOCALIZATION NOTE (conversation.message.MUCShutdown):
+# These are displayed as a system message when a participant is removed from
+# a room because of a system shutdown.
+conversation.message.mucShutdown=æ¨å·²è¢«ç§»åºæ¿é´ï¼å 为系ç»å
³æºã
+
+# LOCALIZATION NOTE (conversation.message.version*):
+# %1$S is the name of the user whose version was requested.
+# %2$S is the client name response from the client.
+# %3$S is the client version response from the client.
+# %4$S is the operating system(OS) response from the client.
+conversation.message.version=%1$S æ£å¨ä½¿ç¨ "%2$S %3$S"ã
+conversation.message.versionWithOS=%1$S æ£å¨å¨ %4$S ä¸ä½¿ç¨ "%2$S %3$S"ã
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.resource=èµæº
+options.priority=ä¼å
级
+options.connectionSecurity=è¿æ¥å®å
¨æ§
+options.connectionSecurity.requireEncryption=è¦æ±å å¯
+options.connectionSecurity.opportunisticTLS=妿å¯ç¨ï¼ä½¿ç¨å å¯
+options.connectionSecurity.allowUnencryptedAuth=å
许åéæªç»å å¯çå¯ç
+options.connectServer=æå¡å¨
+options.connectPort=端å£
+options.domain=å
+
+# LOCALIZATION NOTE (*.protocolName)
+# This name is used whenever the name of the protocol is shown.
+gtalk.protocolName=Google Talk
+odnoklassniki.protocolName=Odnoklassniki
+
+# LOCALIZATION NOTE (gtalk.usernameHint):
+# This is displayed inside the accountUsernameInfoWithDescription
+# string defined in imAccounts.properties when the user is
+# configuring a Google Talk account.
+gtalk.usernameHint=é®ç®±å°å
+
+# LOCALIZATION NOTE (odnoklassniki.usernameHint):
+# This is displayed inside the accountUsernameInfoWithDescription
+# string defined in imAccounts.properties when the user is
+# configuring a Odnoklassniki account.
+odnoklassniki.usernameHint=é
ç½®æä»¶ç¼å·
+
+# 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/VariablesView.dtd b/devtools/client/VariablesView.dtd
new file mode 100755
index 00000000000..c3130dfb375
--- /dev/null
+++ b/devtools/client/VariablesView.dtd
@@ -0,0 +1,12 @@
+
+
+
+
+
+
diff --git a/devtools/client/aboutdebugging.dtd b/devtools/client/aboutdebugging.dtd
new file mode 100644
index 00000000000..d07ae7542cf
--- /dev/null
+++ b/devtools/client/aboutdebugging.dtd
@@ -0,0 +1,5 @@
+
+
+
diff --git a/devtools/client/aboutdebugging.properties b/devtools/client/aboutdebugging.properties
new file mode 100644
index 00000000000..853a58fa487
--- /dev/null
+++ b/devtools/client/aboutdebugging.properties
@@ -0,0 +1,210 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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 (debug):
+# This string is displayed as a label of the button that starts
+# debugging a service worker.
+debug = è°è¯
+
+# LOCALIZATION NOTE (push):
+# This string is displayed as a label of the button that pushes a test payload
+# to a service worker.
+push = æ¨é
+
+# LOCALIZATION NOTE (start):
+# This string is displayed as a label of the button that starts a service worker.
+start = å¼å§
+
+scope = èå´
+unregister = åæ¶æ³¨å
+
+pushService = æ¨éæå¡
+
+# LOCALIZATION NOTE (fetch):
+# Fetch is an event type and should not be translated.
+fetch = Fetch
+
+# LOCALIZATION NOTE (listeningForFetchEvents):
+# This is used to display the state of the SW in regard to fetch events.
+listeningForFetchEvents = æ£å¨çå¬ fetch äºä»¶ã
+
+# LOCALIZATION NOTE (notListeningForFetchEvents):
+# This is used to display the state of the SW in regard to fetch events.
+notListeningForFetchEvents = æªå¨çå¬ fetch äºä»¶ã
+
+# LOCALIZATION NOTE (addons):
+# This string is displayed as a header of the about:debugging#addons page.
+addons = éå ç»ä»¶
+
+# LOCALIZATION NOTE (addonDebugging.label):
+# This string is displayed next to a check box that enables the user to switch
+# addon debugging on/off.
+addonDebugging.label = å¯ç¨éå ç»ä»¶è°è¯
+
+# LOCALIZATION NOTE (addonDebugging.tooltip):
+# This string is displayed in a tooltip that appears when hovering over a check
+# box that switches addon debugging on/off.
+addonDebugging.tooltip = å¼å¯æ¤é¡¹å°å
许æ¨è°è¯éå ç»ä»¶åæµè§å¨ç许å¤é¨å
+
+# LOCALIZATION NOTE (addonDebugging.learnMore):
+# This string is displayed as a link next to addonDebugging.label and leads the user to
+# the MDN documentation page for about:debugging.
+# (https://developer.mozilla.org/docs/Tools/about:debugging#Enabling_add-on_debugging)
+addonDebugging.learnMore = 详ç»äºè§£
+
+# LOCALIZATION NOTE (loadTemporaryAddon):
+# This string is displayed as a label of a button that allows the user to
+# load additional add-ons.
+loadTemporaryAddon = 临æ¶è½½å
¥éå ç»ä»¶
+
+# LOCALIZATION NOTE (addonInstallError):
+# This string is displayed when an error occurs while installing an addon.
+# %S will be replaced with the error message.
+addonInstallError = å¨å®è£
æ¶åçé误ï¼%S
+
+# LOCALIZATION NOTE (retryTemporaryInstall):
+# This string is displayed as a label of a button that allows the user to
+# retry a failed installation of a temporary add-on.
+retryTemporaryInstall = éè¯
+
+# LOCALIZATION NOTE (extensions):
+# This string is displayed as a header above the list of loaded add-ons.
+extensions = æ©å±
+
+# LOCALIZATION NOTE (temporaryExtensions):
+# This string is displayed as a header above the list of temporarily loaded add-ons.
+temporaryExtensions = ä¸´æ¶æ©å±
+
+# LOCALIZATION NOTE (internalUUID):
+# This string is displayed as a label for the internal UUID of an extension.
+# The UUID is generated for this profile on install.
+internalUUID = å
é¨ UUID
+
+# LOCALIZATION NOTE (extensionID):
+# This string is displayed as a label for the ID of an extension. This is not the same as the internal UUID.
+extensionID = æ©å± ID
+
+# LOCALIZATION NOTE (manifestURL):
+# This string is displayed as a link for the manifest of an extension,
+# accessible in a browser, such as moz-extension://[internalUUID]/manifest.json.
+manifestURL = Manifest URL
+
+# LOCALIZATION NOTE (webExtTip):
+# This string is displayed as a message below the list of temporarily loaded add-ons.
+# Web-ext is a command line tool for web-extensions developers.
+# See https://developer.mozilla.org/Add-ons/WebExtensions/Getting_started_with_web-ext
+webExtTip = æ¨å¯ä»¥ä»å½ä»¤è¡ä½¿ç¨ web-ext æ¥ä¸´æ¶å è½½ WebExtensionã
+
+# LOCALIZATION NOTE (webExtTip.learnMore):
+# This string is displayed as a link next to webExtTip and leads the user to the MDN
+# documentation page for web-ext.
+# (https://developer.mozilla.org/Add-ons/WebExtensions/Getting_started_with_web-ext)
+webExtTip.learnMore = 详ç»äºè§£
+
+# LOCALIZATION NOTE (temporaryID):
+# This string is displayed as a message about the add-on having a temporaryID.
+temporaryID = æ¤ WebExtension æä¸ä¸ªä¸´æ¶ IDã
+
+# LOCALIZATION NOTE (temporaryID.learnMore):
+# This string is displayed as a link next to the temporaryID message and leads
+# the user to MDN.
+temporaryID.learnMore = 详ç»äºè§£
+
+# LOCALIZATION NOTE (legacyExtensionWarning):
+# This string is displayed as a warning message when loading a temporary legacy extension.
+legacyExtensionWarning = è¿æ¯ä¸ä¸ªä¼ ç»æ©å±ã请注æï¼è¿å·²ä¸åå
忝æã请é
读ç¸å
³ææ¡£å¹¶è°¨æ
使ç¨ã
+
+# LOCALIZATION NOTE (legacyExtensionWarning.learnMore):
+# This string is displayed as a link next to the legacyExtensionWarning message and leads
+# the user to https://wiki.mozilla.org/Add-ons/Future_of_Bootstrap.
+legacyExtensionWarning.learnMore = 详ç»äºè§£
+
+# LOCALIZATION NOTE (selectAddonFromFile2):
+# This string is displayed as the title of the file picker that appears when
+# the user clicks the 'Load Temporary Add-on' button
+selectAddonFromFile2 = éæ©æ¸
åæä»¶æè
å
(.xpi)
+
+# LOCALIZATION NOTE (reload):
+# This string is displayed as a label of the button that reloads a given addon.
+reload = éæ°è½½å
¥
+
+# LOCALIZATION NOTE (remove):
+# This string is displayed as a label of the button that will remove a given addon.
+remove = ç§»é¤
+
+# LOCALIZATION NOTE (location):
+# This string is displayed as a label for the filesystem location of an extension.
+location = ä½ç½®
+
+# LOCALIZATION NOTE (workers):
+# This string is displayed as a header of the about:debugging#workers page.
+workers = Worker
+
+serviceWorkers = Service Workers
+sharedWorkers = Shared Workers
+otherWorkers = å
¶ä» Workers
+
+# LOCALIZATION NOTE (running):
+# This string is displayed as the state of a service worker in RUNNING state.
+running = æ£å¨è¿è¡
+
+# LOCALIZATION NOTE (stopped):
+# This string is displayed as the state of a service worker in STOPPED state.
+stopped = 已忢
+
+# LOCALIZATION NOTE (registering):
+# This string is displayed as the state of a service worker for which no service worker
+# registration could be found yet. Only active registrations are visible from
+# about:debugging, so such service workers are considered as registering.
+registering = æ£å¨æ³¨å
+
+# LOCALIZATION NOTE (tabs):
+# This string is displayed as a header of the about:debugging#tabs page.
+tabs = æ ç¾é¡µ
+
+# LOCALIZATION NOTE (pageNotFound):
+# This string is displayed as the main message at any error/invalid page.
+pageNotFound = æ¾ä¸å°é¡µé¢
+
+# LOCALIZATION NOTE (doesNotExist):
+# This string is displayed as an error message when navigating to an invalid page
+# %S will be replaced by the name of the page at run-time.
+doesNotExist = #%S ä¸åå¨ï¼
+
+# LOCALIZATION NOTE (nothing):
+# This string is displayed when the list of workers is empty.
+nothing = å°æªå¼å§ã
+
+# LOCALIZATION NOTE (configurationIsNotCompatible.label):
+# This string is displayed in about:debugging#workers if the current configuration of the
+# browser is incompatible with service workers. More details at
+# https://developer.mozilla.org/en-US/docs/Tools/about%3Adebugging#Service_workers_not_compatible
+configurationIsNotCompatible.label = æ¨çæµè§å¨é
ç½®ä¸ Service Worker ä¸å
¼å®¹ã
+
+# LOCALIZATION NOTE (configurationIsNotCompatible.learnMore):
+# This string is displayed as a link next to configurationIsNotCompatible.label and leads
+# the user to the MDN documentation page for about:debugging, on the section explaining
+# why service workers might not be available.
+# (https://developer.mozilla.org/en-US/docs/Tools/about%3Adebugging#Service_workers_not_compatible)
+configurationIsNotCompatible.learnMore = 详ç»äºè§£
+
+# LOCALIZATION NOTE (multiProcessWarningTitle):
+# This string is displayed as a warning message on top of the about:debugging#workers
+# page when multi-e10s is enabled
+multiProcessWarningTitle = Service Worker è°è¯ç®åå°ä¸å
¼å®¹å¤ä¸ªå
容è¿ç¨ã
+
+# LOCALIZATION NOTE (multiProcessWarningMessage2):
+# This string is displayed in the warning section for multi-e10s in
+# about:debugging#workers
+multiProcessWarningMessage2 = å½åçæ¬ä¸å¯ä»¥ä¿®æ¹é¦é项âdom.ipc.multiOptOutâ以强å¶ä½¿ç¨å个å
容è¿ç¨ã
+
+# LOCALIZATION NOTE (multiProcessWarningUpdateLink2):
+# This string is the text content of a link in the warning section for multi-e10s in
+# about:debugging#workers. The link updates the pref and restarts the browser.
+multiProcessWarningUpdateLink2 = ææ¶ä¸ç¨å¤ä¸ªå
容è¿ç¨
+
+# LOCALIZATION NOTE (multiProcessWarningConfirmUpdate2):
+# This string is displayed as a confirmation message when the user clicks on
+# the multiProcessWarningUpdateLink in about:debugging#workers
+multiProcessWarningConfirmUpdate2 = éæ©éåºå¤è¿ç¨å®éªï¼
diff --git a/devtools/client/accessibility.properties b/devtools/client/accessibility.properties
new file mode 100644
index 00000000000..ea3c30f0f7a
--- /dev/null
+++ b/devtools/client/accessibility.properties
@@ -0,0 +1,88 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Accessibility panel
+# which is available from the Web Developer sub-menu -> 'Accessibility'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (accessibility.role): A title text used for Accessibility
+# tree header column that represents accessible element role.
+accessibility.role=è§è²
+
+# LOCALIZATION NOTE (accessibility.name): A title text used for Accessibility
+# tree header column that represents accessible element name.
+accessibility.name=åç§°
+
+# LOCALIZATION NOTE (accessibility.logo): A title text used for Accessibility
+# logo used on the accessibility panel landing page.
+accessibility.logo=æ éç¢ç¯å¢æ å¿
+
+# LOCALIZATION NOTE (accessibility.properties): A title text used for header
+# for Accessibility details sidebar.
+accessibility.properties=屿§
+
+# LOCALIZATION NOTE (accessibility.treeName): A title text used for
+# Accessibility tree (that represents accessible element name) container.
+accessibility.treeName=æ éç¢å
ç´ æ
+
+# LOCALIZATION NOTE (accessibility.accessible.notAvailable): A title text
+# displayed when accessible sidebar panel does not have an accessible object to
+# display.
+accessibility.accessible.notAvailable=æ²¡ææ éç¢ç¯å¢ä¿¡æ¯
+
+# LOCALIZATION NOTE (accessibility.enable): A title text for Enable
+# accessibility button used to enable accessibility service.
+accessibility.enable=æå¼æ éç¢åè½
+
+# LOCALIZATION NOTE (accessibility.enabling): A title text for Enable
+# accessibility button used when accessibility service is being enabled.
+accessibility.enabling=æ£å¨æå¼æ éç¢åè½â¦
+
+# LOCALIZATION NOTE (accessibility.disable): A title text for Disable
+# accessibility button used to disable accessibility service.
+accessibility.disable=å
³éæ éç¢åè½
+
+# LOCALIZATION NOTE (accessibility.disabling): A title text for Disable
+# accessibility button used when accessibility service is being
+# disabled.
+accessibility.disabling=æ£å¨å
³éæ éç¢åè½â¦
+
+# LOCALIZATION NOTE (accessibility.pick): A title text for Picker button
+# button used to pick accessible objects from the page.
+accessibility.pick=ä»é¡µé¢ä¸éæ©æ éç¢å¯¹è±¡
+
+# LOCALIZATION NOTE (accessibility.disable.disabledTitle): A title text used for
+# a tooltip for Disable accessibility button when accessibility service can not
+# be disabled. It is the case when a user is using a 3rd party accessibility
+# tool such as screen reader.
+accessibility.disable.disabledTitle=æ æ³å
³éæ éç¢æå¡ãå¼åè
å·¥å
·ä»¥å¤çç¨åºæ£å¨ä½¿ç¨è¿é¡¹åè½ã
+
+# LOCALIZATION NOTE (accessibility.disable.enabledTitle): A title text used for
+# a tooltip for Disable accessibility button when accessibility service can be
+# disabled.
+accessibility.disable.enabledTitle=å°å
³éæææ ç¾é¡µåçªå£çæ éç¢æå¡ã
+
+# LOCALIZATION NOTE (accessibility.enable.disabledTitle): A title text used for
+# a tooltip for Enabled accessibility button when accessibility service can not
+# be enabled.
+accessibility.enable.disabledTitle=æ æ³æå¼æ éç¢æå¡ãæ éç¢æå¡éç§å好设置ä¸å¼ºå¶å
³éäºè¿é¡¹åè½ã
+
+# LOCALIZATION NOTE (accessibility.enable.enabledTitle): A title text used for
+# a tooltip for Enabled accessibility button when accessibility service can be
+# enabled.
+accessibility.enable.enabledTitle=å°æå¼æææ ç¾é¡µåçªå£çæ éç¢æå¡ã
+
+# LOCALIZATION NOTE (accessibility.description.general): A title text used when
+# accessibility service description is provided before accessibility inspector
+# is enabled.
+accessibility.description.general=æ éç¢åè½ä¼å¯¹æ§è½äº§çè´é¢å½±åï¼é»è®¤ä¸ä¼æå¼ã请èèå¨åæ¢è³å
¶ä»å¼åè
å·¥å
·é¢æ¿åå
³éæ éç¢åè½ã
+
+# LOCALIZATION NOTE (accessibility.description.oldVersion): A title text used
+# when accessibility service description is provided when a client is connected
+# to an older version of accessibility actor.
+accessibility.description.oldVersion=æ¨è¿æ¥çè°è¯æå¡å¨çæ¬å¤ªæ§ãè¥è¦ä½¿ç¨æ éç¢é¢æ¿ï¼è¯·è¿æ¥å°ææ°ççè°è¯æå¡å¨ã
diff --git a/devtools/client/animationinspector.properties b/devtools/client/animationinspector.properties
new file mode 100644
index 00000000000..d0872c4a88b
--- /dev/null
+++ b/devtools/client/animationinspector.properties
@@ -0,0 +1,199 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.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.invalidElementSelected):
+# This is the label shown in the panel when an invalid node is currently
+# selected in the inspector (i.e. a non-element node or a node that is not
+# animated).
+panel.invalidElementSelected=æ²¡ææ¾å°å½åå
ç´ æå¨ç»ã
+
+# LOCALIZATION NOTE (panel.selectElement): This is the label shown in the panel
+# when an invalid node is currently selected in the inspector, to invite the
+# user to select a new node by clicking on the element-picker icon.
+panel.selectElement=æé页é¢ä¸çå¦ä¸ä¸ªå
ç´ ã
+
+# LOCALIZATION NOTE (panel.invalidElementSelected):
+# 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 (panel.allAnimations): This is the label shown at the bottom of
+# the panel, in a toolbar, to let the user know the toolbar applies to all
+# animations, not just the ones applying to the current element.
+panel.allAnimations=ææå¨ç»
+
+# 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.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.animationIterationStartLabel):
+# 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
+player.animationIterationStartLabel=è¿ä»£å¼å§ï¼%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.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.rateSelectorTooltip):
+# This string is displayed in the timeline toolbar, as the tooltip of the
+# drop-down list that can be used to change the rate at which the animations
+# run.
+timeline.rateSelectorTooltip=设置å¨ç»ææ¾éç
+
+# LOCALIZATION NOTE (timeline.pauseResumeButtonTooltip):
+# 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.pauseResumeButtonTooltip):
+# 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%%
+
+# LOCALIZATION NOTE (detail.headerTitle):
+# This string is displayed on header label in .animation-detail-header.
+detail.headerTitle=å¨ç»å±æ§ï¼
+
+# LOCALIZATION NOTE (detail.header.closeLabel):
+# This string is displayed in a tooltip of close button for animated properties
+detail.header.closeLabel=å
³éå¨ç»å±æ§é¢æ¿
diff --git a/devtools/client/app-manager.properties b/devtools/client/app-manager.properties
new file mode 100755
index 00000000000..cbe916c3537
--- /dev/null
+++ b/devtools/client/app-manager.properties
@@ -0,0 +1,29 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+validator.nonExistingFolder=é¡¹ç®æä»¶å¤¹ä¸åå¨
+validator.expectProjectFolder=æ¤é¡¹ç®æä»¶å¤¹ä¸åºè¯¥æ¯æä»¶
+validator.noManifestFile=项ç®çæ ¹æä»¶å¤¹ä¸éè¦æä¸ä¸ªæ¸
åæä»¶ï¼å°è£
å¼åºç¨åºå°å®å½å为âmanifest.webappâï¼èéå ç»ä»¶ååºå°ä»å½å为âmanifest.jsonâã
+validator.invalidManifestURL=æ æçæ¸
åæä»¶ URLâ%Sâ
+# LOCALIZATION NOTE (validator.invalidManifestJSON, validator.noAccessManifestURL):
+# %1$S is the error message, %2$S is the URI of the manifest.
+validator.invalidManifestJSON=åºç¨çæ¸
åæä»¶ä¸æ¯ä¸ä¸ªææç JSON æä»¶ï¼%1$S ä½äºï¼ %2$S
+validator.noAccessManifestURL=æ æ³è¯»åæ¸
åæä»¶ï¼%1$S ä½äºï¼%2$S
+# LOCALIZATION NOTE (validator.invalidHostedManifestURL): %1$S is the URI of
+# the manifest, %2$S is the error message.
+validator.invalidHostedManifestURL=æ æçæç®¡çæ¸
åæä»¶ URLâ%1$Sâï¼%2$S
+validator.invalidProjectType=æªç¥ç项ç®ç±»åâ%Sâ
+# LOCALIZATION NOTE (validator.missNameManifestProperty, validator.missIconsManifestProperty):
+# don't translate 'icons' and 'name'.
+validator.missNameManifestProperty=æ¸
åæä»¶ä¸ç¼ºå°å¿
é¡»çânameâã
+validator.missIconsManifestProperty=æ¸
åæä»¶ä¸ç¼ºå°âiconsâã
+validator.missIconMarketplace2=æäº¤åºç¨å°âåºç¨å¸åºâéè¦ä¸ä¸ª 128px ç徿
+validator.invalidAppType=æªç¥çåºç¨ç±»åï¼â%Sâã
+validator.invalidHostedPriviledges=æç®¡åºç¨çç±»åä¸è½æ¯â%Sâã
+validator.noCertifiedSupport=åºç¨ç®¡çå¨å°ä¸è½å®å
¨æ¯æ 'certified' åºç¨ã
+validator.nonAbsoluteLaunchPath=å¯å¨è·¯å¾å¿
须为以â/âå¼å§çç»å¯¹è·¯å¾ï¼â%Sâ
+validator.accessFailedLaunchPath=æ æ³è®¿é®åºç¨çå¯å¨æä»¶â%Sâ
+# LOCALIZATION NOTE (validator.accessFailedLaunchPathBadHttpCode): %1$S is the URI of
+# the launch document, %2$S is the http error code.
+validator.accessFailedLaunchPathBadHttpCode=æ æ³è®¿é®åºç¨çå¯å¨æä»¶â%1$Sâï¼æ¶å° HTTP 代ç %2$S
diff --git a/devtools/client/appcacheutils.properties b/devtools/client/appcacheutils.properties
new file mode 100755
index 00000000000..e3b966f4e14
--- /dev/null
+++ b/devtools/client/appcacheutils.properties
@@ -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/.
+
+# LOCALIZATION NOTE These strings are used inside the Web Console
+# command line which is available from the Web Developer sub-menu
+# -> 'Web Console'.
+# These messages are displayed when an attempt is made to validate a
+# page or a cache manifest using AppCacheUtils.jsm
+
+# 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 (noManifest): the specified page has no cache manifest.
+noManifest=æå®ç页颿²¡ææ¸
åæä»¶ã
+
+# LOCALIZATION NOTE (notUTF8): the associated cache manifest has a character
+# encoding that is not UTF-8. Parameters: %S is the current encoding.
+notUTF8=æ¸
åæä»¶å«æç¼ç 为 %S çåç¬¦ãæ¸
åæä»¶çç¼ç å¿
须为 UTF-8ã
+
+# LOCALIZATION NOTE (badMimeType): the associated cache manifest has a
+# mimetype that is not text/cache-manifest. Parameters: %S is the current
+# mimetype.
+badMimeType=æ¸
åæä»¶ç mimetype 为 %Sãæ¸
åæä»¶ç mimetype å¿
须为 text/cache-manifestã
+
+# LOCALIZATION NOTE (duplicateURI): the associated cache manifest references
+# the same URI from multiple locations. Parameters: %1$S is the URI, %2$S is a
+# list of references to this URI.
+duplicateURI=URI %1$S å¨å¤ä¸ªä½ç½®è¢«å¼ç¨ï¼è¿æ¯ä¸å
许çï¼%2$Sã
+
+# LOCALIZATION NOTE (networkBlocksURI, fallbackBlocksURI): the associated
+# cache manifest references the same URI in the NETWORK (or FALLBACK) section
+# as it does in other sections. Parameters: %1$S is the line number, %2$S is
+# the resource name, %3$S is the line number, %4$S is the resource name, %5$S
+# is the section name.
+networkBlocksURI=NETWORK æ®µä¸ %1$S è¡ï¼%2$Sï¼ä½¿å¾ %5$S æ®µä¸ %3$S è¡ï¼%4$Sï¼ä¸è¢«ç¼åã
+fallbackBlocksURI=FALLBACK æ®µä¸ %1$S è¡ï¼%2$Sï¼ä½¿å¾ %5$S 段 %3$S è¡ï¼%4$Sï¼ä¸è¢«ç¼åã
+
+# LOCALIZATION NOTE (fileChangedButNotManifest): the associated cache manifest
+# references a URI that has a file modified after the cache manifest.
+# Parameters: %1$S is the resource name, %2$S is the cache manifest, %3$S is
+# the line number.
+fileChangedButNotManifest=æä»¶ %1$S å¨ %2$S åææ¹å¨ã卿¸
åæä»¶ä¸çå
å®¹è¢«æ´æ¹åï¼%3$S è¡ä¸ç¼åççæ¬æä¼è¢«æ¿ä»£ã
+
+# LOCALIZATION NOTE (cacheControlNoStore): the specified page has a header
+# preventing caching or storing information. Parameters: %1$S is the resource
+# name, %2$S is the line number.
+cacheControlNoStore=%1$S çç¼åæ§å¶è®¾ç½®ä¸ºä¸åå¨ãåºç¨ç¨åºç¼åå°ä¸ä¼åå¨ %2$S è¡ä¸çæä»¶ã
+
+# LOCALIZATION NOTE (notAvailable): the specified resource is not available.
+# Parameters: %1$S is the resource name, %2$S is the line number.
+notAvailable=%1$S æåäºå¨ %2$S è¡ä¸ä¸å¯ç¨çä¸ä¸ªèµæºã
+
+# LOCALIZATION NOTE (invalidURI): it's used when an invalid URI is passed to
+# the appcache.
+invalidURI=ä¼ éå° AppCacheUtils ç URI æ æã
+
+# LOCALIZATION NOTE (noResults): it's used when a search returns no results.
+noResults=æ¨çæç´¢æ²¡æå¾å°ç»æã
+
+# LOCALIZATION NOTE (cacheDisabled): it's used when the cache is disabled and
+# an attempt is made to view offline data.
+cacheDisabled=æ¨çç£çç¼å被ç¦ç¨äºãè¯·å° about:config 设置 browser.cache.disk.enable çå¼ä¸º true åéè¯ã
+
+# LOCALIZATION NOTE (firstLineMustBeCacheManifest): the associated cache
+# manifest has a first line that is not "CACHE MANIFEST". Parameters: %S is
+# the line number.
+firstLineMustBeCacheManifest=%S è¡ä½ä¸ºæ¸
åæä»¶ç第ä¸è¡å¿
é¡»æ¯âCACHE MANIFESTâã
+
+# LOCALIZATION NOTE (cacheManifestOnlyFirstLine2): the associated cache
+# manifest has "CACHE MANIFEST" on a line other than the first line.
+# Parameters: %S is the line number where "CACHE MANIFEST" appears.
+cacheManifestOnlyFirstLine2=âCACHE MANIFESTâä»
å¨ç¬¬ä¸è¡ææï¼ç¶èå´åºç°å¨ç¬¬%Sè¡
+
+# LOCALIZATION NOTE (asteriskInWrongSection2): the associated cache manifest
+# has an asterisk (*) in a section other than the NETWORK section. Parameters:
+# %1$S is the section name, %2$S is the line number.
+asteriskInWrongSection2=第 %2$S è¡ç %1$S 段é误å°ä½¿ç¨äºæå·ï¼*ï¼ãè¥ NETWORK 段ä»
å
å«ä¸ä¸ªåæå·ï¼åä»»ä½å¹¶æªå卿¸
åæä»¶ä¸ç URL å°è¢«è§ä¸ºåå¨ NETWORK 段ä¸ï¼å¦åè¿äº URL å°è¢«è§ä¸ºä¸å¯ç¨ãæå·ä¸å¾ç¨ä½å
¶ä»ç¨æ³ã
+
+# LOCALIZATION NOTE (escapeSpaces1): the associated cache manifest has a space
+# in a URI. Spaces must be replaced with %20. Parameters: %S is the line
+# number where this error occurs.
+# %% will be displayed as a single % character (% is commonly used to define
+# format specifiers, so it needs to be escaped).
+escapeSpaces1=第 %S è¡ URI ä¸çç©ºæ ¼åºè¯¥è¢«æ¿æ¢ä¸º %%20ã
+
+# LOCALIZATION NOTE (slashDotDotSlashBad): the associated cache manifest has a
+# URI containing /../, which is invalid. Parameters: %S is the line number
+# where this error occurs.
+slashDotDotSlashBad=%S è¡ä¸ï¼/../ 䏿¯ææç URI åç¼ã
+
+# LOCALIZATION NOTE (tooManyDotDotSlashes): the associated cache manifest has
+# a URI containing too many ../ operators. Too many of these operators mean
+# that the file would be below the root of the site, which is not possible.
+# Parameters: %S is the line number where this error occurs.
+tooManyDotDotSlashes=å¨ %S è¡å«æè¿å¤çç¹ç¹æçº¿è¿ç®ç¬¦ (../)ã
+
+# LOCALIZATION NOTE (fallbackUseSpaces): the associated cache manifest has a
+# FALLBACK section containing more or less than the standard two URIs
+# separated by a single space. Parameters: %S is the line number where this
+# error occurs.
+fallbackUseSpaces=%S è¡ä¸ï¼FALLBACK 段åªå
è®¸ç©ºæ ¼åéçä¸¤ä¸ªèµæºæ è¯ç¬¦ã
+
+# LOCALIZATION NOTE (fallbackAsterisk2): the associated cache manifest has a
+# FALLBACK section that attempts to use an asterisk (*) as a wildcard. In this
+# section the URI is simply a path prefix. Parameters: %S is the line number
+# where this error occurs.
+fallbackAsterisk2=第%Sè¡ç FALLBACK 段é误å°ä½¿ç¨äºæå·ï¼*ï¼ãFALLBACK 段ä¸ç URL ä»
é使ç¨ç¬¦å请æ±ç URL åç¼ã
+
+# LOCALIZATION NOTE (settingsBadValue): the associated cache manifest has a
+# SETTINGS section containing something other than the valid "prefer-online"
+# or "fast". Parameters: %S is the line number where this error occurs.
+settingsBadValue=%S è¡ä¸ï¼SETTINGS 段åªè½å
å«åä¸ä¸ä¸ªå¼ï¼"prefer-online" æ "fast"ã
+
+# LOCALIZATION NOTE (invalidSectionName): the associated cache manifest
+# contains an invalid section name. Parameters: %1$S is the section name, %2$S
+# is the line number.
+invalidSectionName=%2$S è¡ä¸å卿 æç段åç§°ï¼%1$Sï¼ã
diff --git a/devtools/client/boxmodel.properties b/devtools/client/boxmodel.properties
new file mode 100644
index 00000000000..d820db42e49
--- /dev/null
+++ b/devtools/client/boxmodel.properties
@@ -0,0 +1,51 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE : FILE This file contains the Layout View strings.
+# The Layout View is a panel displayed in the computed view tab of the Inspector sidebar.
+
+# LOCALIZATION NOTE : FILE The correct localization of this file might be to
+# keep it in English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (boxmodel.title) This is the title of the box model panel and is
+# displayed as a label.
+boxmodel.title=çæ¨¡å
+
+# LOCALIZATION NOTE (boxmodel.position) This refers to the position in the box model and
+# might be displayed as a label or as a tooltip.
+boxmodel.position=ä½ç½®
+
+# LOCALIZATION NOTE (boxmodel.margin) This refers to the margin in the box model and
+# might be displayed as a label or as a tooltip.
+boxmodel.margin=å¤è¾¹è·
+
+# LOCALIZATION NOTE (boxmodel.border) This refers to the border in the box model and
+# might be displayed as a label or as a tooltip.
+boxmodel.border=è¾¹æ¡
+
+# LOCALIZATION NOTE (boxmodel.padding) This refers to the padding in the box model and
+# might be displayed as a label or as a tooltip.
+boxmodel.padding=å¡«å
+
+# LOCALIZATION NOTE (boxmodel.content) This refers to the content in the box model and
+# might be displayed as a label or as a tooltip.
+boxmodel.content=å
容
+
+# LOCALIZATION NOTE: (boxmodel.geometryButton.tooltip) This label is displayed as a
+# tooltip that appears when hovering over the button that allows users to edit the
+# position of an element in the page.
+boxmodel.geometryButton.tooltip=ç¼è¾ä½ç½®
+
+# LOCALIZATION NOTE: (boxmodel.propertiesLabel) This label is displayed as the header
+# for showing and collapsing the properties underneath the box model in the layout view
+boxmodel.propertiesLabel=æ¡æ¨¡å屿§
+
+# LOCALIZATION NOTE: (boxmodel.offsetParent) This label is displayed inside the list of
+# properties, below the box model, in the layout view. It is displayed next to the
+# position property, when position is absolute, relative, sticky. This label tells users
+# what the DOM node previewed next to it is: an offset parent for the position element.
+boxmodel.offsetParent=åç§»
diff --git a/devtools/client/canvasdebugger.dtd b/devtools/client/canvasdebugger.dtd
new file mode 100755
index 00000000000..31a143c0874
--- /dev/null
+++ b/devtools/client/canvasdebugger.dtd
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/devtools/client/canvasdebugger.properties b/devtools/client/canvasdebugger.properties
new file mode 100755
index 00000000000..98e81f35b8f
--- /dev/null
+++ b/devtools/client/canvasdebugger.properties
@@ -0,0 +1,70 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Canvas Debugger
+# which is available from the Web Developer sub-menu -> 'Canvas'.
+# 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 (noSnapshotsText): The text to display in the snapshots menu
+# when there are no recorded snapshots yet.
+noSnapshotsText=å°æ æªå¾ã
+
+# LOCALIZATION NOTE (snapshotsList.itemLabel):
+# This string is displayed in the snapshots list of the Canvas Debugger,
+# identifying a set of function calls of a recorded animation frame.
+snapshotsList.itemLabel=æªå¾ #%S
+
+# LOCALIZATION NOTE (snapshotsList.loadingLabel):
+# This string is displayed in the snapshots list of the Canvas Debugger,
+# for an item that has not finished loading.
+snapshotsList.loadingLabel=è½½å
¥ä¸â¦
+
+# LOCALIZATION NOTE (snapshotsList.saveLabel):
+# This string is displayed in the snapshots list of the Canvas Debugger,
+# for saving an item to disk.
+snapshotsList.saveLabel=ä¿å
+
+# LOCALIZATION NOTE (snapshotsList.savingLabel):
+# This string is displayed in the snapshots list of the Canvas Debugger,
+# while saving an item to disk.
+snapshotsList.savingLabel=ä¿åä¸â¦
+
+# LOCALIZATION NOTE (snapshotsList.loadedLabel):
+# This string is displayed in the snapshots list of the Canvas Debugger,
+# for an item which was loaded from disk
+snapshotsList.loadedLabel=å·²ä»ç£çè½½å
¥
+
+# LOCALIZATION NOTE (snapshotsList.saveDialogTitle):
+# This string is displayed as a title for saving a snapshot to disk.
+snapshotsList.saveDialogTitle=ä¿åå¨ç»å¸§æªå¾â¦
+
+# LOCALIZATION NOTE (snapshotsList.saveDialogJSONFilter):
+# This string is displayed as a filter for saving a snapshot to disk.
+snapshotsList.saveDialogJSONFilter=JSON æä»¶
+
+# LOCALIZATION NOTE (snapshotsList.saveDialogAllFilter):
+# This string is displayed as a filter for saving a snapshot to disk.
+snapshotsList.saveDialogAllFilter=æææä»¶
+
+# LOCALIZATION NOTE (snapshotsList.drawCallsLabel):
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# This string is displayed in the snapshots list of the Canvas Debugger,
+# as a generic description about how many draw calls were made.
+snapshotsList.drawCallsLabel=#1 次ç»å¶
+
+# LOCALIZATION NOTE (snapshotsList.functionCallsLabel):
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# This string is displayed in the snapshots list of the Canvas Debugger,
+# as a generic description about how many function calls were made in total.
+snapshotsList.functionCallsLabel=#1 次è°ç¨
+
+# LOCALIZATION NOTE (recordingTimeoutFailure):
+# This notification alert is displayed when attempting to record a requestAnimationFrame
+# cycle in the Canvas Debugger and no cycles detected. This alerts the user that no
+# loops were found.
+recordingTimeoutFailure=Canvas è°è¯å¨æªè½æ¾å°ä¸ä¸ª requestAnimationFrame æè
setTimeout 循ç¯ã
diff --git a/devtools/client/components.properties b/devtools/client/components.properties
new file mode 100644
index 00000000000..6fe8edbf4af
--- /dev/null
+++ b/devtools/client/components.properties
@@ -0,0 +1,19 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used in the shared React components,
+# so files in `devtools/client/shared/components/*`.
+
+# LOCALIZATION NOTE (frame.unknownSource): When we do not know the source filename of
+# a frame, we use this string instead.
+frame.unknownSource=ï¼æªç¥ï¼
+
+# LOCALIZATION NOTE (viewsourceindebugger): The label for the tooltip when hovering over
+# a source link that links to the debugger.
+# %S represents the URL to match in the debugger.
+frame.viewsourceindebugger=å¨è°è¯å¨ä¸æ¥çæºä»£ç â %S
+
+# LOCALIZATION NOTE (notificationBox.closeTooltip): The content of a tooltip that
+# appears when hovering over the close button in a notification box.
+notificationBox.closeTooltip=å
³éæ¤æ¶æ¯
diff --git a/devtools/client/connection-screen.dtd b/devtools/client/connection-screen.dtd
new file mode 100755
index 00000000000..54d3fde935c
--- /dev/null
+++ b/devtools/client/connection-screen.dtd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/devtools/client/connection-screen.properties b/devtools/client/connection-screen.properties
new file mode 100755
index 00000000000..511c3434538
--- /dev/null
+++ b/devtools/client/connection-screen.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 : FILE This file contains the Remote Connection strings.
+# The Remote Connection window can reached from the "connectâ¦" menuitem
+# in the Web Developer menu.
+
+mainProcess=主è¿ç¨
diff --git a/devtools/client/debugger.dtd b/devtools/client/debugger.dtd
new file mode 100755
index 00000000000..38ea500a73d
--- /dev/null
+++ b/devtools/client/debugger.dtd
@@ -0,0 +1,212 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/devtools/client/debugger.properties b/devtools/client/debugger.properties
new file mode 100755
index 00000000000..a2280e647ad
--- /dev/null
+++ b/devtools/client/debugger.properties
@@ -0,0 +1,922 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Debugger
+# which is available from the Web Developer sub-menu -> 'Debugger'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (collapsePanes): This is the tooltip for the button
+# that collapses the left and right panes in the debugger UI.
+collapsePanes=æå 颿¿
+
+# LOCALIZATION NOTE (copyToClipboard.label): This is the text that appears in the
+# context menu to copy the complete source of the open file.
+copyToClipboard.label=å¤å¶å°åªè´´æ¿
+copyToClipboard.accesskey=C
+
+# LOCALIZATION NOTE (copySource): This is the text that appears in the
+# context menu to copy the selected source of file open.
+copySource=å¤å¶
+copySource.accesskey=y
+
+# LOCALIZATION NOTE (copySourceUri2): This is the text that appears in the
+# context menu to copy the source URI of file open.
+copySourceUri2=å¤å¶æºå°å
+copySourceUri2.accesskey=u
+
+# LOCALIZATION NOTE (setDirectoryRoot.label): This is the text that appears in the
+# context menu to set a directory as root directory
+setDirectoryRoot.label=设置ç®å½æ ¹
+setDirectoryRoot.accesskey=r
+
+# LOCALIZATION NOTE (removeDirectoryRoot.label): This is the text that appears in the
+# context menu to remove a directory as root directory
+removeDirectoryRoot.label=ç§»é¤ç®å½æ ¹
+removeDirectoryRoot.accesskey=d
+
+# LOCALIZATION NOTE (copyFunction.label): This is the text that appears in the
+# context menu to copy the function the user selected
+copyFunction.label=å¤å¶å½æ°
+copyFunction.accesskey=F
+
+# LOCALIZATION NOTE (copyStackTrace): This is the text that appears in the
+# context menu to copy the stack trace methods, file names and row number.
+copyStackTrace=å¤å¶å æ è·è¸ªæ°æ®
+copyStackTrace.accesskey=c
+
+# LOCALIZATION NOTE (expandPanes): This is the tooltip for the button
+# that expands the left and right panes in the debugger UI.
+expandPanes=å±å¼é¢æ¿
+
+# LOCALIZATION NOTE (evaluateInConsole.label): Editor right-click menu item
+# to execute selected text in browser console.
+evaluateInConsole.label=卿§å¶å°ä¸è¯ä¼°
+
+# LOCALIZATION NOTE (pauseButtonTooltip): The tooltip that is displayed for the pause
+# button when the debugger is in a running state.
+pauseButtonTooltip=ç¹å»æå (%S)
+
+# LOCALIZATION NOTE (pausePendingButtonTooltip): The tooltip that is displayed for
+# the pause button after it's been clicked but before the next JavaScript to run.
+pausePendingButtonTooltip=æ£å¨çå¾
䏿¬¡æ§è¡
+
+# LOCALIZATION NOTE (resumeButtonTooltip): The label that is displayed on the pause
+# button when the debugger is in a paused state.
+resumeButtonTooltip=ç¹å»æ¢å¤ (%S)
+
+# LOCALIZATION NOTE (stepOverTooltip): The label that is displayed on the
+# button that steps over a function call.
+stepOverTooltip=è·¨è¶ (%S)
+
+# LOCALIZATION NOTE (stepInTooltip): The label that is displayed on the
+# button that steps into a function call.
+stepInTooltip=æ¥è¿ (%S)
+
+# LOCALIZATION NOTE (stepOutTooltip): The label that is displayed on the
+# button that steps out of a function call.
+stepOutTooltip=æ¥åº (%S)
+
+# LOCALIZATION NOTE (pauseButtonItem): The label that is displayed for the dropdown pause
+# list item when the debugger is in a running state.
+pauseButtonItem=å¨ä¸ä¸è¯å¥å¤æå
+
+# LOCALIZATION NOTE (ignoreExceptionsItem): The pause on exceptions button description
+# when the debugger will not pause on exceptions.
+ignoreExceptionsItem=忽ç¥ä¾å¤
+
+# LOCALIZATION NOTE (pauseOnUncaughtExceptionsItem): The pause on exceptions dropdown
+# item shown when a user is adding a new breakpoint.
+pauseOnUncaughtExceptionsItem=卿ªæè·å¼å¸¸å¤æå
+
+# LOCALIZATION NOTE (pauseOnExceptionsItem): The pause on exceptions button description
+# when the debugger will pause on all exceptions.
+pauseOnExceptionsItem=卿æå¼å¸¸å¤æå
+
+# LOCALIZATION NOTE (pauseOnExceptionsItem2): The pause on exceptions checkbox description
+# when the debugger will pause on all exceptions.
+pauseOnExceptionsItem2=å¼å¸¸å¤æå
+
+# LOCALIZATION NOTE (ignoreCaughtExceptionsItem): The pause on exceptions checkbox description
+# when the debugger will not pause on any caught exception
+ignoreCaughtExceptionsItem=å¿½ç¥æè·çå¼å¸¸
+
+# LOCALIZATION NOTE (workersHeader): The text to display in the events
+# header.
+workersHeader=Worker
+
+# LOCALIZATION NOTE (noWorkersText): The text to display in the workers list
+# when there are no workers.
+noWorkersText=æ¤é¡µé¢æ²¡æ Workerã
+
+# LOCALIZATION NOTE (noSourcesText): The text to display in the sources list
+# when there are no sources.
+noSourcesText=æ¤é¡µæ²¡æèæ¬æºä»£ç ã
+
+# LOCALIZATION NOTE (noEventListenersText): The text to display in the events tab
+# when there are no events.
+noEventListenersText=没æå¯æ¾ç¤ºçäºä»¶çå¬å¨
+
+# LOCALIZATION NOTE (eventListenersHeader): The text to display in the events
+# header.
+eventListenersHeader=äºä»¶çå¬å¨
+
+# LOCALIZATION NOTE (noStackFramesText): The text to display in the call stack tab
+# when there are no stack frames.
+noStackFramesText=æ²¡ææ å¸§å¯æ¾ç¤º
+
+# LOCALIZATION NOTE (eventCheckboxTooltip): The tooltip text to display when
+# the user hovers over the checkbox used to toggle an event breakpoint.
+eventCheckboxTooltip=å¨è¿ä¸ªäºä»¶ä¸è§¦å䏿
+
+# LOCALIZATION NOTE (eventOnSelector): The text to display in the events tab
+# for every event item, between the event type and event selector.
+eventOnSelector=äº
+
+# LOCALIZATION NOTE (eventInSource): The text to display in the events tab
+# for every event item, between the event selector and listener's owner source.
+eventInSource=å¨
+
+# LOCALIZATION NOTE (eventNodes): The text to display in the events tab when
+# an event is listened on more than one target node.
+eventNodes=%S èç¹
+
+# LOCALIZATION NOTE (eventNative): The text to display in the events tab when
+# a listener is added from plugins, thus getting translated to native code.
+eventNative=[åç代ç ]
+
+# LOCALIZATION NOTE (*Events): The text to display in the events tab for
+# each group of sub-level event entries.
+animationEvents=å¨ç»
+audioEvents=é³é¢
+batteryEvents=çµæ±
+clipboardEvents=åªè´´æ¿
+compositionEvents=ç¼å
+deviceEvents=设å¤
+displayEvents=æ¾ç¤º
+dragAndDropEvents=ææ¾
+gamepadEvents=æ¸¸æææ
+indexedDBEvents=IndexedDB
+interactionEvents=交äº
+keyboardEvents=é®ç
+mediaEvents=HTML5 åªä½
+mouseEvents=é¼ æ
+mutationEvents=çªå
+navigationEvents=导èª
+pointerLockEvents=æéé
+sensorEvents=ä¼ æå¨
+storageEvents=åå¨
+timeEvents=æ¶é´
+touchEvents=触æ¸
+otherEvents=å
¶ä»
+
+# LOCALIZATION NOTE (blackboxCheckboxTooltip2): The tooltip text to display when
+# the user hovers over the checkbox used to toggle blackboxing its associated
+# source.
+blackboxCheckboxTooltip2=忢é»ç®±
+
+# LOCALIZATION NOTE (sources.search.key2): Key shortcut to open the search for
+# searching all the source files the debugger has seen.
+# Do not localize "CmdOrCtrl+P", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+sources.search.key2=CmdOrCtrl+P
+
+# LOCALIZATION NOTE (sources.search.alt.key): A second key shortcut to open the
+# search for searching all the source files the debugger has seen.
+# Do not localize "CmdOrCtrl+O", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+sources.search.alt.key=CmdOrCtrl+O
+
+# LOCALIZATION NOTE (projectTextSearch.key): A key shortcut to open the
+# full project text search for searching all the files the debugger has seen.
+# Do not localize "CmdOrCtrl+Shift+F", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+projectTextSearch.key=CmdOrCtrl+Shift+F
+
+# LOCALIZATION NOTE (functionSearch.key): A key shortcut to open the
+# modal for searching functions in a file.
+# Do not localize "CmdOrCtrl+Shift+O", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+functionSearch.key=CmdOrCtrl+Shift+O
+
+# LOCALIZATION NOTE (toggleBreakpoint.key): A key shortcut to toggle
+# breakpoints.
+# Do not localize "CmdOrCtrl+B", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+toggleBreakpoint.key=CmdOrCtrl+B
+
+# LOCALIZATION NOTE (toggleCondPanel.key): A key shortcut to toggle
+# the conditional breakpoint panel.
+# Do not localize "CmdOrCtrl+Shift+B", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+toggleCondPanel.key=CmdOrCtrl+Shift+B
+
+# LOCALIZATION NOTE (stepOut.key): A key shortcut to
+# step out.
+stepOut.key=Shift+F11
+
+# LOCALIZATION NOTE (shortcuts.header.editor): Sections header in
+# the shortcuts modal for keyboard shortcuts related to editing.
+shortcuts.header.editor=ç¼è¾å¨
+
+# LOCALIZATION NOTE (shortcuts.header.stepping): Sections header in
+# the shortcuts modal for keyboard shortcuts related to stepping.
+shortcuts.header.stepping=æ¥è¿
+
+# LOCALIZATION NOTE (shortcuts.header.search): Sections header in
+# the shortcuts modal for keyboard shortcuts related to search.
+shortcuts.header.search=æç´¢
+
+# LOCALIZATION NOTE (projectTextSearch.placeholder): A placeholder shown
+# when searching across all of the files in a project.
+projectTextSearch.placeholder=æ¥æ¾æä»¶â¦
+
+# LOCALIZATION NOTE (projectTextSearch.noResults): The center pane Text Search
+# message when the query did not match any text of all files in a project.
+projectTextSearch.noResults=æªæ¾å°ç»æ
+
+# LOCALIZATION NOTE (sources.noSourcesAvailable): Text shown when the debugger
+# does not have any sources.
+sources.noSourcesAvailable=æ¤é¡µé¢æ²¡ææºä»£ç
+
+# LOCALIZATION NOTE (sources.noSourcesAvailableRoot): Text shown when the debugger
+# does not have any sources under a specific directory root.
+sources.noSourcesAvailableRoot=æ¤æ ¹ç®å½æ²¡ææºä»£ç
+
+# LOCALIZATION NOTE (sourceSearch.search.key2): Key shortcut to open the search
+# for searching within a the currently opened files in the editor
+# Do not localize "CmdOrCtrl+F", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+sourceSearch.search.key2=CmdOrCtrl+F
+
+# LOCALIZATION NOTE (sourceSearch.search.placeholder): placeholder text in
+# the source search input bar
+sourceSearch.search.placeholder=æä»¶ä¸æç´¢â¦
+
+# LOCALIZATION NOTE (sourceSearch.search.again.key2): Key shortcut to highlight
+# the next occurrence of the last search triggered from a source search
+# Do not localize "CmdOrCtrl+G", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+sourceSearch.search.again.key2=CmdOrCtrl+G
+
+# LOCALIZATION NOTE (sourceSearch.search.againPrev.key2): Key shortcut to highlight
+# the previous occurrence of the last search triggered from a source search
+# Do not localize "CmdOrCtrl+Shift+G", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+sourceSearch.search.againPrev.key2=CmdOrCtrl+Shift+G
+
+# LOCALIZATION NOTE (sourceSearch.resultsSummary1): Shows a summary of
+# the number of matches for autocomplete
+sourceSearch.resultsSummary1=%d ä¸ªç»æ
+
+# LOCALIZATION NOTE (noMatchingStringsText): The text to display in the
+# global search results when there are no matching strings after filtering.
+noMatchingStringsText=æ æ³æ¾å°ç¬¦åæ¡ä»¶çç»æ
+
+# LOCALIZATION NOTE (emptySearchText): This is the text that appears in the
+# filter text box when it is empty and the scripts container is selected.
+emptySearchText=æç´¢èæ¬ (%S)
+
+# LOCALIZATION NOTE (emptyVariablesFilterText): This is the text that
+# appears in the filter text box for the variables view container.
+emptyVariablesFilterText=è¿æ»¤åé
+
+# LOCALIZATION NOTE (emptyPropertiesFilterText): This is the text that
+# appears in the filter text box for the editor's variables view bubble.
+emptyPropertiesFilterText=è¿æ»¤å±æ§
+
+# LOCALIZATION NOTE (searchPanelFilter): This is the text that appears in the
+# filter panel popup for the filter scripts operation.
+searchPanelFilter=è¿æ»¤èæ¬ (%S)
+
+# LOCALIZATION NOTE (searchPanelGlobal): This is the text that appears in the
+# filter panel popup for the global search operation.
+searchPanelGlobal=æç´¢æææä»¶ (%S)
+
+# LOCALIZATION NOTE (searchPanelFunction): This is the text that appears in the
+# filter panel popup for the function search operation.
+searchPanelFunction=æç´¢å½æ°å®ä¹ (%S)
+
+# LOCALIZATION NOTE (searchPanelToken): This is the text that appears in the
+# filter panel popup for the token search operation.
+searchPanelToken=卿¤æä»¶ä¸æ¥æ¾ (%S)
+
+# LOCALIZATION NOTE (searchPanelGoToLine): This is the text that appears in the
+# filter panel popup for the line search operation.
+searchPanelGoToLine=跳转å°è¡ (%S)
+
+# LOCALIZATION NOTE (searchPanelVariable): This is the text that appears in the
+# filter panel popup for the variables search operation.
+searchPanelVariable=è¿æ»¤åé (%S)
+
+# LOCALIZATION NOTE (breakpointMenuItem): The text for all the elements that
+# are displayed in the breakpoints menu item popup.
+breakpointMenuItem.setConditional=é
ç½®æ¡ä»¶æç¹
+breakpointMenuItem.enableSelf2.label=å¯ç¨
+breakpointMenuItem.enableSelf2.accesskey=E
+breakpointMenuItem.disableSelf2.label=ç¦ç¨
+breakpointMenuItem.disableSelf2.accesskey=D
+breakpointMenuItem.deleteSelf2.label=ç§»é¤
+breakpointMenuItem.deleteSelf2.accesskey=R
+breakpointMenuItem.enableOthers2.label=å¯ç¨å
¶ä»
+breakpointMenuItem.enableOthers2.accesskey=o
+breakpointMenuItem.disableOthers2.label=ç¦ç¨å
¶ä»
+breakpointMenuItem.disableOthers2.accesskey=s
+breakpointMenuItem.deleteOthers2.label=ç§»é¤å
¶ä»
+breakpointMenuItem.deleteOthers2.accesskey=h
+breakpointMenuItem.enableAll2.label=å
¨é¨å¯ç¨
+breakpointMenuItem.enableAll2.accesskey=b
+breakpointMenuItem.disableAll2.label=å
¨é¨ç¦ç¨
+breakpointMenuItem.disableAll2.accesskey=k
+breakpointMenuItem.deleteAll2.label=å
¨é¨ç§»é¤
+breakpointMenuItem.deleteAll2.accesskey=a
+breakpointMenuItem.removeCondition2.label=ç§»é¤æ¡ä»¶
+breakpointMenuItem.removeCondition2.accesskey=c
+breakpointMenuItem.addCondition2.label=æ·»å æ¡ä»¶
+breakpointMenuItem.addCondition2.accesskey=A
+breakpointMenuItem.editCondition2.label=ç¼è¾æ¡ä»¶
+breakpointMenuItem.editCondition2.accesskey=n
+breakpointMenuItem.enableSelf=å¯ç¨æç¹
+breakpointMenuItem.enableSelf.accesskey=e
+breakpointMenuItem.disableSelf=ç¦ç¨æç¹
+breakpointMenuItem.disableSelf.accesskey=d
+breakpointMenuItem.deleteSelf=å 餿ç¹
+breakpointMenuItem.deleteSelf.accesskey=r
+breakpointMenuItem.enableOthers=å¯ç¨å
¶ä»
+breakpointMenuItem.enableOthers.accesskey=q
+breakpointMenuItem.disableOthers=ç¦ç¨å
¶ä»
+breakpointMenuItem.disableOthers.accesskey=s
+breakpointMenuItem.deleteOthers=ç§»é¤å
¶ä»
+breakpointMenuItem.deleteOthers.accesskey=p
+breakpointMenuItem.enableAll=å¯ç¨æææç¹
+breakpointMenuItem.enableAll.accesskey=b
+breakpointMenuItem.disableAll=ç¦ç¨æææç¹
+breakpointMenuItem.disableAll.accesskey=c
+breakpointMenuItem.deleteAll=ç§»é¤æææç¹
+breakpointMenuItem.deleteAll.accesskey=a
+breakpointMenuItem.removeCondition.label=ç§»é¤æ¡ä»¶æç¹
+breakpointMenuItem.removeCondition.accesskey=c
+breakpointMenuItem.editCondition.label=ç¼è¾æ¡ä»¶æç¹
+breakpointMenuItem.editCondition.accesskey=n
+
+# LOCALIZATION NOTE (breakpoints.header): Breakpoints right sidebar pane header.
+breakpoints.header=æç¹
+
+# LOCALIZATION NOTE (breakpoints.none): The text that appears when there are
+# no breakpoints present
+breakpoints.none=æ æç¹
+
+# LOCALIZATION NOTE (breakpoints.enable): The text that may appear as a tooltip
+# when hovering over the 'disable breakpoints' switch button in right sidebar
+breakpoints.enable=å¯ç¨æç¹
+
+# LOCALIZATION NOTE (breakpoints.disable): The text that may appear as a tooltip
+# when hovering over the 'disable breakpoints' switch button in right sidebar
+breakpoints.disable=ç¦ç¨æç¹
+
+# LOCALIZATION NOTE (breakpoints.removeBreakpointTooltip): The tooltip that is displayed
+# for remove breakpoint button in right sidebar
+breakpoints.removeBreakpointTooltip=ç§»é¤æç¹
+
+# LOCALIZATION NOTE (callStack.header): Call Stack right sidebar pane header.
+callStack.header=è°ç¨å æ
+
+# LOCALIZATION NOTE (callStack.notPaused): Call Stack right sidebar pane
+# message when not paused.
+callStack.notPaused=æªæå
+
+# LOCALIZATION NOTE (callStack.collapse): Call Stack right sidebar pane
+# message to hide some of the frames that are shown.
+callStack.collapse=æå è¡
+
+# LOCALIZATION NOTE (callStack.expand): Call Stack right sidebar pane
+# message to show more of the frames.
+callStack.expand=å±å¼è¡
+
+# LOCALIZATION NOTE (editor.searchResults): Editor Search bar message
+# for the summarizing the selected search result. e.g. 5 of 10 results.
+editor.searchResults=%d / %d æ¡ç»æ
+
+# LOCALIZATION NOTE (editor.singleResult): Copy shown when there is one result.
+editor.singleResult=1 ä¸ªç»æ
+
+# LOCALIZATION NOTE (editor.noResults): Editor Search bar message
+# for when no results found.
+editor.noResults=æ ç»æ
+
+# LOCALIZATION NOTE (editor.searchResults.nextResult): Editor Search bar
+# tooltip for traversing to the Next Result
+editor.searchResults.nextResult=ä¸ä¸ä¸ªç»æ
+
+# LOCALIZATION NOTE (editor.searchResults.prevResult): Editor Search bar
+# tooltip for traversing to the Previous Result
+editor.searchResults.prevResult=ä¸ä¸ä¸ªç»æ
+
+# LOCALIZATION NOTE (editor.searchTypeToggleTitle): Search bar title for
+# toggling search type buttons(function search, variable search)
+editor.searchTypeToggleTitle=æç´¢ï¼
+
+# LOCALIZATION NOTE (editor.continueToHere.label): Editor gutter context
+# menu item for jumping to a new paused location
+editor.continueToHere.label=ç»§ç»å°æ¤å¤
+editor.continueToHere.accesskey=H
+
+# LOCALIZATION NOTE (editor.addBreakpoint): Editor gutter context menu item
+# for adding a breakpoint on a line.
+editor.addBreakpoint=æ·»å æç¹
+
+# LOCALIZATION NOTE (editor.disableBreakpoint): Editor gutter context menu item
+# for disabling a breakpoint on a line.
+editor.disableBreakpoint=ç¦ç¨æç¹
+editor.disableBreakpoint.accesskey=D
+
+# LOCALIZATION NOTE (editor.enableBreakpoint): Editor gutter context menu item
+# for enabling a breakpoint on a line.
+editor.enableBreakpoint=å¯ç¨æç¹
+
+# LOCALIZATION NOTE (editor.removeBreakpoint): Editor gutter context menu item
+# for removing a breakpoint on a line.
+editor.removeBreakpoint=ç§»é¤æç¹
+
+# LOCALIZATION NOTE (editor.editBreakpoint): Editor gutter context menu item
+# for setting a breakpoint condition on a line.
+editor.editBreakpoint=ç¼è¾æç¹
+
+# LOCALIZATION NOTE (editor.addConditionalBreakpoint): Editor gutter context
+# menu item for adding a breakpoint condition on a line.
+editor.addConditionalBreakpoint=æ·»å æ¡ä»¶æç¹
+editor.addConditionalBreakpoint.accesskey=c
+
+# LOCALIZATION NOTE (editor.conditionalPanel.placeholder): Placeholder text for
+# input element inside ConditionalPanel component
+editor.conditionalPanel.placeholder=æ¤æç¹å°å¨è¡¨è¾¾å¼ä¸ºçæ¶æå
+
+# LOCALIZATION NOTE (editor.conditionalPanel.close): Tooltip text for
+# close button inside ConditionalPanel component
+editor.conditionalPanel.close=åæ¶æç¹ç¼è¾å¹¶å
³é
+
+# LOCALIZATION NOTE (editor.jumpToMappedLocation1): Context menu item
+# for navigating to a source mapped location
+editor.jumpToMappedLocation1=è·³è³%Sä½ç½®
+editor.jumpToMappedLocation1.accesskey=m
+
+# LOCALIZATION NOTE (framework.disableGrouping): This is the text that appears in the
+# context menu to disable framework grouping.
+framework.disableGrouping=ç¦ç¨æ¡æ¶åç»
+framework.disableGrouping.accesskey=u
+
+# LOCALIZATION NOTE (framework.enableGrouping): This is the text that appears in the
+# context menu to enable framework grouping.
+framework.enableGrouping=å¯ç¨æ¡æ¶åç»
+framework.enableGrouping.accesskey=u
+
+# LOCALIZATION NOTE (generated): Source Map term for a server source location
+generated=çæç
+
+# LOCALIZATION NOTE (original): Source Map term for a debugger UI source location
+original=åå§
+
+# LOCALIZATION NOTE (expressions.placeholder): Placeholder text for expression
+# input element
+expressions.placeholder=æ·»å çè§è¡¨è¾¾å¼
+# LOCALIZATION NOTE (expressions.errorMsg): Error text for expression
+# input element
+expressions.errorMsg=æ æä¾å¤â¦
+expressions.label=æ·»å çè§è¡¨è¾¾å¼
+expressions.accesskey=e
+
+# LOCALIZATION NOTE (sourceTabs.closeTab): Editor source tab context menu item
+# for closing the selected tab below the mouse.
+sourceTabs.closeTab=å
³éæ ç¾é¡µ
+sourceTabs.closeTab.accesskey=c
+
+# LOCALIZATION NOTE (sourceTabs.closeOtherTabs): Editor source tab context menu item
+# for closing the other tabs.
+sourceTabs.closeOtherTabs=å
³éå
¶ä»æ ç¾é¡µ
+sourceTabs.closeOtherTabs.accesskey=o
+
+# LOCALIZATION NOTE (sourceTabs.closeTabsToEnd): Editor source tab context menu item
+# for closing the tabs to the end (the right for LTR languages) of the selected tab.
+sourceTabs.closeTabsToEnd=å
³éå³ä¾§æ ç¾é¡µ
+sourceTabs.closeTabsToEnd.accesskey=e
+
+# LOCALIZATION NOTE (sourceTabs.closeAllTabs): Editor source tab context menu item
+# for closing all tabs.
+sourceTabs.closeAllTabs=å
³éæææ ç¾é¡µ
+sourceTabs.closeAllTabs.accesskey=a
+
+# LOCALIZATION NOTE (sourceTabs.revealInTree): Editor source tab context menu item
+# for revealing source in tree.
+sourceTabs.revealInTree=æ ç¶æ¾ç¤º
+sourceTabs.revealInTree.accesskey=r
+
+# LOCALIZATION NOTE (sourceTabs.prettyPrint): Editor source tab context menu item
+# for pretty printing the source.
+sourceTabs.prettyPrint=ç¾åæºä»£ç
+sourceTabs.prettyPrint.accesskey=p
+
+# LOCALIZATION NOTE (sourceFooter.blackbox): Tooltip text associated
+# with the blackbox button
+sourceFooter.blackbox=é»ç®±åæºä»£ç
+sourceFooter.blackbox.accesskey=b
+
+# LOCALIZATION NOTE (sourceFooter.unblackbox): Tooltip text associated
+# with the blackbox button
+sourceFooter.unblackbox=åæ¶é»ç®±æºä»£ç
+sourceFooter.unblackbox.accesskey=b
+
+# LOCALIZATION NOTE (sourceFooter.blackboxed): Text associated
+# with a blackboxed source
+sourceFooter.blackboxed=é»ç®±çæºä»£ç
+
+# LOCALIZATION NOTE (sourceFooter.mappedSource): Text associated
+# with a mapped source. %S is replaced by the source map origin.
+sourceFooter.mappedSource=(æ¥èª %S)
+
+# LOCALIZATION NOTE (sourceFooter.mappedSourceTooltip): Tooltip text associated
+# with a mapped source. %S is replaced by the source map origin.
+sourceFooter.mappedSourceTooltip=(æºä»£ç æ å°èª %S)
+
+# LOCALIZATION NOTE (sourceFooter.codeCoverage): Text associated
+# with a code coverage button
+sourceFooter.codeCoverage=代ç è¦çç
+
+# LOCALIZATION NOTE (sourceTabs.closeTabButtonTooltip): The tooltip that is displayed
+# for close tab button in source tabs.
+sourceTabs.closeTabButtonTooltip=å
³éæ ç¾é¡µ
+
+# LOCALIZATION NOTE (scopes.header): Scopes right sidebar pane header.
+scopes.header=èå´
+
+# LOCALIZATION NOTE (scopes.notAvailable): Scopes right sidebar pane message
+# for when the debugger is paused, but there isn't pause data.
+scopes.notAvailable=èå´ä¸å¯ç¨
+
+# LOCALIZATION NOTE (scopes.notPaused): Scopes right sidebar pane message
+# for when the debugger is not paused.
+scopes.notPaused=æªæå
+
+# LOCALIZATION NOTE (scopes.toggleToGenerated): Link displayed in the right
+# sidebar scope pane to update the view to show generated scope data.
+scopes.toggleToGenerated=æ¾ç¤ºäº§ççä½ç¨å
+
+# LOCALIZATION NOTE (scopes.toggleToOriginal): Link displayed in the right
+# sidebar scope pane to update the view to show original scope data.
+scopes.toggleToOriginal=æ¾ç¤ºåæ¥çä½ç¨å
+
+# LOCALIZATION NOTE (scopes.block): Refers to a block of code in
+# the scopes pane when the debugger is paused.
+scopes.block=å
+
+# LOCALIZATION NOTE (sources.header): Sources left sidebar header
+sources.header=æ¥æº
+
+# LOCALIZATION NOTE (outline.header): Outline left sidebar header
+outline.header=大纲
+
+# LOCALIZATION NOTE (outline.sortLabel): Label for the sort button
+outline.sortLabel=æåç§°æåº
+
+# LOCALIZATION NOTE (outline.noFunctions): Outline text when there are no functions to display
+outline.noFunctions=æ 彿°
+
+# LOCALIZATION NOTE (outline.noFileSelected): Outline text when there are no files selected
+outline.noFileSelected=æªéæ©æä»¶
+
+# LOCALIZATION NOTE (sources.search): Sources left sidebar prompt
+# e.g. Cmd+P to search. On a mac, we use the command unicode character.
+# On windows, it's ctrl.
+sources.search=%S 以æç´¢
+
+# LOCALIZATION NOTE (watchExpressions.header): Watch Expressions right sidebar
+# pane header.
+watchExpressions.header=çè§è¡¨è¾¾å¼
+
+# LOCALIZATION NOTE (watchExpressions.refreshButton): Watch Expressions header
+# button for refreshing the expressions.
+watchExpressions.refreshButton=å·æ°
+
+# LOCALIZATION NOTE (welcome.search): The center pane welcome panel's
+# search prompt. e.g. cmd+p to search for files. On windows, it's ctrl, on
+# a mac we use the unicode character.
+welcome.search=%S 以æç´¢æä»¶
+
+# LOCALIZATION NOTE (welcome.findInFiles): The center pane welcome panel's
+# search prompt. e.g. cmd+f to search for files. On windows, it's ctrl+shift+f, on
+# a mac we use the unicode character.
+welcome.findInFiles=%S 卿件䏿¥æ¾
+
+# LOCALIZATION NOTE (welcome.searchFunction): Label displayed in the welcome
+# panel. %S is replaced by the keyboard shortcut to search for functions.
+welcome.searchFunction=%S æç´¢æä»¶ä¸ç彿°
+
+# LOCALIZATION NOTE (sourceSearch.search): The center pane Source Search
+# prompt for searching for files.
+sourceSearch.search=æç´¢â¦
+
+# LOCALIZATION NOTE (sourceSearch.noResults2): The center pane Source Search
+# message when the query did not match any of the sources.
+sourceSearch.noResults2=æªæ¾å°ç»æ
+
+# LOCALIZATION NOTE (ignoreExceptions): The pause on exceptions button tooltip
+# when the debugger will not pause on exceptions.
+ignoreExceptions=å°å¿½ç¥å¼å¸¸ãåå»å¯å¨æªæè·çå¼å¸¸å¤æå
+
+# LOCALIZATION NOTE (pauseOnUncaughtExceptions): The pause on exceptions button
+# tooltip when the debugger will pause on uncaught exceptions.
+pauseOnUncaughtExceptions=å°å¨æªæè·çå¼å¸¸å¤æåãåå»å¯å¨ææå¼å¸¸å¤æå
+
+# LOCALIZATION NOTE (pauseOnExceptions): The pause on exceptions button tooltip
+# when the debugger will pause on all exceptions.
+pauseOnExceptions=å°å¨ææå¼å¸¸å¤æåãåå»å¯å¿½ç¥å¼å¸¸
+
+# LOCALIZATION NOTE (replayPrevious): The replay previous button tooltip
+# when the debugger will go back in stepping history.
+replayPrevious=åå²è®°å½ä¸åé䏿¥
+
+# LOCALIZATION NOTE (replayNext): The replay next button tooltip
+# when the debugger will go forward in stepping history.
+replayNext=åå²è®°å½ä¸åè¿ä¸æ¥
+
+# LOCALIZATION NOTE (loadingText): The text that is displayed in the script
+# editor when the loading process has started but there is no file to display
+# yet.
+loadingText=æ£å¨è½½å
¥â¦
+
+# LOCALIZATION NOTE (wasmIsNotAvailable): The text that is displayed in the
+# script editor when the WebAssembly source is not available.
+wasmIsNotAvailable=è¯·å·æ°ä»¥ææ¥æ¤æ¨¡åçæ
é
+
+# LOCALIZATION NOTE (errorLoadingText3): The text that is displayed in the debugger
+# viewer when there is an error loading a file
+errorLoadingText3=å è½½æ¤å°ååºéï¼%S
+
+# LOCALIZATION NOTE (addWatchExpressionText): The text that is displayed in the
+# watch expressions list to add a new item.
+addWatchExpressionText=æ·»å çè§è¡¨è¾¾å¼
+
+# LOCALIZATION NOTE (addWatchExpressionButton): The button that is displayed in the
+# variables view popup.
+addWatchExpressionButton=çè§
+
+# LOCALIZATION NOTE (extensionsText): The text that is displayed to represent
+# "moz-extension" directories in the source tree
+extensionsText=æ©å±
+
+# LOCALIZATION NOTE (emptyVariablesText): The text that is displayed in the
+# variables pane when there are no variables to display.
+emptyVariablesText=没æå¯æ¾ç¤ºçåé
+
+# LOCALIZATION NOTE (scopeLabel): The text that is displayed in the variables
+# pane as a header for each variable scope (e.g. "Global scope, "With scope",
+# etc.).
+scopeLabel=%S å
+
+# LOCALIZATION NOTE (watchExpressionsScopeLabel): The name of the watch
+# expressions scope. This text is displayed in the variables pane as a header for
+# the watch expressions scope.
+watchExpressionsScopeLabel=çè§è¡¨è¾¾å¼
+
+# LOCALIZATION NOTE (globalScopeLabel): The name of the global scope. This text
+# is added to scopeLabel and displayed in the variables pane as a header for
+# the global scope.
+globalScopeLabel=å
¨å±
+
+# LOCALIZATION NOTE (variablesViewErrorStacktrace): This is the text that is
+# shown before the stack trace in an error.
+variablesViewErrorStacktrace=å æ è·è¸ªï¼
+
+# LOCALIZATION NOTE (variablesViewMoreObjects): the text that is displayed
+# when you have an object preview that does not show all of the elements. At the end of the list
+# you see "N more..." in the web console output.
+# This is a semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 number of remaining items in the object
+# example: 3 moreâ¦
+variablesViewMoreObjects=ç #1 项â¦
+
+# LOCALIZATION NOTE (variablesEditableNameTooltip): The text that is displayed
+# in the variables list on an item with an editable name.
+variablesEditableNameTooltip=åå»ç¼è¾
+
+# LOCALIZATION NOTE (variablesEditableValueTooltip): The text that is displayed
+# in the variables list on an item with an editable value.
+variablesEditableValueTooltip=ç¹å»æ´æ¹å¼
+
+# LOCALIZATION NOTE (variablesCloseButtonTooltip): The text that is displayed
+# in the variables list on an item which can be removed.
+variablesCloseButtonTooltip=ç¹å»ç§»é¤
+
+# LOCALIZATION NOTE (variablesEditButtonTooltip): The text that is displayed
+# in the variables list on a getter or setter which can be edited.
+variablesEditButtonTooltip=åå»è®¾ç½®å¼
+
+# LOCALIZATION NOTE (variablesDomNodeValueTooltip): The text that is displayed
+# in a tooltip on the "open in inspector" button in the the variables list for a
+# DOMNode item.
+variablesDomNodeValueTooltip=åå»ä»¥å¨æ¥çå¨ä¸éæ©èç¹
+
+# LOCALIZATION NOTE (configurable|...|Tooltip): The text that is displayed
+# in the variables list on certain variables or properties as tooltips.
+# Expanations of what these represent can be found at the following links:
+# https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty
+# https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/isExtensible
+# https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/isFrozen
+# https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/isSealed
+# It's probably best to keep these in English.
+configurableTooltip=å¯é
ç½®
+enumerableTooltip=坿䏾
+writableTooltip=å¯å
+frozenTooltip=å»ç»
+sealedTooltip=å¯å°
+extensibleTooltip=å¯å±å¼
+overriddenTooltip=被è¦ç
+WebIDLTooltip=WebIDL
+
+# LOCALIZATION NOTE (variablesSeparatorLabel): The text that is displayed
+# in the variables list as a separator between the name and value.
+variablesSeparatorLabel=:
+
+# LOCALIZATION NOTE (watchExpressionsSeparatorLabel2): The text that is displayed
+# in the watch expressions list as a separator between the code and evaluation.
+watchExpressionsSeparatorLabel2=\u0020â
+
+# LOCALIZATION NOTE (functionSearchSeparatorLabel): The text that is displayed
+# in the functions search panel as a separator between function's inferred name
+# and its real name (if available).
+functionSearchSeparatorLabel=â
+
+# LOCALIZATION NOTE(gotoLineModal.placeholder): The placeholder
+# text displayed when the user searches for specific lines in a file
+gotoLineModal.placeholder=跳转å°è¡â¦
+gotoLineModal.key=CmdOrCtrl+Shift+;
+
+# LOCALIZATION NOTE(gotoLineModal.title): The message shown to users
+# to open the go to line modal
+gotoLineModal.title=è½¬å°æä»¶çæä¸è¡
+
+# LOCALIZATION NOTE(gotoLineModal.key2): The shortcut for opening the
+# go to line modal
+# Do not localize "CmdOrCtrl+;", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+gotoLineModal.key2=CmdOrCtrl+;
+
+# LOCALIZATION NOTE(symbolSearch.search.functionsPlaceholder): The placeholder
+# text displayed when the user searches for functions in a file
+symbolSearch.search.functionsPlaceholder=æç´¢å½æ°â¦
+symbolSearch.search.functionsPlaceholder.title=卿件䏿¥æ¾å½æ°
+
+# LOCALIZATION NOTE(symbolSearch.search.variablesPlaceholder): The placeholder
+# text displayed when the user searches for variables in a file
+symbolSearch.search.variablesPlaceholder=æç´¢åéâ¦
+symbolSearch.search.variablesPlaceholder.title=卿件䏿¥æ¾åé
+
+# LOCALIZATION NOTE(symbolSearch.search.key2): The Key Shortcut for
+# searching for a function or variable
+# Do not localize "CmdOrCtrl+Shift+O", or change the format of the string. These are
+# key identifiers, not messages displayed to the user.
+symbolSearch.search.key2=CmdOrCtrl+Shift+O
+
+# LOCALIZATION NOTE(symbolSearch.searchModifier.modifiersLabel): A label
+# preceding the group of modifiers
+symbolSearch.searchModifier.modifiersLabel=修饰符ï¼
+
+# LOCALIZATION NOTE(symbolSearch.searchModifier.regex): A search option
+# when searching text in a file
+symbolSearch.searchModifier.regex=æ£å表达å¼
+
+# LOCALIZATION NOTE(symbolSearch.searchModifier.caseSensitive): A search option
+# when searching text in a file
+symbolSearch.searchModifier.caseSensitive=åºå大å°å
+
+# LOCALIZATION NOTE(symbolSearch.searchModifier.wholeWord): A search option
+# when searching text in a file
+symbolSearch.searchModifier.wholeWord=åè¯å¹é
+
+# LOCALIZATION NOTE (resumptionOrderPanelTitle): This is the text that appears
+# as a description in the notification panel popup, when multiple debuggers are
+# open in separate tabs and the user tries to resume them in the wrong order.
+# The substitution parameter is the URL of the last paused window that must be
+# resumed first.
+resumptionOrderPanelTitle=æä¸ä¸ªæå¤ä¸ªæåçè°è¯å¨ã请å
ç»§ç»æè¿æåçè°è¯å¨ï¼%S
+
+variablesViewOptimizedOut=(å·²ä¼åæ)
+variablesViewUninitialized=(æªåå§å)
+variablesViewMissingArgs=(ä¸å¯ç¨)
+
+anonymousSourcesLabel=å¿åæ¥æº
+
+experimental=è¿æ¯ä¸ä¸ªå®éªæ§åè½
+
+# LOCALIZATION NOTE (whyPaused.debuggerStatement): The text that is displayed
+# in a info block explaining how the debugger is currently paused due to a `debugger`
+# statement in the code
+whyPaused.debuggerStatement=å¨ debugger è¯å¥ä¸æå
+
+# LOCALIZATION NOTE (whyPaused.breakpoint): The text that is displayed
+# in a info block explaining how the debugger is currently paused on a breakpoint
+whyPaused.breakpoint=卿ç¹ä¸æå
+
+# LOCALIZATION NOTE (whyPaused.exception): The text that is displayed
+# in a info block explaining how the debugger is currently paused on an exception
+whyPaused.exception=å¨å¼å¸¸ä¸æå
+
+# LOCALIZATION NOTE (whyPaused.resumeLimit): The text that is displayed
+# in a info block explaining how the debugger is currently paused while stepping
+# in or out of the stack
+whyPaused.resumeLimit=忥è°è¯æ¶æå
+
+# LOCALIZATION NOTE (whyPaused.pauseOnDOMEvents): The text that is displayed
+# in a info block explaining how the debugger is currently paused on a
+# dom event
+whyPaused.pauseOnDOMEvents=å¨äºä»¶çå¬å¨ä¸æå
+
+# LOCALIZATION NOTE (whyPaused.breakpointConditionThrown): The text that is displayed
+# in an info block when evaluating a conditional breakpoint throws an error
+whyPaused.breakpointConditionThrown=æ¡ä»¶æç¹æé误
+
+# LOCALIZATION NOTE (whyPaused.xhr): The text that is displayed
+# in a info block explaining how the debugger is currently paused on an
+# xml http request
+whyPaused.xhr=å¨ XMLHttpRequest 䏿å
+
+# LOCALIZATION NOTE (whyPaused.promiseRejection): The text that is displayed
+# in a info block explaining how the debugger is currently paused on a
+# promise rejection
+whyPaused.promiseRejection=å¨ promise æç»ä¸æå
+
+# LOCALIZATION NOTE (whyPaused.assert): The text that is displayed
+# in a info block explaining how the debugger is currently paused on an
+# assert
+whyPaused.assert=卿è¨ä¸æå
+
+# LOCALIZATION NOTE (whyPaused.debugCommand): The text that is displayed
+# in a info block explaining how the debugger is currently paused on a
+# debugger statement
+whyPaused.debugCommand=å¨è¢«è°è¯å½æ°ä¸æå
+
+# LOCALIZATION NOTE (whyPaused.other): The text that is displayed
+# in a info block explaining how the debugger is currently paused on an event
+# listener breakpoint set
+whyPaused.other=è°è¯å¨å·²æå
+
+# LOCALIZATION NOTE (ctrl): The text that is used for documenting
+# keyboard shortcuts that use the control key
+ctrl=Ctrl
+
+# LOCALIZATION NOTE (anonymous): The text that is displayed when the
+# display name is null.
+anonymous=(å¿å)
+
+# LOCALIZATION NOTE (shortcuts.toggleBreakpoint): text describing
+# keyboard shortcut action for toggling breakpoint
+shortcuts.toggleBreakpoint=忢æç¹
+shortcuts.toggleBreakpoint.accesskey=B
+
+# LOCALIZATION NOTE (shortcuts.toggleCondPanel): text describing
+# keyboard shortcut action for toggling conditional panel keyboard
+shortcuts.toggleCondPanel=忢æ¡ä»¶é¢æ¿
+
+# LOCALIZATION NOTE (shortcuts.pauseOrResume): text describing
+# keyboard shortcut action for pause of resume
+shortcuts.pauseOrResume=æå/æ¢å¤
+
+# LOCALIZATION NOTE (shortcuts.stepOver): text describing
+# keyboard shortcut action for stepping over
+shortcuts.stepOver=忥æ§è¡
+
+# LOCALIZATION NOTE (shortcuts.stepIn): text describing
+# keyboard shortcut action for stepping in
+shortcuts.stepIn=æ¥è¿
+
+# LOCALIZATION NOTE (shortcuts.stepOut): text describing
+# keyboard shortcut action for stepping out
+shortcuts.stepOut=æ¥åº
+
+# LOCALIZATION NOTE (shortcuts.fileSearch): text describing
+# keyboard shortcut action for source file search
+shortcuts.fileSearch=æºæä»¶æç´¢
+
+# LOCALIZATION NOTE (shortcuts.gotoLine): text describing
+# keyboard shortcut for jumping to a specific line
+shortcuts.gotoLine=è½¬è³æå®è¡
+
+# LOCALIZATION NOTE (shortcuts.searchAgain): text describing
+# keyboard shortcut action for searching again
+shortcuts.searchAgain=忬¡æç´¢
+
+# LOCALIZATION NOTE (shortcuts.projectSearch): text describing
+# keyboard shortcut action for full project search
+shortcuts.projectSearch=å
¨é¡¹ç®æç´¢
+
+# LOCALIZATION NOTE (shortcuts.functionSearch): text describing
+# keyboard shortcut action for function search
+shortcuts.functionSearch=彿°æç´¢
+
+# LOCALIZATION NOTE (shortcuts.buttonName): text describing
+# keyboard shortcut button text
+shortcuts.buttonName=é®çå¿«æ·é®
diff --git a/devtools/client/device.properties b/devtools/client/device.properties
new file mode 100644
index 00000000000..9bef2b8d4aa
--- /dev/null
+++ b/devtools/client/device.properties
@@ -0,0 +1,20 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside Device Emulation developer
+# tools. The correct localization of this file might be to keep it in English,
+# or another language commonly spoken among web developers. You want to make
+# that choice consistent across the developer tools. A good criteria is the
+# language in which you'd find the best documentation on web development on the
+# web.
+
+# LOCALIZATION NOTE:
+# These strings are category names in a list of devices that a user can choose
+# to simulate (e.g. "ZTE Open C", "VIA Vixen", "720p HD Television", etc).
+device.phones=ææº
+device.tablets=å¹³æ¿çµè
+device.laptops=ç¬è®°æ¬çµè
+device.televisions=çµè§
+device.consoles=æ¸¸ææº
+device.watches=æè¡¨
diff --git a/devtools/client/dom.properties b/devtools/client/dom.properties
new file mode 100644
index 00000000000..51cb79bd0c1
--- /dev/null
+++ b/devtools/client/dom.properties
@@ -0,0 +1,19 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the DOM panel
+# which is available from the Web Developer sub-menu -> 'DOM'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (dom.filterDOMPanel): A placeholder text used for
+# DOM panel search box.
+dom.filterDOMPanel=è¿æ»¤ DOM 颿¿
+
+# LOCALIZATION NOTE (dom.refresh): A label for Refresh button in
+# DOM panel toolbar
+dom.refresh=å·æ°
\ No newline at end of file
diff --git a/devtools/client/filterwidget.properties b/devtools/client/filterwidget.properties
new file mode 100644
index 00000000000..de8ab07532a
--- /dev/null
+++ b/devtools/client/filterwidget.properties
@@ -0,0 +1,59 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used in the CSS Filter Editor Widget
+# which can be found in a tooltip that appears in the Rule View when clicking
+# on a filter swatch displayed next to CSS declarations like 'filter: blur(2px)'.
+
+# LOCALIZATION NOTE (emptyFilterList):
+# This string is displayed when filter's list is empty
+# (no filter specified / all removed)
+emptyFilterList=æªæå®è¿æ»¤å¨
+
+# LOCALIZATION NOTE (emptyPresetList):
+# This string is displayed when preset's list is empty
+emptyPresetList=ä½ æ²¡æä»»ä½é¢è®¾ççéå¨ãæ¨å¯ä»¥è®¾ç½®åç§°åå°çéå¨ä¿åèµ·æ¥ï¼æ¹ä¾¿å¨éè¦æ¶å¿«éä½¿ç¨æéå¤å©ç¨ã
+
+# LOCALIZATION NOTE (addUsingList):
+# This string is displayed under [emptyFilterList] when filter's
+# list is empty, guiding user to add a filter using the list below it
+addUsingList=使ç¨ä¸é¢çå表添å ä¸ä¸ªè¿æ»¤å¨
+
+# LOCALIZATION NOTE (dropShadowPlaceholder):
+# This string is used as a placeholder for drop-shadow's input
+# in the filter list (shown when is empty)
+dropShadowPlaceholder=x y åå¾é¢è²
+
+# LOCALIZATION NOTE (dragHandleTooltipText):
+# This string is used as a tooltip text (shown on mouse hover) on the
+# drag handles of filters which are used to re-order filters
+dragHandleTooltipText=å䏿å䏿å¨ä»¥éæ°æåºè¿æ»¤å¨
+
+# LOCALIZATION NOTE (labelDragTooltipText):
+# This string is used as a tooltip text (shown on mouse hover) on the
+# filters' labels which can be dragged left/right to increase/decrease
+# the filter's value (like photoshop)
+labelDragTooltipText=åå·¦æå峿å¨ä»¥å¢åå
¶å¼
+
+# LOCALIZATION NOTE (filterListSelectPlaceholder):
+# This string is used as a preview option in the list of possible filters
+#