Bug 1268159 - Use GreD in addition to XCurProcD for browser_misused_characters_in_strings.js to cover more string files. r=gijs

MozReview-Commit-ID: IlC170W0nlG
* * *
[mq]: temp

MozReview-Commit-ID: GF0k4zvONPD
This commit is contained in:
Jared Wein 2016-04-29 09:28:48 -04:00
Родитель 275983966f
Коммит e889366796
62 изменённых файлов: 644 добавлений и 572 удалений

Просмотреть файл

@ -324,7 +324,7 @@ add_task(function* checkAdvancedDetailsForHSTS() {
});
isnot(message.divDisplay, "none", "Debug information is visible");
ok(message.text.includes(badStsUri.spec), "Correct URL found");
ok(message.text.includes("requested domain name does not match the server's certificate"),
ok(message.text.includes("requested domain name does not match the server\u2019s certificate"),
"Correct error message found");
ok(message.text.includes("HTTP Strict Transport Security: false"),
"Correct HSTS value found");

Просмотреть файл

@ -1,168 +1,240 @@
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
/* This list allows pre-existing or 'unfixable' issues to remain, while we
* detect newly occurring issues in shipping files. It is a list of objects
* specifying conditions under which an error should be ignored.
*
* As each issue is found in the whitelist, it is removed from the list. At
* the end of the test, there is an assertion that all items have been
* removed from the whitelist, thus ensuring there are no stale entries. */
let gWhitelist = [{
file: "search.properties",
key: "searchForSomethingWith",
type: "single-quote"
}, {
file: "browser.dtd",
key: "social.activated.description",
type: "single-quote"
}, {
file: "netError.dtd",
key: "certerror.introPara",
type: "single-quote"
}, {
file: "netError.dtd",
key: "weakCryptoAdvanced.longDesc",
type: "single-quote"
}, {
file: "netError.dtd",
key: "weakCryptoAdvanced.override",
type: "single-quote"
}, {
file: "netError.dtd",
key: "inadequateSecurityError.longDesc",
type: "single-quote"
}, {
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
/* This list allows pre-existing or 'unfixable' issues to remain, while we
* detect newly occurring issues in shipping files. It is a list of objects
* specifying conditions under which an error should be ignored.
*
* As each issue is found in the whitelist, it is removed from the list. At
* the end of the test, there is an assertion that all items have been
* removed from the whitelist, thus ensuring there are no stale entries. */
let gWhitelist = [{
file: "search.properties",
key: "searchForSomethingWith",
type: "single-quote"
}, {
file: "browser.dtd",
key: "social.activated.description",
type: "single-quote"
}, {
file: "netError.dtd",
key: "certerror.introPara",
type: "single-quote"
}, {
file: "netError.dtd",
key: "weakCryptoAdvanced.longDesc",
type: "single-quote"
}, {
file: "netError.dtd",
key: "weakCryptoAdvanced.override",
type: "single-quote"
}, {
file: "netError.dtd",
key: "inadequateSecurityError.longDesc",
type: "single-quote"
}, {
file: "netError.dtd",
key: "certerror.wrongSystemTime",
type: "single-quote"
}, {
file: "phishing-afterload-warning-message.dtd",
key: "safeb.blocked.malwarePage.shortDesc",
type: "single-quote"
}, {
file: "phishing-afterload-warning-message.dtd",
key: "safeb.blocked.unwantedPage.shortDesc",
type: "single-quote"
}, {
file: "phishing-afterload-warning-message.dtd",
key: "safeb.blocked.phishingPage.shortDesc2",
type: "single-quote"
}, {
file: "phishing-afterload-warning-message.dtd",
key: "safeb.blocked.forbiddenPage.shortDesc2",
type: "single-quote"
}
];
var moduleLocation = gTestPath.replace(/\/[^\/]*$/i, "/parsingTestHelpers.jsm");
var {generateURIsFromDirTree} = Cu.import(moduleLocation, {});
/**
* Check if an error should be ignored due to matching one of the whitelist
* objects defined in gWhitelist.
*
* @param filepath The URI spec of the locale file
* @param key The key of the entity that is being checked
* @param type The type of error that has been found
* @return true if the error should be ignored, false otherwise.
*/
function ignoredError(filepath, key, type) {
for (let index in gWhitelist) {
let whitelistItem = gWhitelist[index];
if (filepath.endsWith(whitelistItem.file) &&
key == whitelistItem.key &&
type == whitelistItem.type) {
gWhitelist.splice(index, 1);
return true;
}
}
return false;
}
function fetchFile(uri) {
return new Promise((resolve, reject) => {
let xhr = new XMLHttpRequest();
xhr.open("GET", uri, true);
xhr.onreadystatechange = function() {
if (this.readyState != this.DONE) {
return;
}
try {
resolve(this.responseText);
} catch (ex) {
ok(false, `Script error reading ${uri}: ${ex}`);
resolve("");
}
};
xhr.onerror = error => {
ok(false, `XHR error reading ${uri}: ${error}`);
resolve("");
};
xhr.send(null);
});
}
function testForError(filepath, key, str, pattern, type, helpText) {
if (str.match(pattern) &&
!ignoredError(filepath, key, type)) {
ok(false, `${filepath} with key=${key} has a misused ${type}. ${helpText}`);
}
}
function testForErrors(filepath, key, str) {
testForError(filepath, key, str, /\w'\w/, "apostrophe", "Strings with apostrophes should use foo\u2019s instead of foo's.");
testForError(filepath, key, str, /\w\u2018\w/, "incorrect-apostrophe", "Strings with apostrophes should use foo\u2019s instead of foo\u2018s.");
testForError(filepath, key, str, /'.+'/, "single-quote", "Single-quoted strings should use Unicode \u2018foo\u2019 instead of 'foo'.");
testForError(filepath, key, str, /"/, "double-quote", "Double-quoted strings should use Unicode \u201cfoo\u201d instead of \"foo\".");
testForError(filepath, key, str, /\.\.\./, "ellipsis", "Strings with an ellipsis should use the Unicode \u2026 character instead of three periods.");
}
add_task(function* checkAllTheProperties() {
let appDir = Services.dirsvc.get("XCurProcD", Ci.nsIFile);
// This asynchronously produces a list of URLs (sadly, mostly sync on our
// test infrastructure because it runs against jarfiles there, and
// our zipreader APIs are all sync)
let uris = yield generateURIsFromDirTree(appDir, [".properties"]);
ok(uris.length, `Found ${uris.length} .properties files to scan for misused characters`);
for (let uri of uris) {
let bundle = new StringBundle(uri.spec);
let entities = bundle.getAll();
for (let entity of entities) {
testForErrors(uri.spec, entity.key, entity.value);
}
}
});
var checkDTD = Task.async(function* (aURISpec) {
let rawContents = yield fetchFile(aURISpec);
// The regular expression below is adapted from:
// https://hg.mozilla.org/mozilla-central/file/68c0b7d6f16ce5bb023e08050102b5f2fe4aacd8/python/compare-locales/compare_locales/parser.py#l233
let entities = rawContents.match(/<!ENTITY\s+([\w\.]*)\s+("[^"]*"|'[^']*')\s*>/g);
for (let entity of entities) {
let [, key, str] = entity.match(/<!ENTITY\s+([\w\.]*)\s+("[^"]*"|'[^']*')\s*>/);
// The matched string includes the enclosing quotation marks,
// we need to slice them off.
str = str.slice(1, -1);
testForErrors(aURISpec, key, str);
}
});
add_task(function* checkAllTheDTDs() {
let appDir = Services.dirsvc.get("XCurProcD", Ci.nsIFile);
let uris = yield generateURIsFromDirTree(appDir, [".dtd"]);
ok(uris.length, `Found ${uris.length} .dtd files to scan for misused characters`);
for (let uri of uris) {
yield checkDTD(uri.spec);
}
// This support DTD file supplies a string with a newline to make sure
// the regex in checkDTD works correctly for that case.
let dtdLocation = gTestPath.replace(/\/[^\/]*$/i, "/bug1262648_string_with_newlines.dtd");
yield checkDTD(dtdLocation);
});
add_task(function* ensureWhiteListIsEmpty() {
is(gWhitelist.length, 0, "No remaining whitelist entries exist");
});
file: "phishing-afterload-warning-message.dtd",
key: "safeb.blocked.malwarePage.shortDesc",
type: "single-quote"
}, {
file: "phishing-afterload-warning-message.dtd",
key: "safeb.blocked.unwantedPage.shortDesc",
type: "single-quote"
}, {
file: "phishing-afterload-warning-message.dtd",
key: "safeb.blocked.phishingPage.shortDesc2",
type: "single-quote"
}, {
file: "phishing-afterload-warning-message.dtd",
key: "safeb.blocked.forbiddenPage.shortDesc2",
type: "single-quote"
}, {
file: "mathfont.properties",
key: "operator.\\u002E\\u002E\\u002E.postfix",
type: "ellipsis"
}, {
file: "layout_errors.properties",
key: "ImageMapRectBoundsError",
type: "double-quote"
}, {
file: "layout_errors.properties",
key: "ImageMapCircleWrongNumberOfCoords",
type: "double-quote"
}, {
file: "layout_errors.properties",
key: "ImageMapCircleNegativeRadius",
type: "double-quote"
}, {
file: "layout_errors.properties",
key: "ImageMapPolyWrongNumberOfCoords",
type: "double-quote"
}, {
file: "layout_errors.properties",
key: "ImageMapPolyOddNumberOfCoords",
type: "double-quote"
}, {
file: "xbl.properties",
key: "CommandNotInChrome",
type: "double-quote"
}, {
file: "dom.properties",
key: "PatternAttributeCompileFailure",
type: "single-quote"
}, {
file: "pipnss.properties",
key: "certErrorMismatchSingle2",
type: "double-quote"
}, {
file: "pipnss.properties",
key: "certErrorCodePrefix2",
type: "double-quote"
}, {
file: "aboutSupport.dtd",
key: "aboutSupport.pageSubtitle",
type: "single-quote"
}, {
file: "aboutSupport.dtd",
key: "aboutSupport.userJSDescription",
type: "single-quote"
}, {
file: "netError.dtd",
key: "inadequateSecurityError.longDesc",
type: "single-quote"
}, {
file: "netErrorApp.dtd",
key: "securityOverride.warningContent",
type: "single-quote"
}
];
var moduleLocation = gTestPath.replace(/\/[^\/]*$/i, "/parsingTestHelpers.jsm");
var {generateURIsFromDirTree} = Cu.import(moduleLocation, {});
/**
* Check if an error should be ignored due to matching one of the whitelist
* objects defined in gWhitelist.
*
* @param filepath The URI spec of the locale file
* @param key The key of the entity that is being checked
* @param type The type of error that has been found
* @return true if the error should be ignored, false otherwise.
*/
function ignoredError(filepath, key, type) {
for (let index in gWhitelist) {
let whitelistItem = gWhitelist[index];
if (filepath.endsWith(whitelistItem.file) &&
key == whitelistItem.key &&
type == whitelistItem.type) {
gWhitelist.splice(index, 1);
return true;
}
}
return false;
}
function fetchFile(uri) {
return new Promise((resolve, reject) => {
let xhr = new XMLHttpRequest();
xhr.open("GET", uri, true);
xhr.onreadystatechange = function() {
if (this.readyState != this.DONE) {
return;
}
try {
resolve(this.responseText);
} catch (ex) {
ok(false, `Script error reading ${uri}: ${ex}`);
resolve("");
}
};
xhr.onerror = error => {
ok(false, `XHR error reading ${uri}: ${error}`);
resolve("");
};
xhr.send(null);
});
}
function testForError(filepath, key, str, pattern, type, helpText) {
if (str.match(pattern) &&
!ignoredError(filepath, key, type)) {
ok(false, `${filepath} with key=${key} has a misused ${type}. ${helpText}`);
}
}
function testForErrors(filepath, key, str) {
testForError(filepath, key, str, /\w'\w/, "apostrophe", "Strings with apostrophes should use foo\u2019s instead of foo's.");
testForError(filepath, key, str, /\w\u2018\w/, "incorrect-apostrophe", "Strings with apostrophes should use foo\u2019s instead of foo\u2018s.");
testForError(filepath, key, str, /'.+'/, "single-quote", "Single-quoted strings should use Unicode \u2018foo\u2019 instead of 'foo'.");
testForError(filepath, key, str, /"/, "double-quote", "Double-quoted strings should use Unicode \u201cfoo\u201d instead of \"foo\".");
testForError(filepath, key, str, /\.\.\./, "ellipsis", "Strings with an ellipsis should use the Unicode \u2026 character instead of three periods.");
}
function* getAllTheFiles(extension) {
let appDirGreD = Services.dirsvc.get("GreD", Ci.nsIFile);
let appDirXCurProcD = Services.dirsvc.get("XCurProcD", Ci.nsIFile);
if (appDirGreD.contains(appDirXCurProcD)) {
return yield generateURIsFromDirTree(appDirGreD, [extension]);
}
if (appDirXCurProcD.contains(appDirGreD)) {
return yield generateURIsFromDirTree(appDirXCurProcD, [extension]);
}
let urisGreD = yield generateURIsFromDirTree(appDirGreD, [extension]);
let urisXCurProcD = yield generateURIsFromDirTree(appDirXCurProcD, [extension]);
return Array.from(new Set(urisGreD.concat(appDirXCurProcD)));
}
add_task(function* checkAllTheProperties() {
// This asynchronously produces a list of URLs (sadly, mostly sync on our
// test infrastructure because it runs against jarfiles there, and
// our zipreader APIs are all sync)
let uris = yield getAllTheFiles(".properties");
ok(uris.length, `Found ${uris.length} .properties files to scan for misused characters`);
for (let uri of uris) {
let bundle = new StringBundle(uri.spec);
let entities = bundle.getAll();
for (let entity of entities) {
testForErrors(uri.spec, entity.key, entity.value);
}
}
});
var checkDTD = Task.async(function* (aURISpec) {
let rawContents = yield fetchFile(aURISpec);
// The regular expression below is adapted from:
// https://hg.mozilla.org/mozilla-central/file/68c0b7d6f16ce5bb023e08050102b5f2fe4aacd8/python/compare-locales/compare_locales/parser.py#l233
let entities = rawContents.match(/<!ENTITY\s+([\w\.]*)\s+("[^"]*"|'[^']*')\s*>/g);
if (!entities) {
// Some files, such as requestAutocomplete.dtd, have no entities defined.
return;
}
for (let entity of entities) {
let [, key, str] = entity.match(/<!ENTITY\s+([\w\.]*)\s+("[^"]*"|'[^']*')\s*>/);
// The matched string includes the enclosing quotation marks,
// we need to slice them off.
str = str.slice(1, -1);
testForErrors(aURISpec, key, str);
}
});
add_task(function* checkAllTheDTDs() {
let uris = yield getAllTheFiles(".dtd");
ok(uris.length, `Found ${uris.length} .dtd files to scan for misused characters`);
for (let uri of uris) {
yield checkDTD(uri.spec);
}
// This support DTD file supplies a string with a newline to make sure
// the regex in checkDTD works correctly for that case.
let dtdLocation = gTestPath.replace(/\/[^\/]*$/i, "/bug1262648_string_with_newlines.dtd");
yield checkDTD(dtdLocation);
});
add_task(function* ensureWhiteListIsEmpty() {
is(gWhitelist.length, 0, "No remaining whitelist entries exist");
});

Просмотреть файл

@ -8,8 +8,8 @@
"use strict";
const EXPECTED_RESULT = "Not supporting directive 'reflected-xss'. Directive " +
"and values will be ignored.";
const EXPECTED_RESULT = "Not supporting directive \u2018reflected-xss\u2019. " +
"Directive and values will be ignored.";
const TEST_FILE = "http://example.com/browser/devtools/client/webconsole/" +
"test/test_bug1045902_console_csp_ignore_reflected_xss_" +
"message.html";
@ -40,13 +40,13 @@ function testViolationMessage() {
let aOutputNode = hud.outputNode;
return waitForSuccess({
name: "Confirming that CSP logs messages to the console when " +
"'reflected-xss' directive is used!",
validator: function() {
console.log(aOutputNode.textContent);
let success = false;
success = aOutputNode.textContent.indexOf(EXPECTED_RESULT) > -1;
return success;
}
});
name: "Confirming that CSP logs messages to the console when " +
"\u2018reflected-xss\u2019 directive is used!",
validator: function() {
console.log(aOutputNode.textContent);
let success = false;
success = aOutputNode.textContent.indexOf(EXPECTED_RESULT) > -1;
return success;
}
});
}

Просмотреть файл

@ -43,7 +43,7 @@ function test() {
severity: SEVERITY_ERROR,
},
{
text: "Unknown property 'test-color'",
text: "Unknown property \u2018test-color\u2019",
category: CATEGORY_CSS,
severity: SEVERITY_WARNING,
},

Просмотреть файл

@ -31,7 +31,7 @@ add_task(function* () {
{
name: "Logged mixed active content",
text: "Loading mixed (insecure) active content " +
"\"http://example.com/\" on a secure page",
"\u201chttp://example.com/\u201d on a secure page",
category: CATEGORY_SECURITY,
severity: SEVERITY_WARNING,
objects: true,
@ -39,7 +39,7 @@ add_task(function* () {
{
name: "Logged mixed passive content - image",
text: "Loading mixed (insecure) display content " +
"\"http://example.com/tests/image/test/mochitest/blue.png\" " +
"\u201chttp://example.com/tests/image/test/mochitest/blue.png\u201d " +
"on a secure page",
category: CATEGORY_SECURITY,
severity: SEVERITY_WARNING,

Просмотреть файл

@ -33,14 +33,14 @@ add_task(function* () {
messages: [
{
name: "Logged blocking mixed active content",
text: "Blocked loading mixed active content \"http://example.com/\"",
text: "Blocked loading mixed active content \u201chttp://example.com/\u201d",
category: CATEGORY_SECURITY,
severity: SEVERITY_ERROR,
objects: true,
},
{
name: "Logged blocking mixed passive content - image",
text: "Blocked loading mixed active content \"http://example.com/\"",
text: "Blocked loading mixed active content \u201chttp://example.com/\u201d",
category: CATEGORY_SECURITY,
severity: SEVERITY_ERROR,
objects: true,
@ -78,7 +78,7 @@ function mixedContentOverrideTest2(hud, browser) {
{
name: "Logged blocking mixed active content",
text: "Loading mixed (insecure) active content " +
"\"http://example.com/\" on a secure page",
"\u201chttp://example.com/\u201d on a secure page",
category: CATEGORY_SECURITY,
severity: SEVERITY_WARNING,
objects: true,
@ -86,7 +86,7 @@ function mixedContentOverrideTest2(hud, browser) {
{
name: "Logged blocking mixed passive content - image",
text: "Loading mixed (insecure) display content" +
" \"http://example.com/tests/image/test/mochitest/blue.png\"" +
" \u201chttp://example.com/tests/image/test/mochitest/blue.png\u201d" +
" on a secure page",
category: CATEGORY_SECURITY,
severity: SEVERITY_WARNING,

Просмотреть файл

@ -20,14 +20,14 @@ const TEST_URI = "data:text/html;charset=utf8,Web Console CSP report only " +
"test (bug 1010953)";
const TEST_VIOLATION = "http://example.com/browser/devtools/client/" +
"webconsole/test/test_bug_1010953_cspro.html";
const CSP_VIOLATION_MSG = "Content Security Policy: The page's settings " +
const CSP_VIOLATION_MSG = "Content Security Policy: The page\u2019s settings " +
"blocked the loading of a resource at " +
"http://some.example.com/test.png " +
"(\"img-src http://example.com\").";
const CSP_REPORT_MSG = "Content Security Policy: The page\'s settings " +
"(\u201cimg-src http://example.com\u201d).";
const CSP_REPORT_MSG = "Content Security Policy: The page\u2019s settings " +
"observed the loading of a resource at " +
"http://some.example.com/test_bug_1010953_cspro.js " +
"(\"script-src http://example.com\"). A CSP report is " +
"(\u201cscript-src http://example.com\u201d). A CSP report is " +
"being sent.";
add_task(function* () {

Просмотреть файл

@ -31,7 +31,7 @@ add_task(function* () {
});
function onContentLoaded() {
let cssWarning = "Unknown property '-moz-opacity'. Declaration dropped.";
let cssWarning = "Unknown property \u2018-moz-opacity\u2019. Declaration dropped.";
return waitForMessages({
webconsole: hud,

Просмотреть файл

@ -224,9 +224,9 @@ function testCssLimits2() {
severity: SEVERITY_WARNING,
}],
}).then(() => {
testLogEntry(outputNode, "Unknown property '-moz-foobar0'",
testLogEntry(outputNode, "Unknown property \u2018-moz-foobar0\u2019",
"first message is pruned", false, true);
findLogEntry("Unknown property '-moz-foobar1'");
findLogEntry("Unknown property \u2018-moz-foobar1\u2019");
// Check if the sentinel entry is still there.
findLogEntry("testing CSS limits");

Просмотреть файл

@ -10,10 +10,10 @@
const TEST_URI = "data:text/html;charset=utf8,Web Console CSP violation test";
const TEST_VIOLATION = "https://example.com/browser/devtools/client/" +
"webconsole/test/test_bug_770099_violation.html";
const CSP_VIOLATION_MSG = "Content Security Policy: The page's settings " +
const CSP_VIOLATION_MSG = "Content Security Policy: The page\u2019s settings " +
"blocked the loading of a resource at " +
"http://some.example.com/test.png (\"default-src " +
"https://example.com\").";
"http://some.example.com/test.png (\u201cdefault-src " +
"https://example.com\u201d).";
add_task(function* () {
let { browser } = yield loadTab(TEST_URI);

Просмотреть файл

@ -27,12 +27,12 @@ function testViewSource() {
waitForMessages({
webconsole: hud,
messages: [{
text: "'font-weight'",
text: "\u2018font-weight\u2019",
category: CATEGORY_CSS,
severity: SEVERITY_WARNING,
},
{
text: "'color'",
text: "\u2018color\u2019",
category: CATEGORY_CSS,
severity: SEVERITY_WARNING,
}],

Просмотреть файл

@ -23,7 +23,7 @@ add_task(function* () {
messages: [
{
name: "Logged blocking mixed active content",
text: "Blocked loading mixed active content \"http://example.com/\"",
text: "Blocked loading mixed active content \u201chttp://example.com/\u201d",
category: CATEGORY_SECURITY,
severity: SEVERITY_ERROR
},

Просмотреть файл

@ -37,42 +37,42 @@ add_task(function* () {
url: SJS_URL + "?noMaxAge",
name: "No max-age error displayed successfully",
text: "Public-Key-Pins: The site specified a header that did not include " +
"a 'max-age' directive."
"a \u2018max-age\u2019 directive."
}, hud);
yield* checkForMessage({
url: SJS_URL + "?invalidIncludeSubDomains",
name: "Invalid includeSubDomains error displayed successfully",
text: "Public-Key-Pins: The site specified a header that included an " +
"invalid 'includeSubDomains' directive."
"invalid \u2018includeSubDomains\u2019 directive."
}, hud);
yield* checkForMessage({
url: SJS_URL + "?invalidMaxAge",
name: "Invalid max-age error displayed successfully",
text: "Public-Key-Pins: The site specified a header that included an " +
"invalid 'max-age' directive."
"invalid \u2018max-age\u2019 directive."
}, hud);
yield* checkForMessage({
url: SJS_URL + "?multipleIncludeSubDomains",
name: "Multiple includeSubDomains error displayed successfully",
text: "Public-Key-Pins: The site specified a header that included " +
"multiple 'includeSubDomains' directives."
"multiple \u2018includeSubDomains\u2019 directives."
}, hud);
yield* checkForMessage({
url: SJS_URL + "?multipleMaxAge",
name: "Multiple max-age error displayed successfully",
text: "Public-Key-Pins: The site specified a header that included " +
"multiple 'max-age' directives."
"multiple \u2018max-age\u2019 directives."
}, hud);
yield* checkForMessage({
url: SJS_URL + "?multipleReportURIs",
name: "Multiple report-uri error displayed successfully",
text: "Public-Key-Pins: The site specified a header that included " +
"multiple 'report-uri' directives."
"multiple \u2018report-uri\u2019 directives."
}, hud);
// The root used for mochitests is not built-in, so set the relevant pref to

Просмотреть файл

@ -31,35 +31,35 @@ add_task(function* () {
url: SJS_URL + "?noMaxAge",
name: "No max-age error displayed successfully",
text: "Strict-Transport-Security: The site specified a header that did " +
"not include a 'max-age' directive."
"not include a \u2018max-age\u2019 directive."
}, hud);
yield* checkForMessage({
url: SJS_URL + "?invalidIncludeSubDomains",
name: "Invalid includeSubDomains error displayed successfully",
text: "Strict-Transport-Security: The site specified a header that " +
"included an invalid 'includeSubDomains' directive."
"included an invalid \u2018includeSubDomains\u2019 directive."
}, hud);
yield* checkForMessage({
url: SJS_URL + "?invalidMaxAge",
name: "Invalid max-age error displayed successfully",
text: "Strict-Transport-Security: The site specified a header that " +
"included an invalid 'max-age' directive."
"included an invalid \u2018max-age\u2019 directive."
}, hud);
yield* checkForMessage({
url: SJS_URL + "?multipleIncludeSubDomains",
name: "Multiple includeSubDomains error displayed successfully",
text: "Strict-Transport-Security: The site specified a header that " +
"included multiple 'includeSubDomains' directives."
"included multiple \u2018includeSubDomains\u2019 directives."
}, hud);
yield* checkForMessage({
url: SJS_URL + "?multipleMaxAge",
name: "Multiple max-age error displayed successfully",
text: "Strict-Transport-Security: The site specified a header that " +
"included multiple 'max-age' directives."
"included multiple \u2018max-age\u2019 directives."
}, hud);
});

Просмотреть файл

@ -31,7 +31,7 @@ add_task(function* testMessagesAppear() {
messages: [
{
name: "Was blocked because tracking protection is enabled",
text: "The resource at \"http://tracking.example.com/\" was blocked because tracking protection is enabled",
text: "The resource at \u201chttp://tracking.example.com/\u201d was blocked because tracking protection is enabled",
category: CATEGORY_SECURITY,
severity: SEVERITY_WARNING,
objects: true,

Просмотреть файл

@ -2,9 +2,9 @@
<html>
<head>
<meta charset="UTF-8">
<title>Bug 1045902 - CSP: Log console message for 'reflected-xss'</title>
<title>Bug 1045902 - CSP: Log console message for reflected-xss</title>
</head>
<body>
Bug 1045902 - CSP: Log console message for 'reflected-xss'
Bug 1045902 - CSP: Log console message for reflected-xss
</body>
</html>

Просмотреть файл

@ -9,7 +9,7 @@ KillScriptLocation=Script: %S
StopScriptButton=Stop script
DebugScriptButton=Debug script
WaitForScriptButton=Continue
DontAskAgain=&Don't ask me again
DontAskAgain=&Dont ask me again
JSURLLoadBlockedWarning=Attempt to load a javascript: URL from one host\nin a window displaying content from another host\nwas blocked by the security manager.
WindowCloseBlockedWarning=Scripts may not close windows that were not opened by script.
OnBeforeUnloadTitle=Are you sure?
@ -57,8 +57,8 @@ SetAttributeNodeNSWarning=Use of setAttributeNodeNS() is deprecated. Use setAttr
RemoveAttributeNodeWarning=Use of removeAttributeNode() is deprecated. Use removeAttribute() instead.
CreateAttributeWarning=Use of document.createAttribute() is deprecated. Use element.setAttribute() instead.
CreateAttributeNSWarning=Use of document.createAttributeNS() is deprecated. Use element.setAttributeNS() instead.
NodeValueWarning=Use of attributes' nodeValue attribute is deprecated. Use value instead.
TextContentWarning=Use of attributes' textContent attribute is deprecated. Use value instead.
NodeValueWarning=Use of attributes nodeValue attribute is deprecated. Use value instead.
TextContentWarning=Use of attributes textContent attribute is deprecated. Use value instead.
EnablePrivilegeWarning=Use of enablePrivilege is deprecated. Please use code that runs with the system principal (e.g. an extension) instead.
nsIJSONDecodeDeprecatedWarning=nsIJSON.decode is deprecated. Please use JSON.parse instead.
nsIJSONEncodeDeprecatedWarning=nsIJSON.encode is deprecated. Please use JSON.stringify instead.
@ -66,7 +66,7 @@ nsIDOMWindowInternalWarning=Use of nsIDOMWindowInternal is deprecated. Use nsIDO
FullscreenDeniedDisabled=Request for fullscreen was denied because Fullscreen API is disabled by user preference.
FullscreenDeniedFocusedPlugin=Request for fullscreen was denied because a windowed plugin is focused.
FullscreenDeniedHidden=Request for fullscreen was denied because the document is no longer visible.
FullscreenDeniedContainerNotAllowed=Request for fullscreen was denied because at least one of the document's containing elements is not an iframe or does not have an "allowfullscreen" attribute.
FullscreenDeniedContainerNotAllowed=Request for fullscreen was denied because at least one of the documents containing elements is not an iframe or does not have an “allowfullscreen” attribute.
FullscreenDeniedNotInputDriven=Request for fullscreen was denied because Element.requestFullscreen() was not called from inside a short running user-generated event handler.
FullscreenDeniedNotInDocument=Request for fullscreen was denied because requesting element is no longer in its document.
FullscreenDeniedMovedDocument=Request for fullscreen was denied because requesting element has moved document.
@ -77,10 +77,10 @@ FullscreenDeniedNotFocusedTab=Request for fullscreen was denied because requesti
RemovedFullscreenElement=Exited fullscreen because fullscreen element was removed from document.
FocusedWindowedPluginWhileFullscreen=Exited fullscreen because windowed plugin was focused.
HTMLSyncXHRWarning=HTML parsing in XMLHttpRequest is not supported in the synchronous mode.
InvalidRedirectChannelWarning=Unable to redirect to %S because the channel doesn't implement nsIWritablePropertyBag2.
ResponseTypeSyncXHRWarning=Use of XMLHttpRequest's responseType attribute is no longer supported in the synchronous mode in window context.
WithCredentialsSyncXHRWarning=Use of XMLHttpRequest's withCredentials attribute is no longer supported in the synchronous mode in window context.
TimeoutSyncXHRWarning=Use of XMLHttpRequest's timeout attribute is not supported in the synchronous mode in window context.
InvalidRedirectChannelWarning=Unable to redirect to %S because the channel doesnt implement nsIWritablePropertyBag2.
ResponseTypeSyncXHRWarning=Use of XMLHttpRequests responseType attribute is no longer supported in the synchronous mode in window context.
WithCredentialsSyncXHRWarning=Use of XMLHttpRequests withCredentials attribute is no longer supported in the synchronous mode in window context.
TimeoutSyncXHRWarning=Use of XMLHttpRequests timeout attribute is not supported in the synchronous mode in window context.
JSONCharsetWarning=An attempt was made to declare a non-UTF-8 encoding for JSON retrieved using XMLHttpRequest. Only UTF-8 is supported for decoding JSON.
# LOCALIZATION NOTE: Do not translate AudioBufferSourceNode
MediaBufferSourceNodeResampleOutOfMemory=Insufficient memory to resample the AudioBufferSourceNode for playback.
@ -97,24 +97,24 @@ MediaElementAudioSourceNodeCrossOrigin=The HTMLMediaElement passed to createMedi
# LOCALIZATION NOTE: Do not translate MediaStream and createMediaStreamSource.
MediaStreamAudioSourceNodeCrossOrigin=The MediaStream passed to createMediaStreamSource has a cross-origin resource, the node it will output silence.
MediaLoadExhaustedCandidates=All candidate resources failed to load. Media load paused.
MediaLoadSourceMissingSrc=<source> element has no "src" attribute. Media resource load failed.
MediaLoadSourceMissingSrc=<source> element has no “src” attribute. Media resource load failed.
# LOCALIZATION NOTE: %1$S is the Http error code the server returned (e.g. 404, 500, etc), %2$S is the URL of the media resource which failed to load.
MediaLoadHttpError=HTTP load failed with status %1$S. Load of media resource %2$S failed.
# LOCALIZATION NOTE: %S is the URL of the media resource which failed to load.
MediaLoadInvalidURI=Invalid URI. Load of media resource %S failed.
# LOCALIZATION NOTE: %1$S is the media resource's format/codec type (basically equivalent to the file type, e.g. MP4,AVI,WMV,MOV etc), %2$S is the URL of the media resource which failed to load.
MediaLoadUnsupportedTypeAttribute=Specified "type" attribute of "%1$S" is not supported. Load of media resource %2$S failed.
MediaLoadUnsupportedTypeAttribute=Specified “type” attribute of “%1$S” is not supported. Load of media resource %2$S failed.
# LOCALIZATION NOTE: %1$S is the "media" attribute value of the <source> element. It is a media query. %2$S is the URL of the media resource which failed to load.
MediaLoadSourceMediaNotMatched=Specified "media" attribute of "%1$S" does not match the environment. Load of media resource %2$S failed.
MediaLoadSourceMediaNotMatched=Specified “media” attribute of “%1$S” does not match the environment. Load of media resource %2$S failed.
# LOCALIZATION NOTE: %1$S is the MIME type HTTP header being sent by the web server, %2$S is the URL of the media resource which failed to load.
MediaLoadUnsupportedMimeType=HTTP "Content-Type" of "%1$S" is not supported. Load of media resource %2$S failed.
MediaLoadUnsupportedMimeType=HTTP “Content-Type” of “%1$S” is not supported. Load of media resource %2$S failed.
# LOCALIZATION NOTE: %S is the URL of the media resource which failed to load because of error in decoding.
MediaLoadDecodeError=Media resource %S could not be decoded.
MediaWidevineNoWMFNoSilverlight=Trying to play Widevine with no Windows Media Foundation (nor Silverlight fallback), see https://support.mozilla.org/kb/fix-video-audio-problems-firefox-windows
# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
MediaWMFNeeded=To play video formats %S, you need to install extra Microsoft software, see https://support.mozilla.org/kb/fix-video-audio-problems-firefox-windows
# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
MediaPlatformDecoderNotFound=The video on this page can't be played. Your system may not have the required video codecs for: %S
MediaPlatformDecoderNotFound=The video on this page cant be played. Your system may not have the required video codecs for: %S
# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
MediaCannotPlayNoDecoders=Cannot play media. No decoders for requested formats: %S
# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
@ -126,7 +126,7 @@ MediaStreamAddTrackDifferentAudioChannel=MediaStreamTrack %S could not be added
# LOCALIZATION NOTE: Do not translate "MediaStream", "stop()" and "MediaStreamTrack"
MediaStreamStopDeprecatedWarning=MediaStream.stop() is deprecated and will soon be removed. Use MediaStreamTrack.stop() instead.
# LOCALIZATION NOTE: Do not translate "DOMException", "code" and "name"
DOMExceptionCodeWarning=Use of DOMException's code attribute is deprecated. Use name instead.
DOMExceptionCodeWarning=Use of DOMExceptions code attribute is deprecated. Use name instead.
# LOCALIZATION NOTE: Do not translate "__exposedProps__"
NoExposedPropsWarning=Exposing chrome JS objects to content without __exposedProps__ is insecure and deprecated. See https://developer.mozilla.org/en/XPConnect_wrappers for more information.
# LOCALIZATION NOTE: Do not translate "Mutation Event" and "MutationObserver"
@ -139,11 +139,11 @@ PluginHangUIWaitButton=Continue
PluginHangUIStopButton=Stop plugin
PrefixedFullscreenAPIWarning=Prefixed Fullscreen API is deprecated. Please use unprefixed API for fullscreen. For more help https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API
# LOCALIZATION NOTE: Do not translate "mozHidden", "mozVisibilityState", "hidden", or "visibilityState"
PrefixedVisibilityAPIWarning='mozHidden' and 'mozVisibilityState' are deprecated. Please use the unprefixed 'hidden' and 'visibilityState' instead.
PrefixedVisibilityAPIWarning=mozHidden and mozVisibilityState are deprecated. Please use the unprefixed hidden and visibilityState instead.
# LOCALIZATION NOTE: Do not translate "NodeIterator" or "detach()".
NodeIteratorDetachWarning=Calling detach() on a NodeIterator no longer has an effect.
# LOCALIZATION NOTE: Do not translate "LenientThis" and "this"
LenientThisWarning=Ignoring get or set of property that has [LenientThis] because the "this" object is incorrect.
LenientThisWarning=Ignoring get or set of property that has [LenientThis] because the “this” object is incorrect.
# LOCALIZATION NOTE: Do not translate "nsIDOMWindowUtils", "getWindowWithOuterId", or "nsIWindowMediator"
GetWindowWithOuterIdWarning=Use of nsIDOMWindowUtils.getOuterWindowWithId() is deprecated. Instead, use the nsIWindowMediator method of the same name.
# LOCALIZATION NOTE: Do not translate "getPreventDefault" or "defaultPrevented".
@ -163,7 +163,7 @@ ShowModalDialogWarning=Use of window.showModalDialog() is deprecated. Use window
# LOCALIZATION NOTE: Do not translate "window._content" or "window.content"
Window_ContentWarning=window._content is deprecated. Please use window.content instead.
# LOCALIZATION NOTE: Do not translate "XMLHttpRequest"
SyncXMLHttpRequestWarning=Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help http://xhr.spec.whatwg.org/
SyncXMLHttpRequestWarning=Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end users experience. For more help http://xhr.spec.whatwg.org/
ImplicitMetaViewportTagFallback=No meta-viewport tag found. Please explicitly specify one to prevent unexpected behavioural changes in future versions. For more help https://developer.mozilla.org/en/docs/Mozilla/Mobile/Viewport_meta_tag
# LOCALIZATION NOTE: Do not translate "DataContainerEvent" or "CustomEvent"
DataContainerEventWarning=Use of DataContainerEvent is deprecated. Use CustomEvent instead.
@ -183,27 +183,27 @@ PannerNodeDopplerWarning=Use of setVelocity on the PannerNode and AudioListener,
AppCacheWarning=The Application Cache API (AppCache) is deprecated and will be removed at a future date. Please consider using ServiceWorker for offline support.
# LOCALIZATION NOTE: Do not translate "Worker".
EmptyWorkerSourceWarning=Attempting to create a Worker from an empty source. This is probably unintentional.
WebrtcDeprecatedPrefixWarning=WebRTC interfaces with the "moz" prefix (mozRTCPeerConnection, mozRTCSessionDescription, mozRTCIceCandidate) have been deprecated.
WebrtcDeprecatedPrefixWarning=WebRTC interfaces with the “moz” prefix (mozRTCPeerConnection, mozRTCSessionDescription, mozRTCIceCandidate) have been deprecated.
NavigatorGetUserMediaWarning=navigator.mozGetUserMedia has been replaced by navigator.mediaDevices.getUserMedia
# LOCALIZATION NOTE: Do not translate "ServiceWorker". %S is a URL.
InterceptionFailedWithURL=Failed to load '%S'. A ServiceWorker intercepted the request and encountered an unexpected error.
InterceptionFailedWithURL=Failed to load %S. A ServiceWorker intercepted the request and encountered an unexpected error.
# LOCALIZATION NOTE: Do not translate "ServiceWorker", "FetchEvent.respondWith()", "FetchEvent", "no-cors", "opaque", "Response", or "RequestMode". %1$S is a URL. %2$S is a RequestMode value.
BadOpaqueInterceptionRequestModeWithURL=Failed to load '%1$S'. A ServiceWorker passed an opaque Response to FetchEvent.respondWith() while handling a '%2$S' FetchEvent. Opaque Response objects are only valid when the RequestMode is 'no-cors'.
BadOpaqueInterceptionRequestModeWithURL=Failed to load %1$S. A ServiceWorker passed an opaque Response to FetchEvent.respondWith() while handling a %2$S FetchEvent. Opaque Response objects are only valid when the RequestMode is no-cors.
# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Error", "Response", "FetchEvent.respondWith()", or "fetch()". %S is a URL.
InterceptedErrorResponseWithURL=Failed to load '%S'. A ServiceWorker passed an Error Response to FetchEvent.respondWith(). This typically means the ServiceWorker performed an invalid fetch() call.
InterceptedErrorResponseWithURL=Failed to load %S. A ServiceWorker passed an Error Response to FetchEvent.respondWith(). This typically means the ServiceWorker performed an invalid fetch() call.
# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Response", "FetchEvent.respondWith()", or "Response.clone()". %S is a URL.
InterceptedUsedResponseWithURL=Failed to load '%S'. A ServiceWorker passed a used Response to FetchEvent.respondWith(). The body of a Response may only be read once. Use Response.clone() to access the body multiple times.
InterceptedUsedResponseWithURL=Failed to load %S. A ServiceWorker passed a used Response to FetchEvent.respondWith(). The body of a Response may only be read once. Use Response.clone() to access the body multiple times.
# LOCALIZATION NOTE: Do not translate "ServiceWorker", "opaqueredirect", "Response", "FetchEvent.respondWith()", or "FetchEvent". %s is a URL.
BadOpaqueRedirectInterceptionWithURL=Failed to load '%S'. A ServiceWorker passed an opaqueredirect Response to FetchEvent.respondWith() while handling a non-navigation FetchEvent.
BadOpaqueRedirectInterceptionWithURL=Failed to load %S. A ServiceWorker passed an opaqueredirect Response to FetchEvent.respondWith() while handling a non-navigation FetchEvent.
# LOCALIZATION NOTE: Do not translate "ServiceWorker" or "FetchEvent.preventDefault()". %S is a URL.
InterceptionCanceledWithURL=Failed to load '%S'. A ServiceWorker canceled the load by calling FetchEvent.preventDefault().
InterceptionCanceledWithURL=Failed to load %S. A ServiceWorker canceled the load by calling FetchEvent.preventDefault().
# LOCALIZATION NOTE: Do not translate "ServiceWorker", "promise", or "FetchEvent.respondWith()". %1$S is a URL. %2$S is an error string.
InterceptionRejectedResponseWithURL=Failed to load '%1$S'. A ServiceWorker passed a promise to FetchEvent.respondWith() that rejected with '%2$S'.
InterceptionRejectedResponseWithURL=Failed to load %1$S. A ServiceWorker passed a promise to FetchEvent.respondWith() that rejected with %2$S.
# LOCALIZATION NOTE: Do not translate "ServiceWorker", "promise", "FetchEvent.respondWith()", or "Response". %1$S is a URL. %2$S is an error string.
InterceptedNonResponseWithURL=Failed to load '%1$S'. A ServiceWorker passed a promise to FetchEvent.respondWith() that resolved with non-Response value '%2$S'.
InterceptedNonResponseWithURL=Failed to load %1$S. A ServiceWorker passed a promise to FetchEvent.respondWith() that resolved with non-Response value %2$S.
# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Service-Worker-Allowed" or "HTTP". %1$S and %2$S are URLs.
ServiceWorkerScopePathMismatch=Failed to register a ServiceWorker: The path of the provided scope '%1$S' is not under the max scope allowed '%2$S'. Adjust the scope, move the Service Worker script, or use the Service-Worker-Allowed HTTP header to allow the scope.
ExecCommandCutCopyDeniedNotInputDriven=document.execCommand('cut'/'copy') was denied because it was not called from inside a short running user-generated event handler.
ServiceWorkerScopePathMismatch=Failed to register a ServiceWorker: The path of the provided scope %1$S is not under the max scope allowed %2$S. Adjust the scope, move the Service Worker script, or use the Service-Worker-Allowed HTTP header to allow the scope.
ExecCommandCutCopyDeniedNotInputDriven=document.execCommand(cut/copy) was denied because it was not called from inside a short running user-generated event handler.
ManifestShouldBeObject=Manifest should be an object.
ManifestScopeURLInvalid=The scope URL is invalid.
ManifestScopeNotSameOrigin=The scope URL must be same origin as document.
@ -211,15 +211,15 @@ ManifestStartURLOutsideScope=The start URL is outside the scope, so the scope is
ManifestStartURLInvalid=The start URL is invalid.
ManifestStartURLShouldBeSameOrigin=The start URL must be same origin as document.
# LOCALIZATION NOTE: %1$S is the name of the object whose property is invalid. %2$S is the name of the invalid property. %3$S is the expected type of the property value. E.g. "Expected the manifest's start_url member to be a string."
ManifestInvalidType=Expected the %1$S's %2$S member to be a %3$S.
ManifestInvalidType=Expected the %1$Ss %2$S member to be a %3$S.
# LOCALIZATION NOTE: %1$S is the name of the property whose value is invalid. %2$S is the (invalid) value of the property. E.g. "theme_color: 42 is not a valid CSS color."
ManifestInvalidCSSColor=%1$S: %2$S is not a valid CSS color.
PatternAttributeCompileFailure=Unable to check <input pattern='%S'> because the pattern is not a valid regexp: %S
# LOCALIZATION NOTE: Do not translate "postMessage" or DOMWindow. %S values are origins, like https://domain.com:port
TargetPrincipalDoesNotMatch=Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('%S') does not match the recipient window's origin ('%S').
TargetPrincipalDoesNotMatch=Failed to execute postMessage on DOMWindow: The target origin provided (%S) does not match the recipient windows origin (%S).
# LOCALIZATION NOTE: Do not translate 'youtube'. %S values are origins, like https://domain.com:port
RewriteYoutubeEmbed=Rewriting old-style Youtube Flash embed (%S) to iframe embed (%S). Please update page to use iframe instead of embed/object, if possible.
# LOCALIZATION NOTE: Do not translate 'youtube'. %S values are origins, like https://domain.com:port
RewriteYoutubeEmbedInvalidQuery=Rewriting old-style Youtube Flash embed (%S) to iframe embed (%S). Query was invalid and removed from URL. Please update page to use iframe instead of embed/object, if possible.
# LOCALIZATION NOTE: Do not translate "ServiceWorker". %1$S is the ServiceWorker scope URL. %2$S is an error string.
PushMessageDecryptionFailure=The ServiceWorker for scope '%1$S' encountered an error decrypting a push message: '%2$S'. For help with encryption, please see https://developer.mozilla.org/en-US/docs/Web/API/Push_API/Using_the_Push_API#Encryption
PushMessageDecryptionFailure=The ServiceWorker for scope %1$S encountered an error decrypting a push message: %2$S. For help with encryption, please see https://developer.mozilla.org/en-US/docs/Web/API/Push_API/Using_the_Push_API#Encryption

Просмотреть файл

@ -2,39 +2,39 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
MimeNotCss=The stylesheet %1$S was not loaded because its MIME type, "%2$S", is not "text/css".
MimeNotCssWarn=The stylesheet %1$S was loaded as CSS even though its MIME type, "%2$S", is not "text/css".
MimeNotCss=The stylesheet %1$S was not loaded because its MIME type, “%2$S”, is not “text/css”.
MimeNotCssWarn=The stylesheet %1$S was loaded as CSS even though its MIME type, “%2$S”, is not “text/css”.
PEUnexpEOF2=Unexpected end of file while searching for %1$S.
PEParseRuleWSOnly=Whitespace-only string given to be parsed as rule.
PEDeclDropped=Declaration dropped.
PEDeclSkipped=Skipped to next declaration.
PEUnknownProperty=Unknown property '%1$S'.
PEValueParsingError=Error in parsing value for '%1$S'.
PEExpectEndValue=Expected end of value but found '%1$S'.
PERuleTrailing=Expected end of rule but found '%1$S'.
PEUnknownProperty=Unknown property %1$S.
PEValueParsingError=Error in parsing value for %1$S.
PEExpectEndValue=Expected end of value but found %1$S.
PERuleTrailing=Expected end of rule but found %1$S.
PESkipAtRuleEOF2=end of at-rule
PEUnknownAtRule=Unrecognized at-rule or error parsing at-rule '%1$S'.
PEUnknownAtRule=Unrecognized at-rule or error parsing at-rule %1$S.
PECharsetRuleEOF=charset string in @charset rule
PECharsetRuleNotString=Expected charset string but found '%1$S'.
PECharsetRuleNotString=Expected charset string but found %1$S.
PEGatherMediaEOF=end of media list in @import or @media rule
PEGatherMediaNotComma=Expected ',' in media list but found '%1$S'.
PEGatherMediaNotIdent=Expected identifier in media list but found '%1$S'.
PEGatherMediaReservedMediaType=Found reserved keyword '%1$S' when looking for media type.
PEGatherMediaNotComma=Expected , in media list but found %1$S.
PEGatherMediaNotIdent=Expected identifier in media list but found %1$S.
PEGatherMediaReservedMediaType=Found reserved keyword %1$S when looking for media type.
PEParseSourceSizeListEOF=length value for matched media condition
PEParseSourceSizeListNotComma=Expected ',' after value but found '%1$S'
PEImportNotURI=Expected URI in @import rule but found '%1$S'.
PEImportBadURI=Invalid URI in @import rule: '%1$S'.
PEImportUnexpected=Found unexpected '%1$S' within @import.
PEParseSourceSizeListNotComma=Expected , after value but found %1$S
PEImportNotURI=Expected URI in @import rule but found %1$S.
PEImportBadURI=Invalid URI in @import rule: %1$S.
PEImportUnexpected=Found unexpected %1$S within @import.
PEGroupRuleEOF2=end of @media, @supports or @-moz-document rule
PEGroupRuleNestedAtRule=%1$S rule not allowed within @media or @-moz-document rule.
PEMozDocRuleBadFunc2=Expected url(), url-prefix(), domain() or regexp() in @-moz-document rule but found '%1$S'.
PEMozDocRuleNotURI=Expected URI in @-moz-document rule but found '%1$S'.
PEMozDocRuleNotString=Expected string in @-moz-document rule regexp() function but found '%1$S'.
PEMozDocRuleBadFunc2=Expected url(), url-prefix(), domain() or regexp() in @-moz-document rule but found %1$S.
PEMozDocRuleNotURI=Expected URI in @-moz-document rule but found %1$S.
PEMozDocRuleNotString=Expected string in @-moz-document rule regexp() function but found %1$S.
PEMozDocRuleEOF=next URI in @-moz-document rule
PEAtNSPrefixEOF=namespace prefix in @namespace rule
PEAtNSURIEOF=namespace URI in @namespace rule
PEAtNSUnexpected=Unexpected token within @namespace: '%1$S'.
PEAtNSUnexpected=Unexpected token within @namespace: %1$S.
PEKeyframeNameEOF=name of @keyframes rule.
PEKeyframeBadName=Expected identifier for name of @keyframes rule.
PEKeyframeBrace=Expected opening { of @keyframes rule.
@ -42,136 +42,136 @@ PESkipDeclBraceEOF=closing } of declaration block
PESkipRSBraceEOF=closing } of invalid rule set
PEBadSelectorRSIgnored=Ruleset ignored due to bad selector.
PEBadSelectorKeyframeRuleIgnored=Keyframe rule ignored due to bad selector.
PESelectorListExtraEOF=',' or '{'
PESelectorListExtra=Expected ',' or '{' but found '%1$S'.
PESelectorListExtraEOF=, or {
PESelectorListExtra=Expected , or { but found %1$S.
PESelectorGroupNoSelector=Selector expected.
PESelectorGroupExtraCombinator=Dangling combinator.
PECounterStyleNotIdent=Expected identifier for name of @counter-style rule.
PECounterStyleBadName=Name of @counter-style rule can't be '%1$S'.
PECounterStyleBadBlockStart=Expected '{' to begin @counter-style rule but found '%1$S'.
PECounterStyleEOF=closing '}' of @counter-style block
PECounterDescExpected=Expected counter descriptor but found '%1$S'.
PEUnknownCounterDesc=Unknown descriptor '%1$S' in @counter-style rule.
PECounterExtendsNotIdent=Expected identifier for extends system but found '%1$S'.
PECounterStyleBadName=Name of @counter-style rule cant be %1$S.
PECounterStyleBadBlockStart=Expected { to begin @counter-style rule but found %1$S.
PECounterStyleEOF=closing } of @counter-style block
PECounterDescExpected=Expected counter descriptor but found %1$S.
PEUnknownCounterDesc=Unknown descriptor %1$S in @counter-style rule.
PECounterExtendsNotIdent=Expected identifier for extends system but found %1$S.
PECounterASWeight=Each weight in the additive-symbols descriptor must be smaller than the previous weight.
PEClassSelEOF=class name
PEClassSelNotIdent=Expected identifier for class selector but found '%1$S'.
PECoordinatePair=Expected coordinate pair but found '%1$S'.
PEClassSelNotIdent=Expected identifier for class selector but found %1$S.
PECoordinatePair=Expected coordinate pair but found %1$S.
PETypeSelEOF=element type
PETypeSelNotType=Expected element name or '*' but found '%1$S'.
PEUnknownNamespacePrefix=Unknown namespace prefix '%1$S'.
PETypeSelNotType=Expected element name or * but found %1$S.
PEUnknownNamespacePrefix=Unknown namespace prefix %1$S.
PEAttributeNameEOF=attribute name
PEAttributeNameExpected=Expected identifier for attribute name but found '%1$S'.
PEAttributeNameOrNamespaceExpected=Expected attribute name or namespace but found '%1$S'.
PEAttSelNoBar=Expected '|' but found '%1$S'.
PEAttributeNameExpected=Expected identifier for attribute name but found %1$S.
PEAttributeNameOrNamespaceExpected=Expected attribute name or namespace but found %1$S.
PEAttSelNoBar=Expected | but found %1$S.
PEAttSelInnerEOF=part of attribute selector
PEAttSelUnexpected=Unexpected token in attribute selector: '%1$S'.
PEAttSelUnexpected=Unexpected token in attribute selector: %1$S.
PEAttSelValueEOF=attribute value
PEAttSelCloseEOF=']' to end attribute selector
PEAttSelNoClose=Expected ']' to terminate attribute selector but found '%1$S'.
PEAttSelBadValue=Expected identifier or string for value in attribute selector but found '%1$S'.
PEAttSelCloseEOF=] to end attribute selector
PEAttSelNoClose=Expected ] to terminate attribute selector but found %1$S.
PEAttSelBadValue=Expected identifier or string for value in attribute selector but found %1$S.
PEPseudoSelEOF=name of pseudo-class or pseudo-element
PEPseudoSelBadName=Expected identifier for pseudo-class or pseudo-element but found '%1$S'.
PEPseudoSelNonFunc=Function token for non-function pseudo-class or pseudo-element, or the other way around, when reading '%1$S'.
PEPseudoSelNotPE=Expected pseudo-element but found '%1$S'.
PEPseudoSelDoubleNot=Negation pseudo-class can't be negated '%1$S'.
PEPseudoSelPEInNot=Pseudo-elements can't be negated '%1$S'.
PEPseudoSelNewStyleOnly=This pseudo-element must use the "::" form: '%1$S'.
PEPseudoSelEndOrUserActionPC=Expected end of selector or a user action pseudo-class after pseudo-element but found '%1$S'.
PEPseudoSelNoUserActionPC=Expected end of selector after pseudo-element that does not support user action pseudo-classes but found '%1$S'.
PEPseudoSelMultiplePE=Extra pseudo-element '%1$S'.
PEPseudoSelUnknown=Unknown pseudo-class or pseudo-element '%1$S'.
PEPseudoSelBadName=Expected identifier for pseudo-class or pseudo-element but found %1$S.
PEPseudoSelNonFunc=Function token for non-function pseudo-class or pseudo-element, or the other way around, when reading %1$S.
PEPseudoSelNotPE=Expected pseudo-element but found %1$S.
PEPseudoSelDoubleNot=Negation pseudo-class cant be negated %1$S.
PEPseudoSelPEInNot=Pseudo-elements cant be negated %1$S.
PEPseudoSelNewStyleOnly=This pseudo-element must use the “::” form: %1$S.
PEPseudoSelEndOrUserActionPC=Expected end of selector or a user action pseudo-class after pseudo-element but found %1$S.
PEPseudoSelNoUserActionPC=Expected end of selector after pseudo-element that does not support user action pseudo-classes but found %1$S.
PEPseudoSelMultiplePE=Extra pseudo-element %1$S.
PEPseudoSelUnknown=Unknown pseudo-class or pseudo-element %1$S.
PENegationEOF=selector within negation
PENegationBadInner=Malformed simple selector as negation pseudo-class argument '%1$S'.
PENegationNoClose=Missing closing ')' in negation pseudo-class '%1$S'.
PENegationBadArg=Missing argument in negation pseudo-class '%1$S'.
PENegationBadInner=Malformed simple selector as negation pseudo-class argument %1$S.
PENegationNoClose=Missing closing ) in negation pseudo-class %1$S.
PENegationBadArg=Missing argument in negation pseudo-class %1$S.
PEPseudoClassArgEOF=argument to pseudo-class selector
PEPseudoClassArgNotIdent=Expected identifier for pseudo-class parameter but found '%1$S'.
PEPseudoClassArgNotNth=Expected part of argument to pseudo-class but found '%1$S'.
PEPseudoClassNoClose=Missing closing ')' in pseudo-class, found '%1$S' instead.
PEPseudoClassNoArg=Missing argument in pseudo-class '%1$S'.
PEPseudoClassNotUserAction=Expected end of selector or a user action pseudo-class after pseudo-element but found pseudo-class '%1$S'.
PEPseudoClassArgNotIdent=Expected identifier for pseudo-class parameter but found %1$S.
PEPseudoClassArgNotNth=Expected part of argument to pseudo-class but found %1$S.
PEPseudoClassNoClose=Missing closing ) in pseudo-class, found %1$S instead.
PEPseudoClassNoArg=Missing argument in pseudo-class %1$S.
PEPseudoClassNotUserAction=Expected end of selector or a user action pseudo-class after pseudo-element but found pseudo-class %1$S.
PESelectorEOF=selector
PEBadDeclBlockStart=Expected '{' to begin declaration block but found '%1$S'.
PEBadDeclBlockStart=Expected { to begin declaration block but found %1$S.
PEColorEOF=color
PEColorNotColor=Expected color but found '%1$S'.
PEColorNotColor=Expected color but found %1$S.
PEColorComponentEOF=color component
PEExpectedPercent=Expected a percentage but found '%1$S'.
PEExpectedInt=Expected an integer but found '%1$S'.
PEColorBadRGBContents=Expected number or percentage in rgb() but found '%1$S'.
PEColorComponentBadTerm=Expected '%2$S' but found '%1$S'.
PEExpectedPercent=Expected a percentage but found %1$S.
PEExpectedInt=Expected an integer but found %1$S.
PEColorBadRGBContents=Expected number or percentage in rgb() but found %1$S.
PEColorComponentBadTerm=Expected %2$S but found %1$S.
PEColorHueEOF=hue
PEExpectedComma=Expected ',' but found '%1$S'.
PEExpectedComma=Expected , but found %1$S.
PEColorSaturationEOF=saturation
PEColorLightnessEOF=lightness
PEColorOpacityEOF=opacity in color value
PEExpectedNumber=Expected a number but found '%1$S'.
PEExpectedNumber=Expected a number but found %1$S.
PEPositionEOF=<position>
PEExpectedPosition=Expected <position> but found '%1$S'.
PEExpectedRadius=Expected radius but found '%1$S'.
PEExpectedCloseParen=Expected ')' but found '%1$S'.
PEDeclEndEOF=';' or '}' to end declaration
PEParseDeclarationNoColon=Expected ':' but found '%1$S'.
PEParseDeclarationDeclExpected=Expected declaration but found '%1$S'.
PEExpectedPosition=Expected <position> but found %1$S.
PEExpectedRadius=Expected radius but found %1$S.
PEExpectedCloseParen=Expected ) but found %1$S.
PEDeclEndEOF=; or } to end declaration
PEParseDeclarationNoColon=Expected : but found %1$S.
PEParseDeclarationDeclExpected=Expected declaration but found %1$S.
PEEndOfDeclEOF=end of declaration
PEImportantEOF=important
PEExpectedImportant=Expected 'important' but found '%1$S'.
PEBadDeclEnd=Expected ';' to terminate declaration but found '%1$S'.
PEBadDeclOrRuleEnd2=Expected ';' or '}' to terminate declaration but found '%1$S'.
PEExpectedImportant=Expected important but found %1$S.
PEBadDeclEnd=Expected ; to terminate declaration but found %1$S.
PEBadDeclOrRuleEnd2=Expected ; or } to terminate declaration but found %1$S.
PEInaccessibleProperty2=Cannot specify value for internal property.
PECommentEOF=end of comment
SEUnterminatedString=Found unclosed string '%1$S'.
PEFontDescExpected=Expected font descriptor but found '%1$S'.
PEUnknownFontDesc=Unknown descriptor '%1$S' in @font-face rule.
PEMQExpectedExpressionStart=Expected '(' to start media query expression but found '%1$S'.
SEUnterminatedString=Found unclosed string %1$S.
PEFontDescExpected=Expected font descriptor but found %1$S.
PEUnknownFontDesc=Unknown descriptor %1$S in @font-face rule.
PEMQExpectedExpressionStart=Expected ( to start media query expression but found %1$S.
PEMQExpressionEOF=contents of media query expression
PEMQExpectedFeatureName=Expected media feature name but found '%1$S'.
PEMQExpectedFeatureNameEnd=Expected ':' or ')' after media feature name but found '%1$S'.
PEMQExpectedFeatureName=Expected media feature name but found %1$S.
PEMQExpectedFeatureNameEnd=Expected : or ) after media feature name but found %1$S.
PEMQNoMinMaxWithoutValue=Media features with min- or max- must have a value.
PEMQExpectedFeatureValue=Found invalid value for media feature.
PEBadFontBlockStart=Expected '{' to begin @font-face rule but found '%1$S'.
PEBadFontBlockEnd=Expected '}' to end @font-face rule but found '%1$S'.
PEBadFontBlockStart=Expected { to begin @font-face rule but found %1$S.
PEBadFontBlockEnd=Expected } to end @font-face rule but found %1$S.
PEAnonBoxNotAlone=Did not expect anonymous box.
PEFFVUnexpectedEOF=Unexpected end of @font-feature-values rule.
PEFFVBlockStart=Expected opening { of @font-feature-values rule but found '%1$S'.
PEFFVValueSetStart=Expected opening { of feature value set but found '%1$S'.
PEFFVNoFamily=Expected font family list for @font-feature-values rule but found '%1$S'.
PEFFVUnexpectedBlockEnd=Expected '}' to end @font-feature-values rule but found '%1$S'.
PEFFVUnknownFontVariantPropValue=Unknown font-variant property value '%1$S'.
PEFFVExpectedIdent=Expected identifier but found '%1$S'.
PEFFVExpectedValue=Expected non-negative integer value but found '%1$S'.
PEFFVTooManyValues=Too many values for feature type '%1$S'.
PEFFVBlockStart=Expected opening { of @font-feature-values rule but found %1$S.
PEFFVValueSetStart=Expected opening { of feature value set but found %1$S.
PEFFVNoFamily=Expected font family list for @font-feature-values rule but found %1$S.
PEFFVUnexpectedBlockEnd=Expected } to end @font-feature-values rule but found %1$S.
PEFFVUnknownFontVariantPropValue=Unknown font-variant property value %1$S.
PEFFVExpectedIdent=Expected identifier but found %1$S.
PEFFVExpectedValue=Expected non-negative integer value but found %1$S.
PEFFVTooManyValues=Too many values for feature type %1$S.
PEFFVGenericInFamilyList=Family list cannot contain generic font family name.
PEFFVValueDefinitionTrailing=Expected end of value definition but found '%1$S'.
PEBadDirValue=Expected 'ltr' or 'rtl' in direction selector but found '%1$S'.
PESupportsConditionStartEOF2='not', '(', or function
PESupportsConditionInParensEOF=')'
PESupportsConditionNotEOF='not'
PESupportsWhitespaceRequired=Expected whitespace after 'not', 'and', or 'or'.
PESupportsConditionExpectedOpenParenOrFunction=Expected '(' or function while parsing supports condition but found '%1$S'.
PESupportsConditionExpectedCloseParen=Expected ')' while parsing supports condition but found '%1$S'.
PESupportsConditionExpectedStart2=Expected 'not', '(', or function while parsing supports condition but found '%1$S'.
PESupportsConditionExpectedNot=Expected 'not' while parsing supports condition but found '%1$S'.
PESupportsGroupRuleStart=Expected '{' to begin @supports rule but found '%1$S'.
PEFFVValueDefinitionTrailing=Expected end of value definition but found %1$S.
PEBadDirValue=Expected ltr or rtl in direction selector but found %1$S.
PESupportsConditionStartEOF2=not, (, or function
PESupportsConditionInParensEOF=)
PESupportsConditionNotEOF=not
PESupportsWhitespaceRequired=Expected whitespace after not, and, or or.
PESupportsConditionExpectedOpenParenOrFunction=Expected ( or function while parsing supports condition but found %1$S.
PESupportsConditionExpectedCloseParen=Expected ) while parsing supports condition but found %1$S.
PESupportsConditionExpectedStart2=Expected not, (, or function while parsing supports condition but found %1$S.
PESupportsConditionExpectedNot=Expected not while parsing supports condition but found %1$S.
PESupportsGroupRuleStart=Expected { to begin @supports rule but found %1$S.
PEFilterEOF=filter
PEExpectedNoneOrURL=Expected 'none' or URL but found '%1$S'.
PEExpectedNoneOrURLOrFilterFunction=Expected 'none', URL, or filter function but found '%1$S'.
PEExpectedNoneOrURL=Expected none or URL but found %1$S.
PEExpectedNoneOrURLOrFilterFunction=Expected none, URL, or filter function but found %1$S.
PEExpectedNonnegativeNP=Expected non-negative number or percentage.
PEFilterFunctionArgumentsParsingError=Error in parsing arguments for filter function.
PEVariableEOF=variable
PEVariableEmpty=Expected variable value but found '%1$S'.
PEVariableEmpty=Expected variable value but found %1$S.
# LOCALIZATION NOTE(PEValueWithVariablesParsingErrorInValue): %1$S is replaced
# with the property name and %2$S is replaced with the property value.
PEValueWithVariablesParsingErrorInValue=Error in parsing value for '%1$S' after substituting variables. Generated value was '%2$S'.
PEValueWithVariablesFallbackInherit=Falling back to 'inherit'.
PEValueWithVariablesFallbackInitial=Falling back to 'initial'.
PEValueWithVariablesParsingErrorInValue=Error in parsing value for %1$S after substituting variables. Generated value was %2$S.
PEValueWithVariablesFallbackInherit=Falling back to inherit.
PEValueWithVariablesFallbackInitial=Falling back to initial.
PEInvalidVariableReference=Property contained reference to invalid variable.
PEInvalidVariableTokenFallback=Found invalid token '%1$S' at top level of variable reference fallback.
PEInvalidVariableTokenFallback=Found invalid token %1$S at top level of variable reference fallback.
PEExpectedVariableNameEOF=identifier for variable name
PEExpectedVariableName=Expected identifier for variable name but found '%1$S'.
PEExpectedVariableFallback=Expected variable reference fallback after ','.
PEExpectedVariableCommaOrCloseParen=Expected ',' or ')' after variable name in variable reference but found '%1$S'.
PESubgridNotSupported=Support for the 'subgrid' keyword of CSS Grid is not enabled.
PEExpectedVariableName=Expected identifier for variable name but found %1$S.
PEExpectedVariableFallback=Expected variable reference fallback after ,.
PEExpectedVariableCommaOrCloseParen=Expected , or ) after variable name in variable reference but found %1$S.
PESubgridNotSupported=Support for the subgrid keyword of CSS Grid is not enabled.
PEMoreThanOneGridRepeatAutoFillInNameList=Only one repeat(auto-fill, …) is allowed in a name list for a subgrid.
PEMoreThanOneGridRepeatAutoFillFitInTrackList=Only one repeat(auto-fill, …) or repeat(auto-fit, …) is allowed in a track list.
PEMoreThanOneGridRepeatTrackSize=Only one track size is allowed inside repeat(auto-fit/auto-fill, …).

Просмотреть файл

@ -2,11 +2,11 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
ImageMapRectBoundsError=The "coords" attribute of the <area shape="rect"> tag is not in the "left,top,right,bottom" format.
ImageMapCircleWrongNumberOfCoords=The "coords" attribute of the <area shape="circle"> tag is not in the "center-x,center-y,radius" format.
ImageMapCircleNegativeRadius=The "coords" attribute of the <area shape="circle"> tag has a negative radius.
ImageMapPolyWrongNumberOfCoords=The "coords" attribute of the <area shape="poly"> tag is not in the "x1,y1,x2,y2 …" format.
ImageMapPolyOddNumberOfCoords=The "coords" attribute of the <area shape="poly"> tag is missing the last "y" coordinate (the correct format is "x1,y1,x2,y2 …").
ImageMapRectBoundsError=The “coords” attribute of the <area shape="rect"> tag is not in the “left,top,right,bottom” format.
ImageMapCircleWrongNumberOfCoords=The “coords” attribute of the <area shape="circle"> tag is not in the “center-x,center-y,radius” format.
ImageMapCircleNegativeRadius=The “coords” attribute of the <area shape="circle"> tag has a negative radius.
ImageMapPolyWrongNumberOfCoords=The “coords” attribute of the <area shape="poly"> tag is not in the “x1,y1,x2,y2 …” format.
ImageMapPolyOddNumberOfCoords=The “coords” attribute of the <area shape="poly"> tag is missing the last “y” coordinate (the correct format is “x1,y1,x2,y2 …”).
TablePartRelPosWarning=Relative positioning of table rows and row groups is now supported. This site may need to be updated because it may depend on this feature having no effect.
ScrollLinkedEffectFound2=This site appears to use a scroll-linked positioning effect. This may not work well with asynchronous panning; see https://developer.mozilla.org/docs/Mozilla/Performance/ScrollLinkedEffects for further details and to join the discussion on related tools and features!
@ -19,16 +19,16 @@ ScrollLinkedEffectFound2=This site appears to use a scroll-linked positioning ef
AnimationWarningContentTooLarge=Animation cannot be run on the compositor because the frame size (%1$S, %2$S) is bigger than the viewport (%3$S, %4$S) or the visual rectangle (%5$S, %6$S) is larger than the maximum allowed value (%7$S)
## LOCALIZATION NOTE(AnimationWarningTransformBackfaceVisibilityHidde):
## 'backface-visibility: hidden' is a CSS property, don't translate it.
AnimationWarningTransformBackfaceVisibilityHidden=Animations of 'backface-visibility: hidden' transforms cannot be run on the compositor
AnimationWarningTransformBackfaceVisibilityHidden=Animations of backface-visibility: hidden transforms cannot be run on the compositor
## LOCALIZATION NOTE(AnimationWarningTransformPreserve3D):
## 'transform-style: preserve-3d' is a CSS property, don't translate it.
AnimationWarningTransformPreserve3D=Animations of 'transform-style: preserve-3d' transforms cannot be run on the compositor
AnimationWarningTransformPreserve3D=Animations of transform-style: preserve-3d transforms cannot be run on the compositor
## LOCALIZATION NOTE(AnimationWarningTransformSVG,
## AnimationWarningTransformWithGeometricProperties,
## AnimationWarningTransformFrameInactive,
## AnimationWarningOpacityFrameInactive):
## 'transform' and 'opacity' mean CSS property names, don't translate it.
AnimationWarningTransformSVG=Animations of 'transform' on elements with SVG transforms cannot be run on the compositor
AnimationWarningTransformWithGeometricProperties=Animations of 'transform' cannot be run on the compositor when geometric properties are animated on the same element at the same time
AnimationWarningTransformFrameInactive=Animation cannot be run on the compositor because the frame was not marked active for 'transform' animation
AnimationWarningOpacityFrameInactive=Animation cannot be run on the compositor because the frame was not marked active for 'opacity' animation
AnimationWarningTransformSVG=Animations of transform on elements with SVG transforms cannot be run on the compositor
AnimationWarningTransformWithGeometricProperties=Animations of transform cannot be run on the compositor when geometric properties are animated on the same element at the same time
AnimationWarningTransformFrameInactive=Animation cannot be run on the compositor because the frame was not marked active for transform animation
AnimationWarningOpacityFrameInactive=Animation cannot be run on the compositor because the frame was not marked active for opacity animation

Просмотреть файл

@ -21,7 +21,7 @@ pageofpages=%1$d of %2$d
noprinter=No printers available.
PrintToFile=Print To File
noPrintFilename.title=Filename is missing
noPrintFilename.alert=You have selected "Print To File", and the filename is empty!
noPrintFilename.alert=You have selected “Print To File”, and the filename is empty!
fileConfirm.exists=%S already exists.\nDo you want to replace it?
print_error_dialog_title=Printer Error
printpreview_error_dialog_title=Print Preview Error

Просмотреть файл

@ -3,13 +3,13 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
UnexpectedElement=Unexpected <%1$S> element.
# LOCALIZATION NOTE: do not localize key="%S" modifiers="%S"
GTK2Conflict=Key event not available on GTK2: key="%S" modifiers="%S"
WinConflict=Key event not available on some keyboard layouts: key="%S" modifiers="%S"
TooDeepBindingRecursion=The XBL binding "%S" is already used by too many ancestor elements; not applying it to prevent infinite recursion.
CircularExtendsBinding=Extending the XBL binding "%S" with "%S" would lead to it extending itself
# LOCALIZATION NOTE: do not localize key=“%S” modifiers=“%S”
GTK2Conflict=Key event not available on GTK2: key=“%S” modifiers=“%S”
WinConflict=Key event not available on some keyboard layouts: key=“%S” modifiers=“%S”
TooDeepBindingRecursion=The XBL binding “%S” is already used by too many ancestor elements; not applying it to prevent infinite recursion.
CircularExtendsBinding=Extending the XBL binding “%S” with “%S” would lead to it extending itself
# LOCALIZATION NOTE: do not localize <handler command="…">
CommandNotInChrome=Use of <handler command="…"> not allowed outside chrome.
MalformedXBL = An XBL file is malformed. Did you forget the XBL namespace on the bindings tag?
InvalidExtendsBinding=Extending "%S" is invalid. In general, do not extend tag names.
MissingIdAttr = An "id" attribute missing on the binding tag.
InvalidExtendsBinding=Extending “%S” is invalid. In general, do not extend tag names.
MissingIdAttr = An “id” attribute missing on the binding tag.

Просмотреть файл

@ -5,4 +5,4 @@
MissingOverlay=Failed to load overlay from %1$S.
PINotInProlog=<?%1$S?> processing instruction does not have any effect outside the prolog anymore (see bug 360119).
NeededToWrapXUL=XUL box for %1$S element contained an inline %2$S child, forcing all its children to be wrapped in a block.
NeededToWrapXULInlineBox=XUL box for %1$S element contained an inline %2$S child, forcing all its children to be wrapped in a block. This can often be fixed by replacing "display: -moz-inline-box" with "display: -moz-inline-box; display: inline-block".
NeededToWrapXULInlineBox=XUL box for %1$S element contained an inline %2$S child, forcing all its children to be wrapped in a block. This can often be fixed by replacing “display: -moz-inline-box” with “display: -moz-inline-box; display: inline-block”.

Просмотреть файл

@ -10,8 +10,8 @@ NoBase=Invalid markup: Expected exactly one Base element in <mmultiscripts/>. F
SubSupMismatch=Invalid markup: Incomplete subscript/superscript pair in <mmultiscripts/>.
# LOCALIZATION NOTE: When localizing the single quotes ('), follow the conventions in css.properties for your target locale.
AttributeParsingError=Error in parsing the value '%1$S' for '%2$S' attribute of <%3$S/>. Attribute ignored.
AttributeParsingErrorNoTag=Error in parsing the value '%1$S' for '%2$S' attribute. Attribute ignored.
LengthParsingError=Error in parsing MathML attribute value '%1$S' as length. Attribute ignored.
DeprecatedSupersededBy='%1$S' is deprecated in MathML 3, superseded by '%2$S'.
AttributeParsingError=Error in parsing the value %1$S for %2$S attribute of <%3$S/>. Attribute ignored.
AttributeParsingErrorNoTag=Error in parsing the value %1$S for %2$S attribute. Attribute ignored.
LengthParsingError=Error in parsing MathML attribute value %1$S as length. Attribute ignored.
DeprecatedSupersededBy=%1$S is deprecated in MathML 3, superseded by %2$S.
UnitlessValuesAreDeprecated=Unitless values are deprecated in MathML 3.

Просмотреть файл

@ -8,7 +8,7 @@
<!-- Specific error messages -->
<!ENTITY connectionFailure.title "Failed to Connect">
<!ENTITY connectionFailure.longDesc "<p>Though the site seems valid, the browser was unable to establish a connection.</p><ul><li>Could the site be temporarily unavailable? Try again later.</li><li>Are you unable to browse other sites? Check the computer's network connection.</li><li>Is your computer or network protected by a firewall or proxy? Incorrect settings can interfere with Web browsing.</li></ul>">
<!ENTITY connectionFailure.longDesc "<p>Though the site seems valid, the browser was unable to establish a connection.</p><ul><li>Could the site be temporarily unavailable? Try again later.</li><li>Are you unable to browse other sites? Check the computers network connection.</li><li>Is your computer or network protected by a firewall or proxy? Incorrect settings can interfere with Web browsing.</li></ul>">
<!ENTITY deniedPortAccess.title "Port Restricted for Security Reasons">
<!ENTITY deniedPortAccess.longDesc "<p>The requested address specified a port (e.g. <q>mozilla.org:80</q> for port 80 on mozilla.org) normally used for purposes <em>other</em> than Web browsing. The browser has canceled the request for your protection and security.</p>">
@ -29,10 +29,10 @@
<!ENTITY malformedURI.longDesc "<p>The provided address is not in a recognized format. Please check the location bar for mistakes and try again.</p>">
<!ENTITY netInterrupt.title "Data Transfer Interrupted">
<!ENTITY netInterrupt.longDesc "<p>The browser connected successfully, but the connection was interrupted while transferring information. Please try again.</p><ul><li>Are you unable to browse other sites? Check the computer's network connection.</li><li>Still having trouble? Consult your network administrator or Internet provider for assistance.</li></ul>">
<!ENTITY netInterrupt.longDesc "<p>The browser connected successfully, but the connection was interrupted while transferring information. Please try again.</p><ul><li>Are you unable to browse other sites? Check the computers network connection.</li><li>Still having trouble? Consult your network administrator or Internet provider for assistance.</li></ul>">
<!ENTITY notCached.title "Document Expired">
<!ENTITY notCached.longDesc "<p>The requested document is not available in the browser's cache.</p><ul><li>As a security precaution, the browser does not automatically re-request sensitive documents.</li><li>Click Try Again to re-request the document from the website.</li></ul>">
<!ENTITY notCached.longDesc "<p>The requested document is not available in the browsers cache.</p><ul><li>As a security precaution, the browser does not automatically re-request sensitive documents.</li><li>Click Try Again to re-request the document from the website.</li></ul>">
<!ENTITY netOffline.title "Offline Mode">
<!ENTITY netOffline.longDesc2 "<p>The browser is operating in its offline mode and cannot connect to the requested item.</p><ul><li>Is the computer connected to an active network?</li><li>Press &quot;Try Again&quot; to switch to online mode and reload the page.</li></ul>">
@ -51,19 +51,19 @@
<!ENTITY netReset.longDesc "<p>The network link was interrupted while negotiating a connection. Please try again.</p>">
<!ENTITY netTimeout.title "Network Timeout">
<!ENTITY netTimeout.longDesc "<p>The requested site did not respond to a connection request and the browser has stopped waiting for a reply.</p><ul><li>Could the server be experiencing high demand or a temporary outage? Try again later.</li><li>Are you unable to browse other sites? Check the computer's network connection.</li><li>Is your computer or network protected by a firewall or proxy? Incorrect settings can interfere with Web browsing.</li><li>Still having trouble? Consult your network administrator or Internet provider for assistance.</li></ul>">
<!ENTITY netTimeout.longDesc "<p>The requested site did not respond to a connection request and the browser has stopped waiting for a reply.</p><ul><li>Could the server be experiencing high demand or a temporary outage? Try again later.</li><li>Are you unable to browse other sites? Check the computers network connection.</li><li>Is your computer or network protected by a firewall or proxy? Incorrect settings can interfere with Web browsing.</li><li>Still having trouble? Consult your network administrator or Internet provider for assistance.</li></ul>">
<!ENTITY unknownProtocolFound.title "Unknown Protocol">
<!ENTITY unknownProtocolFound.longDesc "<p>The address specifies a protocol (e.g. <q>wxyz://</q>) the browser does not recognize, so the browser cannot properly connect to the site.</p><ul><li>Are you trying to access multimedia or other non-text services? Check the site for extra requirements.</li><li>Some protocols may require third-party software or plugins before the browser can recognize them.</li></ul>">
<!ENTITY proxyConnectFailure.title "Proxy Server Refused Connection">
<!ENTITY proxyConnectFailure.longDesc "<p>The browser is configured to use a proxy server, but the proxy refused a connection.</p><ul><li>Is the browser's proxy configuration correct? Check the settings and try again.</li><li>Does the proxy service allow connections from this network?</li><li>Still having trouble? Consult your network administrator or Internet provider for assistance.</li></ul>">
<!ENTITY proxyConnectFailure.longDesc "<p>The browser is configured to use a proxy server, but the proxy refused a connection.</p><ul><li>Is the browsers proxy configuration correct? Check the settings and try again.</li><li>Does the proxy service allow connections from this network?</li><li>Still having trouble? Consult your network administrator or Internet provider for assistance.</li></ul>">
<!ENTITY proxyResolveFailure.title "Proxy Server Not Found">
<!ENTITY proxyResolveFailure.longDesc "<p>The browser is configured to use a proxy server, but the proxy could not be found.</p><ul><li>Is the browser's proxy configuration correct? Check the settings and try again.</li><li>Is the computer connected to an active network?</li><li>Still having trouble? Consult your network administrator or Internet provider for assistance.</li></ul>">
<!ENTITY proxyResolveFailure.longDesc "<p>The browser is configured to use a proxy server, but the proxy could not be found.</p><ul><li>Is the browsers proxy configuration correct? Check the settings and try again.</li><li>Is the computer connected to an active network?</li><li>Still having trouble? Consult your network administrator or Internet provider for assistance.</li></ul>">
<!ENTITY redirectLoop.title "Redirect Loop">
<!ENTITY redirectLoop.longDesc "<p>The browser has stopped trying to retrieve the requested item. The site is redirecting the request in a way that will never complete.</p><ul><li>Have you disabled or blocked cookies required by this site?</li><li><em>NOTE</em>: If accepting the site's cookies does not resolve the problem, it is likely a server configuration issue and not your computer.</li></ul>">
<!ENTITY redirectLoop.longDesc "<p>The browser has stopped trying to retrieve the requested item. The site is redirecting the request in a way that will never complete.</p><ul><li>Have you disabled or blocked cookies required by this site?</li><li><em>NOTE</em>: If accepting the sites cookies does not resolve the problem, it is likely a server configuration issue and not your computer.</li></ul>">
<!ENTITY unknownSocketType.title "Incorrect Response">
<!ENTITY unknownSocketType.longDesc "<p>The site responded to the network request in an unexpected way and the browser cannot continue.</p>">
@ -73,7 +73,7 @@
<!ENTITY nssBadCert.title "Secure Connection Failed">
<!ENTITY nssBadCert.longDesc2 "<ul>
<li>This could be a problem with the server's configuration, or it could be someone trying to impersonate the server.</li>
<li>This could be a problem with the servers configuration, or it could be someone trying to impersonate the server.</li>
<li>If you have connected to this server successfully in the past, the error may be temporary, and you can try again later.</li>
</ul>
">

Просмотреть файл

@ -13,5 +13,5 @@ SDAccessErrorCardMissing=Cannot download file because the SD card is missing.
helperAppNotFound=%S could not be opened, because the associated helper application does not exist. Change the association in your preferences.
noMemory=There is not sufficient memory to complete the action you requested.\n\nQuit some applications and try again.
title=Downloading %S
fileAlreadyExistsError=%S could not be saved, because a file already exists with the same name as the '_files' directory.\n\nTry saving to a different location.
fileAlreadyExistsError=%S could not be saved, because a file already exists with the same name as the _files directory.\n\nTry saving to a different location.
fileNameTooLongError=%S could not be saved, because the file name was too long.\n\nTry saving with a shorter file name.

Просмотреть файл

@ -110,4 +110,4 @@ SetPropertyDeniedOriginsOnlySubject = Permission denied for <%S> to set property
CallMethodDeniedOriginsOnlySubject = Permission denied for <%S> to call method %S.%S
CreateWrapperDenied = Permission denied to create wrapper for object of class %S
CreateWrapperDeniedForOrigin = Permission denied for <%2$S> to create wrapper for object of class %1$S
ProtocolFlagError = Warning: Protocol handler for '%S' doesn't advertise a security policy. While loading of such protocols is allowed for now, this is deprecated. Please see the documentation in nsIProtocolHandler.idl.
ProtocolFlagError = Warning: Protocol handler for %S doesnt advertise a security policy. While loading of such protocols is allowed for now, this is deprecated. Please see the documentation in nsIProtocolHandler.idl.

Просмотреть файл

@ -5,27 +5,27 @@
# CSP Warnings:
# LOCALIZATION NOTE (CSPViolation):
# %1$S is the reason why the resource has not been loaded.
CSPViolation = The page's settings blocked the loading of a resource: %1$S
CSPViolation = The pages settings blocked the loading of a resource: %1$S
# LOCALIZATION NOTE (CSPViolationWithURI):
# %1$S is the directive that has been violated.
# %2$S is the URI of the resource which violated the directive.
CSPViolationWithURI = The page's settings blocked the loading of a resource at %2$S ("%1$S").
CSPViolationWithURI = The pages settings blocked the loading of a resource at %2$S (“%1$S”).
# LOCALIZATION NOTE (CSPROViolation):
# %1$S is the reason why the resource has not been loaded.
CSPROViolation = A violation occurred for a report-only CSP policy ("%1$S"). The behavior was allowed, and a CSP report was sent.
CSPROViolation = A violation occurred for a report-only CSP policy (“%1$S”). The behavior was allowed, and a CSP report was sent.
# LOCALIZATION NOTE (CSPROViolationWithURI):
# %1$S is the directive that has been violated.
# %2$S is the URI of the resource which violated the directive.
CSPROViolationWithURI = The page's settings observed the loading of a resource at %2$S ("%1$S"). A CSP report is being sent.
CSPROViolationWithURI = The pages settings observed the loading of a resource at %2$S (“%1$S”). A CSP report is being sent.
# LOCALIZATION NOTE (triedToSendReport):
# %1$S is the URI we attempted to send a report to.
triedToSendReport = Tried to send report to invalid URI: "%1$S"
triedToSendReport = Tried to send report to invalid URI: “%1$S”
# LOCALIZATION NOTE (couldNotParseReportURI):
# %1$S is the report URI that could not be parsed
couldNotParseReportURI = couldn't parse report URI: %1$S
couldNotParseReportURI = couldnt parse report URI: %1$S
# LOCALIZATION NOTE (couldNotProcessUnknownDirective):
# %1$S is the unknown directive
couldNotProcessUnknownDirective = Couldn't process unknown directive '%1$S'
couldNotProcessUnknownDirective = Couldnt process unknown directive %1$S
# LOCALIZATION NOTE (ignoringUnknownOption):
# %1$S is the option that could not be understood
ignoringUnknownOption = Ignoring unknown option %1$S
@ -34,11 +34,11 @@ ignoringUnknownOption = Ignoring unknown option %1$S
ignoringDuplicateSrc = Ignoring duplicate source %1$S
# LOCALIZATION NOTE (ignoringSrcFromMetaCSP):
# %1$S defines the ignored src
ignoringSrcFromMetaCSP = Ignoring source '%1$S' (Not supported when delivered via meta element).
ignoringSrcFromMetaCSP = Ignoring source %1$S (Not supported when delivered via meta element).
# LOCALIZATION NOTE (ignoringSrcWithinScriptStyleSrc):
# %1$S is the ignored src
# script-src and style-src are directive names and should not be localized
ignoringSrcWithinScriptStyleSrc = Ignoring "%1$S" within script-src or style-src: nonce-source or hash-source specified
ignoringSrcWithinScriptStyleSrc = Ignoring “%1$S” within script-src or style-src: nonce-source or hash-source specified
# LOCALIZATION NOTE (reportURInotHttpsOrHttp2):
# %1$S is the ETLD of the report URI that is not HTTP or HTTPS
reportURInotHttpsOrHttp2 = The report URI (%1$S) should be an HTTP or HTTPS URI.
@ -59,35 +59,35 @@ inlineStyleBlocked = An attempt to apply inline style sheets has been blocked
scriptFromStringBlocked = An attempt to call JavaScript from a string (by calling a function like eval) has been blocked
# LOCALIZATION NOTE (upgradeInsecureRequest):
# %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
upgradeInsecureRequest = Upgrading insecure request '%1$S' to use '%2$S'
upgradeInsecureRequest = Upgrading insecure request %1$S to use %2$S
# LOCALIZATION NOTE (ignoreSrcForDirective):
ignoreSrcForDirective = Ignoring srcs for directive '%1$S'
ignoreSrcForDirective = Ignoring srcs for directive %1$S
# LOCALIZATION NOTE (hostNameMightBeKeyword):
# %1$S is the hostname in question and %2$S is the keyword
hostNameMightBeKeyword = Interpreting %1$S as a hostname, not a keyword. If you intended this to be a keyword, use '%2$S' (wrapped in single quotes).
hostNameMightBeKeyword = Interpreting %1$S as a hostname, not a keyword. If you intended this to be a keyword, use %2$S (wrapped in single quotes).
# LOCALIZATION NOTE (notSupportingDirective):
# directive is not supported (e.g. 'reflected-xss')
notSupportingDirective = Not supporting directive '%1$S'. Directive and values will be ignored.
notSupportingDirective = Not supporting directive %1$S. Directive and values will be ignored.
# LOCALIZATION NOTE (blockAllMixedContent):
# %1$S is the URL of the blocked resource load.
blockAllMixedContent = Blocking insecure request '%1$S'.
blockAllMixedContent = Blocking insecure request %1$S.
# CSP Errors:
# LOCALIZATION NOTE (couldntParseInvalidSource):
# %1$S is the source that could not be parsed
couldntParseInvalidSource = Couldn't parse invalid source %1$S
couldntParseInvalidSource = Couldnt parse invalid source %1$S
# LOCALIZATION NOTE (couldntParseInvalidHost):
# %1$S is the host that's invalid
couldntParseInvalidHost = Couldn't parse invalid host %1$S
couldntParseInvalidHost = Couldnt parse invalid host %1$S
# LOCALIZATION NOTE (couldntParseScheme):
# %1$S is the string source
couldntParseScheme = Couldn't parse scheme in %1$S
couldntParseScheme = Couldnt parse scheme in %1$S
# LOCALIZATION NOTE (couldntParsePort):
# %1$S is the string source
couldntParsePort = Couldn't parse port in %1$S
couldntParsePort = Couldnt parse port in %1$S
# LOCALIZATION NOTE (duplicateDirective):
# %1$S is the name of the duplicate directive
duplicateDirective = Duplicate %1$S directives detected. All but the first instance will be ignored.
# LOCALIZATION NOTE (deprecatedDirective):
# %1$S is the name of the deprecated directive, %2$S is the name of the replacement.
deprecatedDirective = Directive '%1$S' has been deprecated. Please use directive '%2$S' instead.
deprecatedDirective = Directive %1$S has been deprecated. Please use directive %2$S instead.

Просмотреть файл

@ -1,72 +1,72 @@
# Mixed Content Blocker
# LOCALIZATION NOTE: "%1$S" is the URI of the blocked mixed content resource
BlockMixedDisplayContent = Blocked loading mixed display content "%1$S"
BlockMixedActiveContent = Blocked loading mixed active content "%1$S"
BlockMixedDisplayContent = Blocked loading mixed display content “%1$S”
BlockMixedActiveContent = Blocked loading mixed active content “%1$S”
# CORS
# LOCALIZATION NOTE: Do not translate "Access-Control-Allow-Origin", Access-Control-Allow-Credentials, Access-Control-Allow-Methods, Access-Control-Allow-Headers
CORSDisabled=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS disabled).
CORSRequestNotHttp=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS request not http).
CORSMissingAllowOrigin=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS header 'Access-Control-Allow-Origin' missing).
CORSAllowOriginNotMatchingOrigin=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS header 'Access-Control-Allow-Origin' does not match '%2$S').
CORSMethodNotFound=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: Did not find method in CORS header 'Access-Control-Allow-Methods').
CORSMissingAllowCredentials=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: expected 'true' in CORS header 'Access-Control-Allow-Credentials').
CORSMissingAllowOrigin=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS header Access-Control-Allow-Origin missing).
CORSAllowOriginNotMatchingOrigin=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS header Access-Control-Allow-Origin does not match %2$S).
CORSMethodNotFound=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: Did not find method in CORS header Access-Control-Allow-Methods).
CORSMissingAllowCredentials=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: expected true in CORS header Access-Control-Allow-Credentials).
CORSPreflightDidNotSucceed=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS preflight channel did not succeed).
CORSInvalidAllowMethod=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: invalid token '%2$S' in CORS header 'Access-Control-Allow-Methods').
CORSInvalidAllowHeader=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: invalid token '%2$S' in CORS header 'Access-Control-Allow-Headers').
CORSMissingAllowHeaderFromPreflight=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: missing token '%2$S' in CORS header 'Access-Control-Allow-Headers' from CORS preflight channel).
CORSInvalidAllowMethod=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: invalid token %2$S in CORS header Access-Control-Allow-Methods).
CORSInvalidAllowHeader=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: invalid token %2$S in CORS header Access-Control-Allow-Headers).
CORSMissingAllowHeaderFromPreflight=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: missing token %2$S in CORS header Access-Control-Allow-Headers from CORS preflight channel).
# LOCALIZATION NOTE: Do not translate "Strict-Transport-Security", "HSTS", "max-age" or "includeSubDomains"
STSUnknownError=Strict-Transport-Security: An unknown error occurred processing the header specified by the site.
STSUntrustworthyConnection=Strict-Transport-Security: The connection to the site is untrustworthy, so the specified header was ignored.
STSCouldNotParseHeader=Strict-Transport-Security: The site specified a header that could not be parsed successfully.
STSNoMaxAge=Strict-Transport-Security: The site specified a header that did not include a 'max-age' directive.
STSMultipleMaxAges=Strict-Transport-Security: The site specified a header that included multiple 'max-age' directives.
STSInvalidMaxAge=Strict-Transport-Security: The site specified a header that included an invalid 'max-age' directive.
STSMultipleIncludeSubdomains=Strict-Transport-Security: The site specified a header that included multiple 'includeSubDomains' directives.
STSInvalidIncludeSubdomains=Strict-Transport-Security: The site specified a header that included an invalid 'includeSubDomains' directive.
STSNoMaxAge=Strict-Transport-Security: The site specified a header that did not include a max-age directive.
STSMultipleMaxAges=Strict-Transport-Security: The site specified a header that included multiple max-age directives.
STSInvalidMaxAge=Strict-Transport-Security: The site specified a header that included an invalid max-age directive.
STSMultipleIncludeSubdomains=Strict-Transport-Security: The site specified a header that included multiple includeSubDomains directives.
STSInvalidIncludeSubdomains=Strict-Transport-Security: The site specified a header that included an invalid includeSubDomains directive.
STSCouldNotSaveState=Strict-Transport-Security: An error occurred noting the site as a Strict-Transport-Security host.
# LOCALIZATION NOTE: Do not translate "Public-Key-Pins", "HPKP", "max-age", "report-uri" or "includeSubDomains"
PKPUnknownError=Public-Key-Pins: An unknown error occurred processing the header specified by the site.
PKPUntrustworthyConnection=Public-Key-Pins: The connection to the site is untrustworthy, so the specified header was ignored.
PKPCouldNotParseHeader=Public-Key-Pins: The site specified a header that could not be parsed successfully.
PKPNoMaxAge=Public-Key-Pins: The site specified a header that did not include a 'max-age' directive.
PKPMultipleMaxAges=Public-Key-Pins: The site specified a header that included multiple 'max-age' directives.
PKPInvalidMaxAge=Public-Key-Pins: The site specified a header that included an invalid 'max-age' directive.
PKPMultipleIncludeSubdomains=Public-Key-Pins: The site specified a header that included multiple 'includeSubDomains' directives.
PKPInvalidIncludeSubdomains=Public-Key-Pins: The site specified a header that included an invalid 'includeSubDomains' directive.
PKPNoMaxAge=Public-Key-Pins: The site specified a header that did not include a max-age directive.
PKPMultipleMaxAges=Public-Key-Pins: The site specified a header that included multiple max-age directives.
PKPInvalidMaxAge=Public-Key-Pins: The site specified a header that included an invalid max-age directive.
PKPMultipleIncludeSubdomains=Public-Key-Pins: The site specified a header that included multiple includeSubDomains directives.
PKPInvalidIncludeSubdomains=Public-Key-Pins: The site specified a header that included an invalid includeSubDomains directive.
PKPInvalidPin=Public-Key-Pins: The site specified a header that included an invalid pin.
PKPMultipleReportURIs=Public-Key-Pins: The site specified a header that included multiple 'report-uri' directives.
PKPMultipleReportURIs=Public-Key-Pins: The site specified a header that included multiple report-uri directives.
PKPPinsetDoesNotMatch=Public-Key-Pins: The site specified a header that did not include a matching pin.
PKPNoBackupPin=Public-Key-Pins: The site specified a header that did not include a backup pin.
PKPCouldNotSaveState=Public-Key-Pins: An error occurred noting the site as a Public-Key-Pins host.
PKPRootNotBuiltIn=Public-Key-Pins: The certificate used by the site was not issued by a certificate in the default root certificate store. To prevent accidental breakage, the specified header was ignored.
# LOCALIZATION NOTE: Do not translate "SHA-1"
SHA1Sig=This site makes use of a SHA-1 Certificate; it's recommended you use certificates with signature algorithms that use hash functions stronger than SHA-1.
SHA1Sig=This site makes use of a SHA-1 Certificate; its recommended you use certificates with signature algorithms that use hash functions stronger than SHA-1.
InsecurePasswordsPresentOnPage=Password fields present on an insecure (http://) page. This is a security risk that allows user login credentials to be stolen.
InsecureFormActionPasswordsPresent=Password fields present in a form with an insecure (http://) form action. This is a security risk that allows user login credentials to be stolen.
InsecurePasswordsPresentOnIframe=Password fields present on an insecure (http://) iframe. This is a security risk that allows user login credentials to be stolen.
# LOCALIZATION NOTE: "%1$S" is the URI of the insecure mixed content resource
LoadingMixedActiveContent2=Loading mixed (insecure) active content "%1$S" on a secure page
LoadingMixedDisplayContent2=Loading mixed (insecure) display content "%1$S" on a secure page
LoadingMixedActiveContent2=Loading mixed (insecure) active content “%1$S” on a secure page
LoadingMixedDisplayContent2=Loading mixed (insecure) display content “%1$S” on a secure page
# LOCALIZATION NOTE: Do not translate "allow-scripts", "allow-same-origin", "sandbox" or "iframe"
BothAllowScriptsAndSameOriginPresent=An iframe which has both allow-scripts and allow-same-origin for its sandbox attribute can remove its sandboxing.
# Sub-Resource Integrity
# LOCALIZATION NOTE: Do not translate "script" or "integrity". "%1$S" is the invalid token found in the attribute.
MalformedIntegrityHash=The script element has a malformed hash in its integrity attribute: "%1$S". The correct format is "<hash algorithm>-<hash value>".
MalformedIntegrityHash=The script element has a malformed hash in its integrity attribute: “%1$S”. The correct format is “<hash algorithm>-<hash value>”.
# LOCALIZATION NOTE: Do not translate "integrity"
InvalidIntegrityLength=The hash contained in the integrity attribute has the wrong length.
# LOCALIZATION NOTE: Do not translate "integrity"
InvalidIntegrityBase64=The hash contained in the integrity attribute could not be decoded.
# LOCALIZATION NOTE: Do not translate "integrity". "%1$S" is the type of hash algorigthm in use (e.g. "sha256").
IntegrityMismatch=None of the "%1$S" hashes in the integrity attribute match the content of the subresource.
IntegrityMismatch=None of the “%1$S” hashes in the integrity attribute match the content of the subresource.
# LOCALIZATION NOTE: "%1$S" is the URI of the sub-resource that cannot be protected using SRI.
IneligibleResource="%1$S" is not eligible for integrity checks since it's neither CORS-enabled nor same-origin.
IneligibleResource=“%1$S” is not eligible for integrity checks since its neither CORS-enabled nor same-origin.
# LOCALIZATION NOTE: Do not translate "integrity". "%1$S" is the invalid hash algorithm found in the attribute.
UnsupportedHashAlg=Unsupported hash algorithm in the integrity attribute: "%1$S"
UnsupportedHashAlg=Unsupported hash algorithm in the integrity attribute: “%1$S”
# LOCALIZATION NOTE: Do not translate "integrity"
NoValidMetadata=The integrity attribute does not contain any valid metadata.

Просмотреть файл

@ -16,16 +16,16 @@
12 = An XSLT stylesheet directly or indirectly imports or includes itself:
13 = An XPath function was called with the wrong number of arguments.
14 = An unknown XPath extension function was called.
15 = XPath parse failure: ')' expected:
15 = XPath parse failure: ) expected:
16 = XPath parse failure: invalid axis:
17 = XPath parse failure: Name or Nodetype test expected:
18 = XPath parse failure: ']' expected:
18 = XPath parse failure: ] expected:
19 = XPath parse failure: invalid variable name:
20 = XPath parse failure: unexpected end of expression:
21 = XPath parse failure: operator expected:
22 = XPath parse failure: unclosed literal:
23 = XPath parse failure: ':' unexpected:
24 = XPath parse failure: '!' unexpected, negation is not():
23 = XPath parse failure: : unexpected:
24 = XPath parse failure: ! unexpected, negation is not():
25 = XPath parse failure: illegal character found:
26 = XPath parse failure: binary operator expected:
27 = An XSLT stylesheet load was blocked for security reasons.

Просмотреть файл

@ -59,7 +59,7 @@ ConsoleAPI.prototype.warn = function(aWarning) {
func: () => data.jsonText = JSON.stringify({
start_url: 42,
}),
warning: 'Expected the manifest\'s start_url member to be a string.',
warning: 'Expected the manifest\u2019s start_url member to be a string.',
},
{
func: () => data.jsonText = JSON.stringify({

Просмотреть файл

@ -40,19 +40,19 @@ var tests = [
},
];
var results = [
[ { errorMessage: /Unknown property 'nosuchprop'/,
[ { errorMessage: /Unknown property \u2018nosuchprop\u2019/,
lineNumber: 1, columnNumber: 14,
sourceLine: "#s1{nosuchprop:auto; color:black}" },
{ errorMessage: /Unknown property 'nosuchprop'/,
{ errorMessage: /Unknown property \u2018nosuchprop\u2019/,
lineNumber: 2, columnNumber: 14, sourceLine:
"#s2{nosuchprop:auto; color:black}invalid?sel{}#s3{color:black}" },
{ errorMessage: /Ruleset ignored due to bad selector/,
lineNumber: 2, columnNumber: 40, sourceLine:
"#s2{nosuchprop:auto; color:black}invalid?sel{}#s3{color:black}" } ],
[ { errorMessage: /parsing value for 'width'/,
[ { errorMessage: /parsing value for \u2018width\u2019/,
lineNumber: 0, columnNumber: 6,
sourceLine: "width:200;color:black" } ],
[ { errorMessage: /parsing value for 'width'/,
[ { errorMessage: /parsing value for \u2018width\u2019/,
lineNumber: 0, columnNumber: 0,
sourceLine: "200" } ],
];

Просмотреть файл

@ -26,26 +26,26 @@
const patterns = [
// REPORT_UNEXPECTED_P (only ever used in contexts where identifier-like
// escaping is appropriate)
{ i: "<t>|x{}", o: "prefix '<i>'" },
{ i: "<t>|x{}", o: "prefix \u2018<i>\u2019" },
// REPORT_UNEXPECTED_TOKEN with:
// _Ident
{ i: "@namespace fnord <t>;", o: "within @namespace: '<i>'" },
{ i: "@namespace fnord <t>;", o: "within @namespace: \u2018<i>\u2019" },
// _Ref
{ i: "@namespace fnord #<t>;", o: "within @namespace: '#<i>'" },
{ i: "@namespace fnord #<t>;", o: "within @namespace: \u2018#<i>\u2019" },
// _Function
{ i: "@namespace fnord <t>();", o: "within @namespace: '<i>('" },
{ i: "@namespace fnord <t>();", o: "within @namespace: \u2018<i>(\u2019" },
// _Dimension
{ i: "@namespace fnord 14<t>;", o: "within @namespace: '14<i>'" },
{ i: "@namespace fnord 14<t>;", o: "within @namespace: \u201814<i>\u2019" },
// _AtKeyword
{ i: "x{@<t>: }", o: "declaration but found '@<i>'." },
{ i: "x{@<t>: }", o: "declaration but found \u2018@<i>\u2019." },
// _String
{ i: "x{ '<t>'}" , o: "declaration but found ''<s>''." },
{ i: "x{ '<t>'}" , o: "declaration but found \u2018'<s>'\u2019." },
// _Bad_String
{ i: "x{ '<t>\n}", o: "declaration but found ''<s>'." },
{ i: "x{ '<t>\n}", o: "declaration but found \u2018'<s>\u2019." },
// _URL
{ i: "x{ url('<t>')}", o: "declaration but found 'url('<s>')'." },
{ i: "x{ url('<t>')}", o: "declaration but found \u2018url('<s>')\u2019." },
// _Bad_URL
{ i: "x{ url('<t>'.)}" , o: "declaration but found 'url('<s>''." }
{ i: "x{ url('<t>'.)}" , o: "declaration but found \u2018url('<s>'\u2019." }
];
// Blocks of characters to test, and how they should be escaped when

Просмотреть файл

@ -33,16 +33,16 @@ DirColSize=Size
DirColMTime=Last Modified
DirFileLabel=File:
PhishingAuth=You are about to visit "%1$S". This site may be attempting to trick you into thinking you are visiting a different site. Use extreme caution.
PhishingAuth=You are about to visit “%1$S”. This site may be attempting to trick you into thinking you are visiting a different site. Use extreme caution.
PhishingAuthAccept=I understand and will be very careful
SuperfluousAuth=You are about to log in to the site "%1$S" with the username "%2$S", but the website does not require authentication. This may be an attempt to trick you.\n\nIs "%1$S" the site you want to visit?
AutomaticAuth=You are about to log in to the site "%1$S" with the username "%2$S".
SuperfluousAuth=You are about to log in to the site “%1$S” with the username “%2$S”, but the website does not require authentication. This may be an attempt to trick you.\n\nIs “%1$S” the site you want to visit?
AutomaticAuth=You are about to log in to the site “%1$S” with the username “%2$S”.
TrackingUriBlocked=The resource at "%1$S" was blocked because tracking protection is enabled.
TrackingUriBlocked=The resource at “%1$S” was blocked because tracking protection is enabled.
# LOCALIZATION NOTE (APIDeprecationWarning):
# %1$S is the deprected API; %2$S is the API function that should be used.
APIDeprecationWarning=Warning: '%1$S' deprecated, please use '%2$S'
APIDeprecationWarning=Warning: %1$S deprecated, please use %2$S
# LOCALIZATION NOTE (nsICookieManagerRemoveDeprecated): don't localize nsICookieManager.remove() and originAttributes.
nsICookieManagerRemoveDeprecated=“nsICookieManager.remove()” is changed. Update your code and pass the correct originAttributes. Read more on MDN: https://developer.mozilla.org/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsICookieManager

Просмотреть файл

@ -6,13 +6,13 @@ SSL_ERROR_EXPORT_ONLY_SERVER=Unable to communicate securely. Peer does not suppo
SSL_ERROR_US_ONLY_SERVER=Unable to communicate securely. Peer requires high-grade encryption which is not supported.
SSL_ERROR_NO_CYPHER_OVERLAP=Cannot communicate securely with peer: no common encryption algorithm(s).
SSL_ERROR_NO_CERTIFICATE=Unable to find the certificate or key necessary for authentication.
SSL_ERROR_BAD_CERTIFICATE=Unable to communicate securely with peer: peers's certificate was rejected.
SSL_ERROR_BAD_CERTIFICATE=Unable to communicate securely with peer: peerss certificate was rejected.
SSL_ERROR_BAD_CLIENT=The server has encountered bad data from the client.
SSL_ERROR_BAD_SERVER=The client has encountered bad data from the server.
SSL_ERROR_UNSUPPORTED_CERTIFICATE_TYPE=Unsupported certificate type.
SSL_ERROR_UNSUPPORTED_VERSION=Peer using unsupported version of security protocol.
SSL_ERROR_WRONG_CERTIFICATE=Client authentication failed: private key in key database does not match public key in certificate database.
SSL_ERROR_BAD_CERT_DOMAIN=Unable to communicate securely with peer: requested domain name does not match the server's certificate.
SSL_ERROR_BAD_CERT_DOMAIN=Unable to communicate securely with peer: requested domain name does not match the servers certificate.
SSL_ERROR_POST_WARNING=Unrecognized SSL error code.
SSL_ERROR_SSL2_DISABLED=Peer only supports SSL version 2, which is locally disabled.
SSL_ERROR_BAD_MAC_READ=SSL received a record with an incorrect Message Authentication Code.
@ -67,7 +67,7 @@ SSL_ERROR_UNSUPPORTED_CERT_ALERT=SSL peer does not support certificates of the t
SSL_ERROR_CERTIFICATE_UNKNOWN_ALERT=SSL peer had some unspecified issue with the certificate it received.
SSL_ERROR_GENERATE_RANDOM_FAILURE=SSL experienced a failure of its random number generator.
SSL_ERROR_SIGN_HASHES_FAILURE=Unable to digitally sign data required to verify your certificate.
SSL_ERROR_EXTRACT_PUBLIC_KEY_FAILURE=SSL was unable to extract the public key from the peer's certificate.
SSL_ERROR_EXTRACT_PUBLIC_KEY_FAILURE=SSL was unable to extract the public key from the peers certificate.
SSL_ERROR_SERVER_KEY_EXCHANGE_FAILURE=Unspecified failure while processing SSL Server Key Exchange handshake.
SSL_ERROR_CLIENT_KEY_EXCHANGE_FAILURE=Unspecified failure while processing SSL Client Key Exchange handshake.
SSL_ERROR_ENCRYPTION_FAILURE=Bulk data encryption algorithm failed in selected cipher suite.
@ -90,7 +90,7 @@ SSL_ERROR_HANDSHAKE_NOT_COMPLETED=Cannot initiate another SSL handshake until cu
SSL_ERROR_BAD_HANDSHAKE_HASH_VALUE=Received incorrect handshakes hash values from peer.
SSL_ERROR_CERT_KEA_MISMATCH=The certificate provided cannot be used with the selected key exchange algorithm.
SSL_ERROR_NO_TRUSTED_SSL_CLIENT_CA=No certificate authority is trusted for SSL client authentication.
SSL_ERROR_SESSION_NOT_FOUND=Client's SSL session ID not found in server's session cache.
SSL_ERROR_SESSION_NOT_FOUND=Clients SSL session ID not found in servers session cache.
SSL_ERROR_DECRYPTION_FAILED_ALERT=Peer was unable to decrypt an SSL record it received.
SSL_ERROR_RECORD_OVERFLOW_ALERT=Peer received an SSL record that was longer than is permitted.
SSL_ERROR_UNKNOWN_CA_ALERT=Peer does not recognize and trust the CA that issued your certificate.
@ -148,29 +148,29 @@ SEC_ERROR_INVALID_ALGORITHM=security library: invalid algorithm.
SEC_ERROR_INVALID_AVA=security library: invalid AVA.
SEC_ERROR_INVALID_TIME=Improperly formatted time string.
SEC_ERROR_BAD_DER=security library: improperly formatted DER-encoded message.
SEC_ERROR_BAD_SIGNATURE=Peer's certificate has an invalid signature.
SEC_ERROR_EXPIRED_CERTIFICATE=Peer's Certificate has expired.
SEC_ERROR_REVOKED_CERTIFICATE=Peer's Certificate has been revoked.
SEC_ERROR_UNKNOWN_ISSUER=Peer's Certificate issuer is not recognized.
SEC_ERROR_BAD_KEY=Peer's public key is invalid.
SEC_ERROR_BAD_SIGNATURE=Peers certificate has an invalid signature.
SEC_ERROR_EXPIRED_CERTIFICATE=Peers Certificate has expired.
SEC_ERROR_REVOKED_CERTIFICATE=Peers Certificate has been revoked.
SEC_ERROR_UNKNOWN_ISSUER=Peers Certificate issuer is not recognized.
SEC_ERROR_BAD_KEY=Peers public key is invalid.
SEC_ERROR_BAD_PASSWORD=The security password entered is incorrect.
SEC_ERROR_RETRY_PASSWORD=New password entered incorrectly. Please try again.
SEC_ERROR_NO_NODELOCK=security library: no nodelock.
SEC_ERROR_BAD_DATABASE=security library: bad database.
SEC_ERROR_NO_MEMORY=security library: memory allocation failure.
SEC_ERROR_UNTRUSTED_ISSUER=Peer's certificate issuer has been marked as not trusted by the user.
SEC_ERROR_UNTRUSTED_CERT=Peer's certificate has been marked as not trusted by the user.
SEC_ERROR_UNTRUSTED_ISSUER=Peers certificate issuer has been marked as not trusted by the user.
SEC_ERROR_UNTRUSTED_CERT=Peers certificate has been marked as not trusted by the user.
SEC_ERROR_DUPLICATE_CERT=Certificate already exists in your database.
SEC_ERROR_DUPLICATE_CERT_NAME=Downloaded certificate's name duplicates one already in your database.
SEC_ERROR_DUPLICATE_CERT_NAME=Downloaded certificates name duplicates one already in your database.
SEC_ERROR_ADDING_CERT=Error adding certificate to database.
SEC_ERROR_FILING_KEY=Error refiling the key for this certificate.
SEC_ERROR_NO_KEY=The private key for this certificate cannot be found in key database
SEC_ERROR_CERT_VALID=This certificate is valid.
SEC_ERROR_CERT_NOT_VALID=This certificate is not valid.
SEC_ERROR_CERT_NO_RESPONSE=Cert Library: No Response
SEC_ERROR_EXPIRED_ISSUER_CERTIFICATE=The certificate issuer's certificate has expired. Check your system date and time.
SEC_ERROR_CRL_EXPIRED=The CRL for the certificate's issuer has expired. Update it or check your system date and time.
SEC_ERROR_CRL_BAD_SIGNATURE=The CRL for the certificate's issuer has an invalid signature.
SEC_ERROR_EXPIRED_ISSUER_CERTIFICATE=The certificate issuers certificate has expired. Check your system date and time.
SEC_ERROR_CRL_EXPIRED=The CRL for the certificates issuer has expired. Update it or check your system date and time.
SEC_ERROR_CRL_BAD_SIGNATURE=The CRL for the certificates issuer has an invalid signature.
SEC_ERROR_CRL_INVALID=New CRL has an invalid format.
SEC_ERROR_EXTENSION_VALUE_INVALID=Certificate extension value is invalid.
SEC_ERROR_EXTENSION_NOT_FOUND=Certificate extension not found.
@ -195,11 +195,11 @@ XP_SEC_FORTEZZA_MORE_INFO=Please select a personality to get more info on
XP_SEC_FORTEZZA_PERSON_NOT_FOUND=Personality not found
XP_SEC_FORTEZZA_NO_MORE_INFO=No more information on that Personality
XP_SEC_FORTEZZA_BAD_PIN=Invalid Pin
XP_SEC_FORTEZZA_PERSON_ERROR=Couldn't initialize Fortezza personalities.
SEC_ERROR_NO_KRL=No KRL for this site's certificate has been found.
SEC_ERROR_KRL_EXPIRED=The KRL for this site's certificate has expired.
SEC_ERROR_KRL_BAD_SIGNATURE=The KRL for this site's certificate has an invalid signature.
SEC_ERROR_REVOKED_KEY=The key for this site's certificate has been revoked.
XP_SEC_FORTEZZA_PERSON_ERROR=Couldnt initialize Fortezza personalities.
SEC_ERROR_NO_KRL=No KRL for this sites certificate has been found.
SEC_ERROR_KRL_EXPIRED=The KRL for this sites certificate has expired.
SEC_ERROR_KRL_BAD_SIGNATURE=The KRL for this sites certificate has an invalid signature.
SEC_ERROR_REVOKED_KEY=The key for this sites certificate has been revoked.
SEC_ERROR_KRL_INVALID=New KRL has an invalid format.
SEC_ERROR_NEED_RANDOM=security library: need random data.
SEC_ERROR_NO_MODULE=security library: no security module can perform the requested operation.
@ -210,9 +210,9 @@ SEC_ERROR_CERT_NICKNAME_COLLISION=A certificate with the same nickname already e
SEC_ERROR_KEY_NICKNAME_COLLISION=A key with the same nickname already exists.
SEC_ERROR_SAFE_NOT_CREATED=error while creating safe object
SEC_ERROR_BAGGAGE_NOT_CREATED=error while creating baggage object
XP_JAVA_REMOVE_PRINCIPAL_ERROR=Couldn't remove the principal
XP_JAVA_DELETE_PRIVILEGE_ERROR=Couldn't delete the privilege
XP_JAVA_CERT_NOT_EXISTS_ERROR=This principal doesn't have a certificate
XP_JAVA_REMOVE_PRINCIPAL_ERROR=Couldnt remove the principal
XP_JAVA_DELETE_PRIVILEGE_ERROR=Couldnt delete the privilege
XP_JAVA_CERT_NOT_EXISTS_ERROR=This principal doesnt have a certificate
SEC_ERROR_BAD_EXPORT_ALGORITHM=Required algorithm is not allowed.
SEC_ERROR_EXPORTING_CERTIFICATES=Error attempting to export certificates.
SEC_ERROR_IMPORTING_CERTIFICATES=Error attempting to import certificates.
@ -254,7 +254,7 @@ SEC_ERROR_CERT_NOT_IN_NAME_SPACE=The Certifying Authority for this certificate i
SEC_ERROR_KRL_NOT_YET_VALID=The key revocation list for this certificate is not yet valid.
SEC_ERROR_CRL_NOT_YET_VALID=The certificate revocation list for this certificate is not yet valid.
SEC_ERROR_UNKNOWN_CERT=The requested certificate could not be found.
SEC_ERROR_UNKNOWN_SIGNER=The signer's certificate could not be found.
SEC_ERROR_UNKNOWN_SIGNER=The signers certificate could not be found.
SEC_ERROR_CERT_BAD_ACCESS_LOCATION=The location for the certificate status server has invalid format.
SEC_ERROR_OCSP_UNKNOWN_RESPONSE_TYPE=The OCSP response cannot be fully decoded; it is of an unknown type.
SEC_ERROR_OCSP_BAD_HTTP_RESPONSE=The OCSP server returned unexpected/invalid HTTP data.
@ -283,18 +283,18 @@ SEC_ERROR_UNSUPPORTED_ELLIPTIC_CURVE=Unsupported elliptic curve.
SEC_ERROR_UNSUPPORTED_EC_POINT_FORM=Unsupported elliptic curve point form.
SEC_ERROR_UNRECOGNIZED_OID=Unrecognized Object Identifier.
SEC_ERROR_OCSP_INVALID_SIGNING_CERT=Invalid OCSP signing certificate in OCSP response.
SEC_ERROR_REVOKED_CERTIFICATE_CRL=Certificate is revoked in issuer's certificate revocation list.
SEC_ERROR_REVOKED_CERTIFICATE_OCSP=Issuer's OCSP responder reports certificate is revoked.
SEC_ERROR_CRL_INVALID_VERSION=Issuer's Certificate Revocation List has an unknown version number.
SEC_ERROR_CRL_V1_CRITICAL_EXTENSION=Issuer's V1 Certificate Revocation List has a critical extension.
SEC_ERROR_CRL_UNKNOWN_CRITICAL_EXTENSION=Issuer's V2 Certificate Revocation List has an unknown critical extension.
SEC_ERROR_REVOKED_CERTIFICATE_CRL=Certificate is revoked in issuers certificate revocation list.
SEC_ERROR_REVOKED_CERTIFICATE_OCSP=Issuers OCSP responder reports certificate is revoked.
SEC_ERROR_CRL_INVALID_VERSION=Issuers Certificate Revocation List has an unknown version number.
SEC_ERROR_CRL_V1_CRITICAL_EXTENSION=Issuers V1 Certificate Revocation List has a critical extension.
SEC_ERROR_CRL_UNKNOWN_CRITICAL_EXTENSION=Issuers V2 Certificate Revocation List has an unknown critical extension.
SEC_ERROR_UNKNOWN_OBJECT_TYPE=Unknown object type specified.
SEC_ERROR_INCOMPATIBLE_PKCS11=PKCS #11 driver violates the spec in an incompatible way.
SEC_ERROR_NO_EVENT=No new slot event is available at this time.
SEC_ERROR_CRL_ALREADY_EXISTS=CRL already exists.
SEC_ERROR_NOT_INITIALIZED=NSS is not initialized.
SEC_ERROR_TOKEN_NOT_LOGGED_IN=The operation failed because the PKCS#11 token is not logged in.
SEC_ERROR_OCSP_RESPONDER_CERT_INVALID=Configured OCSP responder's certificate is invalid.
SEC_ERROR_OCSP_RESPONDER_CERT_INVALID=Configured OCSP responders certificate is invalid.
SEC_ERROR_OCSP_BAD_SIGNATURE=OCSP response has an invalid signature.
SEC_ERROR_OUT_OF_SEARCH_LIMITS=Cert validation search is out of search limits
SEC_ERROR_INVALID_POLICY_MAPPING=Policy mapping contains anypolicy
@ -318,9 +318,9 @@ SEC_ERROR_CERT_SIGNATURE_ALGORITHM_DISABLED=The certificate was signed using a s
MOZILLA_PKIX_ERROR_KEY_PINNING_FAILURE=The server uses key pinning (HPKP) but no trusted certificate chain could be constructed that matches the pinset. Key pinning violations cannot be overridden.
MOZILLA_PKIX_ERROR_CA_CERT_USED_AS_END_ENTITY=The server uses a certificate with a basic constraints extension identifying it as a certificate authority. For a properly-issued certificate, this should not be the case.
MOZILLA_PKIX_ERROR_INADEQUATE_KEY_SIZE=The server presented a certificate with a key size that is too small to establish a secure connection.
MOZILLA_PKIX_ERROR_V1_CERT_USED_AS_CA=An X.509 version 1 certificate that is not a trust anchor was used to issue the server's certificate. X.509 version 1 certificates are deprecated and should not be used to sign other certificates.
MOZILLA_PKIX_ERROR_V1_CERT_USED_AS_CA=An X.509 version 1 certificate that is not a trust anchor was used to issue the servers certificate. X.509 version 1 certificates are deprecated and should not be used to sign other certificates.
MOZILLA_PKIX_ERROR_NOT_YET_VALID_CERTIFICATE=The server presented a certificate that is not yet valid.
MOZILLA_PKIX_ERROR_NOT_YET_VALID_ISSUER_CERTIFICATE=A certificate that is not yet valid was used to issue the server's certificate.
MOZILLA_PKIX_ERROR_NOT_YET_VALID_ISSUER_CERTIFICATE=A certificate that is not yet valid was used to issue the servers certificate.
MOZILLA_PKIX_ERROR_SIGNATURE_ALGORITHM_MISMATCH=The signature algorithm in the signature field of the certificate does not match the algorithm in its signatureAlgorithm field.
MOZILLA_PKIX_ERROR_OCSP_RESPONSE_FOR_CERT_MISSING=The OCSP response does not include a status for the certificate being verified.
MOZILLA_PKIX_ERROR_VALIDITY_TOO_LONG=The server presented a certificate that is valid for too long.

Просмотреть файл

@ -49,7 +49,7 @@ VerifyStatusResponder=Status Responder Certificate
HighGrade=High Grade
MediumGrade=Medium Grade
# LOCALIZATION NOTE (nick_template): $1s is the common name from a cert (e.g. "Mozilla"), $2s is the CA name (e.g. VeriSign)
nick_template=%1$s's %2$s ID
nick_template=%1$ss %2$s ID
#These are the strings set for the ASN1 objects in a certificate.
CertDumpCertificate=Certificate
CertDumpVersion=Version
@ -89,7 +89,7 @@ CertDumpRSAPSSSignature=PKCS #1 RSASSA-PSS Signature
CertDumpRSATemplate=Modulus (%S bits):\n%S\nExponent (%S bits):\n%S
CertDumpECTemplate=Key size: %S bits\nBase point order length: %S bits\nPublic value:\n%S
CertDumpIssuerUniqueID=Issuer Unique ID
CertDumpSubjPubKey=Subject's Public Key
CertDumpSubjPubKey=Subjects Public Key
CertDumpSubjectUniqueID=Subject Unique ID
CertDumpExtensions=Extensions
CertDumpSubjectDirectoryAttr=Certificate Subject Directory Attributes
@ -261,8 +261,8 @@ DelModuleWarning=Are you sure you want to delete this security module?
DelModuleError=Unable to delete module
AVATemplate=%S = %S
PSMERR_SSL_Disabled=Can't connect securely because the SSL protocol has been disabled.
PSMERR_SSL2_Disabled=Can't connect securely because the site uses an older, insecure version of the SSL protocol.
PSMERR_SSL_Disabled=Cant connect securely because the SSL protocol has been disabled.
PSMERR_SSL2_Disabled=Cant connect securely because the site uses an older, insecure version of the SSL protocol.
PSMERR_HostReusedIssuerSerial=You have received an invalid certificate. Please contact the server administrator or email correspondent and give them the following information:\n\nYour certificate contains the same serial number as another certificate issued by the certificate authority. Please get a new certificate containing a unique serial number.
SSLConnectionErrorPrefix=An error occurred during a connection to %S.
@ -320,9 +320,9 @@ CertNoEmailAddress=(no email address)
NicknameExpired=(expired)
NicknameNotYetValid=(not yet valid)
CaCertExists=This certificate is already installed as a certificate authority.
NotACACert=This is not a certificate authority certificate, so it can't be imported into the certificate authority list.
NotImportingUnverifiedCert=This certificate can't be verified and will not be imported. The certificate issuer might be unknown or untrusted, the certificate might have expired or been revoked, or the certificate might not have been approved.
UserCertIgnoredNoPrivateKey=This personal certificate can't be installed because you do not own the corresponding private key which was created when the certificate was requested.
NotACACert=This is not a certificate authority certificate, so it cant be imported into the certificate authority list.
NotImportingUnverifiedCert=This certificate cant be verified and will not be imported. The certificate issuer might be unknown or untrusted, the certificate might have expired or been revoked, or the certificate might not have been approved.
UserCertIgnoredNoPrivateKey=This personal certificate cant be installed because you do not own the corresponding private key which was created when the certificate was requested.
UserCertImported=Your personal certificate has been installed. You should keep a backup copy of this certificate.
CertOrgUnknown=(Unknown)
CertNotStored=(Not Stored)

Просмотреть файл

@ -7,11 +7,11 @@ CertPassPrompt=Please enter the Personal Security Password for the PSM Private K
#These are for dialogs
#Download Cert dialog
newCAMessage1=Do you want to trust "%S" for the following purposes?
newCAMessage1=Do you want to trust “%S” for the following purposes?
unnamedCA=Certificate Authority (unnamed)
#For editing cert trust
editTrustCA=The certificate "%S" represents a Certificate Authority.
editTrustCA=The certificate “%S” represents a Certificate Authority.
#For Deleting Certificates
deleteSslCertConfirm3=Are you sure you want to delete these server exceptions?
@ -26,8 +26,8 @@ deleteCaCertConfirm2=You have requested to delete these CA certificates. For bui
deleteCaCertImpactX2=If you delete or distrust a certificate authority (CA) certificate, this application will no longer trust any certificates issued by that CA.
deleteCaCertTitle2=Delete or Distrust CA Certificates
deleteEmailCertConfirm=Are you sure you want to delete these people's e-mail certificates?
deleteEmailCertImpactDesc=If you delete a person's e-mail certificate, you will no longer be able to send encrypted e-mail to that person.
deleteEmailCertConfirm=Are you sure you want to delete these peoples e-mail certificates?
deleteEmailCertImpactDesc=If you delete a persons e-mail certificate, you will no longer be able to send encrypted e-mail to that person.
deleteEmailCertTitle=Delete E-Mail Certificates
deleteOrphanCertConfirm=Are you sure you want to delete these certificates?
@ -52,8 +52,8 @@ certNotVerified_AlgorithmDisabled=Could not verify this certificate because it w
certNotVerified_Unknown=Could not verify this certificate for unknown reasons.
#Client auth
clientAuthMessage1=Organization: "%S"
clientAuthMessage2=Issued Under: "%S"
clientAuthMessage1=Organization: “%S”
clientAuthMessage2=Issued Under: “%S”
#Page Info
pageInfo_NoEncryption=Connection Not Encrypted
@ -70,7 +70,7 @@ pageInfo_Privacy_Encrypted1=The page you are viewing was encrypted before being
pageInfo_Privacy_Encrypted2=Encryption makes it difficult for unauthorized people to view information traveling between computers. It is therefore unlikely that anyone read this page as it traveled across the network.
pageInfo_MixedContent=Connection Partially Encrypted
pageInfo_MixedContent2=Parts of the page you are viewing were not encrypted before being transmitted over the Internet.
pageInfo_WeakCipher=Your connection to this website uses weak encryption and is not private. Other people can view your information or modify the website's behavior.
pageInfo_WeakCipher=Your connection to this website uses weak encryption and is not private. Other people can view your information or modify the websites behavior.
#Cert Viewer
certDetails=Certificate Viewer:
@ -111,7 +111,7 @@ resetPasswordConfirmationTitle=Reset Master Password
resetPasswordConfirmationMessage=Your password has been reset.
# Import certificate(s) file dialog
importEmailCertPrompt=Select File containing somebody's Email certificate to import
importEmailCertPrompt=Select File containing somebodys Email certificate to import
importCACertsPrompt=Select File containing CA certificate(s) to import
file_browse_Certificate_spec=Certificate Files
@ -123,7 +123,7 @@ CertFormatDER=X.509 Certificate (DER)
CertFormatPKCS7=X.509 Certificate (PKCS#7)
CertFormatPKCS7Chain=X.509 Certificate with chain (PKCS#7)
writeFileFailure=File Error
writeFileFailed=Can't write to file %S:\n%S.
writeFileFailed=Cant write to file %S:\n%S.
writeFileAccessDenied=Access denied
writeFileIsLocked=File is locked
writeFileNoDeviceSpace=No space left on device
@ -137,7 +137,7 @@ addExceptionDomainMismatchLong2=The certificate belongs to a different site, whi
addExceptionExpiredShort=Outdated Information
addExceptionExpiredLong2=The certificate is not currently valid. It may have been stolen or lost, and could be used by someone to impersonate this site.
addExceptionUnverifiedOrBadSignatureShort=Unknown Identity
addExceptionUnverifiedOrBadSignatureLong2=The certificate is not trusted because it hasn't been verified as issued by a trusted authority using a secure signature.
addExceptionUnverifiedOrBadSignatureLong2=The certificate is not trusted because it hasnt been verified as issued by a trusted authority using a secure signature.
addExceptionValidShort=Valid Certificate
addExceptionValidLong=This site provides valid, verified identification. There is no need to add an exception.
addExceptionCheckingShort=Checking Information

Просмотреть файл

@ -20,8 +20,8 @@ weak-password = Use a stronger password
# this is the fallback, if we hit an error we didn't bother to localize
error.reason.unknown = Unknown error
change.password.pwSameAsPassword = Password can't match current password
change.password.pwSameAsUsername = Password can't match your user name
change.password.pwSameAsEmail = Password can't match your email address
change.password.pwSameAsPassword = Password cant match current password
change.password.pwSameAsUsername = Password cant match your user name
change.password.pwSameAsEmail = Password cant match your email address
change.password.mismatch = The passwords entered do not match
change.password.tooShort = The password entered is too short

Просмотреть файл

@ -3,7 +3,7 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# %1: the user name (Ed), %2: the app name (Firefox), %3: the operating system (Android)
client.name2 = %1$S's %2$S on %3$S
client.name2 = %1$Ss %2$S on %3$S
# %S is the date and time at which the last sync successfully completed
lastSync2.label = Last sync: %S

Просмотреть файл

@ -1026,9 +1026,9 @@ function* runTests() {
info("Starting test: promptAuth with long realm");
state = {
msg : 'A username and password are being requested by http://example.com. The site ' +
'says: "abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi ' +
'says: \u201cabcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi ' +
'abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi ' +
'abcdefghi \u2026"',
'abcdefghi \u2026\u201d',
title : "TestTitle",
iconClass : "authentication-icon question-icon",
titleHidden : true,

Просмотреть файл

@ -26,12 +26,12 @@ renameProfileTitle = Rename Profile
renameProfile = Rename profile %S
invalidProfileNameTitle = Invalid profile name
invalidProfileName = The profile name "%S" is not allowed.
invalidProfileName = The profile name “%S” is not allowed.
deleteProfileTitle = Delete Profile
deleteProfileConfirm = Deleting a profile will remove the profile from the list of available profiles and cannot be undone.\nYou may also choose to delete the profile data files, including your settings, certificates and other user-related data. This option will delete the folder "%S" and cannot be undone.\nWould you like to delete the profile data files?
deleteProfileConfirm = Deleting a profile will remove the profile from the list of available profiles and cannot be undone.\nYou may also choose to delete the profile data files, including your settings, certificates and other user-related data. This option will delete the folder “%S” and cannot be undone.\nWould you like to delete the profile data files?
deleteFiles = Delete Files
dontDeleteFiles = Don't Delete Files
dontDeleteFiles = Dont Delete Files
openDir = Open Directory
# LOCALIZATION NOTE (macOpenDir): This is the Mac-specific variant of openDir.

Просмотреть файл

@ -6,7 +6,7 @@
<!-- LOCALIZATION NOTE (aboutSupport.pageSubtitle): don't change the 'supportLink' id. -->
<!ENTITY aboutSupport.pageSubtitle "
This page contains technical information that might be useful when you're
This page contains technical information that might be useful when youre
trying to solve a problem. If you are looking for answers to common questions
about &brandShortName;, check out our <a id='supportLink'>support website</a>.
">

Просмотреть файл

@ -15,7 +15,7 @@ Yes=&Yes
No=&No
Save=&Save
Revert=&Revert
DontSave=Do&n't Save
DontSave=Do&nt Save
ScriptDlgGenericHeading=[JavaScript Application]
ScriptDlgHeading=The page at %S says:
ScriptDialogLabel=Prevent this page from creating additional dialogs
@ -25,7 +25,7 @@ ScriptDialogPreventTitle=Confirm Dialog Preference
# take advantage of sentence structure in order to mislead the user (see
# bug 244273). %1 should be integrated into the translated sentences as
# little as possible. %2 is the url of the site being accessed.
EnterLoginForRealm=A username and password are being requested by %2$S. The site says: "%1$S"
EnterLoginForProxy=The proxy %2$S is requesting a username and password. The site says: "%1$S"
EnterLoginForRealm=A username and password are being requested by %2$S. The site says: “%1$S”
EnterLoginForProxy=The proxy %2$S is requesting a username and password. The site says: “%1$S”
EnterUserPasswordFor=Enter username and password for %1$S
EnterPasswordFor=Enter password for %1$S on %2$S

Просмотреть файл

@ -14,4 +14,4 @@ errTime=Timestamp: %S
# LOCALIZATION NOTE (evaluationContextChanged): The message displayed when the
# browser console's evaluation context (window against which input is evaluated)
# changes.
evaluationContextChanged=The console's evaluation context changed, probably because the target window was closed or because you opened a main window from the browser console's window.
evaluationContextChanged=The consoles evaluation context changed, probably because the target window was closed or because you opened a main window from the browser consoles window.

Просмотреть файл

@ -4,7 +4,7 @@
enterToolbarTitle=New Toolbar
enterToolbarName=Enter a name for this toolbar:
enterToolbarDup=There is already a toolbar with the name "%S". Please enter a different name.
enterToolbarDup=There is already a toolbar with the name “%S”. Please enter a different name.
enterToolbarBlank=You must enter a name to create a new toolbar.
separatorTitle=Separator
springTitle=Flexible Space

Просмотреть файл

@ -1,12 +1,12 @@
csp.error.missing-directive = Policy is missing a required '%S' directive
csp.error.missing-directive = Policy is missing a required %S directive
csp.error.illegal-keyword = '%1$S' directive contains a forbidden %2$S keyword
csp.error.illegal-keyword = %1$S directive contains a forbidden %2$S keyword
csp.error.illegal-protocol = '%1$S' directive contains a forbidden %2$S: protocol source
csp.error.illegal-protocol = %1$S directive contains a forbidden %2$S: protocol source
csp.error.missing-host = %2$S: protocol requires a host in '%1$S' directives
csp.error.missing-host = %2$S: protocol requires a host in %1$S directives
csp.error.missing-source = '%1$S' must include the source %2$S
csp.error.missing-source = %1$S must include the source %2$S
csp.error.illegal-host-wildcard = %2$S: wildcard sources in '%1$S' directives must include at least one non-generic sub-domain (e.g., *.example.com rather than *.com)
csp.error.illegal-host-wildcard = %2$S: wildcard sources in %1$S directives must include at least one non-generic sub-domain (e.g., *.example.com rather than *.com)

Просмотреть файл

@ -26,16 +26,16 @@ noButtonLabel=No
formatLabel=Format:
errorOpenFileDoesntExistTitle=Error opening %S
errorOpenFileDoesntExistMessage=File %S doesn't exist
errorOpenFileDoesntExistMessage=File %S doesnt exist
errorDirDoesntExistTitle=Error accessing %S
errorDirDoesntExistMessage=Directory %S doesn't exist
errorDirDoesntExistMessage=Directory %S doesnt exist
errorOpeningFileTitle=Error opening %S
openWithoutPermissionMessage_file=File %S is not readable
errorSavingFileTitle=Error saving %S
saveParentIsFileMessage=%S is a file, can't save %S
saveParentDoesntExistMessage=Path %S doesn't exist, can't save %S
saveParentIsFileMessage=%S is a file, cant save %S
saveParentDoesntExistMessage=Path %S doesnt exist, cant save %S
saveWithoutPermissionMessage_file=File %S is not writable.
saveWithoutPermissionMessage_dir=Cannot create file. Directory %S is not writable.

Просмотреть файл

@ -47,7 +47,7 @@ headerFooterURL=URL
headerFooterDate=Date/Time
headerFooterPage=Page #
headerFooterPageTotal=Page # of #
headerFooterCustom=Custom...
headerFooterCustom=Custom
customHeaderFooterPrompt=Please enter your custom header/footer text
# These are for the summary view in the Mac dialog:

Просмотреть файл

@ -5,7 +5,7 @@
# LOCALIZATION NOTE: These strings are used for profile reset.
# LOCALIZATION NOTE (resetUnusedProfile.message): %S is brandShortName.
resetUnusedProfile.message=It looks like you haven't started %S in a while. Do you want to clean it up for a fresh, like-new experience? And by the way, welcome back!
resetUnusedProfile.message=It looks like you havent started %S in a while. Do you want to clean it up for a fresh, like-new experience? And by the way, welcome back!
# LOCALIZATION NOTE (resetUninstalled.message): %S is brandShortName.
resetUninstalled.message=Looks like youve reinstalled %S. Want us to clean it up for a fresh, like-new experience?

Просмотреть файл

@ -25,7 +25,7 @@
<!ENTITY error.aborted "Video loading stopped.">
<!ENTITY error.network "Video playback aborted due to a network error.">
<!ENTITY error.decode "Video can't be played because the file is corrupt.">
<!ENTITY error.decode "Video cant be played because the file is corrupt.">
<!ENTITY error.srcNotSupported "Video format or MIME type is not supported.">
<!ENTITY error.noSource2 "No video with supported format and MIME type found.">
<!ENTITY error.generic "Video playback aborted due to an unknown error.">

Просмотреть файл

@ -36,8 +36,8 @@ leavePrivateBrowsingWindowsCancelDownloadsAlertMsg2=If you close all Private Bro
leavePrivateBrowsingWindowsCancelDownloadsAlertMsgMultiple2=If you close all Private Browsing windows now, %S downloads will be canceled. Are you sure you want to leave Private Browsing?
cancelDownloadsOKText=Cancel 1 Download
cancelDownloadsOKTextMultiple=Cancel %S Downloads
dontQuitButtonWin=Don't Exit
dontQuitButtonMac=Don't Quit
dontQuitButtonWin=Dont Exit
dontQuitButtonMac=Dont Quit
dontGoOfflineButton=Stay Online
dontLeavePrivateBrowsingButton2=Stay in Private Browsing
downloadsCompleteTitle=Downloads Complete
@ -132,9 +132,9 @@ chooseAppFilePickerTitle=Open With…
downloadsTitleFiles=#1 file - Downloads;#1 files - Downloads
downloadsTitlePercent=#2% of #1 file - Downloads;#2% of #1 files - Downloads
fileExecutableSecurityWarning="%S" is an executable file. Executable files may contain viruses or other malicious code that could harm your computer. Use caution when opening this file. Are you sure you want to launch "%S"?
fileExecutableSecurityWarning=“%S” is an executable file. Executable files may contain viruses or other malicious code that could harm your computer. Use caution when opening this file. Are you sure you want to launch “%S”?
fileExecutableSecurityWarningTitle=Open Executable File?
fileExecutableSecurityWarningDontAsk=Don't ask me this again
fileExecutableSecurityWarningDontAsk=Dont ask me this again
displayNameDesktop=Desktop

Просмотреть файл

@ -7,7 +7,7 @@ title=Opening %S
saveDialogTitle=Enter name of file to save to…
defaultApp=%S (default)
chooseAppFilePickerTitle=Choose Helper Application
badApp=The application you chose ("%S") could not be found. Check the file name or choose another application.
badApp=The application you chose (“%S”) could not be found. Check the file name or choose another application.
badApp.title=Application not found
badPermissions=The file could not be saved because you do not have the proper permissions. Choose another save directory.
badPermissions.title=Invalid Save Permissions

Просмотреть файл

@ -10,9 +10,9 @@
<!ENTITY search.commandkey "f">
<!ENTITY loading.label "Loading…">
<!ENTITY listEmpty.installed.label "You don't have any add-ons of this type installed">
<!ENTITY listEmpty.installed.label "You dont have any add-ons of this type installed">
<!ENTITY listEmpty.availableUpdates.label "No updates found">
<!ENTITY listEmpty.recentUpdates.label "You haven't recently updated any add-ons">
<!ENTITY listEmpty.recentUpdates.label "You havent recently updated any add-ons">
<!ENTITY listEmpty.findUpdates.label "Check For Updates">
<!ENTITY listEmpty.search.label "Could not find any matching add-ons">
<!ENTITY listEmpty.button.label "Learn more about add-ons">
@ -108,9 +108,9 @@
<!ENTITY cmd.uninstallAddon.label "Remove">
<!ENTITY cmd.uninstallAddon.accesskey "R">
<!ENTITY cmd.showPreferencesWin.label "Options">
<!ENTITY cmd.showPreferencesWin.tooltip "Change this add-on's options">
<!ENTITY cmd.showPreferencesWin.tooltip "Change this add-ons options">
<!ENTITY cmd.showPreferencesUnix.label "Preferences">
<!ENTITY cmd.showPreferencesUnix.tooltip "Change this add-on's preferences">
<!ENTITY cmd.showPreferencesUnix.tooltip "Change this add-ons preferences">
<!ENTITY cmd.contribute.label "Contribute">
<!ENTITY cmd.contribute.accesskey "C">
<!ENTITY cmd.contribute.tooltip "Contribute to the development of this add-on">
@ -127,7 +127,7 @@
<!ENTITY discover.description2 "Add-ons are applications that let you personalize &brandShortName; with
extra functionality or style. Try a time-saving sidebar, a weather notifier, or a themed look to make &brandShortName;
your own.">
<!ENTITY discover.footer "When you're connected to the internet, this pane will feature
<!ENTITY discover.footer "When youre connected to the internet, this pane will feature
some of the best and most popular add-ons for you to try out.">
<!-- detail view -->
@ -141,11 +141,11 @@
<!ENTITY detail.updateType "Automatic Updates">
<!ENTITY detail.updateDefault.label "Default">
<!ENTITY detail.updateDefault.tooltip "Automatically install updates only if that's the default">
<!ENTITY detail.updateDefault.tooltip "Automatically install updates only if thats the default">
<!ENTITY detail.updateAutomatic.label "On">
<!ENTITY detail.updateAutomatic.tooltip "Automatically install updates">
<!ENTITY detail.updateManual.label "Off">
<!ENTITY detail.updateManual.tooltip "Don't automatically install updates">
<!ENTITY detail.updateManual.tooltip "Dont automatically install updates">
<!ENTITY detail.home "Homepage">
<!ENTITY detail.repository "Add-on Profile">
<!ENTITY detail.size "Size">
@ -155,10 +155,10 @@
<!ENTITY detail.checkForUpdates.tooltip "Check for updates for this add-on">
<!ENTITY detail.showPreferencesWin.label "Options">
<!ENTITY detail.showPreferencesWin.accesskey "O">
<!ENTITY detail.showPreferencesWin.tooltip "Change this add-on's options">
<!ENTITY detail.showPreferencesWin.tooltip "Change this add-ons options">
<!ENTITY detail.showPreferencesUnix.label "Preferences">
<!ENTITY detail.showPreferencesUnix.accesskey "P">
<!ENTITY detail.showPreferencesUnix.tooltip "Change this add-on's preferences">
<!ENTITY detail.showPreferencesUnix.tooltip "Change this add-ons preferences">
<!-- ratings -->
@ -228,7 +228,7 @@
This tab won't be displayed unless an Experiment add-on is installed.
Install https://people.mozilla.org/~gszorc/dummy-experiment-addon.xpi
to cause this tab to appear. -->
<!ENTITY experiment.info.label "What's this? Telemetry may install and run experiments from time to time.">
<!ENTITY experiment.info.label "Whats this? Telemetry may install and run experiments from time to time.">
<!ENTITY experiment.info.learnmore "Learn More">
<!ENTITY experiment.info.learnmore.accesskey "L">
<!ENTITY experiment.info.changetelemetry "Telemetry Settings">

Просмотреть файл

@ -23,7 +23,7 @@
<!ENTITY found.wizard.title "Found Compatible Add-ons">
<!ENTITY found.top.label "Select the add-ons you would like to install:">
<!ENTITY found.disabledXPinstall.label "These updates can't be installed because software installation is currently
<!ENTITY found.disabledXPinstall.label "These updates cant be installed because software installation is currently
disabled. You can change this setting below.">
<!ENTITY found.enableXPInstall.label "Allow websites to install software">
<!ENTITY found.enableXPInstall.accesskey "A">

Просмотреть файл

@ -4,7 +4,7 @@
mismatchCheckNow=Check Now
mismatchCheckNowAccesskey=C
mismatchDontCheck=Don't Check
mismatchDontCheck=Dont Check
mismatchDontCheckAccesskey=D
installButtonText=Install Now
installButtonTextAccesskey=I

Просмотреть файл

@ -7,6 +7,6 @@ protocol.description=This link needs to be opened with an application.
protocol.choices.label=Send to:
protocol.checkbox.label=Remember my choice for %S links.
protocol.checkbox.accesskey=R
protocol.checkbox.extra=This can be changed in %S's preferences.
protocol.checkbox.extra=This can be changed in %Ss preferences.
choose.application.title=Another Application…

Просмотреть файл

@ -7,7 +7,7 @@
<!-- First wizard page -->
<!ENTITY profileCreationExplanation_1.text "&brandShortName; stores information about your settings and preferences in your personal profile.">
<!ENTITY profileCreationExplanation_2.text "If you are sharing this copy of &brandShortName; with other users, you can use profiles to keep each user's information separate. To do this, each user should create his or her own profile.">
<!ENTITY profileCreationExplanation_2.text "If you are sharing this copy of &brandShortName; with other users, you can use profiles to keep each users information separate. To do this, each user should create his or her own profile.">
<!ENTITY profileCreationExplanation_3.text "If you are the only person using this copy of &brandShortName;, you must have at least one profile. If you would like, you can create multiple profiles for yourself to store different sets of settings and preferences. For example, you may want to have separate profiles for business and personal use.">
<!ENTITY profileCreationExplanation_4.text "To begin creating your profile, click Next.">
<!ENTITY profileCreationExplanation_4Mac.text "To begin creating your profile, click Continue.">

Просмотреть файл

@ -14,30 +14,30 @@ restartMessageUnlockerMac=A copy of %S is already open. The running copy of %S w
# Profile manager
# LOCALIZATION NOTE (profileTooltip): First %S is the profile name, second %S is the path to the profile folder.
profileTooltip=Profile: '%S' - Path: '%S'
profileTooltip=Profile: %S - Path: %S
pleaseSelectTitle=Select Profile
pleaseSelect=Please select a profile to begin %S, or create a new profile.
profileLockedTitle=Profile In Use
profileLocked2=%S cannot use the profile "%S" because it is in use.\n\nTo continue, close the running instance of %S or choose a different profile.
profileLocked2=%S cannot use the profile “%S” because it is in use.\n\nTo continue, close the running instance of %S or choose a different profile.
renameProfileTitle=Rename Profile
renameProfilePrompt=Rename the profile "%S" to:
renameProfilePrompt=Rename the profile “%S” to:
profileNameInvalidTitle=Invalid profile name
profileNameInvalid=The profile name "%S" is not allowed.
profileNameInvalid=The profile name “%S” is not allowed.
chooseFolder=Choose Profile Folder
profileNameEmpty=An empty profile name is not allowed.
invalidChar=The character "%S" is not allowed in profile names. Please choose a different name.
invalidChar=The character “%S” is not allowed in profile names. Please choose a different name.
deleteTitle=Delete Profile
deleteProfileConfirm=Deleting a profile will remove the profile from the list of available profiles and cannot be undone.\nYou may also choose to delete the profile data files, including your settings, certificates and other user-related data. This option will delete the folder "%S" and cannot be undone.\nWould you like to delete the profile data files?
deleteProfileConfirm=Deleting a profile will remove the profile from the list of available profiles and cannot be undone.\nYou may also choose to delete the profile data files, including your settings, certificates and other user-related data. This option will delete the folder “%S” and cannot be undone.\nWould you like to delete the profile data files?
deleteFiles=Delete Files
dontDeleteFiles=Don't Delete Files
dontDeleteFiles=Dont Delete Files
profileCreationFailed=Profile couldn't be created. Probably the chosen folder isn't writable.
profileCreationFailed=Profile couldnt be created. Probably the chosen folder isnt writable.
profileCreationFailedTitle=Profile Creation failed
profileExists=A profile with this name already exists. Please choose another name.
profileExistsTitle=Profile Exists

Просмотреть файл

@ -94,7 +94,7 @@
<!ENTITY installed.title "Update Installed">
<!ENTITY installed.intro "The update was successfully installed.">
<!ENTITY whatsnew.label "Read more about what's new…">
<!ENTITY whatsnew.label "Read more about whats new…">
<!ENTITY update.details.label "Details">
<!ENTITY update.installedOn.label "Installed on:">

Просмотреть файл

@ -19,8 +19,8 @@ updateMoreInfoContentDownloading=Getting more details about %S %S…
# %2$S is the update version - provided by the update xml. Ex: version 10.0.5
# %3$S is the build identifier - provided by the update xml. Ex: 20081022033543
updateNightlyName=%1$S %2$S %3$S nightly
incompatAddons_major=Some of your add-ons won't work with %1$S %2$S, and will be disabled. As soon as they are made compatible, %1$S will update and re-enable these add-ons:
incompatAddons_minor=Some of your add-ons won't work with this update, and will be disabled. As soon as they are made compatible, %1$S will update and re-enable these add-ons:
incompatAddons_major=Some of your add-ons wont work with %1$S %2$S, and will be disabled. As soon as they are made compatible, %1$S will update and re-enable these add-ons:
incompatAddons_minor=Some of your add-ons wont work with this update, and will be disabled. As soon as they are made compatible, %1$S will update and re-enable these add-ons:
intro_major=Do you want to upgrade to %1$S %2$S now?
intro_minor=A security and stability update for %1$S is available:

Просмотреть файл

@ -17,7 +17,7 @@ updateLoginButtonAccessKey = U
# LOCALIZATION NOTE (rememberPasswordMsg):
# 1st string is the username for the login, 2nd is the login's hostname.
# Note that long usernames may be truncated.
rememberPasswordMsg = Would you like to remember the password for "%1$S" on %2$S?
rememberPasswordMsg = Would you like to remember the password for “%1$S” on %2$S?
# LOCALIZATION NOTE (rememberPasswordMsgNoUsername):
# String is the login's hostname.
rememberPasswordMsgNoUsername = Would you like to remember the password on %S?
@ -40,11 +40,11 @@ notifyBarRememberPasswordButtonAccessKey = R
passwordChangeTitle = Confirm Password Change
# LOCALIZATION NOTE (updatePasswordMsg):
# String is the username for the login.
updatePasswordMsg = Would you like to update the saved password for "%S"?
updatePasswordMsg = Would you like to update the saved password for “%S”?
updatePasswordMsgNoUser = Would you like to update the saved password?
notifyBarUpdateButtonText = Update Password
notifyBarUpdateButtonAccessKey = U
notifyBarDontChangeButtonText = Don't Change
notifyBarDontChangeButtonText = Dont Change
notifyBarDontChangeButtonAccessKey = D
userSelectText = Please confirm which user you are changing the password for
hidePasswords=Hide Passwords

Просмотреть файл

@ -4,9 +4,9 @@
<!-- LOCALIZATION NOTE (unsupportedPlatform.pre): Mobile only. Flash (the only plugin available on mobile)
is not supported on some devices. Include a trailing space as needed. -->
<!ENTITY unsupportedPlatform.pre "We're very sorry, but &brandShortName; can't play Flash on this device. ">
<!ENTITY unsupportedPlatform.pre "Were very sorry, but &brandShortName; cant play Flash on this device. ">
<!-- LOCALIZATION NOTE (unsupportedPlatform.learnMore): Mobile only. This text is used to link to a SUMO page explaining why Flash is not
supported on this device. Use the unicode ellipsis char, \u2026, or use "..." if \u2026 doesn't suit traditions in your locale. -->
supported on this device. Use the unicode ellipsis char, \u2026, or use "..." if \u2026 doesnt suit traditions in your locale. -->
<!ENTITY unsupportedPlatform.learnMore "Learn More…">
<!-- LOCALIZATION NOTE (unsupportedPlatform.post): Mobile only. Include text here if needed for your locale. -->
<!ENTITY unsupportedPlatform.post "">
@ -35,7 +35,7 @@
<!ENTITY report.failed "Submission failed.">
<!ENTITY report.unavailable "No report available.">
<!ENTITY report.comment "Add a comment (comments are publicly visible)">
<!ENTITY report.pageURL "Include the page's URL">
<!ENTITY report.pageURL "Include the pages URL">
<!ENTITY plugin.file "File">
<!ENTITY plugin.mimeTypes "MIME Types">

Просмотреть файл

@ -3,18 +3,18 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
addEngineConfirmTitle=Add Search Engine
addEngineConfirmation=Add "%S" to the list of engines available in the search bar?\n\nFrom: %S
addEngineConfirmation=Add “%S” to the list of engines available in the search bar?\n\nFrom: %S
addEngineAsCurrentText=Make this the c&urrent search engine
addEngineAddButtonLabel=Add
error_loading_engine_title=Download Error
# LOCALIZATION NOTE (error_loading_engine_msg2): %1$S = brandShortName, %2$S = location
error_loading_engine_msg2=%S could not download the search plugin from:\n%S
error_duplicate_engine_msg=%S could not install the search plugin from "%S" because an engine with the same name already exists.
error_duplicate_engine_msg=%S could not install the search plugin from “%S” because an engine with the same name already exists.
error_invalid_engine_title=Install Error
# LOCALIZATION NOTE (error_invalid_engine_msg): %S = brandShortName
error_invalid_engine_msg=This search engine isn't supported by %S and can't be installed.
error_invalid_engine_msg=This search engine isnt supported by %S and cant be installed.
suggestion_label=Suggestions