зеркало из https://github.com/mozilla/gecko-dev.git
Merge mozilla-central to inbound. r=merge a=merge CLOSED TREE
This commit is contained in:
Коммит
3ab3149a84
|
@ -9,7 +9,7 @@ replace-with = 'vendored-sources'
|
||||||
|
|
||||||
[source."https://github.com/gankro/serde"]
|
[source."https://github.com/gankro/serde"]
|
||||||
git = "https://github.com/gankro/serde"
|
git = "https://github.com/gankro/serde"
|
||||||
branch = "deserialize_from_enums3"
|
branch = "deserialize_from_enums4"
|
||||||
replace-with = "vendored-sources"
|
replace-with = "vendored-sources"
|
||||||
|
|
||||||
[source.vendored-sources]
|
[source.vendored-sources]
|
||||||
|
|
|
@ -1114,11 +1114,6 @@ BrowserGlue.prototype = {
|
||||||
// early, so we use a maximum timeout for it.
|
// early, so we use a maximum timeout for it.
|
||||||
Services.tm.idleDispatchToMainThread(() => {
|
Services.tm.idleDispatchToMainThread(() => {
|
||||||
SafeBrowsing.init();
|
SafeBrowsing.init();
|
||||||
|
|
||||||
// Login reputation depends on the Safe Browsing API.
|
|
||||||
let reputationService = Cc["@mozilla.org/reputationservice/login-reputation-service;1"]
|
|
||||||
.getService(Ci.nsILoginReputationService);
|
|
||||||
reputationService.init();
|
|
||||||
}, 5000);
|
}, 5000);
|
||||||
|
|
||||||
if (AppConstants.MOZ_CRASHREPORTER) {
|
if (AppConstants.MOZ_CRASHREPORTER) {
|
||||||
|
|
|
@ -17,7 +17,7 @@ add_task(async function() {
|
||||||
await withSidebarTree("bookmarks", async function(tree) {
|
await withSidebarTree("bookmarks", async function(tree) {
|
||||||
// Select the new bookmark in the sidebar.
|
// Select the new bookmark in the sidebar.
|
||||||
tree.selectItems([newBookmark.guid]);
|
tree.selectItems([newBookmark.guid]);
|
||||||
ok(tree.controller.isCommandEnabled("placesCmd_new:folder"),
|
Assert.ok(tree.controller.isCommandEnabled("placesCmd_new:folder"),
|
||||||
"'placesCmd_new:folder' on current selected node is enabled");
|
"'placesCmd_new:folder' on current selected node is enabled");
|
||||||
|
|
||||||
// Create a new folder. Since the new bookmark is selected, and new items
|
// Create a new folder. Since the new bookmark is selected, and new items
|
||||||
|
|
|
@ -18,14 +18,14 @@ add_task(async function() {
|
||||||
|
|
||||||
await withBookmarksDialog(true, AddKeywordForSearchField, async function(dialogWin) {
|
await withBookmarksDialog(true, AddKeywordForSearchField, async function(dialogWin) {
|
||||||
let acceptBtn = dialogWin.document.documentElement.getButton("accept");
|
let acceptBtn = dialogWin.document.documentElement.getButton("accept");
|
||||||
ok(acceptBtn.disabled, "Accept button is disabled");
|
Assert.ok(acceptBtn.disabled, "Accept button is disabled");
|
||||||
|
|
||||||
let promiseKeywordNotification = PlacesTestUtils.waitForNotification(
|
let promiseKeywordNotification = PlacesTestUtils.waitForNotification(
|
||||||
"onItemChanged", (itemId, prop, isAnno, val) => prop == "keyword" && val == "kw");
|
"onItemChanged", (itemId, prop, isAnno, val) => prop == "keyword" && val == "kw");
|
||||||
|
|
||||||
fillBookmarkTextField("editBMPanel_keywordField", "kw", dialogWin);
|
fillBookmarkTextField("editBMPanel_keywordField", "kw", dialogWin);
|
||||||
|
|
||||||
ok(!acceptBtn.disabled, "Accept button is enabled");
|
Assert.ok(!acceptBtn.disabled, "Accept button is enabled");
|
||||||
|
|
||||||
// The dialog is instant apply.
|
// The dialog is instant apply.
|
||||||
await promiseKeywordNotification;
|
await promiseKeywordNotification;
|
||||||
|
@ -37,18 +37,18 @@ add_task(async function() {
|
||||||
entry = await PlacesUtils.keywords.fetch("kw");
|
entry = await PlacesUtils.keywords.fetch("kw");
|
||||||
return !!entry;
|
return !!entry;
|
||||||
}, "Unable to find the expected keyword");
|
}, "Unable to find the expected keyword");
|
||||||
is(entry.keyword, "kw", "keyword is correct");
|
Assert.equal(entry.keyword, "kw", "keyword is correct");
|
||||||
is(entry.url.href, TEST_URL, "URL is correct");
|
Assert.equal(entry.url.href, TEST_URL, "URL is correct");
|
||||||
is(entry.postData, "accenti%3D%E0%E8%EC%F2%F9&search%3D%25s", "POST data is correct");
|
Assert.equal(entry.postData, "accenti%3D%E0%E8%EC%F2%F9&search%3D%25s", "POST data is correct");
|
||||||
|
|
||||||
info("Check the charset has been saved");
|
info("Check the charset has been saved");
|
||||||
let charset = await PlacesUtils.getCharsetForURI(NetUtil.newURI(TEST_URL));
|
let charset = await PlacesUtils.getCharsetForURI(NetUtil.newURI(TEST_URL));
|
||||||
is(charset, "windows-1252", "charset is correct");
|
Assert.equal(charset, "windows-1252", "charset is correct");
|
||||||
|
|
||||||
// Now check getShortcutOrURI.
|
// Now check getShortcutOrURI.
|
||||||
let data = await getShortcutOrURIAndPostData("kw test");
|
let data = await getShortcutOrURIAndPostData("kw test");
|
||||||
is(getPostDataString(data.postData), "accenti=\u00E0\u00E8\u00EC\u00F2\u00F9&search=test", "getShortcutOrURI POST data is correct");
|
Assert.equal(getPostDataString(data.postData), "accenti=\u00E0\u00E8\u00EC\u00F2\u00F9&search=test", "getShortcutOrURI POST data is correct");
|
||||||
is(data.url, TEST_URL, "getShortcutOrURI URL is correct");
|
Assert.equal(data.url, TEST_URL, "getShortcutOrURI URL is correct");
|
||||||
}, closeHandler);
|
}, closeHandler);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -4,8 +4,7 @@ add_task(async function() {
|
||||||
info("Add a live bookmark editing its data");
|
info("Add a live bookmark editing its data");
|
||||||
|
|
||||||
await withSidebarTree("bookmarks", async function(tree) {
|
await withSidebarTree("bookmarks", async function(tree) {
|
||||||
let itemId = PlacesUIUtils.leftPaneQueries.UnfiledBookmarks;
|
tree.selectItems([PlacesUtils.bookmarks.unfiledGuid]);
|
||||||
tree.selectItems([itemId]);
|
|
||||||
|
|
||||||
await withBookmarksDialog(
|
await withBookmarksDialog(
|
||||||
true,
|
true,
|
||||||
|
@ -26,13 +25,13 @@ add_task(async function() {
|
||||||
index: PlacesUtils.bookmarks.DEFAULT_INDEX
|
index: PlacesUtils.bookmarks.DEFAULT_INDEX
|
||||||
});
|
});
|
||||||
|
|
||||||
is(bookmark.title, "modified", "folder name has been edited");
|
Assert.equal(bookmark.title, "modified", "folder name has been edited");
|
||||||
|
|
||||||
let livemark = await PlacesUtils.livemarks.getLivemark({
|
let livemark = await PlacesUtils.livemarks.getLivemark({
|
||||||
guid: bookmark.guid
|
guid: bookmark.guid
|
||||||
});
|
});
|
||||||
is(livemark.feedURI.spec, "http://livemark.com/", "livemark has the correct url");
|
Assert.equal(livemark.feedURI.spec, "http://livemark.com/", "livemark has the correct url");
|
||||||
is(livemark.title, "modified", "livemark has the correct title");
|
Assert.equal(livemark.title, "modified", "livemark has the correct title");
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
|
@ -22,7 +22,7 @@ add_task(async function() {
|
||||||
},
|
},
|
||||||
async dialog => {
|
async dialog => {
|
||||||
let acceptBtn = dialog.document.documentElement.getButton("accept");
|
let acceptBtn = dialog.document.documentElement.getButton("accept");
|
||||||
ok(!acceptBtn.disabled, "Accept button is enabled");
|
Assert.ok(!acceptBtn.disabled, "Accept button is enabled");
|
||||||
|
|
||||||
let namepicker = dialog.document.getElementById("editBMPanel_namePicker");
|
let namepicker = dialog.document.getElementById("editBMPanel_namePicker");
|
||||||
Assert.ok(!namepicker.readOnly, "Name field is writable");
|
Assert.ok(!namepicker.readOnly, "Name field is writable");
|
||||||
|
@ -36,7 +36,7 @@ add_task(async function() {
|
||||||
},
|
},
|
||||||
dialog => {
|
dialog => {
|
||||||
let savedItemId = dialog.gEditItemOverlay.itemId;
|
let savedItemId = dialog.gEditItemOverlay.itemId;
|
||||||
ok(savedItemId > 0, "Found the itemId");
|
Assert.ok(savedItemId > 0, "Found the itemId");
|
||||||
return PlacesTestUtils.waitForNotification("onItemRemoved",
|
return PlacesTestUtils.waitForNotification("onItemRemoved",
|
||||||
id => id === savedItemId);
|
id => id === savedItemId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,10 +4,9 @@ add_task(async function() {
|
||||||
info("Bug 479348 - Properties on a root should be read-only.");
|
info("Bug 479348 - Properties on a root should be read-only.");
|
||||||
|
|
||||||
await withSidebarTree("bookmarks", async function(tree) {
|
await withSidebarTree("bookmarks", async function(tree) {
|
||||||
let itemId = PlacesUIUtils.leftPaneQueries.UnfiledBookmarks;
|
tree.selectItems([PlacesUtils.bookmarks.unfiledGuid]);
|
||||||
tree.selectItems([itemId]);
|
Assert.ok(tree.controller.isCommandEnabled("placesCmd_show:info"),
|
||||||
ok(tree.controller.isCommandEnabled("placesCmd_show:info"),
|
"'placesCmd_show:info' on current selected node is enabled");
|
||||||
"'placesCmd_show:info' on current selected node is enabled");
|
|
||||||
|
|
||||||
await withBookmarksDialog(
|
await withBookmarksDialog(
|
||||||
true,
|
true,
|
||||||
|
@ -16,26 +15,24 @@ add_task(async function() {
|
||||||
},
|
},
|
||||||
async function test(dialogWin) {
|
async function test(dialogWin) {
|
||||||
// Check that the dialog is read-only.
|
// Check that the dialog is read-only.
|
||||||
ok(dialogWin.gEditItemOverlay.readOnly, "Dialog is read-only");
|
Assert.ok(dialogWin.gEditItemOverlay.readOnly, "Dialog is read-only");
|
||||||
// Check that accept button is disabled
|
// Check that accept button is disabled
|
||||||
let acceptButton = dialogWin.document.documentElement.getButton("accept");
|
let acceptButton = dialogWin.document.documentElement.getButton("accept");
|
||||||
ok(acceptButton.disabled, "Accept button is disabled");
|
Assert.ok(acceptButton.disabled, "Accept button is disabled");
|
||||||
|
|
||||||
// Check that name picker is read only
|
// Check that name picker is read only
|
||||||
let namepicker = dialogWin.document.getElementById("editBMPanel_namePicker");
|
let namepicker = dialogWin.document.getElementById("editBMPanel_namePicker");
|
||||||
ok(namepicker.readOnly, "Name field is read-only");
|
Assert.ok(namepicker.readOnly, "Name field is read-only");
|
||||||
is(namepicker.value,
|
let bookmark = await PlacesUtils.bookmarks.fetch(PlacesUtils.bookmarks.unfiledGuid);
|
||||||
PlacesUtils.bookmarks.getItemTitle(PlacesUtils.unfiledBookmarksFolderId),
|
Assert.equal(namepicker.value, bookmark.title, "Node title is correct");
|
||||||
"Node title is correct");
|
|
||||||
// Blur the field and ensure root's name has not been changed.
|
// Blur the field and ensure root's name has not been changed.
|
||||||
namepicker.blur();
|
namepicker.blur();
|
||||||
is(namepicker.value,
|
bookmark = await PlacesUtils.bookmarks.fetch(PlacesUtils.bookmarks.unfiledGuid);
|
||||||
PlacesUtils.bookmarks.getItemTitle(PlacesUtils.unfiledBookmarksFolderId),
|
Assert.equal(namepicker.value, bookmark.title, "Root title is correct");
|
||||||
"Root title is correct");
|
|
||||||
// Check the shortcut's title.
|
// Check the shortcut's title.
|
||||||
let bookmark = await PlacesUtils.bookmarks.fetch(tree.selectedNode.bookmarkGuid);
|
info(tree.selectedNode.bookmarkGuid);
|
||||||
is(bookmark.title, "",
|
bookmark = await PlacesUtils.bookmarks.fetch(tree.selectedNode.bookmarkGuid);
|
||||||
"Shortcut title is null");
|
Assert.equal(bookmark.title, "", "Shortcut title is null");
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
|
@ -407,6 +407,8 @@ main {
|
||||||
white-space: nowrap; }
|
white-space: nowrap; }
|
||||||
.top-sites-list .top-site-outer .title.pinned span {
|
.top-sites-list .top-site-outer .title.pinned span {
|
||||||
padding: 0 13px; }
|
padding: 0 13px; }
|
||||||
|
.top-sites-list .top-site-outer .edit-button {
|
||||||
|
background-image: url("../data/content/assets/glyph-edit-16.svg"); }
|
||||||
.top-sites-list .top-site-outer .edit-menu {
|
.top-sites-list .top-site-outer .edit-menu {
|
||||||
background: #FFF;
|
background: #FFF;
|
||||||
border: 1px solid #B1B1B3;
|
border: 1px solid #B1B1B3;
|
||||||
|
|
|
@ -407,6 +407,8 @@ main {
|
||||||
white-space: nowrap; }
|
white-space: nowrap; }
|
||||||
.top-sites-list .top-site-outer .title.pinned span {
|
.top-sites-list .top-site-outer .title.pinned span {
|
||||||
padding: 0 13px; }
|
padding: 0 13px; }
|
||||||
|
.top-sites-list .top-site-outer .edit-button {
|
||||||
|
background-image: url("../data/content/assets/glyph-edit-16.svg"); }
|
||||||
.top-sites-list .top-site-outer .edit-menu {
|
.top-sites-list .top-site-outer .edit-menu {
|
||||||
background: #FFF;
|
background: #FFF;
|
||||||
border: 1px solid #B1B1B3;
|
border: 1px solid #B1B1B3;
|
||||||
|
|
|
@ -407,6 +407,8 @@ main {
|
||||||
white-space: nowrap; }
|
white-space: nowrap; }
|
||||||
.top-sites-list .top-site-outer .title.pinned span {
|
.top-sites-list .top-site-outer .title.pinned span {
|
||||||
padding: 0 13px; }
|
padding: 0 13px; }
|
||||||
|
.top-sites-list .top-site-outer .edit-button {
|
||||||
|
background-image: url("../data/content/assets/glyph-edit-16.svg"); }
|
||||||
.top-sites-list .top-site-outer .edit-menu {
|
.top-sites-list .top-site-outer .edit-menu {
|
||||||
background: #FFF;
|
background: #FFF;
|
||||||
border: 1px solid #B1B1B3;
|
border: 1px solid #B1B1B3;
|
||||||
|
|
|
@ -2513,13 +2513,10 @@ class TopSite_TopSiteLink extends external__React__default.a.PureComponent {
|
||||||
* Helper to determine whether the drop zone should allow a drop. We only allow
|
* Helper to determine whether the drop zone should allow a drop. We only allow
|
||||||
* dropping top sites for now.
|
* dropping top sites for now.
|
||||||
*/
|
*/
|
||||||
_allowDrop(e, index) {
|
_allowDrop(e) {
|
||||||
let draggedIndex = parseInt(e.dataTransfer.getData("text/topsite-index"), 10);
|
return e.dataTransfer.types.includes("text/topsite-index");
|
||||||
if (!isNaN(draggedIndex) && draggedIndex !== index) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onDragEvent(event) {
|
onDragEvent(event) {
|
||||||
switch (event.type) {
|
switch (event.type) {
|
||||||
case "dragstart":
|
case "dragstart":
|
||||||
|
@ -2531,11 +2528,10 @@ class TopSite_TopSiteLink extends external__React__default.a.PureComponent {
|
||||||
case "dragend":
|
case "dragend":
|
||||||
this.props.onDragEvent(event);
|
this.props.onDragEvent(event);
|
||||||
break;
|
break;
|
||||||
case "dragover":
|
|
||||||
case "dragenter":
|
case "dragenter":
|
||||||
case "dragleave":
|
case "dragover":
|
||||||
case "drop":
|
case "drop":
|
||||||
if (this._allowDrop(event, this.props.index)) {
|
if (this._allowDrop(event)) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
this.props.onDragEvent(event, this.props.index);
|
this.props.onDragEvent(event, this.props.index);
|
||||||
}
|
}
|
||||||
|
@ -2585,7 +2581,7 @@ class TopSite_TopSiteLink extends external__React__default.a.PureComponent {
|
||||||
}
|
}
|
||||||
return external__React__default.a.createElement(
|
return external__React__default.a.createElement(
|
||||||
"li",
|
"li",
|
||||||
_extends({ className: topSiteOuterClassName, key: link.guid || link.url, onDrop: this.onDragEvent, onDragOver: this.onDragEvent, onDragEnter: this.onDragEvent, onDragLeave: this.onDragEvent }, draggableProps),
|
_extends({ className: topSiteOuterClassName, onDrop: this.onDragEvent, onDragOver: this.onDragEvent, onDragEnter: this.onDragEvent, onDragLeave: this.onDragEvent }, draggableProps),
|
||||||
external__React__default.a.createElement(
|
external__React__default.a.createElement(
|
||||||
"div",
|
"div",
|
||||||
{ className: "top-site-inner" },
|
{ className: "top-site-inner" },
|
||||||
|
@ -2773,14 +2769,9 @@ class TopSite_TopSitePlaceholder extends external__React__default.a.PureComponen
|
||||||
return external__React__default.a.createElement(
|
return external__React__default.a.createElement(
|
||||||
TopSite_TopSiteLink,
|
TopSite_TopSiteLink,
|
||||||
_extends({ className: "placeholder", isDraggable: false }, this.props),
|
_extends({ className: "placeholder", isDraggable: false }, this.props),
|
||||||
external__React__default.a.createElement(
|
external__React__default.a.createElement("button", { className: "context-menu-button edit-button icon",
|
||||||
"div",
|
title: this.props.intl.formatMessage({ id: "edit_topsites_edit_button" }),
|
||||||
{ className: "edit-menu" },
|
onClick: this.onEditButtonClick })
|
||||||
external__React__default.a.createElement("button", {
|
|
||||||
className: "icon icon-edit",
|
|
||||||
title: this.props.intl.formatMessage({ id: "edit_topsites_edit_button" }),
|
|
||||||
onClick: this.onEditButtonClick })
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2827,19 +2818,20 @@ class TopSite__TopSiteList extends external__React__default.a.PureComponent {
|
||||||
this.setState(this.DEFAULT_STATE);
|
this.setState(this.DEFAULT_STATE);
|
||||||
break;
|
break;
|
||||||
case "dragenter":
|
case "dragenter":
|
||||||
this.setState({ topSitesPreview: this._makeTopSitesPreview(index) });
|
if (index === this.state.draggedIndex) {
|
||||||
break;
|
this.setState({ topSitesPreview: null });
|
||||||
case "dragleave":
|
} else {
|
||||||
this.setState({ topSitesPreview: null });
|
this.setState({ topSitesPreview: this._makeTopSitesPreview(index) });
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case "drop":
|
case "drop":
|
||||||
this.props.dispatch(Actions["actionCreators"].SendToMain({
|
if (index !== this.state.draggedIndex) {
|
||||||
type: Actions["actionTypes"].TOP_SITES_INSERT,
|
this.props.dispatch(Actions["actionCreators"].SendToMain({
|
||||||
data: { site: { url: this.state.draggedSite.url, label: this.state.draggedTitle }, index }
|
type: Actions["actionTypes"].TOP_SITES_INSERT,
|
||||||
}));
|
data: { site: { url: this.state.draggedSite.url, label: this.state.draggedTitle }, index }
|
||||||
this.userEvent("DROP", index);
|
}));
|
||||||
break;
|
this.userEvent("DROP", index);
|
||||||
default:
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2907,10 +2899,15 @@ class TopSite__TopSiteList extends external__React__default.a.PureComponent {
|
||||||
dispatch: props.dispatch,
|
dispatch: props.dispatch,
|
||||||
intl: props.intl
|
intl: props.intl
|
||||||
};
|
};
|
||||||
|
// We assign a key to each placeholder slot. We need it to be independent
|
||||||
|
// of the slot index (i below) so that the keys used stay the same during
|
||||||
|
// drag and drop reordering and the underlying DOM nodes are reused.
|
||||||
|
// This mostly (only?) affects linux so be sure to test on linux before changing.
|
||||||
|
let holeIndex = 0;
|
||||||
for (let i = 0, l = props.TopSitesCount; i < l; i++) {
|
for (let i = 0, l = props.TopSitesCount; i < l; i++) {
|
||||||
const link = topSites[i];
|
const link = topSites[i];
|
||||||
const slotProps = {
|
const slotProps = {
|
||||||
key: i,
|
key: link ? link.url : holeIndex++,
|
||||||
index: i
|
index: i
|
||||||
};
|
};
|
||||||
topSitesUI.push(!link ? external__React__default.a.createElement(TopSite_TopSitePlaceholder, _extends({}, slotProps, commonProps)) : external__React__default.a.createElement(TopSite_TopSite, _extends({
|
topSitesUI.push(!link ? external__React__default.a.createElement(TopSite_TopSitePlaceholder, _extends({}, slotProps, commonProps)) : external__React__default.a.createElement(TopSite_TopSite, _extends({
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<em:type>2</em:type>
|
<em:type>2</em:type>
|
||||||
<em:bootstrap>true</em:bootstrap>
|
<em:bootstrap>true</em:bootstrap>
|
||||||
<em:unpack>false</em:unpack>
|
<em:unpack>false</em:unpack>
|
||||||
<em:version>2017.12.22.0055-8fe1055e</em:version>
|
<em:version>2018.01.05.1410-84fd2871</em:version>
|
||||||
<em:name>Activity Stream</em:name>
|
<em:name>Activity Stream</em:name>
|
||||||
<em:description>A rich visual history feed and a reimagined home page make it easier than ever to find exactly what you're looking for in Firefox.</em:description>
|
<em:description>A rich visual history feed and a reimagined home page make it easier than ever to find exactly what you're looking for in Firefox.</em:description>
|
||||||
<em:multiprocessCompatible>true</em:multiprocessCompatible>
|
<em:multiprocessCompatible>true</em:multiprocessCompatible>
|
||||||
|
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -38,9 +38,9 @@ window.gActivityStreamStrings = {
|
||||||
"section_info_option": "Məlumat",
|
"section_info_option": "Məlumat",
|
||||||
"section_info_send_feedback": "Əks-əlaqə göndər",
|
"section_info_send_feedback": "Əks-əlaqə göndər",
|
||||||
"section_info_privacy_notice": "Məxfilik Bildirişi",
|
"section_info_privacy_notice": "Məxfilik Bildirişi",
|
||||||
"section_disclaimer_topstories": "The most interesting stories on the web, selected based on what you read. From Pocket, now part of Mozilla.",
|
"section_disclaimer_topstories": "Nələr oxuduğunuza əsasən seçilmiş internetin ən maraqlı hekayələri. Pocket-dən, artıq Mozillanın bir hissəsi.",
|
||||||
"section_disclaimer_topstories_linktext": "Learn how it works.",
|
"section_disclaimer_topstories_linktext": "Necə işlədiyini öyrənin.",
|
||||||
"section_disclaimer_topstories_buttontext": "Okay, got it",
|
"section_disclaimer_topstories_buttontext": "Tamam, başa düşdüm",
|
||||||
"welcome_title": "Yeni vərəqə xoş gəldiniz",
|
"welcome_title": "Yeni vərəqə xoş gəldiniz",
|
||||||
"welcome_body": "Firefox bu səhifədə ən uyğun əlfəcin, məqalə, video və son ziyarət etdiyiniz səhifələri göstərərək onları rahat tapmağınıza kömək edəcək.",
|
"welcome_body": "Firefox bu səhifədə ən uyğun əlfəcin, məqalə, video və son ziyarət etdiyiniz səhifələri göstərərək onları rahat tapmağınıza kömək edəcək.",
|
||||||
"welcome_label": "Seçilmişləriniz təyin edilir",
|
"welcome_label": "Seçilmişləriniz təyin edilir",
|
||||||
|
@ -67,7 +67,7 @@ window.gActivityStreamStrings = {
|
||||||
"settings_pane_snippets_header": "Hissələr",
|
"settings_pane_snippets_header": "Hissələr",
|
||||||
"settings_pane_snippets_body": "Mozilladan Firefox, internet mədəniyyəti və digər yeniliklər haqqında qısa bildirişlər oxuyun.",
|
"settings_pane_snippets_body": "Mozilladan Firefox, internet mədəniyyəti və digər yeniliklər haqqında qısa bildirişlər oxuyun.",
|
||||||
"settings_pane_done_button": "Oldu",
|
"settings_pane_done_button": "Oldu",
|
||||||
"settings_pane_topstories_options_sponsored": "Show Sponsored Stories",
|
"settings_pane_topstories_options_sponsored": "Sponsor Hekayələrini Göstər",
|
||||||
"edit_topsites_button_text": "Redaktə et",
|
"edit_topsites_button_text": "Redaktə et",
|
||||||
"edit_topsites_button_label": "Qabaqcıl Saytlar bölümünüzü fərdiləşdirin",
|
"edit_topsites_button_label": "Qabaqcıl Saytlar bölümünüzü fərdiləşdirin",
|
||||||
"edit_topsites_showmore_button": "Daha çox göstər",
|
"edit_topsites_showmore_button": "Daha çox göstər",
|
||||||
|
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -45,7 +45,7 @@ window.gActivityStreamStrings = {
|
||||||
"welcome_body": "Firefox will use this space to show your most relevant bookmarks, articles, videos, and pages you’ve recently visited, so you can get back to them easily.",
|
"welcome_body": "Firefox will use this space to show your most relevant bookmarks, articles, videos, and pages you’ve recently visited, so you can get back to them easily.",
|
||||||
"welcome_label": "Heɓtinde Jalbine maa",
|
"welcome_label": "Heɓtinde Jalbine maa",
|
||||||
"time_label_less_than_minute": "<1m",
|
"time_label_less_than_minute": "<1m",
|
||||||
"time_label_minute": "{number}m",
|
"time_label_minute": "{number} m",
|
||||||
"time_label_hour": "{number}h",
|
"time_label_hour": "{number}h",
|
||||||
"time_label_day": "{number}d",
|
"time_label_day": "{number}d",
|
||||||
"settings_pane_button_label": "Customize your New Tab page",
|
"settings_pane_button_label": "Customize your New Tab page",
|
||||||
|
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -38,9 +38,9 @@ window.gActivityStreamStrings = {
|
||||||
"section_info_option": "जानकारी",
|
"section_info_option": "जानकारी",
|
||||||
"section_info_send_feedback": "प्रतिक्रिया पठाउनुहोस्",
|
"section_info_send_feedback": "प्रतिक्रिया पठाउनुहोस्",
|
||||||
"section_info_privacy_notice": "गोपनीयता नीति",
|
"section_info_privacy_notice": "गोपनीयता नीति",
|
||||||
"section_disclaimer_topstories": "The most interesting stories on the web, selected based on what you read. From Pocket, now part of Mozilla.",
|
"section_disclaimer_topstories": "वेबमा सबैभन्दा रोचक कथाहरू, तपाईंले पढ्नु भएको आधारमा Pocket बाट चयन गर्नुभएको छ।",
|
||||||
"section_disclaimer_topstories_linktext": "Learn how it works.",
|
"section_disclaimer_topstories_linktext": "कसरी काम गर्छ हेर्नुहोस्।",
|
||||||
"section_disclaimer_topstories_buttontext": "Okay, got it",
|
"section_disclaimer_topstories_buttontext": "बुझेँ",
|
||||||
"welcome_title": "नयाँ ट्याबमा स्वागत छ",
|
"welcome_title": "नयाँ ट्याबमा स्वागत छ",
|
||||||
"welcome_body": "Firefoxले यस ठाउँको प्रयोग तपाईंको सबैभन्दा सान्दर्भिक पुस्तकचिनो, लेखहरू, भिडियोहरू, र तपाईंले हालै भ्रमण गर्नु भएको पृष्ठहरूलाई राख्न प्रयोग गर्दछ, जसले गर्दा तपाइँ तिनीहरूलाई सजिलै भेटाउन सक्नुहुनेछ ।",
|
"welcome_body": "Firefoxले यस ठाउँको प्रयोग तपाईंको सबैभन्दा सान्दर्भिक पुस्तकचिनो, लेखहरू, भिडियोहरू, र तपाईंले हालै भ्रमण गर्नु भएको पृष्ठहरूलाई राख्न प्रयोग गर्दछ, जसले गर्दा तपाइँ तिनीहरूलाई सजिलै भेटाउन सक्नुहुनेछ ।",
|
||||||
"welcome_label": "तपाईँका विशेषताहरु पत्ता लगाउँदै",
|
"welcome_label": "तपाईँका विशेषताहरु पत्ता लगाउँदै",
|
||||||
|
@ -67,7 +67,7 @@ window.gActivityStreamStrings = {
|
||||||
"settings_pane_snippets_header": "स्निप्पेटस्",
|
"settings_pane_snippets_header": "स्निप्पेटस्",
|
||||||
"settings_pane_snippets_body": "Read short and sweet updates from Mozilla about Firefox, internet culture, and the occasional random meme.",
|
"settings_pane_snippets_body": "Read short and sweet updates from Mozilla about Firefox, internet culture, and the occasional random meme.",
|
||||||
"settings_pane_done_button": "सम्पन्न भयो",
|
"settings_pane_done_button": "सम्पन्न भयो",
|
||||||
"settings_pane_topstories_options_sponsored": "Show Sponsored Stories",
|
"settings_pane_topstories_options_sponsored": "प्रायोजित गरिएको कथाहरू देखाउनुहोस्",
|
||||||
"edit_topsites_button_text": "सम्पादन गर्नुहोस्",
|
"edit_topsites_button_text": "सम्पादन गर्नुहोस्",
|
||||||
"edit_topsites_button_label": "तपाईंको शीर्ष साइट खण्ड अनुकूलन गर्नुहोस्",
|
"edit_topsites_button_label": "तपाईंको शीर्ष साइट खण्ड अनुकूलन गर्नुहोस्",
|
||||||
"edit_topsites_showmore_button": "थप देखाउनुहोस्",
|
"edit_topsites_showmore_button": "थप देखाउनुहोस्",
|
||||||
|
@ -80,15 +80,15 @@ window.gActivityStreamStrings = {
|
||||||
"edit_topsites_add_button": "थप्नुहोस्",
|
"edit_topsites_add_button": "थप्नुहोस्",
|
||||||
"topsites_form_add_header": "नयाँ शीर्ष साइट",
|
"topsites_form_add_header": "नयाँ शीर्ष साइट",
|
||||||
"topsites_form_edit_header": "शीर्ष साइट सम्पादन गर्नुहोस्",
|
"topsites_form_edit_header": "शीर्ष साइट सम्पादन गर्नुहोस्",
|
||||||
"topsites_form_title_placeholder": "Enter a title",
|
"topsites_form_title_placeholder": "शीर्षक प्रविष्ट गर्नुहोस्",
|
||||||
"topsites_form_url_placeholder": "Type or paste a URL",
|
"topsites_form_url_placeholder": "URL लेख्नुहोस् ",
|
||||||
"topsites_form_add_button": "थप्नुहोस्",
|
"topsites_form_add_button": "थप्नुहोस्",
|
||||||
"topsites_form_save_button": "सङ्ग्रह गर्नुहोस्",
|
"topsites_form_save_button": "सङ्ग्रह गर्नुहोस्",
|
||||||
"topsites_form_cancel_button": "रद्द गर्नुहोस्",
|
"topsites_form_cancel_button": "रद्द गर्नुहोस्",
|
||||||
"topsites_form_url_validation": "Valid URL required",
|
"topsites_form_url_validation": "मान्य URL चाहिन्छ",
|
||||||
"pocket_read_more": "Popular Topics:",
|
"pocket_read_more": "लोकप्रिय शीर्षकहरू:",
|
||||||
"pocket_read_even_more": "View More Stories",
|
"pocket_read_even_more": "अरू कथा देखाउनुहोस्",
|
||||||
"pocket_feedback_header": "The best of the web, curated by over 25 million people.",
|
"pocket_feedback_header": "वेबको सर्वोत्तम, 25 मिलियन भन्दा बढी व्यक्तिहरू द्वारा लिपिबद्ध।",
|
||||||
"pocket_description": "Discover high-quality content you might otherwise miss, with help from Pocket, now part of Mozilla.",
|
"pocket_description": "Discover high-quality content you might otherwise miss, with help from Pocket, now part of Mozilla.",
|
||||||
"highlights_empty_state": "Start browsing, and we’ll show some of the great articles, videos, and other pages you’ve recently visited or bookmarked here.",
|
"highlights_empty_state": "Start browsing, and we’ll show some of the great articles, videos, and other pages you’ve recently visited or bookmarked here.",
|
||||||
"topstories_empty_state": "You’ve caught up. Check back later for more top stories from {provider}. Can’t wait? Select a popular topic to find more great stories from around the web.",
|
"topstories_empty_state": "You’ve caught up. Check back later for more top stories from {provider}. Can’t wait? Select a popular topic to find more great stories from around the web.",
|
||||||
|
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -52,7 +52,7 @@ window.gActivityStreamStrings = {
|
||||||
"settings_pane_header": "Preferências de novo separador",
|
"settings_pane_header": "Preferências de novo separador",
|
||||||
"settings_pane_body2": "Escolha o que vê nesta página.",
|
"settings_pane_body2": "Escolha o que vê nesta página.",
|
||||||
"settings_pane_search_header": "Pesquisa",
|
"settings_pane_search_header": "Pesquisa",
|
||||||
"settings_pane_search_body": "Pesquise na Web a partir do seu 'Novo separador'.",
|
"settings_pane_search_body": "Pesquise na Web a partir do seu novo separador.",
|
||||||
"settings_pane_topsites_header": "Sites mais visitados",
|
"settings_pane_topsites_header": "Sites mais visitados",
|
||||||
"settings_pane_topsites_body": "Aceda aos websites que mais visita.",
|
"settings_pane_topsites_body": "Aceda aos websites que mais visita.",
|
||||||
"settings_pane_topsites_options_showmore": "Mostrar duas linhas",
|
"settings_pane_topsites_options_showmore": "Mostrar duas linhas",
|
||||||
|
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -38,9 +38,9 @@ window.gActivityStreamStrings = {
|
||||||
"section_info_option": "సమాచారం",
|
"section_info_option": "సమాచారం",
|
||||||
"section_info_send_feedback": "అభిప్రాయాన్ని పంపండి",
|
"section_info_send_feedback": "అభిప్రాయాన్ని పంపండి",
|
||||||
"section_info_privacy_notice": "గోప్యతా విధానం",
|
"section_info_privacy_notice": "గోప్యతా విధానం",
|
||||||
"section_disclaimer_topstories": "The most interesting stories on the web, selected based on what you read. From Pocket, now part of Mozilla.",
|
"section_disclaimer_topstories": "జాలంలో అత్యంత ఆసక్తికరమైన కథనాలు, మీరు చదివేవాటి ఆధారంగా ఎంచుకున్నవి. ఇప్పుడు Mozillaలో భాగమైన Pocket నుండి.",
|
||||||
"section_disclaimer_topstories_linktext": "Learn how it works.",
|
"section_disclaimer_topstories_linktext": "ఇది ఎలా పనిచేస్తుందో తెలుసుకోండి.",
|
||||||
"section_disclaimer_topstories_buttontext": "Okay, got it",
|
"section_disclaimer_topstories_buttontext": "సరే, అర్థమయ్యింది",
|
||||||
"welcome_title": "కొత్త ట్యాబుకు స్వాగతం",
|
"welcome_title": "కొత్త ట్యాబుకు స్వాగతం",
|
||||||
"welcome_body": "సముచితమైన మీ ఇష్టాంశాలను, వ్యాసాలను, వీడియోలను, ఇంకా మీరు ఇటీవలే చూసిన పేజీలను మీకు తేలిగ్గా అందుబాటులో ఉంచేందుకు Firefox ఈ జాగాని వాడుకుంటుంది.",
|
"welcome_body": "సముచితమైన మీ ఇష్టాంశాలను, వ్యాసాలను, వీడియోలను, ఇంకా మీరు ఇటీవలే చూసిన పేజీలను మీకు తేలిగ్గా అందుబాటులో ఉంచేందుకు Firefox ఈ జాగాని వాడుకుంటుంది.",
|
||||||
"welcome_label": "మీ ముఖ్యాంశాలను గుర్తిస్తున్నది",
|
"welcome_label": "మీ ముఖ్యాంశాలను గుర్తిస్తున్నది",
|
||||||
|
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче