aboutsummaryrefslogtreecommitdiff
path: root/files/tr/mozilla/add-ons
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:43:23 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:43:23 -0500
commit218934fa2ed1c702a6d3923d2aa2cc6b43c48684 (patch)
treea9ef8ac1e1b8fe4207b6d64d3841bfb8990b6fd0 /files/tr/mozilla/add-ons
parent074785cea106179cb3305637055ab0a009ca74f2 (diff)
downloadtranslated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.tar.gz
translated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.tar.bz2
translated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.zip
initial commit
Diffstat (limited to 'files/tr/mozilla/add-ons')
-rw-r--r--files/tr/mozilla/add-ons/sdk/index.html81
-rw-r--r--files/tr/mozilla/add-ons/sdk/tools/index.html14
-rw-r--r--files/tr/mozilla/add-ons/sdk/tools/package_json/index.html323
-rw-r--r--files/tr/mozilla/add-ons/sdk/tutorials/getting_started_(jpm)/index.html174
-rw-r--r--files/tr/mozilla/add-ons/sdk/tutorials/index.html158
5 files changed, 750 insertions, 0 deletions
diff --git a/files/tr/mozilla/add-ons/sdk/index.html b/files/tr/mozilla/add-ons/sdk/index.html
new file mode 100644
index 0000000000..0cfe0d7301
--- /dev/null
+++ b/files/tr/mozilla/add-ons/sdk/index.html
@@ -0,0 +1,81 @@
+---
+title: Add-on SDK
+slug: Mozilla/Add-ons/SDK
+translation_of: Archive/Add-ons/Add-on_SDK
+---
+<p>Add-on SDK ile standart web teknolojilerini kullanarak Firefox eklentileri üretebilirsiniz. SDK, eklentileri yaratabileceğiniz JavaScript API'lerini ve eklentileri oluşturma, çalıştırma, test etme ve paketleme araçlarını içerir.</p>
+
+<hr>
+<h3 id="Öğreticiler">Öğreticiler</h3>
+
+<div class="column-container">
+<div class="column-half">
+<dl>
+ <dt><a href="/en-US/Add-ons/SDK/Tutorials#getting-started">Başlarken</a></dt>
+ <dd><a href="/en-US/Add-ons/SDK/Tutorials/Installation">SDK nasıl yüklenir </a>ve <a href="/en-US/Add-ons/SDK/Tutorials/Getting_Started_(jpm)">the jpm aracının kullanımı</a> , ve eklentileri paketleme.</dd>
+ <dt><a href="/en-US/Add-ons/SDK/Tutorials#interact-with-the-browser">Tarayıcı ile etkileşşim</a></dt>
+ <dd><a href="/en-US/Add-ons/SDK/Tutorials/Open_a_Web_Page">Open web pages</a>, <a href="/en-US/Add-ons/SDK/Tutorials/Listen_For_Page_Load">listen for pages loading</a>, and <a href="/en-US/Add-ons/SDK/Tutorials/List_Open_Tabs">list open pages</a>.</dd>
+ <dt><a href="/en-US/Add-ons/SDK/Tutorials#development-techniques">Geliştirme teknikleri</a></dt>
+ <dd>Alışılmış geliştirme yöntemlerini öğrenme, örneğin <a href="/en-US/Add-ons/SDK/Tutorials/Unit_testing">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">creating reusable modules</a>, <a href="/en-US/Add-ons/SDK/Tutorials/l10n">localization</a>, ve <a href="/en-US/Add-ons/SDK/Tutorials/Mobile_development">mobile development</a>.</dd>
+</dl>
+</div>
+
+<div class="column-half">
+<dl>
+ <dt><a href="/en-US/Add-ons/SDK/Tutorials#create-user-interfaces">Kullanıcı arayüzü üretme bileşenleri</a></dt>
+ <dd>Kullanıcı arayüzü birimlerini yaratın. Mesela <a href="/en-US/Add-ons/SDK/Tutorials/Adding_a_Button_to_the_Toolbar"> araç çubuğu butonları</a>, <a href="/en-US/Add-ons/SDK/Tutorials/Add_a_Context_Menu_Item">içerik menüleri</a>, <a href="/en-US/Add-ons/SDK/Tutorials/Add_a_Menu_Item_to_Firefox">menü nesneleri</a> ve <a href="/en-US/Add-ons/SDK/Tutorials/Display_a_Popup">iletiler</a>.</dd>
+ <dt><a href="/en-US/Add-ons/SDK/Tutorials#modify-web-pages">Web sayfalarını modifiye edin.</a></dt>
+ <dd>Modify pages <a href="/en-US/Add-ons/SDK/Tutorials/Modifying_Web_Pages_Based_on_URL">matching a URL pattern</a> or dynamically <a href="/en-US/Add-ons/SDK/Tutorials/Modifying_the_Page_Hosted_by_a_Tab">modify a particular tab</a>.</dd>
+ <dt><a href="/en-US/Add-ons/SDK/Tutorials/Annotator">Putting it together</a></dt>
+ <dd>Walkthrough of the Annotator example add-on.</dd>
+</dl>
+</div>
+</div>
+
+<hr>
+<h3 id="Guides">Guides</h3>
+
+<div class="column-container">
+<div class="column-half">
+<dl>
+ <dt><a href="/en-US/Add-ons/SDK/Guides#contributors-guide">Contributor's guide</a></dt>
+ <dd>Learn <a href="/en-US/Add-ons/SDK/Guides/Getting_Started">how to start contributing</a> to the SDK, and about the most important idioms used in the SDK code, such as <a href="/en-US/Add-ons/SDK/Guides/Modules">modules</a>, <a href="/en-US/Add-ons/SDK/Guides/Classes_and_Inheritance">classes and inheritance</a>, <a href="/en-US/Add-ons/SDK/Guides/Private_Properties">private properties</a>, and <a href="/en-US/Add-ons/SDK/Guides/Content_Processes">content processes</a>.</dd>
+ <dt><a href="/en-US/Add-ons/SDK/Guides#sdk-infrastructure">SDK infrastructure</a></dt>
+ <dd>Aspects of the SDK's underlying technology: <a href="/en-US/Add-ons/SDK/Guides/Module_structure_of_the_SDK">modules</a>, the <a href="/en-US/Add-ons/SDK/Guides/Program_ID">Program ID</a>, and the rules defining <a href="/en-US/Add-ons/SDK/Guides/Firefox_Compatibility">Firefox compatibility</a>.</dd>
+ <dt><a href="/en-US/Add-ons/SDK/Guides/Content_Scripts">Content scripts</a></dt>
+ <dd>A detailed guide to working with content scripts.</dd>
+</dl>
+</div>
+
+<div class="column-half">
+<dl>
+ <dt><a href="/en-US/Add-ons/SDK/Guides#sdk-idioms">SDK idioms</a></dt>
+ <dd>The SDK's <a href="/en-US/Add-ons/SDK/Guides/Working_with_Events">event framework</a> and the <a href="/en-US/Add-ons/SDK/Guides/Two_Types_of_Scripts">distinction between add-on scripts and content scripts</a>.</dd>
+ <dt><a href="/en-US/Add-ons/SDK/Guides/XUL_Migration_Guide">XUL migration</a></dt>
+ <dd>A guide to <a href="/en-US/Add-ons/SDK/Guides/XUL_Migration_Guide">porting XUL add-ons to the SDK</a>. This guide includes a <a href="/en-US/Add-ons/SDK/Guides/XUL_vs_SDK">comparison of the two toolsets</a> and a <a href="/en-US/Add-ons/SDK/Guides/Porting_the_Library_Detector">working example</a> of porting a XUL add-on.</dd>
+ <dt><a href="/en-US/Add-ons/SDK/Guides/Multiprocess_Firefox_and_the_SDK">Multiprocess Firefox and the SDK</a></dt>
+ <dd>How to check whether your add-on is compatible with multiprocess Firefox, and fix it if it isn't.</dd>
+</dl>
+</div>
+</div>
+
+<hr>
+<h3 id="Reference">Reference</h3>
+
+<div class="column-container">
+<div class="column-half">
+<dl>
+ <dt><a href="/en-US/Add-ons/SDK/High-Level_APIs">High-Level APIs</a></dt>
+ <dd>Reference documentation for the high-level SDK APIs.</dd>
+ <dt><a href="/en-US/Add-ons/SDK/Tools">Tools reference</a></dt>
+ <dd>Reference documentation for the <a href="/en-US/Add-ons/SDK/Tools/jpm">jpm tool</a> used to develop, test, and package add-ons, the <a href="/en-US/Add-ons/SDK/Tools/console">console</a> global used for logging, and the <a href="/en-US/Add-ons/SDK/Tools/package_json">package.json</a> file.</dd>
+</dl>
+</div>
+
+<div class="column-half">
+<dl>
+ <dt><a href="/en-US/Add-ons/SDK/Low-Level_APIs">Low-Level APIs</a></dt>
+ <dd>Reference documentation for the low-level SDK APIs.</dd>
+</dl>
+</div>
+</div>
diff --git a/files/tr/mozilla/add-ons/sdk/tools/index.html b/files/tr/mozilla/add-ons/sdk/tools/index.html
new file mode 100644
index 0000000000..8c67b4644e
--- /dev/null
+++ b/files/tr/mozilla/add-ons/sdk/tools/index.html
@@ -0,0 +1,14 @@
+---
+title: Tools
+slug: Mozilla/Add-ons/SDK/Tools
+tags:
+ - Add-on SDK
+ - CFX
+ - JPM
+ - NeedsTranslation
+ - TopicStub
+translation_of: Archive/Add-ons/Add-on_SDK/Tools
+---
+<p>Articles listed here provide a reference for the SDK's tools:</p>
+
+<p>{{ LandingPageListSubpages ("/en-US/Add-ons/SDK/Tools", 7) }}</p>
diff --git a/files/tr/mozilla/add-ons/sdk/tools/package_json/index.html b/files/tr/mozilla/add-ons/sdk/tools/package_json/index.html
new file mode 100644
index 0000000000..7b395a2fa1
--- /dev/null
+++ b/files/tr/mozilla/add-ons/sdk/tools/package_json/index.html
@@ -0,0 +1,323 @@
+---
+title: package.json
+slug: Mozilla/Add-ons/SDK/Tools/package_json
+translation_of: Archive/Add-ons/Add-on_SDK/Tools/package_json
+---
+<p>{{AddonSidebar}}</p>
+
+<p><span class="seoSummary"><code>package.json</code> dosyası eklentiniz için manifesto görevi görür, sadece Add-ons Manager'daki (Eklenti Yöneticisi) sunum için betimleyici bilgileri değil, eklentiniz için diğer gerekli meta bilgilerini de içerir.</span></p>
+
+<p>Some of its entries, such as <a href="/en-US/Add-ons/SDK/Tools/package_json#icon"><code>icon</code></a>, <a href="/en-US/Add-ons/SDK/Tools/package_json#name"><code>name</code></a>, and <a href="/en-US/Add-ons/SDK/Tools/package_json#description"><code>description</code></a>, have direct analogues in the <a href="https://developer.mozilla.org/en-US/docs/Install_Manifests">install manifest</a> format, and entries from <code>package.json</code> are written into the install manifest when the add-on is built using <a href="/en-US/Add-ons/SDK/Tools/jpm#jpm_xpi"><code>jpm xpi</code></a>.</p>
+
+<p>Others, such as <a href="/en-US/Add-ons/SDK/Tools/package_json#lib"><code>lib</code></a>, <a href="/en-US/Add-ons/SDK/Tools/package_json#permissions"><code>permissions</code></a>, and <a href="/en-US/Add-ons/SDK/Tools/package_json#preferences"><code>preferences</code></a>, represent instructions to the <a href="/en-US/Add-ons/SDK/Tools/jpm">jpm</a> tool itself to generate and include particular code and data structures in your add-on.</p>
+
+<h2 id="Manifest_oluşturma">Manifest oluşturma</h2>
+
+<p>The <code>package.json</code> file is initially generated in your add-on's root directory the first time you run <a href="/en-US/Add-ons/SDK/Tools/jpm#jpm_init"><code>jpm init</code></a>. It looks like this (assuming the add-on's directory is "my-addon"):</p>
+
+<pre class="brush: json">{
+ "name": "my-addon",
+ "title": "my-addon",
+  "id": "jid1-1FERGV45e4f4f",
+ "description": "a basic add-on",
+ "author": "",
+ "license": "MPL-2.0",
+ "version": "0.1"
+}</pre>
+
+<p>If you are using the new <a href="/en-US/Add-ons/SDK/Tools/jpm">jpm tool</a>, you can easily access manifest data from package.json by requiring it like any other module:</p>
+
+<pre class="brush: js" id="comment_text_1">var title = require("./package.json").title;</pre>
+
+<h2 id="Key_reference">Key reference</h2>
+
+<p><code>package.json</code> may contain the following keys:</p>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <td id="author"><code>author</code></td>
+ <td>
+ <p>The name of the package's original author; this could be the name of a person or a company. Defaults to an empty string. It may include a optional URL in parentheses and an email address in angle brackets.</p>
+
+ <p>This value will be used as the add-on's <a href="https://developer.mozilla.org/en-US/docs/Install_Manifests#creator"><code>em:creator</code></a> element in the <code>install.rdf</code> file generated by <code>cfx</code>.</p>
+
+ <div class="note"><strong>Note:</strong> <a href="https://developer.mozilla.org/Add-ons/SDK/Tools/jpm">jpm</a> supports <a href="https://docs.npmjs.com/files/package.json#people-fields-author-contributors">NodeJS people fields</a>.</div>
+ </td>
+ </tr>
+ <tr>
+ <td id="contributors"><code>contributors</code></td>
+ <td>
+ <p>An array of additional <a href="/en-US/Add-ons/SDK/Tools/package_json#author"><code>author</code></a> strings, identifying other contributors to the add-on.</p>
+
+ <p>These values will be used as the add-on's <a href="https://developer.mozilla.org/en-US/docs/Install_Manifests#contributor"><code>em:contributor</code></a> elements in its <code>install.rdf</code>.</p>
+
+ <div class="note"><strong>Note:</strong> This is deprecated along with <code>cfx</code>; it's not available when using <a href="/en-US/Add-ons/SDK/Tools/jpm">jpm</a>.</div>
+ </td>
+ </tr>
+ <tr>
+ <td id="dependencies"><code>dependencies</code></td>
+ <td>
+ <p>A string or an array of strings specifying the names of packages that this add-on requires in order to function properly.</p>
+ </td>
+ </tr>
+ <tr>
+ <td id="description"><code>description</code></td>
+ <td>
+ <p>The add-on's description; this is a human-readable message describing what the add-on does. This defaults to the text "a basic add-on".</p>
+
+ <p>This value will be used as the add-on's <a href="https://developer.mozilla.org/en-US/docs/Install_Manifests#description"><code>em:description</code></a> element in its <code>install.rdf</code>.</p>
+ </td>
+ </tr>
+ <tr>
+ <td id="engines"><code>engines</code></td>
+ <td>
+ <p>Object with supported applications (key) and required version numbers (value). The version number can both specify a minimum and maximum version separated by a space.</p>
+
+ <ul>
+ <li><code>firefox</code>: Firefox Desktop</li>
+ <li><code>fennec</code>: Firefox for Android</li>
+ <li><code>thunderbird</code>: Thunderbird</li>
+ <li><code>seamonkey</code>: SeaMonkey</li>
+ <li>Any application UUID</li>
+ </ul>
+
+ <p>Example:</p>
+
+ <pre>
+<code> "engines": {
+ "firefox": "&gt;=38.0a1",
+ "fennec": "&gt;=38.0a1"
+ }</code></pre>
+ </td>
+ </tr>
+ <tr>
+ <td id="fullName"><code>fullName</code> {{deprecated_inline}}</td>
+ <td>
+ <div class="note"><strong>Note:</strong> This is deprecated along with <code>cfx</code>; it's not available when using <a href="/en-US/Add-ons/SDK/Tools/jpm">jpm</a>.</div>
+
+ <p>The full name of the package. It can contain spaces.</p>
+
+ <p>If this key is present, its value will be used as the add-on's <a href="https://developer.mozilla.org/en-US/docs/Install_Manifests#name"><code>em:name</code></a> element in its <code>install.rdf</code>.</p>
+ </td>
+ </tr>
+ <tr>
+ <td id="harnessClassID"><code>harnessClassID</code> {{deprecated_inline}}</td>
+ <td>
+ <div class="note"><strong>Note:</strong> This is deprecated along with <code>cfx</code>; it's not available when using <a href="/en-US/Add-ons/SDK/Tools/jpm">jpm</a>.</div>
+
+ <p>String in the <a href="https://developer.mozilla.org/en-US/docs/Generating_GUIDs">GUID format</a>.</p>
+
+ <p>This is used as a <a href="https://developer.mozilla.org/en-US/docs/Creating_XPCOM_Components/An_Overview_of_XPCOM#CID"><code>classID</code></a> of the "harness service" XPCOM component. Defaults to a random GUID generated by <code>cfx</code>.</p>
+ </td>
+ </tr>
+ <tr>
+ <td id="homepage"><code>homepage</code></td>
+ <td>
+ <p>The URL of the add-on's website.</p>
+
+ <p>This value will be used as the add-on's <a href="https://developer.mozilla.org/en-US/docs/Install_Manifests#homepageURL"><code>em:homepageURL</code></a> element in its <code>install.rdf</code>.</p>
+ </td>
+ </tr>
+ <tr>
+ <td id="icon"><code>icon</code></td>
+ <td>
+ <p>The path to an image file containing the icon for the add-on. Optional: you can have no icon field in package.json and put your icon named "icon.png" in the root directory of your add-on. If no icon is specified, the standard add-on icon will be used by default.</p>
+
+ <div class="warning">
+ <p>When using <a href="/en-US/Add-ons/SDK/Tools/jpm">jpm</a>, using a relative path to the data directory (to make it re-usable for add-on HTML content) does not work.</p>
+
+ <p>You can generate the URL to your add-on icon in the data directory using the URL format below, where "your-addon-name" is the value in the name field of package.json.</p>
+
+ <p>resource://@your-addon-name/data/your-icon-name.png</p>
+ </div>
+
+ <p>This value will be used as the add-on's <a href="https://developer.mozilla.org/en-US/docs/Install_Manifests#iconURL"><code>em:iconURL</code></a> element in its <code>install.rdf</code>.</p>
+
+ <p>The icon may be up to 48x48 pixels in size. A larger icon is will work, but may either scaled and possibly distorted) or might break parts of Firefox UI. (If you test this, please add the result here.)</p>
+
+ <p>This can also be an object with the image size as key and the (absolute) location of the image as value. JPM looks for the sizes 64, 48 and 32.</p>
+ </td>
+ </tr>
+ <tr>
+ <td id="icon64"><code>icon64</code> {{deprecated_inline}}</td>
+ <td>
+ <div class="note">
+ <p><strong>Note:</strong> This is deprecated along with <code>cfx</code>; it's not available when using <a href="/en-US/Add-ons/SDK/Tools/jpm">jpm</a>.</p>
+ </div>
+
+ <p><span style="background-color: rgba(212, 221, 228, 0.14902);">The path to an image</span> containing the large icon for the add-on. Defaults to <code>icon64.png</code>. If you don't provide an icon here, the same icon as specified by <code>icon</code> will be used.</p>
+
+ <p>This value will be used as the add-on's <a href="https://developer.mozilla.org/en-US/docs/Install_Manifests#icon64URL"><code>em:icon64URL</code></a> element in its <code>install.rdf</code>.</p>
+
+ <p>The icon may be up to 64x64 pixels in size.</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>id</code></td>
+ <td>
+ <p>A globally unique identifier for the add-on.</p>
+
+ <p>This value will be used as the add-on's <a href="https://developer.mozilla.org/en-US/docs/Install_Manifests#id"><code>em:id</code></a> element in its <code>install.rdf</code>.</p>
+
+ <p>See the <a href="/en-US/Add-ons/SDK/Guides/Program_ID">Program ID documentation</a>.</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>lib</code></td>
+ <td>
+ <p>String representing the top-level module directory provided in this add-on. Defaults to "lib".</p>
+
+ <div class="note">
+ <p><strong>Note:</strong> This is deprecated along with <code>cfx</code> and is not available when using <a href="/en-US/Add-ons/SDK/Tools/jpm">jpm</a>.</p>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td id="license"><code>license</code></td>
+ <td>
+ <p>The name of the license under which the add-on is distributed, with an optional URL in parentheses. Defaults to <code>"MPL-2.0"</code>.</p>
+
+ <div class="note">
+ <p><strong>Note</strong>: It is recommended that you use an <a href="https://spdx.org/licenses/">SPDX license ID</a>.</p>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td><code>locales</code></td>
+ <td>
+ <p>An object holding <a href="/en-US/docs/Glossary/JSON">JSON</a> objects referenced by a <a href="https://wiki.mozilla.org/L10n:Locale_Codes">locale name</a> that use the following keys: <code>title</code>, <code>description</code> and <code>homepage</code>. These JSON objects will be used to localizations for the add-on's meta data shown within the Add-ons Manager.</p>
+
+ <p>See the documentation for <a href="/en-US/Add-ons/SDK/Tutorials/l10n#Using_localized_strings_in_add-on_meta_data">how to localize the add-on's meta data</a>.</p>
+ </td>
+ </tr>
+ <tr>
+ <td id="main"><code>main</code></td>
+ <td>
+ <p>A string representing the name of a program module that is located in one of the top-level module directories specified by <a href="/en-US/Add-ons/SDK/Tools/package_json#lib"><code>lib</code></a>. Defaults to <code>"index.js"</code>.</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>name</code></td>
+ <td>
+ <p>The add-on's name. This name cannot contain spaces or periods, and defaults to the name of the parent directory.</p>
+
+ <p>When the add-on is built as an XPI, if the <a href="/en-US/Add-ons/SDK/Tools/package_json#fullName"><code>fullName</code></a> and <a href="/en-US/Add-ons/SDK/Tools/package_json#title"><code>title</code></a> keys are not present, <code>name</code> is used as the add-on's <a href="https://developer.mozilla.org/en-US/docs/Install_Manifests#name"><code>em:name</code></a> element in its <code>install.rdf</code>.</p>
+ </td>
+ </tr>
+ <tr>
+ <td id="packages"><code>packages</code></td>
+ <td>
+ <div class="note">
+ <p><strong>Note:</strong> This is deprecated along with <code>cfx</code> and is not available when using <a href="/en-US/Add-ons/SDK/Tools/jpm">jpm</a>.</p>
+ </div>
+
+ <p>A string pointing to a directory containing additional packages. Defaults to <code>"packages"</code>.</p>
+ </td>
+ </tr>
+ <tr>
+ <td id="permissions"><code>permissions</code></td>
+ <td>
+ <p>A set of permissions that the add-on needs.</p>
+
+ <p><strong><code>private-browsing</code></strong>: a boolean indicating whether or not the add-on supports private browsing. If this value is not <code>true</code> or is omitted, then the add-on will not see any private windows or objects, such as tabs, that are associated with private windows. See the documentation for the <a href="/en-US/Add-ons/SDK/High-Level_APIs/private-browsing"><code>private-browsing</code> module</a>.</p>
+
+ <p><strong><code>cross-domain-content</code></strong>: a list of domains for which content scripts are given cross-domain privileges to access content in iframes or to make XMLHTTPRequests. See the documentation for <a href="/en-US/Add-ons/SDK/Guides/Content_Scripts/Cross_Domain_Content_Scripts">enabling cross-domain content scripts</a>.</p>
+
+ <p><strong><code>multiprocess</code></strong>: a Boolean value declaring whether this add-on is, or is not, compatible with <a href="/en-US/Add-ons/Working_with_multiprocess_Firefox">multiprocess Firefox</a>.</p>
+
+ <div class="note">
+ <p><strong>Note</strong> the <code>multiprocess</code> permission is not supported by <a href="/en-US/Add-ons/SDK/Tools/cfx">cfx</a>.</p>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td id="preferences"><code>preferences</code></td>
+ <td>
+ <p>An array of <a href="/en-US/docs/Glossary/JSON">JSON</a> objects that use the following keys: <code>name</code>,<code>type</code>, <code>value</code>, <code>title</code>, and <code>description</code>. These JSON objects will be used to create a preferences interface for the add-on in the Add-ons Manager.</p>
+
+ <p>See the documentation for the <a href="/en-US/Add-ons/SDK/High-Level_APIs/simple-prefs"><code>simple-prefs</code> module</a>.</p>
+ </td>
+ </tr>
+ <tr>
+ <td id="preferences-branch"><code>preferences-branch</code></td>
+ <td>Use this to specify an alternative branch for your add-on's simple-prefs. See <a href="/en-US/Add-ons/SDK/High-Level_APIs/simple-prefs#Simple-prefs_in_the_preferences_system">"Simple-prefs in the preferences system"</a> for more details.</td>
+ </tr>
+ <tr>
+ <td><code>title</code></td>
+ <td>
+ <p>The human-readable title of the package; this can contain spaces.</p>
+
+ <p>If this key is present, its value will be used as the add-on's <a href="https://developer.mozilla.org/en-US/docs/Install_Manifests#name"><code>em:name</code></a> element in its <code>install.rdf</code>.</p>
+ </td>
+ </tr>
+ <tr>
+ <td id="translators"><code>translators</code></td>
+ <td>
+ <p>An array of strings listing the people who contributed to the localization of this add-on.</p>
+
+ <p>These values will be used as the add-on's <a href="https://developer.mozilla.org/en-US/docs/Install_Manifests#translator"><code>em:translator</code></a> elements in its <code>install.rdf</code>.</p>
+
+ <div class="note"><strong>Note:</strong> <a href="https://developer.mozilla.org/Add-ons/SDK/Tools/jpm">jpm</a> supports <a href="https://docs.npmjs.com/files/package.json#people-fields-author-contributors">NodeJS people fields</a>.</div>
+ </td>
+ </tr>
+ <tr>
+ <td id="unpack"><code>unpack</code></td>
+ <td>
+ <p>Same as the <code><a href="/en-US/Add-ons/Install_Manifests#unpack">unpack</a></code> in an <code>install.rdf</code> file.</p>
+
+ <p>Useful when the extension contains binaries.</p>
+ </td>
+ </tr>
+ <tr>
+ <td id="updateKey"><code>updateKey</code></td>
+ <td>
+ <p>Same as the <code><a href="/en-US/Add-ons/Install_Manifests#updateKey">updateKey</a></code> in an <code>install.rdf</code> file.</p>
+
+ <p>See <a href="/en-US/Add-ons/SDK/Tools/jpm#Supporting_updates_for_self-hosted_add-ons">Supporting updates for self-hosted add-ons</a>.</p>
+
+ <div class="note">
+ <p><strong>Note:</strong> This key is only available with <a href="/en-US/Add-ons/SDK/Tools/jpm">jpm</a>.</p>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td id="updateLink"><code>updateLink</code></td>
+ <td>
+ <p>Same as the <code><a href="/en-US/docs/Extension_Versioning%2C_Update_and_Compatibility#Securing_Updates">updateLink</a></code> for an <code>update.rdf</code> file. Previously was <code><a href="/en-US/Add-ons/SDK/Tools/cfx#updateURL_and_updateLink">--update-link in cfx</a></code>.</p>
+
+ <p>See <a href="/en-US/Add-ons/SDK/Tools/jpm#Supporting_updates_for_self-hosted_add-ons">Supporting updates for self-hosted add-ons</a>.</p>
+
+ <div class="note">
+ <p><strong>Note:</strong> This key is only available with <a href="/en-US/Add-ons/SDK/Tools/jpm">jpm</a>.</p>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td id="updateURL"><code>updateURL</code></td>
+ <td>
+ <p>Same as the <code><a href="/en-US/Add-ons/Install_Manifests#updateURL">updateURL</a></code> for an <code>install.rdf</code> file.</p>
+
+ <p>See <a href="/en-US/Add-ons/SDK/Tools/jpm#Supporting_updates_for_self-hosted_add-ons">Supporting updates for self-hosted add-ons</a>.</p>
+
+ <div class="note">
+ <p><strong>Note:</strong> This key is only available with <a href="/en-US/Add-ons/SDK/Tools/jpm">jpm</a>.</p>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td id="version"><code>version</code></td>
+ <td>
+ <p>String representing the version of the add-on. Defaults to "0.0.1".</p>
+
+ <p>This value is used as the add-on's <a href="https://developer.mozilla.org/en-US/docs/Install_Manifests#version"><code>em:version</code></a> element in its <code>install.rdf</code>.</p>
+
+ <div class="note">
+ <p><strong>Note:</strong> For <a href="/en-US/Add-ons/SDK/Tools/jpm">jpm</a> the version must be a valid <a href="http://semver.org/">semver</a>.</p>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+<p> </p>
diff --git a/files/tr/mozilla/add-ons/sdk/tutorials/getting_started_(jpm)/index.html b/files/tr/mozilla/add-ons/sdk/tutorials/getting_started_(jpm)/index.html
new file mode 100644
index 0000000000..20e08ba28f
--- /dev/null
+++ b/files/tr/mozilla/add-ons/sdk/tutorials/getting_started_(jpm)/index.html
@@ -0,0 +1,174 @@
+---
+title: Başlarken(jpm)
+slug: Mozilla/Add-ons/SDK/Tutorials/Getting_Started_(jpm)
+translation_of: Archive/Add-ons/Add-on_SDK/Tutorials/Getting_Started_(jpm)
+---
+<p>{{AddonSidebar}}</p>
+
+<div class="note">
+<p>The Add-on SDK includes a command-line tool that you use to initialize, run, test, and package add-ons. The current tool is called jpm, and is based on <a href="http://nodejs.org/">Node.js</a>. It replaces the old cfx tool.</p>
+
+<p>You can use jpm from Firefox 38 onwards.</p>
+
+<p>This article describes how to develop using jpm.</p>
+</div>
+
+<p>This tutorial walks through creating a simple add-on using the SDK.</p>
+
+<h2 id="Ön_koşullar">Ön koşullar</h2>
+
+<p>SDK kullanarak Firefox eklentisi oluşturmak için şu şartların sağlanması gerekir:</p>
+
+<ul>
+ <li>Firefox'un 38 ve üs versiyonu. Eğer Firefox'un önceki bir versiyonu ile çalışmanız gerekirse, cfx aracını kullanmanız gerekecektir. <a href="/en-US/Add-ons/SDK/Tutorials/Getting_started_(cfx)">getting started with cfx</a>.</li>
+ <li>the command-line jpm tool. See the instructions for <a href="/en-US/Add-ons/SDK/Tools/jpm#Installation">installing jpm</a>. Once you've done that, you'll be looking at a command prompt.</li>
+</ul>
+
+<h2 id="Boş_bir_eklenti_başlatma">Boş bir eklenti başlatma</h2>
+
+<p>Komut satırında, yeni bir dizin oluşturun. Dizine gidin<code>, jpm init </code>komutunu verin ve enter'a basın:</p>
+
+<div class="note">
+<p><code>mkdir </code>komutu yeni bir dizin oluşturur. <code>cd </code>komutu ise belirtilen dizine gider.</p>
+</div>
+
+<pre>mkdir eklentim
+cd eklentim
+jpm init
+</pre>
+
+<p> </p>
+
+<p>Sizden eklentiniz hakkındaki bilgileri sağlamanız istenecektir: bu bilgiler eklentinizin <a href="/en-US/Add-ons/SDK/Tools/package_json">package.json</a>  dosyasını oluşturmak için kullanılır. Enter'a basın ve varsayılan değerleri kabul edin (Daha sonra package.json dosyasından bu verileri değiştirebilirsiniz). <code>jpm init</code> hakkında daha fazla bilgi için <a href="/en-US/Add-ons/SDK/Tools/jpm#Command_reference">jpm komut referansı</a> adresine bakınız</p>
+
+<p>İstenilen değerleri girdikten veya varsayılan değerleri atadıktan hemen sonra, "package.json" dosyasındaki tüm içerik görüntülenir ve size eklentiniz hakkındaki bu bilgileri kabul edip etmediğiniz sorulur. Devam edebilmek için istenilen komut ile kabul edin.</p>
+
+<h2 id="Eklentiyi_hazır_hale_getirme">Eklentiyi hazır hale getirme</h2>
+
+<p>Şimdi eklentinizin kodunu yazabilirsiniz. Unless you've changed the value of "entry point" ("<a href="/en-US/Add-ons/SDK/Tools/package_json#main">main</a>" in package.json), this goes in "index.js" file in the root of your add-on. This file was created for you in the previous step. Open it and add the following code:</p>
+
+<pre class="brush: js">var buttons = require('sdk/ui/button/action');
+var tabs = require("sdk/tabs");
+
+var button = buttons.ActionButton({
+ id: "mozilla-link",
+ label: "Visit Mozilla",
+ icon: {
+ "16": "./icon-16.png",
+ "32": "./icon-32.png",
+ "64": "./icon-64.png"
+ },
+ onClick: handleClick
+});
+
+function handleClick(state) {
+ tabs.open("http://www.mozilla.org/");
+}
+</pre>
+
+<div class="note">
+<p>Note that "entry point" defaults to "index.js" in jpm, meaning that your main file is "index.js", and it is found directly in your add-on's root.</p>
+
+<p>In cfx, the entry point defaults to "main.js", and is located in the "lib" directory under the add-on's root.</p>
+</div>
+
+<p>Kaydedin.</p>
+
+<p>Sonra, eklenti dizinine "<strong>data</strong>" isimli bir klasör oluşturun,</p>
+
+<pre>mkdir data
+</pre>
+
+<p>ve şu üç ikonu "data" klasörüne kaydedin:</p>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <td><img alt="" src="https://mdn.mozillademos.org/files/7635/icon-16.png" style="height: 16px; width: 16px;"></td>
+ <td>icon-16.png</td>
+ </tr>
+ <tr>
+ <td><img alt="" src="https://mdn.mozillademos.org/files/7637/icon-32.png" style="height: 32px; width: 32px;"></td>
+ <td>icon-32.png</td>
+ </tr>
+ <tr>
+ <td><img alt="" src="https://mdn.mozillademos.org/files/7639/icon-64.png" style="height: 64px; width: 64px;"></td>
+ <td>icon-64.png</td>
+ </tr>
+ </tbody>
+</table>
+
+<p>Komut satırıne geri dönün ve şu komutu verin:</p>
+
+<pre>jpm run</pre>
+
+<p>Bu jpm komutu, yaptığınız bu temel eklentinin hazır bir örneğini Firefox tarayıcınızda açacaktır.</p>
+
+<p>If Firefox can not be located, you may need to provide the path to it (example in Ubuntu):</p>
+
+
+<pre>jpm run -b /usr/bin/firefox</pre>
+
+<p>Firefox açıldığında, tarayıcının sağ üst köşesinde Firefox logosu görülecektir. Logoya tıkladığınızda, tarayıcıda <a href="http://www.mozilla.org/" rel="noreferrer">http://www.mozilla.org/</a> adresine giden yeni bir sekme açılır ve eklenti hazırdır.</p>
+
+<p>It uses two SDK modules: the <a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action">action button</a> module, which enables you to add buttons to the browser, and the <a href="/en-US/Add-ons/SDK/High-Level_APIs/tabs" rel="noreferrer">tabs</a> module, which enables you to perform basic operations with tabs. In this case, we've created a button whose icon is the Firefox icon, and added a click handler that loads the Mozilla home page in a new tab.</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/7643/mozilla-button.png" style="display: block; height: 221px; margin-left: auto; margin-right: auto; width: 382px;">Try editing this file. For example, we could change the page that gets loaded:</p>
+
+<pre class="brush: js">var buttons = require('sdk/ui/button/action');
+var tabs = require("sdk/tabs");
+
+var button = buttons.ActionButton({
+ id: "mozilla-link",
+ label: "Visit Mozilla",
+ icon: {
+ "16": "./icon-16.png",
+ "32": "./icon-32.png",
+ "64": "./icon-64.png"
+ },
+ onClick: handleClick
+});
+
+function handleClick(state) {
+ tabs.open("https://developer.mozilla.org/");
+}</pre>
+
+<p>At the command prompt, execute <code>jpm run</code> again. This time clicking it takes you to <a href="https://developer.mozilla.org/">https://developer.mozilla.org/</a>.</p>
+
+<h2 id="Packaging_the_add-on">Packaging the add-on</h2>
+
+<p>When you've finished the add-on and are ready to distribute it, you'll need to package it as an XPI file. This is the installable file format for Firefox add-ons. You can distribute XPI files yourself or publish them to <a href="https://addons.mozilla.org" rel="noreferrer">https://addons.mozilla.org</a> so other users can download and install them.</p>
+
+<p>To build an XPI, just execute the command <code>jpm xpi</code> from the add-on's directory:</p>
+
+<pre>jpm xpi
+</pre>
+
+<p>You should see a message like:</p>
+
+<pre>JPM info Successfully created xpi at /path/to/my-addon/@my-addon-0.0.1.xpi
+</pre>
+
+<p>To test that this worked, try installing the XPI file in your own Firefox installation. You can do this by pressing the Ctrl+O key combination (Cmd+O on Mac) from within Firefox, or selecting the "Open" item from Firefox's "File" menu. This will bring up a file selection dialog: navigate to the "@my-addon.xpi" file, open it and follow the prompts to install the add-on.</p>
+
+<p>Note that Firefox by default requires add-ons, even locally developed ones, to be signed. After installation they'll show up disabled in the list of installed add-ons, noting the missing signature. During development, or if you don't plan to distribute, you can open <a>about:config</a> and set <em>xpinstall.signatures.required</em> to <em>false</em> to run it unsigned. This setting applies to any add-on, so take extra care to not accidently install a malicious one from elsewhere.</p>
+
+<p>To distribute your add-on, <a href="https://addons.mozilla.org/en-US/developers/addon/submit/2">submit the XPI file to addons.mozilla.org</a> or run <a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/jpm#jpm_sign">jpm sign</a> if you wish to distribute the add-on on your own server.</p>
+
+<h2 id="Özet">Özet</h2>
+
+<p>In this tutorial we've built and packaged an add-on using three commands:</p>
+
+<ul>
+ <li><code>jpm init</code> to initialize an empty add-on template</li>
+ <li><code>jpm run</code> to run a new instance of Firefox with the add-on installed, so we can try it out</li>
+ <li><code>jpm xpi</code> to package the add-on into an XPI file for distribution</li>
+</ul>
+
+<p>These are the three main commands you'll use when developing SDK add-ons. There's comprehensive <a href="/en-US/Add-ons/SDK/Tools/jpm" rel="noreferrer">reference documentation</a> covering all the commands you can use and all the options they take.</p>
+
+<p>The add-on code itself uses two SDK modules, <a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action">action button</a> and <a href="/en-US/Add-ons/SDK/High-Level_APIs/tabs" rel="noreferrer">tabs</a>. There's reference documentation for all the <a href="/en-US/Add-ons/SDK/High-Level_APIs" rel="noreferrer">high-level</a> and <a href="/en-US/Add-ons/SDK/Low-Level_APIs" rel="noreferrer">low-level</a> APIs in the SDK.</p>
+
+<h2 id="What's_next">What's next?</h2>
+
+<p>To get a feel for some of the things you can do with the SDK APIs, try working through some of the <a href="/en-US/Add-ons/SDK/Tutorials" rel="noreferrer">tutorials</a>.</p>
diff --git a/files/tr/mozilla/add-ons/sdk/tutorials/index.html b/files/tr/mozilla/add-ons/sdk/tutorials/index.html
new file mode 100644
index 0000000000..56ae76c9d4
--- /dev/null
+++ b/files/tr/mozilla/add-ons/sdk/tutorials/index.html
@@ -0,0 +1,158 @@
+---
+title: Tutorials
+slug: Mozilla/Add-ons/SDK/Tutorials
+translation_of: Archive/Add-ons/Add-on_SDK/Tutorials
+---
+<div class="warning">
+<p>Support for extensions using XUL/XPCOM or the Add-on SDK was removed in Firefox 57, released November 2017. As there is no supported version of Firefox enabling these technologies, this page will be removed by December 2020.</p>
+
+<p>Add-ons using the techniques described in this document are considered a legacy technology in Firefox. Don't use these techniques to develop new add-ons. Use <a href="/en-US/Add-ons/WebExtensions">WebExtensions</a> instead. If you maintain an add-on which uses the techniques described here, consider migrating it to use WebExtensions.</p>
+
+<p><strong>Starting from <a href="https://wiki.mozilla.org/RapidRelease/Calendar">Firefox 53</a>, no new legacy add-ons will be accepted on addons.mozilla.org (AMO) for desktop Firefox and Firefox for Android.</strong></p>
+
+<p><strong>Starting from <a href="https://wiki.mozilla.org/RapidRelease/Calendar">Firefox 57</a>, only extensions developed using WebExtensions APIs will be supported on Desktop Firefox and Firefox for Android. </strong></p>
+
+<p>Even before Firefox 57, changes coming up in the Firefox platform will break many legacy extensions. These changes include multiprocess Firefox (e10s), sandboxing, and multiple content processes. Legacy extensions that are affected by these changes should migrate to use WebExtensions APIs if they can. See the <a href="https://blog.mozilla.org/addons/2017/02/16/the-road-to-firefox-57-compatibility-milestones/">"Compatibility Milestones" document</a> for more information.</p>
+
+<p>A wiki page containing <a href="https://wiki.mozilla.org/Add-ons/developer/communication">resources, migration paths, office hours, and more</a>, is available to help developers transition to the new technologies.</p>
+</div>
+
+<p>This page lists practical hands-on articles about how to accomplish specific tasks using the SDK.</p>
+
+<hr>
+<h3 id="Başlarken">Başlarken</h3>
+
+<div class="column-container">
+<div class="column-half">
+<dl>
+ <dt><a href="/en-US/Add-ons/SDK/Tools/jpm#Installation">Yükleme </a></dt>
+ <dd>Eklentileri geliştirmek için kullanacağınız jpm aracı nasıl yüklenir.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/Add-ons/SDK/Tutorials/Troubleshooting">Sorun giderme</a></dt>
+ <dd>
+ <div id="gt-src-tools">
+ <div dir="ltr" style="zoom: 1;"><span id="result_box" lang="tr"><span class="hps">Ortak sorunları</span> <span class="hps">tespit etmek</span> <span class="hps">ve</span> <span class="hps">daha fazla</span> <span class="hps">yardım almak</span> <span class="hps">için bazı</span> <span class="hps">göstericiler</span><span>.</span></span></div>
+ </div>
+ </dd>
+</dl>
+</div>
+
+<div class="column-half">
+<dl>
+ <dt><a href="/en-US/Add-ons/SDK/Tutorials/Getting_Started_(jpm)">Başlarken</a></dt>
+ <dd>jpm kullanarak, SDK ile basit bir eklenti yaratmanın gidiş yolu.</dd>
+</dl>
+</div>
+</div>
+
+<hr>
+<h3 id="Kullanıcı_Arayüzü_Yaratma">Kullanıcı Arayüzü Yaratma</h3>
+
+<div class="column-container">
+<div class="column-half">
+<dl>
+ <dt><a href="/en-US/Add-ons/SDK/Tutorials/Adding_a_Button_to_the_Toolbar">Araç çubuğu butonu ekleme</a></dt>
+ <dd>Attach a button to the Firefox Add-on toolbar.</dd>
+ <dt><a href="/en-US/Add-ons/SDK/Tutorials/Add_a_Menu_Item_to_Firefox">Firefox'a bir menü nesnesi ekleme</a></dt>
+ <dd>Add items to Firefox's main menus.</dd>
+</dl>
+</div>
+
+<div class="column-half">
+<dl>
+ <dt><a href="/en-US/Add-ons/SDK/Tutorials/Display_a_Popup">Bir açılır pencere gösterme</a></dt>
+ <dd>Display a popup dialog implemented with HTML and JavaScript.</dd>
+ <dt><a href="/en-US/Add-ons/SDK/Tutorials/Add_a_Context_Menu_Item">Bir içerik menüsü nesnesi ekleme</a></dt>
+ <dd>Add items to Firefox's context menu.</dd>
+</dl>
+</div>
+</div>
+
+<hr>
+<h3 id="Interact_with_the_browser"><a name="interact-with-the-browser">Interact with the browser</a></h3>
+
+<div class="column-container">
+<div class="column-half">
+<dl>
+ <dt><a href="/en-US/Add-ons/SDK/Tutorials/Open_a_Web_Page">Open a web page </a></dt>
+ <dd>Open a web page in a new browser tab or window using the tabs module, and access its content.</dd>
+ <dt><a href="/en-US/Add-ons/SDK/Tutorials/Listen_for_Page_Load">Listen for page load </a></dt>
+ <dd>Use the tabs module to get notified when new web pages are loaded, and access their content.</dd>
+</dl>
+</div>
+
+<div class="column-half">
+<dl>
+ <dt><a href="/en-US/Add-ons/SDK/Tutorials/List_Open_Tabs">Get the list of open tabs </a></dt>
+ <dd>Use the tabs module to iterate through the currently open tabs, and access their content.</dd>
+</dl>
+</div>
+</div>
+
+<hr>
+<h3 id="Modify_web_pages"><a name="modify-web-pages">Modify web pages</a></h3>
+
+<div class="column-container">
+<div class="column-half">
+<dl>
+ <dt><a href="/en-US/Add-ons/SDK/Tutorials/Modifying_Web_Pages_Based_on_URL">Modify web pages based on URL </a></dt>
+ <dd>Create filters for web pages based on their URL: whenever a web page whose URL matches the filter is loaded, execute a specified script in it.</dd>
+</dl>
+</div>
+
+<div class="column-half">
+<dl>
+ <dt><a href="/en-US/Add-ons/SDK/Tutorials/Modifying_the_Page_Hosted_by_a_Tab">Modify the active web page </a></dt>
+ <dd>Dynamically load a script into the currently active web page.</dd>
+</dl>
+</div>
+</div>
+
+<hr>
+<h3 id="Development_techniques"><a name="development-techniques">Development techniques</a></h3>
+
+<div class="column-container">
+<div class="column-half">
+<dl>
+ <dt><a href="/en-US/Add-ons/SDK/Tutorials/Logging">Logging </a></dt>
+ <dd>Log messages to the console for diagnostic purposes.</dd>
+ <dt><a href="/en-US/Add-ons/SDK/Tutorials/Creating_reusable_modules">Creating reusable modules </a></dt>
+ <dd>Structure your add-on in separate modules to make it easier to develop, debug, and maintain. Create reusable packages containing your modules, so other add-on developers can use them too.</dd>
+ <dt><a href="/en-US/Add-ons/SDK/Tutorials/Unit_testing">Unit testing </a></dt>
+ <dd>Writing and running unit tests using the SDK's test framework.</dd>
+ <dt><a href="/en-US/Add-ons/SDK/Tutorials/Chrome_authority">Chrome authority </a></dt>
+ <dd>Get access to the Components object, enabling your add-on to load and use any XPCOM object.</dd>
+ <dt><a href="/en-US/Add-ons/SDK/Tutorials/Creating_event_targets">Creating event targets </a></dt>
+ <dd>Enable the objects you define to emit their own events.</dd>
+</dl>
+</div>
+
+<div class="column-half">
+<dl>
+ <dt><a href="/en-US/Add-ons/SDK/Tutorials/Listening_for_load_and_unload">Listen for load and unload </a></dt>
+ <dd>Get notifications when your add-on is loaded or unloaded by Firefox, and pass arguments into your add-on from the command line.</dd>
+ <dt><a href="/en-US/Add-ons/SDK/Tutorials/Using_third-party_modules_(jpm)">Using third-party modules (jpm)</a></dt>
+ <dd>Install and use additional modules which don't ship with the SDK itself.</dd>
+ <dt><a href="/en-US/Add-ons/SDK/Tutorials/l10n">Localization </a></dt>
+ <dd>Writing localizable code.</dd>
+ <dt><a href="/en-US/Add-ons/SDK/Tutorials/Mobile_development">Mobile development </a></dt>
+ <dd>Develop add-ons for Firefox Mobile on Android.</dd>
+ <dt><a href="/en-US/Add-ons/Add-on_Debugger">Add-on Debugger</a></dt>
+ <dd>Debug your add-on's JavaScript.</dd>
+</dl>
+</div>
+</div>
+
+<hr>
+<h3 id="Putting_it_together"><a name="putting-it-together">Putting it together</a></h3>
+
+<div class="column-container">
+<div class="column-half">
+<dl>
+ <dt><a href="/en-US/Add-ons/SDK/Tutorials/Annotator">Annotator add-on </a></dt>
+ <dd>A walkthrough of a relatively complex add-on.</dd>
+</dl>
+</div>
+</div>