From 07748f69b75144e8e247b742f66a756f999cb299 Mon Sep 17 00:00:00 2001 From: mcarare Date: Fri, 2 Oct 2020 16:20:43 +0300 Subject: [PATCH 01/71] For #15632: Improve checking open tabs logic to show collection button. Check now considers selected tab tray mode. --- .../org/mozilla/fenix/tabtray/TabTrayView.kt | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayView.kt b/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayView.kt index 924496c43..da12846b9 100644 --- a/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayView.kt +++ b/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayView.kt @@ -100,6 +100,14 @@ class TabTrayView( private val components = container.context.components + private val checkOpenTabs = { + if (isPrivateModeSelected) { + view.context.components.core.store.state.privateTabs.isNotEmpty() + } else { + view.context.components.core.store.state.normalTabs.isNotEmpty() + } + } + init { components.analytics.metrics.track(Event.TabsTrayOpened) @@ -214,14 +222,9 @@ class TabTrayView( tabTrayItemMenu = TabTrayItemMenu( context = view.context, - shouldShowSaveToCollection = { tabs.isNotEmpty() && view.tab_layout.selectedTabPosition == 0 }, - hasOpenTabs = { - if (isPrivateModeSelected) { - view.context.components.core.store.state.privateTabs.isNotEmpty() - } else { - view.context.components.core.store.state.normalTabs.isNotEmpty() - } - }) { + shouldShowSaveToCollection = { checkOpenTabs.invoke() && view.tab_layout.selectedTabPosition == 0 }, + hasOpenTabs = checkOpenTabs + ) { when (it) { is TabTrayItemMenu.Item.ShareAllTabs -> interactor.onShareTabsClicked( isPrivateModeSelected From ad2b99f9f99f7458fd353ae72fbf68b4e23b9f12 Mon Sep 17 00:00:00 2001 From: Mozilla L10n Automation Bot Date: Mon, 5 Oct 2020 00:10:08 +0000 Subject: [PATCH 02/71] Import l10n. --- app/src/main/res/values-ar/strings.xml | 124 ++ .../main/res/values-b+sat+Olck/strings.xml | 1292 +++++++++++++++++ app/src/main/res/values-be/strings.xml | 16 + app/src/main/res/values-hy-rAM/strings.xml | 11 + app/src/main/res/values-ja/strings.xml | 7 + app/src/main/res/values-su/strings.xml | 19 +- app/src/main/res/values-tg/strings.xml | 6 + app/src/main/res/values-th/strings.xml | 7 + app/src/main/res/values-tr/strings.xml | 2 +- l10n.toml | 1 + 10 files changed, 1474 insertions(+), 11 deletions(-) create mode 100644 app/src/main/res/values-b+sat+Olck/strings.xml diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index f38df865a..d98e00fb1 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -333,6 +333,8 @@ ابحث في الألسنة المُزامنة إعدادات الحساب + + أكمِل العناوين تلقائيا افتح الروابط في التطبيقات @@ -442,6 +444,9 @@ أزِل الحساب + + + firefox.com/pair ضوئيا]]> افتح الكمرة @@ -502,6 +507,8 @@ ابحث الإعدادات + + عنصر قائمة في التأريخ أغلِق @@ -553,6 +560,8 @@ لسان جديد انتقل إلى الصفحة الرئيسية + + بدّل وضع اللسان أزِل اللسان من المجموعة @@ -577,6 +586,8 @@ احفظ شارِك + + صورة الجلسة الحالية احفظ في التجميعة @@ -776,6 +787,10 @@ اسمح بالصوت والڤِديو + + احجب الصوت والڤديو على بيانات الشبكة في المحمول فقط + + سيعمل الصوت والڤديو على الشبكة اللاسلكية احجب الصوت فقط @@ -873,6 +888,8 @@ أغلِق الألسنة الخاصة افتح + + احذف وافتح تدعمه @@ -887,6 +904,8 @@ أُغلق اللسان أُغلقت الألسنة + + أُضيف إلى المواقع الشائعة! أُغلق اللسان الخاص @@ -949,6 +968,8 @@ ستخرج من معظم المواقع الصور والملفات المخبّأة + + يحرّر مساحة التخزين تصاريح المواقع @@ -1030,26 +1051,47 @@ تَلج الآن… لِج إلى Firefox + + لا تلج التزامن يعمل فشل الولوج + + خصوصية تلقائية + + تحجب إعدادات الخصوصية والأمان المتعقّبات والبرمجيات الخبيثة والشركات التي تحاول تعقّبك. القياسي (المبدئي) + + احجب عددًا أقل من المتعقّبات. ستُحمّل الصفحات كما الطبيعي. صارم (مستحسن) صارم + + احجب متعقّبات وإعلانات ومنبثقات أكثر. ستُحمّل الصفحات بسرعة أكبر، ولكن قد لا تعمل بعض المزايا. اختر جهةً + + جرّب التصفّح بيد واحدة باستعمال شريط الأدوات بالأسفل، أو انقله إلى أعلى. تصفّح بخصوصية + + افتح اللسان الخاص الآن فقط: انقر أيقونة %s. + + افتح الألسنة الخاصة في كل مرة: حدّث إعدادات التصفّح الخاص. افتح الإعدادات خصوصيتك + + صمّمنا لك %s لتقدر على التحكّم فيما تُشاركه عبر الشبكة، وما تُشاركه معنا. أغلِق @@ -1060,8 +1102,12 @@ اختر السمة + + وفّر طاقة الطارية واحمِ نظرك بتفعيل الوضع الداكن. آلي + + يتأقلم حسب إعدادات الجهاز سمة داكنة @@ -1075,6 +1121,8 @@ تعذر الإرسال أعِد المحاولة + + امسح الرز ضوئيًا https://firefox.com/pair]]> @@ -1083,6 +1131,8 @@ لِج باستخدام كمرتك استعمل البريد بدل المسح + + أنشِئ واحدًا لمزامنة Firefox بين الأجهزة.]]> سيتوقف Firefox عن مزامنة حسابك، لكن لن يحذف أيًا من بيانات تصفحك على هذا الجهاز. @@ -1092,6 +1142,9 @@ ألغِ + + لا يمكنك تعديل المجلدات المبدئية + إعدادات الحماية @@ -1106,12 +1159,22 @@ اطّلع على المزيد القياسي (المبدئي) + + احجب عددًا أقل من المتعقّبات. ستُحمّل الصفحات كما الطبيعي. + + ما يحجبه أسلوب الحماية ضد التعقّب المعياري صارم + + احجب متعقّبات وإعلانات ومنبثقات أكثر. ستُحمّل الصفحات بسرعة أكبر، ولكن قد لا تعمل بعض المزايا. + + ما يحجبه أسلوب الحماية ضد التعقّب الصارم مخصّص اختر المتعقّبات والسكربتات التي تريد حجبها. + + ما يحجبه أسلوب الحماية ضد التعقّب المخصّص الكعكات @@ -1144,8 +1207,12 @@ يحدّ من قدرة الشبكات الاجتماعية على تعقب نشاط تصفحك على الإنترنت. كعكات تتعقّبك بين المواقع + + احجب الكعكات التي تستعمله شبكات الإعلانات وشركات التحليل الرقمي لجمع بيانات التصفّح من مختلف المواقع. المُعدّنات المعمّاة + + امنع السكربتات الخبيثة من الوصول إلى جهازك لتعدين العملات رقميًا. مسجّلات البصمات @@ -1158,6 +1225,8 @@ عُطّلت الحماية الموسّعة من التعقب لهذه المواقع حقوقك + + المكتبات مفتوحة المصدر التي نستخدم ما جديد %s @@ -1172,6 +1241,10 @@ معلومات الترخيص + + المكتبات التي نستعمل + فُعّلت قائمة التنقيح + انسخ @@ -1193,6 +1266,9 @@ اسم الاختصار + + يمكنك إضافة هذا الموقع إلى شاشة البداية في الجهاز لتصل إليه بسرعة وتتصفحه كأي تطبيق آخر. + جلسات الولوج وكلمات السر @@ -1216,6 +1292,8 @@ جلسات الولوج المحفوظة + + تظهر هنا جلسات الولوج التي تحفظها أو تُزامنها مع %s. اعرف المزيد عن المزامنة. @@ -1224,6 +1302,8 @@ ستظهر جلسات الولوج وكلمات السر غير المحفوظة هنا. لن تُحفظ جلسات الولوج وكلمات السر لهذه المواقع. + + احذف كل الاستثناءات ابحث في جلسات الولوج @@ -1236,6 +1316,8 @@ اسم المستخدم كلمة السر + + ألغِ القفل لعرض جلسات الولوج المحفوظة هذا الاتصال ليس آمنا. بيانات الولوج المدخلة هنا عرضة للخطر. @@ -1254,16 +1336,34 @@ نُسخ الموقع إلى الحافظة انسخ كلمة السر + + امسح كلمة السر اسنخ اسم المستخدم + + امسح اسم المستخدم انسخ الموقع + + افتح الموقع في المتصفح أظهِر كلمة السر أخفِ كلمة السر + + ألغِ القفل لعرض جلسات الولوج المحفوظة + + احمِ جلسات الولوج وكلمات السر + + اضبط نمطًا أو رمزًا أو كلمة سر لقفل الجهاز ذلك لحماية جلسات الولوج وكلمات السر المحفوظة ضد الوصول إليها ضد من يستعمل جهازك. لاحقًا + + اضبط ذلك الآن + + ألغِ قفل جهازك + + استعمل التقريب على كل المواقع الاسم (ا-ي) @@ -1286,6 +1386,8 @@ أخرى الاسم + + نص البحث المستخدم اطّلع على المزيد @@ -1297,6 +1399,8 @@ أدخِل نص البحث + + تحقق من أن نص البحث يطابق تنسيق المثال عُطل أثناء الاتصال بِ‍ ”%s“ @@ -1306,10 +1410,14 @@ حُذف %s + + مرحبًا بك في %s الجديد يحدّث %s… ابدأ %s + + اكتمل الترحيل كلمات السر @@ -1320,6 +1428,9 @@ الأذونات]]> + + %1$s على ”مفعّل/مفعّلة“]]> + اتصال آمن @@ -1332,6 +1443,8 @@ أمتأكد من مسح التصريح لهذا الموقع؟ ما من مواقع مستثناة + + أهم المقالات أمتأكد من حذف هذه العلامة؟ @@ -1378,13 +1491,24 @@ لِج إلى «المزامنة» + + لا ألسنة مفتوحة + + + + وصلت إلى أقصى حدّ للمواقع الشائعة حسنًا، فهمت + + أزِل + استغلّ %s إلى أقصى حد. + + اجمع ما يهمّك يمكنك إضافة هذا الموقع إلى شاشة البداية لتصل إليه بسرعة وتتصفحه كأي تطبيق آخر. diff --git a/app/src/main/res/values-b+sat+Olck/strings.xml b/app/src/main/res/values-b+sat+Olck/strings.xml new file mode 100644 index 000000000..9950012da --- /dev/null +++ b/app/src/main/res/values-b+sat+Olck/strings.xml @@ -0,0 +1,1292 @@ + + + + %s ᱯᱨᱭᱣᱮᱴ + + %s (ᱯᱨᱭᱣᱮᱴ) + + + ᱰᱷᱮᱨ ᱮᱴᱟᱜᱟᱠ + + ᱱᱤᱡᱮᱨᱟᱜ ᱯᱟᱱᱛᱮᱭᱟᱜ ᱦᱩᱭ ᱦᱚᱪᱚ + + ᱱᱤᱡᱮᱨᱟᱜ ᱯᱟᱱᱛᱮᱭᱟᱜ ᱵᱟᱝ ᱦᱩᱭ ᱦᱚᱪᱚ + + ᱥᱮᱸᱫᱽᱨᱟ ᱵᱟᱝᱠᱷᱟᱱ ᱴᱷᱤᱠᱟᱹᱬᱟᱹ ᱠᱚ ᱟᱫᱮᱨ + + ᱟᱢᱟᱜ ᱠᱷᱩᱞᱟᱹ ᱟᱠᱟᱱ ᱴᱮᱵ ᱠᱚ ᱫᱚ ᱱᱚᱰᱮ ᱫᱮᱠᱷᱟᱣᱼᱜᱟ ᱾ + + ᱟᱢᱟᱜ ᱱᱤᱡᱚᱨᱟᱜ ᱴᱮᱵ ᱠᱚ ᱫᱚ ᱱᱚᱱᱰᱮ ᱩᱫᱩᱜ ᱦᱩᱭᱩᱜ-ᱟ ᱾ + + 1 ᱴᱮᱵ ᱠᱷᱩᱞᱟᱹᱭ ᱢᱮ ᱾ ᱴᱮᱵ ᱵᱚᱫᱚᱞ ᱞᱟᱹᱜᱤᱫ ᱴᱤᱯᱟᱹᱣ ᱢᱮ ᱾ + + %1$s ᱴᱮᱵ ᱠᱚ ᱠᱷᱩᱞᱟᱹᱭ ᱢᱮ ᱾ ᱴᱮᱵ ᱵᱚᱫᱚᱞ ᱞᱟᱹᱜᱤᱫ ᱴᱤᱯᱟᱹᱣ ᱢᱮ ᱾ + + %1$d ᱵᱟᱪᱷᱟᱣᱮᱱᱟ + + ᱱᱟᱶᱟ ᱛᱩᱢᱟᱹᱞ ᱡᱟᱣᱨᱟ ᱥᱮᱞᱮᱫ ᱢᱮ + + ᱧᱩᱛᱩᱢ + + ᱛᱩᱢᱟᱹᱞ ᱡᱟᱣᱨᱟᱜ ᱵᱟᱪᱷᱟᱣ ᱢᱮ + + ᱢᱟᱹᱞᱴᱤᱥᱤᱞᱮᱠᱼᱴ ᱢᱳᱰ ᱵᱟᱹᱰ + + ᱵᱟᱪᱷᱟᱣᱮᱱᱟ %1$s + + ᱵᱟᱝ ᱪᱚᱭᱚᱱᱟᱜ%1$s + + ᱵᱟᱹᱰ ᱟᱠᱟᱱᱟ ᱢᱟᱹᱴᱤᱥᱤᱞᱮᱼᱴ ᱢᱳᱰ + + ᱢᱟᱹᱞᱴᱤᱥᱤᱞᱮᱠᱼᱴ ᱢᱳᱰ ᱵᱚᱞᱚ ᱮᱱᱟᱢ, ᱛᱩᱢᱟᱹᱞ ᱥᱟᱸᱪᱟᱣ ᱞᱟᱹᱜᱤᱫ ᱨᱮᱵ ᱠᱚ ᱪᱚᱭᱚᱱ ᱢᱮ + + ᱵᱟᱪᱷᱟᱣᱮᱱᱟ + + + %1$s ᱛᱮᱭᱟᱨ ᱦᱩᱭ ᱠᱟᱱᱟ Mozilla ᱫᱟᱨᱟᱭᱛᱮ ᱾ + + + + ᱟᱢ ᱱᱤᱡᱚᱨᱟᱜ ᱚᱠᱛᱚ ᱨᱮ ᱢᱮᱱᱟᱢ-ᱟ + + %1$s ᱟᱢᱟᱜ ᱥᱮᱸᱫᱽᱨᱟ ᱟᱨ ᱯᱟᱱᱛᱮᱭᱟᱜ ᱦᱤᱛᱟᱹᱞ ᱱᱤᱡᱮᱨᱟᱜ ᱴᱮᱵ ᱠᱷᱚᱱ ᱯᱷᱟᱨᱪᱟ ᱭᱟᱭ ᱡᱚᱠᱷᱚᱱ ᱟᱢ ᱩᱱᱠᱩ ᱵᱚᱸᱫᱚ ᱠᱚᱣᱟᱢ ᱟᱨ ᱮᱯ ᱟᱲᱟᱹᱜ ᱟᱢ. ᱱᱚᱣᱟ ᱫᱚ ᱵᱟᱝ ᱵᱟᱰᱟᱭ ᱵᱟᱝ ᱵᱮᱱᱟᱣ ᱢᱤᱭᱟᱭ ᱣᱮᱵᱥᱟᱭᱤᱴ ᱟᱨ ᱤᱱᱴᱚᱨᱱᱮᱴ ᱮᱢᱚᱜᱤᱪ ᱠᱷᱚᱱ, ᱱᱚᱣᱟ ᱫᱚ ᱟᱞᱜᱟ ᱵᱮᱱᱟᱣ ᱟᱭ ᱫᱚᱦᱚ ᱞᱟᱹᱜᱤᱛ ᱪᱷᱤ ᱠᱚ ᱟᱢ ᱚᱱᱞᱟᱭᱤᱱ ᱠᱚᱨᱟᱣ ᱫᱟᱢ ᱩᱱᱠᱩ ᱠᱷᱚᱱ ᱡᱟ ᱱᱚᱣᱟ ᱥᱟᱫᱷᱚᱱ ᱵᱮᱵᱷᱟᱨ ᱟᱠᱚ ᱾ + ᱯᱨᱭᱣᱮᱴ ᱵᱨᱟᱣᱡᱤᱝ ᱨᱮᱭᱟᱜ ᱥᱚᱢᱟᱱ ᱮᱰᱮ ᱠᱚ + + ᱚᱠᱛᱚ ᱢᱮᱴᱟᱣ ᱢᱮ + + + + ᱟᱢᱟᱜ ᱚᱲᱟᱜ ᱤᱥᱠᱨᱤᱱ ᱠᱷᱚᱱ ᱱᱤᱡᱮᱨᱟᱜ ᱴᱮᱵ ᱡᱷᱤᱡ ᱞᱟᱹᱜᱤ ᱛᱮ ᱢᱤᱫᱴᱟᱹᱝ ᱠᱷᱟᱴᱚᱢᱟᱪᱷᱟ ᱥᱮᱞᱮᱫ ᱛᱟᱞᱟᱝ ᱢᱮ ᱾ + + ᱠᱷᱟᱴᱚᱢᱟᱪᱷᱟ ᱥᱮᱞᱮᱫ ᱢᱮ + + + ᱵᱟᱝᱟ ᱥᱟᱨᱦᱟᱣ + + + + Firefox ᱞᱚᱜᱚᱱ ᱚᱰᱚᱠ ᱢᱮ, ᱚᱲᱟᱜ ᱥᱠᱨᱤᱤᱱ ᱨᱮ ᱣᱤᱡᱮᱴ ᱥᱮᱞᱮᱫ ᱢᱮ ᱾ + + ᱣᱤᱡᱮᱴ ᱥᱮᱞᱮᱫ ᱢᱮ + + ᱱᱤᱛᱚᱜ ᱫᱚ ᱵᱟᱸᱝᱟ + + + + ᱟᱢ ᱮᱯᱯ ᱠᱚ ᱮᱢᱟᱱ ᱨᱮ ᱟᱡ ᱛᱮᱜᱮ ᱞᱤᱸᱠ ᱠᱚ ᱮᱢᱟᱱ ᱚᱰᱚᱠ ᱨᱮᱭᱟᱜ Firefox ᱨᱮ ᱥᱮᱴ ᱫᱟᱲᱮᱟᱜᱼᱟᱢ ᱾ + + ᱥᱟᱡᱟᱣ ᱠᱚ ᱨᱮ ᱪᱟᱞᱟᱜ ᱢᱮ + + + ᱵᱟᱹᱰ + + + ᱠᱚᱢᱨᱟ ᱵᱮᱵᱷᱟᱨ ᱫᱚᱨᱠᱟᱨ ᱾ ᱮᱸᱰᱨᱚᱭᱮᱰ ᱥᱟᱡᱟᱣ ᱛᱮ ᱪᱟᱞᱟᱜ ᱢᱮ, ᱯᱟᱹᱨᱢᱤᱥᱥᱚᱱ ᱨᱮ ᱚᱛᱟᱭ ᱢᱮ , ᱟᱨ ᱮᱞᱞᱟᱣ ᱨᱮ ᱚᱛᱟᱭ ᱢᱮ ᱾ + + ᱥᱟᱡᱟᱣ ᱠᱚ ᱨᱮ ᱪᱟᱞᱟᱜ ᱢᱮ + + + ᱵᱟᱦᱨᱮ ᱚᱰᱚᱠ + + + ᱚᱠᱟ ᱠᱚ ᱫᱚ ᱢᱟᱲᱟᱝ ᱫᱤᱱ, ᱦᱟᱴ, ᱟᱨ ᱵᱟᱝ ᱢᱟᱦᱟ ᱠᱚᱨᱮ ᱵᱟᱝ ᱧᱮᱞ ᱟᱠᱟᱱᱟ ᱚᱱᱟ ᱠᱚ ᱫᱚ ᱠᱷᱭᱞᱟᱹ ᱴᱮᱵ ᱠᱚ ᱨᱮ ᱟᱡ ᱛᱮᱜᱮ ᱵᱚᱸᱫᱚᱜ ᱢᱟ ᱾ + + ᱮᱴᱟᱜᱟ ᱚᱯᱥᱚᱱ ᱠᱚ ᱫᱮᱠᱷᱟᱣᱢᱮ + + ᱵᱟᱹᱰ + + + + ᱱᱟᱶᱟ ᱴᱮᱵ + + ᱱᱟᱶᱟ ᱱᱤᱡᱮᱨᱟᱜ ᱴᱮᱵ + + + ᱪᱮᱛᱟᱱ ᱨᱤᱱ ᱥᱟᱭᱤᱴ ᱠᱚ + + + + ᱡᱷᱤᱡ ᱴᱮᱵ ᱠᱚ + + ᱛᱟᱭᱚᱢ + + ᱞᱟᱦᱟ + + ᱨᱤᱯᱷᱨᱮᱥ + + ᱛᱤᱸᱜᱩ + + ᱵᱩᱠᱢᱟᱨᱠ + + ᱵᱩᱠᱢᱟᱨᱠ ᱥᱟᱯᱲᱟᱣ ᱢᱮ + + ᱮᱰ-ᱟᱸᱱᱥ + + ᱱᱚᱱᱰᱮ ᱮᱰ-ᱟᱸᱱᱥ ᱠᱚ ᱵᱟᱹᱱᱩᱜᱼᱟ + + ᱜᱚᱲᱚ + + ᱪᱮᱫ ᱱᱟᱶᱟ ᱢᱮᱱᱟᱜ-ᱟ + + ᱥᱟᱡᱟᱣ ᱠᱚ + + ᱯᱩᱛᱷᱤ ᱚᱲᱟᱜ + + ᱰᱮᱥᱠᱴᱟᱹᱯ ᱥᱟᱭᱤᱴ + + ᱚᱲᱟᱜ ᱥᱠᱨᱤᱱ ᱨᱮ ᱥᱮᱞᱮᱫ ᱢᱮ + + ᱵᱚᱦᱟᱞ ᱢᱮ + + ᱥᱤᱸᱠᱼᱰ ᱴᱮᱵ ᱠᱚ + + ᱨᱭᱥᱤᱸᱠ + + ᱥᱟᱦᱴᱟ ᱨᱮ ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮ + + ᱱᱤᱡᱚᱨᱟᱜ ᱴᱮᱵ + + ᱱᱟᱶᱟ ᱴᱮᱵ + + ᱛᱩᱢᱟᱹᱞ ᱡᱟᱣᱨᱟ ᱨᱮ ᱥᱟᱸᱪᱟᱣ ᱢᱮ + + ᱦᱟᱹᱴᱤᱧ + + ᱱᱚᱶᱟ ᱛᱮ ᱦᱟᱹᱴᱤᱧ ᱢᱮ... + + %1$s ᱨᱮ ᱡᱷᱤᱡ ᱢᱮ + + %1$s ᱫᱟᱨᱟᱭ ᱛᱮ ᱫᱟᱲᱮ ᱮᱢ + + %1$s ᱫᱟᱨᱟᱭ ᱛᱮ ᱫᱟᱲᱮ ᱮᱢ + + ᱨᱤᱰᱚᱨ ᱵᱷᱭᱩ + + ᱨᱤᱰᱚᱨ ᱵᱷᱭᱩ ᱵᱚᱸᱫᱚᱭ ᱢᱮ + + ᱮᱯᱯ ᱨᱮ ᱡᱷᱤᱡ ᱢᱮ + + + ᱧᱮᱞ ᱵᱤᱰᱟᱹᱣ + + + ᱵᱟᱝ ᱡᱩᱲᱟᱹᱣ ᱫᱟᱲᱮᱭᱟᱜ ᱠᱟᱱᱟ ᱾ URL ᱥᱠᱤᱢ ᱵᱟᱝ ᱪᱤᱱᱦᱟᱹᱣ ᱫᱟᱲᱮᱞᱟᱱᱟ ᱾ + + + + ᱵᱟᱪᱷᱟᱣᱟᱠᱟᱱ ᱯᱟᱹᱨᱥᱤ + + ᱥᱮᱸᱫᱽᱨᱟ + + ᱥᱟᱫᱷᱚᱱ ᱨᱮᱭᱟᱜ ᱯᱟᱹᱨᱥᱤ ᱯᱟᱸᱪᱟᱣ ᱢᱮ + + ᱯᱟᱹᱨᱥᱤ ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮ + + + + ᱥᱠᱮᱱ + + ᱥᱮᱸᱫᱽᱨᱟ ᱤᱱᱡᱤᱱ + + ᱥᱮᱸᱫᱽᱨᱟᱭ ᱤᱱᱡᱤᱱ ᱥᱟᱡᱟᱣ ᱠᱚ + + ᱱᱤᱭᱟᱹ ᱫᱷᱟᱣ, ᱱᱚᱶᱟ ᱛᱮ ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮᱺ + + ᱠᱞᱤᱯᱷᱵᱚᱰ ᱠᱷᱚᱱ ᱞᱤᱸᱠ ᱯᱮᱨᱮᱡ ᱢᱮ + + + ᱦᱮᱥᱟᱨᱤᱭᱟᱹ + + ᱟᱞᱚ ᱢᱟᱸᱡᱩᱨᱮᱭᱟᱢ + + ᱥᱮᱸᱫᱽᱨᱟ ᱥᱚᱞᱦᱟ ᱱᱤᱡᱮᱨᱟᱜ ᱚᱠᱛᱚ ᱨᱮ ᱵᱟᱛᱟᱣ ᱮᱢᱟᱢ ᱥᱮ? + + ᱟᱢᱟᱜ ᱢᱩᱞ ᱥᱟᱸᱽᱨᱟ ᱤᱱᱡᱤᱱ ᱨᱮᱭᱟᱜ ᱴᱷᱤᱠᱬᱟ ᱵᱟᱨ ᱨᱮ ᱡᱟᱦᱟᱸ ᱜᱮ ᱚᱞᱟᱢ ᱚᱱᱟ ᱠᱚ %s ᱡᱷᱚᱛᱚ ᱦᱟᱹᱴᱤᱧᱟᱭ ᱾ + + ᱰᱷᱮᱨ ᱥᱮᱬᱟᱭ ᱢᱮ + + + + ᱥᱮᱸᱫᱽᱨᱟ + + ᱣᱮᱵ ᱨᱮ ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮ + + ᱨᱚᱲ ᱥᱮᱸᱫᱽᱨᱟ + + + + ᱥᱟᱡᱟᱣ ᱠᱚ + + ᱥᱟᱫᱷᱟᱨᱚᱬ + + ᱥᱟᱫᱷᱟᱨᱚᱱ + + ᱵᱟᱵᱚᱛ + + ᱢᱩᱞ ᱥᱮᱸᱫᱽᱨᱟ ᱤᱱᱡᱤᱱ + + ᱥᱮᱸᱫᱽᱨᱟ + + ᱴᱷᱤᱠᱟᱹᱱᱟ ᱦᱩᱨᱠᱟᱹᱬ + + ᱜᱚᱲᱚ + + Google Play ᱨᱮ ᱫᱚᱨ ᱢᱮ + + ᱯᱩᱥᱴᱟᱹᱣ ᱮᱢ ᱢᱮ + + %1$s ᱨᱮᱭᱟᱜ ᱵᱟᱵᱚᱛ + + ᱟᱢᱟᱜ ᱦᱚᱠ ᱠᱚ + + ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫ ᱠᱚ + + ᱠᱨᱮᱰᱤᱴ ᱠᱟᱰ ᱠᱚ ᱟᱨ ᱴᱷᱤᱠᱚᱬᱟᱹ ᱠᱚ + + ᱢᱩᱞ ᱵᱨᱟᱩᱡᱚᱨ ᱞᱮᱠᱷᱟ ᱥᱟᱡᱟᱣ ᱢᱮ + + ᱞᱟᱦᱟᱱᱛᱤ + + ᱱᱤᱡᱚᱨᱟᱜ + + ᱱᱤᱡᱚᱨᱟᱜ ᱟᱨ ᱡᱟᱹᱯᱛᱤ + + ᱥᱟᱭᱤᱴ ᱨᱮᱭᱟᱜ ᱪᱷᱟᱰ ᱠᱚ + + ᱱᱤᱡᱮᱨᱟᱜ ᱯᱟᱱᱛᱮᱭᱟᱜ + + ᱞᱤᱸᱠ ᱠᱚ ᱱᱤᱡᱮᱨᱟᱜ ᱴᱮᱵ ᱨᱮ ᱡᱷᱤᱡ ᱢᱮ + + ᱱᱤᱡᱮᱨᱟᱜ ᱯᱟᱱᱛᱮᱭᱟᱜ ᱨᱮ ᱥᱠᱨᱤᱱᱥᱚᱴ ᱠᱚ ᱮᱢᱟᱱ ᱵᱟᱛᱟᱣ ᱮᱢ ᱢᱮ + + ᱡᱩᱫᱤ ᱢᱟᱸᱡᱩᱨ ᱮᱱᱟ, ᱯᱨᱟᱭᱣᱮᱴ ᱴᱮᱵ ᱠᱚ ᱫᱚ ᱧᱮᱞᱚᱜ ᱜᱮᱭᱟ ᱡᱩᱫᱤ ᱢᱟᱹᱞᱴᱤᱯᱟᱹᱞ ᱮᱯᱯ ᱠᱚ ᱠᱷᱩᱞᱟᱹ ᱛᱟᱦᱮᱸᱱᱟ + + ᱱᱤᱡᱮᱨᱟᱜ ᱯᱟᱱᱛᱮᱭᱟᱜ ᱠᱷᱟᱴᱚᱢᱟᱪᱷᱟ ᱥᱮᱞᱮᱫ ᱢᱮ + + ᱟᱹᱛᱩᱨ ᱫᱟᱲᱮᱭᱟᱜ + + ᱠᱟᱹᱥᱴᱚᱢ Firefox ᱠᱷᱟᱛᱟ ᱥᱟᱹᱨᱣᱟᱹᱨ + + ᱠᱟᱹᱥᱴᱟᱹᱢ ᱥᱭᱸᱠ ᱥᱟᱹᱨᱣᱟᱹᱨ + + Firefox ᱠᱷᱟᱛᱟ/ ᱥᱭᱸᱠ ᱠᱟᱹᱨᱣᱟᱹᱨ ᱵᱚᱫᱚᱞᱮᱱᱟ ᱾ ᱵᱚᱫᱚᱞ ᱠᱚ ᱫᱚᱦᱚ ᱞᱟᱹᱜᱤᱫ ᱮᱯᱯᱞᱤᱠᱮᱥᱚᱱ ᱵᱚᱸᱫᱚᱜ ᱠᱟᱱᱟ… + + ᱠᱷᱟᱛᱟ + + ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ + + ᱦᱟᱹᱛᱤᱭᱟᱹᱨ + + ᱩᱭᱦᱟᱹᱨ + + ᱚᱲᱟᱜ + + ᱪᱤᱱᱦᱟᱹ ᱠᱚ + + ᱠᱩᱥᱤᱭᱟᱜ ᱛᱮᱭᱟᱨ + + ᱵᱩᱠᱢᱟᱨᱠ, ᱦᱤᱛᱟᱹᱞ ᱟᱨ ᱵᱚᱲᱛᱤ ᱠᱚ ᱛᱷᱟᱨ ᱢᱮ ᱟᱢᱟᱜ Firefox ᱠᱷᱟᱛᱟ ᱥᱟᱣ ᱛᱮ + + Firefox ᱠᱷᱟᱛᱟ + + ᱥᱭᱸᱠ ᱠᱚ ᱪᱟᱹᱞᱩ ᱫᱚᱦᱚ ᱞᱟᱹᱜᱤᱫ ᱫᱩᱦᱲᱟᱹ ᱡᱩᱰᱟᱹᱣ + + ᱯᱟᱹᱨᱥᱤ + + ᱥᱟᱹᱠᱷᱤᱭᱟᱹᱛ ᱠᱩᱥᱤᱭᱟᱜ ᱠᱚ + + ᱰᱟᱴᱟ ᱡᱟᱣᱩᱨᱟᱭ ᱢᱮ + + ᱱᱤᱡᱮᱨᱟᱜ ᱞᱟᱹᱭ ᱥᱚᱫᱚᱨ + + ᱵᱟᱲᱦᱟᱣᱟᱜ ᱦᱟᱹᱛᱤᱭᱟᱹᱨ + + ᱥᱟᱸᱜᱤᱧ ᱫᱳᱥ ᱥᱟᱦᱟᱭ USB ᱥᱟᱣ ᱛᱮ + + ᱥᱮᱸᱫᱽᱨᱟ ᱤᱱᱡᱤᱱ ᱠᱚ ᱩᱫᱩᱜ ᱢᱮ + + ᱥᱮᱸᱫᱽᱨᱟ ᱦᱩᱫᱤᱥ ᱠᱚ ᱩᱫᱩᱜ + + ᱨᱚᱲ ᱥᱮᱸᱫᱽᱨᱟ ᱩᱫᱩᱜ + + ᱱᱤᱡᱮᱨᱟᱜ ᱚᱠᱛᱚ ᱨᱮ ᱩᱫᱩᱜ ᱢᱮ + + ᱠᱞᱤᱯᱵᱳᱰ ᱦᱩᱫᱤᱥ ᱠᱚ ᱩᱫᱩᱜ + + ᱯᱟᱱᱛᱮᱭᱟᱜ ᱦᱤᱛᱟᱹᱞ ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮ + + ᱵᱩᱠᱢᱟᱨᱠ ᱠᱚ ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮ + + ᱥᱭᱸᱠ ᱟᱠᱟᱱ ᱴᱮᱵ ᱠᱚ ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮ + + ᱠᱷᱟᱛᱟ ᱨᱮᱭᱟᱜ ᱥᱟᱡᱟᱣ ᱠᱚ + + URLs ᱟᱡ ᱛᱮ ᱯᱩᱨᱟᱹᱣᱼᱜ ᱢᱟ + + ᱞᱤᱸᱠ ᱠᱚ ᱮᱯ ᱨᱮ ᱡᱷᱤᱜ ᱢᱮ + + + ᱵᱟᱦᱨᱮ ᱨᱮᱭᱟᱜ ᱰᱟᱣᱱᱞᱳᱰ ᱢᱮᱱᱮᱡᱟᱹᱨ + + ᱮᱰ-ᱟᱸᱱᱥ + + ᱤᱛᱞᱟᱭ ᱠᱚ + + + + ᱱᱤᱛᱚᱜ ᱥᱭᱸᱠ ᱢᱮ + + ᱚᱠᱟ ᱥᱭᱸᱠ ᱨᱮᱭᱟᱜ ᱛᱟᱦᱮᱸᱱᱟ ᱪᱚᱭᱚᱱ ᱢᱮ + + ᱦᱤᱛᱟᱹᱞ + + ᱵᱩᱠᱢᱟᱨᱠ + + ᱵᱚᱞᱚᱱ ᱠᱚ + + ᱡᱷᱤᱜ ᱴᱮᱵ ᱠᱚ + + ᱵᱟᱦᱨᱮ ᱚᱰᱚᱠ + + ᱥᱟᱫᱷᱚᱱ ᱧᱩᱛᱩᱢ + + ᱥᱟᱫᱷᱚᱱ ᱧᱩᱛᱩᱢ ᱠᱷᱟᱹᱞᱤ ᱵᱟᱝ ᱦᱩᱭ ᱫᱟᱰᱮᱜ-ᱟ ᱾ + + ᱥᱭᱸᱠᱤᱸᱜ... + + ᱥᱭᱸᱠ ᱰᱤᱜᱟᱹᱣ ᱾ ᱢᱟᱲᱟᱝ ᱨᱟᱹᱥ ᱞᱮᱠᱟᱛᱮ ᱪᱟᱵᱟ:%s + + ᱥᱭᱸᱠ ᱰᱤᱜᱟᱹᱣ ᱾ ᱢᱟᱲᱟᱝ ᱥᱭᱸᱠᱼᱰ:ᱛᱤᱥ ᱦᱚᱸ ᱵᱟᱝᱼᱟ + + ᱢᱟᱲᱟᱝ ᱥᱭᱸᱠ ᱠᱚᱺ %s + + ᱢᱟᱲᱟᱝ ᱥᱭᱸᱠ ᱠᱚᱺ ᱛᱤᱥ ᱦᱚᱸ ᱵᱟᱝᱟ + + %1$s on %2$s %3$s + + + + ᱧᱟᱢᱟᱠᱟᱱ ᱴᱮᱵ ᱠᱚ + + + ᱴᱮᱵ ᱧᱟᱢᱮᱱᱟ + + ᱴᱮᱵ ᱠᱚ ᱧᱟᱢᱮᱱᱟ + + %s ᱠᱷᱚᱱ ᱴᱮᱵ + + + + ᱯᱟᱸᱡᱟ ᱨᱚᱯᱷᱟ + + ᱯᱟᱸᱡᱟ ᱨᱚᱯᱷᱟ + + ᱠᱚᱱᱴᱮᱸᱱᱴ ᱟᱨ ᱥᱠᱨᱭᱤᱯᱴ ᱠᱚ ᱟᱴᱠᱟᱣ ᱢᱮ ᱡᱟ ᱟᱢ ᱯᱟᱸᱡᱟ ᱢᱮᱭᱟᱹ ᱠᱚ + + ᱪᱷᱟᱰᱟ ᱠᱚ + + + ᱯᱟᱸᱡᱟ ᱨᱚᱯᱷᱟ ᱱᱚᱣᱟ ᱠᱚ ᱣᱮᱵᱥᱟᱭᱤᱴ ᱞᱟᱹᱜᱤᱛ ᱛᱮ ᱵᱚᱸᱫᱚ ᱢᱮᱱᱟᱜ-ᱟ + + ᱡᱷᱚᱛᱚ ᱠᱚ ᱥᱟᱭᱤᱴ ᱞᱟᱹᱜᱤᱛ ᱛᱮ ᱚᱱ ᱢᱮ + + ᱰᱷᱮᱨ ᱥᱮᱬᱟᱭ ᱢᱮ + + + ᱡᱮᱜᱮᱛ ᱨᱮ ᱵᱚᱸᱫᱚ ᱦᱩᱭ ᱠᱟᱱᱟ, ᱪᱟᱹᱞᱩ ᱞᱟᱹᱜᱤᱫ ᱛᱮ ᱥᱟᱡᱟᱣ ᱨᱮ ᱪᱟᱹᱞᱩᱭ ᱢᱮ ᱾ + + + ᱴᱮᱞᱭᱢᱮᱴᱨᱭ + + ᱵᱮᱵᱷᱟᱨ ᱟᱨ ᱴᱮᱠᱱᱤᱠᱚᱞ ᱰᱟᱴᱟ ᱠᱚ + + ᱢᱟᱨᱠᱮᱴᱤᱝ ᱰᱟᱴᱟ + + ᱵᱤᱰᱟᱣ + + ᱨᱟᱹᱯᱩᱫ ᱞᱟᱭ-ᱟᱜ + + Mozilla ᱨᱮᱭᱟᱜ ᱡᱟᱭᱜᱟ ᱠᱟᱹᱢᱤ + + + + ᱛᱷᱟᱨ ᱪᱚᱞᱩᱤ ᱢᱮ + + + ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ + + ᱫᱩᱲᱟᱹ ᱡᱚᱲᱟᱣ ᱞᱟᱹᱜᱤᱛ ᱛᱮ ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱢᱮ + + ᱠᱷᱟᱛᱟ ᱚᱪᱚᱜ ᱢᱮ + + + + firefox.com/pair ᱨᱮ ᱩᱫᱩᱠ ᱠᱟᱫᱟ ᱠᱚ]]> + + ᱠᱮᱢᱨᱟ ᱡᱷᱤᱜ ᱢᱮ + + ᱵᱟᱹᱲᱨᱟ + + + + ᱪᱚᱴ + + ᱞᱟᱛᱟᱨ + + + + ᱢᱟᱨᱥᱟᱞ + + ᱧᱩᱛ + + + ᱥᱟᱫᱷᱚᱱ ᱩᱭᱦᱟᱹᱨ ᱯᱟᱸᱡᱟᱭ ᱢᱮ + + + + ᱱᱟᱶᱟ ᱟᱹᱨᱩ ᱞᱟᱹᱜᱤᱛ ᱛᱮ ᱚᱨ ᱢᱮ + + ᱦᱟᱹᱛᱤᱭᱟᱹᱨ ᱩᱠᱩ ᱞᱟᱹᱜᱤᱛ ᱛᱮ ᱛᱚᱛᱨᱚᱭ ᱢᱮ + + + ᱴᱮᱵ ᱠᱚ ᱠᱷᱩᱞᱟᱹ ᱞᱟᱹᱜᱤᱫ ᱴᱩᱞᱵᱟᱨ ᱥᱣᱟᱭᱤᱯ ᱢᱮ + + + + ᱚᱠᱛᱚ ᱠᱚ + + ᱤᱥᱠᱨᱤᱱᱥᱚᱴ ᱠᱚ + + ᱰᱟᱩᱱᱞᱳᱰ + + ᱵᱩᱠᱢᱟᱨᱠ + + ᱰᱮᱥᱠᱴᱚᱯ ᱵᱩᱠᱢᱟᱨᱠ ᱠᱚ + + ᱵᱩᱠᱢᱟᱨᱠ ᱢᱮᱱᱩ + + ᱵᱩᱠᱢᱟᱨᱠ ᱦᱚᱛᱷᱤᱭᱟᱨ + + ᱮᱴᱟᱜᱟ ᱵᱩᱠᱢᱟᱨᱠ ᱠᱚ + + ᱦᱤᱛᱟᱹᱞ + + ᱯᱟᱲᱦᱟᱣ ᱞᱤᱥᱴᱤ + + ᱥᱮᱸᱫᱽᱨᱟ + + ᱥᱟᱡᱟᱣ ᱠᱚ + + ᱦᱤᱛᱟᱹᱞ ᱡᱤᱱᱤᱥ ᱢᱮᱱᱩ + + ᱵᱚᱸᱫᱚᱭ ᱢᱮ + + + ᱥᱟᱱᱟᱢ ᱦᱤᱛᱟᱹᱞ ᱫᱮᱠᱷᱟᱣᱢᱮ + + %d ᱴᱮᱵ ᱠᱚ + + %d ᱴᱮᱵ + + + + ᱴᱮᱵ ᱠᱚ ᱵᱚᱸᱫᱚᱭ ᱢᱮ + + ᱛᱤ ᱛᱮᱭᱟᱜ + + + + ᱡᱷᱤᱜ ᱴᱮᱵ ᱠᱚ + + ᱯᱨᱭᱣᱮᱴ ᱯᱟᱲᱤ + + ᱯᱨᱭᱣᱮᱴ ᱴᱮᱵ ᱠᱚ + + ᱴᱮᱵ ᱥᱮᱞᱮᱫ ᱢᱮ + + ᱱᱤᱡᱮᱨᱟᱜ ᱴᱮᱵ ᱥᱮᱞᱮᱫ ᱢᱮ + + ᱯᱨᱭᱣᱮᱴ + + ᱡᱷᱤᱜ ᱴᱮᱵ ᱠᱚ + + ᱡᱷᱚᱛᱚ ᱴᱮᱵ ᱠᱚ ᱦᱟᱹᱴᱧ ᱢᱮ + + ᱱᱤᱛᱚᱜᱼᱟᱜ ᱵᱚᱸᱫᱚᱼᱟᱜ ᱴᱮᱵ ᱠᱚ + + ᱴᱮᱵ ᱨᱮᱭᱟᱜ ᱥᱟᱡᱟᱣ ᱠᱚ + + ᱡᱷᱚᱛᱚ ᱴᱮᱵ ᱠᱚ ᱵᱚᱸᱫᱚᱭ ᱢᱮ + + ᱱᱟᱶᱟ ᱴᱮᱵ + + ᱚᱲᱟᱜ ᱪᱟᱞᱟᱜ ᱢᱮ + + ᱴᱮᱵ ᱢᱳᱰ ᱛᱚᱞᱟᱜ ᱢᱮ + + ᱴᱮᱵ ᱵᱚᱸᱫᱚᱭ ᱢᱮ + + %s ᱴᱮᱵ ᱵᱚᱸᱫᱚᱭ ᱢᱮ + + ᱴᱮᱵ ᱢᱮᱱᱩ ᱡᱷᱤᱜ ᱢᱮ + + ᱡᱷᱚᱛᱚ ᱴᱮᱵ ᱠᱚ ᱵᱚᱸᱫᱚᱭ ᱢᱮ + + ᱴᱮᱵ ᱠᱚ ᱦᱟᱹᱴᱤᱧ ᱢᱮ + + ᱴᱮᱵ ᱢᱮᱱᱭᱩ + + ᱴᱮᱵ ᱦᱟᱹᱴᱤᱸᱧ ᱢᱮ + + ᱢᱮᱴᱟᱣ ᱢᱮ + + ᱥᱟᱸᱪᱟᱣ ᱢᱮ + + ᱦᱟᱹᱴᱤᱝ ᱢᱮ + + Current session image + + ᱡᱷᱤᱜ ᱴᱮᱵ ᱠᱚ + + ᱚᱪᱚᱜ ᱢᱮ + + ᱦᱤᱛᱟᱹᱞ ᱠᱷᱚᱱ ᱢᱮᱴᱟᱣ ᱢᱮ + + %1$s (ᱯᱨᱭᱣᱮᱴ ᱢᱳᱰ) + + ᱥᱟᱸᱪᱟᱣ + + + + ᱦᱤᱛᱟᱹᱞ ᱢᱮᱴᱟᱣ ᱢᱮ + + ᱪᱮᱫ ᱟᱢ ᱜᱚᱴᱟ ᱛᱮ ᱢᱮᱱᱟᱢᱼᱟ ᱟᱢᱟᱜ ᱦᱤᱛᱟᱹᱞ ᱢᱮᱴᱟᱣ ᱞᱟᱹᱜᱤᱛ ᱛᱮ? + + ᱦᱤᱛᱟᱹᱞ ᱢᱮᱴᱟᱣᱮᱱᱟ + + %1$s ᱢᱮᱴᱟᱣᱮᱱᱟ + + ᱯᱷᱟᱨᱪᱟ + + ᱱᱚᱠᱚᱞ ᱢᱮ + + ᱦᱟᱹᱴᱤᱝ ᱢᱮ + + ᱱᱟᱶᱟ ᱴᱮᱵ ᱨᱮ ᱡᱷᱤᱜ ᱢᱮ + + ᱱᱤᱡᱮᱨᱟᱜ ᱴᱮᱵ ᱨᱮ ᱡᱷᱤᱜ ᱢᱮ + + ᱢᱮᱴᱟᱣ ᱢᱮ + + %1$d ᱵᱟᱪᱷᱟᱣᱮᱱᱟ + + %1$d ᱡᱤᱱᱤᱥ ᱠᱚ ᱢᱮᱴᱟᱣ + + 24 ᱴᱟᱲᱟᱝ ᱢᱟᱲᱟᱝ + + 7 ᱫᱤᱱ ᱢᱟᱲᱟᱝ + + 30 ᱫᱤᱱ ᱢᱟᱲᱟᱝ + + ᱢᱟᱨᱮᱭᱟᱜ + + ᱱᱚᱲᱮ ᱦᱤᱛᱟᱹᱞ ᱵᱚᱱᱩ-ᱟ + + + + ᱱᱚᱱᱰᱮ ᱰᱟᱩᱱᱞᱳᱰ ᱠᱚ ᱵᱚᱱᱩᱜ-ᱟ + + %1$d ᱵᱟᱪᱷᱟᱣᱮᱱᱟ + + + + ᱤᱠᱟ. %1$s ᱚᱱᱟ ᱥᱟᱦᱴᱟ ᱵᱟᱭ ᱞᱟᱫᱮ ᱫᱟᱲᱮᱼᱜ ᱠᱟᱱᱟ ᱾ + + ᱨᱟᱹᱯᱩᱫ ᱨᱤᱯᱚᱴ Mozilla ᱴᱷᱮᱱ ᱠᱩᱞ ᱢᱮ + + ᱴᱮᱵ ᱵᱚᱸᱫᱚᱭ ᱢᱮ + + + ᱴᱮᱵ ᱫᱩᱦᱲᱟᱹ ᱡᱚᱜᱟᱣ ᱢᱮ + + + ᱚᱠᱛᱚ ᱨᱮᱭᱟᱜ ᱚᱯᱥᱚᱱ + + + ᱚᱠᱛᱚ ᱦᱟᱹᱴᱤᱧ ᱢᱮ + + + + ᱵᱩᱠᱢᱟᱨᱠ ᱢᱮᱱᱩ + + ᱵᱩᱠᱢᱟᱨᱠ ᱥᱟᱯᱲᱣ ᱢᱮ + + ᱯᱚᱴᱚᱢ ᱵᱟᱪᱷᱟᱣ ᱢᱮ + + ᱪᱮᱫ ᱟᱢ ᱜᱚᱴᱟ ᱛᱮ ᱢᱮᱱᱟᱢᱼᱟ ᱱᱚᱶᱟ ᱯᱚᱴᱚᱢ ᱢᱮᱴᱟᱣ ᱞᱟ.ᱜᱤᱛ ᱛᱮ? + + %s ᱵᱟᱪᱷᱟᱣᱠᱟᱱ ᱡᱤᱱᱤᱥ ᱠᱚ ᱢᱮᱴᱟᱣ ᱟᱭ ᱾ + + %1$s ᱢᱮᱴᱟᱣᱮᱱᱟ + + ᱯᱚᱴᱚᱢ ᱥᱮᱞᱮᱫ ᱢᱮ + + ᱵᱩᱠᱢᱟᱨᱠ ᱵᱮᱱᱟᱣᱱᱟ ᱾ + + ᱵᱩᱠᱢᱟᱨᱠ ᱥᱟᱸᱪᱟᱣᱮᱱᱟ! + + ᱥᱟᱯᱲᱣ ᱢᱮ + + ᱥᱟᱯᱲᱟᱣ + + ᱵᱟᱪᱷᱟᱣ ᱢᱮ + + ᱱᱚᱠᱚᱞ ᱢᱮ + + ᱦᱟᱹᱴᱤᱧ ᱢᱮ + + ᱱᱟᱶᱟ ᱴᱮᱵ ᱨᱮ ᱡᱷᱤᱜ ᱢᱮ + + ᱱᱤᱡᱮᱨᱟᱜ ᱴᱮᱵ ᱨᱮ ᱡᱷᱤᱜ ᱢᱮ + + ᱢᱮᱴᱟᱣ ᱢᱮ + + ᱥᱟᱸᱪᱟᱣ ᱢᱮ + + %1$d ᱵᱟᱪᱷᱟᱣᱮᱱᱟ + + ᱵᱩᱠᱢᱟᱨᱠ ᱥᱟᱯᱲᱣ ᱢᱮ + + ᱯᱚᱴᱚᱢ ᱥᱮᱞᱮᱫ ᱢᱮ + + URL + + ᱯᱚᱴᱚᱢ + + ᱧᱩᱛᱩᱢ + + ᱯᱚᱴᱚᱢ ᱥᱮᱞᱮᱫ ᱢᱮ + + ᱯᱚᱴᱚᱢ ᱵᱟᱪᱷᱟᱣ ᱢᱮ + + ᱧᱩᱛᱩᱢ ᱦᱩᱭ ᱫᱚᱨᱠᱟᱨ ᱠᱟᱱᱟ + + ᱵᱟᱝ ᱵᱟᱛᱟᱣ URL + + ᱵᱩᱠᱢᱟᱨᱠ ᱠᱚ ᱱᱚᱲᱮ ᱵᱮᱱᱩ-ᱟ + + %1$s ᱢᱮᱴᱟᱣᱮᱱᱟ + + ᱵᱩᱠᱢᱟᱨᱠ ᱠᱚ ᱢᱮᱴᱟᱣᱮᱱᱟ + + ᱵᱟᱪᱷᱟᱣᱠᱟᱱ ᱯᱚᱴᱚᱢ ᱠᱚ ᱢᱮᱴᱟᱣ ᱦᱩᱭᱩ ᱠᱟᱱᱟ + + ᱚᱱᱰᱩ + + + + ᱪᱷᱟᱹᱰ ᱠᱚ + + ᱥᱟᱡᱟᱣ ᱨᱮ ᱪᱟᱞᱟ ᱢᱮ + + ᱵᱟᱛᱟᱣᱟᱜ + + ᱪᱷᱟᱹᱰ ᱠᱚ ᱯᱷᱟᱨᱪᱟᱭ ᱢᱮ + + ᱪᱷᱟᱹᱰ ᱯᱷᱟᱨᱪᱟᱭ ᱢᱮ + + ᱡᱚᱛᱚ ᱥᱟᱭᱤᱴ ᱨᱮ ᱪᱷᱟᱹᱰ ᱯᱷᱟᱨᱪᱟᱭ ᱢᱮ + + ᱟᱪᱛᱮ ᱮᱱᱮᱡ + + ᱠᱮᱢᱨᱟ + + ᱢᱟᱭᱠᱨᱚᱯᱷᱳᱱ + + ᱡᱟᱭᱜᱟ + + ᱤᱛᱞᱟᱭ + + ᱵᱟᱛᱟᱣ ᱮᱢ ᱞᱟᱹᱜᱤᱛ ᱛᱮ ᱠᱩᱞᱤ + + ᱟᱠᱚᱴ ᱠᱟᱱᱟ + + ᱵᱟᱛᱟᱣ ᱮᱢᱟᱠᱟᱱᱟ + + Android ᱟᱠᱚᱴ ᱠᱟᱱᱟ + + ᱪᱷᱟᱰᱟ ᱠᱚ + + ᱪᱟᱹᱞᱩ + + ᱵᱚᱸᱫᱚ + + ᱟᱰᱤᱭᱳ ᱟᱨ ᱣᱤᱰᱤᱭᱳ ᱵᱟᱛᱟᱣ ᱮᱢ ᱢᱮ + + ᱠᱷᱚᱞᱤ ᱥᱮᱞᱩᱞᱟᱹᱨ ᱰᱟᱴᱟ ᱨᱮ ᱟᱰᱤᱭᱳ ᱟᱨ ᱣᱤᱰᱤᱭᱳ ᱟᱴᱠᱟᱣ ᱢᱮ + + ᱟᱰᱤᱭᱳ ᱟᱨ ᱣᱤᱰᱤᱭᱳ Wi-Fi ᱨᱮ ᱮᱱᱮᱡᱚᱣᱟ + + ᱠᱷᱚᱞᱤ ᱟᱰᱤᱭᱳ ᱜᱤ ᱟᱴᱠᱟᱣ ᱢᱮ + + ᱟᱰᱤᱭᱳ ᱟᱨ ᱣᱤᱰᱤᱭᱳ ᱟᱴᱠᱟᱣ ᱢᱮ + + ᱪᱚᱞᱩ + + + ᱵᱚᱸᱫᱚ + + + ᱴᱮᱵ ᱠᱚ ᱵᱟᱪᱷᱟᱣ ᱢᱮ + + ᱡᱚᱛᱚ ᱠᱚ ᱵᱟᱪᱷᱟᱣ ᱢᱮ + + ᱡᱚᱛᱚ ᱠᱚ ᱵᱟᱝ ᱵᱟᱪᱷᱟᱣ ᱢᱮ + + ᱥᱟᱸᱪᱟᱣ ᱞᱟᱹᱜᱤᱛ ᱛᱮ ᱴᱮᱵ ᱠᱚ ᱵᱟᱪᱷᱟᱣ ᱢᱮ + + %d ᱴᱮᱵ ᱠᱚ ᱵᱟᱪᱷᱟᱣ ᱟᱠᱟᱱᱟ + + %d ᱴᱮᱵ ᱵᱟᱪᱷᱟᱣ ᱟᱠᱟᱱᱟ + + ᱴᱮᱵ ᱠᱚ ᱥᱟᱸᱪᱟᱣᱮᱱᱟ! + + ᱴᱮᱵ ᱥᱟᱸᱪᱟᱣᱮᱱᱟ! + + ᱵᱚᱸᱫᱚᱭ ᱢᱮ + + ᱥᱟᱸᱪᱟᱣ ᱢᱮ + + ᱵᱷᱤᱭᱩ + + + + ᱠᱩᱞᱢᱮ ᱟᱨ ᱦᱟᱹᱴᱤᱧ ᱢᱮ + + ᱦᱟᱹᱴᱤᱧ ᱢᱮ + + ᱦᱟᱹᱴᱤᱧ ᱢᱮ + + + ᱢᱤᱫ ᱴᱟᱝ ᱞᱤᱸᱠ ᱦᱟᱹᱴᱤᱧ ᱢᱮ + + ᱥᱟᱫᱷᱚᱱ ᱨᱮ ᱠᱩᱞ ᱢᱮ + + ᱟᱸᱯᱷᱞᱟᱭᱤᱱ + + ᱚᱞᱜᱟ ᱥᱟᱫᱷᱚᱱ ᱡᱩᱰᱟᱹᱣ ᱢᱮ + + ᱥᱟᱫᱷᱚᱱ ᱨᱮ ᱠᱩᱞ ᱢᱮ + + + ᱥᱟᱫᱷᱚᱱ ᱠᱚ ᱡᱚᱲᱟᱣ ᱵᱚᱱᱩᱜ-ᱟ + + ᱚᱞᱜᱟ ᱥᱟᱫᱷᱚᱱ ᱡᱩᱰᱟᱹᱣ ᱢᱮ… + + + + ᱯᱨᱭᱣᱮᱴ ᱵᱨᱟᱣᱡᱤᱝ ᱚᱠᱛᱚ + + ᱯᱨᱭᱣᱮᱴ ᱴᱮᱵ ᱠᱚ ᱢᱮᱴᱟᱣ ᱢᱮ + + ᱯᱨᱭᱣᱮᱴ ᱴᱮᱵ ᱠᱚ ᱵᱚᱸᱫᱚᱭ ᱢᱮ + + ᱡᱷᱤᱡ ᱢᱮ + + ᱢᱮᱴᱟᱣ ᱢᱮ ᱟᱨ ᱡᱷᱤᱡ ᱢᱮ + + ᱦᱚᱛᱮ ᱛᱮ ᱫᱟᱲᱮ ᱮᱢ + + ᱴᱮᱵ ᱢᱮᱴᱟᱣᱮᱱᱟ + + ᱴᱮᱵ ᱠᱚ ᱢᱮᱴᱟᱣᱮᱱᱟ + + ᱴᱮᱵ ᱵᱚᱸᱫᱚᱭᱮᱱᱟ + + ᱴᱮᱵ ᱠᱚ ᱵᱚᱸᱫᱚᱭᱮᱱᱟ + + ᱱᱤᱡᱮᱨᱟᱜ ᱴᱮᱵ ᱵᱚᱸᱫᱚᱭᱮᱱᱟ + + ᱱᱤᱡᱮᱨᱟᱜ ᱴᱮᱵ ᱠᱚ ᱵᱚᱸᱫᱚᱭᱮᱱᱟ + + ᱱᱤᱡᱮᱨᱟᱜ ᱴᱮᱵ ᱠᱚ ᱢᱮᱴᱟᱣᱮᱱᱟ + + ᱚᱱᱰᱩ + + ᱥᱟᱭᱤᱴ ᱚᱪᱚᱜ ᱦᱩᱭ ᱮᱱᱟ + + ᱚᱱᱰᱩ + + ᱜᱚᱴᱟ + + %1$s ᱵᱟᱛᱟᱣ ᱮᱢᱟᱭ ᱢᱮ %2$s ᱡᱷᱤᱡ ᱞᱟᱹᱜᱤᱛ ᱛᱮ + + ᱢᱟᱹᱱᱡᱩᱨ + + ᱵᱟᱹᱰ + + %1$s ᱢᱮᱴᱟᱣ ᱞᱟᱹᱜᱤᱛ ᱛᱮ ᱪᱮᱫ ᱟᱢ ᱜᱚᱴᱟ ᱛᱮ ᱢᱮᱱᱟᱢ-ᱟ? + + %1$s ᱢᱮᱴᱟᱣᱟ ᱥᱮ? + + ᱢᱮᱴᱟᱣ ᱢᱮ + + ᱵᱟᱹᱲᱨᱟ + + + ᱯᱩᱨᱟᱹ ᱠᱨᱤᱱ ᱢᱳᱰ ᱵᱚᱞᱚᱱ ᱠᱟᱱᱟᱢ + + URL ᱱᱚᱠᱚᱞ ᱮᱱᱟ + + ᱣᱮᱵᱥᱟᱭᱤᱴ ᱨᱮ ᱚᱱᱚᱞ ᱠᱚ ᱢᱟᱨᱟᱝ ᱵᱟᱝᱠᱷᱟᱱ ᱦᱩᱰᱤᱧ ᱠᱚᱨᱟᱣ ᱢᱮ + + ᱪᱤᱠᱤ ᱨᱮᱭᱟᱜ ᱢᱟᱯ + + + ᱟᱪᱛᱮ ᱪᱤᱠᱤ ᱥᱟᱡᱟᱣ + + + ᱯᱟᱱᱛᱮᱭᱟᱜ ᱰᱟᱴᱟ ᱢᱮᱴᱟᱣ ᱢᱮ + + ᱡᱷᱤᱜ ᱴᱮᱵ ᱠᱚ + + %d ᱴᱮᱵ ᱠᱚ + + ᱯᱟᱱᱛᱮᱭᱟᱜ ᱦᱤᱛᱟᱹᱞ ᱟᱨ ᱥᱟᱭᱤᱴ ᱰᱟᱴᱟ + + %d ᱴᱷᱤᱠᱬᱟᱹ ᱠᱚ + + ᱦᱤᱛᱟᱹᱞ + + %d ᱥᱟᱦᱴᱟ ᱠᱚ + + ᱠᱩᱠᱤᱡ ᱠᱚ + + ᱟᱢ ᱫᱚ ᱰᱷᱮᱨ ᱜᱟᱱ ᱥᱟᱭᱤᱴ ᱠᱷᱚᱱ ᱵᱟᱦᱨᱮ ᱩᱲᱩᱠ ᱢᱤᱭᱟ ᱠᱚ + + ᱪᱤᱛᱟᱹᱨ ᱟᱨ ᱨᱮᱫ ᱨᱮᱭᱟᱜ ᱥᱟᱯ + + ᱡᱚᱜᱟᱣ ᱡᱟᱭᱜᱟ ᱠᱷᱚᱞᱤ ᱛᱮᱦᱮᱱ ᱟᱭ + + ᱥᱟᱭᱤᱴ ᱨᱮᱭᱟᱜ ᱪᱷᱟᱰ ᱠᱚ + + ᱯᱟᱱᱛᱮᱭᱟᱜ ᱰᱟᱴᱟ ᱢᱮᱴᱟᱣ ᱢᱮ + + ᱯᱟᱱᱛᱮᱭᱟᱜ ᱰᱟᱴᱟ ᱢᱮᱴᱟᱣ ᱢᱮ ᱟᱲᱟᱹᱜ ᱜᱷᱚᱲᱤ + + ᱯᱟᱱᱛᱮᱭᱟᱜ ᱰᱟᱴᱟ ᱟᱪᱛᱮ ᱢᱮᱴᱟᱣ ᱟᱭ ᱡᱚᱠᱷᱚᱱ ᱟᱢ \"ᱟᱲᱟᱹᱜ\" ᱵᱟᱪᱷᱟᱣ ᱟᱢ ᱢᱩᱞ ᱢᱮᱱᱩ ᱠᱷᱚᱱ + + ᱯᱟᱱᱛᱮᱭᱟᱜ ᱰᱟᱴᱟ ᱟᱪᱛᱮ ᱢᱮᱴᱟᱣ ᱟᱭ ᱡᱚᱠᱷᱚᱱ ᱟᱢ \"ᱟᱲᱟᱹᱜ\" ᱵᱟᱪᱷᱟᱣ ᱟᱢ ᱢᱩᱞ ᱢᱮᱱᱩ ᱠᱷᱚᱱ + + ᱟᱲᱟᱹᱜ ᱢᱮ + + + ᱱᱚᱣᱟ ᱫᱚ ᱟᱢᱟᱜ ᱥᱟᱱᱟᱢ ᱵᱨᱟᱩᱡᱤᱝ ᱰᱟᱴᱟ ᱢᱮᱴᱟᱣ ᱛᱟᱢᱟᱭ ᱾ + + %s ᱵᱟᱪᱷᱟᱣᱟᱜ ᱵᱨᱟᱩᱡᱤᱝ ᱰᱟᱴᱟ ᱢᱮᱴᱟᱣ ᱟᱭ ᱾ + + ᱵᱟᱹᱲᱨᱟ + + ᱢᱮᱴᱟᱣ ᱢᱮ + + ᱯᱟᱱᱛᱮᱭᱟᱜ ᱰᱟᱴᱟ ᱢᱮᱴᱟᱣᱮᱱᱟ + + ᱯᱟᱱᱛᱮᱭᱟᱜ ᱰᱟᱴᱟ ᱢᱮᱴᱟᱣ ᱦᱩᱭᱩ ᱠᱟᱱᱟ… + + + + Firefox Preview ᱱᱤᱛᱚᱜ ᱫᱚ Firefox Nightly ᱦᱩᱭ ᱮᱱᱟ + + + Firefox ᱧᱟᱢ ᱢᱮ Android Beta ᱞᱟᱹᱜᱤᱫ ᱛᱮ + + + Firefox Nightly ᱩᱪᱟᱹᱰ ᱟᱠᱟᱱᱟ + + ᱱᱟᱶᱟ Nightly ᱛᱮ ᱩᱪᱟᱹᱰᱼᱚᱜ ᱢᱮ + + + Firefox Nightly ᱩᱪᱟᱹᱰ ᱟᱠᱟᱱᱟ + + ᱱᱟᱶᱟ Nightly ᱧᱟᱢ ᱢᱮ + + + + %s ᱨᱮ ᱥᱟᱹᱜᱩᱱ ᱫᱟᱨᱟᱢ! + + ᱞᱟᱦᱟ ᱠᱷᱚᱱ ᱠᱷᱟᱛᱟ ᱢᱮᱱᱟᱜ ᱛᱟᱢᱟ? + + ᱧᱮᱞ ᱢᱮ ᱪᱦᱤ ᱱᱟᱶᱟ ᱢᱮᱱᱟ-ᱟ + + ᱱᱚᱱᱰᱮ ᱞᱟᱹᱱᱟᱹᱭ ᱠᱚ ᱧᱟᱢ ᱢᱮ + + ᱰᱷᱮᱨ ᱥᱮᱬᱟᱭ ᱢᱮ + + Firefox ᱨᱮ ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱢᱮ + + ᱥᱭᱸᱠ ᱪᱟᱹᱞᱩ ᱢᱮᱱᱟᱜ-ᱟ + + ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱰᱤᱜᱟᱹᱣᱮᱱᱟ + + ᱟᱪ ᱛᱮᱭᱟᱜ ᱯᱨᱭᱣᱮᱥᱭ + + ᱵᱮᱥᱟᱜ (ᱢᱩᱞ) + + ᱱᱤᱦᱟᱹᱛ (ᱵᱟᱛᱟᱣᱮᱢᱠᱟᱱᱟ) + + ᱱᱤᱦᱟᱹᱛ + + ᱥᱟᱡᱟᱣ ᱠᱚ ᱡᱷᱤᱡ ᱢᱮ + + ᱟᱢᱟᱜ ᱱᱤᱡᱮᱨᱟᱜ + + + ᱟᱞᱮᱭᱟᱜ privacy notice ᱯᱟᱲᱦᱟᱣ ᱯᱮ + + ᱵᱚᱸᱫᱚᱭ + + + ᱯᱟᱱᱛᱮᱭᱟᱠ ᱮᱦᱚᱵ ᱢᱮ + + + + ᱛᱷᱮᱢ ᱪᱚᱭᱚᱱ ᱛᱟᱢ + + ᱟᱪᱛᱮ + + ᱧᱩᱛ ᱩᱭᱦᱟᱹᱨ + + ᱢᱟᱨᱥᱟᱞ ᱩᱭᱦᱟᱹᱨ + + + ᱴᱮᱵ ᱠᱚ ᱠᱩᱞ ᱦᱩᱭᱮᱱᱟ! + + ᱴᱮᱵ ᱠᱩᱞ ᱦᱩᱭᱮᱱᱟ! + + ᱵᱟᱝ ᱠᱩᱞ ᱫᱟᱲᱮᱞᱟᱱᱟ + + ᱨᱤᱴᱨᱭ + + ᱠᱳᱰ ᱥᱠᱮᱱ ᱢᱮ + + https://firefox.com/pair ᱨᱮ ᱪᱟᱞᱟ ᱢᱮ]]> + + ᱥᱠᱮᱱ ᱞᱚᱜᱤᱛ ᱛᱮ ᱛᱮᱭᱟᱨ ᱢᱮᱱᱟᱢ-ᱟ + + ᱟᱢᱟᱜ ᱠᱮᱢᱨᱟ ᱛᱮ ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱢᱮ + + ᱵᱟᱹᱫᱟᱹᱞ ᱛᱮ ᱮᱢᱮᱞ ᱵᱮᱵᱷᱟᱨ ᱢᱮ + + ᱡᱚᱱᱚᱲᱟᱣ ᱚᱪᱚᱜ + + ᱵᱟᱹᱲᱨᱟ + + ᱢᱩᱞ ᱯᱚᱴᱚᱢ ᱵᱟᱞᱮ ᱥᱟᱯᱲᱟᱣ ᱫᱟᱰᱮᱟ + + + + ᱨᱚᱯᱷᱟ ᱥᱟᱡᱟᱣ ᱠᱚ + + ᱵᱟᱲᱦᱟᱣᱟᱠᱟᱱ ᱯᱟᱸᱡᱟ ᱨᱚᱯᱷᱟ + + ᱵᱤᱱᱟᱹ ᱯᱟᱸᱡᱟ ᱠᱟᱛᱮᱫ ᱵᱨᱟᱩᱡ ᱢᱮ + + ᱰᱷᱮᱨ ᱥᱮᱬᱟᱭ ᱢᱮ + + ᱱᱟᱯ (ᱢᱩᱞ ᱯᱷᱮᱲᱟᱛ) + + ᱱᱤᱦᱟᱹᱛ + + ᱠᱩᱥᱤᱭᱟᱜ + + + ᱠᱩᱠᱤᱡ ᱠᱚ + + ᱠᱨᱚᱥᱼᱥᱟᱭᱤᱴ ᱟᱨ ᱥᱳᱥᱤᱭᱟᱞ ᱢᱤᱰᱤᱭᱟ ᱯᱟᱧᱡᱟ ᱫᱟᱱᱟᱲ ᱠᱚ + + ᱯᱟᱧᱡᱟ ᱫᱟᱱᱟᱲ ᱡᱤᱱᱤᱥ + + ᱡᱷᱚᱛᱚ ᱛᱮᱵ ᱠᱚᱨᱮ ᱠᱚ + + ᱠᱷᱟᱹᱞᱤ ᱱᱤᱡᱮᱨᱟᱜ ᱴᱮᱵ ᱠᱚᱨᱮ ᱜᱮ + + ᱠᱷᱟᱫᱞᱤ ᱠᱚᱥᱴᱚᱢ ᱴᱮᱵ ᱠᱚᱨᱮᱜᱮ + + ᱠᱨᱭᱯᱴᱚᱢᱟᱭᱱᱟᱹᱨ ᱠᱚ + + ᱠᱟᱹᱴᱩᱵᱪᱷᱟᱯᱟ ᱟᱜ + ᱟᱠᱚᱴ ᱠᱟᱱᱟ + + ᱢᱟᱹᱱᱡᱩᱨ + + ᱥᱟᱸᱣᱛᱟ ᱢᱤᱰᱤᱭᱟ ᱯᱟᱧᱡᱟ ᱫᱟᱱᱟᱲ ᱠᱚ + + ᱠᱨᱚᱥᱼᱥᱟᱭᱤᱴ ᱜᱷᱮᱨ ᱮᱥᱮᱫ ᱠᱩᱠᱤ ᱠᱚ + + ᱠᱨᱭᱯᱴᱚᱢᱟᱭᱱᱟᱹᱨ ᱠᱚ + + ᱠᱟᱹᱴᱩᱵᱪᱷᱟᱯᱟ ᱟᱜ ᱠᱚ + + ᱯᱟᱧᱡᱟ ᱫᱟᱱᱟᱲ ᱡᱤᱱᱤᱥ + + ᱱᱚᱣᱟ ᱥᱟᱭᱤᱴ ᱞᱟᱹᱜᱤᱛ ᱯᱨᱚᱴᱮᱠᱥᱚᱱ ᱠᱚ ᱪᱚᱞᱩ ᱢᱮᱱᱟᱜ-ᱟ + + ᱱᱚᱣᱟ ᱥᱟᱭᱤᱴ ᱞᱟᱹᱜᱤᱛ ᱯᱨᱚᱴᱮᱠᱥᱚᱱ ᱠᱚ ᱵᱚᱸᱫᱚ ᱢᱮᱱᱟᱜ-ᱟ + + ᱱᱚᱶᱟ ᱠᱚ ᱥᱟᱭᱤᱴ ᱞᱟᱹᱜᱤᱛ ᱵᱟᱲᱦᱟᱣᱟᱠᱟᱱ ᱯᱟᱸᱡᱟ ᱨᱚᱯᱷᱟ ᱵᱚᱸᱫᱚ ᱢᱮᱱᱟ-ᱟ + + ᱟᱢᱟᱜ ᱦᱚᱠ ᱠᱚ + + %s ᱨᱮ ᱪᱦᱤ ᱱᱟᱶᱟ ᱢᱮᱱᱟ-ᱟ + + %s | OSS ᱯᱩᱛᱷᱤ ᱚᱲᱟᱜ + + + ᱜᱚᱲᱚ + + ᱨᱟᱹᱯᱩᱫ ᱠᱚ + + ᱱᱤᱡᱮᱨᱟᱜ ᱞᱟᱹᱭ ᱥᱚᱫᱚᱨ + + ᱟᱢᱟᱜ ᱦᱚᱠ ᱠᱚ ᱵᱟᱲᱟᱭ ᱛᱟᱢ + + ᱞᱟᱤᱥᱮᱸᱥ ᱨᱮᱭᱟᱜ ᱠᱷᱚᱵᱚᱨ + + ᱯᱩᱛᱷᱤ ᱚᱲᱟᱜ ᱡᱟ ᱟᱞᱮ ᱵᱮᱵᱷᱟᱨ ᱟᱞᱮ + + + 1 ᱴᱮᱵ + + %d ᱴᱮᱵ ᱠᱚ + + + + ᱱᱚᱠᱚᱞ ᱢᱮ + + + ᱞᱟᱴᱷᱟᱭ ᱢᱮ ᱟᱨ ᱪᱟᱞᱟᱜ ᱢᱮ + + ᱞᱟᱴᱷᱟ + + URL ᱠᱞᱤᱯᱵᱳᱰ ᱨᱮ ᱱᱚᱠᱚᱞᱮᱱᱟ + + + ᱚᱲᱟᱜ ᱤᱥᱠᱨᱤᱱ ᱨᱮ ᱥᱮᱞᱮᱫ ᱢᱮ + + ᱵᱟᱹᱲᱨᱟ + + ᱥᱮᱞᱮᱫ ᱢᱮ + + ᱣᱮᱵᱥᱟᱭᱤᱴ ᱛᱮ ᱞᱟᱦᱟᱜ ᱢᱮ + + ᱠᱷᱟᱴᱚᱢᱟᱪᱷᱟ ᱧᱩᱛᱩᱢ + + + ᱵᱚᱞᱚᱱ ᱠᱚ ᱟᱨ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫ ᱠᱚ + + ᱵᱚᱞᱚᱱ ᱠᱚ ᱟᱨ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫ ᱠᱚ ᱥᱟᱸᱪᱟᱣ + + ᱥᱟᱸᱪᱟᱣ ᱞᱟᱹᱜᱤᱛ ᱛᱮ ᱠᱩᱞᱤ + + ᱥᱟᱸᱪᱟᱣ ᱛᱤᱥ ᱦᱚᱸ ᱵᱟᱝ + + ᱟᱪᱛᱮ ᱯᱮᱨᱮᱡ + + ᱵᱚᱞᱚᱱ ᱠᱚ ᱛᱷᱟᱨ ᱢᱮ + + ᱪᱚᱞᱩ + + ᱵᱚᱸᱫᱚ + + ᱨᱤᱠᱚᱱᱮᱠᱼᱴ + + ᱛᱷᱟᱨ ᱞᱟᱹᱜᱤᱛ ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱢᱮ + + ᱥᱟᱸᱪᱟᱣᱠᱟᱱ ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱠᱚ + + ᱪᱷᱟᱰᱟ ᱠᱚ + + ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱟᱨ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫ ᱠᱚ ᱡᱟ ᱵᱟᱝ ᱥᱟᱸᱪᱟᱣ ᱠᱟᱱᱟ ᱚᱱᱟᱠᱩ ᱱᱚᱰᱮ ᱩᱫᱩᱜᱚᱣᱟ ᱾ + + ᱡᱚᱛᱚ ᱪᱷᱟᱰᱟ ᱠᱚ ᱢᱮᱴᱟᱣ ᱢᱮ + + ᱞᱚᱜᱤᱱ ᱠᱚ ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮ + + ᱟᱠᱷᱚᱨ ᱛᱷᱟᱨ ᱞᱮᱠᱟ ᱛᱮ + + ᱥᱟᱭᱤᱴ + + ᱵᱮᱵᱷᱟᱨᱤᱡᱟᱠ ᱭᱩᱛᱩᱢ + + ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫ + + PIN ᱫᱩᱦᱲᱟᱹ ᱟᱫᱮᱨ ᱢᱮ + + ᱥᱟᱸᱪᱟᱣᱠᱟᱱ ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱠᱚ ᱧᱮᱞ ᱞᱟᱹᱜᱤᱛ ᱛᱮ ᱚᱱᱞᱚᱠ ᱢᱮ + + ᱰᱷᱮᱨ ᱥᱮᱬᱟᱭ ᱢᱮ + + ᱥᱟᱸᱪᱟᱣ + + ᱟᱞᱚᱢ ᱥᱟᱸᱪᱟᱣ-ᱟ + + ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫ ᱨᱮᱴᱚᱵ-ᱵᱚᱰ ᱨᱮ ᱱᱚᱠᱚᱞᱮᱱᱟ + + ᱵᱮᱵᱷᱟᱨᱭᱤᱡ ᱧᱩᱛᱩᱢ ᱨᱮᱴᱚᱵᱼᱵᱚᱰ ᱨᱮ ᱱᱚᱠᱚᱞᱮᱱᱟ + + ᱥᱟᱭᱤᱴ ᱨᱮᱴᱚᱵᱼᱵᱚᱰ ᱨᱮ ᱱᱚᱠᱚᱞᱮᱱᱟ + + ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫ ᱱᱚᱠᱚᱞ ᱢᱮ + + ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫ ᱯᱷᱟᱨᱪᱟᱭ ᱢᱮ + + ᱵᱮᱵᱷᱟᱨᱤᱡ ᱧᱩᱛᱩᱢ ᱱᱚᱠᱚᱞ ᱢᱮ + + ᱵᱮᱵᱷᱟᱨᱤᱡ ᱧᱩᱛᱩᱢ ᱯᱷᱟᱨᱪᱟᱭ ᱢᱮ + + ᱥᱟᱭᱤᱴ ᱱᱚᱠᱚᱞ ᱢᱮ + + ᱥᱟᱭᱤᱴ ᱵᱨᱟᱩᱡᱚᱨ ᱨᱮ ᱡᱷᱤᱡ ᱢᱮ + + ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫ ᱫᱮᱠᱷᱟᱣ + + ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫ ᱩᱠᱩ + + ᱥᱟᱸᱪᱟᱣᱠᱟᱱ ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱠᱚ ᱧᱮᱞ ᱞᱟᱹᱜᱤᱛ ᱛᱮ ᱚᱱᱞᱚᱠ ᱢᱮ + + ᱟᱢᱟᱜ ᱞᱚᱜᱤᱱ ᱠᱚ ᱟᱨ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫ ᱠᱚ ᱡᱟᱯᱛᱤ ᱢᱮ + + ᱛᱟᱭᱚᱢ ᱛᱮ + + ᱱᱤᱛᱚᱜ ᱥᱟᱡᱟᱣ ᱢᱮ + + ᱟᱢᱟᱜ ᱥᱟᱫᱷᱚᱱ ᱚᱱᱞᱚᱠ ᱢᱮ + + ᱡᱚᱛᱚ ᱣᱮᱵᱥᱟᱭᱤᱴ ᱨᱮ ᱦᱩᱰᱩᱧ ᱢᱟᱨᱟᱝ ᱢᱮ + + ᱧᱩᱛᱩᱢ (A-Z) + + + ᱞᱚᱜᱤᱱ ᱢᱮᱱᱭᱩ ᱥᱟᱞᱟᱭ ᱢᱮ + + + ᱥᱮᱸᱫᱽᱨᱟ ᱤᱱᱡᱤᱱ ᱥᱮᱞᱮᱫ ᱢᱮ + + ᱥᱮᱸᱫᱽᱨᱟ ᱤᱧᱡᱤᱱ ᱥᱟᱯᱲᱟᱣ ᱢᱮ + + ᱥᱮᱞᱮᱫ ᱢᱮ + + ᱥᱟᱸᱪᱟᱣ + + ᱥᱟᱯᱲᱟᱣ + + ᱢᱮᱴᱟᱣ ᱢᱮ + + + ᱮᱴᱟᱜ-ᱟᱜ + + ᱭᱩᱛᱩᱢ + + + ᱰᱷᱮᱨ ᱥᱮᱬᱟᱭ ᱢᱮ + + ᱠᱩᱥᱤᱭᱟᱜ ᱥᱮᱸᱫᱽᱨᱟ ᱤᱧᱡᱤᱱ ᱨᱮᱭᱟᱜ ᱵᱤᱵᱨᱚᱬ + + ᱰᱷᱮᱨ ᱥᱮᱬᱟᱭ ᱨᱮᱭᱟᱜ ᱞᱤᱸᱠ + + + ᱥᱮᱸᱫᱽᱨᱟ ᱤᱧᱡᱤᱱ ᱨᱮᱭᱟᱜ ᱧᱩᱛᱩᱢ ᱟᱫᱮᱨ ᱢᱮ + + %s ᱢᱮᱴᱟᱣᱮᱱᱟ + + + %s ᱦᱟᱹᱞᱤᱭᱟᱼᱜ ᱠᱟᱱᱟ ... + + %s ᱮᱛᱦᱚᱵ ᱢᱮ + + ᱩᱪᱟᱹᱲ ᱪᱟᱵᱟᱭᱮᱱᱟ + + ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫ ᱠᱚ + + + ᱵᱟᱛᱟᱣ ᱮᱢ ᱞᱟᱹᱜᱤᱛ: + + ᱑. Android ᱥᱟᱡᱟᱣ ᱨᱮ ᱪᱟᱞᱟ ᱢᱮ + + ᱪᱷᱟᱹᱲ ᱚᱛᱟᱭ ᱢᱮ]]> + + %1$s ᱪᱚᱞᱩᱤ ᱢᱮ]]> + + + ᱡᱟᱯᱛᱤ ᱡᱚᱱᱚᱲᱟᱣ + + ᱥᱟᱭᱤᱴ ᱪᱷᱟᱰᱟ ᱠᱚ ᱵᱚᱱᱩ-ᱟ + + ᱢᱮᱴᱟᱣ ᱢᱮ + + ᱥᱟᱯᱲᱟᱣ + + ᱢᱮᱴᱟᱣ ᱢᱮ + + ᱵᱚᱫᱚᱞ ᱩᱰᱩᱜ ᱜᱤᱰᱤ ᱢᱮ + + ᱥᱟᱯᱲᱟᱣ + + ᱨᱚᱲ ᱥᱮᱸᱫᱽᱨᱟ + + + ᱟᱢᱟᱜ ᱮᱴᱟᱜ ᱥᱟᱫᱷᱚᱱ ᱠᱷᱚᱱ ᱴᱮᱵ ᱞᱤᱥᱴᱤ ᱫᱮᱠᱷᱟᱣ ᱢᱮ ᱾ + + ᱛᱷᱟᱨ ᱞᱟᱹᱜᱤᱛ ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱢᱮ + + ᱵᱟᱝᱟ ᱴᱮᱵ ᱠᱚ ᱠᱷᱩᱞᱟᱹᱭ ᱢᱮ + + + + ᱴᱚᱯ ᱥᱟᱭᱤᱴ ᱞᱤᱢᱤᱴ ᱥᱮᱴᱮᱨᱮᱱᱟ + + ᱱᱟᱶᱟ ᱴᱟᱹᱯ ᱥᱟᱭᱤᱴ ᱥᱮᱞᱮᱫ ᱞᱟᱹᱜᱤᱫ, ᱢᱤᱫᱴᱟᱹᱝ ᱚᱰᱚᱠ ᱢᱮ ᱾ ᱥᱟᱭᱤᱴ ᱴᱤᱯᱟᱹᱣ ᱟᱨ ᱚᱛᱟ ᱛᱷᱤᱨ ᱠᱟᱛᱮ ᱪᱚᱭᱚᱱ ᱢᱮ ᱟᱨ ᱚᱰᱚᱠ ᱢᱮ ᱾ + + ᱴᱷᱤᱠ, ᱵᱟᱰᱟᱭ ᱠᱮᱜᱼᱟᱹᱧ + + ᱡᱟᱹᱥᱛᱤ ᱦᱤᱨᱤ ᱟᱠᱟᱱ ᱥᱟᱭᱤᱴ ᱫᱮᱠᱷᱟᱣᱢᱮ + + + ᱚᱪᱟᱜ + + + %s ᱠᱷᱚᱱ ᱡᱟᱹᱥᱛᱤ ᱡᱤᱱᱤᱥ ᱵᱟᱰᱟᱭ ᱢᱮ ᱾ + + + ᱚᱱᱟ ᱡᱤᱱᱤᱥ ᱠᱚ ᱡᱟᱨᱣᱟᱭ ᱢᱮ ᱡᱟ ᱟᱢ ᱢᱮᱴᱚᱨ ᱢᱤᱭᱟ + + ᱥᱚᱢᱟᱱ ᱥᱮᱸᱫᱽᱨᱟ, ᱥᱟᱭᱤᱴ ᱟᱨ ᱴᱮᱵ ᱠᱚ ᱛᱟᱭᱚᱢ ᱛᱮ ᱞᱚᱜᱚᱱ ᱥᱮᱴᱮᱨ ᱞᱟᱹᱜᱤᱫ ᱫᱳᱞ ᱛᱮᱨᱟᱴ ᱠᱟᱜ ᱢᱮ ᱾ + + ᱟᱢ %s ᱞᱮᱠᱷᱟᱛᱮ ᱚᱞᱜᱟ Firefox browser ᱨᱮ ᱟᱢᱟᱜ ᱥᱟᱫᱷᱚᱱ ᱛᱮ ᱵᱚᱞᱚ ᱟᱠᱟᱱᱟᱢ ᱾ ᱟᱢ ᱪᱮᱫ ᱱᱚᱶᱟ ᱠᱷᱟᱛᱟ ᱛᱮ ᱵᱚᱞᱚ ᱥᱟᱱᱟᱢ ᱠᱟᱱᱟ ᱾ + + ᱟᱢ ᱞᱚᱜᱚᱱ ᱵᱨᱟᱩᱡ ᱟᱨ ᱮᱯᱯ ᱞᱮᱠᱷᱟᱱ ᱚᱱᱩᱵᱷᱟᱹᱵ ᱤᱫᱤ ᱞᱟᱹᱜᱤᱫ ᱣᱮᱵᱥᱟᱭᱤᱴ ᱫᱚ ᱥᱟᱫᱷᱚᱱ ᱨᱮᱭᱟᱜ ᱚᱲᱟᱜ ᱥᱠᱨᱭᱤᱱ ᱨᱮ ᱥᱮᱞᱮᱫ ᱫᱟᱲᱮᱟᱜᱼᱟᱢ ᱾ + diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index 5581b385f..6c9fce6fc 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -429,6 +429,8 @@ Уключыць сінхранізацыю + + Скануйце код спалучэння ў Firefox на камп’ютары Увайсці @@ -1059,6 +1061,10 @@ Пачніце сінхранізаваць закладкі, паролі і шмат іншага праз свой уліковы запіс Firefox. Падрабязней + + Вы ўвайшлі як %s у іншым браўзеры Firefox на гэтай прыладзе. Ці хочаце аўтарызавацца з дапамогай гэтага ўліковага запісу? Так, увайсці @@ -1216,10 +1222,14 @@ Дазволены Трэкеры сацыяльных сетак + + Абмяжоўвае мажлівасць сацыяльных сетак асочваць вашу дзейнасць у сеціве. Міжсайтавыя кукі асочвання Майнеры крыптавалют + + Не дазваляе шкодным скрыптам атрымаць доступ да Вашай прылады для здабычы крыптавалюты. Збіральнікі лічбавых адбіткаў @@ -1247,6 +1257,12 @@ The first parameter is the app name --> %s | Бібліятэкі OSS + + Трэкеры перанакіравання + + + Ачышчае кукі, усталяваныя шляхам перанакіравання на вядомыя асочвальныя вэб-сайты. + Падтрымка diff --git a/app/src/main/res/values-hy-rAM/strings.xml b/app/src/main/res/values-hy-rAM/strings.xml index 855ec9b85..6f306b551 100644 --- a/app/src/main/res/values-hy-rAM/strings.xml +++ b/app/src/main/res/values-hy-rAM/strings.xml @@ -146,6 +146,8 @@ Համաժամեցված ներդիրներ + + Կրկնահամաժամեցում Գտնել էջում @@ -327,6 +329,8 @@ Որոնել դիտարկումների պատմությունում Որոնել էջանիշեր + + Որոնել համաժամեցված ներդիրները Հաշվի կարգավորումներ @@ -1159,6 +1163,8 @@ Մուտք գործեք ձեր տեսախցիկի հետ Փոխարենը օգտ. էլ. փոստ + + Ստեղծեք նորը՝ Firefox-ը տարբեր սարքերի միջև համաժամեցնելու համար:]]> Firefox-ը կկանգնեցնի համաժամացումը ձեր հաշվի հետ, բայց չի ջնջվի այս սարքում ձեր դիտարկման որևէ տվյալ։ @@ -1268,6 +1274,11 @@ The first parameter is the app name --> %s | OSS գրադարաններ + + Վերաուղղորդել հետագծիչները + + Վերաուղղորդմամբ կայված՝ մաքրում է թխուկները հայտնի հետագծիչ կայքերից: + Աջակցում diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index eb2d41d0e..1057ace09 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -1181,6 +1181,8 @@ カメラを使ってログイン 代わりにメールアドレスを使う + + アカウントを作成して Firefox を端末間で同期しましょう。]]> Firefox はアカウントとの同期を停止しますが、この端末上の閲覧データは削除されません。 @@ -1288,6 +1290,11 @@ The first parameter is the app name --> %s | OSS ライブラリー + + リダイレクトトラッカー + + 既知のトラッキングウェブサイトへのリダイレクトにより設定された Cookie を消去します。 + サポート diff --git a/app/src/main/res/values-su/strings.xml b/app/src/main/res/values-su/strings.xml index de0bd3804..169780691 100644 --- a/app/src/main/res/values-su/strings.xml +++ b/app/src/main/res/values-su/strings.xml @@ -266,6 +266,8 @@ Buka tutumbu di tab nyamuni Ngidinan layar dina langlangan nyamuni + + Lamun diidinan, tab pribadi bakal katémbong nalika sababaraha aplikasi muka Tambahan tarabas nyungsi nyamuni @@ -1056,10 +1058,6 @@ Mimitian nyingkronkeun markah, kecap konci, jeung nu lianna maké akun Firefox anjeun. Lenyepan - - Anjeun asup salaku %s dina séjén panyungsi Firefox di ieu telepon. Anjeun rék asup maké ieu akun? Enya, asupkeun @@ -1306,8 +1304,6 @@ Ngaran takulan - - Anjeun bisa kalawan gampang nambahkeun ieu raramatloka kana layar Tepas ponsél pikeun aksés instan sarta maluruh leuwih gancang kawas muka aplikasi. Login jeung kecap sandi @@ -1537,7 +1533,7 @@ Login maké éta sandiasma geus aya - + Sambungkeun séjén paranti. Mangga oténtikasi ulang. @@ -1556,8 +1552,6 @@ Wates loka top geus kahontal - - Pikeun nambah loka top anyar, piceun hiji. Pencét lila lokana sarta pilih piceun. Okéh, Ngarti @@ -1567,7 +1561,7 @@ Piceun - Maksimalkeun %s. @@ -1575,4 +1569,9 @@ Kumpulkeun hal anu penting pikeun anjeun Ngagabungkeun pamaluruhan, loka sareng tab anu sami pikeun aksés gancang engké. + + Anjeun asup salaku %s dina séjén panyungsi Firefox di ieu telepon. Anjeun rék asup maké ieu akun? + + Anjeun bisa kalawan gampang nambahkeun ieu raramatloka kana layar Tepas ponsél pikeun aksés instan sarta maluruh leuwih gancang kawas muka aplikasi. + diff --git a/app/src/main/res/values-tg/strings.xml b/app/src/main/res/values-tg/strings.xml index 77fa83df4..4dc4d5e37 100644 --- a/app/src/main/res/values-tg/strings.xml +++ b/app/src/main/res/values-tg/strings.xml @@ -74,6 +74,8 @@ Нодида гузарондан + + Дастрасии камера лозим аст. Ба «Танзимоти Android» гузаред, ба «Иҷозатҳо» зарба занед, пас ба «Иҷозат додан» зарба занед. Гузариш ба танзимот @@ -190,6 +192,8 @@ Иҷозат додан Иҷозат дода нашавад + + Ба пешниҳодҳои ҷустуҷӯ дар ҷаласаҳои махфӣ иҷозат диҳед? Маълумоти бештар @@ -945,6 +949,8 @@ АЗ НАВ КӮШИШ КАРДАН Ворид шудан ба воситаи камера + + Ба ҷояш почтаи электрониро истифода баред Қатъ кардани пайваст diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml index 99206a72b..65ba9d0ee 100644 --- a/app/src/main/res/values-th/strings.xml +++ b/app/src/main/res/values-th/strings.xml @@ -1160,6 +1160,8 @@ ลงชื่อเข้าด้วยกล้องของคุณ ใช้อีเมลแทน + + สร้างบัญชีเพื่อซิงค์ Firefox ระหว่างอุปกรณ์]]> Firefox จะหยุดการซิงค์กับบัญชีของคุณ แต่จะไม่ลบข้อมูลการเรียกดูใด ๆ ของคุณบนอุปกรณ์นี้ @@ -1268,6 +1270,11 @@ The first parameter is the app name --> %s | ไลบรารี OSS + + ตัวติดตามการเปลี่ยนเส้นทาง + + ล้างคุกกี้ที่ตั้งโดยการเปลี่ยนเส้นทางไปยังเว็บไซต์ติดตามที่รู้จัก + การสนับสนุน diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 60744eba5..80551673c 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -722,7 +722,7 @@ The first parameter is the number of bookmarks selected --> %1$d yer imi seçildi - Yer imini düzenle + Yer imi düzenle Klasörü düzenle diff --git a/l10n.toml b/l10n.toml index cb946c589..6c3cd22a4 100644 --- a/l10n.toml +++ b/l10n.toml @@ -86,6 +86,7 @@ locales = [ "te", "tg", "th", + "tl", "tr", "trs", "uk", From 5fed37cf45bdf5574e9d76077cb891a883388d5f Mon Sep 17 00:00:00 2001 From: mozilla-l10n-automation-bot <54512241+mozilla-l10n-automation-bot@users.noreply.github.com> Date: Mon, 5 Oct 2020 21:08:06 -0400 Subject: [PATCH 03/71] Import l10n. (#15712) --- .../main/res/values-b+sat+Olck/strings.xml | 312 +++++++++++++----- app/src/main/res/values-be/strings.xml | 6 + app/src/main/res/values-oc/strings.xml | 2 + app/src/main/res/values-tg/strings.xml | 98 +++++- 4 files changed, 334 insertions(+), 84 deletions(-) diff --git a/app/src/main/res/values-b+sat+Olck/strings.xml b/app/src/main/res/values-b+sat+Olck/strings.xml index 9950012da..29cd5e278 100644 --- a/app/src/main/res/values-b+sat+Olck/strings.xml +++ b/app/src/main/res/values-b+sat+Olck/strings.xml @@ -1,18 +1,18 @@ - %s ᱯᱨᱭᱣᱮᱴ + %s ᱱᱤᱡᱮᱨᱟᱜ - %s (ᱯᱨᱭᱣᱮᱴ) + %s (ᱱᱤᱡᱮᱨᱟᱜ) ᱰᱷᱮᱨ ᱮᱴᱟᱜᱟᱠ - ᱱᱤᱡᱮᱨᱟᱜ ᱯᱟᱱᱛᱮᱭᱟᱜ ᱦᱩᱭ ᱦᱚᱪᱚ + ᱱᱤᱡᱮᱨᱟᱜ ᱵᱨᱟᱩᱡᱤᱝ ᱦᱩᱭ ᱦᱚᱪᱚᱜ ᱢᱮ - ᱱᱤᱡᱮᱨᱟᱜ ᱯᱟᱱᱛᱮᱭᱟᱜ ᱵᱟᱝ ᱦᱩᱭ ᱦᱚᱪᱚ + ᱱᱤᱡᱮᱨᱟᱜ ᱵᱨᱟᱩᱡᱤᱝ ᱵᱟᱝ ᱦᱩᱭ ᱦᱚᱪᱚᱜ ᱢᱮ - ᱥᱮᱸᱫᱽᱨᱟ ᱵᱟᱝᱠᱷᱟᱱ ᱴᱷᱤᱠᱟᱹᱬᱟᱹ ᱠᱚ ᱟᱫᱮᱨ + ᱥᱮᱸᱫᱽᱨᱟ ᱵᱟᱝᱠᱷᱟᱱ ᱴᱷᱤᱠᱟᱹᱬᱟ ᱟᱫᱮᱨ ᱟᱢᱟᱜ ᱠᱷᱩᱞᱟᱹ ᱟᱠᱟᱱ ᱴᱮᱵ ᱠᱚ ᱫᱚ ᱱᱚᱰᱮ ᱫᱮᱠᱷᱟᱣᱼᱜᱟ ᱾ @@ -31,6 +31,8 @@ ᱛᱩᱢᱟᱹᱞ ᱡᱟᱣᱨᱟᱜ ᱵᱟᱪᱷᱟᱣ ᱢᱮ ᱢᱟᱹᱞᱴᱤᱥᱤᱞᱮᱠᱼᱴ ᱢᱳᱰ ᱵᱟᱹᱰ + + ᱵᱟᱪᱷᱟᱣᱠᱟᱱ ᱴᱮᱵ ᱠᱚ ᱛᱩᱢᱟᱹᱞ ᱥᱟᱸᱪᱟᱣ ᱢᱮ ᱵᱟᱪᱷᱟᱣᱮᱱᱟ %1$s @@ -51,7 +53,7 @@ %1$s ᱟᱢᱟᱜ ᱥᱮᱸᱫᱽᱨᱟ ᱟᱨ ᱯᱟᱱᱛᱮᱭᱟᱜ ᱦᱤᱛᱟᱹᱞ ᱱᱤᱡᱮᱨᱟᱜ ᱴᱮᱵ ᱠᱷᱚᱱ ᱯᱷᱟᱨᱪᱟ ᱭᱟᱭ ᱡᱚᱠᱷᱚᱱ ᱟᱢ ᱩᱱᱠᱩ ᱵᱚᱸᱫᱚ ᱠᱚᱣᱟᱢ ᱟᱨ ᱮᱯ ᱟᱲᱟᱹᱜ ᱟᱢ. ᱱᱚᱣᱟ ᱫᱚ ᱵᱟᱝ ᱵᱟᱰᱟᱭ ᱵᱟᱝ ᱵᱮᱱᱟᱣ ᱢᱤᱭᱟᱭ ᱣᱮᱵᱥᱟᱭᱤᱴ ᱟᱨ ᱤᱱᱴᱚᱨᱱᱮᱴ ᱮᱢᱚᱜᱤᱪ ᱠᱷᱚᱱ, ᱱᱚᱣᱟ ᱫᱚ ᱟᱞᱜᱟ ᱵᱮᱱᱟᱣ ᱟᱭ ᱫᱚᱦᱚ ᱞᱟᱹᱜᱤᱛ ᱪᱷᱤ ᱠᱚ ᱟᱢ ᱚᱱᱞᱟᱭᱤᱱ ᱠᱚᱨᱟᱣ ᱫᱟᱢ ᱩᱱᱠᱩ ᱠᱷᱚᱱ ᱡᱟ ᱱᱚᱣᱟ ᱥᱟᱫᱷᱚᱱ ᱵᱮᱵᱷᱟᱨ ᱟᱠᱚ ᱾ - ᱯᱨᱭᱣᱮᱴ ᱵᱨᱟᱣᱡᱤᱝ ᱨᱮᱭᱟᱜ ᱥᱚᱢᱟᱱ ᱮᱰᱮ ᱠᱚ + ᱱᱤᱡᱚᱨᱟᱜ ᱵᱨᱟᱣᱡᱤᱝ ᱨᱮᱭᱟᱜ ᱥᱚᱢᱟᱱ ᱮᱰᱮ ᱠᱚ ᱚᱠᱛᱚ ᱢᱮᱴᱟᱣ ᱢᱮ @@ -82,7 +84,7 @@ ᱵᱟᱹᱰ - ᱠᱚᱢᱨᱟ ᱵᱮᱵᱷᱟᱨ ᱫᱚᱨᱠᱟᱨ ᱾ ᱮᱸᱰᱨᱚᱭᱮᱰ ᱥᱟᱡᱟᱣ ᱛᱮ ᱪᱟᱞᱟᱜ ᱢᱮ, ᱯᱟᱹᱨᱢᱤᱥᱥᱚᱱ ᱨᱮ ᱚᱛᱟᱭ ᱢᱮ , ᱟᱨ ᱮᱞᱞᱟᱣ ᱨᱮ ᱚᱛᱟᱭ ᱢᱮ ᱾ + ᱠᱚᱢᱨᱟ ᱵᱮᱵᱷᱟᱨ ᱫᱚᱨᱠᱟᱨ ᱾ ᱮᱸᱰᱨᱚᱭᱮᱰ ᱥᱟᱡᱟᱣ ᱛᱮ ᱪᱟᱹᱞᱟᱜ ᱢᱮ, ᱪᱷᱟᱹᱲ ᱨᱮ ᱚᱛᱟᱭ ᱢᱮ , ᱟᱨ ᱮᱞᱞᱟᱣ ᱨᱮ ᱚᱛᱟᱭ ᱢᱮ ᱾ ᱥᱟᱡᱟᱣ ᱠᱚ ᱨᱮ ᱪᱟᱞᱟᱜ ᱢᱮ @@ -141,7 +143,7 @@ ᱥᱤᱸᱠᱼᱰ ᱴᱮᱵ ᱠᱚ - ᱨᱭᱥᱤᱸᱠ + ᱨᱤᱥᱤᱸᱠ ᱥᱟᱦᱴᱟ ᱨᱮ ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮ @@ -249,31 +251,31 @@ ᱠᱨᱮᱰᱤᱴ ᱠᱟᱰ ᱠᱚ ᱟᱨ ᱴᱷᱤᱠᱚᱬᱟᱹ ᱠᱚ - ᱢᱩᱞ ᱵᱨᱟᱩᱡᱚᱨ ᱞᱮᱠᱷᱟ ᱥᱟᱡᱟᱣ ᱢᱮ + ᱢᱩᱞ ᱵᱨᱟᱩᱡᱟᱹᱨ ᱞᱮᱠᱷᱟ ᱥᱟᱡᱟᱣ ᱢᱮᱸ ᱞᱟᱦᱟᱱᱛᱤ - ᱱᱤᱡᱚᱨᱟᱜ + ᱱᱤᱥᱚᱱ - ᱱᱤᱡᱚᱨᱟᱜ ᱟᱨ ᱡᱟᱹᱯᱛᱤ + ᱱᱤᱥᱚᱱ ᱟᱨ ᱡᱟᱹᱯᱛᱤ - ᱥᱟᱭᱤᱴ ᱨᱮᱭᱟᱜ ᱪᱷᱟᱰ ᱠᱚ + ᱥᱟᱭᱤᱴ ᱨᱮᱭᱟᱜ ᱪᱷᱟᱹᱲ ᱠᱚ - ᱱᱤᱡᱮᱨᱟᱜ ᱯᱟᱱᱛᱮᱭᱟᱜ + ᱱᱤᱡᱮᱨᱟᱜ ᱵᱨᱟᱩᱡᱤᱝ ᱞᱤᱸᱠ ᱠᱚ ᱱᱤᱡᱮᱨᱟᱜ ᱴᱮᱵ ᱨᱮ ᱡᱷᱤᱡ ᱢᱮ - ᱱᱤᱡᱮᱨᱟᱜ ᱯᱟᱱᱛᱮᱭᱟᱜ ᱨᱮ ᱥᱠᱨᱤᱱᱥᱚᱴ ᱠᱚ ᱮᱢᱟᱱ ᱵᱟᱛᱟᱣ ᱮᱢ ᱢᱮ + ᱱᱤᱡᱮᱨᱟᱜ ᱵᱨᱟᱩᱡᱤᱝ ᱨᱮ ᱥᱠᱨᱤᱱᱥᱚᱴ ᱠᱚ ᱦᱮᱥᱟᱨᱤᱭᱟᱹ ᱢᱮ ᱡᱩᱫᱤ ᱢᱟᱸᱡᱩᱨ ᱮᱱᱟ, ᱯᱨᱟᱭᱣᱮᱴ ᱴᱮᱵ ᱠᱚ ᱫᱚ ᱧᱮᱞᱚᱜ ᱜᱮᱭᱟ ᱡᱩᱫᱤ ᱢᱟᱹᱞᱴᱤᱯᱟᱹᱞ ᱮᱯᱯ ᱠᱚ ᱠᱷᱩᱞᱟᱹ ᱛᱟᱦᱮᱸᱱᱟ - ᱱᱤᱡᱮᱨᱟᱜ ᱯᱟᱱᱛᱮᱭᱟᱜ ᱠᱷᱟᱴᱚᱢᱟᱪᱷᱟ ᱥᱮᱞᱮᱫ ᱢᱮ + ᱱᱤᱡᱮᱨᱟᱜ ᱵᱨᱟᱩᱡᱤᱝ ᱠᱷᱟᱴᱚᱢᱟᱪᱷᱟ ᱥᱮᱞᱮᱫ ᱢᱮ ᱟᱹᱛᱩᱨ ᱫᱟᱲᱮᱭᱟᱜ ᱠᱟᱹᱥᱴᱚᱢ Firefox ᱠᱷᱟᱛᱟ ᱥᱟᱹᱨᱣᱟᱹᱨ - ᱠᱟᱹᱥᱴᱟᱹᱢ ᱥᱭᱸᱠ ᱥᱟᱹᱨᱣᱟᱹᱨ + ᱠᱩᱥᱤᱭᱟᱜ ᱥᱤᱸᱠ ᱥᱟᱹᱨᱣᱟᱹᱨ Firefox ᱠᱷᱟᱛᱟ/ ᱥᱭᱸᱠ ᱠᱟᱹᱨᱣᱟᱹᱨ ᱵᱚᱫᱚᱞᱮᱱᱟ ᱾ ᱵᱚᱫᱚᱞ ᱠᱚ ᱫᱚᱦᱚ ᱞᱟᱹᱜᱤᱫ ᱮᱯᱯᱞᱤᱠᱮᱥᱚᱱ ᱵᱚᱸᱫᱚᱜ ᱠᱟᱱᱟ… @@ -281,7 +283,7 @@ ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ - ᱦᱟᱹᱛᱤᱭᱟᱹᱨ + ᱴᱩᱞᱵᱟᱨ ᱩᱭᱦᱟᱹᱨ @@ -291,7 +293,7 @@ ᱠᱩᱥᱤᱭᱟᱜ ᱛᱮᱭᱟᱨ - ᱵᱩᱠᱢᱟᱨᱠ, ᱦᱤᱛᱟᱹᱞ ᱟᱨ ᱵᱚᱲᱛᱤ ᱠᱚ ᱛᱷᱟᱨ ᱢᱮ ᱟᱢᱟᱜ Firefox ᱠᱷᱟᱛᱟ ᱥᱟᱣ ᱛᱮ + ᱵᱩᱠᱢᱟᱨᱠ, ᱦᱤᱛᱟᱹᱞ ᱟᱨ ᱵᱟᱹᱲᱛᱤ ᱠᱚ ᱟᱢᱟᱜ Firefox ᱠᱷᱟᱛᱟ ᱥᱟᱣ ᱛᱮ ᱥᱭᱸᱠ ᱢᱮ Firefox ᱠᱷᱟᱛᱟ @@ -301,13 +303,13 @@ ᱥᱟᱹᱠᱷᱤᱭᱟᱹᱛ ᱠᱩᱥᱤᱭᱟᱜ ᱠᱚ - ᱰᱟᱴᱟ ᱡᱟᱣᱩᱨᱟᱭ ᱢᱮ + ᱟᱸᱠᱲᱟ ᱛᱩᱢᱟᱹᱞ - ᱱᱤᱡᱮᱨᱟᱜ ᱞᱟᱹᱭ ᱥᱚᱫᱚᱨ + ᱱᱤᱥᱚᱱ ᱨᱮᱭᱟᱜ ᱱᱚᱴᱤᱥ ᱵᱟᱲᱦᱟᱣᱟᱜ ᱦᱟᱹᱛᱤᱭᱟᱹᱨ - ᱥᱟᱸᱜᱤᱧ ᱫᱳᱥ ᱥᱟᱦᱟᱭ USB ᱥᱟᱣ ᱛᱮ + ᱥᱟᱸᱜᱤᱧ ᱫᱚᱥ ᱥᱟᱦᱟᱭ USB ᱥᱟᱣ ᱛᱮ ᱥᱮᱸᱫᱽᱨᱟ ᱤᱱᱡᱤᱱ ᱠᱚ ᱩᱫᱩᱜ ᱢᱮ @@ -317,9 +319,9 @@ ᱱᱤᱡᱮᱨᱟᱜ ᱚᱠᱛᱚ ᱨᱮ ᱩᱫᱩᱜ ᱢᱮ - ᱠᱞᱤᱯᱵᱳᱰ ᱦᱩᱫᱤᱥ ᱠᱚ ᱩᱫᱩᱜ + ᱨᱮᱴᱚᱯᱵᱚᱰ ᱦᱩᱫᱤᱥ ᱠᱚ ᱩᱫᱩᱜ - ᱯᱟᱱᱛᱮᱭᱟᱜ ᱦᱤᱛᱟᱹᱞ ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮ + ᱵᱨᱟᱩᱡᱤᱝ ᱦᱤᱛᱟᱹᱞ ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮ ᱵᱩᱠᱢᱟᱨᱠ ᱠᱚ ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮ @@ -327,9 +329,9 @@ ᱠᱷᱟᱛᱟ ᱨᱮᱭᱟᱜ ᱥᱟᱡᱟᱣ ᱠᱚ - URLs ᱟᱡ ᱛᱮ ᱯᱩᱨᱟᱹᱣᱼᱜ ᱢᱟ + URLs ᱟᱪᱛᱮ ᱯᱩᱨᱟᱹᱣᱼᱜ ᱢᱟ - ᱞᱤᱸᱠ ᱠᱚ ᱮᱯ ᱨᱮ ᱡᱷᱤᱜ ᱢᱮ + ᱞᱤᱸᱠ ᱠᱚ ᱮᱯ ᱨᱮ ᱡᱷᱤᱡ ᱢᱮ ᱵᱟᱦᱨᱮ ᱨᱮᱭᱟᱜ ᱰᱟᱣᱱᱞᱳᱰ ᱢᱮᱱᱮᱡᱟᱹᱨ @@ -346,11 +348,11 @@ ᱦᱤᱛᱟᱹᱞ - ᱵᱩᱠᱢᱟᱨᱠ + ᱵᱩᱠᱢᱟᱨᱠ ᱠᱚ ᱵᱚᱞᱚᱱ ᱠᱚ - ᱡᱷᱤᱜ ᱴᱮᱵ ᱠᱚ + ᱡᱷᱤᱡ ᱴᱮᱵ ᱠᱚ ᱵᱟᱦᱨᱮ ᱚᱰᱚᱠ @@ -358,7 +360,7 @@ ᱥᱟᱫᱷᱚᱱ ᱧᱩᱛᱩᱢ ᱠᱷᱟᱹᱞᱤ ᱵᱟᱝ ᱦᱩᱭ ᱫᱟᱰᱮᱜ-ᱟ ᱾ - ᱥᱭᱸᱠᱤᱸᱜ... + ᱥᱤᱸᱠ ᱦᱩᱭᱩ ᱠᱟᱱᱟ... ᱥᱭᱸᱠ ᱰᱤᱜᱟᱹᱣ ᱾ ᱢᱟᱲᱟᱝ ᱨᱟᱹᱥ ᱞᱮᱠᱟᱛᱮ ᱪᱟᱵᱟ:%s @@ -418,8 +420,9 @@ - ᱛᱷᱟᱨ ᱪᱚᱞᱩᱤ ᱢᱮ - + ᱥᱭᱸᱠ ᱪᱟᱹᱞᱩᱭ ᱢᱮ + + ᱡᱚᱲᱟᱣ ᱠᱳᱰ ᱥᱠᱮᱱ ᱢᱮ ᱰᱮᱥᱠᱴᱚᱯ Firefox ᱨᱮ ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ @@ -437,7 +440,7 @@ - ᱪᱚᱴ + ᱪᱮᱛᱟᱱ ᱞᱟᱛᱟᱨ @@ -465,9 +468,9 @@ ᱤᱥᱠᱨᱤᱱᱥᱚᱴ ᱠᱚ - ᱰᱟᱩᱱᱞᱳᱰ + ᱰᱟᱩᱱᱞᱳᱰ ᱠᱚ - ᱵᱩᱠᱢᱟᱨᱠ + ᱵᱩᱠᱢᱟᱨᱠ ᱠᱚ ᱰᱮᱥᱠᱴᱚᱯ ᱵᱩᱠᱢᱟᱨᱠ ᱠᱚ @@ -478,6 +481,8 @@ ᱮᱴᱟᱜᱟ ᱵᱩᱠᱢᱟᱨᱠ ᱠᱚ ᱦᱤᱛᱟᱹᱞ + + ᱥᱭᱸᱠᱼᱰ ᱴᱮᱵ ᱠᱚ ᱯᱟᱲᱦᱟᱣ ᱞᱤᱥᱴᱤ @@ -489,6 +494,8 @@ ᱵᱚᱸᱫᱚᱭ ᱢᱮ + + ᱱᱤᱛᱚᱜᱼᱟᱜ ᱵᱚᱸᱫᱚᱼᱟᱜ ᱴᱮᱵ ᱠᱚ ᱥᱟᱱᱟᱢ ᱦᱤᱛᱟᱹᱞ ᱫᱮᱠᱷᱟᱣᱢᱮ %d ᱴᱮᱵ + + ᱱᱤᱛᱚᱜᱼᱟᱜ ᱵᱚᱸᱫᱚᱼᱟᱜ ᱴᱮᱵ ᱠᱚ ᱵᱟᱹᱱᱩᱜ-ᱟ + ᱴᱮᱵ ᱠᱚ ᱵᱚᱸᱫᱚᱭ ᱢᱮ ᱛᱤ ᱛᱮᱭᱟᱜ + + ᱢᱤᱫ ᱢᱟᱦᱟ ᱛᱟᱭᱚᱢ + + ᱢᱤᱫ ᱦᱟᱴ ᱛᱟᱭᱚᱢ + + ᱢᱤᱫ ᱪᱟᱸᱫᱚ ᱛᱟᱭᱚᱢ + ᱡᱷᱤᱜ ᱴᱮᱵ ᱠᱚ @@ -519,6 +536,8 @@ ᱯᱨᱭᱣᱮᱴ ᱡᱷᱤᱜ ᱴᱮᱵ ᱠᱚ + + ᱛᱩᱢᱟᱹᱞ ᱨᱮ ᱥᱟᱸᱪᱟᱣ ᱢᱮ ᱡᱷᱚᱛᱚ ᱴᱮᱵ ᱠᱚ ᱦᱟᱹᱴᱧ ᱢᱮ @@ -533,6 +552,8 @@ ᱚᱲᱟᱜ ᱪᱟᱞᱟᱜ ᱢᱮ ᱴᱮᱵ ᱢᱳᱰ ᱛᱚᱞᱟᱜ ᱢᱮ + + ᱴᱮᱵ ᱛᱩᱢᱟᱹᱞ ᱠᱷᱚᱱ ᱚᱪᱚᱜ ᱢᱮ ᱴᱮᱵ ᱵᱚᱸᱫᱚᱭ ᱢᱮ @@ -543,6 +564,8 @@ ᱡᱷᱚᱛᱚ ᱴᱮᱵ ᱠᱚ ᱵᱚᱸᱫᱚᱭ ᱢᱮ ᱴᱮᱵ ᱠᱚ ᱦᱟᱹᱴᱤᱧ ᱢᱮ + + ᱴᱮᱵ ᱠᱚ ᱛᱩᱢᱟᱹᱞ ᱨᱮ ᱥᱟᱸᱪᱟᱣ ᱢᱮ ᱴᱮᱵ ᱢᱮᱱᱭᱩ @@ -555,6 +578,12 @@ ᱦᱟᱹᱴᱤᱝ ᱢᱮ Current session image + + ᱛᱩᱢᱟᱹᱞ ᱨᱮ ᱥᱟᱸᱪᱟᱣ ᱢᱮ + + ᱛᱩᱢᱟᱹᱞ ᱢᱮᱴᱟᱣ ᱢᱮ + + ᱛᱩᱢᱟᱹᱞ ᱫᱚᱦᱲᱟ ᱧᱩᱛᱩᱢ ᱢᱮ ᱡᱷᱤᱜ ᱴᱮᱵ ᱠᱚ @@ -606,7 +635,7 @@ - ᱱᱚᱱᱰᱮ ᱰᱟᱩᱱᱞᱳᱰ ᱠᱚ ᱵᱚᱱᱩᱜ-ᱟ + ᱱᱚᱰᱮ ᱰᱟᱩᱱᱞᱳᱰ ᱠᱚ ᱵᱚᱱᱩᱜ-ᱟ %1$d ᱵᱟᱪᱷᱟᱣᱮᱱᱟ @@ -672,6 +701,8 @@ ᱵᱩᱠᱢᱟᱨᱠ ᱥᱟᱯᱲᱣ ᱢᱮ ᱯᱚᱴᱚᱢ ᱥᱮᱞᱮᱫ ᱢᱮ + + ᱥᱭᱸᱠᱼᱰ ᱵᱩᱠᱢᱟᱨᱠ ᱠᱚ ᱧᱮᱞ ᱞᱟᱹᱜᱤᱫ ᱛᱮ ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱢᱮ URL @@ -700,35 +731,35 @@ - ᱪᱷᱟᱹᱰ ᱠᱚ + ᱪᱷᱟᱹᱲ ᱠᱚ - ᱥᱟᱡᱟᱣ ᱨᱮ ᱪᱟᱞᱟ ᱢᱮ + ᱥᱟᱡᱟᱣ ᱠᱚ ᱨᱮ ᱪᱟᱞᱟᱜ ᱢᱮ ᱵᱟᱛᱟᱣᱟᱜ - ᱪᱷᱟᱹᱰ ᱠᱚ ᱯᱷᱟᱨᱪᱟᱭ ᱢᱮ + ᱪᱷᱟᱹᱲ ᱠᱚ ᱯᱷᱟᱨᱪᱟᱭ ᱢᱮ - ᱪᱷᱟᱹᱰ ᱯᱷᱟᱨᱪᱟᱭ ᱢᱮ + ᱪᱷᱟᱹᱲ ᱯᱷᱟᱨᱪᱟᱭ ᱢᱮ - ᱡᱚᱛᱚ ᱥᱟᱭᱤᱴ ᱨᱮ ᱪᱷᱟᱹᱰ ᱯᱷᱟᱨᱪᱟᱭ ᱢᱮ + ᱥᱟᱱᱟᱢ ᱥᱟᱭᱤᱴ ᱨᱮ ᱪᱷᱟᱹᱲ ᱠᱚ ᱯᱷᱟᱨᱪᱟᱭ ᱢᱮ ᱟᱪᱛᱮ ᱮᱱᱮᱡ ᱠᱮᱢᱨᱟ - ᱢᱟᱭᱠᱨᱚᱯᱷᱳᱱ + ᱢᱟᱭᱠᱨᱚᱯᱷᱚᱱ ᱡᱟᱭᱜᱟ ᱤᱛᱞᱟᱭ - ᱵᱟᱛᱟᱣ ᱮᱢ ᱞᱟᱹᱜᱤᱛ ᱛᱮ ᱠᱩᱞᱤ + ᱦᱮᱥᱟᱨᱤᱭᱟᱹ ᱞᱟᱹᱜᱤᱫ ᱠᱩᱠᱞᱤ ᱢᱮ ᱟᱠᱚᱴ ᱠᱟᱱᱟ ᱵᱟᱛᱟᱣ ᱮᱢᱟᱠᱟᱱᱟ - Android ᱟᱠᱚᱴ ᱠᱟᱱᱟ + Android ᱫᱟᱨᱟᱭ ᱛᱮ ᱟᱠᱚᱴ ᱦᱩᱭ ᱟᱠᱟᱱᱟ ᱪᱷᱟᱰᱟ ᱠᱚ @@ -736,13 +767,13 @@ ᱵᱚᱸᱫᱚ - ᱟᱰᱤᱭᱳ ᱟᱨ ᱣᱤᱰᱤᱭᱳ ᱵᱟᱛᱟᱣ ᱮᱢ ᱢᱮ + ᱟᱰᱤᱭᱳ ᱟᱨ ᱣᱤᱰᱤᱭᱳ ᱦᱮᱥᱟᱨᱤᱭᱟᱹ ᱢᱮ - ᱠᱷᱚᱞᱤ ᱥᱮᱞᱩᱞᱟᱹᱨ ᱰᱟᱴᱟ ᱨᱮ ᱟᱰᱤᱭᱳ ᱟᱨ ᱣᱤᱰᱤᱭᱳ ᱟᱴᱠᱟᱣ ᱢᱮ + ᱥᱮᱞᱩᱞᱟᱹᱨ ᱰᱟᱴᱟ ᱨᱮᱜᱤ ᱟᱰᱤᱭᱳ ᱟᱨ ᱣᱤᱰᱤᱭᱳ ᱟᱴᱠᱟᱣ ᱢᱮ ᱟᱰᱤᱭᱳ ᱟᱨ ᱣᱤᱰᱤᱭᱳ Wi-Fi ᱨᱮ ᱮᱱᱮᱡᱚᱣᱟ - ᱠᱷᱚᱞᱤ ᱟᱰᱤᱭᱳ ᱜᱤ ᱟᱴᱠᱟᱣ ᱢᱮ + ᱟᱰᱤᱭᱳ ᱜᱤ ᱟᱴᱠᱟᱣ ᱢᱮ ᱟᱰᱤᱭᱳ ᱟᱨ ᱣᱤᱰᱤᱭᱳ ᱟᱴᱠᱟᱣ ᱢᱮ @@ -751,8 +782,19 @@ ᱵᱚᱸᱫᱚ + + + ᱛᱩᱢᱟᱹᱞ ᱠᱚ + + ᱛᱩᱢᱟᱹᱞ ᱢᱮᱱᱭᱩ ᱴᱮᱵ ᱠᱚ ᱵᱟᱪᱷᱟᱣ ᱢᱮ + + ᱛᱩᱢᱟᱹᱞ ᱵᱟᱪᱷᱟᱣ ᱢᱮ + + ᱛᱩᱢᱟᱹᱞ ᱧᱩᱛᱩᱢᱼᱟᱜ ᱢᱮ + + ᱱᱟᱶᱟ ᱛᱩᱢᱟᱹᱞ ᱥᱮᱞᱮᱫ ᱢᱮ ᱡᱚᱛᱚ ᱠᱚ ᱵᱟᱪᱷᱟᱣ ᱢᱮ @@ -767,6 +809,8 @@ %d ᱴᱮᱵ ᱵᱟᱪᱷᱟᱣ ᱟᱠᱟᱱᱟ ᱴᱮᱵ ᱠᱚ ᱥᱟᱸᱪᱟᱣᱮᱱᱟ! + + ᱛᱩᱢᱟᱹᱞ ᱥᱟᱸᱪᱟᱣᱮᱱᱟ! ᱴᱮᱵ ᱥᱟᱸᱪᱟᱣᱮᱱᱟ! @@ -776,6 +820,9 @@ ᱵᱷᱤᱭᱩ + + %d ᱛᱩᱢᱟᱹᱞ + ᱠᱩᱞᱢᱮ ᱟᱨ ᱦᱟᱹᱴᱤᱧ ᱢᱮ @@ -789,10 +836,14 @@ ᱢᱤᱫ ᱴᱟᱝ ᱞᱤᱸᱠ ᱦᱟᱹᱴᱤᱧ ᱢᱮ ᱥᱟᱫᱷᱚᱱ ᱨᱮ ᱠᱩᱞ ᱢᱮ + + ᱥᱭᱸᱠ ᱞᱟᱹᱜᱤᱫ ᱛᱮ ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱢᱮ ᱟᱸᱯᱷᱞᱟᱭᱤᱱ ᱚᱞᱜᱟ ᱥᱟᱫᱷᱚᱱ ᱡᱩᱰᱟᱹᱣ ᱢᱮ + + ᱵᱩᱡᱷᱟᱹᱣ ᱠᱮᱫᱟ ᱥᱟᱫᱷᱚᱱ ᱨᱮ ᱠᱩᱞ ᱢᱮ @@ -803,7 +854,7 @@ - ᱯᱨᱭᱣᱮᱴ ᱵᱨᱟᱣᱡᱤᱝ ᱚᱠᱛᱚ + ᱱᱤᱡᱮᱨᱟᱜ ᱵᱨᱟᱩᱡᱤᱝ ᱚᱠᱛᱚ ᱯᱨᱭᱣᱮᱴ ᱴᱮᱵ ᱠᱚ ᱢᱮᱴᱟᱣ ᱢᱮ @@ -814,6 +865,10 @@ ᱢᱮᱴᱟᱣ ᱢᱮ ᱟᱨ ᱡᱷᱤᱡ ᱢᱮ ᱦᱚᱛᱮ ᱛᱮ ᱫᱟᱲᱮ ᱮᱢ + + ᱛᱩᱢᱟᱹᱞ ᱢᱮᱴᱟᱣᱮᱱᱟ + + ᱛᱩᱢᱟᱹᱞ ᱫᱚᱦᱲᱟ ᱧᱩᱛᱩᱢ ᱮᱢ ᱦᱩᱭᱮᱱᱟ ᱴᱮᱵ ᱢᱮᱴᱟᱣᱮᱱᱟ @@ -845,6 +900,8 @@ ᱵᱟᱹᱰ %1$s ᱢᱮᱴᱟᱣ ᱞᱟᱹᱜᱤᱛ ᱛᱮ ᱪᱮᱫ ᱟᱢ ᱜᱚᱴᱟ ᱛᱮ ᱢᱮᱱᱟᱢ-ᱟ? + + ᱱᱚᱣᱟ ᱴᱮᱵ ᱢᱮᱴᱟᱣ ᱞᱮᱠᱷᱟᱭ ᱥᱟᱱᱟᱢ ᱛᱩᱢᱟᱹᱞ ᱢᱮᱴᱟᱣ ᱪᱟᱵᱟᱜ-ᱟ ᱾ ᱚᱠᱟ ᱥᱚᱢᱚᱭ ᱨᱮ ᱦᱚᱸ ᱟᱢ ᱱᱟᱶᱟ ᱛᱩᱢᱟᱹᱞ ᱠᱚ ᱛᱮᱭᱟᱨ ᱫᱟᱲᱮᱼᱟᱜ ᱟᱢ ᱾ %1$s ᱢᱮᱴᱟᱣᱟ ᱥᱮ? @@ -865,13 +922,13 @@ ᱟᱪᱛᱮ ᱪᱤᱠᱤ ᱥᱟᱡᱟᱣ - ᱯᱟᱱᱛᱮᱭᱟᱜ ᱰᱟᱴᱟ ᱢᱮᱴᱟᱣ ᱢᱮ + ᱵᱨᱟᱩᱡᱤᱝ ᱰᱟᱴᱟ ᱢᱮᱴᱟᱣ - ᱡᱷᱤᱜ ᱴᱮᱵ ᱠᱚ + ᱡᱷᱤᱡ ᱴᱮᱵ ᱠᱚ %d ᱴᱮᱵ ᱠᱚ - ᱯᱟᱱᱛᱮᱭᱟᱜ ᱦᱤᱛᱟᱹᱞ ᱟᱨ ᱥᱟᱭᱤᱴ ᱰᱟᱴᱟ + ᱵᱨᱟᱩᱡᱤᱝ ᱦᱤᱛᱟᱹᱞ ᱟᱨ ᱥᱟᱭᱤᱴ ᱰᱟᱴᱟ %d ᱴᱷᱤᱠᱬᱟᱹ ᱠᱚ @@ -885,19 +942,19 @@ ᱟᱢ ᱫᱚ ᱰᱷᱮᱨ ᱜᱟᱱ ᱥᱟᱭᱤᱴ ᱠᱷᱚᱱ ᱵᱟᱦᱨᱮ ᱩᱲᱩᱠ ᱢᱤᱭᱟ ᱠᱚ - ᱪᱤᱛᱟᱹᱨ ᱟᱨ ᱨᱮᱫ ᱨᱮᱭᱟᱜ ᱥᱟᱯ + ᱥᱟᱯ ᱦᱚᱭᱠᱟᱱ ᱪᱤᱛᱟᱹᱨ ᱟᱨ ᱨᱮᱫ ᱠᱚ - ᱡᱚᱜᱟᱣ ᱡᱟᱭᱜᱟ ᱠᱷᱚᱞᱤ ᱛᱮᱦᱮᱱ ᱟᱭ + ᱡᱚᱜᱟᱣ ᱡᱟᱭᱜᱟ ᱠᱷᱚᱞᱤ ᱛᱟᱦᱮᱱ ᱟᱭ - ᱥᱟᱭᱤᱴ ᱨᱮᱭᱟᱜ ᱪᱷᱟᱰ ᱠᱚ + ᱥᱟᱭᱤᱴ ᱨᱮᱭᱟᱜ ᱪᱷᱟᱹᱲ ᱠᱚ - ᱯᱟᱱᱛᱮᱭᱟᱜ ᱰᱟᱴᱟ ᱢᱮᱴᱟᱣ ᱢᱮ + ᱵᱨᱟᱩᱡᱤᱝ ᱰᱟᱴᱟ ᱢᱮᱴᱟᱣ ᱢᱮᱸ - ᱯᱟᱱᱛᱮᱭᱟᱜ ᱰᱟᱴᱟ ᱢᱮᱴᱟᱣ ᱢᱮ ᱟᱲᱟᱹᱜ ᱜᱷᱚᱲᱤ + ᱵᱨᱟᱩᱡᱤᱝ ᱰᱟᱴᱟ ᱢᱮᱴᱟᱣ ᱢᱮ ᱟᱲᱟᱜ ᱜᱷᱚᱲᱤ - ᱯᱟᱱᱛᱮᱭᱟᱜ ᱰᱟᱴᱟ ᱟᱪᱛᱮ ᱢᱮᱴᱟᱣ ᱟᱭ ᱡᱚᱠᱷᱚᱱ ᱟᱢ \"ᱟᱲᱟᱹᱜ\" ᱵᱟᱪᱷᱟᱣ ᱟᱢ ᱢᱩᱞ ᱢᱮᱱᱩ ᱠᱷᱚᱱ + ᱵᱨᱟᱩᱡᱤᱝ ᱰᱟᱴᱟ ᱟᱪᱛᱮ ᱢᱮᱴᱟᱣ ᱛᱟᱦᱮᱱᱟᱭ ᱡᱚᱠᱷᱚᱱ ᱟᱢ \"ᱟᱲᱟᱹᱜ\" ᱵᱟᱪᱷᱟᱣ ᱛᱟᱦᱮᱱᱟᱢ ᱢᱩᱞ ᱢᱮᱱᱩ ᱠᱷᱚᱱ - ᱯᱟᱱᱛᱮᱭᱟᱜ ᱰᱟᱴᱟ ᱟᱪᱛᱮ ᱢᱮᱴᱟᱣ ᱟᱭ ᱡᱚᱠᱷᱚᱱ ᱟᱢ \"ᱟᱲᱟᱹᱜ\" ᱵᱟᱪᱷᱟᱣ ᱟᱢ ᱢᱩᱞ ᱢᱮᱱᱩ ᱠᱷᱚᱱ + ᱵᱨᱟᱩᱡᱤᱝ ᱰᱟᱴᱟ ᱟᱪᱛᱮ ᱢᱮᱴᱟᱣ ᱛᱟᱦᱮᱱᱟᱭ ᱡᱚᱠᱷᱚᱱ ᱟᱢ \"ᱟᱲᱟᱹᱜ\" ᱵᱟᱪᱷᱟᱣ ᱛᱟᱦᱮᱱᱟᱢ ᱢᱩᱞ ᱢᱮᱱᱩ ᱠᱷᱚᱱ ᱟᱲᱟᱹᱜ ᱢᱮ @@ -910,9 +967,9 @@ ᱢᱮᱴᱟᱣ ᱢᱮ - ᱯᱟᱱᱛᱮᱭᱟᱜ ᱰᱟᱴᱟ ᱢᱮᱴᱟᱣᱮᱱᱟ + ᱵᱨᱟᱩᱡᱤᱝ ᱰᱟᱴᱟ ᱢᱮᱴᱟᱣᱮᱱᱟ - ᱯᱟᱱᱛᱮᱭᱟᱜ ᱰᱟᱴᱟ ᱢᱮᱴᱟᱣ ᱦᱩᱭᱩ ᱠᱟᱱᱟ… + ᱵᱨᱟᱩᱡᱤᱝ ᱰᱟᱴᱟ ᱢᱮᱴᱟᱣ ᱦᱩᱭᱩ ᱠᱟᱱᱟ… @@ -937,10 +994,15 @@ %s ᱨᱮ ᱥᱟᱹᱜᱩᱱ ᱫᱟᱨᱟᱢ! ᱞᱟᱦᱟ ᱠᱷᱚᱱ ᱠᱷᱟᱛᱟ ᱢᱮᱱᱟᱜ ᱛᱟᱢᱟ? + + %s ᱵᱟᱵᱚᱛ ᱵᱟᱲᱟᱭ ᱢᱮ - ᱧᱮᱞ ᱢᱮ ᱪᱦᱤ ᱱᱟᱶᱟ ᱢᱮᱱᱟ-ᱟ + ᱧᱮᱞ ᱢᱮ ᱪᱮᱫ ᱱᱟᱶᱟ ᱢᱮᱱᱟᱜ-ᱟ - ᱱᱚᱱᱰᱮ ᱞᱟᱹᱱᱟᱹᱭ ᱠᱚ ᱧᱟᱢ ᱢᱮ + ᱱᱚᱰᱮ ᱛᱮᱞᱟ ᱠᱚ ᱧᱟᱢ ᱟᱢ + + ᱵᱩᱠᱢᱟᱨᱠ, ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫ ᱟᱨ ᱵᱟᱹᱲᱛᱤ ᱠᱚ ᱞᱟᱹᱜᱤᱛ ᱟᱢᱟᱜ Firefox ᱠᱷᱟᱛᱟ ᱨᱮ ᱥᱭᱸᱠ ᱮᱦᱚᱵ ᱢᱮ ᱾ ᱰᱷᱮᱨ ᱥᱮᱬᱟᱭ ᱢᱮ @@ -950,31 +1012,43 @@ ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱰᱤᱜᱟᱹᱣᱮᱱᱟ - ᱟᱪ ᱛᱮᱭᱟᱜ ᱯᱨᱭᱣᱮᱥᱭ + ᱟᱡ ᱛᱮᱭᱟᱜ ᱱᱤᱥᱚᱱ - ᱵᱮᱥᱟᱜ (ᱢᱩᱞ) + ᱵᱮᱥᱟᱜ (ᱢᱩᱞ ᱯᱷᱮᱲᱟᱛ) ᱱᱤᱦᱟᱹᱛ (ᱵᱟᱛᱟᱣᱮᱢᱠᱟᱱᱟ) ᱱᱤᱦᱟᱹᱛ + + ᱡᱟᱹᱥᱛᱤ ᱯᱟᱧᱡᱟ ᱫᱟᱱᱟᱲ, ᱰᱷᱟᱣᱨᱟ ᱟᱨ ᱴᱟᱴᱠᱟ ᱚᱰᱚᱠ ᱠᱚ ᱟᱴᱠᱟᱣ ᱟᱭ , ᱥᱟᱠᱟᱢ ᱞᱚᱜᱚᱱ ᱞᱚᱰᱚᱜᱼᱟ ᱦᱮᱞᱮ ᱠᱤᱪᱷᱤ ᱡᱤᱱᱤᱥ ᱴᱷᱤᱠ ᱥᱮ ᱵᱟᱭ ᱠᱟᱹᱢᱤᱟᱭ ᱾ + + ᱡᱟᱭᱜᱟ ᱦᱟᱛᱟᱣ ᱢᱮ + + ᱱᱤᱡᱮᱨᱟᱜ ᱨᱮ ᱵᱨᱟᱩᱡ ᱢᱮ ᱥᱟᱡᱟᱣ ᱠᱚ ᱡᱷᱤᱡ ᱢᱮ - - ᱟᱢᱟᱜ ᱱᱤᱡᱮᱨᱟᱜ + + ᱟᱢᱟᱜ ᱱᱤᱥᱚᱱ - ᱟᱞᱮᱭᱟᱜ privacy notice ᱯᱟᱲᱦᱟᱣ ᱯᱮ + ᱟᱞᱮᱭᱟᱜ ᱱᱤᱥᱚᱱ ᱱᱚᱴᱤᱥ ᱯᱟᱲᱦᱟᱣ ᱯᱮ ᱵᱚᱸᱫᱚᱭ - ᱯᱟᱱᱛᱮᱭᱟᱠ ᱮᱦᱚᱵ ᱢᱮ + ᱵᱨᱟᱩᱡᱤᱝ ᱮᱦᱚᱵ ᱢᱮ - ᱛᱷᱮᱢ ᱪᱚᱭᱚᱱ ᱛᱟᱢ + ᱩᱭᱦᱟᱹᱨ ᱪᱚᱭᱚᱱ ᱛᱟᱢ + + ᱛᱤᱱᱟᱹᱜ ᱜᱟᱱ ᱵᱮᱴᱨᱭ ᱵᱚᱪᱚᱛ ᱢᱮ ᱟᱨ ᱟᱢᱟᱜ ᱢᱮᱫ ᱵᱟᱸᱪᱟᱣ ᱛᱟᱢ ᱧᱩᱛ ᱩᱭᱦᱟᱹᱨ ᱪᱟᱹᱞᱩ ᱠᱟᱛᱮ ᱾ ᱟᱪᱛᱮ + + ᱟᱢᱟᱜ ᱥᱟᱫᱷᱚᱱ ᱨᱮᱭᱟᱜ ᱥᱟᱡᱟᱣ ᱦᱟᱛᱟᱣ ᱟᱭ ᱧᱩᱛ ᱩᱭᱦᱟᱹᱨ @@ -1011,13 +1085,15 @@ ᱵᱟᱲᱦᱟᱣᱟᱠᱟᱱ ᱯᱟᱸᱡᱟ ᱨᱚᱯᱷᱟ - ᱵᱤᱱᱟᱹ ᱯᱟᱸᱡᱟ ᱠᱟᱛᱮᱫ ᱵᱨᱟᱩᱡ ᱢᱮ + ᱯᱟᱸᱡᱟ ᱵᱮᱜᱚᱨ ᱵᱨᱟᱩᱡ ᱢᱮ ᱰᱷᱮᱨ ᱥᱮᱬᱟᱭ ᱢᱮ ᱱᱟᱯ (ᱢᱩᱞ ᱯᱷᱮᱲᱟᱛ) ᱱᱤᱦᱟᱹᱛ + + ᱡᱟᱹᱥᱛᱤ ᱯᱟᱧᱡᱟ ᱫᱟᱱᱟᱲ, ᱰᱷᱟᱣᱨᱟ ᱟᱨ ᱴᱟᱴᱠᱟ ᱚᱰᱚᱠ ᱠᱚ ᱟᱴᱠᱟᱣ ᱟᱭ , ᱥᱟᱠᱟᱢ ᱞᱚᱜᱚᱱ ᱞᱚᱰᱚᱜᱼᱟ ᱦᱮᱞᱮ ᱠᱤᱪᱷᱤ ᱡᱤᱱᱤᱥ ᱴᱷᱤᱠ ᱥᱮ ᱵᱟᱭ ᱠᱟᱹᱢᱤᱟᱭ ᱾ ᱠᱩᱥᱤᱭᱟᱜ @@ -1032,7 +1108,7 @@ ᱠᱷᱟᱹᱞᱤ ᱱᱤᱡᱮᱨᱟᱜ ᱴᱮᱵ ᱠᱚᱨᱮ ᱜᱮ - ᱠᱷᱟᱫᱞᱤ ᱠᱚᱥᱴᱚᱢ ᱴᱮᱵ ᱠᱚᱨᱮᱜᱮ + ᱠᱷᱟᱹᱞᱤ ᱠᱩᱥᱤᱭᱟᱜ ᱴᱮᱵ ᱠᱚᱨᱮ ᱠᱨᱭᱯᱴᱚᱢᱟᱭᱱᱟᱹᱨ ᱠᱚ @@ -1059,7 +1135,7 @@ ᱟᱢᱟᱜ ᱦᱚᱠ ᱠᱚ - %s ᱨᱮ ᱪᱦᱤ ᱱᱟᱶᱟ ᱢᱮᱱᱟ-ᱟ + %s ᱨᱮ ᱪᱮᱫ ᱱᱟᱶᱟ ᱢᱮᱱᱟ-ᱟ %s | OSS ᱯᱩᱛᱷᱤ ᱚᱲᱟᱜ @@ -1069,11 +1145,11 @@ ᱨᱟᱹᱯᱩᱫ ᱠᱚ - ᱱᱤᱡᱮᱨᱟᱜ ᱞᱟᱹᱭ ᱥᱚᱫᱚᱨ + ᱱᱤᱥᱚᱱ ᱨᱮᱭᱟᱜ ᱱᱚᱴᱤᱥ ᱟᱢᱟᱜ ᱦᱚᱠ ᱠᱚ ᱵᱟᱲᱟᱭ ᱛᱟᱢ - ᱞᱟᱤᱥᱮᱸᱥ ᱨᱮᱭᱟᱜ ᱠᱷᱚᱵᱚᱨ + ᱞᱟᱭᱥᱮᱸᱱᱥ ᱨᱮᱭᱟᱜ ᱠᱷᱚᱵᱚᱨ ᱯᱩᱛᱷᱤ ᱚᱲᱟᱜ ᱡᱟ ᱟᱞᱮ ᱵᱮᱵᱷᱟᱨ ᱟᱞᱮ @@ -1107,15 +1183,15 @@ ᱵᱚᱞᱚᱱ ᱠᱚ ᱟᱨ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫ ᱠᱚ - ᱵᱚᱞᱚᱱ ᱠᱚ ᱟᱨ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫ ᱠᱚ ᱥᱟᱸᱪᱟᱣ + ᱞᱚᱜᱤᱱ ᱠᱚ ᱟᱨ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫ ᱠᱚ ᱥᱟᱸᱪᱟᱣ ᱢᱮ - ᱥᱟᱸᱪᱟᱣ ᱞᱟᱹᱜᱤᱛ ᱛᱮ ᱠᱩᱞᱤ + ᱥᱟᱸᱪᱟᱣ ᱞᱟᱹᱜᱤᱫ ᱛᱮ ᱠᱩᱠᱞᱤ ᱥᱟᱸᱪᱟᱣ ᱛᱤᱥ ᱦᱚᱸ ᱵᱟᱝ ᱟᱪᱛᱮ ᱯᱮᱨᱮᱡ - ᱵᱚᱞᱚᱱ ᱠᱚ ᱛᱷᱟᱨ ᱢᱮ + ᱞᱚᱜᱤᱱ ᱠᱚ ᱥᱤᱸᱠ ᱢᱮ ᱪᱚᱞᱩ @@ -1125,7 +1201,7 @@ ᱛᱷᱟᱨ ᱞᱟᱹᱜᱤᱛ ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱢᱮ - ᱥᱟᱸᱪᱟᱣᱠᱟᱱ ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱠᱚ + ᱥᱟᱸᱪᱟᱣᱠᱟᱱ ᱞᱚᱜᱤᱱ ᱠᱚ ᱪᱷᱟᱰᱟ ᱠᱚ @@ -1136,6 +1212,8 @@ ᱞᱚᱜᱤᱱ ᱠᱚ ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮ ᱟᱠᱷᱚᱨ ᱛᱷᱟᱨ ᱞᱮᱠᱟ ᱛᱮ + + ᱱᱤᱛᱚᱜ ᱵᱮᱵᱷᱟᱨᱟᱜ ᱥᱟᱭᱤᱴ @@ -1148,6 +1226,8 @@ ᱥᱟᱸᱪᱟᱣᱠᱟᱱ ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱠᱚ ᱧᱮᱞ ᱞᱟᱹᱜᱤᱛ ᱛᱮ ᱚᱱᱞᱚᱠ ᱢᱮ ᱰᱷᱮᱨ ᱥᱮᱬᱟᱭ ᱢᱮ + + ᱟᱢ ᱪᱮᱫ %s ᱱᱚᱶᱟ ᱞᱚᱜᱤᱱ ᱥᱟᱸᱪᱟᱣ ᱥᱮᱱᱟᱢ ᱠᱟᱱᱟ ᱥᱮ? ᱥᱟᱸᱪᱟᱣ @@ -1185,10 +1265,12 @@ ᱟᱢᱟᱜ ᱥᱟᱫᱷᱚᱱ ᱚᱱᱞᱚᱠ ᱢᱮ - ᱡᱚᱛᱚ ᱣᱮᱵᱥᱟᱭᱤᱴ ᱨᱮ ᱦᱩᱰᱩᱧ ᱢᱟᱨᱟᱝ ᱢᱮ + ᱥᱟᱱᱟᱢ ᱣᱮᱵᱥᱟᱭᱤᱴ ᱨᱮ ᱦᱩᱰᱩᱧ ᱢᱮ ᱧᱩᱛᱩᱢ (A-Z) + + ᱢᱟᱲᱟᱝ ᱵᱮᱵᱷᱟᱨᱟᱜ ᱞᱚᱜᱤᱱ ᱢᱮᱱᱭᱩ ᱥᱟᱞᱟᱭ ᱢᱮ @@ -1210,6 +1292,10 @@ ᱭᱩᱛᱩᱢ + + ᱵᱮᱵᱷᱟᱨ ᱞᱟᱹᱜᱤᱫ ᱥᱴᱨᱭᱸᱜ ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮ + + “%s” ᱥᱟᱞᱟᱜ ᱠᱣᱮᱨᱭ ᱵᱚᱫᱚᱞ ᱢᱮ ᱾ ᱡᱮᱢᱚᱱ:\nhttps://www.google.com/search?q=%s ᱰᱷᱮᱨ ᱥᱮᱬᱟᱭ ᱢᱮ @@ -1219,9 +1305,25 @@ ᱥᱮᱸᱫᱽᱨᱟ ᱤᱧᱡᱤᱱ ᱨᱮᱭᱟᱜ ᱧᱩᱛᱩᱢ ᱟᱫᱮᱨ ᱢᱮ + + “%s” ᱧᱩᱛᱩᱢ ᱛᱮ ᱢᱟᱲᱟᱝ ᱠᱷᱚᱱ ᱥᱮᱸᱫᱽᱨᱟ ᱤᱸᱡᱤᱱ ᱢᱮᱱᱟᱜᱼᱟ ᱾ + + ᱥᱮᱸᱫᱽᱨᱟ ᱥᱴᱨᱭᱸᱜ ᱟᱫᱮᱨ ᱢᱮ + + ᱥᱮᱸᱫᱽᱨᱟ ᱥᱴᱨᱭᱸᱜ ᱢᱮᱪ ᱠᱚ ᱨᱮᱭᱟᱜ ᱡᱮᱢᱚᱱ ᱯᱷᱚᱨᱢᱟᱴ ᱠᱚ ᱧᱮᱞ ᱵᱤᱰᱟᱹᱣ ᱢᱮ + + %s ᱨᱮ ᱡᱩᱲᱟᱹᱣ ᱛᱮ ᱵᱷᱩᱞ ᱦᱩᱭᱮᱱᱟ + + %s ᱛᱮᱭᱟᱨᱮᱱᱟ + + %s ᱥᱟᱸᱪᱟᱣᱮᱱᱟ %s ᱢᱮᱴᱟᱣᱮᱱᱟ + + %s ᱡᱷᱚᱛᱚ ᱱᱟᱣᱟ ᱥᱟᱹᱜᱩᱱ ᱫᱟᱨᱟᱢ + + ᱯᱭᱨᱟ ᱱᱟᱣᱟ ᱨᱤᱰᱤᱭᱟᱭᱤᱸᱰ ᱵᱨᱟᱩᱡᱚᱨ ᱛᱟᱸᱜᱤ ᱟᱠᱟᱫᱟᱭ, ᱵᱮᱥ ᱠᱟᱹᱢᱤ ᱟᱨ ᱯᱷᱤᱪᱚᱨ ᱠᱚ ᱥᱟᱞᱟᱜ ᱛᱮ ᱚᱠᱟ ᱫᱚ ᱟᱨᱦᱚᱸ ᱚᱱᱞᱟᱭᱤᱱ ᱠᱟᱹᱢᱤ ᱠᱚᱨᱟᱣ ᱞᱟᱹᱜᱤᱫ ᱜᱚᱲᱚ ᱢᱮᱟᱭ ᱾ \n\nᱫᱚᱭᱟᱠᱟᱛᱮ ᱛᱟᱸᱜᱤ ᱢᱮ ᱟᱢᱟᱜ %s ᱦᱟᱹᱞᱤᱭᱟᱜ ᱦᱟᱹᱵᱤᱡ %s ᱦᱟᱹᱞᱤᱭᱟᱼᱜ ᱠᱟᱱᱟ ... @@ -1232,31 +1334,77 @@ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫ ᱠᱚ - ᱵᱟᱛᱟᱣ ᱮᱢ ᱞᱟᱹᱜᱤᱛ: + ᱦᱮᱥᱟᱨᱤᱭᱟᱹ ᱮᱢ ᱞᱟᱹᱜᱤᱫ ᱛᱮ: - ᱑. Android ᱥᱟᱡᱟᱣ ᱨᱮ ᱪᱟᱞᱟ ᱢᱮ + ᱑. Android ᱥᱟᱡᱟᱣ ᱠᱚ ᱨᱮ ᱪᱟᱞᱟᱜ ᱢᱮ - ᱪᱷᱟᱹᱲ ᱚᱛᱟᱭ ᱢᱮ]]> + ᱪᱷᱟᱹᱲ ᱠᱚ ᱚᱛᱟᱭ ᱢᱮ]]> %1$s ᱪᱚᱞᱩᱤ ᱢᱮ]]> ᱡᱟᱯᱛᱤ ᱡᱚᱱᱚᱲᱟᱣ + + ᱱᱤᱼᱡᱟᱯᱛᱤ ᱡᱚᱱᱚᱲᱟᱣ + + ᱟᱢ ᱪᱮᱫ ᱡᱷᱚᱛᱚ ᱞᱮᱠᱷᱟᱛᱮ ᱡᱷᱚᱛᱚ ᱚᱱᱩᱢᱚᱛᱤ ᱡᱷᱚᱛᱚ ᱥᱟᱭᱤᱴ ᱠᱚ ᱞᱟᱹᱜᱤᱫ ᱢᱮᱴᱟᱣ ᱥᱮᱱᱟᱢ ᱠᱟᱱᱟ ᱥᱮ? + + ᱟᱢ ᱪᱮᱫ ᱡᱷᱚᱛᱚ ᱞᱮᱠᱷᱟᱛᱮ ᱡᱷᱚᱛᱚ ᱚᱱᱩᱢᱚᱛᱤ ᱱᱚᱶᱟ ᱥᱟᱭᱤᱴ ᱞᱟᱹᱜᱤᱫ ᱢᱮᱴᱟᱣ ᱥᱮᱱᱟᱢ ᱠᱟᱱᱟ ᱥᱮ? + + ᱟᱢ ᱪᱮᱫ ᱡᱷᱚᱛᱚ ᱞᱮᱠᱷᱟᱛᱮ ᱱᱚᱶᱟ ᱚᱱᱩᱢᱚᱛᱤ ᱱᱚᱣᱟ ᱥᱟᱭᱤᱴ ᱞᱟᱹᱜᱤᱫ ᱢᱮᱴᱟᱣ ᱥᱮᱱᱟᱢ ᱠᱟᱱᱟ ᱥᱮ? - ᱥᱟᱭᱤᱴ ᱪᱷᱟᱰᱟ ᱠᱚ ᱵᱚᱱᱩ-ᱟ + ᱥᱟᱭᱤᱴ ᱨᱮᱭᱟᱜ ᱪᱷᱟᱰᱟ ᱠᱚ ᱵᱚᱱᱩᱜ-ᱟ + + ᱵᱮᱥ ᱚᱱᱚᱞ ᱠᱚ + + ᱪᱮᱫ ᱟᱢ ᱜᱚᱴᱟ ᱢᱮᱱᱟᱢᱼᱟ ᱱᱚᱣᱟ ᱵᱩᱠᱢᱟᱨᱠ ᱢᱮᱴᱟᱣ ᱞᱟ.ᱜᱤᱫ ᱛᱮ? + + ᱛᱮᱛᱟᱱ ᱥᱟᱭᱤᱴ ᱨᱮ ᱥᱮᱞᱮᱫ ᱢᱮ + + ᱯᱚᱨᱢᱟᱱᱤᱡᱺ%1$s ᱢᱮᱴᱟᱣ ᱢᱮ ᱥᱟᱯᱲᱟᱣ + + ᱪᱮᱫ ᱟᱢ ᱜᱚᱴᱟ ᱢᱮᱱᱟᱢᱼᱟ ᱱᱚᱣᱟ ᱞᱚᱜᱤᱱ ᱢᱮᱴᱟᱣ ᱞᱟ.ᱜᱤᱫ ᱛᱮ? ᱢᱮᱴᱟᱣ ᱢᱮ + + ᱮᱴᱟᱜᱟᱜ ᱠᱚ ᱞᱚᱜᱤᱱ + + ᱣᱤᱵ ᱴᱷᱤᱠᱬᱟᱹ ᱞᱚᱜᱤᱱ ᱵᱚᱞᱚ ᱞᱟᱹᱜᱤᱫ ᱥᱟᱯᱲᱟᱣ ᱚᱞ ᱡᱟᱭᱜᱟ ᱾ + + ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ ᱞᱚᱜᱤᱱ ᱞᱟᱹᱜᱤᱫ ᱥᱟᱯᱲᱟᱣ ᱚᱞ ᱡᱟᱭᱜᱟ ᱾ + + ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫ ᱞᱚᱜᱤᱱ ᱞᱟᱹᱜᱤᱫ ᱥᱟᱯᱲᱟᱣ ᱚᱞ ᱡᱟᱭᱜᱟ ᱾ + + ᱞᱚᱜᱤᱱ ᱵᱚᱫᱚᱞ ᱠᱚ ᱥᱟᱸᱪᱟᱣ ᱢᱮ ᱾ ᱵᱚᱫᱚᱞ ᱩᱰᱩᱜ ᱜᱤᱰᱤ ᱢᱮ ᱥᱟᱯᱲᱟᱣ + + ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫ ᱨᱮᱭᱟᱜ ᱫᱚᱨᱠᱟᱨ ᱢᱮᱱᱟᱜ-ᱟ ᱨᱚᱲ ᱥᱮᱸᱫᱽᱨᱟ + + ᱱᱤᱛᱚᱜ ᱨᱚᱲ ᱢᱮ + + + ᱢᱤᱫᱴᱟᱹᱝ ᱵᱚᱞᱚ ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ ᱢᱟᱲᱟᱝ ᱠᱷᱣᱱ ᱢᱮᱱᱟᱭᱟ ᱾ + + + + ᱮᱴᱟᱜᱟᱼᱜ ᱥᱟᱫᱷᱚᱱ ᱡᱩᱰᱟᱹᱣ ᱢᱮ ᱾ + + ᱫᱚᱭᱟᱠᱟᱛᱮ ᱨᱤᱼᱚᱛᱷᱮᱱᱴᱤᱠᱮᱴ ᱢᱮ ᱾ + + ᱫᱚᱭᱟᱠᱟᱛᱮ ᱴᱮᱵ ᱥᱭᱸᱠᱤᱝ ᱮᱢ ᱪᱷᱚᱭ ᱢᱮ ᱾ + + ᱟᱢ ᱴᱷᱮᱱ ᱚᱠᱟ ᱦᱚᱸ ᱴᱮᱵ ᱠᱚ ᱚᱞᱜᱟ Firefox ᱢᱮᱱᱟᱜ ᱥᱟᱫᱷᱚᱱ ᱨᱮ ᱵᱟᱝ ᱠᱷᱩᱞᱟᱹ ᱟᱠᱟᱱᱟ ᱾ ᱟᱢᱟᱜ ᱮᱴᱟᱜ ᱥᱟᱫᱷᱚᱱ ᱠᱷᱚᱱ ᱴᱮᱵ ᱞᱤᱥᱴᱤ ᱫᱮᱠᱷᱟᱣ ᱢᱮ ᱾ @@ -1286,7 +1434,7 @@ ᱥᱚᱢᱟᱱ ᱥᱮᱸᱫᱽᱨᱟ, ᱥᱟᱭᱤᱴ ᱟᱨ ᱴᱮᱵ ᱠᱚ ᱛᱟᱭᱚᱢ ᱛᱮ ᱞᱚᱜᱚᱱ ᱥᱮᱴᱮᱨ ᱞᱟᱹᱜᱤᱫ ᱫᱳᱞ ᱛᱮᱨᱟᱴ ᱠᱟᱜ ᱢᱮ ᱾ - ᱟᱢ %s ᱞᱮᱠᱷᱟᱛᱮ ᱚᱞᱜᱟ Firefox browser ᱨᱮ ᱟᱢᱟᱜ ᱥᱟᱫᱷᱚᱱ ᱛᱮ ᱵᱚᱞᱚ ᱟᱠᱟᱱᱟᱢ ᱾ ᱟᱢ ᱪᱮᱫ ᱱᱚᱶᱟ ᱠᱷᱟᱛᱟ ᱛᱮ ᱵᱚᱞᱚ ᱥᱟᱱᱟᱢ ᱠᱟᱱᱟ ᱾ + ᱟᱢ %s ᱞᱮᱠᱷᱟᱛᱮ ᱚᱞᱜᱟ Firefox ᱵᱨᱟᱩᱡᱟᱹᱨ ᱨᱮ ᱟᱢᱟᱜ ᱥᱟᱫᱷᱚᱱ ᱛᱮ ᱵᱚᱞᱚ ᱟᱠᱟᱱᱟᱢ ᱾ ᱟᱢ ᱪᱮᱫ ᱱᱚᱶᱟ ᱠᱷᱟᱛᱟ ᱨᱮ ᱵᱚᱞᱚ ᱥᱟᱱᱟᱢ ᱠᱟᱱᱟ? ᱟᱢ ᱞᱚᱜᱚᱱ ᱵᱨᱟᱩᱡ ᱟᱨ ᱮᱯᱯ ᱞᱮᱠᱷᱟᱱ ᱚᱱᱩᱵᱷᱟᱹᱵ ᱤᱫᱤ ᱞᱟᱹᱜᱤᱫ ᱣᱮᱵᱥᱟᱭᱤᱴ ᱫᱚ ᱥᱟᱫᱷᱚᱱ ᱨᱮᱭᱟᱜ ᱚᱲᱟᱜ ᱥᱠᱨᱭᱤᱱ ᱨᱮ ᱥᱮᱞᱮᱫ ᱫᱟᱲᱮᱟᱜᱼᱟᱢ ᱾ diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index 6c9fce6fc..4924bd93a 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -1004,9 +1004,13 @@ Выдаляць звесткі аглядання пры выхадзе Аўтаматычна выдаляе дадзеныя аглядання, калі вы выбіраеце "Выйсці" ў галоўным меню + + Аўтаматычна выдаляе дадзеныя аглядання, калі вы выбіраеце \"Выйсці\" ў галоўным меню Выйсці + + Гэта выдаліць усе дадзеныя вашага аглядання. Адмена @@ -1236,6 +1240,8 @@ Спыняе збор унікальнай ідэнтыфікацыйнай інфармацыі пра вашу прыладу, якая можа быць выкарыстана для сачэння. Змест з элементамі сачэння + + Фіялетавы колер шчыта азначае, што %s перапыніў асочвальнікаў на сайце. Націсніце, каб даведацца больш. Ахова ўключана на гэтым сайце diff --git a/app/src/main/res/values-oc/strings.xml b/app/src/main/res/values-oc/strings.xml index b4c1555b5..4ef920b5a 100644 --- a/app/src/main/res/values-oc/strings.xml +++ b/app/src/main/res/values-oc/strings.xml @@ -267,6 +267,8 @@ Dobrir los ligams en navigacion privada Permetre las capturas d’ecran en navegacion privada + + Se permés, los onglets privats seràn tanben visibles quand mantunas aplicacions son dubèrtas Ajustar un acorchi per la navegacion privada diff --git a/app/src/main/res/values-tg/strings.xml b/app/src/main/res/values-tg/strings.xml index 4dc4d5e37..ccdabcbe4 100644 --- a/app/src/main/res/values-tg/strings.xml +++ b/app/src/main/res/values-tg/strings.xml @@ -53,6 +53,9 @@ Шумо дар реҷаи махфӣ қарор доред + + Асотири маълум дар бораи тамошокунии махфӣ + Нест кардани ҷаласа @@ -64,11 +67,17 @@ Не, ташаккур + + + Firefox-ро зудтар кушоед. Ба экрани асосии худ виҷетеро илова намоед. Илова кардани виҷет Ҳоло не + + + Шумо метавонед Firefox-ро танзим кунед, ки он дар барномаҳо пайвандҳоро ба таври худкор кушояд. Гузариш ба танзимот @@ -250,6 +259,8 @@ Баррасии махфӣ Кушодани пайвандҳо дар варақаи махфӣ + + Иҷозат додани аксҳои экран ҳангоми тамошокунии махфӣ Илова кардани миёнбури тамошои махфӣ @@ -258,6 +269,8 @@ Сервери ҳисоби фармоишии Firefox Сервери ҳамоҳангсозии фармоишӣ + + Сервери ҳисоб/ҳамоҳангсозии Firefox тағйир ёфт. Барои татбиқ кардани тағйирот барнома бояд хомӯш карда шавад… Ҳисоб @@ -272,6 +285,8 @@ Ишораҳо Фармоишдиҳӣ + + Ба воситаи ҳисоби Firefox-и худ хатбаракҳо, таърих ва чизҳои дигарро ҳамоҳанг кунед. Ҳисоби Firefox @@ -340,6 +355,14 @@ Ҳамоҳангсозӣ… + + Ҳамоҳангсозӣ иҷро нашуд. Иҷрои охирин: %s + + Ҳамоҳангсозӣ иҷро нашуд. Ҳамоҳангсозии охирин: ҳеҷ гоҳ + + Ҳамоҳангсозии охирин: %s + + Ҳамоҳангсозии охирин: ҳеҷ гоҳ @@ -460,6 +483,8 @@ Пӯшидан + + Варақаҳои ба наздикӣ пӯшидашуда Намоиш додани таърихи пурра Мубодила кардани ҳамаи варақаҳо + + Варақаҳои ба наздикӣ пӯшидашуда Танзимоти варақа @@ -509,6 +536,8 @@ Варақаи нав Гузариш ба саҳифаи асосӣ + + Тоза кардани варақаҳо аз маҷмӯа Пӯшидани варақа @@ -783,6 +812,8 @@ Фиристодан ба дастгоҳ Ҳамаи амалҳо + + Истифодашудаи охирин Барои ҳамоҳангсозӣ ворид шавед @@ -796,11 +827,16 @@ Фаҳмо + + Ба ин барнома мубодила карда намешавад Фиристодан ба дастгоҳ Ягон дастгоҳ пайваст нашуд + + Пайваст кардани дастгоҳи дигар… + Ҷаласаи баррасии махфӣ @@ -847,6 +883,8 @@ РАД КАРДАН Шумо мутмаин ҳастед, ки мехоҳед %1$s-ро нест намоед? + + Агар шумо ин варақаро нест кунед, тамоми маҷмӯа нест карда мешавад. Шумо метавонед маҷмӯаҳои навро дар вақти дилхоҳ эҷод намоед. %1$s-ро нест мекунед? @@ -864,11 +902,16 @@ Андозагирии худкори ҳуруф - Нест кардани маълумоти баррасӣ + Нест кардани маълумоти тамошокунӣ Варақаҳои кушодашуда %d варақа + + Таърихи тамошокунӣ ва маълумоти сомонаҳо + + %d нишонӣ Таърих Кукиҳо + + Шумо аз аксари сомонаҳо мебароед + + Тасвирҳо ва файлҳои нигоҳдошташуда + + Фазои захирагоҳро озод намоед + + Иҷозатҳои сомона + + Нест кардани маълумоти тамошокунӣ - Нест кардани маълумоти баррасӣ ҳангоми баромад + Нест кардани маълумоти тамошокунӣ ҳангоми баромад + + Вақте ки шумо аз менюи асосӣ имкони "Хомӯш кардан"-ро интихоб мекунед, маълумоти тамошокунӣ ба таври худкор нест карда мешавад + + Вақте ки шумо аз менюи асосӣ имкони \"Хомӯш кардан\"-ро интихоб мекунед, маълумоти тамошокунӣ ба таври худкор нест карда мешавад Баромадан + + Ин амал маълумоти тамошокуниро нест мекунад. + + %s маълумоти тамошокунии интихобшударо нест мекунад. Бекор кардан Нест кардан + + Маълумоти тамошокунӣ нест карда шуд + + Несткунии маълумоти тамошокунӣ… + + + Нашри «Ҳаршабона»-и навро ба даст оред + Хуш омадед ба %s! + + Аллакай ҳисобе доред? Бо %s шинос шавед Бинед, ки чӣ нав аст + + Ҷавобҳоро дар ин ҷо гиред + + Ба воситаи ҳисоби Firefox-и худ ҳамоҳангсозии хатбаракҳо, ниҳонвожаҳо ва чизҳои дигарро оғоз кунед. Маълумоти бештар @@ -915,6 +990,11 @@ Стандартӣ (пешфарз) Реҷаи тамошои махфӣ + + Варақаи махфиро як бор кушоед: Ба нишонии %s зарба занед. + + Варақаҳои махфиро ҳар вақт кушоед: Танзимоти тамошокунии махфии худро навсозӣ кунед. Кушодани танзимот @@ -951,6 +1031,12 @@ Ворид шудан ба воситаи камера Ба ҷояш почтаи электрониро истифода баред + + Барои танзими ҳамоҳангсозӣ байни дастгоҳҳо ҳисоберо эҷод намоед]]> + + Firefox ҳамоҳангсозиро бо ҳисоби шумо қатъ мекунад, аммо ягон маълумоти тамошокунии шуморо дар ин дастгоҳ нест намекунад. + + %s ҳамоҳангсозиро бо ҳисоби шумо қатъ мекунад, аммо ягон маълумоти тамошокунии шуморо дар ин дастгоҳ нест намекунад. Қатъ кардани пайваст @@ -963,6 +1049,8 @@ Танзимоти муҳофизат Муҳофизати такмилёфта аз пайгирӣ + + Тамошокунӣ бе пайгирӣ Маълумоти бештар @@ -987,6 +1075,8 @@ Манъ карда мешавад Иҷозат дода мешавад + + Кукиҳоеро, ки шабакаҳои рекламавӣ ва ширкатҳои таҳлилӣ барои ҷамъоварии маълумоти тамошокунии шумо дар бисёр сомонаҳо истифода мебаранд, манъ мекунад. Криптомайнерҳо @@ -1145,6 +1235,8 @@ Дигар Ном + + Сатри ҷустуҷӯ барои истифода Маълумоти бештар @@ -1152,6 +1244,8 @@ Сатри ҷустуҷӯро ворид кунед + + Хатои пайвастшавӣ ба “%s” %s эҷод карда шуд From a5de2c0352cd47693a4e3bf5fac00faeb9526ba0 Mon Sep 17 00:00:00 2001 From: Jocelyne Abi Haidar Date: Sun, 4 Oct 2020 21:13:18 +0300 Subject: [PATCH 04/71] For #15675: Disable Save button when editing saved login until something has been changed set save button state by calling invalidateOptionsMenu, causing onPrepareOptionsMenu to be called which will enable/disable the save button depending on if changes have been made or not --- .../logins/fragment/EditLoginFragment.kt | 47 +++++++------------ 1 file changed, 16 insertions(+), 31 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/settings/logins/fragment/EditLoginFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/logins/fragment/EditLoginFragment.kt index fccf33aa9..9adcee40f 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/logins/fragment/EditLoginFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/logins/fragment/EditLoginFragment.kt @@ -13,7 +13,6 @@ import android.view.Menu import android.view.MenuInflater import android.view.MenuItem import android.view.View -import androidx.appcompat.view.menu.ActionMenuItemView import androidx.core.content.ContextCompat import androidx.core.view.isVisible import androidx.fragment.app.Fragment @@ -57,7 +56,6 @@ class EditLoginFragment : Fragment(R.layout.fragment_edit_login) { private var usernameChanged = false private var passwordChanged = false - private var saveEnabled = false private var validPassword = true private var validUsername = true @@ -90,8 +88,9 @@ class EditLoginFragment : Fragment(R.layout.fragment_edit_login) { usernameText.text = args.savedLoginItem.username.toEditable() passwordText.text = args.savedLoginItem.password.toEditable() + clearUsernameTextButton.isEnabled = oldLogin.username.isNotEmpty() + formatEditableValues() - initSaveState() setUpClickListeners() setUpTextListeners() togglePasswordReveal(passwordText, revealPasswordButton) @@ -101,18 +100,6 @@ class EditLoginFragment : Fragment(R.layout.fragment_edit_login) { } } - private fun initSaveState() { - saveEnabled = false // don't enable saving until something has been changed - val saveButton = - activity?.findViewById(R.id.save_login_button) - saveButton?.isEnabled = saveEnabled - - usernameChanged = false - passwordChanged = false - - clearUsernameTextButton.isEnabled = oldLogin.username.isNotEmpty() - } - private fun formatEditableValues() { hostnameText.isClickable = false hostnameText.isFocusable = false @@ -263,20 +250,20 @@ class EditLoginFragment : Fragment(R.layout.fragment_edit_login) { } private fun setSaveButtonState() { - val saveButton = activity?.findViewById(R.id.save_login_button) - val changesMadeWithNoErrors = - validUsername && validPassword && (usernameChanged || passwordChanged) - - changesMadeWithNoErrors.let { - saveButton?.isEnabled = it - saveEnabled = it - } + activity?.invalidateOptionsMenu() } override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { inflater.inflate(R.menu.login_save, menu) } + override fun onPrepareOptionsMenu(menu: Menu) { + val saveButton = menu.findItem(R.id.save_login_button) + val changesMadeWithNoErrors = + validUsername && validPassword && (usernameChanged || passwordChanged) + saveButton.isEnabled = changesMadeWithNoErrors // don't enable saving until something has been changed + } + override fun onPause() { redirectToReAuth( listOf(R.id.loginDetailFragment), @@ -288,14 +275,12 @@ class EditLoginFragment : Fragment(R.layout.fragment_edit_login) { override fun onOptionsItemSelected(item: MenuItem): Boolean = when (item.itemId) { R.id.save_login_button -> { view?.hideKeyboard() - if (saveEnabled) { - interactor.onSaveLogin( - args.savedLoginItem.guid, - usernameText.text.toString(), - passwordText.text.toString() - ) - requireComponents.analytics.metrics.track(Event.EditLoginSave) - } + interactor.onSaveLogin( + args.savedLoginItem.guid, + usernameText.text.toString(), + passwordText.text.toString() + ) + requireComponents.analytics.metrics.track(Event.EditLoginSave) true } else -> false From 4a4edeb184f658d7abcbc95e6841e0a12bb97523 Mon Sep 17 00:00:00 2001 From: Michael Comella Date: Tue, 29 Sep 2020 14:35:20 -0700 Subject: [PATCH 05/71] For #13959: count StrictMode suppressions on startup. --- .../java/org/mozilla/fenix/StrictModeManager.kt | 14 ++++++++++++++ .../org/mozilla/fenix/StrictModeManagerTest.kt | 7 +++++++ 2 files changed, 21 insertions(+) diff --git a/app/src/main/java/org/mozilla/fenix/StrictModeManager.kt b/app/src/main/java/org/mozilla/fenix/StrictModeManager.kt index b52faf9b3..13448b305 100644 --- a/app/src/main/java/org/mozilla/fenix/StrictModeManager.kt +++ b/app/src/main/java/org/mozilla/fenix/StrictModeManager.kt @@ -6,9 +6,12 @@ package org.mozilla.fenix import android.os.Build import android.os.StrictMode +import androidx.annotation.VisibleForTesting +import androidx.annotation.VisibleForTesting.PRIVATE import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager import mozilla.components.support.ktx.android.os.resetAfter +import org.mozilla.fenix.perf.Performance private const val MANUFACTURE_HUAWEI: String = "HUAWEI" private const val MANUFACTURE_ONE_PLUS: String = "OnePlus" @@ -18,9 +21,14 @@ private const val MANUFACTURE_ONE_PLUS: String = "OnePlus" */ class StrictModeManager(config: Config) { + val logger = Performance.logger // public to be accessible by inline functions. + // This is public so it can be used by inline functions. val isEnabledByBuildConfig = config.channel.isDebug + @VisibleForTesting(otherwise = PRIVATE) + var suppressionCount: Long = 0 + /*** * Enables strict mode for debug purposes. meant to be run only in the main process. * @param setPenaltyDeath boolean value to decide setting the penaltyDeath as a penalty. @@ -83,6 +91,12 @@ class StrictModeManager(config: Config) { // Calling resetAfter takes 1-2ms (unknown device) so we only execute it if StrictMode can // actually be enabled. https://github.com/mozilla-mobile/fenix/issues/11617 return if (isEnabledByBuildConfig) { + // This can overflow and crash. However, it's unlikely we'll suppress StrictMode 9 + // quintillion times in a build config where StrictMode is enabled so we don't handle it + // because it'd increase complexity. + suppressionCount += 1 + logger.warn("StrictMode violation suppressed: #$suppressionCount") + policy.resetAfter(functionBlock) } else { functionBlock() diff --git a/app/src/test/java/org/mozilla/fenix/StrictModeManagerTest.kt b/app/src/test/java/org/mozilla/fenix/StrictModeManagerTest.kt index f4f3e21a8..a6a79e5dc 100644 --- a/app/src/test/java/org/mozilla/fenix/StrictModeManagerTest.kt +++ b/app/src/test/java/org/mozilla/fenix/StrictModeManagerTest.kt @@ -113,4 +113,11 @@ class StrictModeManagerTest { verify { StrictMode.setThreadPolicy(expectedPolicy) } } + + @Test + fun `GIVEN we're in debug mode WHEN we suppress StrictMode THEN the suppressed count increases`() { + assertEquals(0, debugManager.suppressionCount) + debugManager.resetAfter(StrictMode.allowThreadDiskReads()) { "" } + assertEquals(1, debugManager.suppressionCount) + } } From c33aafb0244144d59dea1961165bbc5133b57585 Mon Sep 17 00:00:00 2001 From: Michael Comella Date: Wed, 30 Sep 2020 08:56:42 -0700 Subject: [PATCH 06/71] For #13959: add HomeActivityTestRule.skipOnboarding. This is more correct, faster, and results in less copy-paste duplication than the current behavior: homeScreen { }.dismissOnboarding() Which opens settings to dismiss onboarding. --- .../fenix/helpers/HomeActivityTestRule.kt | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/app/src/androidTest/java/org/mozilla/fenix/helpers/HomeActivityTestRule.kt b/app/src/androidTest/java/org/mozilla/fenix/helpers/HomeActivityTestRule.kt index 2b47a32a0..10b8b5d33 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/helpers/HomeActivityTestRule.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/helpers/HomeActivityTestRule.kt @@ -9,6 +9,8 @@ import androidx.test.platform.app.InstrumentationRegistry import androidx.test.rule.ActivityTestRule import androidx.test.uiautomator.UiDevice import org.mozilla.fenix.HomeActivity +import org.mozilla.fenix.onboarding.FenixOnboarding +import org.mozilla.fenix.ui.robots.appContext /** * A [org.junit.Rule] to handle shared test set up for tests on [HomeActivity]. @@ -17,11 +19,16 @@ import org.mozilla.fenix.HomeActivity * @param launchActivity See [ActivityTestRule] */ -class HomeActivityTestRule(initialTouchMode: Boolean = false, launchActivity: Boolean = true) : +class HomeActivityTestRule( + initialTouchMode: Boolean = false, + launchActivity: Boolean = true, + private val skipOnboarding: Boolean = false +) : ActivityTestRule(HomeActivity::class.java, initialTouchMode, launchActivity) { override fun beforeActivityLaunched() { super.beforeActivityLaunched() setLongTapTimeout() + if (skipOnboarding) { skipOnboardingBeforeLaunch() } } } @@ -35,12 +42,14 @@ class HomeActivityTestRule(initialTouchMode: Boolean = false, launchActivity: Bo class HomeActivityIntentTestRule( initialTouchMode: Boolean = false, - launchActivity: Boolean = true + launchActivity: Boolean = true, + private val skipOnboarding: Boolean = false ) : IntentsTestRule(HomeActivity::class.java, initialTouchMode, launchActivity) { override fun beforeActivityLaunched() { super.beforeActivityLaunched() setLongTapTimeout() + if (skipOnboarding) { skipOnboardingBeforeLaunch() } } } @@ -49,3 +58,9 @@ fun setLongTapTimeout() { val mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()) mDevice.executeShellCommand("settings put secure long_press_timeout 3000") } + +private fun skipOnboardingBeforeLaunch() { + // The production code isn't aware that we're using + // this API so it can be fragile. + FenixOnboarding(appContext).finish() +} From b222376cb07677be5fc4e5013ce9f55a0f0818d8 Mon Sep 17 00:00:00 2001 From: Michael Comella Date: Tue, 29 Sep 2020 15:12:02 -0700 Subject: [PATCH 07/71] For #13959: add test to prevent increasing StrictMode suppression count. --- .github/CODEOWNERS | 1 + .../StrictModeStartupSuppressionCountTest.kt | 57 +++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 app/src/androidTest/java/org/mozilla/fenix/ui/StrictModeStartupSuppressionCountTest.kt diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 81aa72d6d..87d873964 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -48,6 +48,7 @@ # Possible startup regressions *Application.kt @mozilla-mobile/Performance +*StrictMode*kt @mozilla-mobile/Performance # We want to be aware of new features behind flags as well as features # about to be enabled. diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/StrictModeStartupSuppressionCountTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/StrictModeStartupSuppressionCountTest.kt new file mode 100644 index 000000000..800d81f6c --- /dev/null +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/StrictModeStartupSuppressionCountTest.kt @@ -0,0 +1,57 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.fenix.ui + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.uiautomator.UiDevice +import org.junit.Assert.assertEquals +import org.junit.Rule +import org.junit.Test +import org.mozilla.fenix.ext.components +import org.mozilla.fenix.helpers.HomeActivityTestRule + +// PLEASE CONSULT WITH PERF TEAM BEFORE CHANGING THIS VALUE. +private const val EXPECTED_SUPPRESSION_COUNT = 12 + +private const val FAILURE_MSG = """StrictMode startup suppression count does not match expected count. + Did this PR add or call code that suppresses a StrictMode violation? + Did you know that suppressing a StrictMode violation can introduce performance regressions? + + If so, please do your best to implement a solution without suppressing StrictMode. + Please consult the perf team if you have questions or believe suppressing StrictMode + is the optimal solution. + + If this PR removed code that suppressed StrictMode, great! Please decrement the suppression count. + +""" + +/** + * A performance test to limit the number of StrictMode suppressions on startup. + * This test was written by the perf team. + * + * StrictMode detects main thread IO, which is often indicative of a performance issue. + * It's easy to suppress StrictMode so we wrote a test to ensure we have a discussion + * if the StrictMode count changes. The perf team is code owners for this file so they + * should be notified when the count is modified. + * + * IF YOU UPDATE THE TEST NAME, UPDATE CODE OWNERS. + */ +class StrictModeStartupSuppressionCountTest { + @get:Rule + val activityTestRule = HomeActivityTestRule(skipOnboarding = true) + + private val uiDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()) + + @Test + fun verifyStrictModeSuppressionCount() { + uiDevice.waitForIdle() // wait for async UI to load. + + // This might cause intermittents: at an arbitrary point after start up (such as the visual + // completeness queue), we might run code on the main thread that suppresses StrictMode, + // causing this number to fluctuate depending on device speed. We'll deal with it if it occurs. + val actual = activityTestRule.activity.components.strictMode.suppressionCount.toInt() + assertEquals(FAILURE_MSG, EXPECTED_SUPPRESSION_COUNT, actual) + } +} From 66f220c22a155350f11e594ddd590c9ed5db0f8f Mon Sep 17 00:00:00 2001 From: Michael Comella Date: Wed, 30 Sep 2020 11:49:06 -0700 Subject: [PATCH 08/71] For #13959: improve custom detekt violation output. Before it used to output the violations all one one line. Now it looks like: ``` MozillaStrictModeSuppression: 'import mozilla.components.support.ktx.android.os.resetAfter' at (17,1) in /StrictModeManager.kt Please use `components.strictMode.resetAfter` instead because it has performance improvements and additional code to monitor for performance regressions. MozillaStrictModeSuppression: 'setThreadPolicy(threadPolicy.build())' at (56,24) in /StrictModeManager.kt Please use `components.strictMode.resetAfter` instead because it has performance improvements and additional code to monitor for performance regressions. MozillaStrictModeSuppression: 'setVmPolicy(builder.build())' at (71,24) in /StrictModeManager.kt NOT YET IMPLEMENTED: please consult the perf team about implementing`StrictModeManager.resetAfter`: we want to understand the performance implications of suppressing setVmPolicy before allowing it. ``` --- .../detektrules/CustomRulesetConsoleReport.kt | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/mozilla-detekt-rules/src/main/java/org/mozilla/fenix/detektrules/CustomRulesetConsoleReport.kt b/mozilla-detekt-rules/src/main/java/org/mozilla/fenix/detektrules/CustomRulesetConsoleReport.kt index 8bd04971b..8266688bf 100644 --- a/mozilla-detekt-rules/src/main/java/org/mozilla/fenix/detektrules/CustomRulesetConsoleReport.kt +++ b/mozilla-detekt-rules/src/main/java/org/mozilla/fenix/detektrules/CustomRulesetConsoleReport.kt @@ -1,13 +1,21 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + package org.mozilla.fenix.detektrules import io.gitlab.arturbosch.detekt.api.ConsoleReport import io.gitlab.arturbosch.detekt.api.Detektion +/** + * A reporter that custom formats violations of our custom lint rules. + */ class CustomRulesetConsoleReport : ConsoleReport() { - @Suppress("DEPRECATION") + @Suppress("DEPRECATION") // locationAsString override fun render(detektion: Detektion): String? { - return detektion.findings["mozilla-detekt-rules"]?.fold("") { output, finding -> - output + finding.locationAsString + ": " + finding.messageOrDescription() + return detektion.findings["mozilla-detekt-rules"]?.fold("") { accumulator, finding -> + accumulator + "${finding.id}:\n ${finding.locationAsString}\n ${finding.messageOrDescription()}\n\n" + // This creates an extra newline at the very end but it's not worth fixing. } } } \ No newline at end of file From 3b5d6d58d9b7a756886a653ff78a569533320e25 Mon Sep 17 00:00:00 2001 From: Michael Comella Date: Mon, 21 Sep 2020 14:41:37 -0700 Subject: [PATCH 09/71] For #13959: add MozillaStrictModeSuppression detekt check. --- .../org/mozilla/fenix/StrictModeManager.kt | 25 +++++-- config/detekt.yml | 2 + .../detektrules/CustomRulesetProvider.kt | 1 + .../MozillaStrictModeSuppression.kt | 69 +++++++++++++++++++ 4 files changed, 92 insertions(+), 5 deletions(-) create mode 100644 mozilla-detekt-rules/src/main/java/org/mozilla/fenix/detektrules/MozillaStrictModeSuppression.kt diff --git a/app/src/main/java/org/mozilla/fenix/StrictModeManager.kt b/app/src/main/java/org/mozilla/fenix/StrictModeManager.kt index 13448b305..16ffa3d79 100644 --- a/app/src/main/java/org/mozilla/fenix/StrictModeManager.kt +++ b/app/src/main/java/org/mozilla/fenix/StrictModeManager.kt @@ -2,6 +2,11 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +// This class implements the alternative ways to suppress StrictMode with performance +// monitoring by wrapping the raw methods. This lint check tells us not to use the raw +// methods so we suppress the check. +@file:Suppress("MozillaStrictModeSuppression") + package org.mozilla.fenix import android.os.Build @@ -26,6 +31,14 @@ class StrictModeManager(config: Config) { // This is public so it can be used by inline functions. val isEnabledByBuildConfig = config.channel.isDebug + /** + * The number of times StrictMode has been suppressed. StrictMode can be used to prevent main + * thread IO but it's easy to suppress. We use this value, in combination with: + * - a test: that fails if the suppression count increases + * - a lint check: to ensure this value gets used instead of functions that work around it + * - code owners: to prevent modifications to these above items without perf knowing + * to make suppressions a more deliberate act. + */ @VisibleForTesting(otherwise = PRIVATE) var suppressionCount: Long = 0 @@ -78,12 +91,14 @@ class StrictModeManager(config: Config) { /** * Runs the given [functionBlock] and sets the given [StrictMode.ThreadPolicy] after its * completion when in a build configuration that has StrictMode enabled. If StrictMode is - * not enabled, simply runs the [functionBlock]. - * - * This function is written in the style of [AutoCloseable.use]. + * not enabled, simply runs the [functionBlock]. This function is written in the style of + * [AutoCloseable.use]. * - * This is significantly less convenient to run than when it was written as an extension function - * on [StrictMode.ThreadPolicy] but I think this is okay: it shouldn't be easy to ignore StrictMode. + * This function contains perf improvements so it should be + * called instead of [mozilla.components.support.ktx.android.os.resetAfter] (using the wrong + * method should be prevented by a lint check). This is significantly less convenient to run than + * when it was written as an extension function on [StrictMode.ThreadPolicy] but I think this is + * okay: it shouldn't be easy to ignore StrictMode. * * @return the value returned by [functionBlock]. */ diff --git a/config/detekt.yml b/config/detekt.yml index 180847b99..d178ee322 100644 --- a/config/detekt.yml +++ b/config/detekt.yml @@ -112,6 +112,8 @@ mozilla-detekt-rules: # with the debuggable flag or not. Use a check for different build variants, # instead. bannedProperties: "BuildConfig.DEBUG" + MozillaStrictModeSuppression: + active: true MozillaCorrectUnitTestRunner: active: true diff --git a/mozilla-detekt-rules/src/main/java/org/mozilla/fenix/detektrules/CustomRulesetProvider.kt b/mozilla-detekt-rules/src/main/java/org/mozilla/fenix/detektrules/CustomRulesetProvider.kt index 1a4c0f67e..509b4efe8 100644 --- a/mozilla-detekt-rules/src/main/java/org/mozilla/fenix/detektrules/CustomRulesetProvider.kt +++ b/mozilla-detekt-rules/src/main/java/org/mozilla/fenix/detektrules/CustomRulesetProvider.kt @@ -15,6 +15,7 @@ class CustomRulesetProvider : RuleSetProvider { ruleSetId, listOf( MozillaBannedPropertyAccess(config), + MozillaStrictModeSuppression(config), MozillaCorrectUnitTestRunner(config) ) ) diff --git a/mozilla-detekt-rules/src/main/java/org/mozilla/fenix/detektrules/MozillaStrictModeSuppression.kt b/mozilla-detekt-rules/src/main/java/org/mozilla/fenix/detektrules/MozillaStrictModeSuppression.kt new file mode 100644 index 000000000..00fe2e8e7 --- /dev/null +++ b/mozilla-detekt-rules/src/main/java/org/mozilla/fenix/detektrules/MozillaStrictModeSuppression.kt @@ -0,0 +1,69 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.fenix.detektrules + +import io.gitlab.arturbosch.detekt.api.CodeSmell +import io.gitlab.arturbosch.detekt.api.Config +import io.gitlab.arturbosch.detekt.api.Debt +import io.gitlab.arturbosch.detekt.api.Entity +import io.gitlab.arturbosch.detekt.api.Issue +import io.gitlab.arturbosch.detekt.api.Rule +import io.gitlab.arturbosch.detekt.api.Severity +import org.jetbrains.kotlin.psi.KtCallExpression +import org.jetbrains.kotlin.psi.KtImportDirective + +private const val VIOLATION_MSG = "Please use `components.strictMode.resetAfter` instead because it has " + + "performance improvements and additional code to monitor for performance regressions." + +/** + * A check to prevent us from working around mechanisms we implemented to prevent suppressing StrictMode. + * + * IF YOU UPDATE THIS FILE NAME, UPDATE CODE OWNERS. + */ +class MozillaStrictModeSuppression(config: Config) : Rule(config) { + override val issue = Issue( + "MozillaStrictModeSuppression", + Severity.Performance, + "Prevents us from working around mechanisms we implemented to prevent suppressing StrictMode", + Debt.TEN_MINS + ) + + override fun visitImportDirective(importDirective: KtImportDirective) { + super.visitImportDirective(importDirective) + reportIfImportAcResetAfter(importDirective) + } + + override fun visitCallExpression(expression: KtCallExpression) { + super.visitCallExpression(expression) + reportIfCallStrictModeSetPolicy(expression) + } + + private fun reportIfImportAcResetAfter(importDirective: KtImportDirective) { + if (importDirective.importPath?.toString() == "mozilla.components.support.ktx.android.os.resetAfter") { + report(CodeSmell(issue, Entity.from(importDirective), VIOLATION_MSG)) + } + } + + private fun reportIfCallStrictModeSetPolicy(expression: KtCallExpression) { + // There is probably a more correct way of doing this but this API is not well documented + // so it's not worth our time, I think. + val receiver = expression.parent?.firstChild?.node?.chars + val calledMethod = expression.calleeExpression?.firstChild?.node?.chars + + if (receiver == "StrictMode") { + val violationMsg = when (calledMethod) { + "setThreadPolicy" -> VIOLATION_MSG + "setVmPolicy" -> "NOT YET IMPLEMENTED: please consult the perf team about implementing" + + "`StrictModeManager.resetAfter`: we want to understand the performance implications " + + "of suppressing setVmPolicy before allowing it." + else -> null + } + + violationMsg?.let { msg -> + report(CodeSmell(issue, Entity.from(expression), msg)) + } + } + } +} From 50959d997eb949c25f45981aabbf80d681053344 Mon Sep 17 00:00:00 2001 From: Michael Comella Date: Wed, 30 Sep 2020 16:11:53 -0700 Subject: [PATCH 10/71] For #13959: add marker when StrictMode is suppressed. --- .../java/org/mozilla/fenix/StrictModeManager.kt | 17 ++++++++++++++++- .../org/mozilla/fenix/components/Components.kt | 2 +- .../org/mozilla/fenix/StrictModeManagerTest.kt | 7 +++++-- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/StrictModeManager.kt b/app/src/main/java/org/mozilla/fenix/StrictModeManager.kt index 16ffa3d79..ce47612b4 100644 --- a/app/src/main/java/org/mozilla/fenix/StrictModeManager.kt +++ b/app/src/main/java/org/mozilla/fenix/StrictModeManager.kt @@ -10,12 +10,14 @@ package org.mozilla.fenix import android.os.Build +import android.os.Looper import android.os.StrictMode import androidx.annotation.VisibleForTesting import androidx.annotation.VisibleForTesting.PRIVATE import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager import mozilla.components.support.ktx.android.os.resetAfter +import org.mozilla.fenix.components.Components import org.mozilla.fenix.perf.Performance private const val MANUFACTURE_HUAWEI: String = "HUAWEI" @@ -24,9 +26,19 @@ private const val MANUFACTURE_ONE_PLUS: String = "OnePlus" /** * Manages strict mode settings for the application. */ -class StrictModeManager(config: Config) { +class StrictModeManager( + config: Config, + + // Ideally, we'd pass in a more specific value but there is a circular dependency: StrictMode + // is passed into Core but we'd need to pass in Core here. Instead, we take components and later + // fetch the value we need from it. + // + // Public to be accessible by inline functions. + val components: Components +) { val logger = Performance.logger // public to be accessible by inline functions. + val mainLooper = Looper.getMainLooper() // public to be accessible by inline functions. // This is public so it can be used by inline functions. val isEnabledByBuildConfig = config.channel.isDebug @@ -111,6 +123,9 @@ class StrictModeManager(config: Config) { // because it'd increase complexity. suppressionCount += 1 logger.warn("StrictMode violation suppressed: #$suppressionCount") + if (Thread.currentThread() == mainLooper.thread) { // markers only supported on main thread. + components.core.engine.profiler?.addMarker("StrictMode.suppression", "Count: $suppressionCount") + } policy.resetAfter(functionBlock) } else { diff --git a/app/src/main/java/org/mozilla/fenix/components/Components.kt b/app/src/main/java/org/mozilla/fenix/components/Components.kt index cbd96e20e..29b2c115c 100644 --- a/app/src/main/java/org/mozilla/fenix/components/Components.kt +++ b/app/src/main/java/org/mozilla/fenix/components/Components.kt @@ -132,7 +132,7 @@ class Components(private val context: Context) { val performance by lazy { PerformanceComponent() } val push by lazy { Push(context, analytics.crashReporter) } val wifiConnectionMonitor by lazy { WifiConnectionMonitor(context as Application) } - val strictMode by lazy { StrictModeManager(Config) } + val strictMode by lazy { StrictModeManager(Config, this) } val settings by lazy { Settings(context) } diff --git a/app/src/test/java/org/mozilla/fenix/StrictModeManagerTest.kt b/app/src/test/java/org/mozilla/fenix/StrictModeManagerTest.kt index a6a79e5dc..49ad3e280 100644 --- a/app/src/test/java/org/mozilla/fenix/StrictModeManagerTest.kt +++ b/app/src/test/java/org/mozilla/fenix/StrictModeManagerTest.kt @@ -21,6 +21,7 @@ import org.junit.Assert.fail import org.junit.Before import org.junit.Test import org.junit.runner.RunWith +import org.mozilla.fenix.components.Components import org.mozilla.fenix.helpers.FenixRobolectricTestRunner @RunWith(FenixRobolectricTestRunner::class) @@ -36,13 +37,15 @@ class StrictModeManagerTest { MockKAnnotations.init(this) mockkStatic(StrictMode::class) + val components: Components = mockk(relaxed = true) + // These tests log a warning that mockk couldn't set the backing field of Config.channel // but it doesn't seem to impact their correctness so I'm ignoring it. val debugConfig: Config = mockk { every { channel } returns ReleaseChannel.Debug } - debugManager = StrictModeManager(debugConfig) + debugManager = StrictModeManager(debugConfig, components) val releaseConfig: Config = mockk { every { channel } returns ReleaseChannel.Release } - releaseManager = StrictModeManager(releaseConfig) + releaseManager = StrictModeManager(releaseConfig, components) } @After From 3e96f6b38504c293f139310d2d80fb0932f5f54e Mon Sep 17 00:00:00 2001 From: Michael Comella Date: Tue, 6 Oct 2020 09:35:23 -0700 Subject: [PATCH 11/71] For #13959 - review: add clarifying comments. --- app/src/main/java/org/mozilla/fenix/StrictModeManager.kt | 3 +++ .../mozilla/fenix/detektrules/MozillaStrictModeSuppression.kt | 2 ++ 2 files changed, 5 insertions(+) diff --git a/app/src/main/java/org/mozilla/fenix/StrictModeManager.kt b/app/src/main/java/org/mozilla/fenix/StrictModeManager.kt index ce47612b4..0f5675a5f 100644 --- a/app/src/main/java/org/mozilla/fenix/StrictModeManager.kt +++ b/app/src/main/java/org/mozilla/fenix/StrictModeManager.kt @@ -122,6 +122,9 @@ class StrictModeManager( // quintillion times in a build config where StrictMode is enabled so we don't handle it // because it'd increase complexity. suppressionCount += 1 + + // We log so that devs are more likely to notice that we're suppressing StrictMode violations. + // We add profiler markers so that the perf team can easily identify IO locations in profiles. logger.warn("StrictMode violation suppressed: #$suppressionCount") if (Thread.currentThread() == mainLooper.thread) { // markers only supported on main thread. components.core.engine.profiler?.addMarker("StrictMode.suppression", "Count: $suppressionCount") diff --git a/mozilla-detekt-rules/src/main/java/org/mozilla/fenix/detektrules/MozillaStrictModeSuppression.kt b/mozilla-detekt-rules/src/main/java/org/mozilla/fenix/detektrules/MozillaStrictModeSuppression.kt index 00fe2e8e7..d2e89a335 100644 --- a/mozilla-detekt-rules/src/main/java/org/mozilla/fenix/detektrules/MozillaStrictModeSuppression.kt +++ b/mozilla-detekt-rules/src/main/java/org/mozilla/fenix/detektrules/MozillaStrictModeSuppression.kt @@ -52,6 +52,8 @@ class MozillaStrictModeSuppression(config: Config) : Rule(config) { val receiver = expression.parent?.firstChild?.node?.chars val calledMethod = expression.calleeExpression?.firstChild?.node?.chars + // This won't catch if setVmPolicy is imported directly. However, this is unlikely so let's + // not handle it now. Maybe we can add it when we add tests for this file. if (receiver == "StrictMode") { val violationMsg = when (calledMethod) { "setThreadPolicy" -> VIOLATION_MSG From d2467f75414394ff8dceeab65aaec021567798b9 Mon Sep 17 00:00:00 2001 From: Michael Comella Date: Tue, 6 Oct 2020 09:39:10 -0700 Subject: [PATCH 12/71] For #13959 - post: ignore new StrictMode rule in tests. --- config/detekt.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/config/detekt.yml b/config/detekt.yml index d178ee322..9e5d45ee9 100644 --- a/config/detekt.yml +++ b/config/detekt.yml @@ -114,6 +114,7 @@ mozilla-detekt-rules: bannedProperties: "BuildConfig.DEBUG" MozillaStrictModeSuppression: active: true + excludes: "**/*Test.kt, **/*Spec.kt, **/test/**, **/androidTest/**" MozillaCorrectUnitTestRunner: active: true From 4302cd20b225790feffacd3e6277a748d3895cbf Mon Sep 17 00:00:00 2001 From: Michael Comella Date: Tue, 6 Oct 2020 13:18:50 -0700 Subject: [PATCH 13/71] For #13959 - post: decrement expected suppression count. Running locally, I get the same error: I think that there legitimately was an reduction in the number of StrictMode suppressions on start up. --- .../fenix/ui/StrictModeStartupSuppressionCountTest.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/StrictModeStartupSuppressionCountTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/StrictModeStartupSuppressionCountTest.kt index 800d81f6c..ece75c63d 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/StrictModeStartupSuppressionCountTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/StrictModeStartupSuppressionCountTest.kt @@ -13,9 +13,12 @@ import org.mozilla.fenix.ext.components import org.mozilla.fenix.helpers.HomeActivityTestRule // PLEASE CONSULT WITH PERF TEAM BEFORE CHANGING THIS VALUE. -private const val EXPECTED_SUPPRESSION_COUNT = 12 +private const val EXPECTED_SUPPRESSION_COUNT = 11 private const val FAILURE_MSG = """StrictMode startup suppression count does not match expected count. + + If this PR removed code that suppressed StrictMode, great! Please decrement the suppression count. + Did this PR add or call code that suppresses a StrictMode violation? Did you know that suppressing a StrictMode violation can introduce performance regressions? @@ -23,8 +26,6 @@ private const val FAILURE_MSG = """StrictMode startup suppression count does not Please consult the perf team if you have questions or believe suppressing StrictMode is the optimal solution. - If this PR removed code that suppressed StrictMode, great! Please decrement the suppression count. - """ /** From 13f33049122e0f06c026632812dee405360c53b0 Mon Sep 17 00:00:00 2001 From: Elise Richards Date: Tue, 6 Oct 2020 16:24:08 -0500 Subject: [PATCH 14/71] For #8765: Use shared list widget in collections (#15733) Co-authored-by: Tiger Oakes --- .../sessioncontrol/SessionControlAdapter.kt | 6 +- .../viewholders/TabInCollectionViewHolder.kt | 61 +++++++++---------- 2 files changed, 33 insertions(+), 34 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt index dc075d3df..e789a9b90 100644 --- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt +++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt @@ -14,6 +14,7 @@ import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView import mozilla.components.feature.tab.collections.TabCollection import mozilla.components.feature.top.sites.TopSite +import mozilla.components.ui.widgets.WidgetSiteItemView import org.mozilla.fenix.components.Components import org.mozilla.fenix.components.tips.Tip import org.mozilla.fenix.home.OnboardingState @@ -162,9 +163,8 @@ class SessionControlAdapter( CollectionHeaderViewHolder.LAYOUT_ID -> CollectionHeaderViewHolder(view) CollectionViewHolder.LAYOUT_ID -> CollectionViewHolder(view, interactor) TabInCollectionViewHolder.LAYOUT_ID -> TabInCollectionViewHolder( - view, - interactor, - differentLastItem = true + view as WidgetSiteItemView, + interactor ) OnboardingHeaderViewHolder.LAYOUT_ID -> OnboardingHeaderViewHolder(view) OnboardingSectionHeaderViewHolder.LAYOUT_ID -> OnboardingSectionHeaderViewHolder(view) diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/TabInCollectionViewHolder.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/TabInCollectionViewHolder.kt index 20a7665d5..75d5ae7ca 100644 --- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/TabInCollectionViewHolder.kt +++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/TabInCollectionViewHolder.kt @@ -4,16 +4,17 @@ package org.mozilla.fenix.home.sessioncontrol.viewholders -import android.graphics.Outline -import android.view.View -import android.view.ViewOutlineProvider +import android.os.Build +import android.os.Build.VERSION.SDK_INT import androidx.appcompat.content.res.AppCompatResources -import kotlinx.android.synthetic.main.list_element.* +import mozilla.components.browser.icons.BrowserIcons import mozilla.components.feature.tab.collections.TabCollection +import mozilla.components.lib.publicsuffixlist.PublicSuffixList import mozilla.components.support.ktx.android.content.getColorFromAttr +import mozilla.components.support.ktx.android.content.res.resolveAttribute +import mozilla.components.ui.widgets.WidgetSiteItemView import org.mozilla.fenix.R import org.mozilla.fenix.ext.components -import org.mozilla.fenix.ext.increaseTapArea import org.mozilla.fenix.ext.loadIntoView import org.mozilla.fenix.ext.toShortUrl import org.mozilla.fenix.home.sessioncontrol.CollectionInteractor @@ -21,9 +22,10 @@ import org.mozilla.fenix.utils.view.ViewHolder import mozilla.components.feature.tab.collections.Tab as ComponentTab class TabInCollectionViewHolder( - view: View, + private val view: WidgetSiteItemView, val interactor: CollectionInteractor, - private val differentLastItem: Boolean = false + private val icons: BrowserIcons = view.context.components.core.icons, + private val publicSuffixList: PublicSuffixList = view.context.components.publicSuffixList ) : ViewHolder(view) { lateinit var collection: TabCollection @@ -31,27 +33,24 @@ class TabInCollectionViewHolder( lateinit var tab: ComponentTab private set var isLastItem = false + private set init { - list_item_favicon.clipToOutline = true - list_item_favicon.outlineProvider = object : ViewOutlineProvider() { - override fun getOutline(view: View, outline: Outline?) { - outline?.setRoundRect( - 0, - 0, - view.width, - view.height, - view.resources.getDimension(R.dimen.tab_tray_favicon_border_radius) - ) - } + if (SDK_INT >= Build.VERSION_CODES.M) { + view.foreground = AppCompatResources.getDrawable( + view.context, + view.context.theme.resolveAttribute(R.attr.selectableItemBackground) + ) } - itemView.setOnClickListener { + view.setOnClickListener { interactor.onCollectionOpenTabClicked(tab) } - list_item_action_button.increaseTapArea(buttonIncreaseDps) - list_item_action_button.setOnClickListener { + view.setSecondaryButton( + icon = R.drawable.ic_close, + contentDescription = R.string.remove_tab_from_collection + ) { interactor.onCollectionRemoveTab(collection, tab, wasSwiped = false) } } @@ -64,23 +63,23 @@ class TabInCollectionViewHolder( } private fun updateTabUI() { - val context = itemView.context - list_item_url.text = tab.url.toShortUrl(context.components.publicSuffixList) + view.setText( + label = tab.title, + caption = tab.url.toShortUrl(publicSuffixList) + ) - list_element_title.text = tab.title - list_item_favicon.context.components.core.icons.loadIntoView(list_item_favicon, tab.url) + icons.loadIntoView(view.iconView, tab.url) // If last item and we want to change UI for it - if (isLastItem && differentLastItem) { - itemView.background = AppCompatResources.getDrawable(context, R.drawable.rounded_bottom_corners) + val context = view.context + if (isLastItem) { + view.background = AppCompatResources.getDrawable(context, R.drawable.rounded_bottom_corners) } else { - itemView.setBackgroundColor(context.getColorFromAttr(R.attr.above)) + view.setBackgroundColor(context.getColorFromAttr(R.attr.above)) } } companion object { - const val buttonIncreaseDps = 12 - const val LAYOUT_ID = R.layout.list_element - const val FAV_ICON_BORDER_RADIUS_IN_DP = 4 + const val LAYOUT_ID = R.layout.site_list_item } } From 0ac7feacb40b421a308847d0e0942a65d84e8c68 Mon Sep 17 00:00:00 2001 From: mozilla-l10n-automation-bot <54512241+mozilla-l10n-automation-bot@users.noreply.github.com> Date: Tue, 6 Oct 2020 21:19:11 -0400 Subject: [PATCH 15/71] Import l10n. (#15738) --- app/src/main/res/values-ar/strings.xml | 31 ++++++++ .../main/res/values-b+sat+Olck/strings.xml | 62 ++++++++++++++++ app/src/main/res/values-be/strings.xml | 8 +++ app/src/main/res/values-hi-rIN/strings.xml | 72 ++++++++++++++----- app/src/main/res/values-sl/strings.xml | 12 ++++ app/src/main/res/values-su/strings.xml | 13 ++++ app/src/main/res/values-tg/strings.xml | 53 ++++++++++++++ app/src/main/res/values-vi/strings.xml | 16 ++--- 8 files changed, 242 insertions(+), 25 deletions(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index d98e00fb1..dc9e95c21 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -516,6 +516,12 @@ الألسنة المُغلقة حديثًا اعرض التأريخ كاملا + + عدد الألسنة: %d + + عدد الألسنة: %d ما من ألسنة أُغلقت حديثًا @@ -630,6 +636,9 @@ حدّدتَ %1$d + + احذف العناصر (عددها %1$d) آخر 24 ساعة @@ -821,6 +830,12 @@ ألغِ تحديد الكل حدّد الألسنة لحفظها + + الألسنة المحدّدة: %d + + الألسنة المحدّدة: %d حُفظت الألسنة! @@ -958,10 +973,18 @@ حذف بيانات التصفح الألسنة المفتوحة + + الألسنة: %d تأريخ التصفح وبيانات الموقع + + العناوين: %d التأريخ + + الصفحات: %d الكعكات @@ -1243,8 +1266,16 @@ المكتبات التي نستعمل + + قائمة التنقيح: بقيت من النقرات %1$d لتفعيلها فُعّلت قائمة التنقيح + + عدد الألسنة: 1 + + عدد الألسنة: %d + انسخ diff --git a/app/src/main/res/values-b+sat+Olck/strings.xml b/app/src/main/res/values-b+sat+Olck/strings.xml index 29cd5e278..68d0b50ca 100644 --- a/app/src/main/res/values-b+sat+Olck/strings.xml +++ b/app/src/main/res/values-b+sat+Olck/strings.xml @@ -418,6 +418,9 @@ Mozilla ᱨᱮᱭᱟᱜ ᱡᱟᱭᱜᱟ ᱠᱟᱹᱢᱤ + + %s ᱦᱚᱲᱢᱚ ᱠᱷᱚᱵᱚᱨ + ᱥᱭᱸᱠ ᱪᱟᱹᱞᱩᱭ ᱢᱮ @@ -450,6 +453,8 @@ ᱧᱩᱛ + + ᱵᱮᱴᱨᱭ ᱥᱮᱣᱟᱹᱨ ᱛᱮ ᱥᱮᱴ ᱢᱮ ᱥᱟᱫᱷᱚᱱ ᱩᱭᱦᱟᱹᱨ ᱯᱟᱸᱡᱟᱭ ᱢᱮ @@ -459,6 +464,8 @@ ᱦᱟᱹᱛᱤᱭᱟᱹᱨ ᱩᱠᱩ ᱞᱟᱹᱜᱤᱛ ᱛᱮ ᱛᱚᱛᱨᱚᱭ ᱢᱮ + + ᱴᱮᱵ ᱠᱚ ᱵᱚᱫᱚᱞ‌ ᱞᱟᱹᱜᱤᱫ ᱥᱟᱭᱤᱰ ᱛᱮᱴᱩᱞᱵᱟᱨ ᱠᱷᱚᱥᱨᱚᱫ ᱢᱮ ᱴᱮᱵ ᱠᱚ ᱠᱷᱩᱞᱟᱹ ᱞᱟᱹᱜᱤᱫ ᱴᱩᱞᱵᱟᱨ ᱥᱣᱟᱭᱤᱯ ᱢᱮ @@ -643,6 +650,8 @@ ᱤᱠᱟ. %1$s ᱚᱱᱟ ᱥᱟᱦᱴᱟ ᱵᱟᱭ ᱞᱟᱫᱮ ᱫᱟᱲᱮᱼᱜ ᱠᱟᱱᱟ ᱾ + + ᱟᱢ ᱞᱟᱛᱟᱨ ᱨᱮ ᱢᱮᱱᱟᱜ ᱴᱮᱵ ᱫᱩᱦᱲᱟᱹ ᱫᱚᱦᱚ ᱟᱨ ᱵᱟᱝ ᱵᱚᱸᱫᱚᱭ ᱫᱟᱲᱮᱭᱟᱜᱼᱟᱢ ᱾ ᱨᱟᱹᱯᱩᱫ ᱨᱤᱯᱚᱴ Mozilla ᱴᱷᱮᱱ ᱠᱩᱞ ᱢᱮ @@ -734,8 +743,14 @@ ᱪᱷᱟᱹᱲ ᱠᱚ ᱥᱟᱡᱟᱣ ᱠᱚ ᱨᱮ ᱪᱟᱞᱟᱜ ᱢᱮ + + ᱞᱚᱜᱚᱱ ᱥᱟᱡᱟᱣ ᱥᱤᱤᱴ ᱵᱟᱛᱟᱣᱟᱜ + + ᱥᱟᱭᱤᱴ ᱨᱮᱭᱟᱜ ᱪᱷᱟᱹᱲ ᱠᱚ ᱢᱮᱱᱮᱡ ᱢᱮ ᱪᱷᱟᱹᱲ ᱠᱚ ᱯᱷᱟᱨᱪᱟᱭ ᱢᱮ @@ -836,19 +851,33 @@ ᱢᱤᱫ ᱴᱟᱝ ᱞᱤᱸᱠ ᱦᱟᱹᱴᱤᱧ ᱢᱮ ᱥᱟᱫᱷᱚᱱ ᱨᱮ ᱠᱩᱞ ᱢᱮ + + ᱡᱚᱛᱚ ᱠᱟᱹᱢᱤᱠᱚ + + ᱱᱤᱛᱚᱜ ᱵᱮᱵᱷᱟᱨᱟᱜ ᱥᱭᱸᱠ ᱞᱟᱹᱜᱤᱫ ᱛᱮ ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱢᱮ + + ᱡᱚᱛᱚ ᱥᱟᱫᱷᱚᱱ ᱛᱮ ᱵᱷᱮᱡᱟᱭᱢᱮ + + ᱥᱭᱸᱠ ᱞᱟᱹᱜᱤᱫ ᱫᱩᱦᱲᱟᱹ ᱡᱩᱲᱟᱹᱣ ᱟᱸᱯᱷᱞᱟᱭᱤᱱ ᱚᱞᱜᱟ ᱥᱟᱫᱷᱚᱱ ᱡᱩᱰᱟᱹᱣ ᱢᱮ + + ᱴᱮᱵ ᱵᱷᱮᱡᱟ ᱞᱟᱹᱜᱤᱫ, ᱢᱤᱫ ᱠᱷᱚᱱ ᱡᱟᱹᱥᱛᱤ ᱥᱟᱫᱷᱚᱱ ᱛᱮ Firefox ᱨᱮ ᱵᱚᱞᱚᱱ ᱢᱮ ᱾ ᱵᱩᱡᱷᱟᱹᱣ ᱠᱮᱫᱟ + + ᱱᱚᱣᱟ ᱮᱯᱯ ᱵᱷᱮᱡᱟ ᱵᱟᱝ ᱜᱟᱱᱚᱜᱼᱟ ᱥᱟᱫᱷᱚᱱ ᱨᱮ ᱠᱩᱞ ᱢᱮ ᱥᱟᱫᱷᱚᱱ ᱠᱚ ᱡᱚᱲᱟᱣ ᱵᱚᱱᱩᱜ-ᱟ + + ᱴᱮᱵ ᱠᱚ ᱮᱢᱟᱱ ᱵᱷᱮᱡᱟ ᱵᱟᱵᱚᱛ ᱵᱟᱰᱟᱭ ᱢᱮ… ᱚᱞᱜᱟ ᱥᱟᱫᱷᱚᱱ ᱡᱩᱰᱟᱹᱣ ᱢᱮ… @@ -877,6 +906,8 @@ ᱴᱮᱵ ᱵᱚᱸᱫᱚᱭᱮᱱᱟ ᱴᱮᱵ ᱠᱚ ᱵᱚᱸᱫᱚᱭᱮᱱᱟ + + ᱛᱮᱛᱟᱱ ᱥᱟᱭᱤᱴ ᱨᱮ ᱥᱮᱞᱮᱫ ᱮᱱᱥ ᱱᱤᱡᱮᱨᱟᱜ ᱴᱮᱵ ᱵᱚᱸᱫᱚᱭᱮᱱᱟ @@ -1005,8 +1036,14 @@ ᱵᱩᱠᱢᱟᱨᱠ, ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫ ᱟᱨ ᱵᱟᱹᱲᱛᱤ ᱠᱚ ᱞᱟᱹᱜᱤᱛ ᱟᱢᱟᱜ Firefox ᱠᱷᱟᱛᱟ ᱨᱮ ᱥᱭᱸᱠ ᱮᱦᱚᱵ ᱢᱮ ᱾ ᱰᱷᱮᱨ ᱥᱮᱬᱟᱭ ᱢᱮ + + ᱦᱮᱸ, ᱵᱚᱞᱚ ᱪᱷᱚᱭᱤᱧ ᱢᱮ + + ᱵᱚᱞᱚᱱᱟ ᱠᱟᱹᱱᱟᱹᱧ… Firefox ᱨᱮ ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱢᱮ + + ᱵᱟᱦᱨᱮ ᱨᱮᱜᱮ ᱛᱟᱦᱮᱸ ᱠᱚᱜ ᱢᱮ ᱥᱭᱸᱠ ᱪᱟᱹᱞᱩ ᱢᱮᱱᱟᱜ-ᱟ @@ -1132,14 +1169,24 @@ ᱱᱚᱣᱟ ᱥᱟᱭᱤᱴ ᱞᱟᱹᱜᱤᱛ ᱯᱨᱚᱴᱮᱠᱥᱚᱱ ᱠᱚ ᱵᱚᱸᱫᱚ ᱢᱮᱱᱟᱜ-ᱟ ᱱᱚᱶᱟ ᱠᱚ ᱥᱟᱭᱤᱴ ᱞᱟᱹᱜᱤᱛ ᱵᱟᱲᱦᱟᱣᱟᱠᱟᱱ ᱯᱟᱸᱡᱟ ᱨᱚᱯᱷᱟ ᱵᱚᱸᱫᱚ ᱢᱮᱱᱟ-ᱟ + + ᱯᱟᱹᱪᱷᱞᱟᱹᱥᱮᱱ ᱪᱟᱞᱟᱜ ᱢᱮ ᱟᱢᱟᱜ ᱦᱚᱠ ᱠᱚ + + ᱢᱩᱞ ᱠᱷᱩᱞᱟᱹ ᱞᱟᱭᱵᱨᱮᱨᱤ ᱟᱞᱮ ᱵᱮᱵᱷᱟᱨ ᱮᱫᱟ %s ᱨᱮ ᱪᱮᱫ ᱱᱟᱶᱟ ᱢᱮᱱᱟ-ᱟ %s | OSS ᱯᱩᱛᱷᱤ ᱚᱲᱟᱜ + + ᱨᱤᱰᱭᱨᱮᱠᱼᱴ ᱯᱟᱧᱡᱟ ᱫᱟᱱᱟᱲ ᱠᱚ + + ᱠᱩᱩᱠᱤ ᱠᱚ ᱥᱟᱯᱷᱟᱭ ᱟ ᱚᱠᱟ ᱫᱚ ᱵᱟᱰᱟᱭᱠᱟᱱ ᱣᱮᱵᱥᱟᱭᱤᱴ ᱠᱚᱨᱮ ᱨᱤᱰᱟᱭᱨᱮᱠᱴ ᱟ ᱾ + ᱜᱚᱲᱚ @@ -1153,6 +1200,11 @@ ᱯᱩᱛᱷᱤ ᱚᱲᱟᱜ ᱡᱟ ᱟᱞᱮ ᱵᱮᱵᱷᱟᱨ ᱟᱞᱮ + + ᱫᱚᱥ ᱥᱟᱦᱟ ᱢᱮᱱᱭᱩ:%1$d ᱮᱦᱚᱵ ᱞᱟᱹᱜᱤᱫ ᱞᱮᱸᱜᱟ ᱥᱮᱫ ᱚᱛᱟᱭ ᱢᱮ + ᱫᱚᱥ ᱥᱟᱦᱟ ᱢᱮᱱᱭᱩ ᱮᱢᱮᱱᱟ + 1 ᱴᱮᱵ @@ -1202,10 +1254,16 @@ ᱛᱷᱟᱨ ᱞᱟᱹᱜᱤᱛ ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱢᱮ ᱥᱟᱸᱪᱟᱣᱠᱟᱱ ᱞᱚᱜᱤᱱ ᱠᱚ + + ᱞᱚᱜᱤᱱ ᱚᱠᱟ %s ᱨᱮ ᱥᱟᱸᱪᱟᱣ ᱟᱨ ᱥᱭᱸᱠ ᱥᱟᱱᱟᱢ ᱠᱟᱱᱟ ᱚᱱᱟ ᱠᱚ ᱱᱚᱰᱮ ᱫᱮᱠᱷᱟᱣᱼᱜᱟ ᱾ + + ᱥᱭᱸᱠ ᱵᱟᱵᱚᱛ ᱡᱟᱹᱥᱛᱤ ᱵᱟᱰᱟᱭ ᱢᱮ ᱾ ᱪᱷᱟᱰᱟ ᱠᱚ ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱟᱨ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫ ᱠᱚ ᱡᱟ ᱵᱟᱝ ᱥᱟᱸᱪᱟᱣ ᱠᱟᱱᱟ ᱚᱱᱟᱠᱩ ᱱᱚᱰᱮ ᱩᱫᱩᱜᱚᱣᱟ ᱾ + + ᱞᱚᱜᱤᱱᱥ ᱟᱨ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫ ᱫᱚ ᱱᱚᱣᱟ ᱥᱟᱭᱤᱴ ᱞᱟᱹᱜᱤᱫ ᱵᱟᱝ ᱥᱟᱸᱪᱟᱣᱜᱼᱟ ᱾ ᱡᱚᱛᱚ ᱪᱷᱟᱰᱟ ᱠᱚ ᱢᱮᱴᱟᱣ ᱢᱮ @@ -1224,6 +1282,8 @@ PIN ᱫᱩᱦᱲᱟᱹ ᱟᱫᱮᱨ ᱢᱮ ᱥᱟᱸᱪᱟᱣᱠᱟᱱ ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱠᱚ ᱧᱮᱞ ᱞᱟᱹᱜᱤᱛ ᱛᱮ ᱚᱱᱞᱚᱠ ᱢᱮ + + ᱱᱚᱣᱟ ᱡᱩᱲᱟᱹᱣ ᱫᱚ ᱵᱟᱝ ᱴᱷᱤᱠ ᱟ ᱾ ᱞᱚᱜᱤᱱ ᱨᱮ ᱚᱞ ᱮᱢ ᱡᱤᱱᱤᱥ ᱫᱚ ᱠᱚᱢᱯᱨᱚᱢᱟᱭᱤᱡ ᱫᱟᱲᱮᱟᱜᱼᱟ ᱾ ᱰᱷᱮᱨ ᱥᱮᱬᱟᱭ ᱢᱮ @@ -1258,6 +1318,8 @@ ᱥᱟᱸᱪᱟᱣᱠᱟᱱ ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ ᱠᱚ ᱧᱮᱞ ᱞᱟᱹᱜᱤᱛ ᱛᱮ ᱚᱱᱞᱚᱠ ᱢᱮ ᱟᱢᱟᱜ ᱞᱚᱜᱤᱱ ᱠᱚ ᱟᱨ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫ ᱠᱚ ᱡᱟᱯᱛᱤ ᱢᱮ + + ᱥᱟᱫᱷᱚᱱ ᱠᱩᱞᱩᱯ ᱪᱤᱱᱦᱟᱹ, ᱯᱤᱱ, ᱟᱨ ᱵᱟᱝ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫ ᱞᱟᱜᱟᱣᱢᱮ ᱟᱢᱟᱜ ᱥᱟᱸᱪᱟᱣ ᱞᱚᱜᱤᱱ ᱠᱚ ᱮᱢᱟᱱ ᱨᱩᱠᱷᱭᱟ ᱞᱟᱹᱜᱤᱫ ᱡᱩᱫᱤ ᱚᱞᱜᱟ ᱦᱚᱲ ᱴᱷᱮᱱ ᱟᱢᱟᱜ ᱥᱟᱫᱷᱚᱱ ᱛᱟᱦᱮᱸᱱ ᱠᱷᱟᱱ ᱾ ᱛᱟᱭᱚᱢ ᱛᱮ diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index 4924bd93a..7f44e49b8 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -391,6 +391,8 @@ Ахова ад сачэння Ахова ад сачэння + + Блакаваць змест і скрыпты, якія асочваюць вас у інтэрнэце Выключэнні @@ -413,6 +415,8 @@ Дзяліцца звесткамі пра прадукцыйнасць, выкарыстанне, апаратнае забеспячэнне і налады вашага браўзера з Mozilla, каб дапамагчы ўдасканаліць %1$s Маркетынгавыя дадзеныя + + Дзяліцца звесткамі пра магчымасці, якімі вы карыстаецеся ў %1$s, з нашым пастаўшчыком мабільнага маркетынгу Leanplum. Доследы @@ -795,6 +799,8 @@ Выключана Дазволіць гук і відэа + + Блакаваць аўдыё і відэа толькі на мабільных дадзеных Аўдыё і відэа будуць прайгравацца праз Wi-Fi @@ -1240,6 +1246,8 @@ Спыняе збор унікальнай ідэнтыфікацыйнай інфармацыі пра вашу прыладу, якая можа быць выкарыстана для сачэння. Змест з элементамі сачэння + + Спыняе загрузку вонкавай рэкламы, відэа і іншага змесціва, якое змяшчае код асочвання. Можа адбіцца на некаторых функцыях вэб-сайта. Фіялетавы колер шчыта азначае, што %s перапыніў асочвальнікаў на сайце. Націсніце, каб даведацца больш. diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml index c5c88f206..c3c0ba5f9 100644 --- a/app/src/main/res/values-hi-rIN/strings.xml +++ b/app/src/main/res/values-hi-rIN/strings.xml @@ -78,6 +78,12 @@ अभी नहीं + + सेटिंग पर जाएं + + + सेटिंग पर जाएं + नया टैब @@ -309,6 +315,9 @@ ऐड-ऑन + + अधिसूचनाएं + अब सिंक करें @@ -470,6 +479,27 @@ बंद करें + + हाल ही में बंद किए गए टैब + + पूरा इतिहास दिखाएं + + %d टैब + + %d टैब + + + + टैब बंद करें + + एक दिन बाद + + एक हफ्ते के बाद + + एक महीने बाद + खुले टैब @@ -489,6 +519,10 @@ संग्रहण में सहेजें सभी टैब साझा करें + + हाल ही में बंद किए गए टैब + + टैब सेटिंग सभी टैब बंद करें @@ -535,6 +569,8 @@ हटाएं + + इतिहास से मिटाएं %1$s (निजी मोड) @@ -736,10 +772,6 @@ संग्रह संग्रह मेन्यू - - जो चीजें आपके लिए मायने रखती हैं, उन्हें इकट्ठा करें - - बाद में तुरंत ऐक्सेस लिए एक जैसा खोज, साइट और टैब को एक साथ समूहित करें। टैब चुने @@ -992,13 +1024,8 @@ %s पुनर्निर्देशित के बारे में प्रश्न हैं? जानना चाहते हैं कि क्या बदला है? यहां उत्तर पाएं - - %s का अधिकतम लाभ उठाएं। - - आप इस फ़ोन पर किसी अन्य Firefox ब्राउज़र पर %s के रूप में साइन इन हैं। क्या आप इस खाते से साइन इन करना चाहेंगे? + + अधिक जानें हां, मुझे साइन इन करें @@ -1249,9 +1276,6 @@ शॉर्टकट नाम - - आप आसानी से इस वेबसाइट को अपने फ़ोन मुख्य स्क्रीन पर तुरंत ऐक्सेस के लिए जोड़ सकते हैं और ऐप जैसे अनुभव के साथ तेज़ी से ब्राउज़ कर सकते हैं। - लॉगिन और पासवर्ड @@ -1489,7 +1513,7 @@ एक लॉगिन इस उपयोगकर्ता नाम के साथ मौजूद है - + अन्य डिवाइस कनेक्ट करें कृपया पुनः प्रमाणित करें। @@ -1502,12 +1526,26 @@ सिंक करने के लिए साइन इन करें + + कोई खुला टैब नहीं + शीर्ष साइट सीमा पहुंच गई - - एक नई शीर्ष साइट जोड़ने के लिए, एक हटा दें। साइट को लंबे समय तक दबाएं और निकालें का चयन करें। ठीक है, समझ गए + + %s का अधिकतम लाभ उठाएं। + + + जो चीजें आपके लिए मायने रखती हैं, उन्हें इकट्ठा करें + + बाद में तुरंत ऐक्सेस लिए एक जैसा खोज, साइट और टैब को एक साथ समूहित करें। + + आप इस फ़ोन पर किसी अन्य Firefox ब्राउज़र पर %s के रूप में साइन इन हैं। क्या आप इस खाते से साइन इन करना चाहेंगे? + + आप आसानी से इस वेबसाइट को अपने फ़ोन मुख्य स्क्रीन पर तुरंत ऐक्सेस के लिए जोड़ सकते हैं और ऐप जैसे अनुभव के साथ तेज़ी से ब्राउज़ कर सकते हैं। + diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index c0bdabd12..ecd1299ae 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -329,6 +329,8 @@ Išči po zgodovini iskanja Iskanje po zaznamkih + + Iskanje po sinhroniziranih zavihkih Nastavitve računa @@ -479,6 +481,9 @@ Povlecite za osvežitev + + Podrsaj orodno vrstico vstran za preklop med zavihki + Seje @@ -1163,6 +1168,8 @@ Prijavite se s kamero Namesto tega uporabite e-pošto + + Ustvarite ga za sinhronizacijo Firefoxa med napravami.]]> Firefox se bo prenehal sinhronizirati z vašim računom, vendar ne bo izbrisal podatkov o brskanju na tej napravi. @@ -1272,6 +1279,11 @@ The first parameter is the app name --> %s | Knjižnice OSS + + Preusmeritve sledilcev + + Počisti piškotke, ki jih nastavijo preusmeritve na znana sledilna spletna mesta. + Podpora diff --git a/app/src/main/res/values-su/strings.xml b/app/src/main/res/values-su/strings.xml index 169780691..5e3f6c74f 100644 --- a/app/src/main/res/values-su/strings.xml +++ b/app/src/main/res/values-su/strings.xml @@ -327,6 +327,8 @@ Setélan akun + + Otokumplit URLs Buka tutumbu dina aplikasi @@ -465,6 +467,10 @@ Turutan téma paranti + + + Betot pikeun nyegerkeun + Sesi @@ -1259,6 +1265,9 @@ The first parameter is the app name --> %s | Pabukon OSS + + Meresihan réréméh anu diatur ku alihan ka raramatloka palacak anu dipikawanoh. + Pangrojong @@ -1374,8 +1383,12 @@ Loka ditiron kana papan klip Niron sandi + + Beresihan sandi Niron sandiasma + + Beresihan sandiasma Niron loka diff --git a/app/src/main/res/values-tg/strings.xml b/app/src/main/res/values-tg/strings.xml index ccdabcbe4..c1d7a18b7 100644 --- a/app/src/main/res/values-tg/strings.xml +++ b/app/src/main/res/values-tg/strings.xml @@ -53,6 +53,10 @@ Шумо дар реҷаи махфӣ қарор доред + + + %1$s таърихи тамошокунӣ ва ҷустуҷӯи шуморо аз варақаҳои махфие, ки шумо мепӯшед ё вақте ки шумо барномаро хомӯш мекунед, пок мекунад. Ин амал шуморо аз сомонаҳо ё провайдери хизматрасонии интернет пинҳон намекунад, аммо аз корбарони дигаре, ки ин дастгоҳро истифода мебаранд, фаъолияти онлайни шуморо ба осонӣ махфӣ карда, нигоҳ медорад. Асотири маълум дар бораи тамошокунии махфӣ @@ -494,6 +498,9 @@ %d is a placeholder for the number of tabs selected. --> %d варақа + + Ягон варақаи ба наздикӣ пӯшидашуда нест + Пӯшидани варақаҳо @@ -711,11 +718,18 @@ Хатбаракҳо нест карда шуданд + + Несткунии ҷузвадонҳои интихобшуда + Иҷозатҳо Гузариш ба Танзимот + + Лавҳаи танзимоти зуд Тавсияшуда @@ -834,6 +848,8 @@ Ягон дастгоҳ пайваст нашуд + + Маълумоти бештар дар бораи фиристодани варақаҳо… Пайваст кардани дастгоҳи дигар… @@ -895,12 +911,17 @@ Ба реҷаи экрани пурра ворид шуда истодааст URL нусха бардошта шуд + + Калонтар ё хурдтар кардани матн дар сомонаҳо Андозаи ҳуруф Андозагирии худкори ҳуруф + + Андозаи ҳарф ба танзимоти Android-и шумо мувофиқат мекунад. Барои идора кардани андозаи ҳарфҳо дар ин ҷо, имкони ҷориро хомӯш кунед. + Нест кардани маълумоти тамошокунӣ @@ -954,6 +975,28 @@ Несткунии маълумоти тамошокунӣ… + + + Нашри Firefox-и «Пешнамоиш» акнун Firefox-и «Ҳаршабона» шуд + + + «Firefox»-ро барои «Android Beta» ба даст оред + + + Нашри Firefox-и «Ҳаршабона» интиқол дода шуд + + + Ин барнома дигар навсозиҳои амниятиро қабул намекунад. Истифодаи ин барномаро қатъ кунед ва ба нашри нави «Ҳаршабона» гузаред. + \n\nБарои интиқол додани хатбаракҳо, воридшавиҳо ва таърихи худ ба барномаи дигар, ҳисоби Firefox-ро эҷод намоед. + + Ба нашри нави «Ҳаршабона» гузаред + + + Нашри Firefox-и «Ҳаршабона» интиқол дода шуд + + + Ин барнома дигар навсозиҳои амниятиро қабул намекунад. Нашри нави «Ҳаршабона»-ро ба даст оред ва истифодаи ин барномаро қатъ кунед. + \n\nБарои интиқол додани хатбаракҳо, воридшавиҳо ва таърихи худ ба барномаи дигар, ҳисоби Firefox-ро эҷод намоед. Нашри «Ҳаршабона»-и навро ба даст оред @@ -988,6 +1031,10 @@ Махфияти худкор Стандартӣ (пешфарз) + + Ҷиддӣ (тавсия дода мешавад) + + Ҷиддӣ Реҷаи тамошои махфӣ Стандартӣ (пешфарз) + + Ҷиддӣ Фармоишӣ @@ -1166,6 +1215,8 @@ Ҷустуҷӯи воридшавиҳо Аз рӯи алифбо + + Истифодашудаи охирин Сомона @@ -1281,6 +1332,8 @@ Шумо мутмаин ҳастед, ки мехоҳед ҳамаи иҷозатҳоро барои сомонаи ҷорӣ тоза намоед? Шумо мутмаин ҳастед, ки мехоҳед ин иҷозатҳоро барои сомонаи ҷорӣ тоза намоед? + + Ягон истиснои сомона нест Мақолаҳои беҳтарин diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 2f0abc666..a03e619e4 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -202,7 +202,7 @@ Lần này, tìm kiếm với: - Điền liên kết từ bộ nhớ tạm + Điền liên kết từ khay nhớ tạm Cho phép @@ -316,13 +316,13 @@ Hiển thị công cụ tìm kiếm - Hiển thị gợi ý tìm kiếm + Hiển thị đề xuất tìm kiếm Hiển thị tìm kiếm bằng giọng nói Hiển thị trong phiên riêng tư - Hiển thị đề xuất bộ nhớ tạm + Hiển thị đề xuất khay nhớ tạm Tìm kiếm lịch sử duyệt web @@ -1320,7 +1320,7 @@ Bạn có thể dễ dàng thêm trang web vào màn hình chính thiết bị của bạn để có thể truy cập và duyệt web nhanh hơn với trải nghiệm giống như trên ứng dụng. - Đăng nhập và mật khẩu + Thông tin đăng nhập và mật khẩu Lưu thông tin đăng nhập và mật khẩu @@ -1330,7 +1330,7 @@ Tự động điền - Đồng bộ hóa đăng nhập + Đồng bộ hóa thông tin đăng nhập Bật @@ -1340,7 +1340,7 @@ Đăng nhập vào đồng bộ hóa - Đăng nhập đã lưu + Thông tin đăng nhập đã lưu Thông tin đăng nhập bạn lưu hoặc đồng bộ hóa với %s sẽ hiển thị tại đây. @@ -1348,9 +1348,9 @@ Ngoại trừ - Đăng nhập và mật khẩu không được lưu sẽ được hiển thị ở đây. + Thông tin đăng nhập và mật khẩu không được lưu sẽ được hiển thị ở đây. - Đăng nhập và mật khẩu sẽ không được lưu cho các trang web này. + Thông tin đăng nhập và mật khẩu sẽ không được lưu cho các trang web này. Xóa tất cả các ngoại lệ From 9fd70d5a4ecea859239b952998708cb4c898fb2d Mon Sep 17 00:00:00 2001 From: Johan Lorenzo Date: Wed, 7 Oct 2020 15:25:45 +0200 Subject: [PATCH 16/71] Revert "Block github tagging on push-apk (#15546)" (#15748) This reverts commit cd6ab4511942ce1f8ce094c1ab617e182763ae42. --- taskcluster/ci/github-release/kind.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/taskcluster/ci/github-release/kind.yml b/taskcluster/ci/github-release/kind.yml index 262061c66..8d7df3941 100644 --- a/taskcluster/ci/github-release/kind.yml +++ b/taskcluster/ci/github-release/kind.yml @@ -10,9 +10,6 @@ transforms: - taskgraph.transforms.task:transforms kind-dependencies: - # To work around a race condition where if this runs before - # push-apk, push-apk fails to verify chain of trust - - push-apk - signing primary-dependency: signing From e3fc2626b2128724d267eb19ca9db10359950ffb Mon Sep 17 00:00:00 2001 From: alexandru-io <47977085+alexandru-io@users.noreply.github.com> Date: Wed, 7 Oct 2020 18:34:27 +0300 Subject: [PATCH 17/71] Bug 1654346 Add YTP 2020 tests (#14286) --- taskcluster/ci/browsertime/kind.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/taskcluster/ci/browsertime/kind.yml b/taskcluster/ci/browsertime/kind.yml index 6eeab0fa8..a9fc5191e 100644 --- a/taskcluster/ci/browsertime/kind.yml +++ b/taskcluster/ci/browsertime/kind.yml @@ -244,3 +244,24 @@ jobs: armeabi-v7a: - '--test-url-params=exclude=1,2,9,10,17,18,21,22,26,28,30,32,39,40,47,48,55,56,63,64,71,72,79,80,83,84,89,90,95,96' default: [] + + youtube-playback-av1-sfr: + description: "Raptor YouTube Playback AV1 SFR on Fenix" + test-name: youtube-playback-av1-sfr + run-visual-metrics: False + treeherder: + symbol: 'Btime(ytp-av1-sfr)' + + youtube-playback-h264-sfr: + description: "Raptor YouTube Playback H264 SFR on Fenix" + test-name: youtube-playback-h264-sfr + run-visual-metrics: False + treeherder: + symbol: Btime(ytp-h264-sfr) + + youtube-playback-vp9-sfr: + description: "Raptor YouTube Playback VP9 SFR on Fenix" + run-visual-metrics: False + test-name: youtube-playback-vp9-sfr + treeherder: + symbol: Btime(ytp-vp9-sfr) From 1cc2ecdc7ce0c52509f5cc7f2b9450a139cbcd09 Mon Sep 17 00:00:00 2001 From: Michael Comella Date: Mon, 5 Oct 2020 15:59:27 -0700 Subject: [PATCH 18/71] No issue: minimize Button...Detector violation location. This changes the error highlighting from being the entire contents of