--- a/browser/components/uitour/test/browser_UITour_availableTargets.js
+++ b/browser/components/uitour/test/browser_UITour_availableTargets.js
@@ -152,16 +152,15 @@ var pageActionsHelper = {
action.shownInUrlbar = originalState;
}
this._originalStates = null;
}
};
function ensureScreenshotsEnabled() {
SpecialPowers.pushPrefEnv({ set: [
- [ "extensions.screenshots.system", false ],
+ [ "extensions.screenshots.disabled", false ],
[ "extensions.screenshots.system-disabled", false ]
]});
return BrowserTestUtils.waitForCondition(() => {
- return PageActions.actionForID("screenshots") &&
- !CustomizableUI.getWidget("screenshots_mozilla_org-browser-action");
+ return PageActions.actionForID("screenshots");
}, "Should enable Screenshots");
}
--- a/browser/extensions/screenshots/bootstrap.js
+++ b/browser/extensions/screenshots/bootstrap.js
@@ -1,9 +1,11 @@
/* globals ADDON_DISABLE */
+// TODO: re-enable
+/* eslint-disable */
const OLD_ADDON_PREF_NAME = "extensions.jid1-NeEaf3sAHdKHPA@jetpack.deviceIdInfo";
const OLD_ADDON_ID = "jid1-NeEaf3sAHdKHPA@jetpack";
const ADDON_ID = "screenshots@mozilla.org";
const TELEMETRY_ENABLED_PREF = "datareporting.healthreport.uploadEnabled";
const PREF_BRANCH = "extensions.screenshots.";
const USER_DISABLE_PREF = "extensions.screenshots.disabled";
const SYSTEM_DISABLE_PREF = "extensions.screenshots.system-disabled";
@@ -229,81 +231,54 @@ function handleMessage(msg, sender, send
let photonPageAction;
// If the current Firefox version supports Photon (57 and later), this sets up
// a Photon page action and removes the UI for the WebExtension browser action.
// Does nothing otherwise. Ideally, in the future, WebExtension page actions
// and Photon page actions would be one in the same, but they aren't right now.
function initPhotonPageAction(api, webExtension) {
- // The MOZ_PHOTON_THEME ifdef got removed, but we need to support 55 and 56 as well,
- // so check if the property exists *and* is false before bailing.
- if (typeof AppConstants.MOZ_PHOTON_THEME != "undefined" && !AppConstants.MOZ_PHOTON_THEME) {
- // Photon not supported. Use the WebExtension's browser action.
- return;
- }
-
let id = "screenshots";
let port = null;
- let baseIconPath = addonResourceURI.spec + "webextension/";
let {tabManager} = webExtension.extension;
// Make the page action.
photonPageAction = PageActions.actionForID(id) || PageActions.addAction(new PageActions.Action({
id,
title: "Take a Screenshot",
- iconURL: baseIconPath + "icons/icon-32-v2.svg",
+ iconURL: webExtension.extension.getURL("icons/icon-32-v2.svg"),
_insertBeforeActionID: null,
onCommand(event, buttonNode) {
if (port) {
let browserWin = buttonNode.ownerGlobal;
let tab = tabManager.getWrapper(browserWin.gBrowser.selectedTab);
port.postMessage({
type: "click",
tab: {id: tab.id, url: tab.url}
});
}
},
}));
- // Remove the navbar button of the WebExtension's browser action.
- let cuiWidgetID = "screenshots_mozilla_org-browser-action";
- CustomizableUI.addListener({
- onWidgetAfterCreation(wid, aArea) {
- if (wid == cuiWidgetID) {
- CustomizableUI.destroyWidget(cuiWidgetID);
- CustomizableUI.removeListener(this);
- }
- },
- });
-
// Establish a port to the WebExtension side.
api.browser.runtime.onConnect.addListener((listenerPort) => {
if (listenerPort.name != "photonPageActionPort") {
return;
}
port = listenerPort;
port.onMessage.addListener((message) => {
switch (message.type) {
case "setProperties":
if (message.title) {
photonPageAction.title = message.title;
}
if (message.iconPath) {
- photonPageAction.iconURL = baseIconPath + message.iconPath;
+ photonPageAction.iconURL = webExtension.extension.getURL(message.iconPath);
}
break;
default:
console.error("Unrecognized message:", message);
break;
}
});
-
- // It's necessary to tell the WebExtension not to use its browser action,
- // due to the CUI widget's removal. Otherwise Firefox's WebExtension
- // machinery throws exceptions.
- port.postMessage({
- type: "setUsePhotonPageAction",
- value: true
- });
});
}
--- a/browser/extensions/screenshots/install.rdf
+++ b/browser/extensions/screenshots/install.rdf
@@ -2,19 +2,19 @@
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">
<em:id>screenshots@mozilla.org</em:id>
<em:name>Firefox Screenshots</em:name>
<em:targetApplication>
<Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <!--Firefox-->
- <em:minVersion>51.0a1</em:minVersion>
+ <em:minVersion>57.0a1</em:minVersion>
<em:maxVersion>*</em:maxVersion>
</Description>
</em:targetApplication>
<em:type>2</em:type>
- <em:version>16.1.0</em:version>
+ <em:version>19.0.0</em:version>
<em:bootstrap>true</em:bootstrap>
<em:homepageURL>https://screenshots.firefox.com/</em:homepageURL>
<em:multiprocessCompatible>true</em:multiprocessCompatible>
</Description>
</RDF>
--- a/browser/extensions/screenshots/moz.build
+++ b/browser/extensions/screenshots/moz.build
@@ -115,16 +115,20 @@ FINAL_TARGET_FILES.features['screenshots
FINAL_TARGET_FILES.features['screenshots@mozilla.org']["webextension"]["_locales"]["es_MX"] += [
'webextension/_locales/es_MX/messages.json'
]
FINAL_TARGET_FILES.features['screenshots@mozilla.org']["webextension"]["_locales"]["et"] += [
'webextension/_locales/et/messages.json'
]
+FINAL_TARGET_FILES.features['screenshots@mozilla.org']["webextension"]["_locales"]["eu"] += [
+ 'webextension/_locales/eu/messages.json'
+]
+
FINAL_TARGET_FILES.features['screenshots@mozilla.org']["webextension"]["_locales"]["fa"] += [
'webextension/_locales/fa/messages.json'
]
FINAL_TARGET_FILES.features['screenshots@mozilla.org']["webextension"]["_locales"]["fi"] += [
'webextension/_locales/fi/messages.json'
]
@@ -368,17 +372,18 @@ FINAL_TARGET_FILES.features['screenshots
'webextension/icons/icon-welcome-face-without-eyes.svg',
'webextension/icons/menu-fullpage.svg',
'webextension/icons/menu-myshot-white.svg',
'webextension/icons/menu-myshot.svg',
'webextension/icons/menu-visible.svg',
'webextension/icons/onboarding-1.png',
'webextension/icons/onboarding-2.png',
'webextension/icons/onboarding-3.png',
- 'webextension/icons/onboarding-4.png'
+ 'webextension/icons/onboarding-4.png',
+ 'webextension/icons/onboarding-5.png'
]
FINAL_TARGET_FILES.features['screenshots@mozilla.org']["webextension"]["onboarding"] += [
'webextension/onboarding/slides.html',
'webextension/onboarding/slides.js'
]
FINAL_TARGET_FILES.features['screenshots@mozilla.org']["webextension"]["selector"] += [
deleted file mode 100644
--- a/browser/extensions/screenshots/test/browser/.eslintrc.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = {
- "extends": [
- "plugin:mozilla/browser-test"
- ]
-}
new file mode 100644
--- /dev/null
+++ b/browser/extensions/screenshots/test/browser/.eslintrc.yml
@@ -0,0 +1,10 @@
+env:
+ node: true
+
+# TODO: re-enable
+#extends:
+# - plugin:mozilla/browser-test
+
+rules:
+ no-unused-vars: off
+ no-undef: off
--- a/browser/extensions/screenshots/test/browser/browser_screenshots_ui_check.js
+++ b/browser/extensions/screenshots/test/browser/browser_screenshots_ui_check.js
@@ -1,25 +1,25 @@
+/* eslint disable */
"use strict";
+const BUTTON_ID = "pageAction-panel-screenshots";
+
function checkElements(expectPresent, l) {
for (let id of l) {
is(!!document.getElementById(id), expectPresent, "element " + id + (expectPresent ? " is" : " is not") + " present");
}
}
add_task(async function() {
await promiseScreenshotsEnabled();
registerCleanupFunction(async function() {
await promiseScreenshotsReset();
});
- let onPhoton = (typeof AppConstants.MOZ_PHOTON_THEME == "undefined") ||
- AppConstants.MOZ_PHOTON_THEME;
- let id = onPhoton ? "pageAction-panel-screenshots" : "screenshots_mozilla_org-browser-action";
await BrowserTestUtils.waitForCondition(
- () => document.getElementById(id),
+ () => document.getElementById(BUTTON_ID),
"Screenshots button should be present", 100, 100);
- checkElements(true, [id]);
+ checkElements(true, [BUTTON_ID]);
});
--- a/browser/extensions/screenshots/test/browser/head.js
+++ b/browser/extensions/screenshots/test/browser/head.js
@@ -10,69 +10,43 @@ let enabledOnStartup = false;
function promiseScreenshotsEnabled() {
if (!Services.prefs.getBoolPref("extensions.screenshots.system-disabled", false)) {
info("Screenshots was already enabled, assuming enabled by default for tests");
enabledOnStartup = true;
return Promise.resolve(true);
}
info("Screenshots is not enabled");
return new Promise((resolve, reject) => {
- if (AppConstants.hasOwnProperty("MOZ_PHOTON_THEME") && !AppConstants.MOZ_PHOTON_THEME) {
- let listener = {
- onWidgetAfterCreation(widgetid) {
- if (widgetid == "screenshots_mozilla_org-browser-action") {
- info("screenshots_mozilla_org-browser-action button created");
- CustomizableUI.removeListener(listener);
- resolve(false);
- }
- }
+ let interval = setInterval(() => {
+ let action = PageActions.actionForID("screenshots");
+ if (action) {
+ info("screenshots page action created");
+ clearInterval(interval);
+ resolve(false);
}
- CustomizableUI.addListener(listener);
- } else {
- let interval = setInterval(() => {
- let action = PageActions.actionForID("screenshots");
- if (action) {
- info("screenshots page action created");
- clearInterval(interval);
- resolve(false);
- }
- }, 100);
- }
+ }, 100);
info("Set Screenshots disabled pref to false.");
Services.prefs.setBoolPref("extensions.screenshots.system-disabled", false);
});
}
function promiseScreenshotsDisabled() {
if (Services.prefs.getBoolPref("extensions.screenshots.system-disabled", false)) {
info("Screenshots already disabled");
return Promise.resolve(true);
}
return new Promise((resolve, reject) => {
- if (AppConstants.hasOwnProperty("MOZ_PHOTON_THEME") && !AppConstants.MOZ_PHOTON_THEME) {
- let listener = {
- onWidgetDestroyed(widgetid) {
- if (widgetid == "screenshots_mozilla_org-browser-action") {
- CustomizableUI.removeListener(listener);
- info("screenshots_mozilla_org-browser-action destroyed");
- resolve(false);
- }
- }
+ let interval = setInterval(() => {
+ let action = PageActions.actionForID("screenshots");
+ if (!action) {
+ info("screenshots page action removed");
+ clearInterval(interval);
+ resolve(false);
}
- CustomizableUI.addListener(listener);
- } else {
- let interval = setInterval(() => {
- let action = PageActions.actionForID("screenshots");
- if (!action) {
- info("screenshots page action removed");
- clearInterval(interval);
- resolve(false);
- }
- }, 100);
- }
+ }, 100);
info("Set Screenshots disabled pref to true.");
Services.prefs.setBoolPref("extensions.screenshots.system-disabled", true);
});
}
function promiseScreenshotsReset() { // eslint-disable-line no-unused-vars
if (enabledOnStartup) {
info("Reset is enabling Screenshots addon");
--- a/browser/extensions/screenshots/webextension/_locales/ach/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/ach/messages.json
@@ -68,35 +68,35 @@
"message": "Yer mamegi tidi tutwal"
},
"genericErrorTitle": {
"message": "Woo! Firefox Screenshots opo oo."
},
"genericErrorDetails": {
"message": "Pe wa ngeyo ngo ma otime kombedi. Iromo temo ne doki onyo mako cal pa potbuk mukene?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Maki, gwoki, ki nywak cal me wang kio labongo weko Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "Mak ngo ma imito keken"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Dii ka i ywar me mako cal pa but potbuk keken. Itwero bene wot iwiye me wero yer mamegi."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Mak dirica onyo Potbuk weng"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Yer mapeca ma i tung lacuc malo me mako kabedo ma nen i dirica onyo me mako potbuk weng."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Kit ma imito"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Gwok cal mamegi ma ki ngolo ii Kakube pi nywako i yoo ma yot, onyo gamo gi i kompiuta ni. Itwero bene diyo mapeca me Cal Na me nongo cal ma i mako weng."
},
"tourSkip": {
"message": "Kal"
},
"tourNext": {
"message": "Cal malubo"
},
--- a/browser/extensions/screenshots/webextension/_locales/ar/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/ar/messages.json
@@ -74,35 +74,35 @@
"message": "نأسف على الإزعاج. نعمل على هذه الخاصية للإصدارات اللاحقة."
},
"genericErrorTitle": {
"message": "هناك عطل في «لقطات شاشة فَيَرفُكس»."
},
"genericErrorDetails": {
"message": "لسنا متأكدين ما المشكلة. أتمانع إعادة المحاولة أو أخذ لقطة لصفحة أخرى؟"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "خذ لقطات الشاشة و احفظها و شاركها دون مغادرة فَيَرفُكس."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "التقط ما تريده فقط"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "انقر و اسحب لالتقاط جزء معين من الصفحة. يمكنك أيضًا التحويم لإبراز التحديد."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "التقط النوافذ أو صفحات كاملة"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "اختر الأزرار في أعلى اليمين لالتقاط المنطقة المرئية في النافذة أو الصفحة كلها."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "كما تريدها"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "احفظ اللقطات التي أخذتها على الوب لمشاركتها بسهولة، أو نزّلها على حاسوبك. يمكنك أيضًل النقر على زر ”لقطاتي“ للعثور على كل اللقطات التي أخذتها."
},
"tourSkip": {
"message": "تخطَّ"
},
"tourNext": {
"message": "الشريحة التالية"
},
--- a/browser/extensions/screenshots/webextension/_locales/ast/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/ast/messages.json
@@ -1,12 +1,18 @@
{
"addonAuthorsList": {
"message": "Mozilla <screenshots-feedback@mozilla.com>"
},
+ "contextMenuLabel": {
+ "message": "Facer una captura"
+ },
+ "myShotsLink": {
+ "message": "Les mios captures"
+ },
"saveScreenshotSelectedArea": {
"message": "Guardar"
},
"saveScreenshotVisibleArea": {
"message": "Guardar lo visible"
},
"saveScreenshotFullPage": {
"message": "Guardar la páxina completa"
@@ -15,18 +21,36 @@
"message": "Encaboxar"
},
"downloadScreenshot": {
"message": "Baxar"
},
"notificationLinkCopiedTitle": {
"message": "Copióse l'enllaz"
},
+ "requestErrorDetails": {
+ "message": "¡Perdón, pero nun pudimos guardar la to captura! Volvi tentalo más sero, por favor."
+ },
"unshootablePageErrorTitle": {
"message": "Nun pue capturase esta páxina."
},
"unshootablePageErrorDetails": {
"message": "Esta páxina web nun ye estándar, asina que nun pues capturala."
},
+ "tourHeaderClickAndDrag": {
+ "message": "Captura lo que quies"
+ },
+ "tourHeaderDownloadUpload": {
+ "message": "Como te preste"
+ },
+ "tourSkip": {
+ "message": "SALTAR"
+ },
"tourDone": {
"message": "Fecho"
+ },
+ "termsAndPrivacyNoticeTermsLink": {
+ "message": "Términos"
+ },
+ "libraryLabel": {
+ "message": "Captures de pantalla"
}
}
\ No newline at end of file
--- a/browser/extensions/screenshots/webextension/_locales/az/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/az/messages.json
@@ -74,35 +74,35 @@
"message": "Narahatlıq üçün üzr istəyirik. Gələcək buraxılışlarda bu özəllik üzərində işləyirik."
},
"genericErrorTitle": {
"message": "Off! Firefox Screenshots dəli olub."
},
"genericErrorDetails": {
"message": "Nə baş verdiyindən əmin deyilik. Bir daha yoxlayın və ya başqa səhifənin ekran görüntüsünü alaraq işləyib işləmədiyinə əmin olun."
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Firefoxu tərk etmədən ekran görüntüləri alın, saxlayın və paylaşın."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "İstədiyiniz hər şeyin görüntüsünü alın"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Səhifənin hər hansı bir hissəsini almaq üçün basın və ya sürüşdürün. Seçiminizi işıqlandırmaq üçün üzərinə gedin."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Pəncərəni və ya bütün səhifəni çəkin"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Sadəcə pəncərədə görünən hissəni və ya bütün səhifəni çəkmək üçün sağ üstdəki düymələrdən birini seçin."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "İstədiyiniz kimi"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Kəsdiyiniz hissələri rahat paylaşmaq üçün internetdə saxlayın və ya kompüterinizə endirin. Həmçinin Ekran Görüntülərim düyməsinə basaraq çəkdiyiniz bütün ekran görüntülərini görə bilərsiz."
},
"tourSkip": {
"message": "Ötür"
},
"tourNext": {
"message": "Növbəti Slayd"
},
--- a/browser/extensions/screenshots/webextension/_locales/be/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/be/messages.json
@@ -74,35 +74,35 @@
"message": "Прабачце за нязручнасць. Мы працуем над даданнем гэтай магчымасці у будучыя выпускі."
},
"genericErrorTitle": {
"message": "Вой! З Firefox Screenshots нешта не так."
},
"genericErrorDetails": {
"message": "Мы не ўпэўненыя, у чым праблема. Паспрабаваць яшчэ раз, ці зрабіць здымак іншай старонкі?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Рабіце здымкі экрана, захоўвайце і дзяліцеся імі не выходзячы з Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "Рабіце скрыншоты чаго заўгодна"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Пстрыкніце і пацягніце мышшу для захопу часткі старонкі. Вы таксама можаце навесці курсор мышы для падсвятлення абранай вобласці."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Рабіце захоп вокнаў або цэлых старонак"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "З дапамогай кнопак у верхнім правым куце выбірайце захоп бачнай вобласці акна або старонкі цалкам."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Як вам падабаецца"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Захоўваеце свае здымкі ў Інтэрнэце, каб лёгка імі дзяліцца, або загружайце іх на свой камп'ютар. Вы таксама можаце прагледзець усе захаваныя здымкі, націснуўшы на кнопку Мае здымкі."
},
"tourSkip": {
"message": "Прапусьціць"
},
"tourNext": {
"message": "Наступны слайд"
},
--- a/browser/extensions/screenshots/webextension/_locales/bg/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/bg/messages.json
@@ -74,35 +74,35 @@
"message": "Съжаляваме за неудобството. Очаквайте тази възможност в бъдещите версии."
},
"genericErrorTitle": {
"message": "Леле! Нещо се обърка с Firefox Screenshots."
},
"genericErrorDetails": {
"message": "Не сме сигурни какво точно се случи. Може да опитате отново, както и да снимате друга страница."
},
- "tourBodyOne": {
- "message": "Правете, запазвайте и споделяйте снимки на екрана без да напускате Firefox."
+ "tourBodyIntro": {
+ "message": "Създавайте, запазвайте и споделяйте снимки на екрана без да напускате Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "Уловете само нужното"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Щракнете с мишката или влачете, за да уловите части от страницата. А когато посочите елементи от страницата – те се осветяват."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Улавяйте прозорци и цели страници"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Използвайте бутоните в горния десен ъгъл, за да уловите само видимата част или цялата страница."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Както ви харесва"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Запазвайте снимките на страници от Мрежата, за да ги споделяте по-лесно или ги изтегляйте на компютъра си. А бутонът „Моите снимки“ ще ви покаже всички направени от вас снимки."
},
"tourSkip": {
"message": "Пропускане"
},
"tourNext": {
"message": "Напред"
},
--- a/browser/extensions/screenshots/webextension/_locales/bn_BD/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/bn_BD/messages.json
@@ -74,35 +74,35 @@
"message": "অসুবিধার জন্য দুঃখিত। আমরা এই বৈশিষ্ট্যটি নিয়ে কাজ করছি, খুব শীঘ্রই রিলিজ করা হবে।"
},
"genericErrorTitle": {
"message": "আয় হায়! Firefox স্ক্রিনশট পাগল হয়ে গেছে।"
},
"genericErrorDetails": {
"message": "এই মাত্র কি ঘটেছে আমরা নিশ্চিত নই। আপনি কি অনুগ্রহ করে পুরনায় সট নেবেন কিংবা ভিন্ন একটি পেজে চেষ্টা করবেন?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Firefox ত্যাগ করা ছাড়াই স্ক্রিনশট তোল, সংরক্ষণ কর এবং শেয়ার কর।"
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "ক্যাপচার করুন আপনি যা চান"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "একটি পেজের কিয়দংশ ক্যাপচার করতে ক্লিক করে ড্রাগ করুন। অতঃপর আপনি মাউজ হোভার করে আপনার নির্বাচিত অংশ হাইলাইট করতে পারবেন।"
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "উইন্ডো ক্যাপচার করুন অথবা পুরো পেজ"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "ইউন্ডোতে দৃশ্যমান অংশ অথবা সম্পূর্ণ পেজ ক্যাপচার করতে উপরে ডানদিকের বাটনগুলো থেকে নির্বাচন করুন।"
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "আপনি যেমন পছন্দ করেন"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "আপনার ক্রপ করা সটসমূহ ওয়েবে রাখুন সহজে শেয়ার করার সুবিধার্থে, অথবা আপনার কম্পিউটারে ডাউনলোড করুন। আপনার সকল সটসমূহ খুঁজে পেতে আমার সটসমূহ বাটনে ক্লিক করুন।"
},
"tourSkip": {
"message": "এড়িয়ে যান"
},
"tourNext": {
"message": "পরবর্তী স্লাইড"
},
--- a/browser/extensions/screenshots/webextension/_locales/ca/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/ca/messages.json
@@ -74,35 +74,35 @@
"message": "Perdoneu les molèsties. Estem treballant en aquesta característica per a versions futures."
},
"genericErrorTitle": {
"message": "El Firefox Screenshots ha tingut un problema."
},
"genericErrorDetails": {
"message": "S'ha produït un error inesperat. Torneu-ho a provar o captureu una altra pàgina."
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Feu, deseu i compartiu captures de pantalla sense sortir del Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "Captureu tot allò que vulgueu"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Feu clic i arrossegueu per capturar només una part de la pàgina. També podeu moure el ratolí per sobre per ressaltar la vostra selecció."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Captureu la finestra o la pàgina sencera"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Seleccioneu amb els botons de la part superior dreta si voleu capturar l'àrea visible de la finestra o la pàgina sencera."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Com vulgueu"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Deseu les vostres captures al web per compartir-les fàcilment o baixeu-les a l'ordinador. També podeu fer clic al botó «Les meves captures» per veure totes les captures que heu fet."
},
"tourSkip": {
"message": "OMET"
},
"tourNext": {
"message": "Diapositiva següent"
},
--- a/browser/extensions/screenshots/webextension/_locales/cak/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/cak/messages.json
@@ -74,35 +74,41 @@
"message": "Takuyu' chi qe ruma ri k'ayewal. Tajin niqasamajij re rub'anikil re' richin ri ch'aqa' chik taq ruwäch."
},
"genericErrorTitle": {
"message": "¡Itz! Itzel xe'el ri Firefox Chapoj Wachib'äl."
},
"genericErrorDetails": {
"message": "Man öj jikïl chi rij ri xk'ulwachitäj. ¿La nawajo' natojtob'ej chik o nachäp ruwachib'al jun chik ruxaq?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Ke'achapa', ke'ayaka', chuqa' ke'akomonij chapoj taq wachib'äl rik'in man yatel ta el pa Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderPageAction": {
+ "message": "Jun k'ak'a' rub'anikil richin niyak"
+ },
+ "tourBodyPageAction": {
+ "message": "Tarik'a' ri ruk'utsamaj kisamaj taq ruxaq pa kik'ajtz'ik ochochib'äl xab'achike ramaj toq nawajo' nawelesaj jun chapoj wachib'äl."
+ },
+ "tourHeaderClickAndDrag": {
"message": "Tachapa' ri Nawajo'"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Tapitz'a' chuqa' taqirirej richin nacha' xa jun peraj ruxaq. Chuqa' yatikïr yaq'axaj richin nipe retal ri acha'oj."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Chapoj Tzuwäch o Tz'aqät taq Ruxaq"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Ke'acha' ri ikim ajkiq'a' taq pitz'b'äl richin nachäp ri tz'etel ruk'ojlem tzuwäch o richin nachäp jun tz'aqät ruxaq."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Achi'el Niqa Chawäch"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Ke'ayaka' ri qupin taq awachib'al pa ajk'amaya'l richin man k'ayew ta ye'akomonij o ye'aqasaj pan akematz'ib'. Chuqa' yatikïr napïtz ri Taq Nuwachib'al richin ye'awïl konojel ri taq wachib'al e'elesan."
},
"tourSkip": {
"message": "SKIP"
},
"tourNext": {
"message": "Jun chik Q'axewäch"
},
--- a/browser/extensions/screenshots/webextension/_locales/cs/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/cs/messages.json
@@ -74,35 +74,41 @@
"message": "Omlouváme se za nepříjemnosti. Na této funkci pracujeme pro některé příští vydání."
},
"genericErrorTitle": {
"message": "Jejda! Služba Firefox Screenshots přestala pracovat."
},
"genericErrorDetails": {
"message": "Nejsme si jistí, co se právě stalo. Chcete to zkusit znovu, nebo zkusíte pořídit snímek na jiné stránce?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Pořizujte, ukládejte a sdílejte snímky webových stránek bez opuštění Firefoxu."
},
- "tourHeaderTwo": {
+ "tourHeaderPageAction": {
+ "message": "Nový způsob ukládání"
+ },
+ "tourBodyPageAction": {
+ "message": "Kdykoliv chcete pořídit snímek, otevřete nabídku akcí stránky v adresním řádku."
+ },
+ "tourHeaderClickAndDrag": {
"message": "Zachyťte, cokoliv chcete"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Stiskem tlačítka myši a tahem můžete vybrat oblast stránky. Výběr můžete provést také najetím myši na prvek stránky."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Pořizujte snímky jen částí nebo i celých stránek"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Pomocí tlačítek vpravo nahoře můžete pořídit snímek jen viditelné části nebo úplně celé stránky."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Jak sami chcete"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Uložte si oříznutý snímek stránky na web pro rychlejší sdílení, nebo si ho stáhněte do počítače. Pro zobrazení všech snímků stačí klepnout na tlačítko Mé snímky."
},
"tourSkip": {
"message": "Přeskočit"
},
"tourNext": {
"message": "Další snímek"
},
@@ -125,11 +131,11 @@
},
"termsAndPrivacyNoticeTermsLink": {
"message": "podmínkami"
},
"termsAndPrivacyNoticyPrivacyLink": {
"message": "zásadami ochrany osobních údajů"
},
"libraryLabel": {
- "message": "Screenshots"
+ "message": "Snímky stránek"
}
}
\ No newline at end of file
--- a/browser/extensions/screenshots/webextension/_locales/cy/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/cy/messages.json
@@ -74,35 +74,41 @@
"message": "Ymddiheuriadau am yr anhwylustod. Rydym yn gweithio ar y nodwedd hwn ar gyfer fersiynau'r dyfodol."
},
"genericErrorTitle": {
"message": "Www! Mae Firefox Screenshots wedi mynd yn hurt."
},
"genericErrorDetails": {
"message": "Nid ydym yn gwybod beth sydd wedi ddigwydd. Ceisiwch eto neu dynnu llun o dudalen wahanol?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Cymryd, cadw a rhannu lluniau sgrin heb adael Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderPageAction": {
+ "message": "Ffordd newydd i gadw"
+ },
+ "tourBodyPageAction": {
+ "message": "Ehangwch y ddewislen gweithredoedd tudalen yn y bar cyfeiriad unrhyw bryd fyddwch am gymryd llun sgrin."
+ },
+ "tourHeaderClickAndDrag": {
"message": "Cipio Dim ond Beth Rydych ei Angen"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Cliciwch a llusgo i gipio rhan o dudalen. Gallwch hofran i amlygu eich dewis."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Cipio Ffenestri neu Dudalennau Cyfan"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Dewiswch y botymau ar y dde uchod i gipio ardal gweladwy mewn ffenestr neu i gipio tudalen gyfan."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Yn Ôl eich Dewis"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Cadwch eich lluniau wedi eu golygu i'r We ar gyfer rhannu haws, neu eu llwytho i lawr i'ch cyfrifiadur. Gallwch hefyd glicio ar Fy Lluniau i weld pob llun sydd gennych."
},
"tourSkip": {
"message": "SKIP"
},
"tourNext": {
"message": "Sleid Nesaf"
},
--- a/browser/extensions/screenshots/webextension/_locales/da/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/da/messages.json
@@ -74,35 +74,35 @@
"message": "Vi beklager ulejligheden. Vi arbejder på at få funktionen til at virke i fremtidige udgivelser."
},
"genericErrorTitle": {
"message": "Hov! Noget gik helt galt med Firefox Screenshots."
},
"genericErrorDetails": {
"message": "Vi er ikke sikre på, hvad der lige skete. Vil du prøve igen - eller vil du tage et skærmbillede af en anden side?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Tag, gem og del skærmbilleder uden at forlade Firefox. "
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "Gem lige hvad du vil."
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Klik og træk for at tage et udklip af en del af en side. Du kan også holde markøren over for at fremhæve din markering."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Tag skærmbilleder af vinduer eller hele sider."
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Brug knapperne øverst til højre for at tage et skærmbillede af det synlige område i vinduet eller for at tage et skærmbillede af hele siden."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Som du vil have det."
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Gem dine beskårne skærmbilleder på nettet for nemmere at dele dem - eller hent dem ned på din computer. Du kan også klikke på knappen \"Mine skærmbilleder\" for at finde de skærmbilleder, du har taget."
},
"tourSkip": {
"message": "SPRING OVER"
},
"tourNext": {
"message": "Næste side"
},
--- a/browser/extensions/screenshots/webextension/_locales/de/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/de/messages.json
@@ -74,35 +74,41 @@
"message": "Wir bitten um Entschuldigung für diese Unannehmlichkeiten. Wir arbeiten daran, diese Funktion in zukünftigen Versionen zur Verfügung zu stellen."
},
"genericErrorTitle": {
"message": "Firefox Screenshots funktioniert nicht richtig."
},
"genericErrorDetails": {
"message": "Wir wissen auch nicht, was gerade passiert ist. Könnten Sie das Bildschirmfoto erneut oder auf einer anderen Seite aufnehmen?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Bildschirmfotos aufnehmen, speichern und teilen, ohne Firefox zu verlassen."
},
- "tourHeaderTwo": {
+ "tourHeaderPageAction": {
+ "message": "Neue Speichermöglichkeit"
+ },
+ "tourBodyPageAction": {
+ "message": "Erweitern Sie das Menü „Aktionen für Seite“ in der Adressleiste immer dann, wenn Sie ein Bildschirmfoto machen möchten."
+ },
+ "tourHeaderClickAndDrag": {
"message": "Nehmen Sie auf, was Sie möchten"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Klicken und ziehen Sie, um nur einen Teil einer Seite aufzunehmen. Sie können den Mauszeiger auch darüber bewegen, um Ihre Auswahl hervorzuheben."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Fenster oder ganze Seiten speichern"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Nutzen Sie die Schaltflächen rechts oben, um den sichtbaren Bereich im Fenster oder eine ganze Seite zu speichern."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Wie Sie möchten"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Speichern Sie Ihre zugeschnittenen Bildschirmfotos im Internet, sodass sie leicht zu teilen sind, oder laden Sie sie auf Ihren Computer herunter. Sie können auch auf die Schaltfläche „Meine Bildschirmfotos“ klicken, um alle Ihre Bildschirmfotos zu finden."
},
"tourSkip": {
"message": "Überspringen"
},
"tourNext": {
"message": "Nächste Folie"
},
--- a/browser/extensions/screenshots/webextension/_locales/dsb/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/dsb/messages.json
@@ -74,35 +74,41 @@
"message": "Wódajśo pšosym wobuznosći. Źěłamy na toś tej funkciji za pśichodne wersije."
},
"genericErrorTitle": {
"message": "Hopla! Firefox Screenshots njeźěła."
},
"genericErrorDetails": {
"message": "Njejsmy se wěste, což jo se stało. Cośo hyšći raz wopytaś abo cośo drugi bok fotografěrowaś?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Gótujśo, składujśo a źělśo fota wobrazowki mimo až Firefox spušćaśo."
},
- "tourHeaderTwo": {
+ "tourHeaderPageAction": {
+ "message": "Nowa wašnja składowanja"
+ },
+ "tourBodyPageAction": {
+ "message": "Wócyńśo meni akcijow boka w adresowem pólu kuždy raz, gaž cośo foto worazowki gótowaś."
+ },
+ "tourHeaderClickAndDrag": {
"message": "Fotografěrujśo jadnorje, což cośo"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Klikniśo a ześěgniśo, aby źěl boka fotografěrował. Móžośo teke špěrku myški nad nim gibaś, aby swój wuběr wuzwignuł."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Wokna abo cełe boki składowaś"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Wubjeŕśo tłocašk górjejce napšawo, aby widobny wobcerk we woknje abo ceły bok fotografěrowaś."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Tak, kaž se wam spódoba"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Składujśo swóje pśirězane fota wobrazowki w interneśe, aby je lažcej źělił, abo ześěgniśo je na swójo licadło. Móžośo teke na tłocašk „Móje fota wobrazowki“ kliknuś, abye wšě fota wobrazowki namakał, kótarež sćo gótował."
},
"tourSkip": {
"message": "Pśeskócyś"
},
"tourNext": {
"message": "Pśiduce foto"
},
--- a/browser/extensions/screenshots/webextension/_locales/el/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/el/messages.json
@@ -74,35 +74,35 @@
"message": "Λυπούμαστε για την ταλαιπωρία. Εργαζόμαστε πάνω σε αυτό το χαρακτηριστικό για μελλοντικές εκδόσεις."
},
"genericErrorTitle": {
"message": "Ωχ! Κάτι πήγε στραβά στην υπηρεσία Firefox Screenshots."
},
"genericErrorDetails": {
"message": "Δεν είμαστε σίγουροι για το τι ακριβώς συνέβη. Προσπαθήστε ξανά ή κάντε λήψη σε μια άλλη σελίδα."
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Λήψη, αποθήκευση και διαμοιρασμός στιγμιοτύπων μέσα από το Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "Καταγράψτε αυτό που εσείς επιθυμείτε"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Κάντε κλικ και σύρετε για την καταγραφή ενός τμήματος της σελίδας. Μπορείτε να επισημάνετε την επιλογή σας μετακινώντας τον ποντίκι σας επάνω της."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Λήψη παραθύρων ή ολόκληρων σελίδων"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Επιλέξτε τα κουμπιά επάνω δεξιά για να καταγράψετε την ορατή περιοχή του παραθύρου ή να καταγράψετε μια ολόκληρη σελίδα."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Ακριβώς όπως το θέλετε"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Αποθηκεύστε της λήψεις σας στο Διαδίκτυο για ευκολότερο διαμοιρασμό, η λήψη τους στον υπολογιστή σας. Μπορείτε να βρείτε όλες τις λήψεις σας πατώντας στο κουμπί «Οι λήψεις μου»."
},
"tourSkip": {
"message": "Παράβλεψη"
},
"tourNext": {
"message": "Επόμενη διαφάνεια"
},
--- a/browser/extensions/screenshots/webextension/_locales/en_GB/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/en_GB/messages.json
@@ -65,35 +65,35 @@
"message": "You can’t take a shot of a Firefox Screenshots page!"
},
"genericErrorTitle": {
"message": "Whoa! Firefox Screenshots went haywire."
},
"genericErrorDetails": {
"message": "We’re not sure what just happened. Care to try again or take a shot of a different page?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Take, save, and share screenshots without leaving Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "Capture Just What You Want"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Click and drag to capture just a portion of a page. You can also hover to highlight your selection."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Capture Windows or Entire Pages"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Select the buttons in the upper right to capture the visible area in the window or to capture an entire page."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "As You Like It"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Save your cropped shots to the web for easier sharing, or download them to your computer. You also can click on the My Shots button to find all the shots you’ve taken."
},
"tourSkip": {
"message": "SKIP"
},
"tourNext": {
"message": "Next Slide"
},
--- a/browser/extensions/screenshots/webextension/_locales/en_US/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/en_US/messages.json
@@ -74,35 +74,41 @@
"message": "Sorry for the inconvenience. We are working on this feature for future releases."
},
"genericErrorTitle": {
"message": "Whoa! Firefox Screenshots went haywire."
},
"genericErrorDetails": {
"message": "We’re not sure what just happened. Care to try again or take a shot of a different page?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Take, save, and share screenshots without leaving Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderPageAction": {
+ "message": "A new way to save"
+ },
+ "tourBodyPageAction": {
+ "message": "Expand the page actions menu in the address bar any time you want to take a screenshot."
+ },
+ "tourHeaderClickAndDrag": {
"message": "Capture Just What You Want"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Click and drag to capture just a portion of a page. You can also hover to highlight your selection."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Capture Windows or Entire Pages"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Select the buttons in the upper right to capture the visible area in the window or to capture an entire page."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "As You Like It"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Save your cropped shots to the web for easier sharing, or download them to your computer. You also can click on the My Shots button to find all the shots you’ve taken."
},
"tourSkip": {
"message": "SKIP"
},
"tourNext": {
"message": "Next Slide"
},
--- a/browser/extensions/screenshots/webextension/_locales/eo/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/eo/messages.json
@@ -74,35 +74,41 @@
"message": "Bonvolu pardoni la ĝenon. Ni prilaboras tiun ĉi trajton por venontaj eldonoj."
},
"genericErrorTitle": {
"message": "Ŭoo! Firefox Screenshots tute frenezis."
},
"genericErrorDetails": {
"message": "Ni ne tro certas, kio ĵus okazis. Ĉu vi povus klopodi denove aŭ fari ekrankopion de alia paĝo?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Faru, konservu kaj dividu ekrankopiojn sen forlasi Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderPageAction": {
+ "message": "Nova maniero konservi ekrankopiojn"
+ },
+ "tourBodyPageAction": {
+ "message": "Kiam vi volas fari ekrankopion, iru al la menuo «Retpaĝaj agoj» en la adresa strio."
+ },
+ "tourHeaderClickAndDrag": {
"message": "Kopiu nur tion, kion vi volas."
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Alklaku kaj trenu por kopii nur parton de paĝo. Vi povas ankaŭ ŝvebi por elstarigi vian elekton."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Kapti fenestrojn aŭ tutaj paĝojn"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Elektu la butonojn supre kaj dekstre por kapti la videblan areon en la fenestro aŭ por kapti tutan paĝon."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Kiel vi volas"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Konservu vian eltonditajn ekrankopiojn en la reto, por pli facile dividi ilin, aŭ elŝutu ilin al via komputilo. Vi ankaŭ povas alklaki la butonon 'Miaj ekrankopioj' por trovi ĉiujn ekrankopiojn faritajn de vi."
},
"tourSkip": {
"message": "Pretersalti"
},
"tourNext": {
"message": "Venonta ekrano"
},
--- a/browser/extensions/screenshots/webextension/_locales/es_AR/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/es_AR/messages.json
@@ -74,35 +74,35 @@
"message": "Lamentamos el inconveniente. Estamos trabajando en esta característica para versiones futuras."
},
"genericErrorTitle": {
"message": "¡Apa! Firefox Screenshots se volvió loco."
},
"genericErrorDetails": {
"message": "No estamos seguros de lo que pasó. ¿Querés intenar de nuevo o tomar una captura de una página diferente?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Hacer, guardar y compartir capturas de pantalla sin dejar Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "Capturar sólo lo que querés"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Hacé clic y arrastrá para capturar una porción de la página. También podés pasar por encima para resaltar la selección."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Capturar ventanas o páginas enteras"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Seleccioná los botones arriba a la derecha para capturar el área visible en la ventana o la página completa."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Como te guste"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Guardá tus capturas recortadas a la web para compartir o descargarlas más fácilmente a tu computadora. También podés hacer clic en el botón Mis capturas para encontrar todas las capturas hechas."
},
"tourSkip": {
"message": "SALTEAR"
},
"tourNext": {
"message": "Próxima diapositiva"
},
--- a/browser/extensions/screenshots/webextension/_locales/es_CL/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/es_CL/messages.json
@@ -74,35 +74,35 @@
"message": "Disculpa las molestias. Estamos trabajando en esta función para una futura versión."
},
"genericErrorTitle": {
"message": "¡Guau! Firefox Screenshots se copetió."
},
"genericErrorDetails": {
"message": "No estamos seguros de lo que sucedió. ¿Te importaría volver a intentarlo o tomar una captura de una página diferente?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Toma, guarda y comparte capturas sin salir de Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "Captura lo que necesitas"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Haz clic y arrastra para captura justo una parte de la página. También puedes colocarte sobre una parte para destacar tu selección."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Captura ventanas o páginas completas"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Selecciona los botones en la parte superior derecha para capturar el área visible ne la ventana o para capturar una página completa."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Como tu quieras"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Guarda tus capturas recortadas en la Web para compartirlas fácilmente o descargarlas a tu computador. También puedes hacer clic en el botón Mis capturas para encontrar todas las que hayas tomado."
},
"tourSkip": {
"message": "SALTAR"
},
"tourNext": {
"message": "Siguiente diapositiva"
},
--- a/browser/extensions/screenshots/webextension/_locales/es_ES/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/es_ES/messages.json
@@ -74,35 +74,41 @@
"message": "Sentimos las molestias. Estamos trabajando en esta característica para próximos lanzamientos."
},
"genericErrorTitle": {
"message": "¡Vaya! Firefox Screenshots se ha vuelto loco."
},
"genericErrorDetails": {
"message": "No estamos seguros de lo que acaba de pasar. ¿Te importa volver a intentarlo o hacer una captura de otra página?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Hacer, guardar y compartir capturas de pantalla sin salir de Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderPageAction": {
+ "message": "Una nueva forma de guardar"
+ },
+ "tourBodyPageAction": {
+ "message": "Expande el menú de acciones de la página en la barra de direcciones cuando quieras hacer una captura."
+ },
+ "tourHeaderClickAndDrag": {
"message": "Haz capturas solo de lo que tú quieras"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Haz clic y arrastra para capturar solo una parte de la página. También puedes pasar por encima para resaltar tu selección."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Haz capturas de Windows o páginas completas"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Selecciona los botones de la parte superior derecha para capturar el área visible en Windows o la página completa."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Como más te guste"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Guarda las capturas de la Web recortadas para compartirlas mejor o descárgalas en tu ordenador. También puedes hacer clic en Mis capturas para ver todas las capturas que has hecho."
},
"tourSkip": {
"message": "Saltar"
},
"tourNext": {
"message": "Diapositiva siguiente"
},
--- a/browser/extensions/screenshots/webextension/_locales/es_MX/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/es_MX/messages.json
@@ -74,35 +74,35 @@
"message": "Disculpen las molestias. Estamos trabajando en esta característica para las versiones futuras."
},
"genericErrorTitle": {
"message": "¡Oye! Las capturas de pantalla de Firefox salieron mal."
},
"genericErrorDetails": {
"message": "No estamos seguros qué pasó. ¿Te importaría intentarlo de nuevo o tomar una captura de una página diferente?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Toma, guarda y comparte capturas de pantalla sin dejar Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "Captura sólo lo que necesitas"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Haz clic y arrastra para capturas sólo una parte de la página. También puedes desplazarte para resaltar tu selección."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Captura ventanas o páginas enteras"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Selecciona los botones en la parte superior derecha para capturar el área visible en la ventana o para capturar una página completa."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Como te gusta"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Guarda tus capturas recortadas en la Web para compartirlas más fácilmente o descárgalas en tu computadora. También puedes hacer clic en el botón Mis Capturas para encontrar todas las fotos que has tomado."
},
"tourSkip": {
"message": "Ignorar"
},
"tourNext": {
"message": "Siguiente diapositiva"
},
--- a/browser/extensions/screenshots/webextension/_locales/et/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/et/messages.json
@@ -74,35 +74,35 @@
"message": "Vabandame tüli tekitamise pärast. Töötame selle võimaluse lisamiseks tulevikus."
},
"genericErrorTitle": {
"message": "Oi-oi! Firefox Screenshots läks sassi."
},
"genericErrorDetails": {
"message": "Me pole kindlad, mis just juhtus. Proovid ehk uuesti või teed ekraanipildi mõnest teisest lehest?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Tee, salvesta ja jaga ekraanipilte Firefoxist lahkumata."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "Salvesta just seda, mida soovid"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Klõpsa ja lohista lehe osa valimiseks. Samuti võid valiku esile toomiseks kursorit selle kohal hoida."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Salvesta aknaid või terveid lehti"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Kasuta nuppe ülal paremal aknas nähtava ala või terve lehe salvestamiseks."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Nii, kuidas sulle meeldib"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Salvesta kärbitud pilte lihtsamaks jagamiseks veebi või laadi need alla enda arvutisse. Võid ka klõpsata Minu pildid nupul kõigi tehtud piltide vaatamiseks."
},
"tourSkip": {
"message": "Jäta vahele"
},
"tourNext": {
"message": "Järgmine slaid"
},
@@ -123,10 +123,13 @@
}
}
},
"termsAndPrivacyNoticeTermsLink": {
"message": "kasutustingimuste"
},
"termsAndPrivacyNoticyPrivacyLink": {
"message": "privaatsuspoliitikaga"
+ },
+ "libraryLabel": {
+ "message": "Ekraanipildid"
}
}
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/browser/extensions/screenshots/webextension/_locales/eu/messages.json
@@ -0,0 +1,141 @@
+{
+ "addonDescription": {
+ "message": "Hartu webetik pantaila-zatiak eta -argazkiak eta gorde aldi baterako edo behin betiko."
+ },
+ "addonAuthorsList": {
+ "message": "Mozilla <screenshots-feedback@mozilla.com>"
+ },
+ "contextMenuLabel": {
+ "message": "Hartu pantaila-argazkia"
+ },
+ "myShotsLink": {
+ "message": "Nire argazkiak"
+ },
+ "screenshotInstructions": {
+ "message": "Eremu bat hautatzeko, arrastatu edo egin klik orrian. Uzteko, sakatu ESK."
+ },
+ "saveScreenshotSelectedArea": {
+ "message": "Gorde"
+ },
+ "saveScreenshotVisibleArea": {
+ "message": "Gorde ikusgai dagoena"
+ },
+ "saveScreenshotFullPage": {
+ "message": "Gorde orri osoa"
+ },
+ "cancelScreenshot": {
+ "message": "Utzi"
+ },
+ "downloadScreenshot": {
+ "message": "Deskargatu"
+ },
+ "notificationLinkCopiedTitle": {
+ "message": "Lotura kopiatuta"
+ },
+ "notificationLinkCopiedDetails": {
+ "message": "Zure argazkirako lotura arbelean kopiatu da. Itsasteko, sakatu $META_KEY$-V.",
+ "placeholders": {
+ "meta_key": {
+ "content": "$1"
+ }
+ }
+ },
+ "requestErrorTitle": {
+ "message": "Zerbitzuz kanpo."
+ },
+ "requestErrorDetails": {
+ "message": "Barkatu! Ezin izan dugu zure argazkia gorde. Saiatu berriro geroago."
+ },
+ "connectionErrorTitle": {
+ "message": "Ezin gara zure pantaila-argazkietara konektatu."
+ },
+ "connectionErrorDetails": {
+ "message": "Egiaztatu zure Internet-konexioa. Internetera konekta bazaitezke, aldi baterako arazo bat egon liteke Firefox Screenshots zerbitzuarekin."
+ },
+ "loginErrorDetails": {
+ "message": "Ezin izan dugu zure argazkia gorde Firefox Screenshots zerbitzuarekin arazo bat dagoelako. Saiatu berriro geroago mesedez."
+ },
+ "unshootablePageErrorTitle": {
+ "message": "Ezin dugu orri honen pantaila-argazkia hartu."
+ },
+ "unshootablePageErrorDetails": {
+ "message": "Hau ez da web orri arrunt bat eta beraz, ezin duzu bere pantaila-argazkirik hartu."
+ },
+ "selfScreenshotErrorTitle": {
+ "message": "Ezin duzu Firefox Screenshots-eko orri baten pantaila-argazkirik hartu!"
+ },
+ "emptySelectionErrorTitle": {
+ "message": "Zure hautapena txikiegia da"
+ },
+ "privateWindowErrorTitle": {
+ "message": "Pantaila-argazkien zerbitzua desgaituta dago nabigatze pribatuko moduan"
+ },
+ "privateWindowErrorDetails": {
+ "message": "Barkatu eragozpenak. Eginbide honetan lanean ari gara etorkizuneko bertsio baterako."
+ },
+ "genericErrorTitle": {
+ "message": "Kontxo! Firefox Screenshots zerbitzua pikutara joan da."
+ },
+ "genericErrorDetails": {
+ "message": "Ez gaude ziur zer gertatu den. Axola dizu berriro saiatzea edo beste orri baten argazkia hartzea?"
+ },
+ "tourBodyIntro": {
+ "message": "Hartu, gorde eta partekatu pantaila-argazkiak Firefox utzi gabe."
+ },
+ "tourHeaderPageAction": {
+ "message": "Gordetzeko modu berri bat"
+ },
+ "tourBodyPageAction": {
+ "message": "Pantaila-argazki bat hartu nahi duzun bakoitzean, zabaldu orri-ekintzen menua helbide-barran."
+ },
+ "tourHeaderClickAndDrag": {
+ "message": "Hartu soilik nahi duzunaren argazkia"
+ },
+ "tourBodyClickAndDrag": {
+ "message": "Egin klik eta arrastatu soilik orriaren zati baten argazkia hartzeko. Sagua gainean jar dezakezu zure hautapena nabarmentzeko."
+ },
+ "tourHeaderFullPage": {
+ "message": "Hartu leiho edo orri osoen argazkiak"
+ },
+ "tourBodyFullPage": {
+ "message": "Hautatu goian eskuinean dauden botoiak leihoko eremu ikusgarriaren edo orri osoaren argazkia hartzeko."
+ },
+ "tourHeaderDownloadUpload": {
+ "message": "Nahi duzun bezala"
+ },
+ "tourBodyDownloadUpload": {
+ "message": "Gorde webean zure moztutako argazkiak, hauek errazago partekatu edo zure ordenagailura deskargatzeko. 'Nire argazkiak' botoian klik eginda hartutako argazki guztiak aurkituko dituzu."
+ },
+ "tourSkip": {
+ "message": "SALTATU"
+ },
+ "tourNext": {
+ "message": "Hurrengo diapositiba"
+ },
+ "tourPrevious": {
+ "message": "Aurreko diapositiba"
+ },
+ "tourDone": {
+ "message": "Eginda"
+ },
+ "termsAndPrivacyNotice2": {
+ "message": "Firefox Screenshots erabilita, gure $TERMSANDPRIVACYNOTICETERMSLINK$ eta $TERMSANDPRIVACYNOTICEPRIVACYLINK$ onartzen dituzu.",
+ "placeholders": {
+ "termsandprivacynoticetermslink": {
+ "content": "$1"
+ },
+ "termsandprivacynoticeprivacylink": {
+ "content": "$2"
+ }
+ }
+ },
+ "termsAndPrivacyNoticeTermsLink": {
+ "message": "Baldintzak"
+ },
+ "termsAndPrivacyNoticyPrivacyLink": {
+ "message": "Pribatutasun-oharra"
+ },
+ "libraryLabel": {
+ "message": "Pantaila-argazkiak"
+ }
+}
\ No newline at end of file
--- a/browser/extensions/screenshots/webextension/_locales/fa/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/fa/messages.json
@@ -74,35 +74,35 @@
"message": "به خاطر مزاحمت متاسفیم. ما در حال کار روی این ویژگی برای انتشارهای آینده هستیم."
},
"genericErrorTitle": {
"message": "اوه! سرویس تصاویر صفحه فایرفاکس قاطی کرده."
},
"genericErrorDetails": {
"message": "مطمئن نیستیم چه اتفاقی افتاده است. میخواهید دوباره امتحان کنید یا از یک صفحهٔ دیگر عکس بگیرید؟"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "بدون خارج شدن از فایرفاکس، عکس بگیرید، ذخیره کنید و به اشتراک بگذارید."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "ضبط آنچه شما میخواهید"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "کلیک کنید و بکشید تا فقط از قسمتی از صفحه عکس بگیرید. میتوانید برای برجسته کردن روی ناحیه انتخاب شده حرکت کنید."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "ضبط پنجره یا کل صفحهها"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "برای گرفتن عکس از ناحیه قابل مشاهده در پنجره یا تمام صفحه از دکمههای بالا سمت راست استفاده کنید."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "همانطور که میپسندید"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "عکسهای بریده شده خود را برای به اشتراکگذاری راحتتر روی وب ذخیره کنید، یا آنها را روی رایانه خود دریافت کنید. همچنین برای دیدن همهٔ عکسهایی که گرفتید میتوانید روی دکمه «عکسهای من» کلیک کنید."
},
"tourSkip": {
"message": "رد کردن"
},
"tourNext": {
"message": "اسلاید بعدی"
},
--- a/browser/extensions/screenshots/webextension/_locales/fi/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/fi/messages.json
@@ -74,35 +74,35 @@
"message": "Anteeksi häiriö. Tämä ominaisuus on vielä työn alla."
},
"genericErrorTitle": {
"message": "Oho! Firefox Screenshots meni päin prinkkalaa."
},
"genericErrorDetails": {
"message": "Emme oikein tiedä, mitä tapahtui. Haluatko yrittää uudestaan tai ottaa kuvan eri sivusta?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Ota, tallenna ja jaa kuvakaappaus poistumatta Firefoxista."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "Kaappaa mitä haluat"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Kaappaa vain osa sivusta napsauttamalla ja vetämällä. Voit myös korostaa valinnan pitämällä hiirtä sen päällä."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Kaappaa näkyvä alue tai kokonainen sivu"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Valitse oikean yläkulman painikkeista joko ikkunassa näkyvän alueen tai koko sivun kaappaus."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Haluamallasi tavalla"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Tallenna rajaamasi kuvat verkkoon helpompaa jakamista varten tai lataa ne tietokoneellesi. Voit myös napsauttaa Omat kaappaukset -painiketta ja nähdä kaikki ottamasi kuvat."
},
"tourSkip": {
"message": "OHITA"
},
"tourNext": {
"message": "Seuraava sivu"
},
--- a/browser/extensions/screenshots/webextension/_locales/fr/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/fr/messages.json
@@ -7,17 +7,17 @@
},
"contextMenuLabel": {
"message": "Effectuer une capture d’écran"
},
"myShotsLink": {
"message": "Mes captures d’écran"
},
"screenshotInstructions": {
- "message": "Sélectionnez une zone de la page par cliquer-glisser. Appuyez sur Échap pour annuler."
+ "message": "Sélectionnez une zone de la page par cliquer-glisser ou en cliquant sur l’élément à sélectionner. Appuyez sur Échap pour annuler."
},
"saveScreenshotSelectedArea": {
"message": "Enregistrer"
},
"saveScreenshotVisibleArea": {
"message": "Capturer la zone visible"
},
"saveScreenshotFullPage": {
@@ -74,35 +74,41 @@
"message": "Désolé pour la gêne occasionnée. Nous travaillons sur cette fonctionnalité pour de prochaines versions."
},
"genericErrorTitle": {
"message": "Firefox Screenshots semble avoir un problème."
},
"genericErrorDetails": {
"message": "Un problème non identifié est survenu. Vous pouvez réessayer ou effectuer une capture d’écran d’une autre page."
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Effectuez des captures d’écran, enregistrez et partagez-les sans quitter Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderPageAction": {
+ "message": "Une nouvelle façon d’enregistrer ses captures"
+ },
+ "tourBodyPageAction": {
+ "message": "Dès que vous voulez effectuer une capture d’écran, il vous suffit d’ouvrir le menu d’actions de la page, depuis la barre d’adresse."
+ },
+ "tourHeaderClickAndDrag": {
"message": "Capturez ce que vous voulez"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Cliquez et glissez pour capturer seulement une partie de la page. Vous pouvez aussi survoler une zone avec votre curseur pour surligner votre sélection."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Effectuez des captures d’écran de fenêtres ou de pages entières"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Utilisez les boutons en haut à droite pour capturer au choix la zone visible dans la fenêtre ou la page entière."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "À votre guise"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Sauvegardez en ligne vos captures recadrées pour les partager plus facilement, ou téléchargez-les sur votre ordinateur. Vous pouvez aussi cliquer sur « Mes captures d’écran » pour retrouver toutes vos captures."
},
"tourSkip": {
"message": "IGNORER"
},
"tourNext": {
"message": "Écran suivant"
},
--- a/browser/extensions/screenshots/webextension/_locales/fy_NL/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/fy_NL/messages.json
@@ -1,20 +1,20 @@
{
"addonDescription": {
- "message": "Meitsje skermprintsjes of klips fan it web en bewarje se tydlik of permanint."
+ "message": "Meitsje skermôfdrukken of klips fan it web en bewarje se tydlik of permanint."
},
"addonAuthorsList": {
"message": "Mozilla <screenshots-feedback@mozilla.com>"
},
"contextMenuLabel": {
- "message": "Meitsje in skermprintsje"
+ "message": "Skermôfdruk meitsje"
},
"myShotsLink": {
- "message": "Myn skermprintsjes"
+ "message": "Myn skermôfdrukken"
},
"screenshotInstructions": {
"message": "Sleep of klik op de side om in gebiet te selektearjen. Druk op ESC om te annulearjen."
},
"saveScreenshotSelectedArea": {
"message": "Bewarje"
},
"saveScreenshotVisibleArea": {
@@ -28,82 +28,88 @@
},
"downloadScreenshot": {
"message": "Downloade"
},
"notificationLinkCopiedTitle": {
"message": "Keppeling kopiearre"
},
"notificationLinkCopiedDetails": {
- "message": "De keppeling nei jo skermprintsje is nei it klamboerd kopiearre. Brûk $META_KEY$-V om te plakken.",
+ "message": "De keppeling nei jo skermôfdruk is nei it klamboerd kopiearre. Brûk $META_KEY$-V om te plakken.",
"placeholders": {
"meta_key": {
"content": "$1"
}
}
},
"requestErrorTitle": {
"message": "Bûten tsjinst."
},
"requestErrorDetails": {
- "message": "Sorry! Wy koene jo skermprintsje net bewarje. Probearje it letter nochris."
+ "message": "Sorry! Wy koene jo skermôfdruk net bewarje. Probearje it letter nochris."
},
"connectionErrorTitle": {
- "message": "Wy kinne net ferbine nei jo skermprintsjes."
+ "message": "Wy kinne net ferbine nei jo skermôfdrukken."
},
"connectionErrorDetails": {
"message": "Kontrolearje jo ynternetferbining. As jo wol ferbining meitsje kinne mei it ynternet, kin it wêze dat der tydlik in probleem is mei de tsjinst Firefox Screenshots."
},
"loginErrorDetails": {
- "message": "Wy koene jo skermprintsje net bewarje, omdat der in probleem is mei de tsjinst Firefox Screenshots. Probearje it letter nochris."
+ "message": "Wy koene jo skermôfdruk net bewarje, omdat der in probleem is mei de tsjinst Firefox Screenshots. Probearje it letter nochris."
},
"unshootablePageErrorTitle": {
- "message": "It is net mooglik in skermprintsje fan dizze side te meitsjen."
+ "message": "It is net mooglik in skermôfdruk fan dizze side te meitsjen."
},
"unshootablePageErrorDetails": {
- "message": "Dit is net in standert webside, dus jo kinne der net in skermprintsje fan meitsje."
+ "message": "Dit is net in standert webside, dus jo kinne der net in skermôfdruk fan meitsje."
},
"selfScreenshotErrorTitle": {
- "message": "Jo kinne net in skermprintsje meitsje fan in Firefox Screenshots-side!"
+ "message": "Jo kinne net in skermôfdruk meitsje fan in Firefox Screenshots-side!"
},
"emptySelectionErrorTitle": {
"message": "Jo seleksje is te lyts"
},
"privateWindowErrorTitle": {
"message": "Screenshots is útskeakele yn Priveenavigaasjemodus"
},
"privateWindowErrorDetails": {
"message": "Sorry foar it ûngemak. Foar takomstige útjeften wurdt oan dizze funksje wurke."
},
"genericErrorTitle": {
"message": "Oeps! Firefox Screenshots is yn 'e war."
},
"genericErrorDetails": {
- "message": "Wy binne net wis wat der krekt bard is. Wolle jo it nochris probearje of in skermprintsje fan in oare side meitsje?"
+ "message": "Wy binne net wis wat der krekt bard is. Wolle jo it nochris probearje of in skermôfdruk fan in oare side meitsje?"
+ },
+ "tourBodyIntro": {
+ "message": "Meitsje, bewarje en diel skermôfdrukken sûnder Firefox te ferlitten."
},
- "tourBodyOne": {
- "message": "Meitsje, bewarje en diel skermprintsjes sûnder Firefox te ferlitten."
+ "tourHeaderPageAction": {
+ "message": "In nije manier om te bewarjen"
},
- "tourHeaderTwo": {
+ "tourBodyPageAction": {
+ "message": "Klap it menu Side-aksjes yn de adresbalke út sa gau as jo in skermôfbylding meitsje wolle."
+ },
+ "tourHeaderClickAndDrag": {
"message": "Fetsje wat jo wolle"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Klik en sleep om in part fan in side te fetsjen. Jo kinne ek oer in gebiet gean om jo seleksje út te ljochtsjen."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Fetsje finsters of folsleine websiden"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Selektearje knoppen rjochts boppe-oan om it sichtbere gebiet yn it finster te fetsjen, of fetsje in folsleine side."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Nei jo winsk"
},
- "tourBodyFour": {
- "message": "Bewarje jo byknippe skermprintsjes nei it web om se maklik te dielen, of download se nei jo kompjûter. Jo kinne ek op de knop Myn skermprintsjes klikke om al jo makke skermprintsjes te finen."
+ "tourBodyDownloadUpload": {
+ "message": "Bewarje jo byknippe skermôfdrukken nei it web om se maklik te dielen, of download se nei jo kompjûter. Jo kinne ek op de knop Myn skermôfdrukken klikke om al jo makke skermôfdrukken te finen."
},
"tourSkip": {
"message": "Oerslaan"
},
"tourNext": {
"message": "Folgjende ôfbylding"
},
"tourPrevious": {
--- a/browser/extensions/screenshots/webextension/_locales/ga_IE/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/ga_IE/messages.json
@@ -68,35 +68,35 @@
"message": "Roghnaigh tú réigiún róbheag"
},
"genericErrorTitle": {
"message": "Úps! Tá Gabhálacha Scáileáin Firefox imithe sa fhraoch."
},
"genericErrorDetails": {
"message": "Nílimid cinnte cad a tharla. An bhfuil fonn ort triail eile a bhaint as, nó gabháil scáileáin eile a ghlacadh?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Glac, sábháil, agus comhroinn gabhálacha scáileáin gan Firefox a fhágáil."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "An rud atá uait a ghabháil"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Cliceáil agus tarraing le cuid de leathanach a ghabháil. Nó is féidir leat an luch a chur os cionn an réigiúin le gabháil."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Fuinneoga nó leathanaigh iomlána a ghabháil"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Úsáid na cnaipí ag barr na fuinneoige ar dheis chun an réigiún infheicthe san fhuinneog a ghabháil, nó an leathanach iomlán."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Go díreach mar is áil leat"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Is féidir leat gabhálacha a bhearradh agus a shábháil ar an nGréasán, nó iad a íoslódáil ar do ríomhaire. Is féidir teacht orthu go léir leis an gcnaipe Mo Chuid Gabhálacha."
},
"tourSkip": {
"message": "NÁ BAC LEIS"
},
"tourNext": {
"message": "An chéad sleamhnán eile"
},
--- a/browser/extensions/screenshots/webextension/_locales/gu_IN/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/gu_IN/messages.json
@@ -74,35 +74,41 @@
"message": "અસુવીધી બદલ માફી. અમે ભવિષ્યના પ્રકાશનો માટે આ સુવિધા પર કામ કરી રહ્યા છીએ."
},
"genericErrorTitle": {
"message": "થોભો! Firefox સ્ક્રીનશોટ્સ અવ્યવસ્થિત થઈ ગયા."
},
"genericErrorDetails": {
"message": "અમે ખાતરી નથીકે શું માત્ર થયું છે . ફરી પ્રયાસ કરો અથવા એક અલગ પૃષ્ઠ એક શોટ લેવા માટે કાળજી કરો?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "લેવા, સાચવેલા, અને વહેંચાયેલ સ્ક્રીનશૉટ્સ Firefox છોડ્યાં વિના."
},
- "tourHeaderTwo": {
+ "tourHeaderPageAction": {
+ "message": "સાચવવાનો એક નવો રસ્તો"
+ },
+ "tourBodyPageAction": {
+ "message": "જ્યારે પણ સ્ક્રીનશૉટ લેવા માંગો ત્યારે સરનામાં બારમાં પૃષ્ઠ ક્રિયાઓ મેનૂને વિસ્તૃત કરો."
+ },
+ "tourHeaderClickAndDrag": {
"message": "કેદ કરો તમને જોઈએ તે"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "પાનાંના માત્ર એક ભાગ મેળવવા માટે ક્લિક કરો અને ખેંચો. તમે પણ તમારી પસંદગી પ્રકાશિત કરવા માટે હૉવર કરી શકો છો."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "વિન્ડોઝ અથવા સમગ્ર પાના કેદ કરો"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "ઉપર જમણા બટનો પસંદ કરો વિન્ડોમાં દૃશ્યમાન વિસ્તાર મેળવવા માટે અથવા આખુ પાનું કેપ્ચર કરવા માટે."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "તમને જે ગમે"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "સરળ શેરિંગ માટે વેબ પર તમારા કપાઈ શોટ સાચવો, અથવા તેમને તમારા કમ્પ્યુટર પર ડાઉનલોડ કરો. તમે બધા શોટ મેળવવા માટે મારું શોટ્સ બટન પર ક્લિક કરી પણ શકો છો બધા શોટ તમે લીધેલા શોધવા માટે."
},
"tourSkip": {
"message": "છોડવા"
},
"tourNext": {
"message": "આગલી સ્લાઇડ"
},
--- a/browser/extensions/screenshots/webextension/_locales/he/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/he/messages.json
@@ -68,35 +68,35 @@
"message": "הבחירה שלך קטנה מידי"
},
"genericErrorTitle": {
"message": "אויש! Firefox Screenshots ירד מהפסים."
},
"genericErrorDetails": {
"message": "אנחנו לא בטוחים מה קרה פה הרגע. אכפת לך לנסות שוב או לצלם דף אחר?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "צילום, שמירה ושיתוף של צילומי מסך מבלי לעזוב את Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "לצלם רק את מה שנחוץ לך"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "ניתן ללחוץ ולגרור כדי לצלם רק מקטע מהעמוד. ניתן גם לרחף מעל כדי לסמן את הבחירה שלך."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "לצלם חלונות או דפים שלמים"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "בחרו בכפתורים שבחלק העליון כדי לצלם את האזור הגלוי בחלון או כדי לצלם את הדף כולו."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "לפי טעמך"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "שמירת הצילומים החתוכים שלך לאחסון מקוון לצורך שיתוף פשוט יותר, או להוריד אותם למחשב שלך. ניתן גם ללחוץ על כפתור הצילומים שלי כדי למצוא את כל הצילומים שצילמת."
},
"tourSkip": {
"message": "דילוג"
},
"tourNext": {
"message": "השקופית הבאה"
},
--- a/browser/extensions/screenshots/webextension/_locales/hi_IN/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/hi_IN/messages.json
@@ -74,35 +74,35 @@
"message": "असुविधा के लिए खेद हैं. हमलोग भविष्य संस्करण के लिए इस सुविधा पर काम कर रहे हैं."
},
"genericErrorTitle": {
"message": "ओह! Firefox स्क्रीनशॉट बिगड़ गया."
},
"genericErrorDetails": {
"message": "हम सुनिश्चित नहीं हैं कि अभी क्या हुआ. पुन: प्रयास या एक भिन्न पृष्ठ का एक शॉट लेना चाहते हैं?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Firefox छोड़े बिना स्क्रीनशॉट लें, सहेजें, और साझा करें."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "जो आप चाहते हैं उसे कैद करें"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "पृष्ठ के बस एक हिस्से को कैद करने के लिए क्लिक करें और खींचें. आप अपने चयन को हाइलाइट करने के लिए भी जा सकते हैं."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "विंडोज़ या संपूर्ण पृष्ठों को कैद करें"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "विंडो में दिखाई देने वाले क्षेत्र या एक पूरे पृष्ठ को कैद करने के लिए ऊपर में दाहिनी तरफ़ के बटन का चयन करें."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "जैसा आप इसे चाहते हैं"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "आसानी से साझा करने या उन्हें अपने कंप्यूटर पर डाउनलोड करने के लिए अपने क्रॉप किये गये शॉट को वेब पर सहेजें. आपके द्वारा लिए गये सभी शॉट्स को ढूंढने के लिए आप मेरे शॉट्स बटन पर भी क्लिक कर सकते हैं."
},
"tourSkip": {
"message": "SKIP"
},
"tourNext": {
"message": "अगली स्लाइड"
},
--- a/browser/extensions/screenshots/webextension/_locales/hr/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/hr/messages.json
@@ -74,35 +74,35 @@
"message": "Žao nam je na neugodnosti. Radimo na ovoj mogućnosti za buduća izdanja."
},
"genericErrorTitle": {
"message": "Uf! Firefox Screenshots se zbrkao."
},
"genericErrorDetails": {
"message": "Nismo sigurno što se upravo dogodilo. Možete li pokušati ponovno ili snimiti drukčiju stranicu?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Snimite, spremite i dijelite snimke bez da napuštate Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "Snimite ono što želite"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Kliknite i povucite ako želite snimiti samo dio stranice. Također možete označiti vaš odabir tako da preko njega stavite pokazivač miša."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Baš kako vam se sviđa"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Spremite vaše odrezane snimke na Web kako biste ih jednostavnije dijelili, ili ih jednostavno skinite na vaše računalo. Također možete kliknuti gumb Moje snimke kako biste pronašli sve vaše dosadašnje snimke."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Snimajte prozore ili cijele stranice"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Odaberite gumbove na gornjem desnom kutu kako biste snimili vidljivo područje u prozoru ili cijelu stranicu."
},
"tourSkip": {
"message": "PRESKOČI"
},
"tourNext": {
"message": "Sljedeći slajd"
},
--- a/browser/extensions/screenshots/webextension/_locales/hsb/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/hsb/messages.json
@@ -74,35 +74,41 @@
"message": "Wodajće prošu njepřijomnosće. Dźěłamy na tutej funkciji za přichodne wersije."
},
"genericErrorTitle": {
"message": "Hopla! Firefox Screenshots njefunguje."
},
"genericErrorDetails": {
"message": "Njejsmy sej wěsći, štož je so stało. Chceće hišće raz spytać abo chceće druhu stronu fotografować?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Čińće, składujće a dźělće fota wobrazowki bjez toho, zo byšće Firefox wopušćił."
},
- "tourHeaderTwo": {
+ "tourHeaderPageAction": {
+ "message": "Nowe wašnje składowanja"
+ },
+ "tourBodyPageAction": {
+ "message": "Wočińće meni akcijow strony w adresowym polu kóždy raz, hdyž chceće foto wobrazowki činić."
+ },
+ "tourHeaderClickAndDrag": {
"message": "Fotografujće prosće, štož chceće"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Klikńće a ćehńće, zo byšće dźěl strony fotografował. Móžeće tež pokazowak myški nad nim pohibować, zo byšće swój wuběr wuzběhnył."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Wokna abo cyłe strony składować"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Wubjerće tłóčatka horjeka naprawo, zo byšće widźomny wobwod we woknje abo cyłu stronu fotografować."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Tak, kaž so wam spodoba"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Składujće swoje přitřihane fota wobrazowki w interneće, zo byšće je lóšo dźělił, abo sćehńće je na swój ličak. Móžeće tež na tłóčatko „Moje fota wobrazowki“ kliknyć, zo byšće wšě fota wobrazowki namakał, kotrež sće činił."
},
"tourSkip": {
"message": "Přeskočić"
},
"tourNext": {
"message": "Přichodne foto"
},
--- a/browser/extensions/screenshots/webextension/_locales/hu/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/hu/messages.json
@@ -74,35 +74,41 @@
"message": "Sajnáljuk a kényelmetlenséget. Dolgozunk ezen a funkción a jövőbeli kiadásokhoz."
},
"genericErrorTitle": {
"message": "Húha! A Firefox Screenshots megkergült."
},
"genericErrorDetails": {
"message": "Nem vagyunk benne biztosak, hogy mi történt. Próbálja újra, vagy készítsen képet egy másik oldalról."
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Készítsen, mentsen és osszon meg képernyőképeket, anélkül, hogy elhagyná a Firefoxot."
},
- "tourHeaderTwo": {
+ "tourHeaderPageAction": {
+ "message": "A mentés új módja"
+ },
+ "tourBodyPageAction": {
+ "message": "Nyissa le a lapműveletek menüt a címsávban bármikor, ha képernyőképet akar készíteni."
+ },
+ "tourHeaderClickAndDrag": {
"message": "Csak azt mentse, amit szeretne"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Kattintson és húzzon, hogy csak a lap egy részét mentse el. Vagy csak rá is mutathat a kijelöléshez."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Mentsen ablakokat vagy teljes lapokat"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Válassza a jobb felső sarokban lévő gombokat, hogy egy látható területet mentsen az ablakból, vagy elmentsen egy teljes oldalt."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Ahogy tetszik"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Mentse a kivágott képeket a webre a könnyebb megosztáshoz, vagy töltse le a számítógépére. Rá is kattinthat a Képernyőképek gombra, hogy megtalálja az összes képét."
},
"tourSkip": {
"message": "Kihagyás"
},
"tourNext": {
"message": "Következő dia"
},
--- a/browser/extensions/screenshots/webextension/_locales/hy_AM/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/hy_AM/messages.json
@@ -68,35 +68,35 @@
"message": "Ընտրվածը քիչ է"
},
"genericErrorTitle": {
"message": "Firefox Screenshots-ը գնաց գլխիվայր:"
},
"genericErrorDetails": {
"message": "Մենք վստահ չենք, թե ինչ է տեղի ունեցնել: Կրկին փորձեք կամ փորձեք ստանալ մեկ այլ էջի պատկերը:"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Ստացեք, պահպանեք և համօգտագործեք էկրանի հանույթները՝ առանց Firefox-ը լքելու:"
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "Ստացեք միայն այն, ինչ Ձեզ պետք է:"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Սեղմեք և քաշեք՝ ստանալու համար միայն էջի մի մասը: Նաև կարող եք վրայով անցկացնել՝ գունանշելու համար ընտրումը:"
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Ստանալ պատուհանը կամ ամբողջ էջեր"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Ընտրեք կոճակները վերևի աջ մասում՝ տեսանելի հատվածը ստանալու համար պատուհանում կամ ամբողջ էջը ստանալու համար:"
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Ինչպես որ հավանում եք այն"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Պահպանեք ձեր եզրատած որոշ պատկերներ վեբում՝ դրանք հեշտությամբ համօգտագործելու կամ ներբեռնելու համար ձեր համակարգչում: Նաև կարող եք սեղմել Իմ պատկերները՝ գտնելու ձեր բոլոր ֆայլերը:"
},
"tourSkip": {
"message": "Բաց թողնել"
},
"tourNext": {
"message": "Հաջորդ սահիկը"
},
--- a/browser/extensions/screenshots/webextension/_locales/id/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/id/messages.json
@@ -74,35 +74,35 @@
"message": "Maaf atas ketidaknyamanannya. Kami sedang mengerjakan fitur ini untuk peluncuran masa mendatang."
},
"genericErrorTitle": {
"message": "Wah! Firefox Screenshots mendadak kacau."
},
"genericErrorDetails": {
"message": "Kami tidak yakin akan apa yang terjadi. Ingin mencoba lagi atau merekam gambar dari laman yang berbeda?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Ambil, simpan, dan bagikan tangkapan layar tanpa meninggalkan Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "Rekam Bagian Yang Anda Inginkan"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Klik dan seret untuk merekam sebagian area laman. Anda juga dapat menggeser kursor untuk menyoroti pilihan Anda."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Rekam Jendela atau Seluruh Laman"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Pilih tombol di kanan atas untuk merekam area yang terlihat pada jendela atau rekam seluruh laman."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Sesuka Anda"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Simpan potongan tangkapan Anda ke Web agar mudah dibagikan, atau unduh ke komputer. Anda pun dapat mengeklik pada tombol Gambar Saya untuk menemukan semua tangkapan yang pernah Anda rekam."
},
"tourSkip": {
"message": "Lewati"
},
"tourNext": {
"message": "Salindia Selanjutnya"
},
--- a/browser/extensions/screenshots/webextension/_locales/it/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/it/messages.json
@@ -7,17 +7,17 @@
},
"contextMenuLabel": {
"message": "Cattura screenshot"
},
"myShotsLink": {
"message": "I miei screenshot"
},
"screenshotInstructions": {
- "message": "Trascina o fai clic su una pagina per selezionare una regione. Premi ESC per annullare."
+ "message": "Trascina o fai clic su una pagina per selezionare un’area della pagina. Premi ESC per annullare."
},
"saveScreenshotSelectedArea": {
"message": "Salva"
},
"saveScreenshotVisibleArea": {
"message": "Salva l’area visibile"
},
"saveScreenshotFullPage": {
@@ -74,35 +74,41 @@
"message": "Ci dispiace per l’inconveniente. Stiamo lavorando a questa funzione per le prossime versioni."
},
"genericErrorTitle": {
"message": "Wow! Firefox Screenshots è andato in tilt"
},
"genericErrorDetails": {
"message": "Non sappiamo che cosa sia successo. Riprova, magari con una pagina diversa."
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Cattura, salva e condividi screenshot senza mai uscire da Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderPageAction": {
+ "message": "Un nuovo modo per salvare informazioni"
+ },
+ "tourBodyPageAction": {
+ "message": "Hai bisogno di catturare un’istantanea della pagina? Ti basta aprire il menu nella barra degli indirizzi."
+ },
+ "tourHeaderClickAndDrag": {
"message": "Cattura solo ciò che ti serve"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Fai clic e trascina per catturare solo una parte della pagina. Posiziona il mouse sopra all’area selezionata per evidenziarla."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Cattura una finestra o una pagina intera"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Utilizza i pulsanti in alto a destra per catturare una parte della finestra o l’intera pagina."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Come piace a te"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Cattura lo screenshot di una pagina web, ritaglialo e salvalo online per condividerlo in modo più veloce, oppure scaricalo sul tuo computer. Puoi anche utilizzare il pulsante “I miei screenshot” per ritrovare tutte le immagini che hai salvato."
},
"tourSkip": {
"message": "Ignora"
},
"tourNext": {
"message": "Schermata successiva"
},
--- a/browser/extensions/screenshots/webextension/_locales/ja/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/ja/messages.json
@@ -74,35 +74,41 @@
"message": "ご不便をおかけして申し訳ありません。今後のリリースでこの機能を提供できるよう取り組んでいます。"
},
"genericErrorTitle": {
"message": "Firefox Screenshots に問題が発生しました。"
},
"genericErrorDetails": {
"message": "何か問題が発生したようです。再度試すか、別のページのショットを撮ってみてください。"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Firefox を離れることなく、スクリーンショットを撮影、保存、共有。"
},
- "tourHeaderTwo": {
+ "tourHeaderPageAction": {
+ "message": "新たな保存方法"
+ },
+ "tourBodyPageAction": {
+ "message": "スクリーンショットを撮りたいときは、いつでもアドレスバー内のページアクションメニューを開いてください。"
+ },
+ "tourHeaderClickAndDrag": {
"message": "必要な部分だけをキャプチャ"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "クリック&ドラッグでページの一部だけをキャプチャできます。また、マウスを当てれば選択範囲が強調表示されます。"
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "ウィンドウもしくはページ全体をキャプチャ"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "右上のボタンを選択して、ウィンドウ内の表示範囲もしくはページ全体をキャプチャしましょう。"
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "お好きなように"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "切り取ったショットを簡単に共有できるようウェブ上に保存したり、手元へダウンロードしたり。また「自分のショット」ボタンをクリックすれば、これまでに撮ったすべてのショットを見られます。"
},
"tourSkip": {
"message": "スキップ"
},
"tourNext": {
"message": "次のスライド"
},
--- a/browser/extensions/screenshots/webextension/_locales/ka/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/ka/messages.json
@@ -7,17 +7,17 @@
},
"contextMenuLabel": {
"message": "ეკრანისთვის სურათის გადაღება"
},
"myShotsLink": {
"message": "ჩემი გადაღებულები"
},
"screenshotInstructions": {
- "message": "გადაადგილეთ ან დააწკაპეთ გვერდზე არეალის მოსანიშნად. გასაუქმებლად დააჭირეთ ESC-ს."
+ "message": "გადაადგილეთ ან დააწკაპეთ გვერდზე სივრცის მოსანიშნად. გასაუქმებლად დააჭირეთ ESC-ს."
},
"saveScreenshotSelectedArea": {
"message": "შენახვა"
},
"saveScreenshotVisibleArea": {
"message": "ხილული ნაწილის შენახვა"
},
"saveScreenshotFullPage": {
@@ -48,61 +48,61 @@
},
"connectionErrorTitle": {
"message": "თქვენს გადაღებულ სურათებთან კავშირი ვერ ხერხდება."
},
"connectionErrorDetails": {
"message": "გთხოვთ შეამოწმოთ ქსელთან კავშირი. თუ ინტერნეტში თავისუფლად გადიხართ, ე.ი. Firefox Screenshot-ის მომსახურებას აქვს დროებითი პრობლემა."
},
"loginErrorDetails": {
- "message": "თქვენი სურათის შენახვა ვერ ხერხდება, რადგან შეფერხებაა Firefox Screenshots მომსახურებასთან დაკავშირებით. გთხოვთ, სცადოთ მოგვიანებით."
+ "message": "თქვენი სურათის შენახვა ვერ ხერხდება, რადგან შეფერხებაა Firefox Screenshots მომსახურებასთან დაკავშირებით. გთხოვთ სცადოთ მოგვიანებით."
},
"unshootablePageErrorTitle": {
"message": "ამ გვერდისთვის სურათის გადაღება ვერ ხერხდება."
},
"unshootablePageErrorDetails": {
"message": "ეს არ არის ჩვეულებრივი ვებ-გვერდი, ამიტომაც შეუძლებელია სურათის გადაღება."
},
"selfScreenshotErrorTitle": {
"message": "Firefox Screenshots-ის გვერდისთვის სურათის გადაღება არ შეგიძლიათ!"
},
"emptySelectionErrorTitle": {
- "message": "შერჩეული არეალი ძალიან პატარაა"
+ "message": "შერჩეული სივრცე ძალიან მცირეა"
},
"privateWindowErrorTitle": {
"message": "Screenshots გათიშულია პირადი თვალიერების რეჟიმისას"
},
"privateWindowErrorDetails": {
"message": "ბოდიშს გიხდით გაუგებრობის გამო. ჩვენ ვმუშაობთ ამ შესაძლებლობის დამატებაზე, სამომავლო ვერსიებში."
},
"genericErrorTitle": {
"message": "ვაი! Firefox Screenshots მწყობრიდან გამოვიდა."
},
"genericErrorDetails": {
"message": "გაუგებარია რა მოხდა. ისევ ცდით ხელახლა თუ სხვა ვებ-გვერდს გადაუღებთ სურათს?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "გადაიღეთ, შეინახეთ და გააზიარეთ ეკრანის სურათები Firefox-იდან გაუსვლელად."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "გადაუღეთ სურათი რასაც გინდათ"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "გადაადგილეთ ან დააწკაპეთ გვერდზე გადასაღები ნაწილის შესარჩევად. ასევე, კურსორის გადატარებით შეგიძლიათ მონიშნოთ სასურველი არეალი."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "გადაუღეთ სურათები ფანჯრებს ან მთლიან ვებ-გვერდებს"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "მარჯვენა ზედა კუთხეში არსებული ღილაკების საშუალებით, შეგიძლიათ გადაუღოთ სურათი ხილულ ნაწილს, ან მთლიან გვერდს."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "როგორც გენებოთ"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "ამოჭრილი სურათების შენახვა შეგიძლიათ ინტერნეტში, მარტივად გასაზიარებლად, ან შეგიძლიათ კომპიუტერში ჩამოტვირთვა. ასევე, ღილაკზე \"ჩემი გადაღებულები\" დაწკაპებით, იხილავთ თქვენს მიერ გადაღებულ ყველა სურათს."
},
"tourSkip": {
"message": "გამოტოვება"
},
"tourNext": {
"message": "შემდეგი"
},
--- a/browser/extensions/screenshots/webextension/_locales/kab/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/kab/messages.json
@@ -74,35 +74,41 @@
"message": "Suref-aɣ ɣef aya. Aqlaɣ nxeddem ɣef tmahilt i yileqman d-iteddun."
},
"genericErrorTitle": {
"message": "Ihuh! Firefox Screenshots ur iteddu ara."
},
"genericErrorDetails": {
"message": "Ur neẓri ara acu yeḍran. Ɛreḍ tikelt-nniḍen neɣ ṭṭef agdil n usebter-nniḍen?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Ṭṭef, sekles, bḍu igdilen war ma teffɣeḍ si Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderPageAction": {
+ "message": "Abrid amaynut i wsekles"
+ },
+ "tourBodyPageAction": {
+ "message": "Mi tebγiḍ ad teṭṭfeḍ agdil ldi umuγ n tigawin n usebter illan deg ufeggag n tansiwin."
+ },
+ "tourHeaderClickAndDrag": {
"message": "Ṭṭef kan ayen tebγiḍ"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Sit sakin zuɣer akken ad teṭṭfeḍ aḥric seg usebter. Tzemreḍ daɣen ad tesrifgeḍ akken ad tsebṛuṛqeḍ afran-ik."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Ṭṭef isfuyla neγ isebtar meṛṛa"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Fren tiqeffalin s afella ayeffus akken ad teṭṭfeḍ tamnaṭ yettbanen deg usfaylu neɣ asebter i meṛṛa."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Akken tebγiḍ"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Sekles tuṭṭfiwin-ik ar Web i beṭṭu fessusen, neɣ sider-itent-id ar uselkim-ik. Tzemr€d daɣen ad tiseḍ ɣef tqeffalt Tiṭṭfiwin-iw akken ad tafeḍ akk tuṭṭfiwin n ugdil i teggid."
},
"tourSkip": {
"message": "Zgel"
},
"tourNext": {
"message": "Tigri n zdat"
},
--- a/browser/extensions/screenshots/webextension/_locales/kk/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/kk/messages.json
@@ -74,35 +74,35 @@
"message": "Қолайсыздық үшін кешірім сұраймыз. Бұл мүмкіндікті болашақ шығарылымдарда іске асыруға жұмысты жасаймыз."
},
"genericErrorTitle": {
"message": "Қап! Firefox скриншоттары жасамай қалған сияқты."
},
"genericErrorDetails": {
"message": "Не болғанын білмейміз. Қайталап көресіз бе, немесе басқа парақтың скриншотын түсіріп көресіз бе?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Firefox ішінен скриншоттарды түсіру, сақтау және олармен бөлісу."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "Тек керек нәрсені түсіріңіз"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Беттің тек бір бөлігін түсіру үшін тышқанды шертіп, тартыңыз. Таңдауыңызды түспен ерекшелеу үшін үстінен өткізсеңіз болады."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Терезелер немесе толық беттерді түсіріңіз"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Жоғарғы оң жақта орналасқан батырмаларды терезенің көрінетін аймағын, немесе толық бетті түсіру үшін қолданыңыз."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Өзіңізге керек түрде"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Қиылған скриншоттарыңыздбен оңай бөлісу үшін оларды интернетте сақтаңыз, немесе өз компьютеріңізге жүктеп алыңыз. Сонымен қатар, сіз жасаған барлық скриншоттарды табу үшін Менің скриншоттарым батырмасына шерте аласыз."
},
"tourSkip": {
"message": "Аттап кету"
},
"tourNext": {
"message": "Келесі слайд"
},
@@ -123,10 +123,13 @@
}
}
},
"termsAndPrivacyNoticeTermsLink": {
"message": "Қолдану шарттары"
},
"termsAndPrivacyNoticyPrivacyLink": {
"message": "Жекелік ескертуі"
+ },
+ "libraryLabel": {
+ "message": "Скриншоттар"
}
}
\ No newline at end of file
--- a/browser/extensions/screenshots/webextension/_locales/ko/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/ko/messages.json
@@ -74,35 +74,35 @@
"message": "불편을 끼쳐 드려서 죄송합니다. 다음 출시에 넣을 수 있도록 기능을 개선중입니다."
},
"genericErrorTitle": {
"message": "와우! Firefox Screenshots이 망가졌네요."
},
"genericErrorDetails": {
"message": "무슨 일이 있었는지 모르겠네요. 다시 시도하시거나 다른 페이지 스크린샷을 찍어 보시겠어요?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Firefox를 떠나지 않은 채로 찍고, 저장하고, 공유하세요."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "원하는 것을 캡춰하세요"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "캡춰할 페이지의 부분을 클릭해서 드래그 해 보세요. 마우스를 올려서 선택한 부분을 확인할 수 있습니다."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "창이나 페이지 전체를 캡춰할 수 있습니다"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "우측 위에 있는 버튼을 눌러 창을 캡처하거나 페이지 전체를 캡처할 수 있습니다."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "내가 원하는 대로"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "스크린샷을 공유하거나, 컴퓨터로 다운로드할 수도 있습니다. 내 스크린샷 버튼을 눌러서 지금까지 찍었던 모든 스크린샷을 찾을 수도 있습니다."
},
"tourSkip": {
"message": "건너뛰기"
},
"tourNext": {
"message": "다음 슬라이드"
},
--- a/browser/extensions/screenshots/webextension/_locales/lij/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/lij/messages.json
@@ -65,35 +65,35 @@
"message": "No ti peu fâ 'na föto do schermo a 'na pagina de Firefox Screenshots!"
},
"genericErrorTitle": {
"message": "Ahime mi! Firefox Screeshot o s'é ciantou."
},
"genericErrorDetails": {
"message": "Niatri no emmo ben acapio cöse l'é sucesso. Ti peu miga preuvâ co-ina pagina dispægia?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Fanni, sarva e condividdi föto do schermo sensa sciortî da Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "Catua solo quello che t'eu"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Sciacca e rebela pe catuâ solo 'na porçion de 'na pagina. Ti peu anche anâ co-o ratto sorvia l'area seleçionâ pe evidençiala."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Catua 'n barcon ò 'na pagina intrega"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Seleçionn-a i pomelli de d'ato a drita pe catuâ l'area vixibile into barcon ò a pagina intrega."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Comme te piaxe"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Sarva 'n ritaggio de 'na pagina Web pe condividila in mòddo ciù façile ò scaregala into teu computer. Ti peu anche sciacâ into pomello “E mæ föto do schermo pe atrovâ” quello che t'æ za pigiou."
},
"tourSkip": {
"message": "Ignòra"
},
"tourNext": {
"message": "Pròscima schermâ"
},
--- a/browser/extensions/screenshots/webextension/_locales/lo/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/lo/messages.json
@@ -68,35 +68,35 @@
"message": "ການເລືອກຂອງທ່ານນ້ອຍເກີນໄປ"
},
"genericErrorTitle": {
"message": "ໂອ! Firefox Screenshots ລວນ."
},
"genericErrorDetails": {
"message": "ພວກເຮົາບໍ່ແນ່ໃຈວ່າມັນຫາກະເກີດຫຍັງຂື້ນ. ກະລຸນາລອງໃຫມ່ອີກຄັ້ງ ຫລື ຖ່າຍພາບຫນ້າຈໍອື່ນລອງເບິງ"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "ຖ່າຍ, ບັນທຶກ ແລະ ແບ່ງປັນພາບຫນ້າຈໍໂດຍບໍ່ຕ້ອງອອກຈາກ Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "ຖ່າຍພາບຕາມທີ່ທ່ານຕ້ອງການ"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "ຄິກ ຫລື ລາກເພື່ອຖ່າຍພາບສະເພາະບາງສ່ວນຂອງຫນ້າເວັບ. ພ້ອມດຽວກັນນັ້ນທ່ານຍັງສາມາດເລື່ອນມາເພື່ອເນັ້ນພາບທີ່ທ່ານເລືອກ."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "ຖ່າຍພາບວິນໂດ ຫລື ຫມົດທັ້ງຫນ້າ"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "ເລືອກປຸ່ມກົດທີ່ຢູ່ເທິງເບື້ອງຂວາມືເພື່ອຈັບພາບໃນບໍລິເວນທີ່ເບິງເຫັນໄດ້ໃນວິນໂດ ຫລື ເພື່ອຈັບພາບທັງຫມົດໃນຫນ້າເວັບ."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "ຕາມທີ່ທ່ານມັກ"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "ບັນທຶກຮູບພາບທີ່ທ່ານໄດ້ຄັອບເອົາໄວ້ລົງໄປໄວ້ໃນເວັບເພື່ອເຮັດໃຫ້ແບ່ງປັນໄດ້ງ່າຍ ຫລື ດາວໂຫລດໄປໄວ້ໃນຄອມພິວເຕີຂອງທ່ານ. ທ່ານຍັງສາມາດຄິກໃສ່ໃນປຸ່ມກົດ \"ຮູບພາບຂອງຂ້ອຍ\" ເພື່ອຊອກຫາຮູບພາບທັງຫມົດທີ່ທ່ານໄດ້ຖ່າຍເອົາໄວ້."
},
"tourSkip": {
"message": "ຂ້າມໄປ"
},
"tourNext": {
"message": "ສະໄລດ໌ຕໍ່ໄປ"
},
--- a/browser/extensions/screenshots/webextension/_locales/lt/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/lt/messages.json
@@ -74,35 +74,35 @@
"message": "Atsiprašome už nepatogumą. Mes dirbame prie šio funkcionalumo vėlesnėms versijoms."
},
"genericErrorTitle": {
"message": "Vau! „Firefox Screenshots“ sugedo."
},
"genericErrorDetails": {
"message": "Mes nesame tikri, kas ką tik nutiko. Norite pabandyti dar kartą arba nufotografuoti kitą tinklalapį?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Darykite, įrašykite ir dalinkitės ekrano nuotraukomis nepalikdami „Firefox“."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "Užfiksuokite būtent tai, ką norite"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Spustelėkite ir tempkite, kad užfiksuotumėte tik dalį tinklalapio. Taip pat galite užvesti pelę, norėdami paryškinti savo pasirinkimą."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Fiksuokite langus arba ištisus tinklalapius"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Pasirinkite mygtukus aukščiau dešinėje, norėdami užfiksuoti matomą lango dalį arba visą tinklalapį."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Kaip jums patogiau"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Įrašykite padarytas nuotraukas saityne patogesniam dalinimuisi, arba atsisiųskite jas į savo kompiuterį. Spustelėję mygtuką „Mano kadrai“, matysite visas savo padarytas nuotraukas."
},
"tourSkip": {
"message": "SKIP"
},
"tourNext": {
"message": "Kita skaidrė"
},
--- a/browser/extensions/screenshots/webextension/_locales/mk/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/mk/messages.json
@@ -74,35 +74,35 @@
"message": "Извинете за незгодата. Работиме на оваа функционалност за во идните верзии."
},
"genericErrorTitle": {
"message": "Ајдее! Firefox Screenshots излезе од контрола."
},
"genericErrorDetails": {
"message": "Не сме баш сигурни што се случи. Сакате да се обидете повторно или да направите слика од друга страница?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Фаќајте, снимајте и споделувајте слики од екран без да го напуштите Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "Фатете слика од тоа што сакате"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Кликнете и влечете за да фатите само дел од страницата. Исто така можете да означите дел и со покажувачот."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Фатете слика од прозорци или цели страници"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Кликнете на копчињата во горниот десен дел за да го снимите видливиот дел на прозорецот или пак, целата страница."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Како што Вие сакате"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Снимете ги Вашите исечоци на Интернет за полесно споделување или преземете ги на Вашиот компјутер. Исто така можете да кликнете на копчето Мои слики за да ги најдете сите слики што ги имате направено."
},
"tourSkip": {
"message": "ПРЕСКОКНИ"
},
"tourNext": {
"message": "Следен слајд"
},
--- a/browser/extensions/screenshots/webextension/_locales/mr/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/mr/messages.json
@@ -74,35 +74,35 @@
"message": "गैरसोयीबद्दल क्षमस्व. आम्ही भविष्यातील प्रकाशनासाठी या वैशिष्ट्यांवर कार्यरत आहोत."
},
"genericErrorTitle": {
"message": "हुअ! Firefox स्क्रीनशॉट अव्यवस्थित झाले आहे."
},
"genericErrorDetails": {
"message": "काय घडले याची आम्हाला खात्री नाही. पुन्हा प्रयत्न करा किंवा भिन्न पृष्ठाचा शॉट घ्या?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Firefox न सोडता स्क्रीनशॉट घ्या, जतन करा आणि सामायिक करा."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "आपल्याला पाहिजे असलेल्या गोष्टी फक्त कॅप्चर करा"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "पृष्ठाचा फक्त एक भाग कॅप्चर करण्यासाठी क्लिक आणि ड्रॅग करा. आपण आपल्या निवडीवर ठळकपणे होव्हर देखील करू शकता."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Windows किंवा संपूर्ण पृष्ठे कॅप्चर करा"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "पटलामध्ये दृश्यमान क्षेत्र कॅप्चर करण्यासाठी किंवा संपूर्ण पृष्ठ कॅप्चर करण्यासाठी वरील उजवीकडील बटणे निवडा."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "जसे आपल्याला आवडते"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "आपले क्रॉप केलेले शॉट्स वेबवर सुलभ सामायिक करण्यासाठी जतन करा, किंवा त्यांना आपल्या संगणकावर डाउनलोड करा. आपण घेतलेले सर्व शॉट्स शोधण्यासाठी आपण माझे शॉट्स बटणावर क्लिक करू शकता."
},
"tourSkip": {
"message": "दुर्लक्षित करा"
},
"tourNext": {
"message": "पुढील स्लाइड"
},
--- a/browser/extensions/screenshots/webextension/_locales/ms/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/ms/messages.json
@@ -74,35 +74,41 @@
"message": "Maaf atas sebarang kesulitan. Kami sedang berusaha untuk menyediakan ciri ini dalam keluaran akan datang."
},
"genericErrorTitle": {
"message": "Oh tidak! Firefox Screenshots tidak berfungsi dengan betul."
},
"genericErrorDetails": {
"message": "Kami tidak pasti apa yang baru berlaku. Anda mahu cuba lagi atau mengambil gambar halaman lain?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Ambil, simpan, dan kongsi skrinsyot tanpa meninggalkan pelayar Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderPageAction": {
+ "message": "Satu cara baru untuk menyimpan"
+ },
+ "tourBodyPageAction": {
+ "message": "Kembangkan menu tindakan halaman di dalam bar alamat apabila anda mahu mengambil skrinsyot."
+ },
+ "tourHeaderClickAndDrag": {
"message": "Ambil gambar hanya yang anda mahu"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Klik dan seret untuk mengambil gambar sebahagian daripada halaman. Anda boleh juga serlahkan pilihan anda."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Tangkap Tetingkap atau Keseluruhan Halaman"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Pilih butang di bahagian atas kanan untuk merakam kawasan paparan dalam tetingkap atau untuk merakamkan keseluruhan halaman."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Seperti Yang Anda Suka"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Simpan rakaman yang dipotong ke Web, cara yang lebih mudah untuk berkongsi, atau memuat turun ke komputer anda. Anda juga boleh klik pada butang Syot Saya untuk mencari semua rakaman yang telah dibuat."
},
"tourSkip": {
"message": "SKIP"
},
"tourNext": {
"message": "Slaid Seterusnya"
},
--- a/browser/extensions/screenshots/webextension/_locales/my/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/my/messages.json
@@ -36,26 +36,26 @@
"message": "စိတ်မကောင်းပါ၊ သင်ရိုက်ကူးထားသော ပုံကို မသိမ်းနိုင်ပါ။ နောင်တွင် ပြန်စမ်းကြည့်ပါ။"
},
"connectionErrorTitle": {
"message": "သင်ရိုက်ကူးထားသော မျက်နှာပြင်ပုံရိပ်များထံ မချိတ်ဆက်နိုင်ပါ။"
},
"unshootablePageErrorTitle": {
"message": "ဒီစာမျက်နှာ၏ မျက်နှာပြင်ပုံရိပ်ကို မရိုက်ကူးနိုင်ပါ။"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Firefox ကနေ ထွက်ခွာရန် မလိုဘဲ မျက်နှာပြင်ပုံရိပ်များကို ရိုက်ကူး၊ သိမ်းဆည်း၊ မျှဝေပါ။"
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "ကိုယ်နှစ်သက်ရာ စာမျက်နှာများကို ဖမ်းယူပါ"
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "ဝင်ဒိုးများ သို့မဟုတ် စာမျက်နှာတစ်ခုလုံးကို ဖမ်းယူပါ"
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "နှစ်သက်သလို"
},
"tourSkip": {
"message": "SKIP"
},
"tourNext": {
"message": "နောက်ဆလိုက်"
},
--- a/browser/extensions/screenshots/webextension/_locales/nb_NO/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/nb_NO/messages.json
@@ -74,35 +74,41 @@
"message": "Beklager ulempen. Vi jobber med denne funksjonen for fremtidige utgivelser."
},
"genericErrorTitle": {
"message": "Oi! Det ser ut til at Firefox Screenshots ikke fungerer korrekt."
},
"genericErrorDetails": {
"message": "Vi er ikke sikre på hva som hendte. Kan du prøve igjen eller ta et bilde av en annen side?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Ta, lagre og del skjermbilder uten å forlate Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderPageAction": {
+ "message": "En ny måte å lagre på"
+ },
+ "tourBodyPageAction": {
+ "message": "Utvid sidehandlingsmenyen i adresselinjen når du vil ta et skjermbilde."
+ },
+ "tourHeaderClickAndDrag": {
"message": "Ta bilde av akkurat hva du vil"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Klikk for å dra og ta skjermbilde av bare en del av siden. Du kan også føre musen over for å framheve merket område."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Ta skjermbilde av vinduer eller hele sider."
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Bruk knappene i det øvre høyre hjørnet for å ta skjermbilde av det synlige området i vinduet eller for å ta skjermbilde av en hel side."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Som du vil ha det"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Lagre de beskjærte skjermbildene dine på nettet for enklere deling, eller last de ned til din datamaskin. Du kan også klikke på knappen Mine skjermbilde for å finne alle skjermbildene du har tatt."
},
"tourSkip": {
"message": "Hopp over"
},
"tourNext": {
"message": "Neste slide"
},
--- a/browser/extensions/screenshots/webextension/_locales/nl/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/nl/messages.json
@@ -74,35 +74,41 @@
"message": "Sorry voor het ongemak. Voor toekomstige releases wordt aan deze functie gewerkt."
},
"genericErrorTitle": {
"message": "Ho! Er is iets mis met Firefox Screenshots."
},
"genericErrorDetails": {
"message": "We weten niet precies wat er zonet is gebeurd. Wilt u het nogmaals proberen, of een schermafbeelding van een andere pagina maken?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Maak, bewaar en deel schermafbeeldingen zonder Firefox te verlaten."
},
- "tourHeaderTwo": {
+ "tourHeaderPageAction": {
+ "message": "Een nieuwe manier om op te slaan"
+ },
+ "tourBodyPageAction": {
+ "message": "Vouw het menu Pagina-acties in de adresbalk uit zodra u een schermafbeelding wilt maken."
+ },
+ "tourHeaderClickAndDrag": {
"message": "Leg alleen vast wat u wilt"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Klik en sleep om alleen een gedeelte van een pagina vast te leggen. U kunt ook de muisaanwijzer boven een gebied houden om uw selectie te accentueren."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Leg vensters of hele pagina’s vast"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Selecteer de knoppen rechtsboven om het zichtbare gebied in het venster vast te leggen, of om een hele pagina vast te leggen."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Zoals u wilt"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Sla uw bijgesneden afbeeldingen op op het web voor makkelijker delen, of download ze naar uw computer. U kunt ook op de knop Mijn afbeeldingen klikken om al uw gemaakte afbeeldingen te vinden."
},
"tourSkip": {
"message": "Overslaan"
},
"tourNext": {
"message": "Volgende slide"
},
--- a/browser/extensions/screenshots/webextension/_locales/nn_NO/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/nn_NO/messages.json
@@ -74,35 +74,41 @@
"message": "Ein er lei for ulempa. Vi jobbar med denne funksjonen for framtidige versjonar."
},
"genericErrorTitle": {
"message": "Oj! Det ser ut til at Firefox Screenshots ikkje fungerer korrekt."
},
"genericErrorDetails": {
"message": "Vi er ikkje sikre på kva som hende. Kan du prøve igjen eller ta eit bilde på ei anna side?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Ta, lagre og del skjermbilde utan å forlate Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderPageAction": {
+ "message": "Ein ny måte å lagre på"
+ },
+ "tourBodyPageAction": {
+ "message": "Utvid sidehandlingsmenyen i adresselinja når du vil ta eit skjermbilde."
+ },
+ "tourHeaderClickAndDrag": {
"message": "Knips akkurat det du vil"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Klikk for å drage og knipse berre ein del av sida. Du kan også føre musa over for å framheve merkt område."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Knips vindauge eller heile sider"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Vel knappane i det øvre høgre hjørnet for å knipse det synlege området i vindauget eller for å knipse ei heil side."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Som du vil ha det"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Lagre dei tilskjerte bilda dine på nettet for enklare deling, eller last dei ned til datamaskina di. Du kan også klikke på knappen Mine skjermbilde for å finne alle bilda du har tatt."
},
"tourSkip": {
"message": "Hopp over"
},
"tourNext": {
"message": "Neste slide"
},
--- a/browser/extensions/screenshots/webextension/_locales/pl/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/pl/messages.json
@@ -69,40 +69,46 @@
},
"privateWindowErrorTitle": {
"message": "Firefox Screenshots jest wyłączony w trybie prywatnym"
},
"privateWindowErrorDetails": {
"message": "Przepraszamy za utrudnienia. Pracujemy nad dodaniem tej funkcji."
},
"genericErrorTitle": {
- "message": "Firefox Screenshots wymknęło się spod kontroli."
+ "message": "Firefox Screenshots wymknął się spod kontroli."
},
"genericErrorDetails": {
"message": "Nie bardzo wiemy, co się wydarzyło. Spróbujesz ponownie lub wykonasz zrzut innej strony?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Wykonuj, zapisuj i udostępniaj zrzuty ekranu bez wychodzenia z Firefoksa."
},
- "tourHeaderTwo": {
+ "tourHeaderPageAction": {
+ "message": "Nowy sposób zapisywania"
+ },
+ "tourBodyPageAction": {
+ "message": "Rozwiń menu interakcji na pasku adresu, kiedy chcesz wykonać zrzut ekranu."
+ },
+ "tourHeaderClickAndDrag": {
"message": "Zapisuj tylko to, co potrzebujesz"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Kliknij i przeciągnij, aby zapisać tylko część strony. Możesz także najechać, aby wyróżnić zaznaczony obszar."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Zapisuj zrzuty okien lub całych stron"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Kliknij przycisk w górnym prawym rogu, aby zapisać obszar widoczny w oknie lub całą stronę."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Tak, jak lubisz"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Zapisuj przycięte zrzuty w Internecie, aby łatwiej je udostępniać, albo pobierz je na swój komputer. Możesz też kliknąć przycisk „Moje zrzuty”, aby przeglądać wszystkie wykonane zrzuty."
},
"tourSkip": {
"message": "Pomiń"
},
"tourNext": {
"message": "Dalej"
},
--- a/browser/extensions/screenshots/webextension/_locales/pt_BR/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/pt_BR/messages.json
@@ -74,35 +74,35 @@
"message": "Lamentamos o inconveniente. Estamos trabalhando neste recurso para lançamentos futuros."
},
"genericErrorTitle": {
"message": "Uau! Algo correu mal com a capturas de tela do Firefox."
},
"genericErrorDetails": {
"message": "Não temos certeza do que acabou de acontecer. Tentar novamente ou fazer uma captura de uma página diferente?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Capture, salve e compartilhe telas sem sair do Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "Capture apenas o que você quer"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Clique e arraste para capturar apenas uma parte de uma página. Você também pode passar o mouse para realçar sua seleção."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Capture janelas ou páginas inteiras"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Selecione os botões no canto superior direito para capturar a área visível na janela ou capturar uma página inteira."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Como você quiser"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Salve as suas capturas na Web para compartilhar mais facilmente ou baixe-as no seu computador. Você também pode clicar no botão Minhas capturas para encontras todas as capturas que tirou."
},
"tourSkip": {
"message": "Pular"
},
"tourNext": {
"message": "Próximo slide"
},
--- a/browser/extensions/screenshots/webextension/_locales/pt_PT/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/pt_PT/messages.json
@@ -74,35 +74,41 @@
"message": "Desculpe pela inconveniência. Estamos a trabalhar nesta funcionalidade para futuros lançamentos."
},
"genericErrorTitle": {
"message": "Uau! Algo correu mal com o Firefox Screenshots."
},
"genericErrorDetails": {
"message": "Não temos a certeza do que acabou de acontecer. Importa-se de tentar novamente ou tirar uma captura de uma página diferente?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Tire, guarde, e partilhe capturas de ecrã sem sair do Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderPageAction": {
+ "message": "Uma nova maneira de guardar"
+ },
+ "tourBodyPageAction": {
+ "message": "Expanda o menu de ações da página na barra de endereço sempre que quiser tirar uma captura de ecrã."
+ },
+ "tourHeaderClickAndDrag": {
"message": "Capture aquilo mesmo que pretende"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Clique e arraste para capturar apenas uma porção de uma página. Pode também pairar para destacar a sua seleção."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Capture janelas ou páginas inteiras"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Selecione os botões no canto superior direito para capturar a área visível na janela ou para capturar uma página inteira."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Como você gostar"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Guarde as suas capturas na Web para partilhar mais facilmente, ou descarregue-as para o seu computador. Pode também clicar no botão Minhas capturas para encontrar todas as capturas que tirou."
},
"tourSkip": {
"message": "SALTAR"
},
"tourNext": {
"message": "Diapositivo seguinte"
},
--- a/browser/extensions/screenshots/webextension/_locales/rm/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/rm/messages.json
@@ -74,35 +74,35 @@
"message": "Perstgisa las malempernaivladads. Nus furnin questa funcziun en ina da las proximas versiuns."
},
"genericErrorTitle": {
"message": "Oh dieu! Firefox Screenshots ha il singlut."
},
"genericErrorDetails": {
"message": "Nus na savain betg tge ch'è gist capità. Vuls empruvar anc ina giada, forsa cun in'autra pagina?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Far, memorisar e cundivider maletgs da visur senza bandunar Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "Far maletgs da visur da tut che vi vuls"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Clicca e tira per far in maletg da be ina part da la pagina. Ti pos posiziunar la mieur sur la selecziun per la relevar."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Far maletgs da fanestras u paginas cumplettas"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Tscherna il buttun sura dretg per far in maletg da la part visibla en la fanestra u per far in maletg da la pagina cumpletta."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Co che ti prefereschas"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Memorisescha ils maletgs da visur en il web per als pudair cundivider u telechargiar sin tes computer. Ti pos era cliccar sin il buttun «Mes maletgs da visur» per vesair tut ils maletgs dal visur che ti has fatg."
},
"tourSkip": {
"message": "Sursiglir"
},
"tourNext": {
"message": "Proxim pass"
},
--- a/browser/extensions/screenshots/webextension/_locales/ro/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/ro/messages.json
@@ -1,38 +1,99 @@
{
"addonDescription": {
"message": "Realizează decupaje și capturi de ecran de pe web și salvează-le temporar sau permanent."
},
+ "addonAuthorsList": {
+ "message": "Mozilla <screenshots-feedback@mozilla.com>"
+ },
"contextMenuLabel": {
"message": "Realizează o captură de ecran"
},
"myShotsLink": {
"message": "Capturile mele"
},
+ "screenshotInstructions": {
+ "message": "Trage sau dă clic pe pagină pentru a selecta o regiune. Apasă ESC pentru a renunța."
+ },
"saveScreenshotSelectedArea": {
"message": "Salvează"
},
+ "saveScreenshotVisibleArea": {
+ "message": "Salvează porțiunea vizibilă"
+ },
+ "saveScreenshotFullPage": {
+ "message": "Salvează pagina completă"
+ },
"cancelScreenshot": {
"message": "Renunță"
},
"downloadScreenshot": {
"message": "Descarcă"
},
"notificationLinkCopiedTitle": {
"message": "Link copiat"
},
+ "notificationLinkCopiedDetails": {
+ "message": "Linkul către captura ta a fost copiat în clipboard. Apasă $META_KEY$-V pentru lipire.",
+ "placeholders": {
+ "meta_key": {
+ "content": "$1"
+ }
+ }
+ },
+ "requestErrorTitle": {
+ "message": "Nefuncțional."
+ },
+ "unshootablePageErrorTitle": {
+ "message": "Nu putem realiza o captură de ecran a acestei pagini."
+ },
+ "emptySelectionErrorTitle": {
+ "message": "Selecția este prea mică"
+ },
+ "tourHeaderClickAndDrag": {
+ "message": "Capturează întocmai ceea ce dorești"
+ },
+ "tourBodyClickAndDrag": {
+ "message": "Clic și trage pentru a captura doar o porțiune a unei pagini. Poți și să poziționezi cursorul peste porțiune pentru a evidenția selecția."
+ },
+ "tourHeaderFullPage": {
+ "message": "Capturează ferestre sau pagini întregi"
+ },
+ "tourBodyFullPage": {
+ "message": "Selectează butoanele din partea dreaptă sus pentru a captura zona vizibilă din fereastră sau pentru a captura o pagină întreagă."
+ },
+ "tourHeaderDownloadUpload": {
+ "message": "Pe placul tău"
+ },
"tourSkip": {
"message": "OMITE"
},
"tourNext": {
"message": "Diapozitivul următor"
},
"tourPrevious": {
"message": "Diapozitivul anterior"
},
+ "tourDone": {
+ "message": "Terminat"
+ },
+ "termsAndPrivacyNotice2": {
+ "message": "Folosind Firefox Screenshots, ești de acord cu $TERMSANDPRIVACYNOTICETERMSLINK$ și $TERMSANDPRIVACYNOTICEPRIVACYLINK$.",
+ "placeholders": {
+ "termsandprivacynoticetermslink": {
+ "content": "$1"
+ },
+ "termsandprivacynoticeprivacylink": {
+ "content": "$2"
+ }
+ }
+ },
"termsAndPrivacyNoticeTermsLink": {
"message": "Termenii"
},
"termsAndPrivacyNoticyPrivacyLink": {
"message": "Politica de confidenţialitate"
+ },
+ "libraryLabel": {
+ "message": "Capturi de ecran"
}
}
\ No newline at end of file
--- a/browser/extensions/screenshots/webextension/_locales/ru/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/ru/messages.json
@@ -74,35 +74,35 @@
"message": "Приносим извинения за неудобства. Мы работаем над включением этой функции в будущие релизы."
},
"genericErrorTitle": {
"message": "Ого! Скриншоты Firefox вышли из строя."
},
"genericErrorDetails": {
"message": "Мы не уверены, в чём проблема. Попробуете ещё раз или сделаете снимок другой страницы?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Делайте, сохраняйте и делитесь скриншотами прямо в Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "Делайте снимки чего угодно"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Щелкните и потяните мышью для захвата части страницы. Вы также можете навести курсор мыши для подсветки выбранной области."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Захватывайте окна или целые страницы"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "С помощью кнопок в верхнем правом углу выбирайте захват видимой области окна или страницы целиком."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Как вам нравится"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Сохраняйте свои снимки в Интернете, чтобы легко ими делиться, или загружайте их на свой компьютер. Вы также можете просмотреть все сохранённые снимки, нажав на кнопку Мои снимки."
},
"tourSkip": {
"message": "Пропустить"
},
"tourNext": {
"message": "Следующий слайд"
},
--- a/browser/extensions/screenshots/webextension/_locales/sk/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/sk/messages.json
@@ -74,35 +74,41 @@
"message": "Ospravedlňujeme sa za spôsobené nepríjemnosti. Pracujeme na vylepšení tejto funkcie v budúcich verziách."
},
"genericErrorTitle": {
"message": "Ups! Služba Firefox Screenshots prestala pracovať."
},
"genericErrorDetails": {
"message": "Nie sme si istí, čo sa práve stalo. Chcete tú skúsiť znova alebo chcete vytvoriť snímku inej stránky?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Tvorte, ukladajte a zdieľajte snímky obrazovky bez toho, aby ste museli opustiť Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderPageAction": {
+ "message": "Nový spôsob ukladania"
+ },
+ "tourBodyPageAction": {
+ "message": "Kedykoľvek chcete urobiť snímku, otvorte ponuku akcii stránky v paneli s adresou."
+ },
+ "tourHeaderClickAndDrag": {
"message": "Zachyťte to, čo chcete"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Ak chcete zachytiť časť stránky, urobíte to kliknutím a potiahnutím. Váš výber zvýrazníte tak, že sa naň presuniete myšou."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Zachyťte okná alebo celé webové stránky"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Kliknutím na tlačidlo v pravom hornom rohu môžete zachytiť viditeľnú časť stránky. Pomocou ďalšieho tlačidla zachytíte celú stránku."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Urobte to, čo chcete"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Uložte si orezanú snímku na web, aby ste ju mohli ľahšie zdieľať alebo si ju prevziať do počítača. Môžete si taktiež pozrieť všetky vaše snímky - stačí, ak kliknete na tlačidlo Moje snímky."
},
"tourSkip": {
"message": "Preskočiť"
},
"tourNext": {
"message": "Ďalšia snímka"
},
--- a/browser/extensions/screenshots/webextension/_locales/sl/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/sl/messages.json
@@ -74,35 +74,41 @@
"message": "Oprostite za nevšečnost. To možnost izboljšujemo za prihodnje izdaje."
},
"genericErrorTitle": {
"message": "Uf! Firefox Screenshots se je pokvaril."
},
"genericErrorDetails": {
"message": "Ne vemo točno, kaj se je pravkar zgodilo. Bi radi poskusili znova ali pa zajeli posnetek kakšne druge strani?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Zajemite, shranite in delite zaslonske posnetke, ne da bi zapustili Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderPageAction": {
+ "message": "Nov način shranjevanja"
+ },
+ "tourBodyPageAction": {
+ "message": "Kadarkoli želite zajeti posnetek zaslona, v naslovni vrstici razširite meni dejanj strani."
+ },
+ "tourHeaderClickAndDrag": {
"message": "Zajemite to, kar hočete"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Kliknite in povlecite, če želite zajeti samo del strani. Svojo izbiro lahko tudi poudarite, tako da preko nje povlečete miškin kazalec."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Zajemite okna ali celotne strani"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "V zgornjem desnem kotu izberite gumb za zajem vidnega območja v oknu ali celotne strani."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Kot vi želite"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Shranite obrezane posnetke na splet za lažje deljenje ali jih prenesite na svoj računalnik. Vse zajete posnetke lahko najdete s klikom na gumb Moji posnetki."
},
"tourSkip": {
"message": "Preskoči"
},
"tourNext": {
"message": "Naslednji diapozitiv"
},
--- a/browser/extensions/screenshots/webextension/_locales/sq/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/sq/messages.json
@@ -53,23 +53,23 @@
"message": "Ju lutemi, kontrolloni lidhjen tuaj Internet. Nëse jeni në gjendje të lidheni në Internet, mund të bëhet fjalë për një problem të përkohshëm me shërbimin Firefox Screenshots."
},
"loginErrorDetails": {
"message": "S’e ruajtëm dot foton tuaj, ngaqë pati një problem me shërbimin Firefox Screenshots. Ju lutemi, riprovoni më vonë."
},
"unshootablePageErrorTitle": {
"message": "S’bëjmë dot foto të kësaj faqeje."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "Fiksoni Në Foto Aq Sa Doni"
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Fiksoni Dritare ose Krejt Faqet"
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Si T’ju Pëlqejë"
},
"tourDone": {
"message": "U bë"
},
"termsAndPrivacyNoticeTermsLink": {
"message": "Kushte"
},
--- a/browser/extensions/screenshots/webextension/_locales/sr/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/sr/messages.json
@@ -74,35 +74,41 @@
"message": "Жао нам је због овог неспоразума. Радимо на овој могућности за следећа издања."
},
"genericErrorTitle": {
"message": "Ајој! Firefox Screenshots је пошашавио."
},
"genericErrorDetails": {
"message": "Нисмо сигурни шта се управо догодило. Желите ли покушати поново или да усликате другачију страницу?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Забележите, сачувајте и поделите снимке екрана без напуштања Firefox-а."
},
- "tourHeaderTwo": {
+ "tourHeaderPageAction": {
+ "message": "Нови начин да сачувате"
+ },
+ "tourBodyPageAction": {
+ "message": "Проширите страницу из менија у адресној траци кад год желите да усликате екран."
+ },
+ "tourHeaderClickAndDrag": {
"message": "Усликајте баш оно што желите"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Кликните и превуците да усликате само део странице. Такође можете означити вашу селекцију."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Усликајте прозоре или целе странице"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Изаберите дугмад у горњем десном углу да усликате видљиве делове прозора или да усликате целу страницу."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Као што волите"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Сачувајте ваш исечени снимак на веб ради лакшег дељења или преузимања на ваш рачунар. Такође можете кликнути на дугме \"Моји снимци\" да пронађете све ваше снимке."
},
"tourSkip": {
"message": "Прескочи"
},
"tourNext": {
"message": "Следећи слајд"
},
@@ -123,10 +129,13 @@
}
}
},
"termsAndPrivacyNoticeTermsLink": {
"message": "услове"
},
"termsAndPrivacyNoticyPrivacyLink": {
"message": "обавештење о приватности"
+ },
+ "libraryLabel": {
+ "message": "Снимци екрана"
}
}
\ No newline at end of file
--- a/browser/extensions/screenshots/webextension/_locales/sv_SE/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/sv_SE/messages.json
@@ -74,35 +74,41 @@
"message": "Ledsen för besväret. Vi arbetar med den här funktionen för framtida versioner."
},
"genericErrorTitle": {
"message": "Oj! Firefox Screenshots verkar inte fungera korrekt."
},
"genericErrorDetails": {
"message": "Vi är inte säkra på vad som just hände. Kan du försöka igen eller ta en bild på en annan sida?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Ta, spara, och dela skärmbilder utan att lämna Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderPageAction": {
+ "message": "Ett nytt sätt att spara"
+ },
+ "tourBodyPageAction": {
+ "message": "Expandera sidåtgärdsmenyn i adressfältet när du vill ta en skärmbild."
+ },
+ "tourHeaderClickAndDrag": {
"message": "Fånga precis vad du vill"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Klicka och dra för att fånga bara en del av en sida. Du kan också hovra för att markera ditt val."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Fånga fönster eller hela sidor"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Välj knapparna i det övre högra hörnet för att fånga det synliga området i fönstret eller för att fånga en hel sida."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Som du vill ha det"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Spara dina beskurna bilder till webben för enklare delning, eller hämta dem till datorn. Du kan också klicka på knappen Mina skärmbilder för att hitta alla bilder du tagit."
},
"tourSkip": {
"message": "Hoppa över"
},
"tourNext": {
"message": "Nästa sida"
},
--- a/browser/extensions/screenshots/webextension/_locales/ta/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/ta/messages.json
@@ -74,35 +74,35 @@
"message": "சிரமத்திற்கு வருந்துகிறோம். எதிர்கால வெளியீடுகளில் நாங்கள் இந்த வசதியைச் செய்து தருகிறோம்."
},
"genericErrorTitle": {
"message": "அய் அய்யோ! பயர்பாஃசு திரைப்பிடிப்பு வீணாய் போனது. "
},
"genericErrorDetails": {
"message": "என்ன நடந்தது என எங்களுக்குத் தெரியவில்லை. முடிந்தால் மீண்டும் முயற்சியுங்கள் (அ) வேறொரு பக்கத்தில் முயற்சியுங்கள்?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "பயர்பாஃசை விட்டு வெளியேறாமல் திரைப்பிடிப்புகளை எடுக்கலாம், சேமித்து மற்றவருடன் பகிர்ந்துக்கொள்ளலாம்."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "உங்களுக்கு என்ன வேண்டுமோ அதைக் கைப்பற்றுங்கள்"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "சொடுக்கி இழுத்து சும்மா ஒரு பகுதியைத் தேர்வுச்செய்க. நீங்கள் இங்கும் அங்குமாக நகர்த்திக் கூட நீங்கள் தேர்வுச்செய்த பக்கத்தை மிளிர்க்கச் செய்யலாம்."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "சாளரங்களை (அ) முழுப் பக்கங்களை கைப்பற்றவும்"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "வலது மேல்முனையில் உள்ள கத்திரிகோல் போன்ற பயன்படுத்தி பார்வையில் இருக்கும் வலைப்பக்கத்தையோ (அ) முழு பக்கத்தையோ திரைப்பிடிப்புச் செய்யுங்கள்."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "நீங்கள் விரும்பியவாறே"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "நீங்கள் எடுத்த வெட்டிய திரைப்பிடிப்புகளை இணையத்தில் எளிதில் சேமித்து பகிரவோ (அ) கணினியில் பதிவிறக்கவோ முடியும். 'எனது பிடிப்புகள்' மீது சொடுக்கி உங்களின் திரைப்பிடிப்புகளைக் காணலாம்."
},
"tourSkip": {
"message": "தாவு"
},
"tourNext": {
"message": "அடுத்த வில்லை"
},
--- a/browser/extensions/screenshots/webextension/_locales/te/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/te/messages.json
@@ -45,23 +45,23 @@
"message": "మీరు Firefox స్క్రీన్షాట్స్ పేజీ యొక్క షాట్ ను తీసుకోలేరు!"
},
"emptySelectionErrorTitle": {
"message": "మీ ఎంపిక చాలా చిన్న్దగా ఉంది"
},
"genericErrorTitle": {
"message": "అయ్యో! Firefox స్క్రీన్షాట్లు haywire వెళ్ళింది."
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Firefox ను వదలకుండా స్క్రీన్షాట్లను తీసుకోండి, సేవ్ చేయండి మరియు పంచండి."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": ""
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "మీకు నచ్చినట్టుగా"
},
"tourSkip": {
"message": "దాటవేయి"
},
"tourNext": {
"message": "తర్వాతి ఫలకం"
},
--- a/browser/extensions/screenshots/webextension/_locales/th/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/th/messages.json
@@ -74,35 +74,35 @@
"message": "ขออภัยในความไม่สะดวก เรากำลังพัฒนาคุณลักษณะนี้สำหรับรุ่นในอนาคต"
},
"genericErrorTitle": {
"message": "โอ๊ย! Firefox Screenshots รวน"
},
"genericErrorDetails": {
"message": "เราไม่แน่ใจว่าเกิดอะไรขึ้น ต้องการลองอีกครั้งหรือจับภาพของหน้าอื่น?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "จับ บันทึก และแบ่งปันภาพหน้าจอโดยไม่ต้องออกจาก Firefox"
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "จับภาพแค่สิ่งที่คุณต้องการ"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "คลิกแล้วลากเพื่อจับภาพแค่บางส่วนของหน้า คุณยังสามารถวางเมาส์เพื่อเน้นการเลือกของคุณ"
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "จับภาพหน้าต่างหรือทั้งหน้า"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "คลิกที่ปุ่มด้านบนขวาเพื่อจับภาพพื้นที่ที่มองเห็นในหน้าต่างหรือเพื่อจับภาพทั้งหน้า"
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "ตามใจชอบ"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "บันทึกภาพที่ครอบตัดของคุณไปยังเว็บเพื่อการแบ่งปันที่ง่ายขึ้น หรือดาวน์โหลดไปยังคอมพิวเตอร์ของคุณ คุณยังสามารถคลิกที่ปุ่ม ภาพของฉัน เพื่อค้นหาภาพทั้งหมดที่คุณจับไว้"
},
"tourSkip": {
"message": "ข้าม"
},
"tourNext": {
"message": "ภาพนิ่งถัดไป"
},
--- a/browser/extensions/screenshots/webextension/_locales/tl/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/tl/messages.json
@@ -65,35 +65,35 @@
"message": "Hindi ka maaaring kumuha ng isang shot ng isang pahina ng Firefox screenshot!"
},
"genericErrorTitle": {
"message": "Whoa! Nagiging magulo ang Firefox screenshot."
},
"genericErrorDetails": {
"message": "Hindi kami sigurado kung ano ang nangyari. Pag-aalaga upang subukang muli o kumuha ng isang shot ng isang iba't ibang mga pahina?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Dumaan, i-save, at ibahagi ang mga screenshot nang hindi umaalis sa Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "Kunan Kung Ano Ang Gusto Mo"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "I-click at i-drag upang makuha lamang ang isang bahagi ng isang pahina. Maaari mo ring i-hover upang i-highlight ang iyong pagpili."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "I-capture ang Windows o Buong Pahina"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Piliin ang pindutan sa kanang itaas upang makuha ang nakikitang lugar sa window o upang makuha ang isang buong pahina."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Bilang Nagustuhan Mo ito"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "I-save ang iyong crop shot sa Web para sa madaling pagbabahagi, o i-download ito sa iyong computer. Maaari mo ring i-click sa pindutan ng My Shots upang mahanap ang lahat ng mga pag-shot na kinunan mo."
},
"tourSkip": {
"message": "Laktawan"
},
"tourNext": {
"message": "Susunod na Slide"
},
--- a/browser/extensions/screenshots/webextension/_locales/tr/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/tr/messages.json
@@ -74,35 +74,35 @@
"message": "Aksaklıktan dolayı özür dileriz. Gelecek sürümlerde bu özelliği devreye almak için çalışıyoruz."
},
"genericErrorTitle": {
"message": "Firefox Screenshosts kafayı yedi!"
},
"genericErrorDetails": {
"message": "Ne olduğunu biz de anlamadık. Bir daha denemeye veya başka bir sayfanın ekran görüntüsünü almaya ne dersiniz?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Firefox'tan çıkmadan ekran görüntüleri alın, kaydedin ve paylaşın."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "İstediğini yakala"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Sayfanın belli bir kısmını yakalamak için işaretçiyi tıklayıp sürükleyin. Seçiminizi vurgulamak için fareyle üzerine gelebilirsiniz."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Pencereleri veya sayfaların tamamını yakala"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "Yalnızca pencerede gördüğünüz alanı veya sayfanın tamamını yakalamak için sağ üstteki düğmelerden uygun olanı seçin."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "İstediğin gibi yakala"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Ekran görüntülerinizi daha kolay paylaşmak veya bilgisayarınıza indirmek için web’e kaydedin. Kaydettiğiniz tüm görüntüleri bulmak için \"Ekran görüntülerim\" düğmesine tıklayabilirsiniz."
},
"tourSkip": {
"message": "GEÇ"
},
"tourNext": {
"message": "Sonraki slayt"
},
--- a/browser/extensions/screenshots/webextension/_locales/uk/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/uk/messages.json
@@ -74,35 +74,35 @@
"message": "Вибачте за незручності. Ми працюємо над цією функцією для майбутніх випусків."
},
"genericErrorTitle": {
"message": "Оу! З Firefox Screenshots щось негаразд."
},
"genericErrorDetails": {
"message": "Ми не впевнені, в чому проблема. Спробувати ще раз, або ж зробити знімок іншої сторінки?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "Робіть знімки екрану, зберігайте та діліться ними прямо в Firefox."
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "Робіть знімки чого завгодно"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "Клацніть і потягніть мишею для захоплення частини сторінки. Ви також можете навести курсор миші для підсвічення вибраної області."
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "Захоплюйте вікна або цілі сторінки"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "За допомогою кнопок у верхній правій частині обирайте захоплення видимої області вікна, або сторінки повністю."
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "Як вам подобається"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "Зберігайте свої знімки в Інтернеті, щоб легко ними ділитися, або завантажуйте їх на свій комп'ютер. Ви також можете переглянути всі збережені знімки, натиснувши на кнопку Мої знімки."
},
"tourSkip": {
"message": "Пропустити"
},
"tourNext": {
"message": "Наступний слайд"
},
--- a/browser/extensions/screenshots/webextension/_locales/ur/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/ur/messages.json
@@ -68,35 +68,35 @@
"message": "آپ کا انتخاب بہت چھوٹا ہے"
},
"genericErrorTitle": {
"message": "لاجواب! Firefox Screenshots بہت مشہور ہو گیا۔"
},
"genericErrorDetails": {
"message": "ہمیں یقین نہیں کہ کیا ہوا تھا۔ خیال رکھ کر پھر کوشش کریں یا بھر مختلف صفحہ کی تصویرلیں؟"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "۔Firefox کو چھوڑے بغیر اسکرینشاٹس لیں، محفوظ کریں اور شیئر کریں۔"
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "جو آپ چاہتے ہیں وہ گرفت کریں"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "صفحہ کا ایک حصہ گرفت کرنے کے لیئے گھسیتیں اور کلک کریں.آُپ اپنے انتخاب کو نمایاں کرنے کے لیئے منڈلا سکتے ہیں۔"
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "دریچہ ہا مکمل صفحہ گرفت کریں"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "دریچہ میں نظر آنے والے علاقے یا مکمل صفحہ کو گرفت کرنے کے لیئے بالائی دائیں جانب بٹن کا انتخاب کریں۔"
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "جس طرح آپ کو پسند ہے"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "اپنے کمپیوٹڑ میں ڈائونلوڈ کرنے یا ویب پر آسانی سے شیئر کرنے کے لیئےاپنی کتری ہوئی شاٹس محفوظ کریں۔ آپ میری شاٹس کے بٹن پ کلک کر کے بھی اتمام پنی لی گئی شاٹس ڈھّونڈ سکتےہیں۔"
},
"tourSkip": {
"message": "اچٹیں"
},
"tourNext": {
"message": "اگلى سلائيڈ"
},
@@ -106,10 +106,13 @@
"tourDone": {
"message": "ہوگیا"
},
"termsAndPrivacyNoticeTermsLink": {
"message": "شرائط"
},
"termsAndPrivacyNoticyPrivacyLink": {
"message": "اطلاع نامہ نجی نوعیت"
+ },
+ "libraryLabel": {
+ "message": "اسکرین شاٹس"
}
}
\ No newline at end of file
--- a/browser/extensions/screenshots/webextension/_locales/vi/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/vi/messages.json
@@ -21,17 +21,20 @@
"message": "Hủy bỏ"
},
"downloadScreenshot": {
"message": "Tải xuống"
},
"notificationLinkCopiedTitle": {
"message": "Đã sao chép liên kết"
},
- "tourHeaderFour": {
+ "emptySelectionErrorTitle": {
+ "message": "Vùng chọn của bạn quá nhỏ"
+ },
+ "tourHeaderDownloadUpload": {
"message": "Như bạn thích"
},
"tourSkip": {
"message": "SKIP"
},
"tourNext": {
"message": "Slide tiếp theo"
},
--- a/browser/extensions/screenshots/webextension/_locales/zh_CN/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/zh_CN/messages.json
@@ -74,35 +74,35 @@
"message": "很抱歉因此带来的不便。我们将在后续版本中提供此功能。"
},
"genericErrorTitle": {
"message": "哎呀,Firefox Screenshots 遇到问题。"
},
"genericErrorDetails": {
"message": "我们不确定发生了什么。您可以再试一次或者试试另一个页面。"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "截取、保存和分享屏幕截图,无需 Firefox 以外的工具。"
},
- "tourHeaderTwo": {
+ "tourHeaderClickAndDrag": {
"message": "截取你所需"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "单击并拖动以截取页面某个区域。您也可以把光标移到你要的地方,高亮后单击即可截图。"
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "截取窗口或整个页面"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "选择右上角的按钮可以截取窗口中的可见区域或者整个页面。"
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "做您所想"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "将您裁剪后的截图保存到网上以便共享,或者下载到您的计算机。您也可以点击“我的截图”按钮找到您截取的所有截图。"
},
"tourSkip": {
"message": "跳过"
},
"tourNext": {
"message": "下一页"
},
--- a/browser/extensions/screenshots/webextension/_locales/zh_TW/messages.json
+++ b/browser/extensions/screenshots/webextension/_locales/zh_TW/messages.json
@@ -74,35 +74,41 @@
"message": "很抱歉帶來不便,我們將在未來提供此功能。"
},
"genericErrorTitle": {
"message": "唉呀,Firefox Screenshots 有點秀逗了。"
},
"genericErrorDetails": {
"message": "我們不確定剛剛發生了什麼事,您可以再試一次,或拍攝其他頁面的擷圖嗎?"
},
- "tourBodyOne": {
+ "tourBodyIntro": {
"message": "不用離開 Firefox 就可以拍攝、儲存、分享畫面擷圖。"
},
- "tourHeaderTwo": {
+ "tourHeaderPageAction": {
+ "message": "全新的存檔方式"
+ },
+ "tourBodyPageAction": {
+ "message": "想要拍攝擷圖時,打開網址列當中的頁面操作選單即可拍照。"
+ },
+ "tourHeaderClickAndDrag": {
"message": "只拍你想拍的"
},
- "tourBodyTwo": {
+ "tourBodyClickAndDrag": {
"message": "點擊並拖曳出要擷取的範圍。或者您也可以用滑鼠移上頁面中的各部分,擷取該範圍。"
},
- "tourHeaderThree": {
+ "tourHeaderFullPage": {
"message": "擷取可見範圍或整張網頁"
},
- "tourBodyThree": {
+ "tourBodyFullPage": {
"message": "透過右上角的不同按鈕來選擇只拍攝視窗中的可見區域,或是整張網頁。"
},
- "tourHeaderFour": {
+ "tourHeaderDownloadUpload": {
"message": "用您想要的方式分享"
},
- "tourBodyFour": {
+ "tourBodyDownloadUpload": {
"message": "裁切過的擷圖,可直接傳到網路上方便分享,也能下載到電腦裡。您也可以點擊「我的擷圖」按鈕,尋找您拍過的所有擷圖。"
},
"tourSkip": {
"message": "略過"
},
"tourNext": {
"message": "下一頁"
},
--- a/browser/extensions/screenshots/webextension/background/main.js
+++ b/browser/extensions/screenshots/webextension/background/main.js
@@ -13,26 +13,20 @@ this.main = (function() {
let hasSeenOnboarding;
browser.storage.local.get(["hasSeenOnboarding"]).then((result) => {
hasSeenOnboarding = !!result.hasSeenOnboarding;
if (!hasSeenOnboarding) {
setIconActive(false, null);
// Note that the branded name 'Firefox Screenshots' is not localized:
- if (!startBackground.usePhotonPageAction) {
- browser.browserAction.setTitle({
- title: "Firefox Screenshots"
- });
- } else {
- startBackground.photonPageActionPort.postMessage({
- type: "setProperties",
- title: "Firefox Screenshots"
- });
- }
+ startBackground.photonPageActionPort.postMessage({
+ type: "setProperties",
+ title: "Firefox Screenshots"
+ });
}
}).catch((error) => {
log.error("Error getting hasSeenOnboarding:", error);
});
exports.setBackend = function(newBackend) {
backend = newBackend;
backend = backend.replace(/\/*$/, "");
@@ -57,31 +51,20 @@ this.main = (function() {
}
}
function setIconActive(active, tabId) {
let path = active ? "icons/icon-highlight-32-v2.svg" : "icons/icon-32-v2.svg";
if ((!hasSeenOnboarding) && !active) {
path = "icons/icon-starred-32-v2.svg";
}
- if (!startBackground.usePhotonPageAction) {
- browser.browserAction.setIcon({path, tabId}).catch((error) => {
- // FIXME: use errorCode
- if (error.message && /Invalid tab ID/.test(error.message)) {
- // This is a normal exception that we can ignore
- } else {
- catcher.unhandled(error);
- }
- });
- } else {
- startBackground.photonPageActionPort.postMessage({
- type: "setProperties",
- iconPath: path
- });
- }
+ startBackground.photonPageActionPort.postMessage({
+ type: "setProperties",
+ iconPath: path
+ });
}
function toggleSelector(tab) {
return analytics.refreshTelemetryPref()
.then(() => selectorLoader.toggle(tab.id, hasSeenOnboarding))
.then(active => {
setIconActive(active, tab.id);
return active;
@@ -106,18 +89,17 @@ this.main = (function() {
}
});
}
function shouldOpenMyShots(url) {
return /^about:(?:newtab|blank|home)/i.test(url) || /^resource:\/\/activity-streams\//i.test(url);
}
- // This is called by startBackground.js, directly in response to browser.browserAction.onClicked
- // and clicks on the Photon page action
+ // This is called by startBackground.js, directly in response to clicks on the Photon page action
exports.onClicked = catcher.watchFunction((tab) => {
if (tab.incognito) {
senderror.showError({
popupMessage: "PRIVATE_WINDOW"
});
return;
}
if (shouldOpenMyShots(tab.url)) {
@@ -284,26 +266,20 @@ this.main = (function() {
});
}
}));
communication.register("hasSeenOnboarding", () => {
hasSeenOnboarding = true;
catcher.watchPromise(browser.storage.local.set({hasSeenOnboarding}));
setIconActive(false, null);
- if (!startBackground.usePhotonPageAction) {
- browser.browserAction.setTitle({
- title: browser.i18n.getMessage("contextMenuLabel")
- });
- } else {
- startBackground.photonPageActionPort.postMessage({
- type: "setProperties",
- title: browser.i18n.getMessage("contextMenuLabel")
- });
- }
+ startBackground.photonPageActionPort.postMessage({
+ type: "setProperties",
+ title: browser.i18n.getMessage("contextMenuLabel")
+ });
});
communication.register("abortFrameset", () => {
sendEvent("abort-start-shot", "frame-page");
// Note, we only show the error but don't report it, as we know that we can't
// take shots of these pages:
senderror.showError({
popupMessage: "UNSHOOTABLE_PAGE"
--- a/browser/extensions/screenshots/webextension/background/senderror.js
+++ b/browser/extensions/screenshots/webextension/background/senderror.js
@@ -102,20 +102,22 @@ this.senderror = (function() {
if (!Raven.isSetup()) {
Raven.config(dsn, {allowSecretKey: true}).install();
}
let exception = new Error(e.message);
exception.stack = e.multilineStack || e.stack || undefined;
// To improve Sentry reporting & grouping, replace the
// moz-extension://$uuid base URL with a generic resource:// URL.
- exception.stack = exception.stack.replace(
- /moz-extension:\/\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/g,
- "resource://screenshots-addon"
- );
+ if (exception.stack) {
+ exception.stack = exception.stack.replace(
+ /moz-extension:\/\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/g,
+ "resource://screenshots-addon"
+ );
+ }
let rest = {};
for (let attr in e) {
if (!["name", "message", "stack", "multilineStack", "popupMessage", "version", "sentryPublicDSN", "help", "fromMakeError"].includes(attr)) {
rest[attr] = e[attr];
}
}
rest.stack = exception.stack;
Raven.captureException(exception, {
--- a/browser/extensions/screenshots/webextension/background/startBackground.js
+++ b/browser/extensions/screenshots/webextension/background/startBackground.js
@@ -1,11 +1,10 @@
/* globals browser, main, communication */
/* This file handles:
- browser.browserAction.onClicked
clicks on the Photon page action
browser.contextMenus.onClicked
browser.runtime.onMessage
and loads the rest of the background page in response to those events, forwarding
the events to main.onClicked, main.onClickedContextMenu, or communication.onMessage
*/
this.startBackground = (function() {
@@ -25,24 +24,16 @@ this.startBackground = (function() {
"background/deviceInfo.js",
"background/takeshot.js",
"background/main.js"
];
// Maximum milliseconds to wait before checking for migration possibility
const CHECK_MIGRATION_DELAY = 2000;
- browser.browserAction.onClicked.addListener((tab) => {
- loadIfNecessary().then(() => {
- main.onClicked(tab);
- }).catch((error) => {
- console.error("Error loading Screenshots:", error);
- });
- });
-
browser.contextMenus.create({
id: "create-screenshot",
title: browser.i18n.getMessage("contextMenuLabel"),
contexts: ["page"],
documentUrlPatterns: ["<all_urls>"]
});
browser.contextMenus.onClicked.addListener((info, tab) => {
@@ -54,43 +45,37 @@ this.startBackground = (function() {
});
// Note this duplicates functionality in main.js, but we need to change
// the onboarding icon before main.js loads up
let iconPath = null;
browser.storage.local.get(["hasSeenOnboarding"]).then((result) => {
let hasSeenOnboarding = !!result.hasSeenOnboarding;
if (!hasSeenOnboarding) {
- let path = "icons/icon-starred-32-v2.svg";
- if (!usePhotonPageAction) {
- browser.browserAction.setIcon({path});
- } else {
- iconPath = path;
- if (photonPageActionPort) {
- photonPageActionPort.postMessage({
- type: "setProperties",
- iconPath
- });
- }
+ iconPath = "icons/icon-starred-32-v2.svg";
+ if (photonPageActionPort) {
+ photonPageActionPort.postMessage({
+ type: "setProperties",
+ iconPath
+ });
}
}
}).catch((error) => {
console.error("Error loading Screenshots onboarding flag:", error);
});
browser.runtime.onMessage.addListener((req, sender, sendResponse) => {
loadIfNecessary().then(() => {
return communication.onMessage(req, sender, sendResponse);
}).catch((error) => {
console.error("Error loading Screenshots:", error);
});
return true;
});
- let usePhotonPageAction = false;
let photonPageActionPort = null;
initPhotonPageAction();
// We delay this check (by CHECK_MIGRATION_DELAY) just to avoid piling too
// many things onto browser/add-on startup
requestIdleCallback(() => {
browser.runtime.sendMessage({funcName: "getOldDeviceInfo"}).then((result) => {
if (result && result.type == "success" && result.value) {
@@ -142,19 +127,16 @@ this.startBackground = (function() {
function initPhotonPageAction() {
// Set up this side of the Photon page action port. The other side is in
// bootstrap.js. Ideally, in the future, WebExtension page actions and
// Photon page actions would be one in the same, but they aren't right now.
photonPageActionPort = browser.runtime.connect({ name: "photonPageActionPort" });
photonPageActionPort.onMessage.addListener((message) => {
switch (message.type) {
- case "setUsePhotonPageAction":
- usePhotonPageAction = message.value;
- break;
case "click":
loadIfNecessary().then(() => {
main.onClicked(message.tab);
}).catch((error) => {
console.error("Error loading Screenshots:", error);
});
break;
default:
@@ -170,20 +152,14 @@ this.startBackground = (function() {
// Export these so that main.js can use them.
Object.defineProperties(exports, {
"photonPageActionPort": {
enumerable: true,
get() {
return photonPageActionPort;
}
- },
- "usePhotonPageAction": {
- enumerable: true,
- get() {
- return usePhotonPageAction;
- }
}
});
}
return exports;
})();
--- a/browser/extensions/screenshots/webextension/background/takeshot.js
+++ b/browser/extensions/screenshots/webextension/background/takeshot.js
@@ -1,56 +1,68 @@
-/* globals communication, shot, main, auth, catcher, analytics */
+/* globals communication, shot, main, auth, catcher, analytics, buildSettings */
"use strict";
this.takeshot = (function() {
let exports = {};
const Shot = shot.AbstractShot;
const { sendEvent } = analytics;
communication.register("takeShot", catcher.watchFunction((sender, options) => {
- let { captureType, captureText, scroll, selectedPos, shotId, shot } = options;
+ let { captureType, captureText, scroll, selectedPos, shotId, shot, imageBlob } = options;
shot = new Shot(main.getBackend(), shotId, shot);
shot.favicon = sender.tab.favIconUrl;
let capturePromise = Promise.resolve();
let openedTab;
if (!shot.clipNames().length) {
// canvas.drawWindow isn't available, so we fall back to captureVisibleTab
capturePromise = screenshotPage(selectedPos, scroll).then((dataUrl) => {
shot.addClip({
createdDate: Date.now(),
image: {
- url: dataUrl,
+ url: "data:",
captureType,
text: captureText,
location: selectedPos,
dimensions: {
x: selectedPos.right - selectedPos.left,
y: selectedPos.bottom - selectedPos.top
}
}
});
});
}
+ let convertBlobPromise = Promise.resolve();
+ if (buildSettings.uploadBinary && !imageBlob) {
+ imageBlob = base64ToBinary(shot.getClip(shot.clipNames()[0]).image.url);
+ shot.getClip(shot.clipNames()[0]).image.url = "";
+ } else if (!buildSettings.uploadBinary && imageBlob) {
+ convertBlobPromise = blobToDataUrl(imageBlob).then((dataUrl) => {
+ shot.getClip(shot.clipNames()[0]).image.url = dataUrl;
+ });
+ imageBlob = null;
+ }
let shotAbTests = {};
let abTests = auth.getAbTests();
for (let testName of Object.keys(abTests)) {
if (abTests[testName].shotField) {
shotAbTests[testName] = abTests[testName].value;
}
}
if (Object.keys(shotAbTests).length) {
shot.abTests = shotAbTests;
}
return catcher.watchPromise(capturePromise.then(() => {
+ return convertBlobPromise;
+ }).then(() => {
return browser.tabs.create({url: shot.creatingUrl})
}).then((tab) => {
openedTab = tab;
- return uploadShot(shot);
+ return uploadShot(shot, imageBlob);
}).then(() => {
return browser.tabs.update(openedTab.id, {url: shot.viewUrl}).then(
null,
(error) => {
// FIXME: If https://bugzilla.mozilla.org/show_bug.cgi?id=1365718 is resolved,
// use the errorCode added as an additional check:
if ((/invalid tab id/i).test(error)) {
// This happens if the tab was closed before the upload completed
@@ -103,26 +115,109 @@ this.takeshot = (function() {
);
let result = canvas.toDataURL();
resolve(result);
});
});
}));
}
- function uploadShot(shot) {
- return auth.authHeaders().then((headers) => {
- headers["content-type"] = "application/json";
- let body = JSON.stringify(shot.asJson());
- sendEvent("upload", "started", {eventValue: Math.floor(body.length / 1000)});
+ function base64ToBinary(url) {
+ const binary = atob(url.split(',')[1]);
+ const data = Uint8Array.from(binary, char => char.charCodeAt(0));
+ const blob = new Blob([data], {type: "image/png"});
+ return blob;
+ }
+
+ /** Combines two buffers or Uint8Array's */
+ function concatBuffers(buffer1, buffer2) {
+ var tmp = new Uint8Array(buffer1.byteLength + buffer2.byteLength);
+ tmp.set(new Uint8Array(buffer1), 0);
+ tmp.set(new Uint8Array(buffer2), buffer1.byteLength);
+ return tmp.buffer;
+ }
+
+ /** Returns a promise that converts a Blob to a TypedArray */
+ function blobToArray(blob) {
+ return new Promise((resolve, reject) => {
+ let reader = new FileReader();
+ reader.addEventListener("loadend", function() {
+ resolve(reader.result);
+ });
+ reader.readAsArrayBuffer(blob);
+ });
+ }
+
+ function blobToDataUrl(blob) {
+ return new Promise((resolve, reject) => {
+ let reader = new FileReader();
+ reader.addEventListener("loadend", function() {
+ resolve(reader.result);
+ });
+ reader.readAsDataURL(blob);
+ });
+ }
+
+ /** Creates a multipart TypedArray, given {name: value} fields
+ and {name: blob} files
+
+ Returns {body, "content-type"}
+ */
+ function createMultipart(fields, fileField, fileFilename, blob) {
+ let boundary = "---------------------------ScreenshotBoundary" + Date.now();
+ return blobToArray(blob).then((blobAsBuffer) => {
+ let body = [];
+ for (let name in fields) {
+ body.push("--" + boundary);
+ body.push(`Content-Disposition: form-data; name="${name}"`);
+ body.push("");
+ body.push(fields[name]);
+ }
+ body.push("--" + boundary);
+ body.push(`Content-Disposition: form-data; name="${fileField}"; filename="${fileFilename}"`);
+ body.push(`Content-Type: ${blob.type}`);
+ body.push("");
+ body.push("");
+ body = body.join("\r\n");
+ let enc = new TextEncoder("utf-8");
+ body = enc.encode(body);
+ body = concatBuffers(body.buffer, blobAsBuffer);
+ let tail = "\r\n" + "--" + boundary + "--";
+ tail = enc.encode(tail);
+ body = concatBuffers(body, tail.buffer);
+ return {
+ "content-type": `multipart/form-data; boundary=${boundary}`,
+ body
+ };
+ });
+ }
+
+ function uploadShot(shot, blob) {
+ let headers;
+ return auth.authHeaders().then((_headers) => {
+ headers = _headers;
+ if (blob) {
+ return createMultipart(
+ {shot: JSON.stringify(shot.asJson())},
+ "blob", "screenshot.png", blob
+ );
+ } else {
+ return {
+ "content-type": "application/json",
+ body: JSON.stringify(shot.asJson())
+ };
+ }
+ }).then((submission) => {
+ headers["content-type"] = submission["content-type"];
+ sendEvent("upload", "started", {eventValue: Math.floor(submission.body.length / 1000)});
return fetch(shot.jsonUrl, {
method: "PUT",
mode: "cors",
headers,
- body
+ body: submission.body
});
}).then((resp) => {
if (!resp.ok) {
sendEvent("upload-failed", `status-${resp.status}`);
let exc = new Error(`Response failed with status ${resp.status}`);
exc.popupMessage = "REQUEST_ERROR";
throw exc;
} else {
--- a/browser/extensions/screenshots/webextension/build/buildSettings.js
+++ b/browser/extensions/screenshots/webextension/build/buildSettings.js
@@ -1,7 +1,8 @@
window.buildSettings = {
defaultSentryDsn: "https://904ccdd4866247c092ae8fc1a4764a63:940d44bdc71d4daea133c19080ccd38d@sentry.prod.mozaws.net/224",
logLevel: "" || "warn",
- captureText: ("" === "true")
+ captureText: ("" === "true"),
+ uploadBinary: ("" === "true")
};
null;
--- a/browser/extensions/screenshots/webextension/build/inlineSelectionCss.js
+++ b/browser/extensions/screenshots/webextension/build/inlineSelectionCss.js
@@ -1,16 +1,16 @@
/* Created from build/server/static/css/inline-selection.css */
window.inlineSelectionCss = `
.button, .highlight-button-cancel, .highlight-button-save, .highlight-button-download, .preview-button-save {
display: flex;
align-items: center;
justify-content: center;
border: 0;
- border-radius: 1px;
+ border-radius: 3px;
cursor: pointer;
font-size: 16px;
font-weight: 400;
height: 40px;
min-width: 40px;
outline: none;
padding: 0 10px;
position: relative;
@@ -23,17 +23,17 @@ window.inlineSelectionCss = `
height: 32px;
line-height: 32px;
padding: 0 8px; }
.button.tiny, .tiny.highlight-button-cancel, .tiny.highlight-button-save, .tiny.highlight-button-download, .tiny.preview-button-save {
font-size: 14px;
height: 26px;
border: 1px solid #c7c7c7; }
.button.tiny:hover, .tiny.highlight-button-cancel:hover, .tiny.highlight-button-save:hover, .tiny.highlight-button-download:hover, .tiny.preview-button-save:hover, .button.tiny:focus, .tiny.highlight-button-cancel:focus, .tiny.highlight-button-save:focus, .tiny.highlight-button-download:focus, .tiny.preview-button-save:focus {
- background: #ebebeb;
+ background: #ededf0;
border-color: #989898; }
.button.tiny:active, .tiny.highlight-button-cancel:active, .tiny.highlight-button-save:active, .tiny.highlight-button-download:active, .tiny.preview-button-save:active {
background: #dedede;
border-color: #989898; }
.button.block-button, .block-button.highlight-button-cancel, .block-button.highlight-button-save, .block-button.highlight-button-download, .block-button.preview-button-save {
display: flex;
align-items: center;
justify-content: center;
@@ -50,98 +50,107 @@ window.inlineSelectionCss = `
@media (max-width: 719px) {
.button.block-button, .block-button.highlight-button-cancel, .block-button.highlight-button-save, .block-button.highlight-button-download, .block-button.preview-button-save {
justify-content: flex-start;
font-size: 16px;
height: 72px;
margin-right: 10px;
padding: 0 5px; } }
.button.block-button:hover, .block-button.highlight-button-cancel:hover, .block-button.highlight-button-save:hover, .block-button.highlight-button-download:hover, .block-button.preview-button-save:hover {
- background: #ebebeb; }
+ background: #ededf0; }
.button.block-button:active, .block-button.highlight-button-cancel:active, .block-button.highlight-button-save:active, .block-button.highlight-button-download:active, .block-button.preview-button-save:active {
background: #dedede; }
- .button.download, .download.highlight-button-cancel, .download.highlight-button-save, .download.highlight-button-download, .download.preview-button-save, .button.trash, .trash.highlight-button-cancel, .trash.highlight-button-save, .trash.highlight-button-download, .trash.preview-button-save, .button.share, .share.highlight-button-cancel, .share.highlight-button-save, .share.highlight-button-download, .share.preview-button-save, .button.flag, .flag.highlight-button-cancel, .flag.highlight-button-save, .flag.highlight-button-download, .flag.preview-button-save {
- background-image: url("../img/icon-sprite.svg");
- background-size: 480px 40px;
+ .button.download, .download.highlight-button-cancel, .download.highlight-button-save, .download.highlight-button-download, .download.preview-button-save, .button.edit, .edit.highlight-button-cancel, .edit.highlight-button-save, .edit.highlight-button-download, .edit.preview-button-save, .button.trash, .trash.highlight-button-cancel, .trash.highlight-button-save, .trash.highlight-button-download, .trash.preview-button-save, .button.share, .share.highlight-button-cancel, .share.highlight-button-save, .share.highlight-button-download, .share.preview-button-save, .button.flag, .flag.highlight-button-cancel, .flag.highlight-button-save, .flag.highlight-button-download, .flag.preview-button-save {
background-repeat: no-repeat;
- background-position: 0 0;
+ background-size: 50%;
+ background-position: center;
margin-right: 10px;
transition: background-color 150ms cubic-bezier(0.07, 0.95, 0, 1); }
- .button.download:hover, .download.highlight-button-cancel:hover, .download.highlight-button-save:hover, .download.highlight-button-download:hover, .download.preview-button-save:hover {
- background-position: -40px 0; }
- .button.download:active, .download.highlight-button-cancel:active, .download.highlight-button-save:active, .download.highlight-button-download:active, .download.preview-button-save:active {
- background-position: -80px 0; }
+ .button.download, .download.highlight-button-cancel, .download.highlight-button-save, .download.highlight-button-download, .download.preview-button-save {
+ background-image: url("../img/icon-download.svg"); }
+ .button.download:hover, .download.highlight-button-cancel:hover, .download.highlight-button-save:hover, .download.highlight-button-download:hover, .download.preview-button-save:hover {
+ background-color: #ededf0; }
+ .button.download:active, .download.highlight-button-cancel:active, .download.highlight-button-save:active, .download.highlight-button-download:active, .download.preview-button-save:active {
+ background-color: #dedede; }
.button.share, .share.highlight-button-cancel, .share.highlight-button-save, .share.highlight-button-download, .share.preview-button-save {
- background-position: -120px 0; }
+ background-image: url("../img/icon-share.svg"); }
.button.share:hover, .share.highlight-button-cancel:hover, .share.highlight-button-save:hover, .share.highlight-button-download:hover, .share.preview-button-save:hover {
- background-position: -160px 0; }
- .button.share:active, .share.highlight-button-cancel:active, .share.highlight-button-save:active, .share.highlight-button-download:active, .share.preview-button-save:active, .button.share.active, .share.active.highlight-button-cancel, .share.active.highlight-button-save, .share.active.highlight-button-download, .share.active.preview-button-save {
- background-position: -200px 0; }
+ background-color: #ededf0; }
+ .button.share.active, .share.active.highlight-button-cancel, .share.active.highlight-button-save, .share.active.highlight-button-download, .share.active.preview-button-save, .button.share:active, .share.highlight-button-cancel:active, .share.highlight-button-save:active, .share.highlight-button-download:active, .share.preview-button-save:active {
+ background-color: #dedede; }
.button.trash, .trash.highlight-button-cancel, .trash.highlight-button-save, .trash.highlight-button-download, .trash.preview-button-save {
- background-position: -240px 0; }
+ background-image: url("../img/icon-trash.svg"); }
.button.trash:hover, .trash.highlight-button-cancel:hover, .trash.highlight-button-save:hover, .trash.highlight-button-download:hover, .trash.preview-button-save:hover {
- background-position: -280px 0; }
+ background-color: #ededf0; }
.button.trash:active, .trash.highlight-button-cancel:active, .trash.highlight-button-save:active, .trash.highlight-button-download:active, .trash.preview-button-save:active {
- background-position: -320px 0; }
+ background-color: #dedede; }
+ .button.edit, .edit.highlight-button-cancel, .edit.highlight-button-save, .edit.highlight-button-download, .edit.preview-button-save {
+ background-image: url("../img/icon-edit.svg"); }
+ .button.edit:hover, .edit.highlight-button-cancel:hover, .edit.highlight-button-save:hover, .edit.highlight-button-download:hover, .edit.preview-button-save:hover {
+ background-color: #ededf0; }
+ .button.edit:active, .edit.highlight-button-cancel:active, .edit.highlight-button-save:active, .edit.highlight-button-download:active, .edit.preview-button-save:active {
+ background-color: #dedede; }
.button.flag, .flag.highlight-button-cancel, .flag.highlight-button-save, .flag.highlight-button-download, .flag.preview-button-save {
- background-position: -360px 0; }
+ background-image: url("../img/icon-flag.svg"); }
.button.flag:hover, .flag.highlight-button-cancel:hover, .flag.highlight-button-save:hover, .flag.highlight-button-download:hover, .flag.preview-button-save:hover {
- background-position: -400px 0; }
+ background-color: #ededf0; }
.button.flag:active, .flag.highlight-button-cancel:active, .flag.highlight-button-save:active, .flag.highlight-button-download:active, .flag.preview-button-save:active {
- background-position: -440px 0; }
+ background-color: #dedede; }
.inverse-color-scheme {
- background: #3e3d40;
- color: #f6f6f8; }
+ background: #38383d;
+ color: #f9f9fa; }
.inverse-color-scheme a {
color: #e1e1e6; }
.default-color-scheme {
- background: #f6f6f8;
- color: #3e3d40; }
+ background: #f9f9fa;
+ color: #38383d; }
.default-color-scheme a {
color: #009ec0; }
.highlight-color-scheme {
background: #009ec0;
color: #fff; }
.highlight-color-scheme a {
color: #fff;
text-decoration: underline; }
.alt-color-scheme {
- background: #31365a;
- color: #f6f6f8; }
+ background: #38383d;
+ color: #f9f9fa; }
.alt-color-scheme h1 {
color: #6f7fb6; }
.alt-color-scheme a {
color: #e1e1e6;
text-decoration: underline; }
.button.primary, .primary.highlight-button-cancel, .highlight-button-save, .primary.highlight-button-download, .preview-button-save {
background-color: #009ec0;
color: #fff; }
.button.primary:hover, .primary.highlight-button-cancel:hover, .highlight-button-save:hover, .primary.highlight-button-download:hover, .preview-button-save:hover, .button.primary:focus, .primary.highlight-button-cancel:focus, .highlight-button-save:focus, .primary.highlight-button-download:focus, .preview-button-save:focus {
background-color: #00819c; }
.button.primary:active, .primary.highlight-button-cancel:active, .highlight-button-save:active, .primary.highlight-button-download:active, .preview-button-save:active {
background-color: #006c83; }
.button.secondary, .highlight-button-cancel, .secondary.highlight-button-save, .highlight-button-download, .secondary.preview-button-save {
- background-color: #f6f6f8;
- color: #3e3d40; }
+ background-color: #f9f9fa;
+ color: #38383d; }
.button.secondary:hover, .highlight-button-cancel:hover, .secondary.highlight-button-save:hover, .highlight-button-download:hover, .secondary.preview-button-save:hover {
- background-color: #ebebeb; }
+ background-color: #ededf0; }
.button.secondary:active, .highlight-button-cancel:active, .secondary.highlight-button-save:active, .highlight-button-download:active, .secondary.preview-button-save:active {
background-color: #dedede; }
.button.transparent, .transparent.highlight-button-cancel, .transparent.highlight-button-save, .transparent.highlight-button-download, .transparent.preview-button-save {
background-color: transparent;
- color: #3e3d40; }
- .button.transparent:hover, .transparent.highlight-button-cancel:hover, .transparent.highlight-button-save:hover, .transparent.highlight-button-download:hover, .transparent.preview-button-save:hover, .button.transparent:focus, .transparent.highlight-button-cancel:focus, .transparent.highlight-button-save:focus, .transparent.highlight-button-download:focus, .transparent.preview-button-save:focus, .button.transparent:active, .transparent.highlight-button-cancel:active, .transparent.highlight-button-save:active, .transparent.highlight-button-download:active, .transparent.preview-button-save:active {
- background-color: rgba(0, 0, 0, 0.05); }
+ color: #38383d; }
+ .button.transparent:hover, .transparent.highlight-button-cancel:hover, .transparent.highlight-button-save:hover, .transparent.highlight-button-download:hover, .transparent.preview-button-save:hover {
+ background-color: #ededf0; }
+ .button.transparent:focus, .transparent.highlight-button-cancel:focus, .transparent.highlight-button-save:focus, .transparent.highlight-button-download:focus, .transparent.preview-button-save:focus, .button.transparent:active, .transparent.highlight-button-cancel:active, .transparent.highlight-button-save:active, .transparent.highlight-button-download:active, .transparent.preview-button-save:active {
+ background-color: #dedede; }
.button.warning, .warning.highlight-button-cancel, .warning.highlight-button-save, .warning.highlight-button-download, .warning.preview-button-save {
color: #fff;
background: #d92215; }
.button.warning:hover, .warning.highlight-button-cancel:hover, .warning.highlight-button-save:hover, .warning.highlight-button-download:hover, .warning.preview-button-save:hover, .button.warning:focus, .warning.highlight-button-cancel:focus, .warning.highlight-button-save:focus, .warning.highlight-button-download:focus, .warning.preview-button-save:focus {
background: #b81d12; }
.button.warning:active, .warning.highlight-button-cancel:active, .warning.highlight-button-save:active, .warning.highlight-button-download:active, .warning.preview-button-save:active {
background: #a11910; }
@@ -373,18 +382,21 @@ window.inlineSelectionCss = `
z-index: 9999999999; }
.highlight-buttons {
display: flex;
align-items: center;
justify-content: center;
bottom: -55px;
position: absolute;
- right: 5px;
z-index: 6; }
+ html[dir="rtl"] .highlight-buttons {
+ left: 5px; }
+ html[dir="ltr"] .highlight-buttons {
+ right: 5px; }
.bottom-selection .highlight-buttons {
bottom: 5px; }
.left-selection .highlight-buttons {
right: auto;
left: 5px; }
.highlight-button-cancel {
background-image: url("MOZ_EXTENSION/icons/cancel.svg");
@@ -392,23 +404,29 @@ window.inlineSelectionCss = `
background-repeat: no-repeat;
background-size: 18px 18px;
border: 1px solid #dedede;
margin: 5px;
width: 40px; }
.highlight-button-save {
background-image: url("MOZ_EXTENSION/icons/cloud.svg");
- background-position: 8px center;
background-repeat: no-repeat;
background-size: 20px 18px;
font-size: 18px;
margin: 5px;
- min-width: 80px;
- padding-left: 34px; }
+ min-width: 80px; }
+ html[dir="ltr"] .highlight-button-save {
+ background-position: 8px center; }
+ html[dir="rtl"] .highlight-button-save {
+ background-position: 65px center; }
+ html[dir="ltr"] .highlight-button-save {
+ padding-left: 34px; }
+ html[dir="rtl"] .highlight-button-save {
+ padding-right: 40px; }
.highlight-button-download {
background-image: url("MOZ_EXTENSION/icons/download.svg");
background-position: center center;
background-repeat: no-repeat;
background-size: 18px 18px;
border: 1px solid #dedede;
display: block;
--- a/browser/extensions/screenshots/webextension/build/onboardingCss.js
+++ b/browser/extensions/screenshots/webextension/build/onboardingCss.js
@@ -91,17 +91,17 @@ body {
animation: fade-in 250ms forwards cubic-bezier(0.07, 0.95, 0, 1);
opacity: 0; }
.slide {
display: flex;
align-items: center;
flex-direction: column;
justify-content: center;
- background-color: #f6f6f8;
+ background-color: #f9f9fa;
border-radius: 5px;
height: 520px;
overflow: hidden;
width: 700px; }
.slide .slide-image {
background-size: 700px 378px;
flex: 0 0 360px;
font-size: 16px;
@@ -163,44 +163,46 @@ body {
.slide-3,
.slide-4,
.slide-5 {
display: none; }
.active-slide-1 .slide-1,
.active-slide-2 .slide-2,
.active-slide-3 .slide-3,
-.active-slide-4 .slide-4 {
+.active-slide-4 .slide-4,
+.active-slide-5 .slide-5 {
display: flex; }
#slide-status-container {
display: flex;
align-items: center;
justify-content: center;
padding-top: 15px; }
.goto-slide {
background: transparent;
- background-color: #f6f6f8;
+ background-color: #f9f9fa;
border-radius: 50%;
border: 0;
flex: 0 0 9px;
height: 9px;
margin: 0 4px;
opacity: 0.7;
padding: 0;
transition: height 100ms cubic-bezier(0.07, 0.95, 0, 1), opacity 100ms cubic-bezier(0.07, 0.95, 0, 1); }
.goto-slide:hover {
opacity: 1; }
.active-slide-1 .goto-slide-1,
.active-slide-2 .goto-slide-2,
.active-slide-3 .goto-slide-3,
-.active-slide-4 .goto-slide-4 {
+.active-slide-4 .goto-slide-4,
+.active-slide-5 .goto-slide-5 {
opacity: 1;
transform: scale(1.1); }
#prev, #next,
#done {
background-color: #f0f0f0;
border-radius: 50%;
border: 0;
@@ -211,23 +213,31 @@ body {
position: absolute;
text-align: center;
top: 50%;
transition: background-color 150ms cubic-bezier(0.07, 0.95, 0, 1), background-size 250ms cubic-bezier(0.07, 0.95, 0, 1);
width: 70px; }
#prev {
background-image: url("MOZ_EXTENSION/icons/back.svg");
- left: 50%;
- margin-left: -385px; }
+ left: 50%; }
+ html[dir="ltr"] #prev {
+ margin-left: -385px; }
+ html[dir="rtl"] #prev {
+ margin-left: 315px; }
#next,
#done {
- left: 50%;
- margin-left: 315px; }
+ left: 50%; }
+ html[dir="ltr"] #next, html[dir="ltr"]
+ #done {
+ margin-left: 315px; }
+ html[dir="rtl"] #next, html[dir="rtl"]
+ #done {
+ margin-left: -385px; }
#prev,
#next,
#done {
background-position: center center;
background-repeat: no-repeat;
background-size: 20px 20px; }
#prev:hover,
@@ -260,24 +270,24 @@ body {
top: 50%;
transition: opacity 100ms cubic-bezier(0.07, 0.95, 0, 1);
z-index: 10; }
#skip:hover {
opacity: 1; }
.active-slide-1 #prev,
-.active-slide-4 #next {
+.active-slide-5 #next {
display: none; }
#done {
background-image: url("MOZ_EXTENSION/icons/done.svg");
display: none; }
-.active-slide-4 #done {
+.active-slide-5 #done {
display: inline-block; }
/* for smaller screen sizes */
@media screen and (max-width: 768px) {
.slide {
height: 360px;
width: 450px; }
.slide .slide-image {
--- a/browser/extensions/screenshots/webextension/build/onboardingHtml.js
+++ b/browser/extensions/screenshots/webextension/build/onboardingHtml.js
@@ -5,60 +5,68 @@ window.onboardingHtml = `
<head>
<!-- onboarding.scss is automatically inserted here: -->
<style></style>
<!-- Here and in onboarding.scss use MOZ_EXTENSION/path to refer to local files -->
</head>
<body>
<div id="slide-overlay">
<!-- The current slide is set by having .active-slide-1, .active-slide-2, etc on #slide element: -->
- <div id="slide-container" data-number-of-slides="4" class="active-slide-1">
+ <div id="slide-container" data-number-of-slides="5" class="active-slide-1">
<div class="slide slide-1">
<!-- Note: all images must be listed in manifest.json.template under web_accessible_resources -->
<div class="slide-image" style="background-image: url('MOZ_EXTENSION/icons/onboarding-1.png');"></div>
<div class="slide-content">
<div class="slide-content-aligner">
<h1><span><strong>Firefox</strong> Screenshots</span><sup>Beta</sup></h1>
- <p data-l10n-id="tourBodyOne"></p>
+ <p data-l10n-id="tourBodyIntro"></p>
</div>
<p class="onboarding-legal-notice"><!-- Substituted with termsAndPrivacyNotice --></p>
</div>
</div>
<div class="slide slide-2">
<div class="slide-image" style="background-image: url('MOZ_EXTENSION/icons/onboarding-2.png');"></div>
<div class="slide-content">
- <h1 data-l10n-id="tourHeaderTwo"></h1>
- <p data-l10n-id="tourBodyTwo"></p>
+ <h1 data-l10n-id="tourHeaderPageAction"></h1>
+ <p data-l10n-id="tourBodyPageAction"></p>
</div>
</div>
<div class="slide slide-3">
<div class="slide-image" style="background-image: url('MOZ_EXTENSION/icons/onboarding-3.png');"></div>
<div class="slide-content">
- <h1 data-l10n-id="tourHeaderThree"></h1>
- <p data-l10n-id="tourBodyThree"></p>
+ <h1 data-l10n-id="tourHeaderClickAndDrag"></h1>
+ <p data-l10n-id="tourBodyClickAndDrag"></p>
</div>
</div>
<div class="slide slide-4">
<div class="slide-image" style="background-image: url('MOZ_EXTENSION/icons/onboarding-4.png');"></div>
<div class="slide-content">
- <h1 data-l10n-id="tourHeaderFour"></h1>
- <p data-l10n-id="tourBodyFour"></p>
+ <h1 data-l10n-id="tourHeaderFullPage"></h1>
+ <p data-l10n-id="tourBodyFullPage"></p>
+ </div>
+ </div>
+ <div class="slide slide-5">
+ <div class="slide-image" style="background-image: url('MOZ_EXTENSION/icons/onboarding-5.png');"></div>
+ <div class="slide-content">
+ <h1 data-l10n-id="tourHeaderDownloadUpload"></h1>
+ <p data-l10n-id="tourBodyDownloadUpload"></p>
</div>
</div>
<!-- Clickable elements should be buttons for accessibility -->
<button id="skip" data-l10n-id="tourSkip" tabindex=1>Skip</button>
<button id="prev" tabindex=2 data-l10n-label-id="tourPrevious"></button>
<button id="next" tabindex=3 data-l10n-label-id="tourNext"></button>
<button id="done" tabindex=4 data-l10n-label-id="tourDone"></button>
<div id="slide-status-container">
<button class="goto-slide goto-slide-1" data-number="1" tabindex=4></button>
<button class="goto-slide goto-slide-2" data-number="2" tabindex=5></button>
<button class="goto-slide goto-slide-3" data-number="3" tabindex=6></button>
<button class="goto-slide goto-slide-4" data-number="4" tabindex=7></button>
+ <button class="goto-slide goto-slide-5" data-number="5" tabindex=8></button>
</div>
<!-- FIXME: Need to put in privacy / etc links -->
</div>
</div>
</body>
</html>
`;
--- a/browser/extensions/screenshots/webextension/build/shot.js
+++ b/browser/extensions/screenshots/webextension/build/shot.js
@@ -27,27 +27,35 @@ function isUrl(url) {
return true;
}
if ((/^view-source:/i).test(url)) {
return isUrl(url.substr("view-source:".length));
}
return (/^https?:\/\/[a-z0-9.-]{1,8000}[a-z0-9](:[0-9]{1,8000})?\/?/i).test(url);
}
+function isValidClipImageUrl(url) {
+ return isUrl(url) && !(url.indexOf(')') > -1);
+}
+
function assertUrl(url) {
if (!url) {
throw new Error("Empty value is not URL");
}
if (!isUrl(url)) {
let exc = new Error("Not a URL");
exc.scheme = url.split(":")[0];
throw exc;
}
}
+function isSecureWebUri(url) {
+ return (/^https?:\/\/[a-z0-9.-]{1,8000}[a-z0-9](:[0-9]{1,8000})?\/?/i).test(url);
+}
+
function assertOrigin(url) {
assertUrl(url);
if (url.search(/^https?:/i) != -1) {
let match = (/^https?:\/\/[^/:]{1,4000}\/?$/i).exec(url);
if (!match) {
throw new Error("Bad origin, might include path");
}
}
@@ -205,16 +213,22 @@ class AbstractShot {
this._backend = backend;
this._id = id;
this.origin = attrs.origin || null;
this.fullUrl = attrs.fullUrl || null;
if ((!attrs.fullUrl) && attrs.url) {
console.warn("Received deprecated attribute .url");
this.fullUrl = attrs.url;
}
+ if (this.origin && !isSecureWebUri(this.origin)) {
+ this.origin = "";
+ }
+ if (this.fullUrl && !isSecureWebUri(this.fullUrl)) {
+ this.fullUrl = "";
+ }
this.docTitle = attrs.docTitle || null;
this.userTitle = attrs.userTitle || null;
this.createdDate = attrs.createdDate || Date.now();
this.favicon = attrs.favicon || null;
this.siteName = attrs.siteName || null;
this.images = [];
if (attrs.images) {
this.images = attrs.images.map(
@@ -680,17 +694,17 @@ class _Clip {
return this._image;
}
set image(image) {
if (!image) {
this._image = undefined;
return;
}
assert(checkObject(image, ["url"], ["dimensions", "text", "location", "captureType"]), "Bad attrs for Clip Image:", Object.keys(image));
- assert(isUrl(image.url), "Bad Clip image URL:", image.url);
+ assert(isValidClipImageUrl(image.url), "Bad Clip image URL:", image.url);
assert(image.captureType == "madeSelection" || image.captureType == "selection" || image.captureType == "visible" || image.captureType == "auto" || image.captureType == "fullPage" || !image.captureType, "Bad image.captureType:", image.captureType);
assert(typeof image.text == "string" || !image.text, "Bad Clip image text:", image.text);
if (image.dimensions) {
assert(typeof image.dimensions.x == "number" && typeof image.dimensions.y == "number", "Bad Clip image dimensions:", image.dimensions);
}
assert(image.location &&
typeof image.location.left == "number" &&
typeof image.location.right == "number" &&
@@ -728,14 +742,15 @@ class _Clip {
}
AbstractShot.prototype.Clip = _Clip;
if (typeof exports != "undefined") {
exports.AbstractShot = AbstractShot;
exports.originFromUrl = originFromUrl;
+ exports.isValidClipImageUrl = isValidClipImageUrl;
}
return exports;
})();
null;
--- a/browser/extensions/screenshots/webextension/clipboard.js
+++ b/browser/extensions/screenshots/webextension/clipboard.js
@@ -16,17 +16,29 @@ this.clipboard = (function() {
element.style.height = "1px";
element.addEventListener("load", catcher.watchFunction(() => {
try {
let doc = element.contentDocument;
assertIsBlankDocument(doc);
let el = doc.createElement("textarea");
doc.body.appendChild(el);
el.value = text;
+ if (!text) {
+ let exc = new Error("Clipboard copy given empty text");
+ exc.noPopup = true;
+ catcher.unhandled(exc);
+ }
el.select();
+ if (doc.activeElement !== el) {
+ let unhandledTag = doc.activeElement ? doc.activeElement.tagName : "No active element";
+ let exc = new Error("Clipboard el.select failed");
+ exc.activeElement = unhandledTag;
+ exc.noPopup = true;
+ catcher.unhandled(exc);
+ }
const copied = doc.execCommand("copy");
if (!copied) {
catcher.unhandled(new Error("Clipboard copy failed"));
}
el.remove();
resolve(copied);
} finally {
element.remove();
--- a/browser/extensions/screenshots/webextension/icons/back-highlight.svg
+++ b/browser/extensions/screenshots/webextension/icons/back-highlight.svg
@@ -1,10 +1,1 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- viewBox="0 0 20 20" style="enable-background:new 0 0 20 20;" xml:space="preserve">
-<style type="text/css">
- .st0{fill:#009EC0;}
-</style>
-<path id="path-1_1_" class="st0" fill="#3D3D40" d="M18.8,8.5H4.2l5.4-5.4c0.5-0.5,0.5-1.2,0-1.8s-1.2-0.5-1.8,0L0.4,8.9c-0.5,0.5-0.5,1.2,0,1.8
- l7.5,7.5c0.2,0.2,0.5,0.4,0.9,0.4s0.6-0.1,0.9-0.4c0.5-0.5,0.5-1.2,0-1.8L4.2,11h14.5c0.8,0,1.2-0.5,1.2-1.2S19.5,8.5,18.8,8.5z"/>
-</svg>
+<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><style>.st0{fill:#009ec0}</style><path id="path-1_1_" class="st0" fill="#3D3D40" d="M18.8 8.5H4.2l5.4-5.4c.5-.5.5-1.2 0-1.8s-1.2-.5-1.8 0L.4 8.9c-.5.5-.5 1.2 0 1.8l7.5 7.5c.2.2.5.4.9.4s.6-.1.9-.4c.5-.5.5-1.2 0-1.8L4.2 11h14.5c.8 0 1.2-.5 1.2-1.2s-.4-1.3-1.1-1.3z"/></svg>
\ No newline at end of file
--- a/browser/extensions/screenshots/webextension/icons/back.svg
+++ b/browser/extensions/screenshots/webextension/icons/back.svg
@@ -1,10 +1,1 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- viewBox="0 0 20 20" style="enable-background:new 0 0 20 20;" xml:space="preserve">
-<style type="text/css">
- .st0{fill:#3D3D40;}
-</style>
-<path id="path-1_1_" class="st0" fill="#3D3D40" d="M18.8,8.5H4.2l5.4-5.4c0.5-0.5,0.5-1.2,0-1.8s-1.2-0.5-1.8,0L0.4,8.9c-0.5,0.5-0.5,1.2,0,1.8
- l7.5,7.5c0.2,0.2,0.5,0.4,0.9,0.4s0.6-0.1,0.9-0.4c0.5-0.5,0.5-1.2,0-1.8L4.2,11h14.5c0.8,0,1.2-0.5,1.2-1.2S19.5,8.5,18.8,8.5z"/>
-</svg>
+<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><style>.st0{fill:#3d3d40}</style><path id="path-1_1_" class="st0" fill="#3D3D40" d="M18.8 8.5H4.2l5.4-5.4c.5-.5.5-1.2 0-1.8s-1.2-.5-1.8 0L.4 8.9c-.5.5-.5 1.2 0 1.8l7.5 7.5c.2.2.5.4.9.4s.6-.1.9-.4c.5-.5.5-1.2 0-1.8L4.2 11h14.5c.8 0 1.2-.5 1.2-1.2s-.4-1.3-1.1-1.3z"/></svg>
\ No newline at end of file
--- a/browser/extensions/screenshots/webextension/icons/cancel.svg
+++ b/browser/extensions/screenshots/webextension/icons/cancel.svg
@@ -1,11 +1,1 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- viewBox="0 0 20 20" style="enable-background:new 0 0 20 20;" xml:space="preserve">
-<style type="text/css">
- .st0{fill:#3E3D40;}
-</style>
-<path id="Combined-Shape" class="st0" d="M10.5,8.7L5.2,3.3c-0.5-0.5-1.3-0.5-1.8,0l0,0c-0.5,0.5-0.5,1.3,0,1.8l5.3,5.3l-5.3,5.3
- c-0.5,0.5-0.5,1.3,0,1.8l0,0c0.5,0.5,1.3,0.5,1.8,0l5.3-5.3l5.3,5.3c0.5,0.5,1.3,0.5,1.8,0l0,0c0.5-0.5,0.5-1.3,0-1.8l-5.3-5.3
- l5.3-5.3c0.5-0.5,0.5-1.3,0-1.8l0,0c-0.5-0.5-1.3-0.5-1.8,0L10.5,8.7z"/>
-</svg>
+<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><style>.st0{fill:#3e3d40}</style><path id="Combined-Shape" class="st0" d="M10.5 8.7L5.2 3.3c-.5-.5-1.3-.5-1.8 0s-.5 1.3 0 1.8l5.3 5.3-5.3 5.3c-.5.5-.5 1.3 0 1.8s1.3.5 1.8 0l5.3-5.3 5.3 5.3c.5.5 1.3.5 1.8 0s.5-1.3 0-1.8l-5.3-5.3 5.3-5.3c.5-.5.5-1.3 0-1.8s-1.3-.5-1.8 0l-5.3 5.4z"/></svg>
\ No newline at end of file
--- a/browser/extensions/screenshots/webextension/icons/cloud.svg
+++ b/browser/extensions/screenshots/webextension/icons/cloud.svg
@@ -1,1 +1,1 @@
-<svg width="20" height="18" viewBox="0 0 20 18" xmlns="http://www.w3.org/2000/svg"><title>cloud</title><g fill="#FFF" fill-rule="evenodd"><path d="M15 5.6h-.3C14.5 2.7 12 .5 9.2.5c-3 0-5.4 2.4-5.5 5.3C1.5 6.4 0 8.3 0 10.6c0 2.8 2.2 5 5 5a1 1 0 0 0 1-1v-.1a1 1 0 0 0-1-1c-1.7 0-3-1.3-3-3 0-1.3.8-2.5 2.2-2.9l1.4-.4.1-1.4c.1-1.9 1.6-3.3 3.5-3.3 1.8 0 3.4 1.4 3.5 3.2l.1 1.8h2.1c1.7 0 3 1.3 3 3s-1.3 3-3 3h-1.85a1.05 1.05 0 1 0 0 2.1H15c2.8 0 5-2.2 5-5s-2.2-5-5-5z" fill-rule="nonzero"/><path d="M10 11.414V17c0 .667-.333 1-1 1s-1-.333-1-1v-5.586l-.293.293a1 1 0 1 1-1.414-1.414L9 7.586l2.707 2.707a1 1 0 0 1-1.414 1.414L10 11.414z"/></g></svg>
+<svg width="20" height="18" viewBox="0 0 20 18" xmlns="http://www.w3.org/2000/svg"><title>cloud</title><g fill="#FFF" fill-rule="evenodd"><path d="M15 5.6h-.3C14.5 2.7 12 .5 9.2.5c-3 0-5.4 2.4-5.5 5.3C1.5 6.4 0 8.3 0 10.6c0 2.8 2.2 5 5 5a1 1 0 0 0 1-1v-.1a1 1 0 0 0-1-1c-1.7 0-3-1.3-3-3 0-1.3.8-2.5 2.2-2.9l1.4-.4.1-1.4c.1-1.9 1.6-3.3 3.5-3.3 1.8 0 3.4 1.4 3.5 3.2l.1 1.8h2.1c1.7 0 3 1.3 3 3s-1.3 3-3 3h-1.85a1.05 1.05 0 1 0 0 2.1H15c2.8 0 5-2.2 5-5s-2.2-5-5-5z" fill-rule="nonzero"/><path d="M10 11.414V17c0 .667-.333 1-1 1s-1-.333-1-1v-5.586l-.293.293a1 1 0 1 1-1.414-1.414L9 7.586l2.707 2.707a1 1 0 0 1-1.414 1.414L10 11.414z"/></g></svg>
\ No newline at end of file
--- a/browser/extensions/screenshots/webextension/icons/done.svg
+++ b/browser/extensions/screenshots/webextension/icons/done.svg
@@ -1,10 +1,1 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 20.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- viewBox="0 0 20 20" style="enable-background:new 0 0 20 20;" xml:space="preserve">
-<style type="text/css">
- .st0{fill:#009EC0;}
-</style>
-<path class="st0" d="M19.5,4c-0.6-0.6-1.6-0.6-2.2,0l-10,10L2.7,9.4c-0.6-0.6-1.6-0.6-2.2,0c-0.6,0.6-0.6,1.6,0,2.2l5.8,5.8
- c0,0,0,0,0,0c0,0,0,0,0,0l0,0c0.3,0.3,0.7,0.5,1.1,0.5c0.4,0,0.8-0.2,1.1-0.5L19.5,6.3C20.2,5.7,20.2,4.7,19.5,4z"/>
-</svg>
+<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><style>.st0{fill:#009ec0}</style><path class="st0" d="M19.5 4c-.6-.6-1.6-.6-2.2 0l-10 10-4.6-4.6c-.6-.6-1.6-.6-2.2 0-.6.6-.6 1.6 0 2.2l5.8 5.8c.3.3.7.5 1.1.5.4 0 .8-.2 1.1-.5l11-11.1c.7-.6.7-1.6 0-2.3z"/></svg>
\ No newline at end of file
--- a/browser/extensions/screenshots/webextension/icons/download.svg
+++ b/browser/extensions/screenshots/webextension/icons/download.svg
@@ -1,11 +1,1 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- viewBox="0 0 20 20" style="enable-background:new 0 0 20 20;" xml:space="preserve">
-<style type="text/css">
- .st0{fill:#3E3D40;}
-</style>
-<path id="Combined-Shape" class="st0" d="M9.1,12L4.9,7.9c-0.5-0.5-1.3-0.5-1.8,0s-0.5,1.3,0,1.8l6.2,6.2c0.5,0.5,1.3,0.5,1.8,0
- l6.2-6.2c0.5-0.5,0.5-1.3,0-1.8s-1.3-0.5-1.8,0L11.6,12V1.2C11.6,0.6,11,0,10.3,0C9.6,0,9.1,0.6,9.1,1.2V12z M4,20
- c-0.7,0-1.2-0.6-1.2-1.2s0.6-1.2,1.2-1.2h12.5c0.7,0,1.2,0.6,1.2,1.2S17.2,20,16.5,20H4z"/>
-</svg>
+<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><style>.st0{fill:#3e3d40}</style><path id="Combined-Shape" class="st0" d="M9.1 12L4.9 7.9c-.5-.5-1.3-.5-1.8 0s-.5 1.3 0 1.8l6.2 6.2c.5.5 1.3.5 1.8 0l6.2-6.2c.5-.5.5-1.3 0-1.8s-1.3-.5-1.8 0L11.6 12V1.2C11.6.6 11 0 10.3 0c-.7 0-1.2.6-1.2 1.2V12zM4 20c-.7 0-1.2-.6-1.2-1.2s.6-1.2 1.2-1.2h12.5c.7 0 1.2.6 1.2 1.2s-.5 1.2-1.2 1.2H4z"/></svg>
\ No newline at end of file
--- a/browser/extensions/screenshots/webextension/icons/icon-16-v2.svg
+++ b/browser/extensions/screenshots/webextension/icons/icon-16-v2.svg
@@ -1,1 +1,1 @@
-<svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill="context-fill"><title>icon-16</title><path d="M8 2a4 4 0 0 0-4 4h4V2zm12 0h-4v4h4V2zm8 0v4h4a4 4 0 0 0-4-4zM14 2h-4v4h4V2zm12 0h-4v4h4V2zm2 10h4V8h-4v4zm0 12a4 4 0 0 0 4-4h-4v4zm0-6h4v-4h-4v4zm-.882-4.334a4 4 0 0 0-5.57-.984l-7.67 5.662-3.936-2.76c.031-.193.05-.388.058-.584a4.976 4.976 0 0 0-2-3.978V8H4v2.1a5 5 0 1 0 3.916 8.948l2.484 1.738-2.8 1.964a4.988 4.988 0 1 0 2.3 3.266l17.218-12.35zM5 17.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5zm0 12a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5zm10.8-4.858l6.034 4.6a4 4 0 0 0 5.57-.984L19.28 22.2l-3.48 2.442z"/></svg>
+<svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity"><title>icon-16</title><path d="M8 2a4 4 0 0 0-4 4h4V2zm12 0h-4v4h4V2zm8 0v4h4a4 4 0 0 0-4-4zM14 2h-4v4h4V2zm12 0h-4v4h4V2zm2 10h4V8h-4v4zm0 12a4 4 0 0 0 4-4h-4v4zm0-6h4v-4h-4v4zm-.882-4.334a4 4 0 0 0-5.57-.984l-7.67 5.662-3.936-2.76c.031-.193.05-.388.058-.584a4.976 4.976 0 0 0-2-3.978V8H4v2.1a5 5 0 1 0 3.916 8.948l2.484 1.738-2.8 1.964a4.988 4.988 0 1 0 2.3 3.266l17.218-12.35zM5 17.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5zm0 12a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5zm10.8-4.858l6.034 4.6a4 4 0 0 0 5.57-.984L19.28 22.2l-3.48 2.442z"/></svg>
\ No newline at end of file
--- a/browser/extensions/screenshots/webextension/icons/icon-32-v2.svg
+++ b/browser/extensions/screenshots/webextension/icons/icon-32-v2.svg
@@ -1,1 +1,1 @@
-<svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill="context-fill"><title>icon-32</title><path d="M8 2a4 4 0 0 0-4 4h4V2zm12 0h-4v4h4V2zm8 0v4h4a4 4 0 0 0-4-4zM14 2h-4v4h4V2zm12 0h-4v4h4V2zm2 10h4V8h-4v4zm0 12a4 4 0 0 0 4-4h-4v4zm0-6h4v-4h-4v4zm-.882-4.334a4 4 0 0 0-5.57-.984l-7.67 5.662-3.936-2.76c.031-.193.05-.388.058-.584a4.976 4.976 0 0 0-2-3.978V8H4v2.1a5 5 0 1 0 3.916 8.948l2.484 1.738-2.8 1.964a4.988 4.988 0 1 0 2.3 3.266l17.218-12.35zM5 17.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5zm0 12a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5zm10.8-4.858l6.034 4.6a4 4 0 0 0 5.57-.984L19.28 22.2l-3.48 2.442z"/></svg>
+<svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity"><title>icon-32</title><path d="M8 2a4 4 0 0 0-4 4h4V2zm12 0h-4v4h4V2zm8 0v4h4a4 4 0 0 0-4-4zM14 2h-4v4h4V2zm12 0h-4v4h4V2zm2 10h4V8h-4v4zm0 12a4 4 0 0 0 4-4h-4v4zm0-6h4v-4h-4v4zm-.882-4.334a4 4 0 0 0-5.57-.984l-7.67 5.662-3.936-2.76c.031-.193.05-.388.058-.584a4.976 4.976 0 0 0-2-3.978V8H4v2.1a5 5 0 1 0 3.916 8.948l2.484 1.738-2.8 1.964a4.988 4.988 0 1 0 2.3 3.266l17.218-12.35zM5 17.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5zm0 12a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5zm10.8-4.858l6.034 4.6a4 4 0 0 0 5.57-.984L19.28 22.2l-3.48 2.442z"/></svg>
\ No newline at end of file
--- a/browser/extensions/screenshots/webextension/icons/icon-highlight-32-v2.svg
+++ b/browser/extensions/screenshots/webextension/icons/icon-highlight-32-v2.svg
@@ -1,1 +1,1 @@
-<svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg"><title>icon-32</title><path d="M8 2a4 4 0 0 0-4 4h4V2zm12 0h-4v4h4V2zm8 0v4h4a4 4 0 0 0-4-4zM14 2h-4v4h4V2zm12 0h-4v4h4V2zm2 10h4V8h-4v4zm0 12a4 4 0 0 0 4-4h-4v4zm0-6h4v-4h-4v4zm-.882-4.334a4 4 0 0 0-5.57-.984l-7.67 5.662-3.936-2.76c.031-.193.05-.388.058-.584a4.976 4.976 0 0 0-2-3.978V8H4v2.1a5 5 0 1 0 3.916 8.948l2.484 1.738-2.8 1.964a4.988 4.988 0 1 0 2.3 3.266l17.218-12.35zM5 17.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5zm0 12a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5zm10.8-4.858l6.034 4.6a4 4 0 0 0 5.57-.984L19.28 22.2l-3.48 2.442z" fill-rule="nonzero" fill="#989898"/></svg>
+<svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg"><title>icon-32</title><path d="M8 2a4 4 0 0 0-4 4h4V2zm12 0h-4v4h4V2zm8 0v4h4a4 4 0 0 0-4-4zM14 2h-4v4h4V2zm12 0h-4v4h4V2zm2 10h4V8h-4v4zm0 12a4 4 0 0 0 4-4h-4v4zm0-6h4v-4h-4v4zm-.882-4.334a4 4 0 0 0-5.57-.984l-7.67 5.662-3.936-2.76c.031-.193.05-.388.058-.584a4.976 4.976 0 0 0-2-3.978V8H4v2.1a5 5 0 1 0 3.916 8.948l2.484 1.738-2.8 1.964a4.988 4.988 0 1 0 2.3 3.266l17.218-12.35zM5 17.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5zm0 12a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5zm10.8-4.858l6.034 4.6a4 4 0 0 0 5.57-.984L19.28 22.2l-3.48 2.442z" fill="#989898"/></svg>
\ No newline at end of file
--- a/browser/extensions/screenshots/webextension/icons/icon-starred-32-v2.svg
+++ b/browser/extensions/screenshots/webextension/icons/icon-starred-32-v2.svg
@@ -1,1 +1,1 @@
-<svg data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="32" height="32"><title>icon-starred-32-v2</title><path fill="context-fill" d="M8 2a4 4 0 0 0-4 4h4zm6 0h-4v4h4zm14 22a4 4 0 0 0 4-4h-4zm-12.2.64l6 4.6a4 4 0 0 0 5.57-1l-8.09-6.04zM21.86 17.44L9.9 26a5 5 0 1 1-2.3-3.27l2.8-2L7.92 19A5 5 0 1 1 4 10.1V8h4v3a5 5 0 0 1 2 4 5 5 0 0 1-.06.58l3.94 2.76 4.46-3.29a9 9 0 0 0 3.52 2.39zM5 17.5A2.5 2.5 0 1 0 2.5 15 2.5 2.5 0 0 0 5 17.5zm0 12A2.5 2.5 0 1 0 2.5 27 2.5 2.5 0 0 0 5 29.5zM16.51 6H16V2h3.34a9 9 0 0 0-2.83 4zM28 17.49V18h4v-3.34a9 9 0 0 1-4 2.83z"/><circle fill="#00feff" cx="25" cy="9" r="7"/><path fill="#005a71" d="M25 4a.89.89 0 0 1 .89.69l.4 1.65.07.31.31-.09 1.64-.48a.91.91 0 0 1 1.11.54.87.87 0 0 1-.22 1L28 8.78l-.27.22.23.22 1.24 1.17a.87.87 0 0 1 .22 1 .91.91 0 0 1-1.11.54l-1.64-.48-.31-.09-.07.31-.4 1.65a.92.92 0 0 1-1.78 0l-.4-1.65-.07-.31-.31.09-1.64.48a.91.91 0 0 1-1.11-.54.87.87 0 0 1 .22-1L22 9.22l.27-.22-.27-.22-1.21-1.17a.87.87 0 0 1-.22-1 .91.91 0 0 1 1.11-.54l1.64.48.31.09.07-.31.4-1.65A.89.89 0 0 1 25 4"/></svg>
+<svg data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="32" height="32"><title>icon-starred-32-v2</title><path fill="context-fill" fill-opacity="context-fill-opacity" d="M8 2a4 4 0 0 0-4 4h4zm6 0h-4v4h4zm14 22a4 4 0 0 0 4-4h-4zm-12.2.64l6 4.6a4 4 0 0 0 5.57-1l-8.09-6.04zm6.06-7.2L9.9 26a5 5 0 1 1-2.3-3.27l2.8-2L7.92 19A5 5 0 1 1 4 10.1V8h4v3a5 5 0 0 1 2 4 5 5 0 0 1-.06.58l3.94 2.76 4.46-3.29a9 9 0 0 0 3.52 2.39zM5 17.5A2.5 2.5 0 1 0 2.5 15 2.5 2.5 0 0 0 5 17.5zm0 12A2.5 2.5 0 1 0 2.5 27 2.5 2.5 0 0 0 5 29.5zM16.51 6H16V2h3.34a9 9 0 0 0-2.83 4zM28 17.49V18h4v-3.34a9 9 0 0 1-4 2.83z"/><circle fill="#00feff" fill-opacity="context-fill-opacity" cx="25" cy="9" r="7"/><path fill="#005a71" fill-opacity="context-fill-opacity" d="M25 4a.89.89 0 0 1 .89.69l.4 1.65.07.31.31-.09 1.64-.48a.91.91 0 0 1 1.11.54.87.87 0 0 1-.22 1L28 8.78l-.27.22.23.22 1.24 1.17a.87.87 0 0 1 .22 1 .91.91 0 0 1-1.11.54l-1.64-.48-.31-.09-.07.31-.4 1.65a.92.92 0 0 1-1.78 0l-.4-1.65-.07-.31-.31.09-1.64.48a.91.91 0 0 1-1.11-.54.87.87 0 0 1 .22-1L22 9.22l.27-.22-.27-.22-1.21-1.17a.87.87 0 0 1-.22-1 .91.91 0 0 1 1.11-.54l1.64.48.31.09.07-.31.4-1.65A.89.89 0 0 1 25 4"/></svg>
\ No newline at end of file
--- a/browser/extensions/screenshots/webextension/icons/icon-welcome-face-without-eyes.svg
+++ b/browser/extensions/screenshots/webextension/icons/icon-welcome-face-without-eyes.svg
@@ -1,27 +1,1 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- viewBox="0 0 64 64" style="enable-background:new 0 0 64 64;" xml:space="preserve">
-<style type="text/css">
- .st0{fill:#FFFFFF;}
-</style>
-<g id="Visual-design">
- <g id="_x31_.2-Div-selection" transform="translate(-575.000000, -503.000000)">
- <g id="Introduction" transform="translate(250.000000, 503.000000)">
- <g id="icon-welcomeface" transform="translate(325.000000, 0.000000)">
- <g id="Layer_1_1_">
- <path id="Shape" class="st0" d="M11.4,0.9v2.9h-6c-0.9,0-1.5,0.8-1.5,1.5v6H0.8V3.8c0-1.7,1.4-3.1,3.1-3.1h7.6v0.2H11.4z"/>
- <path id="Shape_1_" class="st0" d="M63.2,11.4h-3.1v-6c0-0.8-0.6-1.5-1.5-1.5h-6v-3h7.6c1.7,0,3.1,1.4,3.1,3.1L63.2,11.4
- L63.2,11.4z"/>
- <path id="Shape_2_" class="st0" d="M52.6,63.2v-3.1h6c0.9,0,1.5-0.6,1.5-1.5v-6h3.1v7.6c0,1.7-1.4,3.1-3.1,3.1L52.6,63.2
- L52.6,63.2z"/>
- <path id="Shape_3_" class="st0" d="M0.8,52.7h3.1v6c0,0.9,0.6,1.5,1.5,1.5h6v3.1H3.8c-1.7,0-3.1-1.4-3.1-3.1L0.8,52.7L0.8,52.7
- z"/>
- <path id="Shape_6_" class="st0" d="M33.3,49.2H33c-4.6-0.1-7.8-3.6-7.9-3.8c-0.6-0.8-0.6-2,0.1-2.7c0.8-0.8,1.9-0.6,2.6,0.1
- c0,0,2.3,2.6,5.2,2.6c1.8,0,3.6-0.9,5.2-2.6c0.8-0.8,1.9-0.8,2.7,0s0.8,1.9,0,2.7C38.7,47.9,36,49.2,33.3,49.2z"/>
- </g>
- </g>
- </g>
- </g>
-</g>
-</svg>
+<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><style>.st0{fill:#fff}</style><g id="Visual-design"><g id="_x31_.2-Div-selection" transform="translate(-575 -503)"><g id="Introduction" transform="translate(250 503)"><g id="icon-welcomeface" transform="translate(325)"><g id="Layer_1_1_"><path id="Shape" class="st0" d="M11.4.9v2.9h-6c-.9 0-1.5.8-1.5 1.5v6H.8V3.8C.8 2.1 2.2.7 3.9.7h7.6v.2h-.1z"/><path id="Shape_1_" class="st0" d="M63.2 11.4h-3.1v-6c0-.8-.6-1.5-1.5-1.5h-6v-3h7.6c1.7 0 3.1 1.4 3.1 3.1l-.1 7.4z"/><path id="Shape_2_" class="st0" d="M52.6 63.2v-3.1h6c.9 0 1.5-.6 1.5-1.5v-6h3.1v7.6c0 1.7-1.4 3.1-3.1 3.1l-7.5-.1z"/><path id="Shape_3_" class="st0" d="M.8 52.7h3.1v6c0 .9.6 1.5 1.5 1.5h6v3.1H3.8c-1.7 0-3.1-1.4-3.1-3.1l.1-7.5z"/><path id="Shape_6_" class="st0" d="M33.3 49.2H33c-4.6-.1-7.8-3.6-7.9-3.8-.6-.8-.6-2 .1-2.7.8-.8 1.9-.6 2.6.1 0 0 2.3 2.6 5.2 2.6 1.8 0 3.6-.9 5.2-2.6.8-.8 1.9-.8 2.7 0s.8 1.9 0 2.7c-2.2 2.4-4.9 3.7-7.6 3.7z"/></g></g></g></g></g></svg>
\ No newline at end of file
--- a/browser/extensions/screenshots/webextension/icons/menu-fullpage.svg
+++ b/browser/extensions/screenshots/webextension/icons/menu-fullpage.svg
@@ -1,24 +1,1 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- viewBox="0 0 46 46" style="enable-background:new 0 0 46 46;" xml:space="preserve">
-<style type="text/css">
- .st0{fill:#00FDFF;}
- .st1{fill:#3E3D40;}
- .st2{fill:#004C66;}
- .st3{fill:#00D1E6;}
-</style>
-<polygon id="bg" class="st0" points="7,42 39,42 39,5.1 7,5.1 "/>
-<g id="frame" transform="translate(0.000000, 6.000000)">
- <path class="st1" d="M40,5c0.5,0,1,0.4,1,1v24c0,0.5-0.5,1-1,1H6c-0.6,0-1-0.5-1-1V6c0-0.6,0.4-1,1-1H40z M7,29h32V7H7V29z"/>
- <polygon id="Fill-4" class="st2" points="7,7 39,7 39,5 7,5 "/>
- <polygon id="Fill-6" class="st2" points="7,31 39,31 39,29 7,29 "/>
-</g>
-<path id="dash" class="st3" d="M38,11h1V9h-1V11z M38,14h1v-2h-1V14z M38,17h1v-2h-1V17z M38,20h1v-2h-1V20z M38,23h1v-2h-1V23z
- M38,26h1v-2h-1V26z M38,29h1v-2h-1V29z M38,32h1v-2h-1V32z M38,35h1v-2h-1V35z M38,38h1v-2h-1V38z M38,41h1v-2h-1V41z M37,42h2v-1
- h-2V42z M34,42h2v-1h-2V42z M31,42h2v-1h-2V42z M28,42h2v-1h-2V42z M25,42h2v-1h-2V42z M22,42h2v-1h-2V42z M19,42h2v-1h-2V42z
- M16,42h2v-1h-2V42z M13,42h2v-1h-2V42z M10,42h2v-1h-2V42z M8,39H7v2v1h2v-1H8V39z M7,38h1v-2H7V38z M7,35h1v-2H7V35z M7,32h1v-2H7
- V32z M7,29h1v-2H7V29z M7,26h1v-2H7V26z M7,23h1v-2H7V23z M7,20h1v-2H7V20z M7,17h1v-2H7V17z M7,14h1v-2H7V14z M7,11h1V9H7V11z M9,5
- H7v1v2h1V6h1V5z M10,6h2V5h-2V6z M13,6h2V5h-2V6z M16,6h2V5h-2V6z M19,6h2V5h-2V6z M22,6h2V5h-2V6z M25,6h2V5h-2V6z M28,6h2V5h-2V6z
- M31,6h2V5h-2V6z M34,6h2V5h-2V6z M39,5h-2v1h1v2h1V5z"/>
-</svg>
+<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 46 46"><style>.st0{fill:#00fdff}.st1{fill:#3e3d40}.st2{fill:#004c66}.st3{fill:#00d1e6}</style><path id="bg" class="st0" d="M7 42h32V5.1H7z"/><g id="frame" transform="translate(0 6)"><path class="st1" d="M40 5c.5 0 1 .4 1 1v24c0 .5-.5 1-1 1H6c-.6 0-1-.5-1-1V6c0-.6.4-1 1-1h34zM7 29h32V7H7v22z"/><path id="Fill-4" class="st2" d="M7 7h32V5H7z"/><path id="Fill-6" class="st2" d="M7 31h32v-2H7z"/></g><path id="dash" class="st3" d="M38 11h1V9h-1v2zm0 3h1v-2h-1v2zm0 3h1v-2h-1v2zm0 3h1v-2h-1v2zm0 3h1v-2h-1v2zm0 3h1v-2h-1v2zm0 3h1v-2h-1v2zm0 3h1v-2h-1v2zm0 3h1v-2h-1v2zm0 3h1v-2h-1v2zm0 3h1v-2h-1v2zm-1 1h2v-1h-2v1zm-3 0h2v-1h-2v1zm-3 0h2v-1h-2v1zm-3 0h2v-1h-2v1zm-3 0h2v-1h-2v1zm-3 0h2v-1h-2v1zm-3 0h2v-1h-2v1zm-3 0h2v-1h-2v1zm-3 0h2v-1h-2v1zm-3 0h2v-1h-2v1zm-2-3H7v3h2v-1H8v-2zm-1-1h1v-2H7v2zm0-3h1v-2H7v2zm0-3h1v-2H7v2zm0-3h1v-2H7v2zm0-3h1v-2H7v2zm0-3h1v-2H7v2zm0-3h1v-2H7v2zm0-3h1v-2H7v2zm0-3h1v-2H7v2zm0-3h1V9H7v2zm2-6H7v3h1V6h1V5zm1 1h2V5h-2v1zm3 0h2V5h-2v1zm3 0h2V5h-2v1zm3 0h2V5h-2v1zm3 0h2V5h-2v1zm3 0h2V5h-2v1zm3 0h2V5h-2v1zm3 0h2V5h-2v1zm3 0h2V5h-2v1zm5-1h-2v1h1v2h1V5z"/></svg>
\ No newline at end of file
--- a/browser/extensions/screenshots/webextension/icons/menu-myshot-white.svg
+++ b/browser/extensions/screenshots/webextension/icons/menu-myshot-white.svg
@@ -1,1 +1,1 @@
-<svg width="40" height="40" viewBox="0 0 46 46" xmlns="http://www.w3.org/2000/svg"><title>Screenshots</title><path d="M11 11.995c0-.55.455-.995.995-.995h23.01c.55 0 .995.455.995.995v23.01c0 .55-.455.995-.995.995h-23.01c-.55 0-.995-.455-.995-.995v-23.01zM11 25v-2h7v2h-7zm9-5h7v-2h-7v2zm9 5h7v-2h-7v2zm-9 4h7v-2h-7v2zm-2-18h2v25h-2V11zm9 0h2v25h-2V11z" fill="#FFF" fill-rule="evenodd"/></svg>
+<svg width="40" height="40" viewBox="0 0 46 46" xmlns="http://www.w3.org/2000/svg"><title>Screenshots</title><path d="M11 11.995a1 1 0 0 1 .995-.995h23.01a1 1 0 0 1 .995.995v23.01a1 1 0 0 1-.995.995h-23.01a1 1 0 0 1-.995-.995v-23.01zM11 25v-2h7v2h-7zm9-5h7v-2h-7v2zm9 5h7v-2h-7v2zm-9 4h7v-2h-7v2zm-2-18h2v25h-2V11zm9 0h2v25h-2V11z" fill="#FFF" fill-rule="evenodd"/></svg>
\ No newline at end of file
--- a/browser/extensions/screenshots/webextension/icons/menu-myshot.svg
+++ b/browser/extensions/screenshots/webextension/icons/menu-myshot.svg
@@ -1,1 +1,1 @@
-<svg width="46" height="46" viewBox="0 0 46 46" xmlns="http://www.w3.org/2000/svg"><title>Screenshots</title><path d="M11 11.995c0-.55.455-.995.995-.995h23.01c.55 0 .995.455.995.995v23.01c0 .55-.455.995-.995.995h-23.01c-.55 0-.995-.455-.995-.995v-23.01zM11 25v-2h7v2h-7zm9-5h7v-2h-7v2zm9 5h7v-2h-7v2zm-9 4h7v-2h-7v2zm-2-18h2v25h-2V11zm9 0h2v25h-2V11z" fill="#3E3D40" fill-rule="evenodd"/></svg>
+<svg width="46" height="46" viewBox="0 0 46 46" xmlns="http://www.w3.org/2000/svg"><title>Screenshots</title><path d="M11 11.995a1 1 0 0 1 .995-.995h23.01a1 1 0 0 1 .995.995v23.01a1 1 0 0 1-.995.995h-23.01a1 1 0 0 1-.995-.995v-23.01zM11 25v-2h7v2h-7zm9-5h7v-2h-7v2zm9 5h7v-2h-7v2zm-9 4h7v-2h-7v2zm-2-18h2v25h-2V11zm9 0h2v25h-2V11z" fill="#3E3D40" fill-rule="evenodd"/></svg>
\ No newline at end of file
--- a/browser/extensions/screenshots/webextension/icons/menu-visible.svg
+++ b/browser/extensions/screenshots/webextension/icons/menu-visible.svg
@@ -1,19 +1,1 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- viewBox="0 0 46 46" style="enable-background:new 0 0 46 46;" xml:space="preserve">
-<style type="text/css">
- .st0{fill:#3E3D40;}
- .st1{fill:#00FDFF;}
- .st2{fill:#00D1E6;}
-</style>
-<path id="Fill-1" class="st0" d="M5,12c0-0.6,0.5-1,1-1h34c0.6,0,1,0.5,1,1v24c0,0.6-0.5,1-1,1H6c-0.6,0-1-0.5-1-1V12z M7,35V13h32
- v22H7z"/>
-<polygon id="bg" class="st1" points="7,35 39,35 39,13 7,13 "/>
-<path id="dash" class="st2" d="M38,19h1v-2h-1V19z M38,22h1v-2h-1V22z M38,25h1v-2h-1V25z M38,28h1v-2h-1V28z M38,31h1v-2h-1V31z
- M38,34h1v-2h-1V34z M37,35h2v-1h-2V35z M34,35h2v-1h-2V35z M31,35h2v-1h-2V35z M28,35h2v-1h-2V35z M25,35h2v-1h-2V35z M22,35h2v-1
- h-2V35z M19,35h2v-1h-2V35z M16,35h2v-1h-2V35z M13,35h2v-1h-2V35z M10,35h2v-1h-2V35z M8,32H7v2v1h2v-1H8V32z M7,31h1v-2H7V31z
- M7,28h1v-2H7V28z M7,25h1v-2H7V25z M7,22h1v-2H7V22z M7,19h1v-2H7V19z M9,13H7v1v2h1v-2h1V13z M10,14h2v-1h-2V14z M13,14h2v-1h-2
- V14z M16,14h2v-1h-2V14z M19,14h2v-1h-2V14z M22,14h2v-1h-2V14z M25,14h2v-1h-2V14z M28,14h2v-1h-2V14z M31,14h2v-1h-2V14z M34,14h2
- v-1h-2V14z M39,13h-2v1h1v2h1V13z"/>
-</svg>
+<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 46 46"><style>.st0{fill:#3e3d40}.st1{fill:#00fdff}.st2{fill:#00d1e6}</style><path id="Fill-1" class="st0" d="M5 12c0-.6.5-1 1-1h34c.6 0 1 .5 1 1v24c0 .6-.5 1-1 1H6c-.6 0-1-.5-1-1V12zm2 23V13h32v22H7z"/><path id="bg" class="st1" d="M7 35h32V13H7z"/><path id="dash" class="st2" d="M38 19h1v-2h-1v2zm0 3h1v-2h-1v2zm0 3h1v-2h-1v2zm0 3h1v-2h-1v2zm0 3h1v-2h-1v2zm0 3h1v-2h-1v2zm-1 1h2v-1h-2v1zm-3 0h2v-1h-2v1zm-3 0h2v-1h-2v1zm-3 0h2v-1h-2v1zm-3 0h2v-1h-2v1zm-3 0h2v-1h-2v1zm-3 0h2v-1h-2v1zm-3 0h2v-1h-2v1zm-3 0h2v-1h-2v1zm-3 0h2v-1h-2v1zm-2-3H7v3h2v-1H8v-2zm-1-1h1v-2H7v2zm0-3h1v-2H7v2zm0-3h1v-2H7v2zm0-3h1v-2H7v2zm0-3h1v-2H7v2zm2-6H7v3h1v-2h1v-1zm1 1h2v-1h-2v1zm3 0h2v-1h-2v1zm3 0h2v-1h-2v1zm3 0h2v-1h-2v1zm3 0h2v-1h-2v1zm3 0h2v-1h-2v1zm3 0h2v-1h-2v1zm3 0h2v-1h-2v1zm3 0h2v-1h-2v1zm5-1h-2v1h1v2h1v-3z"/></svg>
\ No newline at end of file
index 903ee9ae180a6718fe071a86f199990a789f81c2..f29292be45ce4cb28c03a08e5cd2309faf78932a
GIT binary patch
literal 68904
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�{UXI_T5QK+i_X^D
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
index 30bf96fe21f0331bc43858d44b0ff9162020168e..903ee9ae180a6718fe071a86f199990a789f81c2
GIT binary patch
literal 30331
zc%0<8Wl$Sj)CL&btt~~16nBa{v=k`CODV+y6l-yc1r6@f0xeLAmr^vi26u<z?ykWC
z1d<JXzulerW@mrxzn#gwGr76vIdY$K?mdar)>I)Oq$LCZ03@ofUcLbUa6kY6<|sZE
zdgY1i4n6>Y1<+Q1tEA$r4j4NC{N29)jBWkTXL=v-cMCAO2^dE&?f^QL0PTx_wgo`l
z7)g1rW_AS7-qFg+%G%o6-rgRwWl}xA-pS5fB(2ER)z!?*%+%D>($X?1>051W?aa*F
z;o;%U&CMMWb$tUL9sL^?7G`d44g>=8@_zUB4z8`OUBF?NS7$rBn|^+NrI51I^TVa3
z<@WZDtLqCC3Kbh0heV;!^4{Lw2ZwtW78WKZCdS6bA3l6AGBWB~g?lw0d$$~y&%^)j
zUQg`Z4Da0Jj9-lIT%BFt1$UiJA0VL1SKkLtQb*w(t5-g)$AvSOJLk7S?Z<IF$FM6T
z9D%w-AZHE{L)$m=M~L$qq+c8C`WCeYyX{)P@@YHSJ-_SQyk0s+9Kn%O`!_ACSN`p%
zTW7a>7k3AjcZP<B$8hAv>8-xL{{F??%E>Lb<1C=_EU@c5xcefk7ar1c5z=$Hd2%td
zc^T1vwF<ip?}H-{S91sFp}p{^!JGEgtAmTnhJ~}RK6v-i$?Eax*){U~;;3r!Fud<7
zpk*K2ytj3B7ddbp-hUO;da!tW`#a8H<MeL2_>G^d393^gqW?Ow;~-+-dUF2;afkW>
zHf~zIIce11KEE5-x^7;%?p}k>AKkWPytB42Jjo-7{;aTjakqbRh$;j?qu82OZgTyF
zm$NDR*Uta$-FSRdTiib!PGPV$*BRZtncPPlULsK^f9G1F$M+Cjn~2`E%Z_zK+uF_S
z;qB(>ZU5Fy&laL@^QL11(Yc9eS-l?HMU3nqTGtU1dx(LpoA&vG%#m5>>|xXNZvEsQ
zsA{=;3(>rWSU$e39A2sHpXc@e^1{hW+%puA(Mp(7t@hE8CN>X{)%MQPhT>}p)=wx?
z=uchK4}jcGKtT_nY!J{r59pX3Tish--5T9R)Q@j4IYx^~8j$>ghIWi_8hdGKXbGr&
z0tEiNEN9=DtWbKXA}6b0Tir#MS?pP8S6rX~G<qBJ=e=TccCVaS06Haz-QH;G0_g2)
zX3tQxX($a%t~K{p0Dvol>dWVEK^O-UD%o9v!~j7X4n8mx9Iuikr^@t5{<VXjI)LGs
zcM%(~#E%^iFXhvfX@_1BKf2Nx!DebJfNj3^rV4QF2^VDtsCGw1$YQ*zWa&=@{E}qb
z!)DTn6~lNnk)s88a6$br;3W$?prDh82?&5;{;w&5>VHiNP{9A1)^PsUL@w~ZrT`Ge
z|C&09{?~+7_P?h8PfYnAdlcCJ-_YRciw$)YOkqKspc)Y~!(sX1yhp{y*@e`GTIrf3
zE7q$TpCn}ilD5M1Jus%+5>J5ajevb29;h(#sAl^i)=cf@GGBY+?VOs!T_?bh4{^#f
zMBoJSbUn<+J4xX9=J^6-DlldeaN`|)!avZ^<Q~8SLcRB2WP%Rd%wq7bp7F1mNVO{A
z3$y}Oama!9BLL7�$`0E`eS1yCq@VBq2l1e_3}2PQT-5U@	ys{u9ql~mK_rOY
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𝔈fe2<b+pM7
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
S_H8K0m%gsCPL-Bj#Qy`jpNEbB
index 5511ccac7159a515bcde7fce696a20f02aabede2..29e5d552d1cf3707a9ae15754f28e7d6480ecfc8
GIT binary patch
literal 58364
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�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
D^%KqO
copy from browser/extensions/screenshots/webextension/icons/onboarding-4.png
copy to browser/extensions/screenshots/webextension/icons/onboarding-5.png
--- a/browser/extensions/screenshots/webextension/manifest.json
+++ b/browser/extensions/screenshots/webextension/manifest.json
@@ -1,29 +1,22 @@
{
"manifest_version": 2,
"name": "Firefox Screenshots",
- "version": "16.1.0",
+ "version": "19.0.0",
"description": "__MSG_addonDescription__",
"author": "__MSG_addonAuthorsList__",
"homepage_url": "https://github.com/mozilla-services/screenshots",
"applications": {
"gecko": {
- "id": "screenshots@mozilla.org"
+ "id": "screenshots@mozilla.org",
+ "strict_min_version": "57.0a1"
}
},
"default_locale": "en_US",
- "browser_action": {
- "default_icon": {
- "16": "icons/icon-16-v2.svg",
- "32": "icons/icon-32-v2.svg"
- },
- "default_title": "Firefox Screenshots",
- "browser_style": false
- },
"background": {
"scripts": [
"build/buildSettings.js",
"background/startBackground.js"
]
},
"content_scripts": [
{
@@ -46,16 +39,17 @@
"icons/back-highlight.svg",
"icons/menu-fullpage.svg",
"icons/menu-visible.svg",
"icons/menu-myshot.svg",
"icons/onboarding-1.png",
"icons/onboarding-2.png",
"icons/onboarding-3.png",
"icons/onboarding-4.png",
+ "icons/onboarding-5.png",
"icons/done.svg",
"icons/icon-welcome-face-without-eyes.svg"
],
"permissions": [
"activeTab",
"downloads",
"tabs",
"storage",
--- a/browser/extensions/screenshots/webextension/onboarding/slides.html
+++ b/browser/extensions/screenshots/webextension/onboarding/slides.html
@@ -3,58 +3,66 @@
<head>
<!-- onboarding.scss is automatically inserted here: -->
<style></style>
<!-- Here and in onboarding.scss use MOZ_EXTENSION/path to refer to local files -->
</head>
<body>
<div id="slide-overlay">
<!-- The current slide is set by having .active-slide-1, .active-slide-2, etc on #slide element: -->
- <div id="slide-container" data-number-of-slides="4" class="active-slide-1">
+ <div id="slide-container" data-number-of-slides="5" class="active-slide-1">
<div class="slide slide-1">
<!-- Note: all images must be listed in manifest.json.template under web_accessible_resources -->
<div class="slide-image" style="background-image: url('MOZ_EXTENSION/icons/onboarding-1.png');"></div>
<div class="slide-content">
<div class="slide-content-aligner">
<h1><span><strong>Firefox</strong> Screenshots</span><sup>Beta</sup></h1>
- <p data-l10n-id="tourBodyOne"></p>
+ <p data-l10n-id="tourBodyIntro"></p>
</div>
<p class="onboarding-legal-notice"><!-- Substituted with termsAndPrivacyNotice --></p>
</div>
</div>
<div class="slide slide-2">
<div class="slide-image" style="background-image: url('MOZ_EXTENSION/icons/onboarding-2.png');"></div>
<div class="slide-content">
- <h1 data-l10n-id="tourHeaderTwo"></h1>
- <p data-l10n-id="tourBodyTwo"></p>
+ <h1 data-l10n-id="tourHeaderPageAction"></h1>
+ <p data-l10n-id="tourBodyPageAction"></p>
</div>
</div>
<div class="slide slide-3">
<div class="slide-image" style="background-image: url('MOZ_EXTENSION/icons/onboarding-3.png');"></div>
<div class="slide-content">
- <h1 data-l10n-id="tourHeaderThree"></h1>
- <p data-l10n-id="tourBodyThree"></p>
+ <h1 data-l10n-id="tourHeaderClickAndDrag"></h1>
+ <p data-l10n-id="tourBodyClickAndDrag"></p>
</div>
</div>
<div class="slide slide-4">
<div class="slide-image" style="background-image: url('MOZ_EXTENSION/icons/onboarding-4.png');"></div>
<div class="slide-content">
- <h1 data-l10n-id="tourHeaderFour"></h1>
- <p data-l10n-id="tourBodyFour"></p>
+ <h1 data-l10n-id="tourHeaderFullPage"></h1>
+ <p data-l10n-id="tourBodyFullPage"></p>
+ </div>
+ </div>
+ <div class="slide slide-5">
+ <div class="slide-image" style="background-image: url('MOZ_EXTENSION/icons/onboarding-5.png');"></div>
+ <div class="slide-content">
+ <h1 data-l10n-id="tourHeaderDownloadUpload"></h1>
+ <p data-l10n-id="tourBodyDownloadUpload"></p>
</div>
</div>
<!-- Clickable elements should be buttons for accessibility -->
<button id="skip" data-l10n-id="tourSkip" tabindex=1>Skip</button>
<button id="prev" tabindex=2 data-l10n-label-id="tourPrevious"></button>
<button id="next" tabindex=3 data-l10n-label-id="tourNext"></button>
<button id="done" tabindex=4 data-l10n-label-id="tourDone"></button>
<div id="slide-status-container">
<button class="goto-slide goto-slide-1" data-number="1" tabindex=4></button>
<button class="goto-slide goto-slide-2" data-number="2" tabindex=5></button>
<button class="goto-slide goto-slide-3" data-number="3" tabindex=6></button>
<button class="goto-slide goto-slide-4" data-number="4" tabindex=7></button>
+ <button class="goto-slide goto-slide-5" data-number="5" tabindex=8></button>
</div>
<!-- FIXME: Need to put in privacy / etc links -->
</div>
</div>
</body>
</html>
--- a/browser/extensions/screenshots/webextension/selector/shooter.js
+++ b/browser/extensions/screenshots/webextension/selector/shooter.js
@@ -24,16 +24,23 @@ this.shooter = (function() { // eslint-d
const origin = new RegExp(`${regexpEscape(window.location.origin)}[^ \t\n\r",>]*`, 'g');
const json = JSON.stringify(data)
.replace(href, 'REDACTED_HREF')
.replace(origin, 'REDACTED_URL');
const result = JSON.parse(json);
return result;
}
+ function base64ToBinary(url) {
+ const binary = atob(url.split(',')[1]);
+ const data = Uint8Array.from(binary, char => char.charCodeAt(0));
+ const blob = new Blob([data], {type: "image/png"});
+ return blob;
+ }
+
catcher.registerHandler((errorObj) => {
callBackground("reportError", sanitizeError(errorObj));
});
catcher.watchFunction(() => {
let canvas = document.createElementNS('http://www.w3.org/1999/xhtml', 'canvas');
let ctx = canvas.getContext('2d');
supportsDrawWindow = !!ctx.drawWindow;
@@ -75,16 +82,17 @@ this.shooter = (function() { // eslint-d
if (Math.floor(selectedPos.left) == Math.floor(selectedPos.right) ||
Math.floor(selectedPos.top) == Math.floor(selectedPos.bottom)) {
let exc = new Error("Empty selection");
exc.popupMessage = "EMPTY_SELECTION";
exc.noReport = true;
catcher.unhandled(exc);
return;
}
+ let imageBlob;
const uicontrol = global.uicontrol;
let deactivateAfterFinish = true;
if (isSaving) {
return;
}
isSaving = setTimeout(() => {
if (typeof ui !== "undefined") {
// ui might disappear while the timer is running because the save succeeded
@@ -94,21 +102,22 @@ this.shooter = (function() { // eslint-d
}, 1000);
selectedPos = selectedPos.asJson();
let captureText = "";
if (buildSettings.captureText) {
captureText = util.captureEnclosedText(selectedPos);
}
let dataUrl = url || screenshotPage(selectedPos, captureType);
if (dataUrl) {
+ imageBlob = base64ToBinary(dataUrl);
shotObject.delAllClips();
shotObject.addClip({
createdDate: Date.now(),
image: {
- url: dataUrl,
+ url: "data:",
captureType,
text: captureText,
location: selectedPos,
dimensions: {
x: selectedPos.right - selectedPos.left,
y: selectedPos.bottom - selectedPos.top
}
}
@@ -120,17 +129,18 @@ this.shooter = (function() { // eslint-d
scroll: {
scrollX: window.scrollX,
scrollY: window.scrollY,
innerHeight: window.innerHeight,
innerWidth: window.innerWidth
},
selectedPos,
shotId: shotObject.id,
- shot: shotObject.asJson()
+ shot: shotObject.asJson(),
+ imageBlob
}).then((url) => {
return clipboard.copy(url).then((copied) => {
return callBackground("openShot", { url, copied });
});
}, (error) => {
if ('popupMessage' in error && (error.popupMessage == "REQUEST_ERROR" || error.popupMessage == 'CONNECTION_ERROR')) {
// The error has been signaled to the user, but unlike other errors (or
// success) we should not abort the selection