Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: locales/zh_TW/faq_internal.json

Issue 6021528219025408: Issue #1170 More progress migrating adblockplus.org to our CMS. (Closed)
Patch Set: Created Sept. 1, 2014, 10:45 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « locales/zh_TW/faq_install.json ('k') | locales/zh_TW/faq_project.json » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 { 1 {
2 "title": { 2 "title": {
3 "message": "FAQ - Adblock Plus 內部實作" 3 "message": "FAQ - Adblock Plus 內部實作"
4 }, 4 },
5 "s1": { 5 "s1": {
6 "message": "哪裡有全部 Adblock Plus 偏好設定值的用途?" 6 "message": "哪裡有全部 Adblock Plus 偏好設定值的用途?"
7 }, 7 },
8 "s2": { 8 "s2": {
9 "message": "Adblock Plus 有許多可經由" 9 "message": "Adblock Plus 有許多可經由 <a>about:config</a> 存取的偏好設定。它們都是以"
10 }, 10 },
11 "s3": { 11 "s3": {
12 "message": "http://kb.mozillazine.org/About:config" 12 "message": "extensions.adblockplus."
13 }, 13 },
14 "s4": { 14 "s4": {
15 "message": "about:config" 15 "message": "開頭的 (與 Adblock 及 Adblock Plus 0.5 以"
16 }, 16 },
17 "s5": { 17 "s5": {
18 "message": "存取的偏好設定。它們都是以" 18 "message": "adblock."
19 }, 19 },
20 "s6": { 20 "s6": {
21 "message": "extensions.adblockplus." 21 "message": "開頭不同)。完整的說明列表可以在 <a>這裡</a> 取得。"
22 }, 22 },
23 "s7": { 23 "s7": {
24 "message": "開頭的 (與 Adblock 及 Adblock Plus 0.5 以" 24 "message": "我要怎麼從自己的擴充套件存取 Adblock Plus"
25 }, 25 },
26 "s8": { 26 "s8": {
27 "message": "adblock." 27 "message": "要讓其他擴充套件整合 Adblock Plus,可使用"
28 }, 28 },
29 "s9": { 29 "s9": {
30 "message": "開頭不同)。完整的說明列表可以在 <a>這裡</a> 取得。" 30 "message": "IAdblockPlus"
31 }, 31 },
32 "s10": { 32 "s10": {
33 "message": "我要怎麼從自己的擴充套件存取 Adblock Plus?" 33 "message": "介面。詳細情形請參閱 <a>介面文件</a>。"
34 }, 34 },
35 "s11": { 35 "s11": {
36 "message": "要讓其他擴充套件整合 Adblock Plus,可使用" 36 "message": "Adblock Plus 是如何過濾網址的?"
37 }, 37 },
38 "s12": { 38 "s12": {
39 "message": "IAdblockPlus" 39 "message": "其實最關鍵的部份是由 Gecko,也就是 Firefox,Thunderbird 及其他應用程式的最底層引擎完成的。它包含一種稱 之為「內容策略」(content policy) 的機制。內容策略簡單地說就是一個 JavaScript (或 C++) 物件,每當瀏覽器需要載入某些東西時就會 呼叫。它會觀察網址及其他資料來決定是否允許載入。有許多內容策略是內建的 (當您在 Firefox 或者 SeaMonkey 中定義哪些網站的圖片不該載入時,您也 就設定了其中一個內容策略),所有套件也都可以註冊一個自己專用的。所以 Adblock Plus 要做的也就是註冊一個自己的內容策略,剩下的就是建立應用程式邏輯來 決定哪些網址應該阻擋,並提供使用者界面來設定過濾條件。"
40 }, 40 },
41 "s13": { 41 "s13": {
42 "message": "介面。詳細情形請參閱 <a>介面文件</a>。" 42 "message": "給開發者: 要註冊一個內容策略,您必須 <a>撰寫一個 XPCOM 元件</a> 並實作 <a>nsIContentPolicy 介面</a>。請確保您有調整模組中的 registerSelf 方法來註冊您在 \"content-policy\" 類別中的元件 (利用 <a>catego ry manager</a> 來實作)。現在您元件裡頭的 shouldLoad 方法將被呼叫,且您可以決定是否該接受指定的請求。"
43 }, 43 },
44 "s14": { 44 "s14": {
45 "message": "Adblock Plus 是如何過濾網址的?" 45 "message": "Adblock Plus 如何處理它的過濾條件,以及哪種過濾條件更快?"
46 }, 46 },
47 "s15": { 47 "s15": {
48 "message": "其實最關鍵的部份是由 Gecko,也就是 Firefox,Thunderbird 及其他應用程式的最底層引擎完成的。它包含一種稱 之為「內容策略」(content policy) 的機制。內容策略簡單地說就是一個 JavaScript (或 C++) 物件,每當瀏覽器需要載入某些東西時就會 呼叫。它會觀察網址及其他資料來決定是否允許載入。有許多內容策略是內建的 (當您在 Firefox 或者 SeaMonkey 中定義哪些網站的圖片不該載入時,您也 就設定了其中一個內容策略),所有套件也都可以註冊一個自己專用的。所以 Adblock Plus 要做的也就是註冊一個自己的內容策略,剩下的就是建立應用程式邏輯來 決定哪些網址應該阻擋,並提供使用者界面來設定過濾條件。" 48 "message": "所有的過濾條件都會在內部轉換成 <a>正規表示法</a>,即使不屬於這類寫法的條件也是。舉個例子,此條件"
49 }, 49 },
50 "s16": { 50 "s16": {
51 "message": "給開發者: 要註冊一個內容策略,您必須" 51 "message": "ad*banner.gif|"
52 }, 52 },
53 "s17": { 53 "s17": {
54 "message": "http://developer.mozilla.org/cn/docs/How_to_Build_an_XPCOM_Compo nent_in_Javascript" 54 "message": "將被轉換成正規表示法"
55 }, 55 },
56 "s18": { 56 "s18": {
57 "message": "撰寫一個 XPCOM 元件" 57 "message": "/ad.*banner\\.gif$/"
58 }, 58 },
59 "s19": { 59 "s19": {
60 "message": "並實作" 60 "message": "。然而給予 Adblock Plus 一個網址時,它會針對所有的過濾條件進行檢查,一條接一條地檢查可不是簡單的工作 -- 這會不 必要地拖慢瀏覽速度。"
61 }, 61 },
62 "s20": { 62 "s20": {
63 "message": "http://www.xulplanet.com/references/xpcomref/ifaces/nsIContentPo licy.html" 63 "message": "除了將過濾條件轉換成正規表示法之外,Adblock Plus 也會嘗試從中摘錄出一些文字訊息。它需要一個唯一的,八個字元的字串 (這稱為一個「捷徑」,shortcut),當某網址符合過濾條件時,該字串會被呈遞出來 (其字串長度是隨意的,只是八個字元最合理)。舉個例子,若您有一條過濾條件"
64 }, 64 },
65 "s21": { 65 "s21": {
66 "message": "nsIContentPolicy 介面" 66 "message": "|http://ad.*"
67 }, 67 },
68 "s22": { 68 "s22": {
69 "message": "。請確保您有調整模組中的 registerSelf 方法來註冊您在 \"content-policy\" 類別中的元件 (利用" 69 "message": ",則 Adblock Plus 會選擇 \"http://a\",\"ttp://ad\" 及 \"tp://ad.\" 其中之 一,這些字串中的任何一個都將在網址符合過濾條件時被呈遞。可惜的是,目前無法為包含星號的八個字元或正規表示法找出捷徑。"
70 }, 70 },
71 "s23": { 71 "s23": {
72 "message": "http://www.xulplanet.com/references/xpcomref/ifaces/nsICategoryM anager.html" 72 "message": "所有的捷徑都會被推入一個搜尋表中,Adblock Plus 會經由各自的捷徑快速搜尋到相對應的過濾條件。當某個特定的網址需要檢驗 時,Adblock Plus 會先在表中搜尋已知的捷徑 (這個動作非常快,所需時間幾乎與捷徑多寡無關)。只有在找到捷徑時,才針對這個字串進行相對應的正規表示法檢 驗。然而,沒有捷徑的過濾條件仍需要一條接一條地檢查,這是相當緩慢的。"
73 }, 73 },
74 "s24": { 74 "s24": {
75 "message": "category manager" 75 "message": "結論:使用哪一種過濾條件更快呢?您應該盡可能地少用正規表示法,它們一直都很龜速。然後盡量使用至少八個不間斷字元的簡單條件 (這表 示裡頭不能包含像是 * 的特殊字元),否則它們會和正規表示法一樣慢。不過只要是符合簡單條件的規則,不論多寡,處理的速度都是一樣的。這表示您即使拿 20 條簡單條 件來取代一條正規表示法都是值得的。說到這裡 -- 推薦使用 <a>將正規表示法轉換成一般規則</a> 這個網頁工具。"
76 }, 76 },
77 "s25": { 77 "s25": {
78 "message": "來實作)。現在您元件裡頭的 shouldLoad 方法將被呼叫,且您可以決定是否該接受指定的請求。" 78 "message": "配對過濾條件的演算法細節"
79 }, 79 },
80 "s26": { 80 "s26": {
81 "message": "Adblock Plus 如何處理它的過濾條件,以及哪種過濾條件更快?" 81 "message": "元素隱藏功能是如何實作的?"
82 }, 82 },
83 "s27": { 83 "s27": {
84 "message": "所有的過濾條件都會在內部轉換成 <a>正規表示法</a>,即使不屬於這類寫法的條件也是。舉個例子,此條件" 84 "message": "元素隱藏規則會被翻譯成 <a>CSS</a> 並套用到所有使用者造訪的網頁。一條像是"
85 }, 85 },
86 "s28": { 86 "s28": {
87 "message": "ad*banner.gif|" 87 "message": "example.com#div(evil_ad)"
88 }, 88 },
89 "s29": { 89 "s29": {
90 "message": "將被轉換成正規表示法" 90 "message": "的規則看起來就等同:"
91 }, 91 },
92 "s30": { 92 "s30": {
93 "message": "/ad.*banner\\.gif$/" 93 "message": "@-moz-document 是一個 CSS 標準的延伸,您可以在 <a>Mozilla Developer Center</a > 閱讀更多相關細節。"
94 }, 94 },
95 "s31": { 95 "s31": {
96 "message": "。然而給予 Adblock Plus 一個網址時,它會針對所有的過濾條件進行檢查,一條接一條地檢查可不是簡單的工作 -- 這會不 必要地拖慢瀏覽速度。" 96 "message": "那些沒有限制特定網域的規則將會被設定在 http:// 及 https:// 協定下以防它們不小心隱藏瀏覽器的界面 (chrom e:// 格式)。舉個例子,條件"
97 }, 97 },
98 "s32": { 98 "s32": {
99 "message": "除了將過濾條件轉換成正規表示法之外,Adblock Plus 也會嘗試從中摘錄出一些文字訊息。它需要一個唯一的,八個字元的字串 (這稱為一個「捷徑」,shortcut),當某網址符合過濾條件時,該字串會被呈遞出來 (其字串長度是隨意的,只是八個字元最合理)。舉個例子,若您有一條過濾條件" 99 "message": "#div(evil_ad)"
100 }, 100 },
101 "s33": { 101 "s33": {
102 "message": "|http://ad.*" 102 "message": "將被翻譯為:"
103 }, 103 },
104 "s34": { 104 "s34": {
105 "message": ",則 Adblock Plus 會選擇 \"http://a\",\"ttp://ad\" 及 \"tp://ad.\" 其中之 一,這些字串中的任何一個都將在網址符合過濾條件時被呈遞。可惜的是,目前無法為包含星號的八個字元或正規表示法找出捷徑。" 105 "message": "給開發者:Adblock Plus 使用這裡的 <a>樣式服務</a>。此介面自 Gecko 1.8 起允許擴充套件動態加入使用 者樣式表 (以前只能修改 userContent.css 並需要重新啟動瀏覽器)。使用者樣式表將複寫所有網站的 CSS 程式碼,它們擁有最高的 <a>優先權</ a>。"
106 }, 106 },
107 "s35": { 107 "s35": {
108 "message": "所有的捷徑都會被推入一個搜尋表中,Adblock Plus 會經由各自的捷徑快速搜尋到相對應的過濾條件。當某個特定的網址需要檢驗 時,Adblock Plus 會先在表中搜尋已知的捷徑 (這個動作非常快,所需時間幾乎與捷徑多寡無關)。只有在找到捷徑時,才針對這個字串進行相對應的正規表示法檢 驗。然而,沒有捷徑的過濾條件仍需要一條接一條地檢查,這是相當緩慢的。" 108 "message": "過濾條件集檔案的第一行會是什麼樣子?"
109 }, 109 },
110 "s36": { 110 "s36": {
111 "message": "結論:使用哪一種過濾條件更快呢?您應該盡可能地少用正規表示法,它們一直都很龜速。然後盡量使用至少八個不間斷字元的簡單條件 (這表 示裡頭不能包含像是 * 的特殊字元),否則它們會和正規表示法一樣慢。不過只要是符合簡單條件的規則,不論多寡,處理的速度都是一樣的。這表示您即使拿 20 條簡單條 件來取代一條正規表示法都是值得的。說到這裡 -- 推薦使用 <a>將正規表示法轉換成一般規則</a> 這個網頁工具。" 111 "message": "通常條件集的第一行都是簡單的"
112 }, 112 },
113 "s37": { 113 "s37": {
114 "message": "配對過濾條件的演算法細節" 114 "message": "[Adblock]"
115 }, 115 },
116 "s38": { 116 "s38": {
117 "message": "元素隱藏功能是如何實作的?" 117 "message": "。然而您也許已經注意到最近版本的 Adblock Plus 有時會替換成不同文字。這是因為您的列表中有些條件需要使用新版 Adb lock Plus 才支援的進階語法,而不被原本的 Adblock 支援。像下面這個例子:"
118 }, 118 },
119 "s39": { 119 "s39": {
120 "message": "元素隱藏規則會被翻譯成" 120 "message": "這只是一個簡單的註解。Adblock (或 Adblock Plus) 將忽略實際標記前的內容。這裡的需求版本不是強制性的,因為 Adblock Plus 0.6.1.2 也還不支援它。不過,如果您使用更新的過濾條件語法,您也許會需要改成:"
121 }, 121 },
122 "s40": { 122 "s40": {
123 "message": "http://www.w3.org/TR/CSS21/" 123 "message": "這種標頭的類型從 Adblock Plus 0.7.1 開始支援。較舊的 Adblock Plus 及 Adblock 版本無法 開啟這種標頭的檔案。至於目前的版本,會先檢查標頭的版本編號並與本身的版本比較。如果檔案需要更新的 Adblock Plus,則使用者會收到一個要求更新的訊息。過 濾條件集仍會載入這些新版 Adblock Plus 才能正常使用的檔案,不過會在偏好設定視窗中顯示警告訊息。"
124 }, 124 },
125 "s41": { 125 "s41": {
126 "message": "CSS" 126 "message": "最後,如果你只想要求使用 Adblock Plus 而不想指定版本,您可以在檔案開頭寫上"
127 }, 127 },
128 "s42": { 128 "s42": {
129 "message": "並套用到所有使用者造訪的網頁。一條像是" 129 "message": "[Adblock Plus]"
130 }, 130 },
131 "s43": { 131 "s43": {
132 "message": "example.com#div(evil_ad)"
133 },
134 "s44": {
135 "message": "的規則看起來就等同:"
136 },
137 "s45": {
138 "message": "@-moz-document domain(example.com)\n{\n div#evil_ad, div.evil_a d\n {\n display: none !important;\n }\n}"
139 },
140 "s46": {
141 "message": "@-moz-document 是一個 CSS 標準的延伸,您可以在"
142 },
143 "s47": {
144 "message": "https://developer.mozilla.org/en/CSS/@-moz-document"
145 },
146 "s48": {
147 "message": "Mozilla Developer Center"
148 },
149 "s49": {
150 "message": "閱讀更多相關細節。"
151 },
152 "s50": {
153 "message": "那些沒有限制特定網域的規則將會被設定在 http:// 及 https:// 協定下以防它們不小心隱藏瀏覽器的界面 (chrom e:// 格式)。舉個例子,條件"
154 },
155 "s51": {
156 "message": "#div(evil_ad)"
157 },
158 "s52": {
159 "message": "將被翻譯為:"
160 },
161 "s53": {
162 "message": "@-moz-document url-prefix(http://),url-prefix(https://)\n{\n di v#evil_ad, div.evil_ad\n {\n display: none !important;\n }\n}"
163 },
164 "s54": {
165 "message": "給開發者:Adblock Plus 使用這裡的"
166 },
167 "s55": {
168 "message": "https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsISt yleSheetService"
169 },
170 "s56": {
171 "message": "樣式服務"
172 },
173 "s57": {
174 "message": "。此介面自 Gecko 1.8 起允許擴充套件動態加入使用者樣式表 (以前只能修改 userContent.css 並需要重新啟 動瀏覽器)。使用者樣式表將複寫所有網站的 CSS 程式碼,它們擁有最高的"
175 },
176 "s58": {
177 "message": "http://www.w3.org/TR/CSS21/cascade.html#cascading-order"
178 },
179 "s59": {
180 "message": "優先權"
181 },
182 "s60": {
183 "message": "。"
184 },
185 "s61": {
186 "message": "過濾條件集檔案的第一行會是什麼樣子?"
187 },
188 "s62": {
189 "message": "通常條件集的第一行都是簡單的"
190 },
191 "s63": {
192 "message": "[Adblock]"
193 },
194 "s64": {
195 "message": "。然而您也許已經注意到最近版本的 Adblock Plus 有時會替換成不同文字。這是因為您的列表中有些條件需要使用新版 Adb lock Plus 才支援的進階語法,而不被原本的 Adblock 支援。像下面這個例子:"
196 },
197 "s65": {
198 "message": "(Adblock Plus 0.6.1.2 or higher required) [Adblock]"
199 },
200 "s66": {
201 "message": "這只是一個簡單的註解。Adblock (或 Adblock Plus) 將忽略實際標記前的內容。這裡的需求版本不是強制性的,因為 Adblock Plus 0.6.1.2 也還不支援它。不過,如果您使用更新的過濾條件語法,您也許會需要改成:"
202 },
203 "s67": {
204 "message": "[Adblock Plus 0.7.1]"
205 },
206 "s68": {
207 "message": "這種標頭的類型從 Adblock Plus 0.7.1 開始支援。較舊的 Adblock Plus 及 Adblock 版本無法 開啟這種標頭的檔案。至於目前的版本,會先檢查標頭的版本編號並與本身的版本比較。如果檔案需要更新的 Adblock Plus,則使用者會收到一個要求更新的訊息。過 濾條件集仍會載入這些新版 Adblock Plus 才能正常使用的檔案,不過會在偏好設定視窗中顯示警告訊息。"
208 },
209 "s69": {
210 "message": "最後,如果你只想要求使用 Adblock Plus 而不想指定版本,您可以在檔案開頭寫上"
211 },
212 "s70": {
213 "message": "[Adblock Plus]"
214 },
215 "s71": {
216 "message": "。當然這個檔案只會被 Adblock Plus 0.7.1 及更高版本接受。" 132 "message": "。當然這個檔案只會被 Adblock Plus 0.7.1 及更高版本接受。"
217 } 133 }
218 } 134 }
OLDNEW
« no previous file with comments | « locales/zh_TW/faq_install.json ('k') | locales/zh_TW/faq_project.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld