MNTOR-1833/mozilla monitor rebrand (#3934)
* change brand name * update logos to new assets * find and fix places where old brand name is still used --------- Co-authored-by: Francesco Lodolo <flodolo@mozilla.com> Co-authored-by: Vincent <Vinnl@users.noreply.github.com> Co-authored-by: Kaitlyn Andres <kandres@mozilla.com>
|
@ -49,7 +49,7 @@ fix-flow-data-broker-profiles-manual-remove-how-to-remove-step-2-content = Some
|
|||
fix-flow-data-broker-profiles-manual-remove-how-to-remove-step-3-title = Mark as fixed on this page
|
||||
fix-flow-data-broker-profiles-manual-remove-how-to-remove-step-3-content = This will help you keep track of which exposures still need your attention, and make your overall exposures go down.
|
||||
fix-flow-data-broker-profiles-manual-remove-how-to-remove-step-4-title = Watch for re-exposures
|
||||
fix-flow-data-broker-profiles-manual-remove-how-to-remove-step-4-content = This process does not remove your information from public records, so even after your information is removed, sites often add you back. If you’d like us to handle this for you and automatically remove any new exposures, <upgrade_link>upgrade to { -brand-monitor-premium }</upgrade_link>.
|
||||
fix-flow-data-broker-profiles-manual-remove-how-to-remove-step-4-content = This process does not remove your information from public records, so even after your information is removed, sites often add you back. If you’d like us to handle this for you and automatically remove any new exposures, <subscribe_link>subscribe to { -brand-monitor-plus }</subscribe_link>.
|
||||
fix-flow-data-broker-profiles-manual-remove-review-profiles-headline = Review & remove your profiles
|
||||
fix-flow-data-broker-profiles-manual-remove-button-mark-fixed = Mark as fixed
|
||||
fix-flow-data-broker-profiles-manual-remove-button-remove-for-me = Remove them for me
|
||||
|
@ -59,13 +59,13 @@ fix-flow-data-broker-profiles-automatic-remove-headline = We’ll auto-remove th
|
|||
# $data_broker_count is the number of data brokers scanned monthly
|
||||
fix-flow-data-broker-profiles-automatic-remove-subheadline = {
|
||||
$data_broker_count ->
|
||||
[one] Removing these stops the sale of your personal info on { $data_broker_count } site. Upgrade to { -brand-monitor-premium } and you’ll get:
|
||||
*[other] Removing these stops the sale of your personal info on { $data_broker_count } sites. Upgrade to { -brand-monitor-premium } and you’ll get:
|
||||
[one] Removing these stops the sale of your personal info on { $data_broker_count } site. Subscribe to { -brand-monitor-plus } and you’ll get:
|
||||
*[other] Removing these stops the sale of your personal info on { $data_broker_count } sites. Subscribe to { -brand-monitor-plus } and you’ll get:
|
||||
}
|
||||
# Variables:
|
||||
# $percent is the percentage you can save subscribing to an annual/yearly plan
|
||||
fix-flow-data-broker-profiles-automatic-remove-save-percent = Save { $percent }% with yearly plan 🎉
|
||||
fix-flow-data-broker-profiles-automatic-remove-features-select-plan-headline = { -brand-premium } Protection
|
||||
fix-flow-data-broker-profiles-automatic-remove-features-select-plan-headline = { -brand-monitor-plus }
|
||||
fix-flow-data-broker-profiles-automatic-remove-features-select-plan-toggle-yearly = Yearly
|
||||
fix-flow-data-broker-profiles-automatic-remove-features-select-plan-toggle-monthly = Monthly
|
||||
fix-flow-data-broker-profiles-automatic-remove-features-select-plan-monthly-frequency = Billed monthly
|
||||
|
@ -73,7 +73,7 @@ fix-flow-data-broker-profiles-automatic-remove-features-select-plan-monthly-butt
|
|||
fix-flow-data-broker-profiles-automatic-remove-features-select-plan-yearly-frequency = Billed yearly
|
||||
fix-flow-data-broker-profiles-automatic-remove-features-select-plan-yearly-button = Select yearly plan
|
||||
fix-flow-data-broker-profiles-automatic-remove-features-headline = Features:
|
||||
fix-flow-data-broker-profiles-automatic-remove-features-remove-personal-info = Automatic removal of personal info from sites that are selling it
|
||||
fix-flow-data-broker-profiles-automatic-remove-features-remove-personal-info = Automatic data removal from sites that are selling your personal info
|
||||
fix-flow-data-broker-profiles-automatic-remove-features-guided-experience = Guided experience through high risk data breaches that require manual steps
|
||||
fix-flow-data-broker-profiles-automatic-remove-features-continuous-monitoring = Continuous monitoring for new exposures
|
||||
fix-flow-data-broker-profiles-automatic-remove-features-breach-alerts = Alerts when your data has been breached
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
public-nav-name = { -brand-fx-monitor }
|
||||
public-nav-name = { -brand-mozilla-monitor }
|
||||
|
||||
landing-all-hero-title = Find where your private info is exposed — and take it back
|
||||
landing-all-hero-lead = We scan data breaches to see if your data has been leaked and give you steps to fix it.
|
||||
|
@ -21,6 +21,18 @@ landing-all-value-prop-info-at-risk-description = Data leaks are unfortunately p
|
|||
|
||||
landing-all-quote = <data_breaches>Data breaches</data_breaches> happen every 11 minutes, exposing your private information — but don’t worry, we can help.
|
||||
|
||||
# Non-US FAQ
|
||||
|
||||
landing-all-faq-title = Frequently asked questions
|
||||
# FAQ is an acronym for Frequently Asked Questions
|
||||
landing-all-faq-see-all = See all FAQs
|
||||
landing-all-data-breach-definition-ans = What exactly is a data breach?
|
||||
landing-all-data-breach-definition-qn = A data breach happens when personal or private information gets exposed, stolen or copied without permission. These security incidents can result from cyber attacks on websites, apps or any database where people’s personal information resides. A data breach can also happen accidentally, like if someone’s login credentials get posted publicly.
|
||||
landing-all-data-breach-next-steps-qn = I just found out I’m in a data breach. What do I do next?
|
||||
landing-all-data-breach-next-steps-ans = Visit { -brand-mozilla-monitor } to learn what to do after a data breach and get guided steps to resolve exposures of your personal info. Hackers rely on people reusing passwords, so it’s important to create strong, unique passwords for all your accounts. Keep your passwords in a safe place that only you have access to; this could be the same place where you store important documents or a password manager.
|
||||
landing-all-data-breach-info-qn = What information gets exposed in data breaches?
|
||||
landing-all-data-breach-info-ans = Not all breaches expose all the same info. It just depends on what hackers can access. Many data breaches expose email addresses and passwords. Others expose more sensitive information such as credit card numbers, PIN numbers, and social security numbers.
|
||||
|
||||
# Social proof
|
||||
|
||||
# Variables
|
||||
|
|
|
@ -97,7 +97,7 @@ landing-premium-plans-cards-feature-scan-plus =
|
|||
*[other] <b>Monthly</b> scan of { $dataBrokerTotalCount } data broker sites that may be selling your personal info
|
||||
}
|
||||
landing-premium-plans-cards-feature-removal-free = <b>Manual removal</b> of personal info from sites that are selling it
|
||||
landing-premium-plans-cards-feature-removal-plus = <b>Automatic removal</b> of personal info from sites that are selling it
|
||||
landing-premium-plans-cards-feature-removal-plus = <b>Automatic data removal</b> from sites that are selling your personal info
|
||||
landing-premium-plans-cards-feature-alerts = Get alerts when your data has been breached
|
||||
landing-premium-plans-cards-feature-guidance = <b>Guided help</b> to fix high-risk data breaches
|
||||
landing-premium-plans-cards-feature-monitoring = Continuous monitoring
|
||||
|
@ -112,6 +112,17 @@ landing-premium-value-prop-progress-card-illustration-alt = Progress card deline
|
|||
|
||||
landing-premium-quote = There’s a $240 billion industry of <data_brokers>data brokers</data_brokers> selling your private information for profit. It’s time to take back your privacy.
|
||||
|
||||
# US FAQ
|
||||
|
||||
landing-premium-what-websites-sell-info-qn = What kinds of websites sell my personal information?
|
||||
landing-premium-what-websites-sell-info-ans = Certain websites are in the business of collecting and selling people’s personal information without their consent, which is unfortunately legal in the US. These sites are called data brokers and they make up a $240 billion dollar industry. They use sophisticated methods to collect personal, financial, location, and even health information, often without your consent or even your knowledge. They’ll sell what they’ve collected to third parties, profiting from your information and leaving you open to violations of your privacy and security.
|
||||
landing-premium-continuous-data-removal-qn = What kinds of websites sell my personal information?
|
||||
# Variables:
|
||||
# $data_broker_sites_total_num is the total number of data broker sites available to scan. It will always be plural.
|
||||
landing-premium-continuous-data-removal-ans = { $data_broker_sites_total_num ->
|
||||
*[other] Every month, we use the information you provided about yourself (name, location and birthdate) to search across { $data_broker_sites_total_num } data broker sites that sell people’s private information. If we find your data on any of these sites, we initiate the request for removal. Data removal can take anywhere from a day to a month. This feature is available for { -brand-monitor-plus } users only. <learn_more_link>Learn more here.</learn_more_link>
|
||||
}
|
||||
|
||||
# Scan Limit
|
||||
|
||||
landing-premium-max-scan = We’ve reached the maximum scans for the month. Enter your email to get on our waitlist.
|
||||
|
|
|
@ -6,7 +6,7 @@ onboarding-steps-enter-info-back = Go back
|
|||
onboarding-steps-find-exposures-label = Find exposures
|
||||
onboarding-get-started-heading = Welcome to { -product-short-name }. Let’s find your exposed information.
|
||||
onboarding-get-started-content-data = To find and fix your exposed data, we’ll need to ask for your personal info. Rest assured we will safeguard your information like it’s our own.
|
||||
onboarding-get-started-content-price = We believe in your right to privacy, so basic { -product-short-name } is always free. Upgrade to { -brand-premium } for continuous protection and automatic removal of your personal info.
|
||||
onboarding-get-started-content-price = We believe in your right to privacy, so basic { -product-short-name } is always free. Subscribe to { -brand-monitor-plus } for continuous protection and automatic removal of your personal info.
|
||||
onboarding-get-started-content-explainer = See how we protect your data
|
||||
onboarding-get-started-cta-label = Start my free scan
|
||||
onboarding-get-started-how-it-works-dialog-heading-line1 = We’re here to protect your personal information
|
||||
|
@ -19,9 +19,9 @@ onboarding-get-started-how-it-works-dialog-step1-content = {
|
|||
*[other] With just a few key pieces of information, we’ll search for you in all known data breaches and { $dataBrokerTotalCount } major data broker sites. All users get the first scan free.
|
||||
}
|
||||
onboarding-get-started-how-it-works-dialog-step2-heading = Remove your personal info
|
||||
onboarding-get-started-how-it-works-dialog-step2-content = We’ll show you what personal info each data broker site is selling. You’ll need to contact each data broker to request removal. Removal typically takes 7-10 business days, but some can take longer. Upgrade to { -brand-premium } and we’ll handle this for you.
|
||||
onboarding-get-started-how-it-works-dialog-step2-content = We’ll show you what personal info each data broker site is selling. You’ll need to contact each data broker to request removal. Removal typically takes 7-10 business days, but some can take longer. Subscribe to { -brand-monitor-plus } and we’ll handle this for you.
|
||||
onboarding-get-started-how-it-works-dialog-step3-heading = Resolve data breaches
|
||||
onboarding-get-started-how-it-works-dialog-step3-content = We’ll give you clear steps on how to resolve each data breach. They’ll require access to your accounts, so you’ll need to resolve them manually even if you upgrade to { -brand-premium }.
|
||||
onboarding-get-started-how-it-works-dialog-step3-content = They’ll require access to your accounts, so you’ll need to resolve them manually even if you subscribe to { -brand-monitor-plus }.
|
||||
onboarding-get-started-how-it-works-dialog-confirm-label = OK
|
||||
|
||||
onboarding-enter-details-title = Enter the details you want to protect
|
||||
|
|
|
@ -36,8 +36,8 @@ user-menu-signout-tooltip = Sign out of { -brand-fx-monitor }
|
|||
footer-external-link-faq-label = FAQs
|
||||
footer-external-link-faq-tooltip = Frequently asked questions
|
||||
|
||||
premium-badge-label = { -brand-premium }
|
||||
premium-cta-label = Upgrade to { -brand-premium }
|
||||
premium-badge-label = { -brand-monitor-plus }
|
||||
premium-cta-label = Subscribe to { -brand-monitor-plus }
|
||||
|
||||
# Chart summarizing total exposures
|
||||
|
||||
|
@ -88,16 +88,16 @@ progress-card-heres-what-we-fixed-headline = Here’s what we fixed
|
|||
progress-card-manually-fixed-headline = Manually fixed
|
||||
progress-card-auto-removed-headline = Auto-removed
|
||||
progress-card-in-progress-headline = In progress
|
||||
progress-card-locked-alt = Only available with { -brand-premium }
|
||||
progress-card-locked-alt = Only available with { -brand-monitor-plus }
|
||||
full-name = Full name
|
||||
|
||||
# Here’s What We Fixed Modal
|
||||
|
||||
modal-heres-what-we-fixed-title = About what we fixed
|
||||
modal-heres-what-we-fixed-description-part-one = <b>Manually fixed</b> includes anything you’ve fixed yourself. All data breaches that require access to your accounts need
|
||||
to be fixed manually, even if you’ve upgraded to { -brand-premium }.
|
||||
to be fixed manually, even if you’ve subscribed to { -brand-monitor-plus }.
|
||||
modal-heres-what-we-fixed-description-part-two = <b>Auto-removed</b> includes any exposures from data broker profiles that we’ve removed for you. This is available only for
|
||||
{ -brand-premium } subscribers.
|
||||
{ -brand-monitor-plus } subscribers.
|
||||
modal-heres-what-we-fixed-description-part-three = <b>In Progress</b> includes anything that we are currently
|
||||
working on fixing. Removals typically take 7-14 days but the most
|
||||
difficult sites could take longer. You may also start to see removals
|
||||
|
@ -156,10 +156,10 @@ modal-exposure-type-title = About exposure types
|
|||
# $data_broker_sites_total_num is the total number of data broker sites available to scan. It will always be more than 1.
|
||||
modal-exposure-type-description = We search for you in all known data breaches and { $data_broker_sites_total_num } data broker sites that sell your personal info. Here are the two types of exposures we find:
|
||||
modal-exposure-type-data-breach = <b>Data breach</b> means your information has been compromised in a breach and could be in the wrong hands.
|
||||
Resolving these typically requires accessing your accounts, so you’ll need to take manual steps to resolve each breach even if you’ve upgraded to { -brand-premium }.
|
||||
Resolving these typically requires accessing your accounts, so you’ll need to take manual steps to resolve each breach even if you’ve subscribed to { -brand-monitor-plus }.
|
||||
modal-exposure-type-data-broker-part-one = <b>Info for sale</b> means a data broker site is publicly publishing and selling your personal info.
|
||||
You’ll need to manually request removal from each site.
|
||||
modal-exposure-type-data-broker-part-two = If you’re a { -brand-premium } user, we automatically remove all profiles for you.
|
||||
modal-exposure-type-data-broker-part-two = For { -brand-monitor-plus } subscribers, we auto-remove these profiles on your behalf and make sure they don’t re-add you.
|
||||
In both cases, removals typically take 7-14 days. Some can take longer, while others can happen within the hour.
|
||||
|
||||
# About Exposure Statuses Modal
|
||||
|
@ -170,8 +170,8 @@ modal-exposure-status-title = About exposure statuses
|
|||
modal-exposure-status-description = We search for exposures in all known data breaches and { $data_broker_sites_total_num } data broker sites that sell your personal info.
|
||||
Your exposures will have one of the following statuses:
|
||||
modal-exposure-status-action-needed = <b>Action needed</b> means it is currently active and you need to take steps to fix it.
|
||||
modal-exposure-status-in-progress = <b>In progress</b> means we are actively working on fixing the exposure for you. This is a { -brand-premium } feature.
|
||||
modal-exposure-status-fixed = <b>Fixed</b> means the exposure has been resolved and theres no action for you to take.
|
||||
modal-exposure-status-in-progress = <b>In progress</b> means we are actively working on fixing the exposure for you. This is a { -brand-monitor-plus } feature.
|
||||
modal-exposure-status-fixed = <b>Fixed</b> means the exposure has been resolved and there’s no action for you to take.
|
||||
|
||||
# Dashboard
|
||||
|
||||
|
@ -233,7 +233,7 @@ dashboard-top-banner-no-exposures-found-title = No exposures found
|
|||
# Variables:
|
||||
# $data_broker_sites_total_num is the total number of data broker sites available to scan. This will always be plural.
|
||||
dashboard-top-banner-no-exposures-found-description = Great news! We searched all known data breaches and { $data_broker_sites_total_num } data broker sites that sell personal info and found no exposures.
|
||||
dashboard-top-banner-no-exposures-found-upsell-info = Upgrade to { -brand-premium } and we’ll monitor for any new exposures.
|
||||
dashboard-top-banner-no-exposures-found-upsell-info = Subscribe to { -brand-monitor-plus } and we’ll scan for new exposures every month.
|
||||
dashboard-top-banner-no-exposures-found-cta = Get continuous protection
|
||||
dashboard-no-exposures-label = No exposures found
|
||||
|
||||
|
@ -261,8 +261,8 @@ dashboard-top-banner-your-data-is-protected-cta = See what’s fixed
|
|||
# $starting_exposure_total_num is the number of exposures the user has resolved.
|
||||
dashboard-top-banner-your-data-is-protected-all-fixed-description =
|
||||
{ $starting_exposure_total_num ->
|
||||
[one] Great work, { $starting_exposure_total_num } exposure of your data is fixed! Upgrade to { -brand-premium } and we’ll continue to monitor for new exposures. Plus, we’ll automatically remove your info from any sites that are selling it.
|
||||
*[other] Great work, all { $starting_exposure_total_num } exposures of your data are fixed! Upgrade to { -brand-premium } and we’ll continue to monitor for new exposures. Plus, we’ll automatically remove your info from any sites that are selling it.
|
||||
[one] Great work, { $starting_exposure_total_num } exposure of your data is fixed! Subscribe to { -brand-monitor-plus } and we’ll scan for new exposures every month. Plus, we’ll automatically remove your info from any sites that are selling it.
|
||||
*[other] Great work, all { $starting_exposure_total_num } exposures of your data are fixed! Subscribe to { -brand-monitor-plus } and we’ll and we’ll scan for new exposures every month. Plus, we’ll automatically remove your info from any sites that are selling it.
|
||||
}
|
||||
|
||||
# Variables:
|
||||
|
@ -357,7 +357,7 @@ false-door-test-phase-3-content-part-two-dashboard = Automatically remove data f
|
|||
|
||||
# Premium upsell dialog
|
||||
|
||||
premium-upsell-dialog-title = Choose the level of protection that’s right for you
|
||||
premium-upsell-dialog-title = Turn on automatic data removal with { -brand-monitor-plus }
|
||||
|
||||
# Guided Resolution Flow
|
||||
|
||||
|
@ -385,7 +385,7 @@ data-broker-profiles-exposure-reduction = Exposure reduction: { $exposure_reduct
|
|||
exposure-reduction-chart-heading = <nr>{ $nr }</nr><percent>%</percent>
|
||||
exposure-reduction-chart-explanation = <label_line_1>exposures will</label_line_1><label_line_2>be reduced</label_line_2>
|
||||
|
||||
welcome-to-premium-data-broker-profiles-title-part-one = Welcome to { -brand-premium }.
|
||||
welcome-to-premium-data-broker-profiles-title-part-one = Welcome to { -brand-monitor-plus }.
|
||||
welcome-to-premium-data-broker-profiles-title-part-two = We’ll remove those profiles ASAP.
|
||||
# Variables:
|
||||
# $profile_total_num is the number of exposures came back from user data broker scans.
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
## The following messages are brand and should be kept entirely in English
|
||||
## unless otherwise indicated.
|
||||
|
||||
-product-name = Firefox Monitor
|
||||
-product-name = Mozilla Monitor
|
||||
-product-name-nowrap = <span class="nowrap">{ -product-name }</span>
|
||||
-product-short-name = Monitor
|
||||
-brand-name = Firefox
|
||||
|
@ -854,7 +854,7 @@ ad-unit-6-before-you-complete = Before you complete that next signup, use an ema
|
|||
|
||||
-brand-firefox = Firefox
|
||||
-brand-monitor = Monitor
|
||||
-brand-fx-monitor = Firefox Monitor
|
||||
-brand-fx-monitor = Mozilla Monitor
|
||||
-brand-mozilla = Mozilla
|
||||
-brand-premium = Premium
|
||||
-brand-monitor-premium = Monitor Premium
|
||||
|
@ -862,6 +862,8 @@ ad-unit-6-before-you-complete = Before you complete that next signup, use an ema
|
|||
-brand-github = GitHub
|
||||
-brand-mozilla-vpn = Mozilla VPN
|
||||
-brand-relay = Firefox Relay
|
||||
-brand-mozilla-monitor = Mozilla Monitor
|
||||
-brand-monitor-plus = Monitor Plus
|
||||
|
||||
##
|
||||
|
||||
|
@ -875,8 +877,10 @@ meta-desc-2 = Find out if you’ve been part of a data breach with { -brand-fx-m
|
|||
|
||||
## Header
|
||||
|
||||
# Deprecated
|
||||
brand-fx-monitor = { -brand-fx-monitor }
|
||||
sign-in = Sign In
|
||||
brand-mozilla-monitor = { -brand-fx-monitor }
|
||||
|
||||
## Site navigation
|
||||
|
||||
|
|
Двоичные данные
public/images/email/monitor-logo-bg-light.png
До Ширина: | Высота: | Размер: 4.1 KiB После Ширина: | Высота: | Размер: 17 KiB |
Двоичные данные
public/images/email/monitor-logo-transparent-dark-mode.png
До Ширина: | Высота: | Размер: 4.2 KiB После Ширина: | Высота: | Размер: 13 KiB |
Двоичные данные
public/images/email/monitor-logo-transparent.png
До Ширина: | Высота: | Размер: 4.2 KiB После Ширина: | Высота: | Размер: 13 KiB |
|
@ -31,14 +31,14 @@ export function generateMetadata() {
|
|||
title: l10n.getString("breach-meta-title"),
|
||||
twitter: {
|
||||
card: "summary_large_image",
|
||||
title: l10n.getString("brand-fx-monitor"),
|
||||
title: l10n.getString("brand-mozilla-monitor"),
|
||||
description: l10n.getString("meta-desc-2"),
|
||||
images: ["/images/og-image.webp"],
|
||||
},
|
||||
openGraph: {
|
||||
title: l10n.getString("brand-fx-monitor"),
|
||||
title: l10n.getString("brand-mozilla-monitor"),
|
||||
description: l10n.getString("meta-desc-2"),
|
||||
siteName: l10n.getString("brand-fx-monitor"),
|
||||
siteName: l10n.getString("brand-mozilla-monitor"),
|
||||
type: "website",
|
||||
url: process.env.SERVER_URL,
|
||||
images: ["/images/og-image.webp"],
|
||||
|
|
|
@ -68,7 +68,7 @@ const MainLayout = async (props: Props) => {
|
|||
src={MonitorLogo}
|
||||
width="213"
|
||||
height="33"
|
||||
alt={l10n.getString("brand-fx-monitor")}
|
||||
alt={l10n.getString("brand-mozilla-monitor")}
|
||||
priority
|
||||
/>
|
||||
</a>
|
||||
|
|
|
@ -52,7 +52,9 @@ const glyphs: Record<string, StaticImageData> = {
|
|||
export function generateMetadata(props: { params: { breachName: string } }) {
|
||||
const l10n = getL10n();
|
||||
return {
|
||||
title: `${l10n.getString("brand-fx-monitor")} - ${props.params.breachName}`,
|
||||
title: `${l10n.getString("brand-mozilla-monitor")} - ${
|
||||
props.params.breachName
|
||||
}`,
|
||||
twitter: {
|
||||
card: "summary_large_image",
|
||||
title: l10n.getString("breach-detail-meta-social-title", {
|
||||
|
@ -66,7 +68,7 @@ export function generateMetadata(props: { params: { breachName: string } }) {
|
|||
company: props.params.breachName,
|
||||
}),
|
||||
description: l10n.getString("breach-detail-meta-social-description"),
|
||||
siteName: l10n.getString("brand-fx-monitor"),
|
||||
siteName: l10n.getString("brand-mozilla-monitor"),
|
||||
type: "website",
|
||||
url: process.env.SERVER_URL,
|
||||
images: ["/images/og-image.webp"],
|
||||
|
|
|
@ -78,7 +78,7 @@ const GuestLayout = async (props: Props) => {
|
|||
src={MonitorLogo}
|
||||
width="213"
|
||||
height="33"
|
||||
alt={l10n.getString("brand-fx-monitor")}
|
||||
alt={l10n.getString("brand-mozilla-monitor")}
|
||||
priority
|
||||
/>
|
||||
</a>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
"use client";
|
||||
|
||||
import Image from "next/image";
|
||||
import MozillaMonitorLogo from "../../../(proper_react)/images/firefox-monitor-logo.webp";
|
||||
import MozillaMonitorLogo from "../../../(proper_react)/images/monitor-logo.webp";
|
||||
import styles from "./FalseDoorBanner.module.scss";
|
||||
import { CloseBtn } from "../../../components/server/Icons";
|
||||
import { useEffect, useState } from "react";
|
||||
|
|
Двоичные данные
src/app/(proper_react)/images/monitor-logo.webp
До Ширина: | Высота: | Размер: 1.7 KiB После Ширина: | Высота: | Размер: 3.7 KiB |
|
@ -424,7 +424,7 @@ it("shows US users with Premium the Premium badge", () => {
|
|||
render(<ComposedDashboard />);
|
||||
|
||||
// We show a Premium badge on desktop in the toolbar and in the mobile menu
|
||||
const premiumBadges = screen.queryAllByText("Premium");
|
||||
const premiumBadges = screen.queryAllByText("Monitor Plus");
|
||||
expect(premiumBadges.length).toBe(2);
|
||||
});
|
||||
|
||||
|
@ -437,7 +437,7 @@ it("shows US users without Premium the upsell button", () => {
|
|||
|
||||
// We show a CTA on desktop in the toolbar and in the mobile menu
|
||||
const premiumCtas = screen.queryAllByRole("button", {
|
||||
name: "Upgrade to Premium",
|
||||
name: "Subscribe to Monitor Plus",
|
||||
});
|
||||
expect(premiumCtas.length).toBe(2);
|
||||
});
|
||||
|
@ -447,7 +447,7 @@ it("does not show non-US users the Premium badge", () => {
|
|||
render(<ComposedDashboard />);
|
||||
|
||||
// We show a Premium badge on desktop in the toolbar and in the mobile menu
|
||||
const premiumBadges = screen.queryAllByText("Premium");
|
||||
const premiumBadges = screen.queryAllByText("Monitor Plus");
|
||||
expect(premiumBadges.length).toBe(0);
|
||||
});
|
||||
|
||||
|
@ -457,7 +457,7 @@ it("does not show non-US users the upsell button", () => {
|
|||
|
||||
// We show a CTA on desktop in the toolbar and in the mobile menu
|
||||
const premiumCtas = screen.queryAllByRole("button", {
|
||||
name: "Upgrade to Premium",
|
||||
name: "Subscribe to Monitor Plus",
|
||||
});
|
||||
expect(premiumCtas.length).toBe(0);
|
||||
});
|
||||
|
@ -472,30 +472,30 @@ it("opens and closes the premium upsell dialog via the Premium upsell badge)", a
|
|||
|
||||
// We show a CTA on desktop in the toolbar and in the mobile menu
|
||||
const premiumCtas = screen.queryAllByRole("button", {
|
||||
name: "Upgrade to Premium",
|
||||
name: "Subscribe to Monitor Plus",
|
||||
});
|
||||
expect(premiumCtas.length).toBe(2);
|
||||
|
||||
// Shows the modal for the desktop layout
|
||||
await user.click(premiumCtas[0]);
|
||||
expect(
|
||||
screen.getByText("Choose the level of protection that’s right for you"),
|
||||
screen.getByText("Turn on automatic data removal with Monitor Plus"),
|
||||
).toBeInTheDocument();
|
||||
const closeButtonIcon1 = screen.getByLabelText("Close");
|
||||
await user.click(closeButtonIcon1.parentElement as HTMLElement);
|
||||
expect(
|
||||
screen.queryByText("Choose the level of protection that’s right for you"),
|
||||
screen.queryByText("Turn on automatic data removal with Monitor Plus"),
|
||||
).not.toBeInTheDocument();
|
||||
|
||||
// Shows the modal for the mobile layout
|
||||
await user.click(premiumCtas[1]);
|
||||
expect(
|
||||
screen.getByText("Choose the level of protection that’s right for you"),
|
||||
screen.getByText("Turn on automatic data removal with Monitor Plus"),
|
||||
).toBeInTheDocument();
|
||||
const closeButtonIcon2 = screen.getByLabelText("Close");
|
||||
await user.click(closeButtonIcon2.parentElement as HTMLElement);
|
||||
expect(
|
||||
screen.queryByText("Choose the level of protection that’s right for you"),
|
||||
screen.queryByText("Turn on automatic data removal with Monitor Plus"),
|
||||
).not.toBeInTheDocument();
|
||||
});
|
||||
|
||||
|
@ -514,12 +514,12 @@ it("opens and closes the premium upsell dialog via the Premium upsell button)",
|
|||
|
||||
await user.click(premiumCta);
|
||||
expect(
|
||||
screen.getByText("Choose the level of protection that’s right for you"),
|
||||
screen.getByText("Turn on automatic data removal with Monitor Plus"),
|
||||
).toBeInTheDocument();
|
||||
const closeButtonIcon1 = screen.getByLabelText("Close");
|
||||
await user.click(closeButtonIcon1.parentElement as HTMLElement);
|
||||
expect(
|
||||
screen.queryByText("Choose the level of protection that’s right for you"),
|
||||
screen.queryByText("Turn on automatic data removal with Monitor Plus"),
|
||||
).not.toBeInTheDocument();
|
||||
});
|
||||
|
||||
|
@ -533,7 +533,7 @@ it("toggles between the product offerings in the premium upsell dialog", async (
|
|||
|
||||
// We show a CTA on desktop in the toolbar and in the mobile menu
|
||||
const premiumCtas = screen.queryAllByRole("button", {
|
||||
name: "Upgrade to Premium",
|
||||
name: "Subscribe to Monitor Plus",
|
||||
});
|
||||
expect(premiumCtas.length).toBe(2);
|
||||
|
||||
|
@ -572,7 +572,7 @@ it("counts in Glean how often people click the upgrade CTA to purchase the month
|
|||
|
||||
// We show a CTA on desktop in the toolbar and in the mobile menu
|
||||
const premiumCtas = screen.queryAllByRole("button", {
|
||||
name: "Upgrade to Premium",
|
||||
name: "Subscribe to Monitor Plus",
|
||||
});
|
||||
await user.click(premiumCtas[0]);
|
||||
const productTabMonthly = screen.getByRole("tab", { name: "Monthly" });
|
||||
|
@ -606,7 +606,7 @@ it("counts in Glean how often people click the upgrade CTA to purchase the yearl
|
|||
|
||||
// We show a CTA on desktop in the toolbar and in the mobile menu
|
||||
const premiumCtas = screen.queryAllByRole("button", {
|
||||
name: "Upgrade to Premium",
|
||||
name: "Subscribe to Monitor Plus",
|
||||
});
|
||||
await user.click(premiumCtas[0]);
|
||||
// Switch to the monthly tab by clicking it...
|
||||
|
@ -642,7 +642,7 @@ it("shows returned free user who has resolved all tasks premium upsell and all f
|
|||
|
||||
// We show a CTA on desktop in the toolbar and in the mobile menu
|
||||
const premiumCtas = screen.queryAllByRole("button", {
|
||||
name: "Upgrade to Premium",
|
||||
name: "Subscribe to Monitor Plus",
|
||||
});
|
||||
expect(premiumCtas.length).toBe(2);
|
||||
|
||||
|
|
|
@ -117,7 +117,7 @@ export function ManualRemoveView(props: Props) {
|
|||
"fix-flow-data-broker-profiles-manual-remove-how-to-remove-step-4-content",
|
||||
{
|
||||
elems: {
|
||||
upgrade_link: (
|
||||
subscribe_link: (
|
||||
<Link href="/redesign/user/dashboard/fix/data-broker-profiles/automatic-remove" />
|
||||
),
|
||||
},
|
||||
|
|
|
@ -25,7 +25,7 @@ import { SerializedSubscriber } from "../../../next-auth.js";
|
|||
const fxaProviderConfig: OAuthConfig<FxaProfile> = {
|
||||
// As per https://mozilla.slack.com/archives/C4D36CAJW/p1683642497940629?thread_ts=1683642325.465929&cid=C4D36CAJW,
|
||||
// we should file a ticket against SVCSE with the `fxa` component to add
|
||||
// a redirect URL of /api/auth/callback/fxa for Firefox Monitor,
|
||||
// a redirect URL of /api/auth/callback/fxa for Mozilla Monitor,
|
||||
// for every environment we deploy to:
|
||||
id: "fxa",
|
||||
name: "Mozilla accounts",
|
||||
|
|
|
@ -89,7 +89,7 @@ export const AppPicker = () => {
|
|||
/* c8 ignore next 3 */
|
||||
typeof document !== "undefined"
|
||||
? document.location.host
|
||||
: "monitor.firefox.com";
|
||||
: "monitor.mozilla.org";
|
||||
const products = getProducts(referringHost, l10n);
|
||||
const linkRefs: Record<
|
||||
keyof typeof products,
|
||||
|
|
|
@ -15,7 +15,6 @@ import { logger } from "./logging";
|
|||
export async function getExperiments(
|
||||
userId: string | undefined,
|
||||
): Promise<unknown> {
|
||||
let features;
|
||||
if (["stage", "production"].includes(process.env.APP_ENV ?? "local")) {
|
||||
const serverUrl = process.env.NIMBUS_SIDECAR_URL;
|
||||
if (!serverUrl) {
|
||||
|
@ -23,7 +22,7 @@ export async function getExperiments(
|
|||
}
|
||||
|
||||
try {
|
||||
features = await fetch(`${serverUrl}/v1/features/`, {
|
||||
const features = await fetch(`${serverUrl}/v1/features/`, {
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
|
@ -33,11 +32,11 @@ export async function getExperiments(
|
|||
context: { key: "example-key" },
|
||||
}),
|
||||
});
|
||||
|
||||
return features?.json();
|
||||
} catch (ex) {
|
||||
logger.error(`Could not connect to Cirrus on ${serverUrl}`, ex);
|
||||
captureException(ex);
|
||||
}
|
||||
}
|
||||
|
||||
return features?.json();
|
||||
}
|
||||
|
|
|
@ -24,7 +24,7 @@ const inter = Inter({ subsets: ["latin"], variable: "--font-inter" });
|
|||
export function generateMetadata(): Metadata {
|
||||
const l10n = getL10n();
|
||||
return {
|
||||
title: l10n.getString("brand-fx-monitor"),
|
||||
title: l10n.getString("brand-mozilla-monitor"),
|
||||
description: l10n.getString("meta-desc-2"),
|
||||
metadataBase:
|
||||
typeof process.env.SERVER_URL === "string"
|
||||
|
@ -32,14 +32,14 @@ export function generateMetadata(): Metadata {
|
|||
: undefined,
|
||||
twitter: {
|
||||
card: "summary_large_image",
|
||||
title: l10n.getString("brand-fx-monitor"),
|
||||
title: l10n.getString("brand-mozilla-monitor"),
|
||||
description: l10n.getString("meta-desc-2"),
|
||||
images: ["/images/og-image.webp"],
|
||||
},
|
||||
openGraph: {
|
||||
title: l10n.getString("brand-fx-monitor"),
|
||||
title: l10n.getString("brand-mozilla-monitor"),
|
||||
description: l10n.getString("meta-desc-2"),
|
||||
siteName: l10n.getString("brand-fx-monitor"),
|
||||
siteName: l10n.getString("brand-mozilla-monitor"),
|
||||
type: "website",
|
||||
url: process.env.SERVER_URL,
|
||||
images: ["/images/og-image.webp"],
|
||||
|
|
Двоичные данные
src/client/images/email/monitor-logo-bg-light.png
До Ширина: | Высота: | Размер: 4.1 KiB После Ширина: | Высота: | Размер: 17 KiB |
Двоичные данные
src/client/images/email/monitor-logo-transparent-dark-mode.png
До Ширина: | Высота: | Размер: 4.2 KiB После Ширина: | Высота: | Размер: 13 KiB |
Двоичные данные
src/client/images/email/monitor-logo-transparent.png
До Ширина: | Высота: | Размер: 4.2 KiB После Ширина: | Высота: | Размер: 13 KiB |
Двоичные данные
src/client/images/monitor-logo-bg-light.webp
До Ширина: | Высота: | Размер: 3.4 KiB После Ширина: | Высота: | Размер: 1.6 KiB |
Двоичные данные
src/client/images/monitor-logo-transparent-dark-mode.webp
До Ширина: | Высота: | Размер: 3.5 KiB После Ширина: | Высота: | Размер: 2.1 KiB |
Двоичные данные
src/client/images/monitor-logo-transparent.webp
До Ширина: | Высота: | Размер: 1.7 KiB После Ширина: | Высота: | Размер: 2.3 KiB |
Двоичные данные
src/client/images/monitor-logo-transparent@2x.webp
До Ширина: | Высота: | Размер: 3.5 KiB После Ширина: | Высота: | Размер: 4.9 KiB |
|
@ -49,7 +49,7 @@ export class DashboardPage {
|
|||
name: "Mozilla apps and services",
|
||||
});
|
||||
this.upgradeToPremium = page.getByRole("button", {
|
||||
name: "Upgrade To Premium",
|
||||
name: "Subscribe to Monitor Plus",
|
||||
});
|
||||
|
||||
//sidebar nav
|
||||
|
|
|
@ -33,7 +33,7 @@ export class DataBreachPage {
|
|||
|
||||
// navbar
|
||||
this.dataBreachesNavbar = page.locator(".header-wrapper");
|
||||
this.dataBreachesLogo = page.getByAltText("Firefox Monitor");
|
||||
this.dataBreachesLogo = page.getByAltText("Mozilla Monitor");
|
||||
this.dataBreachesLogoLink = page.locator(".header-wrapper a");
|
||||
this.dataBreachesNavbarProfile = page.locator(".user-menu-button");
|
||||
this.dataBreachesNavbarProfileButton = page.locator(".nav-toggle");
|
||||
|
|
|
@ -83,7 +83,7 @@ export function getAllPriorityDataClasses (isUserBrowserFirefox = false, isUserL
|
|||
{
|
||||
recommendationCopy: {
|
||||
subhead: 'rec-pw-2-subhead',
|
||||
// Comment this CTA back in once monitor.firefox.com
|
||||
// Comment this CTA back in once monitor.mozilla.org
|
||||
// has been added to the allowlist and is able to open about:logins
|
||||
// https://searchfox.org/mozilla-central/source/browser/app/permissions
|
||||
// cta: isUserBrowserFirefox ? "rec-pw-2-cta-fx" : "",
|
||||
|
|
|
@ -321,7 +321,7 @@ const getTemplate = (data, partial, l10n) => {
|
|||
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />
|
||||
|
||||
<title>
|
||||
${getMessage('brand-fx-monitor')}
|
||||
${getMessage('brand-mozilla-monitor')}
|
||||
</title>
|
||||
|
||||
${getStyles()}
|
||||
|
|
|
@ -10,8 +10,8 @@ import { getFloatingBanner } from '../views/partials/floatingBanner.js'
|
|||
* @type {ViewPartial<GuestViewPartialData<any>>}
|
||||
*/
|
||||
const guestLayout = data => {
|
||||
const siteTitle = data.meta?.title ?? getMessage('brand-fx-monitor')
|
||||
const metaTitle = data.meta?.socialTitle ?? getMessage('brand-fx-monitor')
|
||||
const siteTitle = data.meta?.title ?? getMessage('brand-mozilla-monitor')
|
||||
const metaTitle = data.meta?.socialTitle ?? getMessage('brand-mozilla-monitor')
|
||||
const metaDescription = data.meta?.socialDescription ?? getMessage('meta-desc-2')
|
||||
const pageUrl = `${AppConstants.SERVER_URL}${data.pathname ?? '/'}`
|
||||
|
||||
|
@ -31,7 +31,7 @@ const guestLayout = data => {
|
|||
<meta name='twitter:image' content='${AppConstants.SERVER_URL}/images/og-image.webp'>
|
||||
<meta property='og:title' content='${metaTitle}'>
|
||||
<meta property='og:description' content='${metaDescription}'>
|
||||
<meta property='og:site_name' content='${getMessage('brand-fx-monitor')}'>
|
||||
<meta property='og:site_name' content='${getMessage('brand-mozilla-monitor')}'>
|
||||
<meta property='og:type' content='website'>
|
||||
<meta property='og:url' content='${pageUrl}'>
|
||||
<meta property='og:image' content='${AppConstants.SERVER_URL}/images/og-image.webp'>
|
||||
|
@ -64,7 +64,7 @@ const guestLayout = data => {
|
|||
<header>
|
||||
<div class="header-wrapper">
|
||||
<a href='/'>
|
||||
<img class='monitor-logo' srcset='/images/monitor-logo-transparent.webp 213w, /images/monitor-logo-transparent@2x.webp 425w' width='213' height='33' alt='${getMessage('brand-fx-monitor')}'>
|
||||
<img class='monitor-logo' srcset='/images/monitor-logo-transparent.webp 213w, /images/monitor-logo-transparent@2x.webp 425w' width='213' height='33' alt='${getMessage('brand-mozilla-monitor')}'>
|
||||
</a>
|
||||
<menu>
|
||||
<li><a href='/user/breaches' data-cta-id='sign-in-1' class='button secondary'>${getMessage('sign-in')}</a></li>
|
||||
|
|
|
@ -10,8 +10,8 @@ import { getFloatingBanner } from '../views/partials/floatingBanner.js'
|
|||
* @type {ViewPartial<MainViewPartialData<any>>}
|
||||
*/
|
||||
const mainLayout = data => {
|
||||
const siteTitle = data.meta?.title ?? getMessage('brand-fx-monitor')
|
||||
const metaTitle = data.meta?.socialTitle ?? getMessage('brand-fx-monitor')
|
||||
const siteTitle = data.meta?.title ?? getMessage('brand-mozilla-monitor')
|
||||
const metaTitle = data.meta?.socialTitle ?? getMessage('brand-mozilla-monitor')
|
||||
const metaDescription = data.meta?.socialDescription ?? getMessage('meta-desc-2')
|
||||
const pageUrl = `${AppConstants.SERVER_URL}${data.pathname ?? '/'}`
|
||||
|
||||
|
@ -54,7 +54,7 @@ const mainLayout = data => {
|
|||
<meta name='twitter:image' content='${AppConstants.SERVER_URL}/images/og-image.webp'>
|
||||
<meta property='og:title' content='${metaTitle}'>
|
||||
<meta property='og:description' content='${metaDescription}'>
|
||||
<meta property='og:site_name' content='${getMessage('brand-fx-monitor')}'>
|
||||
<meta property='og:site_name' content='${getMessage('brand-mozilla-monitor')}'>
|
||||
<meta property='og:type' content='website'>
|
||||
<meta property='og:url' content='${pageUrl}'>
|
||||
<meta property='og:image' content='${AppConstants.SERVER_URL}/images/og-image.webp'>
|
||||
|
@ -80,7 +80,7 @@ const mainLayout = data => {
|
|||
${showRecruitmentBanner()}
|
||||
<div class="header-wrapper">
|
||||
<a href='/user/breaches'>
|
||||
<img class='monitor-logo' srcset='/images/monitor-logo-transparent.webp 213w, /images/monitor-logo-transparent@2x.webp 425w' width='213' height='33' alt='${getMessage('brand-fx-monitor')}'>
|
||||
<img class='monitor-logo' srcset='/images/monitor-logo-transparent.webp 213w, /images/monitor-logo-transparent@2x.webp 425w' width='213' height='33' alt='${getMessage('brand-mozilla-monitor')}'>
|
||||
</a>
|
||||
<div class='nav-wrapper'>
|
||||
<button class='nav-toggle'>
|
||||
|
|