Skip to content

Commit d52f107

Browse files
committed
Removed unused messages
allowPDFCanvas_description allowPDFCanvas_title url_title url_description inspectImage
1 parent 18bbab5 commit d52f107

7 files changed

Lines changed: 146 additions & 120 deletions

File tree

.tools/findUnusedMessages.js

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
const fs = require("fs");
2+
const path = require("path");
3+
const util = require("util");
4+
5+
6+
7+
function getMessagesInContent(content){
8+
const foundMessages = [];
9+
[
10+
/\b(?:_|browser.i18n.getMessage|notify)\(["']([^"']+)["']\s*(?:\)|,)/g,
11+
/\b(?:messageId|name)\s*:\s*["']([^"']+)["']/g,
12+
].forEach(function(re){
13+
let match;
14+
while ((match = re.exec(content)) !== null){
15+
foundMessages.push(match[1].toLowerCase());
16+
}
17+
});
18+
return foundMessages;
19+
}
20+
21+
async function getMessagesInFile(path){
22+
return await util.promisify(fs.exists)(path)
23+
.then(function(exists){
24+
if (exists){
25+
return util.promisify(fs.readFile)(path, {encoding: "UTF-8"})
26+
.then(function(content){
27+
return getMessagesInContent(content);
28+
});
29+
}
30+
else {
31+
console.log("file does not exist:", path);
32+
return [];
33+
}
34+
});
35+
}
36+
37+
async function getMessagesInFolder(folder){
38+
return await util.promisify(fs.readdir)(folder, {encoding: "UTF-8"})
39+
.then(function(files){
40+
return Promise.all(
41+
files.filter(function(file){
42+
return !file.startsWith(".");
43+
}).map(function(file){
44+
return path.join(folder, file);
45+
}).map(function(path){
46+
return util.promisify(fs.stat)(path).then(function(stat){
47+
if (stat.isDirectory()){
48+
return getMessagesInFolder(path);
49+
}
50+
else {
51+
if (path.endsWith(".js")){
52+
return getMessagesInFile(path);
53+
}
54+
else {
55+
return [];
56+
}
57+
}
58+
});
59+
})
60+
).then(function(messages){
61+
const flat = [];
62+
messages.forEach(function(messages){
63+
messages.forEach(function(message){
64+
flat.push(message);
65+
});
66+
});
67+
return flat;
68+
});
69+
})
70+
}
71+
72+
73+
async function getSettingMessages(){
74+
const settingStrings = require("../lib/settingStrings");
75+
const settingDefinitions = require("../lib/settingDefinitions");
76+
function getDefinition(name){
77+
return settingDefinitions.filter(function(settingDefinition){
78+
return settingDefinition.name === name;
79+
})[0];
80+
}
81+
const settingsDisplay = require("../options/settingsDisplay");
82+
83+
const foundMessages = [];
84+
settingsDisplay.forEach(function(display){
85+
if ((typeof display) === "string"){
86+
foundMessages.push("section_" + display.toLowerCase());
87+
}
88+
else {
89+
let settingDefinition = getDefinition(display.name);
90+
if (!settingDefinition){
91+
settingDefinition = display;
92+
display.action = true;
93+
}
94+
if (settingDefinition){
95+
if (display.inputs){
96+
settingDefinition.inputs = display.inputs.map(function(input){
97+
return getDefinition(input);
98+
});
99+
}
100+
else if (display.actions){
101+
settingDefinition.actions = display.actions.map(function(action){
102+
return {name: action};
103+
});
104+
}
105+
settingStrings.getMessages(settingDefinition).forEach(function(message){
106+
foundMessages.push(message.toLowerCase());
107+
});
108+
}
109+
}
110+
});
111+
return foundMessages.map(function(message){return message.toLowerCase();});
112+
}
113+
114+
async function getKnownMessages(){
115+
return [
116+
"addon_title",
117+
"addon_description",
118+
"urlsettings_title",
119+
"installnotice",
120+
"updatenotice",
121+
"disablenotifications",
122+
"showoptions",
123+
"displayhiddensettings_title",
124+
"displayhiddensettings_description",
125+
"browseraction_settings",
126+
"browseraction_test",
127+
"browseraction_review",
128+
"browseraction_reportissue",
129+
];
130+
}
131+
132+
const en = require("../_locales/en/messages.json");
133+
const declaredMessages = Object.keys(en)
134+
// .filter(function(key){return en[key].message;})
135+
.map(function(key){return key.toLowerCase();});
136+
Promise.all([getSettingMessages(), getMessagesInFolder(path.join(__dirname, "..")), getKnownMessages()]).then(function([settingMessages, fileMessages, knownMessages]){
137+
declaredMessages.forEach(function(message){
138+
if (
139+
fileMessages.indexOf(message) === -1 &&
140+
settingMessages.indexOf(message) === -1 &&
141+
knownMessages.indexOf(message) === -1
142+
){
143+
console.log(`${message} not used`);
144+
}
145+
});
146+
});

_locales/de/messages.json

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -154,14 +154,6 @@
154154
"description": ""
155155
},
156156

157-
"allowPDFCanvas_description": {
158-
"message": "Die native pdf.js verwendet <canvas> um den Inhalt von PDFs anzuzeigen. Wenn viele Nachfragedialoge erscheinen oder die PDF-Ansicht nicht funktioniert, müssen diese erlaubt werden.",
159-
"description": ""
160-
},
161-
"allowPDFCanvas_title": {
162-
"message": "<canvas> in PDFs erlauben",
163-
"description": ""
164-
},
165157
"askForInvisiblePermission": {
166158
"message": "Wollen Sie unsichtbare <canvas> erlauben?",
167159
"description": ""
@@ -363,14 +355,6 @@
363355
"description": ""
364356
},
365357

366-
"url_title": {
367-
"message": "URL",
368-
"description": ""
369-
},
370-
"url_description": {
371-
"message": "",
372-
"description": ""
373-
},
374358
"inputURL": {
375359
"message": "Domain oder URL \"RegExp\" eingeben:",
376360
"description": ""
@@ -824,10 +808,6 @@
824808
"description": ""
825809
},
826810

827-
"inspectImage": {
828-
"message": "Bild betrachten",
829-
"description": ""
830-
},
831811
"storeImageForInspection_title": {
832812
"message": "Bild für Betrachtung speichern",
833813
"description": ""

_locales/en/messages.json

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -355,14 +355,6 @@
355355
"description": ""
356356
},
357357

358-
"url_title": {
359-
"message": "URL",
360-
"description": ""
361-
},
362-
"url_description": {
363-
"message": "",
364-
"description": ""
365-
},
366358
"inputURL": {
367359
"message": "Input domain or URL \"RegExp\":",
368360
"description": ""
@@ -743,14 +735,6 @@
743735
"message": "blink",
744736
"description": ""
745737
},
746-
"notificationDisplayTime_description": {
747-
"message": "Number of seconds the notifications are shown. (Enter zero to disable automatic closing.)",
748-
"description": ""
749-
},
750-
"notificationDisplayTime_title": {
751-
"message": "Notification display time",
752-
"description": ""
753-
},
754738
"sourceOutput": {
755739
"message": "Calling file",
756740
"description": ""
@@ -823,10 +807,6 @@
823807
"description": ""
824808
},
825809

826-
"inspectImage": {
827-
"message": "inspect image",
828-
"description": ""
829-
},
830810
"storeImageForInspection_title": {
831811
"message": "Store image for inspection",
832812
"description": ""

_locales/es/messages.json

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -121,14 +121,6 @@
121121
"description": ""
122122
},
123123

124-
"allowPDFCanvas_description": {
125-
"message": "El lector de PDF integrado de Firefox usa la API para mostrar el contenido de los PDF. Si aparecen demasiados cuadros de diálogo o si no funciona el lector de PDF en absoluto, tiene que permitir esto.",
126-
"description": ""
127-
},
128-
"allowPDFCanvas_title": {
129-
"message": "Permitir canvas en los PDF",
130-
"description": ""
131-
},
132124
"askForInvisiblePermission": {
133125
"message": "¿Quiere permitir los <canvas> invisibles?",
134126
"description": ""
@@ -290,14 +282,6 @@
290282
"description": ""
291283
},
292284

293-
"url_title": {
294-
"message": "URL",
295-
"description": ""
296-
},
297-
"url_description": {
298-
"message": "",
299-
"description": ""
300-
},
301285
"inputURL": {
302286
"message": "Introduzca un dominio o RegExp de URL:",
303287
"description": ""
@@ -681,10 +665,6 @@
681665
"description": ""
682666
},
683667

684-
"inspectImage": {
685-
"message": "inspeccionar la imagen",
686-
"description": ""
687-
},
688668
"storeImageForInspection_title": {
689669
"message": "Guardar la imagen para inspeccionarla",
690670
"description": ""

_locales/fr/messages.json

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -100,14 +100,6 @@
100100
"description": ""
101101
},
102102

103-
"allowPDFCanvas_description": {
104-
"message": "Le fichier pdf.js (JavaScript) utilise <canvas> pour afficher le contenu des PDF. Si de nombreuses boîtes de dialogue apparaissent ou si la vue de PDF ne fonctionne pas, canvas doit être autorisé.",
105-
"description": ""
106-
},
107-
"allowPDFCanvas_title": {
108-
"message": "Autoriser Canvas dans les fichiers PDF",
109-
"description": ""
110-
},
111103
"askForInvisiblePermission": {
112104
"message": "Voulez-vous autoriser l'utilisation de <canvas> invisible ?",
113105
"description": ""
@@ -269,14 +261,6 @@
269261
"description": ""
270262
},
271263

272-
"url_title": {
273-
"message": "URL",
274-
"description": ""
275-
},
276-
"url_description": {
277-
"message": "",
278-
"description": ""
279-
},
280264
"inputURL": {
281265
"message": "Input domain or URL RegExp:",
282266
"description": ""
@@ -577,10 +561,6 @@
577561
"description": ""
578562
},
579563

580-
"inspectImage": {
581-
"message": "Visionner l'image",
582-
"description": ""
583-
},
584564
"storeImageForInspection_title": {
585565
"message": "Enregistrer l'image pour la visualiser",
586566
"description": ""

_locales/it/messages.json

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,6 @@
3535
"description": ""
3636
},
3737

38-
"allowPDFCanvas_description": {
39-
"message": "Il lettore PDF nativo di Firefox usa le API per visualizzare i PDF. Se compaiono troppe finestre di interazione o il lettore PDF non funziona proprio, allora devono essere permesse.",
40-
"description": ""
41-
},
42-
"allowPDFCanvas_title": {
43-
"message": "Permetti canvas nei PDF",
44-
"description": ""
45-
},
4638
"askForInvisiblePermission": {
4739
"message": "Vuoi permettere i <canvas> invisibili?",
4840
"description": ""
@@ -178,14 +170,6 @@
178170
"description": ""
179171
},
180172

181-
"url_title": {
182-
"message": "URL",
183-
"description": ""
184-
},
185-
"url_description": {
186-
"message": "",
187-
"description": ""
188-
},
189173
"inputURL": {
190174
"message": "Inserisci dominio o RegExp URL:",
191175
"description": ""
@@ -465,10 +449,6 @@
465449
"description": ""
466450
},
467451

468-
"inspectImage": {
469-
"message": "ispeziona immagine",
470-
"description": ""
471-
},
472452
"storeImageForInspection_title": {
473453
"message": "Memorizza immagine per ispezione",
474454
"description": ""

_locales/zh_CN/messages.json

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -100,14 +100,6 @@
100100
"description": ""
101101
},
102102

103-
"allowPDFCanvas_description": {
104-
"message": "Firefox 自带的 PDF 阅读器(pdf.js)使用该 API 显示 PDF 内容。如果出现了太多的询问对话框,或者 PDF 阅读器功能失效,则您需要在对话框中允许。",
105-
"description": ""
106-
},
107-
"allowPDFCanvas_title": {
108-
"message": "允许 PDF 文件中的 Canvas",
109-
"description": ""
110-
},
111103
"askForInvisiblePermission": {
112104
"message": "是否允许不可见的 <canvas>?",
113105
"description": ""
@@ -269,14 +261,6 @@
269261
"description": ""
270262
},
271263

272-
"url_title": {
273-
"message": "URL",
274-
"description": ""
275-
},
276-
"url_description": {
277-
"message": "",
278-
"description": ""
279-
},
280264
"inputURL": {
281265
"message": "输入域名或网址(URL)的正则表达式:",
282266
"description": ""
@@ -603,10 +587,6 @@
603587
"description": ""
604588
},
605589

606-
"inspectImage": {
607-
"message": "察看图像",
608-
"description": ""
609-
},
610590
"storeImageForInspection_title": {
611591
"message": "存储图像以备察看",
612592
"description": ""

0 commit comments

Comments
 (0)