summaryrefslogtreecommitdiffstats
path: root/thunderbird-l10n/ar/chrome/ar/locale/ar/global
diff options
context:
space:
mode:
Diffstat (limited to 'thunderbird-l10n/ar/chrome/ar/locale/ar/global')
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/aboutStudies.properties32
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/appstrings.properties38
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/autocomplete.properties12
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/browser.properties7
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/commonDialogs.properties47
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/contentAreaCommands.properties28
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/css.properties53
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/dialog.properties12
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/dom/dom.properties585
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/extensions.properties28
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/fallbackMenubar.properties8
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/filepicker.properties20
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/global-strres.properties5
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/intl.css94
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/intl.properties43
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/keys.properties78
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/layout/HtmlForm.properties35
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/layout/MediaDocument.properties23
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/layout/htmlparser.properties146
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/layout/xmlparser.properties48
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/layout_errors.properties68
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/mathml/mathml.properties15
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/narrate.properties26
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/nsWebBrowserPersist.properties17
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/printdialog.properties52
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/printing.properties56
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/resetProfile.properties14
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/security/caps.properties9
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/security/csp.properties157
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/security/security.properties164
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/svg/svg.properties5
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/viewSource.properties16
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/wizard.properties8
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/xslt/xslt.properties39
-rw-r--r--thunderbird-l10n/ar/chrome/ar/locale/ar/global/xul.properties5
35 files changed, 1993 insertions, 0 deletions
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/aboutStudies.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/aboutStudies.properties
new file mode 100644
index 0000000000..1ce1468e8c
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/aboutStudies.properties
@@ -0,0 +1,32 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+# LOCALIZATION NOTE (title): keep "Shield" in English. See
+# https://wiki.mozilla.org/Firefox/Shield/Shield_Studies for more information
+title = دراسات شيلد
+removeButton = أزِل
+
+# LOCALIZATION NOTE (activeStudiesList): Title above a list of active studies
+activeStudiesList = الدراسات النشطة
+# LOCALIZATION NOTE (activeStudiesList): Title above a list of completed studies
+completedStudiesList = الدراسات المكتملة
+# LOCALIZATION NOTE (activeStatus): Displayed for an active study
+activeStatus = نشطة
+# LOCALIZATION NOTE (completeStatus): Displayed for a study that is already complete
+completeStatus = انتهت
+
+updateButtonWin = خيارات التحديث
+updateButtonUnix = تفضيلات التحديث
+learnMore = اطّلع على المزيد
+noStudies = لم تشارك في أي من الدراسات.
+disabledList = هذه قائمة الدراسات التي شاركت فيها. لن تجرى أي دراسات جديدة.
+# LOCALIZATION NOTE (enabledList): %S is brandShortName (e.g. Firefox)
+enabledList = ما هذا؟ قد ينصّب %S بعض الدراسات و يشغّلها من وقت لآخر.
+
+# LOCALIZATION NOTE (preferenceStudyDescription) $1%S will be replaced with the
+# name of a preference (such as "stream.improvesearch.topSiteSearchShortcuts")
+# and $2%S will be replaced with the value of that preference. Both values will
+# be formatted differently than the surrounding text.
+preferenceStudyDescription = تضبط هذه الدراسة قيمة %1$S على %2$S.
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/appstrings.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/appstrings.properties
new file mode 100644
index 0000000000..91004bec1c
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/appstrings.properties
@@ -0,0 +1,38 @@
+# 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/.
+
+malformedURI2=رجاء التأكد من صحة المسار و إعادة المحاولة.
+fileNotFound=تعذّر العثور على الملفّ %S. من فضلك تحقق من المكان ثم أعد المحاولة.
+fileAccessDenied=الملف في %S ليس مقروءًا.
+dnsNotFound2=تعذر العثور على %S. تأكد من الاسم ثم أعد المحاولة.
+unknownProtocolFound=واحد من التالي (%S) ليس بروتوكولًا مسجّلًا أو ليس مسموحًا به في هذا السياق.
+connectionFailure=رُفِض الاتصال عند محاولة التواصل مع %S.
+netInterrupt=انتهى الاتصال مع %S بشكل غير متوقّع. ربما نُقلت بعض البيانات.
+netTimeout=انتهت مهلة العملية عند محاولة التواصل مع %S.
+redirectLoop=تجاوز حد إعادة التمرير لهذا المسار. تعذّر تحميل الصفحة المطلوبة. ربما هذا بسبب حجب الكعكات.
+confirmRepostPrompt=لعرض هذه الصفحة، يجب أن يعيد التطبيق إرسال المعلومات التي ستكرر أي إجراءات (مثل البحث أو معلومات الطلب) التي أُجريت.
+resendButton.label=أعد الإرسال
+unknownSocketType=لا يمكن عرض هذا المستند حتى تنصّب مدير الأمن الشخصي (PSM). نزله و نصّبه ثم حاول ثانيةً، أو اتصل بمدير نظامك.
+netReset=لا يحتوي المستند على بيانات.
+notCached=هذا المستند لم يعد متاحًا.
+netOffline=لا يمكن عرض هذا المستند بينما لست متصلا. لتتصل، أزل التأشير من على ”اعمل بدون اتصال“ من قائمة ملف.
+isprinting=لا يمكن تغيير المستند أثناء طباعته أو عند معاينة الطباعة.
+deniedPortAccess=عُطِّل الوصول لرقم المنفذ المعطى لأسباب أمنية.
+proxyResolveFailure=تعذّر العثور على الخادوم الوسيط الذي حددته. من فضلك افحص إعدادات الوسيط وحاول ثانيةً.
+proxyConnectFailure=رُفِض لاتصال أثناء محاولة الوصول للخادوم الوسيط الذي حددته. من فضلك راجع إعدادات الوسيط وحاول ثانيا.
+contentEncodingError=تعذر عرض الصفحة التي تحاول فتحها لأن نوع الضغط فيها غير سليم أو غير مدعوم.
+unsafeContentType=الصفحة التي تحاول زيارتها لا يمكن عرضها لأنها تحتوي ملفا من نوع قد لا يكون من الآمن حفظه لفتحه. من فضلك اتصل بمالكي الموقع لإصلاح هذا.
+malwareBlocked=أُبلِغ عن أن الموقع %S موقع هجمات و حُجِبَ بناء على تفضيلات الأمن.
+unwantedBlocked=أُبلِغ عن أن الموقع %S يقدم برمجيات غير مرغوب فيها و حُجِبَ بناء على تفضيلات الأمن.
+deceptiveBlocked=أُبلِغ عن أن الموقع %S موقع مخادع و حُجِبَ بناء على تفضيلات الأمن.
+cspBlocked=سياسة أمن محتوى هذه الصفحة تمنعها من أن تُحمّل بهذا الشكل.
+xfoBlocked=سياسة X-Frame-Options في هذه الصفحة تمنعها من أن تُحمّل في هذا السياق.
+corruptedContentErrorv2=عانى الموقع %S من مخالفة لبروتوكول الشبكة لا يمكن إصلاحها.
+sslv3Used=لا يُضمن أمان بياناتك على %S لأنه يستخدم SSLv3؛ بروتوكول سرية معطوب.
+weakCryptoUsed=ضبط مالك %S موقعه على نحو غير سليم. لحماية معلوماتك من السرقة، لم يُجر الاتصال مع هذا الموقع.
+inadequateSecurityError=حاول هذا الموقع التفاوض عن مستوى غير كافِ من الأمن.
+blockedByPolicy=حجبت مؤسستك الوصول إلى هذه الصفحة أو إلى هذا الموقع.
+networkProtocolError=واجه Firefox مخالفة لبروتوكول الشبكة لا يمكن إصلاحها.
+
+harmfulBlocked=The site at %S has been reported as a potentially harmful site and has been blocked based on your security preferences.
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/autocomplete.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/autocomplete.properties
new file mode 100644
index 0000000000..62276cfab8
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/autocomplete.properties
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (searchInPrivateWindow): Used when the private browsing
+# engine is the same as the default engine.
+
+# LOCALIZATION NOTE (bookmarkKeywordSearch): This is the title of autocomplete
+# entries that are bookmark keyword searches. %1$S will be replaced with the
+# domain name of the bookmark, and %2$S will be replaced with the keyword
+# search text that the user is typing. %2$S will not be empty.
+bookmarkKeywordSearch = ‏%1$S‏: %2$S
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/browser.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/browser.properties
new file mode 100644
index 0000000000..107e0415fd
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/browser.properties
@@ -0,0 +1,7 @@
+# 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/.
+
+formPostSecureToInsecureWarning.title = تحذير أمني
+formPostSecureToInsecureWarning.message = سترسل المعلومات التي أدخلتها عبر اتّصال غير مُعمّى و يمكن أن تقرأها أطراف خارجية بسهولة.\n\nأمتأكّد أنّك تريد المتابعة في إرسال هذه المعلومات؟
+formPostSecureToInsecureWarning.continue = واصِل
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/commonDialogs.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/commonDialogs.properties
new file mode 100644
index 0000000000..6279424ddf
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/commonDialogs.properties
@@ -0,0 +1,47 @@
+# 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/.
+
+Alert=إنذار
+Confirm=أكّد
+ConfirmCheck=أكّد
+Prompt=اسأل
+Select=اختر
+OK=حسنا
+Cancel=ألغِ
+Yes=&نعم
+No=&لا
+Save=ا&حفظ
+Revert=ا&عكس
+DontSave=لا &تحفظ
+ScriptDlgGenericHeading=[تطبيق جافاسكربت]
+ScriptDlgHeading=تقول الصفحة في %S:
+ScriptDialogLabel=امنع هذه الصفحة من إنشاء نوافذ حوار إضافية
+ScriptDialogPreventTitle=تأكيد تفضيل نوافذ الحوار
+# LOCALIZATION NOTE (EnterLoginForRealm3, EnterLoginForProxy3):
+# %1 is an untrusted string provided by a remote server. It could try to
+# take advantage of sentence structure in order to mislead the user (see
+# bug 244273). %1 should be integrated into the translated sentences as
+# little as possible. %2 is the url of the site being accessed.
+EnterLoginForRealm3=يطلب الوسيط %2$S اسم مستخدم و كلمة سر. الموقع يقول: ”%1$S“
+EnterLoginForProxy3=يطلب الوسيط %2$S اسم مستخدم و كلمة سر. الموقع يقول: ”%1$S“
+EnterUserPasswordFor2=يطلب %1$S اسم المستخدم و كلمة السر.
+EnterUserPasswordForCrossOrigin2=يطلب %1$S اسم المستخدم و كلمة السر. تحذير: لن تُرسَل كلمة السر للموقع الذي تزوره حاليًا!
+EnterPasswordFor=أدخِل كلمة السر من أجل %1$S في %2$S
+
+# LOCALIZATION NOTE - %S is brandFullName
+PromptUsernameAndPassword3=Authentication Required - %S
+# LOCALIZATION NOTE - %S is brandFullName
+PromptPassword3=Password Required - %S
+ScriptDlgNullPrincipalHeading=This page says:
+ScriptDialogLabelNullPrincipal=Don’t allow this site to prompt you again
+# LOCALIZATION NOTE (ScriptDialogLabelContentPrincipal):
+# %S is either the domain and port of the site prompting, or the name of
+# an add-on prompting.
+ScriptDialogLabelContentPrincipal=Don’t allow %S to prompt you again
+EnterCredentials=This site is asking you to sign in.
+# %S is the username for which a password is requested.
+EnterPasswordOnlyFor=This site is asking you to sign in as %S.
+# %S is the domain of the site being accessed.
+EnterCredentialsCrossOrigin=This site is asking you to sign in. Warning: Your login information will be shared with %S, not the website you are currently visiting.
+SignIn=Sign in
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/contentAreaCommands.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/contentAreaCommands.properties
new file mode 100644
index 0000000000..6ece4b99f9
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/contentAreaCommands.properties
@@ -0,0 +1,28 @@
+# 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/.
+
+# context menu strings
+
+SaveImageTitle=احفظ الصّورة
+SaveMediaTitle=احفظ الوسائط
+SaveVideoTitle=احفظ الفديو
+SaveAudioTitle=احفظ الصوت
+SaveLinkTitle=احفظ باسم
+WebPageCompleteFilter=صفحة وِب، كاملة
+WebPageHTMLOnlyFilter=صفحة وِب، HTML فقط
+WebPageXHTMLOnlyFilter=صفحة وِب، XHTML فقط
+WebPageSVGOnlyFilter=صفحة وِب، SVG فقط
+WebPageXMLOnlyFilter=صفحة وِب، XML فقط
+
+# LOCALIZATION NOTE (filesFolder):
+# This is the name of the folder that is created parallel to a HTML file
+# when it is saved "With Images". The %S section is replaced with the
+# leaf name of the file being saved (minus extension).
+filesFolder=%S_files
+
+# LOCALIZATION NOTE (UntitledSaveFileName):
+# This is the default filename used when saving a file if a filename could
+# not be determined or if a filename was invalid. A period and file
+# extension may be appended to this string.
+UntitledSaveFileName=Untitled
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/css.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/css.properties
new file mode 100644
index 0000000000..9288b254f3
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/css.properties
@@ -0,0 +1,53 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+MimeNotCss=لم تحمّل صفحة الطُرُز %1$S لأن نوع MIME،‏ ”%2$S“، ليس ”text/css“.
+MimeNotCssWarn=حُمّلت صفحة الطُرز %1$S رغم أنّ نوع MIME لديها ”%2$S“ ليس ”text/css“.
+
+PEDeclDropped=أسقط الإعلان.
+PEDeclSkipped=تمّ التجاوز للإعلان التالي.
+PEUnknownProperty=خاصية مجهولة ’%1$S‘.
+PEValueParsingError=حصل خطأ أثناء تحليل قيمة ’%1$S‘.
+PEUnknownAtRule=قاعدة at-rule تعذر تمييزها أو خطأ أثناء تحليل قاعدة at-rule ‏’%1$S‘.
+PEAtNSUnexpected=علامة غير متوقّعة ضمن ‪@‬namespace:‏ ’%1$S‘.
+PEKeyframeBadName=توقعت معرّفًا لاسم قاعدة @keyframes.
+PEBadSelectorRSIgnored=تمّ تجاهل مجموعة القواعد بسبب منتقي سيئ.
+PEBadSelectorKeyframeRuleIgnored=تمّ تجاهل قاعدة Keyframe بسبب منتقي سيئ.
+PESelectorGroupNoSelector=توقّعت منتقي.
+PESelectorGroupExtraCombinator=مركّب متدلّي.
+PEClassSelNotIdent=توقّعت معرّفا لمنتقي الفئة لكن وجدت ’%1$S‘.
+PETypeSelNotType=توقّعت اسم العنصر أو ’*‘ لكن وجدت ’%1$S‘.
+PEUnknownNamespacePrefix=سابقة نطاق أسماء مجهولة ’%1$S‘.
+PEAttributeNameExpected=توقّعت معرفا لاسم الخاصيّة لكن وجدت ’%1$S‘.
+PEAttributeNameOrNamespaceExpected=توقّعت اسم خاصيّة أو مجال لكن وجدت ’%1$S‘.
+PEAttSelNoBar=توقّعت ’|‘ لكن وجدت ’%1$S‘.
+PEAttSelUnexpected=علامة غير متوقّعة في منتقي الخاصيّة ’%1$S‘.
+PEAttSelBadValue=توقّعت معرّفا أو سلسلة للقيمة في منتقي الخاصيّة لكن وجدت ’%1$S‘.
+PEPseudoSelBadName=توقّعت معرّفا ل‍ seudo-class أو pseudo-element لكن وجدت ’%1$S‘.
+PEPseudoSelUnknown=pseudo-class أو pseudo-element مجهول ’%1$S‘.
+PEPseudoClassArgNotIdent=كان المتوقع وجود معرّف لصفة pseudo-class ولكن وُجِد ’%1$S‘.
+PEColorNotColor=توقّعت لونا لكن وجدت ’%1$S‘.
+PEParseDeclarationDeclExpected=توقّعت تصريحا لكن وجدت ’%1$S‘.
+PEUnknownFontDesc=الواصف’%1$S‘ في قاعدة ‪@font-face‬ غير معروف.
+PEMQExpectedFeatureName=وُجِدَ ’%1$S‘ بدلًا من اسم ميزة الوسائط المتوقع.
+PEMQNoMinMaxWithoutValue=ميزات الوسائط التي لها قيمة قصوى أو دنيا يجب أن يكون لها قيمة.
+PEMQExpectedFeatureValue=قيمة ميزة الوسائط غير صالحة.
+PEExpectedNoneOrURL=توقّعت ’none‘ أو مسار لكن وجدت ’%1$S‘.
+PEExpectedNoneOrURLOrFilterFunction=توقّعتُ ’none‘، أو مسارا أو دالة ترشيح ولكني وجدتُ ’%1$S‘.
+
+
+PEPRSyntaxFieldEmptyInput=@property syntax descriptor is empty.
+PEPRSyntaxFieldExpectedPipe=@property syntax descriptor ‘%S’ contains components without a pipe between them.
+PEPRSyntaxFieldInvalidNameStart=@property syntax descriptor ‘%S’ contains a component name that starts with an invalid character.
+PEPRSyntaxFieldInvalidName=@property syntax descriptor ‘%S’ contains a component name with an invalid character.
+PEPRSyntaxFieldUnclosedDataTypeName=@property syntax descriptor ‘%S’ contains an unclosed data type name.
+PEPRSyntaxFieldUnexpectedEOF=@property syntax descriptor ‘%S’ is incomplete.
+PEPRSyntaxFieldUnknownDataTypeName=@property syntax descriptor ‘%S’ contains an unknown data type name.
+PEMQUnexpectedOperator=Unexpected operator in media list.
+PEMQUnexpectedToken=Unexpected token ‘%1$S’ in media list.
+PEPseudoSelEndOrUserActionPC=Expected end of selector or a user action pseudo-class after pseudo-element but found ‘%1$S’.
+PEDisallowedImportRule=@import rules are not yet valid in constructed stylesheets.
+PENeverMatchingHostSelector=:host selector in ‘%S’ is not featureless and will never match. Maybe you intended to use :host()?
+TooLargeDashedRadius=Border radius is too large for ‘dashed’ style (the limit is 100000px). Rendering as solid.
+TooLargeDottedRadius=Border radius is too large for ‘dotted’ style (the limit is 100000px). Rendering as solid.
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/dialog.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/dialog.properties
new file mode 100644
index 0000000000..eca11442fd
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/dialog.properties
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+button-accept=حسنا
+button-cancel=ألغِ
+button-help=مساعدة
+button-disclosure=المزيد من المعلومات
+accesskey-accept=
+accesskey-cancel=
+accesskey-help=م
+accesskey-disclosure=ع
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/dom/dom.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/dom/dom.properties
new file mode 100644
index 0000000000..d5a92c75e9
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/dom/dom.properties
@@ -0,0 +1,585 @@
+# 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/.
+
+KillScriptTitle=تحذير: نص برمجي لا يستجيب
+KillScriptMessage=قد يكون أحد النصوص البرمجية على هذه الصّفحة مشغولا، أو توقف عن الاستجابة. يمكنك إيقاف هذا النّصّ الآن، أو المواصلة لرؤية ما إذا كان سينهي تنفيذه.
+KillScriptWithDebugMessage=قد يكون أحد النصوص البرمجية على هذه الصّفحة مشغولا، أو توقف عن الاستجابة. يمكنك إيقاف هذا النّص الآن، أو فتح النص البرمجي في المصحح أو المواصلة لرؤية فيما إذا كان سينهي تنفيذه.
+KillScriptLocation=نص برمجي: %S
+
+KillAddonScriptTitle=تحذير: نص برمجي لإضافة لا يستجيب
+# LOCALIZATION NOTE (KillAddonScriptMessage): %1$S is the name of an extension.
+# %2$S is the name of the application (e.g., Firefox).
+KillAddonScriptMessage=نص برمجي من الامتداد ”%1$S“ يعمل على هذه الصفحة ويتسبب في عدم استجابة %2$S.\n\nقد يكون مشغولا أو توقف عن الاستجابة. يمكنك إيقاف هذا النّص الآن، أو المواصلة لرؤية فيما إذا كان سينهي تنفيذه.
+KillAddonScriptGlobalMessage=امنع نص الامتداد البرمجي من العمل على هذه الصفحة حتى إعادة تحميلها
+
+StopScriptButton=أوقف النّص البرمجي
+DebugScriptButton=نقّح النص البرمجي
+WaitForScriptButton=واصِل
+DontAskAgain=&لا تسألني ثانيا
+WindowCloseBlockedWarning=لا يسمح للنّصوص البرمجيّة بإغلاق نوافذ لم تفتحها هي.
+OnBeforeUnloadTitle=أمتأكّد أنت؟
+OnBeforeUnloadMessage2=تسألك هذه الصفحة إذا كنت متأكدًا من رغبتك في الخروج - قد لا تُحفظ المعلومات التي أدخلتها.
+OnBeforeUnloadStayButton=ابقَ في الصفحة
+OnBeforeUnloadLeaveButton=غادِر الصفحة
+EmptyGetElementByIdParam=مُرِّر سطر فارغ إلى ‪getElementById()‬.
+DocumentWriteIgnored=حدث تجاهل لاستدعاء document.write() من سكربت خارجي محمّل بشكل غير تزامنيّ.
+# LOCALIZATION NOTE (EditorFileDropFailed): Do not translate contenteditable, %S is the error message explaining why the drop failed.
+EditorFileDropFailed=فشل إفلات الملف على عنصر contenteditable: ‏%S.
+FormValidationTextTooLong=رجاءً اختصر هذا النص ليصل إلى طوله إلى %S حرف أو أقل (أنت أدخلت حتى الآن %S حرفًاs).
+FormValidationTextTooShort=رجاءً استخدم %S من الحروف على الأقل (أدخلت حتى الآن %S من الحروف).
+FormValidationValueMissing=رجاءً املأ هذا الحقل.
+FormValidationCheckboxMissing=رجاءً علّم هذا المربع إن أردت المتابعة.
+FormValidationRadioMissing=رجاءً اختر أحد هذه الخيارات.
+FormValidationFileMissing=رجاءً اختر ملفًا.
+FormValidationSelectMissing=رجاءً اختر عنصرًا من اللائحة.
+FormValidationInvalidEmail=أدخِل رجاءً البريد الإلكتروني.
+FormValidationInvalidURL=أدخِل رجاءً عنوان الموقع.
+FormValidationInvalidDate =رجاءً أدخِل تاريخا صالحا.
+FormValidationPatternMismatch=اتبع رجاءً التنسيق المطلوب.
+# LOCALIZATION NOTE (FormValidationPatternMismatchWithTitle): %S is the (possibly truncated) title attribute value.
+FormValidationPatternMismatchWithTitle=اتبع رجاءً التنسيق المطلوب: %S.
+# LOCALIZATION NOTE (FormValidationNumberRangeOverflow): %S is a number.
+FormValidationNumberRangeOverflow=رجاءً اختر قيمة ليست أكثر من %S.
+# LOCALIZATION NOTE (FormValidationDateTimeRangeOverflow): %S is a date or a time.
+FormValidationDateTimeRangeOverflow=رجاءً اختر قيمة ليست بعد %S.
+# LOCALIZATION NOTE (FormValidationNumberRangeUnderflow): %S is a number.
+FormValidationNumberRangeUnderflow=رجاءً اختر قيمة ليست أقل من %S.
+# LOCALIZATION NOTE (FormValidationDateTimeRangeUnderflow): %S is a date or a time.
+FormValidationDateTimeRangeUnderflow=رجاءً اختر قيمة ليست قبل %S.
+# LOCALIZATION NOTE (FormValidationStepMismatch): both %S can be a number, a date or a time.
+FormValidationStepMismatch=رجاءً اختر قيمة صحيحة. أقرب قيمتين صحيحتين هما %S و %S.
+# LOCALIZATION NOTE (FormValidationStepMismatchOneValue): %S can be a number, a date or a time. This is called instead of FormValidationStepMismatch when the second value is the same as the first.
+FormValidationStepMismatchOneValue=رجاءً اختر قيمة صحيحة. أقرب قيمة صحيحة هي %S.
+# LOCALIZATION NOTE (FormValidationTimeReversedRangeUnderflowAndOverflow): %1$S,%2$S are time.
+FormValidationBadInputNumber=من فضلك أدخل رقمًا.
+FullscreenDeniedDisabled=رُفض طلب ملء الشاشة نظرًا لتعطيل خاصية ملء الشاشة في تفضيلات المستخدم.
+FullscreenDeniedFocusedPlugin=رُفض طلب ملء الشاشة بسبب وجود ملحقة ذات نافذة في البؤرة.
+FullscreenDeniedHidden=رُفض طلب ملء الشاشة لأنّ المستند لم يعد ظاهرًا.
+FullscreenDeniedContainerNotAllowed=رُفض طلب ملء الشاشة لأن iframe واحد على الأقل في المستند ليست له خاصيّة ”allowfullscreen“.
+FullscreenDeniedNotHTMLSVGOrMathML=رُفض طلب ملء الشاشة لأن العنصر المطلوب ليس <svg> أو <math> أو عنصر إتش.تي.إم.إل.
+FullscreenDeniedNotInDocument=رُفض طلب ملء الشاشة لأن العنصر المطلوب لم يعد موجودا في المستند.
+FullscreenDeniedMovedDocument=رُفض طلب ملء الشاشة لأنّ العنصر المطلوب نقل المستند.
+FullscreenDeniedLostWindow=رُفض طلب ملء الشاشة لعدم وجود نافذة.
+FullscreenDeniedSubDocFullscreen=رُفض طلب ملء الشاشة لأن المستند الفرعي للمستند الذي طلب ملء الشاشة هو في وضع ملء الشاشة أصلا.
+FullscreenDeniedNotFocusedTab=رُفض طلب ملء الشاشة لأن العنصر المطلوب ليس في اللسان الموجود في البؤرة حاليا.
+RemovedFullscreenElement=خرجتُ من ملء الشاشة لأن عنصر ملء الشاشة أُزيل من المستند.
+FocusedWindowedPluginWhileFullscreen=خرجتُ من ملء الشاشة لأن ملحقة ذات نافذة رُكّز عليها.
+PointerLockDeniedDisabled=رُفض طلب قفل المؤشر نظرًا لتعطيل واجهة قفل المؤشر في تفضيلات المستخدم.
+PointerLockDeniedNotInDocument=رُفض طلب فقل المؤشر لأنّ العنصر المطلوب ليس في المستند.
+PointerLockDeniedHidden=رُفض طلب فقل المؤشر لأنّ المستند ليس مرئيًا.
+PointerLockDeniedNotFocused=رُفض طلب فقل المؤشر لأنّ المستند ليس في البؤرة.
+PointerLockDeniedMovedDocument=رُفض طلب فقل المؤشر لأنّ العنصر المطلوب نقل المستند.
+HTMLSyncXHRWarning=تحليل HTML في XMLHttpRequest ليس مدعوما في وضع التزامن.
+# LOCALIZATION NOTE: %S is the name of the header in question
+ResponseTypeSyncXHRWarning=استخدام صفة responseType ل‍ XMLHttpRequest لم يعد مدعوما في وضع التزامن في سياق النافذة.
+TimeoutSyncXHRWarning=استخدام صفة timeout ل‍ XMLHttpRequest ليس مدعوما في وضع التزامن في سياق النافذة.
+# LOCALIZATION NOTE: Do not translate navigator.sendBeacon, unload, pagehide, or XMLHttpRequest.
+JSONCharsetWarning=حدثت محاولة لتحديد ترميز غير UTF-8 ل‍ JSON المُسترجع باستخدام XMLHttpRequest. فقط ترميز UTF-8 مدعوم لفك ترميز JSON.
+# LOCALIZATION NOTE: Do not translate HTMLMediaElement and createMediaElementSource.
+# LOCALIZATION NOTE: Do not translate MediaStream and createMediaStreamSource.
+# LOCALIZATION NOTE : Do not translate MediaStreamTrack and createMediaStreamTrackSource.
+# LOCALIZATION NOTE: Do not translate HTMLMediaElement and MediaStream.
+# LOCALIZATION NOTE: Do not translate HTMLMediaElement and MediaStream.
+MediaLoadExhaustedCandidates=فشل تحميل كل المصادر المحتملة. أُلبث تحميل الوسائط.
+MediaLoadSourceMissingSrc=ليس للعنصر <source> خاصيّة ”src“. فشل تحميل مورد الوسائط.
+# LOCALIZATION NOTE: %1$S is the Http error code the server returned (e.g. 404, 500, etc), %2$S is the URL of the media resource which failed to load.
+MediaLoadHttpError=فشل تحميل HTTP بالحالة %1$S. فشل تحميل مورد الوسائط %2$S.
+# LOCALIZATION NOTE: %S is the URL of the media resource which failed to load.
+MediaLoadInvalidURI=العنوان غير صالح. فشلت تحميل مورد الوسائط %S.
+# LOCALIZATION NOTE: %1$S is the media resource's format/codec type (basically equivalent to the file type, e.g. MP4,AVI,WMV,MOV etc), %2$S is the URL of the media resource which failed to load.
+MediaLoadUnsupportedTypeAttribute=صفة ”type“ لِ‍”%1$S“ غير مدعومة. فشل تحميل مورد الوسائط %2$S.
+# LOCALIZATION NOTE: %1$S is the MIME type HTTP header being sent by the web server, %2$S is the URL of the media resource which failed to load.
+# LOCALIZATION NOTE: %S is the URL of the media resource which failed to load because of error in decoding.
+MediaLoadDecodeError=تعذّر فكّ ترميز مورد الوسائط %S.
+# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
+# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
+MediaPlatformDecoderNotFound=لا يمكن تشغيل الفيديو في هذه الصفحة. لربما يفتقد نظامك مرمازات الفيديو المطلوبة ل‍: %S
+MediaUnsupportedLibavcodec=لا يمكن تشغيل الفيديو في هذه الصفحة. إصدارة libavcodec في نظامك غير مدعومة
+# LOCALIZATION NOTE: %1$S is the URL of the media resource, %2$S is technical information (in English)
+# LOCALIZATION NOTE: %1$S is the URL of the media resource, %2$S is technical information (in English)
+# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
+# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
+MediaCannotInitializePulseAudio=تعذّر استخدام PulseAudio
+# LOCALIZATION NOTE: Do not translate "MediaRecorder".
+# LOCALIZATION NOTE: %S is the URL of the web page which is not served on HTTPS and thus is not encrypted and considered insecure.
+# LOCALIZATION NOTE: %S is the URL of the web page which is calling web APIs without passing data (either an audioCapabilities or a videoCapabilities) that will soon be required. See https://bugzilla.mozilla.org/show_bug.cgi?id=1368583#c21 for explanation of this string.
+# LOCALIZATION NOTE: %S is the URL of the web page which is calling web APIs without passing data (a "codecs" string in the "contentType") that will soon be required. See https://bugzilla.mozilla.org/show_bug.cgi?id=1368583#c21 for explanation of this string.
+# LOCALIZATION NOTE: Do not translate "Mutation Event" and "MutationObserver"
+MutationEventWarning=استخدام Mutation Events صار مهجورًا. استخدم MutationObserver عوضًا عنه.
+# LOCALIZATION NOTE: Do not translate "Components"
+ComponentsWarning=كائن Components صار مهجورًا. سيُزال قريبًا.
+PluginHangUITitle=تحذير: ملحق لا يستجيب
+PluginHangUIMessage=قد يكون %S مشغولا، أو أنّه توقف عن الاستجابة. يمكنك إيقاف هذا الملحق الآن، أو المواصلة لرؤية ما إذا كان سينهي تنفيذه.
+PluginHangUIWaitButton=واصِل
+PluginHangUIStopButton=أوقف الملحق
+# LOCALIZATION NOTE: Do not translate "NodeIterator" or "detach()".
+NodeIteratorDetachWarning=نداء detach()‎ على NodeIterator لم يعد له أيّ تأثير.
+# LOCALIZATION NOTE: Do not translate "LenientThis" and "this"
+# LOCALIZATION NOTE: Do not translate "captureEvents()" or "addEventListener()"
+# LOCALIZATION NOTE: Do not translate "releaseEvents()" or "removeEventListener()"
+# LOCALIZATION NOTE: Do not translate "XMLHttpRequest"
+# LOCALIZATION NOTE: Do not translate "window.controllers/Controllers"
+Window_Cc_ontrollersWarning=أصبحت window.controllers/Controllers بائدة. لا تستخدمها لاكتشاف وكيل المستخدم.
+ImportXULIntoContentWarning=استيراد عُقَد XUL إلى محتوى مستند صار مهجورًا. قد تُزال هذه الوظيفة قريبًا.
+# LOCALIZATION NOTE: Do not translate "IndexedDB".
+# LOCALIZATION NOTE: Do not translate Will-change, %1$S,%2$S are numbers.
+# LOCALIZATION NOTE: Do not translate "Worker".
+# LOCALIZATION NOTE: Do not translate "Application Cache API", "AppCache" and "ServiceWorker".
+# LOCALIZATION NOTE: Do not translate "Worker".
+NavigatorGetUserMediaWarning=استُبدلت navigator.mozGetUserMedia إلى navigator.mediaDevices.getUserMedia
+
+# LOCALIZATION NOTE: Do not translate "RTCPeerConnection", "getLocalStreams", "getRemoteStreams", "getSenders" or "getReceivers".
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %S is a URL.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "cors", "Response", "same-origin" or "Request". %1$S is a URL, %2$S is a URL.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "FetchEvent.respondWith()", "FetchEvent", "no-cors", "opaque", "Response", or "RequestMode". %1$S is a URL. %2$S is a RequestMode value.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Error", "Response", "FetchEvent.respondWith()", or "fetch()". %S is a URL.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Response", "FetchEvent.respondWith()", or "Response.clone()". %S is a URL.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "opaqueredirect", "Response", "FetchEvent.respondWith()", or "FetchEvent". %s is a URL.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Response", "FetchEvent.respondWith()", "RedirectMode" or "follow". %S is a URL.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker" or "FetchEvent.preventDefault()". %S is a URL.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "promise", or "FetchEvent.respondWith()". %1$S is a URL. %2$S is an error string.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "promise", "FetchEvent.respondWith()", or "Response". %1$S is a URL. %2$S is an error string.
+# LOCALIZATION NOTE: Do not translate "mozImageSmoothingEnabled", or "imageSmoothingEnabled"
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Service-Worker-Allowed" or "HTTP". %1$S and %2$S are URLs.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %1$S is a URL representing the scope of the ServiceWorker, %2$S is a stringified numeric HTTP status code like "404" and %3$S is a URL.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %1$S is a URL representing the scope of the ServiceWorker, %2$S is a MIME Media Type like "text/plain" and %3$S is a URL.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %S is a URL representing the scope of the ServiceWorker.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker" and "postMessage". %S is a URL representing the scope of the ServiceWorker.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %1$S is a URL representing the scope of the ServiceWorker.
+# LOCALIZATION NOTE (ServiceWorkerNoFetchHandler): Do not translate "Fetch".
+ManifestShouldBeObject=يجب أن يكون الكيان كائنًا.
+# LOCALIZATION NOTE: %1$S is the name of the object whose property is invalid. %2$S is the name of the invalid property. %3$S is the expected type of the property value. E.g. "Expected the manifest's start_url member to be a string."
+# LOCALIZATION NOTE: %1$S is the name of the property whose value is invalid. %2$S is the (invalid) value of the property. E.g. "theme_color: 42 is not a valid CSS color."
+ManifestInvalidCSSColor=%1$S: ‏%2$S ليس لون CSS صالح.
+# LOCALIZATION NOTE: %1$S is the name of the property whose value is invalid. %2$S is the (invalid) value of the property. E.g. "lang: 42 is not a valid language code."
+# LOCALIZATION NOTE: %1$S is the name of the parent property whose value is invalid (e.g., "icons"). %2$S is the index of the image object that is invalid (from 0). %3$S is the name of actual member that is invalid. %4$S is the invalid value. E.g. "icons item at index 2 is invalid. The src member is an invalid URL http://:Invalid"
+# LOCALIZATION NOTE: %1$S is the name of the parent property that that contains the unusable image object (e.g., "icons"). %2$S is the index of the image object that is unusable (from 0). E.g. "icons item at index 2 lacks a usable purpose. It will be ignored."
+# LOCALIZATION NOTE: %1$S is the name of the parent property that contains the unsupported value (e.g., "icons"). %2$S is the index of the image object that has the unsupported value (from 0). %3$S are the unknown purposes. E.g. "icons item at index 2 includes unsupported purpose(s): a b."
+# LOCALIZATION NOTE: %1$S is the name of the parent property that has a repeated purpose (e.g., "icons"). %2$S is the index of the image object that has the repeated purpose (from 0). %3$S is the repeated purposes. E.g. "icons item at index 2 includes repeated purpose(s): a b."
+# LOCALIZATION NOTE: Do not translate "postMessage" or DOMWindow. %S values are origins, like https://domain.com:port
+# LOCALIZATION NOTE: Do not translate 'YouTube'. %S values are origins, like https://domain.com:port
+# LOCALIZATION NOTE: Do not translate 'YouTube'. %S values are origins, like https://domain.com:port
+# LOCALIZATION NOTE: This error is reported when the "Encryption" header for an
+# incoming push message is missing or invalid. Do not translate "ServiceWorker",
+# "Encryption", and "salt". %1$S is the ServiceWorker scope URL.
+# LOCALIZATION NOTE: This error is reported when the "Crypto-Key" header for an
+# incoming push message is missing or invalid. Do not translate "ServiceWorker",
+# "Crypto-Key", and "dh". %1$S is the ServiceWorker scope URL.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt because the deprecated
+# "Encryption-Key" header for an incoming push message is missing or invalid.
+# Do not translate "ServiceWorker", "Encryption-Key", "dh", "Crypto-Key", and
+# "Content-Encoding: aesgcm". %1$S is the ServiceWorker scope URL.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because the "Content-Encoding" header is missing or contains an
+# unsupported encoding. Do not translate "ServiceWorker", "Content-Encoding",
+# "aesgcm", and "aesgcm128". %1$S is the ServiceWorker scope URL.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because the "dh" parameter is not valid base64url. Do not translate
+# "ServiceWorker", "dh", "Crypto-Key", and "base64url". %1$S is the
+# ServiceWorker scope URL.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because the "salt" parameter is not valid base64url. Do not translate
+# "ServiceWorker", "salt", "Encryption", and "base64url". %1$S is the
+# ServiceWorker scope URL.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because the "rs" parameter is not a number, or is less than the pad size.
+# Do not translate "ServiceWorker", "rs", or "Encryption". %1$S is the
+# ServiceWorker scope URL. %2$S is the minimum value (1 for aesgcm128, 2 for
+# aesgcm).
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because an encrypted record is shorter than the pad size, the pad is larger
+# than the record, or any of the padding bytes are non-zero. Do not translate
+# "ServiceWorker". %1$S is the ServiceWorker scope URL. %2$S is the pad size
+# (1 for aesgcm128, 2 for aesgcm).
+# LOCALIZATION NOTE: This error is reported when push message decryption fails
+# and no specific error info is available. Do not translate "ServiceWorker".
+# %1$S is the ServiceWorker scope URL.
+# LOCALIZATION NOTE: %1$S is the type of a DOM event. 'passive' is a literal parameter from the DOM spec.
+# LOCALIZATION NOTE: 'ImageBitmapRenderingContext.transferImageBitmap' and 'ImageBitmapRenderingContext.transferFromImageBitmap' should not be translated
+# LOCALIZATION NOTE: Do not translate ".png"
+GenericImageNamePNG=image.png
+GenericFileName=file
+# LOCALIZATION NOTE: Do not translate "Large-Allocation", as it is a literal header name. Do not translate GET.
+# LOCALIZATION NOTE: Do not translate "Large-Allocation", as it is a literal header name. Do not translate `window.opener`.
+# LOCALIZATION NOTE: Do not translate "Large-Allocation", as it is a literal header name
+# LOCALIZATION NOTE: Do not translate "Large-Allocation", as it is a literal header name.
+# LOCALIZATION NOTE: Do not translate "content", "Window", and "window.top"
+# LOCALIZATION NOTE: The first %S is the tag name of the element that starts the loop, the second %S is the element's ID.
+# LOCALIZATION NOTE: The first %S is the tag name of the element in the chain where the chain was broken, the second %S is the element's ID.
+# LOCALIZATION NOTE: Do not translate "<script>".
+# LOCALIZATION NOTE: Do not translate "<script>".
+# LOCALIZATION NOTE: Do not translate "<script>".
+# LOCALIZATION NOTE: Do not translate "<script>".
+# LOCALIZATION NOTE: Do not translate "<script>".
+# LOCALIZATION NOTE: %1$S is the invalid property value and %2$S is the property name.
+# LOCALIZATION NOTE: Do not translate "ReadableStream".
+ReadableStreamReadingFailed=فشلت قراءة البيانات من ReadableStream: ‏”%S“.
+# LOCALIZATION NOTE: Do not translate "registerProtocolHandler"
+# LOCALIZATION NOTE: Do not translate "storage", "indexedDB.open" and "navigator.storage.persist()".
+# LOCALIZATION NOTE: do not localize key=“%S” modifiers=“%S” id=“%S”
+# LOCALIZATION NOTE: do not trnaslated "document.domain"
+
+#LOCALIZATION NOTE(DeprecatedTestingInterfaceWarning): Do not translate this message. It's just testing only.
+#LOCALIZATION NOTE(DeprecatedTestingMethodWarning): Do not translate this message. It's just testing only.
+#LOCALIZATION NOTE(DeprecatedTestingAttributeWarning): Do not translate this message. It's just testing only.
+# LOCALIZATION NOTE (CreateImageBitmapCanvasRenderingContext2DWarning): Do not translate CanvasRenderingContext2D and createImageBitmap.
+# LOCALIZATION NOTE (DrawWindowCanvasRenderingContext2DWarning): Do not translate CanvasRenderingContext2D, drawWindow and tabs.captureTab.
+# LOCALIZATION NOTE (MozRequestFullScreenDeprecatedPrefixWarning): Do not translate mozRequestFullScreen.
+# LOCALIZATION NOTE (MozfullscreenchangeDeprecatedPrefixWarning): Do not translate onmozfullscreenchange.
+# LOCALIZATION NOTE (MozfullscreenerrorDeprecatedPrefixWarning): Do not translate onmozfullscreenerror.
+# LOCALIZATION NOTE(External_AddSearchProviderWarning): Do not translate AddSearchProvider.
+# LOCALIZATION NOTE: Do not translate "MouseEvent.mozPressure" and "PointerEvent.pressure".
+# LOCALIZATION NOTE: Do not translate MathML, align, numalign and denomalign.
+# LOCALIZATION NOTE: Do not translate MathML and bevelled.
+# LOCALIZATION NOTE: Do not translate thin, medium, thick and linethickness.
+# LOCALIZATION NOTE: Do not translate small, normal, big and mathsize.
+# LOCALIZATION NOTE: Do not translate veryverythinmathspace, verythinmathspace,
+# thinmathspace, mediummathspace, thickmathspace, verythickmathspace, veryverythickmathspace and MathML.
+# LOCALIZATION NOTE: Do not translate radical, notation and menclose.
+# LOCALIZATION NOTE: Do not translate MathML or mfenced.
+# LOCALIZATION NOTE: Do not translate MathML, subscriptshift and superscriptshift.
+# LOCALIZATION NOTE: Do not translate MathML, background, color, fontfamily, fontsize, fontstyle and fontweight.
+# LOCALIZATION NOTE: Do not translate MathML and XLink.
+# LOCALIZATION NOTE: Do not translate MathML and STIXGeneral. %S is a documentation URL.
+# LOCALIZATION NOTE: Do not translate MathML and scriptminsize.
+# LOCALIZATION NOTE: Do not translate MathML and scriptsizemultiplier.
+# LOCALIZATION NOTE (UnknownProtocolNavigationPrevented): %1$S is the destination URL.
+# LOCALIZATION NOTE: %S is the URL of the resource in question
+
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess(), iframe, allow-same-origin and sandbox (though you may translate "sandboxed").
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess(), iframe, allow-storage-access-by-user-activation and sandbox (though you may translate "sandboxed").
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess() and iframe.
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess(). In some locales it may be preferable to not translate "event handler", either.
+# LOCALIZATION NOTE: Do not translate "Location" and "History".
+# LOCALIZATION NOTE: %S is the name of the folder the user selected in the file picker.
+# LOCALIZATION NOTE: %S is the URL of the preload that was ignored.
+# LOCALIZATION NOTE: %S is the blob URL. Don't translate "agent cluster".
+
+
+SpeculationFailed2=An unbalanced tree was written using document.write() causing data from the network to be reparsed. More information: https://developer.mozilla.org/en-US/docs/Glossary/speculative_parsing
+FormValidationInvalidTime=Please enter a valid time.
+FormValidationInvalidDateTime=Please enter valid date and time.
+FormValidationInvalidDateMonth=Please enter a valid month.
+FormValidationInvalidDateWeek=Please enter a valid week.
+# LOCALIZATION NOTE (FormValidationTimeReversedRangeUnderflowAndOverflow): %1$S,%2$S are time.
+FormValidationTimeReversedRangeUnderflowAndOverflow=Please select a value between %1$S and %2$S.
+FullscreenDeniedHTMLDialog=Request for fullscreen was denied because requesting element is a <dialog> element.
+FullscreenDeniedNotInputDriven=Request for fullscreen was denied because Element.requestFullscreen() was not called from inside a short running user-generated event handler.
+FullscreenDeniedMouseEventOnlyLeftBtn=Request for fullscreen was denied because Element.requestFullscreen() was called from inside a mouse event handler not triggered by left mouse button.
+FullscreenDeniedPopoverOpen=Request for fullscreen was denied because the element is already open as a popover.
+FullscreenDeniedFeaturePolicy=Request for fullscreen was denied because of FeaturePolicy directives.
+FullscreenExitWindowFocus=Exited fullscreen because a window was focused.
+PointerLockDeniedInUse=Request for pointer lock was denied because the pointer is currently controlled by a different document.
+PointerLockDeniedSandboxed=Request for pointer lock was denied because Pointer Lock API is restricted via sandbox.
+PointerLockDeniedNotInputDriven=Request for pointer lock was denied because Element.requestPointerLock() was not called from inside a short running user-generated event handler, and the document is not in full screen.
+PointerLockDeniedFailedToLock=Request for pointer lock was denied because the browser failed to lock the pointer.
+# LOCALIZATION NOTE: %S is the name of the header in question
+ForbiddenHeaderWarning=Attempt to set a forbidden header was denied: %S
+# LOCALIZATION NOTE: Do not translate navigator.sendBeacon, unload, pagehide, or XMLHttpRequest.
+UseSendBeaconDuringUnloadAndPagehideWarning=Use of navigator.sendBeacon instead of synchronous XMLHttpRequest during unload and pagehide improves user experience.
+# LOCALIZATION NOTE: Do not translate HTMLMediaElement and createMediaElementSource.
+MediaElementAudioSourceNodeCrossOrigin=The HTMLMediaElement passed to createMediaElementSource has a cross-origin resource, the node will output silence.
+# LOCALIZATION NOTE: Do not translate MediaStream and createMediaStreamSource.
+MediaStreamAudioSourceNodeCrossOrigin=The MediaStream passed to createMediaStreamSource has a cross-origin resource, the node will output silence.
+# LOCALIZATION NOTE : Do not translate MediaStreamTrack and createMediaStreamTrackSource.
+MediaStreamTrackAudioSourceNodeCrossOrigin=The MediaStreamTrack passed to createMediaStreamTrackSource is a cross-origin resource, the node will output silence.
+# LOCALIZATION NOTE: Do not translate HTMLMediaElement and MediaStream.
+MediaElementAudioCaptureOfMediaStreamError=The captured HTMLMediaElement is playing a MediaStream. Applying volume or mute status is not currently supported.
+# LOCALIZATION NOTE: Do not translate HTMLMediaElement and MediaStream.
+MediaElementStreamCaptureCycle=The MediaStream assigned to srcObject comes from a capture of this HTMLMediaElement, forming a cycle, assignment ignored.
+MediaStreamAudioSourceNodeDifferentRate=Connecting AudioNodes from AudioContexts with different sample-rate is currently not supported.
+MediaLoadUnsupportedTypeAttributeLoadingNextChild=Specified “type” attribute of “%1$S” is not supported. Load of media resource %2$S failed. Trying to load from next <source> element.
+# LOCALIZATION NOTE: %1$S is the MIME type HTTP header being sent by the web server, %2$S is the URL of the media resource which failed to load.
+MediaLoadUnsupportedMimeType=HTTP “Content-Type” of “%1$S” is not supported. Load of media resource %2$S failed.
+MediaWidevineNoWMF=Trying to play Widevine with no Windows Media Foundation. See https://support.mozilla.org/kb/fix-video-audio-problems-firefox-windows
+# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
+MediaWMFNeeded=To play video formats %S, you need to install extra Microsoft software, see https://support.mozilla.org/kb/fix-video-audio-problems-firefox-windows
+# LOCALIZATION NOTE: %1$S is the URL of the media resource, %2$S is technical information (in English)
+MediaDecodeError=Media resource %1$S could not be decoded, error: %2$S
+# LOCALIZATION NOTE: %1$S is the URL of the media resource, %2$S is technical information (in English)
+MediaDecodeWarning=Media resource %1$S could be decoded, but with error: %2$S
+# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
+MediaCannotPlayNoDecoders=Cannot play media. No decoders for requested formats: %S
+# LOCALIZATION NOTE: %S is a comma-separated list of codecs (e.g. 'video/mp4, video/webm')
+MediaNoDecoders=No decoders for some of the requested formats: %S
+# LOCALIZATION NOTE: %S is the URL of the web page which is not served on HTTPS and thus is not encrypted and considered insecure.
+MediaEMEInsecureContextDeprecatedWarning=Using Encrypted Media Extensions at %S on an insecure (i.e. non-HTTPS) context is deprecated and will soon be removed. You should consider switching to a secure origin such as HTTPS.
+# LOCALIZATION NOTE: %S is the URL of the web page which is calling web APIs without passing data (either an audioCapabilities or a videoCapabilities) that will soon be required. See https://bugzilla.mozilla.org/show_bug.cgi?id=1368583#c21 for explanation of this string.
+MediaEMENoCapabilitiesDeprecatedWarning=Calling navigator.requestMediaKeySystemAccess() (at %S) without passing a candidate MediaKeySystemConfiguration containing audioCapabilities or videoCapabilities is deprecated and will soon become unsupported.
+# LOCALIZATION NOTE: %S is the URL of the web page which is calling web APIs without passing data (a "codecs" string in the "contentType") that will soon be required. See https://bugzilla.mozilla.org/show_bug.cgi?id=1368583#c21 for explanation of this string.
+MediaEMENoCodecsDeprecatedWarning=Calling navigator.requestMediaKeySystemAccess() (at %S) passing a candidate MediaKeySystemConfiguration containing audioCapabilities or videoCapabilities without a contentType with a “codecs” string is deprecated and will soon become unsupported.
+BlockAutoplayError=Autoplay is only allowed when approved by the user, the site is activated by the user, or media is muted.
+BlockAutoplayWebAudioStartError=An AudioContext was prevented from starting automatically. It must be created or resumed after a user gesture on the page.
+# LOCALIZATION NOTE: Do not translate "LenientThis" and "this"
+LenientThisWarning=Ignoring get or set of property that has [LenientThis] because the “this” object is incorrect.
+# LOCALIZATION NOTE: Do not translate "captureEvents()" or "addEventListener()"
+UseOfCaptureEventsWarning=Use of captureEvents() is deprecated. To upgrade your code, use the DOM 2 addEventListener() method. For more help http://developer.mozilla.org/en/docs/DOM:element.addEventListener
+# LOCALIZATION NOTE: Do not translate "releaseEvents()" or "removeEventListener()"
+UseOfReleaseEventsWarning=Use of releaseEvents() is deprecated. To upgrade your code, use the DOM 2 removeEventListener() method. For more help http://developer.mozilla.org/en/docs/DOM:element.removeEventListener
+# LOCALIZATION NOTE: Do not translate "XMLHttpRequest"
+SyncXMLHttpRequestWarning=Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user’s experience. For more help http://xhr.spec.whatwg.org/
+# LOCALIZATION NOTE: Do not translate "IndexedDB".
+IndexedDBTransactionAbortNavigation=An IndexedDB transaction that was not yet complete has been aborted due to page navigation.
+# LOCALIZATION NOTE: Do not translate Will-change, %1$S,%2$S are numbers.
+IgnoringWillChangeOverBudgetWarning=Will-change memory consumption is too high. Budget limit is the document surface area multiplied by %1$S (%2$S px). Occurrences of will-change over the budget will be ignored.
+# LOCALIZATION NOTE: Do not translate "Worker".
+HittingMaxWorkersPerDomain2=A Worker could not be started immediately because other documents in the same origin are already using the maximum number of workers. The Worker is now queued and will be started after some of the other workers have completed.
+# LOCALIZATION NOTE: Do not translate "Application Cache API", "AppCache" and "ServiceWorker".
+AppCacheWarning=The Application Cache API (AppCache) is deprecated and will be removed at a future date. Please consider using ServiceWorker for offline support.
+# LOCALIZATION NOTE: Do not translate "Worker".
+EmptyWorkerSourceWarning=Attempting to create a Worker from an empty source. This is probably unintentional.
+# LOCALIZATION NOTE: Do not translate "RTCPeerConnection", "getLocalStreams", "getRemoteStreams", "getSenders" or "getReceivers".
+RTCPeerConnectionGetStreamsWarning=RTCPeerConnection.getLocalStreams/getRemoteStreams are deprecated. Use RTCPeerConnection.getSenders/getReceivers instead.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %S is a URL.
+InterceptionFailedWithURL=Failed to load ‘%S’. A ServiceWorker intercepted the request and encountered an unexpected error.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "cors", "Response", "same-origin" or "Request". %1$S is a URL, %2$S is a URL.
+CorsResponseForSameOriginRequest=Failed to load ‘%1$S’ by responding ‘%2$S’. A ServiceWorker is not allowed to synthesize a cors Response for a same-origin Request.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "FetchEvent.respondWith()", "FetchEvent", "no-cors", "opaque", "Response", or "RequestMode". %1$S is a URL. %2$S is a RequestMode value.
+BadOpaqueInterceptionRequestModeWithURL=Failed to load ‘%1$S’. A ServiceWorker passed an opaque Response to FetchEvent.respondWith() while handling a ‘%2$S’ FetchEvent. Opaque Response objects are only valid when the RequestMode is ‘no-cors’.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Error", "Response", "FetchEvent.respondWith()", or "fetch()". %S is a URL.
+InterceptedErrorResponseWithURL=Failed to load ‘%S’. A ServiceWorker passed an Error Response to FetchEvent.respondWith(). This typically means the ServiceWorker performed an invalid fetch() call.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Response", "FetchEvent.respondWith()", or "Response.clone()". %S is a URL.
+InterceptedUsedResponseWithURL=Failed to load ‘%S’. A ServiceWorker passed a used Response to FetchEvent.respondWith(). The body of a Response may only be read once. Use Response.clone() to access the body multiple times.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "opaqueredirect", "Response", "FetchEvent.respondWith()", or "FetchEvent". %S is a URL.
+BadOpaqueRedirectInterceptionWithURL=Failed to load ‘%S’. A ServiceWorker passed an opaqueredirect Response to FetchEvent.respondWith() while handling a non-navigation FetchEvent.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Response", "FetchEvent.respondWith()", "RedirectMode" or "follow". %S is a URL.
+BadRedirectModeInterceptionWithURL=Failed to load ‘%S’. A ServiceWorker passed a redirected Response to FetchEvent.respondWith() while RedirectMode is not ‘follow’.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker" or "FetchEvent.preventDefault()". %S is a URL.
+InterceptionCanceledWithURL=Failed to load ‘%S’. A ServiceWorker canceled the load by calling FetchEvent.preventDefault().
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "promise", or "FetchEvent.respondWith()". %1$S is a URL. %2$S is an error string.
+InterceptionRejectedResponseWithURL=Failed to load ‘%1$S’. A ServiceWorker passed a promise to FetchEvent.respondWith() that rejected with ‘%2$S’.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "promise", "FetchEvent.respondWith()", or "Response". %1$S is a URL. %2$S is an error string.
+InterceptedNonResponseWithURL=Failed to load ‘%1$S’. A ServiceWorker passed a promise to FetchEvent.respondWith() that resolved with non-Response value ‘%2$S’.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker", "Service-Worker-Allowed" or "HTTP". %1$S and %2$S are URLs.
+ServiceWorkerScopePathMismatch=Failed to register a ServiceWorker: The path of the provided scope ‘%1$S’ is not under the max scope allowed ‘%2$S’. Adjust the scope, move the Service Worker script, or use the Service-Worker-Allowed HTTP header to allow the scope.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %1$S is a URL representing the scope of the ServiceWorker, %2$S is a stringified numeric HTTP status code like "404" and %3$S is a URL.
+ServiceWorkerRegisterNetworkError=Failed to register/update a ServiceWorker for scope ‘%1$S’: Load failed with status %2$S for script ‘%3$S’.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %1$S is a URL representing the scope of the ServiceWorker, %2$S is a MIME Media Type like "text/plain" and %3$S is a URL.
+ServiceWorkerRegisterMimeTypeError2=Failed to register/update a ServiceWorker for scope ‘%1$S’: Bad Content-Type of ‘%2$S’ received for script ‘%3$S’. Must be a JavaScript MIME type.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %S is a URL representing the scope of the ServiceWorker.
+ServiceWorkerRegisterStorageError=Failed to register/update a ServiceWorker for scope ‘%S’: Storage access is restricted in this context due to user settings or private browsing mode.
+ServiceWorkerGetRegistrationStorageError=Failed to get service worker registration(s): Storage access is restricted in this context due to user settings or private browsing mode.
+ServiceWorkerGetClientStorageError=Failed to get service worker’s client(s): Storage access is restricted in this context due to user settings or private browsing mode.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker" and "postMessage". %S is a URL representing the scope of the ServiceWorker.
+ServiceWorkerPostMessageStorageError=The ServiceWorker for scope ‘%S’ failed to execute ‘postMessage‘ because storage access is restricted in this context due to user settings or private browsing mode.
+# LOCALIZATION NOTE: Do not translate "ServiceWorker". %1$S is a URL representing the scope of the ServiceWorker.
+ServiceWorkerGraceTimeoutTermination=Terminating ServiceWorker for scope ‘%1$S’ with pending waitUntil/respondWith promises because of grace timeout.
+# LOCALIZATION NOTE (ServiceWorkerNoFetchHandler): Do not translate "Fetch".
+ServiceWorkerNoFetchHandler=Fetch event handlers must be added during the worker script’s initial evaluation.
+ExecCommandCutCopyDeniedNotInputDriven=document.execCommand(‘cut’/‘copy’) was denied because it was not called from inside a short running user-generated event handler.
+ManifestIdIsInvalid=The id member did not resolve to a valid URL.
+ManifestIdNotSameOrigin=The id member must have the same origin as the start_url member.
+ManifestScopeURLInvalid=The scope URL is invalid.
+ManifestScopeNotSameOrigin=The scope URL must be same origin as document.
+ManifestStartURLOutsideScope=The start URL is outside the scope, so the scope is invalid.
+ManifestStartURLInvalid=The start URL is invalid.
+ManifestStartURLShouldBeSameOrigin=The start URL must be same origin as document.
+# LOCALIZATION NOTE: %1$S is the name of the object whose property is invalid. %2$S is the name of the invalid property. %3$S is the expected type of the property value. E.g. "Expected the manifest's start_url member to be a string."
+ManifestInvalidType=Expected the %1$S’s %2$S member to be a %3$S.
+# LOCALIZATION NOTE: %1$S is the name of the property whose value is invalid. %2$S is the (invalid) value of the property. E.g. "lang: 42 is not a valid language code."
+ManifestLangIsInvalid=%1$S: %2$S is not a valid language code.
+# LOCALIZATION NOTE: %1$S is the name of the parent property whose value is invalid (e.g., "icons"). %2$S is the index of the image object that is invalid (from 0). %3$S is the name of actual member that is invalid. %4$S is the invalid value. E.g. "icons item at index 2 is invalid. The src member is an invalid URL http://:Invalid"
+ManifestImageURLIsInvalid=%1$S item at index %2$S is invalid. The %3$S member is an invalid URL %4$S
+# LOCALIZATION NOTE: %1$S is the name of the parent property that that contains the unusable image object (e.g., "icons"). %2$S is the index of the image object that is unusable (from 0). E.g. "icons item at index 2 lacks a usable purpose. It will be ignored."
+ManifestImageUnusable=%1$S item at index %2$S lacks a usable purpose. It will be ignored.
+# LOCALIZATION NOTE: %1$S is the name of the parent property that contains the unsupported value (e.g., "icons"). %2$S is the index of the image object that has the unsupported value (from 0). %3$S are the unknown purposes. E.g. "icons item at index 2 includes unsupported purpose(s): a b."
+ManifestImageUnsupportedPurposes=%1$S item at index %2$S includes unsupported purpose(s): %3$S.
+# LOCALIZATION NOTE: %1$S is the name of the parent property that has a repeated purpose (e.g., "icons"). %2$S is the index of the image object that has the repeated purpose (from 0). %3$S is the repeated purposes. E.g. "icons item at index 2 includes repeated purpose(s): a b."
+ManifestImageRepeatedPurposes=%1$S item at index %2$S includes repeated purpose(s): %3$S.
+PatternAttributeCompileFailure=Unable to check <input pattern='%S'> because the pattern is not a valid regexp: %S
+# LOCALIZATION NOTE: Do not translate "postMessage" or DOMWindow. %S values are origins, like https://domain.com:port
+TargetPrincipalDoesNotMatch=Failed to execute ‘postMessage’ on ‘DOMWindow’: The target origin provided (‘%S’) does not match the recipient window’s origin (‘%S’).
+# LOCALIZATION NOTE: Do not translate 'YouTube'. %S values are origins, like https://domain.com:port
+RewriteYouTubeEmbed=Rewriting old-style YouTube Flash embed (%S) to iframe embed (%S). Please update page to use iframe instead of embed/object, if possible.
+# LOCALIZATION NOTE: Do not translate 'YouTube'. %S values are origins, like https://domain.com:port
+RewriteYouTubeEmbedPathParams=Rewriting old-style YouTube Flash embed (%S) to iframe embed (%S). Params were unsupported by iframe embeds and converted. Please update page to use iframe instead of embed/object, if possible.
+# LOCALIZATION NOTE: This error is reported when the "Encryption" header for an
+# incoming push message is missing or invalid. Do not translate "ServiceWorker",
+# "Encryption", and "salt". %1$S is the ServiceWorker scope URL.
+PushMessageBadEncryptionHeader=The ServiceWorker for scope ‘%1$S’ failed to decrypt a push message. The ‘Encryption’ header must include a unique ‘salt‘ parameter for each message. See https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-3.1 for more information.
+# LOCALIZATION NOTE: This error is reported when the "Crypto-Key" header for an
+# incoming push message is missing or invalid. Do not translate "ServiceWorker",
+# "Crypto-Key", and "dh". %1$S is the ServiceWorker scope URL.
+PushMessageBadCryptoKeyHeader=The ServiceWorker for scope ‘%1$S’ failed to decrypt a push message. The ‘Crypto-Key‘ header must include a ‘dh‘ parameter containing the app server’s public key. See https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-4 for more information.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt because the deprecated
+# "Encryption-Key" header for an incoming push message is missing or invalid.
+# Do not translate "ServiceWorker", "Encryption-Key", "dh", "Crypto-Key", and
+# "Content-Encoding: aesgcm". %1$S is the ServiceWorker scope URL.
+PushMessageBadEncryptionKeyHeader=The ServiceWorker for scope ‘%1$S’ failed to decrypt a push message. The ‘Encryption-Key’ header must include a ‘dh‘ parameter. This header is deprecated and will soon be removed. Please use ‘Crypto-Key‘ with ‘Content-Encoding: aesgcm‘ instead. See https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-4 for more information.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because the "Content-Encoding" header is missing or contains an
+# unsupported encoding. Do not translate "ServiceWorker", "Content-Encoding",
+# "aesgcm", and "aesgcm128". %1$S is the ServiceWorker scope URL.
+PushMessageBadEncodingHeader=The ServiceWorker for scope ‘%1$S’ failed to decrypt a push message. The ‘Content-Encoding‘ header must be ‘aesgcm‘. ‘aesgcm128‘ is allowed, but deprecated and will soon be removed. See https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-2 for more information.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because the "dh" parameter is not valid base64url. Do not translate
+# "ServiceWorker", "dh", "Crypto-Key", and "base64url". %1$S is the
+# ServiceWorker scope URL.
+PushMessageBadSenderKey=The ServiceWorker for scope ‘%1$S’ failed to decrypt a push message. The ‘dh‘ parameter in the ‘Crypto-Key‘ header must be the app server’s Diffie-Hellman public key, base64url-encoded (https://tools.ietf.org/html/rfc7515#appendix-C) and in “uncompressed” or “raw” form (65 bytes before encoding). See https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-4 for more information.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because the "salt" parameter is not valid base64url. Do not translate
+# "ServiceWorker", "salt", "Encryption", and "base64url". %1$S is the
+# ServiceWorker scope URL.
+PushMessageBadSalt=The ServiceWorker for scope ‘%1$S’ failed to decrypt a push message. The ‘salt‘ parameter in the ‘Encryption‘ header must be base64url-encoded (https://tools.ietf.org/html/rfc7515#appendix-C), and be at least 16 bytes before encoding. See https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-3.1 for more information.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because the "rs" parameter is not a number, or is less than the pad size.
+# Do not translate "ServiceWorker", "rs", or "Encryption". %1$S is the
+# ServiceWorker scope URL. %2$S is the minimum value (1 for aesgcm128, 2 for
+# aesgcm).
+PushMessageBadRecordSize=The ServiceWorker for scope ‘%1$S’ failed to decrypt a push message. The ‘rs‘ parameter of the ‘Encryption‘ header must be between %2$S and 2^36-31, or omitted entirely. See https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-3.1 for more information.
+# LOCALIZATION NOTE: This error is reported when a push message fails to decrypt
+# because an encrypted record is shorter than the pad size, the pad is larger
+# than the record, or any of the padding bytes are non-zero. Do not translate
+# "ServiceWorker". %1$S is the ServiceWorker scope URL. %2$S is the pad size
+# (1 for aesgcm128, 2 for aesgcm).
+PushMessageBadPaddingError=The ServiceWorker for scope ‘%1$S’ failed to decrypt a push message. A record in the encrypted message was not padded correctly. See https://tools.ietf.org/html/draft-ietf-httpbis-encryption-encoding-02#section-2 for more information.
+# LOCALIZATION NOTE: This error is reported when push message decryption fails
+# and no specific error info is available. Do not translate "ServiceWorker".
+# %1$S is the ServiceWorker scope URL.
+PushMessageBadCryptoError=The ServiceWorker for scope ‘%1$S’ failed to decrypt a push message. For help with encryption, please see https://developer.mozilla.org/docs/Web/API/Push_API/Using_the_Push_API#Encryption
+# LOCALIZATION NOTE: %1$S is the type of a DOM event. 'passive' is a literal parameter from the DOM spec.
+PreventDefaultFromPassiveListenerWarning=Ignoring ‘preventDefault()’ call on event of type ‘%1$S’ from a listener registered as ‘passive’.
+# LOCALIZATION NOTE: 'ImageBitmapRenderingContext.transferImageBitmap' and 'ImageBitmapRenderingContext.transferFromImageBitmap' should not be translated
+ImageBitmapRenderingContext_TransferImageBitmapWarning=ImageBitmapRenderingContext.transferImageBitmap is deprecated and will be removed soon. Use ImageBitmapRenderingContext.transferFromImageBitmap instead.
+IIRFilterChannelCountChangeWarning=IIRFilterNode channel count changes may produce audio glitches.
+BiquadFilterChannelCountChangeWarning=BiquadFilterNode channel count changes may produce audio glitches.
+GeolocationInsecureRequestIsForbidden=A Geolocation request can only be fulfilled in a secure context.
+NotificationsInsecureRequestIsForbidden=The Notification permission may only be requested in a secure context.
+NotificationsCrossOriginIframeRequestIsForbidden=The Notification permission may only be requested in a top-level document or same-origin iframe.
+NotificationsRequireUserGesture=The Notification permission may only be requested from inside a short running user-generated event handler.
+NotificationsRequireUserGestureDeprecationWarning=Requesting Notification permission outside a short running user-generated event handler is deprecated and will not be supported in the future.
+# LOCALIZATION NOTE: Do not translate "content", "Window", and "window.top"
+WindowContentUntrustedWarning=The ‘content’ attribute of Window objects is deprecated. Please use ‘window.top’ instead.
+# LOCALIZATION NOTE: The first %S is the tag name of the element that starts the loop, the second %S is the element's ID.
+SVGRefLoopWarning=The SVG <%S> with ID “%S” has a reference loop.
+# LOCALIZATION NOTE: The first %S is the tag name of the element in the chain where the chain was broken, the second %S is the element's ID.
+SVGRefChainLengthExceededWarning=An SVG <%S> reference chain which is too long was abandoned at the element with ID “%S”.
+# LOCALIZATION NOTE: Do not translate SVGGraphicsElement.nearestViewportElement or SVGElement.viewportElement.
+SVGNearestViewportElement=SVGGraphicsElement.nearestViewportElement is deprecated and will be removed at a future date. Use SVGElement.viewportElement instead.
+# LOCALIZATION NOTE: Do not translate SVGGraphicsElement.farthestViewportElement.
+SVGFarthestViewportElement=SVGGraphicsElement.farthestViewportElement is deprecated and will be removed at a future date.
+# LOCALIZATION NOTE: Do not translate "<script>".
+ScriptSourceEmpty=‘%S’ attribute of <script> element is empty.
+# LOCALIZATION NOTE: Do not translate "<script>".
+ScriptSourceInvalidUri=‘%S’ attribute of <script> element is not a valid URI: “%S”
+# LOCALIZATION NOTE: Do not translate "<script>".
+ScriptSourceLoadFailed=Loading failed for the <script> with source “%S”.
+ModuleSourceLoadFailed=Loading failed for the module with source “%S”.
+# LOCALIZATION NOTE: Do not translate "<script>".
+ScriptSourceMalformed=<script> source URI is malformed: “%S”.
+ModuleSourceMalformed=Module source URI is malformed: “%S”.
+# LOCALIZATION NOTE: Do not translate "<script>".
+ScriptSourceNotAllowed=<script> source URI is not allowed in this document: “%S”.
+ModuleSourceNotAllowed=Module source URI is not allowed in this document: “%S”.
+WebExtContentScriptModuleSourceNotAllowed=WebExtension content scripts may only load modules with moz-extension URLs and not: “%S”.
+ModuleResolveFailureNoWarn=Error resolving module specifier “%S”.
+ModuleResolveFailureWarnRelative=Error resolving module specifier “%S”. Relative module specifiers must start with “./”, “../” or “/”.
+ImportMapInvalidTopLevelKey=An invalid top-level key “%S” was present in the import map.
+ImportMapEmptySpecifierKeys=Specifier keys cannot be empty strings.
+ImportMapAddressesNotStrings=Addresses need to be strings.
+ImportMapInvalidAddress=Address “%S” was invalid.
+# %1$S is the specifier key, %2$S is the URL.
+ImportMapAddressNotEndsWithSlash=An invalid address was given for the specifier key “%1$S”; since “%1$S” ended in a slash, the address “%2$S” needs to as well.
+ImportMapScopePrefixNotParseable=The scope prefix URL “%S” was not parseable.
+ImportMapResolutionBlockedByNullEntry=Resolution of specifier “%S” was blocked by a null entry.
+ImportMapResolutionBlockedByAfterPrefix=Resolution of specifier “%S” was blocked since the substring after prefix could not be parsed as a URL relative to the address in the import map.
+ImportMapResolutionBlockedByBacktrackingPrefix=Resolution of specifier “%S” was blocked since the parsed URL does not start with the address in the import map.
+ImportMapResolveInvalidBareSpecifierWarnRelative=The specifier “%S” was a bare specifier, but was not remapped to anything. Relative module specifiers must start with “./”, “../” or “/”.
+# LOCALIZATION NOTE: Do not translate "<script type='importmap'>", "src".
+ImportMapExternalNotSupported=External import maps are not supported: <script type='importmap'> with a src attribute is currently not supported.
+ImportMapNotAllowedMultiple=Multiple import maps are not allowed.
+ImportMapNotAllowedAfterModuleLoad=Import maps are not allowed after a module load or preload has started.
+# LOCALIZATION NOTE: %1$S is the invalid property value and %2$S is the property name.
+InvalidKeyframePropertyValue=Keyframe property value “%1$S” is invalid according to the syntax for “%2$S”.
+# LOCALIZATION NOTE: Do not translate "registerProtocolHandler"
+RegisterProtocolHandlerPrivateBrowsingWarning=Can’t use registerProtocolHandler inside private browsing mode.
+MotionEventWarning=Use of the motion sensor is deprecated.
+OrientationEventWarning=Use of the orientation sensor is deprecated.
+ProximityEventWarning=Use of the proximity sensor is deprecated.
+AmbientLightEventWarning=Use of the ambient light sensor is deprecated.
+UnsupportedEntryTypesIgnored=Ignoring unsupported entryTypes: %S.
+AllEntryTypesIgnored=No valid entryTypes; aborting registration.
+# LOCALIZATION NOTE: do not localize key=“%S” modifiers=“%S” id=“%S”
+GTK2Conflict2=Key event not available on GTK2: key=“%S” modifiers=“%S” id=“%S”
+WinConflict2=Key event not available on some keyboard layouts: key=“%S” modifiers=“%S” id=“%S”
+# LOCALIZATION NOTE: do not trnaslated "document.domain"
+DocumentSetDomainNotAllowedWarning=Setting document.domain in a cross-origin isolated environment is not allowed.
+#LOCALIZATION NOTE(DeprecatedTestingInterfaceWarning): Do not translate this message. It's just testing only.
+DeprecatedTestingInterfaceWarning=TestingDeprecatedInterface is a testing-only interface and this is its testing deprecation message.
+#LOCALIZATION NOTE(DeprecatedTestingMethodWarning): Do not translate this message. It's just testing only.
+DeprecatedTestingMethodWarning=TestingDeprecatedInterface.deprecatedMethod() is a testing-only method and this is its testing deprecation message.
+#LOCALIZATION NOTE(DeprecatedTestingAttributeWarning): Do not translate this message. It's just testing only.
+DeprecatedTestingAttributeWarning=TestingDeprecatedInterface.deprecatedAttribute is a testing-only attribute and this is its testing deprecation message.
+# LOCALIZATION NOTE (CreateImageBitmapCanvasRenderingContext2DWarning): Do not translate CanvasRenderingContext2D and createImageBitmap.
+CreateImageBitmapCanvasRenderingContext2DWarning=Use of CanvasRenderingContext2D in createImageBitmap is deprecated.
+# LOCALIZATION NOTE (DrawWindowCanvasRenderingContext2DWarning): Do not translate CanvasRenderingContext2D, drawWindow and tabs.captureTab.
+DrawWindowCanvasRenderingContext2DWarning=Use of drawWindow method from CanvasRenderingContext2D is deprecated. Use tabs.captureTab extensions API instead https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/tabs/captureTab
+# LOCALIZATION NOTE (MozRequestFullScreenDeprecatedPrefixWarning): Do not translate mozRequestFullScreen.
+MozRequestFullScreenDeprecatedPrefixWarning=mozRequestFullScreen() is deprecated.
+# LOCALIZATION NOTE (MozfullscreenchangeDeprecatedPrefixWarning): Do not translate onmozfullscreenchange.
+MozfullscreenchangeDeprecatedPrefixWarning=onmozfullscreenchange is deprecated.
+# LOCALIZATION NOTE (MozfullscreenerrorDeprecatedPrefixWarning): Do not translate onmozfullscreenerror.
+MozfullscreenerrorDeprecatedPrefixWarning=onmozfullscreenerror is deprecated.
+# LOCALIZATION NOTE(External_AddSearchProviderWarning): Do not translate AddSearchProvider.
+External_AddSearchProviderWarning=AddSearchProvider is deprecated.
+# LOCALIZATION NOTE: Do not translate "MouseEvent.mozPressure" and "PointerEvent.pressure".
+MouseEvent_MozPressureWarning=MouseEvent.mozPressure is deprecated. Use PointerEvent.pressure instead.
+# LOCALIZATION NOTE: Do not translate small, normal, big and mathsize.
+MathML_DeprecatedMathSizeValueWarning=“small”, “normal” and “big” are deprecated values for the mathsize attribute and will be removed at a future date.
+# LOCALIZATION NOTE: Do not translate veryverythinmathspace, verythinmathspace,
+# thinmathspace, mediummathspace, thickmathspace, verythickmathspace, veryverythickmathspace and MathML.
+MathML_DeprecatedMathSpaceValueWarning=“veryverythinmathspace”, “verythinmathspace”, “thinmathspace”, “mediummathspace”, “thickmathspace”, “verythickmathspace” and “veryverythickmathspace” are deprecated values for MathML lengths and will be removed at a future date.
+# LOCALIZATION NOTE: Do not translate MathML, background, color, fontfamily, fontsize, fontstyle and fontweight.
+MathML_DeprecatedStyleAttributeWarning=MathML attributes “background”, “color”, “fontfamily”, “fontsize”, “fontstyle” and “fontweight” are deprecated and will be removed at a future date.
+# LOCALIZATION NOTE: Do not translate MathML and STIXGeneral. %S is a documentation URL.
+MathML_DeprecatedStixgeneralOperatorStretchingWarning=Support for rendering stretched MathML operators with STIXGeneral fonts is deprecated and may be removed at a future date. For details about newer fonts that will continue to be supported, see %S
+# LOCALIZATION NOTE: Do not translate MathML and scriptminsize.
+MathML_DeprecatedScriptminsizeAttributeWarning=MathML attribute “scriptminsize” is deprecated and will be removed at a future date.
+# LOCALIZATION NOTE: Do not translate MathML and scriptsizemultiplier.
+MathML_DeprecatedScriptsizemultiplierAttributeWarning=MathML attribute “scriptsizemultiplier” is deprecated and will be removed at a future date.
+FormSubmissionUntrustedEventWarning=Form submission via untrusted submit event is deprecated and will be removed at a future date.
+WebShareAPI_Failed=The share operation has failed.
+WebShareAPI_Aborted=The share operation was aborted.
+# LOCALIZATION NOTE (UnknownProtocolNavigationPrevented): %1$S is the destination URL.
+UnknownProtocolNavigationPrevented=Prevented navigation to “%1$S” due to an unknown protocol.
+PostMessageSharedMemoryObjectToCrossOriginWarning=Cannot post message containing a shared memory object to a cross-origin window.
+# LOCALIZATION NOTE: %S is the URL of the resource in question
+UnusedLinkPreloadPending=The resource at “%S” preloaded with link preload was not used within a few seconds. Make sure all attributes of the preload tag are set correctly.
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess(), iframe, allow-same-origin and sandbox (though you may translate "sandboxed").
+RequestStorageAccessNullPrincipal=document.requestStorageAccess() may not be called on a document with an opaque origin, such as a sandboxed iframe without allow-same-origin in its sandbox attribute.
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess(), iframe, allow-storage-access-by-user-activation and sandbox (though you may translate "sandboxed").
+RequestStorageAccessSandboxed=document.requestStorageAccess() may not be called in a sandboxed iframe without allow-storage-access-by-user-activation in its sandbox attribute.
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess() and iframe.
+RequestStorageAccessNested=document.requestStorageAccess() may not be called in a nested iframe.
+# LOCALIZATION NOTE: Do not translate document.requestStorageAccess(). In some locales it may be preferable to not translate "event handler", either.
+RequestStorageAccessUserGesture=document.requestStorageAccess() may only be requested from inside a short running user-generated event handler.
+# LOCALIZATION NOTE: Do not translate "Location" and "History".
+LocChangeFloodingPrevented=Too many calls to Location or History APIs within a short timeframe.
+FolderUploadPrompt.title = Confirm Upload
+# LOCALIZATION NOTE: %S is the name of the folder the user selected in the file picker.
+FolderUploadPrompt.message = Are you sure you want to upload all files from “%S”? Only do this if you trust the site.
+FolderUploadPrompt.acceptButtonLabel = Upload
+InputPickerBlockedNoUserActivation=<input> picker was blocked due to lack of user activation.
+ExternalProtocolFrameBlockedNoUserActivation=Iframe with external protocol was blocked due to lack of user activation, or because not enough time has passed since the last such iframe was loaded.
+MultiplePopupsBlockedNoUserActivation=Opening multiple popups was blocked due to lack of user activation.
+# LOCALIZATION NOTE: %S is the URL of the preload that was ignored.
+PreloadIgnoredInvalidAttr=Preload of %S was ignored due to unknown “as” or “type” values, or non-matching “media” attribute.
+# LOCALIZATION NOTE: %S is the blob URL. Don't translate "agent cluster".
+BlobDifferentClusterError=Cannot access blob URL “%S” from a different agent cluster.
+# LOCALIZATION NOTE: Do not translate "Element.setCapture()" and "Element.setPointerCapture()"".
+ElementSetCaptureWarning=Element.setCapture() is deprecated. Use Element.setPointerCapture() instead. For more help https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture
+# LOCALIZATION NOTE: Do not translate "Element.releaseCapture()" and "Element.releasePointerCapture()".
+ElementReleaseCaptureWarning=Element.releaseCapture() is deprecated. Use Element.releasePointerCapture() instead. For more help https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture
+# LOCALIZATION NOTE: Do not translate "Document.releaseCapture()" and "Element.releasePointerCapture()".
+DocumentReleaseCaptureWarning=Document.releaseCapture() is deprecated. Use Element.releasePointerCapture() instead. For more help https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture
+# LOCALIZATION NOTE: Don't translate browser.runtime.lastError, %S is the error message from the unchecked value set on browser.runtime.lastError.
+WebExtensionUncheckedLastError=browser.runtime.lastError value was not checked: %S
+# LOCALIZATION NOTE: Do not translate "OffscreenCanvas.toBlob()" and "OffscreenCanvas.convertToBlob()".
+OffscreenCanvasToBlobWarning=OffscreenCanvas.toBlob() is deprecated. Use OffscreenCanvas.convertToBlob() instead.
+# LOCALIZATION NOTE: Do not translate "InstallTrigger"
+InstallTriggerDeprecatedWarning=InstallTrigger is deprecated and will be removed in the future.
+# LOCALIZATION NOTE: Do not translate "InstallTrigger.install()"
+InstallTriggerInstallDeprecatedWarning=InstallTrigger.install() is deprecated and will be removed in the future. For more help https://extensionworkshop.com/documentation/publish/self-distribution/
+# LOCALIZATION NOTE: Do not translate "HTMLOptionsCollection.length". %1$S is the invalid value, %2$S is the current limit.
+SelectOptionsLengthAssignmentWarning=Refused to expand <select> option list via assignment to HTMLOptionsCollection.length (value %1$S). The maximum supported size is %2$S.
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/extensions.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/extensions.properties
new file mode 100644
index 0000000000..8c3c31baab
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/extensions.properties
@@ -0,0 +1,28 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#LOCALIZATION NOTE (uninstall.confirmation.title) %S is the name of the extension which is about to be uninstalled.
+uninstall.confirmation.title = أزل %S
+
+#LOCALIZATION NOTE (uninstall.confirmation.message) %S is the name of the extension which is about to be uninstalled.
+uninstall.confirmation.message = يطلب الامتداد ”%S“ إزالته. ما الذي تريد فعله؟
+
+uninstall.confirmation.button-0.label = أزل
+uninstall.confirmation.button-1.label = لا تُزل
+
+saveaspdf.saveasdialog.title = احفظ باسم
+
+#LOCALIZATION NOTE (newTabControlled.message2) %S is the icon and name of the extension which updated the New Tab page.
+newTabControlled.message2 = غير أحد الامتدادات، %S، الصفحة التي تراها عندما تفتح لسانا جديدا.
+newTabControlled.learnMore = اطّلع على المزيد
+
+#LOCALIZATION NOTE (homepageControlled.message) %S is the icon and name of the extension which updated the homepage.
+homepageControlled.message = غير أحد الامتدادات، %S، ما تراه عندما تفتح الصفحة الرئيسية أو نافذة جديدة.
+homepageControlled.learnMore = اطّلع على المزيد
+
+#LOCALIZATION NOTE (tabHideControlled.message) %1$S is the icon and name of the extension which hid tabs, %2$S is the icon of the all tabs button.
+tabHideControlled.message = يخفي أحد الامتدادات، %1$S، بعض ألسنتك. يمكن الوصول إلى كل الألسنة من %2$S.
+tabHideControlled.learnMore = اطّلع على المزيد
+
+
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/fallbackMenubar.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/fallbackMenubar.properties
new file mode 100644
index 0000000000..e788b80a92
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/fallbackMenubar.properties
@@ -0,0 +1,8 @@
+# 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/.
+
+# OSX only. Default menu label when there is no xul menubar.
+
+quitMenuitem.label=أغلق
+quitMenuitem.key=q
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/filepicker.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/filepicker.properties
new file mode 100644
index 0000000000..71e9499114
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/filepicker.properties
@@ -0,0 +1,20 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE: The extensions to which these descriptions refer
+# now live in toolkit/content/filepicker.properties
+allTitle=كلّ الملفّات
+htmlTitle=ملفّات HTML
+textTitle=ملفّات نصّيّة
+imageTitle=ملفّات صور
+xmlTitle=ملفّات XML
+xulTitle=ملفات XUL
+appsTitle=تطبيقات
+audioTitle=ملفات صوتية
+videoTitle=ملفات فيديو
+
+formatLabel=الصيغة:
+
+
+selectedFileNotReadableError=Selected file does not have read permission
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/global-strres.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/global-strres.properties
new file mode 100644
index 0000000000..99356434ce
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/global-strres.properties
@@ -0,0 +1,5 @@
+# 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/.
+
+16389=حدث خطأ مجهول (%1$S)
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/intl.css b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/intl.css
new file mode 100644
index 0000000000..743277bffc
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/intl.css
@@ -0,0 +1,94 @@
+/* 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/. */
+
+/*
+ * This file contains all localizable skin settings such as
+ * font, layout, and geometry
+ * Contributor(s):
+ * Tsahi Asher (tsahi_75@yahoo.com)
+ * Reuven Gonen (linxspider@yahoo.com)
+ */
+window {
+ font: 3mm tahoma,arial,helvetica,sans-serif;
+}
+
+
+/**************************
+** Global Settings **
+***************************/
+
+/*make UI RTL */
+
+window,prefwindow,dialog,wizard,page,menu { direction: rtl; }
+
+/*
+ chrome://browser/skin/pageInfo.css uses italic font style for the disabled textboxes.
+ Because Persian italic fonts are busted on some platforms (such as Vista), opt for not
+ using them.
+ We do this globally because any other similar code would result in imperfect rendering.
+*/
+
+textbox[disabled] {
+ font-style: normal !important;
+}
+
+/* Make the XML error page RTL (bug 417489) */
+
+parsererror {
+ direction: rtl;
+}
+
+
+/********************
+** Firefox **
+*********************/
+
+
+/*
+ Set LTR for url and file paths and align them to the right - Bug 289934
+ Updates:
+ - Removed #downloadFolder (bug 1457720).
+*/
+
+#link-url-text, #source, #path, #url, #feedurl, #urltext {
+ direction: ltr !important;
+ text-align: right !important;
+}
+
+
+/********************
+** Thunderbird **
+*********************/
+
+
+#statusbar-display {
+ direction: ltr !important;
+ text-align: right !important;
+ }
+
+/* Set Folder Pane on the left side of window */
+
+#mailContentWrapper {
+ direction: ltr !important;
+}
+
+/* Set Mail Content titlebar as RTL */
+
+#searchBox {
+ direction: rtl !important;
+}
+
+/* Set Statusbar to LTR */
+
+#statusText {
+ direction: ltr !important;
+ text-align: right !important;
+}
+
+/********************
+** Extensions **
+*********************/
+
+#adblockPreferencesWindow
+{direction: ltr !important }
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/intl.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/intl.properties
new file mode 100644
index 0000000000..1152126ce9
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/intl.properties
@@ -0,0 +1,43 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (intl.accept_languages):
+# This is a comma-separated list of valid BCP 47 language tags.
+#
+# Begin with the value of 'general.useragent.locale'. Next, include language
+# tags for other languages that you expect most users of your locale to be
+# able to speak, so that their browsing experience degrades gracefully if
+# content is not available in their primary language.
+#
+# It is recommended that you include "en-US, en" at the end of the list as a
+# last resort. However, if you know that users of your locale would prefer a
+# different variety of English, or if they are not likely to understand
+# English at all, you may opt to include a different English language tag, or
+# to exclude English altogether.
+#
+# For example, the Breton [br] locale might consider including French and
+# British English in their list, since those languages are commonly spoken in
+# the same area as Breton:
+# intl.accept_languages=br, fr-FR, fr, en-GB, en
+intl.accept_languages=ar, en-us, en
+
+# LOCALIZATION NOTE (font.language.group):
+# This preference controls the initial setting of the language drop-down menu
+# in the Content > Fonts & Colors > Advanced preference panel.
+#
+# Set it to the value of one of the menuitems in the "selectLangs" menulist in
+# http://dxr.mozilla.org/mozilla-central/source/browser/components/preferences/fonts.xul
+font.language.group=ar
+
+# LOCALIZATION NOTE (pluralRule): Pick the appropriate plural rule for your
+# language. This will determine how many plural forms of a word you will need
+# to provide and in what order.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+pluralRule=12
+
+# LOCALIZATION NOTE (intl.menuitems.alwaysappendaccesskeys, intl.menuitems.insertseparatorbeforeaccesskeys):
+# Valid values are: true, false, <empty string>
+# Missing preference or empty value equals false.
+intl.menuitems.alwaysappendaccesskeys=
+intl.menuitems.insertseparatorbeforeaccesskeys=false
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/keys.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/keys.properties
new file mode 100644
index 0000000000..fe05d0d053
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/keys.properties
@@ -0,0 +1,78 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE : FILE This file contains the application's labels for keys on the keyboard.
+# If you decide to translate this file, you should translate it based on
+# the prevelant kind of keyboard for your target user.
+# LOCALIZATION NOTE : There are two types of keys, those w/ text on their labels
+# and those w/ glyphs.
+# LOCALIZATION NOTE : VK_<…> represents a key on the keyboard.
+#
+# For more information please see bugzilla bug 90888.
+
+# LOCALIZATION NOTE : FILE This file contains the application's labels for keys on the keyboard.
+# If you decide to translate this file, you should translate it based on
+# the prevalent kind of keyboard for your target user.
+# LOCALIZATION NOTE : There are two types of keys, those w/ text on their labels
+# and those w/ glyphs.
+# LOCALIZATION NOTE : VK_<…> represents a key on the keyboard.
+#
+# For more information please see bugzilla bug 90888.
+
+# F1..F10 should probably not be translated unless there are keyboards that actually have other labels
+# F11..F20 might be something else, but are really keyboard specific and not region/language specific
+# there are actually two different F11/F12 keys, I don't know which one these labels represent.
+# eg, F13..F20 on a sparc keyboard are labeled Props, Again .. Find, Cut
+# sparc also has Stop, Again and F11/F12. VK_F11/VK_F12 probably map to Stop/Again
+# LOCALIZATION NOTE : BLOCK Do not translate the next block
+VK_F1=F1
+VK_F2=F2
+VK_F3=F3
+VK_F4=F4
+VK_F5=F5
+VK_F6=F6
+VK_F7=F7
+VK_F8=F8
+VK_F9=F9
+VK_F10=F10
+
+VK_F11=F11
+VK_F12=F12
+VK_F13=F13
+VK_F14=F14
+VK_F15=F15
+VK_F16=F16
+VK_F17=F17
+VK_F18=F18
+VK_F19=F19
+VK_F20=F20
+# LOCALIZATION NOTE : BLOCK end do not translate block
+
+# LOCALIZATION NOTE : BLOCK GLYPHS, DO translate this block
+VK_UP=سهم لأعلى
+VK_DOWN=سهم لأسفل
+VK_LEFT=سهم لليسار
+VK_RIGHT=سهم لليمين
+VK_PAGE_UP=صفحة لأعلى
+VK_PAGE_DOWN=صفحة لأسفل
+# LOCALIZATION NOTE : BLOCK end GLYPHS
+
+# Enter, backspace, and Tab might have both glyphs and text
+# if the keyboards usually have a glyph,
+# if there is a meaningful translation,
+# or if keyboards are localized
+# then translate them or insert the appropriate glyph
+# otherwise you should probably just translate the glyph regions
+
+VK_TAB=↤
+VK_BACK=←
+VK_DELETE=حذف
+# LOCALIZATION NOTE : BLOCK end maybe GLYPHS
+# LOCALIZATION NOTE : BLOCK typing state keys
+VK_HOME=البداية
+VK_END=النهاية
+
+VK_ESCAPE=Esc
+VK_INSERT=إدراج
+# LOCALIZATION NOTE : BLOCK end
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/layout/HtmlForm.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/layout/HtmlForm.properties
new file mode 100644
index 0000000000..19ef2ebeee
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/layout/HtmlForm.properties
@@ -0,0 +1,35 @@
+# 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/.
+
+Reset=صفّر
+Submit=أرسل الاستعلام
+Browse=تصفّح…
+FileUpload=رفع الملفّات
+DirectoryUpload=اختر مجلدًا لرفعه
+DirectoryPickerOkButtonLabel=ارفع
+ForgotPostWarning=يحتوي النّموذج enctype=%S، ولكن لا يتضمّن method=post. سيُرسل ب‍ method=GET و دون enctype بدلًا من ذلك.
+ForgotFileEnctypeWarning=يحتوي النّموذج ملفّ دخْل، ولكنّه يفتقد method=POST و enctype=multipart /form-data على النّموذج. لن يرسل الملفّ.
+# LOCALIZATION NOTE (DefaultFormSubject): %S will be replaced with brandShortName
+DefaultFormSubject=إرسال استمارة من %S
+CannotEncodeAllUnicode=لقد أرسلت الاستمارة بالترميز %S الذي لا يمكنك ترميز كل محارف يونيكود، لذا قد تتلف مُدخلات المستخدم. لتفادي هذه المشكلة يجب تغيير الصفحة بحيث ترسل الاستمارة بترميز UTF-8، إما بتغيير ترميز الصفحة نفسها إلى UTF-8 أو بتحديد accept-charset=utf-8 في عنصر الاستمارة.
+AllSupportedTypes=كل الأنواع المدعومة
+# LOCALIZATION NOTE (NoFileSelected): this string is shown on a
+# <input type='file'> when there is no file selected yet.
+NoFileSelected=لم تُحدد أي ملفّات.
+# LOCALIZATION NOTE (NoFilesSelected): this string is shown on a
+# <input type='file' multiple> when there is no file selected yet.
+NoFilesSelected=لم تُحدد أي ملفّات.
+# LOCALIZATION NOTE (NoDirSelected): this string is shown on a
+# <input type='file' directory/webkitdirectory> when there is no directory
+# selected yet.
+NoDirSelected=لم يُختر أي دليل.
+# LOCALIZATION NOTE (XFilesSelected): this string is shown on a
+# <input type='file' multiple> when there are more than one selected file.
+# %S will be a number greater or equal to 2.
+XFilesSelected=%S ملفات محددة.
+ColorPicker=اختر لونًا
+# LOCALIZATION NOTE (DefaultSummary): this string is shown on a <details> when
+# it has no direct <summary> child. Google Chrome should already have this
+# string translated.
+DefaultSummary=التفاصيل
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/layout/MediaDocument.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/layout/MediaDocument.properties
new file mode 100644
index 0000000000..077195bf83
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/layout/MediaDocument.properties
@@ -0,0 +1,23 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#LOCALIZATION NOTE (ImageTitleWithDimensions2AndFile): first %S is filename, second %S is type, third %S is width and fourth %S is height
+#LOCALIZATION NOTE (ImageTitleWithoutDimensions): first %S is filename, second %S is type
+#LOCALIZATION NOTE (ImageTitleWithDimensions2): first %S is type, second %S is width and third %S is height
+#LOCALIZATION NOTE (ImageTitleWithNeitherDimensionsNorFile): first %S is type
+#LOCALIZATION NOTE (MediaTitleWithFile): first %S is filename, second %S is type
+#LOCALIZATION NOTE (MediaTitleWithNoInfo): first %S is type
+ImageTitleWithDimensions2AndFile=%S (صورة %S، %S×%S بكسل)
+ImageTitleWithoutDimensions=%S (صورة %S)
+ImageTitleWithDimensions2=(صورة %S، %S×%S بكسل)
+ImageTitleWithNeitherDimensionsNorFile=(صورة %S)
+MediaTitleWithFile=%S (%S عنصر)
+MediaTitleWithNoInfo=(كائن %S)
+
+InvalidImage=تعذّر عرض الصّورة ”%S“، لأنّها تحتوي أخطاء.
+ScaledImage=مقيّسة (%S%%)
+
+TitleWithStatus=%S - %S
+
+UnsupportedImage=The image “%S” cannot be displayed because it requires unsupported features.
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/layout/htmlparser.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/layout/htmlparser.properties
new file mode 100644
index 0000000000..5d1b74acd4
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/layout/htmlparser.properties
@@ -0,0 +1,146 @@
+# 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/.
+
+# Encoding warnings and errors
+EncNoDeclarationFrame=لم يُحدد ترميز مستند مُؤطّر. قد يظهر المستند بشكل مختلف إذا عرض خارج المستند الذي يُؤطّره.
+EncMetaUnsupported=حُدّد ترميز محارف غير مدعوم لمستند HTML باستخدام وسم meta. تجاهلتُ التحديد.
+EncProtocolUnsupported=أُعلن ترميز محارف غير مدعوم في مستوى ميفاق النقل. تجاهلتُ الإعلان.
+EncMetaUtf16=استُخدم وسم وصفي لإعلان ترميز المحارف على أنه UTF-16. فُسّر هذا على أنّه إعلان UTF-8 عوضا عن ذلك.
+EncMetaUserDefined=استُخدم وسم وصفي لإعلان ترميز المحارف على أنه x-user-defined. فُسّر هذا على أنّه إعلان windows-1252 عوضا عن ذلك لغرض التوافقية مع الخطوط العتيقة غير المرمزة كما ينبغي عمدا. على هذا الموقع الانتقال إلى يونيكود.
+
+# The bulk of the messages below are derived from
+# https://hg.mozilla.org/projects/htmlparser/file/1f633cef7de7/src/nu/validator/htmlparser/impl/ErrorReportingTokenizer.java
+# which is available under the MIT license.
+
+# Tokenizer errors
+errGarbageAfterLtSlash=مهملات بعد ”‎</‎“.
+errLtSlashGt=رأيتُ ”</>“. الأسباب المحتملة هي ”‎<‎“ لم يُهرّب (هرّبه مستخدما ”‎&lt;‎“) أو وسم نهاية أخطأت بكتابته.
+errCharRefLacksSemicolon=المرجع المحرفي لم يُنهى بفاصلة منقوطة.
+errNoSpaceBetweenAttributes=لا مسافة بين الصفات.
+errAttributeValueMissing=قيمة الخاصية ناقصة.
+errBadCharBeforeAttributeNameLt=رأيتُ ”‎<‎“ بينما توقعت اسم خاصية. السبب المحتمل هو عدم وجود ”‎>‎“ قبله مباشرة.
+errEqualsSignBeforeAttributeName=رأيتُ ”=“ بينما توقعت اسم خاصية. السبب المحتمل هو عدم وجود اسم الخاصية.
+errBadCharAfterLt=محرف سيئ بعد ”‎<‎“. السبب المحتمل هو ”‎<‎“ لم يُهرّب. جرّب تهريبه مستخدما ”‎&lt;‎“.
+errLtGt=رأيتُ ”<>“. الأسباب المحتملة هي ”‎<‎“ لم يُهرّب (هرّبه مستخدما ”‎&lt;‎“) أو وسم بداية أخطأت بكتابته.
+errProcessingInstruction=رأيتُ ”‎<?‎“. السبب المحتمل هو محاولة استخدام تعليمة معالجة XML في HTML. (تعليمات معالجة XML غير مدعومة في HTML.)
+errQuoteBeforeAttributeName=رأيتُ علامة اقتباس بينما توقعت اسم خاصية. السبب المحتمل هو عدم وجود ”=“ قبله مباشرة.
+errLtInAttributeName=”‎<‎“ في اسم الخاصية. السبب المحتمل هو عدم وجود ”‎>‎“ قبله مباشرة.
+errQuoteInAttributeName=علامة اقتباس في اسم الصفة. المشكلة قد تكون: نقص علامة اقتباس مطابقة في مكان ما سبق هذا.
+errEofInComment=انتهى الملف داخل تعليق.
+errEofInDoctype=انتهى الملف داخل doctype.
+errEofInAttributeValue=وصلتُ إلى نهاية الملف داخل قيمة صفة. سأتجاهل الوسم.
+errEofInAttributeName=انتهى الملف عند اسم صفة. سأتجاهل الوسم.
+errEofInEndTag=انتهى الملف داخل وسم نهاية. سأتجاهل الوسم.
+errEofAfterLt=انتهى الملف بعد ”‎<‎“.
+errDuplicateAttribute=صفة مكرّرة.
+errMissingSpaceBeforeDoctypeName=مسافة ناقصة قبل اسم doctype.
+
+# Tree builder errors
+errUnclosedElements=رأيتُ وسم نهاية ”%1$S“، ولكن لم تكن هناك عناصر مفتوحة.
+errUnclosedElementsImplied=رأيتُ وسم نهاية ”%1$S“ مفترض، و لكن لم تكن هناك عناصر مفتوحة.
+errEndTagAfterBody=رأيتُ وسم نهاية بعد إغلاق ”body“.
+errNoTableRowToClose=لا صف جدول لإغلاقه.
+errEndWithUnclosedElements=رأيتُ وسم نهاية ”%1$S“، ولكن لم تكن هناك عناصر مفتوحة.
+
+EncXmlDecl=The character encoding of an HTML document was declared using the XML declaration syntax. This is non-conforming, and declaring the encoding using a meta tag at the start of the head part is more efficient.
+EncMetaTooLate=A meta tag attempting to declare the character encoding declaration was found too late, and the encoding was guessed from content instead. The meta tag needs to be moved to the start of the head part of the document.
+EncMetaTooLateFrame=A meta tag attempting to declare the character encoding declaration was found too late, and the encoding of the parent document was used instead. The meta tag needs to be moved to the start of the head part of the document.
+EncMetaAfterHeadInKilobyte=The meta tag declaring the character encoding of the document should be moved to start of the head part of the document.
+EncNoDecl=The character encoding of the document was not declared, so the encoding was guessed from content. The character encoding needs to be declared in the Content-Type HTTP header, using a meta tag, or using a byte order mark.
+EncNoDeclPlain=The character encoding of the document was not declared, so the encoding was guessed from content. The character encoding needs to be declared in the Content-Type HTTP header or using a byte order mark.
+EncMetaReplacement=A meta tag was used to declare an encoding that is a cross-site scripting hazard. The replacement encoding was used instead.
+EncProtocolReplacement=An encoding that is a cross-site scripting hazard was declared on the transfer protocol level. The replacement encoding was used instead.
+EncDetectorReload=The character encoding of the document was not declared, and the encoding was guessable from content only late. This caused the document to be reloaded. The character encoding needs to be declared in the Content-Type HTTP header, using a meta tag, or using a byte order mark.
+EncDetectorReloadPlain=The character encoding of the document was not declared, and the encoding was guessable from content only late. This caused the document to be reloaded. The character encoding needs to be declared in the Content-Type HTTP header or using a byte order mark.
+EncError=The byte stream was erroneous according to the character encoding that was declared. The character encoding declaration may be incorrect.
+EncErrorFrame=The byte stream was erroneous according to the character encoding that was inherited from the parent document. The character encoding needs to be declared in the Content-Type HTTP header, using a meta tag, or using a byte order mark.
+EncErrorFramePlain=The byte stream was erroneous according to the character encoding that was inherited from the parent document. The character encoding needs to be declared in the Content-Type HTTP header or using a byte order mark.
+EncSpeculationFailMeta=The start of the document was reparsed, because there were non-ASCII characters before the meta tag that declared the encoding. The meta should be the first child of head without non-ASCII comments before.
+EncSpeculationFailXml=The start of the document was reparsed, because there were non-ASCII characters in the part of the document that was unsuccessfully searched for a meta tag before falling back to the XML declaration syntax. A meta tag at the start of the head part should be used instead of the XML declaration syntax.
+# The audience of the following message isn't the author of the document but other people debugging browser behavior.
+EncSpeculationFail2022=The start of the document was reparsed, because ISO-2022-JP is an ASCII-incompatible encoding.
+errNoDigitsInNCR=No digits in numeric character reference.
+errGtInSystemId=“>” in system identifier.
+errGtInPublicId=“>” in public identifier.
+errNamelessDoctype=Nameless doctype.
+errConsecutiveHyphens=Consecutive hyphens did not terminate a comment. “--” is not permitted inside a comment, but e.g. “- -” is.
+errPrematureEndOfComment=Premature end of comment. Use “-->” to end a comment properly.
+errBogusComment=Bogus comment.
+errUnquotedAttributeLt=“<” in an unquoted attribute value. Probable cause: Missing “>” immediately before.
+errUnquotedAttributeGrave=“`” in an unquoted attribute value. Probable cause: Using the wrong character as a quote.
+errUnquotedAttributeQuote=Quote in an unquoted attribute value. Probable causes: Attributes running together or a URL query string in an unquoted attribute value.
+errUnquotedAttributeEquals=“=” in an unquoted attribute value. Probable causes: Attributes running together or a URL query string in an unquoted attribute value.
+errSlashNotFollowedByGt=A slash was not immediately followed by “>”.
+errUnquotedAttributeStartLt=“<” at the start of an unquoted attribute value. Probable cause: Missing “>” immediately before.
+errUnquotedAttributeStartGrave=“`” at the start of an unquoted attribute value. Probable cause: Using the wrong character as a quote.
+errUnquotedAttributeStartEquals=“=” at the start of an unquoted attribute value. Probable cause: Stray duplicate equals sign.
+errUnescapedAmpersandInterpretedAsCharacterReference=The string following “&” was interpreted as a character reference. (“&” probably should have been escaped as “&amp;”.)
+errNotSemicolonTerminated=Named character reference was not terminated by a semicolon. (Or “&” should have been escaped as “&amp;”.)
+errNoNamedCharacterMatch=“&” did not start a character reference. (“&” probably should have been escaped as “&amp;”.)
+errExpectedPublicId=Expected a public identifier but the doctype ended.
+errBogusDoctype=Bogus doctype.
+maybeErrAttributesOnEndTag=End tag had attributes.
+maybeErrSlashInEndTag=Stray “/” at the end of an end tag.
+errNcrNonCharacter=Character reference expands to a non-character.
+errNcrSurrogate=Character reference expands to a surrogate.
+errNcrControlChar=Character reference expands to a control character.
+errNcrCr=A numeric character reference expanded to carriage return.
+errNcrInC1Range=A numeric character reference expanded to the C1 controls range.
+errEofInPublicId=End of file inside public identifier.
+errEofWithoutGt=Saw end of file without the previous tag ending with “>”. Ignoring tag.
+errEofInTagName=End of file seen when looking for tag name. Ignoring tag.
+errNcrOutOfRange=Character reference outside the permissible Unicode range.
+errNcrUnassigned=Character reference expands to a permanently unassigned code point.
+errEofInSystemId=End of file inside system identifier.
+errExpectedSystemId=Expected a system identifier but the doctype ended.
+errNestedComment=Saw “<!--” within a comment. Probable cause: Nested comment (not allowed).
+errNcrZero=Character reference expands to zero.
+errNoSpaceBetweenDoctypeSystemKeywordAndQuote=No space between the doctype “SYSTEM” keyword and the quote.
+errNoSpaceBetweenPublicAndSystemIds=No space between the doctype public and system identifiers.
+errNoSpaceBetweenDoctypePublicKeywordAndQuote=No space between the doctype “PUBLIC” keyword and the quote.
+# Tree builder errors
+errDeepTree=The document tree is too deep. The tree will be flattened to be 513 elements deep.
+errStrayStartTag2=Stray start tag “%1$S”.
+errStrayEndTag=Stray end tag “%1$S”.
+errUnclosedElementsCell=A table cell was implicitly closed, but there were open elements.
+errStrayDoctype=Stray doctype.
+errAlmostStandardsDoctype=Almost standards mode doctype. Expected “<!DOCTYPE html>”.
+errQuirkyDoctype=Quirky doctype. Expected “<!DOCTYPE html>”.
+errAlmostStandardsDoctypeVerbose=This page is in Almost Standards Mode. Page layout may be impacted. For Standards Mode use “<!DOCTYPE html>”.
+errQuirkyDoctypeVerbose=This page is in Quirks Mode. Page layout may be impacted. For Standards Mode use “<!DOCTYPE html>”.
+errNonSpaceInTrailer=Non-space character in page trailer.
+errNonSpaceAfterFrameset=Non-space after “frameset”.
+errNonSpaceInFrameset=Non-space in “frameset”.
+errNonSpaceAfterBody=Non-space character after body.
+errNonSpaceInColgroupInFragment=Non-space in “colgroup” when parsing fragment.
+errNonSpaceInNoscriptInHead=Non-space character inside “noscript” inside “head”.
+errFooBetweenHeadAndBody=“%1$S” element between “head” and “body”.
+errStartTagWithoutDoctype=Start tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”.
+errNoSelectInTableScope=No “select” in table scope.
+errStartSelectWhereEndSelectExpected=“select” start tag where end tag expected.
+errStartTagWithSelectOpen=“%1$S” start tag with “select” open.
+errBadStartTagInNoscriptInHead=Bad start tag “%1$S” in “noscript” in “head”.
+errImage=Saw a start tag “image”.
+errFooSeenWhenFooOpen2=Start tag “%1$S” seen but an element of the same type was already open.
+errHeadingWhenHeadingOpen=Heading cannot be a child of another heading.
+errFramesetStart=“frameset” start tag seen.
+errNoCellToClose=No cell to close.
+errStartTagInTable=Start tag “%1$S” seen in “table”.
+errFormWhenFormOpen=Saw a “form” start tag, but there was already an active “form” element. Nested forms are not allowed. Ignoring the tag.
+errTableSeenWhileTableOpen=Start tag for “table” seen but the previous “table” is still open.
+errStartTagInTableBody=“%1$S” start tag in table body.
+errEndTagSeenWithoutDoctype=End tag seen without seeing a doctype first. Expected “<!DOCTYPE html>”.
+errEndTagSeenWithSelectOpen=“%1$S” end tag with “select” open.
+errGarbageInColgroup=Garbage in “colgroup” fragment.
+errEndTagBr=End tag “br”.
+errNoElementToCloseButEndTagSeen=No “%1$S” element in scope but a “%1$S” end tag seen.
+errHtmlStartTagInForeignContext=HTML start tag “%1$S” in a foreign namespace context.
+errNonSpaceInTable=Misplaced non-space characters inside a table.
+errUnclosedChildrenInRuby=Unclosed children in “ruby”.
+errStartTagSeenWithoutRuby=Start tag “%1$S” seen without a “ruby” element being open.
+errSelfClosing=Self-closing syntax (“/>”) used on a non-void HTML element. Ignoring the slash and treating as a start tag.
+errNoCheckUnclosedElementsOnStack=Unclosed elements on stack.
+errEndTagDidNotMatchCurrentOpenElement=End tag “%1$S” did not match the name of the current open element (“%2$S”).
+errEndTagViolatesNestingRules=End tag “%1$S” violates nesting rules.
+errListUnclosedStartTags=Unclosed element or elements.
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/layout/xmlparser.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/layout/xmlparser.properties
new file mode 100644
index 0000000000..32f3ccf9ab
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/layout/xmlparser.properties
@@ -0,0 +1,48 @@
+# 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/.
+
+# Map Expat error codes to error strings
+1 = نفذت الذاكرة
+2 = خطأ صياغي
+3 = لا يوجد أي عنصر جذر
+4 = ليس مشكّلًا جيّدًا
+5 = علامة غير مغلقة
+6 = مِحرف جزئي
+7 = وسْم غير مطابق
+8 = خاصّة مكرّرة
+9 = نفايات بعد عنصر مستند
+10 = مرجع كيان معامِل غير صالح
+11 = كيان غير معرّف
+12 = مرجع كيان عودي
+13 = كيان غير متزامن
+14 = مرجع إلى رقم محرف غير صالح
+15 = مرجع إلى كيان ثنائي
+16 = مرجع إلى كيان خارجي في الخاصّة
+17 = ‏XML أو إعلان نص ليس في بداية كيان
+18 = ترميز مجهول
+19 = التّرميز المحدّد في تصريح XML غير صحيح
+20 = قسم CDATA غير مغلق
+21 = خطأ في معالجة مرجع الكيان الخارجي
+22 = المستند ليس قائمًا بذاته
+23 = حالة محلل غير متوقّعة
+24 = كيان مصرّح في كيان معامِل
+27 = السّابقة غير محدودة باسم مجال
+28 = لا يجب عدم إعلان السابقة
+29 = تأشير غير كامل في كيان الصفة
+30 = إعلان XML غير مشكّل جيدا
+31 = إعلان نص غير مشكّل جيدا
+32 = مح‍(‍ا)‍رف غير مقبول في public id
+38 = السابقة المحجوزة (xml) يجب عدم إعلانها أو تقييدها لاسم فراغ آخر
+39 = السّابقة المحجوزة (xml) يجب ألّا يصرّح عنها أو يلغى تصريحها
+40 = السابقة يجب ألا تقيّد بواحدة من أسامي الفراغ المحجوزة
+
+# %1$S is replaced by the Expat error string, may be followed by Expected (see below)
+# %2$S is replaced by URL
+# %3$u is replaced by line number
+# %4$u is replaced by column number
+XMLParsingError = خطأ إعراب XML: %1$S\nالموقع: %2$S\nرقم السطر %3$u, العمود %4$u:
+
+# %S is replaced by a tag name.
+# This gets appended to the error string if the error is mismatched tag.
+Expected = . توقّعت: </%S>.
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/layout_errors.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/layout_errors.properties
new file mode 100644
index 0000000000..a80567a673
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/layout_errors.properties
@@ -0,0 +1,68 @@
+# 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/.
+
+ImageMapRectBoundsError=صفة ”coords“ في وسم <area shape="rect"> ليست بصيغة ”left,top,right,bottom“.
+ImageMapCircleWrongNumberOfCoords=صفة ”coords“ في وسم <area shape="circle"> ليست بصيغة ”center-x,center-y,radius“.
+ImageMapCircleNegativeRadius=صفة ”coords“ في وسم <area shape="circle"> تحتوي على نصف قطر سلبي.
+ImageMapPolyWrongNumberOfCoords=صفة ”coords“ في وسم <area shape="poly"> ليست بصيغة ”x1,y1,x2,y2 …“.
+ImageMapPolyOddNumberOfCoords=صفة ”coords“ في وسم <area shape="poly"> تفتقد آخر إحداثي ”y“ (الصيغة الصحيحة هي ”x1,y1,x2,y2 …“).
+
+
+## LOCALIZATION NOTE(CompositorAnimationWarningContentTooLargeArea):
+## %1$S is an integer value of the area of the frame
+## %2$S is an integer value of the area of a limit based on the viewport size
+## LOCALIZATION NOTE(CompositorAnimationWarningContentTooLarge2):
+## (%1$S, %2$S) is a pair of integer values of the frame size
+## (%3$S, %4$S) is a pair of integer values of a limit based on the viewport size
+## (%5$S, %6$S) is a pair of integer values of an absolute limit
+## LOCALIZATION NOTE(CompositorAnimationWarningTransformBackfaceVisibilityHidden):
+## 'backface-visibility: hidden' is a CSS property, don't translate it.
+## LOCALIZATION NOTE(CompositorAnimationWarningTransformPreserve3D):
+## 'transform-style: preserve-3d' is a CSS property, don't translate it.
+## LOCALIZATION NOTE(CompositorAnimationWarningTransformSVG,
+## CompositorAnimationWarningTransformWithGeometricProperties,
+## CompositorAnimationWarningTransformWithSyncGeometricAnimations,
+## CompositorAnimationWarningTransformFrameInactive,
+## CompositorAnimationWarningOpacityFrameInactive):
+## 'transform' and 'opacity' mean CSS property names, don't translate it.
+
+
+ScrollLinkedEffectFound3=This site appears to use a scroll-linked positioning effect. This may not work well with asynchronous panning; see https://firefox-source-docs.mozilla.org/performance/scroll-linked_effects.html for further details and to join the discussion on related tools and features!
+## LOCALIZATION NOTE(CompositorAnimationWarningContentTooLargeArea):
+## %1$S is an integer value of the area of the frame
+## %2$S is an integer value of the area of a limit based on the viewport size
+CompositorAnimationWarningContentTooLargeArea=Animation cannot be run on the compositor because the area of the frame (%1$S) is too large relative to the viewport (larger than %2$S)
+## LOCALIZATION NOTE(CompositorAnimationWarningContentTooLarge2):
+## (%1$S, %2$S) is a pair of integer values of the frame size
+## (%3$S, %4$S) is a pair of integer values of a limit based on the viewport size
+## (%5$S, %6$S) is a pair of integer values of an absolute limit
+CompositorAnimationWarningContentTooLarge2=Animation cannot be run on the compositor because the frame size (%1$S, %2$S) is too large relative to the viewport (larger than (%3$S, %4$S)) or larger than the maximum allowed value (%5$S, %6$S)
+## LOCALIZATION NOTE(CompositorAnimationWarningTransformBackfaceVisibilityHidden):
+## 'backface-visibility: hidden' is a CSS property, don't translate it.
+CompositorAnimationWarningTransformBackfaceVisibilityHidden=Animations of ‘backface-visibility: hidden’ transforms cannot be run on the compositor
+## LOCALIZATION NOTE(CompositorAnimationWarningTransformSVG,
+## CompositorAnimationWarningTransformWithGeometricProperties,
+## CompositorAnimationWarningTransformWithSyncGeometricAnimations,
+## CompositorAnimationWarningTransformFrameInactive,
+## CompositorAnimationWarningOpacityFrameInactive):
+## 'transform' and 'opacity' mean CSS property names, don't translate it.
+CompositorAnimationWarningTransformSVG=Animations of ‘transform’ on elements with SVG transforms cannot be run on the compositor
+CompositorAnimationWarningTransformWithGeometricProperties=Animations of ‘transform’ cannot be run on the compositor when geometric properties are animated on the same element at the same time
+CompositorAnimationWarningTransformWithSyncGeometricAnimations=Animation of ‘transform’ cannot be run on the compositor because it should be synchronized with animations of geometric properties that started at the same time
+CompositorAnimationWarningTransformFrameInactive=Animation cannot be run on the compositor because the frame was not marked active for ‘transform’ animation
+CompositorAnimationWarningTransformIsBlockedByImportantRules=Transform animation cannot be run on the compositor because transform-related properties are overridden by !important rules
+CompositorAnimationWarningOpacityFrameInactive=Animation cannot be run on the compositor because the frame was not marked active for ‘opacity’ animation
+CompositorAnimationWarningHasRenderingObserver=Animation cannot be run on the compositor because the element has rendering observers (-moz-element or SVG clipping/masking)
+CompositorAnimationWarningHasCurrentColor=Animations of ‘background-color’ cannot be run on the compositor with ‘current-color’ keyframe.
+## LOCALIZATION NOTE: Do not translate zoom, calc(), "transform", "transform-origin: 0 0"
+ZoomPropertyWarning=This page uses the non standard property “zoom”. Consider using calc() in the relevant property values, or using “transform” along with “transform-origin: 0 0”.
+## LOCALIZATION NOTE(PrincipalWritingModePropagationWarning):
+## Do not translate <html>, <body>, CSS, "writing-mode", "direction", "text-orientation", :root, and "The Principal Writing Mode" because they are technical terms.
+PrincipalWritingModePropagationWarning=When rendering the <html> element, the used values of CSS properties “writing-mode”, “direction”, and “text-orientation” on the <html> element are taken from the computed values of the <body> element, not from the <html> element’s own values. Consider setting these properties on the :root CSS pseudo-class. For more information see “The Principal Writing Mode” in https://www.w3.org/TR/css-writing-modes-3/#principal-flow
+## LOCALIZATION NOTE(ScrollAnchoringDisabledInContainer):
+## %1$S is an integer value with the total number of adjustments
+## %2$S is a floating point value with the average distance adjusted
+## %3$S is a floating point value with the total adjusted distance
+ScrollAnchoringDisabledInContainer=Scroll anchoring was disabled in a scroll container because of too many consecutive adjustments (%1$S) with too little total distance (%2$S px average, %3$S px total).
+ForcedLayoutStart=Layout was forced before the page was fully loaded. If stylesheets are not yet loaded this may cause a flash of unstyled content.
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/mathml/mathml.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/mathml/mathml.properties
new file mode 100644
index 0000000000..b6f079bbd9
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/mathml/mathml.properties
@@ -0,0 +1,15 @@
+# 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/.
+
+InvalidChild=رقْم غير صالح: ليس مسموحًا بأن يكون <%1$S> ابن <%2$S>.
+ChildCountIncorrect=رقْم غير صالح: عدد الأبناء لوسم <%1$S/> غير صحيح.
+DuplicateMprescripts=رقْم غير صالح: أكثر من ‪<mprescripts/>‬ واحد في ‪<mmultiscripts/>‬.
+# LOCALIZATION NOTE: The first child of <mmultiscript/> is the base, that is the element to which scripts are attached.
+NoBase=رقْم غير صالح: توقعتُ عنصر أساس واحد فقط في ‪<mmultiscripts/>‬. لم أجد شيئا.
+SubSupMismatch=رقْم غير صالح: زوج الأحرف المنخفضة/المرتفعة غير مكتمل في ‪<mmultiscripts/>‬.
+
+# LOCALIZATION NOTE: When localizing the single quotes ('), follow the conventions in css.properties for your target locale.
+AttributeParsingError=خطأ في تحليل قيمة ’%1$S‘ لصفة ’%2$S‘ ل‍ ‪<%3$S/>‬. تجاهلتُ الصفة.
+AttributeParsingErrorNoTag=خطأ في تحليل قيمة ’%1$S‘ لصفة ’%2$S‘. تجاهلتُ الصفة.
+LengthParsingError=خطأ أثناء قراءة قيمة خاصية MathML ‏ ’%1$S‘ كطول. تجاهلت الخاصية.
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/narrate.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/narrate.properties
new file mode 100644
index 0000000000..74e6c8d3c7
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/narrate.properties
@@ -0,0 +1,26 @@
+# 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/.
+
+back = السابق
+forward = التالي
+speed = السرعة
+selectvoicelabel = الصوت:
+# Default voice is determined by the language of the document.
+defaultvoice = المبدئي
+
+# Voice name and language.
+# eg. David (English)
+voiceLabel = ‏%S ‏(%S)
+
+# "Listen, which allows users to listen to Firefox reading the text,
+# instead of having to read it themselves." This is the name
+# of the feature and it is the label for the popup button.
+# %S is the keyboard shortcut for the listen command
+listen-label = Listen (%S)
+# %S is the keyboard shortcut for the start command
+start-label = Start (%S)
+# %S is the keyboard shortcut for the stop command
+stop-label = Stop (%S)
+# Keyboard shortcut to toggle the narrate feature
+narrate-key-shortcut = N
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/nsWebBrowserPersist.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/nsWebBrowserPersist.properties
new file mode 100644
index 0000000000..30ff3d629e
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/nsWebBrowserPersist.properties
@@ -0,0 +1,17 @@
+# 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/.
+
+readError=تعذّر حفظ %S، إذ تعذّر قراءة الملفّ المصدر.\n\nحاول مرة ثانية لاحقا، أو اتّصل بمدير الخادوم.
+writeError=تعذّر حفظ %S، بسبب وقوع خطأ مجهول.\n\nحاول الحفظ في مكان آخر.
+launchError=تعذّر فتح %S، بسبب وقوع خطأ مجهول.\n\nحاول الحفظ في القرص أولا ثم فتح الملفّ.
+diskFull=لا توجد مساحة كافية على القرص لحفظ%S.\n\nأزل الملفّات غير الضّرورية من القرص و حاول مرة ثانية، أو حاول الحفظ في مكان آخر.
+readOnly=تعذّر حفظ %S، لأنّ القرص، أو المجلّد، أو الملفّ محمي ضدّ الكتابة.\n\nأعد تمكين الكتابة على القرص و حاول مرّة ثانية، أو حاول الحفظ في مكان آخر.
+accessError=تعذّر حفظ %S، لأنّك لا تستطيع تغيير محتويات المجلّد.\n\nغيّر خصائص المجلّد و حاول مرة أخرى، أو حاول الحفظ في مكان آخر.
+SDAccessErrorCardReadOnly=تعذّر تنزيل الملف لأن بطاقة التخزين مستخدمة.
+SDAccessErrorCardMissing=تعذّر تنزيل الملف لأن بطاقة التخزين غير موجودة.
+helperAppNotFound=تعذّر فتح %S، لأن التّطبيق المساعد المرتبط غير موجود. غيّر الارتباط في تفضيلاتك.
+noMemory=لا توجد ذاكرة كافية لإكمال الفعل الذي طلبته.\n\nعليك الخروج من بعض التّطبيقات و المحاولة مرّة أخرى.
+title=يجري تنزيل %S
+fileAlreadyExistsError=تعذّر حفظ %S، لأنّ ملفّا يحمل نفس اسم مجلد ‪‘_files’‬ موجود مسبقا.\n\nحاول الحفظ في مكان آخر.
+fileNameTooLongError=تعذّر حفظ %S، لأن اسم الملفّ طويل جدا.\n\nحاول الحفظ باسم أقصر.
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/printdialog.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/printdialog.properties
new file mode 100644
index 0000000000..8c41e63795
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/printdialog.properties
@@ -0,0 +1,52 @@
+# 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/.
+
+# These strings are used in the native GTK, Mac and Windows print dialogs.
+
+# GTK titles:
+printTitleGTK=طباعة
+optionsTabLabelGTK=خيارات
+
+# Mac titles:
+optionsTitleMac=الخيارات:
+appearanceTitleMac=المظهر:
+pageHeadersTitleMac=ترويسات الصفحة:
+pageFootersTitleMac=تذييلات الصفحة:
+
+# Windows titles:
+optionsTitleWindows=خيارات
+
+# TRANSLATOR NOTE: For radio button labels and check button labels, an underscore _
+# before a character will turn that character into an accesskey in the GTK dialog.
+# e.g. "_As laid out" will make A the accesskey.
+# In the Windows labels, use an ampersand (&).
+# On Mac, underscores will be stripped.
+
+shrinkToFit=ت_جاهل إعادة التحجيم لملاءمة عرض الصفحة
+selectionOnly=اطبع المحدّد فق_ط
+printBGOptions=اطبع الخلفيات
+printBGColors=اطبع أ_لوان الخلفية
+printBGImages=اطبع ص_ور الخلفية
+headerFooter=الترويسة والتذييل
+left=يسار
+center=وسط
+right=يمين
+headerFooterBlank=--فارغ--
+headerFooterTitle=العنوان
+headerFooterURL=المسار
+headerFooterDate=التاريخ/الوقت
+headerFooterPage=صفحة #
+headerFooterPageTotal=صفحة # مِن #
+headerFooterCustom=مخصّص…
+customHeaderFooterPrompt=رجاءً أدخِل نص الترويسة/التذييل المخصص
+
+summarySelectionOnlyTitle=اطبع المحدّد
+summaryShrinkToFitTitle=قلّص لملاءمة حجم الصفحة
+summaryPrintBGColorsTitle=اطبع ألوان الخلفية
+summaryPrintBGImagesTitle=اطبع صور الخلفية
+summaryHeaderTitle=ترويسات الصفحة
+summaryFooterTitle=تذييلات الصفحة
+summaryNAValue=-
+summaryOnValue=نعم
+summaryOffValue=لا
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/printing.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/printing.properties
new file mode 100644
index 0000000000..3528bf34d7
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/printing.properties
@@ -0,0 +1,56 @@
+# 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/.
+
+# Page number formatting
+## @page_number The current page number
+#LOCALIZATION NOTE (pageofpages): Do not translate %ld in the following line.
+# Place the word %ld where the page number and number of pages should be
+# The first %ld will receive the the page number
+pagenumber=%1$d
+
+# Page number formatting
+## @page_number The current page number
+## @page_total The total number of pages
+#LOCALIZATION NOTE (pageofpages): Do not translate %ld in the following line.
+# Place the word %ld where the page number and number of pages should be
+# The first %ld will receive the the page number
+# the second %ld will receive the total number of pages
+pageofpages=%1$d من %2$d
+
+PrintToFile=اطبع إلى ملف
+print_error_dialog_title=خطأ طابعة
+printpreview_error_dialog_title=خطأ في معاينة الطّباعة
+
+# Printing error messages.
+#LOCALIZATION NOTE: Some of these messages come in pairs, one
+# for printing and one for print previewing. You can remove that
+# distinction in your language by removing the entity with the _PP
+# suffix; then the entity without a suffix will be used for both.
+# You can also add that distinction to any of the messages that don't
+# already have it by adding a new entity with a _PP suffix.
+#
+# For instance, if you delete PERR_GFX_PRINTER_DOC_IS_BUSY_PP, then
+# the PERR_GFX_PRINTER_DOC_IS_BUSY message will be used for that error
+# condition when print previewing as well as when printing. If you
+# add PERR_FAILURE_PP, then PERR_FAILURE will only be used when
+# printing, and PERR_FAILURE_PP will be used under the same conditions
+# when print previewing.
+#
+PERR_FAILURE=حدث عُطل أثناء الطباعة.
+
+PERR_ABORT=أُحبط أو أُلغي عمل الطّباعة.
+PERR_NOT_AVAILABLE=بعض وظيفيّة الطباعة غير مُتوفّر حاليًا.
+PERR_NOT_IMPLEMENTED=بعض وظيفيّة الطباعة غير منفّذ.
+PERR_OUT_OF_MEMORY=لا تتوفر ذاكرة كافية للطباعة.
+PERR_UNEXPECTED=حدثت مشكلة غير متوقّعة أثناء الطّباعة.
+
+PERR_GFX_PRINTER_NO_PRINTER_AVAILABLE=لا تتوفّر أي طابعات.
+PERR_GFX_PRINTER_NO_PRINTER_AVAILABLE_PP=لا تتوفّر أي طابعات، فلا يُمكن عرض معاينة الطباعة.
+PERR_GFX_PRINTER_NAME_NOT_FOUND=تعذّر العثور على الطابعة المختارة.
+PERR_GFX_PRINTER_COULD_NOT_OPEN_FILE=تعذّر فتح الملف الذي سيُطبع إليه.
+PERR_GFX_PRINTER_STARTDOC=فشلت الطّباعة أثناء بدء المهمّة.
+PERR_GFX_PRINTER_ENDDOC=فشلت الطّباعة أثناء إنهاء المهمّة.
+PERR_GFX_PRINTER_STARTPAGE=فشلت الطّباعة أثناء بدء صفحة جديدة.
+PERR_GFX_PRINTER_DOC_IS_BUSY=تعذّر طباعة هذا المستند، إذ ما يزال قيد التحميل.
+PERR_GFX_PRINTER_DOC_IS_BUSY_PP=تعذّر عرض معاينة طباعة هذا المستند، إذ ما يزال قيد التحميل.
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/resetProfile.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/resetProfile.properties
new file mode 100644
index 0000000000..add72c9f40
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/resetProfile.properties
@@ -0,0 +1,14 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE: These strings are used for profile reset.
+
+# LOCALIZATION NOTE (resetUnusedProfile.message): %S is brandShortName.
+resetUnusedProfile.message=يبدو أنك لم تستخدم %S منذ فترة. أتريد تنظيفه و البدء من جديد؟ و بالمناسبة، مرحبًا بعودتك.
+# LOCALIZATION NOTE (resetUninstalled.message): %S is brandShortName.
+resetUninstalled.message=يبدو أنك أعدت تنصيب %S. أتريد تنظيفه و البدء من جديد؟
+
+# LOCALIZATION NOTE (refreshProfile.resetButton.label): %S is brandShortName.
+refreshProfile.resetButton.label=أنعش %S…
+refreshProfile.resetButton.accesskey=ن
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/security/caps.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/security/caps.properties
new file mode 100644
index 0000000000..e9068e4591
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/security/caps.properties
@@ -0,0 +1,9 @@
+# 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/.
+CheckLoadURIError = خطأ أمني: لا يمكن للمحتوى في %S أن يحمّل أو يربط إلى %S.
+CheckSameOriginError = خطأ أمني: لا يمكن للمحتوى في %S أن يحمّل بيانات من %S.
+ExternalDataError = خطأ أمني: حاول المحتوى في %S أن يحمّل %S، لكن ليس مسموحًا بتحميل بيانات خارجية عند استخدامه كصورة.\u0020
+
+CreateWrapperDenied = رُفض الإذن بإنشاء مغلّف لكائن من الفئة %S
+CreateWrapperDeniedForOrigin = لا يملك <%2$S> الإذن لإنشاء مغلّف لكائن من الفئة %1$S
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/security/csp.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/security/csp.properties
new file mode 100644
index 0000000000..c279398932
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/security/csp.properties
@@ -0,0 +1,157 @@
+# 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/.
+
+# CSP Warnings:
+# LOCALIZATION NOTE (CSPViolation):
+# %1$S is the reason why the resource has not been loaded.
+CSPViolation = حجبت إعدادات الصفحة تحميل المورد: %1$S
+# LOCALIZATION NOTE (CSPViolationWithURI):
+# %1$S is the directive that has been violated.
+# %2$S is the URI of the resource which violated the directive.
+CSPViolationWithURI = حجبت إعدادات الصفحة تحميل المورد في %2$S ‏(”%1$S“).
+# LOCALIZATION NOTE (CSPROViolation):
+# %1$S is the reason why the resource has not been loaded.
+CSPROViolation = حدثت عملية انتهاك لسياسة report-only ل‍ CSP ‏(”%1$S“). سمحتُ بالسلوك وأرسلت تقرير CSP.
+# LOCALIZATION NOTE (CSPROViolationWithURI):
+# %1$S is the directive that has been violated.
+# %2$S is the URI of the resource which violated the directive.
+CSPROViolationWithURI = لاحظت إعدادات الصفحة تحميل مورد على %2$S ‏(”%1$S“). يجري إرسال تقرير CSP.
+# LOCALIZATION NOTE (triedToSendReport):
+# %1$S is the URI we attempted to send a report to.
+triedToSendReport = حاولتُ إرسال البلاغ إلى عنوان غير صالح: ”%1$S“
+# LOCALIZATION NOTE (couldNotParseReportURI):
+# %1$S is the report URI that could not be parsed
+couldNotParseReportURI = تعذر تحليل مسار البلاغ: %1$S
+# LOCALIZATION NOTE (couldNotProcessUnknownDirective):
+# %1$S is the unknown directive
+# LOCALIZATION NOTE (ignoringUnknownOption):
+# %1$S is the option that could not be understood
+ignoringUnknownOption = تجاهل خيار غير معروف %1$S
+# LOCALIZATION NOTE (ignoringDuplicateSrc):
+# %1$S defines the duplicate src
+ignoringDuplicateSrc = تجاهل مصدر متكرر %1$S
+# LOCALIZATION NOTE (ignoringSrcFromMetaCSP):
+# %1$S defines the ignored src
+# LOCALIZATION NOTE (ignoringSrcWithinScriptStyleSrc):
+# %1$S is the ignored src
+# script-src and style-src are directive names and should not be localized
+# LOCALIZATION NOTE (ignoringSrcForStrictDynamic):
+# %1$S is the ignored src
+# script-src, as well as 'strict-dynamic' should not be localized
+# LOCALIZATION NOTE (ignoringStrictDynamic):
+# %1$S is the ignored src
+# LOCALIZATION NOTE (strictDynamicButNoHashOrNonce):
+# %1$S is the csp directive that contains 'strict-dynamic'
+# 'strict-dynamic' should not be localized
+# LOCALIZATION NOTE (reportURInotHttpsOrHttp2):
+# %1$S is the ETLD of the report URI that is not HTTP or HTTPS
+reportURInotHttpsOrHttp2 = مسار البلاغ (%1$S) يجب أن يكون مسار HTTP أو HTTPS.
+# LOCALIZATION NOTE (reportURInotInReportOnlyHeader):
+# %1$S is the ETLD of the page with the policy
+reportURInotInReportOnlyHeader = للموقع (%1$S) سياسة ”تبليغ فقط“ بلا عنوان تبليغ. لن يحجب CSP و لا يمكنه الإبلاغ عن انتهاكات هذه السياسة.
+# LOCALIZATION NOTE (upgradeInsecureRequest):
+# %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
+upgradeInsecureRequest = يجري ترقية الطلب غير الآمن ’%1$S‘ ليستخدم’%2$S‘
+# LOCALIZATION NOTE (ignoreSrcForDirective):
+# LOCALIZATION NOTE (hostNameMightBeKeyword):
+# %1$S is the hostname in question and %2$S is the keyword
+# LOCALIZATION NOTE (notSupportingDirective):
+# directive is not supported (e.g. 'reflected-xss')
+# LOCALIZATION NOTE (blockAllMixedContent):
+# %1$S is the URL of the blocked resource load.
+blockAllMixedContent = سأحجب الطلب غير الآمن ’%1$S‘.
+# LOCALIZATION NOTE (ignoringDirectiveWithNoValues):
+# %1$S is the name of a CSP directive that requires additional values (e.g., 'require-sri-for')
+ignoringDirectiveWithNoValues = سأتجاهل ’%1$S‘. إذ أن لا معاملات فيه.
+# LOCALIZATION NOTE (ignoringReportOnlyDirective):
+# %1$S is the directive that is ignored in report-only mode.
+# LOCALIZATION NOTE (deprecatedReferrerDirective):
+# %1$S is the value of the deprecated Referrer Directive.
+# LOCALIZATION NOTE (IgnoringSrcBecauseOfDirective):
+# %1$S is the name of the src that is ignored.
+# %2$S is the name of the directive that causes the src to be ignored.
+
+# CSP Errors:
+# LOCALIZATION NOTE (couldntParseInvalidSource):
+# %1$S is the source that could not be parsed
+couldntParseInvalidSource = تعذر تحليل المصدر غير الصالح %1$S
+# LOCALIZATION NOTE (couldntParseInvalidHost):
+# %1$S is the host that's invalid
+couldntParseInvalidHost = تعذّر تحليل المضيف غير الصالح %1$S
+# LOCALIZATION NOTE (couldntParsePort):
+# %1$S is the string source
+couldntParsePort = تعذر تحليل المنفذ في %1$S
+# LOCALIZATION NOTE (duplicateDirective):
+# %1$S is the name of the duplicate directive
+# LOCALIZATION NOTE (deprecatedDirective):
+# %1$S is the name of the deprecated directive, %2$S is the name of the replacement.
+# LOCALIZATION NOTE (couldntParseInvalidSandboxFlag):
+# %1$S is the option that could not be understood
+
+
+# LOCALIZATION NOTE (couldNotProcessUnknownDirective):
+# %1$S is the unknown directive
+couldNotProcessUnknownDirective = Couldn’t process unknown directive ‘%1$S’
+# LOCALIZATION NOTE (ignoringNonAsciiToken):
+# %1$S defines the name of the directive
+# %2$S is the token string containing non-ASCII characters.
+ignoringNonAsciiToken = Ignoring directive ‘%1$S’ with the non-ASCII token ‘%2$S’
+# LOCALIZATION NOTE (ignoringSrcFromMetaCSP):
+# %1$S defines the ignored src
+ignoringSrcFromMetaCSP = Ignoring source ‘%1$S’ (Not supported when delivered via meta element).
+# LOCALIZATION NOTE (ignoringSrcWithinNonceOrHashDirective):
+# %1$S is the ignored src (e.g. "unsafe-inline")
+# %2$S is the directive (e.g. "script-src-elem")
+ignoringSrcWithinNonceOrHashDirective = Ignoring “%1$S” within %2$S: nonce-source or hash-source specified
+# LOCALIZATION NOTE (ignoringScriptSrcForStrictDynamic):
+# %1$S is the ignored src
+# %1$S is the directive src (e.g. "script-src-elem")
+# 'strict-dynamic' should not be localized
+ignoringScriptSrcForStrictDynamic = Ignoring “%1$S” within %2$S: ‘strict-dynamic’ specified
+# LOCALIZATION NOTE (ignoringStrictDynamic):
+# %1$S is the ignored src
+ignoringStrictDynamic = Ignoring source “%1$S” (Only supported within script-src).
+# LOCALIZATION NOTE (ignoringUnsafeEval):
+# %1$S is the csp directive (e.g. script-src-elem)
+# 'unsafe-eval' and 'wasm-unsafe-eval' should not be localized
+ignoringUnsafeEval = Ignoring ‘unsafe-eval’ or ‘wasm-unsafe-eval’ inside “%1$S”.
+# LOCALIZATION NOTE (strictDynamicButNoHashOrNonce):
+# %1$S is the csp directive that contains 'strict-dynamic'
+# 'strict-dynamic' should not be localized
+strictDynamicButNoHashOrNonce = Keyword ‘strict-dynamic’ within “%1$S” with no valid nonce or hash might block all scripts from loading
+# LOCALIZATION NOTE (failedToParseUnrecognizedSource):
+# %1$S is the CSP Source that could not be parsed
+failedToParseUnrecognizedSource = Failed to parse unrecognized source %1$S
+# LOCALIZATION NOTE (ignoreSrcForDirective):
+ignoreSrcForDirective = Ignoring srcs for directive ‘%1$S’
+# LOCALIZATION NOTE (hostNameMightBeKeyword):
+# %1$S is the hostname in question and %2$S is the keyword
+hostNameMightBeKeyword = Interpreting %1$S as a hostname, not a keyword. If you intended this to be a keyword, use ‘%2$S’ (wrapped in single quotes).
+# LOCALIZATION NOTE (notSupportingDirective):
+# directive is not supported (e.g. 'reflected-xss')
+notSupportingDirective = Not supporting directive ‘%1$S’. Directive and values will be ignored.
+# LOCALIZATION NOTE (ignoringReportOnlyDirective):
+# %1$S is the directive that is ignored in report-only mode.
+ignoringReportOnlyDirective = Ignoring sandbox directive when delivered in a report-only policy ‘%1$S’
+# LOCALIZATION NOTE (IgnoringSrcBecauseOfDirective):
+# %1$S is the name of the src that is ignored.
+# %2$S is the name of the directive that causes the src to be ignored.
+IgnoringSrcBecauseOfDirective=Ignoring ‘%1$S’ because of ‘%2$S’ directive.
+# LOCALIZATION NOTE (IgnoringSourceWithinDirective):
+# %1$S is the ignored src
+# %2$S is the directive which supports src
+IgnoringSourceWithinDirective = Ignoring source “%1$S” (Not supported within ‘%2$S’).
+# LOCALIZATION NOTE (IgnoringSourceWithinDirective):
+# %1$S is the ignored src
+obsoleteBlockAllMixedContent = Ignoring ‘%1$S’ because mixed content display upgrading makes block-all-mixed-content obsolete.
+# LOCALIZATION NOTE (duplicateDirective):
+# %1$S is the name of the duplicate directive
+duplicateDirective = Duplicate %1$S directives detected. All but the first instance will be ignored.
+# LOCALIZATION NOTE (couldntParseInvalidSandboxFlag):
+# %1$S is the option that could not be understood
+couldntParseInvalidSandboxFlag = Couldn’t parse invalid sandbox flag ‘%1$S’
+# LOCALIZATION NOTE (CSPMessagePrefix):
+# Do not translate "Content-Security-Policy", only handle spacing for the colon.
+# %S is a console message that is being prefixed here.
+CSPMessagePrefix = Content-Security-Policy: %S
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/security/security.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/security/security.properties
new file mode 100644
index 0000000000..1853b03212
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/security/security.properties
@@ -0,0 +1,164 @@
+# 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/.
+
+# Mixed Content Blocker
+# LOCALIZATION NOTE: "%1$S" is the URI of the blocked mixed content resource
+BlockMixedDisplayContent = حُجب تحميل محتوى عرض مختلط ”%1$S“
+BlockMixedActiveContent = حُجب تحميل محتوى نشط مختلط ”%1$S“
+
+# CORS
+# LOCALIZATION NOTE: Do not translate "Access-Control-Allow-Origin", Access-Control-Allow-Credentials, Access-Control-Allow-Methods, Access-Control-Allow-Headers
+
+# LOCALIZATION NOTE: Do not translate "Strict-Transport-Security", "HSTS", "max-age" or "includeSubDomains"
+STSUnknownError=Strict-Transport-Security: حدث خطأ مجهول أثناء معالجة الترويسة التي حدّدها الموقع.
+STSCouldNotParseHeader=Strict-Transport-Security: حدّد الموقع ترويسة تعذر فهمها بنجاح.
+STSNoMaxAge=Strict-Transport-Security: حدّد الموقع ترويسة لم تحتوي على توجيه ’max-age‘.
+STSMultipleMaxAges=Strict-Transport-Security: حدّد الموقع ترويسة احتوت عدّة توجيهات ’max-age‘.
+STSInvalidMaxAge=Strict-Transport-Security: حدّد الموقع ترويسة احتوت توجيه ’max-age‘ غير صالح.
+STSMultipleIncludeSubdomains=Strict-Transport-Security: حدّد الموقع ترويسة احتوت عدّة توجيهات ’includeSubDomains‘.
+STSInvalidIncludeSubdomains=Strict-Transport-Security: حدّد الموقع ترويسة احتوت توجيه ’includeSubDomains‘ غير صالح.
+
+# LOCALIZATION NOTE: Do not translate "SHA-1"
+InsecurePasswordsPresentOnPage=حقول كلمات السر موجودة في صفحة غير آمنة ‪(http://)‬. يمثّل هذا خطرًا أمنيًّا قد يسمح بسرقة معلومات ولوج المستخدم.
+InsecureFormActionPasswordsPresent=حقول كلمات السر موجودة في استمارة تستخدم إجراء استمارة غير آمن ‪(http://)‬. يمثّل هذا خطرًا أمنيًّا قد يسمح بسرقة معلومات ولوج المستخدم.
+InsecurePasswordsPresentOnIframe=حقول كلمات السر موجودة في عنصر iframe غير آمن ‪(http://)‬. يمثّل هذا خطرًا أمنيًّا قد يسمح بسرقة معلومات ولوج المستخدم.
+# LOCALIZATION NOTE: "%1$S" is the URI of the insecure mixed content resource
+LoadingMixedActiveContent2=تحميل محتوى نشط مختلط (غير آمن) ”%1$S“ في صفحة آمنة
+LoadingMixedDisplayContent2=تحميل محتوى عرض مختلط (غير آمن) ”%1$S“ في صفحة آمنة
+# LOCALIZATION NOTE: Do not translate "allow-scripts", "allow-same-origin", "sandbox" or "iframe"
+
+# Sub-Resource Integrity
+# LOCALIZATION NOTE: Do not translate "script" or "integrity". "%1$S" is the invalid token found in the attribute.
+# LOCALIZATION NOTE: Do not translate "integrity"
+# LOCALIZATION NOTE: Do not translate "integrity"
+# LOCALIZATION NOTE: Do not translate "integrity". "%1$S" is the type of hash algorithm in use (e.g. "sha256").
+# LOCALIZATION NOTE: "%1$S" is the URI of the sub-resource that cannot be protected using SRI.
+# LOCALIZATION NOTE: Do not translate "integrity". "%1$S" is the invalid hash algorithm found in the attribute.
+# LOCALIZATION NOTE: Do not translate "integrity"
+
+# LOCALIZATION NOTE: Do not translate "RC4".
+WeakCipherSuiteWarning=يستعمل هذا الموقع شفرة RC4 للتعمية، وهي مهجورة وغير آمنة.
+
+# LOCALIZATION NOTE: Do not translate "X-Content-Type-Options" and also do not trasnlate "nosniff".
+XCTOHeaderValueMissing=تحذير لترويسة X-Content-Type-Options: كانت القيمة ”%1$S“، هل عنيت إرسال ”nosniff“؟
+
+# LOCALIZATION NOTE: Do not translate "data: URI".
+
+
+# CORS
+# LOCALIZATION NOTE: Do not translate "Access-Control-Allow-Origin", Access-Control-Allow-Credentials, Access-Control-Allow-Methods, Access-Control-Allow-Headers
+CORSDisabled=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS disabled).
+CORSDidNotSucceed2=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS request did not succeed). Status code: %2$S.
+CORSOriginHeaderNotAdded=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS header ‘Origin’ cannot be added).
+CORSExternalRedirectNotAllowed=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS request external redirect not allowed).
+CORSRequestNotHttp=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS request not http).
+CORSMissingAllowOrigin2=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing). Status code: %2$S.
+CORSMultipleAllowOriginNotAllowed=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: Multiple CORS header ‘Access-Control-Allow-Origin’ not allowed).
+CORSAllowOriginNotMatchingOrigin=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS header ‘Access-Control-Allow-Origin’ does not match ‘%2$S’).
+CORSNotSupportingCredentials=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at ‘%1$S’. (Reason: Credential is not supported if the CORS header ‘Access-Control-Allow-Origin’ is ‘*’).
+CORSMethodNotFound=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: Did not find method in CORS header ‘Access-Control-Allow-Methods’).
+CORSMissingAllowCredentials=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: expected ‘true’ in CORS header ‘Access-Control-Allow-Credentials’).
+CORSPreflightDidNotSucceed3=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: CORS preflight response did not succeed). Status code: %2$S.
+CORSInvalidAllowMethod=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: invalid token ‘%2$S’ in CORS header ‘Access-Control-Allow-Methods’).
+CORSInvalidAllowHeader=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: invalid token ‘%2$S’ in CORS header ‘Access-Control-Allow-Headers’).
+CORSMissingAllowHeaderFromPreflight2=Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at %1$S. (Reason: header ‘%2$S’ is not allowed according to header ‘Access-Control-Allow-Headers’ from CORS preflight response).
+CORSAllowHeaderFromPreflightDeprecation=Cross-Origin Request Warning: The Same Origin Policy will disallow reading the remote resource at %1$S soon. (Reason: When the `Access-Control-Allow-Headers` is `*`, the `Authorization` header is not covered. To include the `Authorization` header, it must be explicitly listed in CORS header `Access-Control-Allow-Headers`).
+STSCouldNotSaveState=Strict-Transport-Security: An error occurred noting the site as a Strict-Transport-Security host.
+LoadingMixedDisplayObjectSubrequestDeprecation=Loading mixed (insecure) content “%1$S” within a plugin on a secure page is discouraged and will be blocked soon.
+# LOCALIZATION NOTE: "%S" is the URI of the insecure mixed content download
+MixedContentBlockedDownload = Blocked downloading insecure content “%S”.
+# LOCALIZATION NOTE: Do not translate "allow-scripts", "allow-same-origin", "sandbox" or "iframe"
+BothAllowScriptsAndSameOriginPresent=An iframe which has both allow-scripts and allow-same-origin for its sandbox attribute can remove its sandboxing.
+# LOCALIZATION NOTE: Do not translate "allow-top-navigation-by-user-activation", "allow-top-navigation", "sandbox" or "iframe"
+BothAllowTopNavigationAndUserActivationPresent=An iframe which has both allow-top-navigation and allow-top-navigation-by-user-activation for its sandbox attribute will permit top navigations.
+# Sub-Resource Integrity
+# LOCALIZATION NOTE: Do not translate "script" or "integrity". "%1$S" is the invalid token found in the attribute.
+MalformedIntegrityHash=The script element has a malformed hash in its integrity attribute: “%1$S”. The correct format is “<hash algorithm>-<hash value>”.
+# LOCALIZATION NOTE: Do not translate "integrity"
+InvalidIntegrityLength=The hash contained in the integrity attribute has the wrong length.
+# LOCALIZATION NOTE: Do not translate "integrity"
+InvalidIntegrityBase64=The hash contained in the integrity attribute could not be decoded.
+# LOCALIZATION NOTE: Do not translate "integrity". "%1$S" is the type of hash algorithm in use (e.g. "sha256"). "%2$S" is the value we saw.
+IntegrityMismatch2=None of the “%1$S” hashes in the integrity attribute match the content of the subresource. The computed hash is “%2$S”.
+# LOCALIZATION NOTE: "%1$S" is the URI of the sub-resource that cannot be protected using SRI.
+IneligibleResource=“%1$S” is not eligible for integrity checks since it’s neither CORS-enabled nor same-origin.
+# LOCALIZATION NOTE: Do not translate "integrity". "%1$S" is the invalid hash algorithm found in the attribute.
+UnsupportedHashAlg=Unsupported hash algorithm in the integrity attribute: “%1$S”
+# LOCALIZATION NOTE: Do not translate "integrity"
+NoValidMetadata=The integrity attribute does not contain any valid metadata.
+DeprecatedTLSVersion2=This site uses a deprecated version of TLS. Please upgrade to TLS 1.2 or 1.3.
+#XCTO: nosniff
+# LOCALIZATION NOTE: Do not translate "X-Content-Type-Options: nosniff".
+MimeTypeMismatch2=The resource from “%1$S” was blocked due to MIME type (“%2$S”) mismatch (X-Content-Type-Options: nosniff).
+# LOCALIZATION NOTE: Do not translate "X-Content-Type-Options" and also do not translate "nosniff".
+XTCOWithMIMEValueMissing=The resource from “%1$S” was not rendered due to an unknown, incorrect or missing MIME type (X-Content-Type-Options: nosniff).
+BlockScriptWithWrongMimeType2=Script from “%1$S” was blocked because of a disallowed MIME type (“%2$S”).
+WarnScriptWithWrongMimeType=The script from “%1$S” was loaded even though its MIME type (“%2$S”) is not a valid JavaScript MIME type.
+# LOCALIZATION NOTE: Do not translate "importScripts()"
+BlockImportScriptsWithWrongMimeType=Loading script from “%1$S” with importScripts() was blocked because of a disallowed MIME type (“%2$S”).
+BlockWorkerWithWrongMimeType=Loading Worker from “%1$S” was blocked because of a disallowed MIME type (“%2$S”).
+BlockModuleWithWrongMimeType=Loading module from “%1$S” was blocked because of a disallowed MIME type (“%2$S”).
+# LOCALIZATION NOTE: Do not translate "data: URI".
+BlockTopLevelDataURINavigation=Navigation to toplevel data: URI not allowed (Blocked loading of: “%1$S”)
+BlockRedirectToDataURI=Redirecting to data: URI not allowed (Blocked loading of: “%1$S”)
+# LOCALIZATION NOTE: Do not translate "file: URI". “%1$S” is the whole URI of the loaded file. “%2$S” is the MIME type e.g. "text/plain".
+BlockFileScriptWithWrongMimeType=Loading script from file: URI (“%1$S”) was blocked because its MIME type (“%2$S”) is not a valid JavaScript MIME type.
+# LOCALIZATION NOTE: “%S” is the whole URI of the loaded file.
+BlockExtensionScriptWithWrongExt=Loading script with URI “%S” was blocked because the file extension is not allowed.
+RestrictBrowserEvalUsage=eval() and eval-like uses are not allowed in the Parent Process or in System Contexts (Blocked usage in “%1$S”)
+# LOCALIZATION NOTE (MixedContentAutoUpgrade):
+# %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
+MixedContentAutoUpgrade=Upgrading insecure display request ‘%1$S’ to use ‘%2$S’
+# LOCALIZATION NOTE (RunningClearSiteDataValue):
+# %S is the URI of the resource whose data was cleaned up
+RunningClearSiteDataValue=Clear-Site-Data header forced the clean up of “%S” data.
+UnknownClearSiteDataValue=Clear-Site-Data header found. Unknown value “%S”.
+# Reporting API
+ReportingHeaderInvalidJSON=Reporting Header: invalid JSON value received.
+ReportingHeaderInvalidNameItem=Reporting Header: invalid name for group.
+ReportingHeaderDuplicateGroup=Reporting Header: ignoring duplicated group named “%S”.
+ReportingHeaderInvalidItem=Reporting Header: ignoring invalid item named “%S”.
+ReportingHeaderInvalidEndpoint=Reporting Header: ignoring invalid endpoint for item named “%S”.
+# LOCALIZATION NOTE(ReportingHeaderInvalidURLEndpoint): %1$S is the invalid URL, %2$S is the group name
+ReportingHeaderInvalidURLEndpoint=Reporting Header: ignoring invalid endpoint URL “%1$S” for item named “%2$S”.
+FeaturePolicyUnsupportedFeatureName=Feature Policy: Skipping unsupported feature name “%S”.
+# TODO: would be nice to add a link to the Feature-Policy MDN documentation here. See bug 1449501
+FeaturePolicyInvalidEmptyAllowValue= Feature Policy: Skipping empty allow list for feature: “%S”.
+# TODO: would be nice to add a link to the Feature-Policy MDN documentation here. See bug 1449501
+FeaturePolicyInvalidAllowValue=Feature Policy: Skipping unsupported allow value “%S”.
+# LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
+ReferrerLengthOverLimitation=HTTP Referrer header: Length is over “%1$S” bytes limit - stripping referrer header down to origin: “%2$S”
+# LOCALIZATION NOTE: "%1$S" is the limitation length (bytes) of referrer URI, "%2$S" is the origin of the referrer URI.
+ReferrerOriginLengthOverLimitation=HTTP Referrer header: Length of origin within referrer is over “%1$S” bytes limit - removing referrer with origin “%2$S”.
+# LOCALIZATION NOTE: Do not translate "no-referrer-when-downgrade", "origin-when-cross-origin" and "unsafe-url". %S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingWarning=Referrer Policy: Less restricted policies, including ‘no-referrer-when-downgrade’, ‘origin-when-cross-origin’ and ‘unsafe-url’, will be ignored soon for the cross-site request: %S
+# LOCALIZATION NOTE: %1$S is the ignored referrer policy, %2$S is the URI of the loading channel.
+ReferrerPolicyDisallowRelaxingMessage=Referrer Policy: Ignoring the less restricted referrer policy “%1$S” for the cross-site request: %2$S
+# X-Frame-Options
+# LOCALIZATION NOTE(XFrameOptionsInvalid): %1$S is the header value, %2$S is frame URI. Do not translate "X-Frame-Options".
+XFrameOptionsInvalid = Invalid X-Frame-Options header was found when loading “%2$S”: “%1$S” is not a valid directive.
+# LOCALIZATION NOTE(XFrameOptionsDeny): %1$S is the header value, %2$S is frame URI and %3$S is the parent document URI. Do not translate "X-Frame-Options".
+XFrameOptionsDeny=The loading of “%2$S” in a frame is denied by “X-Frame-Options“ directive set to “%1$S“.
+# HTTPS-Only Mode
+# LOCALIZATION NOTE: %1$S is the URL of the upgraded request; %2$S is the upgraded scheme.
+HTTPSOnlyUpgradeRequest = Upgrading insecure request “%1$S” to use “%2$S”.
+# LOCALIZATION NOTE: %1$S is the URL of request.
+HTTPSOnlyNoUpgradeException = Not upgrading insecure request “%1$S” because it is exempt.
+# LOCALIZATION NOTE: %1$S is the URL of the failed request; %2$S is an error-code.
+HTTPSOnlyFailedRequest = Upgrading insecure request “%1$S” failed. (%2$S)
+# LOCALIZATION NOTE: %S is the URL of the failed request;
+HTTPSOnlyFailedDowngradeAgain = Upgrading insecure request “%S” failed. Downgrading to “http” again.
+# LOCALIZATION NOTE: Hints or indicates a new transaction for a URL is likely coming soon. We use
+# a speculative connection to start a TCP connection so that the resource is immediately ready
+# when the transaction is actually submitted. HTTPS-Only and HTTPS-First will upgrade such
+# speculative TCP connections from http to https.
+# %1$S is the URL of the upgraded speculative TCP connection; %2$S is the upgraded scheme.
+HTTPSOnlyUpgradeSpeculativeConnection = Upgrading insecure speculative TCP connection “%1$S” to use “%2$S”.
+# LOCALIZATION NOTE: %S is the URL of the blocked request;
+IframeSandboxBlockedDownload = Download of “%S” was blocked because the triggering iframe has the sandbox flag set.
+# LOCALIZATION NOTE: %S is the URL of the blocked request;
+SandboxBlockedCustomProtocols = Blocked navigation to custom protocol “%S” from a sandboxed context.
+# Sanitizer API
+# LOCALIZATION NOTE: Please do not localize "DocumentFragment". It's the name of an API.
+SanitizerRcvdNoInput = Received empty or no input. Returning an empty DocumentFragment.
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/svg/svg.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/svg/svg.properties
new file mode 100644
index 0000000000..e668e1f06e
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/svg/svg.properties
@@ -0,0 +1,5 @@
+# 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/.
+
+AttributeParseWarning=قيمة غير متوقعة %2$S لصفة التحليل %1$S.
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/viewSource.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/viewSource.properties
new file mode 100644
index 0000000000..5c7c7b236d
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/viewSource.properties
@@ -0,0 +1,16 @@
+# 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/.
+
+goToLineTitle = انتقل إلى سطر
+goToLineText = أدخل رقم السّطر
+invalidInputTitle = إدخال غير صالح
+invalidInputText = رقم السّطر الذي أدخلته غير صالح.
+outOfRangeTitle = السّطر غير موجود
+outOfRangeText = لا وجود للسّطر المحدّد.
+viewSelectionSourceTitle = مصدر DOM للاختيار
+
+context_goToLine_label = انتقل إلى سطر…
+context_goToLine_accesskey = س
+context_wrapLongLines_label = اقطع السطور الطويلة
+context_highlightSyntax_label = أبرِز التراكيب
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/wizard.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/wizard.properties
new file mode 100644
index 0000000000..de230c6ce8
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/wizard.properties
@@ -0,0 +1,8 @@
+# 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/.
+
+default-first-title=مرحبًا في %S
+default-last-title=إكمال %S
+default-first-title-mac=مقدّمة
+default-last-title-mac=خاتمة
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/xslt/xslt.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/xslt/xslt.properties
new file mode 100644
index 0000000000..ddb3d0f7d7
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/xslt/xslt.properties
@@ -0,0 +1,39 @@
+# 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/.
+
+1 = فشل تحليل صفحة طُرز XSLT.
+2 = فشل تحليل تعبير XPath.
+3 =
+4 = فشل تحويل XSLT.
+5 = دالّة XSLT/XPath غير صالحة.
+6 = قد تحتوي صفحة طُرز XSLT على عوديّة.
+7 = قيمة الخاصّة غير صالحة في XSLT 1.0.
+8 = كان متوقّعًا من تعبير XPath أن يعيد NodeSet.
+9 = انتهى تحويل XSLT ب‍ <xsl:message>.
+10 = حدث خطأ شبكة أثناء تحميل صفحة طُرز XSLT:
+11 = لا تحتوي صفحة طُرز XSLT على نوع XML MIME:
+12 = تستورد أو تضمّن صفحة طُرز XSLT بشكل مباشر أو غير مباشر نفسها:
+13 = تمّ نداء دالّة XPath بعدد خاطئ من المُعطيات.
+14 = تمّ نداء دالّة امتداد XPath غير معروفة.
+15 = فشل تحليل XPath: توقّعت ’)‘:
+16 = فشل تحليل XPath: محور غير صالح:
+17 = فشل تحليل XPath: توقّعت اختبار اسم أو نوع عقدة:
+18 = فشل تحليل XPath: توقّعت ’]‘:
+19 = فشل تحليل XPath: اسم متغيّر غير صالح:
+20 = فشل تحليل XPath: نهاية تعبير غير متوقّعة:
+21 = فشل تحليل XPath: توقّعت معاملًا:
+22 = فشل تحليل XPath: محدّد نصّ غير مغلق:
+23 = فشل تحليل XPath: توقّعت ’:‘:
+24 = فشل تحليل XPath: لم أتوقّع ’!‘، النّفي هو ‪not()‬:
+25 = فشل تحليل XPath: وجدت مِحرفا غير مسموح بِه:
+26 = فشل تحليل XPath: توقّعت معاملًا ثنائيًّا:
+27 = حُجب تحميل صفحة طُرز XSLT لأسباب أمنية.
+28 = تقييم لتعبير غير سليم.
+29 = قوس مجعّد غير متوازن.
+30 = يجري إنشاء عنصر ب‍ QName غير سليم.
+31 = متغيّر ربط الظلال يُربط في نفس القالب.
+32 = نداء الدالة المفتاح ليس مسموحا.
+
+LoadingError = خطأ في تحميل صفحة الطُرز: %S
+TransformError = خطأ أثناء تحويل XSLT: %S
diff --git a/thunderbird-l10n/ar/chrome/ar/locale/ar/global/xul.properties b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/xul.properties
new file mode 100644
index 0000000000..c24dbdfcf3
--- /dev/null
+++ b/thunderbird-l10n/ar/chrome/ar/locale/ar/global/xul.properties
@@ -0,0 +1,5 @@
+# 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/.
+
+PINotInProlog=‏<?%1$S?> معالجة التوجيه لم تعد تحتوي على أي تأثير خارج البرمجة المنطقية (أنظر الى الخلل رقم 360119).