Bug 1502461 - Fix recommendation counts, recommendation alignment and bug fixes to Activity Stream r=k88hudson

Differential Revision: https://phabricator.services.mozilla.com/D9949

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Ed Lee 2018-10-27 01:31:08 +00:00
Родитель f3cf4b21e4
Коммит d302d682b3
310 изменённых файлов: 4678 добавлений и 4523 удалений

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

@ -8,3 +8,4 @@ vendor/
data/
bin/prerender.js
bin/prerender.js.map
aboutlibrary/content/

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

@ -16,3 +16,7 @@ npm-debug.log
# also ignores ping centre tests
ping-centre/
# ignore things from about:library for now
aboutlibrary/
content-src/aboutlibrary/

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

@ -6,6 +6,7 @@ export class ASRouterAdmin extends React.PureComponent {
super(props);
this.onMessage = this.onMessage.bind(this);
this.handleEnabledToggle = this.handleEnabledToggle.bind(this);
this.handleUserPrefToggle = this.handleUserPrefToggle.bind(this);
this.onChangeMessageFilter = this.onChangeMessageFilter.bind(this);
this.findOtherBundledMessagesOfSameTemplate = this.findOtherBundledMessagesOfSameTemplate.bind(this);
this.state = {messageFilter: "all"};
@ -110,16 +111,38 @@ export class ASRouterAdmin extends React.PureComponent {
renderTableHead() {
return (<thead>
<tr className="message-item">
<td>id</td>
<td>enabled</td>
<td>source</td>
<td>last updated</td>
<td className="min" />
<td className="min">Provider ID</td>
<td>Source</td>
<td>Last Updated</td>
</tr>
</thead>);
}
handleEnabledToggle(event) {
const action = {type: event.target.checked ? "ENABLE_PROVIDER" : "DISABLE_PROVIDER", data: event.target.name};
const provider = this.state.providerPrefs.find(p => p.id === event.target.dataset.provider);
const userPrefInfo = this.state.userPrefs;
const isUserEnabled = provider.id in userPrefInfo ? userPrefInfo[provider.id] : true;
const isSystemEnabled = provider.enabled;
const isEnabling = event.target.checked;
if (isEnabling) {
if (!isUserEnabled) {
ASRouterUtils.sendMessage({type: "SET_PROVIDER_USER_PREF", data: {id: provider.id, value: true}});
}
if (!isSystemEnabled) {
ASRouterUtils.sendMessage({type: "ENABLE_PROVIDER", data: provider.id});
}
} else {
ASRouterUtils.sendMessage({type: "DISABLE_PROVIDER", data: provider.id});
}
this.setState({messageFilter: "all"});
}
handleUserPrefToggle(event) {
const action = {type: "SET_PROVIDER_USER_PREF", data: {id: event.target.dataset.provider, value: event.target.checked}};
ASRouterUtils.sendMessage(action);
this.setState({messageFilter: "all"});
}
@ -127,20 +150,42 @@ export class ASRouterAdmin extends React.PureComponent {
renderProviders() {
const providersConfig = this.state.providerPrefs;
const providerInfo = this.state.providers;
const userPrefInfo = this.state.userPrefs;
return (<table>{this.renderTableHead()}<tbody>
{providersConfig.map((provider, i) => {
const isTestProvider = provider.id === "snippets_local_testing";
const info = providerInfo.find(p => p.id === provider.id) || {};
let label = "(local)";
const isUserEnabled = provider.id in userPrefInfo ? userPrefInfo[provider.id] : true;
const isSystemEnabled = (isTestProvider || provider.enabled);
let label = "local";
if (provider.type === "remote") {
label = <a target="_blank" href={info.url}>{info.url}</a>;
let displayUrl = "";
try {
displayUrl = `(${new URL(info.url).hostname})`;
} catch (err) {}
label = (<span>endpoint <a target="_blank" href={info.url}>{displayUrl}</a></span>);
} else if (provider.type === "remote-settings") {
label = `${provider.bucket} (Remote Settings)`;
label = `remote settings (${provider.bucket})`;
}
let reasonsDisabled = [];
if (!isSystemEnabled) {
reasonsDisabled.push("system pref");
}
if (!isUserEnabled) {
reasonsDisabled.push("user pref");
}
if (reasonsDisabled.length) {
label = `disabled via ${reasonsDisabled.join(", ")}`;
}
return (<tr className="message-item" key={i}>
<td>{isTestProvider ? <input type="checkbox" disabled={true} readOnly={true} checked={true} /> : <input type="checkbox" data-provider={provider.id} checked={isUserEnabled && isSystemEnabled} onChange={this.handleEnabledToggle} />}</td>
<td>{provider.id}</td>
<td>{isTestProvider ? null : <input type="checkbox" name={provider.id} checked={provider.enabled} onChange={this.handleEnabledToggle} />}</td>
<td>{label}</td>
<td><span className={`sourceLabel${(isUserEnabled && isSystemEnabled) ? "" : " isDisabled"}`}>{label}</span></td>
<td style={{whiteSpace: "nowrap"}}>{info.lastUpdated ? new Date(info.lastUpdated).toLocaleString() : ""}</td>
</tr>);
})}
@ -152,8 +197,8 @@ export class ASRouterAdmin extends React.PureComponent {
<h1>AS Router Admin</h1>
<h2>Targeting Utilities</h2>
<button className="button" onClick={this.expireCache}>Expire Cache</button> (This expires the cache in ASR Targeting for bookmarks and top sites)
<h2>Message Providers</h2>
<button className="button" onClick={this.resetPref}>Restore defaults</button>
<h2>Message Providers <button title="Restore all provider settings that ship with Firefox" className="button" onClick={this.resetPref}>Restore default prefs</button></h2>
{this.state.providers ? this.renderProviders() : null}
<h2>Messages</h2>
{this.renderMessageFilter()}

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

@ -14,11 +14,29 @@
font-size: 32px;
}
h2 .button {
font-size: 14px;
padding: 6px 12px;
margin-inline-start: 5px;
margin-bottom: 0;
}
table {
border-collapse: collapse;
width: 100%;
}
.sourceLabel {
background: $grey-20;
padding: 2px 5px;
border-radius: 3px;
&.isDisabled {
background: $email-input-invalid;
color: $red-60;
}
}
.message-item {
&:first-child td {
border-top: 1px solid $border-color;
@ -29,6 +47,13 @@
border-bottom: 1px solid $border-color;
padding: 8px;
&.min {
width: 1%;
white-space: nowrap;
}
&:first-child {
border-left: 1px solid $border-color;
}

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

@ -1,13 +1,7 @@
.more-recommendations {
@media (min-width: $break-point-large) {
// This is floating to accomodate a very large number of topics and/or
// very long topic names due to l10n.
float: right;
&:dir(rtl) {
float: left;
}
}
display: flex;
align-items: center;
white-space: nowrap;
&::after {
background: url('#{$image-path}topic-show-more-12.svg') no-repeat center center;

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

@ -244,10 +244,14 @@ export class Section extends React.PureComponent {
</div>}
{id === "topstories" &&
<div className="top-stories-bottom-container">
{shouldShowTopics && <Topics topics={this.props.topics} />}
{shouldShowPocketCta && <PocketLoggedInCta />}
{read_more_endpoint &&
<MoreRecommendations read_more_endpoint={read_more_endpoint} />}
<div>
{shouldShowTopics && <Topics topics={this.props.topics} />}
{shouldShowPocketCta && <PocketLoggedInCta />}
</div>
<div>
{read_more_endpoint &&
<MoreRecommendations read_more_endpoint={read_more_endpoint} />}
</div>
</div>}
</CollapsibleSection>
</ComponentPerfTimer>);

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

@ -72,6 +72,8 @@
font-size: 12px;
line-height: 1.6;
margin-top: $topic-margin-top;
display: flex;
justify-content: space-between;
a {
color: var(--newtab-link-secondary-color);
@ -87,14 +89,6 @@
line-height: 16px;
height: 16px;
}
// This is a clearfix to for the more-recommendations link which is floating and causes
// some jank when we set overflow:hidden for the animation.
&::after {
clear: both;
content: '';
display: table;
}
}
@media (min-width: $break-point-widest) {

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

@ -3,8 +3,8 @@
}
@mixin textbox-focus($color) {
--newtab-textbox-focus-color: $color;
--newtab-textbox-focus-boxshadow: textbox-shadow($color);
--newtab-textbox-focus-color: #{$color};
--newtab-textbox-focus-boxshadow: #{textbox-shadow($color)};
}
// scss variables related to the theme.
@ -21,118 +21,118 @@ $shadow-secondary: 0 1px 4px 0 $grey-90-20;
// Default theme
body {
// General styles
--newtab-background-color: $grey-10;
--newtab-border-primary-color: $grey-40;
--newtab-border-secondary-color: $grey-30;
--newtab-button-primary-color: $blue-60;
--newtab-background-color: #{$grey-10};
--newtab-border-primary-color: #{$grey-40};
--newtab-border-secondary-color: #{$grey-30};
--newtab-button-primary-color: #{$blue-60};
--newtab-button-secondary-color: inherit;
--newtab-element-active-color: $grey-30-60;
--newtab-element-hover-color: $grey-20;
--newtab-icon-primary-color: $grey-90-80;
--newtab-icon-secondary-color: $grey-90-60;
--newtab-icon-tertiary-color: $grey-30;
--newtab-inner-box-shadow-color: $black-10;
--newtab-link-primary-color: $blue-60;
--newtab-link-secondary-color: $teal-70;
--newtab-text-conditional-color: $grey-60;
--newtab-text-primary-color: $grey-90;
--newtab-text-secondary-color: $grey-50;
--newtab-textbox-background-color: $white;
--newtab-textbox-border: $grey-90-20;
--newtab-element-active-color: #{$grey-30-60};
--newtab-element-hover-color: #{$grey-20};
--newtab-icon-primary-color: #{$grey-90-80};
--newtab-icon-secondary-color: #{$grey-90-60};
--newtab-icon-tertiary-color: #{$grey-30};
--newtab-inner-box-shadow-color: #{$black-10};
--newtab-link-primary-color: #{$blue-60};
--newtab-link-secondary-color: #{$teal-70};
--newtab-text-conditional-color: #{$grey-60};
--newtab-text-primary-color: #{$grey-90};
--newtab-text-secondary-color: #{$grey-50};
--newtab-textbox-background-color: #{$white};
--newtab-textbox-border: #{$grey-90-20};
@include textbox-focus($blue-60); // sass-lint:disable-line mixins-before-declarations
// Context menu
--newtab-contextmenu-background-color: $grey-10;
--newtab-contextmenu-button-color: $white;
--newtab-contextmenu-background-color: #{$grey-10};
--newtab-contextmenu-button-color: #{$white};
// Modal + overlay
--newtab-modal-color: $white;
--newtab-overlay-color: $grey-20-80;
--newtab-modal-color: #{$white};
--newtab-overlay-color: #{$grey-20-80};
// Sections
--newtab-section-header-text-color: $grey-50;
--newtab-section-navigation-text-color: $grey-50;
--newtab-section-active-contextmenu-color: $grey-90;
--newtab-section-header-text-color: #{$grey-50};
--newtab-section-navigation-text-color: #{$grey-50};
--newtab-section-active-contextmenu-color: #{$grey-90};
// Search
--newtab-search-border-color: transparent;
--newtab-search-dropdown-color: $white;
--newtab-search-dropdown-header-color: $grey-10;
--newtab-search-header-background-color: $grey-10-95;
--newtab-search-icon-color: $grey-90-40;
--newtab-search-wordmark-color: $firefox-wordmark-default-color;
--newtab-search-dropdown-color: #{$white};
--newtab-search-dropdown-header-color: #{$grey-10};
--newtab-search-header-background-color: #{$grey-10-95};
--newtab-search-icon-color: #{$grey-90-40};
--newtab-search-wordmark-color: #{$firefox-wordmark-default-color};
// Top Sites
--newtab-topsites-background-color: $white;
--newtab-topsites-icon-shadow: inset $inner-box-shadow;
--newtab-topsites-background-color: #{$white};
--newtab-topsites-icon-shadow: inset #{$inner-box-shadow};
--newtab-topsites-label-color: inherit;
// Cards
--newtab-card-active-outline-color: $grey-30;
--newtab-card-background-color: $white;
--newtab-card-hairline-color: $black-10;
--newtab-card-shadow: 0 1px 4px 0 $grey-90-10;
--newtab-card-active-outline-color: #{$grey-30};
--newtab-card-background-color: #{$white};
--newtab-card-hairline-color: #{$black-10};
--newtab-card-shadow: 0 1px 4px 0 #{$grey-90-10};
// Snippets
--newtab-snippets-background-color: $white;
--newtab-snippets-background-color: #{$white};
--newtab-snippets-hairline-color: transparent;
&[lwt-newtab-brighttext] {
// General styles
--newtab-background-color: $grey-80;
--newtab-border-primary-color: $grey-10-80;
--newtab-border-secondary-color: $grey-10-10;
--newtab-button-primary-color: $blue-60;
--newtab-button-secondary-color: $grey-70;
--newtab-element-active-color: $grey-10-20;
--newtab-element-hover-color: $grey-10-10;
--newtab-icon-primary-color: $grey-10-80;
--newtab-icon-secondary-color: $grey-10-40;
--newtab-icon-tertiary-color: $grey-10-40;
--newtab-inner-box-shadow-color: $grey-10-20;
--newtab-link-primary-color: $blue-40;
--newtab-link-secondary-color: $pocket-teal;
--newtab-text-conditional-color: $grey-10;
--newtab-text-primary-color: $grey-10;
--newtab-text-secondary-color: $grey-10-80;
--newtab-textbox-background-color: $grey-70;
--newtab-textbox-border: $grey-10-20;
--newtab-background-color: #{$grey-80};
--newtab-border-primary-color: #{$grey-10-80};
--newtab-border-secondary-color: #{$grey-10-10};
--newtab-button-primary-color: #{$blue-60};
--newtab-button-secondary-color: #{$grey-70};
--newtab-element-active-color: #{$grey-10-20};
--newtab-element-hover-color: #{$grey-10-10};
--newtab-icon-primary-color: #{$grey-10-80};
--newtab-icon-secondary-color: #{$grey-10-40};
--newtab-icon-tertiary-color: #{$grey-10-40};
--newtab-inner-box-shadow-color: #{$grey-10-20};
--newtab-link-primary-color: #{$blue-40};
--newtab-link-secondary-color: #{$pocket-teal};
--newtab-text-conditional-color: #{$grey-10};
--newtab-text-primary-color: #{$grey-10};
--newtab-text-secondary-color: #{$grey-10-80};
--newtab-textbox-background-color: #{$grey-70};
--newtab-textbox-border: #{$grey-10-20};
@include textbox-focus($blue-40); // sass-lint:disable-line mixins-before-declarations
// Context menu
--newtab-contextmenu-background-color: $grey-60;
--newtab-contextmenu-button-color: $grey-80;
--newtab-contextmenu-background-color: #{$grey-60};
--newtab-contextmenu-button-color: #{$grey-80};
// Modal + overlay
--newtab-modal-color: $grey-80;
--newtab-overlay-color: $grey-90-80;
--newtab-modal-color: #{$grey-80};
--newtab-overlay-color: #{$grey-90-80};
// Sections
--newtab-section-header-text-color: $grey-10-80;
--newtab-section-navigation-text-color: $grey-10-80;
--newtab-section-active-contextmenu-color: $white;
--newtab-section-header-text-color: #{$grey-10-80};
--newtab-section-navigation-text-color: #{$grey-10-80};
--newtab-section-active-contextmenu-color: #{$white};
// Search
--newtab-search-border-color: $grey-10-20;
--newtab-search-dropdown-color: $grey-70;
--newtab-search-dropdown-header-color: $grey-60;
--newtab-search-header-background-color: $grey-80-95;
--newtab-search-icon-color: $grey-10-60;
--newtab-search-wordmark-color: $firefox-wordmark-darktheme-color;
--newtab-search-border-color: #{$grey-10-20};
--newtab-search-dropdown-color: #{$grey-70};
--newtab-search-dropdown-header-color: #{$grey-60};
--newtab-search-header-background-color: #{$grey-80-95};
--newtab-search-icon-color: #{$grey-10-60};
--newtab-search-wordmark-color: #{$firefox-wordmark-darktheme-color};
// Top Sites
--newtab-topsites-background-color: $grey-70;
--newtab-topsites-background-color: #{$grey-70};
--newtab-topsites-icon-shadow: none;
--newtab-topsites-label-color: $grey-10-80;
--newtab-topsites-label-color: #{$grey-10-80};
// Cards
--newtab-card-active-outline-color: $grey-60;
--newtab-card-background-color: $grey-70;
--newtab-card-hairline-color: $grey-10-10;
--newtab-card-shadow: 0 1px 8px 0 $grey-90-20;
--newtab-card-active-outline-color: #{$grey-60};
--newtab-card-background-color: #{$grey-70};
--newtab-card-hairline-color: #{$grey-10-10};
--newtab-card-shadow: 0 1px 8px 0 #{$grey-90-20};
// Snippets
--newtab-snippets-background-color: $grey-70;
--newtab-snippets-hairline-color: $white-10;
--newtab-snippets-background-color: #{$grey-70};
--newtab-snippets-hairline-color: #{$white-10};
}
}

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

@ -914,7 +914,9 @@ main {
color: var(--newtab-section-navigation-text-color);
font-size: 12px;
line-height: 1.6;
margin-top: 12px; }
margin-top: 12px;
display: flex;
justify-content: space-between; }
.top-stories-bottom-container a {
color: var(--newtab-link-secondary-color);
font-weight: bold; }
@ -925,10 +927,6 @@ main {
.top-stories-bottom-container {
line-height: 16px;
height: 16px; } }
.top-stories-bottom-container::after {
clear: both;
content: '';
display: table; }
@media (min-width: 1122px) {
.sections-list .normal-cards .section-list {
@ -1328,7 +1326,8 @@ a.firstrun-link {
.contentSearchSuggestionTable .contentSearchHeader {
background-color: var(--newtab-search-dropdown-header-color);
color: var(--newtab-text-secondary-color); }
.contentSearchSuggestionTable .contentSearchHeader, .contentSearchSuggestionTable .contentSearchSettingsButton {
.contentSearchSuggestionTable .contentSearchHeader,
.contentSearchSuggestionTable .contentSearchSettingsButton {
border-color: var(--newtab-border-secondary-color); }
.contentSearchSuggestionTable .contentSearchSuggestionsList {
border: 0; }
@ -1361,7 +1360,8 @@ a.firstrun-link {
background: var(--newtab-element-hover-color);
color: var(--newtab-text-primary-color); }
.contentSearchHeaderRow > td > img, .contentSearchSuggestionRow > td > .historyIcon {
.contentSearchHeaderRow > td > img,
.contentSearchSuggestionRow > td > .historyIcon {
margin-inline-start: 7px;
margin-inline-end: 15px; }
@ -1812,15 +1812,30 @@ a.firstrun-link {
.asrouter-admin h1 {
font-weight: 200;
font-size: 32px; }
.asrouter-admin h2 .button {
font-size: 14px;
padding: 6px 12px;
margin-inline-start: 5px;
margin-bottom: 0; }
.asrouter-admin table {
border-collapse: collapse;
width: 100%; }
.asrouter-admin .sourceLabel {
background: #EDEDF0;
padding: 2px 5px;
border-radius: 3px; }
.asrouter-admin .sourceLabel.isDisabled {
background: rgba(215, 0, 34, 0.3);
color: #D70022; }
.asrouter-admin .message-item:first-child td {
border-top: 1px solid var(--newtab-border-secondary-color); }
.asrouter-admin .message-item td {
vertical-align: top;
border-bottom: 1px solid var(--newtab-border-secondary-color);
padding: 8px; }
.asrouter-admin .message-item td.min {
width: 1%;
white-space: nowrap; }
.asrouter-admin .message-item td:first-child {
border-left: 1px solid var(--newtab-border-secondary-color); }
.asrouter-admin .message-item td:last-child {
@ -1873,25 +1888,22 @@ a.firstrun-link {
.pocket-logged-in-cta .cta-text {
vertical-align: top; }
@media (min-width: 866px) {
.more-recommendations {
float: right; }
.more-recommendations:dir(rtl) {
float: left; } }
.more-recommendations::after {
background: url("../data/content/assets/topic-show-more-12.svg") no-repeat center center;
content: '';
-moz-context-properties: fill;
display: inline-block;
fill: var(--newtab-link-secondary-color);
height: 16px;
margin-inline-start: 5px;
vertical-align: top;
width: 12px; }
.more-recommendations:dir(rtl)::after {
transform: scaleX(-1); }
.more-recommendations {
display: flex;
align-items: center;
white-space: nowrap; }
.more-recommendations::after {
background: url("../data/content/assets/topic-show-more-12.svg") no-repeat center center;
content: '';
-moz-context-properties: fill;
display: inline-block;
fill: var(--newtab-link-secondary-color);
height: 16px;
margin-inline-start: 5px;
vertical-align: top;
width: 12px; }
.more-recommendations:dir(rtl)::after {
transform: scaleX(-1); }
.ASRouterButton {
font-weight: bold;

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

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

@ -917,7 +917,9 @@ main {
color: var(--newtab-section-navigation-text-color);
font-size: 12px;
line-height: 1.6;
margin-top: 12px; }
margin-top: 12px;
display: flex;
justify-content: space-between; }
.top-stories-bottom-container a {
color: var(--newtab-link-secondary-color);
font-weight: bold; }
@ -928,10 +930,6 @@ main {
.top-stories-bottom-container {
line-height: 16px;
height: 16px; } }
.top-stories-bottom-container::after {
clear: both;
content: '';
display: table; }
@media (min-width: 1122px) {
.sections-list .normal-cards .section-list {
@ -1331,7 +1329,8 @@ a.firstrun-link {
.contentSearchSuggestionTable .contentSearchHeader {
background-color: var(--newtab-search-dropdown-header-color);
color: var(--newtab-text-secondary-color); }
.contentSearchSuggestionTable .contentSearchHeader, .contentSearchSuggestionTable .contentSearchSettingsButton {
.contentSearchSuggestionTable .contentSearchHeader,
.contentSearchSuggestionTable .contentSearchSettingsButton {
border-color: var(--newtab-border-secondary-color); }
.contentSearchSuggestionTable .contentSearchSuggestionsList {
border: 0; }
@ -1364,7 +1363,8 @@ a.firstrun-link {
background: var(--newtab-element-hover-color);
color: var(--newtab-text-primary-color); }
.contentSearchHeaderRow > td > img, .contentSearchSuggestionRow > td > .historyIcon {
.contentSearchHeaderRow > td > img,
.contentSearchSuggestionRow > td > .historyIcon {
margin-inline-start: 7px;
margin-inline-end: 15px; }
@ -1815,15 +1815,30 @@ a.firstrun-link {
.asrouter-admin h1 {
font-weight: 200;
font-size: 32px; }
.asrouter-admin h2 .button {
font-size: 14px;
padding: 6px 12px;
margin-inline-start: 5px;
margin-bottom: 0; }
.asrouter-admin table {
border-collapse: collapse;
width: 100%; }
.asrouter-admin .sourceLabel {
background: #EDEDF0;
padding: 2px 5px;
border-radius: 3px; }
.asrouter-admin .sourceLabel.isDisabled {
background: rgba(215, 0, 34, 0.3);
color: #D70022; }
.asrouter-admin .message-item:first-child td {
border-top: 1px solid var(--newtab-border-secondary-color); }
.asrouter-admin .message-item td {
vertical-align: top;
border-bottom: 1px solid var(--newtab-border-secondary-color);
padding: 8px; }
.asrouter-admin .message-item td.min {
width: 1%;
white-space: nowrap; }
.asrouter-admin .message-item td:first-child {
border-left: 1px solid var(--newtab-border-secondary-color); }
.asrouter-admin .message-item td:last-child {
@ -1876,25 +1891,22 @@ a.firstrun-link {
.pocket-logged-in-cta .cta-text {
vertical-align: top; }
@media (min-width: 866px) {
.more-recommendations {
float: right; }
.more-recommendations:dir(rtl) {
float: left; } }
.more-recommendations::after {
background: url("../data/content/assets/topic-show-more-12.svg") no-repeat center center;
content: '';
-moz-context-properties: fill;
display: inline-block;
fill: var(--newtab-link-secondary-color);
height: 16px;
margin-inline-start: 5px;
vertical-align: top;
width: 12px; }
.more-recommendations:dir(rtl)::after {
transform: scaleX(-1); }
.more-recommendations {
display: flex;
align-items: center;
white-space: nowrap; }
.more-recommendations::after {
background: url("../data/content/assets/topic-show-more-12.svg") no-repeat center center;
content: '';
-moz-context-properties: fill;
display: inline-block;
fill: var(--newtab-link-secondary-color);
height: 16px;
margin-inline-start: 5px;
vertical-align: top;
width: 12px; }
.more-recommendations:dir(rtl)::after {
transform: scaleX(-1); }
.ASRouterButton {
font-weight: bold;

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

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

@ -914,7 +914,9 @@ main {
color: var(--newtab-section-navigation-text-color);
font-size: 12px;
line-height: 1.6;
margin-top: 12px; }
margin-top: 12px;
display: flex;
justify-content: space-between; }
.top-stories-bottom-container a {
color: var(--newtab-link-secondary-color);
font-weight: bold; }
@ -925,10 +927,6 @@ main {
.top-stories-bottom-container {
line-height: 16px;
height: 16px; } }
.top-stories-bottom-container::after {
clear: both;
content: '';
display: table; }
@media (min-width: 1122px) {
.sections-list .normal-cards .section-list {
@ -1328,7 +1326,8 @@ a.firstrun-link {
.contentSearchSuggestionTable .contentSearchHeader {
background-color: var(--newtab-search-dropdown-header-color);
color: var(--newtab-text-secondary-color); }
.contentSearchSuggestionTable .contentSearchHeader, .contentSearchSuggestionTable .contentSearchSettingsButton {
.contentSearchSuggestionTable .contentSearchHeader,
.contentSearchSuggestionTable .contentSearchSettingsButton {
border-color: var(--newtab-border-secondary-color); }
.contentSearchSuggestionTable .contentSearchSuggestionsList {
border: 0; }
@ -1361,7 +1360,8 @@ a.firstrun-link {
background: var(--newtab-element-hover-color);
color: var(--newtab-text-primary-color); }
.contentSearchHeaderRow > td > img, .contentSearchSuggestionRow > td > .historyIcon {
.contentSearchHeaderRow > td > img,
.contentSearchSuggestionRow > td > .historyIcon {
margin-inline-start: 7px;
margin-inline-end: 15px; }
@ -1812,15 +1812,30 @@ a.firstrun-link {
.asrouter-admin h1 {
font-weight: 200;
font-size: 32px; }
.asrouter-admin h2 .button {
font-size: 14px;
padding: 6px 12px;
margin-inline-start: 5px;
margin-bottom: 0; }
.asrouter-admin table {
border-collapse: collapse;
width: 100%; }
.asrouter-admin .sourceLabel {
background: #EDEDF0;
padding: 2px 5px;
border-radius: 3px; }
.asrouter-admin .sourceLabel.isDisabled {
background: rgba(215, 0, 34, 0.3);
color: #D70022; }
.asrouter-admin .message-item:first-child td {
border-top: 1px solid var(--newtab-border-secondary-color); }
.asrouter-admin .message-item td {
vertical-align: top;
border-bottom: 1px solid var(--newtab-border-secondary-color);
padding: 8px; }
.asrouter-admin .message-item td.min {
width: 1%;
white-space: nowrap; }
.asrouter-admin .message-item td:first-child {
border-left: 1px solid var(--newtab-border-secondary-color); }
.asrouter-admin .message-item td:last-child {
@ -1873,25 +1888,22 @@ a.firstrun-link {
.pocket-logged-in-cta .cta-text {
vertical-align: top; }
@media (min-width: 866px) {
.more-recommendations {
float: right; }
.more-recommendations:dir(rtl) {
float: left; } }
.more-recommendations::after {
background: url("../data/content/assets/topic-show-more-12.svg") no-repeat center center;
content: '';
-moz-context-properties: fill;
display: inline-block;
fill: var(--newtab-link-secondary-color);
height: 16px;
margin-inline-start: 5px;
vertical-align: top;
width: 12px; }
.more-recommendations:dir(rtl)::after {
transform: scaleX(-1); }
.more-recommendations {
display: flex;
align-items: center;
white-space: nowrap; }
.more-recommendations::after {
background: url("../data/content/assets/topic-show-more-12.svg") no-repeat center center;
content: '';
-moz-context-properties: fill;
display: inline-block;
fill: var(--newtab-link-secondary-color);
height: 16px;
margin-inline-start: 5px;
vertical-align: top;
width: 12px; }
.more-recommendations:dir(rtl)::after {
transform: scaleX(-1); }
.ASRouterButton {
font-weight: bold;

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

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

@ -1760,6 +1760,7 @@ class ASRouterAdmin extends react__WEBPACK_IMPORTED_MODULE_1___default.a.PureCom
super(props);
this.onMessage = this.onMessage.bind(this);
this.handleEnabledToggle = this.handleEnabledToggle.bind(this);
this.handleUserPrefToggle = this.handleUserPrefToggle.bind(this);
this.onChangeMessageFilter = this.onChangeMessageFilter.bind(this);
this.findOtherBundledMessagesOfSameTemplate = this.findOtherBundledMessagesOfSameTemplate.bind(this);
this.state = { messageFilter: "all" };
@ -1924,32 +1925,50 @@ class ASRouterAdmin extends react__WEBPACK_IMPORTED_MODULE_1___default.a.PureCom
react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
"tr",
{ className: "message-item" },
react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("td", { className: "min" }),
react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
"td",
null,
"id"
{ className: "min" },
"Provider ID"
),
react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
"td",
null,
"enabled"
"Source"
),
react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
"td",
null,
"source"
),
react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
"td",
null,
"last updated"
"Last Updated"
)
)
);
}
handleEnabledToggle(event) {
const action = { type: event.target.checked ? "ENABLE_PROVIDER" : "DISABLE_PROVIDER", data: event.target.name };
const provider = this.state.providerPrefs.find(p => p.id === event.target.dataset.provider);
const userPrefInfo = this.state.userPrefs;
const isUserEnabled = provider.id in userPrefInfo ? userPrefInfo[provider.id] : true;
const isSystemEnabled = provider.enabled;
const isEnabling = event.target.checked;
if (isEnabling) {
if (!isUserEnabled) {
_asrouter_asrouter_content__WEBPACK_IMPORTED_MODULE_0__["ASRouterUtils"].sendMessage({ type: "SET_PROVIDER_USER_PREF", data: { id: provider.id, value: true } });
}
if (!isSystemEnabled) {
_asrouter_asrouter_content__WEBPACK_IMPORTED_MODULE_0__["ASRouterUtils"].sendMessage({ type: "ENABLE_PROVIDER", data: provider.id });
}
} else {
_asrouter_asrouter_content__WEBPACK_IMPORTED_MODULE_0__["ASRouterUtils"].sendMessage({ type: "DISABLE_PROVIDER", data: provider.id });
}
this.setState({ messageFilter: "all" });
}
handleUserPrefToggle(event) {
const action = { type: "SET_PROVIDER_USER_PREF", data: { id: event.target.dataset.provider, value: event.target.checked } };
_asrouter_asrouter_content__WEBPACK_IMPORTED_MODULE_0__["ASRouterUtils"].sendMessage(action);
this.setState({ messageFilter: "all" });
}
@ -1957,6 +1976,8 @@ class ASRouterAdmin extends react__WEBPACK_IMPORTED_MODULE_1___default.a.PureCom
renderProviders() {
const providersConfig = this.state.providerPrefs;
const providerInfo = this.state.providers;
const userPrefInfo = this.state.userPrefs;
return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
"table",
null,
@ -1967,19 +1988,48 @@ class ASRouterAdmin extends react__WEBPACK_IMPORTED_MODULE_1___default.a.PureCom
providersConfig.map((provider, i) => {
const isTestProvider = provider.id === "snippets_local_testing";
const info = providerInfo.find(p => p.id === provider.id) || {};
let label = "(local)";
const isUserEnabled = provider.id in userPrefInfo ? userPrefInfo[provider.id] : true;
const isSystemEnabled = isTestProvider || provider.enabled;
let label = "local";
if (provider.type === "remote") {
let displayUrl = "";
try {
displayUrl = `(${new URL(info.url).hostname})`;
} catch (err) {}
label = react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
"a",
{ target: "_blank", href: info.url },
info.url
"span",
null,
"endpoint ",
react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
"a",
{ target: "_blank", href: info.url },
displayUrl
)
);
} else if (provider.type === "remote-settings") {
label = `${provider.bucket} (Remote Settings)`;
label = `remote settings (${provider.bucket})`;
}
let reasonsDisabled = [];
if (!isSystemEnabled) {
reasonsDisabled.push("system pref");
}
if (!isUserEnabled) {
reasonsDisabled.push("user pref");
}
if (reasonsDisabled.length) {
label = `disabled via ${reasonsDisabled.join(", ")}`;
}
return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
"tr",
{ className: "message-item", key: i },
react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
"td",
null,
isTestProvider ? react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("input", { type: "checkbox", disabled: true, readOnly: true, checked: true }) : react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("input", { type: "checkbox", "data-provider": provider.id, checked: isUserEnabled && isSystemEnabled, onChange: this.handleEnabledToggle })
),
react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
"td",
null,
@ -1988,12 +2038,11 @@ class ASRouterAdmin extends react__WEBPACK_IMPORTED_MODULE_1___default.a.PureCom
react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
"td",
null,
isTestProvider ? null : react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("input", { type: "checkbox", name: provider.id, checked: provider.enabled, onChange: this.handleEnabledToggle })
),
react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
"td",
null,
label
react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
"span",
{ className: `sourceLabel${isUserEnabled && isSystemEnabled ? "" : " isDisabled"}` },
label
)
),
react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
"td",
@ -2029,12 +2078,12 @@ class ASRouterAdmin extends react__WEBPACK_IMPORTED_MODULE_1___default.a.PureCom
react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
"h2",
null,
"Message Providers"
),
react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
"button",
{ className: "button", onClick: this.resetPref },
"Restore defaults"
"Message Providers ",
react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
"button",
{ title: "Restore all provider settings that ship with Firefox", className: "button", onClick: this.resetPref },
"Restore default prefs"
)
),
this.state.providers ? this.renderProviders() : null,
react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(
@ -2840,9 +2889,17 @@ class Section extends react__WEBPACK_IMPORTED_MODULE_8___default.a.PureComponent
id === "topstories" && react__WEBPACK_IMPORTED_MODULE_8___default.a.createElement(
"div",
{ className: "top-stories-bottom-container" },
shouldShowTopics && react__WEBPACK_IMPORTED_MODULE_8___default.a.createElement(content_src_components_Topics_Topics__WEBPACK_IMPORTED_MODULE_9__["Topics"], { topics: this.props.topics }),
shouldShowPocketCta && react__WEBPACK_IMPORTED_MODULE_8___default.a.createElement(content_src_components_PocketLoggedInCta_PocketLoggedInCta__WEBPACK_IMPORTED_MODULE_7__["PocketLoggedInCta"], null),
read_more_endpoint && react__WEBPACK_IMPORTED_MODULE_8___default.a.createElement(content_src_components_MoreRecommendations_MoreRecommendations__WEBPACK_IMPORTED_MODULE_6__["MoreRecommendations"], { read_more_endpoint: read_more_endpoint })
react__WEBPACK_IMPORTED_MODULE_8___default.a.createElement(
"div",
null,
shouldShowTopics && react__WEBPACK_IMPORTED_MODULE_8___default.a.createElement(content_src_components_Topics_Topics__WEBPACK_IMPORTED_MODULE_9__["Topics"], { topics: this.props.topics }),
shouldShowPocketCta && react__WEBPACK_IMPORTED_MODULE_8___default.a.createElement(content_src_components_PocketLoggedInCta_PocketLoggedInCta__WEBPACK_IMPORTED_MODULE_7__["PocketLoggedInCta"], null)
),
react__WEBPACK_IMPORTED_MODULE_8___default.a.createElement(
"div",
null,
read_more_endpoint && react__WEBPACK_IMPORTED_MODULE_8___default.a.createElement(content_src_components_MoreRecommendations_MoreRecommendations__WEBPACK_IMPORTED_MODULE_6__["MoreRecommendations"], { read_more_endpoint: read_more_endpoint })
)
)
)
);

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

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

@ -17,7 +17,7 @@ and make sure the `browser.newtabpage.activity-stream.enabled` pref is set to `t
## Source code and submitting pull requests
A copy of the code in the [system-addon/](../../system-addon/) subdirectory of this repository
A copy of the code in the root directory of this repository
is exported to Mozilla central on a regular basis, which can be found at [browser/components/newtab](https://searchfox.org/mozilla-central/source/browser/components/newtab).
Keep in mind that some of these files are generated, so if you intend on editing any files, you should
do so in the Github version.
@ -78,7 +78,7 @@ mk_add_options MOZ_OBJDIR=./objdir-frontend
1. Install required dependencies by running `npm install`.
2. To build Activity Stream, run `npm run buildmc` from the root of the
`activity-stream` directory. This will build the js and css files and copy them
into the `browser/extensions/activity-stream` directory inside Mozilla Central.
into the `browser/components/newtab` directory inside Mozilla Central.
3. Build and run Firefox from the `mozilla-central` directory by running `./mach build && ./mach run`.
## Continuous development

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

@ -42,13 +42,14 @@ module.exports = function(config) {
"sinon", // require("sinon") require("karma-sinon")
],
reporters: [
"coverage", // require("karma-coverage")
"coverage-istanbul", // require("karma-coverage")
"mocha", // require("karma-mocha-reporter")
],
coverageReporter: {
coverageIstanbulReporter: {
reports: ["html", "text-summary"],
dir: PATHS.coverageReportingPath,
// This will make karma fail if coverage reporting is less than the minimums here
check: !isTDD && {
thresholds: !isTDD && {
global: {
statements: 100,
lines: 100,
@ -56,11 +57,6 @@ module.exports = function(config) {
branches: 90,
},
},
reporters: [
{type: "html", subdir: "report-html"},
{type: "text", subdir: ".", file: "text.txt"},
{type: "text-summary", subdir: ".", file: "text-summary.txt"},
],
},
files: [PATHS.testEntryFile],
preprocessors,

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

@ -502,6 +502,7 @@ class _ASRouter {
data: {
...this.state,
providerPrefs: ASRouterPreferences.providers,
userPrefs: ASRouterPreferences.getAllUserPreferences(),
},
});
}
@ -1014,6 +1015,9 @@ class _ASRouter {
case "RESET_PROVIDER_PREF":
ASRouterPreferences.resetProviderPref();
break;
case "SET_PROVIDER_USER_PREF":
ASRouterPreferences.setUserPreference(action.data.id, action.data.value);
break;
}
}
}

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

@ -120,6 +120,21 @@ class _ASRouterPreferences {
return Services.prefs.getBoolPref(USER_PREFERENCES[providerId], true);
}
getAllUserPreferences() {
const values = {};
for (const id of Object.keys(USER_PREFERENCES)) {
values[id] = this.getUserPreference(id);
}
return values;
}
setUserPreference(providerId, value) {
if (!USER_PREFERENCES[providerId]) {
return;
}
Services.prefs.setBoolPref(USER_PREFERENCES[providerId], value);
}
addListener(callback) {
this._callbacks.add(callback);
}

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

@ -73,7 +73,11 @@ this.ASRouterTriggerListeners = new Map([
onLocationChange(aBrowser, aWebProgress, aRequest, aLocationURI, aFlags) {
const location = aLocationURI ? aLocationURI.spec : "";
if (location && aWebProgress.isTopLevel) {
// Some websites trigger redirect events after they finish loading even
// though the location remains the same. This results in onLocationChange
// events to be fired twice.
const isSameDocument = !!(aFlags & Ci.nsIWebProgressListener.LOCATION_CHANGE_SAME_DOCUMENT);
if (location && aWebProgress.isTopLevel && !isSameDocument) {
try {
const host = (new URL(location)).hostname;
if (this._hosts.has(host)) {

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

@ -461,7 +461,7 @@ this.ActivityStream = class ActivityStream {
// If there's an existing value and it has changed, that means we need to
// overwrite the default with the new value.
if (prefConfig.value !== undefined && prefConfig.value !== newValue) {
this._defaultPrefs.setDefaultPref(pref, newValue);
this._defaultPrefs.set(pref, newValue);
}
prefConfig.value = newValue;

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

@ -5,7 +5,6 @@
ChromeUtils.import("resource://gre/modules/AppConstants.jsm");
ChromeUtils.import("resource://gre/modules/Preferences.jsm");
ChromeUtils.import("resource://gre/modules/Services.jsm");
const ACTIVITY_STREAM_PREF_BRANCH = "browser.newtabpage.activity-stream.";
@ -16,14 +15,9 @@ this.Prefs = class Prefs extends Preferences {
*/
constructor(branch = ACTIVITY_STREAM_PREF_BRANCH) {
super({branch});
this._branchName = branch;
this._branchObservers = new Map();
}
get branchName() {
return this._branchName;
}
ignoreBranch(listener) {
const observer = this._branchObservers.get(listener);
this._prefBranch.removeObserver("", observer);
@ -39,7 +33,7 @@ this.Prefs = class Prefs extends Preferences {
}
};
this.DefaultPrefs = class DefaultPrefs {
this.DefaultPrefs = class DefaultPrefs extends Preferences {
/**
* DefaultPrefs - A helper for setting and resetting default prefs for the add-on
*
@ -50,28 +44,11 @@ this.DefaultPrefs = class DefaultPrefs {
* @param {string} branch (optional) The pref branch (defaults to ACTIVITY_STREAM_PREF_BRANCH)
*/
constructor(config, branch = ACTIVITY_STREAM_PREF_BRANCH) {
super({
branch,
defaultBranch: true,
});
this._config = config;
this.branch = Services.prefs.getDefaultBranch(branch);
}
/**
* setDefaultPref - Sets the default value (not user-defined) for a given pref
*
* @param {string} key The name of the pref
* @param {type} val The default value of the pref
*/
setDefaultPref(key, val) {
switch (typeof val) {
case "boolean":
this.branch.setBoolPref(key, val);
break;
case "number":
this.branch.setIntPref(key, val);
break;
case "string":
this.branch.setStringPref(key, val);
break;
}
}
/**
@ -82,6 +59,17 @@ this.DefaultPrefs = class DefaultPrefs {
const IS_UNOFFICIAL_BUILD = !AppConstants.MOZILLA_OFFICIAL;
for (const pref of this._config.keys()) {
try {
// Avoid replacing existing valid default pref values, e.g., those set
// via Autoconfig or policy
if (this.get(pref) !== undefined) {
continue;
}
} catch (ex) {
// We get NS_ERROR_UNEXPECTED for prefs that have a user value (causing
// default branch to believe there's a type) but no actual default value
}
const prefConfig = this._config.get(pref);
let value;
if (IS_UNOFFICIAL_BUILD && "value_local_dev" in prefConfig) {
@ -89,16 +77,13 @@ this.DefaultPrefs = class DefaultPrefs {
} else {
value = prefConfig.value;
}
this.setDefaultPref(pref, value);
}
}
/**
* reset - Resets all user-defined prefs for prefs in ._config to their defaults
*/
reset() {
for (const name of this._config.keys()) {
this.branch.clearUserPref(name);
try {
this.set(pref, value);
} catch (ex) {
// Potentially the user somehow set an unexpected value type, so we fail
// to set a default of our expected type
}
}
}
};

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

@ -143,7 +143,6 @@ pocket_read_more=Məşhur Mövzular:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Daha çox hekayə gör
pocket_more_reccommendations=Daha Çox Tövsiyyələr
pocket_learn_more=Ətraflı Öyrən
pocket_how_it_works=Bu necə işləyir
@ -197,7 +196,6 @@ firstrun_form_header=E-poçtunuzu daxil edin
firstrun_form_sub_header=və Firefox Sync ilə davam edin.
firstrun_email_input_placeholder=E-poçt
firstrun_invalid_input=Doğru e-poçt tələb olunur
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -208,3 +206,6 @@ firstrun_privacy_notice=Məxfilik Bildirişi
firstrun_continue_to_login=Davam et
firstrun_skip_login=Bu addımı keç
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=Menyunu aç

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

@ -206,3 +206,6 @@ firstrun_privacy_notice=паведамленнем аб прыватнасці
firstrun_continue_to_login=Працягнуць
firstrun_skip_login=Прапусціць гэты крок
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=Адкрыць меню

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

@ -143,7 +143,6 @@ pocket_read_more=Danvezioù brudet:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Gwelet muioc'h a istorioù
pocket_more_reccommendations=Erbedadennoù ouzhpenn
pocket_learn_more=Gouzout hiroc'h
pocket_how_it_works=Penaos ez a en-dro
@ -197,7 +196,6 @@ firstrun_form_header=Enankit ho chomlec'h postel
firstrun_form_sub_header=evit kenderc'hel etrezek Firefox Sync.
firstrun_email_input_placeholder=Postel
firstrun_invalid_input=Postel talvoudek azgoulennet
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -208,3 +206,6 @@ firstrun_privacy_notice=evezhiadennoù a-fet buhez prevez
firstrun_continue_to_login=Kenderc'hel
firstrun_skip_login=Tremen ar bazenn-mañ
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=Digeriñ al lañser

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

@ -143,7 +143,6 @@ pocket_read_more=Populární témata:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Zobrazit více článků
pocket_more_reccommendations=Další doporučení
pocket_learn_more=Zjistit více
pocket_how_it_works=Jak to funguje
@ -197,7 +196,6 @@ firstrun_form_header=Zadejte svoji e-mailovou adresu
firstrun_form_sub_header=a používejte službu Firefox Sync.
firstrun_email_input_placeholder=E-mail
firstrun_invalid_input=Je požadován platný e-mail
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -208,3 +206,6 @@ firstrun_privacy_notice=Zásadami ochrany soukromí
firstrun_continue_to_login=Pokračovat
firstrun_skip_login=Přeskočit tento krok
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=Otevře nabídku

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

@ -143,7 +143,6 @@ pocket_read_more=Pynciau Poblogaidd:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Gweld Rhagor o Straeon
pocket_more_reccommendations=Rhagor o Argymhellion
pocket_learn_more=Dysgu Rhagor
pocket_how_it_works=Sut mae'n gweithio
@ -197,7 +196,6 @@ firstrun_form_header=Rhowch eich e-bost
firstrun_form_sub_header=i barhau i Firefox Sync
firstrun_email_input_placeholder=E-bost
firstrun_invalid_input=Mae angen e-bost dilys
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -208,3 +206,6 @@ firstrun_privacy_notice=Hysbysiad Preifatrwydd
firstrun_continue_to_login=Parhau
firstrun_skip_login=Hepgor y cam hwn
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=Agor y ddewislen

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

@ -158,6 +158,7 @@ pocket_read_even_more=Se flere historier
pocket_more_reccommendations=Flere anbefalinger
pocket_learn_more=Læs mere
pocket_how_it_works=Sådan virker det
pocket_cta_button=Hent Pocket
pocket_cta_text=Gem dine yndlingshistorier i Pocket og hav dem altid ved hånden.
@ -223,3 +224,6 @@ firstrun_privacy_notice=privatlivspolitik
firstrun_continue_to_login=Fortsæt
firstrun_skip_login=Spring dette trin over
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=Åbn menu

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

@ -143,7 +143,6 @@ pocket_read_more=Woblubowane temy:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Dalšne powěźeńki se woglědaś
pocket_more_reccommendations=Dalšne pórucenja
pocket_learn_more=Dalšne informacije
pocket_how_it_works=Kak funkcioněrujo
@ -197,7 +196,6 @@ firstrun_form_header=Zapódajśo swóju e-mailowu adresu
firstrun_form_sub_header=aby z Firefox Sync pókšacował.
firstrun_email_input_placeholder=E-mail
firstrun_invalid_input=Płaśiwa e-mailowa adresa trěbna
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -208,3 +206,6 @@ firstrun_privacy_notice=Powěźeńka priwatnosći
firstrun_continue_to_login=Dalej
firstrun_skip_login=Toś ten kšac pśeskócyś
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=Meni wócyniś

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

@ -143,7 +143,6 @@ pocket_read_more=Popular Topics:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=View More Stories
pocket_more_reccommendations=More Recommendations
pocket_learn_more=Learn More
pocket_how_it_works=How it works
@ -197,7 +196,6 @@ firstrun_form_header=Enter your email
firstrun_form_sub_header=to continue to Firefox Sync.
firstrun_email_input_placeholder=Email
firstrun_invalid_input=Valid email required
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -208,3 +206,6 @@ firstrun_privacy_notice=Privacy Notice
firstrun_continue_to_login=Continue
firstrun_skip_login=Skip this step
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=Open menu

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

@ -143,9 +143,9 @@ pocket_read_more=Ĉefaj temoj:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Montri pli da artikoloj
pocket_more_reccommendations=Pli da rekomendoj
pocket_learn_more=Pli da informo
pocket_how_it_works=Kiel funkcias tio
pocket_cta_button=Instali Pocket
pocket_cta_text=Konservu viajn ŝatatajn artikolojn en Pocket, kaj stimulu vian menson per ravaj legaĵoj.
@ -196,7 +196,6 @@ firstrun_form_header=Tajpu vian retpoŝtan adreson
firstrun_form_sub_header=por pluiri al Spegulado de Firefox.
firstrun_email_input_placeholder=Retpoŝta adreso
firstrun_invalid_input=Valida retpoŝta adreso postulata
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -207,3 +206,6 @@ firstrun_privacy_notice=rimarkon pri privateco
firstrun_continue_to_login=Daŭrigi
firstrun_skip_login=Pretersalti tiun ĉi paŝon
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=Malfermi menuon

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

@ -143,7 +143,6 @@ pocket_read_more=Tópicos populares:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Ver más historias
pocket_more_reccommendations=Más recomendaciones
pocket_learn_more=Conocer más
pocket_how_it_works=Cómo funciona
@ -197,7 +196,6 @@ firstrun_form_header=Ingrese su correo electrónico
firstrun_form_sub_header=para pasar a Firefox Sync.
firstrun_email_input_placeholder=Correo electrónico
firstrun_invalid_input=Se requiere un correo electrónico válido
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -208,3 +206,6 @@ firstrun_privacy_notice=Anuncio de privacidad
firstrun_continue_to_login=Continuar
firstrun_skip_login=Saltear este paso
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=Abrir menú

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

@ -143,9 +143,9 @@ pocket_read_more=Temas populares:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Ver más historias
pocket_more_reccommendations=Más recomendaciones
pocket_learn_more=Saber más
pocket_how_it_works=Cómo funciona
pocket_cta_button=Obtener Pocket
pocket_cta_text=Guarda las historias que quieras en Pocket y llena tu mente con fascinantes lecturas.
@ -196,7 +196,6 @@ firstrun_form_header=Ingresa tu correo electrónico
firstrun_form_sub_header=para acceder a Firefox Sync.
firstrun_email_input_placeholder=Correo electrónico
firstrun_invalid_input=Se requiere un correo válido
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -207,3 +206,6 @@ firstrun_privacy_notice=Política de privacidad
firstrun_continue_to_login=Continuar
firstrun_skip_login=Saltar este paso
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=Abrir menú

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

@ -143,7 +143,6 @@ pocket_read_more=Sujets populaires :
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Afficher plus darticles
pocket_more_reccommendations=Plus de recommandations
pocket_learn_more=En savoir plus
pocket_how_it_works=Mode d'emploi
@ -197,7 +196,6 @@ firstrun_form_header=Saisissez votre adresse électronique
firstrun_form_sub_header=pour continuer avec Firefox Sync.
firstrun_email_input_placeholder=Adresse électronique
firstrun_invalid_input=Adresse électronique valide requise
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -208,3 +206,6 @@ firstrun_privacy_notice=Politique de confidentialité
firstrun_continue_to_login=Continuer
firstrun_skip_login=Ignorer cette étape
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=Ouvrir le menu

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

@ -143,7 +143,6 @@ pocket_read_more=Ñe'ẽmbyrã Ojehayhuvéva:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Ahechaseve Mombe'upy
pocket_more_reccommendations=Hetave jeeporã
pocket_learn_more=Kuaave
pocket_how_it_works=Mbaéichapa ombaapo
@ -197,7 +196,6 @@ firstrun_form_header=Emoinge ne ñandutiveve
firstrun_form_sub_header=eike hag̃ua Firefox Sync-pe.
firstrun_email_input_placeholder=Ñandutiveve
firstrun_invalid_input=Eikotevẽ peteĩ ñanduti veve oikóva
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -208,3 +206,6 @@ firstrun_privacy_notice=Ñemigua purureko
firstrun_continue_to_login=Eku'ejey
firstrun_skip_login=Ehejánte kóva
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=Eike poravorãme

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

@ -143,8 +143,10 @@ pocket_read_more=लोकप्रिय विषय:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=और कहानियाँ देखें
pocket_more_reccommendations=अधिक अनुशंसाएँ
pocket_learn_more=अधिक जानें
pocket_how_it_works=यह किस प्रकार काम करता है
pocket_cta_button=Pocket प्राप्त करें
highlights_empty_state=ब्राउज़िंग प्रारंभ करें, और हम कुछ प्रमुख आलेख, विडियो, तथा अन्य पृष्ठों को प्रदर्शित करेंगे जिन्हें आपने हाल ही में देखा या पुस्तचिन्हित किया है.
# LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations,
@ -193,7 +195,6 @@ firstrun_form_header=अपना ईमेल प्रविष्ट कर
firstrun_form_sub_header=Firefox सिंक के लिए जारी रखें.
firstrun_email_input_placeholder=ईमेल
firstrun_invalid_input=वैध ईमेल आवश्यक
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and

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

@ -9,9 +9,11 @@ header_recommended_by=Preporučeno od {provider}
# LOCALIZATION NOTE(context_menu_button_sr): This is for screen readers when
# the context menu button is focused/active. Title is the label or hostname of
# the site.
context_menu_button_sr=Otvorite kontekstni izbornik za {title}
# LOCALIZATION NOTE(section_context_menu_button_sr): This is for screen readers when
# the section edit context menu button is focused/active.
section_context_menu_button_sr=Otvorite kontekstni izbornik odjela
# LOCALIZATION NOTE (type_label_*): These labels are associated to pages to give
# context on how the element is related to the user, e.g. type indicates that
@ -47,10 +49,15 @@ menu_action_archive_pocket=Arhiviraj u Pocket
# found in the context menu of an item that has been downloaded. The intention behind
# "this action" is that it will show where the downloaded file exists on the file system
# for each operating system.
menu_action_show_file_mac_os=Prikaži u Finder-u
menu_action_show_file_default=Prikaži datoteku
menu_action_open_file=Otvori datoteku
# LOCALIZATION NOTE (menu_action_copy_download_link, menu_action_go_to_download_page):
# "Download" here, in both cases, is not a verb, it is a noun. As in, "Copy the
# link that belongs to this downloaded item"
menu_action_copy_download_link=Kopiraj poveznicu preuzimanja
menu_action_go_to_download_page=Idi na stranicu preuzimanja
menu_action_remove_download=Ukloni iz povijesti
# LOCALIZATION NOTE (search_button): This is screenreader only text for the
@ -69,6 +76,8 @@ search_web_placeholder=Pretraži web
# LOCALIZATION NOTE (section_disclaimer_topstories): This is shown below
# the topstories section title to provide additional information about
# how the stories are selected.
section_disclaimer_topstories=Najzanimljivije priče na internetu, odabrane na temelju onog što ste pročitali. Iz Pocket-a, sada dio Mozille.
section_disclaimer_topstories_linktext=Saznajte kako funkcionira.
# LOCALIZATION NOTE (section_disclaimer_topstories_buttontext): The text of
# the button used to acknowledge, and hide this disclaimer in the future.
section_disclaimer_topstories_buttontext=U redu, razumijem
@ -81,6 +90,12 @@ section_disclaimer_topstories_buttontext=U redu, razumijem
# LOCALIZATION NOTE (prefs_section_rows_option): This is a semi-colon list of
# plural forms used in a drop down of multiple row options (1 row, 2 rows).
# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
prefs_topstories_options_sponsored_label=Sponzorirane priče
prefs_topstories_sponsored_learn_more=Saznajte više
prefs_highlights_description=Izbor stranica koje ste spremili ili posjetili
prefs_highlights_options_visited_label=Posjećene stranice
prefs_highlights_options_download_label=Najnovije preuzimanje
prefs_highlights_options_pocket_label=Stranice spremljene u Pocket
settings_pane_button_label=Prilagodite svoju početnu stranicu nove kartice
settings_pane_topsites_header=Najbolje stranice
settings_pane_highlights_header=Istaknuto
@ -99,13 +114,17 @@ edit_topsites_edit_button=Uredi ovu stranicu
# LOCALIZATION NOTE (topsites_form_*): This is shown in the New/Edit Topsite modal.
topsites_form_add_header=Nova najbolja stranica
topsites_form_edit_header=Uredi najbolju stranicu
topsites_form_title_label=Naslov
topsites_form_title_placeholder=Unesi naslov
topsites_form_url_label=URL
topsites_form_url_placeholder=Utipkajte ili zalijepite URL
# LOCALIZATION NOTE (topsites_form_*_button): These are verbs/actions.
topsites_form_preview_button=Pregled
topsites_form_add_button=Dodaj
topsites_form_save_button=Spremi
topsites_form_cancel_button=Otkaži
topsites_form_url_validation=Potrebno je unijeti ispravan URL
topsites_form_image_validation=Neuspjelo učitavanje slike. Pokušajte drugi URL.
# LOCALIZATION NOTE (pocket_read_more): This is shown at the bottom of the
# trending stories section and precedes a list of links to popular topics.
@ -113,7 +132,8 @@ pocket_read_more=Popularne teme:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Prikaži više priča
pocket_more_reccommendations=Više preporuka
pocket_learn_more=Saznajte više
highlights_empty_state=Započnite pretraživati i pokazat ćemo vam neke od izvrsnih članaka, videa i drugih web stranica prema vašim nedavno posjećenim stranicama ili zabilješkama.
# LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations,
@ -133,19 +153,37 @@ manual_migration_import_button=Uvezi sada
# LOCALIZATION NOTE (error_fallback_default_*): This message and suggested
# action link are shown in each section of UI that fails to render
error_fallback_default_refresh_suggestion=Osvježite stranicu da biste pokušali ponovno.
# LOCALIZATION NOTE (section_menu_action_*). These strings are displayed in the section
# context menu and are meant as a call to action for the given section.
section_menu_action_remove_section=Ukloni odjel
section_menu_action_collapse_section=Skupi odjel
section_menu_action_expand_section=Proširi odjel
section_menu_action_manage_section=Upravljanje odjelom
section_menu_action_move_up=Pomakni gore
section_menu_action_move_down=Pomakni dolje
section_menu_action_privacy_notice=Politika privatnosti
# LOCALIZATION NOTE (firstrun_*). These strings are displayed only once, on the
# firstrun of the browser, they give an introduction to Firefox and Sync.
firstrun_title=Uzmite Firefox sa sobom
firstrun_learn_more_link=Saznajte više o Firefox računima
# LOCALIZATION NOTE (firstrun_form_header and firstrun_form_sub_header):
# firstrun_form_sub_header is a continuation of firstrun_form_header, they are one sentence.
# firstrun_form_header is displayed more boldly as the call to action.
firstrun_form_header=Unesite vašu adresu e-pošte
firstrun_form_sub_header=i prijavi se u Firefox Sync
firstrun_email_input_placeholder=E-pošta
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
# {privacy} is equal to firstrun_privacy_notice. {terms} and {privacy} are clickable links.
firstrun_terms_of_service=Uvjeti korištenja
firstrun_privacy_notice=Politika privatnosti
firstrun_continue_to_login=Nastavi
firstrun_skip_login=Preskočite ovaj korak
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu

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

@ -143,7 +143,6 @@ pocket_read_more=Woblubowane temy:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Dalše zdźělenki sej wobhladać
pocket_more_reccommendations=Dalše doporučenja
pocket_learn_more=Dalše informacije
pocket_how_it_works=Kak funguje
@ -197,7 +196,6 @@ firstrun_form_header=Zapodajće swoju e-mejlowu adresu,
firstrun_form_sub_header=zo byšće z Firefox Sync pokročował.
firstrun_email_input_placeholder=E-mejl
firstrun_invalid_input=Płaćiwa e-mejlowa adresa trěbna
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -208,3 +206,6 @@ firstrun_privacy_notice=Zdźělenka priwatnosće
firstrun_continue_to_login=Pokročować
firstrun_skip_login=Tutón krok přeskočić
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=Meni wočinić

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

@ -143,7 +143,6 @@ pocket_read_more=Népszerű témák:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=További történetek
pocket_more_reccommendations=További javaslatok
pocket_learn_more=További tudnivalók
pocket_how_it_works=Hogyan működik
@ -197,7 +196,6 @@ firstrun_form_header=Adja meg az e-mail címét
firstrun_form_sub_header=és lépjen tovább a Firefox Synchez.
firstrun_email_input_placeholder=E-mail
firstrun_invalid_input=Érvényes e-mail szükséges
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -208,3 +206,6 @@ firstrun_privacy_notice=Adatvédelmi nyilatkozatot
firstrun_continue_to_login=Folytatás
firstrun_skip_login=Lépés kihagyása
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=Menü megnyitása

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

@ -1,18 +1,22 @@
newtab_page_title=Նոր ներդիր
default_label_loading=Բեռնվում է...
header_top_sites=Լավագույն կայքեր
header_highlights=Գունանշում
# LOCALIZATION NOTE(header_recommended_by): This is followed by the name
# of the corresponding content provider.
# LOCALIZATION NOTE(context_menu_button_sr): This is for screen readers when
# the context menu button is focused/active. Title is the label or hostname of
# the site.
# LOCALIZATION NOTE(section_context_menu_button_sr): This is for screen readers when
# the section edit context menu button is focused/active.
# LOCALIZATION NOTE (type_label_*): These labels are associated to pages to give
# context on how the element is related to the user, e.g. type indicates that
# the page is bookmarked, or is currently open on another device
type_label_visited=Այցելած
type_label_bookmarked=Էջանշված
type_label_synced=Համաժամեցված այլ սարքից
# LOCALIZATION NOTE(type_label_open): Open is an adjective, as in "page is open"
type_label_open=Բացել
type_label_topic=Թեմա
# LOCALIZATION NOTE (menu_action_*): These strings are displayed in a context
# menu and are meant as a call to action for a given page.
@ -20,18 +24,23 @@ type_label_topic=Թեմա
# bookmarks"
menu_action_bookmark=Էջանիշ
menu_action_remove_bookmark=Հեռացնել էջանիշը
menu_action_copy_address=Պատճենել հասցեն
menu_action_email_link=Ուղարկել հղումը...
menu_action_open_new_window=Բացել Նոր Պատուհանով
menu_action_open_private_window=Բացել Նոր Գաղտնի դիտարկմամբ
menu_action_dismiss=Բաց թողնել
menu_action_delete=Ջնջել Պատմությունից
menu_action_unpin=Ապամրացնել
# LOCALIZATION NOTE (confirm_history_delete_notice_p2): this string is displayed in
# the same dialog as confirm_history_delete_p1. "This action" refers to deleting a
# page from history.
# LOCALIZATION NOTE (search_for_something_with): {search_term} is a placeholder
# for what the user has typed in the search input field, e.g. 'Search for ' +
# search_term + 'with:' becomes 'Search for abc with:'
# The search engine name is displayed as an icon and does not need a translation
search_for_something_with=Որոնել {search_term}-ը հետևյալով՝
# LOCALIZATION NOTE (menu_action_show_file_*): These are platform specific strings
# found in the context menu of an item that has been downloaded. The intention behind
# "this action" is that it will show where the downloaded file exists on the file system
# for each operating system.
# LOCALIZATION NOTE (menu_action_copy_download_link, menu_action_go_to_download_page):
# "Download" here, in both cases, is not a verb, it is a noun. As in, "Copy the
# link that belongs to this downloaded item"
# LOCALIZATION NOTE (search_button): This is screenreader only text for the
# search button.
@ -44,23 +53,65 @@ search_header={search_engine_name}-ի որոնում
# LOCALIZATION NOTE (search_web_placeholder): This is shown in the searchbox when
# the user hasn't typed anything yet.
search_web_placeholder=Որոնել առցանց
search_settings=Փոխել որոնման կարգավորումները
# LOCALIZATION NOTE (welcome_*): This is shown as a modal dialog, typically on a
# first-run experience when there's no data to display yet
welcome_title=Բարի գալուստ նոր ներդիր
welcome_body=Firefox-ը կօգտագործի այս բացատը՝ ցուցադրելու ձեզ համար առավել կարևոր էջանիշերը, հոդվածները և ձեր այցելած վերջին էջերը, որպեսզի հեշտությամբ վերադառնաք դրանց:
welcome_label=Նույնացնում է ձեր գունանշումը
# LOCALIZATION NOTE (section_disclaimer_topstories): This is shown below
# the topstories section title to provide additional information about
# how the stories are selected.
# LOCALIZATION NOTE (section_disclaimer_topstories_buttontext): The text of
# the button used to acknowledge, and hide this disclaimer in the future.
# LOCALIZATION NOTE (time_label_*): {number} is a placeholder for a number which
# represents a shortened timestamp format, e.g. '10m' means '10 minutes ago'.
time_label_less_than_minute=<1 ր
time_label_minute={number} ր
time_label_hour={number} ժ
time_label_day={number} օր
# LOCALIZATION NOTE (settings_pane_*): This is shown in the Settings Pane sidebar.
# LOCALIZATION NOTE (prefs_*, settings_*): These are shown in about:preferences
# for a "Firefox Home" section. "Firefox" should be treated as a brand and kept
# in English, while "Home" should be localized matching the about:preferences
# sidebar mozilla-central string for the panel that has preferences related to
# what is shown for the homepage, new windows, and new tabs.
# LOCALIZATION NOTE (prefs_section_rows_option): This is a semi-colon list of
# plural forms used in a drop down of multiple row options (1 row, 2 rows).
# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
# LOCALIZATION NOTE(settings_pane_snippets_header): For the "Snippets" feature
# traditionally on about:home. Alternative translation options: "Small Note" or
# something that expresses the idea of "a small message, shortened from
# something else, and non-essential but also not entirely trivial and useless."
# LOCALIZATION NOTE (edit_topsites_*): This is shown in the Edit Top Sites modal
# dialog.
# LOCALIZATION NOTE (topsites_form_*): This is shown in the New/Edit Topsite modal.
# LOCALIZATION NOTE (topsites_form_*_button): These are verbs/actions.
# LOCALIZATION NOTE (pocket_read_more): This is shown at the bottom of the
# trending stories section and precedes a list of links to popular topics.
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
# LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations,
# in the space that would have shown a few stories, this is shown instead.
# {provider} is replaced by the name of the content provider for this section.
# LOCALIZATION NOTE (manual_migration_explanation2): This message is shown to encourage users to
# import their browser profile from another browser they might be using.
# LOCALIZATION NOTE (manual_migration_cancel_button): This message is shown on a button that cancels the
# process of importing another browsers profile into Firefox.
# LOCALIZATION NOTE (manual_migration_import_button): This message is shown on a button that starts the process
# of importing another browsers profile profile into Firefox.
# LOCALIZATION NOTE (error_fallback_default_*): This message and suggested
# action link are shown in each section of UI that fails to render
# LOCALIZATION NOTE (section_menu_action_*). These strings are displayed in the section
# context menu and are meant as a call to action for the given section.
# LOCALIZATION NOTE (firstrun_*). These strings are displayed only once, on the
# firstrun of the browser, they give an introduction to Firefox and Sync.
# LOCALIZATION NOTE (firstrun_form_header and firstrun_form_sub_header):
# firstrun_form_sub_header is a continuation of firstrun_form_header, they are one sentence.
# firstrun_form_header is displayed more boldly as the call to action.
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
# {privacy} is equal to firstrun_privacy_notice. {terms} and {privacy} are clickable links.
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
section_menu_action_add_search_engine=Ավելացնել որոնիչ

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

@ -143,7 +143,6 @@ pocket_read_more=პოპულარული თემები:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=მეტი სიახლის ნახვა
pocket_more_reccommendations=მეტი შემოთავაზებები
pocket_learn_more=იხილეთ ვრცლად
pocket_how_it_works=როგორ მუშაობს
@ -197,7 +196,6 @@ firstrun_form_header=შეიყვანეთ თქვენი ელფო
firstrun_form_sub_header=Firefox Sync-ზე გადასასვლელად.
firstrun_email_input_placeholder=ელფოსტა
firstrun_invalid_input=მართებული ელფოსტის მითითება აუცილებელია
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -208,3 +206,6 @@ firstrun_privacy_notice=პირადი მონაცემების დ
firstrun_continue_to_login=გაგრძელება
firstrun_skip_login=გამოტოვება
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=მენიუს გახსნა

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

@ -143,7 +143,6 @@ pocket_read_more=Isental ittwasnen aṭas:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Wali ugar n teqsiḍin
pocket_more_reccommendations=Ugar n iwellihen
pocket_learn_more=Issin ugar
pocket_how_it_works=Amek iteddu
@ -197,7 +196,6 @@ firstrun_form_header=Sekcem imayl inek
firstrun_form_sub_header=akken ad tkemleḍ akked Firefox Sync
firstrun_email_input_placeholder=Imayl
firstrun_invalid_input=Imayl ameɣtu ilaq
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -208,3 +206,6 @@ firstrun_privacy_notice=Tasertit n tbaḍnit
firstrun_continue_to_login=Kemmel
firstrun_skip_login=Zgel amecwaṛ-agi
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=Ldi umuɣ

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

@ -143,7 +143,6 @@ pocket_read_more=Әйгілі тақырыптар:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Көбірек хикаяларды қарау
pocket_more_reccommendations=Көбірек ұсыныстар
pocket_learn_more=Көбірек білу
pocket_how_it_works=Ол қалай жұмыс істейді
@ -197,7 +196,6 @@ firstrun_form_header=Эл. поштаны енгізіңіз
firstrun_form_sub_header=Firefox синхрондауына жалғастыру үшін.
firstrun_email_input_placeholder=Эл. пошта
firstrun_invalid_input=Жарамды эл. пошта адресі керек
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -208,3 +206,6 @@ firstrun_privacy_notice=Жекелік ескертуі
firstrun_continue_to_login=Жалғастыру
firstrun_skip_login=Бұл қадамды аттап кету
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=Мәзірді ашу

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

@ -143,7 +143,6 @@ pocket_read_more=인기 주제:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=더 많은 이야기 보기
pocket_more_reccommendations=더 많은 추천
pocket_learn_more=자세히 보기
pocket_how_it_works=사용 방법
@ -197,7 +196,6 @@ firstrun_form_header=이메일을 입력
firstrun_form_sub_header=해서 Firefox Sync 사용
firstrun_email_input_placeholder=이메일
firstrun_invalid_input=유효한 이메일 필요함
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -208,3 +206,6 @@ firstrun_privacy_notice=개인 정보 보호 정책
firstrun_continue_to_login=계속
firstrun_skip_login=단계 건너뛰기
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=메뉴 열기

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

@ -143,7 +143,6 @@ pocket_read_more=Populiarios temos:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Rodyti daugiau straipsnių
pocket_more_reccommendations=Daugiau rekomendacijų
pocket_learn_more=Sužinoti daugiau
pocket_how_it_works=Kaip tai veikia
@ -197,7 +196,6 @@ firstrun_form_header=Įveskite savo el. paštą
firstrun_form_sub_header=norėdami tęsti su „Firefox Sync“.
firstrun_email_input_placeholder=El. paštas
firstrun_invalid_input=Reikalingas galiojantis el. pašto adresas
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -208,3 +206,6 @@ firstrun_privacy_notice=Privatumo pranešimu
firstrun_continue_to_login=Tęsti
firstrun_skip_login=Praleisti šį žingsnį
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=Atverti meniu

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

@ -143,7 +143,6 @@ pocket_read_more=Topik Popular:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Papar Kisah Selanjutnya
pocket_more_reccommendations=Saranan Lain
pocket_learn_more=Ketahui Selanjutnya
pocket_how_it_works=Cara pelaksanaan
@ -197,7 +196,6 @@ firstrun_form_header=Masukkan e-mel anda
firstrun_form_sub_header=untuk ke Firefox Sync
firstrun_email_input_placeholder=E-mel
firstrun_invalid_input=Perlu e-mel yang sah
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -208,3 +206,6 @@ firstrun_privacy_notice=Notis Privasi
firstrun_continue_to_login=Teruskan
firstrun_skip_login=Langkau langkah ini
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=Buka menu

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

@ -50,8 +50,8 @@ menu_action_archive_pocket=Arkiver i Pocket
# "this action" is that it will show where the downloaded file exists on the file system
# for each operating system.
menu_action_show_file_mac_os=Vis i Finder
menu_action_show_file_windows=Opne mappa med fila
menu_action_show_file_linux=Opne mappa med fila
menu_action_show_file_windows=Opne innhaldsmappe
menu_action_show_file_linux=Opne innhaldsmappe
menu_action_show_file_default=Vis fil
menu_action_open_file=Opne fil
@ -143,7 +143,6 @@ pocket_read_more=Populære emne:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Vis fleire saker
pocket_more_reccommendations=Fleire tilrådingar
pocket_learn_more=Les meir
pocket_how_it_works=Korleis det fungerar
@ -197,7 +196,6 @@ firstrun_form_header=Skriv inn e-postadressa di
firstrun_form_sub_header=for å fortsetje til Firefox Sync.
firstrun_email_input_placeholder=E-post
firstrun_invalid_input=Gyldig e-post påkravd
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -208,3 +206,6 @@ firstrun_privacy_notice=Personvernpraksis
firstrun_continue_to_login=Fortset
firstrun_skip_login=Hopp over dette steget
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=Opne meny

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

@ -143,7 +143,6 @@ pocket_read_more=Tèmas populars:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Veire mai darticles
pocket_learn_more=Ne saber mai
highlights_empty_state=Començatz de navegar e aquí vos mostrarem los melhors articles, vidèos e autras paginas quavètz visitadas o apondudas als marcapaginas.
@ -192,7 +191,6 @@ firstrun_form_header=Picatz vòstra adreça electronica
firstrun_form_sub_header=per contunhar amb Firefox Sync.
firstrun_email_input_placeholder=Adreça electronica
firstrun_invalid_input=Cal una adreça electronica valida
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -203,3 +201,6 @@ firstrun_privacy_notice=Avís de privacitat
firstrun_continue_to_login=Contunhar
firstrun_skip_login=Passar aquesta etapa
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=Dobrir lo menú

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

@ -87,6 +87,7 @@ pocket_read_more=Popularne treści:
pocket_read_even_more=Pokaż więcej artykułów
pocket_more_reccommendations=Więcej polecanych
pocket_learn_more=Więcej informacji
pocket_how_it_works=Jak to działa?
pocket_cta_button=Pobierz Pocket
pocket_cta_text=Zachowuj historie w Pocket, aby wrócić później do ich lektury.
pocket_description=Odkrywaj wysokiej jakości treści dzięki serwisowi Pocket, który jest teraz częścią Mozilli.

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

@ -143,7 +143,6 @@ pocket_read_more=Tópicos populares:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Ver mais histórias
pocket_more_reccommendations=Mais recomendações
pocket_learn_more=Saber mais
pocket_how_it_works=Como funciona
@ -197,7 +196,6 @@ firstrun_form_header=Introduza o seu e-mail
firstrun_form_sub_header=para continuar para o Firefox Sync.
firstrun_email_input_placeholder=Email
firstrun_invalid_input=Email válido requerido
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -208,3 +206,6 @@ firstrun_privacy_notice=Aviso de privacidade
firstrun_continue_to_login=Continuar
firstrun_skip_login=Saltar este passo
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=Abrir menu

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

@ -36,7 +36,7 @@ menu_action_dismiss=Înlătură
menu_action_delete=Șterge din istoric
menu_action_pin=Fixează
menu_action_unpin=Anulează fixarea
confirm_history_delete_p1=Sigur vrei să ştergi fiecare instanţă a acestei pagini din istoric?
confirm_history_delete_p1=Sigur vrei să ștergi fiecare instanță a acestei pagini din istoric?
# LOCALIZATION NOTE (confirm_history_delete_notice_p2): this string is displayed in
# the same dialog as confirm_history_delete_p1. "This action" refers to deleting a
# page from history.
@ -181,7 +181,7 @@ section_menu_action_add_topsite=Adaugă site de top
section_menu_action_add_search_engine=Adaugă motor de căutare
section_menu_action_move_up=Mută în sus
section_menu_action_move_down=Mută în jos
section_menu_action_privacy_notice=Notificare privind confidențialitatea
section_menu_action_privacy_notice=Politica de confidențialitate
# LOCALIZATION NOTE (firstrun_*). These strings are displayed only once, on the
# firstrun of the browser, they give an introduction to Firefox and Sync.
@ -200,9 +200,11 @@ firstrun_invalid_input=Necesită o adresă de e-mail validă
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
# {privacy} is equal to firstrun_privacy_notice. {terms} and {privacy} are clickable links.
firstrun_extra_legal_links=Prin continuare, ești de acord cu {terms} și {privacy}.
firstrun_extra_legal_links=Continuând, ești de acord cu {terms} și {privacy}.
firstrun_terms_of_service=Termenii de utilizare a serviciului
firstrun_privacy_notice=Notificare privind confidențialitatea
firstrun_privacy_notice=Politica de confidențialitate
firstrun_continue_to_login=Continuă
firstrun_skip_login=Omite acest pas
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu

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

@ -143,7 +143,6 @@ pocket_read_more=Популярные темы:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Больше статей
pocket_more_reccommendations=Ещё рекомендации
pocket_learn_more=Подробнее
pocket_how_it_works=Как это работает
@ -197,7 +196,6 @@ firstrun_form_header=Введите ваш адрес электронной п
firstrun_form_sub_header=чтобы продолжить использовать синхронизацию Firefox.
firstrun_email_input_placeholder=Эл. почта
firstrun_invalid_input=Введите действующий адрес электронной почты
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -208,3 +206,6 @@ firstrun_privacy_notice=политикой приватности
firstrun_continue_to_login=Продолжить
firstrun_skip_login=Пропустить этот шаг
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=Открыть меню

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

@ -143,9 +143,9 @@ pocket_read_more=Populárne témy:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Zobraziť ďalšie príbehy
pocket_more_reccommendations=Ďalšie odporúčania
pocket_learn_more=Ďalšie informácie
pocket_how_it_works=Ako to funguje
pocket_cta_button=Získajte Pocket
pocket_cta_text=Ukladajte si články do služby Pocket a užívajte si skvelé čítanie.
@ -196,7 +196,6 @@ firstrun_form_header=Zadajte e-mailovú adresu
firstrun_form_sub_header=a používajte službu Firefox Sync.
firstrun_email_input_placeholder=E-mail
firstrun_invalid_input=Vyžaduje sa platná e-mailová adresa
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -207,3 +206,6 @@ firstrun_privacy_notice=zásadami ochrany súkromia
firstrun_continue_to_login=Pokračovať
firstrun_skip_login=Preskočiť tento krok
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=Otvorí ponuku

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

@ -143,7 +143,6 @@ pocket_read_more=Priljubljene teme:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Prikaži več vesti
pocket_more_reccommendations=Več priporočil
pocket_learn_more=Več o tem
pocket_how_it_works=Kako deluje
@ -197,7 +196,6 @@ firstrun_form_header=Vnesite e-poštni naslov
firstrun_form_sub_header=za nadaljevanje v Firefox Sync.
firstrun_email_input_placeholder=E-pošta
firstrun_invalid_input=Zahtevan je veljaven e-poštni naslov
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -208,3 +206,6 @@ firstrun_privacy_notice=Obvestilom o zasebnosti
firstrun_continue_to_login=Nadaljuj
firstrun_skip_login=Preskoči ta korak
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=Odpri meni

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

@ -143,7 +143,6 @@ pocket_read_more=Populära ämnen:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Visa fler nyheter
pocket_more_reccommendations=Fler rekommendationer
pocket_learn_more=Läs mer
pocket_how_it_works=Hur fungerar det
@ -197,7 +196,6 @@ firstrun_form_header=Ange din e-postadress
firstrun_form_sub_header=för att fortsätta till Firefox Sync.
firstrun_email_input_placeholder=E-post
firstrun_invalid_input=Giltig e-postadress krävs
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -208,3 +206,6 @@ firstrun_privacy_notice=Sekretesspolicy
firstrun_continue_to_login=Fortsätt
firstrun_skip_login=Hoppa över det här steget
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=Öppna meny

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

@ -143,7 +143,6 @@ pocket_read_more=หัวข้อยอดนิยม:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=ดูเรื่องราวเพิ่มเติม
pocket_more_reccommendations=คำแนะนำเพิ่มเติม
pocket_learn_more=เรียนรู้เพิ่มเติม
pocket_cta_button=รับ Pocket
@ -196,7 +195,6 @@ firstrun_form_sub_header=เพื่อดำเนินการต่อไ
firstrun_email_input_placeholder=อีเมล
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
# {privacy} is equal to firstrun_privacy_notice. {terms} and {privacy} are clickable links.
firstrun_terms_of_service=เงื่อนไขการให้บริการ
@ -204,3 +202,6 @@ firstrun_privacy_notice=ประกาศความเป็นส่วน
firstrun_continue_to_login=ดำเนินการต่อ
firstrun_skip_login=ข้ามขั้นตอนนี้
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=เปิดเมนู

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

@ -143,7 +143,6 @@ pocket_read_more=Popüler konular:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Daha fazla yazı göster
pocket_more_reccommendations=Daha fazla öneri
pocket_learn_more=Daha fazla bilgi al
pocket_how_it_works=Nasıl çalışıyor?
@ -197,7 +196,6 @@ firstrun_form_header=Firefox Synce devam etmek için
firstrun_form_sub_header=e-posta adresinizi yazın.
firstrun_email_input_placeholder=E-posta
firstrun_invalid_input=Geçerli bir e-posta gerekiyor
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -208,3 +206,6 @@ firstrun_privacy_notice=Gizlilik Bildirimini
firstrun_continue_to_login=Devam et
firstrun_skip_login=Bu adımı atla
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=Menüyü aç

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

@ -143,7 +143,6 @@ pocket_read_more=Популярні теми:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=Переглянути більше історій
pocket_more_reccommendations=Інші рекомендації
pocket_learn_more=Докладніше
pocket_how_it_works=Як це працює
@ -197,7 +196,6 @@ firstrun_form_header=Введіть свою адресу е-пошти
firstrun_form_sub_header=для продовження в Синхронізації Firefox.
firstrun_email_input_placeholder=Е-пошта
firstrun_invalid_input=Необхідна адреса електронної пошти
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -208,3 +206,6 @@ firstrun_privacy_notice=Повідомлення про приватність
firstrun_continue_to_login=Продовжити
firstrun_skip_login=Пропустити цей крок
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=Відкрити меню

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

@ -143,7 +143,6 @@ pocket_read_more=热门主题:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=查看更多文章
pocket_more_reccommendations=更多推荐
pocket_learn_more=详细了解
pocket_how_it_works=使用方法
@ -197,7 +196,6 @@ firstrun_form_header=请输入您的电子邮箱
firstrun_form_sub_header=继续使用 Firefox 同步服务。
firstrun_email_input_placeholder=电子邮件
firstrun_invalid_input=需要有效的电子邮件地址
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -208,3 +206,6 @@ firstrun_privacy_notice=隐私声明
firstrun_continue_to_login=继续
firstrun_skip_login=跳过此步骤
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=打开菜单

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

@ -143,7 +143,6 @@ pocket_read_more=熱門主題:
# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
# end of the list of popular topic links.
pocket_read_even_more=檢視更多文章
pocket_more_reccommendations=更多推薦項目
pocket_learn_more=了解更多
pocket_how_it_works=原理是什麼
@ -197,7 +196,6 @@ firstrun_form_header=輸入您的電子郵件地址
firstrun_form_sub_header=繼續前往 Firefox Sync
firstrun_email_input_placeholder=電子郵件
firstrun_invalid_input=必須輸入有效的電子郵件地址
# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
@ -208,3 +206,6 @@ firstrun_privacy_notice=隱私權公告
firstrun_continue_to_login=繼續
firstrun_skip_login=跳過這步
# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
context_menu_title=開啟選單

4821
browser/components/newtab/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

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

@ -13,8 +13,8 @@
"react": "16.2.0",
"react-dom": "16.2.0",
"react-intl": "2.4.0",
"react-redux": "5.0.6",
"redux": "3.6.0"
"react-redux": "5.1.0",
"redux": "4.0.1"
},
"devDependencies": {
"@octokit/rest": "15.3.0",
@ -28,50 +28,51 @@
"babel-plugin-transform-es2015-modules-commonjs": "6.26.2",
"babel-plugin-transform-object-rest-spread": "6.26.0",
"babel-preset-react": "6.24.1",
"chai": "4.1.2",
"chai": "4.2.0",
"chai-json-schema": "1.5.0",
"co-task": "1.0.0",
"cpx": "1.5.0",
"enzyme": "3.3.0",
"enzyme-adapter-react-16": "1.1.1",
"enzyme": "3.7.0",
"enzyme-adapter-react-16": "1.6.0",
"eslint": "4.19.1",
"eslint-plugin-import": "2.11.0",
"eslint-plugin-json": "1.2.0",
"eslint-plugin-json": "1.2.1",
"eslint-plugin-mozilla": "0.16.0",
"eslint-plugin-no-unsanitized": "3.0.0",
"eslint-plugin-promise": "3.7.0",
"eslint-plugin-react": "7.7.0",
"eslint-watch": "3.1.4",
"husky": "0.14.3",
"istanbul-instrumenter-loader": "0.2.0",
"istanbul-instrumenter-loader": "3.0.1",
"joi-browser": "13.0.1",
"karma": "2.0.2",
"karma": "3.1.1",
"karma-chai": "0.1.0",
"karma-coverage": "1.1.1",
"karma-coverage-istanbul-reporter": "2.0.4",
"karma-firefox-launcher": "1.1.0",
"karma-mocha": "1.3.0",
"karma-mocha-reporter": "2.2.5",
"karma-sinon": "1.0.5",
"karma-sourcemap-loader": "0.3.7",
"karma-webpack": "3.0.0",
"karma-webpack": "3.0.5",
"loader-utils": "0.2.16",
"minimist": "1.2.0",
"mocha": "5.1.1",
"mock-raf": "1.0.0",
"node-fetch": "2.1.2",
"node-sass": "4.7.2",
"node-sass": "4.9.4",
"npm-run-all": "4.1.2",
"pontoon-to-json": "2.0.0",
"raw-loader": "0.5.1",
"react-test-renderer": "16.3.2",
"rimraf": "2.6.2",
"sass": "1.14.3",
"sass-lint": "1.12.1",
"shelljs": "0.8.1",
"simple-git": "1.92.0",
"sinon": "4.5.0",
"webpack": "4.15.0",
"webpack-cli": "3.0.8",
"yamscripts": "0.0.3"
"yamscripts": "0.1.0"
},
"engines": {
"firefox": ">=45.0 <=*",
@ -109,6 +110,10 @@
"buildmc:copy": "rsync --exclude-from .mcignore -a . $npm_package_config_mc_dir/browser/components/newtab/",
"buildmc:stringsExport": "cp $npm_package_config_locales_dir/$npm_package_config_default_locale/strings.properties $npm_package_config_mc_dir/browser/locales/$npm_package_config_default_locale/chrome/browser/activity-stream/newtab.properties",
"buildmc:copyPingCentre": "cpx \"ping-centre/PingCentre.jsm\" $npm_package_config_mc_dir/browser/modules",
"buildlibrary": "npm-run-all buildlibrary:*",
"buildlibrary:webpack": "webpack --config webpack.aboutlibrary.config.js",
"buildlibrary:css": "node-sass --source-map true --source-map-contents content-src/aboutlibrary -o aboutlibrary/content",
"buildlibrary:copy": "cpx \"aboutlibrary/**/{,.}*\" $npm_package_config_mc_dir/browser/components/library",
"startmc": "npm-run-all --parallel startmc:*",
"prestartmc": "npm run buildmc",
"startmc:copy": "cpx \"{{,.}*,!(node_modules)/**/{,.}*}\" $npm_package_config_mc_dir/browser/components/newtab/ -w",
@ -119,10 +124,9 @@
"testmc": "npm-run-all testmc:*",
"testmc:lint": "npm run lint",
"testmc:build": "npm run bundle:webpack && npm run bundle:locales",
"testmc:unit": "karma start karma.mc.config.js || (cat logs/coverage/text.txt && exit 2)",
"posttestmc": "cat logs/coverage/text-summary.txt",
"testmc:unit": "karma start karma.mc.config.js",
"tddmc": "karma start karma.mc.config.js --tdd",
"debugcoverage": "open logs/coverage/report-html/index.html",
"debugcoverage": "open logs/coverage/index.html",
"lint": "npm-run-all lint:*",
"lint:eslint": "esw --ext=.js,.jsm,.json,.jsx .",
"lint:sasslint": "sass-lint -v -q",

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

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

@ -107,6 +107,6 @@ window.gActivityStreamStrings = {
"firstrun_privacy_notice": "Məxfilik Bildirişi",
"firstrun_continue_to_login": "Davam et",
"firstrun_skip_login": "Bu addımı keç",
"context_menu_title": "Open menu",
"context_menu_title": "Menyunu aç",
"pocket_learn_more": "Ətraflı Öyrən"
};

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

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

@ -107,6 +107,6 @@ window.gActivityStreamStrings = {
"firstrun_privacy_notice": "паведамленнем аб прыватнасці",
"firstrun_continue_to_login": "Працягнуць",
"firstrun_skip_login": "Прапусціць гэты крок",
"context_menu_title": "Open menu",
"context_menu_title": "Адкрыць меню",
"pocket_learn_more": "Падрабязней"
};

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

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

@ -107,6 +107,6 @@ window.gActivityStreamStrings = {
"firstrun_privacy_notice": "evezhiadennoù a-fet buhez prevez",
"firstrun_continue_to_login": "Kenderc'hel",
"firstrun_skip_login": "Tremen ar bazenn-mañ",
"context_menu_title": "Open menu",
"context_menu_title": "Digeriñ al lañser",
"pocket_learn_more": "Gouzout hiroc'h"
};

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

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

@ -107,6 +107,6 @@ window.gActivityStreamStrings = {
"firstrun_privacy_notice": "Zásadami ochrany soukromí",
"firstrun_continue_to_login": "Pokračovat",
"firstrun_skip_login": "Přeskočit tento krok",
"context_menu_title": "Open menu",
"context_menu_title": "Otevře nabídku",
"pocket_learn_more": "Zjistit více"
};

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

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

@ -107,6 +107,6 @@ window.gActivityStreamStrings = {
"firstrun_privacy_notice": "Hysbysiad Preifatrwydd",
"firstrun_continue_to_login": "Parhau",
"firstrun_skip_login": "Hepgor y cam hwn",
"context_menu_title": "Open menu",
"context_menu_title": "Agor y ddewislen",
"pocket_learn_more": "Dysgu Rhagor"
};

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше