Index: www/www.reactos.org/wiki/extensions/LanguageSelector/install.settings =================================================================== --- www/www.reactos.org/wiki/extensions/LanguageSelector/install.settings (revision 0) +++ www/www.reactos.org/wiki/extensions/LanguageSelector/install.settings (working copy) @@ -0,0 +1,2 @@ +require_once( "{{path}}/LanguageSelector.php" ); + Index: www/www.reactos.org/wiki/extensions/LanguageSelector/LanguageSelector.i18n.php =================================================================== --- www/www.reactos.org/wiki/extensions/LanguageSelector/LanguageSelector.i18n.php (revision 0) +++ www/www.reactos.org/wiki/extensions/LanguageSelector/LanguageSelector.i18n.php (working copy) @@ -0,0 +1,1204 @@ + 'Language', + 'languageselector-desc' => 'Language selector on every page, also for visitors', + 'languageselector-setlang' => 'set', +); + +/** Message documentation (Message documentation) + * @author Jon Harald Søby + * @author SPQRobin + */ +$messages['qqq'] = array( + 'languageselector' => 'Part of the "LanguageSelector" extension. You can see it when the wiki administrator has chosen for a language selector in the sidebar, so this message would be the title, like you have "navigation", "search" and "toolbox". + +{{Identical|Language}}', + 'languageselector-desc' => 'Part of the "LanguageSelector" extension. This is a description of this extension shown on [[Special:Version]].', + 'languageselector-setlang' => 'Part of the "LanguageSelector" extension. This is the text of a submit button to select your user interface language. Mostly the button is not shown, but sometimes it appears next to the language selector (a dropdown box like in your [[Special:Preferences|user preferences]]).', +); + +/** Goan Konkani (Latin script) (Konknni) + * @author The Discoverer + */ +$messages['gom-latn'] = array( + 'languageselector' => 'Bhas', +); + +/** толышә зывон (толышә зывон) + * @author Гусейн + */ +$messages['tly'] = array( + 'languageselector' => 'Зывон', +); + +/** Abkhazian (Аҧсуа) + * @author Temuri rajavi + */ +$messages['ab'] = array( + 'languageselector' => 'Абызшәа', +); + +/** Afrikaans (Afrikaans) + * @author Naudefj + * @author SPQRobin + */ +$messages['af'] = array( + 'languageselector' => 'Taal', + 'languageselector-desc' => 'Taalkeuse op elke bladsy, ook vir besoekers', + 'languageselector-setlang' => 'stel', +); + +/** Gheg Albanian (Gegë) + * @author Mdupont + */ +$messages['aln'] = array( + 'languageselector' => 'Gjuhë', + 'languageselector-desc' => 'Gjuha seleksionues në çdo faqe, edhe për vizitorët', + 'languageselector-setlang' => 'vendosur', +); + +/** Amharic (አማርኛ) + * @author Codex Sinaiticus + */ +$messages['am'] = array( + 'languageselector' => 'ቋንቋ', +); + +/** Arabic (العربية) + * @author Meno25 + */ +$messages['ar'] = array( + 'languageselector' => 'اللغة', + 'languageselector-desc' => 'اختيار اللغة في كل صفحة، أيضا للزائرين', + 'languageselector-setlang' => 'ضبط', +); + +/** Aramaic (ܐܪܡܝܐ) + * @author Basharh + */ +$messages['arc'] = array( + 'languageselector' => 'ܠܫܢܐ', +); + +/** Araucanian (Mapudungun) + * @author Kaniw + * @author Lin linao + */ +$messages['arn'] = array( + 'languageselector' => 'Cezugun', + 'languageselector-desc' => 'Cezugun ñi zujipeyvm fijke aztapvl mew, keyv jajitufe', + 'languageselector-setlang' => 'zujipe', +); + +/** Egyptian Spoken Arabic (مصرى) + * @author Meno25 + */ +$messages['arz'] = array( + 'languageselector' => 'اللغة', + 'languageselector-desc' => 'اختيار اللغة فى كل صفحة، أيضا للزائرين', + 'languageselector-setlang' => 'ضبط', +); + +/** Asturian (Asturianu) + * @author Esbardu + */ +$messages['ast'] = array( + 'languageselector' => 'Llingua', + 'languageselector-desc' => 'Selector de llingua en cada páxina, tamién pa visitantes', + 'languageselector-setlang' => 'establecer', +); + +/** Azerbaijani (Azərbaycanca) + * @author Proger + */ +$messages['az'] = array( + 'languageselector' => 'Dil', + 'languageselector-setlang' => 'Seç', +); + +/** Bashkir (Башҡортса) + * @author Assele + * @author Рустам Нурыев + */ +$messages['ba'] = array( + 'languageselector' => 'Тышҡы күренештә ҡулланылған тел:', + 'languageselector-desc' => 'Һәр биттә тел һайлау, шулай уҡ ябай кереүселәр өсөн', + 'languageselector-setlang' => 'Билдәләргә', +); + +/** Bavarian (Boarisch) + * @author Man77 + * @author Mucalexx + */ +$messages['bar'] = array( + 'languageselector' => 'Sprooch', + 'languageselector-desc' => 'Sproochnauswoi auf jeeder Seiten, aa fyr Bsuacher', + 'languageselector-setlang' => 'sétzen', +); + +/** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬) + * @author Jim-by + * @author Red Winged Duck + */ +$messages['be-tarask'] = array( + 'languageselector' => 'Мова', + 'languageselector-desc' => 'Выбар мовы на кожнай старонцы, таксама і для наведвальнікаў', + 'languageselector-setlang' => 'усталяваць', +); + +/** Bulgarian (Български) + * @author DCLXVI + */ +$messages['bg'] = array( + 'languageselector' => 'Език', +); + +/** Bengali (বাংলা) + * @author Bellayet + */ +$messages['bn'] = array( + 'languageselector' => 'ভাষা', + 'languageselector-desc' => 'প্রতি পাতায় ভাষা নির্বাচক, পরিদর্শকের জন্যেও', + 'languageselector-setlang' => 'স্থাপন', +); + +/** Tibetan (བོད་ཡིག) + * @author Freeyak + */ +$messages['bo'] = array( + 'languageselector' => 'སྐད་རིགས།', + 'languageselector-desc' => 'ཤོག་ངོས་སོ་སོའི་སྐད་རིགས་འདེམས་ཚན་དང་། གཞན་ལྟ་ཀློག་བྱེད་མཁན་གྱི་ཆེད་དུའང་ཡིན།', + 'languageselector-setlang' => 'སྒྲིག', +); + +/** Breton (Brezhoneg) + * @author Fulup + */ +$messages['br'] = array( + 'languageselector' => 'Yezh', + 'languageselector-desc' => 'Dibaber yezhoù war pep pajenn, evit ar weladennerien zoken.', + 'languageselector-setlang' => 'Termeniñ', +); + +/** Bosnian (Bosanski) + * @author CERminator + */ +$messages['bs'] = array( + 'languageselector' => 'Jezik', + 'languageselector-desc' => 'Odabir jezika na svakoj stranici, također i za posjetioce', + 'languageselector-setlang' => 'postavi', +); + +/** Буряад (Буряад) + * @author ОйЛ + */ +$messages['bxr'] = array( + 'languageselector' => 'Хэлэн', +); + +/** Catalan (Català) + * @author Jordi Roqué + * @author SMP + */ +$messages['ca'] = array( + 'languageselector' => 'Idioma', + 'languageselector-desc' => "Selector d'idioma a cada pàgina (incloent visitants anònims)", + 'languageselector-setlang' => 'selecciona', +); + +/** Sorani (کوردی) + * @author Marmzok + * @author رزگار + */ +$messages['ckb'] = array( + 'languageselector' => 'زمان', + 'languageselector-desc' => 'ھەڵبژێری زمان لە ھەموو پەڕەکان، ھەروەھا بۆ بینەران', + 'languageselector-setlang' => 'داینێ', +); + +/** Czech (Česky) + * @author Matěj Grabovský + */ +$messages['cs'] = array( + 'languageselector' => 'Jazyk', + 'languageselector-desc' => 'Výběr jazyka na každé straně, také pro návštěvníky', + 'languageselector-setlang' => 'nastavit', +); + +/** Kashubian (Kaszëbsczi) + * @author Kaszeba + */ +$messages['csb'] = array( + 'languageselector' => 'Jãzëk', + 'languageselector-desc' => 'Wëbiérk jãzëka na kòżdi starnie, a téż dlô gòsców', + 'languageselector-setlang' => 'nastôwi', +); + +/** Church Slavic (Словѣ́ньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ) + * @author ОйЛ + */ +$messages['cu'] = array( + 'languageselector' => 'ѩꙁꙑ́къ', +); + +/** Welsh (Cymraeg) + * @author Lloffiwr + */ +$messages['cy'] = array( + 'languageselector' => 'Iaith', + 'languageselector-desc' => 'Yn gosod botwm dewis iaith ar bob tudalen, sydd ar gael i ymwelwyr hefyd', + 'languageselector-setlang' => 'gosod', +); + +/** Danish (Dansk) + * @author Jon Harald Søby + * @author Peter Alberti + */ +$messages['da'] = array( + 'languageselector' => 'Sprog', + 'languageselector-desc' => 'Sprogvælger på alle sider, også for gæster', + 'languageselector-setlang' => 'vælg', +); + +/** German (Deutsch) + * @author Als-Holder + * @author Kghbln + * @author Raimond Spekking + */ +$messages['de'] = array( + 'languageselector' => 'Sprache', + 'languageselector-desc' => 'Ermöglicht, auch für Besucher des Wikis, die Auswahl der Sprache auf jeder Seite', + 'languageselector-setlang' => 'setzen', +); + +/** Lower Sorbian (Dolnoserbski) + * @author Michawiki + */ +$messages['dsb'] = array( + 'languageselector' => 'Rěc', + 'languageselector-desc' => 'Wuběrk rěcy na kuždem boku, teke za wobglědarjow', + 'languageselector-setlang' => 'stajiś', +); + +/** Ewe (Eʋegbe) + * @author Natsubee + */ +$messages['ee'] = array( + 'languageselector' => 'Gbe', + 'languageselector-desc' => 'Gbe tiala le axa ɖesiaɖe dzi, na ŋkɔmaŋlɔlawo hã', + 'languageselector-setlang' => 'wɔe', +); + +/** Greek (Ελληνικά) + * @author Consta + * @author Omnipaedista + * @author ZaDiak + */ +$messages['el'] = array( + 'languageselector' => 'Γλώσσα', + 'languageselector-desc' => 'Επιλογέας γλώσσας σε κάθε σελίδα, το ίδιο και για τους επισκέπτες', + 'languageselector-setlang' => 'ρύθμιση', +); + +/** Esperanto (Esperanto) + * @author Yekrats + */ +$messages['eo'] = array( + 'languageselector' => 'Lingvo', + 'languageselector-desc' => 'Lingvo-selektilo en ĉiuj paĝo, ankaŭ por vizitantoj', + 'languageselector-setlang' => 'fari', +); + +/** Spanish (Español) + * @author Sanbec + */ +$messages['es'] = array( + 'languageselector' => 'Idioma', + 'languageselector-desc' => 'Selector de idioma en cada página, incluso para visitantes', + 'languageselector-setlang' => 'selecciona', +); + +/** Estonian (Eesti) + * @author Silvar + */ +$messages['et'] = array( + 'languageselector' => 'Keel', + 'languageselector-desc' => 'Keele valik kõikidele lehtedele, sama ka külastajatele', + 'languageselector-setlang' => 'vali', +); + +/** Basque (Euskara) + * @author Theklan + */ +$messages['eu'] = array( + 'languageselector' => 'Hizkuntza', + 'languageselector-desc' => 'Orrialde guztietako hizkuntza aukeraketa, baita bisitarientzat ere', + 'languageselector-setlang' => 'ezarri', +); + +/** Extremaduran (Estremeñu) + * @author Better + */ +$messages['ext'] = array( + 'languageselector' => 'Palra', + 'languageselector-setlang' => 'Acetal', +); + +/** Persian (فارسی) + * @author Huji + * @author Vahid + */ +$messages['fa'] = array( + 'languageselector' => 'زبان', + 'languageselector-desc' => 'انتخاب کنندهٔ زبان در همهٔ صفحه‌ها باشد، و نیز برای مشاهده کنندگان', + 'languageselector-setlang' => 'اعمال', +); + +/** Finnish (Suomi) + * @author Crt + * @author Nike + */ +$messages['fi'] = array( + 'languageselector' => 'Kieli', + 'languageselector-desc' => 'Kielen valinta jokaisella sivulla, myös vierailijoille.', + 'languageselector-setlang' => 'aseta', +); + +/** French (Français) + * @author Bertrand GRONDIN + */ +$messages['fr'] = array( + 'languageselector' => 'Langue', + 'languageselector-desc' => 'Sélecteur de langue sur chaque page, même pour les visiteurs.', + 'languageselector-setlang' => 'Définir', +); + +/** Franco-Provençal (Arpetan) + * @author ChrisPtDe + */ +$messages['frp'] = array( + 'languageselector' => 'Lengoua', + 'languageselector-desc' => 'Chouèx de lengoua sur châque pâge, por los visitors avouéc.', + 'languageselector-setlang' => 'Dèfenir', +); + +/** Scottish Gaelic (Gàidhlig) + * @author Akerbeltz + */ +$messages['gd'] = array( + 'languageselector' => 'Cànan', + 'languageselector-desc' => "Roghnaiche cànain air gach duilleag 's airson cèilichean cuideachd", + 'languageselector-setlang' => 'suidhich', +); + +/** Galician (Galego) + * @author Alma + * @author Toliño + */ +$messages['gl'] = array( + 'languageselector' => 'Lingua', + 'languageselector-desc' => 'Seleccionador da lingua en todas as páxinas, tamén para os visitantes', + 'languageselector-setlang' => 'elixir', +); + +/** Ancient Greek (Ἀρχαία ἑλληνικὴ) + * @author Crazymadlover + * @author Omnipaedista + */ +$messages['grc'] = array( + 'languageselector' => 'Γλῶττα', + 'languageselector-desc' => 'Ἐπιλογεὺς γλῶττας ἐν πἀσαις δέλτοις, τῶν ἐπισκεπτῶν συμπεριλαμβανομένων', + 'languageselector-setlang' => 'τιθέναι', +); + +/** Swiss German (Alemannisch) + * @author Als-Holder + */ +$messages['gsw'] = array( + 'languageselector' => 'Sproch', + 'languageselector-desc' => 'Sprochenuuswahl uf jedere Syte, au fir Bsuecher', + 'languageselector-setlang' => 'setze', +); + +/** Manx (Gaelg) + * @author MacTire02 + */ +$messages['gv'] = array( + 'languageselector' => 'Çhengey', + 'languageselector-desc' => 'Reihder çhengey er dagh ooilley ghuillag, gys sleih er keayrt myrgeddin', + 'languageselector-setlang' => 'soiaghey', +); + +/** Hawaiian (Hawai`i) + * @author Kalani + */ +$messages['haw'] = array( + 'languageselector' => 'ʻŌlelo', +); + +/** Hebrew (עברית) + * @author Agbad + * @author Rotemliss + */ +$messages['he'] = array( + 'languageselector' => 'שפה', + 'languageselector-desc' => 'אפשרות בחירת שפה בכל דף, גם למבקרים', + 'languageselector-setlang' => 'בחירה', +); + +/** Hindi (हिन्दी) + * @author Kaustubh + */ +$messages['hi'] = array( + 'languageselector' => 'भाषा', + 'languageselector-desc' => 'हर पन्नेपर भाषा-सिलेक्टर, भेंट देनेवालोंके लिये भी', + 'languageselector-setlang' => 'सैट करें', +); + +/** Croatian (Hrvatski) + * @author Ex13 + */ +$messages['hr'] = array( + 'languageselector' => 'Jezik', + 'languageselector-desc' => 'Jezični izbornik na svakoj stranici, također i za posjetitelje', + 'languageselector-setlang' => 'postavi', +); + +/** Upper Sorbian (Hornjoserbsce) + * @author Michawiki + */ +$messages['hsb'] = array( + 'languageselector' => 'Rěč', + 'languageselector-desc' => 'Wuběr rěčow na kóždej stronje, tež za wopytowarjow', + 'languageselector-setlang' => 'stajić', +); + +/** Hungarian (Magyar) + * @author Dani + * @author Dorgan + */ +$messages['hu'] = array( + 'languageselector' => 'Nyelv', + 'languageselector-desc' => 'Nyelvválasztó minden lapon, látogatók számára is', + 'languageselector-setlang' => 'beállítás', +); + +/** Interlingua (Interlingua) + * @author Malafaya + * @author McDutchie + */ +$messages['ia'] = array( + 'languageselector' => 'Lingua', + 'languageselector-desc' => 'Selector de lingua in omne pagina, etiam pro visitatores', + 'languageselector-setlang' => 'seliger', +); + +/** Indonesian (Bahasa Indonesia) + * @author Rex + */ +$messages['id'] = array( + 'languageselector' => 'Bahasa', + 'languageselector-desc' => 'Menambahkan pemilih bahasa di setiap halaman, juga untuk pengunjung', + 'languageselector-setlang' => 'set', +); + +/** Ido (Ido) + * @author Malafaya + */ +$messages['io'] = array( + 'languageselector' => 'Linguo', + 'languageselector-setlang' => 'establisar', +); + +/** Icelandic (Íslenska) */ +$messages['is'] = array( + 'languageselector' => 'Tungumál', +); + +/** Italian (Italiano) + * @author Darth Kule + * @author Nemo bis + */ +$messages['it'] = array( + 'languageselector' => 'Lingua', + 'languageselector-desc' => 'Selettore della lingua in tutte le pagine, anche per gli ospiti', + 'languageselector-setlang' => 'imposta', +); + +/** Japanese (日本語) + * @author JtFuruhata + */ +$messages['ja'] = array( + 'languageselector' => '言語選択', + 'languageselector-desc' => 'ログイン状況を問わず利用できる、各ページの言語選択機能', + 'languageselector-setlang' => '設定', +); + +/** Javanese (Basa Jawa) + * @author Meursault2004 + */ +$messages['jv'] = array( + 'languageselector' => 'Basa', + 'languageselector-desc' => 'Pamilih basa ana ing saben kaca, uga kanggo tamu', + 'languageselector-setlang' => 'sèt', +); + +/** Georgian (ქართული) + * @author Temuri rajavi + */ +$messages['ka'] = array( + 'languageselector' => 'ენა', +); + +/** Kazakh (Arabic script) (‫قازاقشا (تٴوتە)‬) + * @author AlefZet + */ +$messages['kk-arab'] = array( + 'languageselector' => 'تٸل', + 'languageselector-setlang' => 'انىقتاۋ', +); + +/** Kazakh (Cyrillic script) (‪Қазақша (кирил)‬) */ +$messages['kk-cyrl'] = array( + 'languageselector' => 'Тіл', + 'languageselector-setlang' => 'анықтау', +); + +/** Kazakh (Latin script) (‪Qazaqşa (latın)‬) */ +$messages['kk-latn'] = array( + 'languageselector' => 'Til', + 'languageselector-setlang' => 'anıqtaw', +); + +/** Kalaallisut (Kalaallisut) + * @author Qaqqalik + */ +$messages['kl'] = array( + 'languageselector' => 'Oqaatsit', +); + +/** Khmer (ភាសាខ្មែរ) + * @author Chhorran + * @author Thearith + * @author គីមស៊្រុន + */ +$messages['km'] = array( + 'languageselector' => 'ភាសា', + 'languageselector-desc' => 'ឧបករណ៍​ជ្រើសយក​ភាសា​លើ​​រាល់ទំព័រ, សម្រាប់​អ្នកទស្សនា​ផងដែរ', + 'languageselector-setlang' => 'ប្តូរ', +); + +/** Kannada (ಕನ್ನಡ) + * @author Nayvik + */ +$messages['kn'] = array( + 'languageselector' => 'ಭಾಷೆ', +); + +/** Korean (한국어) + * @author Kwj2772 + */ +$messages['ko'] = array( + 'languageselector' => '언어', + 'languageselector-desc' => '방문자에게도 모든 문서에 언어 선택기를 추가', + 'languageselector-setlang' => '설정', +); + +/** Colognian (Ripoarisch) + * @author Purodha + */ +$messages['ksh'] = array( + 'languageselector' => 'Sproch', + 'languageselector-desc' => 'Shprooche-Wahl op jede Sigk, och för namelose Metmaacher, un oohne Aanmëllde.', + 'languageselector-setlang' => 'Setze', +); + +/** Kurdish (Latin script) (‪Kurdî (latînî)‬) + * @author George Animal + */ +$messages['ku-latn'] = array( + 'languageselector' => 'Ziman', +); + +/** Cornish (Kernowek) + * @author Kw-Moon + */ +$messages['kw'] = array( + 'languageselector' => 'Yeth', +); + +/** Latin (Latina) + * @author SPQRobin + */ +$messages['la'] = array( + 'languageselector' => 'Lingua', +); + +/** Luxembourgish (Lëtzebuergesch) + * @author Robby + */ +$messages['lb'] = array( + 'languageselector' => 'Sprooch', + 'languageselector-desc' => 'Wiel vun der Sprooch op all Säit, och fir Visiteuren.', + 'languageselector-setlang' => 'Wielt', +); + +/** Ganda (Luganda) + * @author Kizito + */ +$messages['lg'] = array( + 'languageselector' => 'Lulimi', + 'languageselector-desc' => "Buli alaba olupapula abe ng'asobola okwerondera lulimi mw'alusomera", + 'languageselector-setlang' => 'lukakase', +); + +/** Limburgish (Limburgs) + * @author Aelske + * @author Ooswesthoesbes + */ +$messages['li'] = array( + 'languageselector' => 'Taal', + 'languageselector-desc' => 'Taalselectie op eder pagina, ouch veur gebroekers die neet aangemeld zin', + 'languageselector-setlang' => 'instèlle', +); + +/** Lithuanian (Lietuvių) + * @author Hugo.arg + */ +$messages['lt'] = array( + 'languageselector' => 'Kalba', + 'languageselector-setlang' => 'nustatyti', +); + +/** Latgalian (Latgaļu) + * @author Dark Eagle + */ +$messages['ltg'] = array( + 'languageselector' => 'Volūda', + 'languageselector-setlang' => 'nūstateit', +); + +/** Macedonian (Македонски) + * @author Bjankuloski06 + */ +$messages['mk'] = array( + 'languageselector' => 'Јазик', + 'languageselector-desc' => 'Избирач на јазик на секоја страница, исто така за посетители', + 'languageselector-setlang' => 'постави', +); + +/** Malayalam (മലയാളം) + * @author Shijualex + */ +$messages['ml'] = array( + 'languageselector' => 'ഭാഷ', +); + +/** Mongolian (Монгол) + * @author Chinneeb + */ +$messages['mn'] = array( + 'languageselector' => 'Хэл', +); + +/** Marathi (मराठी) + * @author Kaustubh + * @author Mahitgar + */ +$messages['mr'] = array( + 'languageselector' => 'भाषा', + 'languageselector-desc' => 'प्रत्येक पानावर भाषा-निवडक (selector), भेट देणार्‍यांसाठी सुद्धा', + 'languageselector-setlang' => 'सेट (set)', +); + +/** Malay (Bahasa Melayu) + * @author Zamwan + */ +$messages['ms'] = array( + 'languageselector' => 'Bahasa', + 'languageselector-desc' => 'Pilihan bahasa pada setiap laman, termasuk untuk para pelawat.', + 'languageselector-setlang' => 'set', +); + +/** Maltese (Malti) + * @author Roderick Mallia + */ +$messages['mt'] = array( + 'languageselector' => 'Lingwa', +); + +/** Erzya (Эрзянь) + * @author Botuzhaleny-sodamo + */ +$messages['myv'] = array( + 'languageselector' => 'Кель', +); + +/** Nahuatl (Nāhuatl) + * @author Fluence + * @author Teòtlalili + */ +$messages['nah'] = array( + 'languageselector' => 'Tlâtòlli', +); + +/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬) + * @author Jon Harald Søby + */ +$messages['nb'] = array( + 'languageselector' => 'Språk', + 'languageselector-desc' => 'Valg av språk på alle sider, også for gjester', + 'languageselector-setlang' => 'sett', +); + +/** Low German (Plattdüütsch) + * @author Slomox + */ +$messages['nds'] = array( + 'languageselector' => 'Spraak', + 'languageselector-setlang' => 'setten', +); + +/** Dutch (Nederlands) + * @author SPQRobin + */ +$messages['nl'] = array( + 'languageselector' => 'Taal', + 'languageselector-desc' => 'Taalselectie op iedere pagina, ook voor gebruikers die niet aangemeld zijn', + 'languageselector-setlang' => 'instellen', +); + +/** Norwegian Nynorsk (‪Norsk (nynorsk)‬) + * @author Harald Khan + * @author Jon Harald Søby + */ +$messages['nn'] = array( + 'languageselector' => 'Språk', + 'languageselector-desc' => 'Spåkveljar på kvar sida, òg for gjester', + 'languageselector-setlang' => 'set', +); + +/** Northern Sotho (Sesotho sa Leboa) + * @author Mohau + */ +$messages['nso'] = array( + 'languageselector' => 'Polelo', +); + +/** Occitan (Occitan) + * @author Cedric31 + */ +$messages['oc'] = array( + 'languageselector' => 'Lenga', + 'languageselector-desc' => 'Selector de lenga sus cada pagina, quitament pels visitaires.', + 'languageselector-setlang' => 'Definir', +); + +/** Oriya (ଓଡ଼ିଆ) + * @author Jnanaranjan Sahu + */ +$messages['or'] = array( + 'languageselector' => 'ଭାଷା', + 'languageselector-desc' => 'ଭାଷା ଚୟନକାରୀ ସବୁ ପୃଷ୍ଠାରେ, ଅତିଥି ମାନଙ୍କ ପାଇଁ ମଧ୍ୟ', + 'languageselector-setlang' => 'ସେଟ କରନ୍ତୁ', +); + +/** Ossetic (Ирон) + * @author Amikeco + */ +$messages['os'] = array( + 'languageselector' => 'Æвзаг', +); + +/** Punjabi (ਪੰਜਾਬੀ) + * @author Aalam + */ +$messages['pa'] = array( + 'languageselector' => 'ਭਾਸ਼ਾ:', + 'languageselector-setlang' => 'ਸੈੱਟ ਕਰੋ', +); + +/** Deitsch (Deitsch) + * @author Xqt + */ +$messages['pdc'] = array( + 'languageselector' => 'Schprooch', +); + +/** Polish (Polski) + * @author McMonster + * @author Wpedzich + */ +$messages['pl'] = array( + 'languageselector' => 'Język', + 'languageselector-desc' => 'Wybór języka dla każdej strony, również dla osób odwiedzających', + 'languageselector-setlang' => 'ustaw', +); + +/** Piedmontese (Piemontèis) + * @author Dragonòt + */ +$messages['pms'] = array( + 'languageselector' => 'Lenga', + 'languageselector-desc' => 'Seletor ëd la lenga an dzora a mincadun-a pàgina, ëdcò për ij visitador', + 'languageselector-setlang' => 'Ampòsta', +); + +/** Pashto (پښتو) + * @author Ahmed-Najib-Biabani-Ibrahimkhel + */ +$messages['ps'] = array( + 'languageselector' => 'ژبه', + 'languageselector-desc' => 'د ژب ټاکنې پټه دې په هر مخ وي، د کتونکو لپاره هم', + 'languageselector-setlang' => 'ټاکل', +); + +/** Portuguese (Português) + * @author 555 + * @author Hamilton Abreu + * @author Malafaya + */ +$messages['pt'] = array( + 'languageselector' => 'Língua', + 'languageselector-desc' => 'Selector de língua em todas as páginas, também para visitantes', + 'languageselector-setlang' => 'seleccionar', +); + +/** Brazilian Portuguese (Português do Brasil) + * @author Eduardo.mps + * @author Giro720 + * @author MF-Warburg + */ +$messages['pt-br'] = array( + 'languageselector' => 'Língua', + 'languageselector-desc' => 'Seletor de língua em todas as páginas, também para visitantes', + 'languageselector-setlang' => 'selecionar', +); + +/** Quechua (Runa Simi) + * @author AlimanRuna + */ +$messages['qu'] = array( + 'languageselector' => 'Rimay', + 'languageselector-desc' => "Tukuy p'anqakunapi rimay akllana, watukuqkunapaqpas", + 'languageselector-setlang' => 'churay', +); + +/** Romanian (Română) + * @author KlaudiuMihaila + */ +$messages['ro'] = array( + 'languageselector' => 'Limbă', +); + +/** Tarandíne (Tarandíne) + * @author Joetaras + */ +$messages['roa-tara'] = array( + 'languageselector' => 'Lènghe', + 'languageselector-desc' => "'U selezzionatore de le lènghe sus a ogne pàgene, pure pe le visitature", + 'languageselector-setlang' => "'mboste", +); + +/** Russian (Русский) + * @author Kaganer + * @author Александр Сигачёв + */ +$messages['ru'] = array( + 'languageselector' => 'Язык', + 'languageselector-desc' => 'Выбор языка на каждой странице, доступный также и для посетителей', + 'languageselector-setlang' => 'установить', +); + +/** Rusyn (Русиньскый) + * @author Gazeb + */ +$messages['rue'] = array( + 'languageselector' => 'Язык', + 'languageselector-desc' => 'Выбер языка на каждій сторінцї і тыж про навщівників', + 'languageselector-setlang' => 'становити', +); + +/** Sakha (Саха тыла) + * @author HalanTul + */ +$messages['sah'] = array( + 'languageselector' => 'Омук тыла', + 'languageselector-desc' => 'Хас сирэй аайы омук тылын талыы баар, көрөөччүлэргэ эмиэ', + 'languageselector-setlang' => 'туруор', +); + +/** Tachelhit (Tašlḥiyt/ⵜⴰⵛⵍⵃⵉⵜ) + * @author Zanatos + */ +$messages['shi'] = array( + 'languageselector' => 'tutlayt', +); + +/** Sinhala (සිංහල) + * @author තඹරු විජේසේකර + * @author නන්දිමිතුරු + */ +$messages['si'] = array( + 'languageselector' => 'භාෂාව', + 'languageselector-setlang' => 'සකසන්න', +); + +/** Slovak (Slovenčina) + * @author Helix84 + */ +$messages['sk'] = array( + 'languageselector' => 'Jazyk', + 'languageselector-desc' => 'Výber jazyka na každej stránke, aj pre návštevníkov', + 'languageselector-setlang' => 'nastaviť', +); + +/** Slovenian (Slovenščina) + * @author Dbc334 + * @author Smihael + */ +$messages['sl'] = array( + 'languageselector' => 'Jezik', + 'languageselector-desc' => 'Izbirnik jezika na vsaki strani, tudi za obiskovalce', + 'languageselector-setlang' => 'določi', +); + +/** Lower Silesian (Schläsch) + * @author Jonny84 + * @author Piotron + */ +$messages['sli'] = array( + 'languageselector' => 'Sproache', + 'languageselector-desc' => 'Sproachaauswoahl uff jeder Seite, au fier Besucher', + 'languageselector-setlang' => 'setza', +); + +/** Serbian (Cyrillic script) (‪Српски (ћирилица)‬) + * @author Sasa Stefanovic + * @author Михајло Анђелковић + */ +$messages['sr-ec'] = array( + 'languageselector' => 'Језик', + 'languageselector-desc' => 'Избирач језика на сваком језику, и такође за посетиоце', + 'languageselector-setlang' => 'постави', +); + +/** Serbian (Latin script) (‪Srpski (latinica)‬) + * @author Michaello + */ +$messages['sr-el'] = array( + 'languageselector' => 'Jezik', + 'languageselector-desc' => 'Izbirač jezika na svakom jeziku, i takođe za posetioce', + 'languageselector-setlang' => 'postavi', +); + +/** Seeltersk (Seeltersk) + * @author Pyt + */ +$messages['stq'] = array( + 'languageselector' => 'Sproake', + 'languageselector-desc' => 'Sproakenuutwoal ap älke Siede, uk foar Besäikere', + 'languageselector-setlang' => 'sätte', +); + +/** Sundanese (Basa Sunda) + * @author Irwangatot + */ +$messages['su'] = array( + 'languageselector' => 'Basa', + 'languageselector-desc' => 'Pilihan basa keur kabeh kaca, ogé keur nu sindang', + 'languageselector-setlang' => 'set', +); + +/** Swedish (Svenska) + * @author Lejonel + * @author M.M.S. + */ +$messages['sv'] = array( + 'languageselector' => 'Språk', + 'languageselector-desc' => 'Språkväljare på varje sida, också för besökare', + 'languageselector-setlang' => 'välj', +); + +/** Tamil (தமிழ்) + * @author Mahir78 + */ +$messages['ta'] = array( + 'languageselector' => 'மொழி', +); + +/** Telugu (తెలుగు) + * @author Veeven + */ +$messages['te'] = array( + 'languageselector' => 'భాష', + 'languageselector-desc' => 'ప్రతీ పేజీలోనూ భాషా ఎంపిక, సందర్శకులకు కూడా', + 'languageselector-setlang' => 'అమర్చు', +); + +/** Tetum (Tetun) + * @author MF-Warburg + */ +$messages['tet'] = array( + 'languageselector' => 'Lian', + 'languageselector-desc' => 'Hili lian iha pájina hotu, mós ba vizitante', + 'languageselector-setlang' => 'hili', +); + +/** Tajik (Cyrillic script) (Тоҷикӣ) + * @author Ibrahim + */ +$messages['tg-cyrl'] = array( + 'languageselector' => 'Забон', + 'languageselector-desc' => 'Забон интихобкунанда дар ҳар саҳифа, барои ташрифоварандагон низ', +); + +/** Tajik (Latin script) (tojikī) + * @author Liangent + */ +$messages['tg-latn'] = array( + 'languageselector' => 'Zabon', + 'languageselector-desc' => 'Zabon intixobkunanda dar har sahifa, baroi taşrifovarandagon niz', +); + +/** Thai (ไทย) + * @author Passawuth + */ +$messages['th'] = array( + 'languageselector' => 'ภาษา', +); + +/** Turkmen (Türkmençe) + * @author Hanberke + */ +$messages['tk'] = array( + 'languageselector' => 'Dil', +); + +/** Tagalog (Tagalog) + * @author AnakngAraw + */ +$messages['tl'] = array( + 'languageselector' => 'Wika', + 'languageselector-desc' => 'Pampili ng wika na nasa ibabaw ng bawat pahina, para rin sa mga panauhin', + 'languageselector-setlang' => 'itakda', +); + +/** Turkish (Türkçe) + * @author Joseph + * @author Karduelis + */ +$messages['tr'] = array( + 'languageselector' => 'Dil', + 'languageselector-desc' => 'Her sayfada dil seçicisi, aynı zamanda ziyaretçiler için', + 'languageselector-setlang' => 'ayar', +); + +/** Tatar (Cyrillic script) (Татарча) + * @author Ильнар + */ +$messages['tt-cyrl'] = array( + 'languageselector' => 'Тел', + 'languageselector-setlang' => 'урнаштыру', +); + +/** Uyghur (Latin script) (Uyghurche‎) + * @author Jose77 + */ +$messages['ug-latn'] = array( + 'languageselector' => 'Til', +); + +/** Ukrainian (Українська) + * @author AS + * @author Prima klasy4na + */ +$messages['uk'] = array( + 'languageselector' => 'Мова', + 'languageselector-desc' => 'Вибір мови на кожній сторінці, а також для відвідувачів', + 'languageselector-setlang' => 'встановити', +); + +/** Vèneto (Vèneto) + * @author Candalua + */ +$messages['vec'] = array( + 'languageselector' => 'Lengua', + 'languageselector-desc' => 'Un seletor de la lengua su tute le pagine, anca par i visitatori', + 'languageselector-setlang' => 'selessiona', +); + +/** Veps (Vepsan kel') + * @author Triple-ADHD-AS + * @author Игорь Бродский + */ +$messages['vep'] = array( + 'languageselector' => 'Kel’', + 'languageselector-desc' => 'Kelen valičend kaikuččen lehtpolen täht, mugažo adivoile-ki.', + 'languageselector-setlang' => 'panda', +); + +/** Vietnamese (Tiếng Việt) + * @author Minh Nguyen + */ +$messages['vi'] = array( + 'languageselector' => 'Ngôn ngữ', + 'languageselector-desc' => 'Hộp để chọn ngôn ngữ ở các trang, cũng được cung cấp cho những người vô danh', + 'languageselector-setlang' => 'đổi', +); + +/** Volapük (Volapük) + * @author Malafaya + */ +$messages['vo'] = array( + 'languageselector' => 'Pük', +); + +/** Yiddish (ייִדיש) + * @author פוילישער + */ +$messages['yi'] = array( + 'languageselector' => 'שפראַך', +); + +/** Cantonese (粵語) + * @author Shinjiman + */ +$messages['yue'] = array( + 'languageselector' => '語言', + 'languageselector-setlang' => '設', +); + +/** Simplified Chinese (‪中文(简体)‬) + * @author PhiLiP + * @author Shinjiman + */ +$messages['zh-hans'] = array( + 'languageselector' => '语言', + 'languageselector-desc' => '在每一页面上添加语言选择项,对匿名访问者亦有效', + 'languageselector-setlang' => '设置', +); + +/** Traditional Chinese (‪中文(繁體)‬) + * @author Liangent + * @author Mark85296341 + * @author Shinjiman + */ +$messages['zh-hant'] = array( + 'languageselector' => '語言', + 'languageselector-desc' => '在每一頁面上加入語言選擇項,對匿名訪問者亦有效', + 'languageselector-setlang' => '設定', +); + Index: www/www.reactos.org/wiki/extensions/LanguageSelector/LanguageSelector.js =================================================================== --- www/www.reactos.org/wiki/extensions/LanguageSelector/LanguageSelector.js (revision 0) +++ www/www.reactos.org/wiki/extensions/LanguageSelector/LanguageSelector.js (working copy) @@ -0,0 +1,24 @@ +$( function() { + var i = 1; + while ( true ) { + var btn = document.getElementById("languageselector-commit-"+i); + var sel = document.getElementById("languageselector-select-"+i); + var idx = i; + + if (!btn) break; + + btn.style.display = "none"; + sel.onchange = function() { + node = this.parentNode; + while( true ) { + if( node.tagName.toLowerCase() == "form" ) { + node.submit(); + break; + } + node = node.parentNode; + } + }; + + i++; + } +}); Index: www/www.reactos.org/wiki/extensions/LanguageSelector/LanguageSelector.php =================================================================== --- www/www.reactos.org/wiki/extensions/LanguageSelector/LanguageSelector.php (revision 0) +++ www/www.reactos.org/wiki/extensions/LanguageSelector/LanguageSelector.php (working copy) @@ -0,0 +1,405 @@ + __FILE__, + 'name' => 'Language Selector', + 'author' => 'Daniel Kinzler', + 'url' => 'http://mediawiki.org/wiki/Extension:LanguageSelector', + 'descriptionmsg' => 'languageselector-desc', +); + +define( 'LANGUAGE_SELECTOR_USE_CONTENT_LANG', 0 ); #no detection +define( 'LANGUAGE_SELECTOR_PREFER_CONTENT_LANG', 1 ); #use content language if accepted by the client +define( 'LANGUAGE_SELECTOR_PREFER_CLIENT_LANG', 2 ); #use language most preferred by the client + +/** +* Language detection mode for anonymous visitors. +* Possible values: +* * LANGUAGE_SELECTOR_USE_CONTENT_LANG - use the $wgLanguageCode setting (default content language) +* * LANGUAGE_SELECTOR_PREFER_CONTENT_LANG - use the $wgLanguageCode setting, if accepted by the client +* * LANGUAGE_SELECTOR_PREFER_CLIENT_LANG - use the client's preferred language, if in $wgLanguageSelectorLanguages +*/ +$wgLanguageSelectorDetectLanguage = LANGUAGE_SELECTOR_PREFER_CLIENT_LANG; + +/** +* Languages to offer in the language selector. Per default, this includes all languages MediaWiki knows +* about by virtue of languages/Names.php. A shorter list may be more usable, though. +*/ +$wgLanguageSelectorLanguages = null; + +/** +* Determine if language codes are shown in the selector, in addition to names; +*/ +$wgLanguageSelectorShowCode = false; + +/** + * Show all languages defined, not only those with a language file (Language::getLanguageNames( )) + */ +$wgLanguageSelectorShowAll = false; + +define( 'LANGUAGE_SELECTOR_MANUAL', 0 ); #don't place anywhere +define( 'LANGUAGE_SELECTOR_AT_TOP_OF_TEXT', 1 ); #put at the top of page content +define( 'LANGUAGE_SELECTOR_IN_TOOLBOX', 2 ); #put into toolbox +define( 'LANGUAGE_SELECTOR_AS_PORTLET', 3 ); #as portlet +define( 'LANGUAGE_SELECTOR_INTO_SITENOTICE', 11 ); #put after sitenotice text +define( 'LANGUAGE_SELECTOR_INTO_TITLE', 12 ); #put after title text +define( 'LANGUAGE_SELECTOR_INTO_SUBTITLE', 13 ); #put after subtitle text +define( 'LANGUAGE_SELECTOR_INTO_CATLINKS', 14 ); #put after catlinks text + +$wgLanguageSelectorLocation = LANGUAGE_SELECTOR_AT_TOP_OF_TEXT; + +///// hook it up ///////////////////////////////////////////////////// +$wgHooks['AddNewAccount'][] = 'wfLanguageSelectorAddNewAccount'; +$wgHooks['BeforePageDisplay'][] = 'wfLanguageSelectorBeforePageDisplay'; +$wgHooks['GetCacheVaryCookies'][] = 'wfLanguageSelectorGetCacheVaryCookies'; +$wgHooks['ParserFirstCallInit'][] = 'wfLanguageSelectorSetHook'; +$wgHooks['UserGetLanguageObject'][] = 'wfLanguageSelectorGetLanguageCode'; + +$wgExtensionFunctions[] = 'wfLanguageSelectorExtension'; + +$wgParserOutputHooks['languageselector'] = 'wfLanguageSelectorAddJavascript'; + +$wgResourceModules['ext.languageSelector'] = array( + 'scripts' => 'LanguageSelector.js', + 'localBasePath' => dirname( __FILE__ ), + 'remoteExtPath' => 'LanguageSelector' +); + +$dir = dirname(__FILE__) . '/'; +$wgExtensionMessagesFiles['LanguageSelector'] = $dir . 'LanguageSelector.i18n.php'; +$wgJSAutoloadClasses['LanguageSelector'] = 'extensions/LanguageSelector/LanguageSelector.js'; + +/** + * @param $parser Parser + * @return bool + */ +function wfLanguageSelectorSetHook( $parser ) { + $parser->setHook( 'languageselector', 'wfLanguageSelectorTag' ); + return true; +} + +function wfLanguageSelectorExtension() { + global $wgLanguageSelectorLocation, + $wgLanguageSelectorShowAll, $wgHooks; + + // We'll probably be beaten to this by the call in wfLanguageSelectorGetLanguageCode(), + // but just in case, call this to make sure the global is properly initialised + wfGetLanguageSelectorLanguages(); + + if ( $wgLanguageSelectorLocation != LANGUAGE_SELECTOR_MANUAL && $wgLanguageSelectorLocation != LANGUAGE_SELECTOR_AT_TOP_OF_TEXT ) { + switch ( $wgLanguageSelectorLocation ) { + case LANGUAGE_SELECTOR_IN_TOOLBOX: + $wgHooks['SkinTemplateToolboxEnd'][] = 'wfLanguageSelectorSkinHook'; + break; + default: + $wgHooks['SkinTemplateOutputPageBeforeExec'][] = 'wfLanguageSelectorSkinTemplateOutputPageBeforeExec'; + break; + } + } +} + +function wfGetLanguageSelectorLanguages(){ + global $wgLanguageSelectorLanguages, $wgLanguageSelectorShowAll; + if ( $wgLanguageSelectorLanguages === null ) { + $wgLanguageSelectorLanguages = array_keys( Language::getLanguageNames( !$wgLanguageSelectorShowAll ) ); + sort( $wgLanguageSelectorLanguages ); + } + return $wgLanguageSelectorLanguages; +} + +/** + * Hook to UserGetLanguageObject + * @param $user User + * @param $code String + * @return bool + */ +function wfLanguageSelectorGetLanguageCode( $user, &$code ) { + global $wgLanguageSelectorDetectLanguage, + $wgCommandLineMode, $wgRequest, $wgContLang; + + if ( $wgCommandLineMode ) { + return true; + } + + $setlang = $wgRequest->getVal( 'setlang' ); + if ( $setlang && !in_array( $setlang, wfGetLanguageSelectorLanguages() ) ) { + $setlang = null; // ignore invalid + } + + if ( $setlang ) { + $wgRequest->response()->setcookie( 'LanguageSelectorLanguage', $setlang ); + $requestedLanguage = $setlang; + } else { + $requestedLanguage = $wgRequest->getCookie( 'LanguageSelectorLanguage' ); + } + + if ( $setlang && !$user->isAnon() ) { + if ( $setlang != $user->getOption( 'language' ) ) { + $user->setOption( 'language', $requestedLanguage ); + $user->saveSettings(); + $code = $requestedLanguage; + } + } + + if ( !$wgRequest->getVal( 'uselang' ) && $user->isAnon() ) { + if ( $wgLanguageSelectorDetectLanguage != LANGUAGE_SELECTOR_USE_CONTENT_LANG ) { + if ( $requestedLanguage ) { + $code = $requestedLanguage; + } else { + $languages = $wgRequest->getAcceptLang(); + + // see if the content language is accepted by the client. + if ( $wgLanguageSelectorDetectLanguage != LANGUAGE_SELECTOR_PREFER_CONTENT_LANG + || !array_key_exists( $wgContLang->getCode(), $languages ) ) + { + + $supported = wfGetLanguageSelectorLanguages(); + // look for a language that is acceptable to the client + // and known to the wiki. + foreach( $languages as $reqCode => $q ) { + if ( in_array( $reqCode, $supported ) ) { + $code = $reqCode; + break; + } + } + + // Apparently Safari sends stupid things like "de-de" only. + // Try again with stripped codes. + foreach( $languages as $reqCode => $q ) { + $stupidPHP = explode( '-', $reqCode, 2 ); + $bareCode = array_shift( $stupidPHP ); + if ( in_array( $bareCode, $supported ) ) { + $code = $bareCode; + break; + } + } + } + } + } + } + + return true; +} + +/** + * @param $out OutputPage + * @return bool + */ +function wfLanguageSelectorBeforePageDisplay( &$out ) { + global $wgLanguageSelectorLocation; + + if ( $wgLanguageSelectorLocation == LANGUAGE_SELECTOR_MANUAL ) { + return true; + } + + if ( $wgLanguageSelectorLocation == LANGUAGE_SELECTOR_AT_TOP_OF_TEXT ) { + $html = wfLanguageSelectorHTML( $out->getTitle() ); + $out->mBodytext = $html . $out->mBodytext; + } + + $out->addModules( 'ext.languageSelector' ); + + return true; +} + +function wfLanguageSelectorGetCacheVaryCookies( $out, &$cookies ) { + global $wgCookiePrefix; + $cookies[] = $wgCookiePrefix.'LanguageSelectorLanguage'; + return true; +} + +/** + * @param $skin Skin + * @return bool + */ +function wfLanguageSelectorSkinHook( &$skin ) { + $html = wfLanguageSelectorHTML( $skin->getTitle() ); + print $html; + return true; +} + +/** + * @param $input String + * @param $args Array + * @param $parser Parser + * @return string + */ +function wfLanguageSelectorTag( $input, $args, $parser ) { + $style = @$args['style']; + $class = @$args['class']; + $selectorstyle = @$args['selectorstyle']; + $buttonstyle = @$args['buttonstyle']; + $showcode = @$args['showcode']; + + if ( $style ) { + $style = htmlspecialchars( $style ); + } + if ( $class ) { + $class = htmlspecialchars( $class ); + } + if ( $selectorstyle ) { + $selectorstyle = htmlspecialchars( $selectorstyle ); + } + if ( $buttonstyle ) { + $buttonstyle = htmlspecialchars( $buttonstyle ); + } + + if ( $showcode ) { + $showcode = strtolower( $showcode ); + if ( $showcode == "true" || $showcode == "yes" || $showcode == "on" ) { + $showcode = true; + } elseif ( $showcode == "false" || $showcode == "no" || $showcode == "off" ) { + $showcode = false; + } else { + $showcode = null; + } + } else { + $showcode = null; + } + + # So that this also works with parser cache + $parser->getOutput()->addOutputHook( 'languageselector' ); + + return wfLanguageSelectorHTML( $parser->getTitle(), $style, $class, $selectorstyle, $buttonstyle, $showcode ); +} + +/** + * @param $skin Skin + * @param $tpl QuickTemplate + * @return bool + */ +function wfLanguageSelectorSkinTemplateOutputPageBeforeExec( &$skin, &$tpl ) { + global $wgLanguageSelectorLocation; + global $wgLang, $wgContLang; + + if ($wgLanguageSelectorLocation == LANGUAGE_SELECTOR_AS_PORTLET) { + $code = $wgLang->getCode(); + $lines = array(); + foreach ( wfGetLanguageSelectorLanguages() as $ln ) { + $lines[] = array( + $href = $skin->getTitle()->getFullURL( 'setlang=' . $ln ), + 'text' => $wgContLang->getLanguageName($ln), + 'href' => $href, + 'id' => 'n-languageselector', + 'active' => ($ln == $code), + ); + } + + $tpl->data['sidebar']['languageselector'] = $lines; + return true; + } + + $key = null; + + switch($wgLanguageSelectorLocation) { + case LANGUAGE_SELECTOR_INTO_SITENOTICE: $key = 'sitenotice'; break; + case LANGUAGE_SELECTOR_INTO_TITLE: $key = 'title'; break; + case LANGUAGE_SELECTOR_INTO_SUBTITLE: $key = 'subtitle'; break; + case LANGUAGE_SELECTOR_INTO_CATLINKS: $key = 'catlinks'; break; + } + + if ($key) { + $html = wfLanguageSelectorHTML( $skin->getTitle() ); + $tpl->set( $key, $tpl->data[ $key ] . $html ); + } + + return true; +} + +/** + * @param $u User + * @return bool + */ +function wfLanguageSelectorAddNewAccount( $u ) { + global $wgUser, $wgLang; + + //inherit language; + //if $wgUser is the created user this means remembering what the user selected + //otherwise, it would mean inheriting the language from the user creating the account. + if ( $wgUser === $u ) { + $u->setOption( 'language', $wgLang->getCode() ); + $u->saveSettings(); + } + + return true; +} + +/** + * @param $outputPage OutputPage + * @param $parserOutput ParserOutput + * @param $data + * @return void + */ +function wfLanguageSelectorAddJavascript( $outputPage, $parserOutput, $data ) { + $outputPage->addModules( 'ext.languageSelector' ); +} + +function wfLanguageSelectorHTML( Title $title, $style = null, $class = null, $selectorstyle = null, $buttonstyle = null, $showCode = null ) { + global $wgLang, $wgContLang, $wgScript, + $wgLanguageSelectorShowCode; + + if ( $showCode === null ) { + $showCode = $wgLanguageSelectorShowCode; + } + + static $id = 0; + $id += 1; + + $code = $wgLang->getCode(); + + $html = ''; + $html .= Xml::openElement( 'span', array( + 'id' => 'languageselector-box-' . $id, + 'class' => 'languageselector ' . $class, + 'style' => $style + ) ); + $html .= Xml::openElement( 'form', array( + 'name' => 'languageselector-form-'.$id, + 'id' => 'languageselector-form-' . $id, + 'method' => 'get', + 'action' => $wgScript, + 'style' => 'display:inline;' + ) ); + $html .= Html::Hidden( 'title', $title->getPrefixedDBKey() ); + $html .= Xml::openElement('select', array( + 'name' => 'setlang', + 'id' => 'languageselector-select-' . $id, + 'style' => $selectorstyle + ) ); + + foreach ( wfGetLanguageSelectorLanguages() as $ln ) { + $name = $wgContLang->getLanguageName( $ln ); + if ( $showCode ) $name = wfBCP47( $ln ) . ' - ' . $name; + + $html .= Xml::option( $name, $ln, $ln == $code ); + } + + $html .= Xml::closeElement( 'select' ); + $html .= Xml::submitButton( wfMsg( 'languageselector-setlang' ), + array( 'id' => 'languageselector-commit-' . $id, 'style' => $buttonstyle ) ); + $html .= Xml::closeElement( 'form' ); + $html .= Xml::closeElement( 'span' ); + + return $html; +} Index: www/www.reactos.org/wiki/extensions/LanguageSelector/README =================================================================== --- www/www.reactos.org/wiki/extensions/LanguageSelector/README (revision 0) +++ www/www.reactos.org/wiki/extensions/LanguageSelector/README (working copy) @@ -0,0 +1,93 @@ +-------------------------------------------------------------------------- +README for the LanguageSelector extension +Copyright © 2007 Daniel Kinzler +Licenses: GNU General Public License (GPL) + GNU Free Documentation License (GFDL) +-------------------------------------------------------------------------- + +LanguageSelector is EXPERIMENTAL + +The LanguageSelector extension provides detection of the language to use for +anonymous visitors, and a menu for selecting the user language on each page, +for logged in users as well as anonymous visitors. It also provides an +additional tag, , for embedding the selector into wiki +pages and system messages. + +Language detection is based on the Accept-Language header sent by the +browser as part of the HTTP request. Users can also set their preferred +language explicitly - this is handled by a separate cookie for anonymous +visitors, and in the user preferences for logged in users. + +NOTE: language detection and cookie-based language preferences for anonymous +users will currently not work with page caching (MediaWiki filecache, reverse +HTTP proxies like squid, etc). It may degrade cache performance and make it +useless, and it may lead to people seeing the page in a random language. +Mediawiki's internal caches (parser, link, query, etc) are not effectd. + +For more comprehensive support for multilingual content, LanguageSelector can +be combined with the MultiLang and Polyglot extensions. + +The LanguageSelector extension was originally written by Daniel Kinzler in 2007 +and is released under the GNU General Public License (GPL). + + + +== Installing == + +Copy the LanguageSelector directory into the extensions folder of your +MediaWiki installation. Then add the following line to your +LocalSettings.php file (near the end): + + require_once( "$IP/extensions/LanguageSelector/LanguageSelector.php" ); + +== Configuration == + +You can specify the following settings in your LocalSettings.php (after +including the extension file): + +* $wgLanguageSelectorLanguages: Languages to be offered to the user for + selection. If set to NULL (the default), all languages known to MediaWiki + (by $wgLanguageNames) are considered. If the Polyglot extension is + installed and $wgPolyglotLanguages is set, that value will be used as a + fallback. Setting $wgLanguageSelectorLanguages to a shorter list may + be more convenient for users than selecting from a list with more than a + hundred mostly useless entries. + +* $wgLanguageSelectorDetectLanguage: Language detection mode for anonymous + visitors. Possible values: +** LANGUAGE_SELECTOR_USE_CONTENT_LANG: do not use detection, always use the + wiki's content language (this is mediawiki's normal behavior). +** LANGUAGE_SELECTOR_PREFER_CONTENT_LANG: use the wiki's content language, + setting, if accepted by the client. +** LANGUAGE_SELECTOR_PREFER_CLIENT_LANG: use the client's preferred + language, if it is in $wgLanguageSelectorLanguages. + +* $wgLanguageSelectorLocation: where to inject the language selector + widget. Note that you will probably have to adjust your CSS styles + to adopt the language selector to your wiki's style. + Possible values of $wgLanguageSelectorLocation: +** LANGUAGE_SELECTOR_MANUAL: do not show language selector. This can be + usefull if you only want to use the auto-detection feature, or only want + the selector on a few pages, or if you want to place it manually by + putting it into an appropriate system message. +** LANGUAGE_SELECTOR_AT_TOP_OF_TEXT: inject a dropdown box at the top of page + content. This is the default, but it looks quite ugly without extra CSS + rules applied. +** LANGUAGE_SELECTOR_IN_TOOLBOX: inject a dropdown box at the bottom of the + toolbox in the sidebar. This doesn't work in all skins, mostly in skin + MonoBook, or skins explicitly supporting the SkinTemplateToolboxEnd hook. +** LANGUAGE_SELECTOR_AS_PORTLET: inject the language selector as a portlet + in the sidebar, similar to how interlanguage-links are shown. + Works with MonoBook skin, may also work with some SkinTemplate-based skins. +** LANGUAGE_SELECTOR_INTO_SITENOTICE: inject a dropdown box at the end of + the sitenotice text. Ugly without additional CSS rules applied. + Works with MonoBook skin, may also work with some SkinTemplate-based skins. +** LANGUAGE_SELECTOR_INTO_TITLE: inject a dropdown box at the end of + the page title. Ugly without additional CSS rules applied. + Works with MonoBook skin, may also work with some SkinTemplate-based skins. +** LANGUAGE_SELECTOR_INTO_SUBTITLE: inject a dropdown box at the end of + the subtitle. Ugly without additional CSS rules applied. + Works with MonoBook skin, may also work with some SkinTemplate-based skins. +** LANGUAGE_SELECTOR_INTO_CATLINKS: inject a dropdown box at the end of + the category box. Ugly without additional CSS rules applied. + Works with MonoBook skin, may also work with some SkinTemplate-based skins. Index: www/www.reactos.org/wiki/LocalSettings.php =================================================================== --- www/www.reactos.org/wiki/LocalSettings.php (revision 761) +++ www/www.reactos.org/wiki/LocalSettings.php (working copy) @@ -18,7 +18,7 @@ ## Uncomment this to disable output compression # $wgDisableOutputCompression = true; -$wgSitename = "reactos wiki"; +$wgSitename = "ReactOS Wiki"; $wgMetaNamespace = "Reactos_wiki"; ## The URL base path to the directory containing the wiki; @@ -137,3 +137,21 @@ require_once("$IP/../../www.reactos.org_config/wiki-drupal-config.php"); require_once ($IP.'/extensions/AuthDrupal/AuthDrupal.php'); SetupAuthDrupal(); + +#detect browser's language +require_once( "$IP/extensions/LanguageSelector/LanguageSelector.php" ); +$wgLanguageSelectorDetectLanguage = LANGUAGE_SELECTOR_PREFER_CLIENT_LANG; +$wgLanguageSelectorLocation = LANGUAGE_SELECTOR_AS_PORTLET; +$wgLanguageSelectorLanguages=array("en", "de", "ru", "es", "pl", "it", "fr", "nl", "cz", "pt", "zh","fi","ms","hu","no","sv",); + +#use wikipedia's new editor interface +require_once( "$IP/extensions/WikiEditor/WikiEditor.php" ); +$wgDefaultUserOptions['usebetatoolbar'] = 1; +$wgDefaultUserOptions['usebetatoolbar-cgd'] = 1; +$wgDefaultUserOptions['wikieditor-preview'] = 1; +$wgDefaultUserOptions['wikieditor-publish'] = 1; +$wgDefaultUserOptions['usenavigabletoc'] = 1; + +#enable advanced parser functions +require_once( "$IP/extensions/ParserFunctions/ParserFunctions.php" ); +$wgPFEnableStringFunctions = true; \ No newline at end of file Index: www/www.reactos.org/wiki/skins/Vector.php =================================================================== --- www/www.reactos.org/wiki/skins/Vector.php (revision 761) +++ www/www.reactos.org/wiki/skins/Vector.php (working copy) @@ -237,9 +237,7 @@
- - - + renderPortals( $this->data['sidebar'] ); ?>
Index: www/www.reactos.org/wiki/skins/vector/screen.css =================================================================== --- www/www.reactos.org/wiki/skins/vector/screen.css (revision 761) +++ www/www.reactos.org/wiki/skins/vector/screen.css (working copy) @@ -448,7 +448,7 @@ /* Panel */ div#mw-panel { position: absolute; - top: 160px; + top: 50px; padding-top: 1em; width: 10em; left: 0;