зеркало из https://github.com/mozilla/gecko-dev.git
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:
Родитель
f3cf4b21e4
Коммит
d302d682b3
|
@ -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 d’articles
|
||||
|
||||
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 je’eporã
|
||||
pocket_learn_more=Kuaave
|
||||
pocket_how_it_works=Mba’éichapa omba’apo
|
||||
|
@ -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 browser’s profile into Firefox.
|
||||
# LOCALIZATION NOTE (manual_migration_import_button): This message is shown on a button that starts the process
|
||||
# of importing another browser’s 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 d’articles
|
||||
|
||||
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 qu’avè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 Sync’e 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=開啟選單
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -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"
|
||||
};
|
||||
|
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче