aboutsummaryrefslogtreecommitdiff
path: root/files/fa/mozilla
diff options
context:
space:
mode:
Diffstat (limited to 'files/fa/mozilla')
-rw-r--r--files/fa/mozilla/add-ons/add-on_guidelines/index.html116
-rw-r--r--files/fa/mozilla/add-ons/index.html117
-rw-r--r--files/fa/mozilla/add-ons/sdk/index.html81
-rw-r--r--files/fa/mozilla/add-ons/themes/background/index.html104
-rw-r--r--files/fa/mozilla/add-ons/themes/index.html61
-rw-r--r--files/fa/mozilla/add-ons/themes/theme_concepts/index.html232
-rw-r--r--files/fa/mozilla/add-ons/webextensions/api/index.html61
-rw-r--r--files/fa/mozilla/add-ons/webextensions/api/runtime/index.html168
-rw-r--r--files/fa/mozilla/add-ons/webextensions/api/runtime/onmessage/index.html317
-rw-r--r--files/fa/mozilla/add-ons/webextensions/index.html97
-rw-r--r--files/fa/mozilla/add-ons/webextensions/your_first_webextension/index.html152
-rw-r--r--files/fa/mozilla/add-ons/webextensions/your_second_webextension/index.html458
-rw-r--r--files/fa/mozilla/connect/index.html98
-rw-r--r--files/fa/mozilla/developer_guide/index.html95
-rw-r--r--files/fa/mozilla/developer_guide/source_code/index.html54
-rw-r--r--files/fa/mozilla/firefox/index.html47
-rw-r--r--files/fa/mozilla/firefox_for_android/index.html62
-rw-r--r--files/fa/mozilla/index.html10
-rw-r--r--files/fa/mozilla/marketplace/publishing/submit/index.html10
-rw-r--r--files/fa/mozilla/mobile/index.html32
-rw-r--r--files/fa/mozilla/mobile/viewport_meta_tag/index.html87
-rw-r--r--files/fa/mozilla/projects/index.html15
-rw-r--r--files/fa/mozilla/projects/nss/index.html176
-rw-r--r--files/fa/mozilla/projects/psm/index.html13
-rw-r--r--files/fa/mozilla/projects/rhino/index.html20
-rw-r--r--files/fa/mozilla/tech/index.html10
-rw-r--r--files/fa/mozilla/بازار/index.html95
27 files changed, 2788 insertions, 0 deletions
diff --git a/files/fa/mozilla/add-ons/add-on_guidelines/index.html b/files/fa/mozilla/add-ons/add-on_guidelines/index.html
new file mode 100644
index 0000000000..a2ceecab7b
--- /dev/null
+++ b/files/fa/mozilla/add-ons/add-on_guidelines/index.html
@@ -0,0 +1,116 @@
+---
+title: Add-on guidelines
+slug: Mozilla/Add-ons/Add-on_guidelines
+translation_of: 'https://extensionworkshop.com/documentation/publish/add-on-policies/'
+---
+<p>These add-on guidelines were created to foster an open and diverse add-on developer community while ensuring an excellent user experience. They apply to all add-ons and add-on updates regardless of where they are hosted, and also apply to customizations performed by installers that configure Firefox without using an add-on. Add-ons hosted on <a class="external text" href="https://addons.mozilla.org/" rel="nofollow">AMO</a> are subject to <a href="https://addons.mozilla.org/developers/docs/policies" title="https://addons.mozilla.org/developers/docs/policies">additional policies</a>.</p>
+<h2 id="Be_Transparent">Be Transparent</h2>
+<ul>
+ <li>Add-ons must either be installed using the add-on web install system, or be approved by the user using the <a class="external text" href="https://blog.mozilla.org/addons/2011/08/11/strengthening-user-control-of-add-ons/" rel="nofollow">install opt-in dialog</a>.
+ <ul>
+ <li>We want our users to know what they are installing so that they are not unpleasantly surprised by changes they did not expect. We also want them to know what to remove if they decide not to keep it.</li>
+ <li>Add-ons installed through application installers should <a class="external text" href="/en-US/docs/Adding_Extensions_using_the_Windows_Registry" rel="nofollow">use the Windows Registry</a> or equivalent global install methods so that Firefox displays the opt-in screen. The opt-in screen must not be tampered with in any way, including overlaying additional information or images on top of it.</li>
+ </ul>
+ </li>
+ <li>Add-ons must always be possible to uninstall or disable from the Add-ons Manager.
+ <ul>
+ <li>Add-ons installed globally using the Windows registry or global extension directories cannot be uninstalled (<a class="external text" href="https://bugzilla.mozilla.org/show_bug.cgi?id=640775" rel="nofollow">bug 640775</a>), but they can be disabled to the same effect.</li>
+ </ul>
+ </li>
+ <li>Add-ons must use a <a class="external text" href="/en-US/docs/Install_manifests#id" rel="nofollow">single unique ID</a> during their entire lifetime.
+ <ul>
+ <li>Using the same ID for multiple products, or multiple IDs for a single product, can lead to problems with automatic updates as well as blocklisting conflicts. Add-ons may change their IDs due to ownership changes, as they commonly use an email address-like format (
+ <i>
+ e.g.,</i>
+ personasplus@mozilla.com).</li>
+ </ul>
+ </li>
+ <li>Add-ons must not use brand names, trademarks, or other terms in ways that deceive users. Using Mozilla trademarks must follow <a class="external text" href="http://www.mozilla.org/foundation/trademarks/policy.html" rel="nofollow">our trademark policy</a>.</li>
+ <li>Add-ons should clearly communicate their intended purpose and active features, including features introduced through updates.
+ <ul>
+ <li>While we understand and support add-on developers who choose to monetize their products, this should not come at the expense of users' browsing experience. If an add-on inserts advertisements, affiliate codes, sponsored search results, or the like, into web pages, the user should be made aware of this when the add-on is installed. Likewise, if some features require payment to use, or require payment to remain active after a trial period, users should be made aware of this.</li>
+ </ul>
+ </li>
+</ul>
+<h2 id="Be_Respectful_to_Users">Be Respectful to Users</h2>
+<ul>
+ <li>Add-ons must remove all introduced code, executables, and application configuration changes when they are uninstalled.
+ <ul>
+ <li>Uninstalling an add-on using the regular uninstall process should generally suffice. This guideline primarily applies to changes made to preferences such as the homepage, default search URL, network settings, and so forth. These preferences should be restored to their previous values when the add-on is uninstalled. Most add-ons can easily accomplish this by making such changes via a <a class="external text" href="/en-US/docs/Building_an_Extension#Defaults_Files" rel="nofollow">default preferences file</a>.</li>
+ </ul>
+ </li>
+ <li>Add-ons should respect the users' choices and not make unexpected changes, or limit users' ability to revert them.
+ <ul>
+ <li>For instance, users generally do not expect an add-on to change the Firefox homepage. Asking users to opt-in to such extra changes is recommended. Making them difficult or impossible to revert is strongly discouraged.</li>
+ </ul>
+ </li>
+ <li>Add-ons should make it clear how private user data is being used.
+ <ul>
+ <li>Add-ons which send user data over the Internet should generally provide a Privacy Policy, ideally concise and easily readable.</li>
+ </ul>
+ </li>
+ <li>Add-on developers should provide a mechanism for them to be contacted.
+ <ul>
+ <li>While developers are not required to provide a support channel for users, it is recommended. All add-on developers should have a contact form or public email address so that they can be contacted in case of emergencies, such as guideline violations that could lead to blocklisting.</li>
+ </ul>
+ </li>
+</ul>
+<h2 id="Be_Safe">Be Safe</h2>
+<ul>
+ <li>Add-ons must not cause harm to users' data, system, or online identities.</li>
+ <li>Add-ons must not transmit users' private data unsafely, or expose it to third parties unnecessarily.
+ <ul>
+ <li>Private data should always be sent over a secure connection. This includes browsing data such as visited URLs and bookmarks.</li>
+ <li>Making the browser easier to fingerprint by adding text to the User-Agent string or adding custom headers is also a privacy concern, and should be avoided.</li>
+ </ul>
+ </li>
+ <li>Add-ons must not create or expose application or system vulnerabilities.
+ <ul>
+ <li>Security bugs happen, but once discovered they need to be addressed immediately. A popular add-on with a security vulnerability is a valuable attack vector for hackers, and in such cases we will move quickly to blocklist the add-on if there is no prompt response from the developer.</li>
+ </ul>
+ </li>
+ <li>Add-ons must not tamper with the application or blocklist update systems.</li>
+ <li>Add-ons should not store any browsing data while in Private Browsing Mode.
+ <ul>
+ <li>It's worth stressing that PBM is about avoiding storing
+ <i>
+ local</i>
+ data while browsing, not about sending data elsewhere. To learn more about PBM we recommend reading <a class="external text" href="http://ehsanakhgari.org/tag/privatebrowsing" rel="nofollow">Ehsan's blog posts</a> about it.</li>
+ </ul>
+ </li>
+</ul>
+<h2 id="Be_Stable">Be Stable</h2>
+<ul>
+ <li>Add-ons must not cause hangs or crashes.</li>
+ <li>Add-ons should not break or disable core application features.
+ <ul>
+ <li>This includes features like tabbed browsing, Private Browsing Mode, and the location bar. Add-ons that are specifically meant to do this are exempt.</li>
+ </ul>
+ </li>
+ <li>Add-ons should not cause memory leaks, or unnecessarily consume large amounts of memory.</li>
+ <li>Add-ons should not slow down the application or system significantly.</li>
+ <li>Add-ons should not consume network resources to an extent that affects regular application usage.
+ <ul>
+ <li>Downloading large amounts of data without user awareness can significantly disrupt regular browsing, and may result in unexpected charges for users who have network usage limitations (notably on mobile).</li>
+ </ul>
+ </li>
+</ul>
+<h2 id="Exceptions">Exceptions</h2>
+<ul>
+ <li>Add-ons can break some of these guidelines if that's their intended purpose and there isn't malicious intent (
+ <i>
+ e.g.,</i>
+ a security exploit proof of concept).</li>
+ <li>Add-ons deployed by administrators within workplaces, schools, kiosks, and so forth, are exempt from most guidelines.</li>
+ <li>As add-ons can only run clean up code if they are uninstalled while Firefox is running and they are enabled, we do not require that they attempt to clean up after themselves when they are uninstalled under other circumstances. Application installers that configure Firefox without add-ons should revert any changes when uninstalled.</li>
+ <li>Add-ons may leave behind preferences changes in private preference branches which do not affect Firefox when the add-on is not active, so that any previous add-on configuration is not lost if the user decides to re-install the add-on in the future.</li>
+</ul>
+<p>Other exceptions may apply.</p>
+<h2 id="Enforcement">Enforcement</h2>
+<p>Add-ons that do not follow these guidelines may qualify for blocklisting, depending on the extent of the violations. Guidelines qualified with the word
+ <i>
+ must</i>
+ are especially important, and violations thereof will most likely result in a blocklisting nomination.</p>
+<p>The Add-ons Team will do their best to contact the add-on's developers and provide a reasonable time frame for the problems to be corrected before a block is put in place. If an add-on is considered malicious or its developers have proven unreachable or unresponsive, or in case of repeat violations, blocklisting may be immediate.</p>
+<p>Guideline violations should be <a class="external text" href="https://bugzilla.mozilla.org/enter_bug.cgi?product=Tech%20Evangelism&amp;component=Add-ons" rel="nofollow">reported via Bugzilla</a>, under Tech Evangelism &gt; Add-ons. Questions can be posted in the <a class="external text" href="irc://irc.mozilla.org/addons" rel="nofollow">#addons IRC channel</a>.</p>
+<p>These guidelines may change in the future. All updates will be announced in the <a class="external text" href="https://blog.mozilla.org/addons/" rel="nofollow">Add-ons Blog</a>.</p>
diff --git a/files/fa/mozilla/add-ons/index.html b/files/fa/mozilla/add-ons/index.html
new file mode 100644
index 0000000000..ac0a1e3aa6
--- /dev/null
+++ b/files/fa/mozilla/add-ons/index.html
@@ -0,0 +1,117 @@
+---
+title: افزونه‌ها
+slug: Mozilla/Add-ons
+tags:
+ - Add-ons
+ - NeedsTranslation
+ - TopicStub
+translation_of: Mozilla/Add-ons
+---
+<div class="summary" dir="rtl">تغییر و توسعه برنامه‌های موزیلا</div>
+
+<p dir="rtl"><span class="seoSummary">افزونه‌ها قابلیت‌های جدیدی به برنامه‌های مبتنی بر <a href="/en-US/docs/Mozilla/Gecko">Gecko</a> مانند فایرفاکس، سی‌مانکی و تاندربیرد اضافه می‌کنند.</span><strong> </strong>دو نوع اصلی از افزونه‌ها وجود دارد: <a href="#Extensions">الحاقی‌ها</a> که قابلیت‌های جدیدی به برنامه اضافه می‌کنند، <a href="#Themes">تم‌ها</a> که رابط کاربری برنامه را تغییر می‌دهند.</p>
+
+<p dir="rtl">موزیلا برای هر دو نوع الحاقی‌ها و تم‌ها، یک مخزن در <a href="https://addons.mozilla.org/">addons.mozilla.org</a> راه‌اندازی کرده‌است، که به عنوان AMO شناخته می‌شود. وقتی شما <a href="/en-US/Add-ons/Submitting_an_add-on_to_AMO">افزونه‌ها را به AMO ارسال می‌کنید</a> افزونه‌ها بازبینی شده، و افزونه‌ها بعد از گذراندن مرحله بازبینی برای کاربران قابل دسترس خواهد بود. شما مجبور نیستید که افزونه‌ها را به AMO ارسال کنید، اما اگر این‌کار را انجام دهید، کاربران اطمینان پیدا می‌کنند که در عمل افزونه‌ها بازبینی شده‌، و شما به عنوان یک منبع مفید افزونه‌ها از دید AMO سود خواهید برد.</p>
+
+<p dir="rtl">افرونه‌ها تاثیر زیادی بر برنامه‌هایی که آن‌ها را میزبانی می‌کنند می‌گذارند. ما برای اطمینان از فراهم کردن یک تجربه خوب برای کاربران باید <a href="/en-US/docs/Mozilla/Add-ons/Add-on_guidelines">مجموعه‌ای از راهنمایی‌ها</a> را توسعه دهیم. این راهنمایی‌ها بر روی تمام انواع افزونه‌ها اعمال می‌شود، چه آن‌ها در <a href="https://addons.mozilla.org/">addons.mozilla.org</a> میزبانی بشوند یا نشوند.</p>
+
+<hr>
+<h2 dir="rtl" id="الحاقی‌ها"><a name="Extensions">الحاقی‌ها</a></h2>
+
+<p dir="rtl">الحاقی‌ها قابلیت جدیدی به برنامه‌های موزیلا مانند فایرفاکس و تاندربیرد اضافه می‌کنند. الحاقی‌ها ویژگی‌های جدیدی به مرورگر، مانند روش متفاوتی برای مدیریت تب‌ها اضافه می‌کنند، و آن‌ها می توانند محتوای وب را به‌منظور استفاده از وب‌سایت‌ها یا امنیت وب‌سایت‌های خاص بهبود بخشند.</p>
+
+<p dir="rtl">سه تکنیک مختلف وجود دارد که شما می‌توانید برای ساختن الحاقی‌ها استفاده کنید: الحاقی‌های افزودنی مبتنی بر SDK، الحاقی‌های خود راه‌انداز بدون نیاز به راه‌اندازی مجدد، الحاقی‌های روی هم قرار داده شده.</p>
+
+<ul class="card-grid">
+ <li dir="rtl"><span><a href="https://developer.mozilla.org/en-US/Add-ons/SDK">الحاقی‌های افزودنی مبتنی بر SDK</a></span><br>
+ توسعه الحاقی‌های بدون نیاز به راه اندازی مجدد از یک‌سری از API های جاوا اسکریپت‌ سطح بالا استفاده می‌کند.</li>
+ <li dir="rtl"><span><a href="/en-US/Add-ons/Bootstrapped_extensions">الحاقی‌های بدون نیاز به راه اندازی مجدد</a></span><br>
+ توسعه الحاقی‌هایی که نیاز به راه اندازی مجدد مرورگر ندارند.</li>
+ <li dir="rtl"><a href="/en-US/Add-ons/Overlay_Extensions"><span>الحاقی‌های روی هم قرار داده شده</span></a><br>
+ توسعه الحاقی‌های قدیمی که از XML روی هم قرار گرفته شده استفاده می‌کنند.</li>
+</ul>
+
+<p dir="rtl">اگر امکان دارد، توصیه می‌شود تا از افزونه SDK استفاده کنید، که از مکانیزم توسعه بدون نیاز به راه اندازی مجدد استفاده می‌کند ولی وظایف خاص را ساده کرده و بعد از اجرا پاک‌سازی را انجام می‌دهد . اگر افزونه SDK مناسب نیازهای شما نیست، به‌جای آن یک الحاقی بدون نیاز به راه اندازی مجدد را توسعه دهید. درحال حاضر الحاقی‌های روی هم قرار گرفته منسوخ شده‌اند، اگر چه خیلی از آن‌ها که بسیار مورد علاقه هستند هنوز وجود دارند.</p>
+
+<p dir="rtl">برای اطلاعات بیشتر در مورد انتخاب تکنیک مناسب برای استفاده، این <a href="/en-US/Add-ons/Comparing_Extension_Toolchains">مقایسه</a> را بخوانید.</p>
+
+<div class="column-container">
+<div class="column-half">
+<h3 dir="rtl" id="تمرین‌های_مفید">تمرین‌های مفید</h3>
+
+<p dir="rtl">مهم نیست که شما چطور یک الحاق را توسعه می‌دهید، راهنمایی‌های زیادی وجود دارد که می توانید دنبال کنید و مطمئن شوید که الحاقی شما تا آنجایی که امکان دارد تجربه خوبی برای کاربران مهیا کرده‌است یا نه.</p>
+
+<dl>
+ <dt dir="rtl"><a href="/en-US/Add-ons/Performance_best_practices_in_extensions">کارائی</a></dt>
+ <dd dir="rtl">اطمینان از این‌که الحاقی شما سریع، جواب‌گو و از نظرحافظه کارآمد است.</dd>
+ <dt dir="rtl"><a href="/en-US/Add-ons/Security_best_practices_in_extensions">امنیت</a></dt>
+ <dd dir="rtl">اطمینان از این‌که الحاقی شما کاربر را در معرض وب سایت‌های بداندیش قرار نمی‌دهد.</dd>
+ <dt dir="rtl"><a href="/en-US/Add-ons/Extension_etiquette">رسوم</a></dt>
+ <dd dir="rtl">اطمینان از این‌که الحاقی شما به درستی با دیگر الحاقی‌ها کار می‌کند.</dd>
+</dl>
+</div>
+
+<div class="column-half">
+<h3 dir="rtl" id="برنامه_ویژه">برنامه ویژه</h3>
+
+<p dir="rtl">اغلب مستندات فرض می‌کنند که توسعه شما برای میزکار فایرفاکس است. اگر شما بعضی دیگر برنامه‌های مبتنی بر Gecko را توسعه می‌دهید، تفاوت‌های اصلی وجود دارد که شما باید در مورد آن بدانید.</p>
+
+<dl>
+ <dt dir="rtl"><a href="/en-US/Add-ons/Thunderbird">تاندربیرد</a></dt>
+ <dd dir="rtl">توسعه الحاقی‌ها برای سرویس گیرنده پست الکترونیک تاندربیرد.</dd>
+ <dt dir="rtl"><a href="/en-US/Add-ons/Firefox_for_Android">فایرفاکس برای اندروید</a></dt>
+ <dd dir="rtl">توسعه الحاقی‌ها برای فایرفاکس برای اندروید.</dd>
+ <dt dir="rtl"><a href="/en-US/Add-ons/SeaMonkey_2">سی‌مانکی</a></dt>
+ <dd dir="rtl">توسعه الحاقی‌ها برای مجموعه برنامه <a href="http://www.seamonkey-project.org/">سی‌مانکی</a>.</dd>
+</dl>
+</div>
+</div>
+
+<hr>
+<h2 dir="rtl" id="تم‌ها"><a name="Themes">تم‌ها</a></h2>
+
+<p dir="rtl">تم‌ها افزونه‌هایی هستند که رابط کاربری برنامه را سفارشی می‌کنند. دو نوع تم وجود دارد: تم‌های سبک وزن و تم‌های کامل.</p>
+
+<div class="column-container">
+<div class="column-half">
+<p dir="rtl"><a href="https://addons.mozilla.org/en-US/developers/docs/themes">تم‌های سبک وزن</a> از تم‌های کامل برای پیاده سازی ساده‌تر هستند، اما سفارشی سازی محدودی را فراهم می‌کنند.</p>
+</div>
+
+<div class="column-half" dir="rtl">
+<p>با <a href="/en-US/docs/Themes">تم‌های کامل</a> می توانید تغییرات بیشتری به ظاهر برنامه بدهید. مستندات برای تم‌های کامل به‌روز نیستند، اما به عنوان پایه‌ای برای مستندات به‌روز شده به اینجا لینک شده است.</p>
+</div>
+</div>
+
+<hr>
+<h2 dir="rtl" id="انواع_دیگر_افزونه‌ها">انواع دیگر افزونه‌ها</h2>
+
+<p dir="rtl"><a href="/en-US/docs/Creating_OpenSearch_plugins_for_Firefox">متصّل شونده‌های موتور جستجو</a> نوع ساده و خیلی خاص از افزونه هستند: آن‌ها موتور‌های جستجوی جدید را به نوار جستجوی مرورگر اضافه می کنند.</p>
+
+<p dir="rtl"><strong><a href="/en-US/docs/Plugins">متصّل شونده‌ها</a> </strong>به برنامه‌ها در فهمیدن محتوایی که به‌صورت محلی پشتیبانی نمی‌شوند کمک می‌کنند. ما به مرور رمان پشتیبانی از این‌گونه متصّل شونده‌ها را بدخواهیم دانست، آن‌هایی که تاریخچه‌ای در مورد قابلیت پایداری، کارایی، و مشکلات امنیتی دارند.</p>
+
+<h2 id="Subnav" style="text-align: right;">Subnav</h2>
+
+<ol>
+ <li style="text-align: right;"><a href="/en-US/Add-ons/Overlay_Extensions" title="Overlay extensions">Overlay extensions</a></li>
+ <li style="text-align: right;"><a href="/en-US/Add-ons/Bootstrapped_extensions" title="Restartless extensions">Restartless extensions</a></li>
+ <li style="text-align: right;"><a href="/en-US/Add-ons/SDK">Add-on SDK</a></li>
+ <li style="text-align: right;"><a href="#">Extension good practices</a>
+ <ol>
+ <li><a href="/en-US/Add-ons/Performance_best_practices_in_extensions" title="Performance">Performance</a></li>
+ <li><a href="/en-US/Add-ons/Security_best_practices_in_extensions" title="Security">Security</a></li>
+ <li><a href="/en-US/Add-ons/Extension_etiquette" title="Etiquette">Etiquette</a></li>
+ </ol>
+ </li>
+ <li style="text-align: right;"><a href="#">Themes</a>
+ <ol>
+ <li><a href="https://addons.mozilla.org/en-US/developers/docs/themes" title="Lightweight themes">Lightweight themes</a></li>
+ <li><a href="/en-US/docs/Themes" title="Complete themes">Complete themes</a></li>
+ </ol>
+ </li>
+ <li style="text-align: right;"><a href="#">Publishing add-ons</a>
+ <ol>
+ <li><a href="https://addons.mozilla.org/" title="addons.mozilla.org">addons.mozilla.org</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/Add-on_guidelines">Add-on guidelines</a></li>
+ </ol>
+ </li>
+</ol>
diff --git a/files/fa/mozilla/add-ons/sdk/index.html b/files/fa/mozilla/add-ons/sdk/index.html
new file mode 100644
index 0000000000..135dca5a25
--- /dev/null
+++ b/files/fa/mozilla/add-ons/sdk/index.html
@@ -0,0 +1,81 @@
+---
+title: کیت توسعه افزونه
+slug: Mozilla/Add-ons/SDK
+translation_of: Archive/Add-ons/Add-on_SDK
+---
+<p dir="rtl">شما می توانید افزونه های فایرفاکس را با استفاده از تکنولوژی های وب و کیت توسعه فایرفاکس بسازید: جاوااسکریپت ، HTML، و CSS. کیت توسعه شامل API های جاوااسکریپت برای توسعه افزونه و ابزارهایی برای توسعه و آزمایش و انتشار افزونه است.</p>
+
+<hr>
+<h3 dir="rtl" id="آموزش_ها">آموزش ها</h3>
+
+<div class="column-container">
+<div class="column-half">
+<dl>
+ <dt dir="rtl"><a href="/en-US/Add-ons/SDK/Tutorials#getting-started">شروع</a></dt>
+ <dd dir="rtl">چگونه <a href="/en-US/Add-ons/SDK/Tutorials/Installation">کیت توسعه را نصب کنیم</a> و از <a href="/en-US/Add-ons/SDK/Tutorials/Getting_Started_With_cfx">ابزار cfx</a>  برای توسعه ، تست و انتشار افزونه استفاده کنیم.</dd>
+ <dt dir="rtl"><a href="/en-US/Add-ons/SDK/Tutorials#interact-with-the-browser">ارتباط با مرورگر</a></dt>
+ <dd dir="rtl"><a href="/en-US/Add-ons/SDK/Tutorials/Open_a_Web_Page">باز کردن صفحات</a>, <a href="/en-US/Add-ons/SDK/Tutorials/Listen_For_Page_Load">بارگزاری صفحات</a>, و<a href="/en-US/Add-ons/SDK/Tutorials/List_Open_Tabs"> لیست صفحات باز</a>.</dd>
+ <dt dir="rtl"><a href="/en-US/Add-ons/SDK/Tutorials#development-techniques">تکنیک های توسعه</a></dt>
+ <dd dir="rtl">یاد گرفتن تکنیک های توسعه معمولی , مانند <a href="/en-US/Add-ons/SDK/Tutorials/Unit_testing">یونیت تست</a>, <a href="/en-US/Add-ons/SDK/Tutorials/Logging">logging</a>, <a href="/en-US/Add-ons/SDK/Tutorials/Creating_Reusable_Modules">ایجاد ماژوله های قابل استفاده مجدد</a>, محلی کردن, and <a href="/en-US/Add-ons/SDK/Tutorials/Mobile_development">توسعه برای موبایل</a>.</dd>
+</dl>
+</div>
+
+<div class="column-half">
+<dl>
+ <dt dir="rtl"><a href="/en-US/Add-ons/SDK/Tutorials#create-user-interfaces">ایجاد اجزای رابط کاربری</a></dt>
+ <dd dir="rtl">ساخت اجزای رابط کاربری مانند <a href="/en-US/Add-ons/SDK/Tutorials/Adding_a_Button_to_the_Toolbar">دکمه های تولبار</a>, منوهای بازشونده, <a href="/en-US/Add-ons/SDK/Tutorials/Add_a_Menu_Item_to_Firefox">منوها</a>, و <a href="/en-US/Add-ons/SDK/Tutorials/Display_a_Popup">دیالوگ ها</a>.</dd>
+ <dt dir="rtl"><a href="/en-US/Add-ons/SDK/Tutorials#modify-web-pages">ویرایش صفحات</a></dt>
+ <dd dir="rtl">ویرایش صفحات  <a href="/en-US/Add-ons/SDK/Tutorials/Modifying_Web_Pages_Based_on_URL">مطابق یک الگوی آدرس</a> یا به صورت پویا <a href="/en-US/Add-ons/SDK/Tutorials/Modifying_the_Page_Hosted_by_a_Tab">یک تب را ویرایش کنیم</a>.</dd>
+ <dt dir="rtl"><a href="/en-US/Add-ons/SDK/Tutorials/Annotator">قرار دادن همه چیز کنار هم</a></dt>
+ <dd dir="rtl">مشاهده افزونه ها نمونه .</dd>
+</dl>
+</div>
+</div>
+
+<hr>
+<h3 dir="rtl" id="راهنما_ها">راهنما ها</h3>
+
+<div class="column-container">
+<div class="column-half">
+<dl>
+ <dt dir="rtl"><a href="/en-US/Add-ons/SDK/Guides#contributors-guide">راهنمای نویسندگان</a></dt>
+ <dd dir="rtl">یاد گرفتن چگونگی <a href="/en-US/Add-ons/SDK/Guides/Getting_Started">شرکت کردن در توسعه کیت توسعه</a>, و یاد گرفتن مهمترین اصطلاحات کیت توسعه , مانند <a href="/en-US/Add-ons/SDK/Guides/Modules">ماژول</a>, <a href="/en-US/Add-ons/SDK/Guides/Classes_and_Inheritance">کلاس ها و وراثت</a>, <a href="/en-US/Add-ons/SDK/Guides/Private_Properties">تنظیمات خصوصی</a>, و  <a href="/en-US/Add-ons/SDK/Guides/Content_Processes">فرایند های محتوا</a>.</dd>
+ <dt dir="rtl"><a href="/en-US/Add-ons/SDK/Guides#sdk-infrastructure">زیر ساخت های کیت توسعه</a></dt>
+ <dd dir="rtl">جنبه های تکنولوژی زیر بنایی کیت توسعه: <a href="/en-US/Add-ons/SDK/Guides/Module_structure_of_the_SDK">ماژول ها </a>, <a href="/en-US/Add-ons/SDK/Guides/Program_ID">شماره برنامه </a>, و تعریف قوانین <a href="/en-US/Add-ons/SDK/Guides/Firefox_Compatibility">سازگاری فایرفاکس</a>.</dd>
+ <dt dir="rtl"><a href="/en-US/Add-ons/SDK/Guides/Content_Scripts">اسکریپت های محتوا</a></dt>
+ <dd dir="rtl">یک راهنمای دقیق برای کار با اسکریپت های محتوا.</dd>
+</dl>
+</div>
+
+<div class="column-half">
+<dl>
+ <dt dir="rtl"><a href="/en-US/Add-ons/SDK/Guides#sdk-idioms">اصطلاحات کیت توسعه</a></dt>
+ <dd dir="rtl"><a href="/en-US/Add-ons/SDK/Guides/Working_with_Events">چارچوب رویداد های</a> کیت توسعه  ، <a href="/en-US/Add-ons/SDK/Guides/Two_Types_of_Scripts">تمایز بین اسکریپت های محتوا و اسکریپت های افزونه ها</a>.</dd>
+ <dt dir="rtl"><a href="/en-US/Add-ons/SDK/Guides/XUL_Migration_Guide">XUL مهاجرت</a></dt>
+ <dd dir="rtl">یک راهنما یرای <a href="/en-US/Add-ons/SDK/Guides/XUL_Migration_Guide">انتقال افزونه های XUL به کیت توسعه</a>. این راهنما شامل <a href="/en-US/Add-ons/SDK/Guides/XUL_vs_SDK">مقایسه دو مجموعه ابزار</a> و<a href="/en-US/Add-ons/SDK/Guides/Porting_the_Library_Detector"> نمونه های کاری</a> انتقال افزونه های XUL.</dd>
+ <dt dir="rtl"><a href="/en-US/Add-ons/SDK/Guides/Multiprocess_Firefox_and_the_SDK">فایرفاکس چند پروسه ای و کیت توسعه</a></dt>
+ <dd dir="rtl">چگونگی چک کردن سازگاری افزونه شما با فایرفاکس چند پروسه ای و درست کردن ان در صورت نبودن</dd>
+</dl>
+</div>
+</div>
+
+<hr>
+<h3 dir="rtl" id="ارجاع">ارجاع</h3>
+
+<div class="column-container">
+<div class="column-half">
+<dl>
+ <dt dir="rtl"><a href="/en-US/Add-ons/SDK/High-Level_APIs">رابط های برنامه کاربردی سطح بالا</a></dt>
+ <dd dir="rtl">مستندات مرجع برای رابط های برنامه کاربردی  کیت توسعه سطح بالا.</dd>
+ <dt dir="rtl"><a href="/en-US/Add-ons/SDK/Tools">ابزراهای مرجع</a></dt>
+ <dd dir="rtl">مستندات ارجاع برای <a href="/en-US/Add-ons/SDK/Tools/cfx">ابزار cfx</a> برای توسعه , تست, و انتشار افزونه, استفاده های کلی از ابزار <a href="/en-US/Add-ons/SDK/Tools/console">کنسول </a>برای Logging, و فایل <a href="/en-US/Add-ons/SDK/Tools/package_json">pachage,json</a>.</dd>
+</dl>
+</div>
+
+<div class="column-half">
+<dl>
+ <dt><a href="/en-US/Add-ons/SDK/Low-Level_APIs">رابط های برنامه کاربردی سطح پایین</a></dt>
+ <dd>مستندات مرجع برای رابط های برنامه کاربری کیت توسعه سطح پایین.</dd>
+</dl>
+</div>
+</div>
diff --git a/files/fa/mozilla/add-ons/themes/background/index.html b/files/fa/mozilla/add-ons/themes/background/index.html
new file mode 100644
index 0000000000..3ad47ca2be
--- /dev/null
+++ b/files/fa/mozilla/add-ons/themes/background/index.html
@@ -0,0 +1,104 @@
+---
+title: Background Themes
+slug: Mozilla/Add-ons/Themes/Background
+translation_of: Mozilla/Add-ons/Themes/Lightweight_themes
+---
+<p>{{AddonSidebar}}</p>
+
+<h2 id="How_to_Create_Your_Own_Background_Theme">How to Create Your Own Background Theme</h2>
+
+<div class="primary auto" id="getting-started">
+<p>Themes are made up of a "header" graphic image file, which skins the default Firefox UI background.</p>
+
+<p>Finished Your Design? You can <a href="https://addons.mozilla.org/developers/theme/submit">submit it right now!</a></p>
+
+<h3 id="Creating_a_Theme_Header_Image">Creating a Theme Header Image</h3>
+
+<p>The header image is displayed as the background of the top of the browser window, nestling in behind the toolbars, address bar, search bar and the tab strip. It will be <strong>anchored to the top-right corner</strong> of the browser window.</p>
+
+<p class="screenshot"><img alt="" src="https://mdn.mozillademos.org/files/9929/header-step.jpg" style="height: 215px; width: 1059px;"></p>
+
+<ul>
+ <li><a href="https://addons.cdn.mozilla.net/static/img/docs/themes/header.jpg">View a sample Theme Header here.</a></li>
+</ul>
+
+<h4 id="Image_Requirements">Image Requirements</h4>
+
+<ul>
+ <li>Dimensions should be <strong>3000px wide × 200px high</strong></li>
+ <li>PNG or JPG file format</li>
+ <li>Image must be no larger than 300 KB in file size</li>
+</ul>
+
+<h4 id="Tips">Tips</h4>
+
+<ul>
+ <li>Subtle, soft contrast images and gradients work best; highly detailed images will compete with the browser UI.</li>
+ <li>Firefox may reveal more of the lower portion of the image if another toolbar or other UI element is added to the top of the window.</li>
+ <li>The upper right-hand side of the image should have the most important information—as a user increases the width of the browser window, the browser reveals more of the left-hand side of the image.</li>
+</ul>
+
+<h4 id="Online_Image_Editor_Resources">Online Image Editor Resources</h4>
+
+<ul>
+ <li><a href="http://www.pixlr.com">Pixlr</a> — Pixlr offers professional and easy-to-use tools for creating and editing images within a browser.</li>
+ <li><a href="http://www.photoshop.com">Photoshop</a> — Tweak, rotate and touch up photos with Photoshop® Express, a free online photo editor.</li>
+</ul>
+
+<h3 id="Creating_a_Theme_Footer_Image">Creating a Theme Footer Image</h3>
+
+<p>In older versions of Firefox, or newer versions with certain add-ons installed, the footer image is displayed as the background of the bottom of the browser window, behind the add-on and find bars. It will be anchored to the bottom-left corner of the browser window. Footer images are optional.</p>
+
+<p class="screenshot"><img alt="" src="https://mdn.mozillademos.org/files/9935/footer-step.jpg" style="height: 56px; width: 1249px;"></p>
+
+<ul>
+ <li><a href="https://addons.cdn.mozilla.net/static/img/docs/themes/footer.jpg">View a sample Theme Footer here.</a></li>
+</ul>
+
+<h4 id="Image_Requirements_2">Image Requirements</h4>
+
+<ul>
+ <li>Dimensions should be <strong>3000px wide × 100px high</strong></li>
+ <li>PNG or JPG file format</li>
+ <li>Image must be no larger than 300 KB in file size</li>
+</ul>
+
+<h4 id="Tips_2">Tips</h4>
+
+<ul>
+ <li>Subtle, soft contrast images and gradients work best; highly detailed images will compete with the browser UI.</li>
+ <li>Firefox may reveal more of the upper portion of the image if the find bar is open or if an extension adds more height to the bottom of the window.</li>
+ <li>The left-hand side of the image should have the most importan information—as a user increases the width of the browser window, the browser reveals more of the right-hand side of the image.</li>
+</ul>
+
+<h3 id="Submitting_your_Theme_Images">Submitting your Theme Images</h3>
+
+<p>To get started submitting your images, go to the Theme Submission page:</p>
+
+<ol class="itemized">
+ <li><strong>Name your theme</strong> — pick a unique name for your theme. Duplicate names are not allowed, so you may need to try a few times to find a unique name.</li>
+ <li><strong>Pick a category and tags</strong> — select a category and enter some tags that best describe your theme. Keep in mind that a reviewer may reject your theme if it is obvious that your category and/or tags are unrelated to your theme.</li>
+ <li><strong>Describe your theme</strong> — write a short description of your theme. Keep in mind that a reviewer may reject your theme if your description is not an accurate representation of your theme.</li>
+ <li><strong>Select a license for your theme</strong> — decide on a copyright license for your work. <a href="http://creativecommons.org/licenses/">Read more about the types of Creative Common licenses.</a>
+ <ul>
+ <li><strong>Important:</strong> Please be sure you have the rights to use the image in your theme!</li>
+ </ul>
+ </li>
+ <li><strong>Upload your images</strong> — make sure they are under 300 KB in size and JPG or PNG format!</li>
+ <li><strong>Select text and tab colors</strong> — you can choose the tab ("background") color and foreground text color that work best with your header image.</li>
+ <li><strong>Preview your theme</strong> — you're ready to preview your theme! Simply mouse over the image above the Submit Theme button, and see how it looks instantly.</li>
+ <li><strong>Submit your theme</strong> — if everything looks right, click the Submit Theme button and you're done! You can see all the themes you've authored on your profile page.
+ <ul>
+ <li><strong>Tip:</strong> to ensure that your theme is approved for the gallery, be sure it complies with the content guidelines and terms of service!</li>
+ </ul>
+ </li>
+</ol>
+
+<p class="screenshot"><img alt="" src="https://mdn.mozillademos.org/files/9933/submission-step.jpg" style="height: 1800px; width: 785px;"></p>
+
+<p class="call-to-submit"><a class="button prominent" href="https://addons.mozilla.org/en-US/developers/theme/submit">Submit Your Theme Now</a></p>
+
+<h2 class="call-to-submit" id="More_Tutorials">More Tutorials</h2>
+
+<p><a href="http://vanillaorchidstutorials.blogspot.com/2015/11/mozilla-themes-focal-point-sizing.html">Mozilla Themes Focal Point on Sizing</a> - A tutorial on theming with a focus on sizing, by VanillaOrchids.</p>
+</div>
diff --git a/files/fa/mozilla/add-ons/themes/index.html b/files/fa/mozilla/add-ons/themes/index.html
new file mode 100644
index 0000000000..86dd860fa7
--- /dev/null
+++ b/files/fa/mozilla/add-ons/themes/index.html
@@ -0,0 +1,61 @@
+---
+title: Themes
+slug: Mozilla/Add-ons/Themes
+tags:
+ - Add-ons
+ - Look & Feel
+ - NeedsTranslation
+ - Themes
+ - TopicStub
+translation_of: Mozilla/Add-ons/Themes
+---
+{{AddonSidebar}}
+
+<div class="warning">
+<p>The Theme documentation here is out of date.</p>
+</div>
+
+<p>Themes are skins for different Mozilla applications. They allow you to change the look and feel of the user interface and personalize it to your tastes. A theme can simply change the colors of the UI or it can change every piece of its appearance.</p>
+
+<div class="column-container">
+<div class="column-half">
+<h2 class="Documentation" id="Documentation" name="Documentation">Documentation</h2>
+
+<dl>
+ <dt><a href="/en-US/docs/Building_a_Theme" title="Building a Theme">Building a Theme</a></dt>
+ <dd>A tutorial for building a simple theme in Firefox.</dd>
+ <dt><a href="/en-US/docs/Themes/Common_Firefox_Theme_Issues_and_Solutions" title="Themes/Common_Firefox_Theme_Issues_and_Solutions">Common Theme Issues and Their Solutions</a></dt>
+ <dd>Common issues seen when AMO editors review themes and how to fix them.</dd>
+ <dt><a href="/en-US/docs/Themes/Lightweight_themes" title="Themes/Lightweight themes">Lightweight themes</a></dt>
+ <dd>Building lightweight themes for Firefox</dd>
+ <dt><a href="/en-US/docs/Creating_a_Skin_for_SeaMonkey_2.x" title="Creating_a_Skin_for_SeaMonkey_2.x">Creating a Skin for SeaMonkey 2</a></dt>
+ <dd>An introduction to creating new themes for SeaMonkey 2.</dd>
+ <dt><a href="/en-US/docs/Making_Sure_Your_Theme_Works_with_RTL_Locales" title="Making_Sure_Your_Theme_Works_with_RTL_Locales">Making Sure Your Theme Works with RTL Locales</a></dt>
+ <dd>How to make sure your theme will look right with Hebrew, Arabic, Persian and Urdu locales.</dd>
+ <dt><a href="/en-US/docs/Theme_Packaging" title="Theme_Packaging">Theme Packaging</a></dt>
+ <dd>How to package themes for Firefox and Thunderbird.</dd>
+ <dt><a href="http://www.tudobom.de/articles/yatt/" title="http://www.tudobom.de/articles/yatt/">Yet Another Theme Tutorial</a></dt>
+ <dd>Another tutorial in Mozilla theme construction.</dd>
+ <dt><a href="/en-US/Mozilla/Add-ons/Themes/Obsolete">Obsolete docs</a></dt>
+ <dd>These docs are very old and will never be updated, but we've kept them in case the are useful source material for people updating the Theme documentation.</dd>
+</dl>
+</div>
+
+<div class="column-half">
+<h2 id="Getting_help">Getting help</h2>
+
+<ul>
+ <li><a href="http://forums.mozillazine.org/viewforum.php?f=18">MozillaZine Themes forum</a></li>
+</ul>
+
+<h2 class="Tools" id="Tools" name="Tools">Tools</h2>
+
+<ul>
+ <li><a href="/en-US/docs/DOM_Inspector" title="DOM_Inspector">DOM Inspector</a></li>
+ <li><a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/inspectorwidget/">InspectorWidget</a></li>
+ <li><a class="link-https" href="https://addons.mozilla.org/en-us/firefox/addon/force-rtl/">Force RTL</a>: Test for RTL compatibility</li>
+</ul>
+</div>
+</div>
+
+<p> </p>
diff --git a/files/fa/mozilla/add-ons/themes/theme_concepts/index.html b/files/fa/mozilla/add-ons/themes/theme_concepts/index.html
new file mode 100644
index 0000000000..dda28c91fe
--- /dev/null
+++ b/files/fa/mozilla/add-ons/themes/theme_concepts/index.html
@@ -0,0 +1,232 @@
+---
+title: Theme concepts
+slug: Mozilla/Add-ons/Themes/Theme_concepts
+translation_of: Mozilla/Add-ons/Themes/Theme_concepts
+---
+<div>{{AddonSidebar()}}</div>
+
+<p>Themes developed using the <a href="/en-US/Add-ons/WebExtensions">WebExtensions API</a> in Firefox enable you to change the look of the browser by adding images to the header area of the Firefox browser; this is the area behind the menu bar, toolbars, address bar, search bar, and tab strip.</p>
+
+<p>These theme options can be implemented as static themes (although the theme images themselves may be animated) or as dynamic themes created in a browser extension.</p>
+
+<div class="note">
+<p>If you have a lightweight theme it will be converted to this new theme format automatically before lightweight themes are deprecated. You do not need to port your th eme. However, please feel free to update your themes to use any of the new features described here.</p>
+</div>
+
+<h2 id="Static_themes">Static themes</h2>
+
+<p>Static themes are specified using the same resources as a browser extension: a <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json">manifest.json</a> file to define the theme components with those components stored in the same folder as the manifest.json file or a sub folder. These resources are then packed in a zip for publication on <a href="https://addons.mozilla.org">addons.mozilla.org</a> (AMO) or for self-distribution. For more information on self-distribution, visit <a href="/en-US/docs/Mozilla/Add-ons/Distribution">Signing and distributing your add-on</a>.</p>
+
+<p>You can also use the <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Themes/Using_the_AMO_theme_generator">theme generator</a> on AMO to create a static theme. Additionally, <a href="https://color.firefox.com">Firefox Color</a> can be used to preview customizations to the browser's theme with options to share and export a theme.</p>
+
+<div class="note">
+<p>A theme and browser extension functionality cannot be defined in one package, such as including a theme to complement an extension. You can, however, programmatically include a theme in an extension using the Theme API. See <a href="#Dynamic_themes">Dynamic themes</a>.</p>
+</div>
+
+<h3 id="Defining_a_theme">Defining a theme</h3>
+
+<p>To create a theme (in this example a simple, single image theme):</p>
+
+<ul>
+ <li>Create a folder in a suitable location on your computer.</li>
+ <li>Add the theme image file to the folder:
+ <pre>&lt;mytheme&gt;
+ &lt;your_header_image&gt;.&lt;type&gt;</pre>
+ </li>
+ <li>Create a file called manifest.json in the folder and edit its content as follows:
+ <pre class="brush: json">{
+ "manifest_version": 2,
+ "version": "1.0",
+ "name": "&lt;your_theme_name&gt;",
+ "theme": {
+ "images": {
+ "theme_frame": "&lt;your_header_image&gt;.&lt;type&gt;"
+ },
+ "colors": {
+ "frame": "#FFFFFF",
+ "tab_background_text": "#000"
+ }
+ }
+}
+</pre>
+ Where:
+
+ <ul>
+ <li><code>"frame":</code> is the heading area background color for your theme.</li>
+ <li><code>"</code><code>tab_background_text</code><code>":</code> the color of the text in the heading area.</li>
+ </ul>
+ </li>
+ <li>Package your theme and submit it to AMO, <a href="/en-US/Add-ons/WebExtensions/Publishing_your_WebExtension">following these instructions</a>. Themes can be submitted to AMO for hosting or for self-distribution.</li>
+</ul>
+
+<h3 id="Static_theme_approaches">Static theme approaches</h3>
+
+<p>There are two approaches you can take to theming the header area of Firefox: using a single image or using multiple images. You could combine the two, but it’s easier to treat them separately.</p>
+
+<h4 id="Single_image_themes">Single image themes</h4>
+
+<p>This is the basic or minimal theming option, where you define:</p>
+
+<ul>
+ <li>a single image, which is anchored to the top right of the header area.</li>
+ <li>A color for the text in the header.</li>
+</ul>
+
+<p>The area your header image needs to fill is a maximum of 200 pixels high. The maximum image width is determined by the resolution of the monitor Firefox is displaying on and how much of the monitor Firefox is using. Practically, this means you would need to allow for a width of up to 5120 pixels wide (for the next generation of 5k monitors). However, rather than creating a very wide image, a better approach is to use a narrower image with a transparent left edge so that it fades to the background color. For example, we could use this image<br>
+ <img alt="An image of a weta (the common name for a group of about 70 insect species in the families Anostostomatidae and Rhaphidophoridae, endemic to New Zealand) with the left edge fading to total transparency." src="https://mdn.mozillademos.org/files/15215/weta.png" style="height: 200px; width: 406px;"><br>
+ combined with a complementary background color, to create this effect in the header<br>
+ <img alt="A single image theme using the weta.png image" src="https://mdn.mozillademos.org/files/15217/basic_theme.png" style="height: 113px; width: 679px;"></p>
+
+<p>See details about this theme in the <a href="https://github.com/mdn/webextensions-examples/tree/master/themes">themes</a> example <a href="https://github.com/mdn/webextensions-examples/tree/master/themes/weta_fade">weta_fade</a>.</p>
+
+<p>Obviously, you can still provide a single wide image if you prefer.</p>
+
+<h4 id="Multiple_image_themes">Multiple image themes</h4>
+
+<p>As an alternative to creating a single image theme, you have the option to use multiple images. These images can be individually anchored to locations within the header, with the option to apply tiling to each image.</p>
+
+<p>Depending on the effect you want to create you may need to suppress the mandatory <code>"</code><code>theme_frame</code><code>":</code> image with an empty or transparent image. You would use an empty or transparent image if, for example, you wanted to tile a centrally justified image, such as<br>
+ <img alt="An image of a weta (the common name for a group of about 70 insect species in the families Anostostomatidae and Rhaphidophoridae, endemic to New Zealand) with the left and right edges fading to total transparency." src="https://mdn.mozillademos.org/files/15219/weta_for_tiling.png" style="height: 200px; width: 270px;"><br>
+ to create this effect<br>
+ <img alt="A single image theme using the additional images option to align an image to the center of the heading and tile it. " src="https://mdn.mozillademos.org/files/15221/tiled_theme.png" style="height: 113px; width: 679px;"><br>
+ Here you specify the weta image like this:</p>
+
+<pre class="brush: json" dir="ltr">"images": {
+ "theme_frame": "empty.png",
+ "additional_backgrounds": [ "weta_for_tiling.png"]
+},</pre>
+
+<p dir="ltr">and the images tiling with:</p>
+
+<pre class="brush: json" dir="ltr">"properties": {
+ "additional_backgrounds_alignment": [ "top" ],
+ "additional_backgrounds_tiling": [ "repeat" ]
+},</pre>
+
+<p>Full details of how to setup this theme can be found in the <a href="https://github.com/mdn/webextensions-examples/tree/master/themes">themes</a> example <a href="https://github.com/mdn/webextensions-examples/tree/master/themes/weta_tiled">weta_tiled</a>. Full detais of the alignment and tiling options can be found in the <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/theme">"theme" key description</a>.</p>
+
+<p>Alternatively, you can use multiple images, say combining the original weta image with this one anchored to the left of the header<br>
+ <img alt="An image of a weta (the common name for a group of about 70 insect species in the families Anostostomatidae and Rhaphidophoridae, endemic to New Zealand) with the right edge fading to total transparency." src="https://mdn.mozillademos.org/files/15223/weta-left.png" style="height: 200px; width: 406px;"><br>
+ to create this effect<br>
+ <img alt="A theme using the additional images option to place two mirrored image to the left and right of the browser header." src="https://mdn.mozillademos.org/files/15225/multi_image_theme.png" style="height: 113px; width: 679px;"></p>
+
+<p>Where the images are specified with:</p>
+
+<pre class="brush: json" dir="ltr">"images": {
+ "theme_frame": "empty.png",
+ "additional_backgrounds": [ "weta.png", "weta-left.png"]
+},</pre>
+
+<p dir="ltr">and their alignment by:</p>
+
+<pre class="brush: json" dir="ltr">"properties": {
+ "additional_backgrounds_alignment": [ "right top" , "left top" ]
+},</pre>
+
+<p>Full details of how to setup this theme can be found in the <a href="https://github.com/mdn/webextensions-examples/tree/master/themes">themes</a> example <a href="https://github.com/mdn/webextensions-examples/tree/master/themes/weta_mirror">weta_mirror</a>. Full details of the alignment options can be found in the <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/theme">"theme" key description</a>.</p>
+
+<h3 id="Static_animated_themes">Static animated themes</h3>
+
+<p>It is possible to create an animated theme using an APNG format image, as in the <a href="https://github.com/mdn/webextensions-examples/tree/master/themes">themes</a> example <a href="https://github.com/mdn/webextensions-examples/tree/master/themes/animated">animated</a>. However, remember that rapid animations, such as the one in the example might be too distracting for a practical theme.</p>
+
+<p dir="ltr">You can also animate themes programmatically, which we discuss in <a href="#Dynamic_themes">Dynamic themes</a>.</p>
+
+<h3 dir="ltr" id="Updating_static_themes">Updating static themes</h3>
+
+<p dir="ltr">If your static theme is hosted on AMO, you can upload a new version using the <a href="https://addons.mozilla.org/en-US/developers/">Developer Hub </a>with the following steps:</p>
+
+<ol dir="ltr">
+ <li>Visit the product page for your theme through the <a href="https://addons.mozilla.org/en-US/developers/">Developer Hub</a></li>
+ <li>Select "Upload New Version" on the left</li>
+ <li>Upload your packaged file for validation or modify it using the theme generator</li>
+</ol>
+
+<p>For self-hosted static themes, a new version can be updated through AMO by following the above steps or be handled by you through an updateURL or external application updates. A new version will need to be signed through the Developer Hub.</p>
+
+<div class="note">
+<p> If you are uploading a packaged file, the version number must be higher than the current version number</p>
+</div>
+
+<h2 id="Dynamic_themes">Dynamic themes</h2>
+
+<p>As an alternative to defining a static theme, you can use the {{WebExtAPIRef("theme")}} API to control the theme used in Firefox from within a browser extension. There are a couple of use cases for this option:</p>
+
+<ul>
+ <li>To bundle a theme with a browser extension, as an added extra.</li>
+ <li>Create a dynamic theme that changes under programmatic control.</li>
+</ul>
+
+<p>And, obviously, you can combine the two and bundle a programmatically controlled theme with your extension.</p>
+
+<p>Using the {{WebExtAPIRef("theme")}} API is straightforward. First, request "theme"<a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions"> permission</a> in the extension's<a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json"> manifest.json</a> file. Next, you build a JSON object containing the same information you would use in a static theme’s manifest.json, Finally, pass the JSON object in a {{WebExtAPIRef("theme.update()")}} call.</p>
+
+<p>For example, the following code, from the <a href="https://github.com/mdn/webextensions-examples/tree/master/dynamic-theme">dynamic theme example</a> defines the content for the day and night elements of the dynamic theme:</p>
+
+<pre class="brush: js" dir="ltr">const themes = {
+ 'day': {
+ images: {
+ theme_frame: 'sun.jpg',
+ },
+ colors: {
+ frame: '#CF723F',
+ tab_background_text: '#111',
+ }
+ },
+ 'night': {
+ images: {
+ theme_frame: 'moon.jpg',
+ },
+ colors: {
+ frame: '#000',
+ tab_background_text: '#fff',
+ }
+ }
+};</pre>
+
+<p>The theme.Theme object is then passed to {{WebExtAPIRef("theme.update()")}} to change the header theme, as in this code snippet from the same example:</p>
+
+<pre class="brush: js" dir="ltr">function setTheme(theme) {
+ if (currentTheme === theme) {
+ // No point in changing the theme if it has already been set.
+ return;
+ }
+ currentTheme = theme;
+ browser.theme.update(themes[theme]);
+}</pre>
+
+<p dir="ltr">Learn more about dynamic themes and see an additional example in the following video:</p>
+
+<p dir="ltr">{{EmbedYouTube("ycckyrUN0AY")}}</p>
+
+<p dir="ltr"></p>
+
+<p dir="ltr">If you have not built a browser extension before, check out <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Your_first_WebExtension">Your first extension</a> for a step-by-step guide.</p>
+
+<h2 id="Cross-browser_compatibility">Cross-browser compatibility</h2>
+
+<p>There is currently limited compatibility between themes in the major browsers. Opera takes an entirely different approach, and Microsoft Edge themes are not yet open to developers.</p>
+
+<p>There is good compatibility between Firefox static themes and Chrome themes, providing the ability to port a single header image theme from Firefox to Chrome. However, noting that<code> "frame":</code> and <code>"tab_background_text":</code> only support RGB color array definition on Chrome.</p>
+
+<p>So, in the single image theme example (weta_fade) could be supported in Chrome using the following manifest.json file:</p>
+
+<pre class="brush: json" dir="ltr">{
+ "manifest_version": 2,
+ "version": "1.0",
+ "name": "&lt;your_theme_name&gt;",
+ "theme": {
+ "images": {
+ "theme_frame": "weta.png"
+ },
+ "colors": {
+ "frame": [ 173 , 176 , 159 ],
+ "tab_background_text": [ 0 , 0 , 0 ]
+ }
+ }
+}</pre>
+
+<p>Also, note that Chrome tiles the <code>“theme_frame”:</code> image from the left of the header area.</p>
+
+<p dir="ltr"><img alt="The basic theme example using the Chrome compatible manifest.json keys, showing the differences in how those keys are implemented." src="https://mdn.mozillademos.org/files/15227/basic_in_chrome.png" style="height: 113px; width: 679px;"></p>
+
+<p>For more information, see the notes on <a href="/en-US/Add-ons/WebExtensions/manifest.json/theme#Chrome_compatibility">Chrome compatibility</a>.</p>
diff --git a/files/fa/mozilla/add-ons/webextensions/api/index.html b/files/fa/mozilla/add-ons/webextensions/api/index.html
new file mode 100644
index 0000000000..724bf34516
--- /dev/null
+++ b/files/fa/mozilla/add-ons/webextensions/api/index.html
@@ -0,0 +1,61 @@
+---
+title: JavaScript APIs
+slug: Mozilla/Add-ons/WebExtensions/API
+tags:
+ - NeedsTranslation
+ - TopicStub
+ - WebExtensions
+translation_of: Mozilla/Add-ons/WebExtensions/API
+---
+<div>{{AddonSidebar}}</div>
+
+<div>
+<p>JavaScript APIs for WebExtensions can be used inside the extension's <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Background_scripts">background scripts</a> and in any other documents bundled with the extension, including <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Browser_action">browser action</a> or <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Page_actions">page action</a> popups, <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Sidebars">sidebars</a>, <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Options_pages">options pages</a>, or <a href="/en-US/Add-ons/WebExtensions/manifest.json/chrome_url_overrides">new tab pages</a>. A few of these APIs can also be accessed by an extension's <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Content_scripts">content scripts</a> (see the <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Content_scripts#WebExtension_APIs">list in the content script guide</a>).</p>
+
+<p>To use the more powerful APIs you need to <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json/permissions">request permission</a> in your extension's <code>manifest.json</code>.</p>
+
+<p>You can access the APIs using the <code>browser</code> namespace:</p>
+
+<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">function</span> <span class="function token">logTabs</span><span class="punctuation token">(</span>tabs<span class="punctuation token">)</span> <span class="punctuation token">{</span>
+ console<span class="punctuation token">.</span><span class="function token">log</span><span class="punctuation token">(</span>tabs<span class="punctuation token">)</span>
+<span class="punctuation token">}</span>
+
+browser<span class="punctuation token">.</span>tabs<span class="punctuation token">.</span><span class="function token">query</span><span class="punctuation token">(</span><span class="punctuation token">{</span>currentWindow<span class="punctuation token">:</span> <span class="keyword token">true</span><span class="punctuation token">}</span><span class="punctuation token">,</span> logTabs<span class="punctuation token">)</span></code></pre>
+</div>
+
+<div>
+<p>Many of the APIs are asynchronous, returning a {{JSxRef("Promise")}}:</p>
+
+<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">function</span> <span class="function token">logCookie</span><span class="punctuation token">(</span>c<span class="punctuation token">)</span> <span class="punctuation token">{</span>
+ console<span class="punctuation token">.</span><span class="function token">log</span><span class="punctuation token">(</span>c<span class="punctuation token">)</span>
+<span class="punctuation token">}</span>
+
+<span class="keyword token">function</span> <span class="function token">logError</span><span class="punctuation token">(</span>e<span class="punctuation token">)</span> <span class="punctuation token">{</span>
+ console<span class="punctuation token">.</span><span class="function token">error</span><span class="punctuation token">(</span>e<span class="punctuation token">)</span>
+<span class="punctuation token">}</span>
+
+<span class="keyword token">let</span> setCookie <span class="operator token">=</span> browser<span class="punctuation token">.</span>cookies<span class="punctuation token">.</span><span class="keyword token">set</span><span class="punctuation token">(</span>
+ <span class="punctuation token">{</span>url<span class="punctuation token">:</span> <span class="string token">"https://developer.mozilla.org/"</span><span class="punctuation token">}</span>
+<span class="punctuation token">)</span><span class="punctuation token">;</span>
+setCookie<span class="punctuation token">.</span><span class="function token">then</span><span class="punctuation token">(</span>logCookie<span class="punctuation token">,</span> logError<span class="punctuation token">)</span></code></pre>
+</div>
+
+<div>
+<p>Note that this is different from Google Chrome's extension system, which uses the <code>chrome</code> namespace instead of <code>browser</code>, and which uses callbacks instead of promises for asynchronous functions. As a porting aid, the Firefox implementation of WebExtensions APIs supports <code>chrome</code> and callbacks as well as <code>browser</code> and promises. Mozilla has also written a polyfill which enables code that uses <code>browser</code> and promises to work unchanged in Chrome: <a class="external external-icon" href="https://github.com/mozilla/webextension-polyfill">https://github.com/mozilla/webextension-polyfill</a>.</p>
+
+<p>Firefox also implements these APIs under the <code>chrome</code> namespace using callbacks. This allows code written for Chrome to run largely unchanged in Firefox for the APIs documented here.</p>
+
+<p>Microsoft Edge uses the <code>browser</code> namespace, but doesn't yet support promise-based asynchronous APIs. In Edge, for the time being, asynchronous APIs must use callbacks.</p>
+
+<p>Not all browsers support all the APIs: for the details, see <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs">Browser support for JavaScript APIs</a>.</p>
+
+<p>Tip: Throughout the JavaScript API listings you will find short code examples that illustrate how the API is used. You can exercise these examples, without needing to create a web extension, using the console in the <a href="https://extensionworkshop.com/documentation/develop/debugging/#developer-tools-toolbox">Toolbox</a>. For example, here is the first code example on this page running in the Toolbox console in Firefox Developer Edition:</p>
+
+<p><img alt="Illustration of a snippet of web extension code run from the console in the Toolbox" src="https://mdn.mozillademos.org/files/17186/JavaScript_exercised_in_console.jpg" style="height: 347px; width: 680px;"></p>
+
+<h2 id="JavaScript_API_listing">JavaScript API listing</h2>
+
+<p>See below for a complete list of JavaScript APIs:</p>
+</div>
+
+<div>{{LandingPageListSubpages}}</div>
diff --git a/files/fa/mozilla/add-ons/webextensions/api/runtime/index.html b/files/fa/mozilla/add-ons/webextensions/api/runtime/index.html
new file mode 100644
index 0000000000..62478e3457
--- /dev/null
+++ b/files/fa/mozilla/add-ons/webextensions/api/runtime/index.html
@@ -0,0 +1,168 @@
+---
+title: runtime
+slug: Mozilla/Add-ons/WebExtensions/API/runtime
+tags:
+ - API
+ - Add-ons
+ - Extensions
+ - Interface
+ - NeedsTranslation
+ - Reference
+ - TopicStub
+ - WebExtensions
+ - runtime
+translation_of: Mozilla/Add-ons/WebExtensions/API/runtime
+---
+<div>{{AddonSidebar}}</div>
+
+<p><span class="seoSummary">This module provides information about your extension and the environment it's running in.</span></p>
+
+<p>It also provides messaging APIs enabling you to:</p>
+
+<ul>
+ <li>Communicate between different parts of your extension. For advice on choosing between the messaging options, see <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_scripts#Choosing_between_one-off_messages_and_connection-based_messaging">Choosing between one-off messages and connection-based messaging</a>.</li>
+ <li>Communicate with other extensions.</li>
+ <li>Communicate with native applications.</li>
+</ul>
+
+<h2 id="Types">Types</h2>
+
+<dl>
+ <dt>{{WebExtAPIRef("runtime.Port")}}</dt>
+ <dd>Represents one end of a connection between two specific contexts, which can be used to exchange messages.</dd>
+ <dt>{{WebExtAPIRef("runtime.MessageSender")}}</dt>
+ <dd>
+ <p>Contains information about the sender of a message or connection request.</p>
+ </dd>
+ <dt>{{WebExtAPIRef("runtime.PlatformOs")}}</dt>
+ <dd>Identifies the browser's operating system.</dd>
+ <dt>{{WebExtAPIRef("runtime.PlatformArch")}}</dt>
+ <dd>Identifies the browser's processor architecture.</dd>
+ <dt>{{WebExtAPIRef("runtime.PlatformInfo")}}</dt>
+ <dd>Contains information about the platform the browser is running on.</dd>
+ <dt>{{WebExtAPIRef("runtime.RequestUpdateCheckStatus")}}</dt>
+ <dd>Result of a call to {{WebExtAPIRef("runtime.requestUpdateCheck()")}}.</dd>
+ <dt>{{WebExtAPIRef("runtime.OnInstalledReason")}}</dt>
+ <dd>The reason that the {{WebExtAPIRef("runtime.onInstalled")}} event is being dispatched.</dd>
+ <dt>{{WebExtAPIRef("runtime.OnRestartRequiredReason")}}</dt>
+ <dd>The reason that the {{WebExtAPIRef("runtime.onRestartRequired")}} event is being dispatched.</dd>
+</dl>
+
+<h2 id="Properties">Properties</h2>
+
+<dl>
+ <dt>{{WebExtAPIRef("runtime.lastError")}}</dt>
+ <dd>This value is set when an asynchronous function has an error condition that it needs to report to its caller.</dd>
+ <dt>{{WebExtAPIRef("runtime.id")}}</dt>
+ <dd>The ID of the extension.</dd>
+</dl>
+
+<h2 id="Functions">Functions</h2>
+
+<dl>
+ <dt>{{WebExtAPIRef("runtime.getBackgroundPage()")}}</dt>
+ <dd>Retrieves the <a href="/en-US/docs/Web/API/Window">Window</a> object for the background page running inside the current extension.</dd>
+ <dt>{{WebExtAPIRef("runtime.openOptionsPage()")}}</dt>
+ <dd>
+ <p>Opens your extension's <a href="/en-US/Add-ons/WebExtensions/user_interface/Options_pages">options page</a>.</p>
+ </dd>
+ <dt>{{WebExtAPIRef("runtime.getManifest()")}}</dt>
+ <dd>Gets the complete <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json">manifest.json</a> file, serialized as an object.</dd>
+ <dt>{{WebExtAPIRef("runtime.getURL()")}}</dt>
+ <dd>Given a relative path from the <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json">manifest.json</a> to a resource packaged with the extension, returns a fully-qualified URL.</dd>
+ <dt>{{WebExtAPIRef("runtime.setUninstallURL()")}}</dt>
+ <dd>Sets a URL to be visited when the extension is uninstalled.</dd>
+ <dt>{{WebExtAPIRef("runtime.reload()")}}</dt>
+ <dd>Reloads the extension.</dd>
+ <dt>{{WebExtAPIRef("runtime.requestUpdateCheck()")}}</dt>
+ <dd>Checks for updates to this extension.</dd>
+ <dt>{{WebExtAPIRef("runtime.connect()")}}</dt>
+ <dd>Establishes a connection from a content script to the main extension process, or from one extension to a different extension.</dd>
+ <dt>{{WebExtAPIRef("runtime.connectNative()")}}</dt>
+ <dd>
+ <div>Connects the extension to a native application on the user's computer.</div>
+ </dd>
+ <dt>{{WebExtAPIRef("runtime.sendMessage()")}}</dt>
+ <dd>Sends a single message to event listeners within your extension or a different extension. Similar to {{WebExtAPIRef('runtime.connect')}} but only sends a single message, with an optional response.</dd>
+ <dt>{{WebExtAPIRef("runtime.sendNativeMessage()")}}</dt>
+ <dd>Sends a single message from an extension to a native application.</dd>
+ <dt>{{WebExtAPIRef("runtime.getPlatformInfo()")}}</dt>
+ <dd>Returns information about the current platform.</dd>
+ <dt>{{WebExtAPIRef("runtime.getBrowserInfo()")}}</dt>
+ <dd>Returns information about the browser in which this extension is installed.</dd>
+ <dt>{{WebExtAPIRef("runtime.getPackageDirectoryEntry()")}}</dt>
+ <dd>Returns a DirectoryEntry for the package directory.</dd>
+</dl>
+
+<h2 id="Events">Events</h2>
+
+<dl>
+ <dt>{{WebExtAPIRef("runtime.onStartup")}}</dt>
+ <dd>Fired when a profile that has this extension installed first starts up. This event is not fired when an incognito profile is started.</dd>
+ <dt>{{WebExtAPIRef("runtime.onInstalled")}}</dt>
+ <dd>Fired when the extension is first installed, when the extension is updated to a new version, and when the browser is updated to a new version.</dd>
+ <dt>{{WebExtAPIRef("runtime.onSuspend")}}</dt>
+ <dd>Sent to the event page just before the extension is unloaded. This gives the extension an opportunity to do some cleanup.</dd>
+ <dt>{{WebExtAPIRef("runtime.onSuspendCanceled")}}</dt>
+ <dd>Sent after {{WebExtAPIRef("runtime.onSuspend")}} to indicate that the extension won't be unloaded after all.</dd>
+ <dt>{{WebExtAPIRef("runtime.onUpdateAvailable")}}</dt>
+ <dd>Fired when an update is available, but isn't installed immediately because the extension is currently running.</dd>
+ <dt>{{WebExtAPIRef("runtime.onBrowserUpdateAvailable")}} {{deprecated_inline}}</dt>
+ <dd>Fired when an update for the browser is available, but isn't installed immediately because a browser restart is required.</dd>
+ <dt>{{WebExtAPIRef("runtime.onConnect")}}</dt>
+ <dd>Fired when a connection is made with either an extension process or a content script.</dd>
+ <dt>{{WebExtAPIRef("runtime.onConnectExternal")}}</dt>
+ <dd>Fired when a connection is made with another extension.</dd>
+ <dt>{{WebExtAPIRef("runtime.onMessage")}}</dt>
+ <dd>Fired when a message is sent from either an extension process or a content script.</dd>
+ <dt>{{WebExtAPIRef("runtime.onMessageExternal")}}</dt>
+ <dd>Fired when a message is sent from another extension. Cannot be used in a content script.</dd>
+ <dt>{{WebExtAPIRef("runtime.onRestartRequired")}}</dt>
+ <dd>Fired when the device needs to be restarted.</dd>
+</dl>
+
+<h2 id="Browser_compatibility">Browser compatibility</h2>
+
+
+
+<p>{{Compat("webextensions.api.runtime")}}</p>
+
+<div>{{WebExtExamples("h2")}}</div>
+
+<div class="note"><strong>Acknowledgements</strong>
+
+<p>This API is based on Chromium's <a href="https://developer.chrome.com/extensions/runtime"><code>chrome.runtime</code></a> API. This documentation is derived from <a href="https://chromium.googlesource.com/chromium/src/+/master/extensions/common/api/runtime.json"><code>runtime.json</code></a> in the Chromium code.</p>
+
+<p>Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.</p>
+</div>
+
+<div class="hidden">
+<pre>// Copyright 2015 The Chromium Authors. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</pre>
+</div>
diff --git a/files/fa/mozilla/add-ons/webextensions/api/runtime/onmessage/index.html b/files/fa/mozilla/add-ons/webextensions/api/runtime/onmessage/index.html
new file mode 100644
index 0000000000..f58f2a5f8c
--- /dev/null
+++ b/files/fa/mozilla/add-ons/webextensions/api/runtime/onmessage/index.html
@@ -0,0 +1,317 @@
+---
+title: runtime.onMessage
+slug: Mozilla/Add-ons/WebExtensions/API/runtime/onMessage
+translation_of: Mozilla/Add-ons/WebExtensions/API/runtime/onMessage
+---
+<nav>
+<p>{{AddonSidebar()}}</p>
+
+<p>از این رویداد برای گوش دادن به پیام های بخش دیگری از افزونه خود استفاده کنید.</p>
+</nav>
+
+<p>برخی از موارد مورد استفاده برای مثال:</p>
+
+<ul>
+ <li>در یک content script ، برای گوش دادن به پیام های background script.</li>
+ <li>در یک background script ، برای گوش دادن به پیام های content script</li>
+ <li><strong>در یک صفحه <a href="/en-US/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Options_pages">options page</a> یا <a href="/en-US/Add-ons/WebExtensions/User_interface_components#Popups">popup</a> script</strong>, برای گوش دادن به پیام هایbackground script.</li>
+ <li><strong>در یک background script</strong>, برای گوش دادن به پیام های options page یا popup script.</li>
+</ul>
+
+<p>برای ارسال پیام که توسط <code>onMessage()</code> listener, از {{WebExtAPIRef("runtime.sendMessage()")}} یا (برای ارسال پیام به یک content script) {{WebExtAPIRef("tabs.sendMessage()")}}.</p>
+
+<div class="blockIndicator note">
+<p>از ایجاد چندین  <code>onMessage()</code> listeners برای همان نوع پیام خودداری کنید, زیرا نظم چندین listeners will fire تضمین نمی شود.</p>
+
+<p>اگر می خواهید تحویل پیام به یک نقطه پایان خاص را تضمین کنید, از روش <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_scripts#Connection-based_messaging">مبتنی بر اتصال برای پیام استفاده کنید</a>.</p>
+</div>
+
+<p>همراه با message خود, به listener منتقل می شود:</p>
+
+<ul>
+ <li>یک شیء <code>فرستنده</code> که جزئیاتی درباره فرستنده پیام می دهد.</li>
+ <li>یک تابع <code>()sendResponse</code> که می تواند برای ارسال پاسخ به فرستنده استفاده شود.</li>
+</ul>
+
+<p>شما می توانید با فراخوانی تابع <code>()sendResponse</code> در listener خود. <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/runtime/onMessage#Sending_a_synchronous_response">مثالی را ببینید</a>.</p>
+
+<p>برای ارسال  response ناهمزمان, دو گزینه وجود دارد:</p>
+
+<ul>
+ <li>رویداد listener را  <code>true</code> برگردانید. این کار باعث می شود تابع <code>()sendResponse</code> پس از بازگشت listener معتبر باشد, بنابراین میتوانید بعدأ آن را صدا بزنید. <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/runtime/onMessage#Sending_an_asynchronous_response_using_sendResponse">مثالی را ببینید</a>.</li>
+ <li>return a <code>Promise</code> from the event listener, and resolve when you have the response (or reject it in case of an error). <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/runtime/onMessage#Sending_an_asynchronous_response_using_a_Promise">See an example</a>.</li>
+</ul>
+
+<div class="warning">
+<p>بازگشت یک <code>Promise</code> در حال حاضر ترجیح داده می شود, زیرا <code>sendResponse()</code> <a href="https://github.com/mozilla/webextension-polyfill/issues/16#issuecomment-296693219">از مشخصات W3C حذف می شود</a>.</p>
+
+<p>کتابخانه محبوب <a href="https://github.com/mozilla/webextension-polyfill">webextension-polyfill</a> قبلا تابع <code>()sendResponse</code> را از اجزای آن حذف کرده است.</p>
+</div>
+
+<div class="blockIndicator note">
+<p>شما همچنین می توانید از یک روش <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_scripts#Connection-based_messaging">مبتنی بر اتصال برای تبادل پیام استفاده کنید</a>.</p>
+</div>
+
+<h2 id="Syntax">Syntax</h2>
+
+<pre class="syntaxbox brush:js">browser.runtime.onMessage.addListener(<var>listener</var>)
+browser.runtime.onMessage.removeListener(<var>listener</var>)
+browser.runtime.onMessage.hasListener(<var>listener</var>)
+</pre>
+
+<p>رویکردها سه تابع دارند:</p>
+
+<dl>
+ <dt><code>addListener(<var>listener</var>)</code></dt>
+ <dd>به این رویداد یک listener اضلفه می کند.</dd>
+ <dt><code>removeListener(<var>listener</var>)</code></dt>
+ <dd>listening به این رویداد را متوقف می کند. یک <code><var>listener</var></code> دلیلی است برای حذف listener.</dd>
+ <dt><code>hasListener(<var>listener</var>)</code></dt>
+ <dd>بررسی می کند که حداقل یک listener برای این رویداد ثبت شده باشد. اگر listening وجود داشت <code>true</code> برمیگرداند, در غیر این صورت <code>false</code> را بر میگرداند.</dd>
+</dl>
+
+<h2 id="addListener_syntax">addListener syntax</h2>
+
+<h3 id="پارامترها">پارامترها</h3>
+
+<dl>
+ <dt><code><var>listener</var></code></dt>
+ <dd>
+ <p>یک تابع برگشتی که هنگام وقوع این رویداد فراخوانی می شود. به دلایل زیر این تابع پاس داده می شود:</p>
+
+ <dl class="reference-values">
+ <dt><code><var>message</var></code></dt>
+ <dd><code>object</code>. خود پیام است. این یک شیء با قابلیت JSON-ifiable است.</dd>
+ <dt><code><var>sender</var></code></dt>
+ <dd>یک {{WebExtAPIRef('runtime.MessageSender')}} شیء به نمایندگی از فرستنده پیام.</dd>
+ <dt><code><var>sendResponse</var></code></dt>
+ <dd>
+ <p>یک تابع برای صدا زدن, حداکثر یک بار, برای ارسال پاسخ به <code><var>پیام</var></code>. این تابع یک آرگومان واحد را شامل می شود, که ممکن است هر شیء با قابلیت JSON باشد. این آرگومان به فرستنده پیام ارسال می شود.</p>
+
+ <p>اگر بیش از یک شنونده  <code>onMessage()</code> در همان سند دارید, پس فقط ممکن است یک نفر پاسخی ارسال کند.</p>
+
+ <p>برای ارسال پاسخ همزمان, قبل از بازگشت تابع listener با  <code>sendResponse()</code> تماس بگیرید.</p>
+
+ <p>برای ارسال پاسخ به صورت ناهمزمان:</p>
+
+ <ul>
+ <li>یا یک رفرنس برای آرگومان <code>()sendResponse</code> نگه دارید و  مقدار <code>true</code> را برای تابع listener برگردانید. شما می توانید پس از بازگشت تابع listener، با  <code>()sendResponse</code> تماس بگیرید.</li>
+ <li>یا یک {{jsxref("Promise")}} را از تابع listener برگردانید و  promise  را در صورت آماده بودن پاسخ حل کنید.  این یک روش ترجیحی است.</li>
+ </ul>
+ </dd>
+ </dl>
+
+ <p>تابع  <code><var>listener</var></code> می تواند مقدار Boolean یا  {{jsxref("Promise")}} را برگرداند.</p>
+
+ <div class="blockIndicator note">
+ <p><strong>مهم:</strong> با استفاده از تابع <code>async</code>  با  <code>()addListener</code> تماس نگیرید:</p>
+
+ <pre class="brush: js example-bad">// don't do this
+browser.runtime.onMessage.addListener(
+  async (data, sender) =&gt; {
+ if (data.type === 'handle_me') { return 'done'; }
+ }
+);
+</pre>
+
+ <p>این امر باعث می شود شنونده هر پیامی را که دریافت می کند, به طور موثر همه شنوندگان دیگر را از دریافت و پردازش پیام مسدود می کند.</p>
+
+ <p>اگر می خواهید رویکردی ناهمزمان داشته باشید, به جای این کار از یک  Promise استفاده کنید, مانند مثال زیر:</p>
+
+ <pre class="brush: js example-good">browser.runtime.onMessage.addListener(
+  (data, sender) =&gt; {
+ if (data.type === 'handle_me') {
+  return Promise.resolve('done');
+  }
+ }
+);
+</pre>
+ </div>
+ </dd>
+</dl>
+
+<h2 id="سازگاری_مرورگر">سازگاری مرورگر</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("webextensions.api.runtime.onMessage()")}}</p>
+
+<h2 id="Examples">Examples</h2>
+
+<h3 id="Simple_example">Simple example</h3>
+
+<p>This content script listens for click events on the web page. If the click was on a link, it messages the background page with the target URL:</p>
+
+<pre class="brush: js">// content-script.js
+
+window.addEventListener("click", notifyExtension);
+
+function notifyExtension(e) {
+ if (e.target.tagName != "A") {
+ return;
+ }
+ browser.runtime.sendMessage({"url": e.target.href});
+}
+</pre>
+
+<p>The background script listens for these messages and displays a notification using the <code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/notifications">notifications</a></code> API:</p>
+
+<pre class="brush: js">// background-script.js
+
+browser.runtime.onMessage.addListener(notify);
+
+function notify(message) {
+ browser.notifications.create({
+ "type": "basic",
+ "iconUrl": browser.extension.getURL("link.png"),
+ "title": "You clicked a link!",
+ "message": message.url
+ });
+}
+</pre>
+
+<h3 id="Sending_a_synchronous_response">Sending a synchronous response</h3>
+
+<p>This content script sends a message to the background script when the user clicks on the page. It also logs any response sent by the background script:</p>
+
+<pre class="brush: js">// content-script.js
+
+function handleResponse(message) {
+ console.log(`background script sent a response: ${message.response}`);
+}
+
+function handleError(error) {
+ console.log(`Error: ${error}`);
+}
+
+function sendMessage(e) {
+ const sending = browser.runtime.sendMessage({content: "message from the content script"});
+ sending.then(handleResponse, handleError);
+}
+
+window.addEventListener("click", sendMessage);</pre>
+
+<p>Here is a version of the corresponding background script, that sends a response synchronously, from inside in the listener:</p>
+
+<pre class="brush: js">// background-script.js
+
+function handleMessage(request, sender, sendResponse) {
+ console.log(`content script sent a message: ${request.content}`);
+ sendResponse({response: "response from background script"});
+}
+
+browser.runtime.onMessage.addListener(handleMessage);</pre>
+
+<p>And here is another version which uses {{jsxref("Promise.resolve()")}}:</p>
+
+<pre class="brush: js">// background-script.js
+
+function handleMessage(request, sender, sendResponse) {
+ console.log(`content script sent a message: ${request.content}`);
+ return Promise.resolve({response: "response from background script"});
+}
+
+browser.runtime.onMessage.addListener(handleMessage);</pre>
+
+<h3 id="Sending_an_asynchronous_response_using_sendResponse">Sending an asynchronous response using sendResponse</h3>
+
+<p>Here is an alternative version of the background script from the previous example. It sends a response asynchronously after the listener has returned. Note <code>return true;</code> in the listener: this tells the browser that you intend to use the <code>sendResponse</code> argument after the listener has returned.</p>
+
+<pre class="brush: js">// background-script.js
+
+function handleMessage(request, sender, sendResponse) {
+ console.log(`content script sent a message: ${request.content}`);
+ setTimeout(() =&gt; {
+ sendResponse({response: "async response from background script"});
+ }, 1000);
+ return true;
+}
+
+browser.runtime.onMessage.addListener(handleMessage);
+</pre>
+
+<h3 id="Sending_an_asynchronous_response_using_a_Promise">Sending an asynchronous response using a Promise</h3>
+
+<p>This content script gets the first <code>&lt;a&gt;</code> link on the page and sends a message asking if the link's location is bookmarked. It expects to get a Boolean response (<code>true</code> if the location is bookmarked, <code>false</code> otherwise):</p>
+
+<pre class="brush: js">// content-script.js
+
+const firstLink = document.querySelector("a");
+
+function handleResponse(isBookmarked) {
+ if (isBookmarked) {
+ firstLink.classList.add("bookmarked");
+ }
+}
+
+browser.runtime.sendMessage({
+ url: firstLink.href
+}).then(handleResponse);</pre>
+
+<p>Here is the background script. It uses <code>{{WebExtAPIRef("bookmarks.search()")}}</code> to see if the link is bookmarked, which returns a {{jsxref("Promise")}}:</p>
+
+<pre class="brush: js">// background-script.js
+
+function isBookmarked(message, sender, response) {
+ return browser.bookmarks.search({
+ url: message.url
+ }).then(function(results) {
+ return results.length &gt; 0;
+ });
+}
+
+browser.runtime.onMessage.addListener(isBookmarked);</pre>
+
+<p>If the asynchronous handler doesn't return a Promise, you can explicitly construct a promise. This rather contrived example sends a response after a 1-second delay, using <code><a href="/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout">Window.setTimeout()</a></code>:</p>
+
+<pre class="brush: js">// background-script.js
+
+function handleMessage(request, sender, sendResponse) {
+ return new Promise(resolve =&gt; {
+ setTimeout( () =&gt; {
+ resolve({response: "async response from background script"});
+ }, 1000);
+ });
+}
+
+browser.runtime.onMessage.addListener(handleMessage);</pre>
+
+<p>{{WebExtExamples}}</p>
+
+<div class="note"><strong>Acknowledgements</strong>
+
+<p>This API is based on Chromium's <a href="https://developer.chrome.com/extensions/runtime#event-onMessage"><code>chrome.runtime</code></a> API. This documentation is derived from <a href="https://chromium.googlesource.com/chromium/src/+/master/extensions/common/api/runtime.json"><code>runtime.json</code></a> in the Chromium code.</p>
+
+<p>Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.</p>
+</div>
+
+<div class="hidden">
+<pre class="brush: js">// Copyright 2015 The Chromium Authors. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</pre>
+</div>
diff --git a/files/fa/mozilla/add-ons/webextensions/index.html b/files/fa/mozilla/add-ons/webextensions/index.html
new file mode 100644
index 0000000000..49530e6d87
--- /dev/null
+++ b/files/fa/mozilla/add-ons/webextensions/index.html
@@ -0,0 +1,97 @@
+---
+title: WebExtensions
+slug: Mozilla/Add-ons/WebExtensions
+tags:
+ - افزونه
+ - افزونه_فایرفاکس
+ - برنامه_نویسی
+ - توسعه
+translation_of: Mozilla/Add-ons/WebExtensions
+---
+<div dir="rtl">{{AddonSidebar}}</div>
+
+<div dir="rtl"><strong>افزونه ها</strong> قادر به بسط و تغییر قابلیت یک مرورگر می باشند. افزونه ها، برای فایرفاکس، با به کارگیری </div>
+
+<div dir="rtl">وب-گستر API، که یک سیستم مرورگر-متقابل جهت توسعه افزونه هاست، ساخته می شود. برای یک گسترش بزرگ، سیستم با افزونه API یا  <a class="external-icon external" href="https://developer.chrome.com/extensions">extension API</a> مورد پشتیبانی گوگل و اوپرا و  <a href="https://browserext.github.io/browserext/">W3C Draft Community Group</a> سازگار می باشد. افزونه های نوشته شده برای این مرورگرها، اغلب بیشتر مواقع در فایرفاکس یا <a href="https://developer.microsoft.com/en-us/microsoft-edge/platform/documentation/extensions/">Microsoft Edge</a> ، تنها با اندکی تغییر، اجرا خواهند شد. همچنین این API دارای سازگاری کامل با <a href="https://developer.mozilla.org/en-US/Firefox/Multiprocess_Firefox">multiprocess Firefox</a> است.</div>
+
+<div dir="rtl">اگر شما ایده ها یا پرسش هایی داشته، یا برای رها شدن از افزونه های وراثتی، جهت به کارگیری وب-افزونه ها، نیازمند کمک باشید،می توانید در <a href="https://mail.mozilla.org/listinfo/dev-addons">dev-addons mailing list</a>  یا <a href="irc://irc.mozilla.org/webextensions">#webextensions</a> در <a href="https://wiki.mozilla.org/IRC">IRC</a> به تنیجه برسید.</div>
+
+<p dir="rtl"> </p>
+
+<div class="row topicpage-table" dir="rtl">
+<div class="section">
+<h3 id="آغاز_کار">آغاز کار</h3>
+
+<ul>
+ <li><a href="/en-US/Add-ons/WebExtensions/What_are_WebExtensions"> افزونه چیست ؟</a></li>
+ <li><a href="/en-US/Add-ons/WebExtensions/Your_first_WebExtension">اولین افزونه شما</a></li>
+ <li><a href="/en-US/Add-ons/WebExtensions/Your_second_WebExtension">دومین افزونه شما</a></li>
+ <li><a href="/en-US/Add-ons/WebExtensions/Anatomy_of_a_WebExtension">تشریح یک افزونه</a></li>
+ <li><a href="/en-US/Add-ons/WebExtensions/Examples">افزونه های نمونه </a></li>
+</ul>
+
+<h3 id="چگونه">چگونه</h3>
+
+<ul>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Intercept_HTTP_requests">جلوگیری از ترافیک HTTP</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Modify_a_web_page">تغییر محتوای وب</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Add_a_button_to_the_toolbar">اضافه کردن دکمه در منوی ابزار</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Implement_a_settings_page">پیاده سازی صفحه تنظیمات</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Interact_with_the_clipboard">کارکدن با کلیپ بورد</a></li>
+ <li><a href="/fa/docs/">دستکاری کردن برگه های مرورگر</a></li>
+ <li><a href="/fa/docs/">دسترسی و تغییر لیست علاقه مندی ها</a></li>
+ <li><a href="/fa/docs/">دسترسی و تغییر کوکی ها</a></li>
+</ul>
+
+<h3 id="مفاهیم">مفاهیم</h3>
+
+<ul>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API">بررسی اجمالی JavaScript API</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/User_interface_components">کامپوننت رابط کاربری</a></li>
+ <li><a href="/en-US/Add-ons/WebExtensions/Content_scripts">Content scripts</a></li>
+ <li><a href="/en-US/Add-ons/WebExtensions/Match_patterns">تطابق الگوها</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Internationalization">بین المللی کردن</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_Security_Policy">راهبرد امنیت محتوا</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Native_messaging">بومی سازی پیام ها</a></li>
+</ul>
+
+<h3 id="انتقال">انتقال</h3>
+
+<ul>
+ <li><a href="/en-US/Add-ons/WebExtensions/Porting_from_Google_Chrome">اتقال افزونه گوگل کروم</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Porting_a_legacy_Firefox_add-on">انتقال یک افزونه قدیمی فایرفاکس</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Embedded_WebExtensions">جا نمایی افزونه</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK">مقایسه به Add-on SDK</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Comparison_with_XUL_XPCOM_extensions">مقایسه با افزونه های XUL/XPCOM</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Chrome_incompatibilities">ناسازگاری ها با Chrome</a></li>
+</ul>
+
+<h3 id="نحوه_کار_فایرفاکس">نحوه کار فایرفاکس</h3>
+
+<ul>
+ <li><a href="/en-US/Add-ons/WebExtensions/Temporary_Installation_in_Firefox">نصب</a></li>
+ <li><a href="/en-US/Add-ons/WebExtensions/Debugging">اشکال زدایی</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">شروع کار با web-ext</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/web-ext_command_reference">منابع کامند web-ext</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/WebExtensions_and_the_Add-on_ID">WebExtensionها و آی دی Add-on</a></li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Publishing_your_WebExtension">انتشار WebExtension شما</a></li>
+</ul>
+</div>
+
+<div class="section">
+<h3 id="منابع">منابع</h3>
+
+<ul>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API">بررسی اجمالی JavaScript API</a></li>
+ <li><a href="/en-US/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs">جدول سازگاری مرورگرهای وب برای JavaScript API</a></li>
+</ul>
+
+<h4 id="JavaScript_APIs">JavaScript APIs</h4>
+
+<div class="twocolumns">{{ ListSubpages ("/en-US/Add-ons/WebExtensions/API") }}</div>
+
+<h4 id="Manifest_keys">Manifest keys</h4>
+
+<div class="twocolumns">{{ ListSubpages ("/en-US/Add-ons/WebExtensions/manifest.json") }}</div>
+</div>
+</div>
diff --git a/files/fa/mozilla/add-ons/webextensions/your_first_webextension/index.html b/files/fa/mozilla/add-ons/webextensions/your_first_webextension/index.html
new file mode 100644
index 0000000000..b3fcdaaa40
--- /dev/null
+++ b/files/fa/mozilla/add-ons/webextensions/your_first_webextension/index.html
@@ -0,0 +1,152 @@
+---
+title: اولین extension شما
+slug: Mozilla/Add-ons/WebExtensions/Your_first_WebExtension
+translation_of: Mozilla/Add-ons/WebExtensions/Your_first_WebExtension
+---
+<div>{{AddonSidebar}}</div>
+
+<p dir="rtl">در این مقاله ما از ابتدا تا انتهای ساخت یک افزونه برای فایر فاکس را با هم مرور میکنیم. این <span id="result_box" lang="fa"><span>افزونه فقط یک </span></span> border <span lang="fa"><span> قرمز را به هر صفحه ای که از «mozilla.org» یا هر کدام از زیر دامنه های آن فراخوانی شده باشد را اضافه میکند .</span></span></p>
+
+<p>منبع کد این مثال بر روی گیت هاب: <a href="https://github.com/mdn/webextensions-examples/tree/master/borderify">https://github.com/mdn/webextensions-examples/tree/master/borderify</a>.</p>
+
+<p dir="rtl">در ابتدا شما به فایرفاکس نسخه 45 یا بالاتر نیاز دارید.</p>
+
+<h2 id="نوشتن_extension">نوشتن extension</h2>
+
+<p>یک فولدر جدید ایجاد کنید و به آن بروید. به عنوان مثال ، در خط فرمان / ترمینال خود را اینگونه انجام می دهید:</p>
+
+<pre class="brush: bash">mkdir borderify
+cd borderify</pre>
+
+<h3 id="manifest.json">manifest.json</h3>
+
+<p><font>اکنون یک فایل جدید با نام "manifest.json" را مستقیماً در فولدر </font> "borderify" <font> ایجاد کنید.<span> </span>مطالب زیر را به آن بدهید:</font></p>
+
+<pre class="brush: json">{
+
+ "manifest_version": 2,
+ "name": "Borderify",
+ "version": "1.0",
+
+ "description": "Adds a red border to all webpages matching mozilla.org.",
+
+ "icons": {
+ "48": "icons/border-48.png"
+ },
+
+ "content_scripts": [
+ {
+ "matches": ["*://*.mozilla.org/*"],
+ "js": ["borderify.js"]
+ }
+ ]
+
+}</pre>
+
+<ul>
+ <li style="margin: 0px 0px 6px; padding: 0px; border: 0px;"><font><font>سه کلید اول:<span> </span></font></font><code style='margin: 0px; padding: 0px 2px; border: 0px; font-style: inherit; font-weight: inherit; background-color: rgba(220, 220, 220, 0.5); border-radius: 2px; font-family: consolas, "Liberation Mono", courier, monospace;'><a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json/manifest_version" style="margin: 0px; padding: 0px; border: 0px; color: rgb(40, 92, 118); text-decoration: none;">manifest_version</a></code><font><font>،<span> </span></font></font><code style='margin: 0px; padding: 0px 2px; border: 0px; font-style: inherit; font-weight: inherit; background-color: rgba(220, 220, 220, 0.5); border-radius: 2px; font-family: consolas, "Liberation Mono", courier, monospace;'><a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json/name" style="margin: 0px; padding: 0px; border: 0px; color: rgb(40, 92, 118); text-decoration: none;">name</a></code><font><font>، و<span> </span></font></font><code style='margin: 0px; padding: 0px 2px; border: 0px; font-style: inherit; font-weight: inherit; background-color: rgba(220, 220, 220, 0.5); border-radius: 2px; font-family: consolas, "Liberation Mono", courier, monospace;'><a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json/version" style="margin: 0px; padding: 0px; border: 0px; color: rgb(40, 92, 118); text-decoration: none;">version</a></code><font><font>، اجباری است و شامل داده های اصلی برای </font></font> extension <font><font> است.</font></font></li>
+ <li style="margin: 0px 0px 6px; padding: 0px; border: 0px;"><code style='margin: 0px; padding: 0px 2px; border: 0px; font-style: inherit; font-weight: inherit; background-color: rgba(220, 220, 220, 0.5); border-radius: 2px; font-family: consolas, "Liberation Mono", courier, monospace;'><a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json/description" style="margin: 0px; padding: 0px; border: 0px; color: rgb(40, 92, 118); text-decoration: none;">description</a></code><font><font><span> </span>اختیاری است ، اما توصیه می شود: در </font></font> Add-ons Manager <font><font> نمایش داده می شود.</font></font></li>
+ <li style="margin: 0px 0px 6px; padding: 0px; border: 0px;"><code style='margin: 0px; padding: 0px 2px; border: 0px; font-style: inherit; font-weight: inherit; background-color: rgba(220, 220, 220, 0.5); border-radius: 2px; font-family: consolas, "Liberation Mono", courier, monospace;'><a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json/icons" style="margin: 0px; padding: 0px; border: 0px; color: rgb(40, 92, 118); text-decoration: none;">icons</a></code><font><font><span> </span>اختیاری است ، اما توصیه می شود: به شما امکان می دهد یک نماد را برای </font></font> extension  <font><font>مشخص کنید ، که در </font></font> Add-ons Manager <font><font> نشان داده خواهد شد.</font></font></li>
+</ul>
+
+<p><font><font>جالب ترین نکته اینجاست که<span> </span></font></font><code><a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json/content_scripts" style="margin: 0px; padding: 0px; border: 0px; color: rgb(40, 92, 118); text-decoration: none;">content_scripts</a></code><font><font>  به Firefox می گوید یک اسکریپت را در صفحات وب بارگذاری کنید که URL آن با الگوی خاصی مطابقت دارد.<span> </span></font><font>در این حالت ، ما از Firefox می خواهیم یک اسکریپت با نام "borderify.js" را در تمام صفحات HTTP یا HTTPS که از "mozilla.org" یا هر یک از زیر دامنه های آن استفاده می شود بارگیری کند.</font></font></p>
+
+<ul>
+ <li><a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Content_scripts"><font><font>در مورد اسکریپت های محتوا بیشتر بدانید.</font></font></a></li>
+ <li><a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Match_patterns"><font><font>درباره الگوهای مطابقت بیشتر بدانید</font></font></a><font><font><span> </span>.</font></font></li>
+</ul>
+
+<div class="warning">
+<p><a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/WebExtensions_and_the_Add-on_ID#When_do_you_need_an_Add-on_ID"><font><font>در بعضی مواقع باید یک ID برای extension خود تعیین کنید</font></font></a><font><font><span> </span>.<span> </span></font><font>اگر نیاز به </font></font> add-on ID <font><font> دارید</font></font> , کلید  <code><a href="/en-US/Add-ons/WebExtensions/manifest.json/applications">برنامه ها</a></code> را در <code>manifest.json</code> قرار دهید و ویژگی <code>gecko.id</code> آن را تنظیم کنید:</p>
+
+<pre class="brush: json">"applications": {
+ "gecko": {
+ "id": "borderify@example.com"
+ }
+}</pre>
+</div>
+
+<h3 id="iconsborder-48.png">icons/border-48.png</h3>
+
+<p>extension<font> باید یک نماد داشته باشد.<span> تا در کنار لیست </span></font> extension ها در  Add-ons Manager <font> نمایش داده شود.<span> </span>manifest.json ما قول داده است كه ما در "</font> icons/border<font>-48.png" نماد داشته باشيم.</font></p>
+
+<p><font><font>فولدر </font></font>"icons" <font><font> را مستقیماً در فولدر </font></font> "borderify" <font><font> ایجاد کنید.<span> </span></font><font>نمادی را در آنجا با نام "border-48.png" ذخیره کنید.<span> </span></font><font>می توانید<span> </span></font></font><a class="external" href="https://github.com/mdn/webextensions-examples/blob/master/borderify/icons/border-48.png" rel="noopener"><font><font>از نمونه</font></font></a><font><font><span> </span>این مورد که از نماد Google Material Design طراحی شده است و تحت شرایط<span> </span></font></font><a class="external" href="https://creativecommons.org/licenses/by-sa/3.0/" rel="noopener"><font><font>مجوز Creative Commons Attribution-ShareAlike</font></font></a><font><font><span> </span>استفاده می شود استفاده کنید.</font></font></p>
+
+<p><font><font>اگر می خواهید نماد خود را تهیه کنید ، باید 48x48 پیکسل باشد.<span> </span></font><font>شما همچنین می توانید یک نماد پیکسل 96x96 را برای نمایشگرهای با وضوح بالا تهیه کنید ، و اگر این کار را انجام دهید به عنوان<span> </span></font></font><code>96</code><font><font>خاصیت<span> </span></font></font><code>icons</code> object <font><font> در manifest.json مشخص می شود:</font></font></p>
+
+<pre class="brush: json">"icons": {
+ "48": "icons/border-48.png",
+ "96": "icons/border-96.png"
+}</pre>
+
+<p><font>روش دیگر ، شما می توانید یک فایل SVG را در اینجا تهیه کنید ، و به درستی اندازه گیری می شود.<span> </span></font><font>(اگرچه: اگر از SVG استفاده می کنید و نماد شما متن را شامل می شود ، ممکن است بخواهید از ابزار "تبدیل به مسیر" ویرایشگر SVG خود برای صاف کردن متن استفاده کنید ، به طوری که با اندازه / موقعیت ثابت سازگار باشد.</font></p>
+
+<ul>
+ <li><a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json/icons"><font><font>درباره مشخص کردن نمادها بیشتر بدانید.</font></font></a></li>
+</ul>
+
+<h3 id="borderify.js">borderify.js</h3>
+
+<p><font>سرانجام ، فایلی به نام "borderify.js" را مستقیماً در فولدر "</font>borderify<font>" ایجاد کنید.<span> </span>این محتوا را به آن بدهید:</font></p>
+
+<pre class="brush: js">document.body.style.border = "5px solid red";</pre>
+
+<p><font><font>این اسکریپت در صفحات مطابقت با الگوی ارائه شده در<span> </span></font></font><code>content_scripts</code><font><font>کلید manifest.json<span> </span></font><font>بارگذاری می شود<span> </span></font><font>.<span> </span></font><font>درست مانند اسکریپت هایی که توسط خود صفحه بارگذاری شده است ، اسکریپت دسترسی مستقیم به اسناد دارد.</font></font></p>
+
+<ul>
+ <li><a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Content_scripts"><font><font>در مورد اسکریپت های محتوا بیشتر بدانید.</font></font></a></li>
+</ul>
+
+<h2 id="امتحان_کردن"><font><font>امتحان کردن</font></font></h2>
+
+<p><span>ابتدا بررسی کنید که فایل های مناسب را در فولدرهای مناسب دارید:</span></p>
+
+<pre>borderify/
+ icons/
+ border-48.png
+ borderify.js
+ manifest.json</pre>
+
+<h3 id="نصب">نصب</h3>
+
+<p> در فایرفاکس : صفحه <a href="https://wiki.developer.mozilla.org/en-US/docs/Tools/about:debugging">about:debugging</a> را باز کنید، روی "This Firefox" (در نسخه های جدیدتر فایرفاکس) کلیک کنید، روی "Load Temporary Add-on" کلیک کنید و یکی از فایل ها را از آدرس اصلی extension خود انتخاب کنید</p>
+
+<p>{{EmbedYouTube("cer9EUKegG4")}}</p>
+
+<p>extension اکنون نصب شده است و تا زمانی که فایرفاکس را مجدداً راه اندازی کنید ، باقی خواهد ماند.</p>
+
+<p><font><font>روش دیگر ، می توانید با استفاده از<span> </span></font><font>ابزار<span> </span></font></font><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext"><font><font>web-ext</font></font></a><font><font><span> </span>، پسوند را از خط فرمان اجرا<span> </span></font><font>کنید.</font></font></p>
+
+<h3 id="آزمایش_کردن">آزمایش کردن</h3>
+
+<p><span>اکنون سعی کنید از صفحهای تحت "mozilla.org" بازدید کنید</span>،  <span>و باید </span> border <span> قرمز را در صفحه مشاهده کنید:</span></p>
+
+<p>{{EmbedYouTube("rxBQl2Z9IBQ")}}</p>
+
+<div class="note">
+<p><font>هر چند آن را در addons.mozilla.org امتحان نکنید!<span> </span></font><font>اسکریپت های محتوا در حال حاضر در آن دامنه مسدود شده اند</font> .</p>
+</div>
+
+<p><font>کمی آزمایش کنید.<span> </span></font><font>اسکریپت محتوا را تغییر دهید تا رنگ حاشیه تغییر کند ، یا کاری دیگر روی محتوای صفحه انجام دهید.<span> </span>اسکریپت محتوا را ذخیره کنید ، سپس فایل های </font> extension <font> را با کلیک کردن روی دکمه </font> "Reload" <font> در </font> about:debugging <font> بارگیری مجدد کنید.<span> </span>می توانید تغییرات را بلافاصله مشاهده کنید:</font></p>
+
+<p>{{EmbedYouTube("NuajE60jfGY")}}</p>
+
+<ul>
+ <li><a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Temporary_Installation_in_Firefox"><font><font>درباره بارگیری برنامه های افزودنی بیشتر بدانید</font></font></a></li>
+</ul>
+
+<h2 id="بسته_بندی_و_انتشار"><font><font>بسته بندی و انتشار</font></font></h2>
+
+<p><font><font>برای استفاده افراد دیگر از </font></font> extension <font><font> شما ، باید آن را بسته بندی کرده و برای امضا به موزیلا ارسال کنید.<span> </span></font><font>برای کسب اطلاعات بیشتر در مورد آن ، به<span> </span></font></font> <a href="https://wiki.developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Publishing_your_WebExtension">"Publishing your extension"</a><font><font><span> </span>مراجعه کنید.</font></font></p>
+
+<h2 id="بعدی_چیست؟">بعدی چیست؟</h2>
+
+<p><span>اکنون شما یک ایده از روند توسعه یک WebExtension برای Firefox دارید ، سعی کنید:</span></p>
+
+<ul>
+ <li> <a href="https://wiki.developer.mozilla.org/en-US/Add-ons/WebExtensions/Your_second_WebExtension"><font><font>یک extension پیچیده تر بنویسید</font></font></a></li>
+ <li><a href="https://wiki.developer.mozilla.org/en-US/Add-ons/WebExtensions/Anatomy_of_a_WebExtension"><font><font>در مورد آناتومی یک extension بیشتر بخوانید</font></font></a></li>
+ <li><a href="https://wiki.developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Examples"><font><font>مثال های extension را کاوش کنید</font></font></a></li>
+ <li><a href="https://wiki.developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/What_next_"><font><font>اطلاعاتی را برای توسعه، آزمایش و انتشار extension خود بیابید.</font></font></a></li>
+ <li><a href="https://wiki.developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/What_next_#Continue_your_learning_experience">یادگیری خود را بیشتر کنید</a>.</li>
+</ul>
diff --git a/files/fa/mozilla/add-ons/webextensions/your_second_webextension/index.html b/files/fa/mozilla/add-ons/webextensions/your_second_webextension/index.html
new file mode 100644
index 0000000000..aff7ba0259
--- /dev/null
+++ b/files/fa/mozilla/add-ons/webextensions/your_second_webextension/index.html
@@ -0,0 +1,458 @@
+---
+title: اکستنشن دوم شما
+slug: Mozilla/Add-ons/WebExtensions/Your_second_WebExtension
+translation_of: Mozilla/Add-ons/WebExtensions/Your_second_WebExtension
+---
+<div>
+<p>{{AddonSidebar}}</p>
+
+<p dir="rtl">اگر شما مقاله <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Your_first_WebExtension">اولین اکستنشن خود</a> را خوانده اید، حالا ایده ای از چگونگی نوشتن یک اکستنشن به شما داده می شود. در این مقاله ما اکستنشن کمی پیچیده تری را که در ان از تعدادی از API ها استفاده شده، می نویسیم.</p>
+
+<p>The extension adds a new button to the Firefox toolbar. When the user clicks the button, we display a popup enabling them to choose an animal. Once they choose an animal, we'll replace the current page's content with a picture of the chosen animal.</p>
+
+<p>To implement this, we will:</p>
+
+<ul>
+ <li><strong>define a <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Browser_action">browser action</a>, which is a button attached to the Firefox toolbar</strong>.<br>
+ For the button we'll supply:
+ <ul>
+ <li>an icon, called "beasts-32.png"</li>
+ <li>a popup to open when the button is pressed. The popup will include HTML, CSS, and JavaScript.</li>
+ </ul>
+ </li>
+ <li><strong>define an icon for the extension</strong>, called "beasts-48.png". This will be shown in the Add-ons Manager.</li>
+ <li><strong>write a content script, "beastify.js" that will be injected into web pages</strong>.<br>
+ This is the code that will actually modify the pages.</li>
+ <li><strong>package some images of the animals, to replace images in the web page</strong>.<br>
+ We'll make the images "web accessible resources" so the web page can refer to them.</li>
+</ul>
+
+<p>You could visualise the overall structure of the extension like this:</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/13671/Untitled-1.png" style="display: block; height: 1200px; margin-left: auto; margin-right: auto; width: 860px;"></p>
+
+<p>It's a simple extension, but shows many of the basic concepts of the WebExtensions API:</p>
+
+<ul>
+ <li>adding a button to the toolbar</li>
+ <li>defining a popup panel using HTML, CSS, and JavaScript</li>
+ <li>injecting content scripts into web pages</li>
+ <li>communicating between content scripts and the rest of the extension</li>
+ <li>packaging resources with your extension that can be used by web pages</li>
+</ul>
+
+<p>You can find <a href="https://github.com/mdn/webextensions-examples/tree/master/beastify">complete source code for the extension on GitHub</a>.</p>
+
+<p>To write this extension, you'll need Firefox 45 or newer.</p>
+
+<h2 id="Writing_the_extension">Writing the extension</h2>
+
+<p>Create a new directory and navigate to it:</p>
+
+<pre class="brush: bash">mkdir beastify
+cd beastify</pre>
+
+<h3 id="manifest.json">manifest.json</h3>
+
+<p>Now create a new file called "manifest.json", and give it the following contents:</p>
+
+<pre class="brush: json">{
+
+ "manifest_version": 2,
+ "name": "Beastify",
+ "version": "1.0",
+
+ "description": "Adds a browser action icon to the toolbar. Click the button to choose a beast. The active tab's body content is then replaced with a picture of the chosen beast. See https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Examples#beastify",
+ "homepage_url": "https://github.com/mdn/webextensions-examples/tree/master/beastify",
+ "icons": {
+ "48": "icons/beasts-48.png"
+ },
+
+ "permissions": [
+ "activeTab"
+ ],
+
+ "browser_action": {
+ "default_icon": "icons/beasts-32.png",
+ "default_title": "Beastify",
+ "default_popup": "popup/choose_beast.html"
+ },
+
+ "web_accessible_resources": [
+ "beasts/frog.jpg",
+ "beasts/turtle.jpg",
+ "beasts/snake.jpg"
+ ]
+
+}
+</pre>
+
+<ul>
+ <li>The first three keys: <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/manifest_version">manifest_version</a></code>, <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/name">name</a></code>, and <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/version">version</a></code>, are mandatory and contain basic metadata for the extension.</li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/description">description</a></code> and <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/homepage_url">homepage_url</a></code> are optional, but recommended: they provide useful information about the extension.</li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/icons">icons</a></code> is optional, but recommended: it allows you to specify an icon for the extension, that will be shown in the Add-ons Manager.</li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions">permissions</a></code> lists permissions the extension needs. We're just asking for the <a href="/en-US/Add-ons/WebExtensions/manifest.json/permissions#activeTab_permission"><code>activeTab</code> permission</a> here.</li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_action">browser_action</a></code> specifies the toolbar button. We're supplying three pieces of information here:
+ <ul>
+ <li><code>default_icon</code> is mandatory, and points to the icon for the button</li>
+ <li><code>default_title</code> is optional, and will be shown in a tooltip</li>
+ <li><code>default_popup</code> is used if you want a popup to be shown when the user clicks the button. We do, so we've included this key and made it point to an HTML file included with the extension.</li>
+ </ul>
+ </li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/web_accessible_resources">web_accessible_resources</a></code> lists files that we want to make accessible to web pages. Since the extension replaces the content in the page with images we've packaged with the extension, we need to make these images accessible to the page.</li>
+</ul>
+
+<p>Note that all paths given are relative to manifest.json itself.</p>
+
+<h3 id="The_icon">The icon</h3>
+
+<p>The extension should have an icon. This will be shown next to the extension's listing in the Add-ons Manager (you can open this by visiting the URL "about:addons"). Our manifest.json promised that we would have an icon for the toolbar at "icons/beasts-48.png".</p>
+
+<p>Create the "icons" directory and save an icon there named "beasts-48.png".  You could use <a href="https://github.com/mdn/webextensions-examples/blob/master/beastify/icons/beasts-48.png">the one from our example</a>, which is taken from the <a href="https://www.iconfinder.com/iconsets/free-retina-icon-set">Aha-Soft’s Free Retina iconset</a>, and used under the terms of its <a href="http://www.aha-soft.com/free-icons/free-retina-icon-set/">license</a>.</p>
+
+<p>If you choose to supply your own icon, It should be 48x48 pixels. You could also supply a 96x96 pixel icon, for high-resolution displays, and if you do this it will be specified as the <code>96</code> property of the <code>icons</code> object in manifest.json:</p>
+
+<pre class="brush: json line-numbers language-json"><code class="language-json"><span class="key token">"icons":</span> <span class="punctuation token">{</span>
+ <span class="key token">"48":</span> <span class="string token">"icons/beasts-48.png"</span><span class="punctuation token">,</span>
+ <span class="key token">"96":</span> <span class="string token">"icons/beasts-96.png"</span>
+<span class="punctuation token">}</span></code></pre>
+
+<h3 id="The_toolbar_button">The toolbar button</h3>
+
+<p>The toolbar button also needs an icon, and our manifest.json promised that we would have an icon for the toolbar at "icons/beasts-32.png".</p>
+
+<p>Save an icon named "beasts-32.png" in the "icons" directory. You could use <a href="https://github.com/mdn/webextensions-examples/blob/master/beastify/icons/beasts-32.png">the one from our example</a>, which is taken from the <a href="http://www.iconbeast.com/free">IconBeast Lite icon set</a> and used under the terms of its <a href="http://www.iconbeast.com/faq/">license</a>.</p>
+
+<p>If you don't supply a popup, then a click event is dispatched to your extension when the user clicks the button. If you do supply a popup, the click event is not dispatched, but instead, the popup is opened. We want a popup, so let's create that next.</p>
+
+<h3 id="The_popup">The popup</h3>
+
+<p>The function of the popup is to enable the user to choose one of three beasts.</p>
+
+<p>Create a new directory called "popup" under the extension root. This is where we'll keep the code for the popup. The popup will consist of three files:</p>
+
+<ul>
+ <li><strong><code>choose_beast.html</code></strong> defines the content of the panel</li>
+ <li><strong><code>choose_beast.css</code></strong> styles the content</li>
+ <li><strong><code>choose_beast.js</code></strong> handles the user's choice by running a content script in the active tab</li>
+</ul>
+
+<pre class="brush: bash">mkdir popup
+cd popup
+touch choose_beast.html choose_beast.css choose_beast.js
+</pre>
+
+<h4 id="choose_beast.html">choose_beast.html</h4>
+
+<p>The HTML file looks like this:</p>
+
+<pre class="brush: html">&lt;!DOCTYPE html&gt;
+
+&lt;html&gt;
+ &lt;head&gt;
+ &lt;meta charset="utf-8"&gt;
+ &lt;link rel="stylesheet" href="choose_beast.css"/&gt;
+ &lt;/head&gt;
+
+&lt;body&gt;
+ &lt;div id="popup-content"&gt;
+ &lt;div class="button beast"&gt;Frog&lt;/div&gt;
+ &lt;div class="button beast"&gt;Turtle&lt;/div&gt;
+ &lt;div class="button beast"&gt;Snake&lt;/div&gt;
+ &lt;div class="button reset"&gt;Reset&lt;/div&gt;
+ &lt;/div&gt;
+ &lt;div id="error-content" class="hidden"&gt;
+ &lt;p&gt;Can't beastify this web page.&lt;/p&gt;&lt;p&gt;Try a different page.&lt;/p&gt;
+ &lt;/div&gt;
+ &lt;script src="choose_beast.js"&gt;&lt;/script&gt;
+&lt;/body&gt;
+
+&lt;/html&gt;
+</pre>
+
+<p>We have a <code><a href="/en-US/docs/Web/HTML/Element/div">&lt;div&gt;</a></code> element with an ID of <code>"popup-content"</code> that contains an element for each animal choice. We have another <code>&lt;div&gt;</code> with an ID of <code>"error-content"</code> and a class <code>"hidden"</code>. We'll use that in case there's a problem initializing the popup.</p>
+
+<p>Note that we include the CSS and JS files from this file, just like a web page.</p>
+
+<h4 id="choose_beast.css">choose_beast.css</h4>
+
+<p>The CSS fixes the size of the popup, ensures that the three choices fill the space, and gives them some basic styling. It also hides elements with <code>class="hidden"</code>: this means that our <code>"error-content"</code> <code>&lt;div&gt;</code> will be hidden by default.</p>
+
+<pre class="brush: css">html, body {
+ width: 100px;
+}
+
+.hidden {
+ display: none;
+}
+
+.button {
+ margin: 3% auto;
+ padding: 4px;
+ text-align: center;
+ font-size: 1.5em;
+ cursor: pointer;
+}
+
+.beast:hover {
+ background-color: #CFF2F2;
+}
+
+.beast {
+ background-color: #E5F2F2;
+}
+
+.reset {
+ background-color: #FBFBC9;
+}
+
+.reset:hover {
+ background-color: #EAEA9D;
+}
+
+</pre>
+
+<h4 id="choose_beast.js">choose_beast.js</h4>
+
+<p>Here's the JavaScript for the popup:</p>
+
+<pre class="brush: js">/**
+ * CSS to hide everything on the page,
+ * except for elements that have the "beastify-image" class.
+ */
+const hidePage = `body &gt; :not(.beastify-image) {
+ display: none;
+ }`;
+
+/**
+ * Listen for clicks on the buttons, and send the appropriate message to
+ * the content script in the page.
+ */
+function listenForClicks() {
+ document.addEventListener("click", (e) =&gt; {
+
+ /**
+ * Given the name of a beast, get the URL to the corresponding image.
+ */
+ function beastNameToURL(beastName) {
+ switch (beastName) {
+ case "Frog":
+ return browser.extension.getURL("beasts/frog.jpg");
+ case "Snake":
+ return browser.extension.getURL("beasts/snake.jpg");
+ case "Turtle":
+ return browser.extension.getURL("beasts/turtle.jpg");
+ }
+ }
+
+ /**
+ * Insert the page-hiding CSS into the active tab,
+ * then get the beast URL and
+ * send a "beastify" message to the content script in the active tab.
+ */
+ function beastify(tabs) {
+ browser.tabs.insertCSS({code: hidePage}).then(() =&gt; {
+ let url = beastNameToURL(e.target.textContent);
+ browser.tabs.sendMessage(tabs[0].id, {
+ command: "beastify",
+ beastURL: url
+ });
+ });
+ }
+
+ /**
+ * Remove the page-hiding CSS from the active tab,
+ * send a "reset" message to the content script in the active tab.
+ */
+ function reset(tabs) {
+ browser.tabs.removeCSS({code: hidePage}).then(() =&gt; {
+ browser.tabs.sendMessage(tabs[0].id, {
+ command: "reset",
+ });
+ });
+ }
+
+ /**
+ * Just log the error to the console.
+ */
+ function reportError(error) {
+ console.error(`Could not beastify: ${error}`);
+ }
+
+ /**
+ * Get the active tab,
+ * then call "beastify()" or "reset()" as appropriate.
+ */
+ if (e.target.classList.contains("beast")) {
+ browser.tabs.query({active: true, currentWindow: true})
+ .then(beastify)
+ .catch(reportError);
+ }
+ else if (e.target.classList.contains("reset")) {
+ browser.tabs.query({active: true, currentWindow: true})
+ .then(reset)
+ .catch(reportError);
+ }
+ });
+}
+
+/**
+ * There was an error executing the script.
+ * Display the popup's error message, and hide the normal UI.
+ */
+function reportExecuteScriptError(error) {
+ document.querySelector("#popup-content").classList.add("hidden");
+ document.querySelector("#error-content").classList.remove("hidden");
+ console.error(`Failed to execute beastify content script: ${error.message}`);
+}
+
+/**
+ * When the popup loads, inject a content script into the active tab,
+ * and add a click handler.
+ * If we couldn't inject the script, handle the error.
+ */
+browser.tabs.executeScript({file: "/content_scripts/beastify.js"})
+.then(listenForClicks)
+.catch(reportExecuteScriptError);
+
+</pre>
+
+<p>The place to start here is line 96. The popup script executes a content script in the active tab as soon as the popup is loaded, using the <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/executeScript">browser.tabs.executeScript()</a></code> API. If executing the content script is successful, then the content script will stay loaded in the page until the tab is closed or the user navigates to a different page.</p>
+
+<p>A common reason the <code>browser.tabs.executeScript()</code> call might fail is that you can't execute content scripts in all pages. For example, you can't execute them in privileged browser pages like about:debugging, and you can't execute them on pages in the <a href="https://addons.mozilla.org/">addons.mozilla.org</a> domain. If it does fail, <code>reportExecuteScriptError()</code> will hide the <code>"popup-content"</code> <code>&lt;div&gt;</code>, show the <code>"error-content"</code> <code>&lt;div&gt;</code>, and log an error to the <a href="/en-US/Add-ons/WebExtensions/Debugging">console</a>.</p>
+
+<p>If executing the content script is successful, we call <code>listenForClicks()</code>. This listens for clicks on the popup.</p>
+
+<ul>
+ <li>If the click was on a button with <code>class="beast"</code>, then we call <code>beastify()</code>.</li>
+ <li>If the click was on a button with <code>class="reset"</code>, then we call <code>reset()</code>.</li>
+</ul>
+
+<p>The <code>beastify()</code> function does three things:</p>
+
+<ul>
+ <li>map the button clicked to a URL pointing to an image of a particular beast</li>
+ <li>hide the page's whole content by injecting some CSS, using the <code><a href="/en-US/Add-ons/WebExtensions/API/tabs/insertCSS">browser.tabs.insertCSS()</a></code> API</li>
+ <li>send a "beastify" message to the content script using the <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/sendMessage">browser.tabs.sendMessage()</a></code> API, asking it to beastify the page, and passing it the URL to the beast image.</li>
+</ul>
+
+<p>The <code>reset()</code> function essentially undoes a beastify:</p>
+
+<ul>
+ <li>remove the CSS we added, using the <code><a href="/en-US/Add-ons/WebExtensions/API/tabs/removeCSS">browser.tabs.removeCSS()</a></code> API</li>
+ <li>send a "reset" message to the content script asking it to reset the page.</li>
+</ul>
+
+<h3 id="The_content_script">The content script</h3>
+
+<p>Create a new directory, under the extension root, called "content_scripts" and create a new file in it called "beastify.js", with the following contents:</p>
+
+<pre class="brush: js">(function() {
+ /**
+ * Check and set a global guard variable.
+ * If this content script is injected into the same page again,
+ * it will do nothing next time.
+ */
+ if (window.hasRun) {
+ return;
+ }
+ window.hasRun = true;
+
+ /**
+ * Given a URL to a beast image, remove all existing beasts, then
+ * create and style an IMG node pointing to
+ * that image, then insert the node into the document.
+ */
+ function insertBeast(beastURL) {
+ removeExistingBeasts();
+ let beastImage = document.createElement("img");
+ beastImage.setAttribute("src", beastURL);
+ beastImage.style.height = "100vh";
+ beastImage.className = "beastify-image";
+ document.body.appendChild(beastImage);
+ }
+
+ /**
+ * Remove every beast from the page.
+ */
+ function removeExistingBeasts() {
+ let existingBeasts = document.querySelectorAll(".beastify-image");
+ for (let beast of existingBeasts) {
+ beast.remove();
+ }
+ }
+
+ /**
+ * Listen for messages from the background script.
+ * Call "beastify()" or "reset()".
+ */
+ browser.runtime.onMessage.addListener((message) =&gt; {
+ if (message.command === "beastify") {
+ insertBeast(message.beastURL);
+ } else if (message.command === "reset") {
+ removeExistingBeasts();
+ }
+ });
+
+})();
+</pre>
+
+<p>The first thing the content script does is to check for a global variable <code>window.hasRun</code>: if it's set the script returns early, otherwise it sets <code>window.hasRun</code> and continues. The reason we do this is that every time the user opens the popup, the popup executes a content script in the active tab, so we could have multiple instances of the script running in a single tab. If this happens, we need to make sure that only the first instance is actually going to do anything.</p>
+
+<p>After that, the place to start is line 40, where the content script listens for messages from the popup, using the <code><a href="/en-US/Add-ons/WebExtensions/API/runtime/onMessage">browser.runtime.onMessage</a></code> API. We saw above that the popup script can send two different sorts of messages: "beastify" and "reset".</p>
+
+<ul>
+ <li>if the message is "beastify", we expect it to contain a URL pointing to a beast image. We remove any beasts that might have been added by previous "beastify" calls, then construct and append an <code><a href="/en-US/docs/Web/HTML/Element/img">&lt;img&gt;</a></code> element whose <code>src</code> attribute is set to the beast URL.</li>
+ <li>if the message is "reset", we just remove any beasts that might have been added.</li>
+</ul>
+
+<h3 id="The_beasts">The beasts</h3>
+
+<p>Finally, we need to include the images of the beasts.</p>
+
+<p>Create a new directory called "beasts", and add the three images in that directory, with the appropriate names. You can get the images from <a href="https://github.com/mdn/webextensions-examples/tree/master/beastify/beasts">the GitHub repository</a>, or from here:</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/11459/frog.jpg" style="display: inline-block; height: 200px; margin: 20px; width: 200px;"><img alt="" src="https://mdn.mozillademos.org/files/11461/snake.jpg" style="display: inline-block; height: 200px; margin: 20px; width: 200px;"><img alt="" src="https://mdn.mozillademos.org/files/11463/turtle.jpg" style="display: inline-block; height: 200px; margin: 20px; width: 200px;"></p>
+
+<h2 id="Testing_it_out">Testing it out</h2>
+
+<p>First, double check that you have the right files in the right places:</p>
+
+<pre>beastify/
+
+ beasts/
+ frog.jpg
+ snake.jpg
+ turtle.jpg
+
+ content_scripts/
+ beastify.js
+
+ icons/
+ beasts-32.png
+ beasts-48.png
+
+ popup/
+ choose_beast.css
+ choose_beast.html
+ choose_beast.js
+
+ manifest.json</pre>
+
+<p>Starting in Firefox 45, you can install extensions temporarily from disk.</p>
+
+<p>Open "about:debugging" in Firefox, click "Load Temporary Add-on", and select your manifest.json file. You should then see the extension's icon appear in the Firefox toolbar:</p>
+
+<p>{{EmbedYouTube("sAM78GU4P34")}}</p>
+
+<p>Open a web page, then click the icon, select a beast, and see the web page change:</p>
+
+<p>{{EmbedYouTube("YMQXyAQSiE8")}}</p>
+
+<h2 id="Developing_from_the_command_line">Developing from the command line</h2>
+
+<p>You can automate the temporary installation step by using the <a href="/en-US/Add-ons/WebExtensions/Getting_started_with_web-ext">web-ext</a> tool. Try this:</p>
+
+<pre class="brush: bash">cd beastify
+web-ext run</pre>
+</div>
diff --git a/files/fa/mozilla/connect/index.html b/files/fa/mozilla/connect/index.html
new file mode 100644
index 0000000000..e91eddc039
--- /dev/null
+++ b/files/fa/mozilla/connect/index.html
@@ -0,0 +1,98 @@
+---
+title: Connect with Mozilla
+slug: Mozilla/Connect
+translation_of: Mozilla/Connect
+---
+<div class="summary">
+<p><span class="seoSummary">Enable, inspire and collaborate to make the Web the primary platform used to create experiences across all connected devices.</span></p>
+</div>
+
+
+<div>
+<div class="column-container dev-program-callouts dev-program-block dev-program-first dev-program-column-wrapper">
+<div class="dev-program-callout">
+<div class="callout-link-container">
+<h2 id="Hacks_blog">Hacks blog</h2>
+
+<p>A key resource for people developing for the Open Web, the Mozilla Hacks blog offers news and discussion of the latest in Web technologies and browser features.</p>
+
+<div class="callout-link-wrapper"><a class="callout-link ignore-external" href="https://hacks.mozilla.org/" style="white-space: normal;">Read it now </a></div>
+</div>
+</div>
+
+<div class="dev-program-callout">
+<div class="callout-link-container">
+<h2 id="Help_QA">Help Q&amp;A</h2>
+
+<p>Discuss the Web and Web apps on Stack Overflow, where you can exchange ideas with other Web developers.<br>
+ <span class="smaller"><strong>{{anch("Developer discussions", "Search the Q&amp;A below")}}</strong></span></p>
+
+<div class="callout-link-wrapper"><a class="callout-link ignore-external" href="http://stackoverflow.com/r/mozilla" style="white-space: normal;">Mozilla Q&amp;A on Stack Overflow </a></div>
+</div>
+</div>
+
+<div class="dev-program-callout">
+<div class="callout-link-container">
+<h2 id="Join_MDN">Join MDN</h2>
+
+<p>Sign up for MDN! You will able to <a href="/en-US/docs/MDN/Contribute">edit the documentation</a> here, create a profile to show off your work, and get access to features over time as we roll them out.</p>
+
+<div class="callout-link-wrapper"><a class="callout-link" href="/profile/edit" style="white-space: normal;">Join or log in </a></div>
+</div>
+</div>
+</div>
+
+<div class="dev-program-explanation dev-program-block">
+<h2 id="Connect_with_Mozilla">Connect with Mozilla</h2>
+
+<p>Developers are creating the future by building services and apps for people all over the world. The goal of Mozilla Developer Relations is to help developers to use open and standardized web technologies to succeed in achieving their goals. In addition to the documentation here on MDN, we offer help and other resources towards this goal, through various channels. We invite you to connect, learn, and share your own knowledge.</p>
+
+<p>We are offering help through Q&amp;A on Stack Overflow, to solve specific technical issues and challenges you might have. We also have a newsletter keeping you informed on the latest happenings in the web scene around web apps and more. <a href="https://marketplace.firefox.com/developers/#newsletter-signup">Subscribe to the Apps &amp; Hacks newsletter.</a></p>
+
+<p>If you share Mozilla's <a href="https://www.mozilla.org/en-US/mission/">mission</a> and <a href="https://www.mozilla.org/en-US/about/manifesto/">principles</a>, and want to help spread them to more developers, check out the ways you can <a href="https://wiki.mozilla.org/Engagement/Developer_Engagement/Technical_Evangelism/Get_Involved">get involved with technical evangelism</a>, and join our <a href="https://lists.mozilla.org/listinfo/evangelism">evangelism discussion group</a>.</p>
+
+<p>We have a lot of plans and ideas for iteratively expanding our Developer Relations offerings, and we want you involved as we do so! So, <a href="http://stackoverflow.com/r/mozilla">follow the tags on Stack Overflow</a>, <a href="https://hacks.mozilla.org/">subscribe to the Hacks blog</a>, <a href="https://marketplace.firefox.com/developers/#newsletter-signup">subscribe to the newsletter, </a>and <a href="/profile/edit">sign up for an account</a>!</p>
+</div>
+
+<div class="column-container dev-program-block">
+<div class="column-half" id="Developer_discussions">
+<h2 id="QA_on_Stack_Overflow_See_all_QA...">Q&amp;A on Stack Overflow <a class="heading-link" href="http://stackoverflow.com/r/mozilla">See all Q&amp;A...</a></h2>
+
+<p>We have Q&amp;A to discuss challenges and issues when developing, in particular for Firefox OS and the Open Web on mobile. It's available on Stack Overflow under the easy URL <a href="http://stackoverflow.com/r/mozilla">http://stackoverflow.com/r/mozilla</a>.</p>
+
+
+<div class="stack-form">Stack form</div>
+
+<h3 id="Latest_QA_Topics">Latest Q&amp;A Topics</h3>
+</div>
+
+<div class="column-half dev-program-hacks dev-program-block"> </div>
+</div>
+
+<p class="dev-program-block"><img alt="Developers at a Firefox OS workshop in Madrid." src="https://mdn.mozillademos.org/files/7479/PhonesUp.jpg" style="display: block; height: 359px; margin: 0px auto; max-width: 100%; width: 720px;"></p>
+
+<div class="column-container dev-program-block">
+<div class="column-7 dev-program-events">
+<h2 id="Where_is_Mozilla_View_attendees_and_details_on_our_Events_page...">Where is Mozilla? <a class="heading-link" href="https://developer.mozilla.org/en/events">View attendees and details on our Events page... </a></h2>
+
+<p>Here is a listing of events where Mozilla representatives will be speaking. Make sure to talk to them!</p>
+</div>
+
+<div class="column-5">
+<h2 id="Other_resources">Other resources</h2>
+
+<ul class="no-bullets">
+ <li><a href="http://www.youtube.com/user/mozhacks">Mozilla Hacks on YouTube</a>
+
+ <ul>
+ <li><a href="http://www.youtube.com/playlist?list=PLo3w8EB99pqIHIUUv08hBCHq1OgPKhdo0">Firefox OS videos</a></li>
+ <li><a href="http://www.youtube.com/playlist?list=PLo3w8EB99pqLZNY22xKbTEzMfYo9PXAlm">Firefox Developer Tools videos</a></li>
+ </ul>
+ </li>
+ <li><a href="https://twitter.com/mozhacks">@mozhacks on Twitter</a></li>
+</ul>
+</div>
+</div>
+</div>
+
+<p> </p>
diff --git a/files/fa/mozilla/developer_guide/index.html b/files/fa/mozilla/developer_guide/index.html
new file mode 100644
index 0000000000..48b6819bdf
--- /dev/null
+++ b/files/fa/mozilla/developer_guide/index.html
@@ -0,0 +1,95 @@
+---
+title: Developer guide
+slug: Mozilla/Developer_guide
+tags:
+ - Developing Mozilla
+ - Landing
+ - Mozilla
+ - NeedsTranslation
+ - TopicStub
+translation_of: Mozilla/Developer_guide
+---
+<p><span class="seoSummary">راه های فراوانی برای همکاری در پروژه موزیلا وجود دارد: کد نویسی, آزمایش, بهبود روند ساخت موزیلا و ابزارها, یا کمک کردن در بهبود مستندسازی ها. </span>این راهنما اطلاعاتی را ارائه می دهد که نه فقط به شما در شروع برای همکاری با موزیلا کمک می کند بلکه ، می تواند می توانید این را به عنوان مرجعی برای مراجعات بعدی استفاده کنید حتی برای شما که با تجربه هستید.</p>
+
+<div class="row topicpage-table">
+<div class="section">
+<h2 class="Documentation" id="عنوان_های_مستند_سازی">عنوان های مستند سازی</h2>
+
+<dl>
+ <dt><a href="/en-US/docs/Introduction" title="Introduction">شروع به کار</a></dt>
+ <dd>راهنمای قدم به قدم مبتدیان برای همکاری با موزیلا.</dd>
+</dl>
+
+<dl>
+ <dt><a class="internal" href="/en-US/docs/Developer_Guide/Source_Code" title="en-US/docs/Developer_Guide/Source_Code">کار کردن با کد های موزیلا</a></dt>
+ <dd>راهنمای کد ها, چگونگی دریافت کد ها,و راهنمایی کد نویسی استاندارد.</dd>
+ <dt><a class="internal" href="/en-US/docs/Developer_Guide/Build_Instructions" title="en-US/docs/Developer_Guide/Build_Instructions">سازو کار ساختن</a></dt>
+ <dd>چگونگی ساخت برنامه برای فایرفاکس ، تاندربرد ، سی مانکی و بقیه برنامه ها.</dd>
+ <dt><a href="/en-US/docs/Developer_Guide/Development_process_overview" title="en-US/docs/Developer Guide/Development process overview">بازبینی روند توسعه</a></dt>
+ <dd>بازبینی از روند کلی توسعه کد موزیلا.</dd>
+ <dt><a href="/en-US/docs/Mozilla/Multiple_Firefox_Profiles" title="en-US/docs/Mozilla/Multiple_Firefox_Profiles">مدیریت چند پروفایلی</a></dt>
+ <dd>هنگام کار کردن با نسخه های غیر رسمی فایرفاکس, این بسیار سود مند است که چند پروفایل داشته باشید., مانند اینکه یکی برای کارهای معمولی و دیگری برای تست برنامه ها.</dd>
+ <dt><a class="internal" href="/en-US/docs/Mozilla_automated_testing" title="en-US/docs/Mozilla automated testing">تست اتوماتیک</a></dt>
+ <dd>چگونگی اجرای تست ها اتوماتیک موزیلا, و چگونگی نوشتن تست های جدید.</dd>
+ <dt><a class="internal" href="/en-US/docs/Developer_Guide/How_to_Submit_a_Patch" title="en-US/docs/Getting your patch in the tree">چگونگی ارائه کردن پیوست بهبود</a></dt>
+ <dd>بعد از نوشتن پیوست خود,شما نیاز دارید تا پیوست را ارسال کنید. این مقاله روند بازبینی و چگونگی تایید را شرح می دهد.</dd>
+ <dt><a href="/en-US/docs/Developer_Guide/Getting_documentation_updated" title="en-US/docs/Developer_Guide/Getting documentation updated">Getting documentation updated</a></dt>
+ <dd>How to ensure that documentation is kept up to date as you develop.</dd>
+ <dt><a class="internal" href="/en-US/docs/Mozilla_Modules_and_Module_Ownership" title="en-US/docs/Mozilla Modules and Module Ownership">Mozilla modules and module ownership</a></dt>
+ <dd>This article provides information about Mozilla's modules, what the role of a module owner is, and how module owners are selected.</dd>
+ <dt><a class="internal" href="/en-US/docs/Code_snippets" title="en-US/docs/Code_snippets">Code snippets</a></dt>
+ <dd>Useful code samples for a wide variety of things you might need to figure out how to do.</dd>
+ <dt><a class="internal" href="/en-US/docs/Mozilla_Development_Strategies" title="en-US/docs/Mozilla Development Strategies">Mozilla development strategies</a></dt>
+ <dd>Tips for how to make the most of your time working on the Mozilla project.</dd>
+ <dt><a class="internal" href="/en-US/docs/Debugging" title="en-US/docs/Debugging">Debugging</a></dt>
+ <dd>Find helpful tips and guides for debugging Mozilla code.</dd>
+ <dt><a href="/en-US/docs/Performance" title="en-US/docs/Performance">Performance</a></dt>
+ <dd>Performance guides and utilities to help you make your code perform well (and to play nicely with others).</dd>
+ <dt><a class="internal" href="/en-US/docs/The_Mozilla_platform" title="en-US/docs/The Mozilla platform">The Mozilla platform</a></dt>
+ <dd>Information about the workings of the Mozilla platform.</dd>
+ <dt><a href="/en-US/docs/Developer_Guide/Adding_APIs_to_the_navigator_object" title="en-US/docs/Developer_Guide/Adding_APIs_to_the_navigator_object">Adding APIs to the navigator object</a> {{ gecko_minversion_inline("9.0") }}</dt>
+ <dd>How to augment the {{ domxref("window.navigator") }} object with additional APIs.</dd>
+ <dt><a href="/en-US/docs/Developer_Guide/Interface_Compatibility" title="en-US/docs/Developer Guide/Interface Compatibility">Interface Compatibility</a></dt>
+ <dd>Guidelines for modifying scriptable and binary APIs in Mozilla.</dd>
+ <dt><a href="/en-US/docs/Developer_Guide/Customizing_Firefox" title="en-US/docs/Developer Guide/Customizing Firefox">Customizing Firefox</a></dt>
+ <dd>Information about creating customized versions of Firefox.</dd>
+ <dt><a href="/en-US/docs/Developer_Guide/Virtual_ARM_Linux_environment" title="Virtual ARM Linux environment">Virtual ARM Linux environment</a></dt>
+ <dd>How to set up an ARM emulator running Linux for testing ARM-specific, but not necessarily platform-specific, code. Useful for mobile developers.</dd>
+ <dt><a href="/en-US/docs/Introduction/Obsolete_Build_Caveats_and_Tips" title="Obsolete Build Caveats and Tips">Obsolete Build Caveats and Tips</a></dt>
+ <dd>A place to put build tips which are no longer relevant to building the latest version of the code from main but are relevant when building old codebases.</dd>
+</dl>
+</div>
+
+<div class="section">
+<h2 class="Tools" id="Tools">Tools</h2>
+
+<dl>
+ <dt><a class="link-https" href="https://bugzilla.mozilla.org/" title="https://bugzilla.mozilla.org/">Bugzilla</a></dt>
+ <dd>The <a class="internal" href="/en-US/docs/Bugzilla" title="en-US/docs/Bugzilla">Bugzilla</a> database used to track issues for Mozilla projects.</dd>
+ <dt><a class="external" href="http://mxr.mozilla.org/" title="http://mxr.mozilla.org/">MXR</a></dt>
+ <dd>Browse and search the Mozilla source code repository on the Web.</dd>
+ <dt><a href="http://dxr.mozilla.org/">DXR</a></dt>
+ <dd>Next generation of searching Mozilla's source code. In active development.</dd>
+ <dt><a class="external" href="http://bonsai.mozilla.org/cvsqueryform.cgi" title="http://bonsai.mozilla.org/cvsqueryform.cgi">Bonsai</a></dt>
+ <dd>The <a class="internal" href="/en-US/docs/Bonsai" title="en-US/docs/Bonsai">Bonsai</a> tool lets you find out who changed what file in the repository, and when they did it.</dd>
+ <dt><a class="internal" href="/en-US/docs/Mercurial" title="en-US/docs/Mercurial">Mercurial</a></dt>
+ <dd>The distributed version-control system used to manage Mozilla's source code.</dd>
+ <dt><a class="external" href="https://tbpl.mozilla.org/" title="http://tinderbox.mozilla.org/showbuilds.cgi">TBPL (Tinderbox Push Log)</a></dt>
+ <dd><span class="internal">Tinderbox Push Log</span> shows the status of the tree (whether or not it currently builds successfully).  Check this before checking in and out, to be sure you're working with a working tree.</dd>
+ <dt><a class="internal" href="/en-US/docs/Crash_reporting" title="en-US/docs/Crash reporting">Crash tracking</a></dt>
+ <dd>Information about the <a class="link-https" href="https://crash-reports.mozilla.com/reports" title="https://crash-reports.mozilla.com/reports">Socorro</a> crash reporting system.</dd>
+ <dt><span class="external">Performance tracking: <a href="https://datazilla.mozilla.org/">Datazilla</a> and <a href="http://graphs.mozilla.org/">Graphs</a></span></dt>
+ <dd>See performance information for Mozilla projects.</dd>
+ <dt><a href="/en-US/docs/Developer_Guide/Callgraph" title="en-US/docs/Developing Mozilla/Callgraph">Callgraph</a></dt>
+ <dd>A tool to help perform static analysis of the Mozilla code by generating callgraphs automatically.</dd>
+ <dt><a class="external" href="http://www.mozilla.org/community/developer-forums.html" title="http://www.mozilla.org/community/developer-forums.html">Developer forums</a></dt>
+ <dd>A topic-specific list of discussion forums where you can talk about Mozilla development issues.</dd>
+ <dt><a class="external" href="http://www.codefirefox.com/cheatsheet/" title="http://www.brianbondy.com/mozilla/cheatsheet/">Mozilla Platform Development Cheat Sheet</a></dt>
+ <dd>Brian Bondy's list of frequently referenced information for platform developers.</dd>
+ <dt><a class="external" href="http://www.codefirefox.com/videos/" title="http://www.brianbondy.com/mozilla/cheatsheet/">Firefox development video tutorials</a></dt>
+ <dd>Brian Bondy's video tutorials on Firefox development.</dd>
+</dl>
+</div>
+</div>
+
+<p> </p>
diff --git a/files/fa/mozilla/developer_guide/source_code/index.html b/files/fa/mozilla/developer_guide/source_code/index.html
new file mode 100644
index 0000000000..62d7439273
--- /dev/null
+++ b/files/fa/mozilla/developer_guide/source_code/index.html
@@ -0,0 +1,54 @@
+---
+title: Working with Mozilla source code
+slug: Mozilla/Developer_guide/Source_Code
+tags:
+ - Developing Mozilla
+ - NeedsTranslation
+ - TopicStub
+translation_of: Mozilla/Developer_guide/Source_Code
+---
+<p style="direction: rtl;">مقالات زیر به شما چگونگی هدایت و استفاده از کد ها و چگونگی تغییر در کدها بر اساس نیاز خود را یاد می دهند.</p>
+
+<table style="direction: rtl; text-align: right !important;">
+ <tbody>
+ <tr>
+ <td colspan="2">
+ <h2 dir="ltr" id="موضوعات_مستندات" style="text-align: right;">موضوعات مستندات</h2>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top; text-align: right;">
+ <dl>
+ <dt><a class="internal" href="/En/Developer_Guide/Source_Code/Mercurial" title="En/Mozilla Source Code (Mercurial)">Getting the code from the Mercurial repository</a></dt>
+ <dd>If you plan to contribute to the Mozilla project, the best way to get the code is to check it out from the version control repository.  Learn how to do that here.</dd>
+ <dt><a class="internal" href="/En/Developer_Guide/Source_Code/Downloading_Source_Archives" title="En/Mozilla Source Code (HTTP//FTP)">د</a>انلود کد ها با استفاده از HTTP یا FTP</dt>
+ <dd>If you want to fetch the code for a specific release of a particular Mozilla product, you may prefer to download a source code archive.</dd>
+ <dt><a class="internal" href="/en/Viewing_and_searching_Mozilla_source_code_online" title="En/Viewing and searching Mozilla source code online">Viewing and searching Mozilla source code online</a></dt>
+ <dd>Learn how to use MXR, Mozilla's online search and browsing tool for accessing the source code.  This isn't a good way to download the code, but is a great way to search it.</dd>
+ <dt><a class="internal" href="/en/Mozilla_Source_Code_Directory_Structure" title="en/Mozilla Source Code Directory Structure">Navigating the Mozilla source code</a></dt>
+ <dd>Learn about the various folders in the Mozilla source tree, and how to find what you're looking for.</dd>
+ <dt><a class="external" href="/en/Introduction#Find_a_bug_we%27ve_identified_as_being_good_for_newcomers" title="/en/Introduction#Find_a_bug_we%27ve_identified_as_being_good_for_newcomers">Bugs for newcomers</a></dt>
+ <dd>If you are new to the project and want something to work on, look here.</dd>
+ </dl>
+ </td>
+ <td style="vertical-align: top; text-align: right;">
+ <dl>
+ <dt><a class="internal" href="/En/Developer_Guide/Coding_Style" title="En/Mozilla Coding Style Guide">Mozilla Coding Style Guide</a></dt>
+ <dd>The code style guide provides information about how you should format your source code to ensure that you don't get mocked by the reviewers.</dd>
+ <dt style="direction: rtl;">راهنمای توسعه رابط</dt>
+ <dd>Guidelines and documentation for how to create and update XPCOM interfaces.</dd>
+ <dt><a class="link-https" href="https://wiki.mozilla.org/Build:TryServer" title="https://wiki.mozilla.org/Build:TryServer">Try Servers</a></dt>
+ <dd>Mozilla products build on at least three platforms. If you don't have access to them all, you can use the try servers to test your patches and make sure the tests pass.</dd>
+ <dt><a class="internal" href="/en/Creating_a_patch" title="En/Creating a patch">Creating a patch</a></dt>
+ <dd>Once you've made a change to the Mozilla code, the next step (after making sure it works) is to create a patch and submit it for review. <em>This article needs to be updated fully for Mercurial.</em></dd>
+ <dt><a class="external" href="http://www.mozilla.org/hacking/committer/" title="http://www.mozilla.org/hacking/committer/">Getting commit access to the source code</a></dt>
+ <dd>Feel ready to join the few, the proud, the committers?  Find out how to get check-in access to the Mozilla code.</dd>
+ <dt><a class="internal" href="/En/Developer_Guide/Source_Code/CVS" title="En/Mozilla Source Code (CVS)">د</a>ریافت کد های قدیمی تر موزیلا از CVS</dt>
+ <dd>Older versions of the Mozilla source code, as well as the current versions of NSS and NSPR, are kept in a CVS repository.  Learn about that in this article.</dd>
+ </dl>
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+<p>{{ languages( { "de": "de/Entwicklerhandbuch/Quelltexte", "ja": "ja/Developer_Guide/Source_Code", "pt": "pt/Developer_Guide/Codigo_Fonte" } ) }}</p>
diff --git a/files/fa/mozilla/firefox/index.html b/files/fa/mozilla/firefox/index.html
new file mode 100644
index 0000000000..bda8e2d389
--- /dev/null
+++ b/files/fa/mozilla/firefox/index.html
@@ -0,0 +1,47 @@
+---
+title: فایرفاکس
+slug: Mozilla/Firefox
+translation_of: Mozilla/Firefox
+---
+<div>{{FirefoxSidebar}}</div>
+
+<p dir="rtl"><a href="http://www.mozilla.org/en-US/firefox/">فایرفاکس</a> مرورگر وب معروف موزیلا است، برای چندین پلت فرم شامل ویندوز، مک او اس ایکس، و لینوکس برروی میزکار و دستگاه‌های سیار اندروید قابل دسترس است. با سازگاری زیاد، تکنولوژی‌های آینده وب، ابزارهای توسعه قدرت‌مند، فایرفاکس بهترین انتخاب برای هم توسعه دهندگان و هم کاربران نهایی خواهد بود.</p>
+
+<p dir="rtl">فایرفاکس یک پروژه متن باز است؛ بیشترکدها از سوی داوطلبان کمیته‌های بزرگ ما کمک شده است. شما در اینجا در مورد چگونگی شرکت در پروژه فایرفاکس یاد خواهید گرفت و همچنین پیوندهایی در مورد نحوه ساختن افزونه‌ها برای فایرفاکس، استفاده از ابزارهای توسعه در فایرفاکس، و دیگر کارها را خواهید یافت.</p>
+
+<div class="summary" dir="rtl">
+<p>یادبگیرید چگونه یک افزونه برای <a href="http://www.mozilla.org/en-US/firefox/">فایرفاکس</a> بسازید، چگونه فایرفاکس خود را بسازید و توسعه دهید، و ارتباط داخلی فایرفاکس با زیرپروژه‌های آن چگونه کار می‌کند.</p>
+</div>
+
+<ul class="card-grid" dir="rtl">
+ <li><span>نکات انتشار توسعه‌دهنده</span>
+
+ <p><a href="/en-US/Firefox/Releases">نکات انتشار متمرکز شده برروی توسعه دهنده</a>؛ یادبگیرید چه قابلیت‌های جدیدی در هر نسخه فایرفاکس برای افزونه‌ها و وب سایت‌ها ارایه شده است.</p>
+ </li>
+ <li><span>مستندات پروژه</span>
+ <p>دریافت اطلاعات دقیق در مورد <a href="/en-US/docs/Mozilla">باطن فایرفاکس</a> و ساخت سیستم آن، بنابراین شما راه خود را در کد پیدا خواهید کرد.</p>
+ </li>
+ <li><span>راهنمای توسعه</span>
+ <p><a href="/en-US/docs/Developer_Guide">راهنمای توسعه</a> ما جزئیاتی در مورد این‌که چطور کد منبع فایرفاکس را تهیه و کامپایل کنید فراهم می‌کند، چگونه راه خود را پیدا کنید، و چگونه در پروژه شرکت کنید.</p>
+ </li>
+</ul>
+
+<p dir="rtl">فایرفاکس در چهار <strong>کانال </strong>قابل دسترس است. کانال انتشار برای استفاده روزانه؛ نسخه‌ی استفاده شده توسط میلیون‌ها نفر در کل جهان. کانال‌های دیگر برای استفاده توسط تست کننده‌ها، قبول کنندگان آینده، و علاقه‌مندان جدی است.</p>
+
+<ul class="card-grid" dir="rtl">
+ <li class="download-box"><span>Firefox Nightly</span>
+
+ <p>Nightly builds of Firefox for testing purposes only.</p>
+ <a class="download-button external ignore-external" href="http://nightly.mozilla.org/" rel="noopener">Download Nightly</a></li>
+ <li class="download-box"><span>Firefox Aurora</span>
+ <p>The newest innovations in an experimental environment.</p>
+ <a class="download-button external ignore-external" href="http://www.mozilla.org/en-US/firefox/channel/#aurora" rel="noopener">Download Aurora</a></li>
+ <li class="download-box"><span>Firefox Beta</span>
+ <p>The latest features in a more stable environment.</p>
+ <a class="download-button external ignore-external" href="http://www.mozilla.org/en-US/firefox/channel/#beta" rel="noopener">Download Beta</a></li>
+ <li class="download-box"><span>Firefox</span>
+ <p>Tried, tested, and used by millions around the world.</p>
+ <a class="download-button external ignore-external" href="http://www.mozilla.org/en-US/firefox/channel/#firefox" rel="noopener">Download Firefox</a></li>
+</ul>
+
+<p dir="rtl"></p>
diff --git a/files/fa/mozilla/firefox_for_android/index.html b/files/fa/mozilla/firefox_for_android/index.html
new file mode 100644
index 0000000000..2cf583fac0
--- /dev/null
+++ b/files/fa/mozilla/firefox_for_android/index.html
@@ -0,0 +1,62 @@
+---
+title: Firefox for Android
+slug: Mozilla/Firefox_for_Android
+translation_of: Mozilla/Firefox_for_Android
+---
+<p>For more and more people mobile devices are the primary way, or even the only way, to access the Web.<a class="link-https" href="https://www.mozilla.org/en-US/mobile/"> Firefox for Android</a> (codenamed Fennec) is an open, hackable, standards-based browser, just like the desktop Firefox.</p>
+
+<p>Firefox for Android constructs its user interface from native Android widgets instead of XUL: this greatly improves performance, especially startup time, and memory consumption.</p>
+
+<h2 id="Contribute_to_Firefox_for_Android">Contribute to Firefox for Android</h2>
+
+<p>The main starting point for information about the Firefox for Android project itself is the project <a class="link-https" href="https://wiki.mozilla.org/Mobile/Get_Involved">"Get Involved" page</a>.</p>
+
+<p>You can help us to create and improve Firefox for Android:</p>
+
+<ul>
+ <li>Help us with <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_for_Android/Compatibility_Testing" title="https://developer-new.mozilla.org/en-US/docs/Mozilla/Firefox_for_Android/Compatibility_Testing">compatibility testing</a></li>
+ <li>Subscribe to the <a href="https://mail.mozilla.org/listinfo/mobile-firefox-dev">mobile-firefox-dev mailing list</a></li>
+ <li>Contact the team over <a class="link-irc" href="irc://irc.mozilla.org/#mobile">IRC</a></li>
+ <li>Join in our <a class="link-https" href="https://wiki.mozilla.org/Mobile/Notes">Wednesday development meeting</a></li>
+ <li>Keep up to date with project news on <a class="external" href="http://planet.firefox.com/mobile/">Planet Firefox Mobile</a>, <a href="http://fennecnightly.tumblr.com/">Tumblr</a> and <a class="link-https" href="https://twitter.com/FennecNightly" title="https://twitter.com/#!/mozmobile">Twitter</a></li>
+ <li><a href="https://wiki.mozilla.org/Mobile/Fennec/Android" title="https://wiki.mozilla.org/Mobile/Fennec/Android">Build and hack on Firefox for Android</a> (Fennec)</li>
+</ul>
+
+<h2 id="Develop_for_the_mobile_web">Develop for the mobile web</h2>
+
+<p>We've started putting together a guide to <a href="/En/Mobile" title="En/Mobile">designing web sites for mobile devices</a>.</p>
+
+<p>With Firefox for Android, you've got access a number of APIs that expose the underlying capabilities of the device, closing the gap between the Web and native applications:</p>
+
+<ul>
+ <li><a class="external" href="http://hacks.mozilla.org/2012/02/using-the-battery-api-part-of-webapi/" title="http://hacks.mozilla.org/2012/02/using-the-battery-api-part-of-webapi/">Battery</a></li>
+ <li><a href="/en/DOM/Using_the_Camera_API" title="Using the Camera API">Camera</a></li>
+ <li><a href="/en/API/WebTelephony/Introduction_to_WebTelephony" title="Introduction to WebTelephony">WebTelephony</a></li>
+ <li><a href="/en/API/WebSMS/Introduction_to_WebSMS" title="Introduction to WebSMS">WebSMS</a></li>
+ <li><a href="/En/Using_geolocation" title="Using geolocation">Geolocation</a></li>
+ <li><a href="/en/Detecting_device_orientation" title="https://developer.mozilla.org/en/detecting_device_orientation">Orientation</a></li>
+ <li><a href="/en/WebAPI/Web_Activities" title="Web Activities">Web Activities</a></li>
+</ul>
+
+<p>To test your web site on Firefox for Android, you can <a class="link-https" href="https://www.mozilla.org/en-US/mobile/">install it on an Android device</a> or <a class="link-https" href="https://wiki.mozilla.org/Mobile/Fennec/Android/Emulator">run it on your desktop using the Android Emulator</a>.</p>
+
+<h2 id="Build_mobile_add-ons">Build mobile add-ons</h2>
+
+<p><a href="/en/Extensions/Mobile" title="en/Extensions/Firefox_on_Android">Firefox for Android supports add-ons</a> using the exact same <a href="/en/Extensions" title="en/Extensions">extension system</a> used by all other Gecko-based applications. We did not invent a new add-on system. This means that building an add-on for Firefox on Android is the <a href="/en/Building_an_Extension" title="en/Building_an_Extension">same process</a> that would be used for desktop Firefox. Add-ons that work with desktop Firefox <strong>do not</strong> automatically work in Firefox on Android. The user interfaces are just too different.</p>
+
+<div class="note">Firefox on Android has a unique application identifier which must be used in <code>install.rdf</code>. The identifier is <code>{aa3c5121-dab2-40e2-81ca-7ea25febc110}</code></div>
+
+<p>Both classic restart-required and newer <a href="/en/Extensions/Bootstrapped_extensions" title="en/Extensions/Bootstrapped_extensions">restartless</a> add-on approaches are supported. Using the restartless approach is preferred whenever possible because the user experience is far superior to forcing an application restart when installing or removing an add-on.</p>
+
+<h3 id="Quick_Overview">Quick Overview</h3>
+
+<ul>
+ <li>There is no visible XUL in the UI, so using overlays to try to add or change UI is useless.</li>
+ <li>Internal code and objects, like <code>gBrowser</code>, do not exist. Look at the Firefox on Android <a class="external" href="http://mxr.mozilla.org/mozilla-central/source/mobile/android/chrome/content/browser.js" title="http://mxr.mozilla.org/mozilla-central/source/mobile/android/chrome/content/browser.js"><code>browser.js</code></a> file to learn about the internals. Much of the same fundamental functionality exists.</li>
+ <li>Services like <code>nsIPromptService</code> and <code>nsIAlertsService</code> are implemented to use native Android UI.</li>
+ <li>There is a simple JavaScript object, called <a href="/en/Extensions/Mobile/API/NativeWindow" title="en/Extensions/Mobile/NativeWindow"><code>NativeWindow</code></a>, that allows you to manipulate parts of the native Android UI.</li>
+</ul>
+
+<h2 id="Get_help_with_Firefox_for_Android">Get help with Firefox for Android</h2>
+
+<p>Documentation and tutorials for using and troubleshooting Firefox for Android are available on the <a class="external" href="http://support.mozilla.org/mobile" title="http://support.mozilla.org/mobile">Mozilla Support website</a>.</p>
diff --git a/files/fa/mozilla/index.html b/files/fa/mozilla/index.html
new file mode 100644
index 0000000000..edba954db8
--- /dev/null
+++ b/files/fa/mozilla/index.html
@@ -0,0 +1,10 @@
+---
+title: Mozilla
+slug: Mozilla
+tags:
+ - NeedsTranslation
+ - TopicStub
+translation_of: Mozilla
+---
+<p>The articles below include content about downloading and building Mozilla code. In addition, you'll find helpful articles about how the code works, how to build add-ons for Mozilla applications, and the like.</p>
+<p>{{LandingPageListSubpages}}</p>
diff --git a/files/fa/mozilla/marketplace/publishing/submit/index.html b/files/fa/mozilla/marketplace/publishing/submit/index.html
new file mode 100644
index 0000000000..265a1ad776
--- /dev/null
+++ b/files/fa/mozilla/marketplace/publishing/submit/index.html
@@ -0,0 +1,10 @@
+---
+title: Submit
+slug: Mozilla/Marketplace/Publishing/Submit
+tags:
+ - NeedsTranslation
+ - TopicStub
+translation_of: Archive/Mozilla/Marketplace/Publishing/Submit
+---
+<p>This section describes the process for submitting an app to Firefox Marketplace</p>
+<p>Residual details: <a href="/en-US/Marketplace/Publishing/Submit/Submitting_an_app">https://developer.mozilla.org/en-US/Marketplace/Publishing/Submit/Submitting_an_app</a></p>
diff --git a/files/fa/mozilla/mobile/index.html b/files/fa/mozilla/mobile/index.html
new file mode 100644
index 0000000000..669a69a9ed
--- /dev/null
+++ b/files/fa/mozilla/mobile/index.html
@@ -0,0 +1,32 @@
+---
+title: Mobile
+slug: Mozilla/Mobile
+tags:
+ - Mozilla
+ - NeedsTranslation
+ - TopicStub
+translation_of: Mozilla/Mobile
+---
+<h2 id="Firefox_OS" name="Firefox_OS"><a href="/en-US/docs/Mozilla/Firefox_OS">Firefox OS</a></h2>
+
+<p>Firefox OS is an open source mobile operating system which uses Linux and Mozilla's Gecko engine to run a user interface and set of applications written entirely in HTML, CSS and JavaScript.</p>
+
+<p>Read about how to install Firefox OS and how to develop apps for it.</p>
+
+<h2 id="Firefox_for_Android" name="Firefox_for_Android"><a href="/en-US/docs/Mozilla/Firefox_for_Android">Firefox for Android</a></h2>
+
+<p>Firefox for Android is Mozilla's mobile web browser for Android devices. It's recently been rewritten to use Android's native UI, making it faster, leaner and more responsive. It provides support for powerful APIs to access device capabilities such as the camera and telephony stack.</p>
+
+<p>Read about how to help create Firefox for Android, how to use its device APIs, and how to build mobile add-ons.</p>
+
+<h2 id="Firefox_for_iOS" name="Firefox_for_iOS"><a href="/en-US/docs/Mozilla/Firefox_for_iOS">Firefox for iOS</a></h2>
+
+<p>Firefox for iOS is Mozilla's upcoming mobile web browser for iOS devices. Because of AppStore restrictions, it uses the built in WebView supplied by iOS rather than Gecko.</p>
+
+<p>Read about how to help with Firefox for iOS, and how to integrate it with your other iOS Apps.</p>
+
+<h2 id="Mobile_web_development" name="Mobile_web_development"><a href="/en-US/docs/Web/Guide/Mobile">Mobile web development</a></h2>
+
+<p>Mobile devices have very different hardware characteristics from desktop or laptop computers, and many of the APIs used to work with them are still in the process of being standardized.</p>
+
+<p>Read about how to develop web sites that look good on mobile devices and take advantage of the new possibilities they offer. Learn how to make sure your web site works well on different browsers.</p>
diff --git a/files/fa/mozilla/mobile/viewport_meta_tag/index.html b/files/fa/mozilla/mobile/viewport_meta_tag/index.html
new file mode 100644
index 0000000000..e946b4c832
--- /dev/null
+++ b/files/fa/mozilla/mobile/viewport_meta_tag/index.html
@@ -0,0 +1,87 @@
+---
+title: Using the viewport meta tag to control layout on mobile browsers
+slug: Mozilla/Mobile/Viewport_meta_tag
+translation_of: Mozilla/Mobile/Viewport_meta_tag
+---
+<h2 id="Background">Background</h2>
+
+<p>The browser's {{glossary("viewport")}} is the area of the window in which web content can be seen. This is often not the same size as the rendered page, in which case the browser provides scrollbars for the user to scroll around and access all the content.</p>
+
+<p>Narrow screen devices (e.g. mobiles) render pages in a virtual window or viewport, which is usually wider than the screen, and then shrink the rendered result down so it can all be seen at once. Users can then pan and zoom to see different areas of the page. For example, if a mobile screen has a width of 640px, pages might be rendered with a virtual viewport of 980px, and then it will be shrunk down to fit into the 640px space.</p>
+
+<p>This is done because many pages are not mobile optimized, and break (or at least look bad) when rendered at a small viewport width. This virtual viewport is a way to make non-mobile-optimized sites in general look better on narrow screen devices.</p>
+
+<h3 id="Enter_viewport_meta_tag">Enter viewport meta tag</h3>
+
+<p>However, this mechanism is not so good for pages that are optimized for narrow screens using <a href="/en-US/docs/Web/CSS/Media_Queries">media queries</a> — if the virtual viewport is 980px for example, media queries that kick in at 640px or 480px or less will never be used, limiting the effectiveness of such responsive design techniques.</p>
+
+<p>To mitigate this problem, Apple introduced the "viewport meta tag" in Safari iOS to let web developers control the viewport's size and scale. Many other mobile browsers now support this tag, although it is not part of any web standard. Apple's <a class="external" href="https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/UsingtheViewport/UsingtheViewport.html">documentation</a> does a good job explaining how web developers can use this tag, but we had to do some detective work to figure out exactly how to implement it in Fennec. For example, Safari's documentation says the content is a "comma-delimited list," but existing browsers and web pages use any mix of commas, semicolons, and spaces as separators.</p>
+
+<p>Learn more about viewports in different mobile browsers in <a class="external" href="http://www.quirksmode.org/mobile/viewports2.html" title="http://www.quirksmode.org/mobile/viewports2.html">A Tale of Two Viewports</a> at quirksmode.org.</p>
+
+<h2 id="Viewport_basics">Viewport basics</h2>
+
+<p>A typical mobile-optimized site contains something like the following:</p>
+
+<pre>&lt;meta name="viewport" content="width=device-width, initial-scale=1"&gt;</pre>
+
+<p>The <code>width</code> property controls the size of the viewport. It can be set to a specific number of pixels like <code>width=600</code> or to the special value <code>device-width</code>, which is the width of the screen in CSS pixels at a scale of 100%. (There are corresponding <code>height</code> and <code>device-height</code> values, which may be useful for pages with elements that change size or position based on the viewport height.)</p>
+
+<p>The <code>initial-scale</code> property controls the zoom level when the page is first loaded. The <code>maximum-scale</code>, <code>minimum-scale</code>, and <code>user-scalable</code> properties control how users are allowed to zoom the page in or out.</p>
+
+<h2 id="A_pixel_is_not_a_pixel">A pixel is not a pixel</h2>
+
+<p>In recent years, screen resolutions have risen to the size that individual pixels are hard to distinguish with the human eye. For example, recent smartphones generally have a 5-inch screens with resolutions upwards of 1920—1080 pixels (~400 dpi). Because of this, many browsers can display their pages in a smaller physical size by translating multiple hardware pixels for each CSS "pixel". Initially this caused usability and readability problems on many touch-optimized web sites. Peter-Paul Koch wrote about this problem in <a class="external" href="http://www.quirksmode.org/blog/archives/2010/04/a_pixel_is_not.html">A pixel is not a pixel</a>.</p>
+
+<p>On high dpi screens, pages with <code>initial-scale=1</code> will effectively be zoomed by browsers. Their text will be smooth and crisp, but their bitmap images will probably not take advantage of the full screen resolution. To get sharper images on these screens, web developers may want to design images – or whole layouts – at a higher scale than their final size and then scale them down using CSS or viewport properties. This is consistent with the <a class="external" href="http://www.w3.org/TR/CSS2/syndata.html#length-units">CSS 2.1 specification</a>, which says:</p>
+
+<blockquote>
+<p>If the pixel density of the output device is very different from that of a typical computer display, the user agent should rescale pixel values. It is recommended that the pixel unit refer to the whole number of device pixels that best approximates the reference pixel. It is recommended that the reference pixel be the visual angle of one pixel on a device with a pixel density of 96dpi and a distance from the reader of an arm's length.</p>
+</blockquote>
+
+<p>For web developers, this means that the size of a page is much smaller than the actual pixel count and browsers may size their layouts and images accordingly. But remember that not all mobile devices are the same width; you should make sure that your pages work well in a large variation of screen sizes and orientations.</p>
+
+<p>The default pixel ratio depends on the display density. On a display with density less than 200dpi, the ratio is 1.0. On displays with density between 200 and 300dpi, the ratio is 1.5. For displays with density over 300dpi, the ratio is the integer floor(<em>density</em>/150dpi). Note that the default ratio is true only when the viewport scale equals 1. Otherwise, the relationship between CSS pixels and device pixels depends on the current zoom level.</p>
+
+<h2 id="Viewport_width_and_screen_width">Viewport width and screen width</h2>
+
+<p>Sites can set their viewport to a specific size. For example, the definition <code>"width=320, initial-scale=1"</code> can be used to fit precisely onto a small phone display in portrait mode. This can cause <a class="external" href="http://starkravingfinkle.org/blog/2010/01/perils-of-the-viewport-meta-tag/">problems</a> when the browser doesn't render a page at a larger size. To fix this, browsers will expand the viewport width if necessary to fill the screen at the requested scale. This is especially useful on large-screen devices like the iPad. (Allen Pike's <a class="external" href="http://www.antipode.ca/2010/choosing-a-viewport-for-ipad-sites/">Choosing a viewport for iPad sites</a> has a good explanation for web developers.)</p>
+
+<p>For pages that set an initial or maximum scale, this means the <code>width</code> property actually translates into a <em>minimum</em> viewport width. For example, if your layout needs at least 500 pixels of width then you can use the following markup. When the screen is more than 500 pixels wide, the browser will expand the viewport (rather than zoom in) to fit the screen:</p>
+
+<pre>&lt;meta name="viewport" content="width=500, initial-scale=1"&gt;</pre>
+
+<p>Other <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#Attributes">attributes</a> that are available are <code>minimum-scale</code>, <code>maximum-scale</code>, and <code>user-scalable</code>. These properties affect the initial scale and width, as well as limiting changes in zoom level.</p>
+
+<p>Not all mobile browsers handle orientation changes in the same way. For example, Mobile Safari often just zooms the page when changing from portrait to landscape, instead of laying out the page as it would if originally loaded in landscape. If web developers want their scale settings to remain consistent when switching orientations on the iPhone, they must add a <code>maximum-scale</code> value to prevent this zooming, which has the sometimes-unwanted side effect of preventing users from zooming in:</p>
+
+<pre>&lt;meta name="viewport" content="initial-scale=1, maximum-scale=1"&gt;</pre>
+
+<p>Suppress the small zoom applied by many smartphones by setting the initial scale and minimum-scale values to 0.86. The result is horizontal scroll is suppressed in any orientation and the user can zoom in if they want to.</p>
+
+<pre>&lt;meta name="viewport" content="width=device-width, initial-scale=0.86, maximum-scale=3.0, minimum-scale=0.86"&gt;</pre>
+
+<h2 id="Common_viewport_sizes_for_mobile_and_tablet_devices">Common viewport sizes for mobile and tablet devices</h2>
+
+<p>If you want to know what mobile and tablet devices have which viewport widths, there is a comprehensive list of <a href="http://viewportsizes.com/" title="http://viewportsizes.com/">mobile and tablet viewport sizes here</a>. This gives information such as viewport width on portrait and landscape orientation as well as physical screen size, operating system and the pixel density of the device.</p>
+
+<h2 id="Specifications">Specifications</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Status</th>
+ <th scope="col">Comment</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{SpecName('CSS3 Device', '#viewport-meta', '&lt;meta name="viewport"&gt;')}}</td>
+ <td>{{Spec2('CSS3 Device')}}</td>
+ <td>Non-normatively describes the Viewport META element</td>
+ </tr>
+ </tbody>
+</table>
+
+<p>There is clearly demand for the viewport meta tag, since it is supported by most popular mobile browsers and used by thousands of web sites. It would be good to have a true standard for web pages to control viewport properties. As the standardization process proceeds, we at Mozilla will work to keep up to date with any changes.</p>
diff --git a/files/fa/mozilla/projects/index.html b/files/fa/mozilla/projects/index.html
new file mode 100644
index 0000000000..d7e62c6882
--- /dev/null
+++ b/files/fa/mozilla/projects/index.html
@@ -0,0 +1,15 @@
+---
+title: Projects
+slug: Mozilla/Projects
+tags:
+ - Landing
+ - Mozilla
+ - NeedsContent
+ - NeedsTranslation
+ - Projects
+ - TopicStub
+translation_of: Mozilla/Projects
+---
+<p>Here you'll find links to documentation about various Mozilla projects; these are often parts of Firefox or other products, but may also be used in other projects as well.</p>
+
+<p>{{ LandingPageListSubpages() }}</p>
diff --git a/files/fa/mozilla/projects/nss/index.html b/files/fa/mozilla/projects/nss/index.html
new file mode 100644
index 0000000000..68b4961e63
--- /dev/null
+++ b/files/fa/mozilla/projects/nss/index.html
@@ -0,0 +1,176 @@
+---
+title: Network Security Services
+slug: Mozilla/Projects/NSS
+translation_of: Mozilla/Projects/NSS
+---
+<p><strong><font><font>خدمات امنیت شبکه</font></font></strong><font><font> ( </font></font><strong><font><font>NSS</font></font></strong><font><font> ) مجموعه ای از کتابخانه های طراحی شده برای پشتیبانی از توسعه کراس پلت فرم از برنامه های امنیتی و کلاینت و سرور است. </font><font>برنامه های ساخته شده با NSS می توانند از SSL v3، TLS، PKCS # 5، PKCS # 7، PKCS # 11، PKCS # 12، S / MIME، X.509 v3 و دیگر استانداردهای امنیتی پشتیبانی کند.</font></font></p>
+
+<p><font><font>برای اطلاعات دقیق در مورد استانداردهای پشتیبانی، به </font></font><a href="/en-US/docs/Overview_of_NSS" title="Overview_of_NSS"><font><font>بررسی اجمالی از NSS</font></font></a><font><font> . </font><font>برای یک لیست از سوالات متداول، به </font></font><a href="/en-US/docs/NSS_FAQ" title="NSS_FAQ"><font><font>پرسش های متداول</font></font></a><font><font> مراجعه کنید </font><font>.</font></font></p>
+
+<p><font><font>NSS تحت مجوز عمومی Mozilla موجود است. </font><font>برای اطلاعات در مورد دانلود منتشر شده NSS به عنوان فایل های tar، به </font></font><a href="https://developer.mozilla.org/en-US/docs/NSS_Sources_Building_Testing"><font><font>دانلود منبع PKI</font></font></a><font><font> مراجعه کنید </font><font>.</font></font></p>
+
+<p><font><font>اگر شما یک توسعه دهنده هستید و مایل به مشارکت در NSS هستید، ممکن است بخواهید که اسناد سطح بالا را </font></font><a href="/en-US/docs/An_overview_of_NSS_Internals" title="/ en-US / docs / An_overview_of_NSS_Internals"><font><font>از جزئیات داخلی NSS</font></font></a><font><font> و </font></font><a href="/en-US/docs/Getting_Started_With_NSS" title="/ en-US / docs / Getting_Started_With_NSS"><font><font>شروع به کار با NSS</font></font></a><font><font> بخوانید </font><font>.</font></font></p>
+
+<table class="topicpage-table">
+ <tbody>
+ <tr>
+ <td>
+ <h2 class="Documentation" id="Documentation" name="Documentation"><font><font>مستندات</font></font></h2>
+
+ <h3 id="اطلاعات_پس_زمینه"><font><font>اطلاعات پس زمینه</font></font></h3>
+
+ <dl>
+ <dt><a href="/en-US/docs/Overview_of_NSS"><font><font>بررسی NSS</font></font></a></dt>
+ <dd><font><font>خلاصه ای از NSS و قابلیت های آن را ارائه می دهد.</font></font></dd>
+ <dt><a href="/en-US/docs/NSS_FAQ"><font><font>سوالات متداول NSS</font></font></a></dt>
+ <dd><font><font>پرسش های اساسی در مورد NSS پاسخ می دهد.</font></font></dd>
+ <dt><a href="/en-US/docs/Introduction_to_Public-Key_Cryptography"><font><font>مقدمه ای بر رمزنگاری عمومی کلید</font></font></a></dt>
+ <dd><font><font>مفاهیم اساسی رمزنگاری عمومی کلید که NSS را پایه گذاری می کنند را توضیح می دهد.</font></font></dd>
+ <dt><a href="/en-US/docs/Introduction_to_SSL"><font><font>معرفی SSL</font></font></a></dt>
+ <dd><font><font>پروتکل SSL را معرفی می کند، از جمله اطلاعاتی درباره رمزهای رمزنگاری پشتیبانی شده توسط SSL و مراحل مربوط به دستکاری SSL.</font></font></dd>
+ </dl>
+
+ <h3 id="شروع_شدن"><font><font>شروع شدن</font></font></h3>
+
+ <dl>
+ <dt><a href="/en-US/docs/NSS/NSS_Releases" title="NSS_releases"><font><font>انتشارات NSS</font></font></a></dt>
+ <dd><font><font>این صفحه حاوی اطلاعاتی درباره نسخه های فعلی و گذشته NSS است.</font></font></dd>
+ <dt><a href="/en-US/docs/NSS_Sources_Building_Testing"><font><font>دریافت کد منبع و ساخت آن</font></font></a></dt>
+ <dd><font><font>دستورالعمل در مورد نحوه ساخت NSS در سیستم عامل های پشتیبانی شده مختلف.</font></font></dd>
+ <dt><a href="/en-US/docs/Mozilla/Developer_guide/Source_Code/Mercurial"><font><font>کد منبع موزیلا را با استفاده از Mercurial دریافت کنید</font></font></a></dt>
+ <dd><font><font>اطلاعات در مورد کار با Mercurial.</font></font></dd>
+ <dt><a href="/en-US/docs/Mozilla/Developer_guide/Source_Code/CVS"><font><font>دریافت کد منبع موزیلا با استفاده از CVS (نامعتبر)</font></font></a></dt>
+ <dd><font><font>مستندات CVS قدیمی ضعیف</font></font></dd>
+ </dl>
+
+ <h3 id="API_های_NSS"><font><font>API های NSS</font></font></h3>
+
+ <dl>
+ <dt><a href="/en-US/docs/Introduction_to_Network_Security_Services"><font><font>مقدمه ای بر خدمات امنیتی شبکه</font></font></a></dt>
+ <dd><font><font>یک مرور کلی از کتابخانه های NSS و آنچه شما باید بدانید که از آنها استفاده می کنید را ارائه می دهد.</font></font></dd>
+ <dt><a href="NSS/SSL_functions"><font><font>توابع عمومی NSS SSL</font></font></a></dt>
+ <dd><font><font>خلاصه API های SSL صادر شده توسط کتابخانه های اشتراک NSS.</font></font></dd>
+ <dt><a href="/en-US/docs/NSS_reference"><font><font>NSS SSL مرجع</font></font></a></dt>
+ <dd><font><font>API برای فراخوانی عملیات SSL استفاده می شود.</font></font></dd>
+ <dt><a href="NSS/NSS_API_GUIDELINES"><font><font>راهنمای NSS API</font></font></a></dt>
+ <dd><font><font>توضیح می دهد که چگونه کتابخانه ها و کد ها سازماندهی شده اند و دستورالعمل هایی برای توسعه کد (کنفرانس نامگذاری، اداره خطا، ایمنی موضوع، و غیره)</font></font></dd>
+ <dt><a href="NSS/nss_tech_notes"><font><font>نکات فنی NSS</font></font></a></dt>
+ <dd><font><font>پیوند به یادداشت های فنی NSS، که آخرین اطلاعات مربوط به ویژگی های NSS جدید و مستندات تکمیلی را برای موضوعات پیشرفته در برنامه نویسی با NSS ارائه می دهد.</font></font></dd>
+ </dl>
+
+ <h3 id="ابزار،_تست_و_سایر_مشخصات_فنی"><font><font>ابزار، تست و سایر مشخصات فنی</font></font></h3>
+
+ <dl>
+ <dt><a href="/en-US/docs/Mozilla/Projects/NSS/Building"><font><font>دستورالعمل ساخت NSS</font></font></a></dt>
+ <dd>Describe how to check out and build NSS releases.</dd>
+ </dl>
+
+ <dl>
+ <dt><a href="/en-US/docs/Mozilla/Projects/NSS/NSS_Developer_Tutorial">NSS Developer Tutorial</a></dt>
+ <dd>How to make changes in NSS. Coding style, maintaining ABI compatibility.</dd>
+ </dl>
+
+ <dl>
+ <dt><a href="NSS/Tools">NSS Tools</a></dt>
+ <dd>Tools for developing, debugging, and managing applications that use NSS.</dd>
+ <dt><a href="NSS/NSS_Sample_Code">Sample Code</a></dt>
+ <dd>Demonstrates how NSS can be used for cryptographic operations, certificate handling, SSL, etc.</dd>
+ <dt><a href="NSS/NSS_Third-Party_Code">Third-Party Code</a></dt>
+ <dd>A list of third-party code included in the NSS library.</dd>
+ <dt><a href="https://www-archive.mozilla.org/projects/security/pki/nss/testnss_32.html">NSS 3.2 Test Suite</a></dt>
+ <dd><strong>Archived version.</strong> Describes how to run the standard NSS tests.</dd>
+ <dt><a href="https://www-archive.mozilla.org/projects/security/pki/nss/performance_reports.html">NSS Performance Reports</a></dt>
+ <dd><strong>Archived version.</strong> Links to performance reports for NSS 3.2 and later releases.</dd>
+ <dt><a href="https://www-archive.mozilla.org/projects/security/pki/nss/nss-3.11/nss-3.11-algorithms.html">Encryption Technologies Available in NSS 3.11</a></dt>
+ <dd><strong>Archived version.</strong> Lists the cryptographic algorithms used by NSS 3.11.</dd>
+ <dt><a href="https://www-archive.mozilla.org/projects/security/pki/nss/loadable_certs.html">NSS 3.1 Loadable Root Certificates</a></dt>
+ <dd><strong>Archived version.</strong> Describes the scheme for loading root CA certificates.</dd>
+ <dt><a href="https://www-archive.mozilla.org/projects/security/pki/nss/db_formats.html">cert7.db</a></dt>
+ <dd><strong>Archived version.</strong> General format of the cert7.db database.</dd>
+ </dl>
+
+ <h3 id="PKCS_11_information">PKCS #11 information</h3>
+
+ <ul>
+ <li><a href="/en-US/docs/PKCS11" title="PKCS11">Documentation on PKCS #11 modules</a></li>
+ <li><a href="/en-US/docs/PKCS11_Implement">Implementing PKCS #11 for NSS</a></li>
+ <li><a href="/en-US/docs/PKCS11_Module_Specs" title="PKCS11_Module_Specs">The strings NSS uses to load PKCS #11 modules</a></li>
+ <li><a href="/en-US/docs/PKCS11_FAQ">PKCS #11 FAQ</a></li>
+ <li><a href="/en-US/docs/PKCS11_Jar_Install">Using the JAR Installation Manager to Install a PKCS #11 Cryptographic Module</a></li>
+ <li><a href="https://www-archive.mozilla.org/projects/security/pki/pkcs11/">PKCS #11 Conformance Testing - Archived version</a></li>
+ </ul>
+
+ <dl>
+ </dl>
+
+ <h3 id="CA_certificates_pre-loaded_into_NSS">CA certificates pre-loaded into NSS</h3>
+
+ <ul>
+ <li><a href="https://www.mozilla.org/projects/security/certs/policy/">Mozilla CA certificate policy</a></li>
+ <li><a href="https://www.mozilla.org/projects/security/certs/included/">List of pre-loaded CA certificates</a>
+ <ul>
+ <li>Consumers of this list must consider the trust bit setting for each included root certificate. <a href="https://www.imperialviolet.org/2012/01/30/mozillaroots.html">More Information</a>, <a href="https://github.com/agl/extract-nss-root-certs">Extracting roots and their trust bits</a></li>
+ </ul>
+ </li>
+ </ul>
+
+ <dl>
+ </dl>
+
+ <h3 id="NSS_is_built_on_top_of_Netscape_Portable_Runtime_(NSPR)">NSS is built on top of Netscape Portable Runtime (NSPR)</h3>
+
+ <dl>
+ <dt><a href="NSPR">Netscape Portable Runtime</a></dt>
+ <dd>NSPR project page.</dd>
+ <dt><a href="/en-US/docs/Mozilla/Projects/NSPR/Reference">NSPR Reference</a></dt>
+ <dd><font><font>اسناد API NSPR</font></font></dd>
+ </dl>
+
+ <h3 id="اطلاعات_اضافی"><font><font>اطلاعات اضافی</font></font></h3>
+
+ <ul>
+ <li><a href="/en-US/docs/JavaScript_crypto" title="JavaScript_Crypto"><font><font>با استفاده از object.crypto از جاوا اسکریپت</font></font></a></li>
+ <li><a href="/en-US/docs/HTTP_Delegation" title="HTTP_Delegation"><font><font>اعطای پرونده HTTP برای OCSP</font></font></a></li>
+ <li><a href="/en-US/docs/TLS_Cipher_Suite_Discovery" title="TLS_Cipher_Suite_Discovery"><font><font>TLS Cipher Suite Discovery</font></font></a></li>
+ <li><a href="/en-US/docs/NSS_Certificate_Download_Specification" title="NSS_Certificate_Download_Specification"><font><font>مشخصات فنی دانلود استاندارد NSS</font></font></a></li>
+ <li><a href="/en-US/docs/NSS/FIPS_Mode_-_an_explanation" title="FIPS Mode - یک توضیح"><font><font>FIPS Mode - یک توضیح</font></font></a></li>
+ <li><a href="/en-US/docs/NSS_Key_Log_Format" title="NSS Key Log Format"><font><font>فرمت فایل های ورودی کلیدی</font></font></a></li>
+ <li><font><font>مشاهده </font></font><a href="/en-US/docs/tag/NSS" title="/ en-US / docs / tag / NSS"><font><font>تمام مقالات مربوط به NSS در MDN</font></font></a></li>
+ </ul>
+
+ <h3 id="برنامه_ریزی"><font><font>برنامه ریزی</font></font></h3>
+
+ <p><font><font>اطلاعات مربوط به برنامه ریزی NSS را می توانید در </font></font><a class="external" href="https://wiki.mozilla.org/NSS"><font><font>wiki.mozilla.org</font></font></a><font><font> پیدا کنید </font><font>، از جمله:</font></font></p>
+
+ <ul>
+ <li><a class="external" href="https://wiki.mozilla.org/FIPS_Validation"><font><font>اعتبار FIPS</font></font></a></li>
+ <li><a class="external" href="https://wiki.mozilla.org/NSS:Roadmap"><font><font>صفحه نقشه راه NSS</font></font></a></li>
+ <li><a href="https://fedoraproject.org/wiki/User:Mitr/NSS:DeveloperFriendliness" title="https://fedoraproject.org/wiki/User:Mitr/NSS:DeveloperFriendliness"><font><font>پروژه بهبود NSS</font></font></a></li>
+ </ul>
+ </td>
+ <td>
+ <h2 class="Community" id="Community" name="Community"><font><font>جامعه</font></font></h2>
+
+ <ul>
+ <li><font><font>مشاهده انجمن های امنیتی موزیلا ...</font></font></li>
+ </ul>
+
+ <p><font><font>{{DiscussionList ("dev-security"، "mozilla.dev.security")}}</font></font></p>
+
+ <ul>
+ <li><font><font>مشاهده انجمن های رمزنگاری موزیلا ...</font></font></li>
+ </ul>
+
+ <p><font><font>{{DiscussionList ("dev-tech-crypto"، "mozilla.dev.tech.crypto")}}</font></font></p>
+
+ <h2 class="Related_Topics" id="Related_Topics" name="Related_Topics"><font><font>مطالب مرتبط</font></font></h2>
+
+ <ul>
+ <li><a href="/en-US/docs/Security" title="امنیت"><font><font>امنیت</font></font></a></li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+<p> </p>
diff --git a/files/fa/mozilla/projects/psm/index.html b/files/fa/mozilla/projects/psm/index.html
new file mode 100644
index 0000000000..14df349b24
--- /dev/null
+++ b/files/fa/mozilla/projects/psm/index.html
@@ -0,0 +1,13 @@
+---
+title: Personal Security Manager (PSM)
+slug: Mozilla/Projects/PSM
+translation_of: Mozilla/Projects/PSM
+---
+<p>مدیر امنیت شخصی (PSM) متشکل از مجموعه ای از کتابخانه ها است که عملیات رمزگذاری را از طرف برنامه مشتری انجام می دهند. این عملیات شامل راه اندازی اتصال SSL ، امضای شی و تأیید امضا ، مدیریت گواهینامه (از جمله صدور و ابطال) و سایر توابع رایج PKI است.</p>
+
+<p>یادداشت:</p>
+
+<ul>
+ <li>PSM همیشه <a href="/fa/docs/Mozilla/Developer_guide/Build_Instructions">با Firefox ساخته می شود</a> ، بنابراین دستورالعمل های ساخت جداگانه ای وجود ندارد.</li>
+ <li><a href="http://www-archive.mozilla.org/projects/security/pki/psm/">بایگانی اطلاعات در مورد PSM</a></li>
+</ul>
diff --git a/files/fa/mozilla/projects/rhino/index.html b/files/fa/mozilla/projects/rhino/index.html
new file mode 100644
index 0000000000..99391813c4
--- /dev/null
+++ b/files/fa/mozilla/projects/rhino/index.html
@@ -0,0 +1,20 @@
+---
+title: Rhino
+slug: Mozilla/Projects/Rhino
+translation_of: Mozilla/Projects/Rhino
+---
+<p><img alt="Image:rhino.jpg" class="internal" src="/@api/deki/files/832/=Rhino.jpg"></p>
+
+<p><span class="seoSummary"><strong>Rhino</strong> is an open-source implementation of <a href="/en/JavaScript" title="en/JavaScript">JavaScript</a> written entirely in Java. It is typically embedded into Java applications to provide scripting to end users. It is embedded in J2SE 6 as the default Java scripting engine.</span></p>
+
+<h4 id="Rhino_downloads" name="Rhino_downloads">Rhino downloads</h4>
+
+<p>How to <a class="internal" href="/en/RhinoDownload" title="en/RhinoDownload">get source and binaries</a>. </p>
+
+<h4 id="Rhino_documentation" name="Rhino_documentation">Rhino documentation</h4>
+
+<p><a href="/en/Rhino_documentation" title="en/Rhino_documentation">Information on Rhino</a> for script writers and embedders.</p>
+
+<h4 id="Rhino_help" name="Rhino_help">Rhino help</h4>
+
+<p><a href="/en/Rhino/Community" title="en/Rhino/Community">Some resources</a> if you get stuck.</p>
diff --git a/files/fa/mozilla/tech/index.html b/files/fa/mozilla/tech/index.html
new file mode 100644
index 0000000000..c084ed3bb5
--- /dev/null
+++ b/files/fa/mozilla/tech/index.html
@@ -0,0 +1,10 @@
+---
+title: Mozilla technologies
+slug: Mozilla/Tech
+translation_of: Mozilla/Tech
+---
+<p>(fa translation)</p>
+
+<p>Mozilla has several technologies used as components of its projects. These are documented here.</p>
+
+<p>{{LandingPageListSubpages}}</p>
diff --git a/files/fa/mozilla/بازار/index.html b/files/fa/mozilla/بازار/index.html
new file mode 100644
index 0000000000..5bac76b631
--- /dev/null
+++ b/files/fa/mozilla/بازار/index.html
@@ -0,0 +1,95 @@
+---
+title: بازار فایرفاکس
+slug: Mozilla/بازار
+translation_of: Archive/Mozilla/Marketplace
+---
+<div class="summary" dir="rtl">بازار فایرفاکس یک بازار آنلاین و باز غیر اختصاصی برای ساخت نرم افزارهای تحت وب بر پایه HTML5 است.</div>
+
+<div class="column-container" dir="rtl">
+<p><span class="seoSummary">بازار فایرفاکس توسعه دهندگان را قادر می سازد تا  <a href="/en-US/Apps">نرم افزارهای متن باز تحت وب</a> را با استفاده از تکنولوژی‌های استاندارد وب، زبان‌ها، و ابزارها انتشار دهند. موزیلا ارزش‌های اصلی خود — بازبودن، آزادی، انتخاب کاربر — را برای دنیای نرم افزارها به ارمغان می‌آورد.</span></p>
+</div>
+
+<div class="row topicpage-table" dir="rtl">
+<div class="section">
+<h2 class="Community" id="Community" name="Community">انتشار نرم افزار شما</h2>
+
+<dl>
+ <dt><a href="/en-US/Marketplace/Publishing/Publish_options">گزینه‌های انتشار برنامه</a></dt>
+ <dd>پس از این‌که شما یک نرم افزار تحت وب متن باز ساختید، گزینه‌های مختلفی برای انتشار به دنیای خارج در دسترس خواهد بود. این مقاله گزینه‌های در دسترس را توضیح می‌دهد.</dd>
+ <dt><a href="/en-US/Marketplace/Submission/Submitting_an_app">ارسال یک نرم افزار به بازار فایرفاکس</a></dt>
+ <dd>راهنمای مفصلی برای کسانی که مایل به انتشار نرم افزار در بازار فایرفاکس هستند.</dd>
+ <dt><a href="/en-US/Apps/Publishing/General_app_publishing_topics">مباحث عمومی انتشار نرم افزار</a></dt>
+ <dd>اطلاعات عمومی و نکات کاربردی در مورد انتشار نرم افزار متن باز تحت وب.</dd>
+ <dt><a href="/en-US/Marketplace/Marketplace_APIs">API‌های بازار فایرفاکس</a></dt>
+ <dd>اتصال به مرجع اصلی راهنمای API‌های بازار فایرفاکس را پوشش می‌دهد، و شما می‌توانید حساب‌های پرداخت نرم افزار، توابع خودکار نرم افزار، و دیگر موارد را پیکربندی کنید.</dd>
+</dl>
+</div>
+
+<div class="section">
+<h2 class="Community" id="Community" name="Community">کسب درآمد</h2>
+
+<dl>
+ <dt><a href="/en-US/Marketplace/Monetization/Profiting_from_your_app">سود بردن از نرم افزار خودتان</a></dt>
+ <dd>شما به‌سختی برروی کدنویسی آخرین برنامه خود کار کرده‌اید، اما چطور می‌توان هنگام انتشار برنامه‌تان از آن کسب درآمد کنید؟ این مقاله معرفی مفصلی در مورد پیاده سازی پرداخت‌های برنامه، شامل پرداخت‌های بازار و پرداخت‌های درون برنامه‌ای دارد.</dd>
+</dl>
+
+<h2 class="Tools" id="Tools" name="Tools">ابزارهایی برای توسعه نرم افزار</h2>
+
+<ul>
+ <li><a href="/en-US/Firefox_OS/Using_the_App_Manager">مدیریت نرم افزار فایرفاکس او اس</a></li>
+ <li><a href="/en-US/Apps/App_developer_tools">ابزارهای توسعه نرم افزار</a></li>
+</ul>
+
+<h2 id="ساخت_بازار_خودتان">ساخت بازار خودتان</h2>
+
+<dl>
+ <dt><a href="/en-US/Marketplace/Creating_a_store">ساخت یک فروشگاه</a></dt>
+ <dd>شما نباید از بازار فایرفاکس برای توزیع برنامه خودتان استفاده کنید.</dd>
+</dl>
+</div>
+</div>
+
+<h2 dir="rtl" id="Subnav">Subnav</h2>
+
+<ol dir="rtl">
+ <li><a href="/en-US/Marketplace/Submission">App Submission &amp; Review</a>
+
+ <ol>
+ <li><a href="/en-US/Marketplace/Submission/Submitting_an_app" title="This step-by-step guide will help you successfully submit your app to the Firefox Marketplace.">Submitting an app to the Firefox Marketplace</a></li>
+ <li><a href="/en-US/Marketplace/Submission/Rating_Your_Content">Obtaining a rating for your app</a></li>
+ <li><a href="/en-US/Marketplace/Submission/Marketplace_review_criteria" title="An explanation of the criteria an app must meet in order to be published on the Firefox Marketplace">Marketplace review criteria</a></li>
+ <li><a href="/en-US/Marketplace/Publishing/Marketplace_screenshot_criteria" title="Some guidelines on how to create an effective screenshot for marketplace submission">Marketplace screenshot criteria</a></li>
+ <li><a href="/en-US/Marketplace/Publishing/Privacy_policies" title="Your users' privacy is very important, so you need to develop and adhere to a reasonable privacy policy to engender their trust. This article provides a guide to developing privacy policies.">Privacy policy</a></li>
+ <li><a href="/en-US/Marketplace/Submission/Testing_and_troubleshooting">App testing and troubleshooting</a></li>
+ </ol>
+ </li>
+ <li><a href="/en-US/Marketplace/Publishing">App Publishing</a>
+ <ol>
+ <li><a href="/en-US/Marketplace/Publishing/Publish_options" title="If you don't want to go the Firefox Marketplace route, here is some useful information on self-publishing apps.">Publishing options</a></li>
+ <li><a href="/en-US/Marketplace/Publishing/Packaged_apps" title="A detailed description of packaged apps, what the different types entail, and what they are used for in the context of the Firefox Marketplace, and self-published apps.">Packaged Apps</a></li>
+ <li><a href="/en-US/Marketplace/Publishing/Updating_apps" title="Information about how both hosted and packaged app updates are handled, and what you need to do to ensure that your app properly supports updating.">Updating apps</a></li>
+ <li><a href="/en-US/Marketplace/Publishing/Open_web_apps_for_android">Open web apps for Android</a></li>
+ <li><a href="/en-US/Marketplace/Publishing/Adding_a_subdomain" title="For security reasons, each app must have its own domain (or subdomain) on the Web. This article covers how to go about creating a subdomain for your app.">Adding a subdomain for an app</a></li>
+ <li><a href="/en-US/Marketplace/Publishing/Creating_a_store" title="Information that may be helpful to you if you want to build your own store for selling and distributing Open Web Apps.">Creating a store</a></li>
+ </ol>
+ </li>
+ <li><a href="/en-US/Marketplace/Monetization">Monetization</a>
+ <ol>
+ <li><a href="/en-US/Marketplace/Monetization/Profiting_from_your_app" title="This guide contains introductory materials on how to monetize your apps, including tools needed, and a monetization calculator.">Profiting from your app</a></li>
+ <li><a href="/en-US/Marketplace/Monetization/App_payments_guide">App payments guide</a></li>
+ <li><a href="/en-US/Marketplace/Monetization/In-app_payments" title="A guide to implementing support for in-app payments in your Web app.">In-app payments</a></li>
+ <li><a href="/en-US/Marketplace/Monetization/validating_a_receipt" title="A guide to when—and how—to validate your app's purchase receipt.">Validating a receipt</a></li>
+ <li><a href="/en-US/Marketplace/Monetization/App_pricing" title="A round up of fixed price points you can choose for your paid apps, and how these vary across different currencies, along with useful supporting information on dealing with app payments.">App pricing list</a></li>
+ <li><a href="/en-US/Marketplace/Monetization/Payments_Status" title="An at-a-glance summary of what countries have got our app payment services set up in them — where paid apps can be distributed">Payments Status</a></li>
+ </ol>
+ </li>
+ <li><a href="/en-US/Marketplace/APIs">Marketplace APIs</a>
+ <ol>
+ <li><a href="/en-US/Marketplace/APIs/Marketplace_utility_library" title="To help you work with the Firefox Marketplace, we provide a JavaScript library you can use in your apps to make it easier to handle in-app payments and verify payment receipts.">Marketplace utility library</a></li>
+ <li><a href="http://firefox-marketplace-api.readthedocs.org/en/latest/topics/submission.html" title="The Submission API lets you validate your app, update your app, and fetch information about the apps available to be installed.">Submission API</a></li>
+ <li><a href="http://firefox-marketplace-api.readthedocs.org/en/latest/topics/payment.html" title="The Payment API lets you get information about and process in-app purchases as well as to simply get information about what pricing tiers are available.">Payment API</a></li>
+ <li><a href="http://firefox-marketplace-api.readthedocs.org/en/latest/topics/overview.html" title="All Marketplace-related documentation is centered here.">Marketplace API</a></li>
+ </ol>
+ </li>
+ <li><a href="/en-US/Marketplace/FAQ">Firefox Marketplace FAQ</a></li>
+</ol>