Skip to content
Snippets Groups Projects
Commit c8fa2819 authored by Alex Catarineu's avatar Alex Catarineu Committed by Richard Pospesel
Browse files

Add TorStrings module for localization

parent d0fc6cf5
1 merge request!580Rebase Tor Browser Alpha to 102.9.0esr
Showing
with 1225 additions and 0 deletions
// Copyright (c) 2022, The Tor Project, Inc.
// 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/.
"use strict";
var EXPORTED_SYMBOLS = ["TorStrings"];
const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
const { AppConstants } = ChromeUtils.import(
"resource://gre/modules/AppConstants.jsm"
);
const { getLocale } = ChromeUtils.import(
"resource://torbutton/modules/utils.js"
);
/*
Tor Property String Bundle
Property strings loaded from torbutton/tor-launcher, but provide a fallback in case they aren't available
*/
class TorPropertyStringBundle {
constructor(aBundleURL, aPrefix) {
try {
this._bundle = Services.strings.createBundle(aBundleURL);
this._bundleURL = aBundleURL;
} catch (e) {
console.error(`[TorStrings] Cannot load ${aBundleURL}`, e);
}
this._prefix = aPrefix;
}
getString(key, fallback) {
const reportError =
AppConstants.TOR_BROWSER_VERSION === "dev-build" && !!this._bundle;
if (key) {
try {
return this._bundle.GetStringFromName(`${this._prefix}${key}`);
} catch (e) {
if (reportError) {
console.warn(
`[TorStrings] Cannot get ${this._prefix}${key} from ${this._bundleURL}`,
e
);
}
}
}
// on failure, assign the fallback if it exists
if (fallback) {
return fallback;
}
// otherwise return string key
return `$(${key})`;
}
getStrings(strings) {
return Object.fromEntries(
Object.entries(strings).map(([key, fallback]) => [
key,
this.getString(key, fallback),
])
);
}
}
const Loader = {
/*
Tor about:preferences#connection Strings
*/
settings() {
const strings = {
categoryTitle: "Connection",
// Message box
torPreferencesDescription:
"Tor Browser routes your traffic over the Tor Network, run by thousands of volunteers around the world.",
// Status
statusInternetLabel: "Internet:",
statusInternetTest: "Test",
statusInternetOnline: "Online",
statusInternetOffline: "Offline",
statusTorLabel: "Tor Network:",
statusTorConnected: "Connected",
statusTorNotConnected: "Not Connected",
statusTorBlocked: "Potentially Blocked",
learnMore: "Learn more",
// Quickstart
quickstartHeading: "Quickstart",
quickstartDescription:
"Quickstart connects Tor Browser to the Tor Network automatically when launched, based on your last used connection settings.",
quickstartCheckbox: "Always connect automatically",
// Bridge settings
bridgesHeading: "Bridges",
bridgesDescription:
"Bridges help you access the Tor Network in places where Tor is blocked. Depending on where you are, one bridge may work better than another.",
bridgeLocation: "Your location",
bridgeLocationAutomatic: "Automatic",
bridgeLocationFrequent: "Frequently selected locations",
bridgeLocationOther: "Other locations",
bridgeChooseForMe: "Choose a Bridge For Me…",
bridgeCurrent: "Your Current Bridges",
bridgeCurrentDescription:
"You can keep one or more bridges saved, and Tor will choose which one to use when you connect. Tor will automatically switch to use another bridge when needed.",
bridgeId: "%1$S bridge: %2$S",
remove: "Remove",
bridgeDisableBuiltIn: "Disable built-in bridges",
bridgeShare:
"Share this bridge using the QR code or by copying its address:",
bridgeCopy: "Copy Bridge Address",
copied: "Copied!",
bridgeShowAll: "Show All Bridges",
bridgeRemoveAll: "Remove All Bridges",
bridgeAdd: "Add a New Bridge",
bridgeSelectBrowserBuiltin:
"Choose from one of Tor Browser’s built-in bridges",
bridgeSelectBuiltin: "Select a Built-In Bridge…",
bridgeRequestFromTorProject: "Request a bridge from torproject.org",
bridgeRequest: "Request a Bridge…",
bridgeEnterKnown: "Enter a bridge address you already know",
bridgeAddManually: "Add a Bridge Manually…",
// Advanced settings
advancedHeading: "Advanced",
advancedLabel: "Configure how Tor Browser connects to the internet",
advancedButton: "Settings…",
showTorDaemonLogs: "View the Tor logs",
showLogs: "View Logs…",
// Remove all bridges dialog
removeBridgesQuestion: "Remove all the bridges?",
removeBridgesWarning: "This action cannot be undone.",
cancel: "Cancel",
// Scan bridge QR dialog
scanQrTitle: "Scan the QR code",
// Builtin bridges dialog
builtinBridgeTitle: "Built-In Bridges",
builtinBridgeHeader: "Select a Built-In Bridge",
builtinBridgeDescription:
"Tor Browser includes some specific types of bridges known as “pluggable transports”.",
builtinBridgeObfs4: "obfs4",
builtinBridgeObfs4Description:
"obfs4 is a type of built-in bridge that makes your Tor traffic look random. They are also less likely to be blocked than their predecessors, obfs3 bridges.",
builtinBridgeSnowflake: "Snowflake",
builtinBridgeSnowflakeDescription:
"Snowflake is a built-in bridge that defeats censorship by routing your connection through Snowflake proxies, ran by volunteers.",
builtinBridgeMeekAzure: "meek-azure",
builtinBridgeMeekAzureDescription:
"meek-azure is a built-in bridge that makes it look like you are using a Microsoft web site instead of using Tor.",
// Request bridges dialog
requestBridgeDialogTitle: "Request Bridge",
submitCaptcha: "Submit",
contactingBridgeDB: "Contacting BridgeDB. Please Wait.",
solveTheCaptcha: "Solve the CAPTCHA to request a bridge.",
captchaTextboxPlaceholder: "Enter the characters from the image",
incorrectCaptcha: "The solution is not correct. Please try again.",
// Provide bridge dialog
provideBridgeTitle: "Provide Bridge",
provideBridgeHeader: "Enter bridge information from a trusted source",
provideBridgePlaceholder: "type address:port (one per line)",
// Connection settings dialog
connectionSettingsDialogTitle: "Connection Settings",
connectionSettingsDialogHeader:
"Configure how Tor Browser connects to the Internet",
useLocalProxy: "I use a proxy to connect to the Internet",
proxyType: "Proxy Type",
proxyTypeSOCKS4: "SOCKS4",
proxyTypeSOCKS5: "SOCKS5",
proxyTypeHTTP: "HTTP/HTTPS",
proxyAddress: "Address",
proxyAddressPlaceholder: "IP address or hostname",
proxyPort: "Port",
proxyUsername: "Username",
proxyPassword: "Password",
proxyUsernamePasswordPlaceholder: "Optional",
useFirewall:
"This computer goes through a firewall that only allows connections to certain ports",
allowedPorts: "Allowed Ports",
allowedPortsPlaceholder: "Comma-seperated values",
// Log dialog
torLogDialogTitle: "Tor Logs",
copyLog: "Copy Tor Log to Clipboard",
};
const tsb = new TorPropertyStringBundle(
"chrome://torbutton/locale/settings.properties",
"settings."
);
return {
...tsb.getStrings(strings),
learnMoreTorBrowserURL: "about:manual#about",
learnMoreBridgesURL: "about:manual#bridges",
learnMoreBridgesCardURL: "about:manual#bridges_bridge-moji",
learnMoreCircumventionURL: "about:manual#circumvention",
};
} /* Tor Network Settings Strings */,
torConnect() {
const strings = {
torConnect: "Connect to Tor",
torConnecting: "Establishing a Connection",
torNotConnectedConcise: "Not Connected",
torConnectingConcise: "Connecting…",
tryingAgain: "Trying again…",
noInternet: "Tor Browser couldn’t reach the Internet",
noInternetDescription:
"This could be due to a connection issue rather than Tor being blocked. Check your Internet connection, proxy and firewall settings before trying again.",
torBootstrapFailed: "Tor failed to establish a Tor network connection.",
couldNotConnect: "Tor Browser could not connect to Tor",
configureConnection: "configure your connection",
assistDescription:
"If Tor is blocked in your location, trying a bridge may help. Connection assist can choose one for you using your location, or you can %S manually instead.",
tryingBridge: "Trying a bridge…",
tryingBridgeAgain: "Trying one more time…",
errorLocation: "Tor Browser couldn’t locate you",
errorLocationDescription:
"Tor Browser needs to know your location in order to choose the right bridge for you. If you’d rather not share your location, %S manually instead.",
isLocationCorrect: "Are these location settings correct?",
isLocationCorrectDescription:
"Tor Browser still couldn’t connect to Tor. Please check your location settings are correct and try again, or %S instead.",
finalError: "Tor Browser still cannot connect",
finalErrorDescription:
"Despite its best efforts, connection assist was not able to connect to Tor. Try troubleshooting your connection and adding a bridge manually instead.",
breadcrumbAssist: "Connection assist",
breadcrumbLocation: "Location settings",
breadcrumbTryBridge: "Try a bridge",
restartTorBrowser: "Restart Tor Browser",
torConfigure: "Configure Connection…",
viewLog: "View logs…",
torConnectButton: "Connect",
cancel: "Cancel",
torConnected: "Connected to the Tor network",
torConnectedConcise: "Connected",
tryAgain: "Try Again",
// tor connect strings for message box in about:preferences#connection
connectMessage:
"Changes to Tor Settings will not take effect until you connect",
tryAgainMessage:
"Tor Browser has failed to establish a connection to the Tor Network",
yourLocation: "Your Location",
unblockInternetIn: "Unblock the Internet in",
tryBridge: "Try a Bridge",
automatic: "Automatic",
selectCountryRegion: "Select Country or Region",
frequentLocations: "Frequently selected locations",
otherLocations: "Other locations",
// TorConnect.jsm error messages
offline: "Internet not reachable",
autoBootstrappingFailed: "Automatic configuration failed",
autoBootstrappingAllFailed: "None of the configurations we tried worked",
cannotDetermineCountry: "Unable to determine user country",
noSettingsForCountry: "No settings available for your location",
};
const tsb = new TorPropertyStringBundle(
"chrome://torbutton/locale/torConnect.properties",
"torConnect."
);
return tsb.getStrings(strings);
},
/*
Tor Onion Services Strings, e.g., for the authentication prompt.
*/
onionServices() {
const tsb = new TorPropertyStringBundle(
"chrome://torbutton/locale/torbutton.properties",
"onionServices."
);
const getString = tsb.getString.bind(tsb);
const kProblemLoadingSiteFallback = "Problem Loading Onionsite";
const kLongDescFallback = "Details: %S";
const retval = {
learnMore: getString("learnMore", "Learn more"),
learnMoreURL: "about:manual#onion-services_onion-service-authentication",
errorPage: {
browser: getString("errorPage.browser", "Browser"),
network: getString("errorPage.network", "Network"),
onionSite: getString("errorPage.onionSite", "Onionsite"),
},
descNotFound: {
// Tor SOCKS error 0xF0
pageTitle: getString(
"descNotFound.pageTitle",
kProblemLoadingSiteFallback
),
header: getString("descNotFound.header", "Onionsite Not Found"),
longDescription: getString(
"descNotFound.longDescription",
kLongDescFallback
),
},
descInvalid: {
// Tor SOCKS error 0xF1
pageTitle: getString(
"descInvalid.pageTitle",
kProblemLoadingSiteFallback
),
header: getString("descInvalid.header", "Onionsite Cannot Be Reached"),
longDescription: getString(
"descInvalid.longDescription",
kLongDescFallback
),
},
introFailed: {
// Tor SOCKS error 0xF2
pageTitle: getString(
"introFailed.pageTitle",
kProblemLoadingSiteFallback
),
header: getString("introFailed.header", "Onionsite Has Disconnected"),
longDescription: getString(
"introFailed.longDescription",
kLongDescFallback
),
},
rendezvousFailed: {
// Tor SOCKS error 0xF3
pageTitle: getString(
"rendezvousFailed.pageTitle",
kProblemLoadingSiteFallback
),
header: getString(
"rendezvousFailed.header",
"Unable to Connect to Onionsite"
),
longDescription: getString(
"rendezvousFailed.longDescription",
kLongDescFallback
),
},
clientAuthMissing: {
// Tor SOCKS error 0xF4
pageTitle: getString(
"clientAuthMissing.pageTitle",
"Authorization Required"
),
header: getString(
"clientAuthMissing.header",
"Onionsite Requires Authentication"
),
longDescription: getString(
"clientAuthMissing.longDescription",
kLongDescFallback
),
},
clientAuthIncorrect: {
// Tor SOCKS error 0xF5
pageTitle: getString(
"clientAuthIncorrect.pageTitle",
"Authorization Failed"
),
header: getString(
"clientAuthIncorrect.header",
"Onionsite Authentication Failed"
),
longDescription: getString(
"clientAuthIncorrect.longDescription",
kLongDescFallback
),
},
badAddress: {
// Tor SOCKS error 0xF6
pageTitle: getString(
"badAddress.pageTitle",
kProblemLoadingSiteFallback
),
header: getString("badAddress.header", "Invalid Onionsite Address"),
longDescription: getString(
"badAddress.longDescription",
kLongDescFallback
),
},
introTimedOut: {
// Tor SOCKS error 0xF7
pageTitle: getString(
"introTimedOut.pageTitle",
kProblemLoadingSiteFallback
),
header: getString(
"introTimedOut.header",
"Onionsite Circuit Creation Timed Out"
),
longDescription: getString(
"introTimedOut.longDescription",
kLongDescFallback
),
},
authPrompt: {
description: getString(
"authPrompt.description2",
"%S is requesting that you authenticate."
),
keyPlaceholder: getString(
"authPrompt.keyPlaceholder",
"Enter your key"
),
done: getString("authPrompt.done", "Done"),
doneAccessKey: getString("authPrompt.doneAccessKey", "d"),
invalidKey: getString("authPrompt.invalidKey", "Invalid key"),
failedToSetKey: getString(
"authPrompt.failedToSetKey",
"Failed to set key"
),
},
authPreferences: {
header: getString(
"authPreferences.header",
"Onion Services Authentication"
),
overview: getString(
"authPreferences.overview",
"Some onion services require that you identify yourself with a key"
),
savedKeys: getString("authPreferences.savedKeys", "Saved Keys"),
dialogTitle: getString(
"authPreferences.dialogTitle",
"Onion Services Keys"
),
dialogIntro: getString(
"authPreferences.dialogIntro",
"Keys for the following onionsites are stored on your computer"
),
onionSite: getString("authPreferences.onionSite", "Onionsite"),
onionKey: getString("authPreferences.onionKey", "Key"),
remove: getString("authPreferences.remove", "Remove"),
removeAll: getString("authPreferences.removeAll", "Remove All"),
failedToGetKeys: getString(
"authPreferences.failedToGetKeys",
"Failed to get keys"
),
failedToRemoveKey: getString(
"authPreferences.failedToRemoveKey",
"Failed to remove key"
),
},
};
return retval;
} /* Tor Onion Services Strings */,
/*
OnionLocation
*/
onionLocation() {
const strings = {
alwaysPrioritize: "Always Prioritize Onionsites",
alwaysPrioritizeAccessKey: "a",
notNow: "Not Now",
notNowAccessKey: "n",
description:
"Website publishers can protect users by adding a security layer. This prevents eavesdroppers from knowing that you are the one visiting that website.",
tryThis: "Try this: Onionsite",
onionAvailable: "Onionsite available",
learnMore: "Learn more",
always: "Always",
askEverytime: "Ask you every time",
prioritizeOnionsDescription:
"Prioritize onionsites when they are available.",
onionServicesTitle: "Onion Services",
};
const tsb = new TorPropertyStringBundle(
["chrome://torbutton/locale/onionLocation.properties"],
"onionLocation."
);
return {
...tsb.getStrings(strings),
learnMoreURL: "about:manual#onion-services",
// XUL popups cannot open about: URLs, but we are online when showing the notification, so just use the online version
learnMoreURLNotification: `https://tb-manual.torproject.org/${getLocale()}/onion-services/`,
};
} /* OnionLocation */,
/*
Rulesets
*/
rulesets() {
const strings = {
// Initial warning
warningTitle: "Proceed with Caution",
warningDescription:
"Adding or modifying rulesets can cause attackers to hijack your browser. Proceed only if you know what you are doing.",
warningEnable: "Warn me when I attempt to access these preferences",
warningButton: "Accept the Risk and Continue",
// Ruleset list
rulesets: "Rulesets",
noRulesets: "No rulesets found",
noRulesetsDescr:
"When you save a ruleset in Tor Browser, it will show up here.",
lastUpdated: "Last updated %S",
neverUpdated: "Never updated, or last update failed",
enabled: "Enabled",
disabled: "Disabled",
// Ruleset details
edit: "Edit",
name: "Name",
jwk: "JWK",
pathPrefix: "Path Prefix",
scope: "Scope",
enable: "Enable this ruleset",
checkUpdates: "Check for Updates",
// Add ruleset
jwkPlaceholder:
"The key used to sign this ruleset in the JWK (JSON Web Key) format",
jwkInvalid: "The JWK could not be parsed, or it is not a valid key",
pathPrefixPlaceholder:
"URL prefix that contains the files needed by the ruleset",
pathPrefixInvalid: "The path prefix is not a valid HTTP(S) URL",
scopePlaceholder: "Regular expression for the scope of the rules",
scopeInvalid: "The scope could not be parsed as a regular expression",
save: "Save",
cancel: "Cancel",
};
const tsb = new TorPropertyStringBundle(
["chrome://torbutton/locale/rulesets.properties"],
"rulesets."
);
return tsb.getStrings(strings);
} /* Rulesets */,
};
const TorStrings = {
get settings() {
if (!this._settings) {
this._settings = Loader.settings();
}
return this._settings;
},
get torConnect() {
if (!this._torConnect) {
this._torConnect = Loader.torConnect();
}
return this._torConnect;
},
get onionServices() {
if (!this._onionServices) {
this._onionServices = Loader.onionServices();
}
return this._onionServices;
},
get onionLocation() {
if (!this._onionLocation) {
this._onionLocation = Loader.onionLocation();
}
return this._onionLocation;
},
get rulesets() {
if (!this._rulesets) {
this._rulesets = Loader.rulesets();
}
return this._rulesets;
},
};
......@@ -148,6 +148,7 @@ EXTRA_JS_MODULES += [
"TabUnloader.jsm",
"TorConnect.jsm",
"TorSettings.jsm",
"TorStrings.jsm",
"TransientPrefs.jsm",
"webrtcUI.jsm",
"ZoomUI.jsm",
......
<!-- Copyright (c) 2022, The Tor Project, Inc.
- 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/. -->
<!ENTITY project.start "&brandShortName; is developed by ">
<!-- LOCALIZATION NOTE (project.tpoLink): This is a link title that links to https://www.torproject.org -->
<!ENTITY project.tpoLink "the &vendorShortName;">
<!ENTITY project.end ", a nonprofit working to defend your privacy and freedom online.">
<!ENTITY help.start "Want to help? ">
<!-- LOCALIZATION NOTE (help.donate): This is a link title that links to https://www.torproject.org/donate/donate.html.en -->
<!ENTITY help.donateLink "Donate">
<!ENTITY help.or " or ">
<!-- LOCALIZATION NOTE (help.getInvolvedLink): This is a link title that links to https://www.torproject.org/getinvolved/volunteer.html.en -->
<!ENTITY help.getInvolvedLink "get involved">
<!ENTITY help.end "!">
<!-- LOCALIZATION NOTE (bottom.questions): This is a link title that links to https://www.torproject.org/docs/trademark-faq.html.en -->
<!ENTITY bottomLinks.questions "Questions?">
<!-- LOCALIZATION NOTE (bottom.questions): This is a link title that links to https://www.torproject.org/getinvolved/relays -->
<!ENTITY bottomLinks.grow "Help the Tor Network Grow!">
<!-- LOCALIZATION NOTE (bottom.questions): This is a link title that links to about:license -->
<!ENTITY bottomLinks.license "Licensing Information">
<!ENTITY tor.TrademarkStatement "'Tor' and the 'Onion Logo' are registered trademarks of the Tor Project, Inc.">
<!-- Copyright (c) 2022, The Tor Project, Inc.
- 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/. -->
<!ENTITY aboutTBUpdate.changelogTitle "Tor Browser Changelog">
<!ENTITY aboutTBUpdate.updated "Tor Browser has been updated.">
<!ENTITY aboutTBUpdate.linkPrefix "For the most up-to-date information about this release, ">
<!ENTITY aboutTBUpdate.linkLabel "visit our website">
<!ENTITY aboutTBUpdate.linkSuffix ".">
<!ENTITY aboutTBUpdate.version "Version">
<!ENTITY aboutTBUpdate.releaseDate "Release Date">
<!ENTITY aboutTBUpdate.releaseNotes "Release Notes">
<!-- Copyright (c) 2022, The Tor Project, Inc.
- 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/. -->
<!ENTITY aboutTor.title "About Tor">
<!ENTITY aboutTor.viewChangelog.label "View Changelog">
<!ENTITY aboutTor.ready.label "Explore. Privately.">
<!ENTITY aboutTor.ready2.label "You’re ready for the world’s most private browsing experience.">
<!ENTITY aboutTor.failure.label "Something Went Wrong!">
<!ENTITY aboutTor.failure2.label "Tor is not working in this browser.">
<!ENTITY aboutTor.search.label "Search with DuckDuckGo">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
<!ENTITY aboutTor.torbrowser_user_manual_questions.label "Questions?">
<!ENTITY aboutTor.torbrowser_user_manual_link.label "Check our Tor Browser Manual »">
<!-- The next two entities are used within the browser's Help menu. -->
<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser Manual">
<!ENTITY aboutTor.tor_mission.label "The Tor Project is a US 501(c)(3) non-profit organization advancing human rights and freedoms by creating and deploying free and open source anonymity and privacy technologies, supporting their unrestricted availability and use, and furthering their scientific and popular understanding.">
<!ENTITY aboutTor.getInvolved.label "Get Involved »">
<!ENTITY aboutTor.newsletter.tagline "Get the latest news from Tor straight to your inbox.">
<!ENTITY aboutTor.newsletter.link_text "Sign up for Tor News.">
<!ENTITY aboutTor.donationBanner.freeToUse "Tor is free to use because of donations from people like you.">
<!ENTITY aboutTor.donationBanner.buttonA "Donate Now">
<!ENTITY aboutTor.alpha.ready.label "Test. Thoroughly.">
<!ENTITY aboutTor.alpha.ready2.label "You’re ready to test the world’s most private browsing experience.">
<!ENTITY aboutTor.alpha.bannerDescription "Tor Browser Alpha is an unstable version of Tor Browser you can use to preview new features, test their performance and provide feedback before release.">
<!ENTITY aboutTor.alpha.bannerLink "Report a bug on the Tor Forum">
<!ENTITY aboutTor.nightly.ready.label "Test. Thoroughly.">
<!ENTITY aboutTor.nightly.ready2.label "You’re ready to test the world’s most private browsing experience.">
<!ENTITY aboutTor.nightly.bannerDescription "Tor Browser Nightly is an unstable version of Tor Browser you can use to preview new features, test their performance and provide feedback before release.">
<!ENTITY aboutTor.nightly.bannerLink "Report a bug on the Tor Forum">
<!-- YEC 2022 campaign https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41303 -->
<!-- LOCALIZATION NOTE (aboutTor.yec2022.powered_by_privacy): a header for a list of things which are powered by/enabled by/possible due to privacy (each item should have positive connotations/associations in the translated languages) -->
<!ENTITY aboutTor.yec2022.powered_by_privacy "POWERED BY PRIVACY:">
<!-- LOCALIZATION NOTE (aboutTor.yec2022.resistance): resistance as in social/political resistance to opression, injustice, etc -->
<!ENTITY aboutTor.yec2022.resistance "RESISTANCE">
<!-- LOCALIZATION NOTE (aboutTor.yec2022.change): change as in the process of social/political progress toward a better/more equitable society -->
<!ENTITY aboutTor.yec2022.change "CHANGE">
<!-- LOCALIZATION NOTE (aboutTor.yec2022.freedom): freedom as in liberty, protection against exploition, imprisonment, etc -->
<!ENTITY aboutTor.yec2022.freedom "FREEDOM">
<!-- LOCALIZATION NOTE (aboutTor.yec2022.donate_now): Label for a button directing user to donation page-->
<!ENTITY aboutTor.yec2022.donate_now "DONATE NOW">
<!-- LOCALIZATION NOTE (aboutTor.yec2022.donation_matching): Please translate the 'Friends of Tor' phrase, but
also format it like the name of an organization in whichever way that is appropriate for your locale.
Please keep the currency in USD.
Thank you!
-->
<!ENTITY aboutTor.yec2022.donation_matching "Your donation will be matched by Friends of Tor, up to $100,000.">
<!-- Copyright (c) 2022, The Tor Project, Inc.
- 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/. -->
<!ENTITY brandShortName "Tor Browser">
<!-- Still used in aboutDialog -->
<!ENTITY vendorShortName "Tor Project">
# Copyright (c) 2022, The Tor Project, Inc.
# 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/.
brandShorterName=Tor Browser
brandShortName=Tor Browser
brandFullName=Tor Browser
# For Tor Browser, we use a new file (different than the brand.ftl file
# that is used by Firefox) to avoid picking up the -brand-short-name values
# that Mozilla includes in the Firefox language packs.
-brand-shorter-name = Tor Browser
-brand-short-name = Tor Browser
-brand-full-name = Tor Browser
# This brand name can be used in messages where the product name needs to
# remain unchanged across different versions (Nightly, Beta, etc.).
-brand-product-name = Tor Browser
-vendor-short-name = Tor Project
trademarkInfo = 'Tor' and the 'Onion Logo' are registered trademarks of the Tor Project, Inc.
# Copyright (c) 2019, The Tor Project, Inc.
# 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/.
onboarding.tour-tor-welcome=Welcome
onboarding.tour-tor-welcome.title=You’re ready.
onboarding.tour-tor-welcome.description=Tor Browser offers the highest standard of privacy and security while browsing the web. You’re now protected against tracking, surveillance, and censorship. This quick onboarding will show you how.
onboarding.tour-tor-welcome.next-button=Go to Privacy
onboarding.tour-tor-privacy=Privacy
onboarding.tour-tor-privacy.title=Snub trackers and snoopers.
onboarding.tour-tor-privacy.description=Tor Browser isolates cookies and deletes your browser history after your session. These modifications ensure your privacy and security are protected in the browser. Click ‘Tor Network’ to learn how we protect you on the network level.
onboarding.tour-tor-privacy.button=Go to Tor Network
onboarding.tour-tor-network=Tor Network
onboarding.tour-tor-network.title=Travel a decentralized network.
onboarding.tour-tor-network.description=Tor Browser connects you to the Tor network run by thousands of volunteers around the world. Unlike a VPN, there’s no single point of failure or centralized entity you need to trust in order to enjoy the internet privately.
onboarding.tour-tor-network.description-para2=NEW: Tor Network Settings, including the ability to request bridges where Tor is blocked, can now be found in Preferences.
onboarding.tour-tor-network.action-button=Adjust Your Tor Network Settings
onboarding.tour-tor-network.button=Go to Circuit Display
onboarding.tour-tor-circuit-display=Circuit Display
onboarding.tour-tor-circuit-display.title=See your path.
onboarding.tour-tor-circuit-display.description=For each domain you visit, your traffic is relayed and encrypted in a circuit across three Tor relays around the world. No website knows where you are connecting from. You can request a new circuit by clicking ‘New Circuit for this Site’ on our Circuit Display.
onboarding.tour-tor-circuit-display.button=See My Path
onboarding.tour-tor-circuit-display.next-button=Go to Security
onboarding.tour-tor-security=Security
onboarding.tour-tor-security.title=Choose your experience.
onboarding.tour-tor-security.description=We also provide you with additional settings for bumping up your browser security. Our Security Settings allow you to block elements that could be used to attack your computer. Click below to see what the different options do.
onboarding.tour-tor-security.description-suffix=Note: By default, NoScript and HTTPS Everywhere are not included on the toolbar, but you can customize your toolbar to add them.
onboarding.tour-tor-security-level.button=See Your Security Level
onboarding.tour-tor-security-level.next-button=Go to Experience Tips
onboarding.tour-tor-expect-differences=Experience Tips
onboarding.tour-tor-expect-differences.title=Expect some differences.
onboarding.tour-tor-expect-differences.description=With all the security and privacy features provided by Tor, your experience while browsing the internet may be a little different. Things may be a bit slower, and depending on your security level, some elements may not work or load. You may also be asked to prove you are a human and not a robot.
onboarding.tour-tor-expect-differences.button=See FAQs
onboarding.tour-tor-expect-differences.next-button=Go to Onion Services
onboarding.tour-tor-onion-services=Onion Services
onboarding.tour-tor-onion-services.title=Be extra protected.
onboarding.tour-tor-onion-services.description=Onion services are sites that end with a .onion that provide extra protections to publishers and visitors, including added safeguards against censorship. Onion services allow anyone to provide content and services anonymously. Click below to visit the DuckDuckGo onion site.
onboarding.tour-tor-onion-services.button=Visit an Onion
onboarding.tour-tor-onion-services.next-button=Done
onboarding.overlay-icon-tooltip-updated2=See what's new\nin %S
onboarding.tour-tor-update.prefix-new=New
onboarding.tour-tor-update.prefix-updated=Updated
onboarding.tour-tor-toolbar=Toolbar
onboarding.tour-tor-toolbar-update-9.0.title=Goodbye Onion Button.
onboarding.tour-tor-toolbar-update-9.0.description=We want your experience using Tor to be fully integrated within Tor Browser.
onboarding.tour-tor-toolbar-update-9.0.description-para2=That's why now, rather than using the onion button, you can see your Tor Circuit via the [i] in the URL bar and request a New Identity using the toolbar button or the [≡] menu.
onboarding.tour-tor-toolbar-update-9.0.button=How to Request a New Identity
onboarding.tour-tor-toolbar-update-9.0.next-button=Go to Tor Network
# Circuit Display onboarding.
onboarding.tor-circuit-display.next=Next
onboarding.tor-circuit-display.done=Done
onboarding.tor-circuit-display.one-of-three=1 of 3
onboarding.tor-circuit-display.two-of-three=2 of 3
onboarding.tor-circuit-display.three-of-three=3 of 3
onboarding.tor-circuit-display.intro.title=How do circuits work?
onboarding.tor-circuit-display.intro.msg=Circuits are made up of randomly assigned relays, which are computers around the world configured to forward Tor traffic. Circuits allow you to browse privately and to connect to onion services.
onboarding.tor-circuit-display.diagram.title=Circuit Display
onboarding.tor-circuit-display.diagram.msg=This diagram shows the relays that make up the circuit for this website. To prevent linking of activity across different sites, each website gets a different circuit.
onboarding.tor-circuit-display.new-circuit.title=Do you need a new circuit?
onboarding.tor-circuit-display.new-circuit.msg=If you are not able to connect to the website you’re trying to visit or it is not loading properly, then you can use this button to reload the site with a new circuit.
# 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/.
# LOCALIZATION NOTE(onboarding.overlay-icon-tooltip2): This string will be used
# to show the tooltip alongside the notification icon in the overlay tour. %S is
# brandShortName. The tooltip is designed to show in two lines. Please use \n to
# do appropriate line breaking.
onboarding.overlay-icon-tooltip2=New to %S?\nLet’s get started.
# LOCALIZATION NOTE(onboarding.overlay-icon-tooltip-updated2): %S is
# brandShortName. The tooltip is designed to show in two lines. Please use \n to
# do appropriate line breaking.
onboarding.overlay-icon-tooltip-updated2=%S is all new.\nSee what you can do!
# LOCALIZATION NOTE(onboarding.overlay-close-button-tooltip): The overlay close button is an icon button. This tooltip would be shown when mousing hovering on the button.
onboarding.overlay-close-button-tooltip=Close
# LOCALIZATION NOTE(onboarding.notification-close-button-tooltip): The notification close button is an icon button. This tooltip would be shown when mousing hovering on the button.
onboarding.notification-close-button-tooltip=Dismiss
# LOCALIZATION NOTE(onboarding.complete): This string is used to describe an
# onboarding tour item that is complete.
onboarding.complete=Complete
# Copyright (c) 2022, The Tor Project, Inc.
# 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/.
# Onion-Location strings.
onionLocation.alwaysPrioritize=Always Prioritize Onions
onionLocation.alwaysPrioritizeAccessKey=a
onionLocation.notNow=Not Now
onionLocation.notNowAccessKey=n
onionLocation.description=There's a more private and secure version of this site available over the Tor network via onion services. Onion services help website publishers and their visitors defeat surveillance and censorship.
onionLocation.tryThis=Try Onion Services
onionLocation.onionAvailable=.onion available
onionLocation.learnMore=Learn more…
onionLocation.always=Always
onionLocation.askEverytime=Ask every time
onionLocation.prioritizeOnionsDescription=Prioritize .onion sites when known.
onionLocation.onionServicesTitle=Onion Services
# Copyright (c) 2022, The Tor Project, Inc.
# 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/.
# about:rulesets strings.
rulesets.warningTitle=Proceed with Caution
rulesets.warningDescription=Adding or modifying rulesets can cause attackers to hijack your browser. Proceed only if you know what you are doing.
rulesets.warningEnable=Warn me when I attempt to access these preferences
rulesets.warningButton=Accept the Risk and Continue
# Ruleset list
rulesets.rulesets=Rulesets
rulesets.noRulesets=No rulesets found
rulesets.noRulesetsDescr=When you save a ruleset in Tor Browser, it will show up here.
# LOCALIZATION NOTE: %S will be replaced by the update date (automatically formatted by Firefox's l10n component)
rulesets.lastUpdated=Last updated %S
rulesets.neverUpdated=Never updated, or last update failed
rulesets.enabled=Enabled
rulesets.disabled=Disabled
# Ruleset details/edit ruleset
rulesets.edit=Edit
rulesets.name=Name
rulesets.jwk=JWK
rulesets.pathPrefix=Path Prefix
rulesets.scope=Scope
rulesets.enable=Enable this ruleset
rulesets.checkUpdates=Check for Updates
rulesets.jwkPlaceholder=The key used to sign this ruleset in the JWK (JSON Web Key) format
rulesets.jwkInvalid=The JWK could not be parsed, or it is not a valid key
rulesets.pathPrefixPlaceholder=URL prefix that contains the files needed by the ruleset
rulesets.pathPrefixInvalid=The path prefix is not a valid HTTP(S) URL
rulesets.scopePlaceholder=Regular expression for the scope of the rules
rulesets.scopeInvalid=The scope could not be parsed as a regular expression
rulesets.save=Save
rulesets.cancel=Cancel
# Copyright (c) 2022, The Tor Project, Inc.
# 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.categoryTitle=Connection
# Message box
settings.torPreferencesDescription=Tor Browser routes your traffic over the Tor Network, run by thousands of volunteers around the world.
# Status
settings.statusInternetLabel=Internet:
settings.statusInternetTest=Test
settings.statusInternetOnline=Online
settings.statusInternetOffline=Offline
settings.statusTorLabel=Tor Network:
settings.statusTorConnected=Connected
settings.statusTorNotConnected=Not Connected
settings.statusTorBlocked=Potentially Blocked
settings.learnMore=Learn more
# Quickstart
settings.quickstartHeading=Quickstart
settings.quickstartDescription=Quickstart connects Tor Browser to the Tor Network automatically when launched, based on your last used connection settings.
settings.quickstartCheckbox=Always connect automatically
# Bridge settings
settings.bridgesHeading=Bridges
settings.bridgesDescription=Bridges help you access the Tor Network in places where Tor is blocked. Depending on where you are, one bridge may work better than another.
settings.bridgeLocation=Your location
settings.bridgeLocationAutomatic=Automatic
settings.bridgeLocationFrequent=Frequently selected locations
settings.bridgeLocationOther=Other locations
settings.bridgeChooseForMe=Choose a Bridge For Me…
settings.bridgeCurrent=Your Current Bridges
settings.bridgeCurrentDescription=You can keep one or more bridges saved, and Tor will choose which one to use when you connect. Tor will automatically switch to use another bridge when needed.
# Translation note: %1$S = bridge type; %2$S = bridge emoji id
settings.bridgeId=%1$S bridge: %2$S
settings.remove=Remove
settings.bridgeDisableBuiltIn=Disable built-in bridges
settings.bridgeShare=Share this bridge using the QR code or by copying its address:
settings.bridgeCopy=Copy Bridge Address
settings.copied=Copied!
settings.bridgeShowAll=Show All Bridges
settings.bridgeRemoveAll=Remove All Bridges
settings.bridgeAdd=Add a New Bridge
settings.bridgeSelectBrowserBuiltin=Choose from one of Tor Browser’s built-in bridges
settings.bridgeSelectBuiltin=Select a Built-In Bridge…
settings.bridgeRequestFromTorProject=Request a bridge from torproject.org
settings.bridgeRequest=Request a Bridge…
settings.bridgeEnterKnown=Enter a bridge address you already know
settings.bridgeAddManually=Add a Bridge Manually…
# Advanced settings
settings.advancedHeading=Advanced
settings.advancedLabel=Configure how Tor Browser connects to the internet
settings.advancedButton=Settings…
settings.showTorDaemonLogs=View the Tor logs
settings.showLogs=View Logs…
# Remove all bridges dialog
settings.removeBridgesQuestion=Remove all the bridges?
settings.removeBridgesWarning=This action cannot be undone.
settings.cancel=Cancel
# Scan bridge QR dialog
settings.scanQrTitle=Scan the QR code
# Builtin bridges dialog
settings.builtinBridgeTitle=Built-In Bridges
settings.builtinBridgeHeader=Select a Built-In Bridge
settings.builtinBridgeDescription=Tor Browser includes some specific types of bridges known as “pluggable transports”.
settings.builtinBridgeObfs4=obfs4
settings.builtinBridgeObfs4Description=obfs4 is a type of built-in bridge that makes your Tor traffic look random. They are also less likely to be blocked than their predecessors, obfs3 bridges.
settings.builtinBridgeSnowflake=Snowflake
settings.builtinBridgeSnowflakeDescription=Snowflake is a built-in bridge that defeats censorship by routing your connection through Snowflake proxies, ran by volunteers.
settings.builtinBridgeMeekAzure=meek-azure
settings.builtinBridgeMeekAzureDescription=meek-azure is a built-in bridge that makes it look like you are using a Microsoft web site instead of using Tor.
# Request bridges dialog
settings.requestBridgeDialogTitle=Request Bridge
settings.submitCaptcha=Submit
settings.contactingBridgeDB=Contacting BridgeDB. Please Wait.
settings.solveTheCaptcha=Solve the CAPTCHA to request a bridge.
settings.captchaTextboxPlaceholder=Enter the characters from the image
settings.incorrectCaptcha=The solution is not correct. Please try again.
# Provide bridge dialog
settings.provideBridgeTitle=Provide Bridge
settings.provideBridgeHeader=Enter bridge information from a trusted source
settings.provideBridgePlaceholder=type address:port (one per line)
# Connection settings dialog
settings.connectionSettingsDialogTitle=Connection Settings
settings.connectionSettingsDialogHeader=Configure how Tor Browser connects to the Internet
settings.useLocalProxy=I use a proxy to connect to the Internet
settings.proxyType=Proxy Type
settings.proxyTypeSOCKS4=SOCKS4
settings.proxyTypeSOCKS5=SOCKS5
settings.proxyTypeHTTP=HTTP/HTTPS
settings.proxyAddress=Address
settings.proxyAddressPlaceholder=IP address or hostname
settings.proxyPort=Port
settings.proxyUsername=Username
settings.proxyPassword=Password
settings.proxyUsernamePasswordPlaceholder=Optional
settings.useFirewall=This computer goes through a firewall that only allows connections to certain ports
settings.allowedPorts=Allowed Ports
settings.allowedPortsPlaceholder=Comma-seperated values
# Log dialog
settings.torLogDialogTitle=Tor Logs
settings.copyLog=Copy Tor Log to Clipboard
# Copyright (c) 2022, The Tor Project, Inc.
# 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/.
torConnect.torConnect=Connect to Tor
torConnect.torConnecting=Establishing a Connection
torConnect.torNotConnectedConcise=Not Connected
torConnect.torConnectingConcise=Connecting…
torConnect.tryingAgain=Trying again…
torConnect.noInternet=Tor Browser couldn’t reach the Internet
torConnect.noInternetDescription=This could be due to a connection issue rather than Tor being blocked. Check your Internet connection, proxy and firewall settings before trying again.
torConnect.torBootstrapFailed=Tor failed to establish a Tor network connection.
torConnect.couldNotConnect=Tor Browser could not connect to Tor
# Translation note: used as a text to insert as a link on several strings (%S)
torConnect.configureConnection=configure your connection
# Translation note: %S = "configure your connection" link
torConnect.assistDescription=If Tor is blocked in your location, trying a bridge may help. Connection assist can choose one for you using your location, or you can %S manually instead.
torConnect.tryingBridge=Trying a bridge…
torConnect.tryingBridgeAgain=Trying one more time…
torConnect.errorLocation=Tor Browser couldn’t locate you
# Translation note: %S = "configure your connection" link
torConnect.errorLocationDescription=Tor Browser needs to know your location in order to choose the right bridge for you. If you’d rather not share your location, %S manually instead.
torConnect.isLocationCorrect=Are these location settings correct?
# Translation note: %S = "configure your connection" link
torConnect.isLocationCorrectDescription=Tor Browser still couldn’t connect to Tor. Please check your location settings are correct and try again, or %S instead.
torConnect.finalError=Tor Browser still cannot connect
torConnect.finalErrorDescription=Despite its best efforts, connection assist was not able to connect to Tor. Try troubleshooting your connection and adding a bridge manually instead.
torConnect.breadcrumbAssist=Connection assist
torConnect.breadcrumbLocation=Location settings
torConnect.breadcrumbTryBridge=Try a bridge
torConnect.restartTorBrowser=Restart Tor Browser
torConnect.torConfigure=Configure Connection…
torConnect.viewLog=View logs…
torConnect.torConnectButton=Connect
torConnect.cancel=Cancel
torConnect.torConnected=Connected to the Tor network!
torConnect.torConnectedConcise=Connected
torConnect.tryAgain=Try Again
torConnect.connectMessage=Changes to Tor Settings will not take effect until you connect
torConnect.tryAgainMessage=Tor Browser has failed to establish a connection to the Tor Network
torConnect.yourLocation=Your Location
torConnect.unblockInternetIn=Unblock the Internet in
torConnect.tryBridge=Try a Bridge
torConnect.automatic=Automatic
torConnect.selectCountryRegion=Select Country or Region
torConnect.frequentLocations=Frequently selected locations
torConnect.otherLocations=Other locations
torConnect.offline=Internet not reachable
torConnect.autoBootstrappingFailed=Automatic configuration failed
torConnect.autoBootstrappingAllFailed=None of the configurations we tried worked
torConnect.cannotDetermineCountry=Unable to determine user country
torConnect.noSettingsForCountry=No settings available for your location
<!-- Copyright (c) 2022, The Tor Project, Inc.
- 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/. -->
<!ENTITY torbutton.context_menu.new_circuit "New Tor Circuit for this Site">
<!ENTITY torbutton.context_menu.new_circuit_sentence_case "New Tor circuit for this site">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
<!ENTITY torbutton.circuit_display.title "Tor Circuit">
<!ENTITY torbutton.circuit_display.new_circuit "New Circuit for this Site">
<!-- Onion services strings. Strings are kept here for ease of translation. -->
<!ENTITY torbutton.onionServices.authPrompt.tooltip "Open onion service client authentication prompt">
<!ENTITY torbutton.onionServices.authPrompt.persistCheckboxLabel "Remember this key">
# Copyright (c) 2022, The Tor Project, Inc.
# 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/.
# Circuit display
torbutton.circuit_display.this_browser = This browser
torbutton.circuit_display.relay = Relay
torbutton.circuit_display.tor_bridge = Bridge
torbutton.circuit_display.unknown_country = Unknown country
torbutton.circuit_display.guard = Guard
torbutton.circuit_display.guard_note = Your [Guard] node may not change.
torbutton.circuit_display.learn_more = Learn more
torbutton.circuit_display.click_to_copy = Click to Copy
torbutton.circuit_display.copied = Copied!
# External app blocker
torbutton.popup.external.title = Download an external file type?
torbutton.popup.external.app = Tor Browser cannot display this file. You will need to open it with another application.\n\n
torbutton.popup.external.note = Some types of files can cause applications to connect to the Internet without using Tor.\n\n
torbutton.popup.external.suggest = To be safe, you should only open downloaded files while offline, or use a Tor Live CD such as Tails.\n
torbutton.popup.launch = Download file
torbutton.popup.cancel = Cancel
torbutton.popup.dontask = Automatically download files from now on
# .Onion Page Info prompt.
pageInfo_OnionEncryptionWithBitsAndProtocol=Connection Encrypted (Onion Service, %1$S, %2$S bit keys, %3$S)
pageInfo_OnionEncryption=Connection Encrypted (Onion Service)
# Shared between Onion Auth prompt and preferences
onionServices.learnMore=Learn more
# Onion Services Authentication prompt
# LOCALIZATION NOTE: %S will be replaced with the .onion address.
onionServices.authPrompt.description2=%S is requesting that you authenticate.
onionServices.authPrompt.keyPlaceholder=Enter your private key for this onion service
onionServices.authPrompt.done=Done
onionServices.authPrompt.doneAccessKey=d
onionServices.authPrompt.invalidKey=Please enter a valid key (52 base32 characters or 44 base64 characters)
onionServices.authPrompt.failedToSetKey=Unable to configure Tor with your key
# Onion Services Authentication preferences
onionServices.authPreferences.header=Onion Services Authentication
onionServices.authPreferences.overview=Some onion services require that you identify yourself with a key (a kind of password) before you can access them.
onionServices.authPreferences.savedKeys=Saved Keys…
onionServices.authPreferences.dialogTitle=Onion Service Keys
onionServices.authPreferences.dialogIntro=Keys for the following onionsites are stored on your computer
onionServices.authPreferences.onionSite=Onionsite
onionServices.authPreferences.onionKey=Key
onionServices.authPreferences.remove=Remove
onionServices.authPreferences.removeAll=Remove All
onionServices.authPreferences.failedToGetKeys=Unable to retrieve keys from tor
onionServices.authPreferences.failedToRemoveKey=Unable to remove key
# Onion services error strings.
onionServices.errorPage.browser=Browser
onionServices.errorPage.network=Network
onionServices.errorPage.onionSite=Onionsite
# LOCALIZATION NOTE: In the longDescription strings, %S will be replaced with
# an error code, e.g., 0xF3.
# Tor SOCKS error 0xF0:
onionServices.descNotFound.pageTitle=Problem Loading Onionsite
onionServices.descNotFound.header=Onionsite Not Found
onionServices.descNotFound=The most likely cause is that the onionsite is offline. Contact the onionsite administrator.
onionServices.descNotFound.longDescription=Details: %S — The requested onion service descriptor can't be found on the hashring and therefore the service is not reachable by the client.
# Tor SOCKS error 0xF1:
onionServices.descInvalid.pageTitle=Problem Loading Onionsite
onionServices.descInvalid.header=Onionsite Cannot Be Reached
onionServices.descInvalid=The onionsite is unreachable due an internal error.
onionServices.descInvalid.longDescription=Details: %S — The requested onion service descriptor can't be parsed or signature validation failed.
# Tor SOCKS error 0xF2:
onionServices.introFailed.pageTitle=Problem Loading Onionsite
onionServices.introFailed.header=Onionsite Has Disconnected
onionServices.introFailed=The most likely cause is that the onionsite is offline. Contact the onionsite administrator.
onionServices.introFailed.longDescription=Details: %S — Introduction failed, which means that the descriptor was found but the service is no longer connected to the introduction point. It is likely that the service has changed its descriptor or that it is not running.
# Tor SOCKS error 0xF3:
onionServices.rendezvousFailed.pageTitle=Problem Loading Onionsite
onionServices.rendezvousFailed.header=Unable to Connect to Onionsite
onionServices.rendezvousFailed=The onionsite is busy or the Tor network is overloaded. Try again later.
onionServices.rendezvousFailed.longDescription=Details: %S — The client failed to rendezvous with the service, which means that the client was unable to finalize the connection.
# Tor SOCKS error 0xF4:
onionServices.clientAuthMissing.pageTitle=Authorization Required
onionServices.clientAuthMissing.header=Onionsite Requires Authentication
onionServices.clientAuthMissing=Access to the onionsite requires a key but none was provided.
onionServices.clientAuthMissing.longDescription=Details: %S — The client downloaded the requested onion service descriptor but was unable to decrypt its content because client authorization information is missing.
# Tor SOCKS error 0xF5:
onionServices.clientAuthIncorrect.pageTitle=Authorization Failed
onionServices.clientAuthIncorrect.header=Onionsite Authentication Failed
onionServices.clientAuthIncorrect=The provided key is incorrect or has been revoked. Contact the onionsite administrator.
onionServices.clientAuthIncorrect.longDescription=Details: %S — The client was able to download the requested onion service descriptor but was unable to decrypt its content using the provided client authorization information. This may mean that access has been revoked.
# Tor SOCKS error 0xF6:
onionServices.badAddress.pageTitle=Problem Loading Onionsite
onionServices.badAddress.header=Invalid Onionsite Address
onionServices.badAddress=The provided onionsite address is invalid. Please check that you entered it correctly.
onionServices.badAddress.longDescription=Details: %S — The provided .onion address is invalid. This error is returned due to one of the following reasons: the address checksum doesn't match, the ed25519 public key is invalid, or the encoding is invalid.
# Tor SOCKS error 0xF7:
onionServices.introTimedOut.pageTitle=Problem Loading Onionsite
onionServices.introTimedOut.header=Onionsite Circuit Creation Timed Out
onionServices.introTimedOut=Failed to connect to the onionsite, possibly due to a poor network connection.
onionServices.introTimedOut.longDescription=Details: %S — The connection to the requested onion service timed out while trying to build the rendezvous circuit.
# Profile/startup error messages.
# LOCALIZATION NOTE: %S is the application name.
profileProblemTitle=%S Profile Problem
profileReadOnly=You cannot run %S from a read-only file system. Please copy %S to another location before trying to use it.
profileReadOnlyMac=You cannot run %S from a read-only file system. Please copy %S to your Desktop or Applications folder before trying to use it.
profileAccessDenied=%S does not have permission to access the profile. Please adjust your file system permissions and try again.
# New identity warning
torbutton.popup.no_newnym = Torbutton cannot safely give you a new identity. It does not have access to the Tor Control Port.\n\nAre you running Tor Browser Bundle?
## Legacy
# Preferences for mobile: these strings are still referenced, but we should
# check whether this feature is still used
torbutton.security_settings.menu.title = Security Settings
# Other legacy stuff we might just remove since we are using letterbox
torbutton.maximize_warning = Maximizing Tor Browser can allow websites to determine your monitor size, which can be used to track you. We recommend that you leave Tor Browser windows in their original default size.
# Copyright (c) 2022, The Tor Project, Inc.
# 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/.
torlauncher.error_title=Tor Launcher
torlauncher.tor_exited_during_startup=Tor exited during startup. This might be due to an error in your torrc file, a bug in Tor or another program on your system, or faulty hardware. Until you fix the underlying problem and restart Tor, Tor Browser will not start.
torlauncher.tor_exited=Tor unexpectedly exited. This might be due to a bug in Tor itself, another program on your system, or faulty hardware. Until you restart Tor, Tor Browser will not be able to reach any websites. If the problem persists, please send a copy of your Tor Log to the support team.
torlauncher.tor_exited2=Restarting Tor will not close your browser tabs.
torlauncher.restart_tor=Restart Tor
torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
torlauncher.tor_bootstrap_failed=Tor failed to establish a Tor network connection.
torlauncher.tor_bootstrap_failed_details=%1$S failed (%2$S).
torlauncher.unable_to_start_tor=Unable to start Tor.\n\n%S
torlauncher.tor_missing=The Tor executable is missing.
torlauncher.torrc_missing=The torrc file is missing and could not be created.
torlauncher.datadir_missing=The Tor data directory does not exist and could not be created.
torlauncher.onionauthdir_missing=The Tor onion authentication directory does not exist and could not be created.
torlauncher.password_hash_missing=Failed to get hashed password.
torlauncher.bootstrapStatus.starting=Starting
torlauncher.bootstrapStatus.conn_pt=Connecting to bridge
torlauncher.bootstrapStatus.conn_done_pt=Connected to bridge
torlauncher.bootstrapStatus.conn_proxy=Connecting to proxy
torlauncher.bootstrapStatus.conn_done_proxy=Connected to proxy
torlauncher.bootstrapStatus.conn=Connecting to a Tor relay
torlauncher.bootstrapStatus.conn_done=Connected to a Tor relay
torlauncher.bootstrapStatus.handshake=Negotiating with a Tor relay
torlauncher.bootstrapStatus.handshake_done=Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.onehop_create=Establishing an encrypted directory connection
torlauncher.bootstrapStatus.requesting_status=Retrieving network status
torlauncher.bootstrapStatus.loading_status=Loading network status
torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
torlauncher.bootstrapStatus.enough_dirinfo=Finished loading relay information
torlauncher.bootstrapStatus.ap_conn_pt=Building circuits: Connecting to bridge
torlauncher.bootstrapStatus.ap_conn_done_pt=Building circuits: Connected to bridge
torlauncher.bootstrapStatus.ap_conn_proxy=Building circuits: Connecting to proxy
torlauncher.bootstrapStatus.ap_conn_done_proxy=Building circuits: Connected to proxy
torlauncher.bootstrapStatus.ap_conn=Building circuits: Connecting to a Tor relay
torlauncher.bootstrapStatus.ap_conn_done=Building circuits: Connected to a Tor relay
torlauncher.bootstrapStatus.ap_handshake=Building circuits: Negotiating with a Tor relay
torlauncher.bootstrapStatus.ap_handshake_done=Building circuits: Finished negotiating with a Tor relay
torlauncher.bootstrapStatus.circuit_create=Building circuits: Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
torlauncher.bootstrapWarning.done=done
torlauncher.bootstrapWarning.connectrefused=connection refused
torlauncher.bootstrapWarning.misc=miscellaneous
torlauncher.bootstrapWarning.resourcelimit=insufficient resources
torlauncher.bootstrapWarning.identity=identity mismatch
torlauncher.bootstrapWarning.timeout=connection timeout
torlauncher.bootstrapWarning.noroute=no route to host
torlauncher.bootstrapWarning.ioerror=read/write error
torlauncher.bootstrapWarning.pt_missing=missing pluggable transport
torlauncher.nsresult.NS_ERROR_NET_RESET=The connection to the server was lost.
torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=Could not connect to the server.
torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=Could not connect to the proxy.
......@@ -18,6 +18,17 @@ torbutton.jar:
% resource torbutton-abouttor resource://torbutton/content/aboutTor/resources/ contentaccessible=yes
% resource torbutton-assets resource://torbutton/skin/ contentaccessible=yes
# browser branding
% override chrome://branding/locale/brand.dtd chrome://torbutton/locale/brand.dtd
% override chrome://branding/locale/brand.properties chrome://torbutton/locale/brand.properties
% category l10n-registry torbutton resource://torbutton/locale/{locale}/
# Strings for the about:tbupdate page
% override chrome://browser/locale/aboutTBUpdate.dtd chrome://torbutton/locale/aboutTBUpdate.dtd
% locale torbutton en-US %locale/en-US/
locale/en-US/ (chrome/locale/en-US/*)
% skin torbutton classic/1.0 %skin/
# Firefox 4-style component registration
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment