From a065e04d529da1d847b5062a12c46d916408bf32 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 21:46:22 -0500 Subject: update based on https://github.com/mdn/yari/issues/2028 --- files/ar/_wikihistory.json | 1866 -------------------- files/ar/archive/beginner_tutorials/index.html | 11 - .../underscores_in_class_and_id_names/index.html | 61 - files/ar/archive/css3/index.html | 976 ---------- files/ar/archive/index.html | 21 - files/ar/archive/mdn/index.html | 20 - files/ar/archive/meta_docs/index.html | 12 - files/ar/archive/mozilla/index.html | 8 - files/ar/archive/mozilla/marketplace/index.html | 161 -- .../marketplace/publishing/submit/index.html | 10 - .../submit/rating_your_content/index.html | 121 -- files/ar/archive/mozilla/xul/index.html | 82 - .../getting_started_with_xulrunner/index.html | 266 --- files/ar/archive/mozilla/xulrunner/index.html | 88 - files/ar/archive/themes/index.html | 11 - files/ar/building_a_theme/index.html | 189 -- files/ar/localization_and_plurals/index.html | 269 --- files/ar/mdn/contribute/persona_sign-in/index.html | 28 - files/ar/midas/index.html | 330 ---- files/ar/midas/security_preferences/index.html | 68 - .../mozilla/add-ons/add-on_guidelines/index.html | 116 -- files/ar/mozilla/add-ons/amo/index.html | 15 - files/ar/mozilla/add-ons/amo/policy/index.html | 21 - files/ar/mozilla/add-ons/themes/index.html | 51 - files/ar/mozilla/connect/index.html | 96 - files/ar/mozilla/firefox_for_android/index.html | 45 - files/ar/mozilla/gecko/index.html | 58 - files/ar/mozilla/localization/index.html | 29 - .../localization/localizing_xliff_files/index.html | 60 - .../index.html | 437 ----- .../localization/web_localizability/index.html | 19 - .../index.html" | 135 -- files/ar/mozilla/mobile/index.html | 32 - .../ar/mozilla/mobile/viewport_meta_tag/index.html | 91 - files/ar/mozilla/preferences/index.html | 45 - files/ar/mozilla/projects/index.html | 15 - files/ar/mozilla/projects/spidermonkey/index.html | 115 -- .../index.html | 373 ---- files/ar/mozilla/tech/index.html | 14 - files/ar/mozilla_mathml_project/index.html | 76 - files/ar/mozilla_mathml_project/start/index.html | 76 - files/ar/new_compatibility_tables_beta/index.html | 24 - files/ar/sandbox/index.html | 75 - files/ar/tools/scratchpad/index.html | 96 - files/ar/tools/webide/index.html | 467 ----- files/ar/tools/webide/troubleshooting/index.html | 107 -- files/ar/zones/index.html | 70 - 47 files changed, 7356 deletions(-) delete mode 100644 files/ar/_wikihistory.json delete mode 100644 files/ar/archive/beginner_tutorials/index.html delete mode 100644 files/ar/archive/beginner_tutorials/underscores_in_class_and_id_names/index.html delete mode 100644 files/ar/archive/css3/index.html delete mode 100644 files/ar/archive/index.html delete mode 100644 files/ar/archive/mdn/index.html delete mode 100644 files/ar/archive/meta_docs/index.html delete mode 100644 files/ar/archive/mozilla/index.html delete mode 100644 files/ar/archive/mozilla/marketplace/index.html delete mode 100644 files/ar/archive/mozilla/marketplace/publishing/submit/index.html delete mode 100644 files/ar/archive/mozilla/marketplace/publishing/submit/rating_your_content/index.html delete mode 100644 files/ar/archive/mozilla/xul/index.html delete mode 100644 files/ar/archive/mozilla/xulrunner/getting_started_with_xulrunner/index.html delete mode 100644 files/ar/archive/mozilla/xulrunner/index.html delete mode 100644 files/ar/archive/themes/index.html delete mode 100644 files/ar/building_a_theme/index.html delete mode 100644 files/ar/localization_and_plurals/index.html delete mode 100644 files/ar/mdn/contribute/persona_sign-in/index.html delete mode 100644 files/ar/midas/index.html delete mode 100644 files/ar/midas/security_preferences/index.html delete mode 100644 files/ar/mozilla/add-ons/add-on_guidelines/index.html delete mode 100644 files/ar/mozilla/add-ons/amo/index.html delete mode 100644 files/ar/mozilla/add-ons/amo/policy/index.html delete mode 100644 files/ar/mozilla/add-ons/themes/index.html delete mode 100644 files/ar/mozilla/connect/index.html delete mode 100644 files/ar/mozilla/firefox_for_android/index.html delete mode 100644 files/ar/mozilla/gecko/index.html delete mode 100644 files/ar/mozilla/localization/index.html delete mode 100644 files/ar/mozilla/localization/localizing_xliff_files/index.html delete mode 100644 files/ar/mozilla/localization/web_localizability/creating_localizable_web_applications/index.html delete mode 100644 files/ar/mozilla/localization/web_localizability/index.html delete mode 100644 "files/ar/mozilla/localization/\330\247\331\204\330\252\330\261\330\254\331\205\330\251_\331\205\330\271_\330\250\331\210\331\206\330\252\331\210\331\210\331\206/index.html" delete mode 100644 files/ar/mozilla/mobile/index.html delete mode 100644 files/ar/mozilla/mobile/viewport_meta_tag/index.html delete mode 100644 files/ar/mozilla/preferences/index.html delete mode 100644 files/ar/mozilla/projects/index.html delete mode 100644 files/ar/mozilla/projects/spidermonkey/index.html delete mode 100644 files/ar/mozilla/projects/spidermonkey/introduction_to_the_javascript_shell/index.html delete mode 100644 files/ar/mozilla/tech/index.html delete mode 100644 files/ar/mozilla_mathml_project/index.html delete mode 100644 files/ar/mozilla_mathml_project/start/index.html delete mode 100644 files/ar/new_compatibility_tables_beta/index.html delete mode 100644 files/ar/sandbox/index.html delete mode 100644 files/ar/tools/scratchpad/index.html delete mode 100644 files/ar/tools/webide/index.html delete mode 100644 files/ar/tools/webide/troubleshooting/index.html delete mode 100644 files/ar/zones/index.html (limited to 'files/ar') diff --git a/files/ar/_wikihistory.json b/files/ar/_wikihistory.json deleted file mode 100644 index b3c0700665..0000000000 --- a/files/ar/_wikihistory.json +++ /dev/null @@ -1,1866 +0,0 @@ -{ - "Games": { - "modified": "2019-09-11T08:38:03.462Z", - "contributors": [ - "SphinxKnight", - "aminezouhair", - "wbamberg" - ] - }, - "Games/Techniques": { - "modified": "2019-01-17T03:24:22.867Z", - "contributors": [ - "wbamberg" - ] - }, - "Games/Techniques/3D_on_the_web": { - "modified": "2019-03-18T21:28:51.724Z", - "contributors": [ - "wbamberg" - ] - }, - "Games/Techniques/3D_on_the_web/Basic_theory": { - "modified": "2019-03-18T21:28:59.194Z", - "contributors": [ - "HusseinYounis" - ] - }, - "Glossary": { - "modified": "2019-03-23T23:11:22.322Z", - "contributors": [ - "wbamberg", - "ahmadnourallah", - "teoli" - ] - }, - "Glossary/API": { - "modified": "2020-08-25T20:10:54.712Z", - "contributors": [ - "duduindo", - "mcqueen10pr" - ] - }, - "Glossary/Accessibility": { - "modified": "2019-03-18T21:35:58.833Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/Algorithm": { - "modified": "2019-03-18T21:36:28.768Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/Argument": { - "modified": "2019-03-18T21:36:51.297Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/Attribute": { - "modified": "2019-03-18T21:36:29.428Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/Bandwidth": { - "modified": "2019-06-11T03:12:16.122Z", - "contributors": [ - "aminezouhair" - ] - }, - "Glossary/Blink": { - "modified": "2019-03-18T21:35:41.170Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/Boolean": { - "modified": "2019-03-18T21:31:11.758Z", - "contributors": [ - "mestoo" - ] - }, - "Glossary/Browser": { - "modified": "2019-03-18T21:36:31.049Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/Compile": { - "modified": "2019-03-18T21:23:37.200Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/Computer_Programming": { - "modified": "2019-03-18T21:16:51.875Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/Cookie": { - "modified": "2019-03-18T21:36:16.444Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/Copyleft": { - "modified": "2019-03-18T21:35:36.953Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/DOM": { - "modified": "2019-03-18T20:40:48.174Z", - "contributors": [ - "moussagigawatt" - ] - }, - "Glossary/DOS_attack": { - "modified": "2019-03-18T21:36:23.407Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/Data_structure": { - "modified": "2019-03-18T21:36:26.711Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/Decryption": { - "modified": "2019-03-18T21:36:31.371Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/Denial_of_Service": { - "modified": "2019-01-17T02:56:58.044Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/Forbidden_header_name": { - "modified": "2020-06-22T06:31:52.598Z", - "contributors": [ - "AboAeqab" - ] - }, - "Glossary/Function": { - "modified": "2019-03-18T21:36:11.164Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/GPL": { - "modified": "2019-03-18T21:35:39.106Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/Google_Chrome": { - "modified": "2019-03-23T23:11:25.083Z", - "contributors": [ - "ahmadnourallah", - "billhiba" - ] - }, - "Glossary/Grid_Areas": { - "modified": "2020-06-28T15:51:15.774Z", - "contributors": [ - "mos528884" - ] - }, - "Glossary/Hyperlink": { - "modified": "2019-03-18T21:35:47.475Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/Identifier": { - "modified": "2019-03-18T21:36:09.613Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/Mozilla_Firefox": { - "modified": "2019-03-18T21:36:31.912Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/OOP": { - "modified": "2019-03-18T21:17:28.449Z", - "contributors": [ - "HeSoKa05" - ] - }, - "Glossary/PHP": { - "modified": "2019-06-12T12:19:18.205Z", - "contributors": [ - "aminezouhair" - ] - }, - "Glossary/Parameter": { - "modified": "2019-03-18T21:36:56.678Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/Recursion": { - "modified": "2019-03-18T21:36:11.837Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/Rendering_engine": { - "modified": "2019-03-18T21:35:46.725Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/Search_engine": { - "modified": "2019-03-18T21:36:28.244Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/Semantics": { - "modified": "2020-08-29T02:02:08.247Z", - "contributors": [ - "M.M.J", - "ahmadnourallah" - ] - }, - "Glossary/Server": { - "modified": "2019-03-18T21:36:23.269Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/String": { - "modified": "2019-03-18T21:36:08.991Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/Tag": { - "modified": "2019-03-18T21:35:59.869Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/Variable": { - "modified": "2019-03-18T21:36:36.155Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/WAI": { - "modified": "2019-03-18T21:35:55.598Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/Wrapper": { - "modified": "2019-03-18T21:36:15.120Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/array": { - "modified": "2019-03-18T21:36:12.215Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/الحروف": { - "modified": "2019-03-18T20:41:14.582Z", - "contributors": [ - "moussagigawatt" - ] - }, - "Glossary/الخاصية": { - "modified": "2019-03-18T20:41:18.902Z", - "contributors": [ - "moussagigawatt" - ] - }, - "Glossary/الدوال_من_الدرجة_الأولى": { - "modified": "2019-03-18T21:43:51.692Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Glossary/الكائنات": { - "modified": "2019-03-18T21:23:58.693Z", - "contributors": [ - "ahmadnourallah", - "yagoub76" - ] - }, - "Glossary/المجالات": { - "modified": "2019-03-18T20:58:54.465Z", - "contributors": [ - "laloshify" - ] - }, - "HTML/Element": { - "modified": "2019-09-11T08:42:21.522Z", - "contributors": [ - "SphinxKnight", - "moaz_osama_okasha", - "elzoz531", - "teoli", - "HelmiHB" - ] - }, - "HTML/Element/article": { - "modified": "2020-10-15T22:31:03.274Z", - "contributors": [ - "M.M.J", - "a01273477051" - ] - }, - "HTML/Element/bdo": { - "modified": "2020-10-15T22:02:29.578Z", - "contributors": [ - "SphinxKnight", - "zidanlab" - ] - }, - "HTML/Element/headings_elements": { - "modified": "2020-10-15T22:08:39.845Z", - "contributors": [ - "SphinxKnight", - "Alhakem" - ] - }, - "HTML/Element/span": { - "modified": "2020-10-15T22:05:54.978Z", - "contributors": [ - "SphinxKnight", - "moaz_osama_okasha" - ] - }, - "HTML/Element/tt": { - "modified": "2020-10-15T22:05:53.553Z", - "contributors": [ - "SphinxKnight", - "moaz_osama_okasha" - ] - }, - "Learn": { - "modified": "2020-07-16T22:43:37.457Z", - "contributors": [ - "waleed5544", - "svarlamov", - "ahmadnourallah", - "yaser-alazem", - "atefBB", - "AbuShelbayeh", - "Andrew_Pfeiffer" - ] - }, - "Learn/Accessibility": { - "modified": "2020-07-16T22:39:55.334Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Learn/Accessibility/What_is_accessibility": { - "modified": "2020-07-16T22:40:02.857Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Learn/CSS": { - "modified": "2020-07-16T22:25:31.838Z", - "contributors": [ - "MOTZ79567", - "abdallahelmalawy", - "ashrafreda", - "chrisdavidmills" - ] - }, - "Learn/CSS/Building_blocks": { - "modified": "2020-07-16T22:28:06.517Z", - "contributors": [ - "salutis" - ] - }, - "Learn/CSS/Building_blocks/Selectors": { - "modified": "2020-07-16T22:28:34.404Z", - "contributors": [ - "mr0111240" - ] - }, - "Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors": { - "modified": "2020-07-16T22:28:38.491Z", - "contributors": [ - "Emory" - ] - }, - "Learn/CSS/CSS_layout": { - "modified": "2020-07-16T22:26:28.954Z", - "contributors": [ - "kalalmohammad", - "MNizam0802" - ] - }, - "Learn/CSS/First_steps": { - "modified": "2020-07-16T22:27:38.309Z", - "contributors": [ - "wasim1772" - ] - }, - "Learn/Common_questions": { - "modified": "2020-07-16T22:35:21.349Z", - "contributors": [ - "ahmadnourallah", - "stephaniehobson" - ] - }, - "Learn/Common_questions/What_is_a_web_server": { - "modified": "2020-07-16T22:35:31.003Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Learn/Common_questions/كيفية_عمل": { - "modified": "2020-09-14T10:55:57.301Z", - "contributors": [ - "hichamikka", - "mestoo" - ] - }, - "Learn/Front-end_web_developer": { - "modified": "2020-09-23T10:36:40.672Z", - "contributors": [ - "Ghaith_Qublan", - "mohamedalisaleh501" - ] - }, - "Learn/Getting_started_with_the_web": { - "modified": "2020-07-16T22:33:48.981Z", - "contributors": [ - "EngMoathOmar", - "ahmadnourallah", - "cloudresourcemanagergoogleapis", - "chrisdavidmills" - ] - }, - "Learn/Getting_started_with_the_web/Dealing_with_files": { - "modified": "2020-07-16T22:34:31.389Z", - "contributors": [ - "ahmadnourallah", - "jwhitlock" - ] - }, - "Learn/Getting_started_with_the_web/HTML_basics": { - "modified": "2020-07-16T22:34:41.479Z", - "contributors": [ - "aminezouhair", - "ahmadnourallah", - "jwhitlock" - ] - }, - "Learn/Getting_started_with_the_web/How_the_Web_works": { - "modified": "2020-09-01T21:08:17.715Z", - "contributors": [ - "fahad43926375", - "EngMoathOmar", - "ipfinder", - "aminezouhair" - ] - }, - "Learn/Getting_started_with_the_web/Installing_basic_software": { - "modified": "2020-07-16T22:34:05.245Z", - "contributors": [ - "ahmadnourallah", - "jwhitlock" - ] - }, - "Learn/Getting_started_with_the_web/JavaScript_basics": { - "modified": "2020-07-16T22:35:07.787Z", - "contributors": [ - "Mohd-PH", - "zidanlab" - ] - }, - "Learn/Getting_started_with_the_web/What_will_your_website_look_like": { - "modified": "2020-07-16T22:34:13.678Z", - "contributors": [ - "ahmadnourallah", - "jwhitlock" - ] - }, - "Learn/Getting_started_with_the_web/أساسيات_صفحات_الطرز_المتراصة": { - "modified": "2020-07-16T22:34:55.259Z", - "contributors": [ - "aminezouhair", - "sami-assasa", - "ahmadnourallah" - ] - }, - "Learn/HTML": { - "modified": "2020-07-16T22:22:14.487Z", - "contributors": [ - "aminezouhair", - "wasem1772", - "Alihoday", - "Andrew_Pfeiffer" - ] - }, - "Learn/HTML/Forms": { - "modified": "2020-12-06T05:54:22.728Z", - "contributors": [ - "coderclouds2018" - ] - }, - "Learn/HTML/Introduction_to_HTML": { - "modified": "2020-07-16T22:22:44.780Z", - "contributors": [ - "aminezouhair", - "ahmadnourallah", - "jwhitlock" - ] - }, - "Learn/HTML/Introduction_to_HTML/Getting_started": { - "modified": "2020-07-16T22:22:56.623Z", - "contributors": [ - "aminezouhair", - "ahmadnourallah", - "jwhitlock" - ] - }, - "Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals": { - "modified": "2020-07-16T22:23:29.319Z", - "contributors": [ - "jwhitlock", - "ahmadnourallah" - ] - }, - "Learn/HTML/Multimedia_and_embedding": { - "modified": "2020-07-16T22:24:23.909Z", - "contributors": [ - "MOTZ79567", - "ezrinjaz" - ] - }, - "Learn/HTML/الجداول": { - "modified": "2020-07-16T22:25:09.678Z", - "contributors": [ - "aminezouhair" - ] - }, - "Learn/HTML/بسيطة_HTML_إنشاء_صفحة": { - "modified": "2020-07-16T22:22:26.344Z", - "contributors": [ - "wbamberg", - "mubarak823", - "mhmdiaa" - ] - }, - "Learn/How_to_contribute": { - "modified": "2020-07-16T22:33:42.427Z", - "contributors": [ - "SphinxKnight", - "ahmadnourallah" - ] - }, - "Learn/JavaScript": { - "modified": "2020-07-16T22:29:36.627Z", - "contributors": [ - "Mohd-PH", - "Roadsky", - "amirmekk", - "chrisdavidmills" - ] - }, - "Learn/JavaScript/First_steps": { - "modified": "2020-07-16T22:29:47.870Z", - "contributors": [ - "Mohd-PH", - "SphinxKnight" - ] - }, - "Learn/JavaScript/First_steps/A_first_splash": { - "modified": "2020-11-17T07:52:07.930Z", - "contributors": [ - "heshamali", - "ibrahim.ham" - ] - }, - "Learn/JavaScript/First_steps/Useful_string_methods": { - "modified": "2020-11-07T10:08:34.284Z", - "contributors": [ - "heshamali", - "GawiSh97" - ] - }, - "Learn/JavaScript/Objects": { - "modified": "2020-07-16T22:31:47.619Z", - "contributors": [ - "aminezouhair", - "ALSULTAN", - "moatazalshabuo", - "chrisdavidmills" - ] - }, - "Learn/JavaScript/Objects/Basics": { - "modified": "2020-07-16T22:31:55.874Z", - "contributors": [ - "Youssef-Belmeskine", - "atefBB" - ] - }, - "Learn/JavaScript/Objects/Inheritance": { - "modified": "2020-07-16T22:32:11.167Z", - "contributors": [ - "Youssef-Belmeskine", - "AbrahemAlhofe", - "MohammedAlaa88" - ] - }, - "Learn/JavaScript/Objects/Object-oriented_JS": { - "modified": "2020-07-16T22:32:04.348Z", - "contributors": [ - "Youssef-Belmeskine", - "atefBB" - ] - }, - "Learn/JavaScript/Objects/Object_prototypes": { - "modified": "2020-07-16T22:32:18.432Z", - "contributors": [ - "Youssef-Belmeskine", - "MohammedAlaa88", - "atefBB" - ] - }, - "Learn/Server-side": { - "modified": "2020-07-16T22:35:55.037Z", - "contributors": [ - "moussagigawatt" - ] - }, - "Learn/Server-side/Django": { - "modified": "2020-07-18T13:31:54.614Z", - "contributors": [ - "tawfik123", - "kruschk" - ] - }, - "Learn/Server-side/Express_Nodejs": { - "modified": "2020-07-16T22:37:50.857Z", - "contributors": [ - "ckashby" - ] - }, - "MDN": { - "modified": "2020-02-19T19:23:57.984Z", - "contributors": [ - "jswisher", - "SphinxKnight", - "aminezouhair", - "wbamberg", - "ahmadnourallah", - "Jeremie", - "MoniV", - "ziyunfei" - ] - }, - "MDN/About": { - "modified": "2019-09-10T08:50:08.705Z", - "contributors": [ - "SphinxKnight", - "wbamberg", - "ahmadnourallah" - ] - }, - "MDN/Community": { - "modified": "2019-03-23T22:39:46.468Z", - "contributors": [ - "wbamberg", - "ahmadnourallah", - "Jeremie", - "1071432726" - ] - }, - "MDN/Community/Whats_happening": { - "modified": "2019-06-11T03:43:32.787Z", - "contributors": [ - "aminezouhair" - ] - }, - "MDN/Contribute": { - "modified": "2019-03-23T23:16:50.906Z", - "contributors": [ - "wbamberg", - "ahmadnourallah", - "Jeremie", - "Mars" - ] - }, - "MDN/Contribute/Feedback": { - "modified": "2020-09-30T17:50:14.200Z", - "contributors": [ - "chrisdavidmills", - "SphinxKnight", - "aminezouhair", - "wbamberg", - "ahmadnourallah" - ] - }, - "MDN/Contribute/Getting_started": { - "modified": "2020-09-30T17:08:48.786Z", - "contributors": [ - "chrisdavidmills", - "wbamberg", - "ahmadnourallah", - "Abu3safeer", - "ihanafieh", - "T9nf" - ] - }, - "MDN/Contribute/Howto": { - "modified": "2019-01-16T19:20:51.257Z", - "contributors": [ - "wbamberg", - "Jeremie", - "Sheppy" - ] - }, - "MDN/Contribute/Howto/Do_a_technical_review": { - "modified": "2019-06-10T14:47:38.844Z", - "contributors": [ - "aminezouhair", - "wbamberg", - "ashqaljnoob" - ] - }, - "MDN/Contribute/Howto/Do_an_editorial_review": { - "modified": "2019-06-15T16:26:58.954Z", - "contributors": [ - "aminezouhair" - ] - }, - "MDN/Contribute/Howto/Report_a_problem": { - "modified": "2020-01-07T12:21:22.751Z", - "contributors": [ - "peterbe", - "aminezouhair" - ] - }, - "MDN/Contribute/Howto/Set_the_summary_for_a_page": { - "modified": "2020-02-14T19:30:29.921Z", - "contributors": [ - "a0m0rajab", - "maherv" - ] - }, - "MDN/Contribute/Howto/Tag": { - "modified": "2019-09-10T11:04:17.206Z", - "contributors": [ - "wasim1772", - "wasem1772" - ] - }, - "MDN/Contribute/Howto/Write_a_new_entry_in_the_Glossary": { - "modified": "2019-06-15T16:35:07.831Z", - "contributors": [ - "aminezouhair" - ] - }, - "MDN/Contribute/Howto/Write_an_article_to_help_learn_about_the_Web": { - "modified": "2020-02-28T22:26:02.885Z", - "contributors": [ - "aminezouhair" - ] - }, - "MDN/Contribute/Howto/إنشاء_حساب_على_شبكة_مطوري_موزيلا": { - "modified": "2019-06-11T03:35:08.931Z", - "contributors": [ - "aminezouhair", - "wbamberg", - "ahmadnourallah", - "mhmdiaa", - "Syrian-Guy" - ] - }, - "MDN/Contribute/Howto/كيفية_إنشاء_وتحرير_الصفحات": { - "modified": "2019-03-18T21:28:07.470Z", - "contributors": [ - "AhmedElhatem" - ] - }, - "MDN/Contribute/Localize": { - "modified": "2019-01-16T18:57:05.647Z", - "contributors": [ - "wbamberg", - "Sheppy" - ] - }, - "MDN/Contribute/Localize/صفحات_الترجمة": { - "modified": "2019-12-17T21:16:51.749Z", - "contributors": [ - "wbamberg", - "ahmadnourallah", - "MoniV", - "iamaro", - "MohamedDZ", - "moncef.hammou" - ] - }, - "MDN/Guidelines": { - "modified": "2020-09-30T15:27:52.369Z", - "contributors": [ - "chrisdavidmills", - "wbamberg" - ] - }, - "MDN/Guidelines/Writing_style_guide": { - "modified": "2020-09-30T15:27:53.353Z", - "contributors": [ - "chrisdavidmills", - "jswisher", - "maherv" - ] - }, - "MDN/Kuma": { - "modified": "2019-09-09T15:51:34.712Z", - "contributors": [ - "SphinxKnight", - "wbamberg", - "ahmadnourallah", - "dr-m1991" - ] - }, - "MDN/Tools": { - "modified": "2020-09-30T16:47:53.767Z", - "contributors": [ - "chrisdavidmills", - "wbamberg", - "Jeremie", - "Sheppy" - ] - }, - "MDN/Tools/Deleting_pages": { - "modified": "2020-09-30T16:47:53.745Z", - "contributors": [ - "chrisdavidmills", - "wbamberg", - "Jeremie", - "Bettr", - "iii59300" - ] - }, - "MDN_at_ten": { - "modified": "2019-03-23T22:44:47.432Z", - "contributors": [ - "M.IRAQY999" - ] - }, - "Mozilla": { - "modified": "2019-03-23T23:28:10.569Z", - "contributors": [ - "Daef32", - "Sheppy" - ] - }, - "Mozilla/Add-ons": { - "modified": "2019-09-09T13:12:40.993Z", - "contributors": [ - "SphinxKnight", - "asromre1", - "MGWVc", - "mazenaliyane", - "google", - "hamada7-ym1403", - "viiiiiip123", - "Sheppy" - ] - }, - "Mozilla/Add-ons/WebExtensions": { - "modified": "2020-01-01T18:00:38.391Z", - "contributors": [ - "Anonymous", - "ahmadnourallah", - "ahmedhemada", - "mconca" - ] - }, - "Mozilla/Add-ons/WebExtensions/API": { - "modified": "2019-11-26T22:20:07.365Z", - "contributors": [ - "wbamberg", - "stephaniehobson" - ] - }, - "Mozilla/Add-ons/WebExtensions/API/browsingData": { - "modified": "2020-10-15T22:33:14.238Z", - "contributors": [ - "namma2012" - ] - }, - "Mozilla/Add-ons/WebExtensions/API/contentScripts": { - "modified": "2020-10-15T22:02:46.821Z", - "contributors": [ - "tikooooo" - ] - }, - "Mozilla/Add-ons/WebExtensions/Match_patterns": { - "modified": "2019-03-18T21:03:12.955Z", - "contributors": [ - "kremx80" - ] - }, - "Mozilla/Add-ons/WebExtensions/manifest.json": { - "modified": "2020-10-15T21:59:58.901Z", - "contributors": [ - "wbamberg" - ] - }, - "Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts": { - "modified": "2020-10-15T21:59:55.952Z", - "contributors": [ - "wbamberg", - "ralshammrei" - ] - }, - "Mozilla/Add-ons/WebExtensions/ما_هي_امتدادات_الويب": { - "modified": "2020-01-01T17:57:33.756Z", - "contributors": [ - "Anonymous" - ] - }, - "Mozilla/Developer_guide": { - "modified": "2019-03-23T22:03:05.275Z", - "contributors": [ - "glasserc" - ] - }, - "Mozilla/Developer_guide/Adding_APIs_to_the_navigator_object": { - "modified": "2020-08-11T20:05:10.710Z", - "contributors": [ - "shykhalwadym01" - ] - }, - "Mozilla/Developer_guide/Source_Code": { - "modified": "2020-06-23T10:39:42.136Z", - "contributors": [ - "mohameddz010203" - ] - }, - "Mozilla/Firefox": { - "modified": "2019-09-10T14:57:18.485Z", - "contributors": [ - "SphinxKnight", - "wbamberg", - "ahmadnourallah", - "Benseidseid", - "XMKMX_1937_XMKMX", - "3Li", - "asd996" - ] - }, - "Mozilla/Firefox/Releases": { - "modified": "2020-07-19T01:50:20.887Z", - "contributors": [ - "chrisdavidmills" - ] - }, - "Tools": { - "modified": "2020-07-16T22:44:13.280Z", - "contributors": [ - "SphinxKnight", - "aminezouhair", - "irenesmith", - "hamoody", - "Rami055302" - ] - }, - "Tools/Browser_Console": { - "modified": "2020-07-16T22:35:41.935Z", - "contributors": [ - "ssa918362" - ] - }, - "Tools/Page_Inspector": { - "modified": "2020-08-05T15:30:36.106Z", - "contributors": [ - "jswisher" - ] - }, - "Tools/Page_Inspector/How_to": { - "modified": "2020-08-05T15:30:36.225Z" - }, - "Tools/Storage_Inspector": { - "modified": "2020-07-16T22:36:09.328Z", - "contributors": [ - "7to328" - ] - }, - "Tools/Web_Console": { - "modified": "2020-07-16T22:34:03.927Z", - "contributors": [ - "HeSoKa05" - ] - }, - "Tools/Web_Console/The_command_line_interpreter": { - "modified": "2020-07-16T22:34:18.356Z", - "contributors": [ - "fasol1f" - ] - }, - "Web": { - "modified": "2020-04-16T08:53:18.820Z", - "contributors": [ - "ahmadnourallah", - "hayamgamil26", - "Anonymous", - "alktub", - "aminezouhair", - "mohamed7afezz", - "walidamriou", - "antaraz", - "kadimi", - "ethertank", - "fusionchess" - ] - }, - "Web/API": { - "modified": "2019-03-23T23:12:32.062Z", - "contributors": [ - "ahmadnourallah", - "SafaAlfulaij", - "jehad1123", - "iii59300", - "Ab_sahb2011", - "nickwong" - ] - }, - "Web/API/Attr": { - "modified": "2020-10-15T22:29:41.057Z", - "contributors": [ - "joree20003" - ] - }, - "Web/API/Canvas_API": { - "modified": "2019-03-18T21:38:39.416Z", - "contributors": [ - "SafaAlfulaij" - ] - }, - "Web/API/DOMTokenList": { - "modified": "2020-10-15T22:07:40.998Z", - "contributors": [ - "xfq" - ] - }, - "Web/API/DOMTokenList/length": { - "modified": "2020-10-15T22:07:42.370Z", - "contributors": [ - "GawiSh97" - ] - }, - "Web/API/Document": { - "modified": "2019-07-30T13:32:03.743Z", - "contributors": [ - "alwayslearnedstuff" - ] - }, - "Web/API/Document/designMode": { - "modified": "2019-03-23T22:02:58.144Z", - "contributors": [ - "khaled3afan" - ] - }, - "Web/API/Element": { - "modified": "2019-03-18T21:09:03.057Z", - "contributors": [ - "fscholz", - "fvsch" - ] - }, - "Web/API/Element/className": { - "modified": "2019-03-23T22:07:01.121Z", - "contributors": [ - "Abu3safeer" - ] - }, - "Web/API/Element/closest": { - "modified": "2020-10-15T22:31:36.454Z", - "contributors": [ - "suqbit" - ] - }, - "Web/API/Element/insertAdjacentHTML": { - "modified": "2020-10-15T22:31:15.283Z", - "contributors": [ - "suqbit" - ] - }, - "Web/API/Event": { - "modified": "2019-03-23T23:00:25.185Z", - "contributors": [ - "teoli" - ] - }, - "Web/API/Geolocation": { - "modified": "2019-03-23T22:48:52.907Z", - "contributors": [ - "fscholz" - ] - }, - "Web/API/Geolocation/Using_geolocation": { - "modified": "2019-08-31T16:04:10.213Z", - "contributors": [ - "1043465747", - "elsisi" - ] - }, - "Web/API/Geolocation/Using_geolocation/Using_the_Geolocation_API": { - "modified": "2020-03-22T20:37:24.802Z", - "contributors": [ - "i7cn" - ] - }, - "Web/API/HTMLElement": { - "modified": "2019-03-23T23:00:29.058Z", - "contributors": [ - "teoli" - ] - }, - "Web/API/HTMLElement/contentEditable": { - "modified": "2019-03-23T23:12:35.618Z", - "contributors": [ - "teoli", - "Syrian-Guy" - ] - }, - "Web/API/History_API": { - "modified": "2019-03-23T22:22:50.858Z", - "contributors": [ - "SphinxKnight", - "iJianHuang" - ] - }, - "Web/API/History_API/مثال": { - "modified": "2019-03-23T22:22:46.391Z", - "contributors": [ - "atefBB" - ] - }, - "Web/API/Navigator": { - "modified": "2019-03-23T22:15:21.162Z", - "contributors": [ - "Sheppy" - ] - }, - "Web/API/Navigator.battery": { - "modified": "2019-03-23T23:12:40.096Z", - "contributors": [ - "jsx", - "Syrian-Guy" - ] - }, - "Web/API/Node": { - "modified": "2020-10-15T22:29:49.949Z", - "contributors": [ - "Sheppy" - ] - }, - "Web/API/Node/removeChild": { - "modified": "2020-10-15T22:29:47.795Z", - "contributors": [ - "SphinxKnight", - "bodykabetano" - ] - }, - "Web/API/Window": { - "modified": "2020-10-15T22:32:14.260Z", - "contributors": [ - "ANH25" - ] - }, - "Web/API/Window/DOMContentLoaded_event": { - "modified": "2020-10-15T22:33:25.719Z", - "contributors": [ - "katbi89" - ] - }, - "Web/API/Window/alert": { - "modified": "2020-10-15T22:31:54.660Z", - "contributors": [ - "Sultan-Alrefaei" - ] - }, - "Web/API/XSLTProcessor": { - "modified": "2020-10-15T22:07:58.558Z", - "contributors": [ - "ExE-Boss" - ] - }, - "Web/API/XSLTProcessor/Basic_Example": { - "modified": "2019-03-18T21:28:33.053Z", - "contributors": [ - "EnasMahdy" - ] - }, - "Web/Accessibility": { - "modified": "2020-03-18T03:39:58.995Z", - "contributors": [ - "SphinxKnight", - "ahmadnourallah", - "hasabonassor" - ] - }, - "Web/CSS": { - "modified": "2019-09-11T03:31:55.318Z", - "contributors": [ - "SphinxKnight", - "ahmadnourallah", - "Qlbaz" - ] - }, - "Web/CSS/Attribute_selectors": { - "modified": "2020-10-15T22:10:15.383Z", - "contributors": [ - "zidanlab" - ] - }, - "Web/CSS/CSS_Flexible_Box_Layout": { - "modified": "2020-03-28T04:45:36.291Z", - "contributors": [ - "vnctdj" - ] - }, - "Web/CSS/CSS_Flexible_Box_Layout/المفاهيم_الأساسية_للصندوق_المرن": { - "modified": "2020-03-28T05:18:29.446Z", - "contributors": [ - "Mutazalhawash" - ] - }, - "Web/CSS/CSS_Grid_Layout": { - "modified": "2019-03-18T21:35:22.946Z", - "contributors": [ - "AmineBelmili", - "rachelandrew" - ] - }, - "Web/CSS/CSS_Grid_Layout/Relationship_of_Grid_Layout_arabic": { - "modified": "2019-03-18T21:35:18.134Z", - "contributors": [ - "harchaoui" - ] - }, - "Web/CSS/CSS_Writing_Modes": { - "modified": "2019-03-23T22:03:16.266Z", - "contributors": [ - "Micro-Shadi" - ] - }, - "Web/CSS/Reference": { - "modified": "2019-06-30T14:40:59.845Z", - "contributors": [ - "ESlam247" - ] - }, - "Web/CSS/align-content": { - "modified": "2020-10-17T19:46:08.545Z", - "contributors": [ - "chouaib" - ] - }, - "Web/CSS/order": { - "modified": "2020-10-15T22:25:59.036Z", - "contributors": [ - "CU1KNIGHT" - ] - }, - "Web/CSS/pointer-events": { - "modified": "2020-10-15T22:16:23.258Z", - "contributors": [ - "duduindo", - "AF555" - ] - }, - "Web/CSS/التحول": { - "modified": "2020-10-15T22:06:18.420Z", - "contributors": [ - "mohamadlounnas" - ] - }, - "Web/CSS/التعليقات": { - "modified": "2019-03-23T22:09:00.996Z", - "contributors": [ - "Abu3safeer" - ] - }, - "Web/CSS/العناصر_التي_يمكن_تحريكها_باستخدام_CSS_Transitions": { - "modified": "2019-03-23T22:09:06.742Z", - "contributors": [ - "Abu3safeer" - ] - }, - "Web/Events": { - "modified": "2020-07-05T11:11:44.298Z", - "contributors": [ - "suqbit" - ] - }, - "Web/Guide": { - "modified": "2019-03-23T23:26:08.829Z", - "contributors": [ - "NadhirBoukhenifra", - "kadimi", - "Sheppy" - ] - }, - "Web/Guide/CSS": { - "modified": "2019-03-23T23:26:10.869Z", - "contributors": [ - "Sheppy" - ] - }, - "Web/Guide/CSS/Getting_started": { - "modified": "2019-03-23T22:26:23.175Z", - "contributors": [ - "wjinca" - ] - }, - "Web/Guide/CSS/Getting_started/Readable_CSS": { - "modified": "2019-03-23T22:26:15.891Z", - "contributors": [ - "atefBB", - "Muhnad" - ] - }, - "Web/Guide/CSS/Getting_started/القوائم": { - "modified": "2019-03-23T22:26:05.454Z", - "contributors": [ - "atefBB", - "EmanShaltoutTrend" - ] - }, - "Web/Guide/HTML/HTML5": { - "modified": "2020-10-19T18:49:26.722Z", - "contributors": [ - "moussa32", - "teoli", - ".1234waleed", - "ess_a25", - "John.Smith" - ] - }, - "Web/Guide/HTML/HTML5/HTML5_element_list": { - "modified": "2019-03-23T23:14:56.560Z", - "contributors": [ - "Abu3safeer", - "atefBB", - "mohamedmahmoud", - "teoli", - "Ali.Talib" - ] - }, - "Web/Guide/الرسومات": { - "modified": "2019-03-18T21:43:50.204Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Web/HTML": { - "modified": "2019-09-11T08:59:54.831Z", - "contributors": [ - "SphinxKnight" - ] - }, - "Web/HTML/Element/input": { - "modified": "2020-10-15T22:35:12.617Z", - "contributors": [ - "chrisdavidmills" - ] - }, - "Web/HTML/Element/input/radio": { - "modified": "2020-10-15T22:35:10.964Z", - "contributors": [ - "mhayajneh" - ] - }, - "Web/HTML_لغة_ترميز_النص_الفائق": { - "modified": "2019-09-11T08:10:23.337Z", - "contributors": [ - "SphinxKnight", - "aminezouhair", - "ahmadnourallah", - "antaraz" - ] - }, - "Web/HTTP": { - "modified": "2019-12-23T16:16:43.680Z", - "contributors": [ - "syednomanfaakhir", - "aminezouhair", - "ahmadnourallah", - "ahmadmayahi" - ] - }, - "Web/HTTP/Basics_of_HTTP": { - "modified": "2019-03-18T21:20:43.883Z", - "contributors": [ - "ExE-Boss" - ] - }, - "Web/HTTP/Basics_of_HTTP/MIME_types": { - "modified": "2019-03-18T21:20:43.648Z", - "contributors": [ - "sideshowbarker" - ] - }, - "Web/HTTP/Basics_of_HTTP/MIME_types/Common_types": { - "modified": "2020-02-28T13:10:36.312Z", - "contributors": [ - "chrisdavidmills", - "SphinxKnight", - "bz-a" - ] - }, - "Web/HTTP/Connection_management_in_HTTP_1.x": { - "modified": "2020-06-22T06:07:59.299Z", - "contributors": [ - "semsm128" - ] - }, - "Web/HTTP/Headers": { - "modified": "2019-12-03T06:31:26.128Z", - "contributors": [ - "Malvoz" - ] - }, - "Web/HTTP/Overview": { - "modified": "2020-10-30T02:06:11.197Z", - "contributors": [ - "gms.2000.9.12" - ] - }, - "Web/JavaScript": { - "modified": "2020-05-08T07:16:04.132Z", - "contributors": [ - "joree20003", - "SphinxKnight", - "abdu56", - "ahmadnourallah", - "zidanlab", - "Boukhtam", - "maherv", - "DevOsamaMohamed", - "Benseidseid", - "kadimi", - "walidov", - "riva7", - "ralshammrei2", - "NISHANTSHRESHTH" - ] - }, - "Web/JavaScript/About_JavaScript": { - "modified": "2020-03-12T19:47:47.486Z", - "contributors": [ - "HeSoKa05" - ] - }, - "Web/JavaScript/Guide": { - "modified": "2020-03-12T19:42:18.289Z", - "contributors": [ - "Benseidseid", - "Naaman", - "SphinxKnight" - ] - }, - "Web/JavaScript/Guide/Control_flow_and_error_handling": { - "modified": "2020-03-12T19:45:33.664Z", - "contributors": [ - "Youssef-Belmeskine" - ] - }, - "Web/JavaScript/Guide/Grammar_and_types": { - "modified": "2020-03-12T19:42:15.788Z", - "contributors": [ - "atefBB", - "Youssef-Belmeskine", - "Benseidseid", - "Naaman", - "jwasily" - ] - }, - "Web/JavaScript/Guide/Introduction": { - "modified": "2020-03-12T19:42:21.553Z", - "contributors": [ - "Youssef-Belmeskine", - "Benseidseid", - "Naaman" - ] - }, - "Web/JavaScript/Guide/Loops_and_iteration": { - "modified": "2020-03-12T19:45:31.602Z", - "contributors": [ - "Youssef-Belmeskine" - ] - }, - "Web/JavaScript/Guide/Regular_Expressions": { - "modified": "2020-03-12T19:47:23.942Z", - "contributors": [ - "Youssef-Belmeskine", - "SafaAlfulaij" - ] - }, - "Web/JavaScript/Guide/Working_with_Objects": { - "modified": "2020-03-12T19:45:29.171Z", - "contributors": [ - "Youssef-Belmeskine", - "SphinxKnight" - ] - }, - "Web/JavaScript/Guide/الدوال": { - "modified": "2020-03-12T19:44:03.918Z", - "contributors": [ - "Youssef-Belmeskine", - "Benseidseid" - ] - }, - "Web/JavaScript/Introduction_to_Object-Oriented_JavaScript": { - "modified": "2020-03-12T19:44:59.681Z", - "contributors": [ - "HeSoKa05", - "Youssef-Belmeskine", - "mustafasalah" - ] - }, - "Web/JavaScript/Reference": { - "modified": "2020-03-12T19:39:44.947Z", - "contributors": [ - "maherv", - "LJHarb" - ] - }, - "Web/JavaScript/Reference/Classes": { - "modified": "2020-10-15T22:05:06.152Z", - "contributors": [ - "rwaldron" - ] - }, - "Web/JavaScript/Reference/Classes/constructor": { - "modified": "2020-10-15T22:05:06.518Z", - "contributors": [ - "MohammedAlaa88" - ] - }, - "Web/JavaScript/Reference/Errors": { - "modified": "2020-03-12T19:48:15.925Z", - "contributors": [ - "Sheppy" - ] - }, - "Web/JavaScript/Reference/Errors/Unexpected_type": { - "modified": "2020-03-12T19:48:14.682Z", - "contributors": [ - "mohamadlounnas" - ] - }, - "Web/JavaScript/Reference/Global_Objects": { - "modified": "2020-03-12T19:39:41.981Z", - "contributors": [ - "SphinxKnight", - "fscholz" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Array": { - "modified": "2019-03-23T22:26:28.438Z", - "contributors": [ - "DevOsamaMohamed" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Array/isArray": { - "modified": "2019-06-23T15:06:41.749Z", - "contributors": [ - "GawiSh97", - "DevOsamaMohamed" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Array/join": { - "modified": "2019-03-23T22:26:12.736Z", - "contributors": [ - "Abu3safeer", - "DevOsamaMohamed" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Array/pop": { - "modified": "2019-03-23T22:26:21.251Z", - "contributors": [ - "Dr-Rakcha" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Array/reverse": { - "modified": "2019-03-23T22:26:07.581Z", - "contributors": [ - "DevOsamaMohamed" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Array/slice": { - "modified": "2020-10-15T22:31:18.515Z", - "contributors": [ - "suqbit" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Date": { - "modified": "2019-03-23T23:09:44.322Z", - "contributors": [ - "GawiSh97", - "bekti", - "fscholz" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Date/UTC": { - "modified": "2020-10-15T22:07:16.359Z", - "contributors": [ - "GawiSh97" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Date/getDate": { - "modified": "2020-10-15T22:07:16.005Z", - "contributors": [ - "GawiSh97" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Date/now": { - "modified": "2020-10-15T21:56:36.366Z", - "contributors": [ - "GawiSh97", - "Abu3safeer" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Date/parse": { - "modified": "2020-10-15T22:07:15.028Z", - "contributors": [ - "GawiSh97" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Date/setDate": { - "modified": "2020-10-15T22:07:16.408Z", - "contributors": [ - "GawiSh97" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Function": { - "modified": "2020-10-15T22:05:05.412Z", - "contributors": [ - "danielsamuels" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Function/call": { - "modified": "2020-10-15T22:05:04.168Z", - "contributors": [ - "ViNoS-ab", - "Youssef-Belmeskine", - "MohammedAlaa88" - ] - }, - "Web/JavaScript/Reference/Global_Objects/JSON": { - "modified": "2019-03-23T23:01:55.663Z", - "contributors": [ - "Mingun" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Map": { - "modified": "2020-10-15T22:31:39.296Z", - "contributors": [ - "mohamed.yahya.zakria73" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Math": { - "modified": "2020-10-15T22:14:04.029Z", - "contributors": [ - "SphinxKnight", - "ALSULTAN" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Object": { - "modified": "2020-10-15T22:05:05.541Z", - "contributors": [ - "stmoreau" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Object/constructor": { - "modified": "2020-10-15T22:05:03.728Z", - "contributors": [ - "MohammedAlaa88" - ] - }, - "Web/JavaScript/Reference/Global_Objects/String": { - "modified": "2020-10-15T21:56:27.422Z", - "contributors": [ - "Qrsan", - "fscholz" - ] - }, - "Web/JavaScript/Reference/Global_Objects/String/startsWith": { - "modified": "2020-10-15T22:22:14.192Z", - "contributors": [ - "Mourad_Ouchane" - ] - }, - "Web/JavaScript/Reference/Global_Objects/الارقام": { - "modified": "2020-10-10T09:54:31.841Z", - "contributors": [ - "Flemer" - ] - }, - "Web/JavaScript/Reference/Operators": { - "modified": "2020-12-07T20:30:16.758Z", - "contributors": [ - "Arous" - ] - }, - "Web/JavaScript/Reference/Operators/Destructuring_assignment": { - "modified": "2020-10-15T22:30:09.713Z", - "contributors": [ - "hasheemeg" - ] - }, - "Web/JavaScript/Reference/Operators/Object_initializer": { - "modified": "2020-03-12T19:45:32.164Z", - "contributors": [ - "poode", - "Youssef-Belmeskine" - ] - }, - "Web/JavaScript/Reference/Operators/Operator_Precedence": { - "modified": "2020-03-12T19:49:40.482Z", - "contributors": [ - "suqbit" - ] - }, - "Web/JavaScript/Reference/Operators/new": { - "modified": "2020-10-15T22:33:30.546Z", - "contributors": [ - "noqp312" - ] - }, - "Web/JavaScript/Reference/Operators/this": { - "modified": "2020-10-15T22:29:18.195Z", - "contributors": [ - "h6t9m205" - ] - }, - "Web/JavaScript/Reference/Statements": { - "modified": "2020-03-12T19:44:08.522Z", - "contributors": [ - "fscholz" - ] - }, - "Web/JavaScript/Reference/Statements/return": { - "modified": "2020-11-23T19:27:26.302Z", - "contributors": [ - "skarfstri" - ] - }, - "Web/JavaScript/Reference/الدوال": { - "modified": "2020-03-12T19:44:04.047Z", - "contributors": [ - "Benseidseid" - ] - }, - "Web/JavaScript/Reference/الدوال/get": { - "modified": "2020-10-15T22:32:22.148Z", - "contributors": [ - "abdwfawzy985" - ] - }, - "Web/MathML": { - "modified": "2019-03-23T22:01:47.703Z", - "contributors": [ - "ahmadnourallah" - ] - }, - "Web/SVG": { - "modified": "2019-03-23T23:09:34.687Z", - "contributors": [ - "plgatto" - ] - }, - "Web/SVG/Attribute": { - "modified": "2019-03-23T23:09:27.790Z", - "contributors": [ - "stevenvachon" - ] - }, - "Web/Tutorials": { - "modified": "2019-03-23T22:49:35.256Z", - "contributors": [ - "sami-assasa", - "ahmadnourallah", - "jwhitlock", - "hamza-mostafa", - "antaraz" - ] - }, - "Web/حماية": { - "modified": "2019-09-10T16:31:27.104Z", - "contributors": [ - "SphinxKnight", - "aminezouhair" - ] - }, - "Web/مرجع.": { - "modified": "2020-09-14T07:03:21.633Z", - "contributors": [ - "coderclouds2018", - "ashqaljnoob07", - "Syrian-Guy" - ] - }, - "Web_Development": { - "modified": "2019-03-23T23:25:33.143Z", - "contributors": [ - "ethertank" - ] - }, - "Web_Development/Mobile": { - "modified": "2019-03-23T23:25:26.627Z", - "contributors": [ - "BenB" - ] - }, - "heesfoord007": { - "modified": "2019-03-23T22:50:44.174Z", - "contributors": [ - "heesfoord007" - ] - }, - "أحداث_مكتبة_jQuery": { - "modified": "2019-03-23T23:08:54.898Z", - "contributors": [ - "Syrian-Guy" - ] - }, - "مكتبة_جي_كويري": { - "modified": "2019-03-23T23:08:46.056Z", - "contributors": [ - "Syrian-Guy" - ] - }, - "واصفة_SpellCheck_الجديدة_في_HTML5": { - "modified": "2019-03-23T23:11:43.327Z", - "contributors": [ - "Syrian-Guy" - ] - }, - "واصفة_العنوان_في_HTML": { - "modified": "2019-03-23T23:11:41.974Z", - "contributors": [ - "Syrian-Guy" - ] - } -} \ No newline at end of file diff --git a/files/ar/archive/beginner_tutorials/index.html b/files/ar/archive/beginner_tutorials/index.html deleted file mode 100644 index ea5374f1e3..0000000000 --- a/files/ar/archive/beginner_tutorials/index.html +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Beginner tutorials -slug: Archive/Beginner_tutorials -tags: - - NeedsTranslation - - TopicStub -translation_of: Archive/Beginner_tutorials ---- -

This page includes archived beginners tutorials, from various places around MDN.

- -
Creating reusable content with CSS and XBL
This page illustrates how you can use CSS in Mozilla to improve the structure of complex applications, making code and resources more easily reusable.
Underscores in class and ID Names
Summary: The use of the underscore character in CSS can lead to major display problems in multiple browsers. Learn why this is so, and how to keep your sites from being bitten by this problem. This technical note examines the use of underscores in CSS, and why they should be generally avoided in most circumstances.
XML data
This page contains an example of how you can use CSS with XML data.
XUL user interfaces
This page illustrates Mozilla's specialized language for creating user interfaces.
diff --git a/files/ar/archive/beginner_tutorials/underscores_in_class_and_id_names/index.html b/files/ar/archive/beginner_tutorials/underscores_in_class_and_id_names/index.html deleted file mode 100644 index 9cb8cb0874..0000000000 --- a/files/ar/archive/beginner_tutorials/underscores_in_class_and_id_names/index.html +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: الشرطات السفلية (_) في اسماء محددات الاصناف والمعرفات (Class & ID) -slug: Archive/Beginner_tutorials/Underscores_in_class_and_ID_Names -translation_of: Archive/Beginner_tutorials/Underscores_in_class_and_ID_Names ---- -
-

ملاحظة: لقد تم تحسين دعم المتصفح للشرطة السفلية (_) في CSS بشكل كبير منذ تاريخ نشر هذه المقالة في عام 2001 ولم تعد التوصية التالية دقيقة بالنسبة لمعظم الظروف

-
- -

Summary: The use of the underscore character in CSS can lead to major display problems in multiple browsers. Learn why this is so, and how to keep your sites from being bitten by this problem. تدرس هذه المذكرة التقنية استخدام الشرطات السفلية (_) في CSS ، ولماذا يجب تجنب استخدامها في معظم الظؤوف

- -

يعد استخدام الشرطة السفلية (_)  في اسماء المتغيرات والدوال (الوظائف)  امراً شائعاَ نوعا ما في العديد من لغات البرمجة. على سبيل المثال دالة وظيفتها "الحصول على طول سلسلة نصية" قد تتم تسميتها get_string_length او متحول يمثل عدد الاشخاص الذين قالمو بالتصويت قد يسمى voted_Republican 

- -

نظرا لهذه الحقيقة، غالبا مايحاول المطورين الذين يكتبون CSS استخدام الشرطة السفلية باسلوب مماثل في تسمية المعرفات ومحددات الاصناف (Class & ID). ولا ينبغي القيام بذلك. على الرغم من ان الشرطة السفلية (_) مسموح بها تقنيا في اسماء المعرفات ومحددات الاصناف حتى تاريخ كتابة هذه السطور، هناك العديد من الاسباب التاريخة والعملية التي توضح اسباب وجوب تجنب استخدام الشرطة السفلية (_)

- -

مواصفات CSS1 التي تم اصدرت في شكلها النهائي عام 1996 لا تسمح باستخدام الشرطة السفلية (_) في اسماء المعرفات ومحددات الاصناف مالم تستخدم حرف الهروب (escaped) على النحو التالي:

- -
p.urgent\_note {color: maroon;}
- -

هذا لم يكن مدعوما جيدا من المتصفحات في ذلك الوقت ومع ذلك هذه الممارسة لم يسبق لها مثيل. 

- -

CSS2 التي تم اصدرت في عام 1998 ايضا منعت استخدام الشرطة السفلية (_) في أسماء المعرفات ومحددات الاصناف ومع ذلك فان تصحيح الاخطاء في المواصفات التي تم اصدارها عام 2001 جعلت استخدام الشرطة السفلية مسموحاً لاول مرة. مما ادى للاسف لتعقيد المشهد المعقد بالفعل 

- -

دعم الحقائق

- -

بين الاخطاء في التفيذ والتغيرات في المواصفات، سلوك المتصفحات في ما يتعلق باستخدام الشرطات السفلية معقد الى حد ما.

- - - -

التوصية

- -

لان دعم الشرطة السفلية غير متناسق للغاية في المتصفحات الحالية وكذلك الاصدارات القديمة منها، ينصح المؤلفون بشدة بتجبن استخدام الشرطة السفلية في اسماء المعرفات ومحددات الاصناف.

- -

البديل الشائع لها هو الحرف الواصلة (-)  كما في:

- -
p.urgent-note {color: maroon;}
- -

 يختار العديد من المطورين الكتابة بطريقة حالة الجمل (Camle Case) مثال:

- -
p.urgentNote {color: maroon;}
- -

If the initial-cap approach is used, however, remember that class and ID names are also supposed to be case-sensitive. See the tech note "Case Sensitivity in class and id Names" for more details.

- -
-

Original Document Information

- - -
diff --git a/files/ar/archive/css3/index.html b/files/ar/archive/css3/index.html deleted file mode 100644 index 6314a611f9..0000000000 --- a/files/ar/archive/css3/index.html +++ /dev/null @@ -1,976 +0,0 @@ ---- -title: CSS3 -slug: Archive/CSS3 -translation_of: Archive/CSS3 ---- -

Css3 هو أحدث تطوير للغة أوراق الأنماط المتتالية و تهدف لتوسيع لغة CSS2.1.

- -

فيها العديد من التحديثات الجديدة المنتظرة ، مثل الزوايا المدورة ، الظلال، تدرج الألوان ، و التحريك، بالأضافة إلى تخطيطات جديدة كالتخطيط المتعدد الأعمدة و تخطيط الصندوق المرن ، و تخطيط الشبكة.

- -

الأجزاء الاختبارية التي لها سابقة خاصة بالمستعرض يجب إزالتها أو تجنبها في المنتج النهائي، أو استعمالها بحذر لأنه يمكن أن تتغير صيغتها بالمستقبل .

- -

Modules and the standardization process

- -

CSS Level 2 needed 9 years, from August 2002 to June 2011 to reach the Recommendation status. This was due to the fact that a few secondary features hold back the whole specification. In order to accelerate the standardization of non-problematic features, the CSS Working Group of the W3C, in a decision referred as the Beijing doctrine, divided CSS in smaller components called modules . Each of these modules is now an independent part of the language and moves towards standardization at its own pace. While some modules are already W3C Recommendations, other still are early Working Drafts. New modules are also added when new needs are identified.

- -

CSS Modules and Snapshots as defined since CSS3 Formally, there is no CSS3 standard per se . Each module being standardized independently, the standard CSS consists of CSS2.1 amended and extended by the completed modules, not necessary all with the same level number. At each point of time, a snapshot of the CSS standard can be defined, listing CSS2.1 and the mature modules.

- -

The W3 consortium periodically publishes such snapshots, like in 2007 or 2010.

- -

Though today no module with a level greater than 3 is standardized, this will change in the future. Some modules, like Selectors 4 or CSS Borders and Backgrounds Level 4 already have an Editor's Draft, though they haven't yet reached the First Published Working Draft status.

- -

CSS modules status

- -

Stable modules

- -

A few CSS modules are already fairly stable and have reached one of the three recommendation level of the CSSWG: Candidate Recommendation, Proposed Recommendation or Recommendation. These can be used without prefix and are pretty stable, though a few features can still be dropped at the Candidate Recommendation stage.

- -

These modules extend and amend the CSS2.1 specification which build the core of the specification. Together with it, they are the current snapshot of the CSS specification.

- - - - - - - - - - - -
{{ SpecName("CSS3 Colors", "", "") }}{{ Spec2("CSS3 Colors") }} since June 7th, 2011
-

Adds the {{ cssxref("opacity") }} property, and the hsl(), hsla(), rgba() and rgb() functions to create {{cssxref("<color>")}} values. It also defines the currentColor keyword as a valid color.

- -

The transparent color is now a real color (thanks to the support for the alpha channel) and is a now an alias for rgba(0,0,0,0.0) .

- -

It deprecates the system-color keywords that shouldn't be used in a production environment anymore.

-
- - - - - - - - - - - -
{{ SpecName("CSS3 Selectors", "", "") }}{{ Spec2("CSS3 Selectors") }} since September 29th, 2011
-

Adds:

- -
    -
  • Substring matching attribute selectors, E[attribute^="value"], E[attribute$="value"], E[attribute*="value"] .
  • -
  • New pseudo-classes: {{ cssxref(":target") }}, {{ cssxref(":enabled") }} and {{ cssxref(":disabled") }}, {{ cssxref(":checked") }}, {{ cssxref(":indeterminate") }}, {{ cssxref(":root") }}, {{ cssxref(":nth-child") }} and {{ cssxref(":nth-last-child") }}, {{ cssxref(":nth-of-type") }} and {{ cssxref(":nth-last-of-type") }}, {{ cssxref(":last-child") }}, {{ cssxref(":first-of-type") }} and {{ cssxref(":last-of-type") }}, {{ cssxref(":only-child") }} and {{ cssxref(":only-of-type") }},{{ cssxref(":empty") }}, and {{ cssxref(":not") }}.
  • -
  • Pseudo-elements are now characterized by two colons rather then one: :after becomes {{ cssxref("::after") }}, :before becomes {{ cssxref("::before") }}, :first-letter becomes {{ cssxref("::first-letter") }}, and :first-line becomes {{ cssxref("::first-line") }}.
  • -
  • The new general sibling combinator ( h1~pre ).
  • -
-
- -

The next iteration of the Selectors specification is already in progress, though it still hasn't reached the First Public Working Draft stage.

- - - - - - - - - - - -
{{ SpecName("CSS3 Namespaces", "", "") }}{{ Spec2("CSS3 Namespaces") }} since September 29th, 2011
-

Adds the support for the XML Namespaces by defining the notion of CSS qualified name, using the ' | ' syntax and adding the {{ cssxref("@namespace") }} CSS at-rule.

-
- - - - - - - - - - - -
{{ SpecName("CSS3 Media Queries", "", "") }}{{ Spec2("CSS3 Media Queries") }} since June 19th, 2012
-

Extends the former media type ( print, screen, ) to a full language allowing queries on the device media capabilities like only screen and (color) .

- -

Media queries are not only used in CSS document but also in some attributes of HTML Elements, like the {{ htmlattrxref("media","link") }} attribute of the {{ HTMLElement("link") }} element.

-
- -

The next iteration of this specification is in the work, allowing to tailor a Web site regarding the input methods available on the user agent, with new media features like hover or pointer. Detection of EcmaScript support, using the script media features is also proposed.

- - - - - - - - - - - -
{{ SpecName("CSS3 Style", "", "") }}{{ Spec2("CSS3 Style") }} since November 7th, 2013
Formally defines the syntax of the content of the HTML style global attribute.
- - - - - - - - - - - -
{{ SpecName("CSS3 Backgrounds", "", "") }}{{ Spec2("CSS3 Backgrounds") }}
-

Adds:

- -
    -
  • Support, on backgrounds, for any type of {{cssxref("<image>")}}, and not only for uri() defined ones.
  • -
  • Support for multiple background images.
  • -
  • The {{ cssxref("background-repeat") }} space and round values, and for the 2-value syntax of this CSS property.
  • -
  • The {{ cssxref("background-attachment") }} local value.
  • -
  • The CSS {{ cssxref("background-origin") }}, {{ cssxref("background-size") }}, and {{ cssxref("background-clip") }} properties.
  • -
  • 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.
  • -
  • Support for the use of an {{cssxref("<image>")}} 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.
  • -
  • Support for shadows of the element with the CSS {{ cssxref("box-shadow") }} property.
  • -
-
- -

The CSS4 iteration of the Backgrounds and Borders specification 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).

- - - - - - - - - - - -
{{ SpecName("CSS3 Multicol", "", "") }}{{ Spec2("CSS3 Multicol") }}
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") }}.
- - - - - - - - - - - -
{{ SpecName("CSS3 Speech", "", "") }}{{ Spec2("CSS3 Speech") }}
Defines the speech media type, an aural formatting model and numerous properties specific for speech-rendering user agents.
- - - - - - - - - - - -
{{ SpecName("CSS3 Images", "", "") }}{{ Spec2("CSS3 Images") }}
-

Defines the {{cssxref("<image>")}} data type.

- -

Extends the url() syntax to support image slices using media fragments.

- -

Adds:

- -
    -
  • The dppx unit to the {{cssxref("<resolution>")}} data type.
  • -
  • The image() function as a more flexible alternative to url() to define an image from an url.
    - At risk : due to insufficient browser support, standardization of the image() function may be postponed to the next iteration of this module .
  • -
  • Support for linear-gradient(), repeating-linear-gradient(), radial-gradient() and repeating-radial-gradient().
  • -
  • The ability to define how a replaced element should fit in its element, using the CSS {{ cssxref("object-fit") }} property.
    - At risk : due to insufficient browser support, standardization of the {{ cssxref("object-fit") }} and property may be postponed to the next iteration of this module .
  • -
  • The ability to override the resolution and orientation of an external image using the CSS {{ cssxref("image-resolution") }} and {{ cssxref("image-orientation") }} properties.
    - At risk : due to insufficient browser support, standardization of the {{ cssxref("image-resolution") }} and {{ cssxref("image-orientation") }} properties may be postponed to the next iteration of this module .
  • -
-
- -

The CSS Image Values and Replaced Content Level 4 which will supersede CSS Image Level 3 is in development and is a {{Spec2("CSS4 Images")}}.

- - - - - - - - - - - -
{{ SpecName("CSS3 Values", "", "") }}{{ Spec2("CSS3 Values") }}
-

Makes initial and inherit keywords usable on any CSS property.

- -

Formally defines the CSS data types of CSS 2.1, that were implicitely defined by their grammar token and some textual precisions.

- -

Adds:

- -
    -
  • Definition for new font-relative length units: rem and ch .
  • -
  • Definition for viewport-relative length units: vw, vh, vmax, and vmin .
  • -
  • Precision about the real size of the absolute length units, which are not really absolute, but defined in relation with the reference pixel .
  • -
  • Definition for {{ cssxref("<angle>") }}, {{cssxref("<time>")}}, {{cssxref("<frequency>")}}, {{cssxref("<resolution>")}}.
  • -
  • Normative value to the definition of {{cssxref("<color>")}}, {{cssxref("<image>")}}, and {{ cssxref("<position>") }}.
  • -
  • Definition for the {{ cssxref("calc", "calc()") }}, {{ cssxref("attr", "attr()")}}, and toggle() functional notations.
    - At risk: due to insufficient browser support, standardization of the calc(), attr(), and toggle() functional notations may be postponed to the next iteration of this module.
  • -
-
- -

Several types definition, like <ident> and <custom-ident>, have been deferred to CSS Values and Units Module Level 4.

- - - - - - - - - - - -
{{ SpecName("CSS3 Flexbox", "", "") }}{{ Spec2("CSS3 Flexbox") }}
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") }}.
- - - - - - - - - - - -
{{ SpecName("CSS3 Conditional", "", "") }}{{ Spec2("CSS3 Conditional") }}
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()")}}.
- - - - - - - - - - - -
{{ SpecName("CSS3 Text Decoration", "", "") }}{{ Spec2("CSS3 Text Decoration") }}
-

Extends:

- -
    -
  • 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.
  • -
- -

Adds:

- -
    -
  • 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.
  • -
  • Support for script shadows with the CSS {{ cssxref("text-shadow") }} property.
  • -
- -

Precises:

- -
    -
  • The paint order of the decorations.
  • -
- -

At risk: due to insufficient browser support, standardization of the text-decoration-skip, line positioning rules and the ability to place both emphasis marks and ruby above the same base text may be postponed to the next iteration of this module.

-
- - - - - - - - - - - -
{{ SpecName("CSS3 Fonts", "", "") }}{{ Spec2("CSS3 Fonts") }}
-

Amends the CSS2.1 Font matching algorithm to be closer to what is really implemented.

- -

Adds:

- -
    -
  • Support for downloadable fonts via the CSS {{ cssxref("@font-face") }} at-rule.
  • -
  • The control of the contextual inter-glyph spacing via the CSS {{ cssxref("font-kerning") }} property.
  • -
  • The choice of language-specific glyphs via the CSS {{ cssxref("font-language-override") }} property.
  • -
  • The choice of glyphs with specific OpenType features via the CSS {{ cssxref("font-feature-settings") }} property.
  • -
  • The control of the aspect ratio to use when fallback fonts are selected via the CSS {{ cssxref("font-size-adjust") }} property.
  • -
  • 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.
  • -
  • The control of the automatic generation of an oblique or bold face when none are found via the CSS {{ cssxref("font-synthesis") }} property.
  • -
-
- - - - - - - - - - - -
{{ SpecName("CSS3 Cascade", "", "") }}{{ Spec2("CSS3 Cascade") }}
-

Adds:

- -
    -
  • The initial, unset values for properties.
  • -
  • The CSS {{ cssxref("all") }} property.
  • -
  • The scoping mechanism.
  • -
- -

Precises:

- -
    -
  • Interaction of media-dependent @import statements and style sheet loading requirements.
  • -
-
- - - - - - - - - - - -
{{ SpecName("CSS3 Writing Modes", "", "") }}{{ Spec2("CSS3 Writing Modes") }}
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.
- - - - - - - - - - - -
{{ SpecName("CSS Shapes", "", "") }}{{ Spec2("CSS Shapes") }}
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.
- - - - - - - - - - - -
{{ SpecName("CSS Masks", "", "") }}{{ Spec2("CSS Masks") }}
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.
- -

Modules in the refining phase

- -

Specifications that are deemed to be in the refining phase 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.

- - - - - - - - - - - -
{{ SpecName("Web Animations", "", "") }}{{ Spec2("Web Animations") }}
 
- - - - - - - - - - - -
{{ SpecName("CSS3 Counter Styles", "", "") }}{{ Spec2("CSS3 Counter Styles") }}
 
- - - - - - - - - - - -
{{ SpecName("Compositing", "", "") }}{{ Spec2("Compositing") }}
 
- - - - - - - - - - - -
{{ SpecName("CSS3 Syntax", "", "") }}{{ Spec2("CSS3 Syntax") }}
Precises how charsets are determined; minor changes in parsing and tokenization algorithms.
- - - - - - - - - - - -
{{ SpecName("CSS Will Change", "", "") }}{{ Spec2("CSS Will Change") }}
 
- - - - - - - - - - - -
{{ SpecName("CSS3 Transitions", "", "") }}{{ Spec2("CSS3 Transitions") }}
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.
- - - - - - - - - - - -
{{ SpecName("CSS3 Animations", "", "") }}{{ Spec2("CSS3 Animations") }}
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.
- - - - - - - - - - - -
{{ SpecName("CSS3 Transforms", "", "") }}{{ Spec2("CSS3 Transforms") }}
-

Adds:

- -
    -
  • 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: matrix(), translate(), translateX(), translateY(), scale(), scaleX(), scaleY(), rotate(), skewX(), and skewY().
  • -
  • 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: matrix 3d(), translate3d(), translateZ()scale3d(), scaleZ(), rotate3d(), rotateX()rotateY(), rotateZ(), and perspective().
  • -
- -

Note: this specification is a merge of CSS 2D-Transforms, CSS 3D-Transforms and SVG transforms.

-
- - - - - - - - - - - -
{{ SpecName("CSS3 Fragmentation", "", "") }}{{ Spec2("CSS3 Fragmentation") }}
Defines how partitions of a Web page should happen, that is page, column breaks, and widows and orphans handling. -

Adds:

- -
    -
  • 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.
  • -
-
- - - - - - - - - - - -
{{ SpecName("CSS3 Text", "", "") }}{{ Spec2("CSS3 Text") }}
-

Extends:

- -
    -
  • the CSS {{ cssxref("text-transform") }} property with the value full-width.
  • -
  • the CSS {{ cssxref("text-align") }} property with the value start, end, start end, and match-parent for a better support of documents with multiple directionalities of text.
  • -
  • the CSS {{ cssxref("text-align") }} property with a {{cssxref("<string>")}} value to align on that character. This is useful to align number on the decimal point.
  • -
  • the CSS {{ cssxref("word-spacing") }} and {{ cssxref("letter-spacing") }} properties with range constraints to control flexibility in justification.
  • -
- -

Adds:

- -
    -
  • Control on how whitespaces are displayed using the CSS {{ cssxref("text-space-collapse") }} and {{ cssxref("tab-size") }} properties.
  • -
  • 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.
  • -
  • Control on how justification is happening, in order to support more type of scripts, using the CSS {{ cssxref("text-justify") }} property.
  • -
  • Control on edge effect using the CSS {{ cssxref("text-indent") }} and {{ cssxref("hanging-punctuation") }} properties.
  • -
-
- -

A few features present in early CSS Text Level 3 draft have being postponed to the next iteration of this module .

- - - - - - - - - - - -
{{ SpecName("CSS3 Variables", "", "") }}{{ Spec2("CSS3 Variables") }}
Defines a mechanism allowing to define variables in CSS.
- - - - - - - - - - - -
{{ SpecName("Compositing", "", "") }}{{ Spec2("Compositing") }}
 
- -

Modules in the revising phase

- -

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.

- - - - - - - - - - - -
{{ SpecName("CSS3 Basic UI", "", "") }}{{ Spec2("CSS3 Basic UI") }}
-

Adds:

- -
    -
  • The ability to tweak the box model using the CSS {{ cssxref("box-sizing") }} property.
    - At risk: due to insufficient browser support, standardization of the padding-box value may be postponed to the next iteration of this module .
  • -
  • 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.
    - At risk: 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 the next iteration of this module .
  • -
  • Support for icons, defined by the CSS {{ cssxref("icon") }} property simultaneously with the new icon value of the CSS {{ cssxref("content") }} property.
    - At risk: due to insufficient browser support, standardization of the {{ cssxref("icon") }} property and the icon value may be postponed to CSS4.
  • -
  • Support for the CSS {{ cssxref("outline-offset") }} property giving more control on the position of the outline.
  • -
  • Support for the CSS {{ cssxref("resize") }} property allowing Web authors to control if and how elements should be resized.
  • -
  • Support for the CSS {{ cssxref("text-overflow") }} property defining how text overflows, if needed.
    - At risk: due to insufficient browser support, the 2-value syntax of this property as well as the support for {{cssxref("<string>")}} values may be postponed to the next iteration of this module .
  • -
  • The ability to define the hotspot of a cursor as well as the new none, context-menu, cell, vertical-text, alias, copy, no-drop, not-allowed, nesw-resize, nwse-resize, col-resize, row-resize, all-scroll, zoom-in, zoom-out, extending the {{ cssxref("cursor") }} property.
  • -
  • The ability to specify the sequential navigation order (that is the tabbing order ) using the CSS {{ cssxref("nav-index") }}, {{ cssxref("nav-up") }}, {{ cssxref("nav-right") }}, {{ cssxref("nav-left") }}, {{ cssxref("nav-down") }} properties.
    - At risk: due to insufficient browser support, standardization of the navigation properties may be postponed to the next iteration of this module .
  • -
  • The ability to control the usage of an IME editor, using the CSS {{ cssxref("ime-mode") }} property.
    - At risk: due to insufficient browser support, standardization of the {{ cssxref("ime-mode") }} property may be postponed to the next iteration of this module .
  • -
-
- -

An early list of what could be in the next iteration of the CSS Basic User Interface Module is available.

- - - - - - - - - - - -
{{ SpecName("CSS3 Grid", "", "") }}{{ Spec2("CSS3 Grid") }}
Add a grid layout to the CSS display 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")}}.
- - - - - - - - - - - -
{{ SpecName("CSS3 Box Alignment", "", "") }}{{ Spec2("CSS3 Box Alignment") }}
 
- - - - - - - - - - - -
{{ SpecName("CSS3 Paged Media", "", "") }}{{ Spec2("CSS3 Paged Media") }}
 
- - - - - - - - - - - -
{{ SpecName("CSSOM View", "", "") }}{{ Spec2("CSSOM View") }}
 
- - - - - - - - - - - -
{{ SpecName("CSS4 Selectors", "", "") }}{{ Spec2("CSS4 Selectors") }}
 
- -

Modules in the exploring phase

- - - - - - - - - - - -
{{ SpecName("CSS4 Images", "", "") }}{{ Spec2("CSS4 Images") }}
-

Extends:

- -
    -
  • the image() functional notation to describe the directionality of the image (rtl or ltr), allowing for bidi-sensitive images.
  • -
  • the {{ cssxref("image-orientation") }} property by adding the keyword from-image, allowing to follow EXIF data stored into images to be considered.
  • -
- -

Adds:

- -
    -
  • the image-set() functional notation to allow the definition to equivalent images at different resolution allowing for resolution-negotiated selection of images.
  • -
  • the element() functional notation allowing the use of part of the page as image.
  • -
  • the cross-fade() functional notation allowing to refer to intermediate images when transitioning between two images and defines the interpolation between two images.
  • -
  • the conic-gradient() and repeating-conic-gradient() functional notation describing a new type of gradient.
  • -
  • the {{cssxref("image-rendering")}} property that allow to define how resize of the object should be handled.
  • -
-
- - - - - - - - - - - -
{{ SpecName("CSS3 Device", "", "") }}{{ Spec2("CSS3 Device") }}
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.
- - - - - - - - - - - -
{{ SpecName("CSS3 GCPM", "", "") }}{{ Spec2("CSS3 GCPM") }}
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.
- - - - - - - - - - - -
{{ SpecName("CSS Exclusions", "", "") }}{{ Spec2("CSS Exclusions") }}
Extends the floats mechanism to define exclusion regions in any positioning scheme. Adds the notion of shapes, in which content must flows.
- - - - - - - - - - - -
{{ SpecName("CSS3 Lists", "", "") }}{{ Spec2("CSS3 Lists") }}
Extends the list counter mechanism so that list markers can be styled and Web developers can define new list counter schemes.
- - - - - - - - - - - -
{{ SpecName("CSS3 Regions", "", "") }}{{ Spec2("CSS3 Regions") }}
Defines a new mechanism allowing content to flow across, eventually non-contiguous, multiple areas called regions.
- - - - - - - - - - - -
{{ SpecName("CSS3 Device", "", "") }}{{ Spec2("CSS3 Device") }}
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.
- - - - - - - - - - - -
{{ SpecName("Filters 1.0", "", "") }}{{ Spec2("Filters 1.0") }}
 
- - - - - - - - - - - -
{{ SpecName("CSS3 Template", "", "") }}{{ Spec2("CSS3 Template") }}
 
- - - - - - - - - - - -
{{ SpecName("CSS3 Sizing", "", "") }}{{ Spec2("CSS3 Sizing") }}
 
- - - - - - - - - - - -
{{ SpecName("CSS Line Grid", "", "") }}{{ Spec2("CSS Line Grid") }}
 
- - - - - - - - - - - -
{{ SpecName("CSS3 Positioning", "", "") }}{{ Spec2("CSS3 Positioning") }}
 
- - - - - - - - - - - -
{{ SpecName("CSS3 Ruby", "", "") }}{{ Spec2("CSS3 Ruby") }}
 
- - - - - - - - - - - -
{{ SpecName("CSSOM", "", "") }}{{ Spec2("CSSOM") }}
 
- - - - - - - - - - - -
{{ SpecName("CSS3 Overflow", "", "") }}{{ Spec2("CSS3 Overflow") }}
 
- - - - - - - - - - - -
{{ SpecName("CSS3 Font Loading", "", "") }}{{ Spec2("CSS3 Font Loading") }}
 
- - - - - - - - - - - -
{{ SpecName("CSS3 Display", "", "") }}{{ Spec2("CSS3 Display") }}
 
- - - - - - - - - - - -
{{ SpecName("CSS Scope", "", "") }}{{ Spec2("CSS Scope") }}
 
- - - - - - - - - - - -
{{ SpecName("CSS4 Media Queries", "", "") }}{{ Spec2("CSS4 Media Queries") }}
 
- - - - - - - - - - - -
{{ SpecName("CSS Non-element Selectors", "", "") }}{{ Spec2("CSS Non-element Selectors") }}
 
- - - - - - - - - - - -
{{ SpecName("Geometry Interfaces", "", "") }}{{ Spec2("Geometry Interfaces") }}
 
- - - - - - - - - - - -
{{ SpecName("CSS3 Inline", "", "") }}{{ Spec2("CSS3 Inline") }}
 
- -

Modules in the rewriting phase

- -

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.

- - - - - - - - - - - -
{{ SpecName("CSS3 Box", "", "") }}{{ Spec2("CSS3 Box") }}
 
- - - - - - - - - - - -
{{ SpecName("CSS3 Content", "", "") }}{{ Spec2("CSS3 Content") }}
 
- - - - - - - - - - - -
{{ SpecName("CSS3 Inline Layout", "", "") }}{{ Spec2("CSS3 Inline Layout") }}
 
- -

 

diff --git a/files/ar/archive/index.html b/files/ar/archive/index.html deleted file mode 100644 index 4f4a70c023..0000000000 --- a/files/ar/archive/index.html +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: Archive of obsolete content -slug: Archive -tags: - - NeedsTranslation - - TopicStub -translation_of: Archive ---- -

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.

- -

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 not be used for building new Web sites or apps for modern browsers. It's here for historical reference only.

- -
-

Note to writers: 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 extremely 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 MDN Web Docs chat room before moving content here.

-
- -

{{SubpagesWithSummaries}}

- - - -

{{ListSubpages("/en-US/docs/Archive", 2, 0, 1)}}

diff --git a/files/ar/archive/mdn/index.html b/files/ar/archive/mdn/index.html deleted file mode 100644 index 9e550840e3..0000000000 --- a/files/ar/archive/mdn/index.html +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: MDN Archive -slug: Archive/MDN -tags: - - Archive - - MDN - - NeedsTranslation - - TopicStub -translation_of: Archive/MDN ---- -

{{MDNSidebar}}

- -
-

Obsolete
- This documentation is obsolete.

-
- -

The documentation listed below is archived, obsolete material about MDN itself.

- -

{{LandingPageListSubpages}}

diff --git a/files/ar/archive/meta_docs/index.html b/files/ar/archive/meta_docs/index.html deleted file mode 100644 index 52de2c8447..0000000000 --- a/files/ar/archive/meta_docs/index.html +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: MDN "meta-documentation" archive -slug: Archive/Meta_docs -tags: - - Archive - - MDN - - NeedsTranslation - - TopicStub -translation_of: Archive/Meta_docs ---- -

Here you'll find archived "meta-documentation"; that is, documentation about how to write documentation on MDN. The articles here are obsolete and should no longer be referenced; we are retaining them here for reference while we migrate some content to new places, but very little of this is useful.

-

{{LandingPageListSubpages}}

diff --git a/files/ar/archive/mozilla/index.html b/files/ar/archive/mozilla/index.html deleted file mode 100644 index 132253aacf..0000000000 --- a/files/ar/archive/mozilla/index.html +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Archived Mozilla and build documentation -slug: Archive/Mozilla -translation_of: Archive/Mozilla ---- -

In progress. These articles are archived, obsolete documents about Mozilla, Gecko, and the process of building Mozilla projects.

- -

{{SubpagesWithSummaries}}

diff --git a/files/ar/archive/mozilla/marketplace/index.html b/files/ar/archive/mozilla/marketplace/index.html deleted file mode 100644 index ded4fbc136..0000000000 --- a/files/ar/archive/mozilla/marketplace/index.html +++ /dev/null @@ -1,161 +0,0 @@ ---- -title: Firefox Marketplace -slug: Archive/Mozilla/Marketplace -tags: - - Apps - - Beginner - - Firefox OS - - Intro - - Landing - - Marketplace - - NeedsTranslation - - TopicStub - - 'l10n:priority' -translation_of: Archive/Mozilla/Marketplace ---- -

The Firefox Marketplace is an open and non-proprietary online marketplace for web apps. In this zone you'll find all the information you need to prepare and publish apps on the Firefox Marketplace. Find guidance on how to make apps successful, delivery options, publishing and updating apps, and the libraries and APIs to make use of Marketplace features.

- -

Mozilla is bringing its core values — openness, freedom, user choice — to the world of app publishing.

- -

Using standard Web technologies, languages, and tools, the Firefox Marketplace enables you to publish Open Web Apps. These apps can be packaged, running within Firefox OS, or hosted on your own web server. Published apps are available to users of Firefox OS phones wherever they are in the world. Users discover your apps easily in Firefox Marketplace using the featured apps section, app categories, and powerful search. Users are then able to install free apps instantly, or buy paid apps with the growing support for credit card payments and operator billing.

- -
-
-

Preparing for success

- -

Whether you're creating apps for pleasure or profit, you'll want people to discover, use, and enjoy them. This section explains how to spread the word and build communities of satisfied users.

- -

Publication options

- -

Packaged or Hosted, that is the question. Find out about delivering your app content and the options for making your apps available on Android devices and desktops, in addition to Firefox OS.

- -

Publishing apps

- -

Unleash your apps on the waiting world. Find out how to get your apps on Firefox Marketplace, including the processes for submitting your apps, the review process, updating your apps, monitoring their performance, and reviewing user feedback.

-
- -
-

Tools for app development

- -
-
Firefox Marketplace Libraries and APIs
-
Get an overview and find links to the libraries and APIs available to add features to your Marketplace apps.
-
App developer tools
-
Find a complete list of the tools you can use to make Open Web App development efficient and fun.
-
WebIDE
-
Your primary tool to test, deploy, and debug Firefox OS apps using the Firefox OS Simulator or a real Firefox OS device.
-
-
-
- -
-
-

Join the Marketplace community

- -
-
Choose your preferred method for joining the discussion:
- - -
- -
- -
-
-
- - - - diff --git a/files/ar/archive/mozilla/marketplace/publishing/submit/index.html b/files/ar/archive/mozilla/marketplace/publishing/submit/index.html deleted file mode 100644 index a6e3468169..0000000000 --- a/files/ar/archive/mozilla/marketplace/publishing/submit/index.html +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Submit -slug: Archive/Mozilla/Marketplace/Publishing/Submit -tags: - - NeedsTranslation - - TopicStub -translation_of: Archive/Mozilla/Marketplace/Publishing/Submit ---- -

This section describes the process for submitting an app to Firefox Marketplace

-

Residual details: https://developer.mozilla.org/en-US/Marketplace/Publishing/Submit/Submitting_an_app

diff --git a/files/ar/archive/mozilla/marketplace/publishing/submit/rating_your_content/index.html b/files/ar/archive/mozilla/marketplace/publishing/submit/rating_your_content/index.html deleted file mode 100644 index 8e4fbb5d91..0000000000 --- a/files/ar/archive/mozilla/marketplace/publishing/submit/rating_your_content/index.html +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: Obtaining a rating for your app -slug: Archive/Mozilla/Marketplace/Publishing/Submit/Rating_Your_Content -translation_of: Archive/Mozilla/Marketplace/Publishing/Submit/Rating_Your_Content ---- -
-

هذه الصفحة يخضع للصيانة.

-
- -
-

تمت موزيلا شراكة مع التقييم التحالف العمر الدولي (IARC) لتشمل تصنيفات المحتوى المرتبط بالعمر جنبا إلى جنب مع جميع التطبيقات. لأن موزيلا يهتم المستخدمين ويعتقد أن المستخدمين يجب أن تتاح الفرصة لتقرر أي محتوى غير مناسب لهم سيطلب من جميع التطبيقات في السوق فايرفوكس ليكون لها تصنيف IARC. بينما نحن نحب كل من التطبيقات، التزامنا لهذه المبادرة يتطلب أي التطبيق أو اللعبة التي لم يكن لديك هذا التصنيف لشطبها من السوق بعد الموعد النهائي. موزيلا قد مدد dealine إلى 15 مايو 2014 للسماح للمطورين متسع من الوقت لتحديث التطبيقات عبر حرة IARC أداة التصنيف.

-
- -

حول أداة IARC التقييم

- -

IARC، وهو جهد تعاوني بين لوحات التصنيف الدولية، أدخلت أداة تقييم كحل لتعيين تصنيفات المحتوى إلى العالمية، وتطبيقات موزعة رقميا والألعاب. عن طريق ملء استمارة بسيطة، يمكنك الحصول على التسميات تصنيف الفورية لجميع لوحات التصنيف المشاركة. هذا لا يساعد فقط على تثقيف المستخدمين حول المحتوى، ولكن أيضا يقلل بشكل كبير من التكاليف والمتاعب المرتبطة بالحصول على مختلف تصنيفات المحتوى العالمي بشكل فردي.

- -

أنظمة التصنيف الدولية المعتمدة

- -

باستخدام معالج تصنيف واحد، يتم إنشاء تصنيفات المحتوى للأنظمة والدول تصنيف متعددة والمناطق.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
نظام التقييمالدول المعتمدة
Classificação Indicativa البرازيل
ESRBكندا، المكسيك، الولايات المتحدة الأمريكية
PEGIالنمسا، الدنمارك، هنغاريا، لاتفيا، والنرويج، وسلوفينيا، بلجيكا، استونيا، أيسلندا، ليتوانيا، بولندا، اسبانيا، بلغاريا، فنلندا، ايرلندا، لوكسمبورغ، البرتغال، السويد، قبرص، فرنسا، إسرائيل، مالطا، رومانيا، سويسرا، الجمهورية التشيكية ، اليونان، إيطاليا، هولندا، جمهورية سلوفاكيا، المملكة المتحدة
USKألمانيا
عامتستخدم لجميع دول أخرى
- -

ماذا في تقييم المحتوى؟

- -

يوفر نظام تصنيف المستخدمين مع ثلاثة أنواع من المعلومات:

- - - -

عملية تقييم مجانية للمطورين، ويستغرق سوى بضع دقائق، وتتكامل مع عملية تقديم فايرفوكس السوق ومطور لوحة أجهزة القياس. قبل أن يعاد النظر في التطبيق، يجب أن يكون لديها تصنيف. للمستخدمين رؤية تقييم ملائم التطبيق لمنطقتهم على صفحة تفاصيل التطبيق، ويمكن معرفة المزيد من المعلومات ينبغي لها أن تختار لمعرفة المزيد.

- -

الحصول على تقييم المحتوى للتطبيق الخاص بك

- -

وقد وفرت IARC أداة مجانية لعبة التقييم التي هي بسيطة وبالنسبة لمعظم التطبيقات، ويأخذ أقل من خمس دقائق. في هذا القسم سوف نستعرض هذه العملية.

- -
-

ملاحظة : نحن للأسف لا يمكن أن تقبل شهادات تقدير من الأنظمة الأخرى. إذا التطبيق الخاص بك بالفعل على تقييم عام من نظام آخر سوف لا تزال بحاجة للذهاب من خلال عملية شهادة IARC.

-
- -
    -
  1. تسجيل الدخول إلى الموقع المطور فايرفوكس السوق. لا يجوز الوصول إلى أداة تقييم عند تسجيل الدخول في كمطور.
  2. -
  3. -

    الوصول إلى أداة IARC التقييم خلال عملية التقديم:

    - -

    يوضح مكان في تدفق تقديم التطبيق حيث التقييم يمكن إدخالها.

    - -

    أو من لوحة ديف:

    - -

    -
  4. -
  5. -

    بدء عملية التقييم:

    - -

    - -

    أو إدخال المعلومات الخاصة بك للحصول على تصنيف القائمة:

    - -

    -
  6. -
  7. -

    ملء استبيان قصير:

    - -

    -
  8. -
  9. -

    إضافة معلومات إضافية حول التطبيق الخاص بك:

    - -

    -
  10. -
  11. -

    المعاينة والتأكد من المعلومات تصويتك:

    - -

    -
  12. -
  13. -

    العودة إلى لوحة القيادة المطور ويجب أن نرى من المعلومات تصويتك. كنت على استعداد للذهاب!

    -
  14. -
- -
-

ملاحظة : سوف تتلقى رسالة بريد إلكتروني مع شهادة التصنيف الخاص بك ورمز الأمان. يرجى الاحتفاظ بنسخة لسجلاتك.

-
- -

المزيد من المعلومات

- -

إذا كان لديك أسئلة حول عملية التصنيف، وكيفية الإجابة، أو إذا كنت تعتقد تصويتك غير صحيح، يرجى إرسال بريد إلكتروني فريق IARC في dev-questions@globalratings.com . تتوفر معلومات إضافية حول أيضا تصنيفات الموقع العالمي .

- -

إذا كان لديك أي أسئلة أخرى، يمكنك الحصول على اتصال مع فريق الاستعراض التطبيق موزيلا في  mozilla.appreview .

diff --git a/files/ar/archive/mozilla/xul/index.html b/files/ar/archive/mozilla/xul/index.html deleted file mode 100644 index 7aa892890b..0000000000 --- a/files/ar/archive/mozilla/xul/index.html +++ /dev/null @@ -1,82 +0,0 @@ ---- -title: XUL -slug: Archive/Mozilla/XUL -translation_of: Archive/Mozilla/XUL ---- -
XUL Tutorial
-A guided tutorial that will help you get started with XUL, originally from XULPlanet.
- -
-

XML (واجهة XML العضو اللغة) هو القائم على اللغة XML موزيلا لبناء واجهات المستخدم من التطبيقات مثل فايرفوكس. يستخدم مصطلح كسول أحيانا للإشارة إلى منصة موزيلا كاملة (تطبيقات مثل XUL هي التطبيقات التي تستخدم كسول والمكونات الأخرى من النظام الأساسي).

- -

XUL Controls lists some of the common controls provided by XUL.

-
- - - - - - - - -
-

Documentation

- -
-
XUL Tutorial
-
A guided tutorial that will help you get started with XUL, originally from XULPlanet.
-
XUL Reference
-
XUL elements, attributes, properties, methods, and event handlers.
-
XUL Controls
-
A quick list of all of the available XUL controls.
-
The Joy of XUL
-
Describes the key features and components of XUL.
-
Menus and Popups Guide
-
A guide on using menus and popup panels.
-
Template Guide
-
A detailed guide on XUL templates, which is a means of generating content from a datasource.
-
Drag and Drop
-
How to perform drag and drop operations.
-
Overlays
-
Overlays are used to describe extra content for the UI. They provide a powerful mechanism for extending and customizing existing XUL applications.
-
- -
-
XUL Periodic Table
-
This collection of XUL demos used to be available as a web page, but can no longer be viewed in Firefox since support for Remote XUL was disabled.  There is a XULRunner application containing the XUL Periodic Table which can be opened with Gecko based browsers. You can get it here. See: XULRunner_tips#Using_Firefox_3_to_run_XULRunner_applications for instructions on running XULRunner apps in Firefox.
-
Changes to XUL
-
New XUL features and changes to existing features are included in the Firefox developer release notes.
-
- -

View All...

-
-

Community

- - - -

Tools

- - - -

View All...

- - - - -
- -

 

diff --git a/files/ar/archive/mozilla/xulrunner/getting_started_with_xulrunner/index.html b/files/ar/archive/mozilla/xulrunner/getting_started_with_xulrunner/index.html deleted file mode 100644 index 558d7c8163..0000000000 --- a/files/ar/archive/mozilla/xulrunner/getting_started_with_xulrunner/index.html +++ /dev/null @@ -1,266 +0,0 @@ ---- -title: الشروع في العمل مع XULRunner -slug: Archive/Mozilla/XULRunner/Getting_started_with_XULRunner -translation_of: Archive/Mozilla/XULRunner/Getting_started_with_XULRunner ---- -

{{ Next("Windows and menus in XULRunner") }}

- -

يستكشف هذا المقال منصة موزيلا من خلال بناء تطبيقات سطح المكتب الأساسي باستخدام XULRunner. وبالنظر إلى أن فايرفوكس، طائر الرعد، وغيرها من التطبيقات المتعددة المكتوبة باستخدام المنصة، فهي رهان آمن أنه يمكن استخدامها لبناء التطبيق الأساسي. هناك مقال مع اتباع نهج أكثر تعقيدا لبناء تطبيقات XULRunner في إنشاء تطبيقات XULRunner مع موزيلا بناء النظام. إذا كنت بحاجة إلى تغيير XULRunner نفسه أو دمجه مع ثنائيات الخارجية قد تحتاج إلى قراءة هذه المقال.

- -

الخطوة 1: تحميل XULRunner

- -

يمكنك العثور على رابط التحميل في الصفحة الرئيسية XULRunner هنا على MDN. ومنذ حين أننا لا نخلق أي مكون من مكونات XPCOM الثنائية، نحن بحاجة فقط لتنزيل وتثبيت حزمة وقت التشغيل XULRunner، وليس SDK.

- -

تحميل XULRunner لـ ويندوز هو ملف مضغوط، ليس مناسباً تثبيته. كمطور، أنا أحب فكرة أن XULRunner يكون فقط ملفات غير مضغوطة على الجهاز الخاص بي. وأنا على افتراض أنها لا تحتاج إلى ربط في نظام ويندوز الخاص بي، وهذا شيء جيد. وهذا يعني أيضا أن XULRunner هو قابل للحمل كذلك، إذا كنت طورت التطبيقات الخاصة بك لتكون محمولة يمكنك أن تحملها وتحولها على محرك أقراص أو مزامنتها في السحابة.

- -

يتم توزيع نسخة ماك من XULRunner كأرشيف tar.bz2. يمكنك استخراج هذه إلى أي مكان تريد، لكن هناك العديد من المواضيع في الوثائق التي من شأنها أن نفترض أن لديك هذا مثبت في \Library\Frameworks.

- -

في أوبونتو سطح المكتب ومشتقاته (Xubuntu, Kubuntu, ...)، من الإصدار 11.10 (Oneiric Ocelot)، لم تعد تحتفظ بـ XULRunner وغير موجود في مستودع أوبونتو. لذلك، ربما تحتاج إلى تجميع XULRunner يدوياً أو تحميل الأفراج ثنائي من خادم FTP موزيلا. ولتحقيق ذلك، يجب تشغيل السكربيت التالي في كل مرة ترغب بتثبيت نسخة جديدة:

- -
FIREFOX_VERSION=`grep -Po  "\d{2}\.\d+" /usr/lib/firefox/platform.ini`
-ARCH=`uname -p`
-XURL=https://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/$FIREFOX_VERSION/runtimes/xulrunner-$FIREFOX_VERSION.en-US.linux-$ARCH.tar.bz2
-cd /opt
-sudo sh -c "wget -O- $XURL | tar -xj"
-sudo ln -s /opt/xulrunner/xulrunner /usr/bin/xulrunner
-sudo ln -s /opt/xulrunner/xpcshell /usr/bin/xpcshell
- -

يمكنك أيضاً حفظ السكربيت إلى ملف لتوفير العناء عليك. ملاحظة: إذا كنت تستخدم Firefox build  من مستودع Ubuntuzilla، استبدال /usr/lib/firefox/platform.ini مع  /opt/firefox/platform.ini.

- -

الخطوة 2: تثبيت XULRunner

- -

على ويندوز، فك الأرشيف في مكان معقول. I فكه إلى ملف جديد في (C:\program files\xulrunner folder).

- -

على ماك، استخراج الأرشيف tar.bz2، الذي يحتوي على XULRunner كما XUL.Framework. نسخ هذا إلى ( /Library/Frameworks directory)، أو موقع آخر من اختيارك.

- -

على لينكس، تحتاج فقط إلى فك الأرشيف إذا كنت تستخدم ما قبل الأفراج XULRunner.

- -
-

في جميع النظم يجب عليك فك الملف omni.ja إلى الدليل على سبيل المثال وألقاء نظرة عبى محتوياته لترى كم هي مدهشة! ولفعل ذلك عليك تغير أمتداد الملف إلى (zip) و أستخدام أداة الضفط العادية لأستخراج الملفات وفتحه.  محتويات omni.ja المتاحة لتطبيقات XULRunner هي التي تجعل من الممكن لبناء تطبيقات مذهلة بسهولة!

-
- -

الخطوة 3: إنشاء هيكل مجلد التطبيق

- -

حان الوقت للبدء بمثال بسيط وكشف هيكل التطبيق shell. ونسميها XUL "مرحباً بالعالم" إذا كنت تريد. وكل ما تراه أدناه يمكن العثور عليها في وثائق XULRunner هنا على MDN بمزيد من التفاصيل.

- -
-

تلميح: تخطي إلى الأمام وتحميل نموذج التطبيق، يمكنك تجربة ذلك و أنت تتابع هذا البرنامج التعليمي. يمكنك تنزيل عينة التطبيق من https://github.com/matthewkastor/XULRunner-Examples. يرجى مواصلة القراءة لمعرفة "ما"، "لماذا" و "كيف" بناء أجزاء التطبيق في XULRunner.

-
- -

On Windows, I created the root in a new c:\program files\myapp folder, but you can create it wherever you like, using whatever OS you like. The same application structure is used on Windows, Mac and Linux. Here is the subfolder structure:

- -
+ myapp/
-|
-+-+ chrome/
-| |
-| +-+ content/
-| | |
-| | +-- main.xul
-| | |
-| | +-- main.js
-| |
-| +-- chrome.manifest
-|
-+-+ defaults/
-| |
-| +-+ preferences/
-|   |
-|   +-- prefs.js
-|
-+-- application.ini
-|
-+-- chrome.manifest
-
- -

Notice that there are 5 files in the folder structure: application.ini, chrome.manifest (2), prefs.js, and main.xul. The /chrome/chrome.manifest file is optional, but might be useful for backward compatibility. See the note below.

- -
-

For more details on the structure of installable bundles in general see: Structure of an installable bundle.

-
- -
Note: In XULRunner 2.0, the chrome.manifest is now used to register XPCOM components in addition to its previous uses. Part of this change means the /chrome/chrome.manifest is no longer considered the "root" manifest. XULRunner will not check that folder location for a root-level chrome.manifest. You need to move your existing chrome.manifest to the application root folder, remembering to update the relative paths within the file. You could also just create a new application root-level manifest that includes the /chrome/chrome.manifest, which is what this tutorial will do.
- -

Step 4: Set up application.ini

- -

The application.ini file acts as the XULRunner entry point for your application. It specifies how your application intends to use the XULRunner platform as well as configure some information that XULRunner uses to run your application. Here is mine:

- -
[App]
-Vendor=XULTest
-Name=myapp
-Version=1.0
-BuildID=20100901
-ID=xulapp@xultest.org
-
-[Gecko]
-MinVersion=1.8
-MaxVersion=200.*
-
- -
Note: The MinVersion and MaxVersion fields indicate the range of Gecko versions your application is compatible with; make sure that you set them so that the version of XULRunner you're using is in that range, or your application won't work.
- -
Note: Make sure your application name is lowercase and longer than 3 characters
- -

Step 5: Set up the chrome manifest

- -

The chrome manifest file is used by XULRunner to define specific URIs which in turn are used to locate application resources. This will become clearer when we see how the “chrome://” URI is used. Application chrome can be in a single or a few JAR files or uncompressed as folders and files. I am using the uncompressed method for now. Here is the chrome/chrome.manifest:

- -
 content myapp content/
-
- -

As mentioned in Step 3, the default location of the chrome.manifest has changed in XULRunner 2.0, so we also need a simple chrome.manifest in the application root which will include the the manifest in our chrome root. Here is the application root chrome.manifest:

- -
manifest chrome/chrome.manifest
- -

Step 6: Set up preferences

- -

The prefs.js file tells XULRunner the name of the XUL file to use as the main window. Here is mine:

- -
pref("toolkit.defaultChromeURI", "chrome://myapp/content/main.xul");
-
-/* debugging prefs, disable these before you deploy your application! */
-pref("browser.dom.window.dump.enabled", true);
-pref("javascript.options.showInConsole", true);
-pref("javascript.options.strict", true);
-pref("nglayout.debug.disable_xul_cache", true);
-pref("nglayout.debug.disable_xul_fastload", true);
-
- -

XULRunner specific preferences include:

- -
-
toolkit.defaultChromeURI
-
Specifies the default window to open when the application is launched.
-
toolkit.defaultChromeFeatures
-
Specifies the features passed to window.open() when the main application window is opened.
-
toolkit.singletonWindowType
-
Allows configuring the application to allow only one instance at a time.
-
- -
-

The toolkit preferences are described in further detail in XULRunner:Specifying Startup Chrome Window.

- -

The debugging preferences are discussed in Debugging a XULRunner Application

-
- -

Step 7: Create some XUL

- -

Finally, we need to create a simple XUL window, which is described in the file main.xul. Nothing fancy here, just the minimum we need to make a window. No menus or anything.

- -

main.xul:

- -
<?xml version="1.0"?>
-
-<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
-
-<window id="main" title="My App" width="300" height="300" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-
-  <script type="application/javascript" src="chrome://myapp/content/main.js"/>
-
-  <caption label="Hello World"/>
-  <separator/>
-  <button label="More >>" oncommand="showMore();"/>
-  <separator/>
-  <description id="more-text" hidden="true">This is a simple XULRunner application. XUL is simple to use and quite powerful and can even be used on mobile devices.</description>
-
-</window>
-
- -
Note: Make sure there is no extra whitespace at the beginning of the XML/XUL file
- -

The application also has a JavaScript file. Most XUL applications will include some external JavaScript, so the sample application does too, just to show how to include it into the XUL file.

- -

main.js:

- -
function showMore() {
-  document.getElementById("more-text").hidden = false;
-}
-
- -
-

For more information about XUL see: XUL.

- -

For information about mixing HTML elements into your XUL read Adding HTML Elements.

-
- -

Step 8: Run the application

- -

The moment of truth. We need to get XULRunner to launch the bare-bones application.

- -

Windows

- -

From a Windows command prompt opened to the myapp folder, we should be able to execute this:

- -
 C:\path\to\xulrunner.exe application.ini
-
- -

Of course, if you opted to install xulrunner then you could simply do

- -
%ProgramFiles%\xulrunner.exe application.ini
- -

or on 64 bit systems

- -
%ProgramFiles(x86)%\xulrunner.exe application.ini
- -
-

Note: you can also install your application when you're finished debugging it. See XUL Application Packaging for details.

-
- -

Mac

- -

On the Mac, before you can run a XULRunner application with everything intact, you must install it using the --install-app xulrunner commandline flag. Installing the application creates an OS X application bundle:

- -
 /Library/Frameworks/XUL.framework/xulrunner-bin --install-app /<path>/<to>/myapp.zip
-
- -

Once installed, you can run the application:

- -
 /Library/Frameworks/XUL.framework/xulrunner-bin "/Applications/Finkle/TestApp.app/Contents/Resources/application.ini"
-
- -

You may run it without installing (but with the menu bar and dock icon missing) in OS X by typing:

- -
/Library/Frameworks/XUL.framework/xulrunner-bin "/<full path>/TestApp/application.ini"
-
- -
-

Note: The full path is required or a "Error: couldn't parse application.ini."-message will be returned.

-
- -

This might also be simplified using a very simple shell script (i call mine "run.sh"):

- -
#!/bin/sh
-/Library/Frameworks/XUL.framework/xulrunner-bin `pwd`/application.ini
-
- -

Linux

- -

On Ubuntu, you can run the application from a terminal. First change into the \myapp folder, then start the application by:

- -
 xulrunner application.ini
-
- -

You should now see a window that looks something like this. This particular screenshot is from Ubuntu 10.

- -

myapp-screenshot.png

- -

Alternative: Run XUL apps with Firefox

- -

With Firefox 3 and later, you can tell the Firefox executable to run a XUL application from the command line. The XUL application will run instead of the Firefox browser that normally starts. This is similar to starting a XUL app using XULRunner. See Using Firefox to run XULRunner applications. This does not work if Firefox itself was installed as a XUL app - you need to use the installed XULRunner directly.

- -

Further Reading:

- -

There are many things you can do with XULRunner. Before you get too far into things you might want to read the XULRunner tips article. Also, throughout this tutorial you've been introduced to various bits of the Toolkit API and it may help you to get familiar with it. Once you've got an application that's ready for the world you'll love our article titled Deploying XULRunner.

- -

For now, click the "next" link to learn about windows and menus in XULRunner!

- -

{{ Next("Windows and menus in XULRunner") }}

- -
-

Original Document Information

- - -
- -

{{ languages( { "ja": "ja/Getting_started_with_XULRunner", "ko": "ko/Getting_started_with_XULRunner" } ) }}

diff --git a/files/ar/archive/mozilla/xulrunner/index.html b/files/ar/archive/mozilla/xulrunner/index.html deleted file mode 100644 index 76fc75584f..0000000000 --- a/files/ar/archive/mozilla/xulrunner/index.html +++ /dev/null @@ -1,88 +0,0 @@ ---- -title: XULRunner -slug: Archive/Mozilla/XULRunner -tags: - - NeedsTranslation - - NeedsUpdate - - TopicStub - - XUL - - XULRunner -translation_of: Archive/Mozilla/XULRunner ---- -
Getting Started with XULRunner
-A short introduction to XULRunner.
- -
XULRunner is a Mozilla runtime package that can be used to bootstrap XUL+XPCOM applications that are as rich as Firefox and Thunderbird. It provides mechanisms for installing, upgrading, and uninstalling these applications. XULRunner also provides libxul, a solution which allows the embedding of Mozilla technologies in other projects and products.
- - - - - - - - -
-

Releases

- -
-

Until version 41, XULRunner could be downloaded from ftp.mozilla.org.

- -

Firefox (from version 3) ships with a private XULRunner package, which can run any compatible XULRunner application using the -app switch: firefox -app application.ini is equivalent to xulrunner -app application.ini

- -

Older builds are also available.

-
- -

Overview

- - - -

Documentation

- -
-
Getting Started with XULRunner
-
Short tutorial on building desktop applications with XULRunner.
-
XUL Tutorial
-
Once you have a working XULRunner application, use the XUL tutorial to expand it into a fantastic XUL application.
-
XULRunner tips
-
A collection of tips for working with XULRunner.
-
Deploying XULRunner
-
An introduction on how to package your application with XULRunner.
-
XULRunner Hall of Fame
-
Tracks all available applications based on XULRunner.
-
Build Documentation
-
Learn how to get the source and build it.
-
Debug Documentation
-
Steps to configure Venkman to debug your App
-
XULRunner Guide
-
A fairly complete, but outdated, introduction and tutorial for XULRunner which collates much of the documentation found here.
-
- -

View all...

-
-

Community

- - - - - - - -

See also

- - -
- -

 

diff --git a/files/ar/archive/themes/index.html b/files/ar/archive/themes/index.html deleted file mode 100644 index a440be2e7a..0000000000 --- a/files/ar/archive/themes/index.html +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Themes -slug: Archive/Themes -tags: - - NeedsTranslation - - TopicStub -translation_of: Archive/Themes ---- -

Archived theme documentation.

- -

{{Listsubpages("/en-US/docs/Archive/Themes", 10)}}

diff --git a/files/ar/building_a_theme/index.html b/files/ar/building_a_theme/index.html deleted file mode 100644 index e254bb4ce8..0000000000 --- a/files/ar/building_a_theme/index.html +++ /dev/null @@ -1,189 +0,0 @@ ---- -title: Building a Theme -slug: Building_a_Theme -translation_of: Archive/Themes/Building_a_Theme ---- -

مقدمة

-

هذه الدورة ستقدم لكم الخطوات المطلوبة لبناء نموذجية  لمتصفح فيرافوكس. واحد سيقوم بتحديثات لون الخلفية وشريط الأدوات في فيرافوكس.

-
-

ملاحظة: هذه الدورة مخصصة حول بناء سمة لإصدارات فيرافوكس 29 وأعلى، وهناك محاور أخرى لبناء الإصدارات السابقة من فيرافوكس. إنظر:

-

Creating a Skin for Firefox

-
-
-

إعداد بيئة التطوير

-

السمات وملحقات الحزم والموزعة في ملفات ZIP أو Bundles ،من خلال ملف الملحقة XPI (تقرأ"zippy")

-

مثال عن المحتوى داخل ملف نموذجي لـ XPI  الخاص بسمة نموذجية:

-
example.xpi:
-              /install.rdf
-              /chrome.manifest
-              /preview.png
-              /icon.png
-              /chrome/
-                     browser/
-                     communicator/
-                     global/
-                     mozapps/
-
-
-

سنقوم ببناء

-

We'll want to create a file structure similar to the one above for our tutorial, so let's begin by creating a folder for your theme somewhere on your hard disk (e.g. C:\themes\my_theme\ or ~/themes/my_theme/). Inside your new theme folder, create two new empty text files, one called chrome.manifest and the other called install.rdf. The file preview.png is shown as a preview of the theme in the themes panel of the add-ons window. The file icon.png is used as an icon in the same panel. We'll leave both of them out for now, unless you have something picked out that you want to use.

-

The remaining directories will be extracted from the default theme. First, you'll want to create a directory somewhere. Copy your Firefox installation's omni.ja into this directory. The location differs by operating system:

-

Linux: /usr/lib/MozillaFirefox/chrome/classic.jar or /usr/lib/firefox-*.*.*/omni.ja

-

Windows: \Program Files\Mozilla Firefox\omni.ja

-

Mac OS X: /Applications/Firefox.app/Contents/MacOS/omni.ja

-

Now, open (or unzip) this file into the directory you created. It contains several folders, modules, jssubloader and others. The files we will be needing are located under the chrome\toolkit\skin\classic folder.

-

Create a folder called chromein your theme's folder. Next, the contents of the following directories to their respective folders into the folder.

-
    -
  1. global to chrome/global
  2. -
  3. mozapps to chrome/mozapps
  4. -
-

Now that you've copied the global and mozapps folders, a handful of other folders from the browser/omni.ja archive are required. It is located in the browser folder in the location mentioned above. The files we will be needing from the browser/omni.ja archive are located under chrome/browser/skin/classic.

-

Copy the contents of the following directories to their respective folders. This gives us a base set of styles to work with.

-
    -
  1. browser to chrome/browser/
  2. -
  3. communicator to chrome/communicator/
  4. -
-

You should end up with this directory structure:

-
<ext path>/
-          /install.rdf
-          /chrome.manifest
-          /chrome/
-                 browser/
-                 communicator/
-                 global/
-                 mozapps/
-
-

After this, it would be a good idea to read the article Setting up extension development environment and follow the directions there. It's especially important to install the DOM Inspector, which we'll be using in later steps.

-
-
-

Create the Install Manifest

-

Open the file called install.rdf that you created at the top of your extension's folder hierarchy and put this inside:

-
<?xml version="1.0"?>
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-     xmlns:em="http://www.mozilla.org/2004/em-rdf#">
-
-  <Description about="urn:mozilla:install-manifest">
-    <em:id>sample@example.net</em:id>
-    <em:version>1.0</em:version>
-    <em:type>4</em:type>
-
-    <!-- Target Application this theme can install into,
-         with minimum and maximum supported versions. -->
-    <em:targetApplication>
-      <Description>
-        <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
-        <em:minVersion>29.0</em:minVersion>
-        <em:maxVersion>32.*</em:maxVersion>
-      </Description>
-    </em:targetApplication>
-
-    <!-- Front End MetaData -->
-    <em:name>My Theme</em:name>
-    <em:internalName>sample</em:internalName>
-    <em:description>A test extension</em:description>
-    <em:creator>Your Name Here</em:creator>
-    <em:homepageURL>http://www.example.com/</em:homepageURL>
-  </Description>
-</RDF>
-
- -

If you get a message that the install.rdf is malformed, it is helpful to load it into firefox using the File->Open File command and it will report XML errors to you.

-

See Install Manifests for a complete listing of the required and optional properties.

-

Save the file.

-
-
-

Styling the Browser's UI with CSS

-

Firefox's user interface is written in XUL and JavaScript. XUL is an XML grammar that provides user interface widgets like buttons, menus, toolbars, trees, etc. User actions are bound to functionality using JavaScript. These XUL elements are styled using CSS. If you don't know CSS, it's going to be a steep learning curve, and you may want to try some HTML-based tutorials to start with.

-

The browser UI has absolutely no styling on its own - if you try to start up with an empty theme, Firefox will be unusable, as the button elements will be drawn as plain text. This is why we copied the default styles in the setup step.

-

When writing a theme, the easiest way to determine what CSS selectors you need to write is to use the DOM Inspector which you should have installed in the setup step. You can use this to inspect any element in a web page or an XUL document, which makes it invaluable for themes.

-

Updating the toolbar's Styling

-
-

Note In Firefox 4.0 and up, the highlight feature of DOM Inspector is broken. To workaround this, disable Hardware Acceleration in Firefox' Options.

-
-

Open up the DOM Inspector now (located under the "Tools" menu), and go to "File->Inspect Chrome Document". This will be a menu containing all the XUL documents currently open in Firefox.
- Pick the first document with a web page title, like "Firefox Start Page" and select it.

-

For this tutorial, we're going to update the background color of the toolbars. Select the node finding tool (the arrow-plus-box in the top-left corner of the DOM Inspector), and click on any unused space on a toolbar. This should select a node of type "xul:toolbar" in the DOM Inspector.

-

From here, you can play around with various different stylings for the toolbar and associated elements. By default, the right pane should show the DOM node, which has useful styling information like the CSS class and node id. The element itself is of id navigator-toolbox, with no idea. To change its style within our theme, we need to write a selector rule to select this class.

-

Open up the file chrome/browser/browser.css in your theme. Search this file for the #navigator-toolbox selector, and add a background: orange; rule to it.

-

Save the file.

-
-
-

Chrome URIs

-

Next, we have to tell Firefox where to find the theme files for your theme. CSS, XUL, and other files are part of "Chrome Packages" - bundles of user interface components which are loaded via chrome:// URIs. Rather than load the browser from disk using a file:// URI (since the location of Firefox on the system can change from platform to platform and system to system), Mozilla developers came up with a solution for creating URIs to content that the installed add-on knows about.

-

The browser window is: chrome://browser/content/browser.xul. Try typing this URL into the location bar in Firefox!

-

Chrome URIs consist of several components:

- -

So, chrome://foo/skin/bar.png loads the file bar.png from the foo theme's skin section.

-

When you load content using a Chrome URI, Firefox uses the Chrome Registry to translate these URIs into the actual source files on disk (or in JAR packages).

-
-
-

Create a Chrome Manifest

-

The Chrome Manifest is the file that maps these Chrome URIs to your theme's files. For more information on Chrome Manifests and the properties they support, see the Chrome Manifest Reference.

-

Open the file called chrome.manifest that you created alongside the chrome directory at the root of your extension's source folder hierarchy.

-

Add in this code:

-
skin    browser         sample   chrome/browser/
-skin    communicator    sample   chrome/communicator/
-skin    global          sample   chrome/global/
-skin    mozapps         sample   chrome/mozapps/
-
-

Don't forget the trailing slash, "/"! Without it, the package won't be registered. The third column needs to match your theme's internalName value from the install manifest above.

-

This maps skin directories to locations within your theme. For example, the line skin browser sample skin/browser/ means "when the user has the sample theme selected, use the directory browser/ to look up skins for the browser package." More concisely, this means that the URL chrome://browser/skin/some/path/file.css will look for a file browser/some/path/file.css in your theme's root directory.

-

Save the file.

-
-
-

Test

-

First, we need to tell Firefox about your theme. During the development phase for Firefox versions 2.0 and higher, you can point Firefox to the folder where you are developing the theme, and it'll load it up every time you restart Firefox.

-
    -
  1. Locate your profile folder and beneath it the profile you want to work with (e.g. Firefox/Profiles/<profile_id>.default/).
  2. -
  3. Open the extensions/ folder, creating it if need be.
  4. -
  5. Create a new text file and put the full path to your development folder inside (e.g. C:\themes\my_theme\ or ~/themes/my_theme/). Windows users should retain the OS' slash direction, and everyone should remember to include a closing slash and remove any trailing spaces.
  6. -
  7. Save the file with the id of your theme as its name (e.g. sample@example.net). No file extension.
  8. -
-

Now you should be ready to test your theme!

-

Start Firefox. Firefox will detect the text link to your theme directory and install the theme. Your theme will not be active the first time you install, and you will need to click "Enable" and restart before you can see your change. After it restarts this second time, you should see the background color of the toolbars is displayed in orange now.

-

You can now go back and make additional changes to your css files, close and restart Firefox, and see the updates.

-
-
-

Package

-

Now that your theme works, you can package it for deployment and installation.

-

Zip up the contents of your theme's folder (not the theme folder itself), and rename the zip file to have a .xpi extension. In Windows, you can do this easily by selecting all the files and subfolders in your extension folder, right click and choose "Send To -> Compressed (Zipped) Folder". A .zip file will be created for you. Just rename it and you're done!

-

On Mac OS or Linux, you can use the command-line zip tool:

-
zip -r my_theme.xpi install.rdf chrome.manifest browser communicator global mozapps
-
-

Or, if you have 7-Zip installed, you can use that for zipping it up:

-
7z a -tzip my_theme.xpi chrome chrome.manifest
-
-

Note: The command-line tool will update an existing zip file, not replace it - so if you have files you've deleted from your theme, be sure to remove the .xpi file before running the zip command again.

-

Now upload the .xpi file to your server, making sure it's served as application/x-xpinstall. You can link to it and allow people to download and install it. For the purposes of just testing our .xpi file we can just drag it into the Add-ons Manager via "Tools -> Add-ons Manager", or open it using "File -> Open File...".

-
-
Installing from a web page
-

There are a variety of ways you can install extensions from web pages, including direct linking to the XPI files and using the InstallTrigger object. Extension and web authors are encouraged to use the InstallTrigger method to install XPIs, as it provides the best experience to users.

-
-
-
Using addons.mozilla.org
-

Mozilla Add-ons is a distribution site where you can host your theme for free. Your theme will be hosted on Mozilla's mirror network to guarantee your download even though it might be very popular. Mozilla's site also provides users easier installation, and will automatically make your newer versions available to users of your existing versions when you upload them. In addition, Mozilla Add-ons allows users to comment and provide feedback on your theme. It is highly recommended that you use Mozilla Add-ons to distribute your themes!

-

Visit https://addons.mozilla.org/developers/ to create an account and begin distributing your themes!

-

Note: Your theme will be passed faster and downloaded more if you have a good description and some screenshots of the theme in action.

-
-
-
-
- -

______________________________

-
-
-

 

diff --git a/files/ar/localization_and_plurals/index.html b/files/ar/localization_and_plurals/index.html deleted file mode 100644 index c1c154d3db..0000000000 --- a/files/ar/localization_and_plurals/index.html +++ /dev/null @@ -1,269 +0,0 @@ ---- -title: Localization and Plurals -slug: Localization_and_Plurals -translation_of: Mozilla/Localization/Localization_and_Plurals ---- -

You're likely here because you're localizing a .properties file and it had a link to this page. This page is to help explain how to localize these strings so that the correct plural form is shown to the user. E.g., "1 page" vs "2 pages".

-

If you're here to make your code (e.g., extensions) localizable for plural forms, you can jump straight to Developing with PluralForm, but you'll likely need to localize the initial strings for your code, so it would be good to read through at least the Usage section as well.

-

 

-

Usage

-

Here are a couple terms used in this page to help keep things clear:

- -

If you're here for pluralRule in the chrome/global/intl.properties file, you'll need to figure out what plural rule to choose for your localization. This plural rule is used to determine how many plural forms are needed for each word that needs to be localized with plurals in mind.

-

For all other properties files that link to this page, you'll need to provide enough plural forms of the desired word and separate them with semi-colons (;). If you don't know how many plural forms you need, check the pluralRule number in chrome/global/intl.properties and look up the corresponding entry in the following list of plural rules.

-

List of Plural Rules

-

This section contains a list of plural rules ordered by their plural rule number. Each entry indicates how many plural forms are needed when localizing a word. For each entry, there is a list of families and languages in those families to help you figure out if it's the rule you should pick for pluralRule. Additionally, there is a brief description of each plural form followed by some sample numbers that fall into that particular form.

-

For a given plural rule, the order in which the plural forms are listed is the same order you need to localize a word, separated by semi-colons. For example, English uses plural rule 1, and localizing plurals would require a string of "plural;plurals" where the first word is the singular form and the second is the general plural form.

-

Plural rule #0 (1 form)

-

Families: Asian (Chinese, Japanese, Korean, Vietnamese), Persian, Turkic/Altaic (Turkish), Thai, Lao
- everything: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, …

-

Plural rule #1 (2 forms)

-

Families: Germanic (Danish, Dutch, English, Faroese, Frisian, German, Norwegian, Swedish), Finno-Ugric (Estonian, Finnish, Hungarian), Language isolate (Basque), Latin/Greek (Greek), Semitic (Hebrew), Romanic (Italian, Portuguese, Spanish, Catalan)
- is 1: 1
- everything else: 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, …

-

Plural rule #2 (2 forms)

-

Families: Romanic (French, Brazilian Portuguese)
- is 0 or 1: 0, 1
- everything else: 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, …

-

Plural rule #3 (3 forms)

-

Families: Baltic (Latvian)
- is 0: 0
- ends in 1, excluding 11: 1, 21, 31, 41, 51, 61, 71, 81, 91, 101, 121, 131, 141, 151, 161, 171, 181, 191, 201, 221, 231, 241, 251, 261, 271, 281, 291, …
- everything else: 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, …

-

Plural rule #4 (4 forms)

-

Families: Celtic (Scottish Gaelic)
- is 1 or 11: 1, 11
- is 2 or 12: 2, 12
- is 3-10 or 13-19: 3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17, 18, 19
- everything else: 0, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, …

-

Plural rule #5 (3 forms)

-

Families: Romanic (Romanian)
- is 1: 1
- is 0 or ends in 01-19, excluding 1: 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, …
- everything else: 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, …

-

Plural rule #6 (3 forms)

-

Families: Baltic (Lithuanian)
- ends in 1, excluding 11: 1, 21, 31, 41, 51, 61, 71, 81, 91, 101, 121, 131, 141, 151, 161, 171, 181, 191, 201, 221, 231, 241, 251, 261, 271, 281, 291, …
- ends in 0 or ends in 11-19: 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 130, 140, 150, 160, 170, 180, 190, 200, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, …
- everything else: 2, 3, 4, 5, 6, 7, 8, 9, 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 38, 39, 42, 43, 44, 45, 46, 47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 62, 63, 64, 65, 66, 67, 68, 69, 72, 73, …

-

Plural rule #7 (3 forms)

-

Families: Slavic (Belarusian, Bosnian, Croatian, Serbian, Russian, Ukrainian)
- ends in 1, excluding 11: 1, 21, 31, 41, 51, 61, 71, 81, 91, 101, 121, 131, 141, 151, 161, 171, 181, 191, 201, 221, 231, 241, 251, 261, 271, 281, 291, …
- ends in 2-4, excluding 12-14: 2, 3, 4, 22, 23, 24, 32, 33, 34, 42, 43, 44, 52, 53, 54, 62, 63, 64, 72, 73, 74, 82, 83, 84, 92, 93, 94, 102, 103, 104, 122, 123, 124, 132, 133, 134, 142, 143, 144, 152, 153, 154, 162, 163, 164, 172, 173, 174, 182, 183, …
- everything else: 0, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 25, 26, 27, 28, 29, 30, 35, 36, 37, 38, 39, 40, 45, 46, 47, 48, 49, 50, 55, 56, 57, 58, 59, 60, 65, 66, 67, 68, 69, 70, 75, 76, 77, …

-

Plural rule #8 (3 forms)

-

Families: Slavic (Slovak, Czech)
- is 1: 1
- is 2-4: 2, 3, 4
- everything else: 0, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, …

-

Plural rule #9 (3 forms)

-

Families: Slavic (Polish)
- is 1: 1
- ends in 2-4, excluding 12-14: 2, 3, 4, 22, 23, 24, 32, 33, 34, 42, 43, 44, 52, 53, 54, 62, 63, 64, 72, 73, 74, 82, 83, 84, 92, 93, 94, 102, 103, 104, 122, 123, 124, 132, 133, 134, 142, 143, 144, 152, 153, 154, 162, 163, 164, 172, 173, 174, 182, 183, …
- everything else: 0, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 25, 26, 27, 28, 29, 30, 31, 35, 36, 37, 38, 39, 40, 41, 45, 46, 47, 48, 49, 50, 51, 55, 56, 57, 58, 59, 60, 61, 65, 66, 67, 68, …

-

Plural rule #10 (4 forms)

-

Families: Slavic (Slovenian, Sorbian)
- ends in 01: 1, 101, 201, …
- ends in 02: 2, 102, 202, …
- ends in 03-04: 3, 4, 103, 104, 203, 204, …
- everything else: 0, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, …

-

Plural rule #11 (5 forms)

-

Families: Celtic (Irish Gaelic)
- is 1: 1
- is 2: 2
- is 3-6: 3, 4, 5, 6
- is 7-10: 7, 8, 9, 10
- everything else: 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, …

-

Plural rule #12 (6 forms)

-

Families: Semitic (Arabic)
- is 1: 1
- is 2: 2
- ends in 03-10: 3, 4, 5, 6, 7, 8, 9, 10, 103, 104, 105, 106, 107, 108, 109, 110, 203, 204, 205, 206, 207, 208, 209, 210,
- everything else but is 0 and ends in 00-02, excluding 0-2: 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, …
- ends in 00-02, excluding 0-2: 100, 101, 102, 200, 201, 202, …
- is 0: 0

-

Plural rule #13 (4 forms)

-

Families: Semitic (Maltese)
- is 1: 1
- is 0 or ends in 01-10, excluding 1: 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, …
- ends in 11-19: 11, 12, 13, 14, 15, 16, 17, 18, 19, 111, 112, 113, 114, 115, 116, 117, 118, 119, 211, 212, 213, 214, 215, 216, 217, 218, 219, …
- everything else: 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, …

-

Plural rule #14 (3 forms)

-

Families: Slavic (Macedonian)
- ends in 1: 1, 11, 21, 31, 41, 51, 61, 71, 81, 91, 101, 111, 121, 131, 141, 151, 161, 171, 181, 191, 201, 211, 221, 231, 241, 251, 261, 271, 281, 291, …
- ends in 2: 2, 12, 22, 32, 42, 52, 62, 72, 82, 92, 102, 112, 122, 132, 142, 152, 162, 172, 182, 192, 202, 212, 222, 232, 242, 252, 262, 272, 282, 292, …
- everything else: 0, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17, 18, 19, 20, 23, 24, 25, 26, 27, 28, 29, 30, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 46, 47, 48, 49, 50, 53, 54, 55, 56, 57, 58, 59, 60, 63, …

-

Plural rule #15 (2 forms)

-

Families: Icelandic
- ends in 1, excluding 11: 1, 21, 31, 41, 51, 61, 71, 81, 91, 101, 121, 131, 141, 151, 161, 171, 181, 191, 201, 221, 231, 241, 251, 261, 271, 281, 291, …
- everything else: 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, …

-

Plural rule #16 (6 forms)

-

Families: Celtic (Breton)
- is 1: 1
- ends in 1, excluding 1, 11, 71, 91: 21, 31, 41, 51, 61, 81, 101, 121, 131, 141, 151, 161, 181, 201, 221, 231, 241, 251, 261, 281, ...
- ends in 2, excluding 12, 72, 92: 2, 22, 32, 42, 52, 62, 82, 102, 122, 132, 142, 152, 162, 182, 202, 222, 232, 242, 252, 262, 282, ...
- ends in 3, 4 or 9 excluding 13, 14, 19, 73, 74, 79, 93, 94, 99: 3, 4, 9, 23, 24, 29, 33, 34, 39, 43, 44, 49, 53, 54, 59, ...
- ends in 1000000: 1000000: 1000000, 2000000, 3000000, 4000000, 5000000, 6000000, 7000000, 8000000, 9000000, 10000000, ...
- everything else: 0, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 25, 26, 27, 28, 30, 35, 36, 37, 38, 40, ...

-

Examples

-

The following are some examples for various languages and a brief thought processes.

-

French

-

Some French speaking places treat 0 as plural while others treat it as singular. The only other singular is 1 while everything else is plural. So pick either plural rule #1 or #2.

-

pluralRule=2
- seconds=seconde;secondes
- minutes=minute;minutes
- hours=heure;heures
- days=jour;jours

-

Like many other times when localizing words, gender agreement might force you to rearrange words in a way that the gender is always the same. (seconde vs jour)

-

Chinese

-

A word doesn't change if there is a different number in front of it, so all numbers use the same plural form. With just one plural form, it has to be plural rule #0. For each word to localize, it's just like localizing a single word with no semi-colons needed.

-

pluralRule=0
- seconds=秒
- minutes=分
- hours=時
- days=日

-

Polish

-

There's a singular form for 1, a plural form for 2-4, and another for 5-21 at which point 22 is the same as 2. Plural rule #7 has a "ends in 2-4, not 12-14" but the singular form includes everything ending in 1 except 11. Plural rule #9 has the correct singular form for only 1.

-

pluralRule=9
- seconds=sekunda;sekundy;sekund
- minutes=minuta;minuty;minut
- hours=godzina;godziny;godzin
- days=dzień;dni;dni

-

Even though the last 2 plural forms of "day" are the same, both are still needed because there needs to be 3 plural forms for each word.

-

Sorbian

-

There are 4 plural forms: nominative singular, nominative dual, nominative plural, genitive plural. These match up with plural rule #10.

-

pluralRule=10
- seconds=sekunda;sekundźe;sekundy;sekundow
- minutes=mjeńšina;mjeńšinje;mjeńšiny;mjeńšin
- hours=hodźina;hodźinje;hodźiny;hodźin
- days=dźeń;dnjej;dny;dnjow

-

Testing Extension

-

To help make sure you pick the right plural rule and provide enough plural forms for strings, you should use the pluralForm Checker extension. After installing the extension, it should be available from the Tools menu.

-

To use it, list off the property files and properties that you want to check and click the button. The extension will load each property and display the plural forms in a table. Selecting a table entry will populate the bottom box with sample uses of the word for some numbers.

-

Image:pluralForm-checker.0.3.png

-

Install pluralForm Checker v0.3 extension

-

Extension input

-

It would be good to keep this list updated with all the words that need plural forms. People using the extension can then copy/paste this input.

-

chrome://mozapps/locale/downloads/do...tes,hours,days
- chrome://mozapps/locale/downloads/do...dsTitlePercent
- chrome://browser/locale/browser.prop...ausedDownloads

-

Version history

-

0.1: Initial version with pluralRule check, properties input loading, table generation, sample output display
- 0.2: Use PluralForm.numForms() to get the number of forms instead of figuring out locally to better support future rules - Requires build from 2007/01/27 or later
- 0.3: Generate a list of what numbers fall into which plural form to minimize the sample output to at most 3 of each form

-

Developing with PluralForm

-

The functionality for getting the correct plural forms is provided by a JavaScript Module, PluralForm.jsm. This module provides a couple methods for localizing to the browser's current locale as well as getting methods to localize to a desired plural rule. The latter ability of specifying a plural rule is useful for extensions because the extension doesn't necessarily have to be localized to the browser's locale.

-

Loading PluralForm.jsm

-

Loading the PluralForm module from JavaScript is simple with Components.utils.import. Just put the following line somewhere that will be evaluated before you want to use PluralForm. At the top of your JavaScript file is fine.

-
Components.utils.import("resource://gre/modules/PluralForm.jsm");
-

Methods: get

-

These methods make use of the browser's current locale specified by chrome://global/locale/intl.properties's pluralRule value.

-
/**
- * Get the correct plural form of a word based on the number
- *
- * @param aNum
- *        The number to decide which plural form to use
- * @param aWords
- *        A semi-colon (;) separated string of words to pick the plural form
- * @return The appropriate plural form of the word
- */
-string pluralForm
-get(int aNum, string aWords)
-

Here is an example of using this method:

-
// Load PluralForm and for this example, assume English
-Components.utils.import("resource://gre/modules/PluralForm.jsm");
-
-// PluralForm.get expects a semi-colon separated list of words
-let downloads = "download;downloads";
-// Pretend this number came from somewhere else
-let num = 10;
-
-// Display the correct plural form for 10 downloads: "You have 10 downloads.")
-print("You have " + num + " " + PluralForm.get(num, downloads) + ".");
-
-// Try again with a different value: "You have 1 download."
-num = 1;
-print("You have " + num + " " + PluralForm.get(num, downloads) + ".")
-

The above example works, but is still difficult to localize because we're concatenating strings assuming a particular grammatical structure. The following would be better:

-
Components.utils.import("resource://gre/modules/PluralForm.jsm");
-
-let downloads = "You have one download.;You have #1 downloads.";
-let num = 10;
-
-// For English, this would display "You have 10 downloads."
-print(PluralForm.get(num, downloads).replace("#1", num);
-

Notice in the above example that the code can be written to support placeholders or not use placeholders in some forms of the string. Additionally, the localizer has control over where the placeholder is in relation to the rest of the text.

-

Of course, the strings to be localized will be placed in a separate file such as yourextension.properties instead of being hardcoded in the JavaScript code file.

-

The following 3 file snippets show how to use PluralForm with your .xul, .properties, .js files.

-

downloads.xul:

-
<stringbundleset>
-  <stringbundle id="strings" src="chrome://downloads.properties"/>
-</stringbundleset>
-

downloads.properties:

-
# LOCALIZATION NOTE (downloadsTitleFiles): Semi-colon list of plural forms.
-# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
-# #1 number of files
-# example: 111 files - Downloads
-downloadsTitleFiles=#1 file - Downloads;#1 files - Downloads
-
-# LOCALIZATION NOTE (timePair): #1 time number; #2 time unit
-# example: 1 second; 11 seconds
-timePair=#1 #2
-seconds=second;seconds
-minutes=minute;minutes
-hours=hour;hours
-
-

downloads.js:

-
Components.utils.import("resource://gre/modules/PluralForm.jsm");
-let getStr = function(string) document.getElementById("strings").getString(string);
-
-// Get the correct plural form for the title
-let numDownloads = 3;
-let title = PluralForm.get(numDownloads, getStr("downloadsTitleFiles"));
-// Put in the correct number of downloads
-print(title.replace("#1", numDownloads));
-
-// Get the correct plural form of seconds
-let timeLeft = 55;
-let seconds = PluralForm.get(timeLeft, getStr("seconds"));
-// Print the localized string for "55 seconds"
-print(getStr("timePair").replace("#1", timeLeft).replace("#2", seconds));
-

Method: makeGetter

-

If you're writing an extension, you'll want to use makeGetter instead of PluralForm.get() or PluralForm.numForms() because someone installing the extension on a different locale will be using the strings provided by your default extension locale. For example, your extension localized for English with plural rule #1, which expects 2 plural forms, is installed on a localized version of Firefox with plural rule #4, which expects 3 forms.

-
/**
- * Create a pair of plural form functions for the given plural rule number.
- *
- * @param aRuleNum
- *        The plural rule number to create functions
- * @return A pair: [function that gets the right plural form,
- *                  function that returns the number of plural forms]
- */
-[string pluralForm get(int aNum, string aWords), int numForms numForms()]
-makeGetter(int aRuleNum)
-

Here is an example usage of makeGetter:

-
Components.utils.import("resource://gre/modules/PluralForm.jsm");
-
-// Let's get Irish (plural rule #11)
-let [get, numForms] = PluralForm.makeGetter(11);
-
-// Make up some values to use with "get"
-let dummyText = "form 1;form 2;form 3;form 4;form 5";
-let dummyNum = 10;
-
-// In the case of Irish, the value 10 uses plural form #4, so "form 4" is printed
-print(get(dummyNum, dummyText));
-

In this example, the Irish plural rule was hardcoded, but this could be a value specified in the .properties file. So for your extension, specify a pluralRule value in the .properties and call PluralForm.makeGetter(pluralRuleFromProperties) making sure to save the 2 returned functions. (You can use destructured assignment in JavaScript 1.7 to keep things clean.) The returned functions act just like PluralForm.get() and PluralForm.numForms() except for the specified plural rule instead of the default plural rule.

-

Credits

-

Plural Form code first implemented for {{ Bug(394516) }} - Figure out a remaining-time rounding scheme for minutes -> hours/days
- Plural rules and families derived from GNU gettext documentation.

-

 

-

 

-
-
-

{{ languages( { "es": "es/Localización_y_Plurales", "fr": "fr/Localisation_et_pluriels", "ja": "ja/Localization_and_Plurals", "pl": "pl/Lokalizacja_i_liczba_mnoga" } ) }}

-
-
-

 

diff --git a/files/ar/mdn/contribute/persona_sign-in/index.html b/files/ar/mdn/contribute/persona_sign-in/index.html deleted file mode 100644 index ca4cc4805e..0000000000 --- a/files/ar/mdn/contribute/persona_sign-in/index.html +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: MDN and Persona sign-ins -slug: MDN/Contribute/Persona_sign-in -translation_of: Archive/MDN/Persona_sign-ins ---- -
{{MDNSidebar}}
-

Please link your GitHub account to your MDN profile now so you can continue to sign in to MDN.

-
- -
-
Currently, MDN lets contributors sign in using two different authentication providers: Mozilla Persona and GitHub. Starting on November 1, 2016, we will remove Persona as an option for logging in. Therefore, you must enable Github authentication on your profile to avoid losing login access to MDN.
-
- -

We recognize that this is an inconvenience, and we do apologize for it. Unfortunately, this is out of our control.

- -

Why is Persona being removed?

- -

Mozilla has shut down the Persona project, and its servers will be turned off in November, 2016. You can learn more about Mozilla's decision to shut down Persona on the Mozilla wiki.

- -

When will Persona be removed?

- -

We will disable Persona as an authentication provider on November 1, 2016; in other words, the last day you'll be able to sign in to MDN using Persona will be October 31, 2016. We will be issuing increasingly frequent and increasingly urgent notifications to add a GitHub account to your MDN profile starting now. Please do this as soon as you can, in order to avoid any risk of losing access to your MDN account.

- -

Will MDN offer another authentication provider?

- -

We would very much like to do so, but have not yet identified another provider which meets our requirements; in addition, we don't currently have the developer resources to integrate another provider. For the time being, your only option to keep contributor access to MDN is to link your MDN profile to your GitHub account.

- -

Keep in mind, of course, that you don't need to sign in to MDN in order to read our content. But if you have an account for contributing, and wish to be able to contribute at any time in the future, be sure to add a GitHub account to your profile as soon as you can, before October 31, 2016.

diff --git a/files/ar/midas/index.html b/files/ar/midas/index.html deleted file mode 100644 index 975b7bdfa8..0000000000 --- a/files/ar/midas/index.html +++ /dev/null @@ -1,330 +0,0 @@ ---- -title: Midas -slug: Midas -tags: - - DOM - - Midas - - NeedsContent - - NeedsHelp - - NeedsTranslation - - Reference - - Référence(2) - - TopicStub -translation_of: Mozilla/Projects/Midas ---- -

Introduction

- -

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 DHTML commands supported by Internet Explorer. Internet Explorer supports the ability to make an entire document editable by setting the designMode 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 contentEditable attribute; Starting with Firefox 3, Gecko also supports contentEditable. Once Midas is invoked, a few more methods of the document object become available.

- -

Properties

- -
-
document.designMode
-
By setting this property to "on", the document becomes editable.
-
- -

Notes

- -

Since an entire document becomes editable, authors often load the editable document into an IFRAME and do the bulk of the scripting in the parent document. According to standards, The IFRAME element has the contentDocument property that refers to the document in the inline frame. It also has a property called contentWindow that refers to the window object inside the inline frame. This also avoids problems with {{bug(198155)}}.

- -

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.

- -

Examples

- -

This example shows the basic structure described in the Notes section :

- -
<html>
-	<head>
-		<title>Simple Edit Box</title>
-	</head>
-	<body>
-		<iframe
-			id="MidasForm"
-			src="about:blank"
-			onload="this.contentDocument.designMode='on';"
-		></iframe>
-	</body>
-</html>
-
- -

Methods

- -
-
{{domxref("Document.execCommand")}}
-
Executes the given command.
-
{{domxref("Document.queryCommandEnabled")}}
-
Determines whether the given command can be executed on the document in its current state.
-
{{domxref("Document.queryCommandIndeterm")}}
-
Determines whether the current selection is in an indetermined state.
-
{{domxref("Document.queryCommandState")}}
-
Determines whether the given command has been executed on the current selection.
-
{{domxref("Document.queryCommandValue")}}
-
Determines the current value of the document, range, or current selection for the given command.
-
- -

Supported Commands

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CommandValueDescription
backcolorA color code.This command will set the background color of the document.
bold If there is no selection, the insertion point will set bold for subsequently typed characters. -

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.

-
contentReadOnly 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.
copy If there is a selection, this command will copy the selection to the clipboard. If there isn't a selection, nothing will happen. -

note: this command won't work without setting a pref or using signed JS. See: more about security preferences

- -

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.

-
createlinkA URI.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.
cut 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. -

note: this command won't work without setting a pref or using signed JS. See: more about security preferences

- -

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.

-
decreasefontsize This command will add a <small> tag around selection or at insertion point.
delete 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 Delete button on the keyboard.
fontnameA font nameThis command will set the font face for a selection or at the insertion point if there is no selection. -

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.

-
fontsizeA numberThis command will set the fontsize for a selection or at the insertion point if there is no selection. -

The given number is such as would be used in the "size" attribute of the font tag.

-
forecolorA color codeThis command will set the text color of the selection or at the insertion point.
formatblockH1, H2, H3, H4, H5, H6, P, DIV, ADDRESS, BLOCKQUOTE (more?)The selection surrounded by the given block element.
headingH1, H2, H3, H4, H5, H6Selected block will be formatted as the given type of heading.
hilitecolorA color codeThis command will set the hilite color of the selection or at the insertion point. It only works with styleWithCSS enabled.
increasefontsize This command will add a <big> tag around selection or at insertion point.
indent Indent the block where the caret is located. If the caret is inside a list, that item becomes a sub-item one level deeper.
insertbronreturntrue/falseSelects whether pressing return inside a paragraph creates another paragraph or just inserts a <br> tag.
inserthorizontalrulenull/string (when string is the Line's id)This command will insert a horizontal rule (line) at the insertion point. -

Does it delete the selection? Yes!

-
inserthtmlA string.This command will insert the given html into the <body> in place of the current selection or at the caret location. -

The given string is the HTML to insert.

-
insertimageA URI.This command will insert an image (referenced by the given url) at the insertion point.
insertorderedlist 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.
insertunorderedlist 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.
insertparagraph Inserts a new paragraph.
italic If there is no selection, the insertion point will set italic for subsequently typed characters. -

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.

-
justifycenter Center-aligns the current block.
justifyfull Fully-justifies the current block.
justifyleft Left-aligns the current block.
justifyright Right aligns the current block.
outdent Outdent the block where the caret is located. If the block is not indented prior to calling outdent, nothing will happen. -

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.

-
paste 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. -

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: more about security preferences

- -

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.

-
redo This command will redo the previous undo action. If undo was not the most recent action, this command will have no effect. -

note: the shortcut key will automatically trigger this command (typically accel-shift-Z)

-
removeformat Removes inline formatting from the current selection.
selectall This command will select all of the contents within the editable area. -

note: the shortcut key will automatically trigger this command (typically accel-A)

-
strikethrough If there is no selection, the insertion point will set strikethrough for subsequently typed characters. -

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.

-
styleWithCSS 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 <b> if the styleWithCSS command is false and generate css style attribute if the styleWithCSS command is true.
subscript If there is no selection, the insertion point will set subscript for subsequently typed characters. -

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.

-
superscript If there is no selection, the insertion point will set superscript for subsequently typed characters. -

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.

-
underline If there is no selection, the insertion point will set underline for subsequently typed characters. -

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.

-
undo This command will undo the previous action. If no action has occurred in the document, then this command will have no effect. -

note: the shortcut key will automatically trigger this command (typically accel-Z)

-
unlink 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.
{{Deprecated_header}}
readonly This command has been replaced with contentReadOnly. It takes the same values as contentReadOnly, but the meaning of true and false are inversed.
useCSS This command has been replaced with styleWithCSS. It takes the same values as styleWithCSS, but the meaning of true and false are inversed.
- -

 

diff --git a/files/ar/midas/security_preferences/index.html b/files/ar/midas/security_preferences/index.html deleted file mode 100644 index 41ade1f168..0000000000 --- a/files/ar/midas/security_preferences/index.html +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: Midas editor module security preferences -slug: Midas/Security_preferences -translation_of: Mozilla/Projects/Midas/Security_preferences ---- -
-
-

Note: If you've reached this page from a message box in Firefox or another Mozilla product, try using keyboard shortcuts for the Cut, Copy, and Paste commands:

-
- - - -

The information on the rest of this page is for Web developers and advanced users. Please do not try to modify this page.

-
- -

To protect users' private information, unprivileged scripts cannot invoke the Cut, Copy, and Paste commands in Midas, which is Mozilla's rich text editor component. This means that the corresponding buttons on the Mozilla Rich Text Editing demo page will not work. To enable these functions, you must modify your browser preferences.

- -
-

Warning: Changing these preferences can leave your browser insecure, especially if you grant permission to untrusted sites. Only change these settings as needed to try the demo above and to test your own add-on or Firefox-internal code, and be sure to restore the default settings when you're done!

-
- -

Changing the preferences in Firefox

- -
    -
  1. Quit Firefox. If you have Quick Launch running (on Windows, this is an icon in the toolbar), quit that too.
  2. -
  3. Find your Firefox profile directory.
  4. -
  5. Open the user.js file from that directory in a text editor. If there's no user.js file, create one.
  6. -
  7. Add these lines to user.js: -
    user_pref("capability.policy.policynames", "allowclipboard");
    -user_pref("capability.policy.allowclipboard.sites", "https://www-archive.mozilla.org");
    -user_pref("capability.policy.allowclipboard.Clipboard.cutcopy", "allAccess");
    -user_pref("capability.policy.allowclipboard.Clipboard.paste", "allAccess");
    -
    -
  8. -
  9. Change the URL https://www.mozilla.org to the site for which you want to enable this function.
  10. -
  11. Save the file and restart Firefox. The Clipboard buttons in the demo, or similar buttons on the sites you listed, should now function.
  12. -
- -
Note: The preference is site as well as protocol specific. For example: - -
user_pref("capability.policy.allowclipboard.sites", "http://www-archive.mozilla.org")
-
- -

is not the same as:

- -
user_pref("capability.policy.allowclipboard.sites", "https://www-archive.mozilla.org")
-
- -

This is because the first uses HTTP while the second uses HTTPS.

-If you want to allow multiple URLs to access the Paste operation, separate the URLs with a space. For example: - -
user_pref("capability.policy.allowclipboard.sites", "https://www-archive.mozilla.org https://developer.mozilla.org")
-
-
- -

Again, keep in mind the security risks involved here and be sure to remove permission to access the clipboard once you no longer need it enabled.

- -

See also

- - diff --git a/files/ar/mozilla/add-ons/add-on_guidelines/index.html b/files/ar/mozilla/add-ons/add-on_guidelines/index.html deleted file mode 100644 index a2ceecab7b..0000000000 --- a/files/ar/mozilla/add-ons/add-on_guidelines/index.html +++ /dev/null @@ -1,116 +0,0 @@ ---- -title: Add-on guidelines -slug: Mozilla/Add-ons/Add-on_guidelines -translation_of: 'https://extensionworkshop.com/documentation/publish/add-on-policies/' ---- -

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 AMO are subject to additional policies.

-

Be Transparent

- -

Be Respectful to Users

- -

Be Safe

- -

Be Stable

- -

Exceptions

- -

Other exceptions may apply.

-

Enforcement

-

Add-ons that do not follow these guidelines may qualify for blocklisting, depending on the extent of the violations. Guidelines qualified with the word - - must - are especially important, and violations thereof will most likely result in a blocklisting nomination.

-

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.

-

Guideline violations should be reported via Bugzilla, under Tech Evangelism > Add-ons. Questions can be posted in the #addons IRC channel.

-

These guidelines may change in the future. All updates will be announced in the Add-ons Blog.

diff --git a/files/ar/mozilla/add-ons/amo/index.html b/files/ar/mozilla/add-ons/amo/index.html deleted file mode 100644 index e1684b2100..0000000000 --- a/files/ar/mozilla/add-ons/amo/index.html +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: AMO -slug: Mozilla/Add-ons/AMO -tags: - - NeedsTranslation - - TopicStub -translation_of: Mozilla/Add-ons/AMO ---- -

Pages documenting addons.mozilla.org:

- -

{{Listsubpages("/en-US/Add-ons/AMO", 10)}}

- -

 

- -

 

diff --git a/files/ar/mozilla/add-ons/amo/policy/index.html b/files/ar/mozilla/add-ons/amo/policy/index.html deleted file mode 100644 index 669d7f8f2d..0000000000 --- a/files/ar/mozilla/add-ons/amo/policy/index.html +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: AMO Policies -slug: Mozilla/Add-ons/AMO/Policy -tags: - - NeedsTranslation - - TopicStub -translation_of: Mozilla/Add-ons/AMO/Policy ---- -

{{AddonSidebar}}

- -

Mozilla is committed to ensuring an excellent experience for both our users and developers of add-ons. Please review the policies below before submitting your add-on.

- -
-
Developer Agreement
-
Effective January 5, 2016
Review Process
-
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.
Featured Add-ons
-
How up-and-coming add-ons become featured and what's involved in the process.
Contacting us - -

How to get in touch with us regarding these policies or your add-on.

- -
diff --git a/files/ar/mozilla/add-ons/themes/index.html b/files/ar/mozilla/add-ons/themes/index.html deleted file mode 100644 index 37dd0c7514..0000000000 --- a/files/ar/mozilla/add-ons/themes/index.html +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: Themes -slug: Mozilla/Add-ons/Themes -tags: - - Add-ons - - Look & Feel - - NeedsTranslation - - Themes - - TopicStub -translation_of: Mozilla/Add-ons/Themes ---- -

{{AddonSidebar}}

- -

Themes allow you to change the look and feel of the user interface and personalize it to your tastes. Learn how to create and share themes!

- -
-
-

Browser Themes

- -
-
Browser theme concepts
-
Get an introduction to creating themes for the latest versions of Firefox
-
- -

Lightweight Themes

- -
-
Lightweight themes
-
Building lightweight themes for Firefox
-
Lightweight themes FAQ
-
Get answers to commonly asked questions
-
-
- - -
- -

 

- -

 

diff --git a/files/ar/mozilla/connect/index.html b/files/ar/mozilla/connect/index.html deleted file mode 100644 index d3b00b5d26..0000000000 --- a/files/ar/mozilla/connect/index.html +++ /dev/null @@ -1,96 +0,0 @@ ---- -title: Connect with Mozilla -slug: Mozilla/Connect -translation_of: Mozilla/Connect ---- -
-

0Enable, inspire and collaborate to make the Web the primary platform used to create experiences across all connected devices.

-
- - -
-
-
- -
- -
- -
- -
- -
-
- -
-

Connect with Mozilla

- -

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.

- -

We are offering help through Q&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. Subscribe to the Apps & Hacks newsletter.

- -

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, follow the tags on Stack Overflow, subscribe to the Hacks blog, subscribe to the newsletter, and sign up for an account!

-
- -
-
-

Q&A on Stack Overflow See all Q&A...

- -

We have Q&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 http://stackoverflow.com/r/mozilla.

- - -
Stack form
- -

Latest Q&A Topics

-
- -
 
-
- -

Developers at a Firefox OS workshop in Madrid.

- -
-
-

Where is Mozilla? View attendees and details on our Events page...

- -

Here is a listing of events where Mozilla representatives will be speaking. Make sure to talk to them!

-
- - -
-
- -

 

diff --git a/files/ar/mozilla/firefox_for_android/index.html b/files/ar/mozilla/firefox_for_android/index.html deleted file mode 100644 index 4844391212..0000000000 --- a/files/ar/mozilla/firefox_for_android/index.html +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: Firefox for Android -slug: Mozilla/Firefox_for_Android -translation_of: Mozilla/Firefox_for_Android ---- -

For more and more people mobile devices are the primary way, or even the only way, to access the Web. Firefox for Android (codenamed Fennec) is an open, hackable, standards-based browser, just like the desktop Firefox.

-

Firefox for Android constructs its user interface from native Android widgets instead of XUL: this greatly improves performance, especially startup time, and memory consumption.

-

Contribute to Firefox for Android

-

The main starting point for information about the Firefox for Android project itself is the project "Get Involved" page.

-

You can help us to create and improve Firefox for Android:

- -

Develop for the mobile web

-

We've started putting together a guide to designing web sites for mobile devices.

-

With Firefox for Android, you've got access a number of APIs that expose the underlying capabilities of the device, closing the gap between the Web and native applications:

- -

To test your web site on Firefox for Android, you can install it on an Android device or run it on your desktop using the Android Emulator.

-

Build mobile add-ons

-

Firefox for Android supports add-ons using the exact same extension system used by all other Gecko-based applications. We did not invent a new add-on system. This means that building an add-on for Firefox on Android is the same process that would be used for desktop Firefox. Add-ons that work with desktop Firefox do not automatically work in Firefox on Android. The user interfaces are just too different.

-
- Firefox on Android has a unique application identifier which must be used in install.rdf. The identifier is {aa3c5121-dab2-40e2-81ca-7ea25febc110}
-

Both classic restart-required and newer restartless add-on approaches are supported. Using the restartless approach is preferred whenever possible because the user experience is far superior to forcing an application restart when installing or removing an add-on.

-

Quick Overview

- -

Get help with Firefox for Android

-

Documentation and tutorials for using and troubleshooting Firefox for Android are available on the Mozilla Support website.

diff --git a/files/ar/mozilla/gecko/index.html b/files/ar/mozilla/gecko/index.html deleted file mode 100644 index ea2c73e891..0000000000 --- a/files/ar/mozilla/gecko/index.html +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Gecko -slug: Mozilla/Gecko -translation_of: Mozilla/Gecko ---- -
-

أبو بريص هو اسم محرك تخطيط وضعتها مشروع موزيلا. كان اسمه في الأصل أنه NGLayout. وظيفة أبو بريص هو لقراءة المحتوى على شبكة الإنترنت، مثل HTML، CSS، كسول، جافا سكريبت، وجعله على شاشة المستخدم أو طباعته. في التطبيقات المستندة XUL-يستخدم أبو بريص لتقديم واجهة المستخدم للتطبيق أيضا.

-
- -

يستخدم أبو بريص في العديد من التطبيقات، بما في ذلك عدد قليل من المتصفحات، مثل فايرفوكس، إضافات، وما إلى ذلك (للحصول على قائمة كاملة، يرجى الرجوع إلى ويكيبيديا المادة على أبو بريص) المنتجات التي تستخدم نفس الإصدار من أبو بريص على دعم مماثل للمعايير.

- - - - - - - - -
-

توثيق

- -
-
أبو بريص التعليمات
-
الأسئلة المتداولة حول أبو بريص.
-
إشارة زغة DOM
-
إشارة إلى DOM.
-
إشارة حدث أبو بريص
-
الرجوع إلى أحداث المستخدمة في التطبيقات أبو بريص وموزيلا. للأحداث DOM القياسية على شبكة الإنترنت، انظر المرجع الحدث DOM.
-
إصدارات أبو بريص والإصدارات تطبيق
-
إصدارات أبو بريص والتطبيقات انهم المستخدمة في.
-
مقدمة في التخطيط في موزيلا
-
التكنولوجيا الحديث في التخطيط.
-
تضمين موزيلا
-
عن طريق أبو بريص في التطبيق الخاص بك.
-
مجموعات الأحرف التي تدعمها أبو بريص
-
قائمة مجموعات الأحرف التي يدعمها أبو بريص.
-
HTML محلل خيوط
-
وصف خاصية تعدد في محلل HTML.
-
{{إنترويكي ('wikimo'، 'أبو بريص: Home_Page'، 'أبو بريص الصفحة الرئيسية على MozillaWiki')}}
-
الصفحة الرئيسية للمطورين النشط. خرائط الطريق وأكثر ما يصل إلى تاريخ الموارد.
-
- -

مشاهدة الكل...

-
-

مجتمع

- -
    -
  • عرض المنتديات موزيلا ... {{DiscussionList ("ديف التكنولوجيا تخطيط"، "mozilla.dev.tech.layout")}}
  • -
- - - -
-
معايير الويب، كسول، تضمين موزيلا، تطوير موزيلا
-
-
- -

 

diff --git a/files/ar/mozilla/localization/index.html b/files/ar/mozilla/localization/index.html deleted file mode 100644 index 18af36251d..0000000000 --- a/files/ar/mozilla/localization/index.html +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Localization at Mozilla -slug: Mozilla/Localization -tags: - - Landing - - Localization - - Mozilla - - NeedsTranslation - - TopicStub - - Translation - - l10n -translation_of: Mozilla/Localization ---- -

Localization (L10n) is the process of translating software user interfaces from one language to another and adapting it to suit a foreign culture. These resources are for anyone with an interest in the technical aspects involved in localization. They are for developers and all contributors.

- -
-

The documentation here is no longer being maintained and is inaccurate. L10n documentation has moved to https://mozilla-l10n.github.io/localizer-documentation/ . To learn how to bootstrap a new locale for Mozilla projects, please see those documents

-
- -

See also

- -
-
Localizing MDN
-
This resource covers localization of the documentation here on MDN.
-
App localization
-
This set of documents applies more specifically to localizing apps, including Firefox OS apps.
-
L10n
-
Reference docs for the L10n API that Mozilla uses to localise Firefox OS.
-
diff --git a/files/ar/mozilla/localization/localizing_xliff_files/index.html b/files/ar/mozilla/localization/localizing_xliff_files/index.html deleted file mode 100644 index ec8609c60d..0000000000 --- a/files/ar/mozilla/localization/localizing_xliff_files/index.html +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: Localizing XLIFF files for iOS -slug: Mozilla/Localization/Localizing_XLIFF_files -translation_of: Mozilla/Localization/Localizing_XLIFF_files ---- -

Firefox for iOS uses the XLIFF XML-based file format to hold and transfer localization data. XLIFF (eXtensible Localisation Interchange File Format) is a localization standard governed by the OASIS standards body. The goal of the standard is to have an XML-based format to use when exchanging localization data between tools without the potential of data loss or corruption. Most translation tools support the XLIFF standard, making localizing the XLIFF files for Firefox for iOS easy to do using translation tools. Editing the raw XLIFF file is also rather easy, especially if you're already familiar with XML. This tutorial will walk you through the steps you need to take to translation strings within an XLIFF file.

- -

String repository for Firefox on iOS

- -

The firefox-ios.xliff file is located in SVN.

- -
    -
  1. Decide where on your local computer you will store your copy of the github repo and navigate there in your terminal.
  2. -
  3. Enter the command git clone https://github.com/mozilla-l10n/firefoxios-l10n/your-locale-code/
  4. -
  5. You should now see the firefox-ios project in your selected directoy with the firefox-ios.xliff file in it.
  6. -
- -

Translating the XLIFF file

- -
    -
  1. Open the firefox-ios.xliff file in your favorite text editor.
  2. -
  3. In the <file> tag, add the target-language attribute with your locale code as the value (e.g., target-language="xx-XX"). Be aware that there may be many <file> tags within one XLIFF document. Each <file> tag requires the target-language attribute with your locale code as the value (e.g., target-language="xx-XX").
  4. -
  5. Strings are located within <trans-unit> tags. Source English strings are contained in <source> child tags. Here is an example of such a <trans-unit> -
    <trans-unit id="Add to Bookmarks">
    -    <source>Add to Bookmarks</source>
    -</trans-unit>
    -
    - Your translations must be contained inside <target> child tags. Go through the full xliff page adding <target></target> below each <source> tag set to help you to identify strings that need to be translated. Do not delete the <source> tag sets. - -
    <trans-unit id="Add to Bookmarks">
    -    <source>Add to Bookmarks</source>
    -    <target>YOUR_TRANSLATION_HERE</target>
    -</trans-unit>
    -
    -
  6. -
  7. Provide translations of the strings in the <source> tag sets by placing their translations in the <target> tag sets beneath them. Keep in mind the following sets of characters that need to remain untranslated: -
      -
    1. $(SOME_TEXT_HERE) is a variable format,
    2. -
    3. %1$@ is another variable format.
    4. -
    5. <note> tags contain localizer notes from developers and should not be translated.
    6. -
    - -
    <trans-unit id="Add to Bookmarks">
    -    <source>Add to Bookmarks</source>
    -    <target>Agregar a marcadores</target>
    -    <note>No comment provided by engineer.</note>
    -</trans-unit>
    -
    -
  8. -
  9. Save your translations along the way.
  10. -
  11. Once you've completed translation, it's important to make sure the XML in your XLIFF file is valid (e.g., no broken tag sets). Open the file in Firefox to have it run a validity check and correct any errors it might yell about.
  12. -
- -

Commiting your XLIFF file

- -
    -
  1. Using this command, commit your translated XLIFF file into your locale's directory: git commit -m "Commit message here" .
  2. -
  3. Push your commit into the github repo: git push
  4. -
  5. Kick up your feet, pop open a cold beer (or soda), and pat yourself on the back for doing something new, different, and exciting!
  6. -
diff --git a/files/ar/mozilla/localization/web_localizability/creating_localizable_web_applications/index.html b/files/ar/mozilla/localization/web_localizability/creating_localizable_web_applications/index.html deleted file mode 100644 index 1971da3911..0000000000 --- a/files/ar/mozilla/localization/web_localizability/creating_localizable_web_applications/index.html +++ /dev/null @@ -1,437 +0,0 @@ ---- -title: Creating localizable web applications -slug: Mozilla/Localization/Web_Localizability/Creating_localizable_web_applications -translation_of: Mozilla/Localization/Web_Localizability/Creating_localizable_web_applications ---- -

An important step of developing a web application or creating web content is making sure that it can be localized. Listed below are good practices and recommendations that should be followed in order to make your content easily localizable.

-

Most of the code snippets used in the examples below come from an early version of the getpersonas.com website. In some cases, the code snippets were slightly changed to better illustrate the recommendations or for clarity.

-

Cheatsheet

- -

App Logic

-

Detect the locale correctly

-

Be smart about detecting the user's locale correctly. You can use one or more of the following techniques:

- -

See examples of the addons.mozillaorg code at /addons/trunk/site/app/config/language.php and /addons/trunk/site/app/config/language.inc.php. The LANGUAGE_CONFIG class expects arrays of valid languages & supported languages.

-

Always give the user a possibility to change the locale (e.g. by adding locale dropdown menu at bottom of page) and remember this choice for the future visits.

-

Use the locale code in the URLs

-

Depending on how you detect user's locale, you may want to provide a way of overriding the autodetection. You can achieve this by setting a cookie when the changes the locale with the language dropdown, or by looking for locale code in the URL. The latter involves rewriting the URLs to include the locale code and rewriting Apache's aliases to handle locale in URLs.

-

You can put the locale code as the top-most element of the URL's path (e.g. http://example.com/en-US/foo/bar) or on its end (e.g. http://example.com/foo/bar/en-US). Avoid using it in a subdomain, as it can cause problems with certificates (this is wrong: http://en-us.example.com/foo/bar).

-

Simplify localized versions if necessary

-

Oftentimes, it is better to slightly simplify the localized version of your web application than to serve a mix of localized and English content. For example, if not all the pages of your website are going to be localized, you may consider removing links to the English-only pages from the navigation (headers, footers, sidebars) in the localized versions.

-

Define the locale and the direction in the HTML

-

Generate the lang attribute dynamically, depending on the current locale. Use the dir attribute on the <html/> element and consider using a rtl class on <html/> or <body/> as well, in order to easily change CSS rules like in the example below.

-

Snippet 1. Bad:

-
<html lang="en">
-
-

Snippet 2. Good:

-

CSS:

-
html[dir='rtl'] foo {
-  /* RTL-specific rules for the FOO element */
-}
-
-body.rtl foo {
-  /* RTL-specific rules for the FOO element */
-}
-

HTML/PHP:

-
<?php
-    function isRTL($locale) {
-        $RTL_locales = array('ar', 'fa', 'he');
-        return in_array($locale, $RTL_locales);
-    }
-?>
-<html lang="<?= $locale?>" dir="<?= isRTL($locale) ? 'rtl' : 'ltr' ?>" >
-    <body class="<?= $locale?> <?= isRTL($locale) ? 'rtl' : 'ltr' ?>">
-    </body>
-</html>
-

Notice that <body/> is given a class equal to the current locale. This is useful to add minor corrective rules to the CSS that apply only for selected locales. For example, for locales that tend to have longer words than English, you may want to make an element slightly wider.

-

Snippet 3. Good:

-
body.de foo, body.fr foo, body.pl foo {
-  /* locale-specific rules for the FOO element */
-  width: 10em; /* originally 8em */
-}
-

Adapt the interaction to RTL locales

-

Right-to-left locales not only require good images handling (see Images), but also should be taken into account when designing the interaction on the website. Consider the following example: a filmreel-like slideshow showcasing highlighted features of the product or featured designs. For right-to-left languages, the slideshow should go from right to left as well, making the last element in the HTML the first one to be displayed.

-

Separate URLs from navigation

-

Sometimes, when the URLs are well-designed, you may want to use the URL to do something in the code depending on when the user is. Take the URL structure of the getpersonas.com website for example. The URL http://getpersonas.com/nature/popular/2 points to the second page of the listing of the popular Personas in the "Nature" category. You could easily use list($category, $tab, $page) = explode('/', $path); to get this information directly from the URL. After that, it is tempting to use the $category or $tab variables in the interface. However, this is problematic for localization. You probably don't want to localize the URLs to keep them uniform across locales as well as to avoid issues with non-Latin and/or RTL characters.  So in order to display a localized label of a category or a tab, you should create a mapping between the non-localizable English names used in the URLs and the localizable English strings used in the interface. Consider the following example:

-

Snippet 1. Good:

-
$tab_labels = array( "popular" => _('Popular'),
-                     "recent" => _('Recent'),
-                     "all" => _('All'),
-                     "my" => _('My'),
-                     "favorites" => _('Favorites')
-                     );
-list($category, $tab, $page) = explode('/', $path);
-if ($tab == 'popular') {          // $tab is always English
-  // ....
-  echo $tab_labels($tab);         // this will display the translation
-}
- -

Indicate the language of the pages you link to if it is different from the user's current language. For English, add hreflang="en" to links to resources that are not going to be localized or are external to your web application. Then, use CSS to give a cue to the user that if she follows the link, she will be served English content.

-

Snippet 1. Bad:

-
<a href="http://www.mozilla.com/en-US/privacy-policy.html"><?= _('Privacy policy'); ?></a>
-
-

Snippet 2. Good:

-

CSS:

-
a[hreflang="en"]::after {
-  content: " [en]"
-}
-
-

HTML/PHP:

-
<a href="http://www.mozilla.com/en-US/privacy-policy.html" hreflang="en"><?= _('Privacy policy'); ?></a>
-

 

-

Don't mingle app logic and localizable content when using pure HTML

-

If you decide not to use gettext on some pages (e.g. because they contain a lot of text and localizing source HTML is easier), make sure to keep the code responsible for application logic separate from the localizable content. The logic of the website should not be exposed directly in the localization files, to avoid any accidental changes by localizers.

-

Snippet 1. Bad:

-
require_once('lib/user.php');
-$user = new PersonaUser();
-

Snippet 2. Good:

-
require_once('templates/footer.php');
-

If it's not possible to remove the app logic code, you should consider using gettext. Gettext extracts localizable content form the source files, thus making it impossible for localizers to accidentally change them. You can learn more about the choice of the format for your project at File formats.

-

Text messages

-

Don't hardcode English content

-

Allow localizers to localize English content, such as:

- -

Note that some strings might be hidden in libraries' code (e.g. error messages), or in JavaScript libraries and scripts.

-

If you are using pure HTML instead of gettext to localize your webapp, consider using an additional gettext-like format such as .lang to streamline localizers' work with repeating content. This is useful for strings occurring in the webapp multiple times, like "return to top", "comments", "click to see larger image" etc. Might be also helpful for headers and footers, if you're not using templates to display them.

-

In most of the cases though, you should use gettext whenever technically possible (i.e. the server's PHP has been built with gettext support).

-

Localize the date format

-

Localizing the date format is as easy as localizing any other string. Just let the localizers localize the format specification string.

-

Snippet 1. Bad:

-
$persona['date'] = date("n/j/Y", strtotime($persona['approve']));
-
-

Snippet 2. Good:

-
$persona['date'] = date(_("n/j/Y"), strtotime($persona['approve']));
-
-

Localize the number format

-

You can make the number format localizable using the information returned by localeconv() in PHP.

-

Snippet 1. Bad:

-
printf(_("%s MB>"), $size);
-
-

Snippet 2. Good:

-
function num_format($num, $decimals) {
-  $locale_info = localeconv();
-  return number_format($num, $decimals, $locale_info['decimal_point'], $locale_info['thousands_sep']);
-}
-
-printf(_("%s MB"), num_format($size, 1));
-
-

Wrap as few HTML tags as possible

-

When wrapping the localizable content with the gettext function calls, put all the code that irrelevant to localization outside the function call.

-

Snippet 1. Bad:

-
<?= _("<a href=\"https://addons.mozilla.org/firefox/downloads/latest/10900\" class=\"get-personas\" id=\"download\"><span>Get Personas for Firefox - Free</span>");?><span class="arrow"></span></a>
-
-

Snippet 2. Good:

-
<a href="https://addons.mozilla.org/firefox/downloads/latest/10900" class="get-personas" id="download">
-  <span><?= _("Get Personas for Firefox - Free");?></span><span class="arrow"></span>
-</a>
-

 

-

Snippet 3. Bad:

-
<p><?= _("<strong class=\"legal\">Design Acceptance:</strong> If a design is accepted, we will send the following message:");?></p>
-<p><?= _("<strong class=\"legal\">Design Rejection:</strong> If a design is rejected, we will send the following message:");?></p>
-
-

Snippet 4. Good:

-
<p><strong class="legal"><?= _("Design Acceptance:");?></strong> <?= _("If a design is accepted, we will send the following message:");?></p>
-<p><strong class="legal"><?= _("Design Rejection:");?></strong> <?= _("If a design is rejected, we will send the following message:");?></p>
-

 

-

Snippet 5. Bad:

-
<p id="breadcrumbs">
-  <?printf(_("<a href=\"%s\">Personas Home</a> : <a href=\"%s\">Sign In</a> : Forgot Your Password?"),
-             $locale_conf->url('/'),
-             $locale_conf->url('/signin'));?>
-</p>
-
-

Snippet 6. Good:

-
<p id="breadcrumbs">
-  <?printf("<a href=\"%s\">" . _("Personas Home") . "</a> : <a href=\"%s\">" . _("Sign In") . "</a> : " . _("Forgot Your Password?"),
-            $locale_conf->url('/'),
-            $locale_conf->url('/signin'));?>
-</p>
-

 

-

Snippet 7. Bad:

-
<p class="description"><?= _("<strong>Description:</strong>");?></p>
-

Snippet 8. Good:

-
<p class="description"><strong><?= _("Description:");?></strong></p>
-

 

-

Snippet 9. Good:

-
<h1>
-  <?printf("<a href=\"%s\"><img src=\"/static/img/logo.png\" alt=\"" . _("Mozilla Labs Personas") . "\" /></a>",
-           $locale_conf->url('/'));?>
-</h1>
-
-

Snippet 10. Better:

-
<h1>
-  <a href="<?= $locale_conf->url('/') ?>">
-    <img src="/static/img/logo.png" alt="<?= /* L10N: link title attribute */ _("Mozilla Labs Personas"); ?> " />
-  </a>
-</h1>
-

...but don't sacrifice flexibility

-

Don't sacrifice flexibility trying to satisfy the rule above. Make sure the content supports changing the order of the sentence, which may be required by some grammars.

-

Snippet 1. Bad:

-
<p class="added"><?= _("<strong>Added:</strong>") . $persona['date']; ?></p>
-

Snippet 2. Bad:

-
<p class="added"><strong><?= _("Added:") ?></strong><?= $persona['date']; ?></p>
-

Snippet 3. Good:

-
<p class="added"><? printf( /* L10N: %s is a date */ _("<strong>Added:</strong> %s"), $persona['date']);?></p>
-

The first bad snippet puts the <strong/> HTML elements inside the gettext function call and concatenates the $persona['date'] variable to it. Following the rule about wrapping as few HTML elements with the gettext function call as possible, you could try to put the <strong/> HTML tag outside of the PHP code (cf. snippet 2). However, in this snippet, the concatenation of the $persona['date'] variable is still hardcoded and only allows one ordering of the sentence, while some grammars might require, for instance, to put the date in front of the "Added" descriptor. For this reason, it is better to leave the <strong/> HTML tags inside the gettext function call and take advantage of the printf() variable that will be substituted by the date upon interpretation of the code (snippet 3).

-

Snippet 4. Good:

-
<h3>
-  <?printf( /* L10N: %s is the author's username */ _("created by <a href=\"%s\">%s</a>"),
-           $locale_conf->url('/gallery/Designer/' . $persona['author']),
-           $persona['display_username']);?>
-</h3>
-

In this example the link is in the _() call so that localizers can adjust the position of the author's name, depending on the grammar of their language.

-

Use printf() for string substitution

-

Whenever there is content that will change, either upon interpretation of the code or as part of development, don't use concatenation. Instead, use printf() and string formatting. For instance, don't put URIs into msgid's. If you do, if the static URI changes, you'll have to regenerate the *.po files to include the new msgids.

-

Snippet 1. Bad:

-
<?= _("View a sample Persona Header <b><a href=\"/static/img/Persona_Header_LABS.jpg\">here</a></b>.");?>
-

Snippet 2. Good:

-
<?php printf(_("View a sample Persona Header <b><a href=\"%s\">here</a></b>."), '/static/img/Persona_Header_LABS.jpg'); ?>
-

 

-

Snippet 3. Bad:

-
<p><?=_("If you are interested in supporting the approval process by becoming an approver, please email <a href=\"mailto:personas@mozilla.com\">personas@mozilla.com</a>.")?></p>
-

Snippet 4. Good:

-
<p><?= printf(_("If you are interested in supporting the approval process by becoming an approver, please email <a href=\"mailto:%s\">%s</a>."),
-              'personas@mozilla.com',
-              'personas@mozilla.com')?>
-</p>
-

Snippet 5. Also good:

-
<p><?= printf(_("If you are interested in supporting the approval process by becoming an approver, please email <a href=\"mailto:%1$s\">%1$s</a>."),
-              'personas@mozilla.com')?>
-</p>
-

The same goes for variables that are unknown until the code is interpreted. Localizers should have a possibility to adapt the order of the sentence (including the variable part) to the grammar and preferred style used in their language. Consider the following example.

-

Snippet 6. Bad:

-
<p class="added"><?= _("<strong>Added:</strong>") . $persona['date']; ?></p>
-

Snippet 7. Good:

-
<p class="added"><? printf( /* L10N: %s is a date */ _("<strong>Added:</strong> %s"), $persona['date']);?></p>
-

In Snippet 6 the concatenation causes the ordering of the sentence to be fixed, while some grammars might require, for instance, to put the date in front of the "Added" descriptor. You should take advantage of the printf() variable that will be substituted by the date upon interpretation of the code (snippet 7).

-

Use gettext comments

-

Use comments in the code to help localizers understand what they are translating. You can explain where the string will appear in the application, or what the variables used in the string will be replaced with. Put comments in the same line as the gettext function call (inline comments, in PHP these are /* ... */), or one line directly above the gettext function call (block comments, in PHP they start with # ... or // ...). In either way, use a consistent prefix for localization-related comments, e.g. "L10n". When extracting strings with xgettext you will be able to include only comments starting with this prefix using the --add-comments=PREFIX option, for example xgettext --add-comments=L10n.

-

Snippet 1. Bad:

-
<h1>
-  <a href="<?= $locale_conf->url('/') ?>">
-    <img src="/static/img/logo.png" alt="<?= _("Mozilla Labs Personas"); ?>" />
-  </a>
-</h1>
-
-

Snippet 2. Good:

-
<h1>
-  <a href="<?= $locale_conf->url('/') ?>">
-    <img src="/static/img/logo.png" alt="<?= /* L10n: link title attribute */ _("Mozilla Labs Personas") ?> " />
-  </a>
-</h1>
-

 

-

Snippet 3. Bad:

-
<p class="added"><? printf(_("<strong>Added:</strong> %s"), $persona['date']);?></p>
-
-

Snippet 4. Good:

-
<p class="added"><? printf( /* L10N: %s is a date */ _("<strong>Added:</strong> %s"), $persona['date']);?></p>
-

 

-

Snippet 5. Bad:

-
printf(_("%1$s by %2$s"), $persona['name'], $persona['display_username']);
-
-

Snippet 6. Good:

-
// %1$s is persona name, %2$s is athor's username
-printf(_("%1$s by %2$s"), $persona['name'], $persona['display_username']);
-
-

Use printf variables swapping

-

Use printf() ordered variables (%1$s, %2$s, etc.) to allow changes to the order of the sentence. Some languages may require this. Remember to use single quotes around the strings containing the formatting symbols. Otherwise, PHP will treat $s as a regular variable, instead of parsing the whole %1$s formatting symbol.

-

Snippet 1. Bad:

-
$page_header = $persona['name'] . ' by ' . $persona['display_username'];
-

Snippet 2. Better:

-
printf(_("%s by %s"), $persona['name'], $persona['display_username']);
-

Snippet 3. Good:

-
// %1$s is the persona's name, %2$s is the athor's username
-printf(_('%1$s by %2$s'), $persona['name'], $persona['display_username']);
-

Note the single quotes around '%1$s by %2$s'.

-

Don't nest gettext calls

-

Snippet 1. Bad:

-
<?printf(_("<a href=\"%s\">" . _("Personas Home") . "</a> : How to Create Personas"), $locale_conf->url('/'));?>
-

Snippet 2. Good:

-
<?printf("<a href=\"%s\">" . _("Personas Home") . "</a> : " . _("How to Create Personas"), $locale_conf->url('/'));?>
-

Don't break long text content into multiple strings

-

Don't break long text messages into smaller pieces if the text is a coherent whole. Examples include long paragraphs or e-mail bodies. Gettext doesn't specify the order of the strings in the messages.po file, so a localizer may end up seeing the partial strings of your content scattered all over the file. If you really have to use multiple strings, then make sure you're using comments or event contexts to let localizers know which part they're translating (cf. snippet 2 below).

-

Snippet 1. Bad:

-
echo _("Long text\n");
-echo _("Second part\n");
-echo _("Third part\n");
-

Snippet 2. Still bad (but slightly better than snippet 1):

-
# L10n: Long text example, part 1.
-echo _("Long text\n");
-# L10n: Long text example, part 2.
-echo _("Second part\n");
-# L10n: Long text example, part 3.
-echo _("Third part\n");
-

Snippet 3. Good:

-
# L10n: No indentation is possible after the first line.
-echo _("Long text
-Second part
-Third part\n");
-

Snippet 4. Good (even better):

-
# L10n: You can indent lines to your liking.
-echo _("Long text\n"
-      . "Second part\n"
-      . "Third part\n");
-

The solution in snippet 3 doesn't allow to use code indentation for "Second part" and "Third part". If you indent "Second part", the resulting string (interpreted by PHP and Gettext) will end up indented as well. It is thus recommended to use the solution from snippet 4. Consider the following example:

-

Snippet 5. Bad indentation:

-

PHP code:

-
# L10n: This will be wrongly indented.
-echo _("Long text
-        Second part
-        Third part\n");
-

PHP output:

-
Long text
-        Second part
-        Third part
-
-

messages.po:

-
#. L10n: This will be wrongly indented.
-msgid ""
-"Long text\n"
-"        Second part\n"
-"        Third part\n"
-msgstr ""
-

In order to indent your code, you must use string concatenation. See snippet 4 above for an example of how to do this.

-

Use gettext contexts

-

Depending on context in which it is used, one English string might require two or more different translations. This is particularly true for short strings, like "File" or "Log in". For instance, "Log in" as a button label might be translated by a localizer as the imperative, but for a dialog title, the localizer may choose to use a different form, like gerund (much like "Logging in"). Gettext's context feature allows the developer to distinguish between two identical English strings and disambiguate the translation.

-

Use gettext plurals

-

Whenever you put numbers in your messages, make it possible to use different singular and plural forms.

-

Snippet 1. Bad:

-
print '<p class="numb-users">' . sprintf(_("%d active daily users"), number_format($persona['popularity'])) . '</p>';
-

Snippet 2. Good:

-
print '<p class="numb-users">' . sprintf(ngettext("%d active daily user", "%d active daily users"),
-                                         number_format($persona['popularity'])) . '</p>';
-

One might argue that adding plural support here is not necessary because, for instance, the number of daily users in the example above will always be greater than 1, i.e. will always require the use of the plural form. While this is true for English, it should be noted that some languages require different forms of strings for numbers greater than 1 as well. For example, all numbers ending in 2, 3 or 4 (be it 21 or 1021) might require a special plural form.

-

Read more about plurals in gettext and about plural rules for different languages.

-

Don't use text as decoration

-

 This needs more work.

-
<?printf("<a href=\"%s\">" . _("Step 3: Testing your Persona Images") . "</a> &raquo;", $locale_conf->url('/demo_create_3'));?>
-<?printf("<a href=\"%s\">" . _("Step 2: Creating a Persona Footer Image") . "</a> &raquo;", $locale_conf->url('/demo_create_2'));?>
-<?printf("<a href=\"%s\">" . _("Step 4: Submit your Persona!") . "</a> &raquo;", $locale_conf->url('/demo_create_4'));?>
-
-<div class="tut_left"><?printf("<b>&laquo; <a href=\"%s\">" . _("Back to Step 1") . "</a></b>", $locale_conf->url('/demo_create'));?></div>
-<div class="tut_right"><?printf("<b><a href=\"%s\">" . _("Continue to Step 3") . "</a> &raquo;</b>", $locale_conf->url('/demo_create_3'));?></div>
-

Using &laquo; and &raquo; should be OK here for RTL languages (they are flipped correctly if there are no Latin characters next to them, which there aren't any), so let's leave it as it is. In general though, we should consider implementing such decorations as CSS images (background-image or ::after's/::before's content) and then select them with "html[dir="rtl"] > ...". It a safer method.

-
<?php if($showWearThis) { ?>
-  $(".try-button").personasButton({
-    'hasPersonas':'<span><?= _("wear this");?></span><span>&nbsp;</span>',
-    'hasFirefox':'<span><?= _("get personas now!");?></span><span>&nbsp;</span>',
-    'noFirefox':'<span><?= _("get personas with firefox");?></span><span>&nbsp;</span>'
-  });
-<?php } ?>
-

Images

-

Don't put text or numbers in the images

-

Just don't do that. Applies also to numbers.

-

Image 1. Bad:

-

personas-btn-get.png

-

Image 2. Bad:

-

personas-faq-header.png

-

If you wish to use a non-standard font (as in the image above), take advantage of the CSS's on-line fonts feature available via @font-face.

-

Image 3. Bad:

-

personas-logo-beta.png

-

The trouble with the above image is the "for Firefox" part, which should be made localizable. Keep in mind that you should allow to localize the whole "for Firefox" part, not only the "for" preposition to which you'd concatenate the "Firefox" part. That's because some languages might require changing the word order, and others might require putting the word Firefox in the correct grammatical case.

-

Image 4. Bad:

-

feature-bg-performance.png

-

Image 5 & Snippet 1. Good:

-

Image file (/img/tignish/firefox/performance-chart.png):

-

performance-chart.png

-

HTML: (in this case, no gettext was used and the localizers worked on pure HTML files)

-
<div id="performance-chart">
-  <h4>Firefox Performance: Fast — Faster — <em>Fastest</em></h4>
-  <p>Results of a SunSpider test on a Windows XP machine</p>
-  <img src="/img/tignish/firefox/performance-chart.png" alt="Firefox 2, Firefox 3, Firefox 3.5 performance chart" />
-  <ul>
-    <li>18,148 ms</li>
-    <li>3,669 ms</li>
-    <li>1,524 ms!</li>
-   </ul>
-</div>
-

In the above example, not only does the text above the clock charts require translation, but so do the milliseconds captions below them. Many languages use different number formats than English, like 18 148 or 18.148. Also, the last caption includes an exclamation mark, and for some languages (e.g. French), the orthographic rules might require putting a space between the exclamation mark and the preceding word.

-

Make icons flippable for RTL

-

Image 1.

-

question-64.png

-

This icon should have its right-to-left equivalent, with the "؟" character which is used in some RTL languages, like Arabic and Persian (note that Hebrew uses "?"). You should then display the right icon depending on the locale. The following example shows how to achieve this with CSS.

-

Snippet 1. Bad:

-
<div class="tut_didyouknow">
-  <img src="/static/img/question-64.png" class="tut_icon">
-  <?printf (_("Did you know you can test a Persona before you submit it?  <b><a href=\"%s\">Find out how!</a>&raquo;</b>"),
-            $locale_conf->url('/demo_create_3#test'));?>
-</div>
-

Snippet 2. Good:

-

CSS:

-
div.tut_didyouknow {
-  background: url(/static/img/question-64.png) no-repeat 0 0;
-  padding-left: 64px;
-}
-
-html[dir='rtl'] div.tut_didyouknow {
-  background-image: url(/static/img/question-64.png);
-  background-position: 100% 0;
-  padding-left: 0;
-  padding-right: 64px;
-}
-
-

HTML/PHP:

-
<div class="tut_didyouknow">
-  <?printf (_("Did you know you can test a Persona before you submit it?  <b><a href=\"%s\">Find out how!</a>&raquo;</b>"),
-            $locale_conf->url('/demo_create_3#test'));?>
-</div>
-

Notice that the icon has been moved to CSS, so that it doesn't sit in a <img/> element. This is generally considered a good practice for decorative graphics.

-

Don't use images as buttons

-

Instead, use <button/> and style it with CSS.

-

Image 1. Bad:

-

tut_btn_getStarted.gif

-

Snippet 1. Good:

-

CSS:

-
.button {
-    font-weight: bold;
-    color: #0077a6;
-    font-family: Arial, sans-serif;
-    border: none;
-    background: none;
-    cursor: pointer;
-    overflow: visible;
-    width: auto;
-    height: 30px;
-    text-decoration: none;
-    vertical-align: middle;
-}
-
-.button span {
-    background: #fff url(../img/main-sprites.png) no-repeat scroll -384px 1px;
-    display:inline;
-    line-height: 25px;
-    padding: 6px 6px 6px 10px;
-}
-
-.button .arrow {
-    background: transparent url(../img/main-sprites.png) no-repeat scroll -651px 1px;
-    padding: 6px 15px;
-}
-
-html[dir='rtl'] .button .arrow {
-    /* Flip the arrow to point to the left*/
-    background: transparent url(../img/main-sprites.png) no-repeat scroll -601px 1px;
-}
-
-

HTML/PHP:

-
<button type="submit" class="button"><span><?= _('get started'); ?></span><span class="arrow"></span></button>
-
-

Don't put captions in the images

-

Image 1. Bad:

-

tut_headerImage.jpg

diff --git a/files/ar/mozilla/localization/web_localizability/index.html b/files/ar/mozilla/localization/web_localizability/index.html deleted file mode 100644 index d8a814e46b..0000000000 --- a/files/ar/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 ---- -

Localizability (or l12y 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:

-
  1. How to create localizable content.
  2. How to choose the right localization format.
  3. How to create localizable web applications.
  4. How to set up the infrastructure for localization.
  5. -
-

Why localizability is important

-

There are many reasons why you should start thinking about making your web app localizable as soon as possible.

-
  1. You will make localizer's life easier, for which they will be grateful.
  2. You will have quality content, localized and adapted to the needs of the local market.
  3. Extending you web app to support new languages will be easy.
  4. The content will be easier to maintain and update.
  5. You will end up writing more semanticly-correct code, which is good for your SEO.
  6. By reviewing your content and code for l12y, you will find and fix bugs in your original language too.
  7. -
diff --git "a/files/ar/mozilla/localization/\330\247\331\204\330\252\330\261\330\254\331\205\330\251_\331\205\330\271_\330\250\331\210\331\206\330\252\331\210\331\210\331\206/index.html" "b/files/ar/mozilla/localization/\330\247\331\204\330\252\330\261\330\254\331\205\330\251_\331\205\330\271_\330\250\331\210\331\206\330\252\331\210\331\210\331\206/index.html" deleted file mode 100644 index 5feb5c26be..0000000000 --- "a/files/ar/mozilla/localization/\330\247\331\204\330\252\330\261\330\254\331\205\330\251_\331\205\330\271_\330\250\331\210\331\206\330\252\331\210\331\210\331\206/index.html" +++ /dev/null @@ -1,135 +0,0 @@ ---- -title: الترجمة باستخدام بونتوون -slug: Mozilla/Localization/الترجمة_مع_بونتوون -translation_of: Mozilla/Localization/Localizing_with_Pontoon ---- -

يعد بونتوون اداة ترجمة (l10n) من نوع "ما تراه هو ما تحصل عليه" (WYSIWYG). نستخدم بونتوون في موزيلا لترجمة جميع المنتجات و المواقع، ابتداءً من فايرفوكس إلى موقع موزيلا. يعد بونتوون أداة بسيطة جداً وبديهية والتي تتطلب مهارات قليلة غير تقنية لاستخدامها في الترجمة. هنا، سوف نناقش كيف يمكنك استخدام بونتوون لترجمة المشاريع، ابتداءً من ولوجك للموقع إلى إنهاء مساهمتك. في أثناء الشرح سنشير إلى بعض المزايا المفيدة التي ستجعل مساهمتك أكثر فعالية و سهولة.

- -
-

هل أنت مطور؟ أقرأ حول استخدام بونتوون في مشروعك أو تعلم كيفية المساهمة في المشروع على غيت هاب.

-
- -

الخطوات الأولى

- -

تعد الصفحة الرئيسية لموقع بونتوون سهلة الاستخدام. لبدئ ترجمة مشروع قم بالضغط على أيقونة الشخصية في الأعلى وسجل دخولك. بعد ذلك، قم ببساطة باختيار المشروع الذي تريد العمل عليه واللغة من القوائم المسندلة. سيقوم بونتوون تلقائياً بفتح مشروع الترجمة من أجل البدئ. لاحظ أنه في حالتنا سنقوم باستخدام موقع Firefox Affiliates كعينة لإظهار وظائف وطريقة عمل بونتوون. والصورة التالية توضح شكل الموقع وهو مفتوح بداخل بونتوون:

- -

Browser app and workspace

- -

شريط الأدوات الرئيسي

- -

كما ترى، الموقع الذي يتم ترجمته يملأ معظم الواجهة. فقط شريط الأدوات يخص بونتوون، والذي يحتوي العناصر التالية (من اليسار إلى اليمين):

- -

Main toolbar

- -

قائمة بالنصوص

- -

لفتح شريط جانبي بقائمة فيها جميع النصوص لترجمتها.

- -

محدد المشروع (بحالتنا Affiliates)

- -

للتبديل بين المشاريع لترجمتها.

- -

محدد المورد (بحالتنا الصفحة الرئيسية)

- -

للتبديل بين موارد المشروع لترجمتها، مثل الصفحات الفرعية أو ملفات الترجمة. ويكون هذا الخيار مخفي في حالة عدم وجود موارد متوفرة للمشروع.

- -

محدد اللغة (بحالتنا السلوفينية)

- -

للتبديل بين اللغات للترجمة.

- -

- -
-
- -

انطلاق

- -

لتطبيق الخيارات السابقة.

- -

مؤشر التقدم

- -

لعرض تقدمك في المورد الذي يجري ترجمته. يتم عرض المزيد من التفاصيل في النافذة المنبثقة (عند الضغط على المؤشر).

- -
-
- -

قائمة المستخدم

- -

تسمح بالقيام بمهام مخصصة بالمستخدم، مثل الإيداع إلى مستودع، وتحميل الملفات، وتسجيل الخروج.

- -

قائمة المعلومات

- -

تقدم معلومات مهمة، مثل الجدول الزمني المتوقع للمشروع وقائمة باختصارات لوحة المفاتيح.

- -

حسناً، والآن كيف يمكننا القيام ببعض الترجمة؟

- -
-
- -
-
- -

ترجمة النصوص

- -

عندما تستخدم بونتوون في الترجمة، لديك بضعة خيارات لتترجم نصوصك. حيث يمكنك الترجمة من محتوى الموقع مباشرة (بالمحتوى)، أو بشريط جانبي يظهر النصوص وترجمتها (خارج المحتوى) أو يمكنك استخدام كليهما. سنبدأ بنظرة على الترجمة بالمحتوى.

- -

الترجمة بالمحتوى

- -

وضع الترجمة بالمحتوى الخاص ببونتوون هو عبارة عن استبدال النصوص بترجمتها. فهو يقوم بفتح صفحة ويب (أو تطبيق ويب) ويسمح بتحرير مباشر على نصوص الصفحة. هذه الصورة تظهر كيفية ترجمة نصك الأول:

- -

In-context localization

- -
    -
  1. قم بتحويم (تمرير) الفأرة فوق النص الذي تريد ترجمته.
  2. -
  3. سوف يظهر زر تعديل فوق النص. قم بالضغط عليه لتفعيل وضع الترجمة.
  4. -
  5. استبدل النص الأصلي بنظيره المقابل باللغتك.
  6. -
  7. قم بالضغط على زر الحفظ لحفظ ترجمتك.
  8. -
- -
-

الترجمة خارج المحتوى

- -

بعض النصوص من المستحيل ترجمتها بوضع الترجمة بالمحتوى، مثل محتوى الوسم <title> في الموقع. عند الضغط على أيقونة الهمبورغر (الأيقونة التي تشبه شطيرة اللحم) في قائمة الأدوات، سيتم فتح شريط جانبي يحتوي على قائمة النصوص والترجمات المتوفرة. يمكنك استخدام هذا الشريط الجانبي للترجمة بوضع خارج المحتوى:

- -

Out-of-context localization: list Out-of-context localization: translate

- -
    -
  1. قم بالضغط على النص الذي تريد ترجمته.        
  2. -
  3. سيفتح شريط يحتوي على النص الأصلي وتفاصيله (مثل التعليقات).
  4. -
  5. قم بترجمة النص في منطقة الترجمة أدناه.
  6. -
  7. قم بالضغط على زر الحفظ لحفظ ترجمتك.
  8. -
- -

بينما تقوم بالترجمة بوضع الترجمة خارج المحتوى، ستظهر هذه الترجمة أيضاً في الموقع (إن كانت قابلة للترجمة بوضع المحتوى).

- -

مساعدات الترجمة

- -

كما ترى، الإقتراحات من السجل، وذاكرة الترجمة، والترجمة الآلية وغيرها من الترجمات (باللغات مختلفة) متوفرة في شريط الترجمة خارج المحتوى. ندعو كل ما سبق بمساعدات الترجمة وهنا سنسرد كيف ستساعدك كلاً منهم أثناء ترجمتك للنصوص:

-
- -

Translation helpers: History Translation helpers: Machinery Translation helpers: Other locales Translation helpers: Search

- -

السجل

- -

يعرض الترجمات المقترحة سابقاً، متضمناً الترجمات من مستخدمين أخرين.

- -

الآليات (تقنيات آلية)

- -

تعرض الترجمات المتطابقة من خدمات متنوعة: ذاكرة الترجمة الداخلية، و موزيلا ترانسفيسيون، و ذاكرة الترجمة المفتوحة المصدر، و مصطلح مايكروسوفت، و مترجم آلي.

- -

ترجمات أخرى

- -

تعرض ترجمات متطابقة من لغات أخرى.

- -

البحث

- -

تشبه تقريباً الآليات، ولكنها تأخد مدخلات كمعاملات بدلاً من النص الأصلي.

- -

بالضغط على إقتراح، سيتم نسخ النص المترجم (الذي أدخلته) إلى منطقة الترجمة.

- -
-
- -

نشر ترجمتك

- -

لنفترض أنك تريد الآن نشر ترجمتك بإيداعها إلى مستودع. يوفر لك بونتوون ميزة للقيام بذلك أيضاً! في الحقيقة، إنه يقوم بهذا تلقائياً بالمزامنة مع المستودع دورياً. يمكنك الأن أن تشعر بالرضى، تقوم برقصة صغيرة، تذهب إلى النوم أو أن تفعل شيئاً أخر للاحتفال بعملك!

diff --git a/files/ar/mozilla/mobile/index.html b/files/ar/mozilla/mobile/index.html deleted file mode 100644 index 669a69a9ed..0000000000 --- a/files/ar/mozilla/mobile/index.html +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Mobile -slug: Mozilla/Mobile -tags: - - Mozilla - - NeedsTranslation - - TopicStub -translation_of: Mozilla/Mobile ---- -

Firefox OS

- -

Firefox OS is an open source mobile operating system which uses Linux and Mozilla's Gecko engine to run a user interface and set of applications written entirely in HTML, CSS and JavaScript.

- -

Read about how to install Firefox OS and how to develop apps for it.

- -

Firefox for Android

- -

Firefox for Android is Mozilla's mobile web browser for Android devices. It's recently been rewritten to use Android's native UI, making it faster, leaner and more responsive. It provides support for powerful APIs to access device capabilities such as the camera and telephony stack.

- -

Read about how to help create Firefox for Android, how to use its device APIs, and how to build mobile add-ons.

- -

Firefox for iOS

- -

Firefox for iOS is Mozilla's upcoming mobile web browser for iOS devices. Because of AppStore restrictions, it uses the built in WebView supplied by iOS rather than Gecko.

- -

Read about how to help with Firefox for iOS, and how to integrate it with your other iOS Apps.

- -

Mobile web development

- -

Mobile devices have very different hardware characteristics from desktop or laptop computers, and many of the APIs used to work with them are still in the process of being standardized.

- -

Read about how to develop web sites that look good on mobile devices and take advantage of the new possibilities they offer. Learn how to make sure your web site works well on different browsers.

diff --git a/files/ar/mozilla/mobile/viewport_meta_tag/index.html b/files/ar/mozilla/mobile/viewport_meta_tag/index.html deleted file mode 100644 index ed8d36f6c8..0000000000 --- a/files/ar/mozilla/mobile/viewport_meta_tag/index.html +++ /dev/null @@ -1,91 +0,0 @@ ---- -title: Using the viewport meta tag to control layout on mobile browsers -slug: Mozilla/Mobile/Viewport_meta_tag -translation_of: Mozilla/Mobile/Viewport_meta_tag ---- -

The upcoming release of Mobile Firefox (Fennec) 1.1 features improved support for the <meta name="viewport"> tag. Previous versions of Fennec supported the width, height, and initial-scale viewport properties, but had problems with some sites designed for iPhone and Android browsers. We now support the same properties Mobile Safari does, and we also changed Fennec to render mobile sites more consistently on screens of different sizes and resolutions.

- -

touch.facebook.com before:

- -

05-11-fennec-meta-viewport-2.png

- -

touch.facebook.com after:

- -

05-11-fennec-meta-viewport-1.png

- -

You can see these changes for yourself in the latest Fennec 1.1 and trunk nightly builds for Maemo, Windows, Mac, or Linux.

- -

Background

- -

Mobile browsers like Fennec render pages in a virtual "window" (the viewport), usually wider than the screen, so they don't need to squeeze every page layout into a tiny window (which would break many non-mobile-optimized sites). Users can pan and zoom to see different areas of the page.

- -

Mobile Safari introduced the "viewport meta tag" to let web developers control the viewport's size and scale. Many other mobile browsers now support this tag, although it is not part of any web standard. Apple's documentation does a good job explaining how web developers can use this tag, but we had to do some detective work to figure out exactly how to implement it in Fennec. For example, Safari's documentation says the content is a "comma-delimited list," but existing browsers and web pages use any mix of commas, semicolons, and spaces as separators.

- -

Learn more about viewports in different mobile browsers in A Tale of Two Viewports at quirksmode.org.

- -

Viewport basics

- -

A typical mobile-optimized site contains something like the following:

- -
<meta name="viewport" content="width=device-width, initial-scale=1">
- -

The width property controls the size of the viewport. It can be set to a specific number of pixels like width=600 or to the special value device-width value which is the width of the screen in CSS pixels at a scale of 100%. (There are corresponding height and device-height values, which may be useful for pages with elements that change size or position based on the viewport height.)

- -

The initial-scale property controls the zoom level when the page is first loaded. The maximum-scale, minimum-scale, and user-scalable properties control how users are allowed to zoom the page in or out.

- -

A pixel is not a pixel

- -

The iPhone and many popular Android phones have 3- to 4-inch (7–10 cm) screens with 320—480 pixels (~160 dpi). Firefox for Maemo runs on the Nokia N900, which has the same physical size but 480—800 pixels (~240 dpi). Because of this, the last version of Fennec displayed many pages about one third smaller (in actual, physical size) than iPhone or Android. This caused usability and readability problems on many touch-optimized web sites. Peter-Paul Koch wrote about this problem in A pixel is not a pixel.

- -

Fennec 1.1 for Maemo will use 1.5 hardware pixels for each CSS "pixel," following the lead of Android's WebKit-based browser. This means a page with initial-scale=1 will render at close to the same physical size in Fennec for Maemo, Mobile Safari for iPhone, and the Android Browser on both HDPI and MDPI phones. This is consistent with the CSS 2.1 specification, which says:

- -
-

If the pixel density of the output device is very different from that of a typical computer display, the user agent should rescale pixel values. It is recommended that the pixel unit refer to the whole number of device pixels that best approximates the reference pixel. It is recommended that the reference pixel be the visual angle of one pixel on a device with a pixel density of 96dpi and a distance from the reader of an arm's length.

-
- -

For web developers, this means that 320px be full width in portrait mode at scale=1, on all of the above-mentioned handheld devices, and they may size their layouts and images accordingly. But remember that not all mobile devices are the same width; you should also make sure that your pages work well in landscape mode, and on larger devices like the iPad and Android tablets.

- -

On 240-dpi screens, pages with initial-scale=1 will effectively be zoomed to 150% by both Fennec and Android WebKit. Their text will be smooth and crisp, but their bitmap images will probably not take advantage of the full screen resolution. To get sharper images on these screens, web developers may want to design images – or whole layouts – at 150% of their final size (or 200%, to support 320-dpi devices such as a retina display iPhone) and then scale them down using CSS or viewport properties.

- -

The default ratio depends on the display density.  On a display with density less than 200dpi, the ratio is 1.0.  On displays with density between 200 and 300dpi, the ratio is 1.5.  For displays with density over 300dpi, the ratio is the integer floor(density/150dpi).  Note that the default ratio is true only when the viewport scale equals 1. Otherwise, the relationship between CSS pixels and device pixels depends on the current zoom level.

- -

Viewport width and screen width

- -

Many sites set their viewport to "width=320, initial-scale=1" to fit precisely onto the iPhone display in portrait mode. As mentioned above, this caused problems when Fennec 1.0 rendered these sites, especially in landscape mode. To fix this, Fennec 1.1 will expand the viewport width if necessary to fill the screen at the requested scale. This matches the behavior of Android and Mobile Safari, and is especially useful on large-screen devices like the iPad. (Allen Pike's Choosing a viewport for iPad sites has a good explanation for web developers.)

- -

For pages that set an initial or maximum scale, this means the width property actually translates into a minimum viewport width. For example, if your layout needs at least 500 pixels of width then you can use the following markup. When the screen is more than 500 pixels wide, the browser will expand the viewport (rather than zoom in) to fit the screen:

- -
<meta name="viewport" content="width=500, initial-scale=1">
- -

Fennec 1.1 also adds support for minimum-scale, maximum-scale, and user-scalable, with defaults and limits similar to Safari's. These properties affect the initial scale and width, as well as limiting changes in zoom level.

- -

Mobile browsers handle orientation changes slightly differently. For example, Mobile Safari often just zooms the page when changing from portrait to landscape, instead of laying out the page as it would if originally loaded in landscape. If web developers want their scale settings to remain consistent when switching orientations on the iPhone, they must add a maximum-scale value to prevent this zooming, which has the sometimes-unwanted side effect of preventing users from zooming in:

- -
<meta name="viewport" content="initial-scale=1, maximum-scale=1">
- -

This is not necessary in Fennec; when the device changes orientation, Fennec updates the viewport size, the page layout, and JavaScript/CSS properties like device-width, based on its new window dimensions.

- -

Common viewport sizes for mobile and tablet devices

- -

If want to know what mobile and tablet devices have which viewport widths, there is a comprehensive list of mobile and tablet viewport sizes here. This gives information such as viewport width on portrait and landscape orientation as well as physical screen size, operating system and the pixel density of the device.

- -

Specifications

- - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('CSS3 Device', '#viewport-meta', '<meta name="viewport">')}}{{Spec2('CSS3 Device')}}Non-normatively describes the Viewport META element
- -

There is clearly demand for the viewport meta tag, since it is supported by most popular mobile browsers and used by thousands of web sites. It would be good to have a true standard for web pages to control viewport properties. As the standardization process proceeds, we at Mozilla will work to make sure we can implement any changes made during standardization.

diff --git a/files/ar/mozilla/preferences/index.html b/files/ar/mozilla/preferences/index.html deleted file mode 100644 index 4628f957cb..0000000000 --- a/files/ar/mozilla/preferences/index.html +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: Preferences -slug: Mozilla/Preferences -translation_of: Mozilla/Preferences ---- -

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.

- - - - - - - -
-

Documentation

-
-
Preferences system
-
An introduction to using the preference system in Mozilla.
-
XUL School: Handling preferences
-
The XUL School tutorial chapter on preferences.
-
Mozilla preference reference
-
A reference guide to all Mozilla preferences; currently a work in progress.
-
A brief guide to Mozilla preferences
-
An introductory guide to where preferences are stored and other useful information about the core preference system.
-
Using preferences from application code {{gecko_minversion_inline("6.0")}}
-
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.
-
Mozilla networking preferences
-
A guide to key networking-related preferences.
-
Mozilla preferences for uber-geeks
-
A guide to preferences that only truly elite geeks should play with.
-
-

View all pages tagged with "Preferences"...

-
-

Examples

-
-
Code snippets
-
Preference-related code snippets.
-
Adding preferences to an extension
-
How to add preferences to an existing extension.
-
- - -
diff --git a/files/ar/mozilla/projects/index.html b/files/ar/mozilla/projects/index.html deleted file mode 100644 index d7e62c6882..0000000000 --- a/files/ar/mozilla/projects/index.html +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Projects -slug: Mozilla/Projects -tags: - - Landing - - Mozilla - - NeedsContent - - NeedsTranslation - - Projects - - TopicStub -translation_of: Mozilla/Projects ---- -

Here you'll find links to documentation about various Mozilla projects; these are often parts of Firefox or other products, but may also be used in other projects as well.

- -

{{ LandingPageListSubpages() }}

diff --git a/files/ar/mozilla/projects/spidermonkey/index.html b/files/ar/mozilla/projects/spidermonkey/index.html deleted file mode 100644 index f39621af26..0000000000 --- a/files/ar/mozilla/projects/spidermonkey/index.html +++ /dev/null @@ -1,115 +0,0 @@ ---- -title: 'SpiderMonkey: The Mozilla JavaScript runtime' -slug: Mozilla/Projects/SpiderMonkey -tags: - - NeedsTranslation - - SpiderMonkey - - TopicStub -translation_of: Mozilla/Projects/SpiderMonkey ---- -
{{SpiderMonkeySidebar}}
- -
-

SpiderMonkey is Mozilla's JavaScript engine written in C and C++. It is used in various Mozilla products, including Firefox, and is available under the MPL2.

-
- -

Standalone source code releases can be found on the Releases page.

- -
-
-

Guides

- -

Building

- -
-
SpiderMonkey Build Documentation
-
How to get SpiderMonkey source code, build it, and run the test suite.
-
- -

Using SpiderMonkey

- -
-
Introduction to the JavaScript shell
-
Documentation of the command-line JavaScript shell, js.
-
JSAPI User Guide
-
This guide provides an overview of SpiderMonkey and describes how you can embed engine calls in your applications to make them JavaScript-aware.
-
JSAPI cookbook
-
Shows the JSAPI translation of some commonly used JavaScript expressions and statements.
-
GC Rooting Guide
-
Guide on how to write code compatible with the Generational GC in SpiderMonkey.
-
How to embed the JavaScript engine
-
An older tutorial about embedding SpiderMonkey.
-
- -

Hacking on SpiderMonkey

- -
-
New to SpiderMonkey
-
A guide to hacking on SpiderMonkey.
-
Setting up CDT to work on SpiderMonkey
-
How to configure Eclipse to work on the SpiderMonkey code.
-
- -
-
Running Automated JavaScript Tests
-
How to run the JavaScript test suites.
-
Creating JavaScript tests
-
How to add tests to the JavaScript test suites.
-
-
- -
-

Reference

- -
-
JSAPI Reference
-
SpiderMonkey API reference.
-
JS Debugger API Reference
-
API reference for the Debugger object introduced in SpiderMonkey 1.8.6, which corresponds to Gecko 8.0 {{ geckoRelease("8.0") }}.
-
Bytecode descriptions
-
Listing of SpiderMonkey's bytecodes.
-
Parser API
-
Reflection of the SpiderMonkey parser, made available as a JavaScript API.
-
- -

Tips, tricks and philosophy

- -
-
Future Directions
-
Future directions for functionality, design, and coding practices.
-
SpiderMonkey Internals
-
A design overview and a file-by-file walkthrough of the implementation.
-
Bytecode Reference
-
SpiderMonkey bytecode reference.
-
SpiderMonkey Internals: GC
-
Separate internals article on the GC
-
SpiderMonkey Internals: Hacking Tips
-
Collection of helpful tips & tools for hacking on the engine
-
- - - - - -

Releases

- -
-
SpiderMonkey release notes
-
Current and past versions: 5245, 38, 31, 24, 17
-
- -

Community

- - - -
-
-
-
diff --git a/files/ar/mozilla/projects/spidermonkey/introduction_to_the_javascript_shell/index.html b/files/ar/mozilla/projects/spidermonkey/introduction_to_the_javascript_shell/index.html deleted file mode 100644 index 80998587aa..0000000000 --- a/files/ar/mozilla/projects/spidermonkey/introduction_to_the_javascript_shell/index.html +++ /dev/null @@ -1,373 +0,0 @@ ---- -title: Introduction to the JavaScript shell -slug: Mozilla/Projects/SpiderMonkey/Introduction_to_the_JavaScript_shell -translation_of: Mozilla/Projects/SpiderMonkey/Introduction_to_the_JavaScript_shell ---- -
{{SpiderMonkeySidebar ("عام")}}
- -
-

و جافا سكريبت قذيفة ( js) هو برنامج سطر الأوامر المدرجة في سبايدر مونكي توزيع المصدر. إنه مكافئ جافا سكريبت لموجه Python التفاعلي ، أو حلقة Lisp للقراءة والتقييم والطباعة ، أو Ruby's irb. تشرح هذه المقالة كيفية استخدام الصدفة لتجربة كود JavaScript وتشغيل برامج JavaScript.

-
- -

للحصول على SpiderMonkey JavaScript shell ، راجع  SpiderMonkey Build Documentation  أو قم بتنزيل ملف ثنائي مترجم لمنصتك من Nightly Builds .

- -

للحصول على قائمة بأغلفة JavaScript الأخرى ، راجع قذائف JavaScript .

- -
-

ملاحظة: بدءًا من SpiderMonkey 44 {{geckoRelease (44)}} ، يتم استخدام إصدار JavaScript القياسي المتوافق مع الويب افتراضيًا (وليس JS1.7 + بعد الآن). و version()قذيفة المضمن لا يزال هناك لاختبار الميزات القديمة.

-
- -

تشغيل قشرة JavaScript

- -

تقدم القذيفة وضعين للتشغيل. يمكنك استخدامه كصدفة تفاعلية ، حيث تكتب رمز JavaScript في الحال وتحصل على إشباع فوري ، وهو مفيد لتجربة الميزات الجديدة أو اختبارها. يمكنك أيضًا تمرير ملف برنامج JavaScript في سطر الأوامر ليتم تشغيله ، وفي هذه الحالة يتم تشغيل البرنامج تلقائيًا.

- -

بعد اتباع وثائق الإنشاء وتثبيت الغلاف المدمج باستخدام إجراء التثبيت ، يمكنك تشغيل الصدفة في الوضع التفاعلي باستخدام الأمر:

- -
شبيبة
-
- -

[إذا حصلت على "خطأ في البحث عن الرمز: ./js: رمز غير محدد: PR_SetCurrentThreadName" على سبيل المثال من وحدة تحكم Bash عند استخدام برنامج ثنائي تم تجميعه مسبقًا ، جرب <path to your Firefox's run-mozilla.sh> /run-mozilla.sh. / js - لقد نجحت معي]

- -

إذا كنت ترغب في تشغيل كود JavaScript في الملف foo.js، يمكنك استخدام هذا الأمر:

- -
js foo.js
-
- -

للتشغيل foo.jsثم الإسقاط في الغلاف التفاعلي ، قم بما يلي:

- -
js -f foo.js -i
-
- -

مرجع

- -
ملاحظة: نظرًا لاستخدام JavaScript shell كبيئة اختبار لمحرك JavaScript ، يمكن أن تتغير الخيارات المتاحة والوظائف المضمنة بمرور الوقت.
- -

خيارات سطر الأوامر

- -

هناك عدد من خيارات سطر الأوامر التي يمكنك تحديدها للتحكم في الغلاف. هذه ملخصة أدناه. تأكد من استخدام -h مع jsshell الخاص بك لمعرفة ما إذا كان هناك أي شيء غير موثق.

- -
-
-c, --compileonly
-
يخبر الغلاف بتجميع البرنامج ولكن لا يقوم بتشغيله. هذه طريقة مناسبة للتحقق بسرعة من أخطاء بناء الجملة في برنامجك دون تشغيله فعليًا.
-
-e script
-
يقوم بتشغيل البرنامج النصي المحدد ، وهو سلسلة حرفية تحتوي على الكود المطلوب تنفيذه.
-
-f filename
-
يقوم بتشغيل برنامج JavaScript المحدد بواسطة اسم الملف .
-
-i
-
تمكن الوضع التفاعلي. (افتراضي إذا لم يتم توفير اسم ملف.)
-
--no-ion
-
تعطيل برنامج التحويل البرمجي الأمثل JIT.
-
--no-baseline
-
تعطيل مترجم JIT الأساسي.
-
-P
-
إذا كان السطر الأول من الملف هو "/ usr / bin / env js -P" ، فسيتم تفسير محتوى الملف بواسطة محرك JavaScript.
-
يمكّنك هذا من إنشاء ملف JavaScript قابل للتنفيذ على أجهزة unix و OS X.
-
-s
-
لتمكين وضع التحذير الصارم.
-
-w, --warnings
-
تمكن رسائل التحذير.
-
-W، - المعلومات
-
تعطيل رسائل التحذير.
-
- -

خيارات البيئة

- -

هناك بعض متغيرات البيئة التي يمكن ضبطها لتغيير سلوك js shell.

- -
-
JS_STDOUT=file
-
إعادة توجيه stdout إلى ملف .
-
JS_STDERR=file
-
إعادة توجيه stderr إلى ملف .
-
- -

وظائف مدمجة

- -

لجعل JavaScript shell أكثر فائدة ، هناك عدد من الوظائف المضمنة بشرط أن يمكنك استخدامها إما من برامج JavaScript أو في الوضع التفاعلي.

- -
-

ملاحظة : هذه القائمة غير مكتملة وتتداخل مع كائنات شل العامة . راجع {{Source ("js / src / shell / js.cpp")}} (حول shell_functions) للمزيد.

-
- -

build()

- -

لعرض التاريخ والوقت اللذين تم فيهما إنشاء غلاف JavaScript.

- -
ملاحظة: clear() بدون أي معلمات يزيل كل شيء حقًا. وهذا يشمل كل هذه الوظائف المدمجة.
- -

clone(function, [scope])

- -

استنساخ كائن الوظيفة المحدد . إذا لم يتم تحديد النطاق ، فسيكون الكائن الرئيسي الجديد هو نفسه الكائن الأصلي. خلاف ذلك ، يتم وضع الكائن الجديد في نطاق الكائن المحدد بواسطة النطاق .

- -

countHeap([start[, kind]])

- -

{{jsapi_minversion_inline ("1.8")}} احسب عدد أشياء GC الحية في الكومة ، أو الأشياء التي يمكن الوصول إليها من البداية عندما يتم تقديمها وليست فارغة. النوع هو إما 'all'(افتراضي) لعد كل الأشياء أو واحد من 'object'، 'double'، 'string'، 'function'، 'qname'، 'namespace'، 'xml'لحساب الأشياء من هذا النوع فقط.

- -

dumpHeap([fileName[, start[, toFind[, maxDepth[, toIgnore]]]]])

- -

{{jsapi_minversion_inline ("1.8")}} تفريغ الرسم البياني لجميع الكائنات الموجودة (أو رسم فرعي محدد مثير للاهتمام) إلى ملف. لمزيد من المعلومات ، راجع إصدار C / C ++ من هذه الوظيفة ، JS_DumpHeap.

- -

evalcx(string[, object])

- -

يقيم كود JavaScript في السلسلة . إذا تم تحديد الكائن ، فسيتم تنفيذ الكود في هذا الكائن ، ومعاملته كصندوق حماية.

- -

إذا كانت السلسلة فارغة ولم يتم تحديد الكائن ، يتم evalcx()إرجاع كائن جديد بفئات قياسية متلهفة.

- -

إذا كانت السلسلة "lazy" ولم يتم تحديد الكائن ، يتم evalcx()إرجاع كائن جديد بفئات قياسية كسولة.

- -
ملاحظة: evalcx() هذا مفيد فقط للأشخاص الذين يقومون بعمل داخلي عميق على محرك JavaScript ، evalInSandboxلبيئات تشبه الاختبار في الغلاف.
- -

gc()

- -

يدير جامع القمامة لتحرير الذاكرة.

- -

gcparam(name[, value])

- -

{{jsapi_minversion_inline ("1.8")}} قراءة أو تهيئة معلمات أداة تجميع البيانات المهملة.

- -

و اسم يجب أن يكون واحدا من مفاتيح المعلمة (مثل 'maxBytes'، 'maxMallocBytes'أو ' gcNumber') حددها FOR_EACH_GC_PARAMفي https://searchfox.org/mozilla-central/source/js/src/builtin/TestingFunctions.cpp#464 .

- -

إذا لم يتم تحديد القيمة ، يتم gcparam()إرجاع القيمة الحالية المرتبطة بمعلمة GC المسماة بالاسم .

- -

إذا تم تحديد القيمة ، يجب أن تكون قابلة للتحويل إلى uint32 موجب ؛ gcparam()يحدد اسم معلمة GC إلى قيمة .

- -

لمزيد من المعلومات ، راجع دالات C / C ++  JS_GetGCParameterو JS_SetGCParameter.

- -

gczeal(level)

- -

{{jsapi_minversion_inline ("1.8")}} DEBUGفقط. اضبط مستوى حماسة GC ، ميزة تصحيح الأخطاء. يمكن أن يكون هذا 0 لجمع القمامة الدورية العادية ، أو 1 لـ GC المتكرر للغاية ، أو 2 لـ GC المتكرر للغاية . أي شيء بخلاف 0 سيجعل JavaScript يعمل ببطء شديد ولكنه قد يساعد في الكشف عن الأخطاء المتعلقة بـ GC أو إعادة إنتاجها. لمزيد من المعلومات ، راجع إصدار C / C ++ من هذه الوظيفة ، JS_SetGCZeal.

- -

getpda(object)

- -

إرجاع واصفات الخصائص للكائن المحدد .

- -

getslx(object)

- -

Returns the script line extent, which is the number of lines of code comprising the specified object.

- -

help([command ...])

- -

Displays brief help information about the specified commands, or about all available functions if none are specified.

- -

intern(string)

- -

Internalizes the specified string into the atom table. Every string has a unique identifier, called an atom. This system makes it easier to do comparisons between strings.

- -
Note: This function is intended only for use when testing the JavaScript engine.
- -

line2pc([function, ] line)

- -

Returns the program counter value corresponding to the specified line of code. If function is specified, line is an offset into the specified function.

- -

load(filename1 [filename])

- -

Loads the JavaScript files with the specified names.

- -
Note: For loading non-JavaScript files, use read().
- -

options([option ...])

- -

Lets you set or get options. If you specified options on the command line, the results of calling options will indicate which options you requested. You can also pass in new options to set.

- -

The available options are:

- - - - - - - - - - - - - - - - - - - - -
Option NameDescription
strictStrict mode is enabled.
werrorWarnings should be treated as errors.
atlineWhen atline is enabled, comments of the form //@line num set the number of the following line to num.
- -

pc2line(function, [pc])

- -

Returns the line number of the JavaScript code that corresponds to the first line of the specified function. If you specify a program counter offset into the function, the line number of the line of code containing that offset is returned.

- -

print([expression ...])

- -

Evaluates the expression(s) and displays the result(s) on stdout, separated by spaces (" ") and terminated by a newline ("\n").

- -

putstr(expression)

- -

Evaluates the expression and displays the result on stdout.

- -

quit([status])

- -

Exits the shell. status defaults to 0 if omitted.

- -

read(filename[, type])

- -

Reads and returns the contents of file. If type is "binary" returns an Uint8Array, otherwise returns an UTF-8 decoded string.

- -

readline()

- -

Reads a single line of input from stdin, returning it to the caller. You can use this to create interactive shell programs in JavaScript.

- -

Reflect.parse()

- -

See Parser API.

- -
Note: This function is intended only for use when testing the JavaScript engine.
- -

seal(object[, deep])

- -

Seals the specified object, or an object graph if deep is true. By sealing an object or object graph, you disable modification of those objects.

- -

sleep(dt)

- -

{{ jsapi_minversion_inline("1.8") }} Only in JS_THREADSAFE builds. Sleep for dt seconds. Fractions of a second are supported. Returns true on success, false if the sleep was interrupted.

- -

stackQuota([number]) {{obsolete_inline}}

- -

Get or set the script stack quota.

- -

throwError()

- -

Throws an error from the JS_ReportError() function.

- -
Note: This function is intended only for use when testing the JavaScript engine.
- -

trap([function, [pc,]] expression)

- -

Sets a trap at the specific point in the JavaScript code. When the bytecode at the offset specified by pc in the function function is about to be executed, the expression is evaluated.

- -

This is a powerful debugging mechanism when used in concert with line2pc(). For example, if you want to display a message when line 6 of a function, doSomething() is executed, you can enter the following:

- -
trap(doSomething, line2pc(doSomething, 6), "print('line 6!\n')");
-
- -
Note: When a trap is set, the corresponding bytecode in the program is replaced with a trap bytecode until you use untrap() to remove the trap.
- -

untrap(function [, pc])

- -

Removes a trap from the specified function at the offset pc. If pc isn't specified, the trap is removed from the function's entry point.

- -

This function has no effect if there is no trap at the specified location.

- -

version([number])

- -

The version() function lets you get or set the JavaScript version number. This may be useful for gaining access to syntax only available in certain versions of JavaScript (for example, see Using JavaScript 1.7).

- -

Debug functions

- -

These built-in functions are only available in DEBUG builds.

- -

dis([function])

- -

Disassembles the JavaScript bytecode for the entire program, or for the specified function.

- -

For example, if you enter the JavaScript function below:

- -
function test() {
-  var i = 3;
-  print(i+2);
-}
-
- -

Then run the command dis(test);, you get this output:

- -
main:
-00000:  uint16 3
-00003:  setvar 0
-00006:  pop
-00007:  name "print"
-00010:  pushobj
-00011:  getvar 0
-00014:  uint16 2
-00017:  add
-00018:  call 1
-00021:  pop
-00022:  stop
-
-Source notes:
-  0:     0 [   0] newline
-  1:     3 [   3] decl     offset 0
-  2:     7 [   4] newline
-  3:    18 [  11] xdelta
-  4:    18 [   0] pcbase   offset 11
-
- -

dissrc([function])

- -

Disassembles the JavaScript bytecode for the entire program, or for the specified function, showing the source lines. This function only works with programs loaded from files, either using the -f flag on launching the shell, or by using the load() function.

- -

If your program includes a function, doStuff(), like this:

- -
function doStuff(input) {
-	print("Enter a number: ");
-	var n1 = readline();
-	print("Enter another one: ");
-	var n2 = readline();
-
-	print("You entered " + n1 + " and " + n2 + "\n");
-}
-
- -

Calling dissrc(doStuff) function would give this output:

- -
;-------------------------  10:         print("Enter a number: ");
-00000:  10  name "print"
-00003:  10  pushobj
-00004:  10  string "Enter a number: "
-00007:  10  call 1
-00010:  10  pop
-;-------------------------  11:         var n1 = readline();
-00011:  11  name "readline"
-00014:  11  pushobj
-00015:  11  call 0
-00018:  11  setvar 0
-00021:  11  pop
-;-------------------------  12:         print("Enter another one: ");
-00022:  12  name "print"
-00025:  12  pushobj
-00026:  12  string "Enter another one: "
-00029:  12  call 1
-00032:  12  pop
-;-------------------------  13:         var n2 = readline();
-00033:  13  name "readline"
-00036:  13  pushobj
-00037:  13  call 0
-00040:  13  setvar 1
-00043:  13  pop
-;-------------------------  14:
-;-------------------------  15:         print("You entered " + n1 + " and " + n2 + "\n");
-00044:  15  name "print"
-00047:  15  pushobj
-00048:  15  string "You entered "
-00051:  15  getvar 0
-00054:  15  add
-00055:  15  string " and "
-00058:  15  add
-00059:  15  getvar 1
-00062:  15  add
-00063:  15  string "\\n"
-00066:  15  add
-00067:  15  call 1
-00070:  15  pop
-00071:  15  stop
-
- -

dumpheap(([fileName[, start[, toFind[, maxDepth[, toIgnore]]]]])

- -

Dump GC information. This is a thin wrapper for JS_DumpHeap.

- -

gczeal(zeal)

- -

قم بتمكين GC المتكرر للمساعدة في العثور على مخاطر GC. الحماسة عدد صحيح. المعنى هو نفسه بالنسبة للمعلمة JS_SetGCZeal.

- -

notes([function])

- -

يظهر ملاحظات المصدر للوظيفة المحددة. تحتوي ملاحظات المصدر على معلومات تقوم بتعيين الرمز الثانوي إلى الكود المصدري ، والذي يتم استخدامه عند فك الشفرة ، مثل عند استخدام dissrc()الوظيفة.

diff --git a/files/ar/mozilla/tech/index.html b/files/ar/mozilla/tech/index.html deleted file mode 100644 index f9682e62e1..0000000000 --- a/files/ar/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 ---- -

Mozilla has several technologies used as components of its projects. These are documented here. (flesh out this text).

-

{{LandingPageListSubpages}}

diff --git a/files/ar/mozilla_mathml_project/index.html b/files/ar/mozilla_mathml_project/index.html deleted file mode 100644 index 2b45c419b6..0000000000 --- a/files/ar/mozilla_mathml_project/index.html +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: Mozilla MathML Project -slug: Mozilla_MathML_Project -tags: - - MathML - - MathML Project - - NeedsTranslation - - TopicStub -translation_of: Mozilla/MathML_Project ---- -

Updates

-

mathboard.png

- -

November 16, 2012

-

MathML and Thunderbird

-

November 14, 2012

-

Writing mathematics in emails

-

October 12, 2012

-

MathML has been enabled in Chrome Canary!

-

September 25, 2012

-

Story of a MathML summer project by Quentin Headen: Summer of Mozilla.

-

September 1, 2012

-

Mozilla MathML Project: Roadmap

-

Thank you to all the contributors who have worked on the MathML project this summer!

-

May 3, 2012

-

New MathJax option available in Wikipedia. If you have a Wikipedia account, mathematical formulas can now be rendered with MathML!

-

Community

- - - -

Sample MathML Documents

- -

Create MathML Documents

- -
-

Original Document Information

- -
-

 

-
-  
diff --git a/files/ar/mozilla_mathml_project/start/index.html b/files/ar/mozilla_mathml_project/start/index.html deleted file mode 100644 index a05d52cd44..0000000000 --- a/files/ar/mozilla_mathml_project/start/index.html +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: MathML اثناء العمل -slug: Mozilla_MathML_Project/Start -translation_of: Mozilla/MathML_Project/Start ---- -

MathML اثناء العمل

-

هل ترى المعادلات الأنيقة خلال هذه الصفحة؟ لا؟ سيء للغاية. هنالك لقطة شاشة بالشيء الذي تفتقده. قم بتنزيل نسخة من موزيلا مفّعل فيها MathML لكي تقوم بإصلاح هذا الوضع السيء.

-

لديك نسخة موزيلا مفّعل فيها MathML ولكن ما تراه على شاشة ليس ما حصلت عليه؟ في هذه الحالة فربما تفتقد لأحد خطوط MathML.

-

والأن بما أنك أصبحت جاهزا، يمكنك رؤية المعادلة التالية بمختلف علامتها : س ^ + سص ^ + سصع ^ . وبجانبها هذه المعادلة الصغيرة، محدد | ا ج ب د | = ا د - ب ج ، ويمكن كتابتها ايضا بهذا النمط محدد | ا ب ج د | = ا د - ب ج .

-

المعادلات الرياضية لا تكتب بسهولة. موزيلا MathML يهدف إلى الالتزام بمواصفات MathML بذلك أن ما تراه هو ما تحصل عليه، أو بعبارة أخرى ما تراه هو ما قمت به، أو باختصار "WYSIWYM". الفرق بين هاتين المعادلتين هي طريقة الترقيم! ( ... ( ( ا ٠ + ا ١ ) ن ١ + ا ٢ ) ن ٢ + ... + ا هـ ) ن هـ ( ... ( ( ا ٠ + ا ١ ) ن ١ + ا ٢ ) ن ٢ + ... + ا هـ ) ا هـ

-

طريقة كتابة جذور هذه المعادلة ص ٣ + هـ ص + م = ٠ ليست سهلة كما المعادلة نفسها ص = - م ٢ + م ٢ ٤ + هـ ٣ ٢٧ ٢ ٣ + - م ٢ - م ٢ ٤ + هـ ٣ ٢٧ ٢ ٣ .

-

أما بالنسبة لجذور المعادلة ا س ٢ + ب س + ج = ٠ ، انقر فوق المنطقة الصفراء لعمل تكبير أو تصغير:

-
-

Zoomable Math

-

HTML Content

-
    <p>
-<math display="block" dir="rtl">
-<mstyle id="zoomableMath" mathbackground="yellow">
-<mrow>
-<mi>س</mi>
-<mo>=</mo>
-<mfrac>
-<mrow>
-<mrow>
-<mo>-</mo>
-<mi>ب</mi>
-</mrow>
-<mo>&#xB1;</mo>
-<msqrt>
-<mrow>
-<msup>
-<mi>ب</mi>
-<mn>٢</mn>
-</msup>
-<mo>-</mo>
-<mrow>
-<mn>٤</mn>
-<mi>ا</mi>
-<mi>ج</mi>
-</mrow>
-</mrow>
-</msqrt>
-</mrow>
-<mrow>
-<mn>٢</mn>
-<mi>ا</mi>
-</mrow>
-</mfrac>
-</mrow>
-</mstyle>
-</math></p>
-
-
-

JavaScript Content

-
      function zoomToggle()
-      {
-      if (this.hasAttribute("mathsize")) {
-      this.removeAttribute("mathsize");
-      } else {
-      this.setAttribute("mathsize", "200%");
-      }
-      }
-
-      function load()
-      {
-      document.getElementById("zoomableMath").
-      addEventListener("click", zoomToggle, false);
-      }
-
-      window.addEventListener("load", load, false);
-
-

{{ EmbedLiveSample('Zoomable_Math') }}

-

انظر إلى طريقة كتابة هذه المعادلة { ق ل + د ( ق ) س = ٠ ق ( ٠ ، س ) = { ق - اذا كان  س < ٠ ق + اذا كان  س > ٠ أو بطريقة أكثر تعقيدا كهؤلاء Ell ^ ص ( ع ; ع , τ ) := ص ( l ( ص l ٢ π ن ) θ ( ص l ٢ π ن - ع ) θ ( ٠ ) θ ( - ع ) θ ( ص l ٢ π ن ) ) × ( ك θ ( ي ك ٢ π ن - ( α k + ١ ) ع ) θ ( - ع ) θ ( ي ك ٢ π i - ع ) θ ( - ( α ك + ١ ) ع ) ) π ( ن ) = م = ٢ ن ( ك = ١ م - ١ ( م ك ) م ك ) - ١ ϕ و ل ك ( Ω ت ) ( | α | ك α ϕ ξ α ح ل ( Ω ت ) ل ) ١ ل

-

لمزيد من الأمثلة، قم بمراجعة صفحة مشروع MathML، وأما إذا رغبت ببناء Mozilla Binary الخاص بك، راجع المجلد mozilla/layout/mathml/tests.

-

ماذا بعد؟ خلال قيامك بتجربة موزيلا MathML، ووجدت بعض الاشياء القليلة اللي لا تظهر حسب مواصفات MathML أو الاشياء التى تحتاج إلى تعديلات طفيفة لكي تبدو بشكل أفضل؟ في كلتا الحالتين السابقتين أو عندما تظهر لك مشكلة ما، إذهب إلى Bugzilla للإبلاغ عن هذه المشاكل فـ Bugzilla يتحفظ بها جميعا. واذا لم يتم الإبلاغ عن المشاكل التي واجهتك فكيف لنا ان نقوم بإصلاحها!

-

مساهمتك معنا هي جزء من عملية إثراء Gecko بمواصفات متطورة وقياسية لـ MathML. رأيك يمكنه المساعدة في وضع محتوى MathML على الوب،، والتبليغ عن أخطاء في Bugzilla, وإذا امكنك كذلك المساعدة في البرمجة، أو فحص أو تحسين الشفرة الحالية أو إختيار أحد البنود من قائمة المهام .

diff --git a/files/ar/new_compatibility_tables_beta/index.html b/files/ar/new_compatibility_tables_beta/index.html deleted file mode 100644 index d1fdc7b5b5..0000000000 --- a/files/ar/new_compatibility_tables_beta/index.html +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: New Compatibility Tables Beta -slug: New_Compatibility_Tables_Beta -translation_of: Archive/MDN/New_Compatibility_Tables_Beta ---- -

ربما تكون هنا لأنك اتبعت رابط الإشعار التجريبي من أحد جداول التوافق الجديدة. (لا؟ تريد أن ترى الجداول الجديدة؟ جعل نفسك اختبار بيتا. )

- -

شكرا لمساعدتنا على اختبار هذه. انهم جزء من مشروع أكبر من ذلك بكثير. نحن ننقل جميع بيانات توافق المتصفح إلى JSON منظم .

- -

ستظهر الجداول الجديدة على الصفحات حيث يتم تحويل البيانات إلى التنسيق الجديد.

- -

التحرير

- -

تم نقل بيانات التوافق إلى ملفات JSON في مستودع GitHub المتوافق مع المستعرض .

- -

للمساهمة ببيانات متوافقة ، يمكنك الآن إرسال طلب سحب أو تقديم مشكلة في المستودع.

- -

كيف أساعد

- -

إذا وجدت مشكلة في البيانات ، فيرجى تقديم مشكلة في مستودع GitHub .

- -

إذا كان هناك خطأ ما في مظهر الطاولة أو وظيفتها ، فيرجى النقر على الزر "الإبلاغ عن خطأ" في القائمة المنسدلة أعلى الجدول.

- -

إذا كانت لديك لحظة ، فسنقدر ذلك إذا كان بإمكانك إجراء استطلاع الرأي .

diff --git a/files/ar/sandbox/index.html b/files/ar/sandbox/index.html deleted file mode 100644 index e422da79d7..0000000000 --- a/files/ar/sandbox/index.html +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: Sandbox -slug: Sandbox -translation_of: Sandbox ---- -

{{EmbedLiveSample('Sample')}}

- -

كيف تحرير ساند بوكس للنشر

- -

There should be a video editing add-on.

- -

Another in this article section (maybe)

- -

Nesting?

- -

Hmmm, maybe this works? I don't know.

- -

H4 heading

- -
h5 indicates that you've dug too deep!
- -

Code Sample

- -
#include <iostream>
-
-int main()
-
-{
-
-print("This is  my first work with you!");
-
-return 3;
-
-}
- -

My Alert

- -

HTML

- -
<p id='test_code'>
-  Test Sample Code
-</p>
- -

CSS

- -
#test_code {
-  background-color: purple;
-}
- -

JavaScript

- -
console.log("Hi there !!");
- -

Result

- -

{{EmbedLiveSample('My_Alert')}}

- -

Hello World

- -

HTML

- -
<input type="date">
-
- -

Result

- -

{{EmbedLiveSample('Hello_World')}}

- -

Conclusion

- -

This document aims to sound sciencey.

- -

WebGL Fundamentals

- -

The shaderSource method of the WebglRenderingContext is super cool!

diff --git a/files/ar/tools/scratchpad/index.html b/files/ar/tools/scratchpad/index.html deleted file mode 100644 index b76f2da78c..0000000000 --- a/files/ar/tools/scratchpad/index.html +++ /dev/null @@ -1,96 +0,0 @@ ---- -title: Scratchpad -slug: Tools/Scratchpad -translation_of: Archive/Tools/Scratchpad ---- -

تقدم المسودة بيئة لتجريب شفرة جافا سكريبت. يمكنك كتابة، تشغيل، وفحص النتائج من التعليمات البرمجية التي تتفاعل مع صفحة الويب.

- -

على عكس وحدة تحكم ويب، الذي تم تصميمه لتفسير سطر واحد من التعليمات البرمجية في وقت واحد، يتيح لك تطبيق المسودة تعديل قطع أكبر من شفرة جافا سكريبت، ثم تنفيذه بطرق مختلفة اعتمادا على الطريقة التي تريد استخدام الإخراج.

- -

{{EmbedYouTube ("Pt7DZACyClM ')}}

- -

استعمال

- -

المسودة افتتاح

- -

لفتح نافذة المسودة، اضغط شيفت + F4، أو انتقل إلى القائمة مطور ويب (وهو الفرعية في القائمة أدوات على OS X و Linux)، ثم حدد المسودة. هذا وسوف تفتح نافذة محرر المسودة، والذي يتضمن التعليق الذي يوفر بعض معلومات موجزة عن كيفية استخدام تطبيق المسودة. من هناك يمكنك أن تبدأ على الفور كتابة بعض شفرة جافا سكريبت لمحاولة.

- -

التحرير

- -

نافذة المسودة يبدو شيئا من هذا القبيل (على OS X شريط القوائم في الجزء العلوي من الشاشة):

- -

لقطة من المسودة

- -

من القائمة ملف يوفر خيارات لحفظ وتحميل جافا سكريبت مقتطفات الشفرة، حتى تتمكن من إعادة استخدام التعليمات البرمجية في وقت لاحق إذا أردت.

- -

إنجاز قانون وثائق مضمنة

- -
-

إنجاز قانون ونوع المعلومات غير متاح إلا من فايرفوكس 32 وما بعده.

-
- -

من فايرفوكس 32 فصاعدا المسودة يدمج محرك تحليل رمز الخرشنة، ويستخدم ذلك لتقديم اقتراحات الإكمال التلقائي والنوافذ المنبثقة التي تحتوي على معلومات عن الرمز الحالي. لإدراج اقتراحات الإكمال التلقائي، اضغط على Ctrl + الفضاء. لإظهار المنبثقة، اضغط شيفت + الفضاء في فايرفوكس 32 أو السيطرة + التحول + الفضاء في فايرفوكس 33+.

- -

على سبيل المثال، حاول كتابة D، ثم الضغط على Ctrl + الفضاء. سترى هذا:

- -

الرمز الموجود بجانب كل اقتراح إلى نوع، واقتراح المميز حاليا يحصل منبثقة مع مزيد من المعلومات. و↓ دورة من خلال الاقتراحات وأدخل أو تبويب حدد خيار تسليط الضوء عليها.

- -

إذا قمت بتحديد المستند، ثم addEventListener، ثم اضغط على التحول  + الفضاء سترى المنبثقة التي تظهر ملخصا لتركيب وظيفة وصفا موجزا:

- -

و"[مستندات]" وصلة يأخذك إلى وثائق MDN للرمز.

- -

تنفيذ

- -

بمجرد كتابة التعليمات البرمجية الخاصة بك، حدد الرمز الذي تريد تشغيله. إذا لم تقم بتحديد أي شيء، سيتم تشغيل كافة التعليمات البرمجية في الإطار. ثم اختيار الطريقة التي تريد رمز لتشغيل باستخدام أزرار على طول الجزء العلوي، وذلك باستخدام القائمة تنفيذ، أو باستخدام قائمة السياق. يتم تنفيذ التعليمات البرمجية في نطاق التبويب المحدد حاليا. ستضاف أية متغيرات قمت بتعريف خارج وظيفة إلى وجوه العالمي لعلامة التبويب هذه.

- -

هناك أربعة خيارات التنفيذ المتاحة.

- -

اركض

- -

عند اختيار خيار تشغيل، يتم تنفيذ التعليمات البرمجية المحددة. هذا هو ما كنت تستخدم لتنفيذ وظيفة أو رمز الأخرى التي تعالج محتوى الصفحة الخاصة بك دون الحاجة لمعرفة النتيجة.

- -

فحص

- -

الخيار فحص تنفيذ التعليمات البرمجية تماما مثل الخيار تشغيل. ومع ذلك، بعد بإرجاع رمز، يتم فتح مفتش الكائن لتمكنك من دراسة القيمة التي تم إرجاعها.

- -

على سبيل المثال، إذا قمت بإدخال رمز:

- -
نافذة
-
- -

ثم اختر فحص، يظهر مفتش الكائن ويبدو أن شيئا من هذا القبيل:

- -

تفتيش كائن في المسودة

- -

عرض

- -

خيار عرض تنفيذ التعليمات البرمجية المحددة، ثم إدراج نتيجة مباشرة إلى حسابك في المسودة محرر نافذة كتعليق، لذلك يمكنك استخدامه بمثابة REPL.

- -

تحديث وتشغيل

- -

متوفر فقط في القائمة تنفيذ خيار تحديث وتشغيل. لأول مرة تعيد تحميل الصفحة، ثم تنفيذ التعليمات البرمجية عند "تحميل" وقع الحدث الصفحة. وهذا مفيد لتشغيل التعليمات البرمجية في بيئة البكر.

- -

تشغيل المسودة في سياق المتصفح

- -

يمكنك تشغيل تطبيق المسودة في سياق متصفح ككل بدلا من صفحة ويب معينة. وهذا مفيد إذا كنت تعمل على فايرفوكس نفسها أو تطوير إضافات. للقيام بذلك الاختيار "تمكين الكروم وإضافة على التصحيح" في إعدادات أداة المطور. مرة واحدة كنت قد فعلت هذا، القائمة البيئة لديها خيار المتصفح. وبمجرد أن اختيار، النطاق الخاص بك هو متصفح كامل وليس مجرد محتوى الصفحة، كما سترون من دراسة بعض جلوبل:

- -
نافذة
-/*
-[كائن ChromeWindow]
-*/
-
-gBrowser
-/*
-[كائن XULElement]
-*/
- -

تم تعيين سياق التنفيذ المسودة إلى المتصفح عندما ملف قصاصة له // -sp السياق: المتصفح في السطر الأول.
-  

- -

اختصارات لوحة المفاتيح

- -

{{صفحة ("EN-US / مستندات / أدوات / Keyboard_shortcuts"، "المسودة")}}

- -

اختصارات محرر المصدر

- -

{{صفحة ("EN-US / مستندات / أدوات / Keyboard_shortcuts"، "مصدر محرر")}}

diff --git a/files/ar/tools/webide/index.html b/files/ar/tools/webide/index.html deleted file mode 100644 index 906c5e9912..0000000000 --- a/files/ar/tools/webide/index.html +++ /dev/null @@ -1,467 +0,0 @@ ---- -title: WebIDE -slug: Tools/WebIDE -tags: - - Apps - - B2G - - Debugging - - Firefox OS - - NeedsTranslation - - TopicStub - - WebIDE - - tool -translation_of: Archive/WebIDE ---- -
-

WebIDE is available from Firefox 34 onwards.

-
- -
-

WebIDE is the replacement for the App Manager. Like the App Manager, it enables you to run and debug Firefox OS apps using the Firefox OS Simulator or a real Firefox OS device.

- -

However, it also provides an editing environment for you to create and develop Firefox OS apps, including a tree view of all the files in your app with the ability to edit and save them, and two app templates to help you get started.

- -

Finally, WebIDE enables you to connect the Firefox Developer Tools to a number of other browsers, including Firefox for Android, Chrome on Android, and Safari on iOS. See the Remote Debugging page for instructions on how to connect to a specific browser.

-
- -

With WebIDE, you first set up one or more runtimes. A runtime is an environment in which you'll run and debug the app. A runtime could be a Firefox OS device connected to the desktop over USB, or it could be a Firefox OS Simulator installed on the desktop itself.

- -

Next, you create an app, or open an existing app. If you're creating a new app you start with a template that includes the directory structure and the minimum boilerplate you need to get started, or a more complete template that shows how to use a privileged API. WebIDE shows your app's files in a tree, and you can edit and save them using a built-in source editor. Of course, you don't have to use the built-in editor: you can develop your app entirely outside WebIDE, and only use it for debugging.

- -

Finally, you can install the app in one of the runtimes and run it. You can then open the usual suite of developer tools - the Inspector, Console, JavaScript Debugger and so on - to examine and modify the running app.

- -

System requirements

- -

To develop and debug apps using WebIDE, all you need is Firefox version 33 or later. To test on a real Firefox OS device, you need a device running Firefox OS 1.2 or later, and a USB cable.

- -

You can only use WebIDE for Firefox OS if you're targeting Firefox OS 1.2 or later.

- -

Opening WebIDE

- -

There are three ways to open WebIDE:

- - - -

- -

Here's what the WebIDE looks like:The dropdown on the left labeled "Open App" lets you open existing apps or create new ones. The dropdown on the right labeled "Select Runtime" lets you select a runtime or set up a new runtime.

- -

The buttons in the middle run, stop, and debug the app: they are only enabled when you have opened an app and selected a runtime.

- -

From Firefox 36, you can change the font size throughout WebIDE using the standard keyboard shortcuts (use Command instead of Control on OS X):

- - - -

Setting up runtimes

- -

Under the "Select Runtime" dropdown, runtimes are grouped into three types:

- - - -

The first time you click the dropdown, you might not see any runtimes here:

- -

The rest of this section describes how you can add some runtimes.

- -

Connecting a Firefox OS device

- -

Before you can connect a Firefox OS device, there's some setup you have to go through:

- - - -
-

Linux only:

- - -
- -
-

Windows only:

- - -
- -

If there are any other Android devices connected to your computer, disconnect them. Now connect the device to the computer using USB. You should see the device appear under "USB DEVICES":

- -

- -

If you don't see your device, see the Troubleshooting page.

- -

Connecting to Firefox for Android

- -

From Firefox 36 onwards Android devices connected over USB and running Firefox for Android appear as a runtime under "USB devices". See the article on connecting to Firefox for Android from WebIDE.

- -

Before Firefox 36, you can connect to Firefox for Android without using WebIDE at all, or can use WebIDE by setting up a custom remote runtime.

- -

Adding a Simulator

- -

The Firefox OS Simulator is a version of the higher layers of Firefox OS that simulates a Firefox OS device, but runs on the desktop. 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.

- -

This means that in many cases, you don't need a real device to test and debug your app.

- -

The Simulator is big, so it doesn't ship inside Firefox but as a Firefox add-on. If you click "Install Simulator" in the Runtimes dropdown menu, you will go to a page from which you can install Simulators for various versions of Firefox OS.

- -

You can install as many as you like. Be patient, though: the Simulator is large and may take a few minutes to download. Once you've installed some Simulators you can close this "Extra Components" window, and the Simulators you've installed appear as options in the Runtimes dropdown menu:

- -

To learn more about the Simulator, see its documentation page.

- -

Custom runtimes

- -

Remote runtime

- -

With a custom remote runtime you can use an arbitrary hostname and port to connect to the remote device.

- -

Under the hood, Firefox OS devices and Android devices connect to the desktop using a program called the Android Debug Bridge, or ADB. By default, 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.

- -

This is convenient in most cases, but sometimes you might want to use ADB outside of WebIDE: for example, you might be running ADB directly from the command line. In that case you'll connect to the device by specifying a host and port using the adb forward command (example: adb forward tcp:6000 localfilesystem:/data/local/debugger-socket).
-
- If you then want to use WebIDE to connect as well, you should disable the ADB Helper add-on and connect WebIDE using the Custom runtime option, entering the host and port that you passed to adb forward (example: localhost:6000).

- -

Also, before Firefox 36, the ADB Helper does not yet support connecting to Firefox for Android, so if you want to connect WebIDE to Firefox for Android, you'll need to set up your own port forwarding and use a custom runtime. See more about connecting to Firefox for Android using ADB prior to Firefox 36.

- -

Valence-enabled runtimes

- -

If you have the Valence add-on installed, you'll see three additional runtimes:

- - - -

For instructions on how to connect to these runtimes, see the relevant entry in the Remote Debugging page.

- -

Selecting a runtime

- -

Once you've set up a runtime you can select it using the "Select Runtime" menu.

- - - -

Now the "play" button in the center of the WebIDE toolbar is enabled: click it to install and run the app in the selected runtime.

- -

Runtime menu items

- -

When a runtime is selected, the Runtimes dropdown menu has up to five extra items:

- -
-
Runtime Info
-
Information on the current runtime
-
Permissions Table
-
A table summarising app permissions for the current runtime, indicating, for each API and each app type, whether access is allowed (✓), denied (✗), or whether the user is prompted (!)
-
- -
-
Device Preferences
-
A table listing, and letting you edit, the preferences that are made available in the runtime via the Preferences service. These are platform-level configuration values exposing the same set of data as Firefox's about:config (but for the device). Because these preferences are highly security-sensitive, you need to disable the DevTools restricted privileges setting before you can modify them.
-
Device Settings (new in Firefox 38/Firefox OS 3)
-
A table listing, and letting you edit, the settings that can be controlled in the Firefox OS Settings app. Most things on the device which have a UI control to change (volume, alarm, etc.) are found in Device Settings. Because these settings are less sensitive than the device preferences, you can modify them without removing the restricted privileges setting. However, since this feature is new in Gecko 38 you need the WebIDE in Firefox 38 and a nightly build of Firefox OS or the Simulator.
-
Screenshot
-
A command to take a screenshot from the runtime.
-
- -

- -

 

- -

Creating and opening apps

- -

Under the "Open App" menu you get three options: create a new app, open a packaged app, and open a hosted app:

- -

- -

Create a new app

- -

Select "New App..." to create a new app. You'll see a dialog offering you a choice between two templates, "Privileged Empty App" and "Privileged App".

- -

- -

Both templates are from Mozilla's app template collection, and provide you with the basic structure you need to get started. The "Privileged App" shows how an app can use permissions to load cross-origin content.

- -

Once you've selected a template you'll be asked to name the app and select a directory to store the files, and then the new app is opened in the project editor.

- -

Open a packaged app

- -

Select "Open Packaged App..." to open a packaged app. You'll be asked to select a directory containing the app's manifest, and the app will be opened in the project editor.

- -

Open a hosted app

- -

Select "Open Hosted App..." to open a hosted app. You'll be asked to enter a URL pointing to the app's manifest, and the app will be opened in the project editor.

- -

Editing apps

- -

The project editor provides an environment for editing apps. There's a tree view on the left of all the files in the app: you can add and delete files here using a context menu. There's an editor pane on the right.

- -

The app summary page

- -

When you first open or create an app, the editor pane is occupied by the app summary page, which is shown below:

- -

- -

You can always get back to the app summary page by clicking on the root of the tree on the left.

- -

Manifest validation

- -

WebIDE automatically checks the manifest for certain common problems. If it finds a problem it indicates that the app is invalid and describes the problem in the app's summary:

- -

- -

Of course, you can edit the manifest.webapp file right in the project editor as well.

- -

The source editor

- -

WebIDE uses the CodeMirror source editor.

- -

Source editor shortcuts

- -

{{ Page ("en-US/docs/tools/Keyboard_shortcuts", "source-editor") }}

- -

Code completion

- -

When editing CSS and JavaScript, the editor provides autocomplete suggestions. CSS autocompletion is always enabled:

- -

To display autocomplete suggestions in JavaScript press Control + Space:

- -

- -

Inline documentation

- -

The editor also shows inline documentation for JavaScript. Press Shift + Space to see a popup containing documentation for the symbol your cursor is on:

- -

- -

Clicking the [docs] link in the popup will take you to the MDN page for the symbol.

- -

Saving files

- -

For changes to your files to take effect you need to save them. Files with unsaved changes get an asterisk next to their name in the tree view, and you can save files using the menu or Control+S (Command+S on Mac OS X).

- -

Removing projects

- -

To remove an app from WebIDE, go to the app summary page and click "Remove Project".

- -

Running a custom build step

- -
-

New in Firefox 37.

-
- -

For some use cases you need to run a custom command before pushing your app to the device. For example, you might want to satisfy JavaScript dependencies or minify CSS, or use WebIDE to develop Gaia apps or Cordova apps, both of which require a custom build step.

- -

From Firefox 37 you can do this by including a file called "package.json" in the root of your app. This is the same file that's used to package a node.js library, so you might already have one in the root of your project. If you don't, you can create one for this purpose.

- -

Inside package.json, WebIDE looks for a property called "webide". The table below summarises the syntax of "webide":

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
webide   -

Object containing instructions for WebIDE.

- -

This may contain two properties, both optional: "prepackage" and "packageDir".

-
 prepackage  -

Specifies a command-line command for WebIDE to run before pushing the app to the runtime.

- -

This may be a string, in which case the command is just executed as-is, or may be an object which must contain "command", and may contain any of "env", "args", and "cwd".

-
  command -

The command to execute in the command shell.

- -

For example: "echo".

-
  env -

Any environment variables to set.

- -

This is specified as an array of strings in the form "NAME=value". For example: ["NAME=world"]

-
  args -

Any arguments to pass along with the command.

- -

This is specified as an array of strings.

-
  cwd -

The directory from which to run the command.

- -

This may be absolute or relative to the current directory.

-
 packageDir  -

The directory from which WebIDE should look for the app to push to the runtime.

- -

Use this if you want the project in WebIDE to be the source from which to build a packaged app. The build step specified in prepackage would place the built app in an output directory, you will specify the output directory in packageDir, and WebIDE will install the app from that output directory rather than the project directory.

- -

This property is optional, and if it's omitted WebIDE will package the app from the project root, just as if package.json was omitted.

-
- -

Examples

- -

A "package.json" to build a Gaia app:

- -
{
-  "webide": {
-    "prepackage": {
-      "command": "make",
-      "env": ["APP=settings"],
-      "cwd": "../.."
-    },
-    "packageDir": "../../build_stage/settings/"
-  }
-}
- -

A "package.json" for working with Cordova:

- -
{
-  "webide": {
-    "prepackage": "cordova prepare",
-    "packageDir": "./platforms/firefoxos/www"
-  }
-}
- -

Running and debugging apps

- -

When you're ready to run the app, you need to select a runtime from the "Select Runtime" dropdown menu. If you don't have any available runtimes here, find out how to add some in Setting up runtimes.

- -

The "play" button in the center of the WebIDE toolbar is now enabled: click it to install and run the app in the selected runtime:

- -

To debug the app, click the "Pause" button and the Developer Tools Toolbox appears, connected to your app:

- -

- -
-

From Firefox 36 onwards, the "Pause" button is replaced with a wrench icon.

-
- -

Exactly which tools you'll have available depends on the runtime, but you will at least have the basics: the Inspector, Console, JavaScript Debugger, Style Editor, Profiler and Scratchpad. Just as in a web page, any changes you make in the tools are visible immediately in the app, but are not persistent. Conversely, any changes you make in the editor pane can be saved straight back to disk, but are not visible without restarting the app.

- -

Unrestricted app debugging (including certified apps, main process, etc.)

- -

You can run the debugger against the simulator, b2g desktop, or a real device.

- -

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 certified apps:

- -

- -


- However, when connecting to a real device we have a security policy in force:

- - - -

To remove this restriction:

- - - -

To disable DevTools restricted privileges, connect to the runtime, and then, in the menu, go to Runtime > Runtime Info. The path then differs depending on what you are debugging against:

- - - -

Now (or after a restart of the B2G desktop client) in WebIDE you should see all the apps on the device.

- -
-

Note: As indicated above, to enable unrestricted privileges on a real device through WebIDE you'll need a rooted device. There is however a developer setting available in Firefox OS 2.2 onwards called Reset and enable full DevTools — when activated this will wipe all user data (for security reasons), reset the device, and enable unrestricted priviledges on any device.

-
- -

Monitoring performance

- -

If you're interested in the performance of your apps, there are a few ways to measure their impact on the runtime in WebIDE:

- - - -

Troubleshooting

- -

If you have any problems working with WebIDE, see the Troubleshooting page.

- -

 

- -

 

diff --git a/files/ar/tools/webide/troubleshooting/index.html b/files/ar/tools/webide/troubleshooting/index.html deleted file mode 100644 index 9841f92d7d..0000000000 --- a/files/ar/tools/webide/troubleshooting/index.html +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: WebIDE Troubleshooting -slug: Tools/WebIDE/Troubleshooting -translation_of: Archive/WebIDE/Troubleshooting ---- -

توصيل جهاز فايرفوكس OS

- -

إذا كنت تحاول توصيل جهاز فايرفوكس OS لWebIDE وأنها لا تظهر، وهنا بعض الأشياء التي يمكنك تجربتها:

- - - -

التصحيح غير المقيد (بما في ذلك التطبيقات المعتمدة، المدمج في تطبيقات، تطبيقات مثبتة مسبقا على الجهاز)

- -

إذا كنت تجد أنه لا يمكن تصحيح التطبيقات المعتمدة، المدمج في تطبيقات، أو تطبيقات مثبتة مسبقا على الجهاز الحقيقي، فإنك قد تكون قادمة عبر تقييد السياسة الأمنية امتيازات WebIDE ل. لمعرفة المزيد، راجع القسم الخاص غير المقيد تصحيح التطبيق (بما في ذلك التطبيقات المعتمدة، والعملية الرئيسية، الخ).

- -

الاتصال فايرفوكس لأندرويد

- -

إذا كنت تحاول الاتصال مثيل فايرفوكس يعمل على نظام التشغيل أندرويد وأنها لا تظهر، وهنا بعض الأشياء التي يمكنك تجربتها:

- - - -

الاتصال المتصفحات الأخرى (كروم، سفاري)

- -

WebIDE يستفيد من فالنسيا (سابقا فايرفوكس أدوات محول) للوصول إلى المتصفحات الأخرى، مثل كروم وسفاري. 

- -

إذا كنت تواجه مشكلة في الاتصال لهذه المتصفحات الأخرى، والتحقق من خطوات الإعداد والملاحظات الأخرى لهذه المتصفحات على الصفحة فالنسيا.

- -

غير قادر على تحميل قائمة المشروع

- -

إذا كنت WebIDE مفتوحة في إصدار واحد من فايرفوكس، ثم الرجوع إلى إصدار فايرفوكس السابق مع نفس التشكيل الجانبي، قد ترى الخطأ "غير قادر على تحميل قائمة المشروع" عند فتح WebIDE في فايرفوكس الإصدار السابق.

- -

يمكن أن يحدث هذا عندما يكون النظام التخزين التي WebIDE الاستخدامات (المفهرسة يحتاج) لنقل أو إعادة هيكلة الملفات الداخلية لفايرفوكس الإصدار الأحدث. يصبح قائمة المشروع ثم لا يمكن الوصول إليها بشكل فعال في الإصدارات القديمة من فايرفوكس.

- -

تم فقدان أية بيانات، ولكنك لن تحتاج إلى الاستمرار في استخدام أحدث نسخة من فايرفوكس الذي تم استخدامه مع ملف التعريف الخاص بك للحصول على قائمة المشروع مرة أخرى.

- -

إذا تريد حقا أن استخدام النسخة القديمة من فايرفوكس، يمكنك محاولة حذف القائمة للتو المشروع على النحو التالي، ولكن هذا غير معتمد ويمكن أن تؤدي إلى مشاكل أخرى أو فقدان بيانات إضافية:

- -
    -
  1. وثيق فايرفوكس
  2. -
  3. البحث فايرفوكس الدليل ملفك الشخصي
  4. -
  5. العثور على تخزين مجلد داخل الدليل الشخصي
  6. -
  7. تحت جزء من هذه الشجرة الملف، يجب أن يكون هناك ملفات و / أو الدلائل التي تبدأ مع 4268914080AsptpcPerjo (اسم تجزئته من قاعدة البيانات)
  8. -
  9. إزالة أي من هذه الملفات والدلائل
  10. -
  11. بدء فايرفوكس وWebIDE مرة أخرى
  12. -
- -

تمكين تسجيل

- -

يمكنك أيضا تمكين تسجيل مطول لجمع التشخيص:

- -
    -
  1. مفتوح حول: التكوين، وإضافة تفضيل جديد يسمى extensions.adbhelper@mozilla.org.sdk.console.logLevel، مع قيمة السلسلة جميع، وتعيين extensions.adbhelper@mozilla.org.debug إلى صحيح.
  2. -
  3. في إدارة الوظائف الإضافية، تعطيل ومن ثم إعادة تمكين ADB مساعد الإضافة.
  4. -
  5. فتح المتصفح وحدة التحكم، وعليك الآن أن نرى رسائل تعزية مسبوقة مع بنك التنمية الآسيوي. إذا لا تعني الرسائل لك شيئا، اطلب المساعدة.
  6. -
- -

الحصول على المساعدة

- -

انتقل إلى غرفة #devtools على IRC وسنحاول مساعدة.

diff --git a/files/ar/zones/index.html b/files/ar/zones/index.html deleted file mode 100644 index 38887a0c12..0000000000 --- a/files/ar/zones/index.html +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: Zones -slug: Zones -translation_of: Zones ---- -

MDN zones provide you one-stop access to information about specific topic areas or products. Here's a list of all the zones available to you.

-
-
-

Web and app development

-
-
- App Center
-
- Learn how to create open Web apps—rich experiences that run across multiple devices and form factors—using the same Web standards and open technologies you already know.
-
- Learning Area
-
- This zone is all about articles to help newcomers to Web development get started in this exciting new world.
-
- Developer tools
-
- Learn how to use the Firefox developer tools to debug, test, and optimize your Web apps and sites.
-
- Firefox Marketplace
-
- An open, non-proprietary online marketplace for Web applications built using HTML, CSS, and JavaScript. Submit apps to the Firefox Marketplace or use the code to build your own marketplace.
-
- Game development
-
- Learn how to develop games for the Web, how to port existing games to Web technologies, and how to turn your games into Web apps.
-
-
-
-

Products and projects

-
-
- Emscripten
-
- An LLVM to JavaScript compiler; this lets you compile, for example, C++ code into JavaScript code which can be run in any Web browser.
-
- L20n
-
- A JavaScript localization framework for unleashing your natural language's power with simple code.
-
- The MDN project
-
- The Mozilla Developer Network (this site) relies on its community of readers and contributors to grow and improve. You can learn here how to help use, contribute to, and build the code behind MDN!
-
- Persona
-
- A new simple, privacy-sensitive single-sign in system developed by Mozilla which lets users log into your Web site using their email address, freeing you from password management.
-
-

Mozilla technologies

-
-
- Add-ons
-
- Learn how to build and install extensions, themes, and plug-ins for Mozilla-based software, including the popular Firefox Web browser.
-
- Firefox
-
- Learn all about Firefox, from how to build and revise it to how to build add-ons specifically for it.
-
- Firefox OS
-
- A new mobile operating system developed by Mozilla which lets users install and run open Web applications created using HTML, CSS, and JavaScript.
-
-
-
-

 

-- cgit v1.2.3-54-g00ecf