Merge branch 'main' into MNTOR-1356
This commit is contained in:
Коммит
ec781761f2
|
@ -48,6 +48,7 @@ jobs:
|
|||
- checkout
|
||||
- node/install-packages
|
||||
- run: npm run lint:js
|
||||
- run: npm run lint:ts
|
||||
lint-css:
|
||||
executor: node
|
||||
steps:
|
||||
|
|
|
@ -7,15 +7,18 @@
|
|||
},
|
||||
"extends": [
|
||||
"standard",
|
||||
"plugin:jsdoc/recommended"
|
||||
"plugin:jsdoc/recommended",
|
||||
"plugin:@typescript-eslint/recommended"
|
||||
],
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"parserOptions": {
|
||||
"ecmaVersion": "latest",
|
||||
"sourceType": "module"
|
||||
},
|
||||
"plugins": [
|
||||
"header",
|
||||
"jsdoc"
|
||||
"jsdoc",
|
||||
"@typescript-eslint"
|
||||
],
|
||||
"rules": {
|
||||
"no-prototype-builtins": "warn",
|
||||
|
@ -37,6 +40,12 @@
|
|||
"argsIgnorePattern": "^_",
|
||||
"varsIgnorePattern": "^_"
|
||||
}
|
||||
],
|
||||
"@typescript-eslint/ban-ts-comment": [
|
||||
"error",
|
||||
{
|
||||
"ts-ignore": "allow-with-description"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -600,7 +600,7 @@ menu-item-logout = Titz'apïx molojri'ïl
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Taq Ojqanem chuqa' Ichinanem
|
||||
github = { -brand-github }
|
||||
|
||||
|
|
|
@ -801,7 +801,7 @@ menu-item-logout = Odhlásit se
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Podmínky a ochrana soukromí
|
||||
github = { -brand-github }
|
||||
|
||||
|
|
|
@ -15,8 +15,6 @@
|
|||
-brand-lockwise = Firefox Lockwise
|
||||
-brand-send = Firefox Send
|
||||
-brand-fpn = Rhwydwaith Preifat Firefox
|
||||
-brand-mozilla-vpn = Mozilla VPN
|
||||
-brand-relay = Firefox Relay
|
||||
|
||||
##
|
||||
|
||||
|
@ -37,6 +35,9 @@ user-add-invalid-email = E-bost Annilys
|
|||
user-add-too-many-emails = Rydych yn monitro'r nifer mwyaf o gyfeiriadau e-byst.
|
||||
user-add-email-verify-subject = Dilysu eich tanysgrifiad i { -product-name }.
|
||||
user-add-duplicate-email = Mae'r e-bost hwn eisoes wedi'i ychwanegu at { -product-name }.
|
||||
# Variables:
|
||||
# $preferencesLink (String) - Link to preferences
|
||||
# $userEmail (String) - User email address
|
||||
user-add-duplicate-email-part-2 = Ewch i'ch { $preferencesLink } i wirio statws { $userEmail }.
|
||||
error-headline = Gwall
|
||||
user-verify-token-error = Mae angen tocyn dilysu.
|
||||
|
@ -50,11 +51,11 @@ scan-placeholder = Rhowch eich Cyfeiriad E-bost
|
|||
scan-submit = Chwilio am eich E-bost
|
||||
scan-error = Rhaid ei fod yn e-bost dilys.
|
||||
download-firefox-banner-button = Llwytho { -brand-name } i Lawr
|
||||
# Appears after Firefox Monitor has sent a verification email to a new user.
|
||||
# Appears after Firefox Monitor has sent a verification email to a new user.
|
||||
signup-modal-sent = Anfonwyd!
|
||||
sign-up = Ymuno
|
||||
form-signup-error = Rhaid ei fod yn e-bost dilys
|
||||
# breach-date = the calendar date a particular data theft occurred.
|
||||
# breach-date = the calendar date a particular data theft occurred.
|
||||
breach-date = Dyddiad tor-data:
|
||||
# compromised accounts = the total number of user accounts exposed in data breach
|
||||
compromised-accounts = Cyfrifon wedi eu cyfaddawdu:
|
||||
|
@ -64,6 +65,8 @@ unsub-headline = Dad-danysgrifio o { -product-name-nowrap }
|
|||
unsub-blurb = Bydd hyn yn dileu'ch e-bost o'r rhestr { -product-name-nowrap } ac ni fyddwch yn derbyn rhybuddion pan fydd achosion o tor-data'n cael eu cyhoeddi.
|
||||
unsub-button = Dad-danysgrifio
|
||||
# Breach data provided by Have I Been Pwned.
|
||||
# Variables:
|
||||
# $hibp-link (String) - Link to Have I Been Pwned
|
||||
hibp-attribution = Mae data tor-data wedi ei ddarparu gan { $hibp-link }
|
||||
share-twitter = Mae gan y rhan fwyaf o bobl tua 100 o gyfrifon ar-lein. A oes unrhyw un o'ch rhai chi wedi dioddef tor-data? Dewch i ni gael gweld.
|
||||
share-facebook-headline = Dewch i weld a ydych chi wedi bod yn rhan o dor-data
|
||||
|
@ -108,8 +111,6 @@ preferences = Dewisiadau
|
|||
# Link title
|
||||
home = Cartref
|
||||
# Link title
|
||||
breaches = Tor-data
|
||||
# Link title
|
||||
security-tips = Awgrymiadau Diogelwch
|
||||
fxa-account = { -brand-fxa }
|
||||
# Aria button message to open menu. "Open Firefox Account Navigation"
|
||||
|
@ -190,7 +191,9 @@ feat-security-tips = Awgrymiadau diogelwch i ddiogelu eich cyfrifon
|
|||
feat-sensitive = Chwilio uwch mewn tor-data sensitif
|
||||
feat-enroll-multiple = Cofrestru nifer o e-byst ar gyfer monitro tor-data
|
||||
# This string is shown beneath each of the user’s email addresses to indicate
|
||||
# how many known breaches that email address was found in.
|
||||
# how many known breaches that email address was found in.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
appears-in-x-breaches =
|
||||
{ $breachCount ->
|
||||
[zero] Nid yw'n ymddangos mewn unrhyw dor-data.
|
||||
|
@ -206,6 +209,8 @@ get-email-alerts = Cadwch yn ddiogel: Sicrhewch rybuddion e-bost pan fydd eich m
|
|||
search-for-your-email = Chwiliwch am eich cyfeiriad e-bost mewn tor-data cyhoeddus sy'n mynd yn ôl i 2007.
|
||||
back-to-top = Nôl i'r Brig
|
||||
comm-opt-0 = E-bostiwch fi os yw un o'm cyfeiriadau e-bost isod yn ymddangos mewn achos o dor-data.
|
||||
# Variables:
|
||||
# $primaryEmail (String) - User primary email address
|
||||
comm-opt-1 = Anfonwch yr holl rybuddion tor-data i { $primaryEmail }.
|
||||
stop-monitoring-this = Peidio monitro'r e-bost hwn.
|
||||
resend-verification = Ail-anfon yr e-bost dilysu
|
||||
|
@ -214,7 +219,7 @@ send-verification = Anfon Dolen Dilysu
|
|||
# This string is a header on the user preferences page and
|
||||
# appears above a check-box list of user options which allow
|
||||
# the user to choose whether or not they want to receive breach
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# email address.
|
||||
breach-summary = Crynodeb o'r Tor-data
|
||||
show-breaches-for-this-email = Dangos bob achos o dor-data'r e-bost hwn.
|
||||
|
@ -225,8 +230,15 @@ remove-fxm-blurb = Diffodd rybuddion { -product-name }. Bydd eich { -brand-fxa }
|
|||
manage-email-addresses = Rheoli Cyfeiriadau E-bost
|
||||
# Link title
|
||||
latest-breach-link = Gweld os oeddech yn rhan o'r tor-data hyn
|
||||
|
||||
## Variables:
|
||||
## $userName (String) - Username
|
||||
|
||||
welcome-back = Croeso nôl, { $userName }!
|
||||
welcome-user = Croeso, { $userName }!
|
||||
|
||||
##
|
||||
|
||||
breach-alert-subject = Mae { -product-name } wedi canfod eich e-bost mewn tor-data newydd.
|
||||
your-info-was-discovered-headline = Cafodd eich manylion eu darganfod mewn tor-data newydd.
|
||||
your-info-was-discovered-blurb =
|
||||
|
@ -248,6 +260,8 @@ ba-next-step-blurb-3 = Defnyddiwch reolwr cyfrinair i greu cyfrineiriau cryf ac
|
|||
faq1 = Dw i ddim yn adnabod y cwmni neu'r wefan hon. Pam ydw i yn y tor-data hwn?
|
||||
faq2 = Pam y cymerodd gymaint o amser i mi gael gwybod am y tor-data hwn?
|
||||
faq3 = Sut ydw i'n gwybod bod hwn yn e-bost dilys o { -product-name }?
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
new-breaches-found =
|
||||
{ $breachCount ->
|
||||
[zero] HEB GANFOD UNRHYW DOR-DATA
|
||||
|
@ -259,9 +273,14 @@ new-breaches-found =
|
|||
}
|
||||
sign-up-headline-1 = Derbyn rhybuddion parhaus gyda { -brand-fxa }.
|
||||
account-not-required = Nid oes angen porwr { -brand-name } ar gyfer { -brand-fxa }. Efallai y cewch wybodaeth am wasanaethau { -brand-Mozilla }.
|
||||
|
||||
## Variables:
|
||||
## $breachName (String) - Number of the breach
|
||||
|
||||
was-your-info-exposed = A oedd eich manylion wedi'i datgelu yn y tor-data { $breachName }
|
||||
find-out-if = Gweld a oedd eich data wedi'i ddatgelu yn y tor-data hwn.
|
||||
fb-not-comp = Nid yw'r e-bost hwn wedi ymddangos yn y tor-data { $breachName }
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
other-breaches-found =
|
||||
{ $breachCount ->
|
||||
[zero] Nid yw wedi ymddangos mewn unrhyw dor-data.
|
||||
|
@ -272,6 +291,8 @@ other-breaches-found =
|
|||
*[other] Er hynny, mae wedi ymddangos mewn { $breachCount } tor-data arall.
|
||||
}
|
||||
fb-comp-only = Ymddangosodd yr e-bost hwn yn y tor-data { $breachName }
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
fb-comp-and-others =
|
||||
{ $breachCount ->
|
||||
[zero] Nid yw'r e-bost wedi ymddangos mewn unrhyw dor-data.
|
||||
|
@ -281,10 +302,11 @@ fb-comp-and-others =
|
|||
[many] Ymddangosodd yr e-bost mewn { $breachCount } tor-data hysbys, gan gynnwys { $breachName }.
|
||||
*[other] Ymddangosodd yr e-bost mewn { $breachCount } tor-data hysbys, gan gynnwys { $breachName }.
|
||||
}
|
||||
|
||||
##
|
||||
|
||||
no-other-breaches-found = Heb ddarganfod unrhyw dor-data arall o'r chwilio cychwynnol.
|
||||
no-results-blurb = Ymddiheuriadau, nid yw'r tor-data hwnnw yn ein cronfa ddata.
|
||||
all-breaches-headline = Pob tor-data yn { -product-name }
|
||||
search-breaches = Chwilio am Dor-data
|
||||
# This string contains nested markup that is later used to style and link the text inside of it.
|
||||
# Please do not modify or remove "<a>", "</a>", "<span>" and "</span>".
|
||||
facebook-breach-note =
|
||||
|
@ -359,6 +381,8 @@ known-data-breaches-exposed =
|
|||
}
|
||||
# Button
|
||||
see-additional-breaches = Gweld Tor-data Ychwanegol
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
scan-results-known-breaches =
|
||||
{ $breachCount ->
|
||||
[zero] Nid yw'r e-bost wedi ymddangos mewn tor-data.
|
||||
|
@ -371,6 +395,8 @@ scan-results-known-breaches =
|
|||
# This string is shown at the top of the scan results page and is followed
|
||||
# by the email address that the user searched.
|
||||
# In page, it reads "Results for: searchedEmail@monitor.com"
|
||||
# Variables:
|
||||
# $userEmail (String) - User email address
|
||||
results-for = Canlyniadau ar gyfer:{ $userEmail }
|
||||
other-monitored-emails = E-byst eraill sy'n Cael eu Monitro
|
||||
email-verification-required = Mae Angen Dilysu
|
||||
|
@ -386,6 +412,8 @@ get-ongoing-breach-monitoring = Derbyn monitro tor-data parhaus ar gyfeiriadau e
|
|||
# This is a button and follows a headline reading "Was your info exposed in the ___ breach?"
|
||||
find-out = Canfod
|
||||
new-unsub-error = Bydd angen i chi ddad-danysgrifio o un o'r e-byst { -product-name } a anfonwyd.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
other-known-breaches-found =
|
||||
{ $breachCount ->
|
||||
[zero] Nid yw wedi ymddangos mewn unrhyw dor-data hysbys.
|
||||
|
@ -407,10 +435,12 @@ breach-overview-title = Trosolwg
|
|||
# $breachTitle is the name of the breached company or website.
|
||||
# $breachDate and $addedDate are calendar dates.
|
||||
breach-overview-new = Ar { $breachDate }, profodd { $breachTitle } dor-data. Unwaith y cafodd y tor-data ei ddarganfod a'i ddilysu, cafodd ei ychwanegu at ein cronfa ddata ar { $addedDate }.
|
||||
# Title appearing on the Preferences dashboard.
|
||||
# Title appearing on the Preferences dashboard.
|
||||
monitor-preferences = Dewisiadau { -product-short-name }
|
||||
# When a user is signed in, this appears in the drop down menu
|
||||
# and is followed by the user's primary Firefox Account email.
|
||||
# When a user is signed in, this appears in the drop down menu
|
||||
# and is followed by the user's primary Firefox Account email.
|
||||
# Variables:
|
||||
# $userEmail (String) - User email address
|
||||
signed-in-as = Mewngofnodwyd fel: { $userEmail }
|
||||
# Appears on the All Breaches page and is followed by a list of filter options
|
||||
# that a user can filter the visible breaches by.
|
||||
|
@ -427,12 +457,16 @@ email-sent = E-bost wedi ei Anfon!
|
|||
want-to-add = Eisiau ychwanegu e-bost arall?
|
||||
# This is part of a confirmation message that appears after a user has submitted
|
||||
# the form to add an additional email to Firefox Monitor.
|
||||
# Variables:
|
||||
# $userEmail (String) - User email address
|
||||
verify-the-link = Gwiriwch y ddolen a anfonwyd at { $userEmail } i'w hychwanegu at { -product-name }.
|
||||
|
||||
## These are part of a confirmation page that appears after a user has verified
|
||||
## an additional email to Firefox Monitor.
|
||||
|
||||
email-verified = E-bost Wedi'i Wirio'n Llwyddiannus!
|
||||
# Variables:
|
||||
# $email (String) - User email address
|
||||
email-added-to-subscription = Byddwn yn eich hysbysu os yw { $email } yn ymddangos mewn tor-data newydd.
|
||||
# This message is displayed after the user has verified their email address.
|
||||
# { $nestedSignInLink } is replaced by a link, using sign-in-nested as text ("sign in" for English).
|
||||
|
@ -446,15 +480,17 @@ sign-in-nested = mewngofnodi
|
|||
# form to add an additional email to Firefox Monitor. { $preferencesLink } is a link
|
||||
# to the Preferences page. The code and text for the link is generated elsewhere
|
||||
# using the { preferences } string.
|
||||
# Variables:
|
||||
# $preferencesLink (String) - Link to preferences
|
||||
manage-all-emails = Rheoli pob cyfeiriad e-bost yn { $preferencesLink }.
|
||||
# This string is a header on the user preferences page and
|
||||
# appears above a check-box list of user options which allow
|
||||
# the user to choose whether or not they want to receive breach
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# email address.
|
||||
breach-alert-notifications = Hysbysiadau Rhybudd Tor-data
|
||||
# This string is a label for the calendar date a breach is added to the database
|
||||
# and is followed by that date.
|
||||
# and is followed by that date.
|
||||
breach-added-label = Ychwanegwyd y tor-data:
|
||||
how-hackers-work-desc = Diogelwch eich cyfrineiriau gan seiber droseddwyr, gan mai dyna beth maen nhw'n poeni amdano fwyaf.
|
||||
what-to-do-after-breach-desc = Clowch eich cyfrifon i gadw'ch manylion allan o'r dwylo anghywir.
|
||||
|
@ -476,7 +512,11 @@ see-additional-recs = Gweler yr Argymhellion Ychwanegol
|
|||
## This string contains nested markup that becomes a link later in the code.
|
||||
## Please do not modify or remove "<a>" and "</a>".
|
||||
|
||||
# Variables:
|
||||
# $affectedEmail (String) - User email address
|
||||
resolve-top-notification = Ymddangosodd { $affectedEmail } yn y tor-data hwn. <a>Beth i'w wneud nesaf</a>
|
||||
# Variables:
|
||||
# $numAffectedEmails (Integer) - Number of affected email address
|
||||
resolve-top-notification-plural =
|
||||
{ $numAffectedEmails ->
|
||||
[zero] Ymddangosodd { $numAffectedEmails } o'ch cyfeiriadau e-bost yn y tor-data hwn. <a>Beth i'w wneud nesaf</a>
|
||||
|
@ -508,6 +548,8 @@ confirmation-3-subhead = Un arall wedi mynd. Gwaith da!
|
|||
# Please do not modify or remove "<a>" and "</a>".
|
||||
confirmation-3-body = A yw'ch cyfrinair newydd yn unigryw, yn gryf, ac yn anodd ei ddyfalu? <a>Gweld</a>
|
||||
generic-confirmation-subhead = Mae'r tor-data hwn wedi'i nodi fel wedi'i ddatrys
|
||||
# Variables:
|
||||
# $numUnresolvedBreaches (Integer) - Number of resolved breaches
|
||||
generic-confirmation-message =
|
||||
{ $numUnresolvedBreaches ->
|
||||
[zero] I weld yr holl dor-data sy'n weddill, ewch i'ch bwrdd gwaith.
|
||||
|
@ -521,9 +563,13 @@ return-to-breach-details-link = Nol i fanylion y tor-data
|
|||
go-to-dashboard-link = Mynd i'r Bwrdd Gwaith
|
||||
# This string appears above a breach resolution progress bar and indicates
|
||||
# the percentage of breaches a user has resolved. For instance, "27% complete".
|
||||
# Variables:
|
||||
# $percentComplete (String) - Completion percentage
|
||||
progress-percent-complete = { $percentComplete }% wedi'i gwblhau
|
||||
# This string appears in the purple callouts at the top of the user dashboard and shows
|
||||
# the total number of breaches a user has resolved. For instance, "5 Resolved".
|
||||
# Variables:
|
||||
# $numResolvedBreaches (Integer) - Number of resolved breaches
|
||||
num-resolved =
|
||||
{ $numResolvedBreaches ->
|
||||
[zero] { $numResolvedBreaches } Wedi'u Datrys
|
||||
|
@ -537,6 +583,9 @@ progress-intro-subhead = Newydd yn { -product-name }: Nodi datrys tor-data
|
|||
progress-intro-message =
|
||||
Ar ôl adolygu'r manylion am dor-data a chymryd camau i ddiogelu
|
||||
eich manylion personol, gallwch nodi eich bod wedi datrys y tor-data.
|
||||
# Variables:
|
||||
# $numResolvedBreaches (Integer) - Number of resolved breaches
|
||||
# $numTotalBreaches (Integer) - Total number of breaches
|
||||
progress-status =
|
||||
{ $numTotalBreaches ->
|
||||
[zero] { $numResolvedBreaches } allan o { $numTotalBreaches } wedi'u nodi eu bod wedi'u datrys
|
||||
|
@ -567,11 +616,13 @@ progress-complete-message =
|
|||
##
|
||||
|
||||
resolve-this-breach-link = Datrys y tor-data hwn
|
||||
# This string appears in resolved breach cards and is followed by
|
||||
# This string appears in resolved breach cards and is followed by
|
||||
# the date the user marked the breach as resolved.
|
||||
marked-resolved = Nodi wedi'u Datrys:
|
||||
hide-resolved-button = Cuddio wedi'u Datrys
|
||||
show-resolved-button = Dangos wedi'u Datrys
|
||||
# Variables:
|
||||
# $numPasswords (Integer) - Number of exposed passwords
|
||||
unresolved-passwords-exposed =
|
||||
{ $numPasswords ->
|
||||
[zero] Cyfrineiriau wedi'u hamlygu mewn tor-data heb eu datrys
|
||||
|
@ -581,6 +632,8 @@ unresolved-passwords-exposed =
|
|||
[many] Cyfrineiriau wedi'u hamlygu mewn tor-data heb eu datrys
|
||||
*[other] Cyfrineiriau wedi'u hamlygu mewn tor-data heb eu datrys
|
||||
}
|
||||
# Variables:
|
||||
# $numResolvedBreaches (Integer) - Number of resolved breaches
|
||||
known-data-breaches-resolved =
|
||||
{ $numResolvedBreaches ->
|
||||
[zero] Tor-data hysbys wedi'u nodi fel wedi'u datrys
|
||||
|
@ -615,7 +668,10 @@ vpn-promo-copy-new = Diogelwch eich data ar-lein - a dewis cynllun tanysgrifio V
|
|||
|
||||
## VPN promotional banner. HTML tags should not be translated, e.g. `<em>`
|
||||
|
||||
# user's IP location is determined dynamically by 3rd-party, eg: "Your location: Los Angeles, CA". The 3rd-party service provides its own localization.
|
||||
# Variables:
|
||||
# $ip-location (String) - User's IP location is determined dynamically by 3rd-party,
|
||||
# eg: "Your location: Los Angeles, CA". The 3rd-party service
|
||||
# provides its own localization.
|
||||
vpn-banner-location = Eich lleoliad: { $ip-location }
|
||||
vpn-banner-protect-yourself-with-vpn = <em>Diogelwch eich hun</em> gyda { -brand-mozilla-vpn }.
|
||||
vpn-banner-protected-with-vpn = <em>Diogelwyd</em> gan { -brand-mozilla-vpn }.
|
||||
|
@ -624,7 +680,8 @@ vpn-banner-title-2 = Mae modd olrhain eich lleoliad os nad ydych yn defnyddio VP
|
|||
vpn-banner-subtitle-2 = Diogelwch eich lleoliad a phori'n ddiogel mewn 3 cham
|
||||
vpn-banner-status-protected = Statws cyfredol: <em>Diogelwyd ✓</em>
|
||||
vpn-banner-status-not-protected = Statws cyfredol: <em>Heb ei ddiogelu ⚠</em>
|
||||
# user's IP address is determined dynamically, eg: "IP address: 192.168.1.1"
|
||||
# Variables:
|
||||
# $ip-address (String) - User's IP address is determined dynamically, eg: "IP address: 192.168.1.1"
|
||||
vpn-banner-ip-address = Cyfeiriad IP: { $ip-address }
|
||||
vpn-banner-step-1 = Tanysgrifiwch i { -brand-mozilla-vpn }
|
||||
vpn-banner-step-2 = Dewiswch leoliad i'r VPN
|
||||
|
@ -683,6 +740,8 @@ ad-unit-6-before-you-complete = Cyn i chi gwblhau'r cofrestriad nesaf hwnnw, def
|
|||
-brand-mozilla = Mozilla
|
||||
-brand-mozilla-foundation = Mozilla Foundation
|
||||
-brand-github = GitHub
|
||||
-brand-mozilla-vpn = Mozilla VPN
|
||||
-brand-relay = Firefox Relay
|
||||
|
||||
##
|
||||
|
||||
|
@ -704,6 +763,10 @@ sign-in = Mewngofnodi
|
|||
site-nav-breaches-link = Datrys Tor-data
|
||||
site-nav-settings-link = Gosodiadau
|
||||
site-nav-help-link = Cymorth a Chefnogaeth
|
||||
# This call-out is above 2 image links for Firefox Relay and Mozilla VPN
|
||||
site-nav-ad-callout = Rhowch gynnig ar ein hoffer diogelwch eraill:
|
||||
brand-relay = { -brand-relay }
|
||||
brand-mozilla-vpn = { -brand-mozilla-vpn }
|
||||
|
||||
## User menu
|
||||
|
||||
|
@ -717,9 +780,10 @@ menu-item-logout = Allgofnodi
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Telerau a Phreifatrwydd
|
||||
github = { -brand-github }
|
||||
footer-nav-all-breaches = Pob Tor-data
|
||||
|
||||
## Error page
|
||||
|
||||
|
@ -732,3 +796,17 @@ error-page-error-404-cta-button = Nôl
|
|||
# $errorCode (number) - the status code of the error, e.g. 403
|
||||
error-page-error-other-title = { $errorCode } Aeth rhywbeth o'i le
|
||||
error-page-error-other-copy = Ceisiwch eto neu dewch yn ôl yn nes ymlaen
|
||||
|
||||
## Breach overview page
|
||||
|
||||
all-breaches-headline-2 = Pob tor-data canfuwyd gan { -brand-fx-monitor }
|
||||
all-breaches-lead = Rydym yn monitro'r holl achosion hysbys o dor-data i ganfod a gafodd eich manylion personol eu peryglu. Dyma restr lawn o’r holl dor-data sydd wedi’u hadrodd ers 2007.
|
||||
search-breaches = Chwilio am Dor-data
|
||||
# the kind of user data exposed to hackers in data breach.
|
||||
exposed-data = Data datgeledig:
|
||||
|
||||
## Public breach detail page
|
||||
|
||||
find-out-if-2 = Darganfyddwch a oeddech yn gysylltiedig â'r tor-data hwn
|
||||
find-out-if-description = Byddwn yn eich helpu i weld yn gyflym a oedd eich cyfeiriad e-bost wedi'i ddatgelu drwy'r tor-data hwn, a gwybod beth i'w wneud nesaf.
|
||||
breach-detail-cta-signup = Gwiriwch am dor-data
|
||||
|
|
|
@ -10,10 +10,10 @@ rec-ssn =
|
|||
rec-pw-1-subhead = Newidiwch eich cyfrinair
|
||||
# Link title
|
||||
rec-pw-1-cta = Newid cyfrinair y wefan hon
|
||||
rec-pw-1 =
|
||||
rec-pw-1-2 =
|
||||
Gwnewch y cyfrinair hwn yn unigryw ac yn wahanol i unrhyw rai eraill rydych chi'n eu defnyddio.
|
||||
Strategaeth dda i'w dilyn yw cyfuno dau neu fwy o eiriau
|
||||
digyswllt er mwyn creu cyfrinymadrodd cyfan.
|
||||
Syniad dda yw cyfuno dau neu fwy o eiriau digyswllt er mwyn
|
||||
creu cyfrinymadrodd cyfan a chynnwys rhifau a symbolau.
|
||||
# Recommendation subhead
|
||||
rec-pw-2-subhead = Diweddarwch fewngofnodion eraill sy'n defnyddio'r un cyfrinair
|
||||
# Link title
|
||||
|
@ -54,22 +54,13 @@ rec-email =
|
|||
Mae rhoi eich cyfeiriad e-bost go iawn yn ei gwneud hi'n haws i hacwyr neu dracwyr ddod o hyd i'ch cyfrineiriau neu eich targedu ar-lein. Mae gwasanaeth fel { -brand-relay }
|
||||
yn cuddio'ch cyfeiriad e-bost go iawn wrth anfon e-byst i'ch mewnflwch go iawn.
|
||||
# Recommendation subhead
|
||||
rec-ip-subhead = Defnyddiwch wasanaeth sy'n cuddio'ch cyfeiriad IP
|
||||
# Link title
|
||||
rec-ip-us-cta = Rhowch gynnig ar { -brand-fpn }
|
||||
rec-ip-us =
|
||||
Mae eich cyfeiriad Protocol Rhyngrwyd (cyfeiriad IP) yn nodi'ch lleoliad
|
||||
a'ch darparwr gwasanaeth rhyngrwyd. Mae gwasanaeth fel { -brand-fpn }
|
||||
yn cuddio'ch cyfeiriad IP er mwyn cuddio'ch lleoliad.
|
||||
rec-ip-non-us =
|
||||
Mae eich cyfeiriad Protocol Rhyngrwyd (cyfeiriad IP) yn nodi'ch lleoliad
|
||||
a'ch darparwr gwasanaeth rhyngrwyd. Gyda rhwydwaith preifat rhithwir (VPN), gallwch guddio'ch lleoliad
|
||||
a chuddio'ch cyfeiriad IP.
|
||||
rec-ip-subhead-2 = Defnyddiwch VPN i guddio'ch cyfeiriad IP
|
||||
# Recommendation subhead
|
||||
rec-moz-vpn-cta = Rhowch gynnig ar { -brand-mozilla-vpn }
|
||||
rec-moz-vpn-update =
|
||||
Gall eich cyfeiriad Protocol Rhyngrwyd (cyfeiriad IP) yn nodi'ch lleoliad
|
||||
a'ch darparwr gwasanaeth rhyngrwyd. Mae gwasanaeth fel { -brand-mozilla-vpn } yn cuddio cyfeiriad IP a lleoliad eich dyfais.
|
||||
rec-moz-vpn-update-2 =
|
||||
Mae eich cyfeiriad Protocol Rhyngrwyd (cyfeiriad IP) yn amlygu'ch
|
||||
lleoliad a'ch darparwr gwasanaeth rhyngrwyd. Mae gwasanaeth
|
||||
fel { -brand-mozilla-vpn } yn cuddio'ch cyfeiriad IP er mwyn cuddio'ch lleoliad.
|
||||
rec-hist-pw-subhead = Peidio ailddefnyddio cyfrineiriau
|
||||
# Link title
|
||||
rec-hist-pw-cta-fx = Gweld mewngofnodi yn { -brand-name }
|
||||
|
|
|
@ -692,7 +692,7 @@ menu-item-logout = Log ud
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Vilkår og beskyttelse af personlige oplysninger
|
||||
github = { -brand-github }
|
||||
|
||||
|
|
|
@ -701,7 +701,7 @@ menu-item-logout = Abmelden
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Nutzungsbedingungen und Datenschutzerklärung
|
||||
github = { -brand-github }
|
||||
footer-nav-all-breaches = Alle Datenlecks
|
||||
|
|
|
@ -32,8 +32,6 @@
|
|||
-brand-lockwise = Firefox Lockwise
|
||||
-brand-send = Firefox Send
|
||||
-brand-fpn = Firefox Private Network
|
||||
-brand-mozilla-vpn = Mozilla VPN
|
||||
-brand-relay = Firefox Relay
|
||||
|
||||
##
|
||||
|
||||
|
@ -54,6 +52,9 @@ user-add-invalid-email = Άκυρο email
|
|||
user-add-too-many-emails = Παρακολουθείτε τον μέγιστο αριθμό διευθύνσεων email.
|
||||
user-add-email-verify-subject = Επαληθεύστε τη συνδρομή σας στο { -product-name }.
|
||||
user-add-duplicate-email = Αυτό το email έχει ήδη προστεθεί στο { -product-name }.
|
||||
# Variables:
|
||||
# $preferencesLink (String) - Link to preferences
|
||||
# $userEmail (String) - User email address
|
||||
user-add-duplicate-email-part-2 = Επισκεφθείτε τις { $preferencesLink } σας για να ελέγξετε την κατάσταση του { $userEmail }.
|
||||
error-headline = Σφάλμα
|
||||
user-verify-token-error = Απαιτείται διακριτικό επαλήθευσης.
|
||||
|
@ -67,11 +68,11 @@ scan-placeholder = Εισαγάγετε διεύθυνση email
|
|||
scan-submit = Αναζήτηση email
|
||||
scan-error = Πρέπει να είναι ένα έγκυρο email.
|
||||
download-firefox-banner-button = Λήψη του { -brand-name }
|
||||
# Appears after Firefox Monitor has sent a verification email to a new user.
|
||||
# Appears after Firefox Monitor has sent a verification email to a new user.
|
||||
signup-modal-sent = Απεστάλη!
|
||||
sign-up = Εγγραφή
|
||||
form-signup-error = Πρέπει να είναι ένα έγκυρο email
|
||||
# breach-date = the calendar date a particular data theft occurred.
|
||||
# breach-date = the calendar date a particular data theft occurred.
|
||||
breach-date = Ημερομηνία παραβίασης:
|
||||
# compromised accounts = the total number of user accounts exposed in data breach
|
||||
compromised-accounts = Παραβιασμένοι λογαριασμοί:
|
||||
|
@ -81,6 +82,8 @@ unsub-headline = Κατάργησης εγγραφής από το { -product-na
|
|||
unsub-blurb = Το email σας θα αφαιρεθεί από τη λίστα του { -product-name-nowrap } και δεν θα λαμβάνετε πλέον ειδοποιήσεις όταν ανακοινώνονται νέες παραβιάσεις.
|
||||
unsub-button = Κατάργηση εγγραφής
|
||||
# Breach data provided by Have I Been Pwned.
|
||||
# Variables:
|
||||
# $hibp-link (String) - Link to Have I Been Pwned
|
||||
hibp-attribution = Τα δεδομένα παραβιάσεων παρέχονται από το { $hibp-link }
|
||||
share-twitter = Οι περισσότεροι άνθρωποι έχουν περίπου 100 διαδικτυακούς λογαριασμούς. Έχει εκτεθεί κάποιος από τους δικούς σας σε παραβίαση δεδομένων; Μάθετε.
|
||||
share-facebook-headline = Μάθετε αν υπήρξατε θύμα της παραβίασης δεδομένων
|
||||
|
@ -130,8 +133,6 @@ preferences = Προτιμήσεις
|
|||
# Link title
|
||||
home = Αρχική
|
||||
# Link title
|
||||
breaches = Παραβιάσεις
|
||||
# Link title
|
||||
security-tips = Συμβουλές ασφαλείας
|
||||
fxa-account = { -brand-fxa }
|
||||
# Aria button message to open menu. "Open Firefox Account Navigation"
|
||||
|
@ -230,7 +231,9 @@ feat-security-tips = Συμβουλές ασφάλειας για την προ
|
|||
feat-sensitive = Σύνθετη αναζήτηση σε ευαίσθητες διαρροές
|
||||
feat-enroll-multiple = Καταχωρήστε πολλαπλά email για εποπτεία παραβιάσεων
|
||||
# This string is shown beneath each of the user’s email addresses to indicate
|
||||
# how many known breaches that email address was found in.
|
||||
# how many known breaches that email address was found in.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
appears-in-x-breaches =
|
||||
{ $breachCount ->
|
||||
[one] Εμφανίζεται σε { $breachCount } γνωστή παραβίαση.
|
||||
|
@ -242,6 +245,8 @@ get-email-alerts = Μείνετε ασφαλείς: Λάβετε ειδοποι
|
|||
search-for-your-email = Αναζητήστε τη διεύθυνση email σας σε παραβιάσεις δημόσιων δεδομένων από το 2007.
|
||||
back-to-top = Πίσω στην κορυφή
|
||||
comm-opt-0 = Να ειδοποιηθώ σε περίπτωση που κάποια από τις εξής διευθύνσεις email εμφανιστεί σε παραβίαση δεδομένων.
|
||||
# Variables:
|
||||
# $primaryEmail (String) - User primary email address
|
||||
comm-opt-1 = Αποστολή όλων των ειδοποιήσεων παραβιάσεων στο { $primaryEmail }.
|
||||
stop-monitoring-this = Διακοπή εποπτείας αυτού του email.
|
||||
resend-verification = Εκ νέου αποστολή email επαλήθευσης
|
||||
|
@ -250,7 +255,7 @@ send-verification = Αποστολή συνδέσμου επαλήθευσης
|
|||
# This string is a header on the user preferences page and
|
||||
# appears above a check-box list of user options which allow
|
||||
# the user to choose whether or not they want to receive breach
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# email address.
|
||||
breach-summary = Περίληψη παραβίασης
|
||||
show-breaches-for-this-email = Εμφάνιση όλων των παραβιάσεων για αυτό το email.
|
||||
|
@ -263,8 +268,15 @@ remove-fxm-blurb =
|
|||
manage-email-addresses = Διαχείριση διευθύνσεων email
|
||||
# Link title
|
||||
latest-breach-link = Δείτε αν επηρεαστήκατε από αυτήν την παραβίαση
|
||||
|
||||
## Variables:
|
||||
## $userName (String) - Username
|
||||
|
||||
welcome-back = Καλώς ορίσατε και πάλι, { $userName }!
|
||||
welcome-user = Καλώς ορίσατε, { $userName }!
|
||||
|
||||
##
|
||||
|
||||
breach-alert-subject = Το { -product-name } βρήκε το email σας σε νέα παραβίαση δεδομένων
|
||||
your-info-was-discovered-headline = Οι πληροφορίες σας ανακαλύφθηκαν σε μια νέα παραβίαση δεδομένων.
|
||||
your-info-was-discovered-blurb =
|
||||
|
@ -288,6 +300,8 @@ ba-next-step-blurb-3 =
|
|||
faq1 = Δεν αναγνωρίζω αυτήν την εταιρεία ή τον ιστότοπο. Γιατί είμαι σε αυτήν την παραβίαση;
|
||||
faq2 = Γιατί πέρασε τόσος καιρός μέχρι να ενημερωθώ για αυτή την παραβίαση;
|
||||
faq3 = Πώς ξέρω αν αυτό είναι ένα γνήσιο email από το { -product-name };
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
new-breaches-found =
|
||||
{ $breachCount ->
|
||||
[one] ΒΡΕΘΗΚΕ { $breachCount } ΝΕΑ ΠΑΡΑΒΙΑΣΗ
|
||||
|
@ -295,24 +309,32 @@ new-breaches-found =
|
|||
}
|
||||
sign-up-headline-1 = Λάβετε συνεχείς ειδοποιήσεις με έναν { -brand-fxa(case: "acc", capitalization: "lower") }.
|
||||
account-not-required = Δεν απαιτείται το { -brand-name } για ένα { -brand-fxa }. Μπορείτε να λάβετε πληροφορίες σχετικά με τις υπηρεσίες { -brand-Mozilla }.
|
||||
|
||||
## Variables:
|
||||
## $breachName (String) - Number of the breach
|
||||
|
||||
was-your-info-exposed = Εκτέθηκαν οι πληροοφορίες σας στην παραβίαση δεδομένων { $breachName };
|
||||
find-out-if = Μάθετε αν τα δεδομένα σας εκτέθηκαν σε αυτή την παραβίαση.
|
||||
fb-not-comp = Αυτό το email δεν εμφανίστηκε στην παραβίαση { $breachName }.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
other-breaches-found =
|
||||
{ $breachCount ->
|
||||
[one] Ωστόσο, εμφανίστηκε σε άλλη { $breachCount } παραβίαση.
|
||||
*[other] Ωστόσο, εμφανίστηκε σε άλλες { $breachCount } παραβιάσεις.
|
||||
}
|
||||
fb-comp-only = Αυτό το email εμφανίστηκε στην παραβίαση { $breachName }.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
fb-comp-and-others =
|
||||
{ $breachCount ->
|
||||
[one] Αυτό το email εμφανίστηκε σε { $breachCount } γνωστές παραβιάσεις δεδομένων, όπως το { $breachName }.
|
||||
*[other] Αυτά τα email εμφανίστηκαν σε { $breachCount } γνωστές παραβιάσεις δεδομένων, όπως το { $breachName }.
|
||||
}
|
||||
|
||||
##
|
||||
|
||||
no-other-breaches-found = Δεν βρέθηκαν άλλες παραβιάσεις με τη βασική αναζήτηση.
|
||||
no-results-blurb = Λυπούμαστε, αυτή η παραβίαση δεν είναι στη βάση δεδομένων μας.
|
||||
all-breaches-headline = Όλες οι παραβιάσεις στο { -product-name }
|
||||
search-breaches = Αναζήτηση παραβιάσεων
|
||||
# This string contains nested markup that is later used to style and link the text inside of it.
|
||||
# Please do not modify or remove "<a>", "</a>", "<span>" and "</span>".
|
||||
facebook-breach-note =
|
||||
|
@ -383,6 +405,8 @@ known-data-breaches-exposed =
|
|||
}
|
||||
# Button
|
||||
see-additional-breaches = Προβολή επιπρόσθετων παραβιάσεων
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
scan-results-known-breaches =
|
||||
{ $breachCount ->
|
||||
[one] Αυτό το email εμφανίστηκε σε 1 γνωστή παραβίαση δεδομένων.
|
||||
|
@ -391,6 +415,8 @@ scan-results-known-breaches =
|
|||
# This string is shown at the top of the scan results page and is followed
|
||||
# by the email address that the user searched.
|
||||
# In page, it reads "Results for: searchedEmail@monitor.com"
|
||||
# Variables:
|
||||
# $userEmail (String) - User email address
|
||||
results-for = Αποτελέσματα για: { $userEmail }
|
||||
other-monitored-emails = Άλλα εποπτευμένα email
|
||||
email-verification-required = Απαιτείται επαλήθευση email
|
||||
|
@ -406,6 +432,8 @@ get-ongoing-breach-monitoring = Λάβετε συνεχή εποπτεία πα
|
|||
# This is a button and follows a headline reading "Was your info exposed in the ___ breach?"
|
||||
find-out = Μάθετε
|
||||
new-unsub-error = Θα πρέπει να καταργήσετε την εγγραφή σας από ένα από τα email που έστειλε το { -product-name }.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
other-known-breaches-found =
|
||||
{ $breachCount ->
|
||||
[one] Ωστόσο, εμφανίστηκε σε άλλη { $breachCount } γνωστή παραβίαση.
|
||||
|
@ -423,10 +451,12 @@ breach-overview-title = Επισκόπηση
|
|||
# $breachTitle is the name of the breached company or website.
|
||||
# $breachDate and $addedDate are calendar dates.
|
||||
breach-overview-new = Στις { $breachDate }, το { $breachTitle } παραβιάστηκε. Μόλις ανακαλύφθηκε και επαληθεύτηκε η παραβίαση, προστέθηκε στη βάση δεδομένων μας στις { $addedDate }.
|
||||
# Title appearing on the Preferences dashboard.
|
||||
# Title appearing on the Preferences dashboard.
|
||||
monitor-preferences = Προτιμήσεις { -product-short-name }
|
||||
# When a user is signed in, this appears in the drop down menu
|
||||
# and is followed by the user's primary Firefox Account email.
|
||||
# When a user is signed in, this appears in the drop down menu
|
||||
# and is followed by the user's primary Firefox Account email.
|
||||
# Variables:
|
||||
# $userEmail (String) - User email address
|
||||
signed-in-as = Σε σύνδεση ως: { $userEmail }
|
||||
# Appears on the All Breaches page and is followed by a list of filter options
|
||||
# that a user can filter the visible breaches by.
|
||||
|
@ -443,12 +473,16 @@ email-sent = Απεστάλη email!
|
|||
want-to-add = Θέλετε να προσθέσετε ένα άλλο email;
|
||||
# This is part of a confirmation message that appears after a user has submitted
|
||||
# the form to add an additional email to Firefox Monitor.
|
||||
# Variables:
|
||||
# $userEmail (String) - User email address
|
||||
verify-the-link = Επαληθεύστε το σύνδεσμο που απεστάλη στο { $userEmail } για να το προσθέσετε στο { -product-name }.
|
||||
|
||||
## These are part of a confirmation page that appears after a user has verified
|
||||
## an additional email to Firefox Monitor.
|
||||
|
||||
email-verified = Επιτυχής επαλήθευση email!
|
||||
# Variables:
|
||||
# $email (String) - User email address
|
||||
email-added-to-subscription = Θα σας ειδοποιήσουμε αν το { $email } εμφανιστεί σε νέα διαρροή δεδομένων.
|
||||
# This message is displayed after the user has verified their email address.
|
||||
# { $nestedSignInLink } is replaced by a link, using sign-in-nested as text ("sign in" for English).
|
||||
|
@ -462,15 +496,17 @@ sign-in-nested = σύνδεση
|
|||
# form to add an additional email to Firefox Monitor. { $preferencesLink } is a link
|
||||
# to the Preferences page. The code and text for the link is generated elsewhere
|
||||
# using the { preferences } string.
|
||||
# Variables:
|
||||
# $preferencesLink (String) - Link to preferences
|
||||
manage-all-emails = Διαχείριση όλων των διευθύνσεων email στις { $preferencesLink }.
|
||||
# This string is a header on the user preferences page and
|
||||
# appears above a check-box list of user options which allow
|
||||
# the user to choose whether or not they want to receive breach
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# email address.
|
||||
breach-alert-notifications = Ειδοποιήσεις παραβιάσεων
|
||||
# This string is a label for the calendar date a breach is added to the database
|
||||
# and is followed by that date.
|
||||
# and is followed by that date.
|
||||
breach-added-label = Ημερομηνία προσθήκης:
|
||||
how-hackers-work-desc = Προστατέψτε τους κωδικούς πρόσβασής σας από κυβερνοεγκληματίες, καθώς αυτοί τους ενδιαφέρουν περισσότερο.
|
||||
what-to-do-after-breach-desc = Κλειδώστε τους λογαριασμούς σας για να μην πέσουν τα στοιχεία σας σε λάθος χέρια.
|
||||
|
@ -492,7 +528,11 @@ see-additional-recs = Προβολή επιπρόσθετων προτάσεων
|
|||
## This string contains nested markup that becomes a link later in the code.
|
||||
## Please do not modify or remove "<a>" and "</a>".
|
||||
|
||||
# Variables:
|
||||
# $affectedEmail (String) - User email address
|
||||
resolve-top-notification = Το { $affectedEmail } εμφανίστηκε σε αυτή την παραβίαση. <a>Τι να κάνετε στη συνέχεια</a>
|
||||
# Variables:
|
||||
# $numAffectedEmails (Integer) - Number of affected email address
|
||||
resolve-top-notification-plural =
|
||||
{ $numAffectedEmails ->
|
||||
*[other] { $numAffectedEmails } από τις διευθύνσεις email σας εμφανίστηκαν σε αυτή την παραβίαση. <a>Τι να κάνετε στη συνέχεια</a>
|
||||
|
@ -519,6 +559,8 @@ confirmation-3-subhead = Αντιμετωπίστηκε ακόμη ένα. Κα
|
|||
# Please do not modify or remove "<a>" and "</a>".
|
||||
confirmation-3-body = Είναι ο νέος σας κωδικός πρόσβασης μοναδικός, ισχυρός και δύσκολος; <a>Μάθετε εδώ</a>
|
||||
generic-confirmation-subhead = Αυτή η παραβίαση έχει επισημανθεί ως επιλυμένη
|
||||
# Variables:
|
||||
# $numUnresolvedBreaches (Integer) - Number of resolved breaches
|
||||
generic-confirmation-message =
|
||||
{ $numUnresolvedBreaches ->
|
||||
[one] Για να δείτε την εναπομείνουσα διαρροή, μεταβείτε στον πίνακα ελέγχου.
|
||||
|
@ -528,9 +570,13 @@ return-to-breach-details-link = Επιστροφή στις λεπτομέρει
|
|||
go-to-dashboard-link = Μετάβαση στον πίνακα
|
||||
# This string appears above a breach resolution progress bar and indicates
|
||||
# the percentage of breaches a user has resolved. For instance, "27% complete".
|
||||
# Variables:
|
||||
# $percentComplete (String) - Completion percentage
|
||||
progress-percent-complete = { $percentComplete }% ολοκλήρωση
|
||||
# This string appears in the purple callouts at the top of the user dashboard and shows
|
||||
# the total number of breaches a user has resolved. For instance, "5 Resolved".
|
||||
# Variables:
|
||||
# $numResolvedBreaches (Integer) - Number of resolved breaches
|
||||
num-resolved =
|
||||
{ $numResolvedBreaches ->
|
||||
*[other] Επιλύθηκαν { $numResolvedBreaches }
|
||||
|
@ -539,6 +585,9 @@ progress-intro-subhead = Νέο στο { -product-name }: Επισήμανση
|
|||
progress-intro-message =
|
||||
Αφού ελέγξετε τα στοιχεία μιας παραβίασης και λάβετε μέτρα για την προστασία
|
||||
των δεδομένων σας, μπορείτε να επισημάνετε τις παραβιάσεις ως επιλυμένες.
|
||||
# Variables:
|
||||
# $numResolvedBreaches (Integer) - Number of resolved breaches
|
||||
# $numTotalBreaches (Integer) - Total number of breaches
|
||||
progress-status =
|
||||
{ $numTotalBreaches ->
|
||||
*[other] { $numResolvedBreaches } από { $numTotalBreaches } παραβιάσεις έχουν επισημανθεί ως επιλυμένες
|
||||
|
@ -563,16 +612,20 @@ progress-complete-message =
|
|||
##
|
||||
|
||||
resolve-this-breach-link = Επίλυση παραβίασης
|
||||
# This string appears in resolved breach cards and is followed by
|
||||
# This string appears in resolved breach cards and is followed by
|
||||
# the date the user marked the breach as resolved.
|
||||
marked-resolved = Επισημασμένα ως επιλυμένα:
|
||||
hide-resolved-button = Απόκρυψη επιλυμένων
|
||||
show-resolved-button = Εμφάνιση επιλυμένων
|
||||
# Variables:
|
||||
# $numPasswords (Integer) - Number of exposed passwords
|
||||
unresolved-passwords-exposed =
|
||||
{ $numPasswords ->
|
||||
[one] Εκτεθειμένος κωδικός πρόσβασης σε μη επιλυμένες παραβιάσεις
|
||||
*[other] Εκτεθειμένοι κωδικοί πρόσβασης σε μη επιλυμένες παραβιάσεις
|
||||
}
|
||||
# Variables:
|
||||
# $numResolvedBreaches (Integer) - Number of resolved breaches
|
||||
known-data-breaches-resolved =
|
||||
{ $numResolvedBreaches ->
|
||||
[one] Γνωστή παραβίαση δεδομένων επισημάνθηκε ως επιλυμένη
|
||||
|
@ -603,7 +656,10 @@ vpn-promo-copy-new = Προστατέψτε τα διαδικτυακά σας
|
|||
|
||||
## VPN promotional banner. HTML tags should not be translated, e.g. `<em>`
|
||||
|
||||
# user's IP location is determined dynamically by 3rd-party, eg: "Your location: Los Angeles, CA". The 3rd-party service provides its own localization.
|
||||
# Variables:
|
||||
# $ip-location (String) - User's IP location is determined dynamically by 3rd-party,
|
||||
# eg: "Your location: Los Angeles, CA". The 3rd-party service
|
||||
# provides its own localization.
|
||||
vpn-banner-location = Η τοποθεσία σας: { $ip-location }
|
||||
vpn-banner-protect-yourself-with-vpn = <em>Προστατευτείτε</em> με το { -brand-mozilla-vpn }.
|
||||
vpn-banner-protected-with-vpn = <em>Προστατεύεστε</em> με το { -brand-mozilla-vpn }.
|
||||
|
@ -612,7 +668,8 @@ vpn-banner-title-2 = Η τοποθεσία σας μπορεί να καταγρ
|
|||
vpn-banner-subtitle-2 = Προστατεύστε την τοποθεσία σας και περιηγηθείτε με ασφάλεια σε 3 βήματα.
|
||||
vpn-banner-status-protected = Τρέχουσα κατάσταση: <em>Υπό προστασία ✓</em>
|
||||
vpn-banner-status-not-protected = Τρέχουσα κατάσταση: <em>Χωρίς προστασία ⚠</em>
|
||||
# user's IP address is determined dynamically, eg: "IP address: 192.168.1.1"
|
||||
# Variables:
|
||||
# $ip-address (String) - User's IP address is determined dynamically, eg: "IP address: 192.168.1.1"
|
||||
vpn-banner-ip-address = Διεύθυνση IP: { $ip-address }
|
||||
vpn-banner-step-1 = Εγγραφείτε στο { -brand-mozilla-vpn }
|
||||
vpn-banner-step-2 = Επιλέξτε μια τοποθεσία VPN
|
||||
|
@ -671,6 +728,8 @@ ad-unit-6-before-you-complete = Πριν ολοκληρώσετε την επό
|
|||
-brand-mozilla = Mozilla
|
||||
-brand-mozilla-foundation = Mozilla Foundation
|
||||
-brand-github = GitHub
|
||||
-brand-mozilla-vpn = Mozilla VPN
|
||||
-brand-relay = Firefox Relay
|
||||
|
||||
##
|
||||
|
||||
|
@ -709,6 +768,8 @@ sign-in = Σύνδεση
|
|||
site-nav-breaches-link = Επίλυση παραβιάσεων δεδομένων
|
||||
site-nav-settings-link = Ρυθμίσεις
|
||||
site-nav-help-link = Βοήθεια και υποστήριξη
|
||||
brand-relay = { -brand-relay }
|
||||
brand-mozilla-vpn = { -brand-mozilla-vpn }
|
||||
|
||||
## User menu
|
||||
|
||||
|
@ -722,9 +783,10 @@ menu-item-logout = Αποσύνδεση
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Όροι και απόρρητο
|
||||
github = { -brand-github }
|
||||
footer-nav-all-breaches = Όλες οι παραβιάσεις
|
||||
|
||||
## Error page
|
||||
|
||||
|
@ -737,3 +799,10 @@ error-page-error-404-cta-button = Επιστροφή
|
|||
# $errorCode (number) - the status code of the error, e.g. 403
|
||||
error-page-error-other-title = { $errorCode }: Κάτι πήγε στραβά
|
||||
error-page-error-other-copy = Παρακαλούμε δοκιμάστε ξανά ή επιστρέψτε αργότερα
|
||||
|
||||
## Breach overview page
|
||||
|
||||
search-breaches = Αναζήτηση παραβιάσεων
|
||||
|
||||
## Public breach detail page
|
||||
|
||||
|
|
|
@ -667,6 +667,6 @@ sign-in = Sign In
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Terms and Privacy
|
||||
github = { -brand-github }
|
||||
|
|
|
@ -15,8 +15,6 @@
|
|||
-brand-lockwise = Firefox Lockwise
|
||||
-brand-send = Firefox Send
|
||||
-brand-fpn = Firefox Private Network
|
||||
-brand-mozilla-vpn = Mozilla VPN
|
||||
-brand-relay = Firefox Relay
|
||||
|
||||
##
|
||||
|
||||
|
@ -37,6 +35,9 @@ user-add-invalid-email = Invalid Email
|
|||
user-add-too-many-emails = You are monitoring the maximum number of email addresses.
|
||||
user-add-email-verify-subject = Verify your subscription to { -product-name }.
|
||||
user-add-duplicate-email = This email has already been added to { -product-name }.
|
||||
# Variables:
|
||||
# $preferencesLink (String) - Link to preferences
|
||||
# $userEmail (String) - User email address
|
||||
user-add-duplicate-email-part-2 = Visit your { $preferencesLink } to check the status of { $userEmail }.
|
||||
error-headline = Error
|
||||
user-verify-token-error = Verification token is required.
|
||||
|
@ -50,11 +51,11 @@ scan-placeholder = Enter Email Address
|
|||
scan-submit = Search Your Email
|
||||
scan-error = Must be a valid email.
|
||||
download-firefox-banner-button = Download { -brand-name }
|
||||
# Appears after Firefox Monitor has sent a verification email to a new user.
|
||||
# Appears after Firefox Monitor has sent a verification email to a new user.
|
||||
signup-modal-sent = Sent!
|
||||
sign-up = Sign Up
|
||||
form-signup-error = Must be a valid email
|
||||
# breach-date = the calendar date a particular data theft occurred.
|
||||
# breach-date = the calendar date a particular data theft occurred.
|
||||
breach-date = Breach date:
|
||||
# compromised accounts = the total number of user accounts exposed in data breach
|
||||
compromised-accounts = Compromised accounts:
|
||||
|
@ -64,6 +65,8 @@ unsub-headline = Unsubscribe from { -product-name-nowrap }
|
|||
unsub-blurb = This will remove your email from the { -product-name-nowrap } list and you will no longer receive alerts when new breaches are announced.
|
||||
unsub-button = Unsubscribe
|
||||
# Breach data provided by Have I Been Pwned.
|
||||
# Variables:
|
||||
# $hibp-link (String) - Link to Have I Been Pwned
|
||||
hibp-attribution = Breach data provided by { $hibp-link }
|
||||
share-twitter = Most people have about 100 online accounts. Have any of yours been exposed in a data breach? Find out.
|
||||
share-facebook-headline = Find out if you’ve been part of a data breach
|
||||
|
@ -113,8 +116,6 @@ preferences = Preferences
|
|||
# Link title
|
||||
home = Home
|
||||
# Link title
|
||||
breaches = Breaches
|
||||
# Link title
|
||||
security-tips = Security Tips
|
||||
fxa-account = { -brand-fxa }
|
||||
# Aria button message to open menu. "Open Firefox Account Navigation"
|
||||
|
@ -213,7 +214,9 @@ feat-security-tips = Security tips to protect your accounts
|
|||
feat-sensitive = Advanced search in sensitive breaches
|
||||
feat-enroll-multiple = Enroll multiple emails in breach monitoring
|
||||
# This string is shown beneath each of the user’s email addresses to indicate
|
||||
# how many known breaches that email address was found in.
|
||||
# how many known breaches that email address was found in.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
appears-in-x-breaches =
|
||||
{ $breachCount ->
|
||||
[one] Appears in { $breachCount } known breach.
|
||||
|
@ -225,6 +228,8 @@ get-email-alerts = Stay safe: Get email alerts when your information appears in
|
|||
search-for-your-email = Search for your email address in public data breaches going back to 2007.
|
||||
back-to-top = Back to Top
|
||||
comm-opt-0 = Email me if one of my email addresses below appears in a data breach.
|
||||
# Variables:
|
||||
# $primaryEmail (String) - User primary email address
|
||||
comm-opt-1 = Send all breach alerts to { $primaryEmail }.
|
||||
stop-monitoring-this = Stop monitoring this email.
|
||||
resend-verification = Resend verification email
|
||||
|
@ -233,7 +238,7 @@ send-verification = Send Verification Link
|
|||
# This string is a header on the user preferences page and
|
||||
# appears above a check-box list of user options which allow
|
||||
# the user to choose whether or not they want to receive breach
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# email address.
|
||||
breach-summary = Breach Summary
|
||||
show-breaches-for-this-email = Show all breaches for this email.
|
||||
|
@ -246,8 +251,15 @@ remove-fxm-blurb =
|
|||
manage-email-addresses = Manage Email Addresses
|
||||
# Link title
|
||||
latest-breach-link = See if you were in this breach
|
||||
|
||||
## Variables:
|
||||
## $userName (String) - Username
|
||||
|
||||
welcome-back = Welcome back, { $userName }!
|
||||
welcome-user = Welcome, { $userName }!
|
||||
|
||||
##
|
||||
|
||||
breach-alert-subject = { -product-name } found your email in a new data breach.
|
||||
your-info-was-discovered-headline = Your information was discovered in a new data breach.
|
||||
your-info-was-discovered-blurb =
|
||||
|
@ -271,6 +283,8 @@ ba-next-step-blurb-3 =
|
|||
faq1 = I don’t recognise this company or web site. Why am I in this breach?
|
||||
faq2 = Why did it take so long to notify me of this breach?
|
||||
faq3 = How do I know this is a legitimate email from { -product-name }?
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
new-breaches-found =
|
||||
{ $breachCount ->
|
||||
[one] { $breachCount } NEW BREACH FOUND
|
||||
|
@ -278,24 +292,32 @@ new-breaches-found =
|
|||
}
|
||||
sign-up-headline-1 = Get ongoing alerts with a { -brand-fxa }.
|
||||
account-not-required = { -brand-name } browser not required for a { -brand-fxa }. You may receive info about { -brand-Mozilla } services.
|
||||
|
||||
## Variables:
|
||||
## $breachName (String) - Number of the breach
|
||||
|
||||
was-your-info-exposed = Was your info exposed in the { $breachName } data breach?
|
||||
find-out-if = Find out if your data was exposed in this breach.
|
||||
fb-not-comp = This email did not appear in the { $breachName } breach.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
other-breaches-found =
|
||||
{ $breachCount ->
|
||||
[one] However, it did appear in { $breachCount } other breach.
|
||||
*[other] However, it did appear in { $breachCount } other breaches.
|
||||
}
|
||||
fb-comp-only = This email appeared in the { $breachName } breach.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
fb-comp-and-others =
|
||||
{ $breachCount ->
|
||||
[one] This email appeared in { $breachCount } known data breach, including { $breachName }.
|
||||
*[other] This email appeared in { $breachCount } known data breaches, including { $breachName }.
|
||||
}
|
||||
|
||||
##
|
||||
|
||||
no-other-breaches-found = No other breaches found from a basic search.
|
||||
no-results-blurb = Sorry, that breach is not in our database.
|
||||
all-breaches-headline = All breaches in { -product-name }
|
||||
search-breaches = Search Breaches
|
||||
# This string contains nested markup that is later used to style and link the text inside of it.
|
||||
# Please do not modify or remove "<a>", "</a>", "<span>" and "</span>".
|
||||
facebook-breach-note =
|
||||
|
@ -366,6 +388,8 @@ known-data-breaches-exposed =
|
|||
}
|
||||
# Button
|
||||
see-additional-breaches = See Additional Breaches
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
scan-results-known-breaches =
|
||||
{ $breachCount ->
|
||||
[one] This email appeared in 1 known data breach.
|
||||
|
@ -374,6 +398,8 @@ scan-results-known-breaches =
|
|||
# This string is shown at the top of the scan results page and is followed
|
||||
# by the email address that the user searched.
|
||||
# In page, it reads "Results for: searchedEmail@monitor.com"
|
||||
# Variables:
|
||||
# $userEmail (String) - User email address
|
||||
results-for = Results for: { $userEmail }
|
||||
other-monitored-emails = Other Monitored Emails
|
||||
email-verification-required = Email Verification Required
|
||||
|
@ -389,6 +415,8 @@ get-ongoing-breach-monitoring = Get ongoing breach monitoring for multiple email
|
|||
# This is a button and follows a headline reading "Was your info exposed in the ___ breach?"
|
||||
find-out = Find Out
|
||||
new-unsub-error = You’ll need to unsubscribe from one of the emails { -product-name } sent.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
other-known-breaches-found =
|
||||
{ $breachCount ->
|
||||
[one] However, it did appear in { $breachCount } other known breach.
|
||||
|
@ -406,10 +434,12 @@ breach-overview-title = Overview
|
|||
# $breachTitle is the name of the breached company or website.
|
||||
# $breachDate and $addedDate are calendar dates.
|
||||
breach-overview-new = On { $breachDate }, { $breachTitle } was breached. Once the breach was discovered and verified, it was added to our database on { $addedDate }.
|
||||
# Title appearing on the Preferences dashboard.
|
||||
# Title appearing on the Preferences dashboard.
|
||||
monitor-preferences = { -product-short-name } Preferences
|
||||
# When a user is signed in, this appears in the drop down menu
|
||||
# and is followed by the user's primary Firefox Account email.
|
||||
# When a user is signed in, this appears in the drop down menu
|
||||
# and is followed by the user's primary Firefox Account email.
|
||||
# Variables:
|
||||
# $userEmail (String) - User email address
|
||||
signed-in-as = Signed in as: { $userEmail }
|
||||
# Appears on the All Breaches page and is followed by a list of filter options
|
||||
# that a user can filter the visible breaches by.
|
||||
|
@ -426,12 +456,16 @@ email-sent = Email Sent!
|
|||
want-to-add = Want to add another email?
|
||||
# This is part of a confirmation message that appears after a user has submitted
|
||||
# the form to add an additional email to Firefox Monitor.
|
||||
# Variables:
|
||||
# $userEmail (String) - User email address
|
||||
verify-the-link = Verify the link sent to { $userEmail } to add it to { -product-name }.
|
||||
|
||||
## These are part of a confirmation page that appears after a user has verified
|
||||
## an additional email to Firefox Monitor.
|
||||
|
||||
email-verified = Email Successfully Verified!
|
||||
# Variables:
|
||||
# $email (String) - User email address
|
||||
email-added-to-subscription = We’ll alert you if { $email } appears in a data breach.
|
||||
# This message is displayed after the user has verified their email address.
|
||||
# { $nestedSignInLink } is replaced by a link, using sign-in-nested as text ("sign in" for English).
|
||||
|
@ -445,15 +479,17 @@ sign-in-nested = sign in
|
|||
# form to add an additional email to Firefox Monitor. { $preferencesLink } is a link
|
||||
# to the Preferences page. The code and text for the link is generated elsewhere
|
||||
# using the { preferences } string.
|
||||
# Variables:
|
||||
# $preferencesLink (String) - Link to preferences
|
||||
manage-all-emails = Manage all email addresses in { $preferencesLink }.
|
||||
# This string is a header on the user preferences page and
|
||||
# appears above a check-box list of user options which allow
|
||||
# the user to choose whether or not they want to receive breach
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# email address.
|
||||
breach-alert-notifications = Breach Alert Notifications
|
||||
# This string is a label for the calendar date a breach is added to the database
|
||||
# and is followed by that date.
|
||||
# and is followed by that date.
|
||||
breach-added-label = Breach added:
|
||||
how-hackers-work-desc = Protect your passwords from cyber criminals, since that’s what they care about most.
|
||||
what-to-do-after-breach-desc = Lock down your accounts to keep your information out of the wrong hands.
|
||||
|
@ -475,7 +511,11 @@ see-additional-recs = See Additional Recommendations
|
|||
## This string contains nested markup that becomes a link later in the code.
|
||||
## Please do not modify or remove "<a>" and "</a>".
|
||||
|
||||
# Variables:
|
||||
# $affectedEmail (String) - User email address
|
||||
resolve-top-notification = { $affectedEmail } appeared in this breach. <a>What to do next</a>
|
||||
# Variables:
|
||||
# $numAffectedEmails (Integer) - Number of affected email address
|
||||
resolve-top-notification-plural =
|
||||
{ $numAffectedEmails ->
|
||||
*[other] { $numAffectedEmails } of your email addresses appeared in this breach. <a>What to do next</a>
|
||||
|
@ -502,6 +542,8 @@ confirmation-3-subhead = Another one down. Nice work!
|
|||
# Please do not modify or remove "<a>" and "</a>".
|
||||
confirmation-3-body = Is your new password unique, strong, and hard to guess? <a>Find out</a>
|
||||
generic-confirmation-subhead = This breach has been marked as resolved
|
||||
# Variables:
|
||||
# $numUnresolvedBreaches (Integer) - Number of resolved breaches
|
||||
generic-confirmation-message =
|
||||
{ $numUnresolvedBreaches ->
|
||||
[one] To see the remaining breach, go to your dashboard.
|
||||
|
@ -511,9 +553,13 @@ return-to-breach-details-link = Return to breach details
|
|||
go-to-dashboard-link = Go to Dashboard
|
||||
# This string appears above a breach resolution progress bar and indicates
|
||||
# the percentage of breaches a user has resolved. For instance, "27% complete".
|
||||
# Variables:
|
||||
# $percentComplete (String) - Completion percentage
|
||||
progress-percent-complete = { $percentComplete }% complete
|
||||
# This string appears in the purple callouts at the top of the user dashboard and shows
|
||||
# the total number of breaches a user has resolved. For instance, "5 Resolved".
|
||||
# Variables:
|
||||
# $numResolvedBreaches (Integer) - Number of resolved breaches
|
||||
num-resolved =
|
||||
{ $numResolvedBreaches ->
|
||||
*[other] { $numResolvedBreaches } Resolved
|
||||
|
@ -522,6 +568,9 @@ progress-intro-subhead = New in { -product-name }: Mark breaches as resolved
|
|||
progress-intro-message =
|
||||
After reviewing the details about a breach and taking steps to protect
|
||||
your personal info, you can mark breaches as resolved.
|
||||
# Variables:
|
||||
# $numResolvedBreaches (Integer) - Number of resolved breaches
|
||||
# $numTotalBreaches (Integer) - Total number of breaches
|
||||
progress-status =
|
||||
{ $numTotalBreaches ->
|
||||
*[other] { $numResolvedBreaches } out of { $numTotalBreaches } breaches marked as resolved
|
||||
|
@ -546,16 +595,20 @@ progress-complete-message =
|
|||
##
|
||||
|
||||
resolve-this-breach-link = Resolve this breach
|
||||
# This string appears in resolved breach cards and is followed by
|
||||
# This string appears in resolved breach cards and is followed by
|
||||
# the date the user marked the breach as resolved.
|
||||
marked-resolved = Marked resolved:
|
||||
hide-resolved-button = Hide Resolved
|
||||
show-resolved-button = Show Resolved
|
||||
# Variables:
|
||||
# $numPasswords (Integer) - Number of exposed passwords
|
||||
unresolved-passwords-exposed =
|
||||
{ $numPasswords ->
|
||||
[one] Password exposed in unresolved breaches
|
||||
*[other] Passwords exposed in unresolved breaches
|
||||
}
|
||||
# Variables:
|
||||
# $numResolvedBreaches (Integer) - Number of resolved breaches
|
||||
known-data-breaches-resolved =
|
||||
{ $numResolvedBreaches ->
|
||||
[one] Known data breach marked as resolved
|
||||
|
@ -586,7 +639,10 @@ vpn-promo-copy-new = Protect your online data—and choose a VPN subscription pl
|
|||
|
||||
## VPN promotional banner. HTML tags should not be translated, e.g. `<em>`
|
||||
|
||||
# user's IP location is determined dynamically by 3rd-party, eg: "Your location: Los Angeles, CA". The 3rd-party service provides its own localization.
|
||||
# Variables:
|
||||
# $ip-location (String) - User's IP location is determined dynamically by 3rd-party,
|
||||
# eg: "Your location: Los Angeles, CA". The 3rd-party service
|
||||
# provides its own localization.
|
||||
vpn-banner-location = Your location: { $ip-location }
|
||||
vpn-banner-protect-yourself-with-vpn = <em>Protect yourself</em> with { -brand-mozilla-vpn }.
|
||||
vpn-banner-protected-with-vpn = <em>Protected</em> with { -brand-mozilla-vpn }.
|
||||
|
@ -595,7 +651,8 @@ vpn-banner-title-2 = Your location can be tracked if you don’t use a VPN.
|
|||
vpn-banner-subtitle-2 = Protect your location and browse securely in 3 steps
|
||||
vpn-banner-status-protected = Current status: <em>Protected ✓</em>
|
||||
vpn-banner-status-not-protected = Current status: <em>Not protected ⚠</em>
|
||||
# user's IP address is determined dynamically, eg: "IP address: 192.168.1.1"
|
||||
# Variables:
|
||||
# $ip-address (String) - User's IP address is determined dynamically, eg: "IP address: 192.168.1.1"
|
||||
vpn-banner-ip-address = IP address: { $ip-address }
|
||||
vpn-banner-step-1 = Subscribe to { -brand-mozilla-vpn }
|
||||
vpn-banner-step-2 = Select a VPN location
|
||||
|
@ -654,6 +711,8 @@ ad-unit-6-before-you-complete = Before you complete that next signup, use an ema
|
|||
-brand-mozilla = Mozilla
|
||||
-brand-mozilla-foundation = Mozilla Foundation
|
||||
-brand-github = GitHub
|
||||
-brand-mozilla-vpn = Mozilla VPN
|
||||
-brand-relay = Firefox Relay
|
||||
|
||||
##
|
||||
|
||||
|
@ -675,6 +734,10 @@ sign-in = Sign In
|
|||
site-nav-breaches-link = Resolve Data Breaches
|
||||
site-nav-settings-link = Settings
|
||||
site-nav-help-link = Help and Support
|
||||
# This call-out is above 2 image links for Firefox Relay and Mozilla VPN
|
||||
site-nav-ad-callout = Try our other security tools:
|
||||
brand-relay = { -brand-relay }
|
||||
brand-mozilla-vpn = { -brand-mozilla-vpn }
|
||||
|
||||
## User menu
|
||||
|
||||
|
@ -688,9 +751,10 @@ menu-item-logout = Sign out
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Terms and Privacy
|
||||
github = { -brand-github }
|
||||
footer-nav-all-breaches = All Breaches
|
||||
|
||||
## Error page
|
||||
|
||||
|
@ -703,3 +767,17 @@ error-page-error-404-cta-button = Go back
|
|||
# $errorCode (number) - the status code of the error, e.g. 403
|
||||
error-page-error-other-title = { $errorCode } Something went wrong
|
||||
error-page-error-other-copy = Please try again or come back later
|
||||
|
||||
## Breach overview page
|
||||
|
||||
all-breaches-headline-2 = All breaches detected by { -brand-fx-monitor }
|
||||
all-breaches-lead = We monitor all known data breaches to find out if your personal information was compromised. Here’s a complete list of all of the breaches that have been reported since 2007.
|
||||
search-breaches = Search Breaches
|
||||
# the kind of user data exposed to hackers in data breach.
|
||||
exposed-data = Exposed data:
|
||||
|
||||
## Public breach detail page
|
||||
|
||||
find-out-if-2 = Find out if you were involved in this breach
|
||||
find-out-if-description = We’ll help you quickly see if your email address was exposed in this breach, and understand what to do next.
|
||||
breach-detail-cta-signup = Check for breaches
|
||||
|
|
|
@ -10,10 +10,10 @@ rec-ssn =
|
|||
rec-pw-1-subhead = Change your password
|
||||
# Link title
|
||||
rec-pw-1-cta = Change password for this site
|
||||
rec-pw-1 =
|
||||
Make this password unique and different from any others you use.
|
||||
A good strategy to follow is to combine two or more unrelated
|
||||
words to create an entire passphrase.
|
||||
rec-pw-1-2 =
|
||||
Make this password unique and different from any others you use.
|
||||
A good strategy to follow is to combine two or more unrelated
|
||||
words to create an entire passphrase, and include numbers and symbols.
|
||||
# Recommendation subhead
|
||||
rec-pw-2-subhead = Update other logins using the same password
|
||||
# Link title
|
||||
|
@ -57,22 +57,13 @@ rec-email =
|
|||
find your passwords or target you online. A service like { -brand-relay }
|
||||
hides your real email address while forwarding emails to your real inbox.
|
||||
# Recommendation subhead
|
||||
rec-ip-subhead = Use a service that masks your IP address
|
||||
# Link title
|
||||
rec-ip-us-cta = Try { -brand-fpn }
|
||||
rec-ip-us =
|
||||
Your Internet Protocol address (IP address) pinpoints your location
|
||||
and internet service provider. A service like { -brand-fpn }
|
||||
masks your IP address to hide your location.
|
||||
rec-ip-non-us =
|
||||
Your Internet Protocol address (IP address) pinpoints your location
|
||||
and internet service provider. With a virtual private network (VPN), you can hide your location
|
||||
and mask your IP address.
|
||||
rec-ip-subhead-2 = Use a VPN to mask your IP address
|
||||
# Recommendation subhead
|
||||
rec-moz-vpn-cta = Try { -brand-mozilla-vpn }
|
||||
rec-moz-vpn-update =
|
||||
Your Internet Protocol address (IP address) can reveal your location and internet service provider. A service
|
||||
like { -brand-mozilla-vpn } hides your IP address and location for your entire device.
|
||||
rec-moz-vpn-update-2 =
|
||||
Your Internet Protocol address (IP address) pinpoints your location
|
||||
and internet service provider. A service like { -brand-mozilla-vpn }
|
||||
masks your IP address to hide your location.
|
||||
rec-hist-pw-subhead = Avoid reusing passwords
|
||||
# Link title
|
||||
rec-hist-pw-cta-fx = View logins in { -brand-name }
|
||||
|
|
|
@ -15,8 +15,6 @@
|
|||
-brand-lockwise = Firefox Lockwise
|
||||
-brand-send = Firefox Send
|
||||
-brand-fpn = Red privada de Firefox
|
||||
-brand-mozilla-vpn = VPN de Mozilla
|
||||
-brand-relay = Firefox Relay
|
||||
|
||||
##
|
||||
|
||||
|
@ -37,6 +35,9 @@ user-add-invalid-email = Dirección de correo electrónico inválida
|
|||
user-add-too-many-emails = Estás monitoreando el número máximo de correos electrónicos posible.
|
||||
user-add-email-verify-subject = Verificá tu suscripción a { -product-name }.
|
||||
user-add-duplicate-email = Este correo electrónico ya se agregó a { -product-name }.
|
||||
# Variables:
|
||||
# $preferencesLink (String) - Link to preferences
|
||||
# $userEmail (String) - User email address
|
||||
user-add-duplicate-email-part-2 = Andá a tu { $preferencesLink } para verificar el estado de { $userEmail }.
|
||||
error-headline = Error
|
||||
user-verify-token-error = Se requiere identificador de verificación.
|
||||
|
@ -50,11 +51,11 @@ scan-placeholder = Ingresá la dirección de correo electrónico
|
|||
scan-submit = Buscá tu dirección de correo electrónico
|
||||
scan-error = Debe ser una dirección de correo electrónico válida.
|
||||
download-firefox-banner-button = Descargar { -brand-name }
|
||||
# Appears after Firefox Monitor has sent a verification email to a new user.
|
||||
# Appears after Firefox Monitor has sent a verification email to a new user.
|
||||
signup-modal-sent = ¡Enviado!
|
||||
sign-up = Registrate
|
||||
form-signup-error = Debe ser una dirección de correo electrónico válida
|
||||
# breach-date = the calendar date a particular data theft occurred.
|
||||
# breach-date = the calendar date a particular data theft occurred.
|
||||
breach-date = Fecha de filtración:
|
||||
# compromised accounts = the total number of user accounts exposed in data breach
|
||||
compromised-accounts = Cuentas comprometidas:
|
||||
|
@ -64,6 +65,8 @@ unsub-headline = Cancelar la suscripción de { -product-name-nowrap }
|
|||
unsub-blurb = Esto eliminará tu dirección de correo electrónico de la lista { -product-name-nowrap } y ya no recibirás alertas cuando se anuncien nuevas filtraciones.
|
||||
unsub-button = Cancelar suscripción
|
||||
# Breach data provided by Have I Been Pwned.
|
||||
# Variables:
|
||||
# $hibp-link (String) - Link to Have I Been Pwned
|
||||
hibp-attribution = Datos de filtración proporcionados por { $hibp-link }
|
||||
share-twitter = La mayoría de las personas tienen alrededor de 100 cuentas en línea. ¿Alguna de los tuyas tuvo una filtración de datos? Descubrilo.
|
||||
share-facebook-headline = Averiguá si fusite parte de una filtración de datos.
|
||||
|
@ -99,8 +102,6 @@ preferences = Preferencias
|
|||
# Link title
|
||||
home = Inicio
|
||||
# Link title
|
||||
breaches = Violaciones
|
||||
# Link title
|
||||
security-tips = Consejos de seguridad
|
||||
fxa-account = { -brand-fxa }
|
||||
# Aria button message to open menu. "Open Firefox Account Navigation"
|
||||
|
@ -182,7 +183,9 @@ feat-security-tips = Consejos de seguridad para proteger tus cuentas
|
|||
feat-sensitive = Búsqueda avanzada de violaciones privadas
|
||||
feat-enroll-multiple = Inscribí múltiples correos electrónicos en el control de violaciones
|
||||
# This string is shown beneath each of the user’s email addresses to indicate
|
||||
# how many known breaches that email address was found in.
|
||||
# how many known breaches that email address was found in.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
appears-in-x-breaches =
|
||||
{ $breachCount ->
|
||||
[one] Aparece en { $breachCount } violación conocida.
|
||||
|
@ -194,6 +197,8 @@ get-email-alerts = Mantenete seguro: recibí alertas por correo electrónico cua
|
|||
search-for-your-email = Buscá tu dirección de correo en violaciones de datos públicos yendo hasta 2007.
|
||||
back-to-top = Volver al inicio
|
||||
comm-opt-0 = Enviame un correo electrónico si alguna de mis direcciones de correo electrónico de las que están a continuación aparece en una violación de datos.
|
||||
# Variables:
|
||||
# $primaryEmail (String) - User primary email address
|
||||
comm-opt-1 = Enviar todas las alertas de violaciones a { $primaryEmail }.
|
||||
stop-monitoring-this = Dejar de controlar esta dirección correo electrónico.
|
||||
resend-verification = Reenviar correo electrónico de verificación
|
||||
|
@ -202,7 +207,7 @@ send-verification = Enviar enlace de verificación
|
|||
# This string is a header on the user preferences page and
|
||||
# appears above a check-box list of user options which allow
|
||||
# the user to choose whether or not they want to receive breach
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# email address.
|
||||
breach-summary = Resumen de filtraciones
|
||||
show-breaches-for-this-email = Mostrar todas las filtraciones de este correo electrónico.
|
||||
|
@ -213,8 +218,15 @@ remove-fxm-blurb = Desactivar alertas de { -product-name }. { -brand-fxa } segui
|
|||
manage-email-addresses = Administrar direcciones de correo electrónico
|
||||
# Link title
|
||||
latest-breach-link = Ver si estás en esta filtración
|
||||
|
||||
## Variables:
|
||||
## $userName (String) - Username
|
||||
|
||||
welcome-back = ¡Bienvenido de nuevo, { $userName }!
|
||||
welcome-user = ¡Bienvenido, { $userName }!
|
||||
|
||||
##
|
||||
|
||||
breach-alert-subject = { -product-name } encontró tu correo electrónico en una nueva filtración de datos.
|
||||
your-info-was-discovered-headline = Tu información fue descubierta en una nueva filtración de datos.
|
||||
your-info-was-discovered-blurb =
|
||||
|
@ -239,6 +251,8 @@ ba-next-step-blurb-3 =
|
|||
faq1 = No reconozco esta empresa o sitio web. ¿Por qué estoy en esta filtración?
|
||||
faq2 = ¿Por qué tomó tanto tiempo notificarme esta filtración?
|
||||
faq3 = ¿Cómo sé que este es un correo electrónico legítimo de { -product-name }?
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
new-breaches-found =
|
||||
{ $breachCount ->
|
||||
[one] { $breachCount } NUEVA FILTRACIÓN ENCONTRADA
|
||||
|
@ -246,23 +260,31 @@ new-breaches-found =
|
|||
}
|
||||
sign-up-headline-1 = Obtener alertas continuas con { -brand-fxa }.
|
||||
account-not-required = El navegador { -brand-name } no es necesario para { -brand-fxa }. Podés recibir información sobre los servicios de { -brand-Mozilla }.
|
||||
|
||||
## Variables:
|
||||
## $breachName (String) - Number of the breach
|
||||
|
||||
was-your-info-exposed = ¿Estuvo tu información expuesta en la filtración de datos { $breachName }?
|
||||
find-out-if = Averiguar si tus datos fueron expuestos en esta filtración.
|
||||
fb-not-comp = Este correo electrónico no apareció en la filtración { $breachName }..
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
other-breaches-found =
|
||||
{ $breachCount ->
|
||||
[one] Sin embargo, apareció en { $breachCount } filtración.
|
||||
*[other] Sin embargo, apareció en { $breachCount } otras filtraciones.
|
||||
}
|
||||
fb-comp-only = Este correo electrónico apareció en la filtración { $breachName }.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
fb-comp-and-others =
|
||||
{ $breachCount ->
|
||||
*[other] Este correo electrónico aparece en { $breachCount } filtraciones de datos conocidas, incluyendo { $breachName }.
|
||||
}
|
||||
|
||||
##
|
||||
|
||||
no-other-breaches-found = No se han encontrado otras filtraciones en una búsqueda básica.
|
||||
no-results-blurb = Lo sentimos, ese filtración no está en nuestra base de datos.
|
||||
all-breaches-headline = Todas las filtraciones en { -product-name }
|
||||
search-breaches = Buscar filtraciones
|
||||
# This string contains nested markup that is later used to style and link the text inside of it.
|
||||
# Please do not modify or remove "<a>", "</a>", "<span>" and "</span>".
|
||||
facebook-breach-note =
|
||||
|
@ -330,6 +352,8 @@ known-data-breaches-exposed =
|
|||
}
|
||||
# Button
|
||||
see-additional-breaches = Ver filtraciones adicionales
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
scan-results-known-breaches =
|
||||
{ $breachCount ->
|
||||
[one] El correo electrónico apareció en 1 filtración de datos conocida.
|
||||
|
@ -338,6 +362,8 @@ scan-results-known-breaches =
|
|||
# This string is shown at the top of the scan results page and is followed
|
||||
# by the email address that the user searched.
|
||||
# In page, it reads "Results for: searchedEmail@monitor.com"
|
||||
# Variables:
|
||||
# $userEmail (String) - User email address
|
||||
results-for = Resultados para: { $userEmail }
|
||||
other-monitored-emails = Otros correos electrónicos monitoreados
|
||||
email-verification-required = Verificación de correo electrónico requerida
|
||||
|
@ -353,6 +379,8 @@ get-ongoing-breach-monitoring = Obtené el monitoreo contínuo de las violacione
|
|||
# This is a button and follows a headline reading "Was your info exposed in the ___ breach?"
|
||||
find-out = Averiguar
|
||||
new-unsub-error = Necesitás darte de baja de uno de los correos electrónicos enviados por { -product-name }.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
other-known-breaches-found =
|
||||
{ $breachCount ->
|
||||
[one] Sin embargo, apareció en { $breachCount } filtración conocida.
|
||||
|
@ -370,10 +398,12 @@ breach-overview-title = Visión general
|
|||
# $breachTitle is the name of the breached company or website.
|
||||
# $breachDate and $addedDate are calendar dates.
|
||||
breach-overview-new = El { $breachDate }, { $breachTitle } sufrió una filtración. Una vez que se descubrió y verificó la filtración, se agregó a nuestra base de datos el { $addedDate }.
|
||||
# Title appearing on the Preferences dashboard.
|
||||
# Title appearing on the Preferences dashboard.
|
||||
monitor-preferences = Preferencias de { -product-short-name }
|
||||
# When a user is signed in, this appears in the drop down menu
|
||||
# and is followed by the user's primary Firefox Account email.
|
||||
# When a user is signed in, this appears in the drop down menu
|
||||
# and is followed by the user's primary Firefox Account email.
|
||||
# Variables:
|
||||
# $userEmail (String) - User email address
|
||||
signed-in-as = Conectado como: { $userEmail }
|
||||
# Appears on the All Breaches page and is followed by a list of filter options
|
||||
# that a user can filter the visible breaches by.
|
||||
|
@ -390,12 +420,16 @@ email-sent = Correo electrónico enviado
|
|||
want-to-add = ¿Quieres añadir otro correo electrónico?
|
||||
# This is part of a confirmation message that appears after a user has submitted
|
||||
# the form to add an additional email to Firefox Monitor.
|
||||
# Variables:
|
||||
# $userEmail (String) - User email address
|
||||
verify-the-link = Verificar el enlace enviado a { $userEmail } para agregarlo a { -product-name }.
|
||||
|
||||
## These are part of a confirmation page that appears after a user has verified
|
||||
## an additional email to Firefox Monitor.
|
||||
|
||||
email-verified = ¡Correo electrónico verificado correctamente!
|
||||
# Variables:
|
||||
# $email (String) - User email address
|
||||
email-added-to-subscription = Te vamos a avisar si { $email } aparece en una violación de datos.
|
||||
# This message is displayed after the user has verified their email address.
|
||||
# { $nestedSignInLink } is replaced by a link, using sign-in-nested as text ("sign in" for English).
|
||||
|
@ -409,15 +443,17 @@ sign-in-nested = iniciar sesión
|
|||
# form to add an additional email to Firefox Monitor. { $preferencesLink } is a link
|
||||
# to the Preferences page. The code and text for the link is generated elsewhere
|
||||
# using the { preferences } string.
|
||||
# Variables:
|
||||
# $preferencesLink (String) - Link to preferences
|
||||
manage-all-emails = Administra todas las direcciones de correo electrónico en { $preferencesLink }.
|
||||
# This string is a header on the user preferences page and
|
||||
# appears above a check-box list of user options which allow
|
||||
# the user to choose whether or not they want to receive breach
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# email address.
|
||||
breach-alert-notifications = Notificaciones de alerta de incumplimiento
|
||||
# This string is a label for the calendar date a breach is added to the database
|
||||
# and is followed by that date.
|
||||
# and is followed by that date.
|
||||
breach-added-label = Incumplimiento añadido:
|
||||
how-hackers-work-desc = Protejé tus contraseñas de los delincuentes cibernéticos, ya que eso es lo que más les importa.
|
||||
what-to-do-after-breach-desc = Bloqueá tus cuentas para mantener tu información fuera de las manos equivocadas.
|
||||
|
@ -439,7 +475,11 @@ see-additional-recs = Ver recomendaciones adicionales
|
|||
## This string contains nested markup that becomes a link later in the code.
|
||||
## Please do not modify or remove "<a>" and "</a>".
|
||||
|
||||
# Variables:
|
||||
# $affectedEmail (String) - User email address
|
||||
resolve-top-notification = { $affectedEmail } apareció en esta violación. <a>Qué hacer a continuación</a>
|
||||
# Variables:
|
||||
# $numAffectedEmails (Integer) - Number of affected email address
|
||||
resolve-top-notification-plural =
|
||||
{ $numAffectedEmails ->
|
||||
[one] { $numAffectedEmails } apareció en esta violación. <a>Qué hacer a continuación</a>
|
||||
|
@ -467,6 +507,8 @@ confirmation-3-subhead = Otra más. ¡Muy bien!
|
|||
# Please do not modify or remove "<a>" and "</a>".
|
||||
confirmation-3-body = ¿Tu nueva contraseña es única, segura y difícil de adivinar? <a>Descubrilo</a>
|
||||
generic-confirmation-subhead = Esta violación fue marcada como resuelta
|
||||
# Variables:
|
||||
# $numUnresolvedBreaches (Integer) - Number of resolved breaches
|
||||
generic-confirmation-message =
|
||||
{ $numUnresolvedBreaches ->
|
||||
[one] Para ver la violación que queda, mirá tu panel de control.
|
||||
|
@ -476,9 +518,13 @@ return-to-breach-details-link = Volver a los detalles de la violación
|
|||
go-to-dashboard-link = Ir al panel de control
|
||||
# This string appears above a breach resolution progress bar and indicates
|
||||
# the percentage of breaches a user has resolved. For instance, "27% complete".
|
||||
# Variables:
|
||||
# $percentComplete (String) - Completion percentage
|
||||
progress-percent-complete = { $percentComplete }% completo
|
||||
# This string appears in the purple callouts at the top of the user dashboard and shows
|
||||
# the total number of breaches a user has resolved. For instance, "5 Resolved".
|
||||
# Variables:
|
||||
# $numResolvedBreaches (Integer) - Number of resolved breaches
|
||||
num-resolved =
|
||||
{ $numResolvedBreaches ->
|
||||
[one] { $numResolvedBreaches } Resuelta
|
||||
|
@ -488,6 +534,9 @@ progress-intro-subhead = Nuevo en { -product-name }: marcar violaciones como res
|
|||
progress-intro-message =
|
||||
Después de revisar los detalles sobre una violación y tomar medidas para proteger
|
||||
tu información personal, podés marcarla como resueltas.
|
||||
# Variables:
|
||||
# $numResolvedBreaches (Integer) - Number of resolved breaches
|
||||
# $numTotalBreaches (Integer) - Total number of breaches
|
||||
progress-status =
|
||||
{ $numTotalBreaches ->
|
||||
[one] { $numResolvedBreaches } de { $numTotalBreaches } violación marcada como resuelta
|
||||
|
@ -513,16 +562,20 @@ progress-complete-message =
|
|||
##
|
||||
|
||||
resolve-this-breach-link = Resolver esta violación
|
||||
# This string appears in resolved breach cards and is followed by
|
||||
# This string appears in resolved breach cards and is followed by
|
||||
# the date the user marked the breach as resolved.
|
||||
marked-resolved = Marcado como resuelto:
|
||||
hide-resolved-button = Ocultar resueltos
|
||||
show-resolved-button = Mostrar resueltos
|
||||
# Variables:
|
||||
# $numPasswords (Integer) - Number of exposed passwords
|
||||
unresolved-passwords-exposed =
|
||||
{ $numPasswords ->
|
||||
[one] Contraseña expuesta en violaciones no resueltas
|
||||
*[other] Contraseñas expuestas en violaciones no resueltas
|
||||
}
|
||||
# Variables:
|
||||
# $numResolvedBreaches (Integer) - Number of resolved breaches
|
||||
known-data-breaches-resolved =
|
||||
{ $numResolvedBreaches ->
|
||||
[one] Violación de datos conocida marcada como resuelta
|
||||
|
@ -553,7 +606,10 @@ vpn-promo-copy-new = Protegé tus datos en línea y elegí un plan de suscripci
|
|||
|
||||
## VPN promotional banner. HTML tags should not be translated, e.g. `<em>`
|
||||
|
||||
# user's IP location is determined dynamically by 3rd-party, eg: "Your location: Los Angeles, CA". The 3rd-party service provides its own localization.
|
||||
# Variables:
|
||||
# $ip-location (String) - User's IP location is determined dynamically by 3rd-party,
|
||||
# eg: "Your location: Los Angeles, CA". The 3rd-party service
|
||||
# provides its own localization.
|
||||
vpn-banner-location = Tu ubicación: { $ip-location }
|
||||
vpn-banner-protect-yourself-with-vpn = <em>Protegete</em> con { -brand-mozilla-vpn }.
|
||||
vpn-banner-protected-with-vpn = <em>Protegido</em> con { -brand-mozilla-vpn }.
|
||||
|
@ -562,7 +618,8 @@ vpn-banner-title-2 = Tu ubicación puede ser rastreada si no usás una VPN.
|
|||
vpn-banner-subtitle-2 = Protegé tu ubicación y navegá de forma segura en tres pasos.
|
||||
vpn-banner-status-protected = Estado actual: <em>Protegido ✓</em>
|
||||
vpn-banner-status-not-protected = Estado actual: <em>No protegido ⚠</em>
|
||||
# user's IP address is determined dynamically, eg: "IP address: 192.168.1.1"
|
||||
# Variables:
|
||||
# $ip-address (String) - User's IP address is determined dynamically, eg: "IP address: 192.168.1.1"
|
||||
vpn-banner-ip-address = Dirección IP: { $ip-address }
|
||||
vpn-banner-step-1 = Suscribite a { -brand-mozilla-vpn }
|
||||
vpn-banner-step-2 = Seleccioná una ubicación de VPN
|
||||
|
@ -621,6 +678,8 @@ ad-unit-6-before-you-complete = Antes de completar el próximo registro, usá un
|
|||
-brand-mozilla = Mozilla
|
||||
-brand-mozilla-foundation = Fundación Mozilla
|
||||
-brand-github = GitHub
|
||||
-brand-mozilla-vpn = VPN de Mozilla
|
||||
-brand-relay = Firefox Relay
|
||||
|
||||
##
|
||||
|
||||
|
@ -642,6 +701,10 @@ sign-in = Iniciar la sesión
|
|||
site-nav-breaches-link = Resolver filtraciones de datos
|
||||
site-nav-settings-link = Opciones
|
||||
site-nav-help-link = Ayuda y soporte
|
||||
# This call-out is above 2 image links for Firefox Relay and Mozilla VPN
|
||||
site-nav-ad-callout = Probá nuestras otras herramientas de seguridad:
|
||||
brand-relay = { -brand-relay }
|
||||
brand-mozilla-vpn = { -brand-mozilla-vpn }
|
||||
|
||||
## User menu
|
||||
|
||||
|
@ -655,9 +718,10 @@ menu-item-logout = Cerrar sesión
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Términos y privacidad
|
||||
github = { -brand-github }
|
||||
footer-nav-all-breaches = Todas las filtraciones
|
||||
|
||||
## Error page
|
||||
|
||||
|
@ -670,3 +734,17 @@ error-page-error-404-cta-button = Atrás
|
|||
# $errorCode (number) - the status code of the error, e.g. 403
|
||||
error-page-error-other-title = { $errorCode } Algo salió mal
|
||||
error-page-error-other-copy = Probá de nuevo o volvé más tarde
|
||||
|
||||
## Breach overview page
|
||||
|
||||
all-breaches-headline-2 = Todas las filtraciones detectadas por { -brand-fx-monitor }
|
||||
all-breaches-lead = Monitoreamos todas las filtraciones de datos para encontrar si tu información personal se vio comprometida. Acá hay una lista completa de todas las filtraciones que se informaron desde 2007.
|
||||
search-breaches = Buscar filtraciones
|
||||
# the kind of user data exposed to hackers in data breach.
|
||||
exposed-data = Datos expuestos:
|
||||
|
||||
## Public breach detail page
|
||||
|
||||
find-out-if-2 = Fijate si estuviste involucrado en esta filtración
|
||||
find-out-if-description = Te vamos a ayudar a ver rápidamente si tu dirección de correo electrónico estuvo expuesta en esta filtración para entender qué hacer a continuación.
|
||||
breach-detail-cta-signup = Verificá si hay filtraciones
|
||||
|
|
|
@ -10,10 +10,10 @@ rec-ssn =
|
|||
rec-pw-1-subhead = Cambiá la contraseña
|
||||
# Link title
|
||||
rec-pw-1-cta = Cambiá contraseña para este sitio
|
||||
rec-pw-1 =
|
||||
rec-pw-1-2 =
|
||||
Hacé que esta contraseña sea única y diferente de cualquier otra que uses.
|
||||
Una buena estrategia a seguir es combinar dos o más
|
||||
palabras no relacionadas para crear una frase de contraseña completa.
|
||||
palabras no relacionadas para crear una frase de contraseña completa e incluir números y símbolos.
|
||||
# Recommendation subhead
|
||||
rec-pw-2-subhead = Actualizá otros inicios de sesión con la misma contraseña
|
||||
# Link title
|
||||
|
@ -55,23 +55,13 @@ rec-email =
|
|||
encuentren tus contraseñas o te encuentren en línea. Un servicio como { -brand-relay }
|
||||
oculta tu dirección de correo electrónico real mientras reenvía correos a tu bandeja de entrada real.
|
||||
# Recommendation subhead
|
||||
rec-ip-subhead = Usá un servicio que oculte tu dirección IP
|
||||
# Link title
|
||||
rec-ip-us-cta = Probá { -brand-fpn }
|
||||
rec-ip-us =
|
||||
Tu dirección de protocolo de Internet (dirección IP) señala tu ubicación
|
||||
y tu proveedor de servicios de internet. Un servicio como { -brand-fpn }
|
||||
enmascara tu dirección IP para ocultar tu ubicación.
|
||||
rec-ip-non-us =
|
||||
Tu dirección de protocolo de Internet (dirección IP) señala tu ubicación
|
||||
y tu proveedor de servicios de internet. Con una red privada virtual (VPN), podés ocultar tu ubicación
|
||||
y enmascarar tu dirección IP.
|
||||
rec-ip-subhead-2 = Usá una VPN para enmascarar tu dirección IP
|
||||
# Recommendation subhead
|
||||
rec-moz-vpn-cta = Pruobá { -brand-mozilla-vpn }
|
||||
rec-moz-vpn-update =
|
||||
Tu dirección de protocolo de Internet (dirección IP) puede revelar tu ubicación
|
||||
rec-moz-vpn-update-2 =
|
||||
Tu dirección de protocolo de Internet (dirección IP) señala tu ubicación
|
||||
y tu proveedor de servicios de internet. Un servicio como { -brand-mozilla-vpn }
|
||||
oculta tu dirección IP y tu ubicación en tu dispositivo.
|
||||
enmascara tu dirección IP para ocultar tu ubicación.
|
||||
rec-hist-pw-subhead = Evitá reutilizar contraseñas
|
||||
# Link title
|
||||
rec-hist-pw-cta-fx = Ver inicios de sesión en { -brand-name }
|
||||
|
|
|
@ -15,8 +15,6 @@
|
|||
-brand-lockwise = Firefox Lockwise
|
||||
-brand-send = Firefox Send
|
||||
-brand-fpn = Red privada de Firefox
|
||||
-brand-mozilla-vpn = Mozilla VPN
|
||||
-brand-relay = Firefox Relay
|
||||
|
||||
##
|
||||
|
||||
|
@ -37,6 +35,9 @@ user-add-invalid-email = Correo inválido
|
|||
user-add-too-many-emails = Estás monitorizando el número máximo de correos posible.
|
||||
user-add-email-verify-subject = Verifica tu suscripción a { -product-name }.
|
||||
user-add-duplicate-email = Este correo ya ha sido añadido a { -product-name }.
|
||||
# Variables:
|
||||
# $preferencesLink (String) - Link to preferences
|
||||
# $userEmail (String) - User email address
|
||||
user-add-duplicate-email-part-2 = Visita tus { $preferencesLink } para revisar el estado de { $userEmail }.
|
||||
error-headline = Error
|
||||
user-verify-token-error = Toquen de verificación requerido.
|
||||
|
@ -50,11 +51,11 @@ scan-placeholder = Ingresa tu dirección de correo
|
|||
scan-submit = Busca tu correo electrónico
|
||||
scan-error = Debe ser un correo electrónico válido.
|
||||
download-firefox-banner-button = Bajar { -brand-name }
|
||||
# Appears after Firefox Monitor has sent a verification email to a new user.
|
||||
# Appears after Firefox Monitor has sent a verification email to a new user.
|
||||
signup-modal-sent = ¡Enviado!
|
||||
sign-up = Registrarse
|
||||
form-signup-error = Debe ser una dirección de correo electrónico válida
|
||||
# breach-date = the calendar date a particular data theft occurred.
|
||||
# breach-date = the calendar date a particular data theft occurred.
|
||||
breach-date = Fecha de la filtración de datos:
|
||||
# compromised accounts = the total number of user accounts exposed in data breach
|
||||
compromised-accounts = Cuentas comprometidas:
|
||||
|
@ -64,6 +65,8 @@ unsub-headline = Cancelar la suscripción de { -product-name-nowrap }
|
|||
unsub-blurb = Esto eliminará tu correo de la lista de { -product-name-nowrap } y ya no recibirás alertas cuando se anuncien nuevas filtraciones.
|
||||
unsub-button = Cancelar suscripción
|
||||
# Breach data provided by Have I Been Pwned.
|
||||
# Variables:
|
||||
# $hibp-link (String) - Link to Have I Been Pwned
|
||||
hibp-attribution = Datos de la filtración proporcionados por { $hibp-link }
|
||||
share-twitter = La mayoría de la gente tiene más de 100 cuentas en línea. ¿Ha sido alguna de las tuyas expuesta en una filtración de datos? Averígualo.
|
||||
share-facebook-headline = Averigua si has sido parte de una filtración de datos
|
||||
|
@ -99,8 +102,6 @@ preferences = Preferencias
|
|||
# Link title
|
||||
home = Inicio
|
||||
# Link title
|
||||
breaches = Filtraciones
|
||||
# Link title
|
||||
security-tips = Consejos de seguridad
|
||||
fxa-account = { -brand-fxa }
|
||||
# Aria button message to open menu. "Open Firefox Account Navigation"
|
||||
|
@ -191,7 +192,9 @@ feat-security-tips = Consejos de seguridad para proteger tus cuentas
|
|||
feat-sensitive = Búsqueda avanzada de filtraciones sensibles
|
||||
feat-enroll-multiple = Agrega varias direcciones de correo al control de filtraciones
|
||||
# This string is shown beneath each of the user’s email addresses to indicate
|
||||
# how many known breaches that email address was found in.
|
||||
# how many known breaches that email address was found in.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
appears-in-x-breaches =
|
||||
{ $breachCount ->
|
||||
[one] Aparece en { $breachCount } filtración conocida.
|
||||
|
@ -203,6 +206,8 @@ get-email-alerts = Mantente seguro: recibe alertas por correo cuando tu informac
|
|||
search-for-your-email = Busca tu dirección de correo en filtraciones de datos públicas yendo hasta 2007.
|
||||
back-to-top = Volver arriba
|
||||
comm-opt-0 = Envíame un correo electrónico si alguna de mis direcciones de correo electrónico de las que están a continuación aparece en una filtración de datos.
|
||||
# Variables:
|
||||
# $primaryEmail (String) - User primary email address
|
||||
comm-opt-1 = Enviar todas las alertas de filtraciones a { $primaryEmail }.
|
||||
stop-monitoring-this = Dejar de monitorear este correo.
|
||||
resend-verification = Reenviar correo de verificación
|
||||
|
@ -211,7 +216,7 @@ send-verification = Enviar enlace de verificación
|
|||
# This string is a header on the user preferences page and
|
||||
# appears above a check-box list of user options which allow
|
||||
# the user to choose whether or not they want to receive breach
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# email address.
|
||||
breach-summary = Resumen de filtraciones
|
||||
show-breaches-for-this-email = Mostrar todas las filtraciones para este correo.
|
||||
|
@ -222,8 +227,15 @@ remove-fxm-blurb = Desactivar alertas de { -product-name }. Tu { -brand-fxa } pe
|
|||
manage-email-addresses = Gestionar direcciones de correo
|
||||
# Link title
|
||||
latest-breach-link = Revisa si estás en esta filtración
|
||||
|
||||
## Variables:
|
||||
## $userName (String) - Username
|
||||
|
||||
welcome-back = ¡Bienvenido nuevamente { $userName }!
|
||||
welcome-user = ¡Bienvenido { $userName }!
|
||||
|
||||
##
|
||||
|
||||
breach-alert-subject = { -product-name } encontró tu correo en una nueva filtración de datos.
|
||||
your-info-was-discovered-headline = Tu información fue descubierta en una nueva filtración de datos.
|
||||
your-info-was-discovered-blurb =
|
||||
|
@ -248,6 +260,8 @@ ba-next-step-blurb-3 =
|
|||
faq1 = No reconozco esta empresa o sitio web. ¿Por qué aparezco en la filtración?
|
||||
faq2 = ¿Por qué tomó tanto tiempo notificarme sobre esta filtración?
|
||||
faq3 = ¿Cómo sé que este es un correo electrónico legítimo de { -product-name }?
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
new-breaches-found =
|
||||
{ $breachCount ->
|
||||
[one] { $breachCount } NUEVA FILTRACIÓN ENCONTRADA
|
||||
|
@ -255,24 +269,32 @@ new-breaches-found =
|
|||
}
|
||||
sign-up-headline-1 = Recibe alertas con { -brand-fxa }.
|
||||
account-not-required = No se necesita el navegador { -brand-name } para { -brand-fxa }. Puedes recibir información sobre los servicios de { -brand-Mozilla }.
|
||||
|
||||
## Variables:
|
||||
## $breachName (String) - Number of the breach
|
||||
|
||||
was-your-info-exposed = ¿Se expuso tu información en la filtración de datos de { $breachName }?
|
||||
find-out-if = Averiguar si tus datos fueron expuestos en esta filtración.
|
||||
fb-not-comp = Este correo electrónico no apareció en la filtración { $breachName }.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
other-breaches-found =
|
||||
{ $breachCount ->
|
||||
[one] Sin embargo, apareció en { $breachCount } filtración.
|
||||
*[other] Sin embargo, apareció en { $breachCount } otras filtraciones.
|
||||
}
|
||||
fb-comp-only = Este correo electrónico apareció en la filtración { $breachName }.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
fb-comp-and-others =
|
||||
{ $breachCount ->
|
||||
[one] Este correo apareció en { $breachCount } filtración conocida, incluyendo { $breachName }.
|
||||
*[other] Este correo apareció en { $breachCount } filtraciones conocidas, incluyendo { $breachName }.
|
||||
}
|
||||
|
||||
##
|
||||
|
||||
no-other-breaches-found = No se encontraron otras filtraciones en la búsqueda básica.
|
||||
no-results-blurb = Lo sentimos, esa filtración no está en nuestra base de datos.
|
||||
all-breaches-headline = Todas las filtraciones en { -product-name }
|
||||
search-breaches = Buscar filtraciones
|
||||
# This string contains nested markup that is later used to style and link the text inside of it.
|
||||
# Please do not modify or remove "<a>", "</a>", "<span>" and "</span>".
|
||||
facebook-breach-note =
|
||||
|
@ -341,6 +363,8 @@ known-data-breaches-exposed =
|
|||
}
|
||||
# Button
|
||||
see-additional-breaches = Ver filtraciones adicionales
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
scan-results-known-breaches =
|
||||
{ $breachCount ->
|
||||
[one] Este correo apareció en 1 filtración de datos conocida.
|
||||
|
@ -349,6 +373,8 @@ scan-results-known-breaches =
|
|||
# This string is shown at the top of the scan results page and is followed
|
||||
# by the email address that the user searched.
|
||||
# In page, it reads "Results for: searchedEmail@monitor.com"
|
||||
# Variables:
|
||||
# $userEmail (String) - User email address
|
||||
results-for = Resultados para: { $userEmail }
|
||||
other-monitored-emails = Otros correos monitorizados
|
||||
email-verification-required = Verificación de correo requerida
|
||||
|
@ -364,6 +390,8 @@ get-ongoing-breach-monitoring = Obtén monitoreo de filtraciones para varias dir
|
|||
# This is a button and follows a headline reading "Was your info exposed in the ___ breach?"
|
||||
find-out = Averiguar
|
||||
new-unsub-error = Tendrás que cancelar la suscripción desde uno de los correos que te envió { -product-name }.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
other-known-breaches-found =
|
||||
{ $breachCount ->
|
||||
[one] Sin embargo, apareció en { $breachCount } filtración conocida.
|
||||
|
@ -381,10 +409,12 @@ breach-overview-title = General
|
|||
# $breachTitle is the name of the breached company or website.
|
||||
# $breachDate and $addedDate are calendar dates.
|
||||
breach-overview-new = El { $breachDate }, { $breachTitle } fue vulnerado. Una vez que la filtración fue descubierta y verificada, ésta fue añadida a nuestra base de datos el { $addedDate }.
|
||||
# Title appearing on the Preferences dashboard.
|
||||
# Title appearing on the Preferences dashboard.
|
||||
monitor-preferences = Preferencias de { -product-short-name }
|
||||
# When a user is signed in, this appears in the drop down menu
|
||||
# and is followed by the user's primary Firefox Account email.
|
||||
# When a user is signed in, this appears in the drop down menu
|
||||
# and is followed by the user's primary Firefox Account email.
|
||||
# Variables:
|
||||
# $userEmail (String) - User email address
|
||||
signed-in-as = Conectado cómo: { $userEmail }
|
||||
# Appears on the All Breaches page and is followed by a list of filter options
|
||||
# that a user can filter the visible breaches by.
|
||||
|
@ -401,12 +431,16 @@ email-sent = ¡Correo enviado!
|
|||
want-to-add = ¿Quieres añadir otro correo?
|
||||
# This is part of a confirmation message that appears after a user has submitted
|
||||
# the form to add an additional email to Firefox Monitor.
|
||||
# Variables:
|
||||
# $userEmail (String) - User email address
|
||||
verify-the-link = Verifica el enlace enviado a { $userEmail } para añadirlo a { -product-name }.
|
||||
|
||||
## These are part of a confirmation page that appears after a user has verified
|
||||
## an additional email to Firefox Monitor.
|
||||
|
||||
email-verified = ¡Correo verificado exitosamente!
|
||||
# Variables:
|
||||
# $email (String) - User email address
|
||||
email-added-to-subscription = Te avisaremos si { $email } aparece en una filtración de datos.
|
||||
# This message is displayed after the user has verified their email address.
|
||||
# { $nestedSignInLink } is replaced by a link, using sign-in-nested as text ("sign in" for English).
|
||||
|
@ -420,15 +454,17 @@ sign-in-nested = conéctate
|
|||
# form to add an additional email to Firefox Monitor. { $preferencesLink } is a link
|
||||
# to the Preferences page. The code and text for the link is generated elsewhere
|
||||
# using the { preferences } string.
|
||||
# Variables:
|
||||
# $preferencesLink (String) - Link to preferences
|
||||
manage-all-emails = Gestiona todas las direcciones de correo en { $preferencesLink }.
|
||||
# This string is a header on the user preferences page and
|
||||
# appears above a check-box list of user options which allow
|
||||
# the user to choose whether or not they want to receive breach
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# email address.
|
||||
breach-alert-notifications = Notificaciones de alerta de filtraciones
|
||||
# This string is a label for the calendar date a breach is added to the database
|
||||
# and is followed by that date.
|
||||
# and is followed by that date.
|
||||
breach-added-label = Filtración añadida:
|
||||
how-hackers-work-desc = Protege tus contraseñas de los cibercriminales, ya que es lo que más les importa.
|
||||
what-to-do-after-breach-desc = Protege tus cuentas para mantener tu información lejos de las manos equivocadas.
|
||||
|
@ -450,7 +486,11 @@ see-additional-recs = Ver recomendaciones adicionales
|
|||
## This string contains nested markup that becomes a link later in the code.
|
||||
## Please do not modify or remove "<a>" and "</a>".
|
||||
|
||||
# Variables:
|
||||
# $affectedEmail (String) - User email address
|
||||
resolve-top-notification = { $affectedEmail } apareció en esta filtración. <a>Qué hacer a continuación</a>
|
||||
# Variables:
|
||||
# $numAffectedEmails (Integer) - Number of affected email address
|
||||
resolve-top-notification-plural =
|
||||
{ $numAffectedEmails ->
|
||||
*[other] { $numAffectedEmails } de tus cuentas de correo aparecieron en esta filtración. <a>Qué hacer a continuación</a>
|
||||
|
@ -477,6 +517,8 @@ confirmation-3-subhead = Otro menos. ¡Buen trabajo!
|
|||
# Please do not modify or remove "<a>" and "</a>".
|
||||
confirmation-3-body = ¿Es tu nueva contraseña única, fuerte y difícil de adivinar? <a>Averígualo</a>
|
||||
generic-confirmation-subhead = Esta filtración ha sido marcada como resuelta
|
||||
# Variables:
|
||||
# $numUnresolvedBreaches (Integer) - Number of resolved breaches
|
||||
generic-confirmation-message =
|
||||
{ $numUnresolvedBreaches ->
|
||||
[one] Para ver la filtración pendiente, ve a tu panel de control.
|
||||
|
@ -486,9 +528,13 @@ return-to-breach-details-link = Regresar a los detalles de la filtración
|
|||
go-to-dashboard-link = Ir al panel de control
|
||||
# This string appears above a breach resolution progress bar and indicates
|
||||
# the percentage of breaches a user has resolved. For instance, "27% complete".
|
||||
# Variables:
|
||||
# $percentComplete (String) - Completion percentage
|
||||
progress-percent-complete = { $percentComplete }% completo
|
||||
# This string appears in the purple callouts at the top of the user dashboard and shows
|
||||
# the total number of breaches a user has resolved. For instance, "5 Resolved".
|
||||
# Variables:
|
||||
# $numResolvedBreaches (Integer) - Number of resolved breaches
|
||||
num-resolved =
|
||||
{ $numResolvedBreaches ->
|
||||
[one] { $numResolvedBreaches } resuelta
|
||||
|
@ -496,6 +542,9 @@ num-resolved =
|
|||
}
|
||||
progress-intro-subhead = Nuevo en { -product-name }: marcar filtraciones como resueltas
|
||||
progress-intro-message = Después de revisar los detalles acerca de una filtración y tomar los pasos para proteger tu información personal, puedes marcar las filtraciones como resueltas.
|
||||
# Variables:
|
||||
# $numResolvedBreaches (Integer) - Number of resolved breaches
|
||||
# $numTotalBreaches (Integer) - Total number of breaches
|
||||
progress-status =
|
||||
{ $numTotalBreaches ->
|
||||
[one] { $numResolvedBreaches } de { $numTotalBreaches } filtración marcada como resuelta
|
||||
|
@ -517,16 +566,20 @@ progress-complete-message =
|
|||
##
|
||||
|
||||
resolve-this-breach-link = Resolver esta filtración
|
||||
# This string appears in resolved breach cards and is followed by
|
||||
# This string appears in resolved breach cards and is followed by
|
||||
# the date the user marked the breach as resolved.
|
||||
marked-resolved = Marcada como resuelta:
|
||||
hide-resolved-button = Ocultar resueltas
|
||||
show-resolved-button = Mostrar resueltas
|
||||
# Variables:
|
||||
# $numPasswords (Integer) - Number of exposed passwords
|
||||
unresolved-passwords-exposed =
|
||||
{ $numPasswords ->
|
||||
[one] Contraseña expuesta en filtraciones no resueltas
|
||||
*[other] Contraseñas expuestas en filtraciones no resueltas
|
||||
}
|
||||
# Variables:
|
||||
# $numResolvedBreaches (Integer) - Number of resolved breaches
|
||||
known-data-breaches-resolved =
|
||||
{ $numResolvedBreaches ->
|
||||
[one] Filtración de datos conocida marcada como resuelta
|
||||
|
@ -557,7 +610,10 @@ vpn-promo-copy-new = Protege tus datos en línea—y elige un plan de suscripci
|
|||
|
||||
## VPN promotional banner. HTML tags should not be translated, e.g. `<em>`
|
||||
|
||||
# user's IP location is determined dynamically by 3rd-party, eg: "Your location: Los Angeles, CA". The 3rd-party service provides its own localization.
|
||||
# Variables:
|
||||
# $ip-location (String) - User's IP location is determined dynamically by 3rd-party,
|
||||
# eg: "Your location: Los Angeles, CA". The 3rd-party service
|
||||
# provides its own localization.
|
||||
vpn-banner-location = Tu ubicación: { $ip-location }
|
||||
vpn-banner-protect-yourself-with-vpn = <em>Protégete</em> con { -brand-mozilla-vpn }.
|
||||
vpn-banner-protected-with-vpn = <em>Protegido</em> con { -brand-mozilla-vpn }.
|
||||
|
@ -566,7 +622,8 @@ vpn-banner-title-2 = Tu ubicación puede ser rastreada si no usas un VPN.
|
|||
vpn-banner-subtitle-2 = Protege tu ubicación y navega de forma segura en 3 pasos
|
||||
vpn-banner-status-protected = Estado actual: <em>Bajo protección</em>
|
||||
vpn-banner-status-not-protected = Estado actual: <em>Sin protección ⚠</em>
|
||||
# user's IP address is determined dynamically, eg: "IP address: 192.168.1.1"
|
||||
# Variables:
|
||||
# $ip-address (String) - User's IP address is determined dynamically, eg: "IP address: 192.168.1.1"
|
||||
vpn-banner-ip-address = Dirección IP: { $ip-address }
|
||||
vpn-banner-step-1 = Suscríbete a { -brand-mozilla-vpn }
|
||||
vpn-banner-step-2 = Selecciona una ubicación de VPN
|
||||
|
@ -625,6 +682,8 @@ ad-unit-6-before-you-complete = Antes de completar el próximo registro, usa una
|
|||
-brand-mozilla = Mozilla
|
||||
-brand-mozilla-foundation = Fundación Mozilla
|
||||
-brand-github = GitHub
|
||||
-brand-mozilla-vpn = Mozilla VPN
|
||||
-brand-relay = Firefox Relay
|
||||
|
||||
##
|
||||
|
||||
|
@ -646,6 +705,10 @@ sign-in = Conectarse
|
|||
site-nav-breaches-link = Resolver filtraciones de datos
|
||||
site-nav-settings-link = Ajustes
|
||||
site-nav-help-link = Ayuda y soporte
|
||||
# This call-out is above 2 image links for Firefox Relay and Mozilla VPN
|
||||
site-nav-ad-callout = Prueba nuestras otras herramientas de seguridad:
|
||||
brand-relay = { -brand-relay }
|
||||
brand-mozilla-vpn = { -brand-mozilla-vpn }
|
||||
|
||||
## User menu
|
||||
|
||||
|
@ -659,9 +722,10 @@ menu-item-logout = Salir
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Términos y privacidad
|
||||
github = { -brand-github }
|
||||
footer-nav-all-breaches = Todas las filtraciones
|
||||
|
||||
## Error page
|
||||
|
||||
|
@ -674,3 +738,17 @@ error-page-error-404-cta-button = Retroceder
|
|||
# $errorCode (number) - the status code of the error, e.g. 403
|
||||
error-page-error-other-title = { $errorCode } Algo salió mal
|
||||
error-page-error-other-copy = Por favor, vuelve a intentarlo o regresa más tarde
|
||||
|
||||
## Breach overview page
|
||||
|
||||
all-breaches-headline-2 = Todas las filtraciones detectadas por { -brand-fx-monitor }
|
||||
all-breaches-lead = Supervisamos todas las filtraciones de datos conocidas para averiguar si tu información personal se vio comprometida. Aquí hay una lista completa de todas las filtraciones que se han informado desde 2007.
|
||||
search-breaches = Buscar filtraciones
|
||||
# the kind of user data exposed to hackers in data breach.
|
||||
exposed-data = Datos expuestos:
|
||||
|
||||
## Public breach detail page
|
||||
|
||||
find-out-if-2 = Averigua si te viste involucrado en esta filtración
|
||||
find-out-if-description = Te ayudaremos a comprobar rápidamente si tu dirección de correo electrónico se vio expuesta en esta filtración y saber qué hacer a continuación.
|
||||
breach-detail-cta-signup = Busca filtraciones
|
||||
|
|
|
@ -10,10 +10,10 @@ rec-ssn =
|
|||
rec-pw-1-subhead = Cambia tu contraseña
|
||||
# Link title
|
||||
rec-pw-1-cta = Cambia tu contraseña para este sitio
|
||||
rec-pw-1 =
|
||||
rec-pw-1-2 =
|
||||
Haz que esta contraseña sea única y diferente a otras que usas
|
||||
Una buena estrategia a seguir es combinar dos o más palabras
|
||||
no relacionadas para crear una contraseña entera.
|
||||
no relacionadas para crear una contraseña entera, e incluir números y símbolos.
|
||||
# Recommendation subhead
|
||||
rec-pw-2-subhead = Actualiza otras credenciales en las que usas la misma contraseña
|
||||
# Link title
|
||||
|
@ -54,23 +54,13 @@ rec-email =
|
|||
encontrar tus contraseñas o tenerte en la mira mientras estás en línea. Un servicio como { -brand-relay }
|
||||
oculta tu dirección de correo electrónico real mientras reenvía correos a tu bandeja de entrada real.
|
||||
# Recommendation subhead
|
||||
rec-ip-subhead = Usa un servicio que enmascare tu dirección IP
|
||||
# Link title
|
||||
rec-ip-us-cta = Prueba { -brand-fpn }
|
||||
rec-ip-us =
|
||||
Tu dirección de protocolo de Internet (dirección IP) señala tu ubicación
|
||||
y tu proveedor de servicios de internet. Un servicio como { -brand-fpn }
|
||||
enmascara tu dirección IP para ocultar tu ubicación.
|
||||
rec-ip-non-us =
|
||||
Tu dirección de protocolo de Internet (dirección IP) señala tu ubicación
|
||||
y tu proveedor de servicios de internet. Con una red privada virtual (VPN), puedes ocultar tu ubicación
|
||||
y enmascarar tu dirección IP.
|
||||
rec-ip-subhead-2 = Usa un VPN para enmascarar tu dirección IP
|
||||
# Recommendation subhead
|
||||
rec-moz-vpn-cta = Prueba { -brand-mozilla-vpn }
|
||||
rec-moz-vpn-update =
|
||||
Tu dirección de protocolo de Internet (dirección IP) puede revelar tu ubicación
|
||||
y tu proveedor de servicios de internet. Un servicio como { -brand-mozilla-vpn }
|
||||
oculta tu dirección IP y ubicación para todo tu dispositivo.
|
||||
rec-moz-vpn-update-2 =
|
||||
Tu dirección de protocolo de Internet (dirección IP) señala tu ubicación
|
||||
y tu proveedor de servicios de internet. Un servicio como{ -brand-mozilla-vpn }
|
||||
enmascara tu dirección IP para ocultar tu ubicación.
|
||||
rec-hist-pw-subhead = Evita reutilizar contraseñas
|
||||
# Link title
|
||||
rec-hist-pw-cta-fx = Ver credenciales en { -brand-name }
|
||||
|
|
|
@ -639,6 +639,6 @@ sign-in = Iniciar sesión
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Términos y privacidad
|
||||
github = { -brand-github }
|
||||
|
|
|
@ -649,7 +649,7 @@ menu-item-logout = Cerrar sesión
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Términos y Privacidad
|
||||
github = { -brand-github }
|
||||
|
||||
|
|
|
@ -693,7 +693,7 @@ menu-item-logout = Kirjaudu ulos
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Ehdot ja tietosuoja
|
||||
github = { -brand-github }
|
||||
|
||||
|
|
|
@ -675,6 +675,8 @@ sign-in = Se connecter
|
|||
site-nav-breaches-link = Régler vos fuites de données
|
||||
site-nav-settings-link = Paramètres
|
||||
site-nav-help-link = Aide et assistance
|
||||
# This call-out is above 2 image links for Firefox Relay and Mozilla VPN
|
||||
site-nav-ad-callout = Essayez nos autres outils de sécurité :
|
||||
brand-relay = { -brand-relay }
|
||||
brand-mozilla-vpn = { -brand-mozilla-vpn }
|
||||
|
||||
|
@ -690,7 +692,7 @@ menu-item-logout = Déconnexion
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Confidentialité et conditions d’utilisation
|
||||
github = { -brand-github }
|
||||
footer-nav-all-breaches = Toutes les fuites de données
|
||||
|
@ -710,8 +712,13 @@ error-page-error-other-copy = Veuillez réessayer ou revenir plus tard
|
|||
## Breach overview page
|
||||
|
||||
all-breaches-headline-2 = Toutes les fuites de données détectées par { -brand-fx-monitor }
|
||||
all-breaches-lead = Nous surveillons toutes les fuites de données connues pour savoir si vos informations personnelles ont été compromises. Voici une liste complète de toutes les fuites de données qui ont été signalées depuis 2007.
|
||||
search-breaches = Rechercher des fuites de données
|
||||
# the kind of user data exposed to hackers in data breach.
|
||||
exposed-data = Données ayant fuité :
|
||||
|
||||
## Public breach detail page
|
||||
|
||||
find-out-if-2 = Vérifiez si cette fuite de données vous concerne
|
||||
find-out-if-description = Nous vous aiderons à vérifier rapidement si votre adresse e-mail a été compromise dans cette fuite de données et à comprendre ce qu’il faut faire ensuite.
|
||||
breach-detail-cta-signup = Vérifier les fuites de données
|
||||
|
|
|
@ -7,6 +7,9 @@ rec-ssn = Vous obtenez trois rapports de crédit gratuits par an selon la loi. L
|
|||
rec-pw-1-subhead = Modifiez votre mot de passe
|
||||
# Link title
|
||||
rec-pw-1-cta = Modifier votre mot de passe pour ce site
|
||||
rec-pw-1-2 =
|
||||
Rendez ce mot de passe unique et différent de tous vos autres mots de passe.
|
||||
Une bonne stratégie consiste à combiner deux ou plusieurs mots sans rapport entre eux, ainsi que des chiffres et des symboles, afin de créer une phrase de passe plus sécurisée.
|
||||
# Recommendation subhead
|
||||
rec-pw-2-subhead = Modifiez les identifiants qui utilisent le même mot de passe
|
||||
# Link title
|
||||
|
@ -36,6 +39,8 @@ rec-email-mask-subhead = Utilisez un alias de messagerie
|
|||
rec-email-cta = Essayer { -brand-relay }
|
||||
rec-email = Fournir votre adresse e-mail réelle permet aux pirates informatiques ou aux traqueurs de trouver vos mots de passe ou de vous cibler en ligne plus facilement. Un service comme { -brand-relay } masque votre adresse e-mail réelle tout en transmettant les messages à votre boîte de réception réelle.
|
||||
# Recommendation subhead
|
||||
rec-ip-subhead-2 = Utilisez un VPN pour masquer votre adresse IP
|
||||
# Recommendation subhead
|
||||
rec-moz-vpn-cta = Essayer { -brand-mozilla-vpn }
|
||||
rec-moz-vpn-update-2 = Votre adresse de protocole Internet (adresse IP) identifie votre emplacement et votre fournisseur de services internet. Un service comme { -brand-mozilla-vpn } masque votre adresse IP pour cacher votre emplacement.
|
||||
rec-hist-pw-subhead = Évitez de réutiliser vos mots de passe
|
||||
|
|
|
@ -749,7 +749,7 @@ menu-item-logout = Ofmelde
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Betingsten en privacy
|
||||
github = { -brand-github }
|
||||
footer-nav-all-breaches = Alle datalekken
|
||||
|
|
|
@ -672,7 +672,7 @@ menu-item-logout = Emboty tembiapo
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Mboguatarã ha ñemigua
|
||||
github = { -brand-github }
|
||||
|
||||
|
|
|
@ -15,8 +15,6 @@
|
|||
-brand-lockwise = Firefox Lockwise
|
||||
-brand-send = Firefox Send
|
||||
-brand-fpn = Firefox Private Network
|
||||
-brand-mozilla-vpn = Mozilla VPN
|
||||
-brand-relay = Firefox Relay
|
||||
|
||||
##
|
||||
|
||||
|
@ -37,6 +35,9 @@ user-add-invalid-email = Érvénytelen e-mail-cím
|
|||
user-add-too-many-emails = A lehető legnagyobb számú e-mail-címet figyeli.
|
||||
user-add-email-verify-subject = A { -product-name } feliratkozásának megerősítése.
|
||||
user-add-duplicate-email = Ez az e-mail-cím már hozzáadásra került a { -product-name }hoz.
|
||||
# Variables:
|
||||
# $preferencesLink (String) - Link to preferences
|
||||
# $userEmail (String) - User email address
|
||||
user-add-duplicate-email-part-2 = Keresse fel a { $preferencesLink } oldalt, és ellenőrizze a(z) { $userEmail } állapotát.
|
||||
error-headline = Hiba
|
||||
user-verify-token-error = Az ellenőrzési token lejárt.
|
||||
|
@ -50,11 +51,11 @@ scan-placeholder = Adja meg az e-mail-címét
|
|||
scan-submit = Az e-mail-címének keresése
|
||||
scan-error = Érvényes e-mail-címnek kell lennie.
|
||||
download-firefox-banner-button = A { -brand-name } letöltése
|
||||
# Appears after Firefox Monitor has sent a verification email to a new user.
|
||||
# Appears after Firefox Monitor has sent a verification email to a new user.
|
||||
signup-modal-sent = Elküldve
|
||||
sign-up = Regisztráció
|
||||
form-signup-error = Érvényes e-mail-címnek kell lennie
|
||||
# breach-date = the calendar date a particular data theft occurred.
|
||||
# breach-date = the calendar date a particular data theft occurred.
|
||||
breach-date = Az adatvédelmi incidens dátuma:
|
||||
# compromised accounts = the total number of user accounts exposed in data breach
|
||||
compromised-accounts = Veszélyeztetett fiókok:
|
||||
|
@ -64,6 +65,8 @@ unsub-headline = Leiratkozás a { -product-name-nowrap }ról
|
|||
unsub-blurb = Ez eltávolítja az e-mail-címét a { -product-name-nowrap } listáról, és nem fog több figyelmeztetést kapni, ha új adatvédelmi incidenseket jelentenek be.
|
||||
unsub-button = Leiratkozás
|
||||
# Breach data provided by Have I Been Pwned.
|
||||
# Variables:
|
||||
# $hibp-link (String) - Link to Have I Been Pwned
|
||||
hibp-attribution = Az adatvédelmi incidensek adatait a { $hibp-link } biztosítja
|
||||
share-twitter = A legtöbb embernek körülbelül 100 online fiókja van. Vannak olyanok, amelyek kikerültek egy adatvédelmi incidens során? Tudja meg.
|
||||
share-facebook-headline = Tudja meg, hogy része volt-e adatvédelmi incidensnek
|
||||
|
@ -113,8 +116,6 @@ preferences = Beállítások
|
|||
# Link title
|
||||
home = Kezdőlap
|
||||
# Link title
|
||||
breaches = Adatvédelmi incidensek
|
||||
# Link title
|
||||
security-tips = Biztonsági tippek
|
||||
fxa-account = { -brand-fxa }
|
||||
# Aria button message to open menu. "Open Firefox Account Navigation"
|
||||
|
@ -213,7 +214,9 @@ feat-security-tips = Biztonsági tippek a fiókjai védelméhez
|
|||
feat-sensitive = Speciális keresés a bizalmas adatvédelmi incidensekben
|
||||
feat-enroll-multiple = Több e-mail-cím beállítása az adatvédelmi incidensek figyelésénél
|
||||
# This string is shown beneath each of the user’s email addresses to indicate
|
||||
# how many known breaches that email address was found in.
|
||||
# how many known breaches that email address was found in.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
appears-in-x-breaches =
|
||||
{ $breachCount ->
|
||||
[one] { $breachCount } ismert adatvédelmi incidensben szerepel.
|
||||
|
@ -225,6 +228,8 @@ get-email-alerts = Maradjon biztonságban: e-mail értesítéseket kap, ha adata
|
|||
search-for-your-email = Keresse meg az e-mail-címét a nyilvánosságra került adatvédelmi incidensekben, egészen 2007-ig.
|
||||
back-to-top = Vissza a tetejére
|
||||
comm-opt-0 = Küldjenek nekem e-mailt, ha az e-mail-címem megjelenik egy adatvédelmi incidensben.
|
||||
# Variables:
|
||||
# $primaryEmail (String) - User primary email address
|
||||
comm-opt-1 = Az összes adatvédelmi incidens figyelmeztetésének elküldései erre a címre: { $primaryEmail }.
|
||||
stop-monitoring-this = Az e-mail-cím figyelésének leállítása.
|
||||
resend-verification = Ellenőrző e-mail újraküldése
|
||||
|
@ -233,7 +238,7 @@ send-verification = Ellenőrző e-mail küldése
|
|||
# This string is a header on the user preferences page and
|
||||
# appears above a check-box list of user options which allow
|
||||
# the user to choose whether or not they want to receive breach
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# email address.
|
||||
breach-summary = Adatvédelmi incidens összefoglalója
|
||||
show-breaches-for-this-email = Az e-mail-címhez tartozó összes adatvédelmi incidens megjelenítése.
|
||||
|
@ -246,8 +251,15 @@ remove-fxm-blurb =
|
|||
manage-email-addresses = E-mail-címek kezelése
|
||||
# Link title
|
||||
latest-breach-link = Nézze meg, hogy szerepel-e ebben az adatvédelmi incidensben
|
||||
|
||||
## Variables:
|
||||
## $userName (String) - Username
|
||||
|
||||
welcome-back = Üdvözöljük újra, { $userName }!
|
||||
welcome-user = Üdvözöljük, { $userName }!
|
||||
|
||||
##
|
||||
|
||||
breach-alert-subject = A { -product-name } megtalálta az e-mail-címét egy új adatvédelmi incidensben.
|
||||
your-info-was-discovered-headline = Felfedezték az Ön adatait egy új adatvédelmi incidens során.
|
||||
your-info-was-discovered-blurb =
|
||||
|
@ -271,6 +283,8 @@ ba-next-step-blurb-3 =
|
|||
faq1 = Nem ismerem ezt a céget vagy weboldalt? Miért szerepelek ebben az adatvédelmi incidensben?
|
||||
faq2 = Miért tartott ilyen sokáig, hogy értesüljek erről az adatvédelmi incidensről?
|
||||
faq3 = Honnan tudom, hogy ez az e-mail valóban a { -product-name }tól érkezett?
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
new-breaches-found =
|
||||
{ $breachCount ->
|
||||
[one] { $breachCount } ÚJ ADATVÉDELMI INCIDENS TALÁLHATÓ
|
||||
|
@ -278,24 +292,32 @@ new-breaches-found =
|
|||
}
|
||||
sign-up-headline-1 = Kapjon folyamatos figyelmeztetéseket a { -brand-fxa }jával.
|
||||
account-not-required = A { -brand-name } böngésző sem szükséges a { -brand-fxa }hoz. Információkat kaphat a { -brand-Mozilla } szolgáltatásokról.
|
||||
|
||||
## Variables:
|
||||
## $breachName (String) - Number of the breach
|
||||
|
||||
was-your-info-exposed = Kikerültek-e az adatai a(z) { $breachName } adatvédelmi incidensben?
|
||||
find-out-if = Tudja meg, hogy kikerültek-e az adatai ebben az adatvédelmi incidensben.
|
||||
fb-not-comp = Ez az e-mail-cím nem szerepelt a(z) { $breachName } adatvédelmi incidensben.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
other-breaches-found =
|
||||
{ $breachCount ->
|
||||
[one] Azonban { $breachCount } másik adatvédelmi incidensben szerepelt.
|
||||
*[other] Azonban { $breachCount } másik adatvédelmi incidensben szerepelt.
|
||||
}
|
||||
fb-comp-only = Ez az e-mail-cím megjelent a(z) { $breachName } adatvédelmi incidensben.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
fb-comp-and-others =
|
||||
{ $breachCount ->
|
||||
[one] Ez az e-mail-cím { $breachCount } adatvédelmi incidensben jelent meg, köztük ebben is: { $breachName }.
|
||||
*[other] Ez az e-mail-cím { $breachCount } adatvédelmi incidensben jelent meg, köztük ebben is: { $breachName }.
|
||||
}
|
||||
|
||||
##
|
||||
|
||||
no-other-breaches-found = Az alapvető keresés nem talált más adatvédelmi incidenst.
|
||||
no-results-blurb = Sajnáljuk, ez az adatvédelmi incidens nem szerepel az adatbázisunkban.
|
||||
all-breaches-headline = Az összes adatvédelmi incidens a { -product-name }ban
|
||||
search-breaches = Adatvédelmi incidensek keresése
|
||||
# This string contains nested markup that is later used to style and link the text inside of it.
|
||||
# Please do not modify or remove "<a>", "</a>", "<span>" and "</span>".
|
||||
facebook-breach-note =
|
||||
|
@ -366,6 +388,8 @@ known-data-breaches-exposed =
|
|||
}
|
||||
# Button
|
||||
see-additional-breaches = További adatvédelmi incidensek megtekintése
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
scan-results-known-breaches =
|
||||
{ $breachCount ->
|
||||
[one] Ez az e-mail cím 1 ismert adatvédelmi incidensben jelent meg.
|
||||
|
@ -374,6 +398,8 @@ scan-results-known-breaches =
|
|||
# This string is shown at the top of the scan results page and is followed
|
||||
# by the email address that the user searched.
|
||||
# In page, it reads "Results for: searchedEmail@monitor.com"
|
||||
# Variables:
|
||||
# $userEmail (String) - User email address
|
||||
results-for = Találatok erre: { $userEmail }
|
||||
other-monitored-emails = Egyéb megfigyelt e-mail-címek
|
||||
email-verification-required = E-mail ellenőrzés szükséges
|
||||
|
@ -389,6 +415,8 @@ get-ongoing-breach-monitoring = Kapjon rendszeres adatvédelmi incidensjelentés
|
|||
# This is a button and follows a headline reading "Was your info exposed in the ___ breach?"
|
||||
find-out = Tudja meg
|
||||
new-unsub-error = Le kell iratkoznia egy a { -product-name }tól érkezett e-mailen.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
other-known-breaches-found =
|
||||
{ $breachCount ->
|
||||
[one] Azonban { $breachCount } egyéb ismert adatvédelmi incidensben is megjelent.
|
||||
|
@ -406,10 +434,12 @@ breach-overview-title = Áttekintés
|
|||
# $breachTitle is the name of the breached company or website.
|
||||
# $breachDate and $addedDate are calendar dates.
|
||||
breach-overview-new = A(z) { $breachTitle } adatvédelmi incidens áldozata lett ekkor: { $breachDate }. Amint az adatvédelmi incidens felfedezésre és megerősítésre került, hozzáadásra került az adatbázisunkhoz, ekkor: { $addedDate }.
|
||||
# Title appearing on the Preferences dashboard.
|
||||
# Title appearing on the Preferences dashboard.
|
||||
monitor-preferences = { -product-short-name } beállítások
|
||||
# When a user is signed in, this appears in the drop down menu
|
||||
# and is followed by the user's primary Firefox Account email.
|
||||
# When a user is signed in, this appears in the drop down menu
|
||||
# and is followed by the user's primary Firefox Account email.
|
||||
# Variables:
|
||||
# $userEmail (String) - User email address
|
||||
signed-in-as = Bejelentkezett, mint { $userEmail }
|
||||
# Appears on the All Breaches page and is followed by a list of filter options
|
||||
# that a user can filter the visible breaches by.
|
||||
|
@ -426,12 +456,16 @@ email-sent = E-mail elküldve!
|
|||
want-to-add = Hozzáad egy másik e-mail-címet?
|
||||
# This is part of a confirmation message that appears after a user has submitted
|
||||
# the form to add an additional email to Firefox Monitor.
|
||||
# Variables:
|
||||
# $userEmail (String) - User email address
|
||||
verify-the-link = Erősítse meg a(z) { $userEmail } címre küldött hivatkozást, hogy hozzáadja a { -product-name }hoz.
|
||||
|
||||
## These are part of a confirmation page that appears after a user has verified
|
||||
## an additional email to Firefox Monitor.
|
||||
|
||||
email-verified = E-mail-cím sikeresen megerősítve.
|
||||
# Variables:
|
||||
# $email (String) - User email address
|
||||
email-added-to-subscription = Értesítjük, ha a(z) { $email } megjelenik egy adatvédelmi incidensben.
|
||||
# This message is displayed after the user has verified their email address.
|
||||
# { $nestedSignInLink } is replaced by a link, using sign-in-nested as text ("sign in" for English).
|
||||
|
@ -445,15 +479,17 @@ sign-in-nested = jelentkezzen be
|
|||
# form to add an additional email to Firefox Monitor. { $preferencesLink } is a link
|
||||
# to the Preferences page. The code and text for the link is generated elsewhere
|
||||
# using the { preferences } string.
|
||||
# Variables:
|
||||
# $preferencesLink (String) - Link to preferences
|
||||
manage-all-emails = Az e-mail-címeit a { $preferencesLink }ban kezelheti.
|
||||
# This string is a header on the user preferences page and
|
||||
# appears above a check-box list of user options which allow
|
||||
# the user to choose whether or not they want to receive breach
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# email address.
|
||||
breach-alert-notifications = Adatvédelmi incidensek riasztási értesítései
|
||||
# This string is a label for the calendar date a breach is added to the database
|
||||
# and is followed by that date.
|
||||
# and is followed by that date.
|
||||
breach-added-label = Adatvédelmi incidens hozzáadva:
|
||||
how-hackers-work-desc = Védje a jelszavakat a számítógépes bűnözőktől, mert ez az, ami a legjobban érdekli őket.
|
||||
what-to-do-after-breach-desc = Zárolja a fiókjait, hogy ne kerüljenek rossz kezekbe az adatai.
|
||||
|
@ -475,7 +511,11 @@ see-additional-recs = További javaslatok megtekintése
|
|||
## This string contains nested markup that becomes a link later in the code.
|
||||
## Please do not modify or remove "<a>" and "</a>".
|
||||
|
||||
# Variables:
|
||||
# $affectedEmail (String) - User email address
|
||||
resolve-top-notification = A(z) { $affectedEmail } megjelent ebben az adatvédelmi incidensben. <a>Mik a további teendők?</a>
|
||||
# Variables:
|
||||
# $numAffectedEmails (Integer) - Number of affected email address
|
||||
resolve-top-notification-plural =
|
||||
{ $numAffectedEmails ->
|
||||
[one] { $numAffectedEmails } e-mail-címe jelent meg ebben az adatvédelmi incidensben. <a>Mik a további teendők?</a>
|
||||
|
@ -503,6 +543,8 @@ confirmation-3-subhead = Még egy lecsapva. Szép munka!
|
|||
# Please do not modify or remove "<a>" and "</a>".
|
||||
confirmation-3-body = Az új jelszava egyedi, erős és nehezen kitalálható? <a>Tudja meg</a>
|
||||
generic-confirmation-subhead = Ez az adatvédelmi incidens megoldottként lett megjelölve
|
||||
# Variables:
|
||||
# $numUnresolvedBreaches (Integer) - Number of resolved breaches
|
||||
generic-confirmation-message =
|
||||
{ $numUnresolvedBreaches ->
|
||||
[one] A fennmaradt adatvédelmi incidens megtekintéséhez ugorjon az irányítópulthoz.
|
||||
|
@ -512,9 +554,13 @@ return-to-breach-details-link = Vissza az adatvédelmi incidens részleteihez
|
|||
go-to-dashboard-link = Ugrás a vezérlőpultra
|
||||
# This string appears above a breach resolution progress bar and indicates
|
||||
# the percentage of breaches a user has resolved. For instance, "27% complete".
|
||||
# Variables:
|
||||
# $percentComplete (String) - Completion percentage
|
||||
progress-percent-complete = { $percentComplete }% kész
|
||||
# This string appears in the purple callouts at the top of the user dashboard and shows
|
||||
# the total number of breaches a user has resolved. For instance, "5 Resolved".
|
||||
# Variables:
|
||||
# $numResolvedBreaches (Integer) - Number of resolved breaches
|
||||
num-resolved =
|
||||
{ $numResolvedBreaches ->
|
||||
[one] { $numResolvedBreaches } megoldva
|
||||
|
@ -524,6 +570,9 @@ progress-intro-subhead = Új a { -product-name }ban: Adatvédelmi incidensek meg
|
|||
progress-intro-message =
|
||||
Az adatvédelmi incidens részleteinek áttekintése és a személyes információi érdekében
|
||||
tett védelmi lépések megtétele után, megjelölheti az adatvédelmi incidenseket megoldottként.
|
||||
# Variables:
|
||||
# $numResolvedBreaches (Integer) - Number of resolved breaches
|
||||
# $numTotalBreaches (Integer) - Total number of breaches
|
||||
progress-status =
|
||||
{ $numTotalBreaches ->
|
||||
[one] { $numResolvedBreaches } / { $numTotalBreaches } adatvédelmi incidens megjelölve megoldottként
|
||||
|
@ -549,16 +598,20 @@ progress-complete-message =
|
|||
##
|
||||
|
||||
resolve-this-breach-link = Ezen adatvédelmi incidens megoldása
|
||||
# This string appears in resolved breach cards and is followed by
|
||||
# This string appears in resolved breach cards and is followed by
|
||||
# the date the user marked the breach as resolved.
|
||||
marked-resolved = Megjelölve megoldottként:
|
||||
hide-resolved-button = Megoldottak elrejtése
|
||||
show-resolved-button = Megoldottak megjelenítése
|
||||
# Variables:
|
||||
# $numPasswords (Integer) - Number of exposed passwords
|
||||
unresolved-passwords-exposed =
|
||||
{ $numPasswords ->
|
||||
[one] Megoldatlan adatvédelmi incidensekben kikerült jelszó
|
||||
*[other] Megoldatlan adatvédelmi incidensekben kikerült jelszó
|
||||
}
|
||||
# Variables:
|
||||
# $numResolvedBreaches (Integer) - Number of resolved breaches
|
||||
known-data-breaches-resolved =
|
||||
{ $numResolvedBreaches ->
|
||||
[one] Megoldottként megjelölt adatvédelmi incidens
|
||||
|
@ -589,7 +642,10 @@ vpn-promo-copy-new = Védje meg online adatait – és válasszon egy Önnek meg
|
|||
|
||||
## VPN promotional banner. HTML tags should not be translated, e.g. `<em>`
|
||||
|
||||
# user's IP location is determined dynamically by 3rd-party, eg: "Your location: Los Angeles, CA". The 3rd-party service provides its own localization.
|
||||
# Variables:
|
||||
# $ip-location (String) - User's IP location is determined dynamically by 3rd-party,
|
||||
# eg: "Your location: Los Angeles, CA". The 3rd-party service
|
||||
# provides its own localization.
|
||||
vpn-banner-location = Az Ön tartózkodási helye: { $ip-location }
|
||||
vpn-banner-protect-yourself-with-vpn = <em>Védje meg magát</em> a { -brand-mozilla-vpn } segítségével.
|
||||
vpn-banner-protected-with-vpn = A { -brand-mozilla-vpn } által <em>védve</em>.
|
||||
|
@ -598,7 +654,8 @@ vpn-banner-title-2 = A tartózkodási helye nyomon követhető, ha nem használ
|
|||
vpn-banner-subtitle-2 = Védje meg tartózkodási helyét és böngésszen biztonságosan 3 lépésben
|
||||
vpn-banner-status-protected = Jelenlegi állapot: <em>Védett ✓</em>
|
||||
vpn-banner-status-not-protected = Jelenlegi állapot: <em>Nem védett ⚠</em>
|
||||
# user's IP address is determined dynamically, eg: "IP address: 192.168.1.1"
|
||||
# Variables:
|
||||
# $ip-address (String) - User's IP address is determined dynamically, eg: "IP address: 192.168.1.1"
|
||||
vpn-banner-ip-address = IP-cím: { $ip-address }
|
||||
vpn-banner-step-1 = Feliratkozás a { -brand-mozilla-vpn }-re
|
||||
vpn-banner-step-2 = Válasszon egy VPN helyet
|
||||
|
@ -657,6 +714,8 @@ ad-unit-6-before-you-complete = Mielőtt befejezné a következő regisztráció
|
|||
-brand-mozilla = Mozilla
|
||||
-brand-mozilla-foundation = Mozilla Foundation
|
||||
-brand-github = GitHub
|
||||
-brand-mozilla-vpn = Mozilla VPN
|
||||
-brand-relay = Firefox Relay
|
||||
|
||||
##
|
||||
|
||||
|
@ -678,6 +737,10 @@ sign-in = Bejelentkezés
|
|||
site-nav-breaches-link = Adatvédelmi incidensek megoldása
|
||||
site-nav-settings-link = Beállítások
|
||||
site-nav-help-link = Súgó és támogatás
|
||||
# This call-out is above 2 image links for Firefox Relay and Mozilla VPN
|
||||
site-nav-ad-callout = Próbálja ki többi biztonsági eszközünket:
|
||||
brand-relay = { -brand-relay }
|
||||
brand-mozilla-vpn = { -brand-mozilla-vpn }
|
||||
|
||||
## User menu
|
||||
|
||||
|
@ -691,9 +754,10 @@ menu-item-logout = Kijelentkezés
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Feltételek és adatvédelem
|
||||
github = { -brand-github }
|
||||
footer-nav-all-breaches = Összes adatvédelmi incidens
|
||||
|
||||
## Error page
|
||||
|
||||
|
@ -706,3 +770,17 @@ error-page-error-404-cta-button = Ugrás vissza
|
|||
# $errorCode (number) - the status code of the error, e.g. 403
|
||||
error-page-error-other-title = { $errorCode } Hiba történt
|
||||
error-page-error-other-copy = Próbálja újra, vagy térjen vissza később
|
||||
|
||||
## Breach overview page
|
||||
|
||||
all-breaches-headline-2 = Az összes { -brand-fx-monitor } által észlelt adatvédelmi incidens
|
||||
all-breaches-lead = Minden ismert adatvédelmi incidenst monitorozunk, hogy megtudjuk, hogy kikerültek-e személyes adatai. Itt van a 2007 óta jelentett adatvédelmi incidensek teljes listája.
|
||||
search-breaches = Adatvédelmi incidensek keresése
|
||||
# the kind of user data exposed to hackers in data breach.
|
||||
exposed-data = Kikerült adatok:
|
||||
|
||||
## Public breach detail page
|
||||
|
||||
find-out-if-2 = Tudja meg, hogy érintett-e ebben az adatvédelmi incidensben
|
||||
find-out-if-description = Segítünk gyorsan megnézni, hogy kikerült-e az e-mail-címe ebben az adatvédelmi incidensben, és hogy mi legyen a következő teendője.
|
||||
breach-detail-cta-signup = Adatvédelmi incidensek keresése
|
||||
|
|
|
@ -10,10 +10,10 @@ rec-ssn =
|
|||
rec-pw-1-subhead = Változtassa meg a jelszavát
|
||||
# Link title
|
||||
rec-pw-1-cta = Cserélje le a jelszavát ennél az oldalnál
|
||||
rec-pw-1 =
|
||||
rec-pw-1-2 =
|
||||
Ez a jelszó legyen egyedi és különbözzön az összes Ön által használt jelszótól.
|
||||
Jó stratégia kettő vagy több egymással nem kapcsolatos szó használata,
|
||||
amelyből egy teljes jelmondatot tud létrehozni.
|
||||
amelyből egy teljes jelmondatot tud létrehozni, és használjon számokat és jeleket.
|
||||
# Recommendation subhead
|
||||
rec-pw-2-subhead = Frissítse a többi bejelentkezését, amelyek ugyanazt a jelszót használják
|
||||
# Link title
|
||||
|
@ -57,22 +57,13 @@ rec-email =
|
|||
megtalálják a jelszavát vagy Önt célozzák az interneten. Egy olyan szolgáltatás, mint a { -brand-relay },
|
||||
elrejti a valódi e-mail-címét, miközben továbbítja azokat a valódi postaládájába.
|
||||
# Recommendation subhead
|
||||
rec-ip-subhead = Használjon olyan szolgáltatást, amely elfedi az IP-címét
|
||||
# Link title
|
||||
rec-ip-us-cta = Próbálja ki a { -brand-fpn }öt
|
||||
rec-ip-us =
|
||||
Az Internet Protocol címe (IP-címe) pontosan meghatározza a helyét
|
||||
és internetszolgáltatóját. Egy olyan szolgáltatás, mint a { -brand-fpn }
|
||||
elrejtik az IP-címét, hogy elrejtse a helyét.
|
||||
rec-ip-non-us =
|
||||
Az Internet Protocol címe (IP-címe) pontosan meghatározza a helyét
|
||||
és internetszolgáltatóját. Egy virtuális magánhálózattal (VPN-nel) elrejtheti
|
||||
a tartózkodási helyét és az IP-címét.
|
||||
rec-ip-subhead-2 = Használjon VPN-t az IP-címe elrejtéséhez
|
||||
# Recommendation subhead
|
||||
rec-moz-vpn-cta = Próbálja ki a { -brand-mozilla-vpn }-t
|
||||
rec-moz-vpn-update =
|
||||
Az Internet Protocol címe (IP-címe) felfedheti a helyét és internetszolgáltatóját. Egy olyan szolgáltatás, mint a { -brand-mozilla-vpn }
|
||||
elrejti az eszköze IP-címét és tartózkodási helyét.
|
||||
rec-moz-vpn-update-2 =
|
||||
Az Internet Protocol címe (IP-címe) pontosan meghatározza a helyét
|
||||
és internetszolgáltatóját. Az olyan szolgáltatások, mint a { -brand-mozilla-vpn },
|
||||
elrejtik az IP-címét, hogy elrejtsék a tartózkodási helyét.
|
||||
rec-hist-pw-subhead = Kerülje a jelszavak újbóli felhasználását
|
||||
# Link title
|
||||
rec-hist-pw-cta-fx = Bejelentkezések megtekintése a { -brand-name }ban
|
||||
|
|
|
@ -15,8 +15,6 @@
|
|||
-brand-lockwise = Firefox Lockwise
|
||||
-brand-send = Firefox Send
|
||||
-brand-fpn = Firefox Private Network
|
||||
-brand-mozilla-vpn = VPN Mozilla
|
||||
-brand-relay = Firefox Relay
|
||||
|
||||
##
|
||||
|
||||
|
@ -37,6 +35,9 @@ user-add-invalid-email = Email non valide
|
|||
user-add-too-many-emails = Tu jam survelia le maxime numero de adresses email.
|
||||
user-add-email-verify-subject = Verifica tu subscription a { -product-name }.
|
||||
user-add-duplicate-email = Iste email ha jam essite addite a { -product-name }.
|
||||
# Variables:
|
||||
# $preferencesLink (String) - Link to preferences
|
||||
# $userEmail (String) - User email address
|
||||
user-add-duplicate-email-part-2 = Vade sur { $preferencesLink } pro controlar le stato de { $userEmail }.
|
||||
error-headline = Error
|
||||
user-verify-token-error = Un token de verification es necessari.
|
||||
|
@ -50,11 +51,11 @@ scan-placeholder = Insere le adresse de e-mail
|
|||
scan-submit = Cerca tu adresse de e-mail
|
||||
scan-error = Debe esser un adresse de e-mail valide.
|
||||
download-firefox-banner-button = Discarga { -brand-name }
|
||||
# Appears after Firefox Monitor has sent a verification email to a new user.
|
||||
# Appears after Firefox Monitor has sent a verification email to a new user.
|
||||
signup-modal-sent = Inviate!
|
||||
sign-up = Inscriber se
|
||||
form-signup-error = Debe esser un adresse de email valide
|
||||
# breach-date = the calendar date a particular data theft occurred.
|
||||
# breach-date = the calendar date a particular data theft occurred.
|
||||
breach-date = Data del violation de securitate:
|
||||
# compromised accounts = the total number of user accounts exposed in data breach
|
||||
compromised-accounts = Contos compromittite:
|
||||
|
@ -64,6 +65,8 @@ unsub-headline = Remover le subscription de { -product-name-nowrap }
|
|||
unsub-blurb = Isto removera tu email ab le lista de { -product-name-nowrap } e tu non recipera plus alertas quando nove violationes es annunciate.
|
||||
unsub-button = Remover le subscription
|
||||
# Breach data provided by Have I Been Pwned.
|
||||
# Variables:
|
||||
# $hibp-link (String) - Link to Have I Been Pwned
|
||||
hibp-attribution = Datos sur le violation fornite per { $hibp-link }
|
||||
share-twitter = Le major parte del gente ha circa 100 contos in linea. Ha un del tues essite exponite in un violation de datos? Verifica lo.
|
||||
share-facebook-headline = Discoperi si tu ha essite parte de un violation de datos
|
||||
|
@ -94,8 +97,6 @@ preferences = Preferentias
|
|||
# Link title
|
||||
home = Initio
|
||||
# Link title
|
||||
breaches = Violationes
|
||||
# Link title
|
||||
security-tips = Consilios de securitate
|
||||
fxa-account = { -brand-fxa }
|
||||
# Aria button message to open menu. "Open Firefox Account Navigation"
|
||||
|
@ -166,7 +167,9 @@ feat-security-tips = Consilios de securitate pro proteger tu contos
|
|||
feat-sensitive = Recerca avantiate in le violationes de datos sensibile
|
||||
feat-enroll-multiple = Inscribe plure emails in le controlo del violationes
|
||||
# This string is shown beneath each of the user’s email addresses to indicate
|
||||
# how many known breaches that email address was found in.
|
||||
# how many known breaches that email address was found in.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
appears-in-x-breaches =
|
||||
{ $breachCount ->
|
||||
[one] Appare in { $breachCount } violation cognoscite.
|
||||
|
@ -178,6 +181,8 @@ get-email-alerts = Sta secur: recipe avisos email quando tu informationes appare
|
|||
search-for-your-email = Cerca tu adresse email in violationes public de datos a partir de 2007.
|
||||
back-to-top = Receder al apice
|
||||
comm-opt-0 = Adverti me per email si un de mi adresses listate hic infra appare in un violation de datos.
|
||||
# Variables:
|
||||
# $primaryEmail (String) - User primary email address
|
||||
comm-opt-1 = Invia tote le avisos de violation a { $primaryEmail }.
|
||||
stop-monitoring-this = Cessa de controlar iste email.
|
||||
resend-verification = Reinviar email de verification
|
||||
|
@ -186,7 +191,7 @@ send-verification = Inviar ligamine de verification
|
|||
# This string is a header on the user preferences page and
|
||||
# appears above a check-box list of user options which allow
|
||||
# the user to choose whether or not they want to receive breach
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# email address.
|
||||
breach-summary = Summario del violationes
|
||||
show-breaches-for-this-email = Monstrar tote le violationes pro iste email.
|
||||
|
@ -197,8 +202,15 @@ remove-fxm-blurb = Disactivar le avisos de { -product-name }. Tu { -brand-fxa }
|
|||
manage-email-addresses = Gerer adresses email
|
||||
# Link title
|
||||
latest-breach-link = Vide si tu era in iste violation
|
||||
|
||||
## Variables:
|
||||
## $userName (String) - Username
|
||||
|
||||
welcome-back = Benvenite retro, { $userName }!
|
||||
welcome-user = Benvenite, { $userName }!
|
||||
|
||||
##
|
||||
|
||||
breach-alert-subject = { -product-name } ha trovate tu email in un nove violation de datos.
|
||||
your-info-was-discovered-headline = Tu informationes ha essite discoperite in un nove violation de datos.
|
||||
your-info-was-discovered-blurb = Tu te ha inscribite pro reciper avisos de { -product-name } quando tu adresse de e-mail appare in un violation de datos. Ecce lo que nos sape sur iste violation.
|
||||
|
@ -212,6 +224,8 @@ ba-next-step-blurb-3 = Usa un gestor de contrasignos pro crear contrasignos fort
|
|||
faq1 = Io non recognosce iste compania o sito web. Proque me concerne iste violation?
|
||||
faq2 = Proque ha il prendite tante tempore notificar me de iste violation?
|
||||
faq3 = Como sape io si isto es un email legitime de { -product-name }?
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
new-breaches-found =
|
||||
{ $breachCount ->
|
||||
[one] { $breachCount } NOVE VIOLATION TROVATE
|
||||
|
@ -219,24 +233,32 @@ new-breaches-found =
|
|||
}
|
||||
sign-up-headline-1 = Recipe avisos in corso con un { -brand-fxa }.
|
||||
account-not-required = { -brand-name } navigator non necessari a un { -brand-fxa }. Tu pote reciper information re le servicios de { -brand-Mozilla }.
|
||||
|
||||
## Variables:
|
||||
## $breachName (String) - Number of the breach
|
||||
|
||||
was-your-info-exposed = Ha tu information essite exponite in le violation de datos de { $breachName }?
|
||||
find-out-if = Discoperi si tu datos era exponite in iste violation.
|
||||
fb-not-comp = Iste email non appareva in le violation { $breachName }.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
other-breaches-found =
|
||||
{ $breachCount ->
|
||||
[one] Comocunque, illo appareva in { $breachCount } altere violation.
|
||||
*[other] Comocunque, illo appareva in { $breachCount } altere violationes.
|
||||
}
|
||||
fb-comp-only = Iste email appareva in le violation de datos { $breachName }.Iste email appareva in le violation { $breachName }.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
fb-comp-and-others =
|
||||
{ $breachCount ->
|
||||
[one] Iste e-mail appareva in { $breachCount } violation cognoscite de datos, includite { $breachName }.
|
||||
*[other] Iste e-mail appareva in { $breachCount } violationes cognoscite de datos, includite { $breachName }.
|
||||
}
|
||||
|
||||
##
|
||||
|
||||
no-other-breaches-found = Nulle altere violation ha essite trovate in un recerca basic.
|
||||
no-results-blurb = Nos lo regretta, ille violation non es in nostre base de datos.
|
||||
all-breaches-headline = Tote le violationes in { -product-name }
|
||||
search-breaches = Cercar violationes
|
||||
# This string contains nested markup that is later used to style and link the text inside of it.
|
||||
# Please do not modify or remove "<a>", "</a>", "<span>" and "</span>".
|
||||
facebook-breach-note = <span>Tu e-mail non appare in iste fuga, ma tu numero de telephono pote ancora esser vulnerabile.</span> Parte del contos ha essite compromittite in le fuga de Facebook, includite numeros de telephono e altere informationes personal, ma non adresses email.
|
||||
|
@ -289,6 +311,8 @@ known-data-breaches-exposed =
|
|||
}
|
||||
# Button
|
||||
see-additional-breaches = Vider altere violationes
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
scan-results-known-breaches =
|
||||
{ $breachCount ->
|
||||
[one] Iste e-mail appareva in 1 violation cognoscite de datos.
|
||||
|
@ -297,6 +321,8 @@ scan-results-known-breaches =
|
|||
# This string is shown at the top of the scan results page and is followed
|
||||
# by the email address that the user searched.
|
||||
# In page, it reads "Results for: searchedEmail@monitor.com"
|
||||
# Variables:
|
||||
# $userEmail (String) - User email address
|
||||
results-for = Resultatos pro: { $userEmail }
|
||||
other-monitored-emails = Altere emails spiate
|
||||
email-verification-required = Verification del email obligatori.
|
||||
|
@ -312,6 +338,8 @@ get-ongoing-breach-monitoring = Survelia continuemente le violationes de datos p
|
|||
# This is a button and follows a headline reading "Was your info exposed in the ___ breach?"
|
||||
find-out = Discoperir.
|
||||
new-unsub-error = Tu debera remover te del inscription per un del emails inviate ab { -product-name }.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
other-known-breaches-found =
|
||||
{ $breachCount ->
|
||||
[one] Nonobstante, illo appareva in { $breachCount } altere violation cognoscite.
|
||||
|
@ -329,10 +357,12 @@ breach-overview-title = Vision general
|
|||
# $breachTitle is the name of the breached company or website.
|
||||
# $breachDate and $addedDate are calendar dates.
|
||||
breach-overview-new = Le { $breachDate }, { $breachTitle } ha essite violate. Post le discoperta e verification de iste violation, nos lo ha addite a nostre base de datos le { $addedDate }.
|
||||
# Title appearing on the Preferences dashboard.
|
||||
# Title appearing on the Preferences dashboard.
|
||||
monitor-preferences = { -product-short-name } Preferentias
|
||||
# When a user is signed in, this appears in the drop down menu
|
||||
# and is followed by the user's primary Firefox Account email.
|
||||
# When a user is signed in, this appears in the drop down menu
|
||||
# and is followed by the user's primary Firefox Account email.
|
||||
# Variables:
|
||||
# $userEmail (String) - User email address
|
||||
signed-in-as = In session como: { $userEmail }
|
||||
# Appears on the All Breaches page and is followed by a list of filter options
|
||||
# that a user can filter the visible breaches by.
|
||||
|
@ -349,12 +379,16 @@ email-sent = Message inviate!
|
|||
want-to-add = Vole adder un altere adresse de e-mail?
|
||||
# This is part of a confirmation message that appears after a user has submitted
|
||||
# the form to add an additional email to Firefox Monitor.
|
||||
# Variables:
|
||||
# $userEmail (String) - User email address
|
||||
verify-the-link = Verifica le ligamine inviate a { $userEmail } pro adder lo a { -product-name }.
|
||||
|
||||
## These are part of a confirmation page that appears after a user has verified
|
||||
## an additional email to Firefox Monitor.
|
||||
|
||||
email-verified = Email verificate con successo!
|
||||
# Variables:
|
||||
# $email (String) - User email address
|
||||
email-added-to-subscription = Nos te avisara si tu { $email } essera involvite in un nove violation de datos.
|
||||
# This message is displayed after the user has verified their email address.
|
||||
# { $nestedSignInLink } is replaced by a link, using sign-in-nested as text ("sign in" for English).
|
||||
|
@ -368,15 +402,17 @@ sign-in-nested = aperir session
|
|||
# form to add an additional email to Firefox Monitor. { $preferencesLink } is a link
|
||||
# to the Preferences page. The code and text for the link is generated elsewhere
|
||||
# using the { preferences } string.
|
||||
# Variables:
|
||||
# $preferencesLink (String) - Link to preferences
|
||||
manage-all-emails = Gere tote le adresses email in { $preferencesLink }.
|
||||
# This string is a header on the user preferences page and
|
||||
# appears above a check-box list of user options which allow
|
||||
# the user to choose whether or not they want to receive breach
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# email address.
|
||||
breach-alert-notifications = Notificationes de alerta de violation
|
||||
# This string is a label for the calendar date a breach is added to the database
|
||||
# and is followed by that date.
|
||||
# and is followed by that date.
|
||||
breach-added-label = Violation addite:
|
||||
how-hackers-work-desc = Protege tu contrasignos ab cybercriminales, pois que es illos que illes desira plus.
|
||||
what-to-do-after-breach-desc = Bloca tu contos pro evitar que tu informationes cade in manos improprie.
|
||||
|
@ -398,7 +434,11 @@ see-additional-recs = Vide altere recommendationes
|
|||
## This string contains nested markup that becomes a link later in the code.
|
||||
## Please do not modify or remove "<a>" and "</a>".
|
||||
|
||||
# Variables:
|
||||
# $affectedEmail (String) - User email address
|
||||
resolve-top-notification = { $affectedEmail } appareva in iste violation. <a>Que facer?</a>
|
||||
# Variables:
|
||||
# $numAffectedEmails (Integer) - Number of affected email address
|
||||
resolve-top-notification-plural =
|
||||
{ $numAffectedEmails ->
|
||||
[one] { $numAffectedEmails } de tu adresses email appareva in iste violation. <a>Que facer?</a>
|
||||
|
@ -423,6 +463,8 @@ confirmation-3-subhead = Un altere resolvite. Optimo!
|
|||
# Please do not modify or remove "<a>" and "</a>".
|
||||
confirmation-3-body = Es tu nove contrasigno unic, forte e difficile a divinar? <a>Discoperi lo</a>
|
||||
generic-confirmation-subhead = Isto violation ha essite marcate como resolvite
|
||||
# Variables:
|
||||
# $numUnresolvedBreaches (Integer) - Number of resolved breaches
|
||||
generic-confirmation-message =
|
||||
{ $numUnresolvedBreaches ->
|
||||
[one] Pro vider le violation restante, va a tu pannello de controlo.
|
||||
|
@ -432,9 +474,13 @@ return-to-breach-details-link = Retornar al detalios del violation
|
|||
go-to-dashboard-link = Ir al pannello de controlo
|
||||
# This string appears above a breach resolution progress bar and indicates
|
||||
# the percentage of breaches a user has resolved. For instance, "27% complete".
|
||||
# Variables:
|
||||
# $percentComplete (String) - Completion percentage
|
||||
progress-percent-complete = { $percentComplete }% complete
|
||||
# This string appears in the purple callouts at the top of the user dashboard and shows
|
||||
# the total number of breaches a user has resolved. For instance, "5 Resolved".
|
||||
# Variables:
|
||||
# $numResolvedBreaches (Integer) - Number of resolved breaches
|
||||
num-resolved =
|
||||
{ $numResolvedBreaches ->
|
||||
[one] { $numResolvedBreaches } resolvite
|
||||
|
@ -442,6 +488,9 @@ num-resolved =
|
|||
}
|
||||
progress-intro-subhead = Nova in { -product-name }: marcar violationes como resolvite
|
||||
progress-intro-message = Post revider le detalios re un violation e prender mesuras pro proteger tu informationes personal, tu pote marcar violationes como resolvite
|
||||
# Variables:
|
||||
# $numResolvedBreaches (Integer) - Number of resolved breaches
|
||||
# $numTotalBreaches (Integer) - Total number of breaches
|
||||
progress-status =
|
||||
{ $numTotalBreaches ->
|
||||
[one] { $numResolvedBreaches } de { $numTotalBreaches } violationes marcate como resolvite
|
||||
|
@ -461,16 +510,20 @@ progress-complete-message = <span>Prende gusto, justo?</span> Si tu desira facer
|
|||
##
|
||||
|
||||
resolve-this-breach-link = Resolver iste violation
|
||||
# This string appears in resolved breach cards and is followed by
|
||||
# This string appears in resolved breach cards and is followed by
|
||||
# the date the user marked the breach as resolved.
|
||||
marked-resolved = Marcate le resolvite:
|
||||
hide-resolved-button = Celar le resolvite
|
||||
show-resolved-button = Monstrar resolvites
|
||||
# Variables:
|
||||
# $numPasswords (Integer) - Number of exposed passwords
|
||||
unresolved-passwords-exposed =
|
||||
{ $numPasswords ->
|
||||
[one] Contrasigno exponite in violationes non resolvite
|
||||
*[other] Contrasignos exponite in violationes non resolvite
|
||||
}
|
||||
# Variables:
|
||||
# $numResolvedBreaches (Integer) - Number of resolved breaches
|
||||
known-data-breaches-resolved =
|
||||
{ $numResolvedBreaches ->
|
||||
[one] Violation de datos cognoscite marcate como resolvite
|
||||
|
@ -501,7 +554,10 @@ vpn-promo-copy-new = Protege tu datos in linea – e selige un plano de subscrip
|
|||
|
||||
## VPN promotional banner. HTML tags should not be translated, e.g. `<em>`
|
||||
|
||||
# user's IP location is determined dynamically by 3rd-party, eg: "Your location: Los Angeles, CA". The 3rd-party service provides its own localization.
|
||||
# Variables:
|
||||
# $ip-location (String) - User's IP location is determined dynamically by 3rd-party,
|
||||
# eg: "Your location: Los Angeles, CA". The 3rd-party service
|
||||
# provides its own localization.
|
||||
vpn-banner-location = Tu ubication: { $ip-location }
|
||||
vpn-banner-protect-yourself-with-vpn = <em>Protege te</em> con { -brand-mozilla-vpn }.
|
||||
vpn-banner-protected-with-vpn = <em>Protegite</em> con { -brand-mozilla-vpn }.
|
||||
|
@ -510,7 +566,8 @@ vpn-banner-title-2 = Tu ubication pote esser traciate si tu non usa un VPN.
|
|||
vpn-banner-subtitle-2 = Protege tu position e naviga con securitate in 3 passos
|
||||
vpn-banner-status-protected = Stato actual: <em>Protegite ✓</em>
|
||||
vpn-banner-status-not-protected = Stato actual: <em>Non protegite ⚠</em>
|
||||
# user's IP address is determined dynamically, eg: "IP address: 192.168.1.1"
|
||||
# Variables:
|
||||
# $ip-address (String) - User's IP address is determined dynamically, eg: "IP address: 192.168.1.1"
|
||||
vpn-banner-ip-address = Adresse IP: { $ip-address }
|
||||
vpn-banner-step-1 = Abona te a { -brand-mozilla-vpn }
|
||||
vpn-banner-step-2 = Eliger le position del VPN
|
||||
|
@ -569,6 +626,8 @@ ad-unit-6-before-you-complete = Ante que tu completa tu proxime registration, us
|
|||
-brand-mozilla = Mozilla
|
||||
-brand-mozilla-foundation = Le fundation Mozilla
|
||||
-brand-github = GitHub
|
||||
-brand-mozilla-vpn = VPN Mozilla
|
||||
-brand-relay = Firefox Relay
|
||||
|
||||
##
|
||||
|
||||
|
@ -590,6 +649,8 @@ sign-in = Aperir session
|
|||
site-nav-breaches-link = Resolver violationes de datos
|
||||
site-nav-settings-link = Parametros
|
||||
site-nav-help-link = Adjuta e assistentia
|
||||
brand-relay = { -brand-relay }
|
||||
brand-mozilla-vpn = { -brand-mozilla-vpn }
|
||||
|
||||
## User menu
|
||||
|
||||
|
@ -603,9 +664,10 @@ menu-item-logout = Clauder session
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Conditiones de uso e confidentialitate
|
||||
github = { -brand-github }
|
||||
footer-nav-all-breaches = Tote le violationes
|
||||
|
||||
## Error page
|
||||
|
||||
|
@ -618,3 +680,11 @@ error-page-error-404-cta-button = Retornar
|
|||
# $errorCode (number) - the status code of the error, e.g. 403
|
||||
error-page-error-other-title = Alco errate eveniva { $errorCode }
|
||||
error-page-error-other-copy = Retenta o reveni plus tarde
|
||||
|
||||
## Breach overview page
|
||||
|
||||
search-breaches = Cercar violationes
|
||||
|
||||
## Public breach detail page
|
||||
|
||||
breach-detail-cta-signup = Verificar si il ha violationes
|
||||
|
|
|
@ -10,9 +10,10 @@ rec-ssn =
|
|||
rec-pw-1-subhead = Cambia tu contrasigno
|
||||
# Link title
|
||||
rec-pw-1-cta = Modifica contrasigno pro iste sito
|
||||
rec-pw-1 =
|
||||
Face le contrasigno unic e differente de tote le alteres que tu usa.
|
||||
Un bon strategia a sequer es de combinar duo o plus parolas sin relation inter se pro crear un phrase-clave complete.
|
||||
rec-pw-1-2 =
|
||||
Rende iste contrasigno unic e differente de tote le alteros que tu usa.
|
||||
Un bon strategia a sequer es de combinar duo o plus parolas sin relation
|
||||
pro crear un phrase-clave complete, e includer numeros e symbolos.
|
||||
# Recommendation subhead
|
||||
rec-pw-2-subhead = Renova le altere credentiales que usa le mesme contrasigno
|
||||
# Link title
|
||||
|
@ -40,16 +41,11 @@ rec-email-mask-subhead = Usa un masca email
|
|||
rec-email-cta = Prova { -brand-relay }
|
||||
rec-email = Divulgar tu adresse de e-mail real rende plus facile pro piratas informatic o traciatores trovar tu contrasignos o attaccar te in linea. Un servicio como { -brand-relay } cela tu adresse de e-mail real e reexpedi le messages a tu cassa de entrata real.
|
||||
# Recommendation subhead
|
||||
rec-ip-subhead = Usa un servicio que masca tu adresse IP
|
||||
# Link title
|
||||
rec-ip-us-cta = Prova { -brand-fpn }
|
||||
rec-ip-us = Tu adresse de protocollo internet (IP) indica tu position geographic e fornitor de servicio internet. Un servicio como { -brand-fpn } masca tu adresse IP e cela tu position.
|
||||
rec-ip-non-us = Tu adresse de protocollo internet (IP) indica tu position geographic e fornitor de servicio internet. Con un rete virtual private (VPN), tu pote celar tu position e mascar tu adresse IP.
|
||||
# Recommendation subhead
|
||||
rec-moz-vpn-cta = Prova { -brand-mozilla-vpn }
|
||||
rec-moz-vpn-update =
|
||||
Tu adresse del protocollo Internet (IP) identifica tu position geographic e tu fornitor de servicio internet. Un servicio
|
||||
como { -brand-mozilla-vpn } cela tu adresse IP e tu position pro tu integre apparato.
|
||||
rec-moz-vpn-update-2 =
|
||||
Tu adresse de Protocollo Internet (IP) identifica tu position geographic
|
||||
e fornitor de servicio internet. Un servicio como { -brand-mozilla-vpn }
|
||||
masca tu adresse IP e cela tu position.
|
||||
rec-hist-pw-subhead = Non reusa contrasignos
|
||||
# Link title
|
||||
rec-hist-pw-cta-fx = Vide le credentiales in { -brand-name }
|
||||
|
|
|
@ -680,7 +680,7 @@ menu-item-logout = Disconnetti
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Termini di utilizzo e privacy
|
||||
github = { -brand-github }
|
||||
footer-nav-all-breaches = Tutte le violazioni
|
||||
|
|
|
@ -48,7 +48,7 @@ rec-email =
|
|||
rec-ip-subhead-2 = Usa una VPN per nascondere il tuo indirizzo IP
|
||||
# Recommendation subhead
|
||||
rec-moz-vpn-cta = Prova { -brand-mozilla-vpn }
|
||||
rec-moz-vpn-update-2 = Il tuo indirizzo IP (Internet Protocolo) permette di risalire alla tua posizione e al tuo fornitore di servizi internet. Un servizio come { -brand-mozilla-vpn } maschera il tuo indirizzo IP per nascondere la tua posizione.
|
||||
rec-moz-vpn-update-2 = Il tuo indirizzo IP (Internet Protocol) permette di risalire alla tua posizione e al tuo fornitore di servizi internet. Un servizio come { -brand-mozilla-vpn } maschera il tuo indirizzo IP per nascondere la tua posizione.
|
||||
rec-hist-pw-subhead = Evita di riutilizzare le password
|
||||
# Link title
|
||||
rec-hist-pw-cta-fx = Visualizza le credenziali in { -brand-name }
|
||||
|
|
|
@ -749,7 +749,7 @@ menu-item-logout = Afmelden
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Voorwaarden en Privacy
|
||||
github = { -brand-github }
|
||||
footer-nav-all-breaches = Alle datalekken
|
||||
|
|
|
@ -673,7 +673,7 @@ menu-item-logout = Logg ut
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Vilkår og personvern
|
||||
github = { -brand-github }
|
||||
|
||||
|
|
|
@ -720,7 +720,7 @@ menu-item-logout = Sair
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Termos e Privacidade
|
||||
github = { -brand-github }
|
||||
footer-nav-all-breaches = Todos os vazamentos
|
||||
|
|
|
@ -686,7 +686,7 @@ menu-item-logout = Terminar sessão
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Termos e privacidade
|
||||
github = { -brand-github }
|
||||
|
||||
|
|
|
@ -737,7 +737,7 @@ menu-item-logout = Выйти
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Условия и конфиденциальность
|
||||
github = { -brand-github }
|
||||
footer-nav-all-breaches = Все утечки
|
||||
|
|
|
@ -780,7 +780,7 @@ menu-item-logout = Odhlásiť sa
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Podmienky a ochrana súkromia
|
||||
github = { -brand-github }
|
||||
|
||||
|
|
|
@ -708,7 +708,7 @@ menu-item-settings = Nastavitve
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Pogoji in zasebnost
|
||||
github = { -brand-github }
|
||||
|
||||
|
|
|
@ -6,5 +6,13 @@
|
|||
### Dialog window that allows a user to add a new email address to be monitored
|
||||
|
||||
add-email-add-another-heading = Shtoni adresë tjetër email
|
||||
# $total is the number of emails a user is allowed to add
|
||||
add-email-your-account-includes =
|
||||
{ $total ->
|
||||
[one] Llogaria juaj përfshin mbikëqyrjen e { $total } adrese email. Shtoni një adresë të re email, që të shihni nëse është përfshirë në një cenim.
|
||||
*[other] Llogaria juaj përfshin mbikëqyrjen e { $total } adresash email. Shtoni një adresë të re email, që të shihni nëse është përfshirë në një cenim.
|
||||
}
|
||||
add-email-address-input-label = Adresë email
|
||||
add-email-send-verification-button = Dërgo lidhje verifikimi
|
||||
# $email is the newly added email address. $settings-href is the URL for the Settings page. HTML tags should not be translated, e.g. `<a>`
|
||||
add-email-verify-the-link = Verifikoni lidhjen e dërguar te { $email } për ta shtuar te { -brand-fx-monitor }. Administroni krejt adresat email, që nga <a { $settings-href }>Rregullimet</a>.
|
||||
|
|
|
@ -677,6 +677,7 @@ sign-in = Hyni
|
|||
|
||||
## Site navigation
|
||||
|
||||
site-nav-breaches-link = Zgjidhni Cenime të Dhënash
|
||||
site-nav-settings-link = Rregullime
|
||||
site-nav-help-link = Ndihmë dhe Asistencë
|
||||
# This call-out is above 2 image links for Firefox Relay and Mozilla VPN
|
||||
|
@ -696,7 +697,7 @@ menu-item-logout = Dilni
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Kushte & Privatësi
|
||||
github = { -brand-github }
|
||||
footer-nav-all-breaches = Krejt Cenimet
|
||||
|
@ -716,7 +717,13 @@ error-page-error-other-copy = Ju lutemi, riprovoni, ose rikthehuni më vonë
|
|||
## Breach overview page
|
||||
|
||||
all-breaches-headline-2 = Krejt cenimet të pikasura nga { -brand-fx-monitor }
|
||||
all-breaches-lead = Mbikëqyrim krejt cenimet e ditura të të dhënave, për të parë nëse hollësitë tuaja personale qenë komprometuar. Ja një listë e plotë e krejt cenimeve që janë njoftuar që nga 2007-a.
|
||||
search-breaches = Kërkoni Te Shkeljet
|
||||
# the kind of user data exposed to hackers in data breach.
|
||||
exposed-data = Të dhëna të ekspozuara:
|
||||
|
||||
## Public breach detail page
|
||||
|
||||
find-out-if-2 = Shihni nëse jeni përfshirë në këtë cenim
|
||||
find-out-if-description = Do t’ju ndihmojmë të shihni shpejt e shpejt nëse adresa juaj email qe ekspozuar në këtë cenim dhe të kuptoni ç’të bëhet më pas.
|
||||
breach-detail-cta-signup = Kontrolloni për cenime
|
||||
|
|
|
@ -5,6 +5,8 @@
|
|||
|
||||
## Breaches header
|
||||
|
||||
# Data classes pie chart title
|
||||
breach-chart-title = Të dhëna cenimesh
|
||||
# $email-select is an interactive <select> element displaying the current email address
|
||||
breach-heading-email = Cenime të dhënash për { $email-select }
|
||||
# $count is the number of emails a user has added out of $total allowed
|
||||
|
@ -13,7 +15,8 @@ emails-monitored =
|
|||
[one] { $count } nga { $total } email i mbikëqyrur
|
||||
*[other] { $count } nga { $total } email-e të mbikëqyrur
|
||||
}
|
||||
add-email-link = Shtoni adresë email
|
||||
# link to Settings page where user can add/remove emails and set message preferences
|
||||
manage-emails-link = Administroni email
|
||||
|
||||
## Breaches resolved filter
|
||||
|
||||
|
@ -25,29 +28,64 @@ filter-label-resolved = Cenime të zgjidhura
|
|||
column-company = SHOQËRI
|
||||
column-breached-data = TË DHËNA TË CENUARA
|
||||
column-detected = TË PIKASURA
|
||||
# “Resolved” is shown next to a breach if all recommended actions in response to the breach have been taken.
|
||||
column-status-badge-resolved = I zgjidhur
|
||||
# “Active” is shown next to a breach if the user still has at least one recommended action to perform in response to the breach.
|
||||
column-status-badge-active = Aktiv
|
||||
breaches-resolve-heading = Zgjidheni këtë cenim:
|
||||
breaches-none-headline = S’u gjetën cenime
|
||||
# Variables:
|
||||
# $email (String) - An email address that we did not find breaches for, e.g. `someone@example.com`
|
||||
breaches-none-copy = Lajme të mbara! Për { $email } s’u raportuan cenime. Do të vazhdojmë ta mbikëqyrim këtë email dhe t’ju bëjmë të ditur, nëse ndodhin cenime të reja.
|
||||
breaches-none-cta-blurb = Do të donit të mbikëqyret tjetër email?
|
||||
breaches-none-cta-button = Shtoni adresë email
|
||||
breaches-all-resolved-headline = Krejt cenimet janë zgjidhur
|
||||
# Variables:
|
||||
# $email (String) - An email address for which all breaches have been resolved, e.g. `someone@example.com`
|
||||
breaches-all-resolved-copy = Punë e paqme! Keni zgjidhur krejt cenimet për { $email }. Do të vazhdojmë ta mbikëqyrim këtë email dhe t’ju bëjmë të ditur, nëse ndodhin cenime të reja.
|
||||
breaches-all-resolved-cta-blurb = Do të donit të mbikëqyret tjetër email?
|
||||
breaches-all-resolved-cta-button = Shtoni adresë email
|
||||
# $breachDate and $addedDate are dates that should be localized via JS DateTimeFormat(). $dataClasses is a list of strings from data-classes.ftl that should be localized via JS ListFormat()
|
||||
# Variables:
|
||||
# $breachDate (String) - Date of the breach
|
||||
# $companyName (String) - Name of the company where the breach occurred
|
||||
breach-description = Më { $breachDate } u cenua { $companyName }. Pasi u zbulua dhe u verifikua cenimi, u shtua te baza jonë e të dhënave më { $addedDate }. Ky cenim përfshinte: { $dataClasses }
|
||||
|
||||
## Links that we might refer to when prompting the user to make changes after a breach
|
||||
|
||||
breach-checklist-link-firefox-relay = { -brand-relay }
|
||||
breach-checklist-link-password-manager = Përgjegjës Fjalëkalimesh { -brand-firefox }
|
||||
breach-checklist-link-mozilla-vpn = { -brand-mozilla-vpn }
|
||||
|
||||
## Prompts the user for changes when there is a breach detected of password
|
||||
|
||||
# NOTE: { $breachedCompanyUrl } is a placeholder for the URL to the website of the company where the breach occurred
|
||||
breach-checklist-pw-header = Që të ndryshoni fjalëkalimin tuaj dhe të aktivizoni mirëfilltësimin dyfaktorësh, kaloni te <a>{ $breachedCompanyUrl }</a>.
|
||||
breach-checklist-pw-body = Sigurohuni që fjalëkalimi juaj të jetë unik dhe i zorshëm të hamendësohet. Nëse ky fjalëkalim është përdorur në çfarëdo llogarie tjetër, sigurohuni se e ndryshoni edhe atje. <a>{ -brand-firefox } Përgjegjësi i Fjalëkalimeve</a> mund t’ju ndihmojë të ndiqni në mënyrë të sigurt krejt fjalëkalimet tuaja.
|
||||
# { $breachedCompanyLink } will link to the website of the company where the breach occurred
|
||||
breach-checklist-pw-header-2 = Që të ndryshoni fjalëkalimin tuaj dhe të aktivizoni mirëfilltësimin dyfaktorësh (2FA), kaloni te sajti i shoqërisë.
|
||||
# Variables:
|
||||
# $passwordManagerLink (string) - a link to the password manager documentation, with { -breach-checklist-link-password-manager } as the label
|
||||
breach-checklist-pw-body-2 = Sigurohuni që fjalëkalimi juaj të jetë unik dhe i zorshëm të hamendësohet. Nëse ky fjalëkalim është përdorur në çfarëdo llogarie tjetër, sigurohuni se e ndryshoni edhe atje. { $passwordManagerLink } mund t’ju ndihmojë të ndiqni në mënyrë të sigurt krejt fjalëkalimet tuaja.
|
||||
|
||||
## Prompts the user for changes when there is a breach detected of email
|
||||
|
||||
breach-checklist-email-header = Mbrojeni email-in tuaj me një shërbim maskimi email-sh, bie fjala <a>{ -brand-relay }</a>.
|
||||
# Variables:
|
||||
# $firefoxRelayLink (string) - a link to Firefox Relay, with { -breach-checklist-link-firefox-relay } as the label
|
||||
breach-checklist-email-header-2 = Mbrojeni email-in tuaj me një shërbim maskimi email-sh, bie fjala, { $firefoxRelayLink }.
|
||||
breach-checklist-email-body = Ky mund të fshehë adresën tuaj të vërtetë email, teksa ju sjell email-et te posta juaj e njëmendtë.
|
||||
|
||||
## Prompts the user for changes when there is a breach detected of social security number
|
||||
|
||||
# Credit reports list your bill payment history, loans, current debt, and other financial information.
|
||||
# Credit reports list your bill payment history, loans, current debt, and other financial information.
|
||||
# They show where you work and live and whether you've been sued, arrested, or filed for bankruptcy.
|
||||
breach-checklist-ssn-header = Mbikëqyrni raportin tuaj të kreditit për llogari, hua apo karta krediti që nuk i njihni.
|
||||
# A security freeze prevents prospective creditors from accessing your credit file.
|
||||
# Creditors typically won't offer you credit if they can't access your credit reporting file,
|
||||
# A security freeze prevents prospective creditors from accessing your credit file.
|
||||
# Creditors typically won't offer you credit if they can't access your credit reporting file,
|
||||
# so a security freeze, also called a credit freeze, prevents you or others from opening accounts in your name.
|
||||
breach-checklist-ssn-body = Mund të shihni edhe mundësinë e ngrirjes së kreditit tuaj në <a>Equifax</a>, <a>Experian</a> dhe <a>TransUnion</a>, për t’u ndaluar mashtruesve të hapin llogari të reja në emrin tuaj. Është falas dhe s’do të prekë vlerësimin e kreditit tuaj.
|
||||
# This will only be shown to users in the US.
|
||||
# Variables:
|
||||
# $equifaxLink (string) - a link to the Equifax website
|
||||
# $experianLink (string) - a link to the Experian website
|
||||
# $transUnionLink (string) - a link to the TransUnion website
|
||||
breach-checklist-ssn-body-2 = Mund të shihni edhe mundësinë e ngrirjes së kreditit tuaj në { $equifaxLink }, { $experianLink } dhe { $transUnionLink }, për t’u ndaluar mashtruesve të hapin llogari të reja në emrin tuaj. Është falas dhe s’do të prekë vlerësimin e kreditit tuaj.
|
||||
|
||||
## Prompts the user for changes when there is a breach detected of credit card
|
||||
|
||||
|
@ -66,7 +104,9 @@ breach-checklist-pin-body = Sigurohuni se PIN-i juaj i ri, ose çfarëdo PIN-i t
|
|||
|
||||
## Prompts the user for changes when there is a breach detected of IP address
|
||||
|
||||
breach-checklist-ip-header = Përdoreni internetin privatisht, me një VPN, bie fjala, <a>{ -brand-mozilla-vpn }</a>.
|
||||
# Variables:
|
||||
# $mozillaVpnLink (string) - a link to the Mozilla VPN website, with { -breach-checklist-link-mozilla-vpn } as the label
|
||||
breach-checklist-ip-header-2 = Përdoreni internetin privatisht, me një VPN, bie fjala, { $mozillaVpnLink }.
|
||||
breach-checklist-ip-body = Adresa juaj IP (adresë Protokolli Internet) tregon me përpikëri vendndodhjen tuaj dhe shërbimin internet. Një VPN mund ta fshehë adresën tuaj të njëmendtë IP, që kështu të mund ta përdorni internetin privatisht.
|
||||
|
||||
## Prompts the user for changes when there is a breach detected of physical address
|
||||
|
@ -81,20 +121,26 @@ breach-checklist-dob-body = Datëlindjen është e lehtë të gjenden në regjis
|
|||
|
||||
## Prompts the user for changes when there is a breach detected of phone number
|
||||
|
||||
breach-checklist-phone-header = Mbrojeni numrin tuaj të telefonit me një shërbim maskimi, të tillë si <a>{ -brand-relay }</a>, i cili fsheh numrin tuaj të vërtetë të telefonit.
|
||||
# Variables:
|
||||
# $firefoxRelayLink (string) - a link to Firefox Relay, with { -breach-checklist-link-firefox-relay } as the label
|
||||
breach-checklist-phone-header-2 = Mbrojeni numrin tuaj të telefonit me një shërbim maskimi, të tillë si { $firefoxRelayLink }, i cili fsheh numrin tuaj të vërtetë të telefonit.
|
||||
|
||||
## Prompts the user for changes when there is a breach detected of security questions
|
||||
|
||||
# NOTE: { $breachedCompanyUrl } is a placeholder for the URL to the website of the company where the breach occurred
|
||||
breach-checklist-sq-header = Përditësoni pyetjen tuaj të sigurisë te <a>{ $breachedCompanyUrl }</a>.
|
||||
# { $breachedCompanyLink } will link to the website of the company where the breach occurred
|
||||
breach-checklist-sq-header-2 = Përditësoni pyetjet tuaja të sigurisë te sajti i shoqërisë.
|
||||
breach-checklist-sq-body = Përdorni përgjigje të gjata, të zgjedhura kuturu dhe depozitojini diku në një vend të parrezik. Bëjeni këtë kudo tjetër ku keni përdorur të njëjtat pyetje sigurie.
|
||||
|
||||
## Prompts the user for changes when there is a breach detected of historical password
|
||||
|
||||
breach-checklist-hp-header = Krijoni fjalëkalime unikë, të fortë, për çdo llogari ku keni ripërdorur fjalëkalime.
|
||||
breach-checklist-hp-body = Një përgjegjës fjalëkalimesh, bie fjala, <a>Përgjegjës Fjalëkalimesh { -brand-firefox }</a> (i cili është i lirë dhe i brendshëm në shfletuesin { -brand-firefox }) mund t’ju ndihmojë të ndiqni krejt fjalëkalimet tuaj t’i përdorni pa rrezik që nga krejt pajisjet tuaja.
|
||||
# Variables:
|
||||
# $passwordManagerLink (string) - a link to the password manager documentation, with { -breach-checklist-link-password-manager } as the label
|
||||
breach-checklist-hp-body-2 = Një përgjegjës fjalëkalimesh, bie fjala, { $passwordManagerLink } (i cili është i lirë dhe i brendshëm në shfletuesin { -brand-firefox }) mund t’ju ndihmojë të ndiqni krejt fjalëkalimet tuaj dhe t’i përdorni pa rrezik që nga krejt pajisjet tuaja.
|
||||
|
||||
## Prompts the user for changes when there is a breach detected of other types
|
||||
|
||||
# NOTE: { $companyName } is a placeholder for the name of the company where the breach occurred
|
||||
# Variables:
|
||||
# $breachDate (String) - Date of the breach
|
||||
# $companyName (String) - Name of the company where the breach occurred
|
||||
breach-checklist-general-header = Lidhuni me { $companyName } për t’u bërë të ditur këtë cenim dhe kërkojuni për hapa specifikë që mund të ndërmerrni.
|
||||
|
|
|
@ -33,6 +33,9 @@ customer-interactions = Ndërveprime klienti
|
|||
dates-of-birth = Data lindjesh
|
||||
deceased-date = Data vdekjesh
|
||||
deceased-statuses = Gjendje vdekjeje
|
||||
# Instructions that you can set up in online shopping services to get your orders
|
||||
# delivered (e.g. deliver to a specific neighbor, entrance location, etc.).
|
||||
delivery-instructions = Udhëzime dorëzimi
|
||||
device-information = Të dhëna pajisjeje
|
||||
device-serial-numbers = Numra serialë pajisjesh
|
||||
device-usage-tracking-data = Të dhëna gjurmimi përdorimi pajisjeje
|
||||
|
@ -52,11 +55,13 @@ family-plans = Plane familjare
|
|||
family-structure = Strukturë familjare
|
||||
financial-investments = Investime financiare
|
||||
financial-transactions = Transaksione financiare
|
||||
flights-taken = Fluturime të bëra
|
||||
genders = Gjini
|
||||
geographic-locations = Vendndodhje gjeografike
|
||||
government-issued-ids = ID të lëshuara nga qeveri
|
||||
health-insurance-information = Të dhëna sigurimesh shëndetësore
|
||||
historical-passwords = Fjalëkalime të dikurshëm
|
||||
hiv-statuses = Gjendje HIV
|
||||
home-loan-information = Të dhëna kredie për shtëpi
|
||||
home-ownership-statuses = Gjendje pronësie shtëpish
|
||||
homepage-urls = URL faqesh hyrëse
|
||||
|
@ -70,6 +75,8 @@ job-titles = Emërtesa vendi pune
|
|||
# This string refers to vehicle license plates.
|
||||
licence-plates = Targa
|
||||
living-costs = Kosto jetese
|
||||
# This string refers to financial loans.
|
||||
loan-information = Hollësi kredie
|
||||
login-histories = Kronologji hyrjesh
|
||||
mac-addresses = Adresa MAC
|
||||
marital-statuses = Gjendje martesore
|
||||
|
@ -80,7 +87,11 @@ names = Emra
|
|||
nationalities = Shtetësi
|
||||
net-worths = Pasuri neto
|
||||
nicknames = Nofka
|
||||
# no data classes found
|
||||
none-data-class = Asnjë
|
||||
occupations = Punësime
|
||||
# various data classes grouped together
|
||||
other-data-class = Të tjera
|
||||
partial-credit-card-data = Të dhëna të pjesshme karte krediti
|
||||
partial-dates-of-birth = Datëlindje të pjesshme
|
||||
partial-phone-numbers = Numra telefoni të pjesshëm
|
||||
|
@ -132,6 +143,7 @@ user-website-urls = URL sajtesh përdoruesi
|
|||
usernames = Emra përdoruesish
|
||||
utility-bills = Fatura
|
||||
vehicle-details = Hollësi automjeti
|
||||
vehicle-identification-numbers-vins = Numra identifikimi automjetesh (VIN-e)
|
||||
website-activity = Veprimtari në sajt
|
||||
work-habits = Zakone pune
|
||||
years-of-birth = Vite lindjesh
|
||||
|
|
|
@ -10,9 +10,10 @@ rec-ssn =
|
|||
rec-pw-1-subhead = Ndryshoni fjalëkalimin tuaj
|
||||
# Link title
|
||||
rec-pw-1-cta = Ndryshoni fjalëkalim për këtë sajt
|
||||
rec-pw-1 =
|
||||
Bëjeni këtë fjalëkalim unik dhe të ndryshëm nga cilido tjetër që përdorni.
|
||||
Një strategji për t’u ndjekur është të ndërthuren dy ose më tepër fjalë që s’kanë lidhje, për të krijuar një togfjalësh të tërë.
|
||||
rec-pw-1-2 =
|
||||
Bëjeni këtë fjalëkalim unik dhe të ndryshëm nga cilido tjetër që përdorni.
|
||||
Një strategji e mirë për t’u ndjekur është të ndërthuren dy ose më tepër
|
||||
fjalë që s’kanë lidhje, për të krijuar një togfjalësh të tërë dhe të përfshihen numra dhe simbole.
|
||||
# Recommendation subhead
|
||||
rec-pw-2-subhead = Përditësoni kredenciale të tjerë hyrjesh duke përdorur të njëjtin fjalëkalim
|
||||
# Link title
|
||||
|
@ -44,20 +45,13 @@ rec-email =
|
|||
Dhënia e adresës tuaj reale email e bën më të lehtë për hacker-a apo gjurmues të gjejnë fjalëkalimet tuaja ose t’ju bëjnë objektiv në internet. Një shërbim si { -brand-relay }
|
||||
e fsheh adresën tuaj reale email teksa përcjell email-et te kutia juaj reale.
|
||||
# Recommendation subhead
|
||||
rec-ip-subhead = Përdorni një shërbim që maskon adresën tuaj IP
|
||||
# Link title
|
||||
rec-ip-us-cta = Provoni { -brand-fpn }
|
||||
rec-ip-us =
|
||||
Adresa juaj e Protokollit Internet (adresë IP) lejon të përcaktohet me saktësi vendndodhja juaj dhe furnizuesi i shërbimit internet për ju. Një shërbim si { -brand-fpn }
|
||||
e maskon adresën tuaj IP për të fshehur vendndodhjen tuaj.
|
||||
rec-ip-non-us =
|
||||
Adresa juaj e Protokollit Internet (adresë IP) lejon të përcaktohet me saktësi vendndodhja juaj dhe furnizuesi i shërbimit internet për ju. Me një rrjet virtual privat (VPN), mund të fshihni vendndodhjen tuaj
|
||||
dhe të maskoni adresën tuaj IP.
|
||||
rec-ip-subhead-2 = Përdorni një VPN që të maskoni adresën tuaj IP
|
||||
# Recommendation subhead
|
||||
rec-moz-vpn-cta = Provoni { -brand-mozilla-vpn }
|
||||
rec-moz-vpn-update =
|
||||
Adresa juaj e Protokollit Internet (adresë IP) mund të lërë të zbulohet vendndodhja juaj dhe furnizuesi i shërbimit internet. Një shërbim
|
||||
si { -brand-mozilla-vpn } e fsheh adresën IP dhe vendndodhjen për krejt pajisjen tuaj.
|
||||
rec-moz-vpn-update-2 =
|
||||
Adresa juaj e Protokollit Internet (adresë IP) lejon të përcaktohet me saktësi vendndodhja juaj
|
||||
dhe furnizuesi i shërbimit internet për ju. Një shërbim si { -brand-mozilla-vpn }
|
||||
e maskon adresën tuaj IP, për fshehje të vendndodhjes tuaj.
|
||||
rec-hist-pw-subhead = Shmangni ripërdorim fjalëkalimesh
|
||||
# Link title
|
||||
rec-hist-pw-cta-fx = Shihni kredenciale hyrjesh te { -brand-name }
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
|
||||
# Settings page
|
||||
|
||||
settings-page-title = Rregullime { -product-short-name }-i
|
||||
|
||||
## Breach alert preferences
|
||||
|
||||
settings-alert-preferences-title = Parapëlqime mbi sinjalizim cenimesh
|
||||
settings-alert-preferences-option-one = Dërgo sinjalizime shkeljesh te adresa email e prekur
|
||||
settings-alert-preferences-option-two = Dërgoji krejt sinjalizimet mbi cenime te adresa parësore email
|
||||
|
||||
## Monitored email addresses
|
||||
|
||||
# Variables:
|
||||
# $email (string) - Email address
|
||||
settings-email-label-primary = { $email } (parësor)
|
||||
settings-email-list-title = Adresë email e mbikëqyrur
|
||||
# Variables:
|
||||
# $limit (number) - Number of email addresses included in the plan
|
||||
settings-email-limit-info =
|
||||
{ $limit ->
|
||||
[one] Llogaria juaj përfshin mbikëqyrjen e deri { $limit } email-i.
|
||||
*[other] Llogaria juaj përfshin mbikëqyrjen e deri { $limit } email-eve.
|
||||
}
|
||||
settings-email-verification-callout = Lypset verifikim email-i
|
||||
settings-resend-email-verification-link = Ridërgo email verifikimi
|
||||
settings-add-email-button = Shtoni adresë email
|
||||
# This string is shown beneath each of the user’s email addresses to indicate
|
||||
# how many known breaches that email address was found in.
|
||||
# Variables:
|
||||
# $breachCount (numer) - Number of breaches
|
||||
settings-email-number-of-breaches-info =
|
||||
{ $breachCount ->
|
||||
[one] Shfaqet në { $breachCount } cenim të ditur.
|
||||
*[other] Shfaqet në { $breachCount } cenime të ditura.
|
||||
}
|
||||
|
||||
## Deactivate account
|
||||
|
||||
settings-deactivate-account-title = Çaktivizoje llogarinë
|
||||
settings-deactivate-account-info = { -product-short-name } mund ta çaktivizoni duke fshirë { -brand-fx-account } tuaj.
|
||||
settings-fxa-link-label = Kaloni te Rregullime { -brand-firefox }-i
|
||||
|
||||
## Add email dialog
|
||||
|
||||
settings-email-dialog-title = Shtoni adresë tjetër email
|
||||
settings-add-email-text = Shtoni një adresë të re email, që të shihni nëse është përfshirë në ndonjë cenim.
|
||||
settings-email-input-label = Adresë email
|
||||
settings-send-email-verification-button = Dërgo lidhje verifikimi
|
|
@ -754,7 +754,7 @@ menu-item-logout = Logga ut
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Villkor och sekretess
|
||||
github = { -brand-github }
|
||||
footer-nav-all-breaches = Alla intrång
|
||||
|
|
|
@ -15,8 +15,6 @@
|
|||
-brand-lockwise = Firefox Lockwise
|
||||
-brand-send = Firefox Send
|
||||
-brand-fpn = Firefox Private Network
|
||||
-brand-mozilla-vpn = Mozilla VPN
|
||||
-brand-relay = Firefox Relay
|
||||
|
||||
##
|
||||
|
||||
|
@ -37,6 +35,9 @@ user-add-invalid-email = Geçersiz e-posta
|
|||
user-add-too-many-emails = Azami sayıda e-posta adresini gözlemliyorsunuz.
|
||||
user-add-email-verify-subject = { -product-name } aboneliğinizi doğrulayın.
|
||||
user-add-duplicate-email = Bu e-posta zaten { -product-name }'e eklenmiş.
|
||||
# Variables:
|
||||
# $preferencesLink (String) - Link to preferences
|
||||
# $userEmail (String) - User email address
|
||||
user-add-duplicate-email-part-2 = { $userEmail } adresinin durumunu kontrol etmek için { $preferencesLink }inizi ziyaret edin.
|
||||
error-headline = Hata
|
||||
user-verify-token-error = Doğrulama jetonu gerekli.
|
||||
|
@ -50,11 +51,11 @@ scan-placeholder = E-posta adresinizi yazın
|
|||
scan-submit = E-postamı ara
|
||||
scan-error = Geçerli bir e-posta adresi olmalı.
|
||||
download-firefox-banner-button = { -brand-name }’u indir
|
||||
# Appears after Firefox Monitor has sent a verification email to a new user.
|
||||
# Appears after Firefox Monitor has sent a verification email to a new user.
|
||||
signup-modal-sent = Gönderildi!
|
||||
sign-up = Kaydol
|
||||
form-signup-error = Geçerli bir e-posta adresi olmalı
|
||||
# breach-date = the calendar date a particular data theft occurred.
|
||||
# breach-date = the calendar date a particular data theft occurred.
|
||||
breach-date = İhlal tarihi:
|
||||
# compromised accounts = the total number of user accounts exposed in data breach
|
||||
compromised-accounts = Ele geçirilen hesap sayısı:
|
||||
|
@ -64,6 +65,8 @@ unsub-headline = { -product-name-nowrap } aboneliğinden çık
|
|||
unsub-blurb = E-posta adresiniz { -product-name-nowrap } listesinden kaldırılacak ve bundan sonraki ihlallerle ilgili uyarı almayacaksınız.
|
||||
unsub-button = Abonelikten çık
|
||||
# Breach data provided by Have I Been Pwned.
|
||||
# Variables:
|
||||
# $hibp-link (String) - Link to Have I Been Pwned
|
||||
hibp-attribution = İhlal verileri { $hibp-link } tarafından sağlanmaktadır
|
||||
share-twitter = Çoğu kişinin yaklaşık 100 çevrimiçi hesabı var. Hesaplarınızdan birisi veri ihlaline maruz kalmış olabilir mi? Hemen öğrenin.
|
||||
share-facebook-headline = Verilerinizin çalınıp çalınmadığını öğrenin
|
||||
|
@ -106,8 +109,6 @@ preferences = Tercihler
|
|||
# Link title
|
||||
home = Ana sayfa
|
||||
# Link title
|
||||
breaches = İhlaller
|
||||
# Link title
|
||||
security-tips = Güvenlik ipuçları
|
||||
fxa-account = { -brand-fxa }
|
||||
# Aria button message to open menu. "Open Firefox Account Navigation"
|
||||
|
@ -184,7 +185,9 @@ feat-security-tips = Hesaplarınızı korumanız için güvenlik ipuçları
|
|||
feat-sensitive = Hassas veri ihlalerinde gelişmiş arama
|
||||
feat-enroll-multiple = İhlal izlemesine birden fazla e-posta ekleyin
|
||||
# This string is shown beneath each of the user’s email addresses to indicate
|
||||
# how many known breaches that email address was found in.
|
||||
# how many known breaches that email address was found in.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
appears-in-x-breaches =
|
||||
{ $breachCount ->
|
||||
[one] Bilinen { $breachCount } ihlalde yer alıyor.
|
||||
|
@ -196,6 +199,8 @@ get-email-alerts = Güvende kalın: Bilgileriniz yeni bir ihlalde yer alırsa e-
|
|||
search-for-your-email = 2007’ye uzanan bilindik veri ihlallerinde e-posta adresinizi arayın.
|
||||
back-to-top = Başa dön
|
||||
comm-opt-0 = Aşağıdaki e-posta adreslerimden birisi bir veri ihlalinde tespit edilirse bana e-posta gönder.
|
||||
# Variables:
|
||||
# $primaryEmail (String) - User primary email address
|
||||
comm-opt-1 = Tüm ihlal uyarılarını { $primaryEmail } adresine gönder.
|
||||
stop-monitoring-this = Bu e-postayı izlemeyi durdur.
|
||||
resend-verification = Doğrulama e-postasını yeniden gönder
|
||||
|
@ -204,7 +209,7 @@ send-verification = Doğrulama bağlantısını gönder
|
|||
# This string is a header on the user preferences page and
|
||||
# appears above a check-box list of user options which allow
|
||||
# the user to choose whether or not they want to receive breach
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# email address.
|
||||
breach-summary = İhlal özeti
|
||||
show-breaches-for-this-email = Bu e-postayı içeren tüm ihlalleri göster.
|
||||
|
@ -215,8 +220,15 @@ remove-fxm-blurb = { -product-name } bildirimlerini kapatın. { -brand-fxa } etk
|
|||
manage-email-addresses = E-posta adreslerini yönet
|
||||
# Link title
|
||||
latest-breach-link = Bu ihlale dahil olup olmadığınızı öğrenin
|
||||
|
||||
## Variables:
|
||||
## $userName (String) - Username
|
||||
|
||||
welcome-back = Yeniden hoş geldin { $userName }!
|
||||
welcome-user = Hoş geldin { $userName }!
|
||||
|
||||
##
|
||||
|
||||
breach-alert-subject = { -product-name } yeni bir veri ihlalinde e-posta adresinizi buldu
|
||||
your-info-was-discovered-headline = Bilgileriniz yeni bir veri ihlalinde tespit edildi.
|
||||
your-info-was-discovered-blurb = E-posta adresiniz bir veri ihlalinde karşımıza çıkarsa size haber vermemiz için { -product-name }’e kaydolmuştunuz. İşte bu ihlal hakkında öğrendiklerimiz…
|
||||
|
@ -230,6 +242,8 @@ ba-next-step-blurb-3 = Güçlü ve benzersiz parolalar oluşturmak için bir par
|
|||
faq1 = Bu şirketi veya web sitesini tanımıyorum. Neden bu ihlalde yer alıyorum?
|
||||
faq2 = Bu ihlali bana bildirmeniz neden bu kadar uzun sürdü?
|
||||
faq3 = Bu e-postanın gerçekten { -product-name } tarafından gönderildiğini nasıl anlayabilirim?
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
new-breaches-found =
|
||||
{ $breachCount ->
|
||||
[one] { $breachCount } YENİ İHLAL BULUNDU
|
||||
|
@ -237,24 +251,32 @@ new-breaches-found =
|
|||
}
|
||||
sign-up-headline-1 = { -brand-fxa } ile düzenli uyarılar alabilirsiniz.
|
||||
account-not-required = { -brand-fxa } için { -brand-name } tarayıcısı gerekmez. Size { -brand-Mozilla } hizmetleri hakkında bilgi gönderebiliriz.
|
||||
|
||||
## Variables:
|
||||
## $breachName (String) - Number of the breach
|
||||
|
||||
was-your-info-exposed = Bilgileriniz { $breachName } ihlalinde açığa çıktı mı?
|
||||
find-out-if = Bilgilerinizin bu veri ihlalinde açığa çıkıp çıkmadığını öğrenin.
|
||||
fb-not-comp = Bu e-posta { $breachName } ihlalinde yer almıyor.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
other-breaches-found =
|
||||
{ $breachCount ->
|
||||
[one] Ancak başka { $breachCount } ihlalde yer alıyor.
|
||||
*[other] Ancak başka { $breachCount } ihlalde yer alıyor.
|
||||
}
|
||||
fb-comp-only = Bu e-posta adresi { $breachName } ihlalinde yer alıyor.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
fb-comp-and-others =
|
||||
{ $breachCount ->
|
||||
[one] Bu e-posta adresi { $breachName } dahil { $breachCount } başka bilinen ihlalde bulundu.
|
||||
*[other] Bu e-posta adresi { $breachName } dahil { $breachCount } başka bilinen ihlalde bulundu.
|
||||
}
|
||||
|
||||
##
|
||||
|
||||
no-other-breaches-found = Temel aramada başka bir ihlal bulunamadı.
|
||||
no-results-blurb = Üzgünüz, bu ihlal veritabanımızda yok.
|
||||
all-breaches-headline = { -product-name }’deki tüm ihlaller
|
||||
search-breaches = İhlallerde ara
|
||||
# This string contains nested markup that is later used to style and link the text inside of it.
|
||||
# Please do not modify or remove "<a>", "</a>", "<span>" and "</span>".
|
||||
facebook-breach-note = <span>E-posta adresiniz bu sızıntıda yer almıyor ama telefon numaranız yine de ele geçirilmiş olabilir.</span> Facebook sızıntısında ele geçirilen bazı hesaplarda e-posta adresleri yer almamasına rağmen telefon numaraları ve başka kişisel bilgiler yer alıyordu. Daha önce Facebook hesabı açtıysanız -şu anda kullanmıyor olsanız bile- kendini korumak için şu adımları atmanızı öneririz
|
||||
|
@ -304,6 +326,8 @@ known-data-breaches-exposed =
|
|||
}
|
||||
# Button
|
||||
see-additional-breaches = Diğer ihlallere bakın
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
scan-results-known-breaches =
|
||||
{ $breachCount ->
|
||||
[one] Bu e-posta, bilinen 1 veri ihlalinde yer alıyor.
|
||||
|
@ -312,6 +336,8 @@ scan-results-known-breaches =
|
|||
# This string is shown at the top of the scan results page and is followed
|
||||
# by the email address that the user searched.
|
||||
# In page, it reads "Results for: searchedEmail@monitor.com"
|
||||
# Variables:
|
||||
# $userEmail (String) - User email address
|
||||
results-for = Sonuçlar: { $userEmail }
|
||||
other-monitored-emails = İzlenen diğer e-postalar
|
||||
email-verification-required = E-posta doğrulaması gerekiyor
|
||||
|
@ -327,6 +353,8 @@ get-ongoing-breach-monitoring = İstediğiniz sayıda e-posta adresinin ihlaller
|
|||
# This is a button and follows a headline reading "Was your info exposed in the ___ breach?"
|
||||
find-out = Öğrenin
|
||||
new-unsub-error = { -product-name } tarafından gönderilen e-postalardaki linkleri kullanarak üyelikten çıkabilirsiniz.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
other-known-breaches-found =
|
||||
{ $breachCount ->
|
||||
[one] Ancak başka { $breachCount } ihlalde yer alıyor.
|
||||
|
@ -344,10 +372,12 @@ breach-overview-title = Genel Bakış
|
|||
# $breachTitle is the name of the breached company or website.
|
||||
# $breachDate and $addedDate are calendar dates.
|
||||
breach-overview-new = { $breachDate } tarihinde { $breachTitle } bir veri ihlaline uğradı. İhlal keşfedildikten ve doğrulandıktan sonra { $addedDate } tarihinde veritabanımıza eklendi.
|
||||
# Title appearing on the Preferences dashboard.
|
||||
# Title appearing on the Preferences dashboard.
|
||||
monitor-preferences = { -product-short-name } tercihleri
|
||||
# When a user is signed in, this appears in the drop down menu
|
||||
# and is followed by the user's primary Firefox Account email.
|
||||
# When a user is signed in, this appears in the drop down menu
|
||||
# and is followed by the user's primary Firefox Account email.
|
||||
# Variables:
|
||||
# $userEmail (String) - User email address
|
||||
signed-in-as = { $userEmail } olarak giriş yapıldı
|
||||
# Appears on the All Breaches page and is followed by a list of filter options
|
||||
# that a user can filter the visible breaches by.
|
||||
|
@ -364,12 +394,16 @@ email-sent = E-posta gönderildi!
|
|||
want-to-add = Başka bir e-posta eklemek ister misiniz?
|
||||
# This is part of a confirmation message that appears after a user has submitted
|
||||
# the form to add an additional email to Firefox Monitor.
|
||||
# Variables:
|
||||
# $userEmail (String) - User email address
|
||||
verify-the-link = { $userEmail } adresine gönderilen bağlantıyı onaylarak adresinizi { -product-name }'e ekleyin.
|
||||
|
||||
## These are part of a confirmation page that appears after a user has verified
|
||||
## an additional email to Firefox Monitor.
|
||||
|
||||
email-verified = E-posta başarıyla doğrulandı!
|
||||
# Variables:
|
||||
# $email (String) - User email address
|
||||
email-added-to-subscription = Bir veri ihlalinde { $email } adresine rastlarsak sizi uyaracağız.
|
||||
# This message is displayed after the user has verified their email address.
|
||||
# { $nestedSignInLink } is replaced by a link, using sign-in-nested as text ("sign in" for English).
|
||||
|
@ -383,15 +417,17 @@ sign-in-nested = giriş yapın
|
|||
# form to add an additional email to Firefox Monitor. { $preferencesLink } is a link
|
||||
# to the Preferences page. The code and text for the link is generated elsewhere
|
||||
# using the { preferences } string.
|
||||
# Variables:
|
||||
# $preferencesLink (String) - Link to preferences
|
||||
manage-all-emails = { $preferencesLink } üzerinden tüm e-postalarınızı yönetebilirsiniz.
|
||||
# This string is a header on the user preferences page and
|
||||
# appears above a check-box list of user options which allow
|
||||
# the user to choose whether or not they want to receive breach
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# email address.
|
||||
breach-alert-notifications = İhlal uyarısı bildirimleri
|
||||
# This string is a label for the calendar date a breach is added to the database
|
||||
# and is followed by that date.
|
||||
# and is followed by that date.
|
||||
breach-added-label = Eklenme tarihi:
|
||||
how-hackers-work-desc = Parolalarınızı siber suçlulardan koruyun çünkü bu onların en çok umursadığı şey.
|
||||
what-to-do-after-breach-desc = Hesaplarınızı kilitleyerek bilgilerinizin yanlış kişilerin eline geçmesini önleyin.
|
||||
|
@ -413,7 +449,11 @@ see-additional-recs = Ek tavsiyelere bakın
|
|||
## This string contains nested markup that becomes a link later in the code.
|
||||
## Please do not modify or remove "<a>" and "</a>".
|
||||
|
||||
# Variables:
|
||||
# $affectedEmail (String) - User email address
|
||||
resolve-top-notification = { $affectedEmail } bu ihlalde yer alıyor. <a>Şimdi ne yapmalıyım?</a>
|
||||
# Variables:
|
||||
# $numAffectedEmails (Integer) - Number of affected email address
|
||||
resolve-top-notification-plural =
|
||||
{ $numAffectedEmails ->
|
||||
[one] { $numAffectedEmails } e-posta adresiniz bu ihlalde yer alıyor. <a>Şimdi ne yapmalıyım?</a>
|
||||
|
@ -440,6 +480,8 @@ confirmation-3-subhead = Biri daha gitti. İyi iş!
|
|||
# Please do not modify or remove "<a>" and "</a>".
|
||||
confirmation-3-body = Yeni parolanız benzersiz, güçlü ve tahmin edilmesi zor mu? <a>Öğrenin</a>
|
||||
generic-confirmation-subhead = Bu ihlal çözüldü olarak işaretlendi
|
||||
# Variables:
|
||||
# $numUnresolvedBreaches (Integer) - Number of resolved breaches
|
||||
generic-confirmation-message =
|
||||
{ $numUnresolvedBreaches ->
|
||||
[one] Kalan ihlali görmek için kontrol panelinize gidin.
|
||||
|
@ -449,9 +491,13 @@ return-to-breach-details-link = İhlal ayrıntılarına dön
|
|||
go-to-dashboard-link = Panoya git
|
||||
# This string appears above a breach resolution progress bar and indicates
|
||||
# the percentage of breaches a user has resolved. For instance, "27% complete".
|
||||
# Variables:
|
||||
# $percentComplete (String) - Completion percentage
|
||||
progress-percent-complete = %{ $percentComplete } tamamlandı
|
||||
# This string appears in the purple callouts at the top of the user dashboard and shows
|
||||
# the total number of breaches a user has resolved. For instance, "5 Resolved".
|
||||
# Variables:
|
||||
# $numResolvedBreaches (Integer) - Number of resolved breaches
|
||||
num-resolved =
|
||||
{ $numResolvedBreaches ->
|
||||
[one] { $numResolvedBreaches } çözüldü
|
||||
|
@ -461,6 +507,9 @@ progress-intro-subhead = Yeni { -product-name } özelliği: İhlalleri "çözül
|
|||
progress-intro-message =
|
||||
Bir ihlalle ilgili ayrıntıları inceleyip kişisel bilgilerinizi korumak için gereken adımları attıktan sonra
|
||||
o ihlali “çözüldü” olarak işaretleyebilirsiniz.
|
||||
# Variables:
|
||||
# $numResolvedBreaches (Integer) - Number of resolved breaches
|
||||
# $numTotalBreaches (Integer) - Total number of breaches
|
||||
progress-status =
|
||||
{ $numTotalBreaches ->
|
||||
[one] { $numTotalBreaches } ihlalden { $numResolvedBreaches } tanesi çözüldü olarak işaretlendi
|
||||
|
@ -484,16 +533,20 @@ progress-complete-message = <span>Hoşunuza gitti mi?</span> Vaktiniz varsa şim
|
|||
##
|
||||
|
||||
resolve-this-breach-link = Bu ihlali çöz
|
||||
# This string appears in resolved breach cards and is followed by
|
||||
# This string appears in resolved breach cards and is followed by
|
||||
# the date the user marked the breach as resolved.
|
||||
marked-resolved = Çözüldü olarak işaretlendi:
|
||||
hide-resolved-button = Çözülenleri gizle
|
||||
show-resolved-button = Çözülenleri göster
|
||||
# Variables:
|
||||
# $numPasswords (Integer) - Number of exposed passwords
|
||||
unresolved-passwords-exposed =
|
||||
{ $numPasswords ->
|
||||
[one] parola çözülmemiş ihlallerde ele geçirildi
|
||||
*[other] parola çözülmemiş ihlallerde ele geçirildi
|
||||
}
|
||||
# Variables:
|
||||
# $numResolvedBreaches (Integer) - Number of resolved breaches
|
||||
known-data-breaches-resolved =
|
||||
{ $numResolvedBreaches ->
|
||||
[one] veri ihlali “çözüldü” olarak işaretlendi
|
||||
|
@ -524,7 +577,10 @@ vpn-promo-copy-new = Çevrimiçi verilerinizi koruyun. Size en uygun VPN aboneli
|
|||
|
||||
## VPN promotional banner. HTML tags should not be translated, e.g. `<em>`
|
||||
|
||||
# user's IP location is determined dynamically by 3rd-party, eg: "Your location: Los Angeles, CA". The 3rd-party service provides its own localization.
|
||||
# Variables:
|
||||
# $ip-location (String) - User's IP location is determined dynamically by 3rd-party,
|
||||
# eg: "Your location: Los Angeles, CA". The 3rd-party service
|
||||
# provides its own localization.
|
||||
vpn-banner-location = Konumunuz: { $ip-location }
|
||||
vpn-banner-protect-yourself-with-vpn = { -brand-mozilla-vpn } ile <em>kendinizi koruyun</em>.
|
||||
vpn-banner-protected-with-vpn = { -brand-mozilla-vpn } ile <em>korunuyorsunuz</em>.
|
||||
|
@ -533,7 +589,8 @@ vpn-banner-title-2 = VPN kullanmıyorsanız konumunuz takip edilebilir.
|
|||
vpn-banner-subtitle-2 = 3 adımda konumunuzu gizleyin ve güvenle gezinin
|
||||
vpn-banner-status-protected = Mevcut durum: <em>Korunuyor ✓</em>
|
||||
vpn-banner-status-not-protected = Mevcut durum: <em>Korunmuyor ⚠</em>
|
||||
# user's IP address is determined dynamically, eg: "IP address: 192.168.1.1"
|
||||
# Variables:
|
||||
# $ip-address (String) - User's IP address is determined dynamically, eg: "IP address: 192.168.1.1"
|
||||
vpn-banner-ip-address = IP adresi: { $ip-address }
|
||||
vpn-banner-step-1 = { -brand-mozilla-vpn }’e abone olun
|
||||
vpn-banner-step-2 = VPN konumunu seçin
|
||||
|
@ -592,6 +649,8 @@ ad-unit-6-before-you-complete = Siteye kaydolurken bilgilerinizi korumak ve gele
|
|||
-brand-mozilla = Mozilla
|
||||
-brand-mozilla-foundation = Mozilla Vakfı
|
||||
-brand-github = GitHub
|
||||
-brand-mozilla-vpn = Mozilla VPN
|
||||
-brand-relay = Firefox Relay
|
||||
|
||||
##
|
||||
|
||||
|
@ -613,6 +672,10 @@ sign-in = Giriş yap
|
|||
site-nav-breaches-link = Veri ihlallerini çöz
|
||||
site-nav-settings-link = Ayarlar
|
||||
site-nav-help-link = Yardım ve destek
|
||||
# This call-out is above 2 image links for Firefox Relay and Mozilla VPN
|
||||
site-nav-ad-callout = Diğer güvenlik araçlarımızı deneyin:
|
||||
brand-relay = { -brand-relay }
|
||||
brand-mozilla-vpn = { -brand-mozilla-vpn }
|
||||
|
||||
## User menu
|
||||
|
||||
|
@ -626,9 +689,10 @@ menu-item-logout = Çıkış yap
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Şartlar ve gizlilik
|
||||
github = { -brand-github }
|
||||
footer-nav-all-breaches = Tüm ihlaller
|
||||
|
||||
## Error page
|
||||
|
||||
|
@ -641,3 +705,15 @@ error-page-error-404-cta-button = Geri dön
|
|||
# $errorCode (number) - the status code of the error, e.g. 403
|
||||
error-page-error-other-title = { $errorCode } Bir hata oluştu
|
||||
error-page-error-other-copy = Lütfen daha sonra tekrar deneyin
|
||||
|
||||
## Breach overview page
|
||||
|
||||
all-breaches-headline-2 = { -brand-fx-monitor } tarafından tespit edilen tüm ihlaller
|
||||
search-breaches = İhlallerde ara
|
||||
# the kind of user data exposed to hackers in data breach.
|
||||
exposed-data = Ele geçirilen veriler:
|
||||
|
||||
## Public breach detail page
|
||||
|
||||
find-out-if-2 = Bu ihlale karışıp karışmadığınızı öğrenin
|
||||
breach-detail-cta-signup = İhlalleri kontrol et
|
||||
|
|
|
@ -12,9 +12,6 @@ rec-ssn =
|
|||
rec-pw-1-subhead = Parolanızı değiştirin
|
||||
# Link title
|
||||
rec-pw-1-cta = Bu sitedeki parolanızı değiştirin
|
||||
rec-pw-1 =
|
||||
Benzersiz ve başka yerlerde kullanmadığınız bir parola seçin.
|
||||
Birbiriyle ilgisiz iki veya daha fazla kelimeyi birleştirerek iyi bir parola oluşturabilirsiniz.
|
||||
# Recommendation subhead
|
||||
rec-pw-2-subhead = Aynı parolayı kullanan diğer hesaplarınızı güncelleyin
|
||||
# Link title
|
||||
|
@ -51,21 +48,9 @@ rec-email-mask-subhead = Bir e-posta maskesi kullanın
|
|||
rec-email-cta = { -brand-relay }’i deneyin
|
||||
rec-email = Gerçek e-posta adresinizi vermek, hacker’ların ve botların parolalarınızı bulmasını ve sizi hedef almasını kolaylaştırır { -brand-relay } gerçek e-posta adresinizi gizler ve gelen e-postaları gerçek gelen kutunuza iletir.
|
||||
# Recommendation subhead
|
||||
rec-ip-subhead = IP adresinizi gizleyen bir servis kullanın
|
||||
# Link title
|
||||
rec-ip-us-cta = { -brand-fpn }'i deneyin
|
||||
rec-ip-us =
|
||||
IP adresiniz konumunuzu ve internet servis sağlayıcısınızı açığa çıkarır. { -brand-fpn } gibi bir hizmeti kullanarak
|
||||
IP adresinizi maskeleyip konumunuzu gizleyebilirsiniz.
|
||||
rec-ip-non-us =
|
||||
İnternet Protokolü adresiniz (IP adresi) konumunuzu ve internet servis
|
||||
sağlayıcınızı belirler. Sanal özel ağ (VPN) ile konumunuzu gizleyebilir ve
|
||||
IP adresinizi maskeleyebilirsiniz.
|
||||
rec-ip-subhead-2 = VPN kullanarak IP adresinizi gizleyin
|
||||
# Recommendation subhead
|
||||
rec-moz-vpn-cta = { -brand-mozilla-vpn }’i deneyin
|
||||
rec-moz-vpn-update =
|
||||
IP adresiniz konumunuzu ve internet servis sağlayıcısınızı açığa çıkarabilir. { -brand-mozilla-vpn } gibi bir hizmeti kullanarak
|
||||
IP adresinizi ve cihazınızın konumunu gizleyebilirsiniz.
|
||||
rec-hist-pw-subhead = Aynı parolayı başka yerlerde kullanmayın
|
||||
# Link title
|
||||
rec-hist-pw-cta-fx = { -brand-name } hesaplarınızı görüntüleyin
|
||||
|
|
|
@ -793,7 +793,7 @@ menu-item-logout = Вийти
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Умови та приватність
|
||||
github = { -brand-github }
|
||||
footer-nav-all-breaches = Усі витоки
|
||||
|
@ -813,6 +813,7 @@ error-page-error-other-copy = Спробуйте ще раз або поверн
|
|||
## Breach overview page
|
||||
|
||||
all-breaches-headline-2 = Усі витоки, виявлені { -brand-fx-monitor }
|
||||
all-breaches-lead = Ми відстежуємо всі відомі витоки даних, щоб з’ясувати, чи була скомпрометована ваша особиста інформація. Ось повний список усіх витоків, про які було повідомлено з 2007 року.
|
||||
search-breaches = Пошук витоків
|
||||
# the kind of user data exposed to hackers in data breach.
|
||||
exposed-data = Дата витоку:
|
||||
|
|
|
@ -678,7 +678,7 @@ menu-item-logout = Đăng xuất
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = Điều khoản & quyền riêng tư
|
||||
github = { -brand-github }
|
||||
|
||||
|
|
|
@ -589,7 +589,7 @@ menu-item-logout = 退出
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = 使用条款和隐私
|
||||
github = { -brand-github }
|
||||
|
||||
|
|
|
@ -15,8 +15,6 @@
|
|||
-brand-lockwise = Firefox Lockwise
|
||||
-brand-send = Firefox Send
|
||||
-brand-fpn = Firefox Private Network
|
||||
-brand-mozilla-vpn = Mozilla VPN
|
||||
-brand-relay = Firefox Relay
|
||||
|
||||
##
|
||||
|
||||
|
@ -37,6 +35,9 @@ user-add-invalid-email = 無效的電子郵件地址
|
|||
user-add-too-many-emails = 已達可監控的 E-Mail 信箱最大數量。
|
||||
user-add-email-verify-subject = { -product-name } 訂閱確認
|
||||
user-add-duplicate-email = 此帳號已經加入 { -product-name }。
|
||||
# Variables:
|
||||
# $preferencesLink (String) - Link to preferences
|
||||
# $userEmail (String) - User email address
|
||||
user-add-duplicate-email-part-2 = 請到您的 { $preferencesLink } 檢查 { $userEmail } 的目前狀態。
|
||||
error-headline = 錯誤
|
||||
user-verify-token-error = 缺少驗證 token。
|
||||
|
@ -50,11 +51,11 @@ scan-placeholder = 輸入電子郵件地址
|
|||
scan-submit = 搜尋您的電子郵件地址
|
||||
scan-error = 必須是有效的電子郵件地址。
|
||||
download-firefox-banner-button = 下載 { -brand-name }
|
||||
# Appears after Firefox Monitor has sent a verification email to a new user.
|
||||
# Appears after Firefox Monitor has sent a verification email to a new user.
|
||||
signup-modal-sent = 已送出!
|
||||
sign-up = 訂閱
|
||||
form-signup-error = 必須是有效的電子郵件地址
|
||||
# breach-date = the calendar date a particular data theft occurred.
|
||||
# breach-date = the calendar date a particular data theft occurred.
|
||||
breach-date = 發生日期:
|
||||
# compromised accounts = the total number of user accounts exposed in data breach
|
||||
compromised-accounts = 洩漏帳號數量:
|
||||
|
@ -64,6 +65,8 @@ unsub-headline = 取消訂閱 { -product-name-nowrap }
|
|||
unsub-blurb = 將會從 { -product-name-nowrap } 郵寄清單把您的信箱移除,您不會再於有新的資料外洩事件發生時收到警報。
|
||||
unsub-button = 取消訂閱
|
||||
# Breach data provided by Have I Been Pwned.
|
||||
# Variables:
|
||||
# $hibp-link (String) - Link to Have I Been Pwned
|
||||
hibp-attribution = 資料外洩情況由 { $hibp-link } 提供
|
||||
share-twitter = 一般人大約有 100 組線上帳號,您有任何帳號遭到資料外洩事故影響嗎?快來檢查看看。
|
||||
share-facebook-headline = 看看您的帳號是否也在資料外洩事件當中
|
||||
|
@ -94,8 +97,6 @@ preferences = 偏好設定
|
|||
# Link title
|
||||
home = 首頁
|
||||
# Link title
|
||||
breaches = 外洩事件
|
||||
# Link title
|
||||
security-tips = 安全小秘訣
|
||||
fxa-account = { -brand-fxa }
|
||||
# Aria button message to open menu. "Open Firefox Account Navigation"
|
||||
|
@ -166,7 +167,9 @@ feat-security-tips = 保護資料的安全小秘訣
|
|||
feat-sensitive = 進階搜尋敏感資料外洩事件
|
||||
feat-enroll-multiple = 註冊多組 E-Mail 信箱,來監控外洩事件
|
||||
# This string is shown beneath each of the user’s email addresses to indicate
|
||||
# how many known breaches that email address was found in.
|
||||
# how many known breaches that email address was found in.
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
appears-in-x-breaches =
|
||||
{ $breachCount ->
|
||||
*[other] 出現在 { $breachCount } 場已知的外洩事件中。
|
||||
|
@ -177,6 +180,8 @@ get-email-alerts = 確保安全: 當您的資訊出現在已知的資料外洩
|
|||
search-for-your-email = 搜尋自 2007 年起的公開資料外洩事故當中,是否包含您的電子郵件帳號。
|
||||
back-to-top = 回到頁面頂端
|
||||
comm-opt-0 = 當下列我的任一個電子郵件信箱地址出現在資料外洩事故時,發信通知我。
|
||||
# Variables:
|
||||
# $primaryEmail (String) - User primary email address
|
||||
comm-opt-1 = 將所有外洩警報發送到 { $primaryEmail }。
|
||||
stop-monitoring-this = 停止監控此信箱。
|
||||
resend-verification = 重寄驗證信
|
||||
|
@ -185,7 +190,7 @@ send-verification = 寄送驗證鏈結
|
|||
# This string is a header on the user preferences page and
|
||||
# appears above a check-box list of user options which allow
|
||||
# the user to choose whether or not they want to receive breach
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# email address.
|
||||
breach-summary = 外洩事件摘要
|
||||
show-breaches-for-this-email = 顯示所有與這個信箱相關的資料外洩事件。
|
||||
|
@ -196,8 +201,15 @@ remove-fxm-blurb = 關閉 { -product-name } 的警報。您的 { -brand-fxa }
|
|||
manage-email-addresses = 管理電子郵件地址
|
||||
# Link title
|
||||
latest-breach-link = 看看您是不是也在這場資料外洩事件當中
|
||||
|
||||
## Variables:
|
||||
## $userName (String) - Username
|
||||
|
||||
welcome-back = { $userName },歡迎回來!
|
||||
welcome-user = { $userName },歡迎!
|
||||
|
||||
##
|
||||
|
||||
breach-alert-subject = { -product-name } 發現您的信箱出現在新的資料外洩事件中。
|
||||
your-info-was-discovered-headline = 在新的資料外洩事件中發現了您的資訊。
|
||||
your-info-was-discovered-blurb = 您註冊過當 E-Mail 出現在新的資料外洩事件時,要接收 { -product-name } 警報。以下是我們關於這場事件所了解的資訊。
|
||||
|
@ -211,28 +223,38 @@ ba-next-step-blurb-3 = 使用密碼管理員來建立強而獨特的密碼,並
|
|||
faq1 = 我不認識這家公司或網站,為什麼我跟這個外洩事件有關係?
|
||||
faq2 = 為什麼花了這麼久才通知我有資料外洩事件?
|
||||
faq3 = 我怎麼知道這封信是真的來自 { -product-name }?
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
new-breaches-found =
|
||||
{ $breachCount ->
|
||||
*[other] 找到 { $breachCount } 場新的資料外洩事件
|
||||
}
|
||||
sign-up-headline-1 = 註冊 { -brand-fxa },取得資料外洩警報。
|
||||
account-not-required = 不需要註冊 { -brand-fxa } 也能使用 { -brand-name } 瀏覽器。您可能會收到有關 { -brand-Mozilla } 相關服務的資訊。
|
||||
|
||||
## Variables:
|
||||
## $breachName (String) - Number of the breach
|
||||
|
||||
was-your-info-exposed = 您的資訊是否出現在 { $breachName } 的資料外洩事件?
|
||||
find-out-if = 看看您的資料是否出現在這場外洩事件中。
|
||||
fb-not-comp = 這個信箱沒有出現在 { $breachName } 外洩事件。
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
other-breaches-found =
|
||||
{ $breachCount ->
|
||||
*[other] 但出現在其他 { $breachCount } 場外洩事件中。
|
||||
}
|
||||
fb-comp-only = 這個信箱出現在 { $breachName } 外洩事件。
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
fb-comp-and-others =
|
||||
{ $breachCount ->
|
||||
*[other] 這個信箱出現在 { $breachCount } 場外洩事件中,包含 { $breachName } 事件。
|
||||
}
|
||||
|
||||
##
|
||||
|
||||
no-other-breaches-found = 在基礎搜尋中沒有找到其他外洩事件。
|
||||
no-results-blurb = 很抱歉,我們的資料庫中沒有該外洩事件相關資料。
|
||||
all-breaches-headline = { -product-name } 的所有資料外洩事件
|
||||
search-breaches = 搜尋資料外洩事件
|
||||
# This string contains nested markup that is later used to style and link the text inside of it.
|
||||
# Please do not modify or remove "<a>", "</a>", "<span>" and "</span>".
|
||||
facebook-breach-note = <span>您的電子郵件地址看起來不在這次資料外洩事件當中,但您的手機號碼還是可能已遭洩漏。</span>Facebook 資料外洩事件當中某些遭外洩的帳號資料包含了手機號碼、部分個人資料,但沒有電子郵件地址。只要您曾經註冊過 Facebook 帳號,就算現在沒在使用,我們還是建議採取下列步驟來保護自己
|
||||
|
@ -279,6 +301,8 @@ known-data-breaches-exposed =
|
|||
}
|
||||
# Button
|
||||
see-additional-breaches = 看其它外洩事件
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
scan-results-known-breaches =
|
||||
{ $breachCount ->
|
||||
*[other] 此信箱出現於 { $breachCount } 場已知的資料外洩事件中。
|
||||
|
@ -286,6 +310,8 @@ scan-results-known-breaches =
|
|||
# This string is shown at the top of the scan results page and is followed
|
||||
# by the email address that the user searched.
|
||||
# In page, it reads "Results for: searchedEmail@monitor.com"
|
||||
# Variables:
|
||||
# $userEmail (String) - User email address
|
||||
results-for = { $userEmail } 的搜尋結果:
|
||||
other-monitored-emails = 其他監控的信箱
|
||||
email-verification-required = 需要驗證信箱
|
||||
|
@ -301,6 +327,8 @@ get-ongoing-breach-monitoring = 持續針對多組電子郵件信箱監控資料
|
|||
# This is a button and follows a headline reading "Was your info exposed in the ___ breach?"
|
||||
find-out = 找找看
|
||||
new-unsub-error = 您可以從任何一封 { -product-name } 寄出的郵件取消訂閱。
|
||||
# Variables:
|
||||
# $breachCount (Integer) - Number of breaches
|
||||
other-known-breaches-found =
|
||||
{ $breachCount ->
|
||||
*[other] 但它還出現於其他 { $breachCount } 場已知的外洩事件。
|
||||
|
@ -317,10 +345,12 @@ breach-overview-title = 概觀
|
|||
# $breachTitle is the name of the breached company or website.
|
||||
# $breachDate and $addedDate are calendar dates.
|
||||
breach-overview-new = { $breachTitle } 於 { $breachDate } 發生了資料外洩事件。事件發生並經過驗證後,已於 { $addedDate } 列入我們的資料庫。
|
||||
# Title appearing on the Preferences dashboard.
|
||||
# Title appearing on the Preferences dashboard.
|
||||
monitor-preferences = { -product-short-name } 偏好設定
|
||||
# When a user is signed in, this appears in the drop down menu
|
||||
# and is followed by the user's primary Firefox Account email.
|
||||
# When a user is signed in, this appears in the drop down menu
|
||||
# and is followed by the user's primary Firefox Account email.
|
||||
# Variables:
|
||||
# $userEmail (String) - User email address
|
||||
signed-in-as = 已登入為: { $userEmail }
|
||||
# Appears on the All Breaches page and is followed by a list of filter options
|
||||
# that a user can filter the visible breaches by.
|
||||
|
@ -337,12 +367,16 @@ email-sent = 郵件已寄出!
|
|||
want-to-add = 想加入另一個信箱嗎?
|
||||
# This is part of a confirmation message that appears after a user has submitted
|
||||
# the form to add an additional email to Firefox Monitor.
|
||||
# Variables:
|
||||
# $userEmail (String) - User email address
|
||||
verify-the-link = 請到 { $userEmail } 收信,點擊當中的驗證連結,即可加入 { -product-name }。
|
||||
|
||||
## These are part of a confirmation page that appears after a user has verified
|
||||
## an additional email to Firefox Monitor.
|
||||
|
||||
email-verified = 成功驗證 E-Mail!
|
||||
# Variables:
|
||||
# $email (String) - User email address
|
||||
email-added-to-subscription = 若 { $email } 未來出現在資料外洩事件中,我們會通知您。
|
||||
# This message is displayed after the user has verified their email address.
|
||||
# { $nestedSignInLink } is replaced by a link, using sign-in-nested as text ("sign in" for English).
|
||||
|
@ -356,15 +390,17 @@ sign-in-nested = 請登入
|
|||
# form to add an additional email to Firefox Monitor. { $preferencesLink } is a link
|
||||
# to the Preferences page. The code and text for the link is generated elsewhere
|
||||
# using the { preferences } string.
|
||||
# Variables:
|
||||
# $preferencesLink (String) - Link to preferences
|
||||
manage-all-emails = 於 { $preferencesLink } 管理所有電子郵件地址。
|
||||
# This string is a header on the user preferences page and
|
||||
# appears above a check-box list of user options which allow
|
||||
# the user to choose whether or not they want to receive breach
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# alerts for all of their monitored email addresses to a single
|
||||
# email address.
|
||||
breach-alert-notifications = 資料外洩警報通知
|
||||
# This string is a label for the calendar date a breach is added to the database
|
||||
# and is followed by that date.
|
||||
# and is followed by that date.
|
||||
breach-added-label = 事件紀錄時間:
|
||||
how-hackers-work-desc = 保護您的密碼不受網路犯罪侵害,這是他們最關心的議題。
|
||||
what-to-do-after-breach-desc = 鎖定帳號,讓您的個人資料不落入他人之手。
|
||||
|
@ -386,7 +422,11 @@ see-additional-recs = 看其他建議
|
|||
## This string contains nested markup that becomes a link later in the code.
|
||||
## Please do not modify or remove "<a>" and "</a>".
|
||||
|
||||
# Variables:
|
||||
# $affectedEmail (String) - User email address
|
||||
resolve-top-notification = { $affectedEmail } 出現在這場資料外洩事件中。<a>接下來該怎麼辦</a>
|
||||
# Variables:
|
||||
# $numAffectedEmails (Integer) - Number of affected email address
|
||||
resolve-top-notification-plural =
|
||||
{ $numAffectedEmails ->
|
||||
*[other] 您有 { $numAffectedEmails } 組信箱出現在這場資料外洩事件中。<a>接下來該怎麼辦</a>
|
||||
|
@ -410,6 +450,8 @@ confirmation-3-subhead = 又搞定一個了,幹得好!
|
|||
# Please do not modify or remove "<a>" and "</a>".
|
||||
confirmation-3-body = 您的新密碼獨特、強大、又很難被猜到嗎?<a>了解更多</a>
|
||||
generic-confirmation-subhead = 已將此事件標示為已處理
|
||||
# Variables:
|
||||
# $numUnresolvedBreaches (Integer) - Number of resolved breaches
|
||||
generic-confirmation-message =
|
||||
{ $numUnresolvedBreaches ->
|
||||
*[other] 請到儀錶板確認還剩下哪些資料外洩事件。
|
||||
|
@ -418,15 +460,22 @@ return-to-breach-details-link = 回到事件詳情
|
|||
go-to-dashboard-link = 前往儀錶板
|
||||
# This string appears above a breach resolution progress bar and indicates
|
||||
# the percentage of breaches a user has resolved. For instance, "27% complete".
|
||||
# Variables:
|
||||
# $percentComplete (String) - Completion percentage
|
||||
progress-percent-complete = 完成 { $percentComplete }%
|
||||
# This string appears in the purple callouts at the top of the user dashboard and shows
|
||||
# the total number of breaches a user has resolved. For instance, "5 Resolved".
|
||||
# Variables:
|
||||
# $numResolvedBreaches (Integer) - Number of resolved breaches
|
||||
num-resolved =
|
||||
{ $numResolvedBreaches ->
|
||||
*[other] 已處理 { $numResolvedBreaches } 筆事件
|
||||
}
|
||||
progress-intro-subhead = { -product-name } 新功能: 將資料外洩事件標示為已處理
|
||||
progress-intro-message = 確認事件詳細資訊並採取行動保護自己的資料後,就可以將事件標示為「已處理」。
|
||||
# Variables:
|
||||
# $numResolvedBreaches (Integer) - Number of resolved breaches
|
||||
# $numTotalBreaches (Integer) - Total number of breaches
|
||||
progress-status =
|
||||
{ $numTotalBreaches ->
|
||||
*[other] 已處理 { $numResolvedBreaches } 場事件,共 { $numTotalBreaches } 場
|
||||
|
@ -445,15 +494,19 @@ progress-complete-message = <span>覺得很棒對不對?</span>若您想要繼
|
|||
##
|
||||
|
||||
resolve-this-breach-link = 處理過此次事件了
|
||||
# This string appears in resolved breach cards and is followed by
|
||||
# This string appears in resolved breach cards and is followed by
|
||||
# the date the user marked the breach as resolved.
|
||||
marked-resolved = 已標示為處理完成:
|
||||
hide-resolved-button = 隱藏處理過的事件
|
||||
show-resolved-button = 顯示處理過的事件
|
||||
# Variables:
|
||||
# $numPasswords (Integer) - Number of exposed passwords
|
||||
unresolved-passwords-exposed =
|
||||
{ $numPasswords ->
|
||||
*[other] 尚未處理的事件中,洩漏出的密碼組數
|
||||
}
|
||||
# Variables:
|
||||
# $numResolvedBreaches (Integer) - Number of resolved breaches
|
||||
known-data-breaches-resolved =
|
||||
{ $numResolvedBreaches ->
|
||||
*[other] 標示為已解決的資料外洩事件數
|
||||
|
@ -483,7 +536,10 @@ vpn-promo-copy-new = 保護您的線上資料 — 選擇適合您的 VPN 訂閱
|
|||
|
||||
## VPN promotional banner. HTML tags should not be translated, e.g. `<em>`
|
||||
|
||||
# user's IP location is determined dynamically by 3rd-party, eg: "Your location: Los Angeles, CA". The 3rd-party service provides its own localization.
|
||||
# Variables:
|
||||
# $ip-location (String) - User's IP location is determined dynamically by 3rd-party,
|
||||
# eg: "Your location: Los Angeles, CA". The 3rd-party service
|
||||
# provides its own localization.
|
||||
vpn-banner-location = 您的所在地點:{ $ip-location }
|
||||
vpn-banner-protect-yourself-with-vpn = 使用 { -brand-mozilla-vpn } <em>保護自己</em>。
|
||||
vpn-banner-protected-with-vpn = 使用 { -brand-mozilla-vpn } <em>保護</em>。
|
||||
|
@ -492,7 +548,8 @@ vpn-banner-title-2 = 若不使用 VPN,可能會被其他人追蹤到您的所
|
|||
vpn-banner-subtitle-2 = 只要三個步驟,快速保護您的位置資訊並安全上網
|
||||
vpn-banner-status-protected = 目前狀態:<em>保護中 ✓</em>
|
||||
vpn-banner-status-not-protected = 目前狀態:<em>未受保護 ⚠</em>
|
||||
# user's IP address is determined dynamically, eg: "IP address: 192.168.1.1"
|
||||
# Variables:
|
||||
# $ip-address (String) - User's IP address is determined dynamically, eg: "IP address: 192.168.1.1"
|
||||
vpn-banner-ip-address = IP 位置:{ $ip-address }
|
||||
vpn-banner-step-1 = 訂閱 { -brand-mozilla-vpn }
|
||||
vpn-banner-step-2 = 選擇 VPN 地點
|
||||
|
@ -551,6 +608,8 @@ ad-unit-6-before-you-complete = 您下次註冊帳號時,可使用轉寄信箱
|
|||
-brand-mozilla = Mozilla
|
||||
-brand-mozilla-foundation = Mozilla Foundation
|
||||
-brand-github = GitHub
|
||||
-brand-mozilla-vpn = Mozilla VPN
|
||||
-brand-relay = Firefox Relay
|
||||
|
||||
##
|
||||
|
||||
|
@ -572,6 +631,10 @@ sign-in = 登入
|
|||
site-nav-breaches-link = 處理資料外洩事件
|
||||
site-nav-settings-link = 設定
|
||||
site-nav-help-link = 說明與技術支援
|
||||
# This call-out is above 2 image links for Firefox Relay and Mozilla VPN
|
||||
site-nav-ad-callout = 歡迎試用我們其他的安全工具:
|
||||
brand-relay = { -brand-relay }
|
||||
brand-mozilla-vpn = { -brand-mozilla-vpn }
|
||||
|
||||
## User menu
|
||||
|
||||
|
@ -585,9 +648,10 @@ menu-item-logout = 登出
|
|||
|
||||
## Footer
|
||||
|
||||
mozilla = { -brand-mozilla }
|
||||
mozilla = { -brand-Mozilla }
|
||||
terms-and-privacy = 使用條款及隱私權
|
||||
github = { -brand-github }
|
||||
footer-nav-all-breaches = 所有資料外洩事件
|
||||
|
||||
## Error page
|
||||
|
||||
|
@ -600,3 +664,17 @@ error-page-error-404-cta-button = 回上一頁
|
|||
# $errorCode (number) - the status code of the error, e.g. 403
|
||||
error-page-error-other-title = { $errorCode } 有些東西不對勁!
|
||||
error-page-error-other-copy = 請再試一次或稍後再回來
|
||||
|
||||
## Breach overview page
|
||||
|
||||
all-breaches-headline-2 = { -brand-fx-monitor } 偵測到的所有資料外洩事件
|
||||
all-breaches-lead = 我們會監控所有已知的資料外洩事件,檢查您的個人資訊是否已遭外流。以下是自 2007 年起,所有通報過的資料外洩事件的完整清單。
|
||||
search-breaches = 搜尋資料外洩事件
|
||||
# the kind of user data exposed to hackers in data breach.
|
||||
exposed-data = 外洩資料:
|
||||
|
||||
## Public breach detail page
|
||||
|
||||
find-out-if-2 = 看看是否您也遭此資料外洩事件影響
|
||||
find-out-if-description = 我們會幫助您快速確認電子郵件信箱是否也在此事件中外洩,並且了解接下來該做什麼。
|
||||
breach-detail-cta-signup = 檢查是否有外洩事件
|
||||
|
|
|
@ -10,7 +10,7 @@ rec-ssn =
|
|||
rec-pw-1-subhead = 更改密碼
|
||||
# Link title
|
||||
rec-pw-1-cta = 更改此網站的密碼
|
||||
rec-pw-1 = 使用獨特而不重複的密碼。一個好方式是結合多組不相關的文字成為密碼詞組。
|
||||
rec-pw-1-2 = 使用獨特而不重複的密碼。一個好方式是結合多組不相關的字母、英文詞彙、數字、特殊符號,成為密碼詞組。
|
||||
# Recommendation subhead
|
||||
rec-pw-2-subhead = 更新其他使用相同密碼的網站的登入資訊
|
||||
# Link title
|
||||
|
@ -38,14 +38,10 @@ rec-email-mask-subhead = 使用轉寄信箱
|
|||
rec-email-cta = 試用 { -brand-relay }
|
||||
rec-email = 給出您的實際電子郵件地址,會讓駭客或追蹤器更容易在網路上找到您或追蹤您。諸如 { -brand-relay } 的服務,可先代收電子郵件,再轉寄到您實際的信箱。
|
||||
# Recommendation subhead
|
||||
rec-ip-subhead = 使用可隱藏您的 IP 位置的服務
|
||||
# Link title
|
||||
rec-ip-us-cta = 試用 { -brand-fpn }
|
||||
rec-ip-us = 您的 IP 地址可以對映到所在位置與網路公司。使用類似 { -brand-fpn } 的服務則可以將 IP 位置隱藏起來,藉以隱藏您的所在位置。
|
||||
rec-ip-non-us = 您的 IP 地址可以對映到所在位置與網路公司。使用 VPN 服務則可以將 IP 位置隱藏起來,藉以隱藏您的所在位置。
|
||||
rec-ip-subhead-2 = 使用 VPN 來隱藏您的實際 IP 位置
|
||||
# Recommendation subhead
|
||||
rec-moz-vpn-cta = 試用 { -brand-mozilla-vpn }
|
||||
rec-moz-vpn-update = 您的 IP 地址可以對映到所在位置與網路公司。使用類似 { -brand-mozilla-vpn } 的服務則可以將 IP 位置隱藏起來,藉以隱藏您的所在位置。
|
||||
rec-moz-vpn-update-2 = 您的 IP 地址可以對映到所在位置與使用的網路業者。使用類似 { -brand-mozilla-vpn } 的服務則可以將 IP 位置隱藏起來,藉以隱藏您的實際所在位置。
|
||||
rec-hist-pw-subhead = 避免重複使用密碼
|
||||
# Link title
|
||||
rec-hist-pw-cta-fx = 到 { -brand-name } 檢視登入資訊
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
"git-rev-sync": "^3.0.2",
|
||||
"got": "11.8.5",
|
||||
"helmet": "4.2.0",
|
||||
"intl-pluralrules": "1.2.1",
|
||||
"intl-pluralrules": "1.3.1",
|
||||
"isemail": "3.2.0",
|
||||
"knex": "^2.2.0",
|
||||
"mozlog": "3.0.2",
|
||||
|
@ -45,6 +45,9 @@
|
|||
"uuid": "3.4.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/gtag.js": "^0.0.12",
|
||||
"@typescript-eslint/eslint-plugin": "^5.57.0",
|
||||
"@typescript-eslint/parser": "^5.57.0",
|
||||
"coveralls": "3.1.1",
|
||||
"eslint": "^8.15.0",
|
||||
"eslint-config-standard": "^17.0.0",
|
||||
|
@ -56,7 +59,8 @@
|
|||
"nodemon": "^2.0.20",
|
||||
"redis-mock": "^0.56.3",
|
||||
"stylelint": "^14.9.1",
|
||||
"stylelint-config-standard": "^26.0.0"
|
||||
"stylelint-config-standard": "^26.0.0",
|
||||
"typescript": "^5.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": "18.12.x",
|
||||
|
@ -726,6 +730,30 @@
|
|||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@eslint-community/eslint-utils": {
|
||||
"version": "4.4.0",
|
||||
"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
|
||||
"integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"eslint-visitor-keys": "^3.3.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@eslint-community/regexpp": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz",
|
||||
"integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": "^12.0.0 || ^14.0.0 || >=16.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@eslint/eslintrc": {
|
||||
"version": "1.4.1",
|
||||
"dev": true,
|
||||
|
@ -1579,6 +1607,12 @@
|
|||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/gtag.js": {
|
||||
"version": "0.0.12",
|
||||
"resolved": "https://registry.npmjs.org/@types/gtag.js/-/gtag.js-0.0.12.tgz",
|
||||
"integrity": "sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/http-cache-semantics": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz",
|
||||
|
@ -1607,6 +1641,12 @@
|
|||
"@types/istanbul-lib-report": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/json-schema": {
|
||||
"version": "7.0.11",
|
||||
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
|
||||
"integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/json5": {
|
||||
"version": "0.0.29",
|
||||
"dev": true,
|
||||
|
@ -1656,6 +1696,12 @@
|
|||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/semver": {
|
||||
"version": "7.3.13",
|
||||
"resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz",
|
||||
"integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/stack-utils": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
|
||||
|
@ -1681,6 +1727,407 @@
|
|||
"integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@typescript-eslint/eslint-plugin": {
|
||||
"version": "5.57.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.57.0.tgz",
|
||||
"integrity": "sha512-itag0qpN6q2UMM6Xgk6xoHa0D0/P+M17THnr4SVgqn9Rgam5k/He33MA7/D7QoJcdMxHFyX7U9imaBonAX/6qA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@eslint-community/regexpp": "^4.4.0",
|
||||
"@typescript-eslint/scope-manager": "5.57.0",
|
||||
"@typescript-eslint/type-utils": "5.57.0",
|
||||
"@typescript-eslint/utils": "5.57.0",
|
||||
"debug": "^4.3.4",
|
||||
"grapheme-splitter": "^1.0.4",
|
||||
"ignore": "^5.2.0",
|
||||
"natural-compare-lite": "^1.4.0",
|
||||
"semver": "^7.3.7",
|
||||
"tsutils": "^3.21.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/typescript-eslint"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@typescript-eslint/parser": "^5.0.0",
|
||||
"eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"typescript": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/eslint-plugin/node_modules/debug": {
|
||||
"version": "4.3.4",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
||||
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ms": "2.1.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"supports-color": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
||||
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"yallist": "^4.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/eslint-plugin/node_modules/ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": {
|
||||
"version": "7.3.8",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
|
||||
"integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"lru-cache": "^6.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"semver": "bin/semver.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
||||
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@typescript-eslint/parser": {
|
||||
"version": "5.57.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.57.0.tgz",
|
||||
"integrity": "sha512-orrduvpWYkgLCyAdNtR1QIWovcNZlEm6yL8nwH/eTxWLd8gsP+25pdLHYzL2QdkqrieaDwLpytHqycncv0woUQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/scope-manager": "5.57.0",
|
||||
"@typescript-eslint/types": "5.57.0",
|
||||
"@typescript-eslint/typescript-estree": "5.57.0",
|
||||
"debug": "^4.3.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/typescript-eslint"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"typescript": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/parser/node_modules/debug": {
|
||||
"version": "4.3.4",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
||||
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ms": "2.1.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"supports-color": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/parser/node_modules/ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@typescript-eslint/scope-manager": {
|
||||
"version": "5.57.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.57.0.tgz",
|
||||
"integrity": "sha512-NANBNOQvllPlizl9LatX8+MHi7bx7WGIWYjPHDmQe5Si/0YEYfxSljJpoTyTWFTgRy3X8gLYSE4xQ2U+aCozSw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "5.57.0",
|
||||
"@typescript-eslint/visitor-keys": "5.57.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/typescript-eslint"
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/type-utils": {
|
||||
"version": "5.57.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.57.0.tgz",
|
||||
"integrity": "sha512-kxXoq9zOTbvqzLbdNKy1yFrxLC6GDJFE2Yuo3KqSwTmDOFjUGeWSakgoXT864WcK5/NAJkkONCiKb1ddsqhLXQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/typescript-estree": "5.57.0",
|
||||
"@typescript-eslint/utils": "5.57.0",
|
||||
"debug": "^4.3.4",
|
||||
"tsutils": "^3.21.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/typescript-eslint"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"eslint": "*"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"typescript": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/type-utils/node_modules/debug": {
|
||||
"version": "4.3.4",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
||||
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ms": "2.1.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"supports-color": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/type-utils/node_modules/ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@typescript-eslint/types": {
|
||||
"version": "5.57.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.57.0.tgz",
|
||||
"integrity": "sha512-mxsod+aZRSyLT+jiqHw1KK6xrANm19/+VFALVFP5qa/aiJnlP38qpyaTd0fEKhWvQk6YeNZ5LGwI1pDpBRBhtQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/typescript-eslint"
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/typescript-estree": {
|
||||
"version": "5.57.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.57.0.tgz",
|
||||
"integrity": "sha512-LTzQ23TV82KpO8HPnWuxM2V7ieXW8O142I7hQTxWIHDcCEIjtkat6H96PFkYBQqGFLW/G/eVVOB9Z8rcvdY/Vw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "5.57.0",
|
||||
"@typescript-eslint/visitor-keys": "5.57.0",
|
||||
"debug": "^4.3.4",
|
||||
"globby": "^11.1.0",
|
||||
"is-glob": "^4.0.3",
|
||||
"semver": "^7.3.7",
|
||||
"tsutils": "^3.21.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/typescript-eslint"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"typescript": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/typescript-estree/node_modules/debug": {
|
||||
"version": "4.3.4",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
||||
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ms": "2.1.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"supports-color": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
||||
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"yallist": "^4.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/typescript-estree/node_modules/ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
|
||||
"version": "7.3.8",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
|
||||
"integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"lru-cache": "^6.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"semver": "bin/semver.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
||||
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@typescript-eslint/utils": {
|
||||
"version": "5.57.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.57.0.tgz",
|
||||
"integrity": "sha512-ps/4WohXV7C+LTSgAL5CApxvxbMkl9B9AUZRtnEFonpIxZDIT7wC1xfvuJONMidrkB9scs4zhtRyIwHh4+18kw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@eslint-community/eslint-utils": "^4.2.0",
|
||||
"@types/json-schema": "^7.0.9",
|
||||
"@types/semver": "^7.3.12",
|
||||
"@typescript-eslint/scope-manager": "5.57.0",
|
||||
"@typescript-eslint/types": "5.57.0",
|
||||
"@typescript-eslint/typescript-estree": "5.57.0",
|
||||
"eslint-scope": "^5.1.1",
|
||||
"semver": "^7.3.7"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/typescript-eslint"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/utils/node_modules/eslint-scope": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
|
||||
"integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"esrecurse": "^4.3.0",
|
||||
"estraverse": "^4.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/utils/node_modules/estraverse": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
|
||||
"integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/utils/node_modules/lru-cache": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
||||
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"yallist": "^4.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/utils/node_modules/semver": {
|
||||
"version": "7.3.8",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
|
||||
"integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"lru-cache": "^6.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"semver": "bin/semver.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/utils/node_modules/yallist": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
||||
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@typescript-eslint/visitor-keys": {
|
||||
"version": "5.57.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.57.0.tgz",
|
||||
"integrity": "sha512-ery2g3k0hv5BLiKpPuwYt9KBkAp2ugT6VvyShXdLOkax895EC55sP0Tx5L0fZaQueiK3fBLvHVvEl3jFS5ia+g==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "5.57.0",
|
||||
"eslint-visitor-keys": "^3.3.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/typescript-eslint"
|
||||
}
|
||||
},
|
||||
"node_modules/abab": {
|
||||
"version": "2.0.6",
|
||||
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
|
||||
|
@ -6016,9 +6463,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/intl-pluralrules": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/intl-pluralrules/-/intl-pluralrules-1.2.1.tgz",
|
||||
"integrity": "sha512-Wx7Pm3aQ5ME/PoDnkEaKAsLEuVNLbjN9cAiX8TUqvpob6WbExxA2x6kU/GJ403ptGMWOfcNGZKQTlg8q4fsInw=="
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/intl-pluralrules/-/intl-pluralrules-1.3.1.tgz",
|
||||
"integrity": "sha512-sNYPls1Q4fyN0EGLFVJ7TIuaMWln01LupLozfIBt69rHK0DHehghMSz6ejfnSklgRddnyQSEaQPIU6d9TCKH3w=="
|
||||
},
|
||||
"node_modules/ip-regex": {
|
||||
"version": "2.1.0",
|
||||
|
@ -7935,6 +8382,12 @@
|
|||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/natural-compare-lite": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
|
||||
"integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/negotiator": {
|
||||
"version": "0.6.3",
|
||||
"license": "MIT",
|
||||
|
@ -10646,6 +11099,21 @@
|
|||
"node": ">=0.6.x"
|
||||
}
|
||||
},
|
||||
"node_modules/tsutils": {
|
||||
"version": "3.21.0",
|
||||
"resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
|
||||
"integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"tslib": "^1.8.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
|
||||
}
|
||||
},
|
||||
"node_modules/tunnel-agent": {
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
||||
|
@ -10728,6 +11196,19 @@
|
|||
"is-typedarray": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/typescript": {
|
||||
"version": "5.0.2",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.2.tgz",
|
||||
"integrity": "sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"tsc": "bin/tsc",
|
||||
"tsserver": "bin/tsserver"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12.20"
|
||||
}
|
||||
},
|
||||
"node_modules/uglify-js": {
|
||||
"version": "3.17.4",
|
||||
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz",
|
||||
|
@ -11803,6 +12284,21 @@
|
|||
"version": "0.17.8",
|
||||
"optional": true
|
||||
},
|
||||
"@eslint-community/eslint-utils": {
|
||||
"version": "4.4.0",
|
||||
"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
|
||||
"integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"eslint-visitor-keys": "^3.3.0"
|
||||
}
|
||||
},
|
||||
"@eslint-community/regexpp": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz",
|
||||
"integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==",
|
||||
"dev": true
|
||||
},
|
||||
"@eslint/eslintrc": {
|
||||
"version": "1.4.1",
|
||||
"dev": true,
|
||||
|
@ -12435,6 +12931,12 @@
|
|||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"@types/gtag.js": {
|
||||
"version": "0.0.12",
|
||||
"resolved": "https://registry.npmjs.org/@types/gtag.js/-/gtag.js-0.0.12.tgz",
|
||||
"integrity": "sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/http-cache-semantics": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz",
|
||||
|
@ -12462,6 +12964,12 @@
|
|||
"@types/istanbul-lib-report": "*"
|
||||
}
|
||||
},
|
||||
"@types/json-schema": {
|
||||
"version": "7.0.11",
|
||||
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
|
||||
"integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/json5": {
|
||||
"version": "0.0.29",
|
||||
"dev": true
|
||||
|
@ -12509,6 +13017,12 @@
|
|||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"@types/semver": {
|
||||
"version": "7.3.13",
|
||||
"resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz",
|
||||
"integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/stack-utils": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
|
||||
|
@ -12533,6 +13047,263 @@
|
|||
"integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==",
|
||||
"dev": true
|
||||
},
|
||||
"@typescript-eslint/eslint-plugin": {
|
||||
"version": "5.57.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.57.0.tgz",
|
||||
"integrity": "sha512-itag0qpN6q2UMM6Xgk6xoHa0D0/P+M17THnr4SVgqn9Rgam5k/He33MA7/D7QoJcdMxHFyX7U9imaBonAX/6qA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@eslint-community/regexpp": "^4.4.0",
|
||||
"@typescript-eslint/scope-manager": "5.57.0",
|
||||
"@typescript-eslint/type-utils": "5.57.0",
|
||||
"@typescript-eslint/utils": "5.57.0",
|
||||
"debug": "^4.3.4",
|
||||
"grapheme-splitter": "^1.0.4",
|
||||
"ignore": "^5.2.0",
|
||||
"natural-compare-lite": "^1.4.0",
|
||||
"semver": "^7.3.7",
|
||||
"tsutils": "^3.21.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "4.3.4",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
||||
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ms": "2.1.2"
|
||||
}
|
||||
},
|
||||
"lru-cache": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
||||
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"yallist": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||
"dev": true
|
||||
},
|
||||
"semver": {
|
||||
"version": "7.3.8",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
|
||||
"integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"lru-cache": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"yallist": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
||||
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/parser": {
|
||||
"version": "5.57.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.57.0.tgz",
|
||||
"integrity": "sha512-orrduvpWYkgLCyAdNtR1QIWovcNZlEm6yL8nwH/eTxWLd8gsP+25pdLHYzL2QdkqrieaDwLpytHqycncv0woUQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@typescript-eslint/scope-manager": "5.57.0",
|
||||
"@typescript-eslint/types": "5.57.0",
|
||||
"@typescript-eslint/typescript-estree": "5.57.0",
|
||||
"debug": "^4.3.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "4.3.4",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
||||
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ms": "2.1.2"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/scope-manager": {
|
||||
"version": "5.57.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.57.0.tgz",
|
||||
"integrity": "sha512-NANBNOQvllPlizl9LatX8+MHi7bx7WGIWYjPHDmQe5Si/0YEYfxSljJpoTyTWFTgRy3X8gLYSE4xQ2U+aCozSw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@typescript-eslint/types": "5.57.0",
|
||||
"@typescript-eslint/visitor-keys": "5.57.0"
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/type-utils": {
|
||||
"version": "5.57.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.57.0.tgz",
|
||||
"integrity": "sha512-kxXoq9zOTbvqzLbdNKy1yFrxLC6GDJFE2Yuo3KqSwTmDOFjUGeWSakgoXT864WcK5/NAJkkONCiKb1ddsqhLXQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@typescript-eslint/typescript-estree": "5.57.0",
|
||||
"@typescript-eslint/utils": "5.57.0",
|
||||
"debug": "^4.3.4",
|
||||
"tsutils": "^3.21.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "4.3.4",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
||||
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ms": "2.1.2"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/types": {
|
||||
"version": "5.57.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.57.0.tgz",
|
||||
"integrity": "sha512-mxsod+aZRSyLT+jiqHw1KK6xrANm19/+VFALVFP5qa/aiJnlP38qpyaTd0fEKhWvQk6YeNZ5LGwI1pDpBRBhtQ==",
|
||||
"dev": true
|
||||
},
|
||||
"@typescript-eslint/typescript-estree": {
|
||||
"version": "5.57.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.57.0.tgz",
|
||||
"integrity": "sha512-LTzQ23TV82KpO8HPnWuxM2V7ieXW8O142I7hQTxWIHDcCEIjtkat6H96PFkYBQqGFLW/G/eVVOB9Z8rcvdY/Vw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@typescript-eslint/types": "5.57.0",
|
||||
"@typescript-eslint/visitor-keys": "5.57.0",
|
||||
"debug": "^4.3.4",
|
||||
"globby": "^11.1.0",
|
||||
"is-glob": "^4.0.3",
|
||||
"semver": "^7.3.7",
|
||||
"tsutils": "^3.21.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "4.3.4",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
||||
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ms": "2.1.2"
|
||||
}
|
||||
},
|
||||
"lru-cache": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
||||
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"yallist": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||
"dev": true
|
||||
},
|
||||
"semver": {
|
||||
"version": "7.3.8",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
|
||||
"integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"lru-cache": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"yallist": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
||||
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/utils": {
|
||||
"version": "5.57.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.57.0.tgz",
|
||||
"integrity": "sha512-ps/4WohXV7C+LTSgAL5CApxvxbMkl9B9AUZRtnEFonpIxZDIT7wC1xfvuJONMidrkB9scs4zhtRyIwHh4+18kw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@eslint-community/eslint-utils": "^4.2.0",
|
||||
"@types/json-schema": "^7.0.9",
|
||||
"@types/semver": "^7.3.12",
|
||||
"@typescript-eslint/scope-manager": "5.57.0",
|
||||
"@typescript-eslint/types": "5.57.0",
|
||||
"@typescript-eslint/typescript-estree": "5.57.0",
|
||||
"eslint-scope": "^5.1.1",
|
||||
"semver": "^7.3.7"
|
||||
},
|
||||
"dependencies": {
|
||||
"eslint-scope": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
|
||||
"integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"esrecurse": "^4.3.0",
|
||||
"estraverse": "^4.1.1"
|
||||
}
|
||||
},
|
||||
"estraverse": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
|
||||
"integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
|
||||
"dev": true
|
||||
},
|
||||
"lru-cache": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
||||
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"yallist": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"semver": {
|
||||
"version": "7.3.8",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
|
||||
"integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"lru-cache": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"yallist": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
||||
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/visitor-keys": {
|
||||
"version": "5.57.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.57.0.tgz",
|
||||
"integrity": "sha512-ery2g3k0hv5BLiKpPuwYt9KBkAp2ugT6VvyShXdLOkax895EC55sP0Tx5L0fZaQueiK3fBLvHVvEl3jFS5ia+g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@typescript-eslint/types": "5.57.0",
|
||||
"eslint-visitor-keys": "^3.3.0"
|
||||
}
|
||||
},
|
||||
"abab": {
|
||||
"version": "2.0.6",
|
||||
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
|
||||
|
@ -15422,9 +16193,9 @@
|
|||
"version": "2.2.0"
|
||||
},
|
||||
"intl-pluralrules": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/intl-pluralrules/-/intl-pluralrules-1.2.1.tgz",
|
||||
"integrity": "sha512-Wx7Pm3aQ5ME/PoDnkEaKAsLEuVNLbjN9cAiX8TUqvpob6WbExxA2x6kU/GJ403ptGMWOfcNGZKQTlg8q4fsInw=="
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/intl-pluralrules/-/intl-pluralrules-1.3.1.tgz",
|
||||
"integrity": "sha512-sNYPls1Q4fyN0EGLFVJ7TIuaMWln01LupLozfIBt69rHK0DHehghMSz6ejfnSklgRddnyQSEaQPIU6d9TCKH3w=="
|
||||
},
|
||||
"ip-regex": {
|
||||
"version": "2.1.0"
|
||||
|
@ -16847,6 +17618,12 @@
|
|||
"version": "1.4.0",
|
||||
"dev": true
|
||||
},
|
||||
"natural-compare-lite": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
|
||||
"integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
|
||||
"dev": true
|
||||
},
|
||||
"negotiator": {
|
||||
"version": "0.6.3"
|
||||
},
|
||||
|
@ -18645,6 +19422,15 @@
|
|||
"resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz",
|
||||
"integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA=="
|
||||
},
|
||||
"tsutils": {
|
||||
"version": "3.21.0",
|
||||
"resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
|
||||
"integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "^1.8.1"
|
||||
}
|
||||
},
|
||||
"tunnel-agent": {
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
||||
|
@ -18703,6 +19489,12 @@
|
|||
"is-typedarray": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"typescript": {
|
||||
"version": "5.0.2",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.2.tgz",
|
||||
"integrity": "sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==",
|
||||
"dev": true
|
||||
},
|
||||
"uglify-js": {
|
||||
"version": "3.17.4",
|
||||
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz",
|
||||
|
|
11
package.json
11
package.json
|
@ -27,7 +27,7 @@
|
|||
"git-rev-sync": "^3.0.2",
|
||||
"got": "11.8.5",
|
||||
"helmet": "4.2.0",
|
||||
"intl-pluralrules": "1.2.1",
|
||||
"intl-pluralrules": "1.3.1",
|
||||
"isemail": "3.2.0",
|
||||
"knex": "^2.2.0",
|
||||
"mozlog": "3.0.2",
|
||||
|
@ -39,6 +39,9 @@
|
|||
"uuid": "3.4.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/gtag.js": "^0.0.12",
|
||||
"@typescript-eslint/eslint-plugin": "^5.57.0",
|
||||
"@typescript-eslint/parser": "^5.57.0",
|
||||
"coveralls": "3.1.1",
|
||||
"eslint": "^8.15.0",
|
||||
"eslint-config-standard": "^17.0.0",
|
||||
|
@ -50,7 +53,8 @@
|
|||
"nodemon": "^2.0.20",
|
||||
"redis-mock": "^0.56.3",
|
||||
"stylelint": "^14.9.1",
|
||||
"stylelint-config-standard": "^26.0.0"
|
||||
"stylelint-config-standard": "^26.0.0",
|
||||
"typescript": "^5.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": "18.12.x",
|
||||
|
@ -89,7 +93,8 @@
|
|||
"docker:build": "docker build -t blurts-server .",
|
||||
"docker:run": "docker run -p 6060:6060 blurts-server",
|
||||
"lint": "npm run lint:css && npm run lint:js",
|
||||
"lint:js": "eslint .",
|
||||
"lint:js": "eslint src",
|
||||
"lint:ts": "tsc --noEmit",
|
||||
"lint:css": "stylelint public/css/",
|
||||
"lint:fluent": "moz-fluent-lint ./locales/en --config .github/linter_config.yml",
|
||||
"fix": "npm run fix:css && npm run fix:js",
|
||||
|
|
|
@ -53,6 +53,7 @@ const optionalEnvVars = [
|
|||
'SENTRY_DSN_LEGACY'
|
||||
]
|
||||
|
||||
/** @type {Record<string, string>} */
|
||||
const AppConstants = { }
|
||||
|
||||
if (!process.env.SERVER_URL && process.env.NODE_ENV === 'heroku') {
|
||||
|
@ -60,14 +61,16 @@ if (!process.env.SERVER_URL && process.env.NODE_ENV === 'heroku') {
|
|||
}
|
||||
|
||||
for (const v of requiredEnvVars) {
|
||||
if (process.env[v] === undefined) {
|
||||
const value = process.env[v]
|
||||
if (value === undefined) {
|
||||
throw new Error(`Required environment variable was not set: ${v}`)
|
||||
}
|
||||
AppConstants[v] = process.env[v]
|
||||
AppConstants[v] = value
|
||||
}
|
||||
|
||||
optionalEnvVars.forEach(key => {
|
||||
if (key in process.env) AppConstants[key] = process.env[key]
|
||||
const value = process.env[key]
|
||||
if (value) AppConstants[key] = value
|
||||
})
|
||||
|
||||
export default Object.freeze(AppConstants)
|
||||
|
|
|
@ -18,7 +18,6 @@ import '@sentry/tracing'
|
|||
import AppConstants from './app-constants.js'
|
||||
import { localStorage } from './utils/local-storage.js'
|
||||
import { errorHandler } from './middleware/error.js'
|
||||
import { doubleCsrfProtection } from './utils/csrf.js'
|
||||
import { initFluentBundles, updateLocale, getMessageWithLocale, getMessage } from './utils/fluent.js'
|
||||
import { loadBreachesIntoApp } from './utils/hibp.js'
|
||||
import { RateLimitError } from './utils/error.js'
|
||||
|
@ -175,7 +174,6 @@ app.use(noSearchEngineIndex)
|
|||
app.use(express.static(staticPath))
|
||||
app.use(express.json())
|
||||
app.use(cookieParser(AppConstants.COOKIE_SECRET))
|
||||
app.use(doubleCsrfProtection)
|
||||
|
||||
const apiLimiter = rateLimit({
|
||||
windowMs: 15 * 60 * 1000, // 15 minutes
|
||||
|
|
|
@ -13,8 +13,25 @@
|
|||
gap: var(--padding-md);
|
||||
}
|
||||
|
||||
.breach-detail-meta h2 {
|
||||
font: var(--h2-font);
|
||||
.breach-detail-meta h1 {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--padding-md);
|
||||
}
|
||||
|
||||
.breach-detail-meta .breach-logo {
|
||||
height: 32px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.breach-detail-meta span.breach-logo {
|
||||
line-height: 32px;
|
||||
width: 32px;
|
||||
border-radius: 32px;
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.breach-detail-meta-domain {
|
||||
|
|
|
@ -126,12 +126,17 @@ const styles = `
|
|||
</style>
|
||||
`
|
||||
|
||||
/**
|
||||
* @param {number} total
|
||||
* @param {number} value
|
||||
* @returns number
|
||||
*/
|
||||
const calcPercentage = (total, value) => {
|
||||
if (!total) {
|
||||
return 0
|
||||
}
|
||||
|
||||
return parseFloat((value / total).toFixed(3, 10))
|
||||
return parseFloat((value / total).toFixed(3))
|
||||
}
|
||||
|
||||
const html = () => `
|
||||
|
@ -140,6 +145,17 @@ const html = () => `
|
|||
`
|
||||
|
||||
customElements.define('circle-chart', class extends HTMLElement {
|
||||
/** @type {Array<{ key: string; name: string; color: string; count: number; }> | null} */
|
||||
data
|
||||
/** @type {Element | null | undefined} */
|
||||
chartElement
|
||||
/** @type {string} */
|
||||
showPercentFor
|
||||
/** @type {string} */
|
||||
title
|
||||
/** @type {SVGSVGElement | null} */
|
||||
svg
|
||||
|
||||
static get observedAttributes () {
|
||||
return [
|
||||
'data',
|
||||
|
@ -164,6 +180,11 @@ customElements.define('circle-chart', class extends HTMLElement {
|
|||
this.render()
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} name
|
||||
* @param {string} oldValue
|
||||
* @param {string} newValue
|
||||
*/
|
||||
attributeChangedCallback (name, oldValue, newValue) {
|
||||
if (newValue === 'undefined' || newValue === oldValue) {
|
||||
return
|
||||
|
@ -181,14 +202,16 @@ customElements.define('circle-chart', class extends HTMLElement {
|
|||
this.title = newValue
|
||||
break
|
||||
default:
|
||||
console.warning(`Unhandled attribute: ${name}`)
|
||||
console.warn(`Unhandled attribute: ${name}`)
|
||||
}
|
||||
}
|
||||
|
||||
composeCircles () {
|
||||
let sliceOffset = 0
|
||||
/** @type {string[]} */
|
||||
const init = []
|
||||
return `
|
||||
${this.data.reduce((acc, curr) => {
|
||||
${this.data?.reduce((acc, curr) => {
|
||||
const percentage = calcPercentage(this.total, curr.count)
|
||||
const innerRadius = this.showPercentFor !== '' ? 0.85 : 0
|
||||
const strokeLength = CHART_CIRCUMFERENCE * percentage
|
||||
|
@ -205,7 +228,7 @@ customElements.define('circle-chart', class extends HTMLElement {
|
|||
sliceOffset += percentage
|
||||
|
||||
return acc
|
||||
}, []).join('')}
|
||||
}, init).join('')}
|
||||
`
|
||||
}
|
||||
|
||||
|
@ -214,14 +237,14 @@ customElements.define('circle-chart', class extends HTMLElement {
|
|||
${this.title !== ''
|
||||
? `<strong class='circle-chart-title'>${this.title}</strong>`
|
||||
: ''}
|
||||
${this.data.map(({ name, color }) => (
|
||||
${this.data?.map(({ name, color }) => (
|
||||
`<label class='circle-chart-label' style='--color: ${color}'>${name}</label>`
|
||||
)).join('')}
|
||||
`
|
||||
}
|
||||
|
||||
createCircleLabel () {
|
||||
const relevantItem = this.data.find(d => d.key === this.showPercentFor)
|
||||
const relevantItem = this.data?.find(d => d.key === this.showPercentFor)
|
||||
if (!relevantItem) {
|
||||
return ''
|
||||
}
|
||||
|
@ -255,11 +278,15 @@ customElements.define('circle-chart', class extends HTMLElement {
|
|||
this.labels.innerHTML = this.createChartLabels()
|
||||
|
||||
// Add chart elements to DOM
|
||||
this.chartElement.append(this.svg)
|
||||
this.chartElement.append(this.labels)
|
||||
this.chartElement?.append(this.svg)
|
||||
this.chartElement?.append(this.labels)
|
||||
}
|
||||
|
||||
updateChart () {
|
||||
if (!this.svg || !this.labels) {
|
||||
return
|
||||
}
|
||||
|
||||
this.svg.innerHTML = `
|
||||
${this.composeCircles()}
|
||||
${this.createCircleLabel()}
|
||||
|
@ -278,7 +305,7 @@ customElements.define('circle-chart', class extends HTMLElement {
|
|||
|
||||
this.total = this.data.reduce((acc, curr) => acc + curr.count, 0)
|
||||
|
||||
this.chartElement.classList.add('updating')
|
||||
this.chartElement?.classList.add('updating')
|
||||
this.updateTimeout = setTimeout(() => {
|
||||
if (!this.svg) {
|
||||
this.createChart()
|
||||
|
@ -286,12 +313,14 @@ customElements.define('circle-chart', class extends HTMLElement {
|
|||
this.updateChart()
|
||||
}
|
||||
|
||||
this.chartElement.classList.remove('updating')
|
||||
this.chartElement?.classList.remove('updating')
|
||||
}, this.svg ? CHART_UPDATE_DURATION : 0)
|
||||
}
|
||||
|
||||
render () {
|
||||
this.shadowRoot.innerHTML = html()
|
||||
if (this.shadowRoot) {
|
||||
this.shadowRoot.innerHTML = html()
|
||||
}
|
||||
this.chartElement = this.shadowRoot.querySelector('.circle-chart')
|
||||
}
|
||||
})
|
||||
|
|
|
@ -56,17 +56,21 @@ const html = `
|
|||
`
|
||||
|
||||
customElements.define('custom-select', class extends HTMLElement {
|
||||
/** @type {HTMLSelectElement} */
|
||||
select
|
||||
|
||||
constructor () {
|
||||
super()
|
||||
this.attachShadow({ mode: 'open' })
|
||||
this.shadowRoot.innerHTML = html
|
||||
// @ts-ignore: We know that this will not return null
|
||||
this.select = this.shadowRoot.querySelector('select')
|
||||
this.options = this.querySelectorAll('option')
|
||||
|
||||
// move <option> elements into <select> (<slot> not permitted as <select> child)
|
||||
this.select.append(...this.options)
|
||||
this.setAttribute('value', this.select.value)
|
||||
this.setAttribute('selected-index', this.select.selectedIndex)
|
||||
this.setAttribute('selected-index', this.select.selectedIndex.toString())
|
||||
}
|
||||
|
||||
get value () {
|
||||
|
@ -79,15 +83,18 @@ customElements.define('custom-select', class extends HTMLElement {
|
|||
|
||||
connectedCallback () {
|
||||
this.matchOptionWidth()
|
||||
this.select.addEventListener('change', this)
|
||||
this.select?.addEventListener('change', this)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {InputEvent & { target: HTMLSelectElement }} e
|
||||
*/
|
||||
handleEvent (e) {
|
||||
switch (e.type) {
|
||||
case 'change':
|
||||
this.matchOptionWidth()
|
||||
this.setAttribute('value', e.target.value)
|
||||
this.setAttribute('selected-index', e.target.selectedIndex)
|
||||
this.setAttribute('selected-index', e.target.selectedIndex.toString())
|
||||
this.dispatchEvent(new Event('change'))
|
||||
break
|
||||
}
|
||||
|
@ -95,6 +102,7 @@ customElements.define('custom-select', class extends HTMLElement {
|
|||
|
||||
matchOptionWidth () {
|
||||
// update <select> width based on selected <option> (override fixed width based on largest <option>)
|
||||
/** @type {HTMLSelectElement & { w?: number }} */
|
||||
const temp = document.createElement('select')
|
||||
const selectedOption = this.options[this.select.selectedIndex]
|
||||
|
||||
|
|
|
@ -117,7 +117,7 @@ const html = `
|
|||
</output>
|
||||
`
|
||||
|
||||
const ToastTypes = {
|
||||
const ToastTypes = /** @type {const} */ {
|
||||
Error: 'error',
|
||||
Success: 'success'
|
||||
}
|
||||
|
@ -133,8 +133,9 @@ customElements.define('toast-alert', class extends HTMLElement {
|
|||
return this.getAttribute('ttl')
|
||||
}
|
||||
|
||||
/** @param {string | null} value */
|
||||
set ttl (value) {
|
||||
this.setAttribute('ttl', value)
|
||||
this.setAttribute('ttl', value ?? '')
|
||||
this.style.setProperty('--ttl', `${value}s`) // seconds before fade-out starts
|
||||
}
|
||||
|
||||
|
@ -142,17 +143,19 @@ customElements.define('toast-alert', class extends HTMLElement {
|
|||
return this.getAttribute('type')
|
||||
}
|
||||
|
||||
/** @param {string | null} value */
|
||||
set type (value) {
|
||||
const isValidType = Object.values(ToastTypes).includes(value)
|
||||
const isValidType = typeof value === 'string' && Object.values(ToastTypes).includes(value)
|
||||
if (!isValidType) {
|
||||
console.warning(`Unknown toast type ${value}.`)
|
||||
console.warn(`Unknown toast type ${value}.`)
|
||||
return
|
||||
}
|
||||
|
||||
this.setAttribute('type', value)
|
||||
}
|
||||
|
||||
connectedCallback () {
|
||||
const toasts = Array.from(document.querySelectorAll('toast-alert')).reverse()
|
||||
const toasts = /** @type {HTMLElement[]} */ (Array.from(document.querySelectorAll('toast-alert')).reverse())
|
||||
|
||||
for (let i = 1, y = 0; i < toasts.length; i++) {
|
||||
// start at index 1 to push old toasts down with aggregated toast heights plus 10px gap
|
||||
|
@ -174,13 +177,14 @@ customElements.define('toast-alert', class extends HTMLElement {
|
|||
this.addEventListener('animationend', this)
|
||||
}
|
||||
|
||||
/** @param {Event} e */
|
||||
handleEvent (e) {
|
||||
switch (true) {
|
||||
case e.target.matches('button'):
|
||||
case e.target instanceof HTMLElement && e.target.matches('button'):
|
||||
this.remove()
|
||||
window.gtag('event', 'toast_alert', { action: 'dismiss' })
|
||||
break
|
||||
case e.animationName === 'fade-out':
|
||||
case e instanceof AnimationEvent && e.animationName === 'fade-out':
|
||||
this.remove()
|
||||
window.gtag('event', 'toast_alert', { action: 'faded' })
|
||||
break
|
||||
|
|
|
@ -112,6 +112,7 @@ async function confirmed (req, res, next, client = FxAOAuthClient) {
|
|||
|
||||
const data = {
|
||||
breachedEmail: email,
|
||||
breachLogos: req.app.locals.breachLogoMap,
|
||||
ctaHref: getEmailCtaHref(utmCampaignId, 'dashboard-cta'),
|
||||
heading: getMessage('email-breach-summary'),
|
||||
recipientEmail: email,
|
||||
|
|
|
@ -31,6 +31,7 @@ async function breachDetailsPage (req, res) {
|
|||
const data = {
|
||||
partial: breachDetails,
|
||||
breach: featuredBreach,
|
||||
breachLogos: req.app.locals.breachLogoMap,
|
||||
nonce: res.locals.nonce
|
||||
}
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ import { getMessage } from '../utils/fluent.js'
|
|||
import { generateToken } from '../utils/csrf.js'
|
||||
import {
|
||||
EmailTemplateType,
|
||||
getNotifictionDummyData,
|
||||
getNotificationDummyData,
|
||||
getVerificationDummyData,
|
||||
getMonthlyDummyData,
|
||||
getSignupReportDummyData,
|
||||
|
@ -41,7 +41,7 @@ function getTemplatesData () {
|
|||
[EmailTemplateType.Notification]: {
|
||||
label: 'Breach notification',
|
||||
template: getPreviewTemplate(
|
||||
getNotifictionDummyData(EMAIL_TEST_RECIPIENT),
|
||||
getNotificationDummyData(EMAIL_TEST_RECIPIENT),
|
||||
breachAlertEmailPartial
|
||||
)
|
||||
},
|
||||
|
|
|
@ -151,6 +151,7 @@ async function notify (req, res) {
|
|||
if (!notifiedRecipients.includes(breachedEmail)) {
|
||||
const data = {
|
||||
breachData: breachAlert,
|
||||
breachLogos: req.app.locals.breachLogoMap,
|
||||
breachedEmail,
|
||||
ctaHref: getEmailCtaHref(utmCampaignId, 'dashboard-cta'),
|
||||
heading: getMessage('email-spotted-new-breach'),
|
||||
|
|
|
@ -11,6 +11,12 @@ function landingPage (req, res) {
|
|||
nonce: res.locals.nonce
|
||||
}
|
||||
|
||||
// Backward-compatibility with Monitor V1, for SEO.
|
||||
if (req.query.breach) {
|
||||
const breach = encodeURIComponent(req.query.breach)
|
||||
return res.redirect(`/breach-details/${breach}`)
|
||||
}
|
||||
|
||||
res.send(guestLayout(data))
|
||||
}
|
||||
|
||||
|
|
|
@ -29,6 +29,7 @@ import { getTemplate } from '../views/emails/email-2022.js'
|
|||
import { verifyPartial } from '../views/emails/email-verify.js'
|
||||
|
||||
async function settingsPage (req, res) {
|
||||
/** @type {Array<import('../db/tables/email_addresses.js').EmailRow>} */
|
||||
const emails = await getUserEmails(req.session.user.id)
|
||||
// Add primary subscriber email to the list
|
||||
emails.push({
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
interface HTMLElement {
|
||||
// We access this.shadowRoot in custom elements often, and we've almost always
|
||||
// already called this.attachShadow({ mode: 'open' }). So, the default type
|
||||
// that indicates that it might also be `null` generates a lot of noise for an
|
||||
// error that we haven't run into yet. Thus, we override the default type to
|
||||
// pretend that shadowRoot is always set.
|
||||
shadowRoot: ShadowRoot;
|
||||
}
|
|
@ -198,6 +198,17 @@ async function _verifyNewEmail (emailHash) {
|
|||
return verifiedEmail
|
||||
}
|
||||
|
||||
/**
|
||||
* @typedef {object} EmailRow Email data, as returned from the database table `email_addresses`
|
||||
* @property {string} email
|
||||
* @property {string} sha1
|
||||
* @property {boolean} verified
|
||||
*/
|
||||
|
||||
/**
|
||||
* @param {number} userId
|
||||
* @returns {Promise<EmailRow[]>}
|
||||
*/
|
||||
async function getUserEmails (userId) {
|
||||
const userEmails = await knex('email_addresses')
|
||||
.where('subscriber_id', '=', userId)
|
||||
|
|
|
@ -231,11 +231,12 @@ async function deleteResolutionsWithEmail (id, email) {
|
|||
})
|
||||
const { breach_resolution: breachResolution } = subscriber
|
||||
// if email exists in breach resolution, remove it
|
||||
if (breachResolution[email]) {
|
||||
if (breachResolution && breachResolution[email]) {
|
||||
delete breachResolution[email]
|
||||
console.info(`Deleting resolution with email: ${email}`)
|
||||
return await setBreachResolution(subscriber, breachResolution)
|
||||
}
|
||||
|
||||
return await setBreachResolution(subscriber, breachResolution)
|
||||
console.info(`No resolution with ${email} found, skip`)
|
||||
}
|
||||
|
||||
async function updateBreachStats (id, stats) {
|
||||
|
|
|
@ -19,20 +19,21 @@ import { dialog } from '../controllers/dialog.js'
|
|||
import { landingPage } from '../controllers/landing.js'
|
||||
import { notFoundPage } from '../controllers/notFound.js'
|
||||
import { notFound } from '../middleware/error.js'
|
||||
import { doubleCsrfProtection } from '../utils/csrf.js'
|
||||
|
||||
const router = express.Router()
|
||||
|
||||
router.get('/', landingPage)
|
||||
router.get('*/dialog/:name', dialog)
|
||||
|
||||
router.use('/', dockerFlowRoutes)
|
||||
router.use('/admin', adminRoutes)
|
||||
router.use('/admin', doubleCsrfProtection, adminRoutes)
|
||||
router.use('/api/v1/hibp/', hibpApiRoutes)
|
||||
router.use('/api/v1/user/', userApiRoutes)
|
||||
router.use('/oauth', authRoutes)
|
||||
router.use('/user', userRoutes)
|
||||
router.use('/breaches', breachesRoutes)
|
||||
router.use('/breach-details', breachDetailsRoutes)
|
||||
router.use('/api/v1/user/', doubleCsrfProtection, userApiRoutes)
|
||||
router.use('/oauth', doubleCsrfProtection, authRoutes)
|
||||
router.use('/user', doubleCsrfProtection, userRoutes)
|
||||
router.use('/breaches', doubleCsrfProtection, breachesRoutes)
|
||||
router.use('/breach-details', doubleCsrfProtection, breachDetailsRoutes)
|
||||
router.use('/', doubleCsrfProtection, dockerFlowRoutes)
|
||||
|
||||
// Do not make the non-auth previews available on prod
|
||||
if (AppConstants.NODE_ENV !== 'production') {
|
||||
|
|
|
@ -0,0 +1,91 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
/**
|
||||
* Executes once
|
||||
* The purpose of the script is to clean up some of the failed records during db migration on 3/28/23
|
||||
*/
|
||||
|
||||
import Knex from 'knex'
|
||||
import knexConfig from '../db/knexfile.js'
|
||||
import { getAllBreachesFromDb } from '../utils/hibp.js'
|
||||
import { getAllEmailsAndBreaches } from '../utils/breaches.js'
|
||||
import { setBreachResolution } from '../db/tables/subscribers.js'
|
||||
import mozlog from '../utils/log.js'
|
||||
const log = mozlog('script.migrationCleanup')
|
||||
const knex = Knex(knexConfig)
|
||||
|
||||
const LIMIT = 3000
|
||||
let subscribersArr = []
|
||||
// load all breaches for ref
|
||||
const allBreaches = await getAllBreachesFromDb()
|
||||
if (allBreaches && allBreaches.length > 0) log.info('breach_count', 'breaches loaded successfully! ', allBreaches.length)
|
||||
|
||||
const count = await knex
|
||||
.from('subscribers')
|
||||
.whereRaw('NOT ((breach_resolution)::jsonb \\? \'useBreachId\')')
|
||||
.count('*')
|
||||
|
||||
log.info('total_to_be_executed', count[0])
|
||||
|
||||
// find all subscribers who resolved any breaches in the past,
|
||||
// replace recency index with breach id
|
||||
|
||||
for (let i = 0; i < 10; i++) {
|
||||
subscribersArr = await knex
|
||||
.select('id', 'primary_email', 'breach_resolution')
|
||||
.from('subscribers')
|
||||
.orderBy('updated_at', 'desc')
|
||||
.whereRaw('NOT ((breach_resolution)::jsonb \\? \'useBreachId\')')
|
||||
.limit(LIMIT)
|
||||
|
||||
log.info('job', `Loaded # of subscribers: ${subscribersArr.length}`)
|
||||
|
||||
for (const subscriber of subscribersArr) {
|
||||
const { breach_resolution: v2 } = subscriber
|
||||
// console.debug({ v2 })
|
||||
|
||||
// if useBreachId is set, skip because this breach_resolution has already been worked on
|
||||
if (v2.useBreachId) {
|
||||
log.warn('job', 'Skipping since `useBreachId` is set already, this breach resolution is already converted')
|
||||
continue
|
||||
}
|
||||
|
||||
const newResolutions = {}
|
||||
|
||||
// fetch subscriber all breaches / email
|
||||
const subscriberBreachesEmail = await getAllEmailsAndBreaches(subscriber, allBreaches)
|
||||
// console.debug(JSON.stringify(subscriberBreachesEmail.verifiedEmails))
|
||||
|
||||
for (const email in v2) {
|
||||
// console.debug({ email })
|
||||
const resolutions = v2[email]
|
||||
// console.debug({ resolutions })
|
||||
newResolutions[email] = {}
|
||||
|
||||
for (const recencyIndex in resolutions) {
|
||||
console.debug({ recencyIndex })
|
||||
|
||||
// find subscriber's relevant recency index breach information
|
||||
const ve = subscriberBreachesEmail.verifiedEmails?.filter(ve => ve.email === email)[0] || {}
|
||||
const subBreach = ve.breaches?.filter(b => Number(b.recencyIndex) === Number(recencyIndex))[0] || null
|
||||
const breachName = subBreach?.Name
|
||||
console.debug({ breachName })
|
||||
|
||||
// find breach id for the breach
|
||||
const breachId = allBreaches.find(b => b.Name === breachName)?.Id
|
||||
log.info('job', { breachId })
|
||||
newResolutions[email][breachId] = v2[email][recencyIndex]
|
||||
}
|
||||
}
|
||||
|
||||
// check if v2 is changed, if so, upsert the new v2
|
||||
newResolutions.useBreachId = true
|
||||
await setBreachResolution(subscriber, newResolutions)
|
||||
}
|
||||
}
|
||||
|
||||
// breaking out of do..while loop
|
||||
log.info('job', 'Reaching the end of the table')
|
||||
process.exit()
|
|
@ -2,33 +2,67 @@
|
|||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
import AppConstants from '../app-constants.js'
|
||||
|
||||
/**
|
||||
* @param {object} breach
|
||||
* @param {Map<string, string>} logos Map of URLs to logos indexed by the domain name of the respective company
|
||||
* @returns {string} HTML for a breach logo (either an `img`, or a `span.breach-logo` containing the breached company's first letter)
|
||||
*/
|
||||
export function getBreachLogo (breach, logos) {
|
||||
const logo = logos.has(breach.Domain)
|
||||
? `<img src='${logos.get(breach.Domain)}' alt='' loading="lazy" class='breach-logo' height='32' />`
|
||||
: `<span role="img" aria-hidden='true' class='breach-logo' style='background-color: var(${getColorForName(breach.Name)});'>${breach.Name.substring(0, 1)}</span>`
|
||||
const logoIsAvailable = logos?.has(breach.Domain)
|
||||
|
||||
return logo
|
||||
if (logoIsAvailable) {
|
||||
return `<img src='${AppConstants.SERVER_URL}${logos.get(breach.Domain)}' alt='' loading="lazy" class='breach-logo' height='32' />`
|
||||
}
|
||||
|
||||
// Add CSS variable and a dedicated class for the logo placeholder
|
||||
// as fallback for emails
|
||||
const { className, variableName } = getColorForName(breach.Name)
|
||||
const classNames = `breach-logo breach-logo-email ${className}`
|
||||
const backgroundStyle = `background-color: var(${variableName});`
|
||||
|
||||
return `<span role="img" aria-hidden='true' class='${classNames}' style='${backgroundStyle}'>${breach.Name.substring(0, 1)}</span>`
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} name
|
||||
* @returns string CSS variable for a string-specific color
|
||||
* @returns {string} CSS variable for a string-specific color
|
||||
*/
|
||||
function getColorForName (name) {
|
||||
const logoColors = [
|
||||
'--blue-5',
|
||||
'--purple-5',
|
||||
'--green-05',
|
||||
'--violet-5',
|
||||
'--orange-5',
|
||||
'--yellow-5',
|
||||
'--red-5',
|
||||
'--pink-5'
|
||||
{
|
||||
className: 'bg-blue-5',
|
||||
variableName: '--blue-5'
|
||||
},
|
||||
{
|
||||
className: 'bg-purple-5',
|
||||
variableName: '--purple-5'
|
||||
},
|
||||
{
|
||||
className: 'bg-green-05',
|
||||
variableName: '--green-05'
|
||||
},
|
||||
{
|
||||
className: 'bg-violet-5',
|
||||
variableName: '--violet-5'
|
||||
},
|
||||
{
|
||||
className: 'bg-orange-5',
|
||||
variableName: '--orange-5'
|
||||
},
|
||||
{
|
||||
className: 'bg-yellow-5',
|
||||
variableName: '--yellow-5'
|
||||
},
|
||||
{
|
||||
className: 'bg-red-5',
|
||||
variableName: '--red-5'
|
||||
},
|
||||
{
|
||||
className: 'bg-pink-5',
|
||||
variableName: '--pink-5'
|
||||
}
|
||||
]
|
||||
|
||||
const charValue = name
|
||||
|
|
|
@ -210,13 +210,17 @@ async function unsubscribeFromMonthlyReport (req) {
|
|||
await updateMonthlyEmailOptout(urlQuery.token)
|
||||
}
|
||||
|
||||
const breachDummyLogo = new Map([
|
||||
['adobe.com', '/images/logo_cache/adobe.com.ico']
|
||||
])
|
||||
|
||||
/**
|
||||
* Dummy data for populating the breach notification email preview.
|
||||
*
|
||||
* @param {string} recipient
|
||||
* @returns {object} Breach dummy data
|
||||
*/
|
||||
const getNotifictionDummyData = (recipient) => ({
|
||||
const getNotificationDummyData = (recipient) => ({
|
||||
breachData: {
|
||||
Id: 1,
|
||||
Name: 'Adobe',
|
||||
|
@ -227,7 +231,6 @@ const getNotifictionDummyData = (recipient) => ({
|
|||
ModifiedDate: '2023-01-01T00:00:00.000Z',
|
||||
PwnCount: 123,
|
||||
Description: 'Example description',
|
||||
LogoPath: '/images/favicon-144.webp',
|
||||
DataClasses: [
|
||||
'email-addresses',
|
||||
'password-hints',
|
||||
|
@ -242,6 +245,7 @@ const getNotifictionDummyData = (recipient) => ({
|
|||
IsMalware: false
|
||||
},
|
||||
breachedEmail: recipient,
|
||||
breachLogos: breachDummyLogo,
|
||||
ctaHref: getEmailCtaHref('email-test-notification', 'dashboard-cta'),
|
||||
heading: getMessage('email-spotted-new-breach'),
|
||||
recipientEmail: recipient,
|
||||
|
@ -270,6 +274,7 @@ const getVerificationDummyData = (recipient) => ({
|
|||
*/
|
||||
const getMonthlyDummyData = (recipient) => ({
|
||||
breachedEmail: 'breached@email.com',
|
||||
breachLogos: breachDummyLogo,
|
||||
ctaHref: `${SERVER_URL}/user/breaches`,
|
||||
heading: getMessage('email-unresolved-heading'),
|
||||
monitoredEmails: {
|
||||
|
@ -294,7 +299,7 @@ const getMonthlyDummyData = (recipient) => ({
|
|||
|
||||
const getSignupReportDummyData = (recipient) => {
|
||||
const unsafeBreachesForEmail = [
|
||||
getNotifictionDummyData(recipient).breachData
|
||||
getNotificationDummyData(recipient).breachData
|
||||
]
|
||||
const breachesCount = unsafeBreachesForEmail.length
|
||||
const numPasswordsExposed = 1
|
||||
|
@ -316,6 +321,7 @@ const getSignupReportDummyData = (recipient) => {
|
|||
|
||||
return {
|
||||
breachedEmail: recipient,
|
||||
breachLogos: breachDummyLogo,
|
||||
ctaHref: getEmailCtaHref('email-test-notification', 'dashboard-cta'),
|
||||
heading: unsafeBreachesForEmail.length
|
||||
? getMessage('email-subject-found-breaches')
|
||||
|
@ -331,7 +337,7 @@ export {
|
|||
EmailTemplateType,
|
||||
getEmailCtaHref,
|
||||
getMonthlyDummyData,
|
||||
getNotifictionDummyData,
|
||||
getNotificationDummyData,
|
||||
getSignupReportDummyData,
|
||||
getUnsubscribeCtaHref,
|
||||
getVerificationDummyData,
|
||||
|
|
|
@ -47,6 +47,8 @@ test.serial('EmailUtils.init with SMTP URL invokes nodemailer.createTransport',
|
|||
const testSmtpUrl = 'smtps://test:test@test:1'
|
||||
const createTransport = {
|
||||
verify: td.func(),
|
||||
// A mocked function can be empty:
|
||||
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
||||
sendMail: (mailoptions, callback) => {}
|
||||
}
|
||||
|
||||
|
@ -77,6 +79,8 @@ test.serial('EmailUtils.sendEmail with recipient, subject, template, context cal
|
|||
|
||||
const createTransport = {
|
||||
verify: td.func(),
|
||||
// A mocked function can be empty:
|
||||
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
||||
use: () => {},
|
||||
sendMail: (_options, cb) => cb(null, 'sent'),
|
||||
transporter: { name: 'MockTransporter' }
|
||||
|
@ -111,6 +115,8 @@ test.serial('EmailUtils.sendEmail rejects with error', async t => {
|
|||
|
||||
const createTransport = {
|
||||
verify: td.func(),
|
||||
// A mocked function can be empty:
|
||||
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
||||
use: () => {},
|
||||
// eslint-disable-next-line n/no-callback-literal
|
||||
sendMail: (_options, cb) => cb('error', 'null'),
|
||||
|
|
|
@ -3,6 +3,9 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
class UserInputError extends Error {
|
||||
/**
|
||||
* @param {[string?]} params
|
||||
*/
|
||||
constructor (...params) {
|
||||
super(...params)
|
||||
this.statusCode = 400
|
||||
|
@ -10,6 +13,9 @@ class UserInputError extends Error {
|
|||
}
|
||||
|
||||
class UnauthorizedError extends Error {
|
||||
/**
|
||||
* @param {[string?]} params
|
||||
*/
|
||||
constructor (...params) {
|
||||
super(...params)
|
||||
this.statusCode = 403
|
||||
|
@ -17,6 +23,9 @@ class UnauthorizedError extends Error {
|
|||
}
|
||||
|
||||
class MethodNotAllowedError extends Error {
|
||||
/**
|
||||
* @param {[string?]} params
|
||||
*/
|
||||
constructor (...params) {
|
||||
super(...params)
|
||||
this.statusCode = 405
|
||||
|
@ -24,6 +33,9 @@ class MethodNotAllowedError extends Error {
|
|||
}
|
||||
|
||||
class RateLimitError extends Error {
|
||||
/**
|
||||
* @param {[string?]} params
|
||||
*/
|
||||
constructor (...params) {
|
||||
super(...params)
|
||||
this.statusCode = 429
|
||||
|
|
|
@ -11,6 +11,7 @@ import AppConstants from '../app-constants.js'
|
|||
import { localStorage } from './local-storage.js'
|
||||
|
||||
const supportedLocales = AppConstants.SUPPORTED_LOCALES?.split(',')
|
||||
/** @type {Record<string, FluentBundle>} */
|
||||
const fluentBundles = {}
|
||||
|
||||
/**
|
||||
|
@ -30,7 +31,7 @@ async function initFluentBundles () {
|
|||
|
||||
bundle.addResource(new FluentResource(str))
|
||||
}))
|
||||
} catch (e) {
|
||||
} catch (/** @type {any} */ e) {
|
||||
console.error('Could not read Fluent file:', e)
|
||||
throw new Error(e)
|
||||
}
|
||||
|
@ -46,7 +47,7 @@ async function initFluentBundles () {
|
|||
/**
|
||||
* Set the locale used for translations negotiated between requested and available
|
||||
*
|
||||
* @param {Array} requestedLocales - Locales requested by client.
|
||||
* @param {string[]} requestedLocales - Locales requested by client.
|
||||
*/
|
||||
function updateLocale (requestedLocales) {
|
||||
return negotiateLanguages(
|
||||
|
@ -75,7 +76,7 @@ function getRawMessage (id) {
|
|||
|
||||
if (!bundle.hasMessage(id)) bundle = fluentBundles.en
|
||||
|
||||
if (bundle.hasMessage(id)) return bundle.getMessage(id).value
|
||||
if (bundle.hasMessage(id)) return bundle.getMessage(id)?.value
|
||||
|
||||
return id
|
||||
}
|
||||
|
@ -85,7 +86,7 @@ function getRawMessage (id) {
|
|||
* Defaults to en if message id not found in requested locale
|
||||
*
|
||||
* @param {string} id - The Fluent message id.
|
||||
* @param {object} args - key/value pairs corresponding to pattern in Fluent resource.
|
||||
* @param {Record<string, import('@fluent/bundle').FluentVariable>} [args] - key/value pairs corresponding to pattern in Fluent resource.
|
||||
* @example
|
||||
* // Given FluentResource("hello = Hello, {$name}!")
|
||||
* getMessage (hello, {name: "Jane"})
|
||||
|
@ -101,8 +102,9 @@ function getMessage (id, args) {
|
|||
* Defaults to en if message id not found in requested locale
|
||||
*
|
||||
* @param {string} id - The Fluent message id.
|
||||
* @param {string{}} localePreferences
|
||||
* @param {object} args - key/value pairs corresponding to pattern in Fluent resource.
|
||||
* @param {string[]} localePreferences
|
||||
* @param {Record<string, import('@fluent/bundle').FluentVariable>} [args] - key/value pairs corresponding to pattern in Fluent resource.
|
||||
* @returns {string}
|
||||
* @example
|
||||
* // Given FluentResource("hello = Hello, {$name}!")
|
||||
* getMessage (hello, {name: "Jane"})
|
||||
|
@ -113,11 +115,16 @@ function getMessageWithLocale (id, localePreferences, args) {
|
|||
|
||||
if (!bundle.hasMessage(id)) bundle = fluentBundles.en
|
||||
|
||||
if (bundle.hasMessage(id)) return bundle.formatPattern(bundle.getMessage(id).value, args)
|
||||
if (!bundle.hasMessage(id)) {
|
||||
return id
|
||||
}
|
||||
|
||||
return id
|
||||
return bundle.formatPattern(bundle.getMessage(id)?.value ?? '', args)
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} id
|
||||
*/
|
||||
function fluentError (id) {
|
||||
return new Error(getMessage(id))
|
||||
}
|
||||
|
|
|
@ -202,6 +202,51 @@ const getStyles = () => `
|
|||
background-image: url('${images.logoDark}')
|
||||
}
|
||||
}
|
||||
|
||||
.bg-blue-5 {
|
||||
background-color: #aaf2ff;
|
||||
}
|
||||
|
||||
.bg-purple-5 {
|
||||
background-color: #e7dfff;
|
||||
}
|
||||
|
||||
.bg-green-05 {
|
||||
background-color: #e3fff3;
|
||||
}
|
||||
|
||||
.bg-violet-5 {
|
||||
background-color: #f7e2ff;
|
||||
}
|
||||
|
||||
.bg-orange-5 {
|
||||
background-color: #fff4de;
|
||||
}
|
||||
|
||||
.bg-yellow-5 {
|
||||
background-color: #ffc;
|
||||
}
|
||||
|
||||
.bg-red-5 {
|
||||
background-color: #ffdfe7;
|
||||
}
|
||||
|
||||
.bg-pink-5 {
|
||||
background-color: #ffdef0;
|
||||
}
|
||||
|
||||
.breach-logo {
|
||||
display: block;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.breach-logo-email {
|
||||
border-radius: 50%;
|
||||
display: block;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
`
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ const breachAlertCtaStyle = `
|
|||
`
|
||||
|
||||
const breachAlertEmailPartial = data => {
|
||||
const { breachData, breachedEmail, ctaHref } = data
|
||||
const { breachData, breachedEmail, breachLogos, ctaHref } = data
|
||||
|
||||
return `
|
||||
<tr>
|
||||
|
@ -32,7 +32,7 @@ const breachAlertEmailPartial = data => {
|
|||
'email-address': `<strong>${breachedEmail}</strong>`
|
||||
})}
|
||||
</p>
|
||||
${breachCardPartial(breachData)}
|
||||
${breachCardPartial(breachData, breachLogos)}
|
||||
<a
|
||||
href='${ctaHref}'
|
||||
style='${breachAlertCtaStyle}'
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
import { getLocale, getMessage } from '../../utils/fluent.js'
|
||||
import { formatDate } from '../../utils/format-date.js'
|
||||
import { getBreachLogo } from '../../utils/breach-logo.js'
|
||||
|
||||
const breachAlertTableStyle = `
|
||||
margin: auto
|
||||
|
@ -29,7 +30,14 @@ const breachAlertCardsTitleStyle = `
|
|||
`
|
||||
|
||||
const breachAlertCardsTitleImageStyle = `
|
||||
vertical-align: bottom;
|
||||
display: inline-block;
|
||||
font-weight: bold;
|
||||
line-height: 2rem;
|
||||
overflow: hidden;
|
||||
margin-right: 0.5rem;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
width: 2rem;
|
||||
`
|
||||
|
||||
const breachAlertLabelStyle = `
|
||||
|
@ -50,9 +58,8 @@ const breachAlertValueStyle = `
|
|||
padding-bottom: 15px;
|
||||
`
|
||||
|
||||
const breachCardPartial = breachData => {
|
||||
const breachCardPartial = (breachData, breachLogos) => {
|
||||
const {
|
||||
LogoPath,
|
||||
AddedDate,
|
||||
DataClasses,
|
||||
Title
|
||||
|
@ -64,15 +71,15 @@ const breachCardPartial = breachData => {
|
|||
<td>
|
||||
<table style='${breachAlertCardsContainerStyle}'>
|
||||
<tr>
|
||||
<td style='${breachAlertCardsTitleStyle}'>
|
||||
<img
|
||||
height='25'
|
||||
src='${LogoPath}'
|
||||
style='${breachAlertCardsTitleImageStyle}'
|
||||
width='25'
|
||||
>
|
||||
${Title}
|
||||
</td>
|
||||
<td style='${breachAlertCardsTitleStyle}'>
|
||||
<span
|
||||
class='breachLogoWrapper'
|
||||
style='${breachAlertCardsTitleImageStyle}'
|
||||
>
|
||||
${getBreachLogo(breachData, breachLogos)}
|
||||
</span>
|
||||
${Title}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style='padding: 24px;'>
|
||||
|
|
|
@ -47,6 +47,7 @@ const ctaStyle = `
|
|||
const signupReportEmailPartial = data => {
|
||||
const {
|
||||
breachedEmail,
|
||||
breachLogos,
|
||||
emailBreachStats,
|
||||
unsafeBreachesForEmail
|
||||
} = data
|
||||
|
@ -90,7 +91,7 @@ const signupReportEmailPartial = data => {
|
|||
${
|
||||
unsafeBreachesForEmail?.length
|
||||
? unsafeBreachesForEmail.map(unsafeBreach => (
|
||||
breachCardPartial(unsafeBreach)
|
||||
breachCardPartial(unsafeBreach, breachLogos)
|
||||
)).join('')
|
||||
: ''
|
||||
}
|
||||
|
|
|
@ -41,26 +41,24 @@ const guestLayout = data => `
|
|||
<script src='/js/index.js' type='module'></script>
|
||||
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<script nonce='${data.nonce}' type='module'>
|
||||
if (navigator.doNotTrack !== '1') {
|
||||
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
||||
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
||||
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
||||
'https://www.googletagmanager.com/gtag/js?id='+i+dl;var n=d.querySelector('[nonce]');
|
||||
n&&j.setAttribute('nonce',n.nonce||n.getAttribute('nonce'));f.parentNode.insertBefore(j,f);
|
||||
})(window,document,'script','dataLayer','${AppConstants.GA4_MEASUREMENT_ID}');
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date()); gtag('config', '${AppConstants.GA4_MEASUREMENT_ID}');
|
||||
${AppConstants.GA4_DEBUG_MODE
|
||||
? `gtag('config', '${AppConstants.GA4_MEASUREMENT_ID}', { 'debug_mode': true })`
|
||||
: ''}
|
||||
window.gtag = gtag
|
||||
} else {
|
||||
function gtag() {
|
||||
console.debug("Google Analytics disbled by DNT")
|
||||
}
|
||||
window.gtag = gtag
|
||||
}
|
||||
<script nonce='${data.nonce}'>
|
||||
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
||||
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
||||
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
||||
'https://www.googletagmanager.com/gtag/js?id='+i+dl;var n=d.querySelector('[nonce]');
|
||||
n&&j.setAttribute('nonce',n.nonce||n.getAttribute('nonce'));f.parentNode.insertBefore(j,f);
|
||||
})(window,document,'script','dataLayer','${AppConstants.GA4_MEASUREMENT_ID}');
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
${AppConstants.GA4_DEBUG_MODE
|
||||
? `gtag('config', '${AppConstants.GA4_MEASUREMENT_ID}', { 'debug_mode': true })`
|
||||
: ''}
|
||||
gtag('js', new Date());
|
||||
gtag('config', '${AppConstants.GA4_MEASUREMENT_ID}',
|
||||
{ cookie_domain: window.location.hostname, cookie_flags: "SameSite=None;Secure" }
|
||||
);
|
||||
window.gtag = gtag
|
||||
|
||||
// Detect CTA clicks on public pages.
|
||||
document.querySelectorAll('[data-cta-id]').forEach(a =>
|
||||
a.addEventListener('click', e => {
|
||||
gtag('event', 'clicked_cta', { cta_id: a.dataset.ctaId })
|
||||
|
@ -68,6 +66,7 @@ const guestLayout = data => `
|
|||
)
|
||||
</script>
|
||||
<!-- End Google tag (gtag.js) -->
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
|
|
|
@ -41,27 +41,23 @@ const mainLayout = data => `
|
|||
<script src='/js/index.js' type='module'></script>
|
||||
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<script nonce='${data.nonce}' type='module'>
|
||||
if (navigator.doNotTrack !== '1') {
|
||||
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
||||
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
||||
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
||||
'https://www.googletagmanager.com/gtag/js?id='+i+dl;var n=d.querySelector('[nonce]');
|
||||
n&&j.setAttribute('nonce',n.nonce||n.getAttribute('nonce'));f.parentNode.insertBefore(j,f);
|
||||
})(window,document,'script','dataLayer','${AppConstants.GA4_MEASUREMENT_ID}');
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date()); gtag('config', '${AppConstants.GA4_MEASUREMENT_ID}');
|
||||
${AppConstants.GA4_DEBUG_MODE
|
||||
? `gtag('config', '${AppConstants.GA4_MEASUREMENT_ID}', { 'debug_mode': true })`
|
||||
: ''}
|
||||
window.gtag = gtag
|
||||
} else {
|
||||
function gtag() {
|
||||
console.debug("Google Analytics disbled by DNT")
|
||||
}
|
||||
window.gtag = gtag
|
||||
}
|
||||
</script>
|
||||
<script nonce='${data.nonce}'>
|
||||
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
||||
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
||||
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
||||
'https://www.googletagmanager.com/gtag/js?id='+i+dl;var n=d.querySelector('[nonce]');
|
||||
n&&j.setAttribute('nonce',n.nonce||n.getAttribute('nonce'));f.parentNode.insertBefore(j,f);
|
||||
})(window,document,'script','dataLayer','${AppConstants.GA4_MEASUREMENT_ID}');
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
${AppConstants.GA4_DEBUG_MODE
|
||||
? `gtag('config', '${AppConstants.GA4_MEASUREMENT_ID}', { 'debug_mode': true })`
|
||||
: ''}
|
||||
gtag('js', new Date());
|
||||
gtag('config', '${AppConstants.GA4_MEASUREMENT_ID}',
|
||||
{ cookie_domain: window.location.hostname, cookie_flags: "SameSite=None;Secure" }
|
||||
);
|
||||
window.gtag = gtag
|
||||
</script>
|
||||
<!-- End Google tag (gtag.js) -->
|
||||
</head>
|
||||
<body>
|
||||
|
|
|
@ -4,6 +4,16 @@
|
|||
|
||||
import { getMessage } from '../../utils/fluent.js'
|
||||
|
||||
/**
|
||||
* @typedef {object} PartialData
|
||||
* @property {string} csrfToken
|
||||
* @property {number} emailLimit
|
||||
*/
|
||||
|
||||
/**
|
||||
* @param {PartialData} data
|
||||
* @returns string
|
||||
*/
|
||||
export const addEmail = data => `
|
||||
<header>
|
||||
<button class='close'></button>
|
||||
|
|
|
@ -2,7 +2,11 @@
|
|||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
export const admin = data => `
|
||||
/**
|
||||
* @param {unknown} _data
|
||||
* @returns string
|
||||
*/
|
||||
export const admin = _data => `
|
||||
<section>
|
||||
<h1>Admin</h1>
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
import { getBreachLogo } from '../../utils/breach-logo.js'
|
||||
import { getLocale, getMessage } from '../../utils/fluent.js'
|
||||
import { getAllPriorityDataClasses, getAllGenericRecommendations } from '../../utils/recommendations.js'
|
||||
|
||||
|
@ -129,9 +130,11 @@ function makeBreachDetails (breach) {
|
|||
|
||||
export const breachDetails = data => `
|
||||
<header class="breach-detail-header">
|
||||
<img class="breach-detail-logo breach-logo" alt="" src="https://monitor.cdn.mozilla.net/img/logos/${data.breach.LogoPath}" />
|
||||
<div class="breach-detail-meta">
|
||||
<h1>${data.breach.Title}</h1>
|
||||
<h1>
|
||||
${getBreachLogo(data.breach, data.breachLogos)}
|
||||
${data.breach.Title}
|
||||
</h1>
|
||||
${getBreachCategory(data.breach) === 'website-breach'
|
||||
? `<a href="https://${data.breach.Domain}" class="breach-detail-meta-domain" rel="nofollow noopener noreferrer" data-event-label="${data.breach.Domain}" data-event-action="Engage" data-event-category="Breach Detail: Website URL Link" target="_blank">${data.breach.Domain}</a>`
|
||||
: ''}
|
||||
|
|
|
@ -63,6 +63,11 @@ const createEmailList = (emails, breachCounts) => `
|
|||
</ul>
|
||||
`
|
||||
|
||||
/**
|
||||
* @param {string} csrfToken
|
||||
* @param {{ isChecked: boolean; option: unknown; }} options
|
||||
* @returns string
|
||||
*/
|
||||
const optionInput = (csrfToken, { isChecked, option }) => `
|
||||
<input
|
||||
${isChecked ? 'checked' : ''}
|
||||
|
@ -74,6 +79,10 @@ const optionInput = (csrfToken, { isChecked, option }) => `
|
|||
>
|
||||
`
|
||||
|
||||
/**
|
||||
* @param {{ csrfToken: string; allEmailsToPrimary: boolean }} options
|
||||
* @returns string
|
||||
*/
|
||||
const alertOptions = ({ csrfToken, allEmailsToPrimary }) => `
|
||||
<div class='settings-alert-options'>
|
||||
<label class='settings-radio-input'>
|
||||
|
@ -98,6 +107,16 @@ const alertOptions = ({ csrfToken, allEmailsToPrimary }) => `
|
|||
</div>
|
||||
`
|
||||
|
||||
/**
|
||||
* @typedef {object} PartialData
|
||||
* @property {string} csrfToken
|
||||
* @property {boolean} allEmailsToPrimary
|
||||
*/
|
||||
|
||||
/**
|
||||
* @param {PartialData} data
|
||||
* @returns string
|
||||
*/
|
||||
export const settings = data => {
|
||||
const { allEmailsToPrimary, breachCounts, csrfToken, emails, limit } = data
|
||||
|
||||
|
|
|
@ -4,6 +4,15 @@
|
|||
|
||||
import { getMessage } from '../../utils/fluent.js'
|
||||
|
||||
/**
|
||||
* @typedef {object} PartialData
|
||||
* @property {string} csrfToken
|
||||
*/
|
||||
|
||||
/**
|
||||
* @param {PartialData} data
|
||||
* @returns string
|
||||
*/
|
||||
const unsubscribe = data => `
|
||||
<section class="unsubscribe">
|
||||
<h1>${getMessage('unsub-headline')}</h1>
|
||||
|
|
|
@ -0,0 +1,109 @@
|
|||
{
|
||||
"include": [
|
||||
"src/custom-types.d.ts",
|
||||
"src/client/js/components/**/*",
|
||||
"src/views/partials/add-email.js",
|
||||
"src/views/partials/admin.js",
|
||||
// Replace the above with the following when our entire codebase has type annotations:
|
||||
// "src/**/*",
|
||||
],
|
||||
"compilerOptions": {
|
||||
/* Visit https://aka.ms/tsconfig to read more about this file */
|
||||
/* Projects */
|
||||
// "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */
|
||||
// "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */
|
||||
// "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */
|
||||
// "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */
|
||||
// "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */
|
||||
// "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
|
||||
/* Language and Environment */
|
||||
"target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
|
||||
// "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
|
||||
// "jsx": "preserve", /* Specify what JSX code is generated. */
|
||||
// "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */
|
||||
// "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */
|
||||
// "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */
|
||||
// "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */
|
||||
// "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */
|
||||
// "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */
|
||||
// "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
|
||||
// "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
|
||||
"moduleDetection": "force", /* Control what method is used to detect module-format JS files. */
|
||||
/* Modules */
|
||||
"module": "commonjs", /* Specify what module code is generated. */
|
||||
"rootDir": "./src/", /* Specify the root folder within your source files. */
|
||||
// "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */
|
||||
// "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
|
||||
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
|
||||
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
|
||||
// "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */
|
||||
// "types": [], /* Specify type package names to be included without being referenced in a source file. */
|
||||
// "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
|
||||
// "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */
|
||||
// "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */
|
||||
// "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */
|
||||
// "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */
|
||||
// "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */
|
||||
// "resolveJsonModule": true, /* Enable importing .json files. */
|
||||
// "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */
|
||||
// "noResolve": true, /* Disallow 'import's, 'require's or '<reference>'s from expanding the number of files TypeScript should add to a project. */
|
||||
/* JavaScript Support */
|
||||
"allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
|
||||
"checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
|
||||
// "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */
|
||||
/* Emit */
|
||||
// "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
|
||||
// "declarationMap": true, /* Create sourcemaps for d.ts files. */
|
||||
// "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */
|
||||
// "sourceMap": true, /* Create source map files for emitted JavaScript files. */
|
||||
// "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */
|
||||
// "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */
|
||||
// "outDir": "./", /* Specify an output folder for all emitted files. */
|
||||
// "removeComments": true, /* Disable emitting comments. */
|
||||
// "noEmit": true, /* Disable emitting files from a compilation. */
|
||||
// "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
|
||||
// "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */
|
||||
// "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */
|
||||
// "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */
|
||||
// "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
|
||||
// "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */
|
||||
// "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */
|
||||
// "newLine": "crlf", /* Set the newline character for emitting files. */
|
||||
// "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */
|
||||
// "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */
|
||||
// "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */
|
||||
// "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */
|
||||
// "declarationDir": "./", /* Specify the output directory for generated declaration files. */
|
||||
// "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */
|
||||
/* Interop Constraints */
|
||||
// "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */
|
||||
// "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */
|
||||
// "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
|
||||
"esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
|
||||
// "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
|
||||
"forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
|
||||
/* Type Checking */
|
||||
"strict": true, /* Enable all strict type-checking options. */
|
||||
// "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */
|
||||
// "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */
|
||||
// "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
|
||||
// "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */
|
||||
// "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */
|
||||
// "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */
|
||||
// "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */
|
||||
// "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */
|
||||
// "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */
|
||||
// "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */
|
||||
// "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */
|
||||
// "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */
|
||||
// "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */
|
||||
// "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */
|
||||
// "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */
|
||||
// "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */
|
||||
// "allowUnusedLabels": true, /* Disable error reporting for unused labels. */
|
||||
// "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */
|
||||
/* Completeness */
|
||||
// "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
|
||||
"skipLibCheck": true /* Skip type checking all .d.ts files. */
|
||||
}
|
||||
}
|
Загрузка…
Ссылка в новой задаче