ვიკიპედია xmfwiki https://xmf.wikipedia.org/wiki/%E1%83%93%E1%83%A3%E1%83%93%E1%83%AE%E1%83%90%E1%83%A1%E1%83%B7%E1%83%9A%E1%83%90 MediaWiki 1.45.0-wmf.3 first-letter მედია სპეციალური განხილვა მომხმარებელი მომხმარებლის განხილვა ვიკიპედია ვიკიპედია სხუნუა ფაილი ფაილის განხილვა მედიავიკი მედიავიკის განხილვა თარგი თარგის განხილვა დახმარება დახმარების განხილვა კატეგორია კატეგორიის განხილვა TimedText TimedText talk მოდული მოდულის განხილვა ლაზური ნინა 0 502 240058 234090 2025-06-09T04:53:35Z InternetArchiveBot 15194 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 240058 wikitext text/x-wiki {{ინფოდაფა ნინა | ჯოხო = ლაზური ნინა | მუშითჯოხოდვალა = ლაზური ნენა | მუდანობა = 130 000<ref>[http://www.sorosoro.org/en/laz Laz]. {{en}}</ref> | ქიანეფი =[[საქორთუო]], [[თურქეთი]] | კლასიფიკაცია =[[ქართველური ნინეფი]] *[[ქორთ-ზანური ნინეფი]] **[[ზანური ნინეფი]] ***'''ლაზური ნინა''' | ჭარალუა = [[ქორთული ჭარალუა]] [[ლათინური ჭარალუა]] | სტატუსი = | კოდეფი = ISO/FDIS 639-3: lzz | რუკა =Kartvelian_languages.svg | ეჭარუა = | კოდი =lzz }} [[File:Mcita murutsxi.jpg|thumb|მჭითა მურუცხი - მარგ. ჭითა მურიცხი]] '''ლაზური ნინა''' (ლაზ. ლაზური ნენა) — [[უჩა ზუღა|უჩა ზუღაშ]] ობჟათე-ბჟაეიოლ პიჯიშ მანგო მახორუ (თეჟამს თურქეთის [[რიზე|რიზე]]შ დო [[ართვინი|ართვინ]]იშ პროვინციეფი) კინ თე ჯოხოდვალაშ ქართველური ეთნიკური ბუნაშ ([[ლაზეფი|ლაზეფი]]) ოჩიებელი ნინა. ოეგებიეთ თე ნინაშა მეხოლ. 130 000 ადამიერი იჩიებუ [[თურქეთი|თურქეთის]], რეგიონს, ნამუსჷთ კოლოქვიალურო „ლაზისტანს“ უძახჷნა, დო მეხოლაფირო 3 000 [[საქორთუო]]ს. == გეოგრაფიული არეალი == [[კოლხეთიშ ომაფე|კოლხეფიშ]] უჯვეშაში ომაფე იდვალუაფუდუ თი რეგიონს, სოდეთ თეჟამს ლაზურო მაჩიებელი მახორობა ოხორანს, თეშ მანგო თინეფიშ ნინა კოლხეფიშ ართ-ართი გამნარყი ოკო რდას. თეჟამს ლაზურო მაჩიებელეფიშ უმენტაშობა ოორუე-ბჟაეიოლ თურქეთის ოხორანს, [[უჩა ზუღა|უჩა ზუღაშ]] პიჯის: რიზეს დო ართვინიშ პროვინციეფს. ლაზეფიშ დიდი ნორთიქ [[რუსეთ-თურქეთიშ ლჷმა|რუსეთ-თურქეთიშ ლჷმაშ]] (1877-1878) უკული გეგნიხორჷ ოორუე-ბჟადალ [[ანატოლია|ანატოლიაშა]] (კარამიურსელი, საქარია, ბარტინი დო შხვ.) დო თეჟამს თაშნეშე [[სტამბოლი|სტამბოლს]] დო [[ანკარა|ანკარას]]. ლაზეფიშ მორჩილი ნორთი ოხორანს [[საქორთუო|საქორთუოსჷთ]], უმენტაშო [[აჭარა|აჭარას]] (მეხოლაფირო 3 000) == ანბანი == ლაზური ნინა რგებაფულენს [[ქორთული ჭარალუა|ქორთულს]] დო [[ლათინური ჭარალუა|ლათინურ]] ჭარალუეფს. თენეფშე [[თურქეთი|თურქეთის]] რინელი [[ლაზეფი|ლაზეფშო]] უმოს პოპულარული თურქული ლათინურიშ მეჯინათ დორსხუაფილი თ.გ. (თაშნე გედვალირი) „ლაზური ანბანიე“. [[File:Okitxuseni Supara.jpg|thumb|Okitxuseni Supara - ოკითხუში სუფარა]] {| class="wikitable" |- style="background: #efefef;" ! [[ქორთული ჭარალუა|ქორთული]] ! [[ლათინური ჭარალუა|ლათინური]] | rowspan="18" style="background: white; border-top: none; border-bottom: none; width: 4em;" | &nbsp; ! [[ქორთული ჭარალუა|ქორთული]] ! [[ლათინური ჭარალუა|ლათინური]] |---- <!-- row break here --> | [[ა]] | [[A]] <!-- gap here --> | [[მ]] | [[M]] |---- <!-- row break here --> | [[ბ]] | [[B]] <!-- gap here --> | [[ნ]] | [[N]] |---- <!-- row break here --> | [[ჯ]] | [[C]] <!-- gap here --> | [[ო]] | [[O]] |---- <!-- row break here --> | [[ჩ]] | [[Ç]] <!-- gap here --> | [[ფ]] | [[P]] |---- <!-- row break here --> | [[ჭ]] | [[Ç̌]] <!-- gap here --> | [[პ]] | [[P̌]] |---- <!-- row break here --> | [[დ]] | [[D]] <!-- gap here --> | [[რ]] | [[R]] |---- <!-- row break here --> | [[ე]] | [[E]] <!-- gap here --> | [[ს]] | [[S]] |---- <!-- row break here --> | [[ჶ]] | [[F]] <!-- gap here --> | [[შ]] | [[Ş]] |---- <!-- row break here --> | [[გ]] | [[G]] <!-- gap here --> | [[თ]] | [[T]] |---- <!-- row break here --> | [[ღ]] | [[Ğ]] <!-- gap here --> | [[ტ]] | [[T‌̌]] |---- <!-- row break here --> | [[ჰ]] | [[H]] <!-- gap here --> | [[უ]] | [[U]] |---- <!-- row break here --> | [[ი]] | [[İ]] <!-- gap here --> | [[ვ]] | [[V]] |---- <!-- row break here --> | [[ჟ]] | [[J]] <!-- gap here --> | [[ჲ]] | [[Y]] |---- <!-- row break here --> | [[ქ]] | [[K]] <!-- gap here --> | [[ზ]] | [[Z]] |---- <!-- row break here --> | [[კ]] | [[Ǩ]] <!-- gap here --> | [[ძ]] | [[Ž]] |---- <!-- row break here --> | [[ყ]] | [[Q]] <!-- gap here --> | [[ც]] | Ʒ |---- <!-- row break here --> | [[ლ]] | [[L]] <!-- gap here --> | [[წ]] | Ǯ |} == ლექსიკა == * გომორძგუა - გეჯგინობა, გომორმჟორა * ჯგირო ორდა - ჩქვა კაითე (კაობათე/კაინობათე) * მა/სი/თინა - მა/სი/ეჲა * იახა, ჰო - ჰო * ვარი - ვარი '''რიცხვეფი''' {| class="prettytable" |- | 1 || არ |- | 2 || ჟურ |- | 3 || სუმ |- | 4 || ოთხო |- | 5 || ხუთ |- | 6 || ანში |- | 7 || შქვით |- | 8 || ოვრო |- | 9 || ჩხორო |- | 10 || ვით |- |} == იხილეთ აგრეთვე == {{ქძთაშნეშე|მარგალური ნინა|შონური ნინა|ქორთული ნინა|კავკაციური ნინეფი}} ==სქოლიო== {{სქოლიო}} == რესურსეფი ინტერნეტის == * [http://www.uni-koeln.de/phil-fak/ifl/asw/forschung/projekte/Lasisch/benningwd.pdf ლაზური ნენა - სილვია კუჩნერიშ პროექტი.] * http://www.kolkhoba.org * http://www.lazuri.com * http://www.lazebura.net * http://www.lazepe.com {{Webarchive|url=https://web.archive.org/web/20110616045257/http://www.lazepe.com/ |date=2011-06-16 }} * http://www.mjora.com * http://www.paponi.com {{Webarchive|url=https://web.archive.org/web/20210615085119/http://paponi.com/ |date=2021-06-15 }} * http://www.sarpuli.tr.tc {{Webarchive|url=https://web.archive.org/web/20201202123700/http://www.sarpuli.tr.tc/ |date=2020-12-02 }} * http://www.karalahana.com {{Webarchive|url=https://web.archive.org/web/20001018191856/http://www.karalahana.com/ |date=2000-10-18 }} * http://lazuri.no.sapo.pt/ {{Webarchive|url=https://web.archive.org/web/20080315011038/http://lazuri.no.sapo.pt/ |date=2008-03-15 }} * http://lazepesi.dosti.free.fr {{ქართველური ნინეფი}} [[კატეგორია:ქართველური ნინეფი]] [[კატეგორია:საქორთუოშ ნინეფი]] [[კატეგორია:თურქეთიშ ნინეფი]] fwvin0kxnmhueyc46h4asify4s5ei5d იუნესკოშ მოსოფელიშ მონძალაშ ობიექტეფი ირანს 0 3802 240040 109440 2025-06-08T17:56:04Z Ziv 20878 → File has been renamed on Commons ([[:c:GR]]) 240040 wikitext text/x-wiki [[2011]] წანაშ მუნაჩემეფით [[ირანი|ირანს]] 16 '''[[მოსოფელიშ მონძალა|იუნესკოშ მოსოფელიშ მონძალაშ ობიექტი რე]]'''. == სტატისტიკა== [[იუნესკო]]შ მოსოფელიშ მონძალაშ ობიექტეფიშ ერკებულშა მოსოფელიშ მასშტაბით 981 ობიექტი რე მიშაღალირი, თენეფშე 1,6 % ირანიშ ობიექტეფი რე. == ერკებული == ერკებულშა მიშაღალირი რე ობიექტეფი, იუნესკოშე მოსოფელიშ კულტურული მონძალაშ ერკებულშა მუნეფიშ გეძინაშ მეჯინათ. {| class="wikitable" style="text-align: center" |- bgcolor="#cccccc" ! width=3%|# ! width=15%|სურათი ! width=37%|ჯოხოდვალა ! width=19%|აბანდვალა ! width=9%|გოჭყაფაშ თარიღი ! width=5%|ერკებულშა მიშაღალაშ წანა ! width=6%|№ ! width=6%|[[მოსოფელიშ მონძალა#კრიტერიუმეფი|კრიტერიუმი]] |- | '''1''' | [[ფაილი:Choghazanbil2.jpg|150px]] | [[ჩოგხა-ზანბილი]]<br /> | [[ხუზესტანი (ოსტანი)|ხუზესტანი]] | დოხოლ. ჯვ. წ. 1250 წ. | [[1979]] | [http://whc.unesco.org/en/list/113 113] | iii, iv |- | '''2''' | [[ფაილი:Persepolis001.jpg|150px]] | [[პერსეპოლისი]] | [[ფარსი (ოსტანი)|ფარსი]] | ჯვ. წ.518 წ. | [[1979]] | [http://whc.unesco.org/en/list/114 114] | i, iii, vi |- | '''3''' | [[ფაილი:Naghshe Jahan Square Isfahan modified.jpg|150px]] | [[იმამიშ მოედანი]] <br /> | [[ისპაანი]] | [[XVI ოშწანურა|XVI]]—[[XVII ოშწანურა|XVII]] სს. | [[1979]] | [http://whc.unesco.org/en/list/115 115] | i, v, vi |- | '''4''' | [[ფაილი:Takht-e-soleiman-1.jpg|150px]] | [[ტახტ-ი სულეიმანი]] <br /> | [[ბჟადალი აზერბაიჯანი (ოსტანი)|ბჟადალი აზერბაიჯანი]] | | [[2003]] | [http://whc.unesco.org/en/list/1077 1077] | i, ii, iii, iv, vi |- | '''5''' | [[ფაილი:Cyrus tomb.jpg|150px]] | [[ფასარგადი]] <br /> | [[ფარსი (ოსტანი)|ფარსი]] | ჯვ. წ. 546 წ. | [[2004]] | [http://whc.unesco.org/en/list/1106 1106] | i, ii, iii, iv |- | '''6''' | [[ფაილი:BAM IR2726.JPG|150px]] | [[ბამი (ნოღა)| ბამი დო მუში კულტურული ლანდშაფტი]] <br /> | [[ქერმანი (ოსტანი)|ქერმანი]] | | [[2004]] | [http://whc.unesco.org/en/list/1208 1208] | ii, iii, iv, v |- | '''7''' | [[ფაილი:Soltaniyeh exterior.jpg|120px]] | [[სულთანიე]] <br /> | [[ზენჯანი (ოსტანი)|ზენჯანი]] | [[1305]]—[[1313]] | [[2005]] | [http://whc.unesco.org/en/list/1188 1188] | ii, iii, iv |- | '''8''' | [[ფაილი:Darius I the Great's inscription.jpg|150px]] | [[ბეხისტუნიშ მიკნაჭარეფი]] | [[ქირმანშაჰი (ოსტანი)|ქირმანშაჰი]] | ჯვ. წ. VI ო. | [[2006]] | [http://whc.unesco.org/en/list/1222 1222] | ii, iii |- | '''9''' | | სომეხური მონასტერეფი ირანს | | | [[2008]] | [http://whc.unesco.org/en/list/1262 1262] | ii, iii, vi |- | '''9.1''' | [[ფაილი:Saint Thaddeus Monastery, Iran, northwestern view.jpg|150px]] | [[წიმინდე თადეოზიშ მონასტერი]] | [[ბჟადალ აზერბაიჯანი (ოსტანი)|ბჟადალ აზერბაიჯანი]] | | | | |- | '''9.2''' | [[ფაილი:St-Stepanous-02.jpg|150px]] | [[წიმინდე სტეფანეშ მონასტერი]] | [[ბჟაეიოლი აზერბაიჯანი (ოსტანი)|ბჟაეიოლი აზერბაიჯანი]] | | | | |- | '''9.3''' | [[ფაილი:Dzor Dzor church.jpg|150px]] | [[ძორძორი]] | [[ბჟადალი აზერბაიჯანი (ოსტანი)|ბჟადალი აზერბაიჯანი]] | | | | |- | '''10''' | [[ფაილი:Sushtar Bridge.jpg|150px]] | ირიგაციაშ ისტორიული სისტემა [[შუშტარი|შუშტარს]] | [[ხუზესტანი (ოსტანი)|ხუზესტანი]] | | [[2009]] | [http://whc.unesco.org/en/list/1315 1315] | i, ii, v |- | '''11''' | [[ფაილი:Sheykh safi01.jpg|150px]] | [[არდაბილი]]შ ისტორიული მონუმენტეფი | [[არდაბილი (ოსტანი)|არდაბილი]] | [[XVI ოშწანურა]] | [[2010]] | [http://whc.unesco.org/en/list/1345 1345] | i, ii, iv |- | '''12''' | [[ფაილი:Carpet Bazaar of Tabriz.JPG|150px]] | [[თავრიზი]]შ [[თავრიზიშ ბაზარი|ისტორიული ბაზარი]] | [[ბჟაეიოლი აზერბაიჯანი (ოსტანი)|ბჟაეიოლი აზერბაიჯანი]] | [[XIII ოშწანურა]] | [[2010]] | [http://whc.unesco.org/en/list/1346 1346] | ii, iii, iv |- | '''13''' | [[ფაილი:Shazdeh Garden Mahan Iran.jpg|150პქ]] | [[სპარსული ბაღეფი]] | [[ირანი]] | [[XVI ოშწანურა]] | [[2011]] | [http://whc.unesco.org/en/list/1372 1372] | i, ii, iii, iv, vi |} == რესურსეფი ინტერნეტის == {{Commonscat|World Heritage Sites in Iran}} * [http://whc.unesco.org/en/statesparties/ir იუნესკოშ მოსოფელიშ მონძალაშ ობიექტეფი ირანს] [[კატეგორია:მოსოფელიშ მონძალაშ ობიექტეფი ირანს]] [[კატეგორია:იუნესკოშ მოსოფელიშ მონძალა]] pvjn9564qs29ju09hxud2bu83lpkbx7 ართვინიშ პროვინცია 0 3972 240047 218927 2025-06-09T00:27:12Z InternetArchiveBot 15194 Rescuing 2 sources and tagging 0 as dead.) #IABot (v2.0.9.5 240047 wikitext text/x-wiki {|border="1" cellpadding="2" cellspacing="1" align="right" style="margin: 2px 2px 2px 1em;" |----- ! colspan="2" bgcolor=#FF0000 |[[ფაილი:Flag of Turkey.svg|25px|left]] <font size="+0" color=white>ართვინი</font> |----- ! colspan="2" bgcolor=#FBBBB9| <font size="+0" color=black>ართვინიშ პროვინციაშ <br />ორენი [[თურქეთი|თურქეთის]]</font> |----- | colspan="2" align="center" | [[ფაილი:Artvin districts.png|300px]]<br /> |----- ! colspan="2" bgcolor=#FBBBB9 | ინფორმაცია |----- |[[თურქეთიშ რეგიონეფი|რეგიონი]]|| [[უჩა ზუღაშ რეგიონი]] |----- | [[ფართობი]]: || 7 493 (კმ²) |----- | [[მახორობა]]: || 191,934 (2007) |----- | [[მახორობაშ მეჭედალა]]: || 25,6 (ად/კმ²) |----- | ოავტომობილე ნომერეფი: || 08 |----- | ოტელეფონე კოდი|| 0466 |----- | ოფიციალური <br />ვებ-ხასჷლა ||[http://www.artvin.gov.tr/ ოფიციალური საიტი] |----- | ტაროსიშ პროგნოზი || [http://www.turkeyforecast.com/ თურქეთიშ<br /> პროგნოზეფიშ საიტი] |----- |} '''ართვინი''' – პროვინცია (ილი) ოორუე–ბჟაეიოლ [[თურქეთი|თურქეთის]], [[უჩა ზუღაშ რეგიონი|უჩა ზუღაშ რეგიონს]]. ადმინისტრაციული ცენტრი – [[ნოღა]] [[ართვინი (ნოღა)|ართვინი]]. ფორუნს 8 რაიონს. == გეოგრაფია == პროვინციას ოორუეშე უხურგანს [[საქორთუო]] ([[აჭარა]]), ბჟაეიოლშე [[არტაანი (პროვინცია)|არტაანიშ]], ობჟათეშე – [[ერზრუმი (პროვინცია)|ერზრუმიშ]] დო ბჟადალუშე [[რიზე (პროვინცია)|რიზეშ]] პროვინციეფი, უღუ 35 კილომეტრამი ოზუღე ონძღო [[უჩა ზუღა|უჩა ზუღას]] (ონიშოლი [[ხოფა]]). პროვინციაშ დიდი ნორთი იდვალუაფჷ [[წყარმალუ]] [[ჭოროხი]]შ [[წყარმალუშ გოჸორი|გოჸორს]]. == მახორობა == მახორობა 191,934 ადამიერი ([[2007]]), უდიდაში ნოღეფი რე: [[ართვინი (ნოღა)|ართვინი]] (23 ვითოში ადამიერი, 2000), [[ხოფა]]. თურქეფიშ გალე ოხორანა [[ლაზეფი]] დო [[აჭარალეფი]] (ქორთუ მუსულმანეფი), თაშნეშე [[ჰემშინეფი]] (სომეხი მუსულმანეფი). == ისტორია == პროვინციაშ ტერიტორია წანეფიშ განწხანს გინმიშჷ ხეშე ხეშა. ორხველუდჷ [[საქორთუო]]ს, [[ოსმალეთიშ იმპერია]]ს, [[რუსეთი|რუსეთის]] (1828 წანაშე; პროვინციაშ ტერიტორიას დირცხუ [[ქუთეში|ქუთეშიშ]] გუბერნიაშ, ბათუმიშ ოლქიშ ართვინიშ ოკრუგიქ). [[1921]] წანას [[ყარსიშ აპიჯაფა 1921|ყარსიშ აპიჯაფაშ]] უკული [[არტაანი (პროვინცია)|არტაანიშ]], [[ყარსი (პროვინცია)|ყარსიშ]] დო [[იგდირი (პროვინცია)|იგდირიშ]] პროვინციეფწკჷმა ართო გეგნაჩჷ თურქეთის. == ქოძირით თაშნეშე == * [[თურქეთიშ პროვინციეფი]] == რესურსეფი ინტერნეტის == * {{tr icon}} [http://www.artvin.gov.tr/ the provincial governorate] * {{en icon}} [http://www.turkeyforecast.com/weather/artvin/ Artvin Weather Forecast Information] * {{en icon}}[http://www.karalahana.com/karadeniz/sehir_rehberi/coruh_river_valley.html Çoruh River Valley and future of artvin city] {{Webarchive|url=https://web.archive.org/web/20080412094344/http://www.karalahana.com/karadeniz/sehir_rehberi/coruh_river_valley.html |date=2008-04-12 }} * {{en icon}} [http://www.armeniapedia.org/index.php?title=Artvin Armenian History and Presence in Artvin] * თურქული [http://www.artvinansiklopedisi.com/index.php/Ana_Sayfa Artvin has a Wikipedia all of its own] {{Webarchive|url=https://web.archive.org/web/20070407055757/http://www.artvinansiklopedisi.com/index.php/Ana_Sayfa |date=2007-04-07 }} including... * [http://www.artvinansiklopedisi.com/index.php/Resim_Galerileri photos of Artvin] {{Webarchive|url=https://web.archive.org/web/20070425062000/http://www.artvinansiklopedisi.com/index.php/Resim_Galerileri |date=2007-04-25 }} * [http://www.karalahana.com/fotograflar/thumbnails.php?album=12 HQ pictures of Artvin] {{Webarchive|url=https://web.archive.org/web/20111022132911/http://www.karalahana.com/fotograflar/thumbnails.php?album=12 |date=2011-10-22 }} * [http://www.artvinliyiz.com/index.php?option=com_ponygallery&Itemid=146 more photos] * [http://harita.wwf.org.tr/tr/alan.asp?alang=en&atype=1&aid=60 World Wildlife Fund report on the area] {{Webarchive|url=https://web.archive.org/web/20070317222702/http://harita.wwf.org.tr/tr/alan.asp?alang=en&atype=1&aid=60 |date=2007-03-17 }} * თურქული [http://artvin.biz/ photos and villages of Artvin] {{Webarchive|url=https://web.archive.org/web/20110706000014/http://artvin.biz/ |date=2011-07-06 }} {{მერკე}} {{თურქეთიშ პროვინციეფი}} [[კატეგორია:თურქეთიშ პროვინციეფი]] e1iczze2qzzuq1r69i9589n0k8wewym ბჟაეიოლი ევროპა 0 7715 240052 213917 2025-06-09T01:41:29Z InternetArchiveBot 15194 Rescuing 0 sources and tagging 1 as dead.) #IABot (v2.0.9.5 240052 wikitext text/x-wiki [[ფაილი:Location-Europe-UNsubregions, Kosovo as part of Serbia.png|მარჯვნივ|მინი|300პქ||<center>'''ევროპაშ რეგიონეფი'''</center> {{legend|#4080FF|[[ოორუე ევროპა]]}} {{legend|#00FFFF|[[ბჟადალ ევროპა]]}} {{legend|#FF8080|ბჟაეიოლ ევროპა}} {{legend|#00FF00|[[ობჟათე ევროპა]]}}]] '''ბჟაეიოლ ევროპა''' — [[ევროპა|ევროპაშ]] ართ-ართი გეოგრაფიული რეგიონი. ბჟადალ ევროპაშ მანგურო, ტერმინი ბჟაეიოლ ევროპა შხვადოშხვა კონტექსტის შხვადოშხვა აზჷრით გჷმირინუაფუ. რჩქვანელობურო, თე ტერმინს იგურხონარებუ [[ზსწ]]-შ ევროპული ქიანეფი: [[რუსეთი]], [[ბელარუსი]], [[უკრაინა]], [[მოლდოვა]], [[ყაზახეთი]]. არძოშე შხირას თინეფიშ რიცხუს ურხველუანა ობჟათე კავკაციაშ ქიანეფც - [[საქორთუო|საქორთუოს]], [[სომხეთი|სომხეთის]] დო [[აზერბაიჯანი|აზერბაიჯანს]], მორო თინეფი გეოგრაფიულო აზიას იდვალუაფუნა{{ფაქტი}}. [[რგილი ლჷმა|რგილი ლჷმაშ]] ფარანს, ბჟაეიოლ ევროპაშა მიშმეშეს [[ვარშავაშ პაქტი|ვარშავაშ პაქტიშ]] ქიანეფი ([[პოლონეთი]], [[გდრ]], [[ჩეხოსლოვაკია]], [[უნგრეთი]], [[რუმინეთი]], [[ბულგარეთი]]), შხირ შვანს [[ალბანეთი]] დო [[იუგოსლავია]], თაშნეშე ბალტიაშ სხუნუეფიშ რესპუბლიკეფი ([[ესტონეთი]], [[ლატვია]], [[ლიეტუვა]]. თეჟამო, შხვადოშხვა პოლიტიკურ დო ეკონომიკურ კონტექსტის თე რეგიონს შილებე მეურხველუან თ.გ. „ვიშეგრადიშ ბუნაშ“ ([[პოლონეთი]], [[ჩეხეთი]], [[სლოვაკეთი]], [[უნგრეთი]]) დო ბალკანეთიშ ჩქონიშ სახენწჷფოეფი (საბერძნეთიშ მოხ). == ევროპაშ შხვა რეგიონფი == * [[ბჟადალი ევროპა]] * [[ობჟათე ევროპა]] * [[ოორუე ევროპა]] * [[ცენტრალური ევროპა]] == რესურსეფი ინტერნეტის == * [http://unstats.un.org/unsd/methods/m49/m49regin.htm#europe ევროპაშ სუბ-რეგიონეფი გოეროშ ალებათ] * [http://www.socialeast.org SocialEast Forum on the Art and Visual Culture of Eastern Europe]{{Dead link|date=June 2025 |bot=InternetArchiveBot |fix-attempted=yes }} * [http://www.ecotourism.org.pk Tourism Networking of Eastern Europe] {{Webarchive|url=https://web.archive.org/web/20120502073735/http://ecotourism.org.pk/ |date=2012-05-02 }} * [http://easterneuropeeconomy.blogspot.com/ Eastern Europe Economy Watch] [[კატეგორია:ევროპაშ რეგიონეფი]] brbr93e5cw18zus1ei7zovktamejifg კარნატაკა 0 17363 240056 207422 2025-06-09T04:19:32Z InternetArchiveBot 15194 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 240056 wikitext text/x-wiki {{ინფოდაფა ადმინისტრაციული ართური |ოდაბადური ჯოხო = {{lang-kn|ಕರ್ನಾಟಕ}}<br />{{lang-en|Karnataka}} |მარგალური ჯოხო = კარნატაკა |პანორამა = |შილა = Flag of the Kannada people.svg |გერბი = Seal of Karnataka.svg |ქიანა = ინდოეთი |ჰიმნი = |სტატუსი =[[ინდოეთიშ ადმინისტრაციული დორთუალა|შტატი]] |მიშმურს = |ფორჷნს = |ნანანოღა= [[ბანგალორი]] |შხუ ნოღა = ბანგალორი |შხუ ნოღეფი= [[ხუბლი]], [[მაისური]], [[მანგალორი]], [[ბელარი]] |თარიღი = |მადუდე ='''გუბერნატორი''':<br />ვაჯუბჰაი რუდაბჰაი ვალა<br />'''თარი მინისტრი''':<br />სიდარამაიაჰი |მადუდე 2 = |ედპ = |ედპ წანა= |ედპ აბანი = |ედპ აშმ = |ნინა =[[კანადა (ნინა)|კანადა]] |ნინეფი = |მახორობა =61 130 704 |ეჭარუაშ წანა =2011 |აბანი მახორობათ =9-ა |ერუანული აკოდგინალუა =თარი ეთნიკური ბუნა — [[კანარა]] |მეჭედალა =318,74 |კონფესია = |ფართობი =191 791 |აბანი ფართობით =8-ა |ფართობიშ პროცენტი = |მაქსიმალური სიმაღალა = |ოშქაშე სიმაღალა = |მინიმალური სიმაღალა = |განედი = |გრძედი = |რუკა= Karnataka in India (disputed hatched).svg |ბორჯიშ ორტყაფუ= |აბრევიატურა = |ISO = IN-KA |FIPS= |ოტელეფონე კოდი = |ოფოსტე ინდექსეფი = |ინტერნეტ-დომენი = |ოავტომობილე ონომერე შანეფი = |საიტი =http://www.karnataka.gov.in/ |კატეგორია ვიკიოწკარუეს =Karnataka |პარამეტრი1 = |მიკოღანკუა = }} '''კარნატაკა''' ({{lang-kn|ಕರ್ನಾಟಕ}}; {{lang-en|Karnataka}}) — შტატი [[ინდოეთი]]შ ობჟათე-ბჟადალშე. შტატიშ ნანანოღა დო უდიდაში ნოღა — [[ბანგალორი]]. მახორობა 61 130 704 ადამიერი (9-ა აბანი შტატეფს შქას; [[2011]]] წ.). == გეოგრაფია == [[ფაილი:Karnataka topo deu.png|190px|left|thumb|რეგიონიშ რუკა]] [[ფაილი:Chamundi Hills Mysore.jpg|190px|left|thumb|ჩამუინდიშ ქჷნდჷრეფი ნოღა მაისურიშ გოხოლუას]] შტატიშ ტერიტორიაშ ფართობი 191 791 км² (8-ა აბანი, ქიანაშ ფართობიშ 5,83 %). კარნატაკა იდვალუაფუ ინდოეთიშ ობჟათე-ბჟადალ ნორთის, ოორუე განედიშ 11°30' დო 18°30' შქას. უხურგანს [[მაჰარაშტრა]]შ დო [[გოა]]შ შტატეფი (ოორუეშე დო ოორუე-ბჟადალშე), [[ტელანგანა]]შ შტატი (ოორუე-ბჟაეიოლშე), [[კერელა]]შ დო [[ტამილნადუ]]შ შტატეფი (ობჟათეშე), [[ანდჰრა-პრადეში]]შ შტატი (ბჟაეიოლშე), ბჟადალშე ომძღჷ [[არაბეთიშ ზუღა]]. შტატი [[დეკანიშ გაბარი]]შ რაიონს იდვალუაფუ, თი აკანს, სოდეთ [[ბჟადალი გჰატი|ბჟადალი]] დო [[ბჟაეიოლი გჰატი|ბჟაეიოლი გჰატეფი]] ეკმისვარუნა გვალამი რეგიონი ნილგირის. კარნატაკაშ უმაღალაში კონკა — გვალა მულაიანაგირი, ნამუშ სიმაღალა ზუღაშ დონეშე 1929 მეტრა რე დო იდვალუაფუ კარნატაკაშ შტატიშ ჩიკამაგალურუშ ოლქის. == რესურსეფი ინტერნეტის == * [http://www.hoysalatourism.com Hoysala Tourism in Hassan] {{Webarchive|url=https://web.archive.org/web/20180308195639/http://www.hoysalatourism.com/ |date=2018-03-08 }} * [http://www.chooseindia.com/tourism/mkarnataka.html A map of Karnataka] * [http://kstdc.nic.in/ Karnataka State Tourism Development Corporation] {{Webarchive|url=https://web.archive.org/web/20061205021834/http://kstdc.nic.in/ |date=2006-12-05 }} * [http://www.karnatakatourism.org/ Karnataka Tourism] {{Webarchive|url=https://web.archive.org/web/20080724155654/http://karnatakatourism.org/ |date=2008-07-24 }} * [http://www.karnataka.gov.in/ Karnataka State Government] * [http://www.karnatakainformation.org/ Karnataka Government Information Department] * [http://www.kamat.com/kalranga/kar/ Topics on Karnataka’s History and Culture] {{ესკიზი-ინდოეთი}} {{ინდოეთიშ შტატეფი დო ტერიტორიეფი}} [[კატეგორია:კარნატაკა|*]] b8cx9m39agxs878fuk2zg3gaujiuh50 ვააღიარაფილი ქიანეფიშ ერკებული 0 18178 240055 233550 2025-06-09T03:10:39Z InternetArchiveBot 15194 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 240055 wikitext text/x-wiki [[ფაილი:Limited recognition.png|მინი|400პქ| {{legend|#FF0000|აკა ქიანას ვააფუ აღიარაფილი}} {{legend|#FF8484|ხვალე გოეროშ ვამაკათური ქიანას აფუ აღიარაფილი}} {{legend|#FF8040|გაეროშ ვამაკათური, აღიარაფილი რე მინიმუმ ართი ქიანაშე}} {{legend|#808040|გაეროს მაკათური, ვაღიარაფილი მინიმუმ ართი მაკათური ქიანაშე}}]] მოსოფელს, მუსხირენ გეოპოლიტიკურ ართაულს ვა უღჷ ერეფოშქაშე აღიარაფა, მარა თინეფი [[დე ფაქტო]] ზოხორინელი მართუალაშ ართაულეფი ვარდა სახენწჷფოეფი რენა. თინეფიშ უმენტაშობა რე სუბნაციონალური რეგიონი მუში ეთნო-ნაციონალური მუშჸოფათ, ნამუთ გეგშერთეს (გეგმიქიმინეს) მუნეფიშ ჯინჯიერ/ოდაბადე ქიანას დო თეშ გეშა თინეფშა სეპარატისტულ სახენწჷფოეფი უჯოხონა. == ნორთობურო აღიარაფილი სახენწჷფოეფი დე ფაქტო კონტროლით მუშ ტერიტორიას == [[გოერო|გოეროს]] მაკათური ქიანეფი, ნამუთ ნორთობურო რე აღიარაფილი გოეროშ შხვა მაკათური ქიანაშე თაქ მოჸონაფილი ვარე (სამანგ. 39 ქიანა ვააღიარენს [[ისრაელი|ისრაელს]] მუჭოთ სახენწჷფოს). * '''{{flag|აფხაზეთი}}''' დო '''{{flag|ობჟათე ოსეთი}}''' ნორთობურო აღიარაფილი რესპუბლიკეფი რე (აღიარაფილი რე [[გოერო]]შ [[ოერეფოშქაშე რეაქცია აფხაზეთიშ დო ობჟათე ოსეთიშ ზოხორინალაშე|ხუთი მაკათურიშე]] : [[რუსეთი]], [[ნიკარაგუა]], [[ვენესუელა]], [[ნაურუ]] დო [[სირია]]). [[საქორთუოშ კონსტიტუცია]]შ მეჯინათ, აფხაზეთი რე ავტონომიური რესპუბლიკა, ობჟათე ოსეთი - ობორჯე ადმინისტრაციული ერთული. ფაქტობურო ვეკონტროლებუაფუ [[საქორთუო]]შ თარობაშე.<ref name="NKRrecognition">{{ru icon}} [http://ararat-online.ru/news/984-2025-vice-spiker-parlamenta-abxazii-vybory-v-nkr-sootvetstvuyut-vsem-mezhdunarodnym-standartam.html Вице-спикер парламента Абхазии: Выборы в НКР соответствуют всем международным стандартам] {{Webarchive|url=https://web.archive.org/web/20110811164310/http://ararat-online.ru/news/984-2025-vice-spiker-parlamenta-abxazii-vybory-v-nkr-sootvetstvuyut-vsem-mezhdunarodnym-standartam.html |date=2011-08-11 }}: "Абхазия, Южная Осетия, НКР и Приднестровье уже давно признали независимость друг друга и очень тесно сотрудничают между собой", - сказал вице-спикер парламента Абхазии. ... "...Абхазия признала независимость Нагорно-Карабахской Республики..." - сказал он." [http://www.microsofttranslator.com/bv.aspx?from=&to=en&a=http%3A%2F%2Fararat-online.ru%2Fnews%2F984-2025-vice-spiker-parlamenta-abxazii-vybory-v-nkr-sootvetstvuyut-vsem-mezhdunarodnym-standartam.html English language translation] {{Webarchive|url=http://web.archive.bibalex.org/web/20111208153727/http://www.microsofttranslator.com/bv.aspx?from=&to=en&a=http://ararat-online.ru/news/984-2025-vice-spiker-parlamenta-abxazii-vybory-v-nkr-sootvetstvuyut-vsem-mezhdunarodnym-standartam.html |date=2011-12-08 }} from Microsoft Translator</ref><ref name="tiraspoltimes.com">[http://www.tiraspoltimes.com/news/south_ossetia_opens_embassy_in_abkhazia.html "South Ossetia opens embassy in Abkhazia" ''The Tiraspol Times''] {{Webarchive|url=https://web.archive.org/web/20080422030914/http://www.tiraspoltimes.com/news/south_ossetia_opens_embassy_in_abkhazia.html |date=2008-04-22 }}</ref><ref>{{Cite web|author=Government of Tuvalu|title=On the establishment of diplomatic relations between Republic of Abkhazia and Tuvalu|url=http://www.mfaabkhazia.net/en/node/1082|date=20 September 2011|publisher=Ministry of Foreign Affairs|accessdate=2011-09-24}}</ref><ref>{{Cite web|author=Government of Vanuatu|title=Vanuatu’s recognition to the Republic of Abkhazia|url=http://www.governmentofvanuatu.gov.vu/index.php?option=com_content&view=article&id=95&Itemid=65|date=17 June 2011|accessdate=2011-09-24}}</ref><ref>Vanuatu's initial recognition was invalidated after the Sato Kilman government was annulled by the Supreme Court. Kilman was subsequently re-elected and its recognition was re-confirmed by its Foreign Minister in July 2011: [http://www.dailypost.vu/content/natapei-withdraws-recognition-abkhazia Natapei withdraws recognition of Abkhazia, Vanuatu Daily Post, June 19, 2011] {{Webarchive|url=https://web.archive.org/web/20130927214430/http://www.dailypost.vu/content/natapei-withdraws-recognition-abkhazia |date=September 27, 2013 }}</ref><ref>[http://www.solomonstarnews.com/news/regional/11030-vanuatu-official-denies-abkhazia-recognition Vanuatu official denies Abkhazia recognition, Solomon Star newspaper, 06 JUNE 2011] {{Webarchive|url=https://web.archive.org/web/20110611021201/http://www.solomonstarnews.com/news/regional/11030-vanuatu-official-denies-abkhazia-recognition |date=11 June 2011 }}</ref><ref>[http://transparency.ge/en/post/general-announcement/transparency-international-vanuatu-press-release-recognition-abkhazia Transparency International Vanuatu press release on recognition of Abkhazia, 08 August 2011]</ref><ref name="RNZI_61283">{{cite news |url=http://www.rnzi.com/pages/news.php?op=read&id=61283 |title=Vanuatu annuls recognition of Abkhazia - report |date=19 June 2011 |work=Radio New Zealand International |accessdate=15 October 2011}}</ref> * '''კოსოვო''' ნორთობურო აღირაფილი სახენწჷფო ჸოფილი [[იუგოსლავია|იუგოსლავიაშ]] ტერიტორიას. [[სერბეთი]]შ კონსტიტუცაშ მეჯინათ [[სერბეთი]]შ რესპუბლიკაშ ნორთი რე. კოსოვოშ ზოხორინალა [[ოერეფოშქაშე რეაქცია კოსოვოშ ზოხორინალაშე|აღიარჷ]] [[გოერო]]შ 62 მაკათური ქიანაქ.<ref>{{cite news|accessdate=2008-02-28|url=http://news.bbc.co.uk/1/hi/world/europe/7249034.stm|date=2008-02-17|title=Kosovo MPs proclaim independence|publisher=BBC News }}</ref><ref>{{cite web|url=http://www.unmikonline.org/press/reports/N9917289.pdf |title=Kosovo |format=PDF |date= |accessdate=2010-06-25}}</ref> * '''{{შილა|პალესტინა}}''', [[პალესტინაშ გოდუდიშულაფაშ ორგანიზაცია]]ქ პალესტინაშ სახენწჷფოშ ზოხორინალა [[1988]] წანაშ 15 გერგობათუთას, [[ალჟირი|ალჟირს]] [[პალესტინაშ ერუანული სხუნუ|ერუანული სხუნუშ]] აკოხუნას გჷმაცხადჷ. ორგანიზაცია ოკათჷ გოეროშ აკოხუნეფს დჷმაკვირაფალიშ სტატუსით დო მიშინუაფუ მუჭოთ ''პალესტინა''.<ref>{{Cite web|url=http://www.thejerusalemfund.org/www.thejerusalemfund.org/carryover/documents/resolution3237.html |title=UN General Assembly Resolution 3237|publisher=Thejerusalemfund.org |date= |accessdate=2010-12-05}}</ref><ref>[http://www.un.org/en/members/nonmembers.shtml UN observers: Non-member States and Entities]</ref><ref>[https://web.archive.org/web/20060404211437/http://www.pna.gov.ps/Government/gov/recognition_of_the_State_of_Palestine.asp Official website of the Palestinian National Authority].</ref><ref>[http://www.venezuelanalysis.com/news/4962 Venezuela Pledges Support for Palestinian Statehood during Abbas Visit], November 2009.</ref><ref>[http://www.turkishweekly.net/news/52867/costa-rica-recognizes-palestine-.html "Costa Rica Recognizes 'Palestine'"] {{Webarchive|url=https://web.archive.org/web/20120919161419/http://www.turkishweekly.net/news/52867/costa-rica-recognizes-palestine-.html |date=2012-09-19 }}, ''The Journal of Turkish Weekly'' 26 February 2008 Retrieved 2011-02-07</ref><ref>{{cite web|url=http://www.sarep.org/ |title=South African Representative Office to the Palestinian National Authority |publisher=Sarep.org |date= |accessdate=2010-06-25}}</ref><ref>{{cite web|url=http://palestineuzbek.com/english.php?action=4 |title=Embassy of the State of Palestine to the Republic of Uzbekistan, Central Asia and Azerbaijan |publisher=Palestineuzbek.com |date= |accessdate=2010-06-25}}</ref><ref>{{cite web|url=http://www.webgaza.net/resources/Embassies_of_Palestine.htm |title=Embassies of Palestine |publisher=Webgaza.net |date= |accessdate=2010-06-25}}</ref><ref>{{cite web|url=http://www.palestine.sk/about.html |title=Embassy of the State of Palestine in Bratislava |publisher=Palestine.sk |date= |accessdate=2010-06-25}}</ref> * {{შილა|საჰარაშ არაბეფიშ დემოკრატიული რესპუბლიკა}}, საჰარაშ არაბეფიშ დემოკრატიული რესპუბლიკაქ ზოხორინალა გჷმაცხადჷ [[1976]] წანას, თე რესპუბლიკა აღიარაფილჷ აფუ გოეროშ 84 მაკათურ ქიანას.<ref>{{cite web|accessdate=2008-02-28|url=http://www.wsahara.net/sadr.html|date=1976-02-27|author=Sahrawi Arab Democratic Republic|title=Sahrawi Arab Democratic Republic|publisher=Western Sahara Online }}</ref> * {{flagicon|ROC}} '''[[ჩინეთიშ რესპუბლიკა]]''' ('''R.O.C'''), ნამუთ [[1949]] წანას [[ჩინეთიშ ომენმაღალი ლჷმა|ჩინეთიშ ომენმაღალი ლჷმაშ]] წაგებაშ უკული აკონტროლენს ხვალო [[ტაივანი|ტაივანს]] დო მუსხირენ შხვა მორჩილ კოკის დო ასე აღიარაფილი რე 25 ქიანაშე. დე ფაქტო რსხუეფს შხვა ქიანეფწკჷმა ასრულენს თიჯგურა ინსტიტუტეფით, მუჭოთი რე ტაიპეიშ ეკონომიკური დო კულტურული წჷმორინალობაშ ოფისი.<ref>[http://www.nytimes.com/2007/06/07/world/asia/07iht-costa.1.6036203.html Taiwan cuts ties with Costa Rica over recognition for China]</ref><ref>Bush III, Richard C. "The Role of the United States in Taiwan-PRC Relations", ''Taiwan: Beyond the Economic Miracle'' M.E. Sharpe, Inc. ISBN 0-87332-879-5 p. 358 [http://books.google.com/books?id=xRjBbmgyc8AC&pg=PA358&dq=liberia+%22two+chinas%22&hl=es&ei=zjd5TdyhM4vz4Qb-6aCHBg&sa=X&oi=book_result&ct=result&resnum=9&ved=0CFUQ6AEwCA#v=onepage&q=liberia%20%22two%20chinas%22&f=false Online version] available at Google Books</ref> * '''[[ოორუე კვიპროსიშ თურქული რესპუბლიკა]]''' (TRNC) აკიქიმინჷ ოორუე [[კვიპროსი|კვიპროსის]] [[1975]] წანას, თე კოკის [[თურქეთი|თურქეთიშ]] არმიიაშ მიშაჭკირუაშ უკული ბერძენი კვიპროსალეფიშე [[ხუნტა|ხუნტაშ]] მონწყუალაშ საგამეთ. ხუნტაშ ღანკი რდ კოკიშ [[საბერძნეთი|საბერძნეთწკმა]] მერსხუაფა. ფორმალურო ზოხორინალა გმაცხადჷ [[1983]] წანას დო ამდრარშახ ხვალო თურქეთიქ აღიარჷ. [[2004]] წანას გოეროშ ეგიდით ჩეტარჷ რეფერენდუმქ კვიპროსიშ ჟირ ნორთიშ გოართიანაფაშე. გოართიანაფას მეურდეს თურქი კვიპროსალეფი,მარა თეს წიმი ეწუდირთეს ბერძენეფქ. თიშ უკული დიპლომატიური ცადეფი თე საკითხიშ გჷნაჭყვიდირალო ვასრულებე. კვიპროსიშ ბერძენული ნორთიქ თიმ წანას[[ევროპაშ რსხუ|ევროპაშ სრხუშ]] მაკათურო გჷნირთჷ, მუქჷთ გოეროშ გენერალური მელამოსეშ მოსაზრაფათ ხოლო უმოსო გართულჷ ვითარაფა ღე რეგიონს.<ref>{{cite web|url=http://www.un.int/cyprus/scr541.htm |title=Security Council resolution 220 (1966) on Cyprus |publisher=Un.int |date= |accessdate=2010-06-25}}</ref> ==ხვალო გოეროშ ვამაკათური ქიანეფიშე აღიარაფილი გოეროშ ვამაკათური დე ფაქტო ქიანეფი== *'''[[დნესტრიშპიჯეთი]]''', დნესტრიშპიჯეთიქ ზოხორინალა [[1990]] წანას გმაცხადჷ, ალმახანაშო აღიარაფილი რე გოეროშ ვამაკათური ჟირი დე ფაქტო ქიანაშ [[აფხაზეთი]]შე დო [[ობჟათე ოსეთი]]შე.<ref>{{cite web|accessdate=2008-06-16|url=http://video.acasa.ro/view_video/1cbc0583298a23831612/transnistria-europe-s-black-hole-2-4.html|title=Abkhazia: Ten Years On |publisher=BBC 2|year=2001}}</ref> *{{flag|სომალილენდი}}, [[სომალი|სომალქ]] ზოხორინალა [[1960]] წანას [[ბრიტანეთი]]შე მიღჷ. დეკოლონიზაციაშ უკული [[ბრიტანული სომალილენდი|ბრიტანული]] დო [[იტალიური სომალილენდი|იტალიური]] სომალილანდეფიშ აკოართაფათ აკოქიმინჷ [[სომალი|სომალ]]ქ. სომალილენდიქ ზოხორინალა [[1991]] წანას გჷმაცხადჷ, თინა ალმახანაშახ აკა სახენწჷფოს ვაუღიარებჷ.<ref>[http://news.bbc.co.uk/1/hi/world/africa/country_profiles/3794847.stm BBC Country Profiles: Regions and territories: Somaliland]. Retrieved 2009-09-14.</ref> ==სქოლიო== {{სქოლიო}} [[კატეგორია:ქიანეფი|*]] [[კატეგორია:ვააღიარაფილი ქიანეფი]] tmk09zxl2cfrg7kyqmma8ca1cjktua9 ერეფოშქაშე ტრიბუნალი ჸოფილი იუგოსლავიაშ ოკითხეფშე 0 19724 240054 238823 2025-06-09T02:57:57Z InternetArchiveBot 15194 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 240054 wikitext text/x-wiki [[ფაილი:ICTY.JPG|მინი|ტრიბუნალიშ დგმილი ჰააგას, ნიდერლანდი.]] '''[[1991]] წანაშე ჸოფილი [[იუგოსლავია]]შ ტერიტორიას ერეფოშქაშე ჰუმანიტარული სამართალიშ დორღვიას გამამინჯე პიჯეფიშ სამართალებური თხოზინიშ გჷნმახორციალაფარი ერეფოშქაშე ტრიბუნალი''', უმოს ფართოთ ჩინებული რე მუჭოთ '''ერეფოშქაშე ტრიბუნალი ჸოფილი იუგოსლავიაშ ოკითხირეფშე''' ვარდა უბრალოთ '''ჰააგაშ ტრიბუნალი''' - [[გოერო|გოართოიანაფილი ერეფიშ ორგანიზაციაშ]] სტრუქტურა, ნამუშ ღანკი რე სასამართალოს გეგნაჩას ჸოფილი იუგოსლავიაშ ტერიტორიას [[1991]] წანაშე ერეფოშქაშე ჰუმანიტარული სამართალიშ დორღვიაშა ეჭვმეღალირ პიჯეფქ, ახალი დჷნოშურეფიშ ვადოშქუმალა, ხე ქეშუნწყუას ჸოფილ იუგოსლავიას გარიგაშ შარათ შვიდობაშ მოღალას. ==რესურსეფი ინტერნეტის== {{Commons category}} * [http://www.icty.org/ Official website of ICTY] * [[International Progress Organization]]: [http://i-p-o.org/yu-tribunal.htm Monitoring of the ICTY] * Del Ponte, Carla (2003). ''[http://eprints.lse.ac.uk/23448/ The role of international criminal prosecutions in reconstructing divided communities] {{Webarchive|url=https://web.archive.org/web/20160304000713/http://eprints.lse.ac.uk/23448/ |date=2016-03-04 }}'', public lecture by Carla Del Ponte, Prosecutor, International Criminal Tribunal for the Former Yugoslavia, given at the London School of Economics, 20 October 2003. * [http://hrw.org/reports/2004/ij/digest.pdf Topical digests of the case law of ICTR and ICTY, Human Rights Watch, 2004] * [http://www.haguejusticeportal.net/ Hague Justice Portal] {{Webarchive|url=https://web.archive.org/web/20090213221314/http://www.haguejusticeportal.net/eCache/DEF/10/019.html |date=2009-02-13 }}: Academic gateway to The Hague organisations concerning international peace, justice and security. [[კატეგორია:იუგოსლავია]] 9rlphhgzaz00lmmz4okewr0tuvchl5p პორტუგალიაშ ერუანული ოკუჩხბურთე ნაკორობა 0 21255 240042 231227 2025-06-08T22:02:45Z Narazeni 826 /* აკოდგინალუა */ 240042 wikitext text/x-wiki '''პორტუგალიაშ ერუანული ოკუჩხბურთე ნაკორობა''' – წჷმარინუანს [[პორტუგალია]]ს საირქიანო ოკუჩხბურთე დო მაჸალური ტურნირეფს. პორტუგალიაშ ერუანული ოკუჩხბურთე ნაკორობაქ მოსოფელიშ ჩემპიონატის მაართათ აკათჷ [[1966]] წანას დო ოშქაშეფინალს წაგჷ მუმალი ჩემპიონწკჷმა [[ინგლისიშ ერუანული ოკუჩხბურთე ნაკრორობა|ინგლისწკჷმა]]. პორტუგალიარეფქ მასუმა აბანი დეკინეს. ==აკოდგინალუა== ნაკორობაშ ეკოდგინალაუაშა გეჸვენჯი 27 მობურთე რდჷ გიშაჸონაფილი 2025 წანაშ [[უეფაშ ერეფიშ ლიგაშ ფინალი 2025|უეფაშ ერეფიშ ლიგაშ ფინალშა]], 2025 წანაშ 4 დო 8 მანგის [[გერმანიაშ ერუანული ოკუჩხბურთე ნაკორობა|გერმანიაშ]] დო [[ესპანეთიშ ერუანული ოკუჩხბურთე ნაკორობა|ესპანეთიშ]] მეხ.<ref>{{cite news|title=Convocatória para Liga das Nações divulgada|url=https://www.fpf.pt/pt/News/Todas-as-not%C3%ADcias/Not%C3%ADcia/news/50645|publisher=Portuguese Football Federation|date=20 May 2025|language=pt}}</ref> : ''ლაჸაფეფი დო გოლეფი მოჸონაფილი რე 2024 წანაშ 11 მანგიშ დგომარობათ:'' {{nat fs g start|background=#900020|color=gold}} {{nat fs g player|no=1|pos=GK|name=[[რუი პატრისიუ]]|age={{birth date and age|1988|2|15|df=y}}|caps=108|goals=0|club=[[რომა (ოკუჩხბურთე კლუბი)|რომა]]|clubnat=ITA}} {{nat fs g player|no=12|pos=GK|name=[[ჟოზე სა]]|age={{birth date and age|1993|1|17|df=y}}|caps=2|goals=0|club=[[ვულვერჰემპტონ უონდერერსი]]|clubnat=ENG}} {{nat fs g player|no=22|pos=GK|name=[[დიოგუ კოშტა]]|age={{birth date and age|1999|9|19|df=y}}|caps=35|goals=0|club=[[პორტუ (ოკუჩხბურთე კლუბი)|პორტუ]]|clubnat=POR}} {{nat fs break|background=#900020}} {{nat fs g player|no=2|pos=DF|name=[[ნელსონ სემედუ]]|age={{birth date and age|1993|11|16|df=y}}|caps=30|goals=0|club=[[ვულვერჰემპტონ უონდერერსი]]|clubnat=ENG}} {{nat fs g player|no=3|pos=DF|name=[[კეპლერ რაველან ლიმა ფერეირა|პეპე]]|other=<small>ვიცე-კაპიტანი</small>|age={{birth date and age|1983|2|26|df=y}}|caps=137|goals=8|club=[[პორტუ (ოკუჩხბურთე კლუბი)|პორტუ]]|clubnat=POR}} {{nat fs g player|no=4|pos=DF|name=[[რუბენ დიასი]]|age={{birth date and age|1997|5|14|df=y}}|caps=56|goals=3|club=[[მანჩესტერ სიტი (ოკუჩხბურთე კლუბი)|მანჩესტერ სიტი]]|clubnat=ENG}} {{nat fs g player|no=5|pos=DF|name=[[დიოგუ დალოტი]]|age={{birth date and age|1999|3|18|df=y}}|caps=20|goals=2|club=[[მანჩესრერ იუნაიტედი (ოკუჩხბურთე კლუბი)|მანჩესტერ იუნაიტედი]]|clubnat=ENG}} {{nat fs g player|no=13|pos=DF|name=[[დანილუ პერეირა]]|age={{birth date and age|1991|9|9|df=y}}|caps=73|goals=2|club=[[პარი სენ-ჟერმენი]]|clubnat=FRA}} {{nat fs g player|no=14|pos=DF|name=[[გონსალუ ინასიუ]]|age={{birth date and age|2001|8|25|df=y}}|caps=9|goals=2|club=[[სპორტინგი (ოკუჩხბურთე კლუბი)|სპორტინგი]]|clubnat=POR}} {{nat fs g player|no=19|pos=DF|name=[[ნუნო მენდესი]]|age={{birth date and age|2002|6|19|df=y}}|caps=23|goals=0|club=[[პარი სენ-ჟერმენი]]|clubnat=FRA}} {{nat fs g player|no=20|pos=DF|name=[[ჟოაუ კანცელუ]]|age={{birth date and age|1994|5|27|df=y}}|caps=54|goals=10|club=[[ბარსელონა (ოკუჩხბურთე კლუბი)|ბარსელონა]]|clubnat=ESP}} {{nat fs g player|no=24|pos=DF|name=[[ანტონიუ სილვა]]|age={{birth date and age|2003|10|30|df=y}}|caps=11|goals=0|club=[[ბენფიკა (ოკუჩხბურთე კლუბი)|ბენფიკა]]|clubnat=POR}} {{nat fs break|background=#900020}} {{nat fs g player|no=6|pos=MF|name=[[ჟუაუ პალინია]]|age={{birth date and age|1995|7|9|df=y}}|caps=27|goals=2|club=[[ფულჰემი (ოკუჩხბურთე კლუბი)|ფულჰემი]]|clubnat=ENG}} {{nat fs g player|no=8|pos=MF|name=[[ბრუნო ფერნანდესი]]|age={{birth date and age|1994|9|8|df=y}}|caps=67|goals=22|club=[[მანჩესტერ იუნაიტედი (ოკუჩხბურთე კლუბი)|მანჩესტერ იუნაიტედი]]|clubnat=ENG}} {{nat fs g player|no=10|pos=MF|name=[[ბერნარდუ სილვა]]|age={{birth date and age|1994|8|10|df=y}}|caps=89|goals=11|club=[[მანჩესტერ სიტი (ოკუჩხბურთე კლუბი)|მანჩესტერ სიტი]]|clubnat=ENG}} {{nat fs g player|no=15|pos=MF|name=[[ჟუაუ ნევესი]]|age={{birth date and age|2004|9|27|df=y}}|caps=7|goals=0|club=[[ბენფიკა (ოკუჩხბურთე კლუბი)|ბენფიკა]]|clubnat=POR}} {{nat fs g player|no=16|pos=MF|name=[[მათეუს ნუნესი]]|age={{birth date and age|1998|8|27|df=y}}|caps=14|goals=2|club=[[მანჩესტერ სიტი (ოკუჩხბურთე კლუბი)|მანჩესტერ სიტი]]|clubnat=ENG}} {{nat fs g player|no=18|pos=MF|name=[[რუბენ ნევესი]]|age={{birth date and age|1997|3|13|df=y}}|caps=47|goals=0|club=[[ალ-ჰილალი (ოკუჩხბურთე კლუბი)|ალ-ჰილალი]]|clubnat=KSA}} {{nat fs g player|no=23|pos=MF|name=[[ვიტორ მაჩადუ პერეირა|ვიტინია]]|age={{birth date and age|2000|2|13|df=y}}|caps=17|goals=0|club=[[პარი სენ-ჟერმენი]]|clubnat=FRA}} {{nat fs break|background=#900020}} {{nat fs g player|no=7|pos=FW|name=[[კრიშტიანუ რონალდუ]]|other={{კაპიტანი}}|age={{birth date and age|1985|2|5|df=y}}|caps=207|goals=[[კრიშტიანუ რონალდუშით ერეფოშქაშე მითნაღელი გოლეფიშ ერკებული|130]]|club=[[ალ-ნასრი (ოკუჩხბურთე კლუბი)|ალ-ნასრი]]|clubnat=KSA}} {{nat fs g player|no=9|pos=FW|name=[[გონსალუ რამოსი]]|age={{birth date and age|2001|6|20|df=y}}|caps=13|goals=8|club=[[პარი სენ-ჟერმენი]]|clubnat=FRA}} {{nat fs g player|no=11|pos=FW|name=[[ჟოაუ ფელიქსი]]|vice-captain]]|age={{birth date and age|1999|11|10|df=y}}|caps=39|goals=|club=[[ბარსელონა (ოკუჩხბურთე კლუბი)|ბარსელონა]]|clubnat=ESP}} {{nat fs g player|no=17|pos=FW|name=[[რაფაელ ლეაუ]]|age={{birth date and age|1999|6|10|df=y}}|caps=27|goals=4|club=[[მილანი (ოკუჩხბურთე კლუბი)|მილანი]]|clubnat=ITA}} {{nat fs g player|no=21|pos=FW|name=[[დიოგუ ჟოტა]]|age={{birth date and age|1996|12|4|df=y}}|caps=39|goals=14|club=[[ლივერპული (ოკუჩხბურთე კლუბი)|ლივერპული]]|clubnat=ENG}} {{nat fs g player|no=25|pos=FW|name=[[პედრუ ნეტუ]]|age={{birth date and age|2000|3|9|df=y}}|caps=7|goals=1|club=[[ვულვერჰემპტონ უონდერერსი]]|clubnat=ENG}} {{nat fs g player|no=26|pos=FW|name=[[ფრანსკისკუ კონსეისაუ]]|age={{birth date and age|2002|12|14|df=y}}|caps=2|goals=0|club=[[პორტუ (ოკუჩხბურთე კლუბი)|პორტუ]]|clubnat=POR}} {{nat fs end|background=#900020}} ==რესურსეფი ინტერნეტის== {{commonscat|Portugal national football team}} *[http://www.portugoal.net Portugoal.net Portuguese football site (English)] *[http://www.fpf.pt Portuguese Football Federation official website] {{pt icon}} *[http://www.fpf.pt/portal/page/portal/PORTAL_FUTEBOL/SELECCOES/CLUBE_PORTUGAL/ Portuguese National Football Team] {{Webarchive|url=https://web.archive.org/web/20120403010945/http://www.fpf.pt/portal/page/portal/PORTAL_FUTEBOL/SELECCOES/CLUBE_PORTUGAL/ |date=2012-04-03 }} {{pt icon}} *[http://www.pfutebol.com Portuguesefutebol.com Source for Portuguese football] {{Webarchive|url=https://web.archive.org/web/20150416063412/http://www.pfutebol.com/ |date=2015-04-16 }} *[http://www.soccerpulse.com/forum/index.php?showforum=27 Portuguese football info and discussion forum] *[http://soccernet.espn.go.com/team?id=482&cc=5739 Portugal on ESPN Soccernet] {{Webarchive|url=https://web.archive.org/web/20121021071222/http://soccernet.espn.go.com/team?id=482&cc=5739 |date=2012-10-21 }} *[http://www.rsssf.com/tablesp/port-intres.html RSSSF archive of results 1921-2003] *[http://www.rsssf.com/miscellaneous/port-recintlp.html RSSSF archive of most capped players and highest goalscorers] *[http://www.rsssf.com/miscellaneous/port-coach-triv.html RSSSF archive of coaches 1921-] *[http://thestar.com.my/sports/story.asp?file=/2008/5/22/sports/21322719&sec=sports Portugal international players] *[http://infordesporto.sapo.pt/Comunidades/SeleccaoNacional/seleccaonacional_internacionalizacoes.asp Portugal international players] {{Webarchive|url=https://web.archive.org/web/20081024163041/http://infordesporto.sapo.pt/Comunidades/SeleccaoNacional/seleccaonacional_internacionalizacoes.asp |date=2008-10-24 }} {{pt icon}} *{{twitter|@selecaoportugal}} {{მერკე}} [[კატეგორია:ევროპაშ ერუანული ოკუჩხბურთე ნაკორობეფი]] [[კატეგორია:პორტუგალიაშ კუჩხბურთი]] jsicp3uvx18cvq91vn85wylvn8v4owv 240043 240042 2025-06-08T22:09:06Z Narazeni 826 /* აკოდგინალუა */ 240043 wikitext text/x-wiki '''პორტუგალიაშ ერუანული ოკუჩხბურთე ნაკორობა''' – წჷმარინუანს [[პორტუგალია]]ს საირქიანო ოკუჩხბურთე დო მაჸალური ტურნირეფს. პორტუგალიაშ ერუანული ოკუჩხბურთე ნაკორობაქ მოსოფელიშ ჩემპიონატის მაართათ აკათჷ [[1966]] წანას დო ოშქაშეფინალს წაგჷ მუმალი ჩემპიონწკჷმა [[ინგლისიშ ერუანული ოკუჩხბურთე ნაკრორობა|ინგლისწკჷმა]]. პორტუგალიარეფქ მასუმა აბანი დეკინეს. ==აკოდგინალუა== ნაკორობაშ ეკოდგინალაუაშა გეჸვენჯი 27 მობურთე რდჷ გიშაჸონაფილი 2025 წანაშ [[უეფაშ ერეფიშ ლიგაშ ფინალი 2025|უეფაშ ერეფიშ ლიგაშ ფინალშა]], 2025 წანაშ 4 დო 8 მანგის [[გერმანიაშ ერუანული ოკუჩხბურთე ნაკორობა|გერმანიაშ]] დო [[ესპანეთიშ ერუანული ოკუჩხბურთე ნაკორობა|ესპანეთიშ]] მეხ.<ref>{{cite news|title=Convocatória para Liga das Nações divulgada|url=https://www.fpf.pt/pt/News/Todas-as-not%C3%ADcias/Not%C3%ADcia/news/50645|publisher=Portuguese Football Federation|date=20 May 2025|language=pt}}</ref> * '''მატჩეფიშ დო გოლეფიშ მუნაჩემეფი მოჩამილი რე გეჸვენი თარიღით''': 2025 წანაშ 4 მანგი, [[გერმანიაშ ერუანული ოკუჩხბურთე ნაკორობა|გერმანიაწჷმა]] მატჩიშ უკული. : ''ლაჸაფეფი დო გოლეფი მოჸონაფილი რე 2024 წანაშ 11 მანგიშ დგომარობათ:'' {{nat fs g start|background=#900020|color=gold}} {{nat fs g player|no=1|pos=GK|name=[[დიოგუ კოშტა]]|age={{birth date and age|1999|9|19|df=y}}|caps=35|goals=0|club=[[პორტუ (ოკუჩხბურთე კლუბი)|პორტუ]]|clubnat=POR}} {{nat fs g player|no=12|pos=GK|name=[[ჟოზე სა]]|age={{birth date and age|1993|1|17|df=y}}|caps=2|goals=0|club=[[ვულვერჰემპტონ უონდერერსი]]|clubnat=ENG}} {{nat fs g player|no=22|pos=GK|name=[[რუი სილვა]]|age={{birth date and age|1994|2|7|df=y}}|caps=1|goals=0|club=[[სპორტინგი (ოკუჩხბურთე კლუბი, ლისაბონი)|რომა]]|clubnat=POR}} {{nat fs break|background=#900020}} {{nat fs g player|no=2|pos=DF|name=[[ნელსონ სემედუ]]|age={{birth date and age|1993|11|16|df=y}}|caps=30|goals=0|club=[[ვულვერჰემპტონ უონდერერსი]]|clubnat=ENG}} {{nat fs g player|no=3|pos=DF|name=[[კეპლერ რაველან ლიმა ფერეირა|პეპე]]|other=<small>ვიცე-კაპიტანი</small>|age={{birth date and age|1983|2|26|df=y}}|caps=137|goals=8|club=[[პორტუ (ოკუჩხბურთე კლუბი)|პორტუ]]|clubnat=POR}} {{nat fs g player|no=4|pos=DF|name=[[რუბენ დიასი]]|age={{birth date and age|1997|5|14|df=y}}|caps=56|goals=3|club=[[მანჩესტერ სიტი (ოკუჩხბურთე კლუბი)|მანჩესტერ სიტი]]|clubnat=ENG}} {{nat fs g player|no=5|pos=DF|name=[[დიოგუ დალოტი]]|age={{birth date and age|1999|3|18|df=y}}|caps=20|goals=2|club=[[მანჩესრერ იუნაიტედი (ოკუჩხბურთე კლუბი)|მანჩესტერ იუნაიტედი]]|clubnat=ENG}} {{nat fs g player|no=13|pos=DF|name=[[დანილუ პერეირა]]|age={{birth date and age|1991|9|9|df=y}}|caps=73|goals=2|club=[[პარი სენ-ჟერმენი]]|clubnat=FRA}} {{nat fs g player|no=14|pos=DF|name=[[გონსალუ ინასიუ]]|age={{birth date and age|2001|8|25|df=y}}|caps=9|goals=2|club=[[სპორტინგი (ოკუჩხბურთე კლუბი)|სპორტინგი]]|clubnat=POR}} {{nat fs g player|no=19|pos=DF|name=[[ნუნო მენდესი]]|age={{birth date and age|2002|6|19|df=y}}|caps=23|goals=0|club=[[პარი სენ-ჟერმენი]]|clubnat=FRA}} {{nat fs g player|no=20|pos=DF|name=[[ჟოაუ კანცელუ]]|age={{birth date and age|1994|5|27|df=y}}|caps=54|goals=10|club=[[ბარსელონა (ოკუჩხბურთე კლუბი)|ბარსელონა]]|clubnat=ESP}} {{nat fs g player|no=24|pos=DF|name=[[ანტონიუ სილვა]]|age={{birth date and age|2003|10|30|df=y}}|caps=11|goals=0|club=[[ბენფიკა (ოკუჩხბურთე კლუბი)|ბენფიკა]]|clubnat=POR}} {{nat fs break|background=#900020}} {{nat fs g player|no=6|pos=MF|name=[[ჟუაუ პალინია]]|age={{birth date and age|1995|7|9|df=y}}|caps=27|goals=2|club=[[ფულჰემი (ოკუჩხბურთე კლუბი)|ფულჰემი]]|clubnat=ENG}} {{nat fs g player|no=8|pos=MF|name=[[ბრუნო ფერნანდესი]]|age={{birth date and age|1994|9|8|df=y}}|caps=67|goals=22|club=[[მანჩესტერ იუნაიტედი (ოკუჩხბურთე კლუბი)|მანჩესტერ იუნაიტედი]]|clubnat=ENG}} {{nat fs g player|no=10|pos=MF|name=[[ბერნარდუ სილვა]]|age={{birth date and age|1994|8|10|df=y}}|caps=89|goals=11|club=[[მანჩესტერ სიტი (ოკუჩხბურთე კლუბი)|მანჩესტერ სიტი]]|clubnat=ENG}} {{nat fs g player|no=15|pos=MF|name=[[ჟუაუ ნევესი]]|age={{birth date and age|2004|9|27|df=y}}|caps=7|goals=0|club=[[ბენფიკა (ოკუჩხბურთე კლუბი)|ბენფიკა]]|clubnat=POR}} {{nat fs g player|no=16|pos=MF|name=[[მათეუს ნუნესი]]|age={{birth date and age|1998|8|27|df=y}}|caps=14|goals=2|club=[[მანჩესტერ სიტი (ოკუჩხბურთე კლუბი)|მანჩესტერ სიტი]]|clubnat=ENG}} {{nat fs g player|no=18|pos=MF|name=[[რუბენ ნევესი]]|age={{birth date and age|1997|3|13|df=y}}|caps=47|goals=0|club=[[ალ-ჰილალი (ოკუჩხბურთე კლუბი)|ალ-ჰილალი]]|clubnat=KSA}} {{nat fs g player|no=23|pos=MF|name=[[ვიტორ მაჩადუ პერეირა|ვიტინია]]|age={{birth date and age|2000|2|13|df=y}}|caps=17|goals=0|club=[[პარი სენ-ჟერმენი]]|clubnat=FRA}} {{nat fs break|background=#900020}} {{nat fs g player|no=7|pos=FW|name=[[კრიშტიანუ რონალდუ]]|other={{კაპიტანი}}|age={{birth date and age|1985|2|5|df=y}}|caps=207|goals=[[კრიშტიანუ რონალდუშით ერეფოშქაშე მითნაღელი გოლეფიშ ერკებული|130]]|club=[[ალ-ნასრი (ოკუჩხბურთე კლუბი)|ალ-ნასრი]]|clubnat=KSA}} {{nat fs g player|no=9|pos=FW|name=[[გონსალუ რამოსი]]|age={{birth date and age|2001|6|20|df=y}}|caps=13|goals=8|club=[[პარი სენ-ჟერმენი]]|clubnat=FRA}} {{nat fs g player|no=11|pos=FW|name=[[ჟოაუ ფელიქსი]]|vice-captain]]|age={{birth date and age|1999|11|10|df=y}}|caps=39|goals=|club=[[ბარსელონა (ოკუჩხბურთე კლუბი)|ბარსელონა]]|clubnat=ESP}} {{nat fs g player|no=17|pos=FW|name=[[რაფაელ ლეაუ]]|age={{birth date and age|1999|6|10|df=y}}|caps=27|goals=4|club=[[მილანი (ოკუჩხბურთე კლუბი)|მილანი]]|clubnat=ITA}} {{nat fs g player|no=21|pos=FW|name=[[დიოგუ ჟოტა]]|age={{birth date and age|1996|12|4|df=y}}|caps=39|goals=14|club=[[ლივერპული (ოკუჩხბურთე კლუბი)|ლივერპული]]|clubnat=ENG}} {{nat fs g player|no=25|pos=FW|name=[[პედრუ ნეტუ]]|age={{birth date and age|2000|3|9|df=y}}|caps=7|goals=1|club=[[ვულვერჰემპტონ უონდერერსი]]|clubnat=ENG}} {{nat fs g player|no=26|pos=FW|name=[[ფრანსკისკუ კონსეისაუ]]|age={{birth date and age|2002|12|14|df=y}}|caps=2|goals=0|club=[[პორტუ (ოკუჩხბურთე კლუბი)|პორტუ]]|clubnat=POR}} {{nat fs end|background=#900020}} ==რესურსეფი ინტერნეტის== {{commonscat|Portugal national football team}} *[http://www.portugoal.net Portugoal.net Portuguese football site (English)] *[http://www.fpf.pt Portuguese Football Federation official website] {{pt icon}} *[http://www.fpf.pt/portal/page/portal/PORTAL_FUTEBOL/SELECCOES/CLUBE_PORTUGAL/ Portuguese National Football Team] {{Webarchive|url=https://web.archive.org/web/20120403010945/http://www.fpf.pt/portal/page/portal/PORTAL_FUTEBOL/SELECCOES/CLUBE_PORTUGAL/ |date=2012-04-03 }} {{pt icon}} *[http://www.pfutebol.com Portuguesefutebol.com Source for Portuguese football] {{Webarchive|url=https://web.archive.org/web/20150416063412/http://www.pfutebol.com/ |date=2015-04-16 }} *[http://www.soccerpulse.com/forum/index.php?showforum=27 Portuguese football info and discussion forum] *[http://soccernet.espn.go.com/team?id=482&cc=5739 Portugal on ESPN Soccernet] {{Webarchive|url=https://web.archive.org/web/20121021071222/http://soccernet.espn.go.com/team?id=482&cc=5739 |date=2012-10-21 }} *[http://www.rsssf.com/tablesp/port-intres.html RSSSF archive of results 1921-2003] *[http://www.rsssf.com/miscellaneous/port-recintlp.html RSSSF archive of most capped players and highest goalscorers] *[http://www.rsssf.com/miscellaneous/port-coach-triv.html RSSSF archive of coaches 1921-] *[http://thestar.com.my/sports/story.asp?file=/2008/5/22/sports/21322719&sec=sports Portugal international players] *[http://infordesporto.sapo.pt/Comunidades/SeleccaoNacional/seleccaonacional_internacionalizacoes.asp Portugal international players] {{Webarchive|url=https://web.archive.org/web/20081024163041/http://infordesporto.sapo.pt/Comunidades/SeleccaoNacional/seleccaonacional_internacionalizacoes.asp |date=2008-10-24 }} {{pt icon}} *{{twitter|@selecaoportugal}} {{მერკე}} [[კატეგორია:ევროპაშ ერუანული ოკუჩხბურთე ნაკორობეფი]] [[კატეგორია:პორტუგალიაშ კუჩხბურთი]] 5bxcvzka2wenfdw720zfwqn5ugsis21 240044 240043 2025-06-08T22:40:02Z Narazeni 826 /* აკოდგინალუა */ 240044 wikitext text/x-wiki '''პორტუგალიაშ ერუანული ოკუჩხბურთე ნაკორობა''' – წჷმარინუანს [[პორტუგალია]]ს საირქიანო ოკუჩხბურთე დო მაჸალური ტურნირეფს. პორტუგალიაშ ერუანული ოკუჩხბურთე ნაკორობაქ მოსოფელიშ ჩემპიონატის მაართათ აკათჷ [[1966]] წანას დო ოშქაშეფინალს წაგჷ მუმალი ჩემპიონწკჷმა [[ინგლისიშ ერუანული ოკუჩხბურთე ნაკრორობა|ინგლისწკჷმა]]. პორტუგალიარეფქ მასუმა აბანი დეკინეს. ==აკოდგინალუა== ნაკორობაშ ეკოდგინალაუაშა გეჸვენჯი 27 მობურთე რდჷ გიშაჸონაფილი 2025 წანაშ [[უეფაშ ერეფიშ ლიგაშ ფინალი 2025|უეფაშ ერეფიშ ლიგაშ ფინალშა]], 2025 წანაშ 4 დო 8 მანგის [[გერმანიაშ ერუანული ოკუჩხბურთე ნაკორობა|გერმანიაშ]] დო [[ესპანეთიშ ერუანული ოკუჩხბურთე ნაკორობა|ესპანეთიშ]] მეხ.<ref>{{cite news|title=Convocatória para Liga das Nações divulgada|url=https://www.fpf.pt/pt/News/Todas-as-not%C3%ADcias/Not%C3%ADcia/news/50645|publisher=Portuguese Football Federation|date=20 May 2025|language=pt}}</ref> * '''მატჩეფიშ დო გოლეფიშ მუნაჩემეფი მოჩამილი რე გეჸვენი თარიღით''': 2025 წანაშ 4 მანგი, [[გერმანიაშ ერუანული ოკუჩხბურთე ნაკორობა|გერმანიაწჷმა]] მატჩიშ უკული. : ''ლაჸაფეფი დო გოლეფი მოჸონაფილი რე 2024 წანაშ 11 მანგიშ დგომარობათ:'' {{nat fs g start|background=#900020|color=gold}} {{nat fs g player|no=1|pos=GK|name=[[დიოგუ კოშტა]]|age={{birth date and age|1999|9|19|df=y}}|caps=35|goals=0|club=[[პორტუ (ოკუჩხბურთე კლუბი)|პორტუ]]|clubnat=POR}} {{nat fs g player|no=12|pos=GK|name=[[ჟოზე სა]]|age={{birth date and age|1993|1|17|df=y}}|caps=2|goals=0|club=[[ვულვერჰემპტონ უონდერერსი]]|clubnat=ENG}} {{nat fs g player|no=22|pos=GK|name=[[რუი სილვა]]|age={{birth date and age|1994|2|7|df=y}}|caps=1|goals=0|club=[[სპორტინგი (ოკუჩხბურთე კლუბი, ლისაბონი)|რომა]]|clubnat=POR}} {{nat fs break|background=#900020}} {{nat fs g player|no=2|pos=DF|name=[[ნელსონ სემედუ]]|age={{birth date and age|1993|11|16|df=y}}|caps=43|goals=0|club=[[ვულვერჰემპტონ უონდერერსი]]|clubnat=ENG}} {{nat fs g player|no=3|pos=DF|name=[[რუბენ დიასი]]|age={{birth date and age|1997|5|14|df=y}}|caps=67|goals=3|club=[[მანჩესტერ სიტი (ოკუჩხბურთე კლუბი)|მანჩესტერ სიტი]]|clubnat=ENG}} {{nat fs g player|no=4|pos=DF|name=[[ანტონიუ სილვა]]|age={{birth date and age|2003|10|30|df=y}}|caps=17|goals=0|club=[[ბენფიკა (ოკუჩხბურთე კლუბი)|ბენფიკა]]|clubnat=POR}} {{nat fs g player|no=3|pos=DF|name=[[კეპლერ რაველან ლიმა ფერეირა|პეპე]]|other=<small>ვიცე-კაპიტანი</small>|age={{birth date and age|1983|2|26|df=y}}|caps=137|goals=8|club=[[პორტუ (ოკუჩხბურთე კლუბი)|პორტუ]]|clubnat=POR}} {{nat fs g player|no=5|pos=DF|name=[[დიოგუ დალოტი]]|age={{birth date and age|1999|3|18|df=y}}|caps=29|goals=3|club=[[მანჩესტერ იუნაიტედი (ოკუჩხბურთე კლუბი)|მანჩესტერ იუნაიტედი]]|clubnat=ENG}} {{nat fs g player|no=13|pos=DF|name=[[რენატუ ვეიგა]]|age={{birth date and age|2003|7|29|df=y}}|caps=4|goals=0|club=[[ჩელსი (ოკუჩხბურთე კლუბი)|ჩელსი]]|clubnat=ENG}} {{nat fs g player|no=14|pos=DF|name=[[გონსალუ ინასიუ]]|age={{birth date and age|2001|8|25|df=y}}|caps=15|goals=2|club=[[სპორტინგი (ოკუჩხბურთე კლუბი, ლისაბონი)|სპორტინგი]]|clubnat=POR}} {{nat fs g player|no=25|pos=DF|name=[[ნუნო მენდესი]]|age={{birth date and age|2002|6|19|df=y}}|caps=36|goals=0|club=[[პარი სენ-ჟერმენი]]|clubnat=FRA}} {{nat fs g player|no=27|pos=DF|name=[[ნუნუ ტავარეში]]|age={{birth date and age|2000|1|26|df=y}}|caps=1|goals=0|club=[[ლაციო (ოკუჩხბურთე კლუბი)|ლაციო]]|clubnat=ITA}} {{nat fs break|background=#900020}} {{nat fs g player|no=6|pos=MF|name=[[ჟუაუ პალინია]]|age={{birth date and age|1995|7|9|df=y}}|caps=34|goals=2|club=[[ბაიერნი (ოკუჩხბურთე კლუბი)|ბაიერნი]]|clubnat=GER}} {{nat fs g player|no=8|pos=MF|name=[[ბრუნუ ფერნანდეში]]|age={{birth date and age|1994|9|8|df=y}}|caps=79|goals=25|club=[[მანჩესტერ იუნაიტედი (ოკუჩხბურთე კლუბი)|მანჩესტერ იუნაიტედი]]|clubnat=ENG}} {{nat fs g player|no=10|pos=MF|name=[[ბერნარდუ სილვა]]|other=<small>ვიცე-კაპიტანი</small>|age={{birth date and age|1994|8|10|df=y}}|caps=101|goals=13|club=[[მანჩესტერ სიტი (ოკუჩხბურთე კლუბი)|მანჩესტერ სიტი]]|clubnat=ENG}} {{nat fs g player|no=15|pos=MF|name=[[ჟუაუ ნევეში]]|age={{birth date and age|2004|9|27|df=y}}|caps=15|goals=0|club=[[პარი სენ-ჟერმენი]]|clubnat=FRA}} {{nat fs g player|no=18|pos=MF|name=[[რუბენ ნევეში]]|age={{birth date and age|1997|3|13|df=y}}|caps=57|goals=0|club=[[ალ-ჰილალი (ოკუჩხბურთე კლუბი)|ალ-ჰილალი]]|clubnat=KSA}} {{nat fs g player|no=19|pos=MF|name=[[პედრუ გონსალვეში]]|age={{birth date and age|1998|6|28|df=y}}|caps=3|goals=0|club=[[სპორტინგი (ოკუჩხბურთე კლუბი, ლისაბონი)|სპორტინგი]]|clubnat=POR}} {{nat fs g player|no=23|pos=MF|name=[[ვიტორ მაჩადუ პერეირა|ვიტინია]]|age={{birth date and age|2000|2|13|df=y}}|caps=28|goals=0|club=[[პარი სენ-ჟერმენი]]|clubnat=FRA}} {{nat fs break|background=#900020}} {{nat fs g player|no=7|pos=FW|name=[[კრიშტიანუ რონალდუ]]|other={{კაპიტანი}}|age={{birth date and age|1985|2|5|df=y}}|caps=220|goals=[[კრიშტიანუ რონალდუშით ერეფოშქაშე მითნაღელი გოლეფიშ ერკებული|137]]|club=[[ალ-ნასრი (ოკუჩხბურთე კლუბი)|ალ-ნასრი]]|clubnat=KSA}} {{nat fs g player|no=9|pos=FW|name=[[გონსალუ რამოსი]]|age={{birth date and age|2001|6|20|df=y}}|caps=15|goals=9|club=[[პარი სენ-ჟერმენი]]|clubnat=FRA}} {{nat fs g player|no=11|pos=FW|name=[[ჟოაუ ფელიქსი]]|age={{birth date and age|1999|11|10|df=y}}|caps=45|goals=9|club=[[ჩელსი (ოკუჩხბურთე კლუბი)|ჩელსი]]|clubnat=ENG}} {{nat fs g player|no=16|pos=FW|name=[[ფრანსიშკუ ტრინკანი]]|age={{birth date and age|1999|12|29|df=y}}|caps=11|goals=2|club=[[სპორტინგი (ოკუჩხბურთე კლუბი, ლისაბონი)|სპორტინგი]]|clubnat=POR}} {{nat fs g player|no=17|pos=FW|name=[[რაფაელ ლეაუ]]|age={{birth date and age|1999|6|10|df=y}}|caps=39|goals=5|club=[[მილანი (ოკუჩხბურთე კლუბი)|მილანი]]|clubnat=ITA}} {{nat fs g player|no=20|pos=FW|name=[[პედრუ ნეტუ]]|age={{birth date and age|2000|3|9|df=y}}|caps=16|goals=2|club=[[ჩელსი (ოკუჩხბურთე კლუბი)|ჩელსი]]|clubnat=ENG}} {{nat fs g player|no=21|pos=FW|name=[[დიოგუ ჟოტა]]|age={{birth date and age|1996|12|4|df=y}}|caps=48|goals=14|club=[[ლივერპული (ოკუჩხბურთე კლუბი)|ლივერპული]]|clubnat=ENG}} {{nat fs g player|no=24|pos=FW|name=[[როდრიგუ მორა]]|age={{birth date and age|2007|5|5|df=y}}|caps=0|goals=0|club=[[პორტუ (ოკუჩხბურთე კლუბი)|პორტუ]]|clubnat=POR}} {{nat fs g player|no=26|pos=FW|name=[[ფრანსიშკუ კონსეისაუ]]|age={{birth date and age|2002|12|14|df=y}}|caps=10|goals=2|club=[[იუვენტუსი (ოკუჩხბურთე კლუბი)|იუვენტუსი]]|clubnat=ITA}} {{nat fs end|background=#900020}} ==რესურსეფი ინტერნეტის== {{commonscat|Portugal national football team}} *[http://www.portugoal.net Portugoal.net Portuguese football site (English)] *[http://www.fpf.pt Portuguese Football Federation official website] {{pt icon}} *[http://www.fpf.pt/portal/page/portal/PORTAL_FUTEBOL/SELECCOES/CLUBE_PORTUGAL/ Portuguese National Football Team] {{Webarchive|url=https://web.archive.org/web/20120403010945/http://www.fpf.pt/portal/page/portal/PORTAL_FUTEBOL/SELECCOES/CLUBE_PORTUGAL/ |date=2012-04-03 }} {{pt icon}} *[http://www.pfutebol.com Portuguesefutebol.com Source for Portuguese football] {{Webarchive|url=https://web.archive.org/web/20150416063412/http://www.pfutebol.com/ |date=2015-04-16 }} *[http://www.soccerpulse.com/forum/index.php?showforum=27 Portuguese football info and discussion forum] *[http://soccernet.espn.go.com/team?id=482&cc=5739 Portugal on ESPN Soccernet] {{Webarchive|url=https://web.archive.org/web/20121021071222/http://soccernet.espn.go.com/team?id=482&cc=5739 |date=2012-10-21 }} *[http://www.rsssf.com/tablesp/port-intres.html RSSSF archive of results 1921-2003] *[http://www.rsssf.com/miscellaneous/port-recintlp.html RSSSF archive of most capped players and highest goalscorers] *[http://www.rsssf.com/miscellaneous/port-coach-triv.html RSSSF archive of coaches 1921-] *[http://thestar.com.my/sports/story.asp?file=/2008/5/22/sports/21322719&sec=sports Portugal international players] *[http://infordesporto.sapo.pt/Comunidades/SeleccaoNacional/seleccaonacional_internacionalizacoes.asp Portugal international players] {{Webarchive|url=https://web.archive.org/web/20081024163041/http://infordesporto.sapo.pt/Comunidades/SeleccaoNacional/seleccaonacional_internacionalizacoes.asp |date=2008-10-24 }} {{pt icon}} *{{twitter|@selecaoportugal}} {{მერკე}} [[კატეგორია:ევროპაშ ერუანული ოკუჩხბურთე ნაკორობეფი]] [[კატეგორია:პორტუგალიაშ კუჩხბურთი]] 6atfl0b2oma8v66nflxhwvcv8tk2aqs 240045 240044 2025-06-08T22:44:12Z Narazeni 826 /* აკოდგინალუა */ 240045 wikitext text/x-wiki '''პორტუგალიაშ ერუანული ოკუჩხბურთე ნაკორობა''' – წჷმარინუანს [[პორტუგალია]]ს საირქიანო ოკუჩხბურთე დო მაჸალური ტურნირეფს. პორტუგალიაშ ერუანული ოკუჩხბურთე ნაკორობაქ მოსოფელიშ ჩემპიონატის მაართათ აკათჷ [[1966]] წანას დო ოშქაშეფინალს წაგჷ მუმალი ჩემპიონწკჷმა [[ინგლისიშ ერუანული ოკუჩხბურთე ნაკრორობა|ინგლისწკჷმა]]. პორტუგალიარეფქ მასუმა აბანი დეკინეს. ==აკოდგინალუა== ნაკორობაშ ეკოდგინალაუაშა გეჸვენჯი 27 მობურთე რდჷ გიშაჸონაფილი 2025 წანაშ [[უეფაშ ერეფიშ ლიგაშ ფინალი 2025|უეფაშ ერეფიშ ლიგაშ ფინალშა]], 2025 წანაშ 4 დო 8 მანგის [[გერმანიაშ ერუანული ოკუჩხბურთე ნაკორობა|გერმანიაშ]] დო [[ესპანეთიშ ერუანული ოკუჩხბურთე ნაკორობა|ესპანეთიშ]] მეხ.<ref>{{cite news|title=Convocatória para Liga das Nações divulgada|url=https://www.fpf.pt/pt/News/Todas-as-not%C3%ADcias/Not%C3%ADcia/news/50645|publisher=Portuguese Football Federation|date=20 May 2025|language=pt}}</ref> * '''მატჩეფიშ დო გოლეფიშ მუნაჩემეფი მოჩამილი რე გეჸვენი თარიღით''': 2025 წანაშ 4 მანგი, [[გერმანიაშ ერუანული ოკუჩხბურთე ნაკორობა|გერმანიაწჷმა]] მატჩიშ უკული. : ''ლაჸაფეფი დო გოლეფი მოჸონაფილი რე 2024 წანაშ 11 მანგიშ დგომარობათ:'' {{nat fs g start|background=#900020|color=gold}} {{nat fs g player|no=1|pos=GK|name=[[დიოგუ კოშტა]]|age={{birth date and age|1999|9|19|df=y}}|caps=35|goals=0|club=[[პორტუ (ოკუჩხბურთე კლუბი)|პორტუ]]|clubnat=POR}} {{nat fs g player|no=12|pos=GK|name=[[ჟოზე სა]]|age={{birth date and age|1993|1|17|df=y}}|caps=2|goals=0|club=[[ვულვერჰემპტონ უონდერერსი]]|clubnat=ENG}} {{nat fs g player|no=22|pos=GK|name=[[რუი სილვა]]|age={{birth date and age|1994|2|7|df=y}}|caps=1|goals=0|club=[[სპორტინგი (ოკუჩხბურთე კლუბი, ლისაბონი)|რომა]]|clubnat=POR}} {{nat fs break|background=#900020}} {{nat fs g player|no=2|pos=DF|name=[[ნელსონ სემედუ]]|age={{birth date and age|1993|11|16|df=y}}|caps=43|goals=0|club=[[ვულვერჰემპტონ უონდერერსი]]|clubnat=ENG}} {{nat fs g player|no=3|pos=DF|name=[[რუბენ დიასი]]|age={{birth date and age|1997|5|14|df=y}}|caps=67|goals=3|club=[[მანჩესტერ სიტი (ოკუჩხბურთე კლუბი)|მანჩესტერ სიტი]]|clubnat=ENG}} {{nat fs g player|no=4|pos=DF|name=[[ანტონიუ სილვა]]|age={{birth date and age|2003|10|30|df=y}}|caps=17|goals=0|club=[[ბენფიკა (ოკუჩხბურთე კლუბი)|ბენფიკა]]|clubnat=POR}} {{nat fs g player|no=5|pos=DF|name=[[დიოგუ დალოტი]]|age={{birth date and age|1999|3|18|df=y}}|caps=29|goals=3|club=[[მანჩესტერ იუნაიტედი (ოკუჩხბურთე კლუბი)|მანჩესტერ იუნაიტედი]]|clubnat=ENG}} {{nat fs g player|no=13|pos=DF|name=[[რენატუ ვეიგა]]|age={{birth date and age|2003|7|29|df=y}}|caps=4|goals=0|club=[[ჩელსი (ოკუჩხბურთე კლუბი)|ჩელსი]]|clubnat=ENG}} {{nat fs g player|no=14|pos=DF|name=[[გონსალუ ინასიუ]]|age={{birth date and age|2001|8|25|df=y}}|caps=15|goals=2|club=[[სპორტინგი (ოკუჩხბურთე კლუბი, ლისაბონი)|სპორტინგი]]|clubnat=POR}} {{nat fs g player|no=25|pos=DF|name=[[ნუნო მენდესი]]|age={{birth date and age|2002|6|19|df=y}}|caps=36|goals=0|club=[[პარი სენ-ჟერმენი]]|clubnat=FRA}} {{nat fs g player|no=27|pos=DF|name=[[ნუნუ ტავარეში]]|age={{birth date and age|2000|1|26|df=y}}|caps=1|goals=0|club=[[ლაციო (ოკუჩხბურთე კლუბი)|ლაციო]]|clubnat=ITA}} {{nat fs break|background=#900020}} {{nat fs g player|no=6|pos=MF|name=[[ჟუაუ პალინია]]|age={{birth date and age|1995|7|9|df=y}}|caps=34|goals=2|club=[[ბაიერნი (ოკუჩხბურთე კლუბი)|ბაიერნი]]|clubnat=GER}} {{nat fs g player|no=8|pos=MF|name=[[ბრუნუ ფერნანდეში]]|age={{birth date and age|1994|9|8|df=y}}|caps=79|goals=25|club=[[მანჩესტერ იუნაიტედი (ოკუჩხბურთე კლუბი)|მანჩესტერ იუნაიტედი]]|clubnat=ENG}} {{nat fs g player|no=10|pos=MF|name=[[ბერნარდუ სილვა]]|other=<small>ვიცე-კაპიტანი</small>|age={{birth date and age|1994|8|10|df=y}}|caps=101|goals=13|club=[[მანჩესტერ სიტი (ოკუჩხბურთე კლუბი)|მანჩესტერ სიტი]]|clubnat=ENG}} {{nat fs g player|no=15|pos=MF|name=[[ჟუაუ ნევეში]]|age={{birth date and age|2004|9|27|df=y}}|caps=15|goals=0|club=[[პარი სენ-ჟერმენი]]|clubnat=FRA}} {{nat fs g player|no=18|pos=MF|name=[[რუბენ ნევეში]]|age={{birth date and age|1997|3|13|df=y}}|caps=57|goals=0|club=[[ალ-ჰილალი (ოკუჩხბურთე კლუბი)|ალ-ჰილალი]]|clubnat=KSA}} {{nat fs g player|no=19|pos=MF|name=[[პედრუ გონსალვეში]]|age={{birth date and age|1998|6|28|df=y}}|caps=3|goals=0|club=[[სპორტინგი (ოკუჩხბურთე კლუბი, ლისაბონი)|სპორტინგი]]|clubnat=POR}} {{nat fs g player|no=23|pos=MF|name=[[ვიტორ მაჩადუ პერეირა|ვიტინია]]|age={{birth date and age|2000|2|13|df=y}}|caps=28|goals=0|club=[[პარი სენ-ჟერმენი]]|clubnat=FRA}} {{nat fs break|background=#900020}} {{nat fs g player|no=7|pos=FW|name=[[კრიშტიანუ რონალდუ]]|other={{კაპიტანი}}|age={{birth date and age|1985|2|5|df=y}}|caps=220|goals=[[კრიშტიანუ რონალდუშით ერეფოშქაშე მითნაღელი გოლეფიშ ერკებული|137]]|club=[[ალ-ნასრი (ოკუჩხბურთე კლუბი)|ალ-ნასრი]]|clubnat=KSA}} {{nat fs g player|no=9|pos=FW|name=[[გონსალუ რამოსი]]|age={{birth date and age|2001|6|20|df=y}}|caps=15|goals=9|club=[[პარი სენ-ჟერმენი]]|clubnat=FRA}} {{nat fs g player|no=11|pos=FW|name=[[ჟოაუ ფელიქსი]]|age={{birth date and age|1999|11|10|df=y}}|caps=45|goals=9|club=[[ჩელსი (ოკუჩხბურთე კლუბი)|ჩელსი]]|clubnat=ENG}} {{nat fs g player|no=16|pos=FW|name=[[ფრანსიშკუ ტრინკანი]]|age={{birth date and age|1999|12|29|df=y}}|caps=11|goals=2|club=[[სპორტინგი (ოკუჩხბურთე კლუბი, ლისაბონი)|სპორტინგი]]|clubnat=POR}} {{nat fs g player|no=17|pos=FW|name=[[რაფაელ ლეაუ]]|age={{birth date and age|1999|6|10|df=y}}|caps=39|goals=5|club=[[მილანი (ოკუჩხბურთე კლუბი)|მილანი]]|clubnat=ITA}} {{nat fs g player|no=20|pos=FW|name=[[პედრუ ნეტუ]]|age={{birth date and age|2000|3|9|df=y}}|caps=16|goals=2|club=[[ჩელსი (ოკუჩხბურთე კლუბი)|ჩელსი]]|clubnat=ENG}} {{nat fs g player|no=21|pos=FW|name=[[დიოგუ ჟოტა]]|age={{birth date and age|1996|12|4|df=y}}|caps=48|goals=14|club=[[ლივერპული (ოკუჩხბურთე კლუბი)|ლივერპული]]|clubnat=ENG}} {{nat fs g player|no=24|pos=FW|name=[[როდრიგუ მორა]]|age={{birth date and age|2007|5|5|df=y}}|caps=0|goals=0|club=[[პორტუ (ოკუჩხბურთე კლუბი)|პორტუ]]|clubnat=POR}} {{nat fs g player|no=26|pos=FW|name=[[ფრანსიშკუ კონსეისაუ]]|age={{birth date and age|2002|12|14|df=y}}|caps=10|goals=2|club=[[იუვენტუსი (ოკუჩხბურთე კლუბი)|იუვენტუსი]]|clubnat=ITA}} {{nat fs end|background=#900020}} ==რესურსეფი ინტერნეტის== {{commonscat|Portugal national football team}} *[http://www.portugoal.net Portugoal.net Portuguese football site (English)] *[http://www.fpf.pt Portuguese Football Federation official website] {{pt icon}} *[http://www.fpf.pt/portal/page/portal/PORTAL_FUTEBOL/SELECCOES/CLUBE_PORTUGAL/ Portuguese National Football Team] {{Webarchive|url=https://web.archive.org/web/20120403010945/http://www.fpf.pt/portal/page/portal/PORTAL_FUTEBOL/SELECCOES/CLUBE_PORTUGAL/ |date=2012-04-03 }} {{pt icon}} *[http://www.pfutebol.com Portuguesefutebol.com Source for Portuguese football] {{Webarchive|url=https://web.archive.org/web/20150416063412/http://www.pfutebol.com/ |date=2015-04-16 }} *[http://www.soccerpulse.com/forum/index.php?showforum=27 Portuguese football info and discussion forum] *[http://soccernet.espn.go.com/team?id=482&cc=5739 Portugal on ESPN Soccernet] {{Webarchive|url=https://web.archive.org/web/20121021071222/http://soccernet.espn.go.com/team?id=482&cc=5739 |date=2012-10-21 }} *[http://www.rsssf.com/tablesp/port-intres.html RSSSF archive of results 1921-2003] *[http://www.rsssf.com/miscellaneous/port-recintlp.html RSSSF archive of most capped players and highest goalscorers] *[http://www.rsssf.com/miscellaneous/port-coach-triv.html RSSSF archive of coaches 1921-] *[http://thestar.com.my/sports/story.asp?file=/2008/5/22/sports/21322719&sec=sports Portugal international players] *[http://infordesporto.sapo.pt/Comunidades/SeleccaoNacional/seleccaonacional_internacionalizacoes.asp Portugal international players] {{Webarchive|url=https://web.archive.org/web/20081024163041/http://infordesporto.sapo.pt/Comunidades/SeleccaoNacional/seleccaonacional_internacionalizacoes.asp |date=2008-10-24 }} {{pt icon}} *{{twitter|@selecaoportugal}} {{მერკე}} [[კატეგორია:ევროპაშ ერუანული ოკუჩხბურთე ნაკორობეფი]] [[კატეგორია:პორტუგალიაშ კუჩხბურთი]] sscj73pyk9300uattlsaar1pcaukr9e 240061 240045 2025-06-09T09:47:44Z Narazeni 826 /* აკოდგინალუა */ 240061 wikitext text/x-wiki '''პორტუგალიაშ ერუანული ოკუჩხბურთე ნაკორობა''' – წჷმარინუანს [[პორტუგალია]]ს საირქიანო ოკუჩხბურთე დო მაჸალური ტურნირეფს. პორტუგალიაშ ერუანული ოკუჩხბურთე ნაკორობაქ მოსოფელიშ ჩემპიონატის მაართათ აკათჷ [[1966]] წანას დო ოშქაშეფინალს წაგჷ მუმალი ჩემპიონწკჷმა [[ინგლისიშ ერუანული ოკუჩხბურთე ნაკრორობა|ინგლისწკჷმა]]. პორტუგალიარეფქ მასუმა აბანი დეკინეს. ==აკოდგინალუა== ნაკორობაშ ეკოდგინალაუაშა გეჸვენჯი მობურთეეფი რდჷ გიშაჸონაფილი 2025 წანაშ [[უეფაშ ერეფიშ ლიგაშ ფინალი 2025|უეფაშ ერეფიშ ლიგაშ ფინალშა]].<ref>{{cite news|title=Convocatória para Liga das Nações divulgada|url=https://www.fpf.pt/pt/News/Todas-as-not%C3%ADcias/Not%C3%ADcia/news/50645|publisher=Portuguese Football Federation|date=20 May 2025|language=pt}}</ref> * '''მატჩეფიშ დო გოლეფიშ მუნაჩემეფი მოჩამილი რე გეჸვენი თარიღით''': 2025 წანაშ 8 მანგი, [[ესპანეთიშ ერუანული ოკუჩხბურთე ნაკორობა|ესპანეთწჷმა]] მატჩიშ უკული. : ''ლაჸაფეფი დო გოლეფი მოჸონაფილი რე 2024 წანაშ 11 მანგიშ დგომარობათ:'' {{nat fs g start|background=#900020|color=gold}} {{nat fs g player|no=1|pos=GK|name=[[დიოგუ კოშტა]]|age={{birth date and age|1999|9|19|df=y}}|caps=36|goals=0|club=[[პორტუ (ოკუჩხბურთე კლუბი)|პორტუ]]|clubnat=POR}} {{nat fs g player|no=12|pos=GK|name=[[ჟოზე სა]]|age={{birth date and age|1993|1|17|df=y}}|caps=3|goals=0|club=[[ვულვერჰემპტონ უონდერერსი]]|clubnat=ENG}} {{nat fs g player|no=22|pos=GK|name=[[რუი სილვა]]|age={{birth date and age|1994|2|7|df=y}}|caps=1|goals=0|club=[[სპორტინგი (ოკუჩხბურთე კლუბი, ლისაბონი)|რომა]]|clubnat=POR}} {{nat fs break|background=#900020}} {{nat fs g player|no=2|pos=DF|name=[[ნელსონ სემედუ]]|age={{birth date and age|1993|11|16|df=y}}|caps=44|goals=0|club=[[ვულვერჰემპტონ უონდერერსი]]|clubnat=ENG}} {{nat fs g player|no=3|pos=DF|name=[[რუბენ დიასი]]|age={{birth date and age|1997|5|14|df=y}}|caps=68|goals=3|club=[[მანჩესტერ სიტი (ოკუჩხბურთე კლუბი)|მანჩესტერ სიტი]]|clubnat=ENG}} {{nat fs g player|no=4|pos=DF|name=[[ანტონიუ სილვა]]|age={{birth date and age|2003|10|30|df=y}}|caps=17|goals=0|club=[[ბენფიკა (ოკუჩხბურთე კლუბი)|ბენფიკა]]|clubnat=POR}} {{nat fs g player|no=5|pos=DF|name=[[დიოგუ დალოტი]]|age={{birth date and age|1999|3|18|df=y}}|caps=29|goals=3|club=[[მანჩესტერ იუნაიტედი (ოკუჩხბურთე კლუბი)|მანჩესტერ იუნაიტედი]]|clubnat=ENG}} {{nat fs g player|no=13|pos=DF|name=[[რენატუ ვეიგა]]|age={{birth date and age|2003|7|29|df=y}}|caps=5|goals=0|club=[[ჩელსი (ოკუჩხბურთე კლუბი)|ჩელსი]]|clubnat=ENG}} {{nat fs g player|no=14|pos=DF|name=[[გონსალუ ინასიუ]]|age={{birth date and age|2001|8|25|df=y}}|caps=16|goals=2|club=[[სპორტინგი (ოკუჩხბურთე კლუბი, ლისაბონი)|სპორტინგი]]|clubnat=POR}} {{nat fs g player|no=25|pos=DF|name=[[ნუნუ მენდეში]]|age={{birth date and age|2002|6|19|df=y}}|caps=37|goals=1|club=[[პარი სენ-ჟერმენი]]|clubnat=FRA}} {{nat fs break|background=#900020}} {{nat fs g player|no=6|pos=MF|name=[[ჟუაუ პალინია]]|age={{birth date and age|1995|7|9|df=y}}|caps=34|goals=2|club=[[ბაიერნი (ოკუჩხბურთე კლუბი)|ბაიერნი]]|clubnat=GER}} {{nat fs g player|no=8|pos=MF|name=[[ბრუნუ ფერნანდეში]]|age={{birth date and age|1994|9|8|df=y}}|caps=80|goals=25|club=[[მანჩესტერ იუნაიტედი (ოკუჩხბურთე კლუბი)|მანჩესტერ იუნაიტედი]]|clubnat=ENG}} {{nat fs g player|no=10|pos=MF|name=[[ბერნარდუ სილვა]]|other=<small>ვიცე-კაპიტანი</small>|age={{birth date and age|1994|8|10|df=y}}|caps=102|goals=13|club=[[მანჩესტერ სიტი (ოკუჩხბურთე კლუბი)|მანჩესტერ სიტი]]|clubnat=ENG}} {{nat fs g player|no=15|pos=MF|name=[[ჟუაუ ნევეში]]|age={{birth date and age|2004|9|27|df=y}}|caps=16|goals=0|club=[[პარი სენ-ჟერმენი]]|clubnat=FRA}} {{nat fs g player|no=18|pos=MF|name=[[რუბენ ნევეში]]|age={{birth date and age|1997|3|13|df=y}}|caps=58|goals=0|club=[[ალ-ჰილალი (ოკუჩხბურთე კლუბი)|ალ-ჰილალი]]|clubnat=KSA}} {{nat fs g player|no=19|pos=MF|name=[[პედრუ გონსალვეში]]|age={{birth date and age|1998|6|28|df=y}}|caps=3|goals=0|club=[[სპორტინგი (ოკუჩხბურთე კლუბი, ლისაბონი)|სპორტინგი]]|clubnat=POR}} {{nat fs g player|no=23|pos=MF|name=[[ვიტორ მაჩადუ პერეირა|ვიტინია]]|age={{birth date and age|2000|2|13|df=y}}|caps=29|goals=0|club=[[პარი სენ-ჟერმენი]]|clubnat=FRA}} {{nat fs break|background=#900020}} {{nat fs g player|no=7|pos=FW|name=[[კრიშტიანუ რონალდუ]]|other={{კაპიტანი}}|age={{birth date and age|1985|2|5|df=y}}|caps=221|goals=[[კრიშტიანუ რონალდუშით ერეფოშქაშე მითნაღელი გოლეფიშ ერკებული|138]]|club=[[ალ-ნასრი (ოკუჩხბურთე კლუბი)|ალ-ნასრი]]|clubnat=KSA}} {{nat fs g player|no=9|pos=FW|name=[[გონსალუ რამოსი]]|age={{birth date and age|2001|6|20|df=y}}|caps=16|goals=9|club=[[პარი სენ-ჟერმენი]]|clubnat=FRA}} {{nat fs g player|no=11|pos=FW|name=[[ჟოაუ ფელიქსი]]|age={{birth date and age|1999|11|10|df=y}}|caps=45|goals=9|club=[[ჩელსი (ოკუჩხბურთე კლუბი)|ჩელსი]]|clubnat=ENG}} {{nat fs g player|no=16|pos=FW|name=[[ფრანსიშკუ ტრინკანი]]|age={{birth date and age|1999|12|29|df=y}}|caps=11|goals=2|club=[[სპორტინგი (ოკუჩხბურთე კლუბი, ლისაბონი)|სპორტინგი]]|clubnat=POR}} {{nat fs g player|no=17|pos=FW|name=[[რაფაელ ლეაუ]]|age={{birth date and age|1999|6|10|df=y}}|caps=40|goals=5|club=[[მილანი (ოკუჩხბურთე კლუბი)|მილანი]]|clubnat=ITA}} {{nat fs g player|no=20|pos=FW|name=[[პედრუ ნეტუ]]|age={{birth date and age|2000|3|9|df=y}}|caps=17|goals=2|club=[[ჩელსი (ოკუჩხბურთე კლუბი)|ჩელსი]]|clubnat=ENG}} {{nat fs g player|no=21|pos=FW|name=[[დიოგუ ჟოტა]]|age={{birth date and age|1996|12|4|df=y}}|caps=49|goals=14|club=[[ლივერპული (ოკუჩხბურთე კლუბი)|ლივერპული]]|clubnat=ENG}} {{nat fs g player|no=24|pos=FW|name=[[როდრიგუ მორა]]|age={{birth date and age|2007|5|5|df=y}}|caps=0|goals=0|club=[[პორტუ (ოკუჩხბურთე კლუბი)|პორტუ]]|clubnat=POR}} {{nat fs g player|no=26|pos=FW|name=[[ფრანსიშკუ კონსეისაუ]]|age={{birth date and age|2002|12|14|df=y}}|caps=11|goals=2|club=[[იუვენტუსი (ოკუჩხბურთე კლუბი)|იუვენტუსი]]|clubnat=ITA}} {{nat fs end|background=#900020}} ==რესურსეფი ინტერნეტის== {{commonscat|Portugal national football team}} *[http://www.portugoal.net Portugoal.net Portuguese football site (English)] *[http://www.fpf.pt Portuguese Football Federation official website] {{pt icon}} *[http://www.fpf.pt/portal/page/portal/PORTAL_FUTEBOL/SELECCOES/CLUBE_PORTUGAL/ Portuguese National Football Team] {{Webarchive|url=https://web.archive.org/web/20120403010945/http://www.fpf.pt/portal/page/portal/PORTAL_FUTEBOL/SELECCOES/CLUBE_PORTUGAL/ |date=2012-04-03 }} {{pt icon}} *[http://www.pfutebol.com Portuguesefutebol.com Source for Portuguese football] {{Webarchive|url=https://web.archive.org/web/20150416063412/http://www.pfutebol.com/ |date=2015-04-16 }} *[http://www.soccerpulse.com/forum/index.php?showforum=27 Portuguese football info and discussion forum] *[http://soccernet.espn.go.com/team?id=482&cc=5739 Portugal on ESPN Soccernet] {{Webarchive|url=https://web.archive.org/web/20121021071222/http://soccernet.espn.go.com/team?id=482&cc=5739 |date=2012-10-21 }} *[http://www.rsssf.com/tablesp/port-intres.html RSSSF archive of results 1921-2003] *[http://www.rsssf.com/miscellaneous/port-recintlp.html RSSSF archive of most capped players and highest goalscorers] *[http://www.rsssf.com/miscellaneous/port-coach-triv.html RSSSF archive of coaches 1921-] *[http://thestar.com.my/sports/story.asp?file=/2008/5/22/sports/21322719&sec=sports Portugal international players] *[http://infordesporto.sapo.pt/Comunidades/SeleccaoNacional/seleccaonacional_internacionalizacoes.asp Portugal international players] {{Webarchive|url=https://web.archive.org/web/20081024163041/http://infordesporto.sapo.pt/Comunidades/SeleccaoNacional/seleccaonacional_internacionalizacoes.asp |date=2008-10-24 }} {{pt icon}} *{{twitter|@selecaoportugal}} {{მერკე}} [[კატეგორია:ევროპაშ ერუანული ოკუჩხბურთე ნაკორობეფი]] [[კატეგორია:პორტუგალიაშ კუჩხბურთი]] 5hl8cbhfldtmrezkqbhh29a9j98b6fn აფხაზეფი 0 22227 240048 236075 2025-06-09T00:35:49Z InternetArchiveBot 15194 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 240048 wikitext text/x-wiki [[ფაილი:Abchaz people ka.svg|{{ფაქტი|აფხაზური მახორობა [[კავკაცია|კავკაციაშ]] რეგიონიშ ქიანეფს (2003)}}|მინიატიურა|250პქ]] '''აფხაზეფი''' ({{lang-ab|аҧсуаа}}, ''აფსუა'') — ოორუე-ბჟადალ [[საქორთუო]]ს, [[აფხაზეთი]]შ ისტორიულ რეგიონს მახორუ აბორიგენული მახორობა. რაგადანა [[აფხაზური ნინა|აფხაზურ ნინაშა]]. [[1989]] წანაშ ეჭარუათ, [[საქორთუო]]ს 95,9 ვითოში აფხაზი ოხორანდჷ, [[აფხაზეთიშ ავტონომიური სხუნუეფიშ სოციალისტური რესპუბლიკა|აფხაზეთის ასსრ]]-ს — 93,3 ვითოში, ედომუშამო [[სხუნუეფიშ რსხუ]]ს - 105 ვითოში. აფხაზეფი ეთნიკურო ომოჯგირჷნა [[ოორუე კავკაცია|ოორუეკავკაციური]] წჷმოულობაშ ადიღეფს დო [[უბიხეფი|უბიხეფს]]. თეშ მოხ, აფხაზეფს კულტურულ დო საჸოფარინე მუშობურობეფს უმოსი საართო უღჷნა [[ქორთუეფი|ქორთუეფწკჷმა]]. თინეფწკჷმა ოშწანურეფიშ გოძვენას ართობურ წორორინაქ დო მეჭედელ ურთიართობაქ გოლინა იღვენუ მუჭოთ [[აფხაზური ნინა|ნინაშა]], თეშ აფხაზეფიშ [[ანთროპოლოგია]]შა ხოლო. == ლიტერატურა == * მარიამ ლორთქიფანიძე, აფხაზები და აფხაზეთი, [[თბილისი]], [[1990]] * გერონტი გასვიანი, აფხაზეთი: ძველი და ახალი აფხაზები, [[თბილისი]], [[1998]] * გერონტი გასვიანი, ქართველი მეცნიერები პავლე ინგოროყვას შეხედულებებზე აფხაზეთისა და აფხაზების შესახებ, ივ. ჯავახიშვილის სახ. ისტ. და ეთნოლოგ. ინ-ტი, სულხან-საბა ორბელიანის პედაგოგ უნ-ტი, [[თბილისი]], [[2003]] * ეთნოსები საქართველოში, აფხაზები, სტატიის ავტორი გ. ანჩაბაძე, [[თბილისი]], ( სტატია „აფსუა“) * როლანდ თოფჩიშვილი, კავკასიის ხალხთა ეთნოგრაფია ეთნიკური ისტორია, ეთნიკური კულტურა, აფხაზები, [[თბილისი]], [[2007]] * კახა კვაშილავა, ისტორიული სამურზაყანო (XVII-XVIII სს. მიჯნა – 1840 წ.). საკვალიფიკაციო ნაშრომი ისტორიის დოქტორის /Ph.D/ აკადემიური ხარისხის მოსაპოვებლად, [[თბილისი]], [[2009]] * ნუგზარ ანთელავა , აფხაზური მითები , რიტუალები , სიმბოლოები .( სტატია „აფსუა“) გვერდი 80 - 81 [[თბილისი]],[[2006]] * {{ru icon}} Ш. Нал-Ипа, Апхазы, [[სოხუმი|Сухуми]], [[1960]] * {{ru icon}} З. В. Анчабадзе, Очерк энической истории абхазкого народа, [[სოხუმი|Сухуми]], [[1976]] * {{ru icon}} И. Г. Антелава. Очерки истории Абхазии XVII – XVIII вв., [[სოხუმი|Сухуми]], [[1951]] == რესურსეფი ინტერნეტის == * [http://www.qwelly.com/group/ebooks/forum/topics/afxazebi მ. ლორთქიფანიძე, აფხაზეფი დო აფხაზეთი, ქართი, 1990] * [http://www.nplg.gov.ge/dlibrary/collect/0001/000725/00-Tituli.pdf ეთნოსეფი საქორთუოს, აფხაზეფი, სტატიაშ ავტორი გ. ანჩაბაძე, ქართი, 2008] {{Webarchive|url=https://web.archive.org/web/20120128210231/http://www.nplg.gov.ge/dlibrary/collect/0001/000725/00-Tituli.pdf |date=2012-01-28 }} * [http://www.nplg.gov.ge/dlibrary/collect/0001/000273/kavkaciic%20xalx.pdf როლანდ თოფჩიშვილი, კავკაციაშ კათეფიშ ეთნოგრაფია ეთნიკური ისტორია, ეთნიკური კულტურა, აფხაზეფი, ქართი, 2007, ხს. 213]{{Dead link|date=September 2023 |bot=InternetArchiveBot |fix-attempted=yes }} * [http://abkhazia.gov.ge/?lg=1&EM=&defmenuid=tm00201&sitedoc=13 აფხაზეთიშ ავტონომიური რესპუბლიკაშ თარობა, ოფიციალური საიტი, ისტორია] * [http://geogen.ge/index.php?id_menu_up=4&lang=&id_menu=23&abc=0 ქორთული გენეალოგია, აფხაზეფი] {{Webarchive|url=https://web.archive.org/web/20160306032902/http://geogen.ge/index.php?abc=0&id_menu=23&id_menu_up=4&lang= |date=2016-03-06 }} * [http://www.scribd.com/doc/2273647/Conflict-in-Abkhazia-Cases-of-Cooperation-in-Favour-of-Caucasus-or-again-Confederation-of-Caucasus პროფ. ტარიელ ფუტკარაძე: კონფლიქტი აფხაზეთის, მუჭო იხორციელებუდჷ „წორომალობა კავკაციაშ საჯგიროთ“ დო კინ კავკაციაშ ფედერაცია?!] * [http://www.presa.ge/new/?m=news&NID=3495 ბათუმს აფხაზეფიშ მაართა ფორუმქ გინწყუ 26.12.2010 // Presa.ge] {{Webarchive|url=https://web.archive.org/web/20150930063136/http://www.presa.ge/new/?m=news&NID=3495 |date=2015-09-30 }} * [http://nobility.pro/ge/statia/120-anchabadzeta-gvaris-istoria ანჩაბაძეფიშ გვარიშ ისტორია]{{Dead link|date=February 2025 |bot=InternetArchiveBot |fix-attempted=yes }} {{გიშნაგორა}} [[კატეგორია:მოსოფელიშ კათეფი]] [[კატეგორია:კავკაციაშ კათეფი]] [[კატეგორია:აფხაზეფი]] hd6jsv0ggw9la4n1os3y76v256ikyaa ოსმალეთიშ იმპერია 0 22802 240060 218235 2025-06-09T06:39:54Z InternetArchiveBot 15194 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 240060 wikitext text/x-wiki {{ინფოდაფა ჸოფილი ქიანა |ჯოხო =ოსმალეთიშ იმპერია |ოდაბადური ჯოხო ={{lang-ota|„دَوْلَتِ عَلِيّهٔ عُثمَانِیّهί“}}<br />{{lang-tr|Osmanlı İmparatorluğu}} |სტატუსი =[[იმპერია]] |ჰიმნი =[[ოსმალეთიშ იმპერიაშ ჰიმნი]] |შილა =Flag of the Ottoman Empire (Thicker Crescent).svg |შილაშ ეჭარუა =[[ოსმალეთიშ იმპერიაშ შილა|შილა]] |გერბი =Osmanli-nisani.svg |გერბიშ ეჭარუა =[[ოსმალეთიშ იმპერიაშ გერბი|გერბი]] |რუკა =OttomanEmpireIn1683.png |ეჭარუა = ოსმალეთიშ იმპერია 1683 |p1 = |flag_p1 = |p2 = |flag_p2 = |p3 = |flag_p3 = |p4 = |flag_p4 = |დორსხუაფილი რე =1299 |ლიკვიდირაფილი რე =1922 |s1 = |flag_s1 = |s2 = |flag_s2 = |s3 = |flag_s3 = |s4 = |flag_s4 = |დევიზი =دولت ابد مدت<br />დევლეთ-ი ებედ-მიუდდეთ<ref>{{cite web|url=http://www.newworldencyclopedia.org/entry/Ottoman_Empire|title=Ottoman Empire general information|date=2014-07-30}}</ref><br />„იროიანი სახენწჷფო” |ნანანოღა =[[სოღუთი]] ([[1299]]-[[1326]])<br />[[ბურსა (ნოღა)|ბურსა]] ([[1326]]-[[1365]])<br />[[ედირნე (ნოღა)|ედირნე]]<ref>„1363 წანას ოსმალეთიშ ნანანოღაქ გჷნოღალირქ იჸუ ბურსაშე ედირნეშა, თეშ უკუჯინალო, ბურსაქ ქისქილიდჷ შურიელი დო ეკონომიკური შანულობა.“[http://www.kultur.gov.tr/–EN,33810/ottoman-capital-bursa.html ''ოსმალეთიშ ნანანოღა ბურსა'']. თურქეთიშ რესპუბლიკაშ კულტურაშ დო ტურიზმიშ სამინისტროშ ოფიციალური საიტი. Retrieved 26 June 2013.</ref> ([[1365]]-[[1453]])<br />[[კონსტანტინოპოლი]]<ref>[http://www.ambioni.ge/stamboli დაპყრობამდე თურქები ქალაქს სტამბოლს უწოდებედნენ. სახელი წარმოიშვა ბერძნული ფრაზიდან (ისტიმ ბოლინ), ეგურ დიალექტზე (ისტამ ბოლინ), რაც ნიშნავს „ქალაქში“, „ქალაქისკენ“, ან „ქალაქის ცენტრში“, მორო ოფიციალურად სახელი „ქუსტანტანია“ გამოიყენებოდა, რაც არაბულად „კონსტანტინეს ქალაქს“ ნიშნავს. ქალაქს ოფიციალურად სტამბოლი მხოლოდ 1930 წლის 28 მარტს ეწოდა.]</ref>([[1453]]-[[1922]]) |ნოღეფი = |ნინა =[[ოსმალეფიშ თურქული ნინა|ოსმალური]], [[ქორთული ნინა|ქორთული]], [[სპარსული ნინა|სპარსული]], [[ბოსნიური ნინა|ბოსნიური]], [[ურიული ნინა|ურიული]] [[ოსმალეთიშ იმპერიაშ ნინეფი|დო შხვა]] |რელიგია =[[სუნიზმი|ისლამი: სუნიზმი]] |ვალუტა =[[აკჩე]], [[პარა (ვალუტა)|პარა]], [[სულთანი (ვალუტა)|სულთანი]], [[ქურუში]], [[ლირა (ოტომანეფიშ ვალუტა)|ლირა]] |გეძინელი პარამეტრი = |პარამეტრიშ შქაგური = |ფართობი = |მახორობა = |დუდალაშ ფორმა =[[აბსოლუტური მონარქია]]<br />(1299–1876)<br />(1878–1908)<br />(1920–1922)<br />[[კონსტიტუციური მონარქია]]<br />(1876–1878)<br />(1908–1920) |დინასტია = |მადუდეშ ტიტული = [[ოსმალეთიშ სულთანეფიშ ერკებული|სულთანი]] |მადუდე1 = [[ოსმან I]]&nbsp;<small>(მაართა)</small> |მადუდე1 წანა = 1299–1326 |მადუდეშ ტიტული2 = <!--გჷმორინაფა მადუდეშ ტიტულიშ თირუაშ შვანს--> |მადუდე2 = [[მეჰმედ VI]]&nbsp;<small>(ეკონია)</small> |მადუდე2 წანა = 1918–1922 |მადუდეშ ტიტული3 = |მადუდე3 = |მადუდე3 წანა = |მადუდეშ ტიტული4 = |მადუდე4 = |მადუდე4 წანა = |მადუდეშ ტიტული5 = |მადუდე5 = |მადუდე5 წანა = |მადუდეშ ტიტული6 = |მადუდე6 = |მადუდე6 წანა = |გეძინელი პარამეტრი1 = |პარამეტრიშ შქაგური1 = |ეტაპი1 = |თარიღი1 = |წანა1 = |ეტაპი2 = |თარიღი2 = |წანა2 = |ეტაპი3 = |თარიღი3 = |წანა3 = |ეტაპი4 = |თარიღი4 = |წანა4 = |ეტაპი5 = |თარიღი5 = |წანა5 = |ეტაპი6 = |თარიღი6 = |წანა6 = |გეძინელი პარამეტრი2 = |პარამეტრიშ შქაგური2 = |წოხოლენი = |წიმოხონი1 = |წიმოხონი2 = |წიმოხონი3 = |წიმოხონი4 = |წიმოხონი5 = |წიმოხონი6 = |წიმოხონი7 = |გეჸვენჯი = |მონძე1 = |მონძე2 = |მონძე3 = |მონძე4 = |მონძე5 = |მონძე6 = |მონძე7 = |მონძე8 = |მონძე9 = |მონძე10 = |მონძე11 = |მონძე12 = |მონძე13 = |მონძე14 = |მონძე15 = |სქოლიო = }} '''ოსმალეთიშ იმპერია''' ({{lang-ota|„دَوْلَتِ عَلِيّهٔ عُثمَانِیّهί“}}, ''Devlet-i Âliye-i Osmâniyye''; {{lang-tr|Osmanlı İmparatorluğu}}), თაშნეშე ისტორიულო მიშინუაფუდჷ, მუჭოთ '''თურქეთიშ იმპერია''' ვარდა '''თურქეთი''' — [[სუნიზმი|სუნიტურ-ისლამური]] სახენწჷფო, დირსხუ ოღუზი თურქეფიშით [[ოსმან I]]-აშ დუდალათ ოორუე-ბჟადალ [[ანატოლია]]ს, [[1299]] წანას.<ref>{{cite web |url=http://www.britannica.com/EBchecked/topic/434996/Ottoman-Empire |title=Ottoman Empire |publisher=Britannica Online Encyclopedia |accessdate=11 February 2013}}</ref> [[მურად I]]-აშით [[ბალკანეთიშ ჩქონი|ბალკანეთის]] წარმაფილი დოჸუნაფონი ლჷმეფიშ დო [[მეჰმედ II]]-შით [[კონსტანტინოპოლი]]შ ხეშა ეშაჸოთამაშ შედეგო ოსმალეთიშ სასულთანოქ იმპერიათ გეგმიქიმინჷ.<ref>The A to Z of the Ottoman Empire, by Selcuk Aksin Somel, 2010, p.179</ref><ref>The Ottoman Empire, 1700–1922, Donald Quataert, 2005, p.4</ref><ref>The Grove Encyclopedia of Islamic Art and Architecture: Delhi to Mosque, Jonathan M. Bloom, Sheila Blair, 2009. p.82</ref> [[XVI ოშწანურა|XVI]]-[[XVII ოშწანურა|XVII]] ოშწანურეფს, მუში სინძალიერეშ კონკას, სულთან [[სულეიმან I|სულეიმან კანონმადვალუშ]] მართუალაშ ბორჯის, ოსმალეთიშ იმპერია რდჷ ჭყანიერი მიარეეთნიკური დო მიარენინამი იმპერია, ნამუთ აკონტროლენდჷ [[ობჟათე-ბჟაეიოლი ევროპა|ობჟათე-ბჟაეიოლ ევროპაშ]], [[ბჟადალი აზია|ბჟადალ აზიაშ]], [[კავკაცია|კავკაციაშ]], [[ოორუე აფრიკა|ოორუე აფრიკაშ]] დო [[სომალიშ ჩქონი]]შ უმენტაშ ნორთის.<ref>{{cite web|url=http://www.oxfordislamicstudies.com/article/opr/t125/e1801?_hi=41&_pos=3 |title=Ottoman Empire |publisher=Oxford Islamic Studies Online |date=6 May 2008 |accessdate=26 August 2010}}</ref> [[XVII ოშწანურა|XVII ოშწანურაშ]] დაჭყაფუს, იმპერია იკათუანდჷ 32 პროვინციას დო მიარე ვასალურ სახენწჷფოს. თინეფშე კანკალექ მოგვიანაფათ იმპერიაშ აკოდგინალუაშა გემშართჷ, დოსქილადირეფქ ოშწანურეფიშ მალობაშ ბორჯის შხვადოშხვა სახეშ ავტონომია მიღეს. == რესურსეფი ინტერნეტის == * [http://courses.washington.edu/otap/ ოსმალეფიშ ტექსტეფიშ პროექტი - ვაშინგტონიშ უნივერსიტეტი] * [http://www.oxfordislamicstudies.com/article/opr/t125/e1801?_hi=0&_pos=3 ოსმალეთიშ იმპერია ოქსფორდიშ ისლამიშ ლექსიკონს] {{Webarchive|url=https://web.archive.org/web/20101206170311/http://www.oxfordislamicstudies.com/article/opr/t125/e1801?_hi=0&_pos=3 |date=2010-12-06 }} * [http://www.umich.edu/~turkish/ottemp.html ოსმალეთიშ იმპერია: - მიჩიგანიშ უნივერსიტეტი] * [http://www.turizm.net/turkey/history/ottoman.html ოსმალეთიშ იმპერია: ქრონოლოგირი მუნაჩემეფი] * [http://www.wsu.edu/~dee/OTTOMAN/OTTOMAN1.HTM მოსოფელიშ ცივილიზაცია: ოსმალეფი] {{Webarchive|url=https://web.archive.org/web/19991008042702/http://www.wsu.edu/~dee/OTTOMAN/OTTOMAN1.HTM |date=1999-10-08 }} * [http://aton.ttu.edu Turkish Oral Narrative] * [http://www.ottomanliterature.com/ ოსმალეფიშ თურქული ლიტერატურაშ ინტერნეტ ბიბლიოგრაფია] ჟირნინამი (თურქულ, ინგლისური) საიტი. * [http://www.theottomans.org ინფორმაცია ოსმალეფიშ გეშა] * [http://www.unm.edu/~phooper/thesis_condensed.pdf აძვილებითი გჷნოხორინეფი ოსმალეთიშ იმპერია ორდოშიან ხანს] 1300–1600 წანეფი * [http://muze.sabanciuniv.edu/collection/collection.php?lngCollectionID=11&bytLanguageID=2 ოსმალეფიშ კალიგრაფიაშ კოლექცია] {{Webarchive|url=https://web.archive.org/web/20080423225331/http://muze.sabanciuniv.edu/collection/collection.php?lngCollectionID=11&bytLanguageID=2 |date=2008-04-23 }} * [http://ottomanblog.wordpress.com ოსმალეფიშ ისტორიაშ ბლოგი] * [http://www.turkeyswar.com თურქეთი მაართა მოსოფელიშ ლჷმას] * [http://www.ottomanpalestine.com პალესტინა ოსმალეფიშ მართუალაშ გიმე] * [http://www.karalahana.com/fotograflar/thumbnails.php?album=35 ოსმალეთიშ იმპერიაშ გრავიურეფი - HQ ხარისხიშ სურათეფიშ გალერეა] {{Webarchive|url=https://web.archive.org/web/20111105010433/http://www.karalahana.com/fotograflar/thumbnails.php?album=35 |date=2011-11-05 }} * [http://www.dilbilimi.net/osmanli_arastirmalari.htm ოსმალეფიშ რკუალაშ რესურსეფი ინტერნეტის] == სქოლიო == {{სქოლიო}} {{მერკე}} {{იმპერიეფი}} [[კატეგორია:ისტორიული სახენწჷფოეფი]] [[კატეგორია:თურქეთიხ ისტორია]] [[კატეგორია:არხო ბჟაეიოლიშ ისტორია]] [[კატეგორია:ოსმალეთიშ იმპერია]] [[კატეგორია:ჸოფილი იმპერიეფი]] 9u3nhxpnrug7fifot00wwpbmqzl3b8j ბურეფი 0 24693 240053 206623 2025-06-09T01:49:01Z InternetArchiveBot 15194 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 240053 wikitext text/x-wiki [[ფაილი:Boerfamily1886.jpg|მინი|ბურეფიშ ფანია, 1886]] '''ბურეფი''', თაშნეშე ჩინებული მუჭოთ '''აფრიკანარეფი''' — [[ჰოლანდიარეფი|ჰოლანდიარი]] გინოხორაფილეფიშ გამნარყეფი [[ობჟათე აფრიკა]]ს. ჯვეშჰოლანდიურ ნინაშა ზიტყვა ''ბურ'' შანენდჷ ყაზახის. ბურეფიშ ნინას ჯოხო [[აფრიკაანსი]]. <ref name="burskrug"> [http://www.krugosvet.ru/enc/istoriya/BURI.html ენციკლოპედია "მოსოფელიშელახ"], ბურეფი,<small> გჷნიმორსჷ 2010 წანაშ 14 გჷმათუთას.</small></ref> [[XVII ოშწანურა]]ს, ჰოლანდიურ ოსტ-ინდურ კომპანიაქ დიჭყჷ [[კეთილი იმენდიშ კოდმე]]შ გჷმორინაფა ოჭკომალიშ დო წყარიშ ხაზირეფიშ გაფშაფალო ბჟაეიოლშე შარალუაშ ბორჯის. [[1652]] წანას, კომპანიაშ 60 მოხელექ [[იან ვან რიბეკი]]შ დუდალათ ქჷდარსხუეს მაართა ჰოლანდიური ოხორუე. გინოხორაფილეფს შქას ჩინებული პიჯი რდჷ საიმონ ვან დერ სტელი, სტელენბოშიშ დჷმარსხუაფალი. [[XVII ოშწანურა]]შ ბოლოს, [[ლუი XIV (საფრანგეთი)|ლუდოვიკო XIV]]-იშით [[ნანტიშ ედიქტი]]შ გოუქვაფაშ უკული აფრიკაშ ობჟათეშე დუდმიოფორუ ქოძირეს ფრანგი ჰუგენოტეფიშ ფანიეფქ. ჰოლანდიარეფს დო ფრანგეფს შქას მოხვალამირი დაკეფიშ გეშა ჰოლანდიურ ოსტ-ინდურ კომპანიაქ გოხურგუ იმიგრაცია. [[XVIII ოშწანურა]]ს, ოორუეშე ბურეფქ მიოჭირინეს წყარმალუ [[ორანჟი]]ს. თე წყარმალუშ წყარპიჯის ბურეფს ქჷდოხვადჷ ბანტუნინამ მახორობაქ, ნამუეფქჷთ ბურეფს ოურდუმე აწმარენჯობა გუწიეს. [[საქორთუო]]შ სახენწჷფო მინისტრი დიასპორეფიშ ოკითხირეფს, მირზა (პაპუნა) დავითაიაქ აფრიკას ვიზიტით რინაშ ბორჯის, ბურ ფერმერეფწკჷმა გოფორმაფილი მემორანდუმი ქჷმიღჷ.<ref>[http://www.youtube.com/watch?v=RWuCiTpC00w ტელეკომპანია რუსთავი 2], "პოსტ-სკრიპტუმი". </ref> მემორანდუმიშ არძაშე შანულამი ბირგული რე მერძიაფა, ნამუთ ოხუ ბური ფერმერეფიშ ბიზნესიშ გინოღალას [[საქორთუო]]შა. 40 000 ბური ფერმერიშ ჯოხოთ [[საქორთუო]]შა ქჷმორთჷ ბურ ფერმერეფიშ დელეგაციაქ, ნამუსჷთ [[საქორთუო]]შ პოლიციაშ ეფექტურალა პიჯულო დინოხოლენ საქვარეფიშ მინისტრიქ გაჩინებაფუ. ბური ფერმერეფიშ შილებუამი საქორთუოს დოხორაფაქ გჷმიჭანუ სერიოზული დება ქორთულ ჯარალუას<ref>[http://www.newsgeorgia.ru/politics/20101014/213543306.html Грузинские лейбористы не хотят "переселения в Грузию южно-африканских буров"] {{Webarchive|url=https://web.archive.org/web/20101016100749/http://www.newsgeorgia.ru/politics/20101014/213543306.html |date=2010-10-16 }}; newsgeorgia.ru.</ref>დო ინტერნეტ ოფირჩას. == თაშნეშე ქოძირით == * [[აფრიკანარეფი]] == სქოლიო == {{სქოლიო}} == რესურსეფი ინტერნეტის == * [http://www.presa.ge/new/?m=news&NID=5404 BBC - საქორთუოშა მულაქ ბურეფს იმენდეფქ ვაგუმართჷ // Presa.ge, 03.03.2011] {{Webarchive|url=https://web.archive.org/web/20151018041345/http://www.presa.ge/new/?m=news&NID=5404 |date=2015-10-18 }} [[კატეგორია:აფრიკაშ კათეფი]] [[კატეგორია:მოსოფელიშ კათეფი]] 46ft69eotldym8g8ojlwwmm70l41up0 ჰოკაიდოშ პრეფექტურა 0 25111 240065 127033 2025-06-09T10:37:57Z InternetArchiveBot 15194 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 240065 wikitext text/x-wiki {{ინფოდაფა ადმინისტრაციული ართული |ოდაბადური ჯოხო = {{lang-ja|北海道}} |მარგალური ჯოხო = ჰოკაიდოშ პრეფექტურა |პანორამა = Large map of Hokkaido within Japan.png |შილა = Flag of Hokkaido Prefecture.svg |გერბი = Emblem of Hokkaido Prefecture.svg |ქიანა = იაპონია |ჰიმნი = |სტატუსი =პრეფექტურა |მიშმურს = ჰოკაიდოშ რეგიონშა |ფორჷნს = კოკი [[ჰოკაიდო]]ს |ნანანოღა= [[საპორო]] |შხუ ნოღა = |შხუ ნოღეფი= |თარიღი = |მადუდე =გუბერნატორი |მადუდე 2 = |ედპ = |ედპ წანა= |ედპ აბანი = |ედპ აშმ = |ნინა = |ნინეფი = |მახორობა =5 520 883 |ეჭარუაშ წანა =2010 |აბანი მახორობათ =7 |ერუანული აკოდგინალუა = |მეჭედალა =66,2 |კონფესია = |ფართობი =83 456,64 |აბანი ფართობით =1 |ფართობიშ პროცენტი = 22% |მაქსიმალური სიმაღალა = |ოშქაშე სიმაღალა = |მინიმალური სიმაღალა = |განედი = |გრძედი = |რუკა= Map of Japan with highlight on 02edit Hokkaido prefecture.svg |ბორჯიშ ორტყაფუ= |აბრევიატურა = |ISO = JP-01 |FIPS= |ოტელეფონე კოდი = |ოფოსტე ინდექსეფი = |ინტერნეტ-დომენი = |ოავტომობილე ონომერე შანეფი = |საიტი =http://www.pref.hokkaido.lg.jp/ |კატეგორია ვიკიოწკარუეს = |პარამეტრი1 = |მიკოღანკუა = {{coord|43|4|N|141|54|E|type:adm1st_region:JP_scale:500000}} }} {{nihongo|'''ჰოკაიდო'''|北海道|ჰოკაიდო:|}} — [[იაპონია]]შ [[იაპონიაშ პრეფექტურეფი|პრეფექტურა]], იდვალუაფუ კინ თე ჯოხოშ კოკი [[ჰოკაიდო]]ს, იაპონიაშ სიდიდაშ მეჯინათ მაჟირა კოკი, თაშნეშე მორჩილი არხოს მადვალუ კოკეფს შქას. 47 პრეფექტურაშე არძაშე ოორუეშე მადვალუ. [[სანგარიშ საროტი|ცუგარუშ საროტი]] ჰოკაიდოს გიშმართუნს [[ჰონსიუ]]შე, მორო თე ჟირი კოკი ართიანშა რე მერსხილი რკინაშარაშ [[სეიკენი|სეიკენიშ გვირაბით]]. პრეფექტურაშ ადმინისტრაციული ცენტრი — ნოღა [[საპორო]]. == რესურსეფი ინტერნეტის == * [http://www.pref.hokkaido.lg.jp/foreign/russian.htm ოფიციალური ხასჷლა] * [http://www.pref-hokkaido.ru/ ჰოკაიდოშ პრეფექტურაშ წჷმმარინალობა სახალინს] {{Webarchive|url=https://web.archive.org/web/20170516091847/http://pref-hokkaido.ru/ |date=2017-05-16 }} {{მერკე-იაპონია}} [[კატეგორია:ჰოკაიდოშ პრეფექტურა|*]] [[კატეგორია:იაპონიაშ პრეფექტურეფი]] 0tpk74xnnyp0wajsuxbn3p98iyerr68 ბაღანა 0 26557 240049 227888 2025-06-09T00:49:56Z InternetArchiveBot 15194 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 240049 wikitext text/x-wiki [[ფაილი:Children in a Primary Education School.JPG|მინი]] '''ბაღანა''' — [[ადამიერი]]შ რინაშ თი პერიოდი, მუჟამსჷთ თინა [[ჩქჷჩქი]] ვარენ დო ძინაშ თება დიო ვაუთებუნ. ადამიერიშ ბაღანობა თის დოჸუნს, თუ ნამ ჯარალუას ოხორანს თინან. [[გოერო]]შ ადამიერიშ ნებეფიშ თხილუაშ კომისია 18 წანაშახ ხანიშ ადამიერს ბაღანათ კოროცხუნს. == თაშნეშე ქოძირით == *[[ართი ბაღანაშ პოლიტიკა]] *[[გოეროშ ბაღანეფიშ ფონდი]] == რესურსეფი ინტერნეტის == {{Commons category|Children}} * [http://www.wikiprogress.org/index.php/Child_well-being Child well-being on wikiprogress.org] {{Webarchive|url=https://web.archive.org/web/20110729011047/http://www.wikiprogress.org/index.php/Child_well-being |date=2011-07-29 }} * [http://www.unicef.org United Nations Children's Fund (UNICEF)] * [http://www.oecd.org/social/family/database Family database, OECD] * [http://www.theguardian.com/society/children Society (The Guardian)] {{მერკე}} [[კატეგორია:ადამიერი]] tn6hbv6sjglv2wxc0o9mitkq6gdennn ბოისე 0 29795 240051 206556 2025-06-09T01:26:05Z InternetArchiveBot 15194 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 240051 wikitext text/x-wiki {{ინფოდაფა დოხორინი |სტატუსი = ნოღა |მარგალური ჯოხო = ბოისე |ოდაბადური ჯოხო =Boise |ქიანა = ააშ |დუდალაშ თუდო = |პანორამა =Clearwater Analytics Boise.jpg |პანორამაშ სიგანა = |მუკნაჭარა = |შილა = Flag of Boise, Idaho.svg |შილმუკნაჭ = |გერბი =Boise Idaho City Seal.PNG |გერბმუკნაჭ = |გერბიშ სიგანა = |შილაშ სიგანა = |ჩარჩო = |ქიანაშ რუკა2 = |ქიანაშ რუკაშ ზჷმა2 = |მუკნაჭარა2= |lat_dir =N |lat_deg =43 |lat_min =37 |lat_sec = |lon_dir =W |lon_deg =116 |lon_min =12 |lon_sec = |CoordAddon = type:city(40361)_region:US-ID |CoordScale = |ქიანაშ რუკაშ ზჷმა = |ქიანაშ რუკა= |რეგიონიშ რუკაშ ზჷმა = |რეგიონიშ რუკა= |რაიონიშ რუკაშ ზჷმა = |რეგიონიშ ტიპი = ააშ-იშ ადმინისტრაციული დორთუალა{{!}}შტატი |რეგიონი = აიდაჰო |რეგიონი ცხირს = |დინოხოლენი დორთუალა = |რაიონიშ ტიპი = |რაიონი = |მადუდეშ ტიპი = ნოღაშ მერი{{!}}მერი |მადუდე = დეივ ბიტერი |დორსხუაფაშ თარიღი = 1863 |მაართა შინუა = |წოხოლენი ჯოხოეფი = |სტატუსი-შე = |ფართობი = 165,8 |სიმაღალაშ ტიპი= |დოხორინიშ ცენტრიშ სიმაღალა=830 |კლიმატი= |ოფიციალური ნინა= |მახორობა = 226,570 |ეჭარუაშ წანა = 2017 |მეჭედალა = 1,049.64 |აგლომერაცია = 709,845 |ერუანული აკოდგინალუა = |ორწუმობური აკოდგინალუა = |ეთნოქორონიმი = |ბორჯიშ ორტყაფუ =-7 |DST =ქო |ოტელეფონე კოდი = +1 208 / 986 |ოფოსტე ინდექსი = 83701–83799 |ოავტომობილე კოდი= |საიტი = www.cityofboise.org |კატეგორია ვიკიოწკარუეს =Boise, Idaho |add1n= |add1= }} '''ბოისე''' ({{lang-en|Boise}}) — [[ნოღა]] [[ააშ]]-ს. [[აიდაჰო]]შ შტატიშ [[ნანანოღა]] დო უდიდაში ნოღა. ბოისე იდვალუაფუ აიდაჰოშ შტატიშ ობჟათე-ბჟადალშე, [[ზუღაშ დონე]]შე 820 მეტრის. ნოღაშ ფართობი რე 165,8 კმ², 0,5 კმ² — წყარს უკებჷ. == უდიდაში დჷმასარჯებელი == ბოისეშ ირწანური ფინანსური რეპორტიშ მეჯინათ, [[2011]] წანას, ნოღაშ უშხუაში დჷმასარჯებელეფი რდეს: {| class="wikitable" |- ! # ! დჷმასარჯებელეფი ! დასარჯებულეფი |- |1 | [[აიდაჰო|აიდაჰოშ შტატი]] |14,300 |- |2 | წმ. ლუკაშ ჯოხოდვალაშ სინთელუანობაშ სისტემა |8,000 |- |3 | [[უოლ-მარტი]] |7,136 |- |4 | [[Micron Technology]] |5,000 |- |5 | [[Simplot]] |3,400 |} == პანორამეფი == {{wide image|Boise Panorama from Camelsback Park.jpg|900px|<center>ბოისე, ქამელსბაქიშ პარკიშე.}} {{wide image|Boise Aspen.jpg|800px|<center>ბოისეშ ბიზნეს ცენტრი.}} == ლიტერატურა == * {{Cite book|author=MacGibbon, Elma|title=Leaves of knowledge|publisher=Shaw & Borden Co|year=1904}} == რესურსეფი ინტერნეტის == {{Commons|Boise|Boise}} * {{official website|http://www.cityofboise.org/}} * [http://www.boise.org/ Boise Convention and Visitors Bureau] * [http://www.boisechamber.org/ Boise Area Chamber of Commerce] * [http://web1.boisestate.edu/research/history/teachingidaho/boise/Visions2050.pdf Boise, the City of Trees] {{Webarchive|url=https://web.archive.org/web/20140629094055/http://web1.boisestate.edu/research/history/teachingidaho/boise/Visions2050.pdf |date=2014-06-29 }} * [http://www.boiseartsandhistory.org/ Boise City Department of Arts & History] * [http://www.boiseschools.org/ Boise School District] * [http://issuu.com/uidahodigital/docs/gem1933/349 University of Idaho yearbook, 1933] {{Webarchive|url=https://web.archive.org/web/20150925152946/http://issuu.com/uidahodigital/docs/gem1933/349 |date=2015-09-25 }} == სქოლიო == {{სქოლიო}} {{მერკე-ააშ}} {{ააშ-იშ შტატეფიშ ნანანოღეფი}} [[კატეგორია:ააშ-იშ შტატეფიშ ნანანოღეფი]] [[კატეგორია:აიდაჰოშ ნოღეფი]] [[კატეგორია:ააშ-იშ ნოღეფი]] 0d8tlrvtsb96h3hs2c7o8eb60axcj2e აიბღა 0 31404 240046 206216 2025-06-08T23:51:12Z InternetArchiveBot 15194 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 240046 wikitext text/x-wiki {{ინფოდაფა დოხორინი |სტატუსი = ოფუტე |მარგალური ჯოხო = აიბღა |ოდაბადური ჯოხო ={{lang-ab|Аибӷа}} |ქიანა = საქორთუო |დუდალაშ თუდო = |პანორამა = |პანორამაშ სიგანა = |მუკნაჭარა = |შილა = |შილმუკნაჭ = |გერბი = |გერბმუკნაჭ = |გერბიშ სიგანა = |შილაშ სიგანა = |ჩარჩო = |ქიანაშ რუკა2 =GEO-AB-GG.svg |ქიანაშ რუკაშ ზჷმა2 = |მუკნაჭარა2= |lat_deg = 43 |lat_min = 34 |lat_sec = 18 |lon_deg = 40 |lon_min = 12 |lon_sec = 42 |CoordAddon = type:city(40361)_region:GE |CoordScale = |ქიანაშ რუკაშ ზჷმა = |ქიანაშ რუკა= |რეგიონიშ რუკაშ ზჷმა = |რეგიონიშ რუკა= |რაიონიშ რუკაშ ზჷმა = |რეგიონიშ ტიპი = ავტონომიური რესპუბლიკა |რეგიონი = აფხაზეთიშ არ |რეგიონი ცხირს = აფხაზეთიშ არ |დინოხოლენი დორთუალა = |რაიონიშ ტიპი =მუნიციპალიტეტი |რაიონი = გაგრაშ მუნიციპალიტეტი |მადუდეშ ტიპი = |მადუდე = |დორსხუაფაშ თარიღი = |მაართა შინუა = |წოხოლენი ჯოხოეფი = |სტატუსი-შე = |ფართობი = |სიმაღალაშ ტიპი= |დოხორინიშ ცენტრიშ სიმაღალა=840 |კლიმატი= |ოფიციალური ნინა= |მახორობა = |ეჭარუაშ წანა = |მეჭედალა = |აგლომერაცია = |ერუანული აკოდგინალუა = |ორწუმობური აკოდგინალუა = |ეთნოქორონიმი = |ბორჯიშ ორტყაფუ = +4 |DST = |ოტელეფონე კოდი = |ოფოსტე ინდექსი = |ოავტომობილე კოდი= |საიტი = |კატეგორია ვიკიოწკარუეს =Aibgha (village) |add1n= |add1= }} '''აიბღა''' ({{lang-ab|Аибӷа}}) — ჟირო გორთილი [[ოფუტე]] [[საქორთუო]]შ [[აფხაზეთიშ ავტონომიური რესპუბლიკა|აფხაზეთიშ ავტონომიური რესპუბლიკაშ]] [[გაგრაშ მუნიციპალიტეტი|გაგრაშ მუნიციპალიტეტიშ]] დო [[რუსეთი|რუსეთიშ ფედერაციაშ]] [[კრასნოდარიშ აკანი|კრასნოდარიშ აკანიშ]] [[სოჭი|სოჭიშ რაიონს]]. == გეოგრაფია == ოფუტე აიბღა წყარმალუ [[ფსოუ]]შ ჟირხოლო წყარპიჯის დვალუაფჷ, [[ზუღაშ დონე]]შე 840 მ სიმაღალას დო სახენწჷფო ხურგით ჟირ ნორთო ირთჷ, მარძგვანი ნორთი [[რუსეთი|რუსეთის]] ორხველჷ, კვარჩხანი — [[საქორთუო]]ს. == ოდებელი ტერიტორია == აიბღა ასეშა რუსეთ-საქორთუოშ ოდებელ ტერიტორიას წჷმარინუანს, მუშ ბორჯის ხურგიშ დელიმიტაციაშ რუსულ-ქორთული კომისიაშ ხუნას ოკითხირეთ რდჷ დოხუნელი წყარმალუ ფსოუშ კვარჩხანი წყარპიჯის მადვალი თე ოფუტეშ განობაშ რუსეთიშო მერხველაფაშ გეშა. თე ბორჯის ქორთულ კუნთხუქ გჷმირჩქინჷ კატეგორიული პოზიცია დო ოფუტეშ თე ნორთის კინ საქორთუოშ (აფხაზეთიშ) ნორთო მიარზენდჷ. საქორთუოშ თე პოზიციაშ გეშა აფხაზეთიშ დე-ფაქტო ადმინისტრაციაქ ვარაოფიციალური ფორმათ მარდი გჷნუგჷ ქორთულ კუნთხუს. [[2011]] წანაშ მანგის, რუსეთიშ ფედერაციაშ ადლერის რაიონიშ სამართალმათხილეეფი ოფუტე აიბღას რდეს, თექ რუსული სამართალმათხილე დო ადმინისტრაციული სტრუქტურეფიშ დჷმაკვირაფალეფიშ ღანკით, კერზოთ, რუსეთიშ ფედერაციაშ ღანკი საქორთუოშ ტერიტორიას განობაშ ინსპექტორობაშ ინსტიტუტიშ მიშაღალა რე. ეშანილი ქიმინუა იფასებჷ, მუჭოთ ოერეფოშქაშე სამართალით ჩინებული საქორთუოშ სახენწჷფო ტერიტორიაშ ოკუპირაფილი ნორთიშ ბონი ანექსია. რუსეთიშ კუნთხუ თეს „სოჭიშ ოლიმპიადაშ უშქურანჯობაშ გამანგარებაშ“ სამანჯელით ეთმენწჷყუნდჷ. <ref>[http://armada.ge/?p=9361 სოფელი აიბღა რუსეთის აქილევსის ქუსლად უნდა იქცეს // armada.ge]{{Dead link|date=September 2023 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> [[2011]] წანაშ გჷმათუთას, [[გაგრაშ მუნიციპალიტეტი]]შ დაბა [[განთიადი (დაბა)|განთიადის]] რუსი „მეხურგეეფშო“ აკოგაფილი ნოღაშ ექსპლუატაციაშა მიშულაშ ოხიოლე ცერემონიაქ იმანჯჷ. „ექსპერტეფიშ კლუბიშ“ წჷმმარინაფალეფიშ არზით რუსი „მეხურგეეფი“ აკოანჯარაფილი აფხაზი „პატრიოტეფიშჸურე“ ოფუტე აიბღაშ ოთხილარო ხაზირენეს.<ref>[http://pirweli.com.ge/index.php?option=com_content&task=view&id=79692&Itemid=1 "ექსპერტთა კლუბის" აზრით, რუსი "მესაზღვრეები" შეიარაღებული აფხაზი "პატრიოტების" მხრიდან სოფელ აიბღას დასაცავად ემზადებიან // Information Agency 'PirWeli']{{Dead link|date=September 2023 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> ოურდუმე ხარხუაშ მოხ, რუსეთიშ ინტერესეფი ოფუტე აიბღას თით რე გოპიჯაფილი, ნამჷ-და თინა დინდარი რე ტყათ დო სარგებელი დინოხურიშით, კერზოთ, მარმალით.<ref>[http://pirweli.com.ge/index.php?option=com_content&task=view&id=80420&Itemid=1 აფხაზეთის, როგორც საკურორტო ზონის მიმართ რუსეთის ინტერესი სოჭის საკურორტო ზოლის მშენებლობასთან ერთად დასრულდება // Information Agency 'PirWeli']{{Dead link|date=September 2023 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> == მახორობა == აფხაზეთიშ სეპარატისტული პარლამენტიშ „დეპუტატიშ“ ვალერი კვარჭიაშ გჷნაცხადით „ზარხულს ოფუტეს 26-შახ ადამიერი ოხორანს, ზოთონჯის — თექ მუსხირენი - არძაშე გურამი დო ჭყანიერი ადამიერი სქიდჷ“.<ref>[http://www.pirweli.com.ge/index.php?option=com_content&task=view&id=81809 რუსეთსა და აფხაზეთს შორის სადავო სოფელ აიგბას მოსახლეობა თვლის, რომ „ღმერთისა და ადამიანებისგან დავიწყებულია“ // Information Agency 'PirWeli']{{Dead link|date=September 2023 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> == რესურსეფი ინტერნეტის == * [http://presa.ge/new/?m=politics&AID=7527 ოფუტე აიბღა – რუსულ–აფხაზური „აკორთაშ უშქური“ // Presa.ge] {{Webarchive|url=https://web.archive.org/web/20211026115616/https://presa.ge/new/?m=politics&AID=7527 |date=2021-10-26 }} * [http://www.youtube.com/watch?v=mrW-zmKhAg0 აიბღა. რუსულ-აფხაზური დებაშ გეშა] (ვიდეო) == სქოლიო == {{სქოლიო}} {{გაგრაშ მუნიციპალიტეტი}} [[კატეგორია:გაგრაშ მუნიციპალიტეტიშ ნაოფუტარეფი]] [[კატეგორია:ევროპაშ ოდებელი ტერიტორიეფი]] mhjbc2s7hcefj2o0du75lr5irnjk7kp კიმ ირ სენი 0 31556 240057 212495 2025-06-09T04:32:38Z InternetArchiveBot 15194 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 240057 wikitext text/x-wiki {{კორეული ჯოხო|კიმი|ირ სენი}} {{ინფოდაფა ლიდერი | ჯოხო = კიმ ირ სენი<br>{{lang-ko|김일성}} | სურათი= Kim Il-sung in 1950.jpg | სურათიშ ზჷმა =250პქ | მუკნაჭარა სურათიშ თუდო= | ხეშმოჭარუა = Kim Il Sung Signature.svg | რანწკი = [[ფაილი:Flag of North Korea.svg|25პქ]] [[ოორუე კორეა]]შ [[ოორუე კორეაშ იროიანი პრეზიდენტი|იორიანი პრეზიდენტი]] [[ფაილი:Coat of Arms of North Korea.svg|25პქ]] | პოსტი დეკინჷ = [[5 ეკენია]], [[1998]]<ref>[[დე-ფაქტო]] კიმ ირ სენიშ არძა გოქუნელობაქ თიშ ღურაშ ბორჯის ითუ, 1994 წანაშ 8 კვირკვეს. [[დე-იურე]] თინა ხეშულობას რე 1972 წანაშ 28 ქირსეთუთაშე</ref> | პოსტი დიტუ =~ | ვიცე-პრეზიდენტი = | მონარქი = | პრეზიდენტი = | კანცლერი = | პრემიერ-მინისტრი = | დუდმახვენჯი= | წიმოხონი= | მონძე = | დაბადებაშ თარიღი = {{დაბადებაშ თარიღი|15|4|1912}} | დაბადებაშ აბანი= [[მანგიონდე|მანქეიდაი]], [[ფხენიან-ნამდო|ჰეიან-ნანდო]], {{s|[[კორეა იაპონაიშ მართუალაშ გიმე|კორეაშ გენერალ-ოგუბერნატორე]],}} <br> [[იაპონაიშ იმპერია]] | ღურაშ თარიღი = {{ღურაშ თარიღი დო ხანი|1994|7|8|1912|4|15}} | ღურაშ აბანი=[[ფხენიანი]], [[ოორუე კორეა]] | ღურაშ ბაძაძი = | ნთხორუ აბანი =[[კიმსუსანიშ ბჟაშ მემორიალური დოხორე]] | მენოღალობა = | ერუანობა =[[კორეალეფი|კორეალი]] | ოგიშაგორაშე ოლქი = | მუმა =[[კიმ ჰენ ჩჟიკი]] | ნანა =[[კან ბან სოკი]] | ალმასქუ =1) [[კიმ ჩენ სუკი]]<br> 2) [[კიმ სონ ე]] | სქუალეფი='''ქომოლსქუალეფი:''' [[კიმ ჩენ ირი]], [[კიმ ფხენ ილი]] <br>'''ცირასქუა:''' [[კიმ გიონ ჰი]] | გონათაფა = | ომენცარე ხარისხი = | პროფესია = | საქვარუა = | რელიგია =[[ათეიზმი|ათეისტი]] | ჯილდოეფი = | პარტია = [[კორეაშ ხანდაშ პარტია]] | ვებ-საიტი= | მიკოღანკუა= | რანწკი2 = [[ფაილი:Flag of North Korea.svg|25პქ]] [[ოორუე კორეა]]შ [[ოორუე კორეაშ იროიანი პრეზიდენტი|პრეზიდენტი]] [[ფაილი:Coat of Arms of North Korea.svg|25პქ]] | პოსტი დეკინჷ2 = [[28 ქირსეთუთა]], [[1972]] | პოსტი დიტუ2=[[8 კვირკვე]], [[1994]] | წიმოხონი2 = პოსტიქ გიჭყჷ | მონძე2 = პოსტიქ გეუქვჷ<br>იორიან პრეზიდენტო რე გჷმოცხადაფილი | პრეზიდენტი2= | მონარქი2 = | კანცლერი2 = | ვიცე-პრეზიდენტი2 = | პრემიერ-მინისტრი2= | დუდმახვენჯი2= | რანწკი3 = [[ფაილი:Flag of North Korea.svg|25პქ]] [[ოორუე კორეა]]შ [[ოორუე კორეაშ თარობა|თარობაშ]] მადუდე [[ფაილი:Coat of Arms of North Korea.svg|25პქ]] | პოსტი დეკინჷ3 = [[9 ეკენია]], [[1948]] | პოსტი დიტუ3 =[[28 ქირსეთუთა]], [[1972]] | წიმოხონი3 = პოსტიქ გიჭყჷ | მონძე3 = პოსტიქ გეუქვჷ | პრეზიდენტი3 = | მონარქი3= | კანცლერი3 = | პრემიერ-მინისტრი3= | დუდმახვენჯი3= | რანწკი4 = | პოსტი დეკინჷ4 = | პოსტი დიტუ4 = | წიმოხონი4 = | მონძე4 = | პრეზიდენტი4 = | მონარქი4 = | კანცლერი4 = | პრემიერ-მინისტრი4= | დუდმახვენჯი4= | რანწკი5 = | პოსტი დეკინჷ5 = | პოსტი დიტუ5 = | წიმოხონი5 = | მონძე5 = | პრეზიდენტი5 = | მონარქი5 = | კანცლერი5 = | პრემიერ-მინისტრი5= | დუდმახვენჯი5= }} '''კიმ ირ სენი''' (დაბადებაშ ჯოხო კიმ სონ ჩუ) ([[ჰანგული]] 김일성, [[ჰანჯა]] 金日成) (დ. [[15 პირელი]], [[1912]] — ღ. [[8 კვირკვე]], [[1994]]) — [[ოორუე კორეა|ოორუე კორეაშ კომუნისტური სახენწჷფოშ]] დჷმარსხუაფალი დო თიში მაართა ლიდერი [[1948]] წანაშე [[1994]] წანაშახ. კორეული [[მარქსიზმი]]შ [[ჩუჩხე]]შ გჷმმაქიმინალი. ღურაშ უკული [[ოორუე კორეაშ იროიანი პრეზიდენტი|კორეაშ იროიან პრეზიდენტო]] რე გჷმოხცადაფილი, ნამუთ თიქიანობაშე მართჷნსჷნ. == რესურსეფი ინტერნეტის == {{Commons cat|Kim Il Sung}} * [http://www.findagrave.com/cgi-bin/fg.cgi?page=gr&GRid=8241723 კიმიშ ონთხორუე] * [http://bbs.keyhole.com/ubb/ubbthreads.php?ubb=showflat&Number=165472#Post165472 ოორუე კორეა] {{Webarchive|url=https://web.archive.org/web/20120114214343/http://bbs.keyhole.com/ubb/ubbthreads.php?ubb=showflat&Number=165472#Post165472 |date=2012-01-14 }} * [http://koreanunification.net კორეაშ უნიფიცირაფილი დოგურაფა] {{Webarchive|url=https://web.archive.org/web/20071209162911/http://koreanunification.net/ |date=2007-12-09 }} * [http://www.wilsoncenter.org/index.cfm?fuseaction=topics.home&topic_id=230972 ოორუე კორეაშ ოერეფოშქაშე დოკუმენტეფიშ პროექტი (NKIDP)] {{Webarchive|url=https://web.archive.org/web/20110701103815/http://www.wilsoncenter.org/index.cfm?topic_id=230972&fuseaction=topics.home |date=2011-07-01 }} * [http://www.imdb.com/title/tt0456012/ შვენაშ ქიანა, დანიელ გორდონიშ დოკუმენტური ფილმი], ოორუე კორეაშ ირდღარი რინაშ ქრონიკეფი, [[2003]] წანას. * [http://nothingtoenvy.com/ Nothing to Envy: რჩქვანელობური რინა ოორუე კორეას], [[ბარბარა დემიკი]]შ წინგი. {{მერკე-ბიოგრაფია}} {{მარქსიზმი}} [[კატეგორია:ოორუე კორეაშ პოლიტიკოსეფი]] [[კატეგორია:რგილი ლჷმაშ ლიდერეფი]] [[კატეგორია:დიქტატორეფი]] [[კატეგორია:გენერალისიმუსეფი]] sdekrdga652z7d73ivegloo6vo8q122 მოდული:Age 828 31832 240034 240028 2025-06-08T16:39:55Z Narazeni 826 240034 Scribunto text/plain -- Implement various "age of" and other date-related templates. local mtext = { -- Message and other text that should be localized. -- Also need to localize text in table names in function dateDifference. ['mt-bad-param2'] = 'Parameter $1=$2 is invalid', ['mt-bad-show'] = 'Parameter show=$1 is not supported here', ['mt-cannot-add'] = 'Cannot add "$1"', ['mt-conflicting-show'] = 'Parameter show=$1 conflicts with round=$2', ['mt-date-wrong-order'] = 'The second date must be later in time than the first date', ['mt-dd-future'] = 'Death date (first date) must not be in the future', ['mt-dd-wrong-order'] = 'Death date (first date) must be later in time than the birth date (second date)', ['mt-invalid-bd-age'] = 'Invalid birth date for calculating age', ['mt-invalid-dates-age'] = 'Invalid dates for calculating age', ['mt-invalid-end'] = 'Invalid end date in second parameter', ['mt-invalid-start'] = 'Invalid start date in first parameter', ['mt-need-jdn'] = 'Need valid Julian date number', ['mt-need-valid-bd'] = 'Need valid birth date: year, month, day', ['mt-need-valid-bd2'] = 'Need valid birth date (second date): year, month, day', ['mt-need-valid-date'] = 'Need valid date', ['mt-need-valid-dd'] = 'Need valid death date (first date): year, month, day', ['mt-need-valid-ymd'] = 'Need valid year, month, day', ['mt-need-valid-ymd-current'] = 'Need valid year|month|day or "currentdate"', ['mt-need-valid-ymd2'] = 'Second date should be year, month, day', ['mt-template-bad-name'] = 'The specified template name is not valid', ['mt-template-x'] = 'The template invoking this must have "|template=x" where x is the wanted operation', ['mt-warn-param1'] = 'Invalid parameter $1', ['mt-warn-param2'] = 'Parameter $1=$2 is invalid', ['txt-affirmative'] = { y = true, yes = true, Y = true, Yes = true, YES = true }, -- valid values for df + mf parameters ['txt-yes'] = { y = true, yes = true, on = true }, -- valid values for parameters introduced with this module ['txt-and'] = ' and ', ['txt-or'] = '&nbsp;or ', ['txt-category'] = 'Category:Age error', ['txt-comma-and'] = ', and ', ['txt-error'] = 'Error: ', ['txt-format-default'] = 'mf', -- 'df' (day first = dmy) or 'mf' (month first = mdy) ['txt-module-convertnumeric'] = 'Module:ConvertNumeric', ['txt-module-date'] = 'Module:Date', ['txt-sandbox'] = 'sandbox', ['txt-bda'] = '<span style="display:none"> (<span class="bday">$1</span>) </span>$2<span class="noprint ForceAgeToShow"> (age&nbsp;$3)</span>', ['txt-dda'] = '$2<span style="display:none">($1)</span> (aged&nbsp;$3)', ['txt-bda-disp'] = 'disp_raw', -- disp_raw → age is a number only; disp_age → age is a number and unit (normally years but months or days if very young) ['txt-dda-disp'] = 'disp_raw', ['txt-dmy'] = '%-d %B %-Y', ['txt-mdy'] = '%B %-d, %-Y', } local isWarning = { ['mt-warn-param1'] = true, ['mt-warn-param2'] = true, } -- yes[parameter] is true if parameter should be interpreted as "yes". -- Do not want to accept mixed upper/lowercase unless done by previously used templates. -- Need to accept "on" because "round=on" is wanted. local yes = mtext['txt-yes'] local translate, from_en, to_en, isZero if translate then -- Functions to translate from en to local language and reverse go here. -- See example at [[:bn:Module:বয়স]]. else from_en = function (text) return text end isZero = function (text) return tonumber(text) == 0 end end local _Date, _currentDate local function getExports(frame) -- Return objects exported from the date module or its sandbox. if not _Date then local sandbox = frame:getTitle():find(mtext['txt-sandbox'], 1, true) and ('/' .. mtext['txt-sandbox']) or '' local datemod = require(mtext['txt-module-date'] .. sandbox) local realDate = datemod._Date _currentDate = datemod._current if to_en then _Date = function (...) local args = {} for i, v in ipairs({...}) do args[i] = to_en(v) end return realDate(unpack(args)) end else _Date = realDate end end return _Date, _currentDate end local Collection -- a table to hold items Collection = { add = function (self, item) if item ~= nil then self.n = self.n + 1 self[self.n] = item end end, join = function (self, sep) return table.concat(self, sep) end, remove = function (self, pos) if self.n > 0 and (pos == nil or (0 < pos and pos <= self.n)) then self.n = self.n - 1 return table.remove(self, pos) end end, sort = function (self, comp) table.sort(self, comp) end, new = function () return setmetatable({n = 0}, Collection) end } Collection.__index = Collection local function stripToNil(text) -- If text is a string, return its trimmed content, or nil if empty. -- Otherwise return text (which may, for example, be nil). if type(text) == 'string' then text = text:match('(%S.-)%s*$') end return text end local function substituteParameters(text, ...) -- Return text after substituting any given parameters for $1, $2, etc. return mw.message.newRawMessage(text, ...):plain() end local function message(msg, ...) -- Return formatted message text for an error or warning. local function getText(msg) return mtext[msg] or error('Bug: message "' .. tostring(msg) .. '" not defined') end local categories = { error = mtext['txt-category'], warning = mtext['txt-category'], } local a, b, k, category local text = substituteParameters(getText(msg), ...) if isWarning[msg] then a = '<sup>[<i>' b = '</i>]</sup>' k = 'warning' else a = '<strong class="error">' .. getText('txt-error') b = '</strong>' k = 'error' end if mw.title.getCurrentTitle():inNamespaces(0) then -- Category only in namespaces: 0=article. category = '[[' .. categories[k] .. ']]' end return a .. mw.text.nowiki(text) .. b .. (category or '') end local function dateFormat(args) -- Return -- nil, f if parameter is valid -- m, f otherwise -- where -- m = string for warning message with category -- f = string for wanted date format local problem local wanted = mtext['txt-format-default'] local other = wanted == 'df' and 'mf' or 'df' local parm = args[other] or '' if mtext['txt-affirmative'][parm] then wanted = other elseif parm ~= '' then problem = message('mt-warn-param2', other, parm) end return problem, wanted == 'df' and mtext['txt-dmy'] or mtext['txt-mdy'] end local function formatNumber(number) -- Return the given number formatted with commas as group separators, -- given that the number is an integer. local numstr = tostring(number) local length = #numstr local places = Collection.new() local pos = 0 repeat places:add(pos) pos = pos + 3 until pos >= length places:add(length) local groups = Collection.new() for i = places.n, 2, -1 do local p1 = length - places[i] + 1 local p2 = length - places[i - 1] groups:add(numstr:sub(p1, p2)) end return groups:join(',') end local function spellNumber(number, options, i) -- Return result of spelling number, or -- return number (as a string) if cannot spell it. -- i == 1 for the first number which can optionally start with an uppercase letter. number = tostring(number) return require(mtext['txt-module-convertnumeric']).spell_number( number, nil, -- fraction numerator nil, -- fraction denominator i == 1 and options.upper, -- true: 'One' instead of 'one' not options.us, -- true: use 'and' between tens/ones etc options.adj, -- true: hyphenated options.ordinal -- true: 'first' instead of 'one' ) or number end local function makeExtra(args, flagCurrent) -- Return extra text that will be inserted before the visible result -- but after any sort key. local extra = args.prefix or '' if mw.ustring.len(extra) > 1 then -- Parameter "~" gives "~3" whereas "over" gives "over 3". if extra:sub(-6, -1) ~= '&nbsp;' then extra = extra .. ' ' end end if flagCurrent then extra = '<span class="currentage"></span>' .. extra end return extra end local function makeSort(value, sortable) -- Return a sort key if requested. -- Assume value is a valid number which has not overflowed. if sortable == 'sortable_table' or sortable == 'sortable_on' or sortable == 'sortable_debug' then local sortKey if value == 0 then sortKey = '5000000000000000000' else local mag = math.floor(math.log10(math.abs(value)) + 1e-14) if value > 0 then sortKey = 7000 + mag else sortKey = 2999 - mag value = value + 10^(mag+1) end sortKey = string.format('%d', sortKey) .. string.format('%015.0f', math.floor(value * 10^(14-mag))) end local result if sortable == 'sortable_table' then result = 'data-sort-value="_SORTKEY_"|' elseif sortable == 'sortable_debug' then result = '<span data-sort-value="_SORTKEY_♠"><span style="border:1px solid">_SORTKEY_♠</span></span>' else result = '<span data-sort-value="_SORTKEY_♠"></span>' end return (result:gsub('_SORTKEY_', sortKey)) end end local translateParameters = { abbr = { off = 'abbr_off', on = 'abbr_on', }, disp = { age = 'disp_age', raw = 'disp_raw', }, format = { raw = 'format_raw', commas = 'format_commas', }, round = { on = 'on', yes = 'on', months = 'ym', weeks = 'ymw', days = 'ymd', hours = 'ymdh', }, sep = { comma = 'sep_comma', [','] = 'sep_comma', serialcomma = 'sep_serialcomma', space = 'sep_space', }, show = { hide = { id = 'hide' }, y = { 'y', id = 'y' }, ym = { 'y', 'm', id = 'ym' }, ymd = { 'y', 'm', 'd', id = 'ymd' }, ymw = { 'y', 'm', 'w', id = 'ymw' }, ymwd = { 'y', 'm', 'w', 'd', id = 'ymwd' }, yd = { 'y', 'd', id = 'yd', keepZero = true }, m = { 'm', id = 'm' }, md = { 'm', 'd', id = 'md' }, w = { 'w', id = 'w' }, wd = { 'w', 'd', id = 'wd' }, h = { 'H', id = 'h' }, hm = { 'H', 'M', id = 'hm' }, hms = { 'H', 'M', 'S', id = 'hms' }, M = { 'M', id = 'M' }, s = { 'S', id = 's' }, d = { 'd', id = 'd' }, dh = { 'd', 'H', id = 'dh' }, dhm = { 'd', 'H', 'M', id = 'dhm' }, dhms = { 'd', 'H', 'M', 'S', id = 'dhms' }, ymdh = { 'y', 'm', 'd', 'H', id = 'ymdh' }, ymdhm = { 'y', 'm', 'd', 'H', 'M', id = 'ymdhm' }, ymwdh = { 'y', 'm', 'w', 'd', 'H', id = 'ymwdh' }, ymwdhm = { 'y', 'm', 'w', 'd', 'H', 'M', id = 'ymwdhm' }, }, sortable = { off = false, on = 'sortable_on', table = 'sortable_table', debug = 'sortable_debug', }, } local spellOptions = { cardinal = {}, Cardinal = { upper = true }, cardinal_us = { us = true }, Cardinal_us = { us = true, upper = true }, ordinal = { ordinal = true }, Ordinal = { ordinal = true, upper = true }, ordinal_us = { ordinal = true, us = true }, Ordinal_us = { ordinal = true, us = true, upper = true }, } local function dateExtract(frame) -- Return part of a date after performing an optional operation. local Date = getExports(frame) local args = frame:getParent().args local parms = {} for i, v in ipairs(args) do parms[i] = v end if yes[args.fix] then table.insert(parms, 'fix') end if yes[args.partial] then table.insert(parms, 'partial') end local show = stripToNil(args.show) or 'dmy' local date = Date(unpack(parms)) if not date then if show == 'format' then return 'error' end return message('mt-need-valid-date') end local add = stripToNil(args.add) if add then for item in add:gmatch('%S+') do date = date + item if not date then return message('mt-cannot-add', item) end end end local sortKey, result local sortable = translateParameters.sortable[args.sortable] if sortable then local value = (date.partial and date.partial.first or date).jdz sortKey = makeSort(value, sortable) end if show ~= 'hide' then result = date[show] if result == nil then result = from_en(date:text(show)) elseif type(result) == 'boolean' then result = result and '1' or '0' else result = from_en(tostring(result)) end end return (sortKey or '') .. makeExtra(args) .. (result or '') end local function rangeJoin(range) -- Return text to be used between a range of ages. return range == 'dash' and '–' or mtext['txt-or'] end local function makeText(values, components, names, options, noUpper) -- Return wikitext representing an age or duration. local text = Collection.new() local count = #values local sep = names.sep or '' for i, v in ipairs(values) do -- v is a number (say 4 for 4 years), or a table ({4,5} for 4 or 5 years). local islist = type(v) == 'table' if (islist or v > 0) or (text.n == 0 and i == count) or (text.n > 0 and components.keepZero) then local fmt, vstr if options.spell then fmt = function(number) return spellNumber(number, options.spell, noUpper or i) end elseif i == 1 and options.format == 'format_commas' then -- Numbers after the first should be small and not need formatting. fmt = formatNumber else fmt = tostring end if islist then vstr = fmt(v[1]) .. rangeJoin(options.range) noUpper = true vstr = vstr .. fmt(v[2]) else vstr = fmt(v) end local name = names[components[i]] if name then if type(name) == 'table' then name = mw.getContentLanguage():plural(islist and v[2] or v, name) end text:add(vstr .. sep .. name) else text:add(vstr) end end end local first, last if options.join == 'sep_space' then first = ' ' last = ' ' elseif options.join == 'sep_comma' then first = ', ' last = ', ' elseif options.join == 'sep_serialcomma' and text.n > 2 then first = ', ' last = mtext['txt-comma-and'] else first = ', ' last = mtext['txt-and'] end for i, v in ipairs(text) do if i < text.n then text[i] = v .. (i + 1 < text.n and first or last) end end local sign = '' if options.isnegative then -- Do not display negative zero. if text.n > 1 or (text.n == 1 and text[1]:sub(1, 1) ~= '0' ) then if options.format == 'format_raw' then sign = '-' -- plain hyphen so result can be used in a calculation else sign = '−' -- Unicode U+2212 MINUS SIGN end end end return (options.sortKey or '') .. (options.extra or '') .. sign .. text:join() .. (options.suffix or '') end local function dateDifference(parms) -- Return a formatted date difference using the given parameters -- which have been validated. local names = { -- Each name is: -- * a string if no plural form of the name is used; or -- * a table of strings, one of which is selected using the rules at -- https://translatewiki.net/wiki/Plural/Mediawiki_plural_rules abbr_off = { sep = '&nbsp;', y = {'year', 'years'}, m = {'month', 'months'}, w = {'week', 'weeks'}, d = {'day', 'days'}, H = {'hour', 'hours'}, M = {'minute', 'minutes'}, S = {'second', 'seconds'}, }, abbr_on = { y = 'y', m = 'm', w = 'w', d = 'd', H = 'h', M = 'm', S = 's', }, abbr_infant = { -- for {{age for infant}} sep = '&nbsp;', y = {'yr', 'yrs'}, m = {'mo', 'mos'}, w = {'wk', 'wks'}, d = {'day', 'days'}, H = {'hr', 'hrs'}, M = {'min', 'mins'}, S = {'sec', 'secs'}, }, abbr_raw = {}, } local diff = parms.diff -- must be a valid date difference local show = parms.show -- may be nil; default is set below local abbr = parms.abbr or 'abbr_off' local defaultJoin if abbr ~= 'abbr_off' then defaultJoin = 'sep_space' end if not show then show = 'ymd' if parms.disp == 'disp_age' then if diff.years < 3 then defaultJoin = 'sep_space' if diff.years >= 1 then show = 'ym' else show = 'md' end else show = 'y' end end end if type(show) ~= 'table' then show = translateParameters.show[show] end if parms.disp == 'disp_raw' then defaultJoin = 'sep_space' abbr = 'abbr_raw' elseif parms.wantSc then defaultJoin = 'sep_serialcomma' end local diffOptions = { round = parms.round, duration = parms.wantDuration, range = parms.range and true or nil, } local sortKey if parms.sortable then local value = diff.age_days + (parms.wantDuration and 1 or 0) -- days and fraction of a day if diff.isnegative then value = -value end sortKey = makeSort(value, parms.sortable) end local textOptions = { extra = parms.extra, format = parms.format, join = parms.sep or defaultJoin, isnegative = diff.isnegative, range = parms.range, sortKey = sortKey, spell = parms.spell, suffix = parms.suffix, -- not currently used } if show.id == 'hide' then return sortKey or '' end local values = { diff:age(show.id, diffOptions) } if values[1] then return makeText(values, show, names[abbr], textOptions) end if diff.partial then -- Handle a more complex range such as -- {{age_yd|20 Dec 2001|2003|range=yes}} → 1 year, 12 days or 2 years, 11 days local opt = { format = textOptions.format, join = textOptions.join, isnegative = textOptions.isnegative, spell = textOptions.spell, } return (textOptions.sortKey or '') .. makeText({ diff.partial.mindiff:age(show.id, diffOptions) }, show, names[abbr], opt) .. rangeJoin(textOptions.range) .. makeText({ diff.partial.maxdiff:age(show.id, diffOptions) }, show, names[abbr], opt, true) .. (textOptions.suffix or '') end return message('mt-bad-show', show.id) end local function getDates(frame, getopt) -- Parse template parameters and return one of: -- * date (a date table, if single) -- * date1, date2 (two date tables, if not single) -- * text (a string error message) -- A missing date is optionally replaced with the current date. -- If wantMixture is true, a missing date component is replaced -- from the current date, so can get a bizarre mixture of -- specified/current y/m/d as has been done by some "age" templates. -- Some results may be placed in table getopt. local Date, currentDate = getExports(frame) getopt = getopt or {} local function flagCurrent(text) -- This allows the calling template to detect if the current date has been used, -- that is, whether both dates have been entered in a template expecting two. -- For example, an infobox may want the age when an event occurred, not the current age. -- Don't bother detecting if wantMixture is used because not needed and it is a poor option. if not text then if getopt.noMissing then return nil -- this gives a nil date which gives an error end text = 'currentdate' if getopt.flag == 'usesCurrent' then getopt.usesCurrent = true end end return text end local args = frame:getParent().args local fields = {} local isNamed = args.year or args.year1 or args.year2 or args.month or args.month1 or args.month2 or args.day or args.day1 or args.day2 if isNamed then fields[1] = args.year1 or args.year fields[2] = args.month1 or args.month fields[3] = args.day1 or args.day fields[4] = args.year2 fields[5] = args.month2 fields[6] = args.day2 else for i = 1, 6 do fields[i] = args[i] end end local imax = 0 for i = 1, 6 do fields[i] = stripToNil(fields[i]) if fields[i] then imax = i end if getopt.omitZero and i % 3 ~= 1 then -- omit zero months and days as unknown values but keep year 0 which is 1 BCE if isZero(fields[i]) then fields[i] = nil getopt.partial = true end end end local fix = getopt.fix and 'fix' or '' local partialText = getopt.partial and 'partial' or '' local dates = {} if isNamed or imax >= 3 then local nrDates = getopt.single and 1 or 2 if getopt.wantMixture then -- Cannot be partial since empty fields are set from current. local components = { 'year', 'month', 'day' } for i = 1, nrDates * 3 do fields[i] = fields[i] or currentDate[components[i > 3 and i - 3 or i]] end for i = 1, nrDates do local index = i == 1 and 1 or 4 local y, m, d = fields[index], fields[index+1], fields[index+2] if (m == 2 or m == '2') and (d == 29 or d == '29') then -- Workaround error with following which attempt to use invalid date 2001-02-29. -- {{age_ymwd|year1=2001|year2=2004|month2=2|day2=29}} -- {{age_ymwd|year1=2001|month1=2|year2=2004|month2=1|day2=29}} -- TODO Get rid of wantMixture because even this ugly code does not handle -- 'Feb' or 'February' or 'feb' or 'february'. if not ((y % 4 == 0 and y % 100 ~= 0) or y % 400 == 0) then d = 28 end end dates[i] = Date(y, m, d) end else -- If partial dates are allowed, accept -- year only, or -- year and month only -- Do not accept year and day without a month because that makes no sense -- (and because, for example, Date('partial', 2001, nil, 12) sets day = nil, not 12). for i = 1, nrDates do local index = i == 1 and 1 or 4 local y, m, d = fields[index], fields[index+1], fields[index+2] if (getopt.partial and y and (m or not d)) or (y and m and d) then dates[i] = Date(fix, partialText, y, m, d) elseif not y and not m and not d then dates[i] = Date(flagCurrent()) end end end else getopt.textdates = true -- have parsed each date from a single text field dates[1] = Date(fix, partialText, flagCurrent(fields[1])) if not getopt.single then dates[2] = Date(fix, partialText, flagCurrent(fields[2])) end end if not dates[1] then return message(getopt.missing1 or 'mt-need-valid-ymd') end if getopt.single then return dates[1] end if not dates[2] then return message(getopt.missing2 or 'mt-need-valid-ymd2') end return dates[1], dates[2] end local function ageGeneric(frame) -- Return the result required by the specified template. -- Can use sortable=x where x = on/table/off/debug in any supported template. -- Some templates default to sortable=on but can be overridden. local name = frame.args.template if not name then return message('mt-template-x') end local args = frame:getParent().args local specs = { age_days = { -- {{age in days}} show = 'd', disp = 'disp_raw', }, age_days_nts = { -- {{age in days nts}} show = 'd', disp = 'disp_raw', format = 'format_commas', sortable = 'on', }, duration_days = { -- {{duration in days}} show = 'd', disp = 'disp_raw', duration = true, }, duration_days_nts = { -- {{duration in days nts}} show = 'd', disp = 'disp_raw', format = 'format_commas', sortable = 'on', duration = true, }, age_full_years = { -- {{age}} show = 'y', abbr = 'abbr_raw', flag = 'usesCurrent', omitZero = true, range = 'dash', }, age_full_years_nts = { -- {{age nts}} show = 'y', abbr = 'abbr_raw', format = 'format_commas', sortable = 'on', }, age_in_years = { -- {{age in years}} show = 'y', abbr = 'abbr_raw', negative = 'error', range = 'dash', }, age_in_years_nts = { -- {{age in years nts}} show = 'y', abbr = 'abbr_raw', negative = 'error', range = 'dash', format = 'format_commas', sortable = 'on', }, age_infant = { -- {{age for infant}} -- Do not set show because special processing is done later. abbr = yes[args.abbr] and 'abbr_infant' or 'abbr_off', disp = 'disp_age', sep = 'sep_space', sortable = 'on', }, age_m = { -- {{age in months}} show = 'm', disp = 'disp_raw', }, age_w = { -- {{age in weeks}} show = 'w', disp = 'disp_raw', }, age_wd = { -- {{age in weeks and days}} show = 'wd', }, age_yd = { -- {{age in years and days}} show = 'yd', format = 'format_commas', sep = args.sep ~= 'and' and 'sep_comma' or nil, }, age_yd_nts = { -- {{age in years and days nts}} show = 'yd', format = 'format_commas', sep = args.sep ~= 'and' and 'sep_comma' or nil, sortable = 'on', }, age_ym = { -- {{age in years and months}} show = 'ym', sep = 'sep_comma', }, age_ymd = { -- {{age in years, months and days}} show = 'ymd', range = true, }, age_ymwd = { -- {{age in years, months, weeks and days}} show = 'ymwd', wantMixture = true, }, } local spec = specs[name] if not spec then return message('mt-template-bad-name') end if name == 'age_days' then local su = stripToNil(args['show unit']) if su then if su == 'abbr' or su == 'full' then spec.disp = nil spec.abbr = su == 'abbr' and 'abbr_on' or nil end end end local partial, autofill local range = stripToNil(args.range) or spec.range if range then -- Suppose partial dates are used and age could be 11 or 12 years. -- "|range=" (empty value) has no effect (spec is used). -- "|range=yes" or spec.range == true sets range = true (gives "11 or 12") -- "|range=dash" or spec.range == 'dash' sets range = 'dash' (gives "11–12"). -- "|range=no" or spec.range == 'no' sets range = nil and fills each date in the diff (gives "12"). -- ("on" is equivalent to "yes", and "off" is equivalent to "no"). -- "|range=OTHER" sets range = nil and rejects partial dates. range = ({ dash = 'dash', off = 'no', no = 'no', [true] = true })[range] or yes[range] if range then partial = true -- accept partial dates with a possible age range for the result if range == 'no' then autofill = true -- missing month/day in first or second date are filled from other date or 1 range = nil end end end local getopt = { fix = yes[args.fix], flag = stripToNil(args.flag) or spec.flag, omitZero = spec.omitZero, partial = partial, wantMixture = spec.wantMixture, } local date1, date2 = getDates(frame, getopt) if type(date1) == 'string' then return date1 end local format = stripToNil(args.format) local spell = spellOptions[format] if format then format = 'format_' .. format elseif name == 'age_days' and getopt.textdates then format = 'format_commas' end local parms = { diff = date2:subtract(date1, { fill = autofill }), wantDuration = spec.duration or yes[args.duration], range = range, wantSc = yes[args.sc], show = args.show == 'hide' and 'hide' or spec.show, abbr = spec.abbr, disp = spec.disp, extra = makeExtra(args, getopt.usesCurrent and format ~= 'format_raw'), format = format or spec.format, round = yes[args.round], sep = spec.sep, sortable = translateParameters.sortable[args.sortable or spec.sortable], spell = spell, } if (spec.negative or frame.args.negative) == 'error' and parms.diff.isnegative then return message('mt-date-wrong-order') end return from_en(dateDifference(parms)) end local function isFake(args) -- Some templates have TemplateData with an auto value like "{{Birth date and age|YYYY|MM|DD}}". -- Return true if that appears to be the case so the caller can output nothing rather than an error. return args[1] == 'YYYY' end local function bda(frame) -- Implement [[Template:Birth date and age]]. local args = frame:getParent().args if isFake(args) then return '' end local options = { missing1 = 'mt-need-valid-bd', noMissing = true, single = true, } local date = getDates(frame, options) if type(date) == 'string' then return date -- error text end local Date = getExports(frame) local diff = Date('currentdate') - date if diff.isnegative or diff.years > 150 then return message('mt-invalid-bd-age') end local disp = mtext['txt-bda-disp'] local show = 'y' if diff.years < 2 then disp = 'disp_age' if diff.years == 0 and diff.months == 0 then show = 'd' else show = 'm' end end local problem, format = dateFormat(args) local result = substituteParameters( mtext['txt-bda'], date:text('%-Y-%m-%d'), from_en(date:text(format)), from_en(dateDifference({ diff = diff, show = show, abbr = 'abbr_off', disp = disp, sep = 'sep_space', })) ) .. (problem or '') local warnings = tonumber(frame.args.warnings) if warnings and warnings > 0 then local good = { df = true, mf = true, day = true, day1 = true, month = true, month1 = true, year = true, year1 = true, } local invalid local imax = options.textdates and 1 or 3 for k, _ in pairs(args) do if type(k) == 'number' then if k > imax then invalid = tostring(k) break end else if not good[k] then invalid = k break end end end if invalid then result = result .. message('mt-warn-param1', invalid) end end return result end local function dda(frame) -- Implement [[Template:Death date and age]]. local args = frame:getParent().args if isFake(args) then return '' end local options = { missing1 = 'mt-need-valid-dd', missing2 = 'mt-need-valid-bd2', noMissing = true, partial = true, } local date1, date2 = getDates(frame, options) if type(date1) == 'string' then return date1 end local diff = date1 - date2 if diff.isnegative then return message('mt-dd-wrong-order') end local Date = getExports(frame) local today = Date('currentdate') + 1 -- one day in future allows for timezones if date1 > today then return message('mt-dd-future') end local years if diff.partial then years = diff.partial.years years = type(years) == 'table' and years[2] or years else years = diff.years end if years > 150 then return message('mt-invalid-dates-age') end local fmt_date, fmt_ymd, problem if date1.day then -- y, m, d known problem, fmt_date = dateFormat(args) fmt_ymd = '%-Y-%m-%d' elseif date1.month then -- y, m known; d unknown fmt_date = '%B %-Y' fmt_ymd = '%-Y-%m-00' else -- y known; m, d unknown fmt_date = '%-Y' fmt_ymd = '%-Y-00-00' end local sortKey local sortable = translateParameters.sortable[args.sortable] if sortable then local value = (date1.partial and date1.partial.first or date1).jdz sortKey = makeSort(value, sortable) end local result = (sortKey or '') .. substituteParameters( mtext['txt-dda'], date1:text(fmt_ymd), from_en(date1:text(fmt_date)), from_en(dateDifference({ diff = diff, show = 'y', abbr = 'abbr_off', disp = mtext['txt-dda-disp'], range = 'dash', sep = 'sep_space', })) ) .. (problem or '') local warnings = tonumber(frame.args.warnings) if warnings and warnings > 0 then local good = { df = true, mf = true, } local invalid local imax = options.textdates and 2 or 6 for k, _ in pairs(args) do if type(k) == 'number' then if k > imax then invalid = tostring(k) break end else if not good[k] then invalid = k break end end end if invalid then result = result .. message('mt-warn-param1', invalid) end end return result end local function dateToGsd(frame) -- Implement [[Template:Gregorian serial date]]. -- Return Gregorian serial date of the given date, or the current date. -- The returned value is negative for dates before 1 January 1 AD -- despite the fact that GSD is not defined for such dates. local date = getDates(frame, { wantMixture=true, single=true }) if type(date) == 'string' then return date end return tostring(date.gsd) end local function jdToDate(frame) -- Return formatted date from a Julian date. -- The result includes a time if the input includes a fraction. -- The word 'Julian' is accepted for the Julian calendar. local Date = getExports(frame) local args = frame:getParent().args local date = Date('juliandate', args[1], args[2]) if date then return from_en(date:text()) end return message('mt-need-jdn') end local function dateToJd(frame) -- Return Julian date (a number) from a date which may include a time, -- or the current date ('currentdate') or current date and time ('currentdatetime'). -- The word 'Julian' is accepted for the Julian calendar. local Date = getExports(frame) local args = frame:getParent().args local date = Date(args[1], args[2], args[3], args[4], args[5], args[6], args[7]) if date then return tostring(date.jd) end return message('mt-need-valid-ymd-current') end local function timeInterval(frame) -- Implement [[Template:Time interval]]. -- There are two positional arguments: date1, date2. -- The default for each is the current date and time. -- Result is date2 - date1 formatted. local Date = getExports(frame) local args = frame:getParent().args local parms = { extra = makeExtra(args), wantDuration = yes[args.duration], range = yes[args.range] or (args.range == 'dash' and 'dash' or nil), wantSc = yes[args.sc], } local fix = yes[args.fix] and 'fix' or '' local date1 = Date(fix, 'partial', stripToNil(args[1]) or 'currentdatetime') if not date1 then return message('mt-invalid-start') end local date2 = Date(fix, 'partial', stripToNil(args[2]) or 'currentdatetime') if not date2 then return message('mt-invalid-end') end parms.diff = date2 - date1 for argname, translate in pairs(translateParameters) do local parm = stripToNil(args[argname]) if parm then parm = translate[parm] if parm == nil then -- test for nil because false is a valid setting return message('mt-bad-param2', argname, args[argname]) end parms[argname] = parm end end if parms.round then local round = parms.round local show = parms.show if round ~= 'on' then if show then if show.id ~= round then return message('mt-conflicting-show', args.show, args.round) end else parms.show = translateParameters.show[round] end end parms.round = true end return from_en(dateDifference(parms)) end local function templateGeneric(frame) local name = frame.args.template if not name then return message('mt-template-x') end return ageGeneric(frame:newChild{title = mw.title.new(name, 10), args = frame.args}) end return { age_generic = ageGeneric, -- can emulate several age templates birth_date_and_age = bda, -- Template:Birth_date_and_age death_date_and_age = dda, -- Template:Death_date_and_age gsd = dateToGsd, -- Template:Gregorian_serial_date extract = dateExtract, -- Template:Extract jd_to_date = jdToDate, -- Template:? JULIANDAY = dateToJd, -- Template:JULIANDAY time_interval = timeInterval, -- Template:Time_interval [''] = templateGeneric, -- same as age_generic, but can be invoked directly } qlkaap82oo8xun0m94f9ot3dz98pxmm 240035 240034 2025-06-08T16:42:58Z Narazeni 826 240035 Scribunto text/plain -- Implement various "age of" and other date-related templates. local mtext = { -- Message and other text that should be localized. -- Also need to localize text in table names in function dateDifference. ['mt-bad-param2'] = 'პარამეტრი $1=$2 რე ჩილათერი', ['mt-bad-show'] = 'პარამეტრი show=$1 თაქ ვა რე ხუჯდოკინელი', ['mt-cannot-add'] = '"$1 ვეგიძინინე"', ['mt-conflicting-show'] = 'პარამეტრი show=$1 round=$2-წკჷმა კონფლიქტის რე', ['mt-date-wrong-order'] = 'The second date must be later in time than the first date', ['mt-dd-future'] = 'Death date (first date) must not be in the future', ['mt-dd-wrong-order'] = 'Death date (first date) must be later in time than the birth date (second date)', ['mt-invalid-bd-age'] = 'Invalid birth date for calculating age', ['mt-invalid-dates-age'] = 'Invalid dates for calculating age', ['mt-invalid-end'] = 'Invalid end date in second parameter', ['mt-invalid-start'] = 'Invalid start date in first parameter', ['mt-need-jdn'] = 'Need valid Julian date number', ['mt-need-valid-bd'] = 'Need valid birth date: year, month, day', ['mt-need-valid-bd2'] = 'Need valid birth date (second date): year, month, day', ['mt-need-valid-date'] = 'Need valid date', ['mt-need-valid-dd'] = 'Need valid death date (first date): year, month, day', ['mt-need-valid-ymd'] = 'Need valid year, month, day', ['mt-need-valid-ymd-current'] = 'Need valid year|month|day or "currentdate"', ['mt-need-valid-ymd2'] = 'Second date should be year, month, day', ['mt-template-bad-name'] = 'The specified template name is not valid', ['mt-template-x'] = 'The template invoking this must have "|template=x" where x is the wanted operation', ['mt-warn-param1'] = 'Invalid parameter $1', ['mt-warn-param2'] = 'Parameter $1=$2 is invalid', ['txt-affirmative'] = { y = true, yes = true, Y = true, Yes = true, YES = true }, -- valid values for df + mf parameters ['txt-yes'] = { y = true, yes = true, on = true }, -- valid values for parameters introduced with this module ['txt-and'] = ' and ', ['txt-or'] = '&nbsp;or ', ['txt-category'] = 'Category:Age error', ['txt-comma-and'] = ', and ', ['txt-error'] = 'Error: ', ['txt-format-default'] = 'mf', -- 'df' (day first = dmy) or 'mf' (month first = mdy) ['txt-module-convertnumeric'] = 'Module:ConvertNumeric', ['txt-module-date'] = 'Module:Date', ['txt-sandbox'] = 'sandbox', ['txt-bda'] = '<span style="display:none"> (<span class="bday">$1</span>) </span>$2<span class="noprint ForceAgeToShow"> ($3&nbsp;წანერი)</span>', ['txt-dda'] = '$2<span style="display:none">($1)</span> ($3&nbsp;წანერი)', ['txt-bda-disp'] = 'disp_raw', -- disp_raw → age is a number only; disp_age → age is a number and unit (normally years but months or days if very young) ['txt-dda-disp'] = 'disp_raw', ['txt-dmy'] = '%-d %B %-Y', ['txt-mdy'] = '%B %-d, %-Y', } local isWarning = { ['mt-warn-param1'] = true, ['mt-warn-param2'] = true, } -- yes[parameter] is true if parameter should be interpreted as "yes". -- Do not want to accept mixed upper/lowercase unless done by previously used templates. -- Need to accept "on" because "round=on" is wanted. local yes = mtext['txt-yes'] local translate, from_en, to_en, isZero if translate then -- Functions to translate from en to local language and reverse go here. -- See example at [[:bn:Module:বয়স]]. else from_en = function (text) return text end isZero = function (text) return tonumber(text) == 0 end end local _Date, _currentDate local function getExports(frame) -- Return objects exported from the date module or its sandbox. if not _Date then local sandbox = frame:getTitle():find(mtext['txt-sandbox'], 1, true) and ('/' .. mtext['txt-sandbox']) or '' local datemod = require(mtext['txt-module-date'] .. sandbox) local realDate = datemod._Date _currentDate = datemod._current if to_en then _Date = function (...) local args = {} for i, v in ipairs({...}) do args[i] = to_en(v) end return realDate(unpack(args)) end else _Date = realDate end end return _Date, _currentDate end local Collection -- a table to hold items Collection = { add = function (self, item) if item ~= nil then self.n = self.n + 1 self[self.n] = item end end, join = function (self, sep) return table.concat(self, sep) end, remove = function (self, pos) if self.n > 0 and (pos == nil or (0 < pos and pos <= self.n)) then self.n = self.n - 1 return table.remove(self, pos) end end, sort = function (self, comp) table.sort(self, comp) end, new = function () return setmetatable({n = 0}, Collection) end } Collection.__index = Collection local function stripToNil(text) -- If text is a string, return its trimmed content, or nil if empty. -- Otherwise return text (which may, for example, be nil). if type(text) == 'string' then text = text:match('(%S.-)%s*$') end return text end local function substituteParameters(text, ...) -- Return text after substituting any given parameters for $1, $2, etc. return mw.message.newRawMessage(text, ...):plain() end local function message(msg, ...) -- Return formatted message text for an error or warning. local function getText(msg) return mtext[msg] or error('Bug: message "' .. tostring(msg) .. '" not defined') end local categories = { error = mtext['txt-category'], warning = mtext['txt-category'], } local a, b, k, category local text = substituteParameters(getText(msg), ...) if isWarning[msg] then a = '<sup>[<i>' b = '</i>]</sup>' k = 'warning' else a = '<strong class="error">' .. getText('txt-error') b = '</strong>' k = 'error' end if mw.title.getCurrentTitle():inNamespaces(0) then -- Category only in namespaces: 0=article. category = '[[' .. categories[k] .. ']]' end return a .. mw.text.nowiki(text) .. b .. (category or '') end local function dateFormat(args) -- Return -- nil, f if parameter is valid -- m, f otherwise -- where -- m = string for warning message with category -- f = string for wanted date format local problem local wanted = mtext['txt-format-default'] local other = wanted == 'df' and 'mf' or 'df' local parm = args[other] or '' if mtext['txt-affirmative'][parm] then wanted = other elseif parm ~= '' then problem = message('mt-warn-param2', other, parm) end return problem, wanted == 'df' and mtext['txt-dmy'] or mtext['txt-mdy'] end local function formatNumber(number) -- Return the given number formatted with commas as group separators, -- given that the number is an integer. local numstr = tostring(number) local length = #numstr local places = Collection.new() local pos = 0 repeat places:add(pos) pos = pos + 3 until pos >= length places:add(length) local groups = Collection.new() for i = places.n, 2, -1 do local p1 = length - places[i] + 1 local p2 = length - places[i - 1] groups:add(numstr:sub(p1, p2)) end return groups:join(',') end local function spellNumber(number, options, i) -- Return result of spelling number, or -- return number (as a string) if cannot spell it. -- i == 1 for the first number which can optionally start with an uppercase letter. number = tostring(number) return require(mtext['txt-module-convertnumeric']).spell_number( number, nil, -- fraction numerator nil, -- fraction denominator i == 1 and options.upper, -- true: 'One' instead of 'one' not options.us, -- true: use 'and' between tens/ones etc options.adj, -- true: hyphenated options.ordinal -- true: 'first' instead of 'one' ) or number end local function makeExtra(args, flagCurrent) -- Return extra text that will be inserted before the visible result -- but after any sort key. local extra = args.prefix or '' if mw.ustring.len(extra) > 1 then -- Parameter "~" gives "~3" whereas "over" gives "over 3". if extra:sub(-6, -1) ~= '&nbsp;' then extra = extra .. ' ' end end if flagCurrent then extra = '<span class="currentage"></span>' .. extra end return extra end local function makeSort(value, sortable) -- Return a sort key if requested. -- Assume value is a valid number which has not overflowed. if sortable == 'sortable_table' or sortable == 'sortable_on' or sortable == 'sortable_debug' then local sortKey if value == 0 then sortKey = '5000000000000000000' else local mag = math.floor(math.log10(math.abs(value)) + 1e-14) if value > 0 then sortKey = 7000 + mag else sortKey = 2999 - mag value = value + 10^(mag+1) end sortKey = string.format('%d', sortKey) .. string.format('%015.0f', math.floor(value * 10^(14-mag))) end local result if sortable == 'sortable_table' then result = 'data-sort-value="_SORTKEY_"|' elseif sortable == 'sortable_debug' then result = '<span data-sort-value="_SORTKEY_♠"><span style="border:1px solid">_SORTKEY_♠</span></span>' else result = '<span data-sort-value="_SORTKEY_♠"></span>' end return (result:gsub('_SORTKEY_', sortKey)) end end local translateParameters = { abbr = { off = 'abbr_off', on = 'abbr_on', }, disp = { age = 'disp_age', raw = 'disp_raw', }, format = { raw = 'format_raw', commas = 'format_commas', }, round = { on = 'on', yes = 'on', months = 'ym', weeks = 'ymw', days = 'ymd', hours = 'ymdh', }, sep = { comma = 'sep_comma', [','] = 'sep_comma', serialcomma = 'sep_serialcomma', space = 'sep_space', }, show = { hide = { id = 'hide' }, y = { 'y', id = 'y' }, ym = { 'y', 'm', id = 'ym' }, ymd = { 'y', 'm', 'd', id = 'ymd' }, ymw = { 'y', 'm', 'w', id = 'ymw' }, ymwd = { 'y', 'm', 'w', 'd', id = 'ymwd' }, yd = { 'y', 'd', id = 'yd', keepZero = true }, m = { 'm', id = 'm' }, md = { 'm', 'd', id = 'md' }, w = { 'w', id = 'w' }, wd = { 'w', 'd', id = 'wd' }, h = { 'H', id = 'h' }, hm = { 'H', 'M', id = 'hm' }, hms = { 'H', 'M', 'S', id = 'hms' }, M = { 'M', id = 'M' }, s = { 'S', id = 's' }, d = { 'd', id = 'd' }, dh = { 'd', 'H', id = 'dh' }, dhm = { 'd', 'H', 'M', id = 'dhm' }, dhms = { 'd', 'H', 'M', 'S', id = 'dhms' }, ymdh = { 'y', 'm', 'd', 'H', id = 'ymdh' }, ymdhm = { 'y', 'm', 'd', 'H', 'M', id = 'ymdhm' }, ymwdh = { 'y', 'm', 'w', 'd', 'H', id = 'ymwdh' }, ymwdhm = { 'y', 'm', 'w', 'd', 'H', 'M', id = 'ymwdhm' }, }, sortable = { off = false, on = 'sortable_on', table = 'sortable_table', debug = 'sortable_debug', }, } local spellOptions = { cardinal = {}, Cardinal = { upper = true }, cardinal_us = { us = true }, Cardinal_us = { us = true, upper = true }, ordinal = { ordinal = true }, Ordinal = { ordinal = true, upper = true }, ordinal_us = { ordinal = true, us = true }, Ordinal_us = { ordinal = true, us = true, upper = true }, } local function dateExtract(frame) -- Return part of a date after performing an optional operation. local Date = getExports(frame) local args = frame:getParent().args local parms = {} for i, v in ipairs(args) do parms[i] = v end if yes[args.fix] then table.insert(parms, 'fix') end if yes[args.partial] then table.insert(parms, 'partial') end local show = stripToNil(args.show) or 'dmy' local date = Date(unpack(parms)) if not date then if show == 'format' then return 'error' end return message('mt-need-valid-date') end local add = stripToNil(args.add) if add then for item in add:gmatch('%S+') do date = date + item if not date then return message('mt-cannot-add', item) end end end local sortKey, result local sortable = translateParameters.sortable[args.sortable] if sortable then local value = (date.partial and date.partial.first or date).jdz sortKey = makeSort(value, sortable) end if show ~= 'hide' then result = date[show] if result == nil then result = from_en(date:text(show)) elseif type(result) == 'boolean' then result = result and '1' or '0' else result = from_en(tostring(result)) end end return (sortKey or '') .. makeExtra(args) .. (result or '') end local function rangeJoin(range) -- Return text to be used between a range of ages. return range == 'dash' and '–' or mtext['txt-or'] end local function makeText(values, components, names, options, noUpper) -- Return wikitext representing an age or duration. local text = Collection.new() local count = #values local sep = names.sep or '' for i, v in ipairs(values) do -- v is a number (say 4 for 4 years), or a table ({4,5} for 4 or 5 years). local islist = type(v) == 'table' if (islist or v > 0) or (text.n == 0 and i == count) or (text.n > 0 and components.keepZero) then local fmt, vstr if options.spell then fmt = function(number) return spellNumber(number, options.spell, noUpper or i) end elseif i == 1 and options.format == 'format_commas' then -- Numbers after the first should be small and not need formatting. fmt = formatNumber else fmt = tostring end if islist then vstr = fmt(v[1]) .. rangeJoin(options.range) noUpper = true vstr = vstr .. fmt(v[2]) else vstr = fmt(v) end local name = names[components[i]] if name then if type(name) == 'table' then name = mw.getContentLanguage():plural(islist and v[2] or v, name) end text:add(vstr .. sep .. name) else text:add(vstr) end end end local first, last if options.join == 'sep_space' then first = ' ' last = ' ' elseif options.join == 'sep_comma' then first = ', ' last = ', ' elseif options.join == 'sep_serialcomma' and text.n > 2 then first = ', ' last = mtext['txt-comma-and'] else first = ', ' last = mtext['txt-and'] end for i, v in ipairs(text) do if i < text.n then text[i] = v .. (i + 1 < text.n and first or last) end end local sign = '' if options.isnegative then -- Do not display negative zero. if text.n > 1 or (text.n == 1 and text[1]:sub(1, 1) ~= '0' ) then if options.format == 'format_raw' then sign = '-' -- plain hyphen so result can be used in a calculation else sign = '−' -- Unicode U+2212 MINUS SIGN end end end return (options.sortKey or '') .. (options.extra or '') .. sign .. text:join() .. (options.suffix or '') end local function dateDifference(parms) -- Return a formatted date difference using the given parameters -- which have been validated. local names = { -- Each name is: -- * a string if no plural form of the name is used; or -- * a table of strings, one of which is selected using the rules at -- https://translatewiki.net/wiki/Plural/Mediawiki_plural_rules abbr_off = { sep = '&nbsp;', y = {'year', 'years'}, m = {'month', 'months'}, w = {'week', 'weeks'}, d = {'day', 'days'}, H = {'hour', 'hours'}, M = {'minute', 'minutes'}, S = {'second', 'seconds'}, }, abbr_on = { y = 'y', m = 'm', w = 'w', d = 'd', H = 'h', M = 'm', S = 's', }, abbr_infant = { -- for {{age for infant}} sep = '&nbsp;', y = {'yr', 'yrs'}, m = {'mo', 'mos'}, w = {'wk', 'wks'}, d = {'day', 'days'}, H = {'hr', 'hrs'}, M = {'min', 'mins'}, S = {'sec', 'secs'}, }, abbr_raw = {}, } local diff = parms.diff -- must be a valid date difference local show = parms.show -- may be nil; default is set below local abbr = parms.abbr or 'abbr_off' local defaultJoin if abbr ~= 'abbr_off' then defaultJoin = 'sep_space' end if not show then show = 'ymd' if parms.disp == 'disp_age' then if diff.years < 3 then defaultJoin = 'sep_space' if diff.years >= 1 then show = 'ym' else show = 'md' end else show = 'y' end end end if type(show) ~= 'table' then show = translateParameters.show[show] end if parms.disp == 'disp_raw' then defaultJoin = 'sep_space' abbr = 'abbr_raw' elseif parms.wantSc then defaultJoin = 'sep_serialcomma' end local diffOptions = { round = parms.round, duration = parms.wantDuration, range = parms.range and true or nil, } local sortKey if parms.sortable then local value = diff.age_days + (parms.wantDuration and 1 or 0) -- days and fraction of a day if diff.isnegative then value = -value end sortKey = makeSort(value, parms.sortable) end local textOptions = { extra = parms.extra, format = parms.format, join = parms.sep or defaultJoin, isnegative = diff.isnegative, range = parms.range, sortKey = sortKey, spell = parms.spell, suffix = parms.suffix, -- not currently used } if show.id == 'hide' then return sortKey or '' end local values = { diff:age(show.id, diffOptions) } if values[1] then return makeText(values, show, names[abbr], textOptions) end if diff.partial then -- Handle a more complex range such as -- {{age_yd|20 Dec 2001|2003|range=yes}} → 1 year, 12 days or 2 years, 11 days local opt = { format = textOptions.format, join = textOptions.join, isnegative = textOptions.isnegative, spell = textOptions.spell, } return (textOptions.sortKey or '') .. makeText({ diff.partial.mindiff:age(show.id, diffOptions) }, show, names[abbr], opt) .. rangeJoin(textOptions.range) .. makeText({ diff.partial.maxdiff:age(show.id, diffOptions) }, show, names[abbr], opt, true) .. (textOptions.suffix or '') end return message('mt-bad-show', show.id) end local function getDates(frame, getopt) -- Parse template parameters and return one of: -- * date (a date table, if single) -- * date1, date2 (two date tables, if not single) -- * text (a string error message) -- A missing date is optionally replaced with the current date. -- If wantMixture is true, a missing date component is replaced -- from the current date, so can get a bizarre mixture of -- specified/current y/m/d as has been done by some "age" templates. -- Some results may be placed in table getopt. local Date, currentDate = getExports(frame) getopt = getopt or {} local function flagCurrent(text) -- This allows the calling template to detect if the current date has been used, -- that is, whether both dates have been entered in a template expecting two. -- For example, an infobox may want the age when an event occurred, not the current age. -- Don't bother detecting if wantMixture is used because not needed and it is a poor option. if not text then if getopt.noMissing then return nil -- this gives a nil date which gives an error end text = 'currentdate' if getopt.flag == 'usesCurrent' then getopt.usesCurrent = true end end return text end local args = frame:getParent().args local fields = {} local isNamed = args.year or args.year1 or args.year2 or args.month or args.month1 or args.month2 or args.day or args.day1 or args.day2 if isNamed then fields[1] = args.year1 or args.year fields[2] = args.month1 or args.month fields[3] = args.day1 or args.day fields[4] = args.year2 fields[5] = args.month2 fields[6] = args.day2 else for i = 1, 6 do fields[i] = args[i] end end local imax = 0 for i = 1, 6 do fields[i] = stripToNil(fields[i]) if fields[i] then imax = i end if getopt.omitZero and i % 3 ~= 1 then -- omit zero months and days as unknown values but keep year 0 which is 1 BCE if isZero(fields[i]) then fields[i] = nil getopt.partial = true end end end local fix = getopt.fix and 'fix' or '' local partialText = getopt.partial and 'partial' or '' local dates = {} if isNamed or imax >= 3 then local nrDates = getopt.single and 1 or 2 if getopt.wantMixture then -- Cannot be partial since empty fields are set from current. local components = { 'year', 'month', 'day' } for i = 1, nrDates * 3 do fields[i] = fields[i] or currentDate[components[i > 3 and i - 3 or i]] end for i = 1, nrDates do local index = i == 1 and 1 or 4 local y, m, d = fields[index], fields[index+1], fields[index+2] if (m == 2 or m == '2') and (d == 29 or d == '29') then -- Workaround error with following which attempt to use invalid date 2001-02-29. -- {{age_ymwd|year1=2001|year2=2004|month2=2|day2=29}} -- {{age_ymwd|year1=2001|month1=2|year2=2004|month2=1|day2=29}} -- TODO Get rid of wantMixture because even this ugly code does not handle -- 'Feb' or 'February' or 'feb' or 'february'. if not ((y % 4 == 0 and y % 100 ~= 0) or y % 400 == 0) then d = 28 end end dates[i] = Date(y, m, d) end else -- If partial dates are allowed, accept -- year only, or -- year and month only -- Do not accept year and day without a month because that makes no sense -- (and because, for example, Date('partial', 2001, nil, 12) sets day = nil, not 12). for i = 1, nrDates do local index = i == 1 and 1 or 4 local y, m, d = fields[index], fields[index+1], fields[index+2] if (getopt.partial and y and (m or not d)) or (y and m and d) then dates[i] = Date(fix, partialText, y, m, d) elseif not y and not m and not d then dates[i] = Date(flagCurrent()) end end end else getopt.textdates = true -- have parsed each date from a single text field dates[1] = Date(fix, partialText, flagCurrent(fields[1])) if not getopt.single then dates[2] = Date(fix, partialText, flagCurrent(fields[2])) end end if not dates[1] then return message(getopt.missing1 or 'mt-need-valid-ymd') end if getopt.single then return dates[1] end if not dates[2] then return message(getopt.missing2 or 'mt-need-valid-ymd2') end return dates[1], dates[2] end local function ageGeneric(frame) -- Return the result required by the specified template. -- Can use sortable=x where x = on/table/off/debug in any supported template. -- Some templates default to sortable=on but can be overridden. local name = frame.args.template if not name then return message('mt-template-x') end local args = frame:getParent().args local specs = { age_days = { -- {{age in days}} show = 'd', disp = 'disp_raw', }, age_days_nts = { -- {{age in days nts}} show = 'd', disp = 'disp_raw', format = 'format_commas', sortable = 'on', }, duration_days = { -- {{duration in days}} show = 'd', disp = 'disp_raw', duration = true, }, duration_days_nts = { -- {{duration in days nts}} show = 'd', disp = 'disp_raw', format = 'format_commas', sortable = 'on', duration = true, }, age_full_years = { -- {{age}} show = 'y', abbr = 'abbr_raw', flag = 'usesCurrent', omitZero = true, range = 'dash', }, age_full_years_nts = { -- {{age nts}} show = 'y', abbr = 'abbr_raw', format = 'format_commas', sortable = 'on', }, age_in_years = { -- {{age in years}} show = 'y', abbr = 'abbr_raw', negative = 'error', range = 'dash', }, age_in_years_nts = { -- {{age in years nts}} show = 'y', abbr = 'abbr_raw', negative = 'error', range = 'dash', format = 'format_commas', sortable = 'on', }, age_infant = { -- {{age for infant}} -- Do not set show because special processing is done later. abbr = yes[args.abbr] and 'abbr_infant' or 'abbr_off', disp = 'disp_age', sep = 'sep_space', sortable = 'on', }, age_m = { -- {{age in months}} show = 'm', disp = 'disp_raw', }, age_w = { -- {{age in weeks}} show = 'w', disp = 'disp_raw', }, age_wd = { -- {{age in weeks and days}} show = 'wd', }, age_yd = { -- {{age in years and days}} show = 'yd', format = 'format_commas', sep = args.sep ~= 'and' and 'sep_comma' or nil, }, age_yd_nts = { -- {{age in years and days nts}} show = 'yd', format = 'format_commas', sep = args.sep ~= 'and' and 'sep_comma' or nil, sortable = 'on', }, age_ym = { -- {{age in years and months}} show = 'ym', sep = 'sep_comma', }, age_ymd = { -- {{age in years, months and days}} show = 'ymd', range = true, }, age_ymwd = { -- {{age in years, months, weeks and days}} show = 'ymwd', wantMixture = true, }, } local spec = specs[name] if not spec then return message('mt-template-bad-name') end if name == 'age_days' then local su = stripToNil(args['show unit']) if su then if su == 'abbr' or su == 'full' then spec.disp = nil spec.abbr = su == 'abbr' and 'abbr_on' or nil end end end local partial, autofill local range = stripToNil(args.range) or spec.range if range then -- Suppose partial dates are used and age could be 11 or 12 years. -- "|range=" (empty value) has no effect (spec is used). -- "|range=yes" or spec.range == true sets range = true (gives "11 or 12") -- "|range=dash" or spec.range == 'dash' sets range = 'dash' (gives "11–12"). -- "|range=no" or spec.range == 'no' sets range = nil and fills each date in the diff (gives "12"). -- ("on" is equivalent to "yes", and "off" is equivalent to "no"). -- "|range=OTHER" sets range = nil and rejects partial dates. range = ({ dash = 'dash', off = 'no', no = 'no', [true] = true })[range] or yes[range] if range then partial = true -- accept partial dates with a possible age range for the result if range == 'no' then autofill = true -- missing month/day in first or second date are filled from other date or 1 range = nil end end end local getopt = { fix = yes[args.fix], flag = stripToNil(args.flag) or spec.flag, omitZero = spec.omitZero, partial = partial, wantMixture = spec.wantMixture, } local date1, date2 = getDates(frame, getopt) if type(date1) == 'string' then return date1 end local format = stripToNil(args.format) local spell = spellOptions[format] if format then format = 'format_' .. format elseif name == 'age_days' and getopt.textdates then format = 'format_commas' end local parms = { diff = date2:subtract(date1, { fill = autofill }), wantDuration = spec.duration or yes[args.duration], range = range, wantSc = yes[args.sc], show = args.show == 'hide' and 'hide' or spec.show, abbr = spec.abbr, disp = spec.disp, extra = makeExtra(args, getopt.usesCurrent and format ~= 'format_raw'), format = format or spec.format, round = yes[args.round], sep = spec.sep, sortable = translateParameters.sortable[args.sortable or spec.sortable], spell = spell, } if (spec.negative or frame.args.negative) == 'error' and parms.diff.isnegative then return message('mt-date-wrong-order') end return from_en(dateDifference(parms)) end local function isFake(args) -- Some templates have TemplateData with an auto value like "{{Birth date and age|YYYY|MM|DD}}". -- Return true if that appears to be the case so the caller can output nothing rather than an error. return args[1] == 'YYYY' end local function bda(frame) -- Implement [[Template:Birth date and age]]. local args = frame:getParent().args if isFake(args) then return '' end local options = { missing1 = 'mt-need-valid-bd', noMissing = true, single = true, } local date = getDates(frame, options) if type(date) == 'string' then return date -- error text end local Date = getExports(frame) local diff = Date('currentdate') - date if diff.isnegative or diff.years > 150 then return message('mt-invalid-bd-age') end local disp = mtext['txt-bda-disp'] local show = 'y' if diff.years < 2 then disp = 'disp_age' if diff.years == 0 and diff.months == 0 then show = 'd' else show = 'm' end end local problem, format = dateFormat(args) local result = substituteParameters( mtext['txt-bda'], date:text('%-Y-%m-%d'), from_en(date:text(format)), from_en(dateDifference({ diff = diff, show = show, abbr = 'abbr_off', disp = disp, sep = 'sep_space', })) ) .. (problem or '') local warnings = tonumber(frame.args.warnings) if warnings and warnings > 0 then local good = { df = true, mf = true, day = true, day1 = true, month = true, month1 = true, year = true, year1 = true, } local invalid local imax = options.textdates and 1 or 3 for k, _ in pairs(args) do if type(k) == 'number' then if k > imax then invalid = tostring(k) break end else if not good[k] then invalid = k break end end end if invalid then result = result .. message('mt-warn-param1', invalid) end end return result end local function dda(frame) -- Implement [[Template:Death date and age]]. local args = frame:getParent().args if isFake(args) then return '' end local options = { missing1 = 'mt-need-valid-dd', missing2 = 'mt-need-valid-bd2', noMissing = true, partial = true, } local date1, date2 = getDates(frame, options) if type(date1) == 'string' then return date1 end local diff = date1 - date2 if diff.isnegative then return message('mt-dd-wrong-order') end local Date = getExports(frame) local today = Date('currentdate') + 1 -- one day in future allows for timezones if date1 > today then return message('mt-dd-future') end local years if diff.partial then years = diff.partial.years years = type(years) == 'table' and years[2] or years else years = diff.years end if years > 150 then return message('mt-invalid-dates-age') end local fmt_date, fmt_ymd, problem if date1.day then -- y, m, d known problem, fmt_date = dateFormat(args) fmt_ymd = '%-Y-%m-%d' elseif date1.month then -- y, m known; d unknown fmt_date = '%B %-Y' fmt_ymd = '%-Y-%m-00' else -- y known; m, d unknown fmt_date = '%-Y' fmt_ymd = '%-Y-00-00' end local sortKey local sortable = translateParameters.sortable[args.sortable] if sortable then local value = (date1.partial and date1.partial.first or date1).jdz sortKey = makeSort(value, sortable) end local result = (sortKey or '') .. substituteParameters( mtext['txt-dda'], date1:text(fmt_ymd), from_en(date1:text(fmt_date)), from_en(dateDifference({ diff = diff, show = 'y', abbr = 'abbr_off', disp = mtext['txt-dda-disp'], range = 'dash', sep = 'sep_space', })) ) .. (problem or '') local warnings = tonumber(frame.args.warnings) if warnings and warnings > 0 then local good = { df = true, mf = true, } local invalid local imax = options.textdates and 2 or 6 for k, _ in pairs(args) do if type(k) == 'number' then if k > imax then invalid = tostring(k) break end else if not good[k] then invalid = k break end end end if invalid then result = result .. message('mt-warn-param1', invalid) end end return result end local function dateToGsd(frame) -- Implement [[Template:Gregorian serial date]]. -- Return Gregorian serial date of the given date, or the current date. -- The returned value is negative for dates before 1 January 1 AD -- despite the fact that GSD is not defined for such dates. local date = getDates(frame, { wantMixture=true, single=true }) if type(date) == 'string' then return date end return tostring(date.gsd) end local function jdToDate(frame) -- Return formatted date from a Julian date. -- The result includes a time if the input includes a fraction. -- The word 'Julian' is accepted for the Julian calendar. local Date = getExports(frame) local args = frame:getParent().args local date = Date('juliandate', args[1], args[2]) if date then return from_en(date:text()) end return message('mt-need-jdn') end local function dateToJd(frame) -- Return Julian date (a number) from a date which may include a time, -- or the current date ('currentdate') or current date and time ('currentdatetime'). -- The word 'Julian' is accepted for the Julian calendar. local Date = getExports(frame) local args = frame:getParent().args local date = Date(args[1], args[2], args[3], args[4], args[5], args[6], args[7]) if date then return tostring(date.jd) end return message('mt-need-valid-ymd-current') end local function timeInterval(frame) -- Implement [[Template:Time interval]]. -- There are two positional arguments: date1, date2. -- The default for each is the current date and time. -- Result is date2 - date1 formatted. local Date = getExports(frame) local args = frame:getParent().args local parms = { extra = makeExtra(args), wantDuration = yes[args.duration], range = yes[args.range] or (args.range == 'dash' and 'dash' or nil), wantSc = yes[args.sc], } local fix = yes[args.fix] and 'fix' or '' local date1 = Date(fix, 'partial', stripToNil(args[1]) or 'currentdatetime') if not date1 then return message('mt-invalid-start') end local date2 = Date(fix, 'partial', stripToNil(args[2]) or 'currentdatetime') if not date2 then return message('mt-invalid-end') end parms.diff = date2 - date1 for argname, translate in pairs(translateParameters) do local parm = stripToNil(args[argname]) if parm then parm = translate[parm] if parm == nil then -- test for nil because false is a valid setting return message('mt-bad-param2', argname, args[argname]) end parms[argname] = parm end end if parms.round then local round = parms.round local show = parms.show if round ~= 'on' then if show then if show.id ~= round then return message('mt-conflicting-show', args.show, args.round) end else parms.show = translateParameters.show[round] end end parms.round = true end return from_en(dateDifference(parms)) end local function templateGeneric(frame) local name = frame.args.template if not name then return message('mt-template-x') end return ageGeneric(frame:newChild{title = mw.title.new(name, 10), args = frame.args}) end return { age_generic = ageGeneric, -- can emulate several age templates birth_date_and_age = bda, -- Template:Birth_date_and_age death_date_and_age = dda, -- Template:Death_date_and_age gsd = dateToGsd, -- Template:Gregorian_serial_date extract = dateExtract, -- Template:Extract jd_to_date = jdToDate, -- Template:? JULIANDAY = dateToJd, -- Template:JULIANDAY time_interval = timeInterval, -- Template:Time_interval [''] = templateGeneric, -- same as age_generic, but can be invoked directly } 420vtkfjeu3kmo0331ckmwe6blvyh90 240036 240035 2025-06-08T16:52:00Z Narazeni 826 240036 Scribunto text/plain -- Implement various "age of" and other date-related templates. local mtext = { -- Message and other text that should be localized. ['mt-bad-param1'] = 'Invalid parameter $1', ['mt-bad-param2'] = 'Parameter $1=$2 is invalid', ['mt-bad-show'] = 'Parameter show=$1 is not supported here', ['mt-cannot-add'] = 'Cannot add "$1"', ['mt-conflicting-show'] = 'Parameter show=$1 conflicts with round=$2', ['mt-date-wrong-order'] = 'The second date must be later in time than the first date', ['mt-dd-future'] = 'Death date (first date) must not be in the future', ['mt-dd-wrong-order'] = 'Death date (first date) must be later in time than the birth date (second date)', ['mt-invalid-bd-age'] = 'Invalid birth date for calculating age', ['mt-invalid-dates-age'] = 'Invalid dates for calculating age', ['mt-invalid-end'] = 'Invalid end date in second parameter', ['mt-invalid-start'] = 'Invalid start date in first parameter', ['mt-need-jdn'] = 'Need valid Julian date number', ['mt-need-valid-bd'] = 'Need valid birth date: year, month, day', ['mt-need-valid-bd2'] = 'Need valid birth date (second date): year, month, day', ['mt-need-valid-date'] = 'Need valid date', ['mt-need-valid-dd'] = 'Need valid death date (first date): year, month, day', ['mt-need-valid-ymd'] = 'Need valid year, month, day', ['mt-need-valid-ymd-current'] = 'Need valid year|month|day or "currentdate"', ['mt-need-valid-ymd2'] = 'Second date should be year, month, day', ['mt-template-bad-name'] = 'The specified template name is not valid', ['mt-template-x'] = 'The template invoking this must have "|template=x" where x is the wanted operation', ['txt-age'] = '(age&nbsp;', ['txt-aged'] = ' (aged&nbsp;', ['txt-and'] = ' и ', ['txt-comma-and'] = ', и ', ['txt-error'] = 'Ошибка: ', ['txt-or'] = '&nbsp;или ', } local translate, from_en, to_en, isZero if translate then -- Functions to translate from en to local language and reverse go here. -- See example at [[:bn:Module:বয়স]]. else from_en = function (text) return text end isZero = function (text) return tonumber(text) == 0 end end local _Date, _currentDate local function getExports(frame) -- Return objects exported from the date module or its sandbox. if not _Date then local sandbox = frame:getTitle():find('sandbox', 1, true) and '/sandbox' or '' local datemod = require('Module:Date' .. sandbox) local realDate = datemod._Date _currentDate = datemod._current if to_en then _Date = function (...) local args = {} for i, v in ipairs({...}) do args[i] = to_en(v) end return realDate(unpack(args)) end else _Date = realDate end end return _Date, _currentDate end local Collection -- a table to hold items Collection = { add = function (self, item) if item ~= nil then self.n = self.n + 1 self[self.n] = item end end, join = function (self, sep) return table.concat(self, sep) end, remove = function (self, pos) if self.n > 0 and (pos == nil or (0 < pos and pos <= self.n)) then self.n = self.n - 1 return table.remove(self, pos) end end, sort = function (self, comp) table.sort(self, comp) end, new = function () return setmetatable({n = 0}, Collection) end } Collection.__index = Collection local function stripToNil(text) -- If text is a string, return its trimmed content, or nil if empty. -- Otherwise return text (which may, for example, be nil). if type(text) == 'string' then text = text:match('(%S.-)%s*$') end return text end local function yes(parameter) -- Return true if parameter should be interpreted as "yes". -- Do not want to accept mixed upper/lowercase unless done by current templates. -- Need to accept "on" because "round=on" is wanted. return ({ y = true, yes = true, on = true })[parameter] end local function message(msg, id) -- Return formatted message text for an error or warning. local function getText(msg) return mtext[msg] or error('Bug: message "' .. tostring(msg) .. '" not defined') end local text if type(msg) == 'table' then text = getText(msg[1]) local rep = {} for i, v in ipairs(msg) do if i > 1 then rep['$' .. (i - 1)] = v end end text = text:gsub('$%d+', rep) else text = getText(msg) end local categories = { error = '[[Category:Age error]]', warning = '[[Category:Age error]]', -- same as error until determine whether 'Age warning' would be worthwhile } local a, b, category if id == 'warning' then a = '<sup>[<i>' b = '</i>]</sup>' else a = '<strong class="error">' .. getText('txt-error') b = '</strong>' end if mw.title.getCurrentTitle():inNamespaces(0) then -- Category only in namespaces: 0=article. category = categories[id or 'error'] end return a .. mw.text.nowiki(text) .. b .. (category or '') end local function formatNumber(number) -- Return the given number formatted with commas as group separators, -- given that the number is an integer. local numstr = tostring(number) local length = #numstr local places = Collection.new() local pos = 0 repeat places:add(pos) pos = pos + 3 until pos >= length places:add(length) local groups = Collection.new() for i = places.n, 2, -1 do local p1 = length - places[i] + 1 local p2 = length - places[i - 1] groups:add(numstr:sub(p1, p2)) end return groups:join(',') end local function spellNumber(number, options, i) -- Return result of spelling number, or -- return number (as a string) if cannot spell it. -- i == 1 for the first number which can optionally start with an uppercase letter. number = tostring(number) return require('Module:ConvertNumeric').spell_number( number, nil, -- fraction numerator nil, -- fraction denominator i == 1 and options.upper, -- true: 'One' instead of 'one' not options.us, -- true: use 'and' between tens/ones etc options.adj, -- true: hyphenated options.ordinal -- true: 'first' instead of 'one' ) or number end local function makeExtra(args, flagCurrent) -- Return extra text that will be inserted before the visible result -- but after any sort key. local extra = args.prefix or '' if mw.ustring.len(extra) > 1 then -- Parameter "~" gives "~3" whereas "over" gives "over 3". if extra:sub(-6, -1) ~= '&nbsp;' then extra = extra .. ' ' end end if flagCurrent then extra = '<span class="currentage"></span>' .. extra end return extra end local function makeSort(value, sortable) -- Return a sort key if requested. -- Assume value is a valid number which has not overflowed. if sortable == 'sortable_table' or sortable == 'sortable_on' or sortable == 'sortable_debug' then local sortKey if value == 0 then sortKey = '5000000000000000000' else local mag = math.floor(math.log10(math.abs(value)) + 1e-14) if value > 0 then sortKey = 7000 + mag else sortKey = 2999 - mag value = value + 10^(mag+1) end sortKey = string.format('%d', sortKey) .. string.format('%015.0f', math.floor(value * 10^(14-mag))) end local result if sortable == 'sortable_table' then result = 'data-sort-value="_SORTKEY_"|' elseif sortable == 'sortable_debug' then result = '<span data-sort-value="_SORTKEY_♠"><span style="border:1px solid">_SORTKEY_♠</span></span>' else result = '<span data-sort-value="_SORTKEY_♠"></span>' end return result:gsub('_SORTKEY_', sortKey) end end local translateParameters = { abbr = { off = 'abbr_off', on = 'abbr_on', }, disp = { age = 'disp_age', raw = 'disp_raw', }, format = { raw = 'format_raw', commas = 'format_commas', }, round = { on = 'on', yes = 'on', months = 'ym', weeks = 'ymw', days = 'ymd', hours = 'ymdh', }, sep = { comma = 'sep_comma', [','] = 'sep_comma', serialcomma = 'sep_serialcomma', space = 'sep_space', }, show = { hide = { id = 'hide' }, y = { 'y', id = 'y' }, ym = { 'y', 'm', id = 'ym' }, ymd = { 'y', 'm', 'd', id = 'ymd' }, ymw = { 'y', 'm', 'w', id = 'ymw' }, ymwd = { 'y', 'm', 'w', 'd', id = 'ymwd' }, yd = { 'y', 'd', id = 'yd', keepZero = true }, m = { 'm', id = 'm' }, md = { 'm', 'd', id = 'md' }, w = { 'w', id = 'w' }, wd = { 'w', 'd', id = 'wd' }, h = { 'H', id = 'h' }, hm = { 'H', 'M', id = 'hm' }, hms = { 'H', 'M', 'S', id = 'hms' }, d = { 'd', id = 'd' }, dh = { 'd', 'H', id = 'dh' }, dhm = { 'd', 'H', 'M', id = 'dhm' }, dhms = { 'd', 'H', 'M', 'S', id = 'dhms' }, ymdh = { 'y', 'm', 'd', 'H', id = 'ymdh' }, ymdhm = { 'y', 'm', 'd', 'H', 'M', id = 'ymdhm' }, ymwdh = { 'y', 'm', 'w', 'd', 'H', id = 'ymwdh' }, ymwdhm = { 'y', 'm', 'w', 'd', 'H', 'M', id = 'ymwdhm' }, }, sortable = { off = false, on = 'sortable_on', table = 'sortable_table', debug = 'sortable_debug', }, } local spellOptions = { cardinal = {}, Cardinal = { upper = true }, cardinal_us = { us = true }, Cardinal_us = { us = true, upper = true }, ordinal = { ordinal = true }, Ordinal = { ordinal = true, upper = true }, ordinal_us = { ordinal = true, us = true }, Ordinal_us = { ordinal = true, us = true, upper = true }, } local function dateExtract(frame) -- Return part of a date after performing an optional operation. local Date = getExports(frame) local args = frame:getParent().args local parms = {} for i, v in ipairs(args) do parms[i] = v end if yes(args.fix) then table.insert(parms, 'fix') end if yes(args.partial) then table.insert(parms, 'partial') end local show = stripToNil(args.show) or 'dmy' local date = Date(unpack(parms)) if not date then if show == 'format' then return 'error' end return message('mt-need-valid-date') end local add = stripToNil(args.add) if add then for item in add:gmatch('%S+') do date = date + item if not date then return message({ 'mt-cannot-add', item }) end end end local sortKey, result local sortable = translateParameters.sortable[args.sortable] if sortable then local value = (date.partial and date.partial.first or date).jdz sortKey = makeSort(value, sortable) end if show ~= 'hide' then result = date[show] if result == nil then result = from_en(date:text(show)) elseif type(result) == 'boolean' then result = result and '1' or '0' else result = from_en(tostring(result)) end end return (sortKey or '') .. makeExtra(args) .. (result or '') end local function rangeJoin(range) -- Return text to be used between a range of ages. return range == 'dash' and '–' or mtext['txt-or'] end local function makeText(values, components, names, options, noUpper) -- Return wikitext representing an age or duration. local text = Collection.new() local count = #values local sep = names.sep or '' for i, v in ipairs(values) do -- v is a number (say 4 for 4 years), or a table ({4,5} for 4 or 5 years). local islist = type(v) == 'table' if (islist or v > 0) or (text.n == 0 and i == count) or (text.n > 0 and components.keepZero) then local fmt, vstr if options.spell then fmt = function(number) return spellNumber(number, options.spell, noUpper or i) end elseif i == 1 and options.format == 'format_commas' then -- Numbers after the first should be small and not need formatting. fmt = formatNumber else fmt = tostring end if islist then vstr = fmt(v[1]) .. rangeJoin(options.range) noUpper = true vstr = vstr .. fmt(v[2]) else vstr = fmt(v) end local name = names[components[i]] if name then local plural = names.plural if not plural or (islist and v[2] or v) == 1 then plural = '' end text:add(vstr .. sep .. name .. plural) else text:add(vstr) end end end local first, last if options.join == 'sep_space' then first = ' ' last = ' ' elseif options.join == 'sep_comma' then first = ', ' last = ', ' elseif options.join == 'sep_serialcomma' and text.n > 2 then first = ', ' last = mtext['txt-comma-and'] else first = ', ' last = mtext['txt-and'] end for i, v in ipairs(text) do if i < text.n then text[i] = v .. (i + 1 < text.n and first or last) end end local sign = '' if options.isnegative then -- Do not display negative zero. if text.n > 1 or (text.n == 1 and text[1]:sub(1, 1) ~= '0' ) then if options.format == 'format_raw' then sign = '-' -- plain hyphen so result can be used in a calculation else sign = '−' -- Unicode U+2212 MINUS SIGN end end end return (options.sortKey or '') .. (options.extra or '') .. sign .. text:join() .. (options.suffix or '') end local function dateDifference(parms) -- Return a formatted date difference using the given parameters -- which have been validated. local names = { abbr_off = { plural = '', sep = '&nbsp;', y = 'год', m = 'месяц', w = 'недель', d = 'день', H = 'час', M = 'минут', S = 'секунд', }, abbr_on = { y = 'г.', m = 'мес.', w = 'нед.', d = 'дн.', H = 'час.', M = 'мин.', S = 'сек.', }, abbr_infant = { -- for {{age for infant}} plural = 's', sep = '&nbsp;', y = 'yr', m = 'mo', w = 'wk', d = 'day', H = 'hr', M = 'min', S = 'sec', }, abbr_raw = {}, } local diff = parms.diff -- must be a valid date difference local show = parms.show -- may be nil; default is set below local abbr = parms.abbr or 'abbr_on' local defaultJoin if abbr ~= 'abbr_off' then defaultJoin = 'sep_space' end if not show then show = 'ymd' if parms.disp == 'disp_age' then if diff.years < 3 then defaultJoin = 'sep_space' if diff.years >= 1 then show = 'ym' else show = 'md' end else show = 'y' end end end if type(show) ~= 'table' then show = translateParameters.show[show] end if parms.disp == 'disp_raw' then defaultJoin = 'sep_space' abbr = 'abbr_raw' elseif parms.wantSc then defaultJoin = 'sep_serialcomma' end local diffOptions = { round = parms.round, duration = parms.wantDuration, range = parms.range and true or nil, } local sortKey if parms.sortable then local value = diff.age_days + (parms.wantDuration and 1 or 0) -- days and fraction of a day if diff.isnegative then value = -value end sortKey = makeSort(value, parms.sortable) end local textOptions = { extra = parms.extra, format = parms.format, join = parms.sep or defaultJoin, isnegative = diff.isnegative, range = parms.range, sortKey = sortKey, spell = parms.spell, suffix = parms.suffix, -- not currently used } if show.id == 'hide' then return sortKey or '' end local values = { diff:age(show.id, diffOptions) } if values[1] then return makeText(values, show, names[abbr], textOptions) end if diff.partial then -- Handle a more complex range such as -- {{age_yd|20 Dec 2001|2003|range=yes}} → 1 year, 12 days or 2 years, 11 days local opt = { format = textOptions.format, join = textOptions.join, isnegative = textOptions.isnegative, spell = textOptions.spell, } return (textOptions.sortKey or '') .. makeText({ diff.partial.mindiff:age(show.id, diffOptions) }, show, names[abbr], opt) .. rangeJoin(textOptions.range) .. makeText({ diff.partial.maxdiff:age(show.id, diffOptions) }, show, names[abbr], opt, true) .. (textOptions.suffix or '') end return message({ 'mt-bad-show', show.id }) end local function getDates(frame, getopt) -- Parse template parameters and return one of: -- * date (a date table, if single) -- * date1, date2 (two date tables, if not single) -- * text (a string error message) -- A missing date is optionally replaced with the current date. -- If wantMixture is true, a missing date component is replaced -- from the current date, so can get a bizarre mixture of -- specified/current y/m/d as has been done by some "age" templates. -- Some results may be placed in table getopt. local Date, currentDate = getExports(frame) getopt = getopt or {} local function flagCurrent(text) -- This allows the calling template to detect if the current date has been used, -- that is, whether both dates have been entered in a template expecting two. -- For example, an infobox may want the age when an event occurred, not the current age. -- Don't bother detecting if wantMixture is used because not needed and it is a poor option. if not text then if getopt.noMissing then return nil -- this gives a nil date which gives an error end text = 'currentdate' if getopt.flag == 'usesCurrent' then getopt.usesCurrent = true end end return text end local args = frame:getParent().args local fields = {} local isNamed = args.year or args.year1 or args.year2 or args.month or args.month1 or args.month2 or args.day or args.day1 or args.day2 if isNamed then fields[1] = args.year1 or args.year fields[2] = args.month1 or args.month fields[3] = args.day1 or args.day fields[4] = args.year2 fields[5] = args.month2 fields[6] = args.day2 else for i = 1, 6 do fields[i] = args[i] end end local imax = 0 for i = 1, 6 do fields[i] = stripToNil(fields[i]) if fields[i] then imax = i end if getopt.omitZero and i % 3 ~= 1 then -- omit zero months and days as unknown values but keep year 0 which is 1 BCE if isZero(fields[i]) then fields[i] = nil getopt.partial = true end end end local fix = getopt.fix and 'fix' or '' local partialText = getopt.partial and 'partial' or '' local dates = {} if isNamed or imax >= 3 then local nrDates = getopt.single and 1 or 2 if getopt.wantMixture then -- Cannot be partial since empty fields are set from current. local components = { 'year', 'month', 'day' } for i = 1, nrDates * 3 do fields[i] = fields[i] or currentDate[components[i > 3 and i - 3 or i]] end for i = 1, nrDates do local index = i == 1 and 1 or 4 local y, m, d = fields[index], fields[index+1], fields[index+2] if (m == 2 or m == '2') and (d == 29 or d == '29') then -- Workaround error with following which attempt to use invalid date 2001-02-29. -- {{age_ymwd|year1=2001|year2=2004|month2=2|day2=29}} -- {{age_ymwd|year1=2001|month1=2|year2=2004|month2=1|day2=29}} -- TODO Get rid of wantMixture because even this ugly code does not handle -- 'Feb' or 'February' or 'feb' or 'february'. if not ((y % 4 == 0 and y % 100 ~= 0) or y % 400 == 0) then d = 28 end end dates[i] = Date(y, m, d) end else -- If partial dates are allowed, accept -- year only, or -- year and month only -- Do not accept year and day without a month because that makes no sense -- (and because, for example, Date('partial', 2001, nil, 12) sets day = nil, not 12). for i = 1, nrDates do local index = i == 1 and 1 or 4 local y, m, d = fields[index], fields[index+1], fields[index+2] if (getopt.partial and y and (m or not d)) or (y and m and d) then dates[i] = Date(fix, partialText, y, m, d) elseif not y and not m and not d then dates[i] = Date(flagCurrent()) end end end else getopt.textdates = true -- have parsed each date from a single text field dates[1] = Date(fix, partialText, flagCurrent(fields[1])) if not getopt.single then dates[2] = Date(fix, partialText, flagCurrent(fields[2])) end end if not dates[1] then return message(getopt.missing1 or 'mt-need-valid-ymd') end if getopt.single then return dates[1] end if not dates[2] then return message(getopt.missing2 or 'mt-need-valid-ymd2') end return dates[1], dates[2] end local function ageGeneric(frame) -- Return the result required by the specified template. -- Can use sortable=x where x = on/table/off/debug in any supported template. -- Some templates default to sortable=on but can be overridden. local name = frame.args.template if not name then return message('mt-template-x') end local args = frame:getParent().args local specs = { age_days = { -- {{age in days}} show = 'd', disp = 'disp_raw', }, age_days_nts = { -- {{age in days nts}} show = 'd', disp = 'disp_raw', format = 'format_commas', sortable = 'on', }, duration_days = { -- {{duration in days}} show = 'd', disp = 'disp_raw', duration = true, }, duration_days_nts = { -- {{duration in days nts}} show = 'd', disp = 'disp_raw', format = 'format_commas', sortable = 'on', duration = true, }, age_full_years = { -- {{age}} show = 'y', abbr = 'abbr_raw', flag = 'usesCurrent', omitZero = true, range = 'no', }, age_full_years_nts = { -- {{age nts}} show = 'y', abbr = 'abbr_raw', format = 'format_commas', sortable = 'on', }, age_in_years = { -- {{age in years}} show = 'y', abbr = 'abbr_raw', negative = 'error', range = 'dash', }, age_in_years_nts = { -- {{age in years nts}} show = 'y', abbr = 'abbr_raw', negative = 'error', range = 'dash', format = 'format_commas', sortable = 'on', }, age_infant = { -- {{age for infant}} -- Do not set show because special processing is done later. abbr = yes(args.abbr) and 'abbr_infant' or 'abbr_off', disp = 'disp_age', sep = 'sep_space', sortable = 'on', }, age_m = { -- {{age in months}} show = 'm', disp = 'disp_raw', }, age_w = { -- {{age in weeks}} show = 'w', disp = 'disp_raw', }, age_wd = { -- {{age in weeks and days}} show = 'wd', }, age_yd = { -- {{age in years and days}} show = 'yd', format = 'format_commas', sep = args.sep ~= 'and' and 'sep_comma' or nil, }, age_yd_nts = { -- {{age in years and days nts}} show = 'yd', format = 'format_commas', sep = args.sep ~= 'and' and 'sep_comma' or nil, sortable = 'on', }, age_ym = { -- {{age in years and months}} show = 'ym', sep = 'sep_comma', }, age_ymd = { -- {{age in years, months and days}} show = 'ymd', range = true, }, age_ymwd = { -- {{age in years, months, weeks and days}} show = 'ymwd', wantMixture = true, }, } local spec = specs[name] if not spec then return message('mt-template-bad-name') end if name == 'age_days' then local su = stripToNil(args['show unit']) if su then if su == 'abbr' or su == 'full' then spec.disp = nil spec.abbr = su == 'abbr' and 'abbr_on' or nil end end end local partial, autofill local range = stripToNil(args.range) or spec.range if range then -- Suppose partial dates are used and age could be 11 or 12 years. -- "|range=" (empty value) has no effect (spec is used). -- "|range=yes" or spec.range == true sets range = true (gives "11 or 12") -- "|range=dash" or spec.range == 'dash' sets range = 'dash' (gives "11–12"). -- "|range=no" or spec.range == 'no' sets range = nil and fills each date in the diff (gives "12"). -- ("on" is equivalent to "yes", and "off" is equivalent to "no"). -- "|range=OTHER" sets range = nil and rejects partial dates. range = ({ dash = 'dash', off = 'no', no = 'no', [true] = true })[range] or yes(range) if range then partial = true -- accept partial dates with a possible age range for the result if range == 'no' then autofill = true -- missing month/day in first or second date are filled from other date or 1 range = nil end end end local getopt = { fix = yes(args.fix), flag = stripToNil(args.flag) or spec.flag, omitZero = spec.omitZero, partial = partial, wantMixture = spec.wantMixture, } local date1, date2 = getDates(frame, getopt) if type(date1) == 'string' then return date1 end local format = stripToNil(args.format) local spell = spellOptions[format] if format then format = 'format_' .. format elseif name == 'age_days' and getopt.textdates then format = 'format_commas' end local parms = { diff = date2:subtract(date1, { fill = autofill }), wantDuration = spec.duration or yes(args.duration), range = range, wantSc = yes(args.sc), show = args.show == 'hide' and 'hide' or spec.show, abbr = spec.abbr, disp = spec.disp, extra = makeExtra(args, getopt.usesCurrent and format ~= 'format_raw'), format = format or spec.format, round = yes(args.round), sep = spec.sep, sortable = translateParameters.sortable[args.sortable or spec.sortable], spell = spell, } if (spec.negative or frame.args.negative) == 'error' and parms.diff.isnegative then return message('mt-date-wrong-order') end return from_en(dateDifference(parms)) end local function bda(frame) -- Implement [[Template:Birth date and age]]. local args = frame:getParent().args local options = { missing1 = 'mt-need-valid-bd', noMissing = true, single = true, } local date = getDates(frame, options) if type(date) == 'string' then return date -- error text end local Date = getExports(frame) local diff = Date('currentdate') - date if diff.isnegative or diff.years > 150 then return message('mt-invalid-bd-age') end local disp, show = 'disp_raw', 'y' if diff.years < 2 then disp = 'disp_age' if diff.years == 0 and diff.months == 0 then show = 'd' else show = 'm' end end local df = stripToNil(args.df) -- day first (dmy); default is month first (mdy) local result = '(<span class="bday">%-Y-%m-%d</span>) </span>' .. (df and '%-d %B %-Y' or '%B %-d, %-Y') result = from_en('<span style="display:none"> ' .. date:text(result) .. '<span class="noprint ForceAgeToShow"> ' .. mtext['txt-age'] .. dateDifference({ diff = diff, show = show, abbr = 'abbr_off', disp = disp, sep = 'sep_space', }) .. ')</span>') local warnings = tonumber(frame.args.warnings) if warnings and warnings > 0 then local good = { df = true, mf = true, day = true, day1 = true, month = true, month1 = true, year = true, year1 = true, } local invalid local imax = options.textdates and 1 or 3 for k, _ in pairs(args) do if type(k) == 'number' then if k > imax then invalid = tostring(k) break end else if not good[k] then invalid = k break end end end if invalid then result = result .. message({ 'mt-bad-param1', invalid }, 'warning') end end return result end local function dda(frame) -- Implement [[Template:Death date and age]]. local args = frame:getParent().args local options = { missing1 = 'mt-need-valid-dd', missing2 = 'mt-need-valid-bd2', noMissing = true, partial = true, } local date1, date2 = getDates(frame, options) if type(date1) == 'string' then return date1 end local diff = date1 - date2 if diff.isnegative then return message('mt-dd-wrong-order') end local Date = getExports(frame) local today = Date('currentdate') + 1 -- one day in future allows for timezones if date1 > today then return message('mt-dd-future') end local years if diff.partial then years = diff.partial.years years = type(years) == 'table' and years[2] or years else years = diff.years end if years > 150 then return message('mt-invalid-dates-age') end local df = stripToNil(args.df) -- day first (dmy); default is month first (mdy) local result if date1.day then -- y, m, d known result = (df and '%-d %B %-Y' or '%B %-d, %-Y') .. '<span style="display:none">(%-Y-%m-%d)</span>' elseif date1.month then -- y, m known; d unknown result = '%B %-Y' .. '<span style="display:none">(%-Y-%m-00)</span>' else -- y known; m, d unknown result = '%-Y' .. '<span style="display:none">(%-Y-00-00)</span>' end result = from_en(date1:text(result) .. mtext['txt-aged'] .. dateDifference({ diff = diff, show = 'y', abbr = 'abbr_off', disp = 'disp_raw', range = 'dash', sep = 'sep_space', }) .. ')') local warnings = tonumber(frame.args.warnings) if warnings and warnings > 0 then local good = { df = true, mf = true, } local invalid local imax = options.textdates and 2 or 6 for k, _ in pairs(args) do if type(k) == 'number' then if k > imax then invalid = tostring(k) break end else if not good[k] then invalid = k break end end end if invalid then result = result .. message({ 'mt-bad-param1', invalid }, 'warning') end end return result end local function dateToGsd(frame) -- Implement [[Template:Gregorian serial date]]. -- Return Gregorian serial date of the given date, or the current date. -- The returned value is negative for dates before 1 January 1 AD -- despite the fact that GSD is not defined for such dates. local date = getDates(frame, { wantMixture=true, single=true }) if type(date) == 'string' then return date end return tostring(date.gsd) end local function jdToDate(frame) -- Return formatted date from a Julian date. -- The result includes a time if the input includes a fraction. -- The word 'Julian' is accepted for the Julian calendar. local Date = getExports(frame) local args = frame:getParent().args local date = Date('juliandate', args[1], args[2]) if date then return from_en(date:text()) end return message('mt-need-jdn') end local function dateToJd(frame) -- Return Julian date (a number) from a date which may include a time, -- or the current date ('currentdate') or current date and time ('currentdatetime'). -- The word 'Julian' is accepted for the Julian calendar. local Date = getExports(frame) local args = frame:getParent().args local date = Date(args[1], args[2], args[3], args[4], args[5], args[6], args[7]) if date then return tostring(date.jd) end return message('mt-need-valid-ymd-current') end local function timeInterval(frame) -- Implement [[Template:Time interval]]. -- There are two positional arguments: date1, date2. -- The default for each is the current date and time. -- Result is date2 - date1 formatted. local Date = getExports(frame) local args = frame:getParent().args local parms = { extra = makeExtra(args), wantDuration = yes(args.duration), range = yes(args.range) or (args.range == 'dash' and 'dash' or nil), wantSc = yes(args.sc), } local fix = yes(args.fix) and 'fix' or '' local date1 = Date(fix, 'partial', stripToNil(args[1]) or 'currentdatetime') if not date1 then return message('mt-invalid-start') end local date2 = Date(fix, 'partial', stripToNil(args[2]) or 'currentdatetime') if not date2 then return message('mt-invalid-end') end parms.diff = date2 - date1 for argname, translate in pairs(translateParameters) do local parm = stripToNil(args[argname]) if parm then parm = translate[parm] if parm == nil then -- test for nil because false is a valid setting return message({ 'mt-bad-param2', argname, args[argname] }) end parms[argname] = parm end end if parms.round then local round = parms.round local show = parms.show if round ~= 'on' then if show then if show.id ~= round then return message({ 'mt-conflicting-show', args.show, args.round }) end else parms.show = translateParameters.show[round] end end parms.round = true end return from_en(dateDifference(parms)) end return { age_generic = ageGeneric, -- can emulate several age templates birth_date_and_age = bda, -- Template:Birth_date_and_age death_date_and_age = dda, -- Template:Death_date_and_age gsd = dateToGsd, -- Template:Gregorian_serial_date extract = dateExtract, -- Template:Extract jd_to_date = jdToDate, -- Template:? JULIANDAY = dateToJd, -- Template:JULIANDAY time_interval = timeInterval, -- Template:Time_interval } cv4cyvm426376tqaxl8xalmo1gyn51g 240037 240036 2025-06-08T16:54:33Z Narazeni 826 240037 Scribunto text/plain -- Implement various "age of" and other date-related templates. local mtext = { -- Message and other text that should be localized. ['mt-bad-param1'] = 'Invalid parameter $1', ['mt-bad-param2'] = 'Parameter $1=$2 is invalid', ['mt-bad-show'] = 'Parameter show=$1 is not supported here', ['mt-cannot-add'] = 'Cannot add "$1"', ['mt-conflicting-show'] = 'Parameter show=$1 conflicts with round=$2', ['mt-date-wrong-order'] = 'The second date must be later in time than the first date', ['mt-dd-future'] = 'Death date (first date) must not be in the future', ['mt-dd-wrong-order'] = 'Death date (first date) must be later in time than the birth date (second date)', ['mt-invalid-bd-age'] = 'Invalid birth date for calculating age', ['mt-invalid-dates-age'] = 'Invalid dates for calculating age', ['mt-invalid-end'] = 'Invalid end date in second parameter', ['mt-invalid-start'] = 'Invalid start date in first parameter', ['mt-need-jdn'] = 'Need valid Julian date number', ['mt-need-valid-bd'] = 'Need valid birth date: year, month, day', ['mt-need-valid-bd2'] = 'Need valid birth date (second date): year, month, day', ['mt-need-valid-date'] = 'Need valid date', ['mt-need-valid-dd'] = 'Need valid death date (first date): year, month, day', ['mt-need-valid-ymd'] = 'Need valid year, month, day', ['mt-need-valid-ymd-current'] = 'Need valid year|month|day or "currentdate"', ['mt-need-valid-ymd2'] = 'Second date should be year, month, day', ['mt-template-bad-name'] = 'The specified template name is not valid', ['mt-template-x'] = 'The template invoking this must have "|template=x" where x is the wanted operation', ['txt-age'] = '(age&nbsp;', ['txt-aged'] = ' (aged&nbsp;', ['txt-and'] = ' и ', ['txt-comma-and'] = ', и ', ['txt-error'] = 'Ошибка: ', ['txt-or'] = '&nbsp;или ', } local translate, from_en, to_en, isZero if translate then -- Functions to translate from en to local language and reverse go here. -- See example at [[:bn:Module:বয়স]]. else from_en = function (text) return text end isZero = function (text) return tonumber(text) == 0 end end local _Date, _currentDate local function getExports(frame) -- Return objects exported from the date module or its sandbox. if not _Date then local sandbox = frame:getTitle():find('sandbox', 1, true) and '/sandbox' or '' local datemod = require('Module:Date' .. sandbox) local realDate = datemod._Date _currentDate = datemod._current if to_en then _Date = function (...) local args = {} for i, v in ipairs({...}) do args[i] = to_en(v) end return realDate(unpack(args)) end else _Date = realDate end end return _Date, _currentDate end local Collection -- a table to hold items Collection = { add = function (self, item) if item ~= nil then self.n = self.n + 1 self[self.n] = item end end, join = function (self, sep) return table.concat(self, sep) end, remove = function (self, pos) if self.n > 0 and (pos == nil or (0 < pos and pos <= self.n)) then self.n = self.n - 1 return table.remove(self, pos) end end, sort = function (self, comp) table.sort(self, comp) end, new = function () return setmetatable({n = 0}, Collection) end } Collection.__index = Collection local function stripToNil(text) -- If text is a string, return its trimmed content, or nil if empty. -- Otherwise return text (which may, for example, be nil). if type(text) == 'string' then text = text:match('(%S.-)%s*$') end return text end local function yes(parameter) -- Return true if parameter should be interpreted as "yes". -- Do not want to accept mixed upper/lowercase unless done by current templates. -- Need to accept "on" because "round=on" is wanted. return ({ y = true, yes = true, on = true })[parameter] end local function message(msg, id) -- Return formatted message text for an error or warning. local function getText(msg) return mtext[msg] or error('Bug: message "' .. tostring(msg) .. '" not defined') end local text if type(msg) == 'table' then text = getText(msg[1]) local rep = {} for i, v in ipairs(msg) do if i > 1 then rep['$' .. (i - 1)] = v end end text = text:gsub('$%d+', rep) else text = getText(msg) end local categories = { error = '[[Category:Age error]]', warning = '[[Category:Age error]]', -- same as error until determine whether 'Age warning' would be worthwhile } local a, b, category if id == 'warning' then a = '<sup>[<i>' b = '</i>]</sup>' else a = '<strong class="error">' .. getText('txt-error') b = '</strong>' end if mw.title.getCurrentTitle():inNamespaces(0) then -- Category only in namespaces: 0=article. category = categories[id or 'error'] end return a .. mw.text.nowiki(text) .. b .. (category or '') end local function formatNumber(number) -- Return the given number formatted with commas as group separators, -- given that the number is an integer. local numstr = tostring(number) local length = #numstr local places = Collection.new() local pos = 0 repeat places:add(pos) pos = pos + 3 until pos >= length places:add(length) local groups = Collection.new() for i = places.n, 2, -1 do local p1 = length - places[i] + 1 local p2 = length - places[i - 1] groups:add(numstr:sub(p1, p2)) end return groups:join(',') end local function spellNumber(number, options, i) -- Return result of spelling number, or -- return number (as a string) if cannot spell it. -- i == 1 for the first number which can optionally start with an uppercase letter. number = tostring(number) return require('Module:ConvertNumeric').spell_number( number, nil, -- fraction numerator nil, -- fraction denominator i == 1 and options.upper, -- true: 'One' instead of 'one' not options.us, -- true: use 'and' between tens/ones etc options.adj, -- true: hyphenated options.ordinal -- true: 'first' instead of 'one' ) or number end local function makeExtra(args, flagCurrent) -- Return extra text that will be inserted before the visible result -- but after any sort key. local extra = args.prefix or '' if mw.ustring.len(extra) > 1 then -- Parameter "~" gives "~3" whereas "over" gives "over 3". if extra:sub(-6, -1) ~= '&nbsp;' then extra = extra .. ' ' end end if flagCurrent then extra = '<span class="currentage"></span>' .. extra end return extra end local function makeSort(value, sortable) -- Return a sort key if requested. -- Assume value is a valid number which has not overflowed. if sortable == 'sortable_table' or sortable == 'sortable_on' or sortable == 'sortable_debug' then local sortKey if value == 0 then sortKey = '5000000000000000000' else local mag = math.floor(math.log10(math.abs(value)) + 1e-14) if value > 0 then sortKey = 7000 + mag else sortKey = 2999 - mag value = value + 10^(mag+1) end sortKey = string.format('%d', sortKey) .. string.format('%015.0f', math.floor(value * 10^(14-mag))) end local result if sortable == 'sortable_table' then result = 'data-sort-value="_SORTKEY_"|' elseif sortable == 'sortable_debug' then result = '<span data-sort-value="_SORTKEY_♠"><span style="border:1px solid">_SORTKEY_♠</span></span>' else result = '<span data-sort-value="_SORTKEY_♠"></span>' end return result:gsub('_SORTKEY_', sortKey) end end local translateParameters = { abbr = { off = 'abbr_off', on = 'abbr_on', }, disp = { age = 'disp_age', raw = 'disp_raw', }, format = { raw = 'format_raw', commas = 'format_commas', }, round = { on = 'on', yes = 'on', months = 'ym', weeks = 'ymw', days = 'ymd', hours = 'ymdh', }, sep = { comma = 'sep_comma', [','] = 'sep_comma', serialcomma = 'sep_serialcomma', space = 'sep_space', }, show = { hide = { id = 'hide' }, y = { 'y', id = 'y' }, ym = { 'y', 'm', id = 'ym' }, ymd = { 'y', 'm', 'd', id = 'ymd' }, ymw = { 'y', 'm', 'w', id = 'ymw' }, ymwd = { 'y', 'm', 'w', 'd', id = 'ymwd' }, yd = { 'y', 'd', id = 'yd', keepZero = true }, m = { 'm', id = 'm' }, md = { 'm', 'd', id = 'md' }, w = { 'w', id = 'w' }, wd = { 'w', 'd', id = 'wd' }, h = { 'H', id = 'h' }, hm = { 'H', 'M', id = 'hm' }, hms = { 'H', 'M', 'S', id = 'hms' }, d = { 'd', id = 'd' }, dh = { 'd', 'H', id = 'dh' }, dhm = { 'd', 'H', 'M', id = 'dhm' }, dhms = { 'd', 'H', 'M', 'S', id = 'dhms' }, ymdh = { 'y', 'm', 'd', 'H', id = 'ymdh' }, ymdhm = { 'y', 'm', 'd', 'H', 'M', id = 'ymdhm' }, ymwdh = { 'y', 'm', 'w', 'd', 'H', id = 'ymwdh' }, ymwdhm = { 'y', 'm', 'w', 'd', 'H', 'M', id = 'ymwdhm' }, }, sortable = { off = false, on = 'sortable_on', table = 'sortable_table', debug = 'sortable_debug', }, } local spellOptions = { cardinal = {}, Cardinal = { upper = true }, cardinal_us = { us = true }, Cardinal_us = { us = true, upper = true }, ordinal = { ordinal = true }, Ordinal = { ordinal = true, upper = true }, ordinal_us = { ordinal = true, us = true }, Ordinal_us = { ordinal = true, us = true, upper = true }, } local function dateExtract(frame) -- Return part of a date after performing an optional operation. local Date = getExports(frame) local args = frame:getParent().args local parms = {} for i, v in ipairs(args) do parms[i] = v end if yes(args.fix) then table.insert(parms, 'fix') end if yes(args.partial) then table.insert(parms, 'partial') end local show = stripToNil(args.show) or 'dmy' local date = Date(unpack(parms)) if not date then if show == 'format' then return 'error' end return message('mt-need-valid-date') end local add = stripToNil(args.add) if add then for item in add:gmatch('%S+') do date = date + item if not date then return message({ 'mt-cannot-add', item }) end end end local sortKey, result local sortable = translateParameters.sortable[args.sortable] if sortable then local value = (date.partial and date.partial.first or date).jdz sortKey = makeSort(value, sortable) end if show ~= 'hide' then result = date[show] if result == nil then result = from_en(date:text(show)) elseif type(result) == 'boolean' then result = result and '1' or '0' else result = from_en(tostring(result)) end end return (sortKey or '') .. makeExtra(args) .. (result or '') end local function rangeJoin(range) -- Return text to be used between a range of ages. return range == 'dash' and '–' or mtext['txt-or'] end local function makeText(values, components, names, options, noUpper) -- Return wikitext representing an age or duration. local text = Collection.new() local count = #values local sep = names.sep or '' for i, v in ipairs(values) do -- v is a number (say 4 for 4 years), or a table ({4,5} for 4 or 5 years). local islist = type(v) == 'table' if (islist or v > 0) or (text.n == 0 and i == count) or (text.n > 0 and components.keepZero) then local fmt, vstr if options.spell then fmt = function(number) return spellNumber(number, options.spell, noUpper or i) end elseif i == 1 and options.format == 'format_commas' then -- Numbers after the first should be small and not need formatting. fmt = formatNumber else fmt = tostring end if islist then vstr = fmt(v[1]) .. rangeJoin(options.range) noUpper = true vstr = vstr .. fmt(v[2]) else vstr = fmt(v) end local name = names[components[i]] if name then local plural = names.plural if not plural or (islist and v[2] or v) == 1 then plural = '' end text:add(vstr .. sep .. name .. plural) else text:add(vstr) end end end local first, last if options.join == 'sep_space' then first = ' ' last = ' ' elseif options.join == 'sep_comma' then first = ', ' last = ', ' elseif options.join == 'sep_serialcomma' and text.n > 2 then first = ', ' last = mtext['txt-comma-and'] else first = ', ' last = mtext['txt-and'] end for i, v in ipairs(text) do if i < text.n then text[i] = v .. (i + 1 < text.n and first or last) end end local sign = '' if options.isnegative then -- Do not display negative zero. if text.n > 1 or (text.n == 1 and text[1]:sub(1, 1) ~= '0' ) then if options.format == 'format_raw' then sign = '-' -- plain hyphen so result can be used in a calculation else sign = '−' -- Unicode U+2212 MINUS SIGN end end end return (options.sortKey or '') .. (options.extra or '') .. sign .. text:join() .. (options.suffix or '') end local function dateDifference(parms) -- Return a formatted date difference using the given parameters -- which have been validated. local names = { abbr_off = { plural = '', sep = '&nbsp;', y = 'წანა', m = 'თუთა', w = 'მარა', d = 'დღა', H = 'სათი', M = 'წუთი', S = 'წამი', }, abbr_on = { y = 'წ.', m = 'თ.', w = 'მ.', d = 'დღ.', H = 'სთ.', M = 'წთ.', S = 'წმ.', }, abbr_infant = { -- for {{age for infant}} plural = 's', sep = '&nbsp;', y = 'yr', m = 'mo', w = 'wk', d = 'day', H = 'hr', M = 'min', S = 'sec', }, abbr_raw = {}, } local diff = parms.diff -- must be a valid date difference local show = parms.show -- may be nil; default is set below local abbr = parms.abbr or 'abbr_on' local defaultJoin if abbr ~= 'abbr_off' then defaultJoin = 'sep_space' end if not show then show = 'ymd' if parms.disp == 'disp_age' then if diff.years < 3 then defaultJoin = 'sep_space' if diff.years >= 1 then show = 'ym' else show = 'md' end else show = 'y' end end end if type(show) ~= 'table' then show = translateParameters.show[show] end if parms.disp == 'disp_raw' then defaultJoin = 'sep_space' abbr = 'abbr_raw' elseif parms.wantSc then defaultJoin = 'sep_serialcomma' end local diffOptions = { round = parms.round, duration = parms.wantDuration, range = parms.range and true or nil, } local sortKey if parms.sortable then local value = diff.age_days + (parms.wantDuration and 1 or 0) -- days and fraction of a day if diff.isnegative then value = -value end sortKey = makeSort(value, parms.sortable) end local textOptions = { extra = parms.extra, format = parms.format, join = parms.sep or defaultJoin, isnegative = diff.isnegative, range = parms.range, sortKey = sortKey, spell = parms.spell, suffix = parms.suffix, -- not currently used } if show.id == 'hide' then return sortKey or '' end local values = { diff:age(show.id, diffOptions) } if values[1] then return makeText(values, show, names[abbr], textOptions) end if diff.partial then -- Handle a more complex range such as -- {{age_yd|20 Dec 2001|2003|range=yes}} → 1 year, 12 days or 2 years, 11 days local opt = { format = textOptions.format, join = textOptions.join, isnegative = textOptions.isnegative, spell = textOptions.spell, } return (textOptions.sortKey or '') .. makeText({ diff.partial.mindiff:age(show.id, diffOptions) }, show, names[abbr], opt) .. rangeJoin(textOptions.range) .. makeText({ diff.partial.maxdiff:age(show.id, diffOptions) }, show, names[abbr], opt, true) .. (textOptions.suffix or '') end return message({ 'mt-bad-show', show.id }) end local function getDates(frame, getopt) -- Parse template parameters and return one of: -- * date (a date table, if single) -- * date1, date2 (two date tables, if not single) -- * text (a string error message) -- A missing date is optionally replaced with the current date. -- If wantMixture is true, a missing date component is replaced -- from the current date, so can get a bizarre mixture of -- specified/current y/m/d as has been done by some "age" templates. -- Some results may be placed in table getopt. local Date, currentDate = getExports(frame) getopt = getopt or {} local function flagCurrent(text) -- This allows the calling template to detect if the current date has been used, -- that is, whether both dates have been entered in a template expecting two. -- For example, an infobox may want the age when an event occurred, not the current age. -- Don't bother detecting if wantMixture is used because not needed and it is a poor option. if not text then if getopt.noMissing then return nil -- this gives a nil date which gives an error end text = 'currentdate' if getopt.flag == 'usesCurrent' then getopt.usesCurrent = true end end return text end local args = frame:getParent().args local fields = {} local isNamed = args.year or args.year1 or args.year2 or args.month or args.month1 or args.month2 or args.day or args.day1 or args.day2 if isNamed then fields[1] = args.year1 or args.year fields[2] = args.month1 or args.month fields[3] = args.day1 or args.day fields[4] = args.year2 fields[5] = args.month2 fields[6] = args.day2 else for i = 1, 6 do fields[i] = args[i] end end local imax = 0 for i = 1, 6 do fields[i] = stripToNil(fields[i]) if fields[i] then imax = i end if getopt.omitZero and i % 3 ~= 1 then -- omit zero months and days as unknown values but keep year 0 which is 1 BCE if isZero(fields[i]) then fields[i] = nil getopt.partial = true end end end local fix = getopt.fix and 'fix' or '' local partialText = getopt.partial and 'partial' or '' local dates = {} if isNamed or imax >= 3 then local nrDates = getopt.single and 1 or 2 if getopt.wantMixture then -- Cannot be partial since empty fields are set from current. local components = { 'year', 'month', 'day' } for i = 1, nrDates * 3 do fields[i] = fields[i] or currentDate[components[i > 3 and i - 3 or i]] end for i = 1, nrDates do local index = i == 1 and 1 or 4 local y, m, d = fields[index], fields[index+1], fields[index+2] if (m == 2 or m == '2') and (d == 29 or d == '29') then -- Workaround error with following which attempt to use invalid date 2001-02-29. -- {{age_ymwd|year1=2001|year2=2004|month2=2|day2=29}} -- {{age_ymwd|year1=2001|month1=2|year2=2004|month2=1|day2=29}} -- TODO Get rid of wantMixture because even this ugly code does not handle -- 'Feb' or 'February' or 'feb' or 'february'. if not ((y % 4 == 0 and y % 100 ~= 0) or y % 400 == 0) then d = 28 end end dates[i] = Date(y, m, d) end else -- If partial dates are allowed, accept -- year only, or -- year and month only -- Do not accept year and day without a month because that makes no sense -- (and because, for example, Date('partial', 2001, nil, 12) sets day = nil, not 12). for i = 1, nrDates do local index = i == 1 and 1 or 4 local y, m, d = fields[index], fields[index+1], fields[index+2] if (getopt.partial and y and (m or not d)) or (y and m and d) then dates[i] = Date(fix, partialText, y, m, d) elseif not y and not m and not d then dates[i] = Date(flagCurrent()) end end end else getopt.textdates = true -- have parsed each date from a single text field dates[1] = Date(fix, partialText, flagCurrent(fields[1])) if not getopt.single then dates[2] = Date(fix, partialText, flagCurrent(fields[2])) end end if not dates[1] then return message(getopt.missing1 or 'mt-need-valid-ymd') end if getopt.single then return dates[1] end if not dates[2] then return message(getopt.missing2 or 'mt-need-valid-ymd2') end return dates[1], dates[2] end local function ageGeneric(frame) -- Return the result required by the specified template. -- Can use sortable=x where x = on/table/off/debug in any supported template. -- Some templates default to sortable=on but can be overridden. local name = frame.args.template if not name then return message('mt-template-x') end local args = frame:getParent().args local specs = { age_days = { -- {{age in days}} show = 'd', disp = 'disp_raw', }, age_days_nts = { -- {{age in days nts}} show = 'd', disp = 'disp_raw', format = 'format_commas', sortable = 'on', }, duration_days = { -- {{duration in days}} show = 'd', disp = 'disp_raw', duration = true, }, duration_days_nts = { -- {{duration in days nts}} show = 'd', disp = 'disp_raw', format = 'format_commas', sortable = 'on', duration = true, }, age_full_years = { -- {{age}} show = 'y', abbr = 'abbr_raw', flag = 'usesCurrent', omitZero = true, range = 'no', }, age_full_years_nts = { -- {{age nts}} show = 'y', abbr = 'abbr_raw', format = 'format_commas', sortable = 'on', }, age_in_years = { -- {{age in years}} show = 'y', abbr = 'abbr_raw', negative = 'error', range = 'dash', }, age_in_years_nts = { -- {{age in years nts}} show = 'y', abbr = 'abbr_raw', negative = 'error', range = 'dash', format = 'format_commas', sortable = 'on', }, age_infant = { -- {{age for infant}} -- Do not set show because special processing is done later. abbr = yes(args.abbr) and 'abbr_infant' or 'abbr_off', disp = 'disp_age', sep = 'sep_space', sortable = 'on', }, age_m = { -- {{age in months}} show = 'm', disp = 'disp_raw', }, age_w = { -- {{age in weeks}} show = 'w', disp = 'disp_raw', }, age_wd = { -- {{age in weeks and days}} show = 'wd', }, age_yd = { -- {{age in years and days}} show = 'yd', format = 'format_commas', sep = args.sep ~= 'and' and 'sep_comma' or nil, }, age_yd_nts = { -- {{age in years and days nts}} show = 'yd', format = 'format_commas', sep = args.sep ~= 'and' and 'sep_comma' or nil, sortable = 'on', }, age_ym = { -- {{age in years and months}} show = 'ym', sep = 'sep_comma', }, age_ymd = { -- {{age in years, months and days}} show = 'ymd', range = true, }, age_ymwd = { -- {{age in years, months, weeks and days}} show = 'ymwd', wantMixture = true, }, } local spec = specs[name] if not spec then return message('mt-template-bad-name') end if name == 'age_days' then local su = stripToNil(args['show unit']) if su then if su == 'abbr' or su == 'full' then spec.disp = nil spec.abbr = su == 'abbr' and 'abbr_on' or nil end end end local partial, autofill local range = stripToNil(args.range) or spec.range if range then -- Suppose partial dates are used and age could be 11 or 12 years. -- "|range=" (empty value) has no effect (spec is used). -- "|range=yes" or spec.range == true sets range = true (gives "11 or 12") -- "|range=dash" or spec.range == 'dash' sets range = 'dash' (gives "11–12"). -- "|range=no" or spec.range == 'no' sets range = nil and fills each date in the diff (gives "12"). -- ("on" is equivalent to "yes", and "off" is equivalent to "no"). -- "|range=OTHER" sets range = nil and rejects partial dates. range = ({ dash = 'dash', off = 'no', no = 'no', [true] = true })[range] or yes(range) if range then partial = true -- accept partial dates with a possible age range for the result if range == 'no' then autofill = true -- missing month/day in first or second date are filled from other date or 1 range = nil end end end local getopt = { fix = yes(args.fix), flag = stripToNil(args.flag) or spec.flag, omitZero = spec.omitZero, partial = partial, wantMixture = spec.wantMixture, } local date1, date2 = getDates(frame, getopt) if type(date1) == 'string' then return date1 end local format = stripToNil(args.format) local spell = spellOptions[format] if format then format = 'format_' .. format elseif name == 'age_days' and getopt.textdates then format = 'format_commas' end local parms = { diff = date2:subtract(date1, { fill = autofill }), wantDuration = spec.duration or yes(args.duration), range = range, wantSc = yes(args.sc), show = args.show == 'hide' and 'hide' or spec.show, abbr = spec.abbr, disp = spec.disp, extra = makeExtra(args, getopt.usesCurrent and format ~= 'format_raw'), format = format or spec.format, round = yes(args.round), sep = spec.sep, sortable = translateParameters.sortable[args.sortable or spec.sortable], spell = spell, } if (spec.negative or frame.args.negative) == 'error' and parms.diff.isnegative then return message('mt-date-wrong-order') end return from_en(dateDifference(parms)) end local function bda(frame) -- Implement [[Template:Birth date and age]]. local args = frame:getParent().args local options = { missing1 = 'mt-need-valid-bd', noMissing = true, single = true, } local date = getDates(frame, options) if type(date) == 'string' then return date -- error text end local Date = getExports(frame) local diff = Date('currentdate') - date if diff.isnegative or diff.years > 150 then return message('mt-invalid-bd-age') end local disp, show = 'disp_raw', 'y' if diff.years < 2 then disp = 'disp_age' if diff.years == 0 and diff.months == 0 then show = 'd' else show = 'm' end end local df = stripToNil(args.df) -- day first (dmy); default is month first (mdy) local result = '(<span class="bday">%-Y-%m-%d</span>) </span>' .. (df and '%-d %B %-Y' or '%B %-d, %-Y') result = from_en('<span style="display:none"> ' .. date:text(result) .. '<span class="noprint ForceAgeToShow"> ' .. mtext['txt-age'] .. dateDifference({ diff = diff, show = show, abbr = 'abbr_off', disp = disp, sep = 'sep_space', }) .. ')</span>') local warnings = tonumber(frame.args.warnings) if warnings and warnings > 0 then local good = { df = true, mf = true, day = true, day1 = true, month = true, month1 = true, year = true, year1 = true, } local invalid local imax = options.textdates and 1 or 3 for k, _ in pairs(args) do if type(k) == 'number' then if k > imax then invalid = tostring(k) break end else if not good[k] then invalid = k break end end end if invalid then result = result .. message({ 'mt-bad-param1', invalid }, 'warning') end end return result end local function dda(frame) -- Implement [[Template:Death date and age]]. local args = frame:getParent().args local options = { missing1 = 'mt-need-valid-dd', missing2 = 'mt-need-valid-bd2', noMissing = true, partial = true, } local date1, date2 = getDates(frame, options) if type(date1) == 'string' then return date1 end local diff = date1 - date2 if diff.isnegative then return message('mt-dd-wrong-order') end local Date = getExports(frame) local today = Date('currentdate') + 1 -- one day in future allows for timezones if date1 > today then return message('mt-dd-future') end local years if diff.partial then years = diff.partial.years years = type(years) == 'table' and years[2] or years else years = diff.years end if years > 150 then return message('mt-invalid-dates-age') end local df = stripToNil(args.df) -- day first (dmy); default is month first (mdy) local result if date1.day then -- y, m, d known result = (df and '%-d %B %-Y' or '%B %-d, %-Y') .. '<span style="display:none">(%-Y-%m-%d)</span>' elseif date1.month then -- y, m known; d unknown result = '%B %-Y' .. '<span style="display:none">(%-Y-%m-00)</span>' else -- y known; m, d unknown result = '%-Y' .. '<span style="display:none">(%-Y-00-00)</span>' end result = from_en(date1:text(result) .. mtext['txt-aged'] .. dateDifference({ diff = diff, show = 'y', abbr = 'abbr_off', disp = 'disp_raw', range = 'dash', sep = 'sep_space', }) .. ')') local warnings = tonumber(frame.args.warnings) if warnings and warnings > 0 then local good = { df = true, mf = true, } local invalid local imax = options.textdates and 2 or 6 for k, _ in pairs(args) do if type(k) == 'number' then if k > imax then invalid = tostring(k) break end else if not good[k] then invalid = k break end end end if invalid then result = result .. message({ 'mt-bad-param1', invalid }, 'warning') end end return result end local function dateToGsd(frame) -- Implement [[Template:Gregorian serial date]]. -- Return Gregorian serial date of the given date, or the current date. -- The returned value is negative for dates before 1 January 1 AD -- despite the fact that GSD is not defined for such dates. local date = getDates(frame, { wantMixture=true, single=true }) if type(date) == 'string' then return date end return tostring(date.gsd) end local function jdToDate(frame) -- Return formatted date from a Julian date. -- The result includes a time if the input includes a fraction. -- The word 'Julian' is accepted for the Julian calendar. local Date = getExports(frame) local args = frame:getParent().args local date = Date('juliandate', args[1], args[2]) if date then return from_en(date:text()) end return message('mt-need-jdn') end local function dateToJd(frame) -- Return Julian date (a number) from a date which may include a time, -- or the current date ('currentdate') or current date and time ('currentdatetime'). -- The word 'Julian' is accepted for the Julian calendar. local Date = getExports(frame) local args = frame:getParent().args local date = Date(args[1], args[2], args[3], args[4], args[5], args[6], args[7]) if date then return tostring(date.jd) end return message('mt-need-valid-ymd-current') end local function timeInterval(frame) -- Implement [[Template:Time interval]]. -- There are two positional arguments: date1, date2. -- The default for each is the current date and time. -- Result is date2 - date1 formatted. local Date = getExports(frame) local args = frame:getParent().args local parms = { extra = makeExtra(args), wantDuration = yes(args.duration), range = yes(args.range) or (args.range == 'dash' and 'dash' or nil), wantSc = yes(args.sc), } local fix = yes(args.fix) and 'fix' or '' local date1 = Date(fix, 'partial', stripToNil(args[1]) or 'currentdatetime') if not date1 then return message('mt-invalid-start') end local date2 = Date(fix, 'partial', stripToNil(args[2]) or 'currentdatetime') if not date2 then return message('mt-invalid-end') end parms.diff = date2 - date1 for argname, translate in pairs(translateParameters) do local parm = stripToNil(args[argname]) if parm then parm = translate[parm] if parm == nil then -- test for nil because false is a valid setting return message({ 'mt-bad-param2', argname, args[argname] }) end parms[argname] = parm end end if parms.round then local round = parms.round local show = parms.show if round ~= 'on' then if show then if show.id ~= round then return message({ 'mt-conflicting-show', args.show, args.round }) end else parms.show = translateParameters.show[round] end end parms.round = true end return from_en(dateDifference(parms)) end return { age_generic = ageGeneric, -- can emulate several age templates birth_date_and_age = bda, -- Template:Birth_date_and_age death_date_and_age = dda, -- Template:Death_date_and_age gsd = dateToGsd, -- Template:Gregorian_serial_date extract = dateExtract, -- Template:Extract jd_to_date = jdToDate, -- Template:? JULIANDAY = dateToJd, -- Template:JULIANDAY time_interval = timeInterval, -- Template:Time_interval } 8wyq5svgkybhjgh3wxur71wxavv92em 240038 240037 2025-06-08T16:55:46Z Narazeni 826 240038 Scribunto text/plain -- Implement various "age of" and other date-related templates. local mtext = { -- Message and other text that should be localized. ['mt-bad-param1'] = 'Invalid parameter $1', ['mt-bad-param2'] = 'Parameter $1=$2 is invalid', ['mt-bad-show'] = 'Parameter show=$1 is not supported here', ['mt-cannot-add'] = 'Cannot add "$1"', ['mt-conflicting-show'] = 'Parameter show=$1 conflicts with round=$2', ['mt-date-wrong-order'] = 'The second date must be later in time than the first date', ['mt-dd-future'] = 'Death date (first date) must not be in the future', ['mt-dd-wrong-order'] = 'Death date (first date) must be later in time than the birth date (second date)', ['mt-invalid-bd-age'] = 'Invalid birth date for calculating age', ['mt-invalid-dates-age'] = 'Invalid dates for calculating age', ['mt-invalid-end'] = 'Invalid end date in second parameter', ['mt-invalid-start'] = 'Invalid start date in first parameter', ['mt-need-jdn'] = 'Need valid Julian date number', ['mt-need-valid-bd'] = 'Need valid birth date: year, month, day', ['mt-need-valid-bd2'] = 'Need valid birth date (second date): year, month, day', ['mt-need-valid-date'] = 'Need valid date', ['mt-need-valid-dd'] = 'Need valid death date (first date): year, month, day', ['mt-need-valid-ymd'] = 'Need valid year, month, day', ['mt-need-valid-ymd-current'] = 'Need valid year|month|day or "currentdate"', ['mt-need-valid-ymd2'] = 'Second date should be year, month, day', ['mt-template-bad-name'] = 'The specified template name is not valid', ['mt-template-x'] = 'The template invoking this must have "|template=x" where x is the wanted operation', ['txt-age'] = '(age&nbsp;', ['txt-aged'] = ' (aged&nbsp;', ['txt-and'] = ' и ', ['txt-comma-and'] = ', и ', ['txt-error'] = 'Ошибка: ', ['txt-or'] = '&nbsp;или ', } local translate, from_en, to_en, isZero if translate then -- Functions to translate from en to local language and reverse go here. -- See example at [[:bn:Module:বয়স]]. else from_en = function (text) return text end isZero = function (text) return tonumber(text) == 0 end end local _Date, _currentDate local function getExports(frame) -- Return objects exported from the date module or its sandbox. if not _Date then local sandbox = frame:getTitle():find('sandbox', 1, true) and '/sandbox' or '' local datemod = require('Module:Date' .. sandbox) local realDate = datemod._Date _currentDate = datemod._current if to_en then _Date = function (...) local args = {} for i, v in ipairs({...}) do args[i] = to_en(v) end return realDate(unpack(args)) end else _Date = realDate end end return _Date, _currentDate end local Collection -- a table to hold items Collection = { add = function (self, item) if item ~= nil then self.n = self.n + 1 self[self.n] = item end end, join = function (self, sep) return table.concat(self, sep) end, remove = function (self, pos) if self.n > 0 and (pos == nil or (0 < pos and pos <= self.n)) then self.n = self.n - 1 return table.remove(self, pos) end end, sort = function (self, comp) table.sort(self, comp) end, new = function () return setmetatable({n = 0}, Collection) end } Collection.__index = Collection local function stripToNil(text) -- If text is a string, return its trimmed content, or nil if empty. -- Otherwise return text (which may, for example, be nil). if type(text) == 'string' then text = text:match('(%S.-)%s*$') end return text end local function yes(parameter) -- Return true if parameter should be interpreted as "yes". -- Do not want to accept mixed upper/lowercase unless done by current templates. -- Need to accept "on" because "round=on" is wanted. return ({ y = true, yes = true, on = true })[parameter] end local function message(msg, id) -- Return formatted message text for an error or warning. local function getText(msg) return mtext[msg] or error('Bug: message "' .. tostring(msg) .. '" not defined') end local text if type(msg) == 'table' then text = getText(msg[1]) local rep = {} for i, v in ipairs(msg) do if i > 1 then rep['$' .. (i - 1)] = v end end text = text:gsub('$%d+', rep) else text = getText(msg) end local categories = { error = '[[Category:Age error]]', warning = '[[Category:Age error]]', -- same as error until determine whether 'Age warning' would be worthwhile } local a, b, category if id == 'warning' then a = '<sup>[<i>' b = '</i>]</sup>' else a = '<strong class="error">' .. getText('txt-error') b = '</strong>' end if mw.title.getCurrentTitle():inNamespaces(0) then -- Category only in namespaces: 0=article. category = categories[id or 'error'] end return a .. mw.text.nowiki(text) .. b .. (category or '') end local function formatNumber(number) -- Return the given number formatted with commas as group separators, -- given that the number is an integer. local numstr = tostring(number) local length = #numstr local places = Collection.new() local pos = 0 repeat places:add(pos) pos = pos + 3 until pos >= length places:add(length) local groups = Collection.new() for i = places.n, 2, -1 do local p1 = length - places[i] + 1 local p2 = length - places[i - 1] groups:add(numstr:sub(p1, p2)) end return groups:join(',') end local function spellNumber(number, options, i) -- Return result of spelling number, or -- return number (as a string) if cannot spell it. -- i == 1 for the first number which can optionally start with an uppercase letter. number = tostring(number) return require('Module:ConvertNumeric').spell_number( number, nil, -- fraction numerator nil, -- fraction denominator i == 1 and options.upper, -- true: 'One' instead of 'one' not options.us, -- true: use 'and' between tens/ones etc options.adj, -- true: hyphenated options.ordinal -- true: 'first' instead of 'one' ) or number end local function makeExtra(args, flagCurrent) -- Return extra text that will be inserted before the visible result -- but after any sort key. local extra = args.prefix or '' if mw.ustring.len(extra) > 1 then -- Parameter "~" gives "~3" whereas "over" gives "over 3". if extra:sub(-6, -1) ~= '&nbsp;' then extra = extra .. ' ' end end if flagCurrent then extra = '<span class="currentage"></span>' .. extra end return extra end local function makeSort(value, sortable) -- Return a sort key if requested. -- Assume value is a valid number which has not overflowed. if sortable == 'sortable_table' or sortable == 'sortable_on' or sortable == 'sortable_debug' then local sortKey if value == 0 then sortKey = '5000000000000000000' else local mag = math.floor(math.log10(math.abs(value)) + 1e-14) if value > 0 then sortKey = 7000 + mag else sortKey = 2999 - mag value = value + 10^(mag+1) end sortKey = string.format('%d', sortKey) .. string.format('%015.0f', math.floor(value * 10^(14-mag))) end local result if sortable == 'sortable_table' then result = 'data-sort-value="_SORTKEY_"|' elseif sortable == 'sortable_debug' then result = '<span data-sort-value="_SORTKEY_♠"><span style="border:1px solid">_SORTKEY_♠</span></span>' else result = '<span data-sort-value="_SORTKEY_♠"></span>' end return result:gsub('_SORTKEY_', sortKey) end end local translateParameters = { abbr = { off = 'abbr_off', on = 'abbr_on', }, disp = { age = 'disp_age', raw = 'disp_raw', }, format = { raw = 'format_raw', commas = 'format_commas', }, round = { on = 'on', yes = 'on', months = 'ym', weeks = 'ymw', days = 'ymd', hours = 'ymdh', }, sep = { comma = 'sep_comma', [','] = 'sep_comma', serialcomma = 'sep_serialcomma', space = 'sep_space', }, show = { hide = { id = 'hide' }, y = { 'y', id = 'y' }, ym = { 'y', 'm', id = 'ym' }, ymd = { 'y', 'm', 'd', id = 'ymd' }, ymw = { 'y', 'm', 'w', id = 'ymw' }, ymwd = { 'y', 'm', 'w', 'd', id = 'ymwd' }, yd = { 'y', 'd', id = 'yd', keepZero = true }, m = { 'm', id = 'm' }, md = { 'm', 'd', id = 'md' }, w = { 'w', id = 'w' }, wd = { 'w', 'd', id = 'wd' }, h = { 'H', id = 'h' }, hm = { 'H', 'M', id = 'hm' }, hms = { 'H', 'M', 'S', id = 'hms' }, d = { 'd', id = 'd' }, dh = { 'd', 'H', id = 'dh' }, dhm = { 'd', 'H', 'M', id = 'dhm' }, dhms = { 'd', 'H', 'M', 'S', id = 'dhms' }, ymdh = { 'y', 'm', 'd', 'H', id = 'ymdh' }, ymdhm = { 'y', 'm', 'd', 'H', 'M', id = 'ymdhm' }, ymwdh = { 'y', 'm', 'w', 'd', 'H', id = 'ymwdh' }, ymwdhm = { 'y', 'm', 'w', 'd', 'H', 'M', id = 'ymwdhm' }, }, sortable = { off = false, on = 'sortable_on', table = 'sortable_table', debug = 'sortable_debug', }, } local spellOptions = { cardinal = {}, Cardinal = { upper = true }, cardinal_us = { us = true }, Cardinal_us = { us = true, upper = true }, ordinal = { ordinal = true }, Ordinal = { ordinal = true, upper = true }, ordinal_us = { ordinal = true, us = true }, Ordinal_us = { ordinal = true, us = true, upper = true }, } local function dateExtract(frame) -- Return part of a date after performing an optional operation. local Date = getExports(frame) local args = frame:getParent().args local parms = {} for i, v in ipairs(args) do parms[i] = v end if yes(args.fix) then table.insert(parms, 'fix') end if yes(args.partial) then table.insert(parms, 'partial') end local show = stripToNil(args.show) or 'dmy' local date = Date(unpack(parms)) if not date then if show == 'format' then return 'error' end return message('mt-need-valid-date') end local add = stripToNil(args.add) if add then for item in add:gmatch('%S+') do date = date + item if not date then return message({ 'mt-cannot-add', item }) end end end local sortKey, result local sortable = translateParameters.sortable[args.sortable] if sortable then local value = (date.partial and date.partial.first or date).jdz sortKey = makeSort(value, sortable) end if show ~= 'hide' then result = date[show] if result == nil then result = from_en(date:text(show)) elseif type(result) == 'boolean' then result = result and '1' or '0' else result = from_en(tostring(result)) end end return (sortKey or '') .. makeExtra(args) .. (result or '') end local function rangeJoin(range) -- Return text to be used between a range of ages. return range == 'dash' and '–' or mtext['txt-or'] end local function makeText(values, components, names, options, noUpper) -- Return wikitext representing an age or duration. local text = Collection.new() local count = #values local sep = names.sep or '' for i, v in ipairs(values) do -- v is a number (say 4 for 4 years), or a table ({4,5} for 4 or 5 years). local islist = type(v) == 'table' if (islist or v > 0) or (text.n == 0 and i == count) or (text.n > 0 and components.keepZero) then local fmt, vstr if options.spell then fmt = function(number) return spellNumber(number, options.spell, noUpper or i) end elseif i == 1 and options.format == 'format_commas' then -- Numbers after the first should be small and not need formatting. fmt = formatNumber else fmt = tostring end if islist then vstr = fmt(v[1]) .. rangeJoin(options.range) noUpper = true vstr = vstr .. fmt(v[2]) else vstr = fmt(v) end local name = names[components[i]] if name then local plural = names.plural if not plural or (islist and v[2] or v) == 1 then plural = '' end text:add(vstr .. sep .. name .. plural) else text:add(vstr) end end end local first, last if options.join == 'sep_space' then first = ' ' last = ' ' elseif options.join == 'sep_comma' then first = ', ' last = ', ' elseif options.join == 'sep_serialcomma' and text.n > 2 then first = ', ' last = mtext['txt-comma-and'] else first = ', ' last = mtext['txt-and'] end for i, v in ipairs(text) do if i < text.n then text[i] = v .. (i + 1 < text.n and first or last) end end local sign = '' if options.isnegative then -- Do not display negative zero. if text.n > 1 or (text.n == 1 and text[1]:sub(1, 1) ~= '0' ) then if options.format == 'format_raw' then sign = '-' -- plain hyphen so result can be used in a calculation else sign = '−' -- Unicode U+2212 MINUS SIGN end end end return (options.sortKey or '') .. (options.extra or '') .. sign .. text:join() .. (options.suffix or '') end local function dateDifference(parms) -- Return a formatted date difference using the given parameters -- which have been validated. local names = { abbr_off = { plural = '', sep = '&nbsp;', y = 'წანა', m = 'თუთა', w = 'მარა', d = 'დღა', H = 'სათი', M = 'წუთი', S = 'წამი', }, abbr_on = { y = 'წ.', m = 'თ.', w = 'მ.', d = 'დღ.', H = 'სთ.', M = 'წთ.', S = 'წმ.', }, abbr_infant = { -- for {{age for infant}} plural = 's', sep = '&nbsp;', y = 'yr', m = 'mo', w = 'wk', d = 'day', H = 'hr', M = 'min', S = 'sec', }, abbr_raw = {}, } local diff = parms.diff -- must be a valid date difference local show = parms.show -- may be nil; default is set below local abbr = parms.abbr or 'abbr_on' local defaultJoin if abbr ~= 'abbr_off' then defaultJoin = 'sep_space' end if not show then show = 'ymd' if parms.disp == 'disp_age' then if diff.years < 3 then defaultJoin = 'sep_space' if diff.years >= 1 then show = 'ym' else show = 'md' end else show = 'y' end end end if type(show) ~= 'table' then show = translateParameters.show[show] end if parms.disp == 'disp_raw' then defaultJoin = 'sep_space' abbr = 'abbr_raw' elseif parms.wantSc then defaultJoin = 'sep_serialcomma' end local diffOptions = { round = parms.round, duration = parms.wantDuration, range = parms.range and true or nil, } local sortKey if parms.sortable then local value = diff.age_days + (parms.wantDuration and 1 or 0) -- days and fraction of a day if diff.isnegative then value = -value end sortKey = makeSort(value, parms.sortable) end local textOptions = { extra = parms.extra, format = parms.format, join = parms.sep or defaultJoin, isnegative = diff.isnegative, range = parms.range, sortKey = sortKey, spell = parms.spell, suffix = parms.suffix, -- not currently used } if show.id == 'hide' then return sortKey or '' end local values = { diff:age(show.id, diffOptions) } if values[1] then return makeText(values, show, names[abbr], textOptions) end if diff.partial then -- Handle a more complex range such as -- {{age_yd|20 Dec 2001|2003|range=yes}} → 1 year, 12 days or 2 years, 11 days local opt = { format = textOptions.format, join = textOptions.join, isnegative = textOptions.isnegative, spell = textOptions.spell, } return (textOptions.sortKey or '') .. makeText({ diff.partial.mindiff:age(show.id, diffOptions) }, show, names[abbr], opt) .. rangeJoin(textOptions.range) .. makeText({ diff.partial.maxdiff:age(show.id, diffOptions) }, show, names[abbr], opt, true) .. (textOptions.suffix or '') end return message({ 'mt-bad-show', show.id }) end local function getDates(frame, getopt) -- Parse template parameters and return one of: -- * date (a date table, if single) -- * date1, date2 (two date tables, if not single) -- * text (a string error message) -- A missing date is optionally replaced with the current date. -- If wantMixture is true, a missing date component is replaced -- from the current date, so can get a bizarre mixture of -- specified/current y/m/d as has been done by some "age" templates. -- Some results may be placed in table getopt. local Date, currentDate = getExports(frame) getopt = getopt or {} local function flagCurrent(text) -- This allows the calling template to detect if the current date has been used, -- that is, whether both dates have been entered in a template expecting two. -- For example, an infobox may want the age when an event occurred, not the current age. -- Don't bother detecting if wantMixture is used because not needed and it is a poor option. if not text then if getopt.noMissing then return nil -- this gives a nil date which gives an error end text = 'currentdate' if getopt.flag == 'usesCurrent' then getopt.usesCurrent = true end end return text end local args = frame:getParent().args local fields = {} local isNamed = args.year or args.year1 or args.year2 or args.month or args.month1 or args.month2 or args.day or args.day1 or args.day2 if isNamed then fields[1] = args.year1 or args.year fields[2] = args.month1 or args.month fields[3] = args.day1 or args.day fields[4] = args.year2 fields[5] = args.month2 fields[6] = args.day2 else for i = 1, 6 do fields[i] = args[i] end end local imax = 0 for i = 1, 6 do fields[i] = stripToNil(fields[i]) if fields[i] then imax = i end if getopt.omitZero and i % 3 ~= 1 then -- omit zero months and days as unknown values but keep year 0 which is 1 BCE if isZero(fields[i]) then fields[i] = nil getopt.partial = true end end end local fix = getopt.fix and 'fix' or '' local partialText = getopt.partial and 'partial' or '' local dates = {} if isNamed or imax >= 3 then local nrDates = getopt.single and 1 or 2 if getopt.wantMixture then -- Cannot be partial since empty fields are set from current. local components = { 'year', 'month', 'day' } for i = 1, nrDates * 3 do fields[i] = fields[i] or currentDate[components[i > 3 and i - 3 or i]] end for i = 1, nrDates do local index = i == 1 and 1 or 4 local y, m, d = fields[index], fields[index+1], fields[index+2] if (m == 2 or m == '2') and (d == 29 or d == '29') then -- Workaround error with following which attempt to use invalid date 2001-02-29. -- {{age_ymwd|year1=2001|year2=2004|month2=2|day2=29}} -- {{age_ymwd|year1=2001|month1=2|year2=2004|month2=1|day2=29}} -- TODO Get rid of wantMixture because even this ugly code does not handle -- 'Feb' or 'February' or 'feb' or 'february'. if not ((y % 4 == 0 and y % 100 ~= 0) or y % 400 == 0) then d = 28 end end dates[i] = Date(y, m, d) end else -- If partial dates are allowed, accept -- year only, or -- year and month only -- Do not accept year and day without a month because that makes no sense -- (and because, for example, Date('partial', 2001, nil, 12) sets day = nil, not 12). for i = 1, nrDates do local index = i == 1 and 1 or 4 local y, m, d = fields[index], fields[index+1], fields[index+2] if (getopt.partial and y and (m or not d)) or (y and m and d) then dates[i] = Date(fix, partialText, y, m, d) elseif not y and not m and not d then dates[i] = Date(flagCurrent()) end end end else getopt.textdates = true -- have parsed each date from a single text field dates[1] = Date(fix, partialText, flagCurrent(fields[1])) if not getopt.single then dates[2] = Date(fix, partialText, flagCurrent(fields[2])) end end if not dates[1] then return message(getopt.missing1 or 'mt-need-valid-ymd') end if getopt.single then return dates[1] end if not dates[2] then return message(getopt.missing2 or 'mt-need-valid-ymd2') end return dates[1], dates[2] end local function ageGeneric(frame) -- Return the result required by the specified template. -- Can use sortable=x where x = on/table/off/debug in any supported template. -- Some templates default to sortable=on but can be overridden. local name = frame.args.template if not name then return message('mt-template-x') end local args = frame:getParent().args local specs = { age_days = { -- {{age in days}} show = 'd', disp = 'disp_raw', }, age_days_nts = { -- {{age in days nts}} show = 'd', disp = 'disp_raw', format = 'format_commas', sortable = 'on', }, duration_days = { -- {{duration in days}} show = 'd', disp = 'disp_raw', duration = true, }, duration_days_nts = { -- {{duration in days nts}} show = 'd', disp = 'disp_raw', format = 'format_commas', sortable = 'on', duration = true, }, age_full_years = { -- {{age}} show = 'y', abbr = 'abbr_raw', flag = 'usesCurrent', omitZero = true, range = 'no', }, age_full_years_nts = { -- {{age nts}} show = 'y', abbr = 'abbr_raw', format = 'format_commas', sortable = 'on', }, age_in_years = { -- {{age in years}} show = 'y', abbr = 'abbr_raw', negative = 'error', range = 'dash', }, age_in_years_nts = { -- {{age in years nts}} show = 'y', abbr = 'abbr_raw', negative = 'error', range = 'dash', format = 'format_commas', sortable = 'on', }, age_infant = { -- {{age for infant}} -- Do not set show because special processing is done later. abbr = yes(args.abbr) and 'abbr_infant' or 'abbr_off', disp = 'disp_age', sep = 'sep_space', sortable = 'on', }, age_m = { -- {{age in months}} show = 'm', disp = 'disp_raw', }, age_w = { -- {{age in weeks}} show = 'w', disp = 'disp_raw', }, age_wd = { -- {{age in weeks and days}} show = 'wd', }, age_yd = { -- {{age in years and days}} show = 'yd', format = 'format_commas', sep = args.sep ~= 'and' and 'sep_comma' or nil, }, age_yd_nts = { -- {{age in years and days nts}} show = 'yd', format = 'format_commas', sep = args.sep ~= 'and' and 'sep_comma' or nil, sortable = 'on', }, age_ym = { -- {{age in years and months}} show = 'ym', sep = 'sep_comma', }, age_ymd = { -- {{age in years, months and days}} show = 'ymd', range = true, }, age_ymwd = { -- {{age in years, months, weeks and days}} show = 'ymwd', wantMixture = true, }, } local spec = specs[name] if not spec then return message('mt-template-bad-name') end if name == 'age_days' then local su = stripToNil(args['show unit']) if su then if su == 'abbr' or su == 'full' then spec.disp = nil spec.abbr = su == 'abbr' and 'abbr_on' or nil end end end local partial, autofill local range = stripToNil(args.range) or spec.range if range then -- Suppose partial dates are used and age could be 11 or 12 years. -- "|range=" (empty value) has no effect (spec is used). -- "|range=yes" or spec.range == true sets range = true (gives "11 or 12") -- "|range=dash" or spec.range == 'dash' sets range = 'dash' (gives "11–12"). -- "|range=no" or spec.range == 'no' sets range = nil and fills each date in the diff (gives "12"). -- ("on" is equivalent to "yes", and "off" is equivalent to "no"). -- "|range=OTHER" sets range = nil and rejects partial dates. range = ({ dash = 'dash', off = 'no', no = 'no', [true] = true })[range] or yes(range) if range then partial = true -- accept partial dates with a possible age range for the result if range == 'no' then autofill = true -- missing month/day in first or second date are filled from other date or 1 range = nil end end end local getopt = { fix = yes(args.fix), flag = stripToNil(args.flag) or spec.flag, omitZero = spec.omitZero, partial = partial, wantMixture = spec.wantMixture, } local date1, date2 = getDates(frame, getopt) if type(date1) == 'string' then return date1 end local format = stripToNil(args.format) local spell = spellOptions[format] if format then format = 'format_' .. format elseif name == 'age_days' and getopt.textdates then format = 'format_commas' end local parms = { diff = date2:subtract(date1, { fill = autofill }), wantDuration = spec.duration or yes(args.duration), range = range, wantSc = yes(args.sc), show = args.show == 'hide' and 'hide' or spec.show, abbr = spec.abbr, disp = spec.disp, extra = makeExtra(args, getopt.usesCurrent and format ~= 'format_raw'), format = format or spec.format, round = yes(args.round), sep = spec.sep, sortable = translateParameters.sortable[args.sortable or spec.sortable], spell = spell, } if (spec.negative or frame.args.negative) == 'error' and parms.diff.isnegative then return message('mt-date-wrong-order') end return from_en(dateDifference(parms)) end local function bda(frame) -- Implement [[Template:Birth date and age]]. local args = frame:getParent().args local options = { missing1 = 'mt-need-valid-bd', noMissing = true, single = true, } local date = getDates(frame, options) if type(date) == 'string' then return date -- error text end local Date = getExports(frame) local diff = Date('currentdate') - date if diff.isnegative or diff.years > 150 then return message('mt-invalid-bd-age') end local disp, show = 'disp_raw', 'y' if diff.years < 2 then disp = 'disp_age' if diff.years == 0 and diff.months == 0 then show = 'd' else show = 'm' end end local df = stripToNil(args.df) -- day first (dmy); default is month first (mdy) local result = '(<span class="bday">%-Y-%m-%d</span>) </span>' .. (df and '%-d %B %-Y' or '%B %-d, %-Y') result = from_en('<span style="display:none"> ' .. date:text(result) .. '<span class="noprint ForceAgeToShow"> ' .. mtext['txt-age'] .. dateDifference({ diff = diff, show = show, abbr = 'abbr_off', disp = disp, sep = 'sep_space', }) .. ')</span>') local warnings = tonumber(frame.args.warnings) if warnings and warnings > 0 then local good = { df = true, mf = true, day = true, day1 = true, month = true, month1 = true, year = true, year1 = true, } local invalid local imax = options.textdates and 1 or 3 for k, _ in pairs(args) do if type(k) == 'number' then if k > imax then invalid = tostring(k) break end else if not good[k] then invalid = k break end end end if invalid then result = result .. message({ 'mt-bad-param1', invalid }, 'warning') end end return result end local function dda(frame) -- Implement [[Template:Death date and age]]. local args = frame:getParent().args local options = { missing1 = 'mt-need-valid-dd', missing2 = 'mt-need-valid-bd2', noMissing = true, partial = true, } local date1, date2 = getDates(frame, options) if type(date1) == 'string' then return date1 end local diff = date1 - date2 if diff.isnegative then return message('mt-dd-wrong-order') end local Date = getExports(frame) local today = Date('currentdate') + 1 -- one day in future allows for timezones if date1 > today then return message('mt-dd-future') end local years if diff.partial then years = diff.partial.years years = type(years) == 'table' and years[2] or years else years = diff.years end if years > 150 then return message('mt-invalid-dates-age') end local df = stripToNil(args.df) -- day first (dmy); default is month first (mdy) local result if date1.day then -- y, m, d known result = (df and '%-d %B %-Y' or '%B %-d, %-Y') .. '<span style="display:none">(%-Y-%m-%d)</span>' elseif date1.month then -- y, m known; d unknown result = '%B %-Y' .. '<span style="display:none">(%-Y-%m-00)</span>' else -- y known; m, d unknown result = '%-Y' .. '<span style="display:none">(%-Y-00-00)</span>' end result = from_en(date1:text(result) .. mtext['txt-aged'] .. dateDifference({ diff = diff, show = 'y', abbr = 'abbr_off', disp = 'disp_raw', range = 'dash', sep = 'sep_space', }) .. ')') local warnings = tonumber(frame.args.warnings) if warnings and warnings > 0 then local good = { df = true, mf = true, } local invalid local imax = options.textdates and 2 or 6 for k, _ in pairs(args) do if type(k) == 'number' then if k > imax then invalid = tostring(k) break end else if not good[k] then invalid = k break end end end if invalid then result = result .. message({ 'mt-bad-param1', invalid }, 'warning') end end return result end local function dateToGsd(frame) -- Implement [[Template:Gregorian serial date]]. -- Return Gregorian serial date of the given date, or the current date. -- The returned value is negative for dates before 1 January 1 AD -- despite the fact that GSD is not defined for such dates. local date = getDates(frame, { wantMixture=true, single=true }) if type(date) == 'string' then return date end return tostring(date.gsd) end local function jdToDate(frame) -- Return formatted date from a Julian date. -- The result includes a time if the input includes a fraction. -- The word 'Julian' is accepted for the Julian calendar. local Date = getExports(frame) local args = frame:getParent().args local date = Date('juliandate', args[1], args[2]) if date then return from_en(date:text()) end return message('mt-need-jdn') end local function dateToJd(frame) -- Return Julian date (a number) from a date which may include a time, -- or the current date ('currentdate') or current date and time ('currentdatetime'). -- The word 'Julian' is accepted for the Julian calendar. local Date = getExports(frame) local args = frame:getParent().args local date = Date(args[1], args[2], args[3], args[4], args[5], args[6], args[7]) if date then return tostring(date.jd) end return message('mt-need-valid-ymd-current') end local function timeInterval(frame) -- Implement [[Template:Time interval]]. -- There are two positional arguments: date1, date2. -- The default for each is the current date and time. -- Result is date2 - date1 formatted. local Date = getExports(frame) local args = frame:getParent().args local parms = { extra = makeExtra(args), wantDuration = yes(args.duration), range = yes(args.range) or (args.range == 'dash' and 'dash' or nil), wantSc = yes(args.sc), } local fix = yes(args.fix) and 'fix' or '' local date1 = Date(fix, 'partial', stripToNil(args[1]) or 'currentdatetime') if not date1 then return message('mt-invalid-start') end local date2 = Date(fix, 'partial', stripToNil(args[2]) or 'currentdatetime') if not date2 then return message('mt-invalid-end') end parms.diff = date2 - date1 for argname, translate in pairs(translateParameters) do local parm = stripToNil(args[argname]) if parm then parm = translate[parm] if parm == nil then -- test for nil because false is a valid setting return message({ 'mt-bad-param2', argname, args[argname] }) end parms[argname] = parm end end if parms.round then local round = parms.round local show = parms.show if round ~= 'on' then if show then if show.id ~= round then return message({ 'mt-conflicting-show', args.show, args.round }) end else parms.show = translateParameters.show[round] end end parms.round = true end return from_en(dateDifference(parms)) end return { age_generic = ageGeneric, -- can emulate several age templates birth_date_and_age = bda, -- Template:Birth_date_and_age death_date_and_age = dda, -- Template:Death_date_and_age gsd = dateToGsd, -- Template:Gregorian_serial_date extract = dateExtract, -- Template:Extract jd_to_date = jdToDate, -- Template:? JULIANDAY = dateToJd, -- Template:JULIANDAY time_interval = timeInterval, -- Template:Time_interval } af1xfqe203b6wtpapnd6ex0fywr106t ბიგ ბლეკ-რივერი 0 34139 240050 209792 2025-06-09T01:09:10Z InternetArchiveBot 15194 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 240050 wikitext text/x-wiki {| style="border: 1px solid #AAAAAA; clear: right; float: right; font-size: 90%; margin-bottom: 0.5em; margin-left: 1em; padding: 0.4em; vertical-align: middle; width: 18em;" class="infobox" |- !style="background-color:#AACCFF; color:black; font-size: 125%; text-align:center;" colspan="2"|ბიგ ბლეკ-რივერი |- | align="center" colspan="2"|[[File:Big Black River at Highway 16 in Madison County, Mississippi.jpg|300px]] <small>წყარმალუ ბიგ ბლეკ-რივერი</small> [[File:Bigblackrivermap.png|300px]]<small>წყარმალუ ბიგ ბლეკ-რივერი რუკას</small> |- !style="text-align:center; background-color:#AACCFF; color:black" colspan="2"|დოხასიათაფა |- |სიგჷრძა |<span style="white-space: nowrap;">530 კმ</span> |- |<span style="white-space: nowrap;">ღანჩოშ ფართობი</span> |<span style="white-space: nowrap;">8,800 კმ²</span> |- !style="text-align:center; background-color:#AACCFF; color:black" colspan="2"|წყარიშ ნადუ |- |ოდუდე |უებსტერიშ ოლქი, ნოღა იუპორაშ გოხოლუას |- |ინაკათუ |<span style="white-space: nowrap;">[[მისისიპი]]</span></td> |- !style="text-align:center; background-color:#AACCFF; color:black" colspan="2"|ქიანეფი |- |ქიანეფი | [[File:Flag of USA.svg|25px]] [[ააშ]] |- |შტატეფი |[[File:Flag of Mississippi.svg|25px]] [[მისისიპიშ შტატი|მისისიპი]] |} '''ბიგ ბლეკ-რივერი''' ([[ინგლისური ნინა|ინგლ.]] Big Black River) რე [[წყარმალუ]] [[ააშ]]ს, [[მისისიპიშ შტატი]]ს. წყარმალუ ბლეკ-რივერი იჭყაფჷ უებსტერიშ ოლქის, ნოღა იუპორაშ გოხოლუას, ათავრეშე წყარმალუ მეურს 530 კილომეტრის დო ინაკათუ [[მისისიპი]]ს, ნოღა ვიკსბერგიშე 40 კმ.-შ მაშორას. ბიგ ბლეკ-რივერიშ ღანჩოშ ფართობ რე 8,800 კვ.კმ. ==ქოძირით თაშნეშე== *[[მისისიპიშ წყარმალუეფიშ ერკებული]] ==ლიტერატურა== *The American Heritage Dictionary of the English Language, Fourth Edition copyright 2000 by Houghton Mifflin Company ==რესურსეფი ინტერნეტის== *[http://ms.water.usgs.gov/ms_proj/eric/bblack.html The Big Black River Basin Map] {{Webarchive|url=https://web.archive.org/web/20221120124733/https://ms.water.usgs.gov/ms_proj/eric/bblack.html |date=2022-11-20 }} *[http://www.cr.nps.gov/hps/abpp/battles/ms010.htm Big Black River Bridge (Big Black)] {{Webarchive|url=https://web.archive.org/web/20061007210430/http://www.cr.nps.gov/hps/abpp/battles/ms010.htm |date=2006-10-07 }} *[https://web.archive.org/web/20070311065245/http://encarta.msn.com/map_701511137/Big_Black.html Map of Big Black River] *[https://web.archive.org/web/20070824163652/http://www.srh.noaa.gov/lmrfc/forecast/tributaries/status_bigb.shtml Big Black and Homochitto River Basins] *[http://www.nps.gov/archive/vick/camptrail/sites/Mississippi-sites/BgBlkBrdgMS.htm The Big Black Bridge] *[http://americancivilwar.com/statepic/ms/ms010.html Big Black River Bridge Civil War Mississippi] *[https://web.archive.org/web/20040803175112/http://www.srh.noaa.gov/lmrfc/forecast/tributaries/BIG_BLACK-HOMOCHITTO_BASINS/WSTM6.shtml Big Black River at West] *[http://www.davidrumsey.com/directory/who/Kirkley++JAW+/where/Big+Black+River++Miss++/ Historical Maps of Big Black River (Miss)] [[კატეგორია:ოორუე ამერიკაშ წყარმალუეფი]] [[კატეგორია:ააშ-შ წყარმალუეფი]] [[კატეგორია:მისისიპიშ წყარმალუეფი]] [[კატეგორია:მისისიპიშ ნადუეფი]] 4h0az3gvdn2a6q3iryb7ulr6hasjd6k ოპერა 0 35013 240059 238577 2025-06-09T06:33:46Z InternetArchiveBot 15194 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 240059 wikitext text/x-wiki {{მიარეშანულამობა*|ოპერა (მიარეშანულამი)}} [[ფაილი:Milano - Teatro alla Scala 3924.jpg|მინი|[[ლა სკალა]]. [[მილანი]], [[იტალია]] — მოსოფელს ართ-ართი არძაშე ჩინ3ბული [[ოპერაშ თეატრი]].]] '''ოპერა''' ([[იტალიური ნონა|იტალ.]] opera) — [[თეატრი|თეატრალური]] წჷმორინაშ ხანტურულ-დრამატული ფორმა, ნამუსჷთ ქიმინუა თარო [[მუსიკა|მუსიკათ]] (ბირათ დო აკომპანემენტით) ირსულებუ. ოპერა ლათინური ზიტყვა რე დო შანენს თხობელუას. ოპერა სინთეზური ჟანრი რე დო აკმოშაყარანს მუსიკაშ, დრამატურგიაშ, ხანტურუაშ დო ქორეოგრაფიაშ ელემენტეფს. ოპერაშ საორკესტრე დაჭყაფურს ჯოხო უვერტიურა (თინა სონატურ ფორმას ქორე ჭარილი-და). ოპერაშ ტექსტის ჯოხო ლიბრეტო, დო ოპერაშ ქიმინუეფს — აქტეფი. ოპერას ადხვადჷნა მელოდიაშე მერკებული ზიტყვური ტექსტი, ნამუსჷთ რეჩიტატივი ჯოხო, არია, ნამუშჷთ ოპერას მობირე მუში გინაფეფს გჷნმოჩანს, ბირა, კავატინა, კანცონა, ანსამბლური ნომერეფი, ბუნეფი. ოპერა შილებე ორდას უწლმუხარცქუ გოვითარაფაშ პრინციპშა ვარ-და თებული ფორმებეფიშ, ნომერებეფიშ მოლათირუათ (ოშა-გოშათ ჟირხოლოშა ართო) აკოგაფილი. == რესურსეფი ინტერნეტის == * [http://operabase.com Operabase – Comprehensive opera performances database] * [http://www.stageagent.com/browse/showtype/opera StageAgent – synopses & character descriptions for most major operas] {{Webarchive|url=https://web.archive.org/web/20100106005815/http://stageagent.com/browse/showtype/opera |date=2010-01-06 }} * [http://www.opera-opera.com.au/plotind.htm What’s it about? – Opera plot summaries] {{Webarchive|url=https://web.archive.org/web/20090409075517/http://www.opera-opera.com.au/plotind.htm |date=2009-04-09 }} * [http://operamusique.googlepages.com/ Vocabulaire de l’Opéra] {{Webarchive|url=https://web.archive.org/web/20090228114542/http://operamusique.googlepages.com/ |date=2009-02-28 }} {{Fr icon}} * [http://opera.stanford.edu/main.html OperaGlass, a resource at Stanford University] * [http://www.historicopera.com HistoricOpera – historic operatic images] [[კატეგორია:ოპერა]] [[კატეგორია:თეატრი]] [[კატეგორია:მუსიკალური ფორმეფი]] [[კატეგორია:მუსიკაშ ჟანრეფი]] 36azb9ibr68z9hlajmsgh53tg5yfjby რუსეთიშ პრეზიდენტეფიშ ერკებული 0 42933 240039 240030 2025-06-08T16:57:08Z Narazeni 826 240039 wikitext text/x-wiki {{რუსეთიშ პოლიტიკა|expanded=President}} '''[[რუსეთიშ პრეზიდენტი]]''' რე [[რუსეთი|რუსეთიშ ფედერაციაშ]] სახენწჷფო ხეშუულებაშ უმაღალაში პიჯი. თე პოსტიშ დუმაკინე რე რუსეთიშ ფედერაციაშ სახენწჷფოშ მადუდე დო [[რუსეთიშ სახენწჷფო სხუნუ|სახენწჷფო სხუნუს]] ფორმალურო უნჯღვერს, თაშნეშე [[რუსეთიშ აკოანჯარაფილი ნძალეფი]]შ ცხენენჯმადუდე რე. პოსტიქ [[დჷნადგინა რუსეთიშ გამაგალაშ სისტემაშ გეშა (1918)|მიშაღალირქ იჸუ]] 1918 წანას, [[ფურთუთაშ რევოლუცია]]შ უკული, ასეიანი პოსტიქ გორჩქინდჷ [[1991]] წანაშ რეფერენდუმიშ უკული.<ref>{{cite book |last1=Aluf |first1=I. A. |url=http://encyclopedia2.thefreedictionary.com/February+Bourgeois+Democratic+Revolution+of+1917 |title=February Bourgeois Democratic Revolution of 1917 |work=[[The Great Soviet Encyclopedia]] |publisher=[[Gale (publisher)|The Gale Group, Inc.]] |year=1979 |edition=3rd}}</ref> [[სხუნუეფიშ რსხუ]]შ ბორჯის, [[რუსეთიშ სხუნუეფიშ ფედერაციული სოციალისტური რესპუბლიკა|რუსეთის]] ''[[დე იურე]]'' დუდენდეს კოლექტიური ორგანოეფი, მუჭომით რდჷ [[ედომუშამი რუსეთიშ ცენტრალური ემაჸონაფალი კომიტეტი]] და [[რუსეთიშ უმაღალაში სხუნუშ პრეზიდიუმი|უმაღალაში სხუნუშ პრეზიდიუმი]], ანდანე გამაგალაშ სხუნუური თეორია ვარებულენდჷ პრეზიდენტიშ პოსტიშ უციობას. [[1990]] წანას გენშეღეს [[სხუნუეფიშ რსხუშ პრეზიდენტი]]შ პოსტი, [[მიხეილ გორბაჩოვი]]შით სხუნუეფიშ რსხუშ [[ართპარტიული სახენწჷფო|ართპარტიული]] [[კომუნისტური სახენწჷფო]]შ [[პერესტროიკა|უმწუძინუ რეფორმეფიშ]] ბორჯის. გორბაჩოვი სხუნუეფიშ პირველი დო ეკონია პრეზიდენტი რდჷ.<ref>{{cite web |date=26 December 1991 |title=End of the Soviet Union: Text of Gorbachev's Farewell Address |url=https://www.nytimes.com/1991/12/26/world/end-of-the-soviet-union-text-of-gorbachev-s-farewell-address.html |access-date=27 December 2019 |website=The New York Times}}</ref> თიში მოღალობა ეიშანუაფუდჷ რუსეთწკჷმა დო სსრრ-შ შხვა რესპუბლიკეფწკჷმა სამართლებური დო პოლიტიკური აწორინაფეფით, ნამუქჷთ [[1991]] წანას, საბოლათ თინეფიშ რსული ზოხორინალა გჷმიჭანუ. == პრეზიდენტეფი == {{main|რუსეთიშ პრეზიდენტი}} {| class="wikitable" style="margin:1em auto; text-align:center; width:100%; border:1px #AAAAFF solid" |- style="background:#cccccc" ! colspan="9" | |- !align="center" width="0" colspan=2 style="border-right: none"| !align="center" width="0" style="border-left: none"|პორტრეტი !align="center" width="0"|[[რუსეთიშ პრეზიდენტი|პრეზიდენტი]] !align="center" width="0"|ხემანჭუაფაშ ხანი !align="center" width="0"|ხანი !align="center" width="0"|კინოხიანი პოსტი !align="center" width="0" colspan=2|[[რუსეთიშ პრემიერ-მინისტრი|პრემიერ-მინისტრი]] |- ! rowspan="10" style="background:{{party color|Independent (politician)}}" height="99" | ! rowspan="10" | [[ბორის ელცინიშ პორეზიდენტალა|1]] | rowspan="10" style="width:150px" |[[ფაილი:Борис Николаевич Ельцин-1 (cropped).jpg|center|192x192px]] | rowspan="10" |'''<big>[[ბორის ელცინი]]</big>'''<br><span style="font-size:100%;">Борис Ельцин</span><br>1931–2007<br><br>[[ფაილი:Yeltsin signature.svg|80px]] | rowspan="10" style="background:#EEEEEE" | <span class="date"the sample style="white-space:nowrap;">10 კვირკვე, 1991</span> – <span class="date" style="white-space:nowrap;">31 ქირსეთუთა, 1999</span><br><small>(პოსტიშე გეგნოდირთუ)</small><br>({{age in years and days|1991|7|10|1999|12|31}}) | rowspan="4" style="background:#EEEEEE" |[[ბორის ელცინიშ პირველი ინაუგურაცია|1]]<br><small>([[რუსეთიშ საპრეზიდენტო გიშაგორუეფი (1991)|1991]])</small><br>{{NoteTag|[[სხუნუეფიშ რსხუშ აკოცჷმა]]შე, ხათეშე, გიშაგორილქ იჸუ მუჭოთ რუსეთიშ სფსრ-შ პრეზიდენტი. პრეზიდენტიშ პოსტი უკებუდჷ 1996 წანაშახ, 1993 წანას კონსტიტუციაშ მეღებაშ დო პარლამენტწკჷმა ოურდუმე კონფლიქტიშ უმკუჯინალო.}} | rowspan="10" style="background:#EEEEEE" | რუსეთიშ უჟინაში სხუნუშ მადუდე<br><small>(1990–1991)</small> !style="background:{{party color|Communist Party of the Soviet Union}}"| |style="background:#EEEEEE" |{{small|[[ივანე სილაევი]]}} |- !style="background:{{party color|Independent politician}}"| | style="background:#E6E6AA" |{{small|კჷნე მუ}} |- !style="background:{{party color|Independent politician}}"| | style="background:#E6E6AA" |{{small|[[ეგორ გაიდარი]]}} |- !rowspan="2" style="background:{{party color|Our Home – Russia}}"| | rowspan="2" height=15px style="background:#EEEEEE" |{{small|[[ვიქტორ ჩერნომირდინი]]}} |- | rowspan="6" style="background:#EEEEEE" |[[ბორის ელცინიშ მაჟირა ინაუგურაცია|2]]<br><small>([[რუსეთიშ საპრეზიდენტო გიშაგორუეფი (1996)|1996]])</small> |- !style="background:{{party color|Independent politician}}"| | style="background:#EEEEEE" |{{small|[[სერგეი კირიენკო]]}} |- !style="background:{{party color|Our Home – Russia}}"| |height=10px style="background:#E6E6AA" |{{small|ვიქტორ ჩერნომირდინი}} |- !style="background:#42aaff"| | style="background:#EEEEEE" |{{small|[[ევგენი პრიმაკოვი]]}} |- !style="background:{{party color|Independent politician}}"| | style="background:#EEEEEE" |{{small|[[სერგეი სტეპაშინი]]}} |- ! rowspan=2 style="background:{{party color|Unity (Russian political party)}}"| | rowspan=2 style="background:#EEEEEE" |{{small|[[ვლადიმერ პუტინი]]}} |- ! rowspan="5" style="background:{{party color|Independent (politician)}}"; height="250" | ! rowspan="5" | [[რუსეთი ვლადიმერ პუტინიშ ბორჯის|2]] | rowspan="5" |[[ფაილი: Vladimir Putin official portrait (cropped).jpg|center|192x192px]] | rowspan="5" |'''<big>[[ვლადიმერ პუტინი]]</big>'''<br><span style="font-size:100%;">Владимир Путин</span><br>დ. 1952<br><small>(age {{Age|1952|10|7}})</small><br>[[File:Putin signature.svg|80px]] | rowspan="5" style="background:#EEEEEE" | <span class="date" style="white-space:nowrap;">7 მესი, 2000</span> – <span class="date" style="white-space:nowrap;">7 მესი, 2008</span><br>{{small|(პოსტი უკებუდჷ 1999 წანაშ 31 ქირსეთუთაშე)}}<br>({{age in years and days|1999|12|31|2008|5|7}}) | rowspan="3" style="background:#EEEEEE" |[[ვლადიმერ პუტინიშ პირველი ინაუგურაცია|3]]<br><small>([[რუსეთიშ საპრეზიდენტო გიშაგორუეფი (2000)|2000]])</small> | rowspan="5" style="background:#EEEEEE" |[[რუსეთიშ პრემიერ-მინისტრი]]<br /><small>(1999–2000)</small> |- !style="background:{{party color|Independent politician}}"| | style="background:#EEEEEE" |{{small|[[მიხეილ კასიანოვი]]{{NoteTag|პრემიერ-მინისტრიშ მოღალობაშ მარსულებერი 2000 წანაშ 17 მესიშა.}}}} |- ! rowspan="2" style="background:{{party color|Independent politician}}"| | rowspan="2" height=70px style="background:#EEEEEE" |{{small|[[მიხეილ ფრადკოვი]]}} |- | rowspan="2" style="background:#EEEEEE" |[[ვლადიმერ პუტინიშ მაჟირა ინაუგურაცია|4]]<br><small>([[რუსეთიშ საპრეზიდენტო გიშაგორუეფი (2004)|2004]])</small> |- ! style="background:{{party color|United Russia}}"| | style="background:#EEEEEE" |{{small|[[ვიქტორ ზუბკოვი]]}} |- ! style="background:{{party color|United Russia}}"; height="250" | ! [[დიმიტრი მედვედევიშ პრეზიდენტალა|3]] |[[ფაილი:Dmitry_Medvedev_official_large_photo_-1_(cropped).jpg|center|192x192px]] |'''<big>[[დიმიტრი მედვედევი]]</big>'''<br><span style="font-size:100%;">Дмитрий Медведев</span><br>Born 1965<br><small>(age {{Age|1965|9|14}})</small><br>[[ფაილი:Signature of Dmitry Medvedev.svg|80px]] | style="background:#EEEEEE" | <span class="date" style="white-space:nowrap;">7 მესი, 2008</span> – <span class="date" style="white-space:nowrap;">7 მესი, 2012</span><br>({{age in years and days|2008|5|7|2012|5|7}}) | style="background:#EEEEEE" |[[დიმიტრი მედვედევიშ ინაუგურაცია|5]]<br><small>([[რუსეთიშ საპრეზიდენტო გიშაგორუეფი (2008)|2008]])</small> | style="background:#EEEEEE" |[[რუსეთიშ პირველი ვიცე-პრემეირი]]<br><small>(2005–2008)</small> ! style="background:{{party color|United Russia}}"| | style="background:#EEEEEE" |{{small|ვლადიმერ პუტინი}} |- ! style="background:{{party color|United Russia}}"| ! rowspan="5" | [[რუსეთიშ ვლადიმერ პუტინიშ ბორჯის#მასუმა საპრეზიდენტო ხანი (2012–2018)|4]] | rowspan="5" |[[ფაილი:Vladimir Putin - 2012.jpg|center|192x192px]] | rowspan="5" |'''<big>[[ვლადიმერ პუტინი]]</big>'''<br /><span style="font-size:100%;">Владимир Путин</span><br>დ. 1952<br><small>(age {{Age|1952|10|7}})</small><br>[[ფაილი:Putin signature.svg|80px]] | style="background:#EEEEEE" rowspan="5" |<span class="date" style="white-space:nowrap;">7 მესი, 2012</span> – ასეშა<br>({{age in years and days|2012|5|7}}) | style="background:#EEEEEE" rowspan="2" |[[ვლადიმერ პუტინიშ მასუმა ინაუგურაცია|6]]<br><small>([[რუსეთიშ საპრეზიდენტო გიშაგორუეფი (2012)|2012]])</small> | style="background:#EEEEEE" rowspan="5" |რუსეთიშ პრემიერ-მინისტრი<br><small>(2008–2012)</small> ! style="background:{{party color|United Russia}}"| | style="background:#E6E6AA" |{{small|ვიქტორ ზუბკოვი}} |- ! rowspan=4 style="background: {{party color|Independent (politician)}}"; height="250" | ! rowspan=2 style="background:{{party color|United Russia}}"| | rowspan=2 style="background:#EEEEEE" |{{small|დიმიტრი მედვედევი}} |- | rowspan=2 style="background:#EEEEEE" |[[ვლადიმერ პუტინიშ მაანთხა ინაუგურაცია|7]]<br><small>([[რუსეთიშ საპრეზიდენტო გიშაგორუეფი (2018)|2018]])</small> |- ! rowspan="2" style="background:{{party color|Independent politician}}"| | rowspan="2" style="background:#EEEEEE" |{{small|[[მიხეილ მიშუსტინი]]}} |- | style="background:#EEEEEE" |[[ვლადიმერ პუტინიშ მახუთა ინაუგურაცია|8]]<br><small>([[რუსეთიშ საპრეზიდენტო გიშაგორუეფი (2024)|2024]])</small> |} <!-- ==მოღალობაშ== {{mainarticle|Acting President of Russia}} {{see also|President of the Soviet Union#Acting President}} {|class="wikitable" style="margin:1em auto; width:100%; text-align:center;" |- style="background:#cccccc" !colspan=6 | {{legend0|{{party color|Independent (politician)}}|[[Independent (politician)|Nonpartisan]]|border=1px solid #AAAAAA}} {{legend0|{{party color|Our Home – Russia}}|[[Our Home – Russia|NDR]]|border=1px solid #AAAAAA}} {{legend0|{{party color|Unity (Russian political party)}}|[[Unity (Russian political party)|Unity]]|border=1px solid #AAAAAA}} |- ! align="center" style="border-right:none" | ! align="center" style="border-left:none" |Portrait ! align="center" |Acting President ! align="center" |Term of office ! align="center" |Main post ! align="center" |Notes |- !style="background:{{party color|Independent (politician)}};"| | style="width:80px"|[[File:Evstafiev-alexander-rutskoy-w.jpg|154x154px]] |'''[[Alexander Rutskoy]]'''<br><span style="font-size:100%;">Александр Руцкой</span><small><br>Born 1947<br>(age {{Age|1947|9|16}})</small> |style="background:#EEEEEE"| 22 September – 4 October 1993 |style="background:#EEEEEE"| [[Vice President of Russia|Vice President]] |style="background:#EEEEEE"| Acting president during the [[1993 Russian constitutional crisis|1993 constitutional crisis]].<br>His powers were not recognized by Boris Yeltsin. |- !style="background:{{party color|Our Home – Russia}};"| |[[File:Viktor Chernomyrdin-1.jpg|110px]] |'''[[Viktor Chernomyrdin]]'''<br><span style="font-size:100%;">Виктор Черномырдин</span><small><br>1938–2010<br>(aged 72)</small> |style="background:#EEEEEE"| 5–6 November 1996 |rowspan="2" style="background:#EEEEEE"| [[Prime Minister of Russia|Prime Minister]] |style="background:#EEEEEE"| Acting president during Boris Yeltsin's heart surgery. |- !style="background:{{party color|Unity (Russian political party)}};"| |[[File:Vladimir Putin official portrait (cropped).jpg|138x138px]] |'''[[Vladimir Putin]]'''<br><span style="font-size:100%;">Владимир Путин</span><small><br>Born 1952<br>(age {{Age|1952|10|7}})</small> |style="background:#EEEEEE"| 31 December 1999 – 7 May 2000 |style="background:#EEEEEE"| {{nowrap|Acting president after Yeltsin's early resignation.}} |} == Timeline == {{#tag:timeline| Define $width = 800 Define $warning = 680 Define $height = 250 Define $now = {{#time:d/m/Y}} DateFormat = dd/mm/yyyy Define $start = 01/01/1931 Define $end = {{NEXTYEAR}} ImageSize = width:$width height:$height PlotArea = right:10 left:7 bottom:80 top:50 Period = from:$start till:$end TimeAxis = orientation:horizontal Legend = orientation:vertical position:bottom columns:1 Colors = id:bg value:white id:lightline value:rgb(0.9, 0.9, 0.9) id:lighttext value:rgb(0.5, 0.5, 0.5) id:LIFESPAN value:rgb(0.9, 0.9, 0.9) Legend: Lifespan_besides_presidency id:INDEPENDENT value:rgb(0.65, 0.65, 0.65) Legend: Independent id:NDR value:rgb(0.16, 0.09, 0.44) Legend: Our_Home_–_Russia id:UNITY value:rgb(0.13, 0.5, 0.81) Legend: Unity_(and_affiliated) id:UNITED_RUSSIA value:rgb(0.12, 0.33, 0.68) Legend: United_Russia_(and_affiliated) id:NAME value:rgb(0.15, 0.13, 0.05) id:TODAY value:lightpurple BackgroundColors = canvas:bg ScaleMinor = gridcolor:lightline unit:year increment:1 start:$start ScaleMajor = gridcolor:lighttext unit:year increment:10 start:01/01/1940 Define $dy = -5 # shift text to button side of bar LineData= at:$now color:TODAY width:0.1 PlotData= bar:1 width:18 color:LIFESPAN align:center fontsize:M from:01/02/1931 till:23/04/2007 shift:(-0,$dy) textcolor:NAME align:center text:[[Boris Yeltsin]] color:INDEPENDENT from:10/07/1991 till:31/12/1999 bar:2 width:15 color:LIFESPAN align:center fontsize:M from:16/09/1947 till:$now shift:(-50,$dy) textcolor:NAME align:center text:[[Alexander Rutskoy|Alexander Rutskoy (acting; disputed)]] color:INDEPENDENT from:22/09/1993 till:04/10/1993 bar:3 width:15 color:LIFESPAN align:center fontsize:M from:09/04/1938 till:03/11/2010 shift:(-50,$dy) textcolor:NAME text:[[Viktor Chernomyrdin|Viktor Chernomyrdin (acting)]] color:NDR from:05/11/1996 till: 06/11/1996 bar:4 width:20 color:LIFESPAN align:left fontsize:M from:07/10/1952 till:$now shift:(-97,$dy) textcolor:NAME text:[[Vladimir Putin]] color:UNITY from:31/12/1999 till:01/12/2001 color:UNITED_RUSSIA from:01/12/2001 till:07/05/2008 color:UNITED_RUSSIA from:07/05/2012 till:26/05/2012 color:UNITED_RUSSIA from:26/05/2012 till:$now bar:5 width:20 color:LIFESPAN align:left fontsize:M from:14/09/1965 till:$now shift:(-97,$dy) textcolor:NAME text:[[Dmitry Medvedev]] color:UNITED_RUSSIA from:07/05/2008 till:07/05/2012 TextData = pos:(175,$height) fontsize:L textcolor:black text:"Lifespan of each President and Acting President of Russia" }} {{^}} [[File:Life expectancy in RSFSR and RF vs leader.png|thumb|left|520px|Graph of change of [[life expectancy]] in the Russian SFSR and Russia under various leaders]] {{clear}} ==Subsequent public service== Two presidents held other high offices after leaving the presidency. {|class="wikitable" style="margin-left:auto; margin-right:auto; border:none;" |- !President !Presidency !Subsequent service |- |rowspan=2 nowrap|[[Vladimir Putin]] |rowspan=2 style="text-align:center;"|2000–2008 |[[Prime Minister of Russia|Prime Minister]] (2008–2012) |- |[[President of Russia|President]] (2012–present) |- |rowspan=2|[[Dmitry Medvedev]] |rowspan=2 style="text-align:center;"|2008–2012 |Prime Minister (2012–2020) |- |Deputy Chairman of the [[Security Council of Russia|Security Council]] (2020–present) |} --> == თაშნეშე ქოძირით == * [[რუსეთიშ პრეზიდენტი]] ** [[რუსეთიშ მონარქეფიშ ერკებული]] (1917 წანაშახ) ** [[რუსეთიშ სახენწჷფოშ მადუდეეფიშ ერკებული]] (1917 წანაშე) * [[რუსეთიშ პოლიტიკა]] * [[რუსეთიშ თარობა]] ==რესურსეფი ინტერნეტის== * [http://www.cbr.ru/eng/ რუსეთიშ ცენტრალური ბანკი] * [https://web.archive.org/web/20090313002841/http://tonto.eia.doe.gov/country/country_energy_data.cfm?fips=RS რუსეთიშ ენერგეტიკაშ სტატისტიკა] ენერგეტიკაშ ინფორმაციული ადმინისტრაციაშე * [https://web.archive.org/web/20080416210036/http://www.council.gov.ru/eng/index.html ფედერალური სხუნუ] — პარლამენტიშ ჟილენი პალატაშ ოფიციალური ვებ-ხასჷლა ==კომენტარეფი== <references group="გეძახინი"/> ==სქოლიო== {{reflist}} {{მერკე-რუსეთი}} {{რუსეთიშ პრეზიდენტეფი}} [[კატეგორია:რუსეთიშ პრეზიდენტეფი|*ერკებული]] [[კატეგორია:ერუანული პრეზიდენტეფიშ ერკებული|რუსეთი]] [[კატეგორია:რუსი პოლიტიკოსეფი|პრეზიდენტეფი]] inam5edg9phh3na02jxkbst4rmnyuiv 240041 240039 2025-06-08T18:25:44Z Narazeni 826 240041 wikitext text/x-wiki {{რუსეთიშ პოლიტიკა|expanded=President}} '''[[რუსეთიშ პრეზიდენტი]]''' რე [[რუსეთი|რუსეთიშ ფედერაციაშ]] სახენწჷფო ხეშუულებაშ უმაღალაში პიჯი. თე პოსტიშ დუმაკინე რე რუსეთიშ ფედერაციაშ სახენწჷფოშ მადუდე დო [[რუსეთიშ სახენწჷფო სხუნუ|სახენწჷფო სხუნუს]] ფორმალურო უნჯღვერს, თაშნეშე [[რუსეთიშ აკოანჯარაფილი ნძალეფი]]შ ცხენენჯმადუდე რე. პოსტიქ [[დჷნადგინა რუსეთიშ გამაგალაშ სისტემაშ გეშა (1918)|მიშაღალირქ იჸუ]] 1918 წანას, [[ფურთუთაშ რევოლუცია]]შ უკული, ასეიანი პოსტიქ გორჩქინდჷ [[1991]] წანაშ რეფერენდუმიშ უკული.<ref>{{cite book |last1=Aluf |first1=I. A. |url=http://encyclopedia2.thefreedictionary.com/February+Bourgeois+Democratic+Revolution+of+1917 |title=February Bourgeois Democratic Revolution of 1917 |work=[[The Great Soviet Encyclopedia]] |publisher=[[Gale (publisher)|The Gale Group, Inc.]] |year=1979 |edition=3rd}}</ref> [[სხუნუეფიშ რსხუ]]შ ბორჯის, [[რუსეთიშ სხუნუეფიშ ფედერაციული სოციალისტური რესპუბლიკა|რუსეთის]] ''[[დე იურე]]'' დუდენდეს კოლექტიური ორგანოეფი, მუჭომით რდჷ [[ედომუშამი რუსეთიშ ცენტრალური ემაჸონაფალი კომიტეტი]] დო [[რუსეთიშ უმაღალაში სხუნუშ პრეზიდიუმი|უმაღალაში სხუნუშ პრეზიდიუმი]], ანდანე გამაგალაშ სხუნუური თეორია ვარებულენდჷ პრეზიდენტიშ პოსტიშ უციობას. [[1990]] წანას გენშეღეს [[სხუნუეფიშ რსხუშ პრეზიდენტი]]შ პოსტი, [[მიხეილ გორბაჩოვი]]შით სხუნუეფიშ რსხუშ [[ართპარტიული სახენწჷფო|ართპარტიული]] [[კომუნისტური სახენწჷფო]]შ [[პერესტროიკა|უმწუძინუ რეფორმეფიშ]] ბორჯის. გორბაჩოვი სხუნუეფიშ პირველი დო ეკონია პრეზიდენტი რდჷ.<ref>{{cite web |date=26 December 1991 |title=End of the Soviet Union: Text of Gorbachev's Farewell Address |url=https://www.nytimes.com/1991/12/26/world/end-of-the-soviet-union-text-of-gorbachev-s-farewell-address.html |access-date=27 December 2019 |website=The New York Times}}</ref> თიში მოღალობა ეიშანუაფუდჷ რუსეთწკჷმა დო სსრრ-შ შხვა რესპუბლიკეფწკჷმა სამართლებური დო პოლიტიკური აწორინაფეფით, ნამუქჷთ [[1991]] წანას, საბოლათ თინეფიშ რსული ზოხორინალა გჷმიჭანუ. == პრეზიდენტეფი == {{main|რუსეთიშ პრეზიდენტი}} {| class="wikitable" style="margin:1em auto; text-align:center; width:100%; border:1px #AAAAFF solid" |- style="background:#cccccc" ! colspan="9" | |- !align="center" width="0" colspan=2 style="border-right: none"| !align="center" width="0" style="border-left: none"|პორტრეტი !align="center" width="0"|[[რუსეთიშ პრეზიდენტი|პრეზიდენტი]] !align="center" width="0"|ხემანჭუაფაშ ხანი !align="center" width="0"|ხანი !align="center" width="0"|კინოხიანი პოსტი !align="center" width="0" colspan=2|[[რუსეთიშ პრემიერ-მინისტრი|პრემიერ-მინისტრი]] |- ! rowspan="10" style="background:{{party color|Independent (politician)}}" height="99" | ! rowspan="10" | [[ბორის ელცინიშ პორეზიდენტალა|1]] | rowspan="10" style="width:150px" |[[ფაილი:Борис Николаевич Ельцин-1 (cropped).jpg|center|192x192px]] | rowspan="10" |'''<big>[[ბორის ელცინი]]</big>'''<br><span style="font-size:100%;">Борис Ельцин</span><br>1931–2007<br><br>[[ფაილი:Yeltsin signature.svg|80px]] | rowspan="10" style="background:#EEEEEE" | <span class="date"the sample style="white-space:nowrap;">10 კვირკვე, 1991</span> – <span class="date" style="white-space:nowrap;">31 ქირსეთუთა, 1999</span><br><small>(პოსტიშე გეგნოდირთუ)</small><br>({{age in years and days|1991|7|10|1999|12|31}}) | rowspan="4" style="background:#EEEEEE" |[[ბორის ელცინიშ პირველი ინაუგურაცია|1]]<br><small>([[რუსეთიშ საპრეზიდენტო გიშაგორუეფი (1991)|1991]])</small><br>{{NoteTag|[[სხუნუეფიშ რსხუშ აკოცჷმა]]შე, ხათეშე, გიშაგორილქ იჸუ მუჭოთ რუსეთიშ სფსრ-შ პრეზიდენტი. პრეზიდენტიშ პოსტი უკებუდჷ 1996 წანაშახ, 1993 წანას კონსტიტუციაშ მეღებაშ დო პარლამენტწკჷმა ოურდუმე კონფლიქტიშ უმკუჯინალო.}} | rowspan="10" style="background:#EEEEEE" | რუსეთიშ უჟინაში სხუნუშ მადუდე<br><small>(1990–1991)</small> !style="background:{{party color|Communist Party of the Soviet Union}}"| |style="background:#EEEEEE" |{{small|[[ივანე სილაევი]]}} |- !style="background:{{party color|Independent politician}}"| | style="background:#E6E6AA" |{{small|კჷნე მუ}} |- !style="background:{{party color|Independent politician}}"| | style="background:#E6E6AA" |{{small|[[ეგორ გაიდარი]]}} |- !rowspan="2" style="background:{{party color|Our Home – Russia}}"| | rowspan="2" height=15px style="background:#EEEEEE" |{{small|[[ვიქტორ ჩერნომირდინი]]}} |- | rowspan="6" style="background:#EEEEEE" |[[ბორის ელცინიშ მაჟირა ინაუგურაცია|2]]<br><small>([[რუსეთიშ საპრეზიდენტო გიშაგორუეფი (1996)|1996]])</small> |- !style="background:{{party color|Independent politician}}"| | style="background:#EEEEEE" |{{small|[[სერგეი კირიენკო]]}} |- !style="background:{{party color|Our Home – Russia}}"| |height=10px style="background:#E6E6AA" |{{small|ვიქტორ ჩერნომირდინი}} |- !style="background:#42aaff"| | style="background:#EEEEEE" |{{small|[[ევგენი პრიმაკოვი]]}} |- !style="background:{{party color|Independent politician}}"| | style="background:#EEEEEE" |{{small|[[სერგეი სტეპაშინი]]}} |- ! rowspan=2 style="background:{{party color|Unity (Russian political party)}}"| | rowspan=2 style="background:#EEEEEE" |{{small|[[ვლადიმერ პუტინი]]}} |- ! rowspan="5" style="background:{{party color|Independent (politician)}}"; height="250" | ! rowspan="5" | [[რუსეთი ვლადიმერ პუტინიშ ბორჯის|2]] | rowspan="5" |[[ფაილი: Vladimir Putin official portrait (cropped).jpg|center|192x192px]] | rowspan="5" |'''<big>[[ვლადიმერ პუტინი]]</big>'''<br><span style="font-size:100%;">Владимир Путин</span><br>დ. 1952<br><small>(age {{Age|1952|10|7}})</small><br>[[File:Putin signature.svg|80px]] | rowspan="5" style="background:#EEEEEE" | <span class="date" style="white-space:nowrap;">7 მესი, 2000</span> – <span class="date" style="white-space:nowrap;">7 მესი, 2008</span><br>{{small|(პოსტი უკებუდჷ 1999 წანაშ 31 ქირსეთუთაშე)}}<br>({{age in years and days|1999|12|31|2008|5|7}}) | rowspan="3" style="background:#EEEEEE" |[[ვლადიმერ პუტინიშ პირველი ინაუგურაცია|3]]<br><small>([[რუსეთიშ საპრეზიდენტო გიშაგორუეფი (2000)|2000]])</small> | rowspan="5" style="background:#EEEEEE" |[[რუსეთიშ პრემიერ-მინისტრი]]<br /><small>(1999–2000)</small> |- !style="background:{{party color|Independent politician}}"| | style="background:#EEEEEE" |{{small|[[მიხეილ კასიანოვი]]{{NoteTag|პრემიერ-მინისტრიშ მოღალობაშ მარსულებერი 2000 წანაშ 17 მესიშა.}}}} |- ! rowspan="2" style="background:{{party color|Independent politician}}"| | rowspan="2" height=70px style="background:#EEEEEE" |{{small|[[მიხეილ ფრადკოვი]]}} |- | rowspan="2" style="background:#EEEEEE" |[[ვლადიმერ პუტინიშ მაჟირა ინაუგურაცია|4]]<br><small>([[რუსეთიშ საპრეზიდენტო გიშაგორუეფი (2004)|2004]])</small> |- ! style="background:{{party color|United Russia}}"| | style="background:#EEEEEE" |{{small|[[ვიქტორ ზუბკოვი]]}} |- ! style="background:{{party color|United Russia}}"; height="250" | ! [[დიმიტრი მედვედევიშ პრეზიდენტალა|3]] |[[ფაილი:Dmitry_Medvedev_official_large_photo_-1_(cropped).jpg|center|192x192px]] |'''<big>[[დიმიტრი მედვედევი]]</big>'''<br><span style="font-size:100%;">Дмитрий Медведев</span><br>Born 1965<br><small>(age {{Age|1965|9|14}})</small><br>[[ფაილი:Signature of Dmitry Medvedev.svg|80px]] | style="background:#EEEEEE" | <span class="date" style="white-space:nowrap;">7 მესი, 2008</span> – <span class="date" style="white-space:nowrap;">7 მესი, 2012</span><br>({{age in years and days|2008|5|7|2012|5|7}}) | style="background:#EEEEEE" |[[დიმიტრი მედვედევიშ ინაუგურაცია|5]]<br><small>([[რუსეთიშ საპრეზიდენტო გიშაგორუეფი (2008)|2008]])</small> | style="background:#EEEEEE" |[[რუსეთიშ პირველი ვიცე-პრემეირი]]<br><small>(2005–2008)</small> ! style="background:{{party color|United Russia}}"| | style="background:#EEEEEE" |{{small|ვლადიმერ პუტინი}} |- ! style="background:{{party color|United Russia}}"| ! rowspan="5" | [[რუსეთიშ ვლადიმერ პუტინიშ ბორჯის#მასუმა საპრეზიდენტო ხანი (2012–2018)|4]] | rowspan="5" |[[ფაილი:Vladimir Putin - 2012.jpg|center|192x192px]] | rowspan="5" |'''<big>[[ვლადიმერ პუტინი]]</big>'''<br /><span style="font-size:100%;">Владимир Путин</span><br>დ. 1952<br><small>(age {{Age|1952|10|7}})</small><br>[[ფაილი:Putin signature.svg|80px]] | style="background:#EEEEEE" rowspan="5" |<span class="date" style="white-space:nowrap;">7 მესი, 2012</span> – ასეშა<br>({{age in years and days|2012|5|7}}) | style="background:#EEEEEE" rowspan="2" |[[ვლადიმერ პუტინიშ მასუმა ინაუგურაცია|6]]<br><small>([[რუსეთიშ საპრეზიდენტო გიშაგორუეფი (2012)|2012]])</small> | style="background:#EEEEEE" rowspan="5" |რუსეთიშ პრემიერ-მინისტრი<br><small>(2008–2012)</small> ! style="background:{{party color|United Russia}}"| | style="background:#E6E6AA" |{{small|ვიქტორ ზუბკოვი}} |- ! rowspan=4 style="background: {{party color|Independent (politician)}}"; height="250" | ! rowspan=2 style="background:{{party color|United Russia}}"| | rowspan=2 style="background:#EEEEEE" |{{small|დიმიტრი მედვედევი}} |- | rowspan=2 style="background:#EEEEEE" |[[ვლადიმერ პუტინიშ მაანთხა ინაუგურაცია|7]]<br><small>([[რუსეთიშ საპრეზიდენტო გიშაგორუეფი (2018)|2018]])</small> |- ! rowspan="2" style="background:{{party color|Independent politician}}"| | rowspan="2" style="background:#EEEEEE" |{{small|[[მიხეილ მიშუსტინი]]}} |- | style="background:#EEEEEE" |[[ვლადიმერ პუტინიშ მახუთა ინაუგურაცია|8]]<br><small>([[რუსეთიშ საპრეზიდენტო გიშაგორუეფი (2024)|2024]])</small> |} <!-- ==მოღალობაშ== {{mainarticle|Acting President of Russia}} {{see also|President of the Soviet Union#Acting President}} {|class="wikitable" style="margin:1em auto; width:100%; text-align:center;" |- style="background:#cccccc" !colspan=6 | {{legend0|{{party color|Independent (politician)}}|[[Independent (politician)|Nonpartisan]]|border=1px solid #AAAAAA}} {{legend0|{{party color|Our Home – Russia}}|[[Our Home – Russia|NDR]]|border=1px solid #AAAAAA}} {{legend0|{{party color|Unity (Russian political party)}}|[[Unity (Russian political party)|Unity]]|border=1px solid #AAAAAA}} |- ! align="center" style="border-right:none" | ! align="center" style="border-left:none" |Portrait ! align="center" |Acting President ! align="center" |Term of office ! align="center" |Main post ! align="center" |Notes |- !style="background:{{party color|Independent (politician)}};"| | style="width:80px"|[[File:Evstafiev-alexander-rutskoy-w.jpg|154x154px]] |'''[[Alexander Rutskoy]]'''<br><span style="font-size:100%;">Александр Руцкой</span><small><br>Born 1947<br>(age {{Age|1947|9|16}})</small> |style="background:#EEEEEE"| 22 September – 4 October 1993 |style="background:#EEEEEE"| [[Vice President of Russia|Vice President]] |style="background:#EEEEEE"| Acting president during the [[1993 Russian constitutional crisis|1993 constitutional crisis]].<br>His powers were not recognized by Boris Yeltsin. |- !style="background:{{party color|Our Home – Russia}};"| |[[File:Viktor Chernomyrdin-1.jpg|110px]] |'''[[Viktor Chernomyrdin]]'''<br><span style="font-size:100%;">Виктор Черномырдин</span><small><br>1938–2010<br>(aged 72)</small> |style="background:#EEEEEE"| 5–6 November 1996 |rowspan="2" style="background:#EEEEEE"| [[Prime Minister of Russia|Prime Minister]] |style="background:#EEEEEE"| Acting president during Boris Yeltsin's heart surgery. |- !style="background:{{party color|Unity (Russian political party)}};"| |[[File:Vladimir Putin official portrait (cropped).jpg|138x138px]] |'''[[Vladimir Putin]]'''<br><span style="font-size:100%;">Владимир Путин</span><small><br>Born 1952<br>(age {{Age|1952|10|7}})</small> |style="background:#EEEEEE"| 31 December 1999 – 7 May 2000 |style="background:#EEEEEE"| {{nowrap|Acting president after Yeltsin's early resignation.}} |} == Timeline == {{#tag:timeline| Define $width = 800 Define $warning = 680 Define $height = 250 Define $now = {{#time:d/m/Y}} DateFormat = dd/mm/yyyy Define $start = 01/01/1931 Define $end = {{NEXTYEAR}} ImageSize = width:$width height:$height PlotArea = right:10 left:7 bottom:80 top:50 Period = from:$start till:$end TimeAxis = orientation:horizontal Legend = orientation:vertical position:bottom columns:1 Colors = id:bg value:white id:lightline value:rgb(0.9, 0.9, 0.9) id:lighttext value:rgb(0.5, 0.5, 0.5) id:LIFESPAN value:rgb(0.9, 0.9, 0.9) Legend: Lifespan_besides_presidency id:INDEPENDENT value:rgb(0.65, 0.65, 0.65) Legend: Independent id:NDR value:rgb(0.16, 0.09, 0.44) Legend: Our_Home_–_Russia id:UNITY value:rgb(0.13, 0.5, 0.81) Legend: Unity_(and_affiliated) id:UNITED_RUSSIA value:rgb(0.12, 0.33, 0.68) Legend: United_Russia_(and_affiliated) id:NAME value:rgb(0.15, 0.13, 0.05) id:TODAY value:lightpurple BackgroundColors = canvas:bg ScaleMinor = gridcolor:lightline unit:year increment:1 start:$start ScaleMajor = gridcolor:lighttext unit:year increment:10 start:01/01/1940 Define $dy = -5 # shift text to button side of bar LineData= at:$now color:TODAY width:0.1 PlotData= bar:1 width:18 color:LIFESPAN align:center fontsize:M from:01/02/1931 till:23/04/2007 shift:(-0,$dy) textcolor:NAME align:center text:[[Boris Yeltsin]] color:INDEPENDENT from:10/07/1991 till:31/12/1999 bar:2 width:15 color:LIFESPAN align:center fontsize:M from:16/09/1947 till:$now shift:(-50,$dy) textcolor:NAME align:center text:[[Alexander Rutskoy|Alexander Rutskoy (acting; disputed)]] color:INDEPENDENT from:22/09/1993 till:04/10/1993 bar:3 width:15 color:LIFESPAN align:center fontsize:M from:09/04/1938 till:03/11/2010 shift:(-50,$dy) textcolor:NAME text:[[Viktor Chernomyrdin|Viktor Chernomyrdin (acting)]] color:NDR from:05/11/1996 till: 06/11/1996 bar:4 width:20 color:LIFESPAN align:left fontsize:M from:07/10/1952 till:$now shift:(-97,$dy) textcolor:NAME text:[[Vladimir Putin]] color:UNITY from:31/12/1999 till:01/12/2001 color:UNITED_RUSSIA from:01/12/2001 till:07/05/2008 color:UNITED_RUSSIA from:07/05/2012 till:26/05/2012 color:UNITED_RUSSIA from:26/05/2012 till:$now bar:5 width:20 color:LIFESPAN align:left fontsize:M from:14/09/1965 till:$now shift:(-97,$dy) textcolor:NAME text:[[Dmitry Medvedev]] color:UNITED_RUSSIA from:07/05/2008 till:07/05/2012 TextData = pos:(175,$height) fontsize:L textcolor:black text:"Lifespan of each President and Acting President of Russia" }} {{^}} [[File:Life expectancy in RSFSR and RF vs leader.png|thumb|left|520px|Graph of change of [[life expectancy]] in the Russian SFSR and Russia under various leaders]] {{clear}} ==Subsequent public service== Two presidents held other high offices after leaving the presidency. {|class="wikitable" style="margin-left:auto; margin-right:auto; border:none;" |- !President !Presidency !Subsequent service |- |rowspan=2 nowrap|[[Vladimir Putin]] |rowspan=2 style="text-align:center;"|2000–2008 |[[Prime Minister of Russia|Prime Minister]] (2008–2012) |- |[[President of Russia|President]] (2012–present) |- |rowspan=2|[[Dmitry Medvedev]] |rowspan=2 style="text-align:center;"|2008–2012 |Prime Minister (2012–2020) |- |Deputy Chairman of the [[Security Council of Russia|Security Council]] (2020–present) |} --> == თაშნეშე ქოძირით == * [[რუსეთიშ პრეზიდენტი]] ** [[რუსეთიშ მონარქეფიშ ერკებული]] (1917 წანაშახ) ** [[რუსეთიშ სახენწჷფოშ მადუდეეფიშ ერკებული]] (1917 წანაშე) * [[რუსეთიშ პოლიტიკა]] * [[რუსეთიშ თარობა]] ==რესურსეფი ინტერნეტის== * [http://www.cbr.ru/eng/ რუსეთიშ ცენტრალური ბანკი] * [https://web.archive.org/web/20090313002841/http://tonto.eia.doe.gov/country/country_energy_data.cfm?fips=RS რუსეთიშ ენერგეტიკაშ სტატისტიკა] ენერგეტიკაშ ინფორმაციული ადმინისტრაციაშე * [https://web.archive.org/web/20080416210036/http://www.council.gov.ru/eng/index.html ფედერალური სხუნუ] — პარლამენტიშ ჟილენი პალატაშ ოფიციალური ვებ-ხასჷლა ==კომენტარეფი== <references group="გეძახინი"/> ==სქოლიო== {{reflist}} {{მერკე-რუსეთი}} {{რუსეთიშ პრეზიდენტეფი}} [[კატეგორია:რუსეთიშ პრეზიდენტეფი|*ერკებული]] [[კატეგორია:ერუანული პრეზიდენტეფიშ ერკებული|რუსეთი]] [[კატეგორია:რუსი პოლიტიკოსეფი|პრეზიდენტეფი]] bzza6k90bfkqvxmrq1jayyfh0smafqc დიოგუ კოშტა 0 42934 240062 2025-06-09T10:14:24Z Narazeni 826 ახალი ხასჷლა: {{ინფოდაფა მობურთე |ჯოხო = დიოგუ კოშტა |ედომუშამი ჯოხო = დიოგუ მეირელიშ და კოშტა |სურათი = [[სურათი:Diogo Costa in 2023.jpg|220px|center]] |დაბადებაშ თარიღი ={{დაბადებაშ თარიღი დო ხანი|1999|9|19}} |დაბადებაშ აბან... 240062 wikitext text/x-wiki {{ინფოდაფა მობურთე |ჯოხო = დიოგუ კოშტა |ედომუშამი ჯოხო = დიოგუ მეირელიშ და კოშტა |სურათი = [[სურათი:Diogo Costa in 2023.jpg|220px|center]] |დაბადებაშ თარიღი ={{დაბადებაშ თარიღი დო ხანი|1999|9|19}} |დაბადებაშ აბანი =[[როტრისტი]], [[შვეიცარია]] |ქიანა ={{შილა|პორტუგალია}}<br>{{შილა|შვეიცარია}} |ღურაშ თარიღი = |ღურაშ აბანი = |სიმაღალა =186 |წონა = |შხვა ჯოხო= |პოზიცია =[[მეკარე (კუჩხბურთი)|მეკარე]] |ერუანული ნაკორობა = {{fb|POR}} |კლუბი = {{შილაშანი|პორტუგალია}} [[პორტუ (ოკუჩხბურთე კლუბი)|პორტუ]] |ნომერი = 99 |კარიერა = }} '''დიოგუ მეირელიშ და კოშტა''' ({{lang-pt|Diogo Meireles da Costa}}; დ. [[19 ეკენია]], [[1999]]) — [[პორტუგალია|პორტუგალიარი]] [[მობურთე]], ოკუჩხბურთე კლუბი „[[პორტუ (ოკუჩხბურთე კლუბი)|პორტუშ]]“ დო [[პორტუგალიაშ ერუანული ოკუჩხბურთე ნაკორობა]]შ [[მეკარე (კუჩხბურთი)|მეკარე]]. [[მოსოფელიშ ოკუჩხბურთე ჩემპიონატი 2022|2022 წანაშ მოსოფელიშ]] დო [[ევროპაშ ოკუჩხბურთე ჩემპიონატი 2024|2024 წანაშ ევროპაშ ოკუჩხბურთე ჩემპიონატეფიშ]] მაკათური. == რესურსეფი ინტერნეტის == * [http://www.zerozero.pt/player.php?id=284406&epoca_id=0&search=1 პროფილი ვებ-ხასჷლას ZeroZero]{{ref-pt}} {{მერკე-სპორტი}} [[კატეგორია:პორტუგალაიშ მობურთეეფი]] [[კატეგორია:პორტუგალიაშ ერუანული ოკუჩხბურთე ნაკორობაშ მობურთეეფი (21 წანაშახ)]] [[კატეგორია:პორტუგალიაშ ერუანული ოკუჩხბურთე ნაკორობაშ მობურთეეფი]] [[კატეგორია:ევროპაშ 17-წანამეფშა კუჩხბურთიშ ჩემპიონეფი]] [[კატეგორია:ევროპაშ 19-წანამეფშა კუჩხბურთიშ ჩემპიონეფი]] [[კატეგორია:პორტუშ მობურთეეფი]] [[კატეგორია:პორტუ B მობურთეეფი]] 1sl34usizok5cs895ofobjeu9irn2fn 240063 240062 2025-06-09T10:32:15Z Narazeni 826 240063 wikitext text/x-wiki {{ინფოდაფა მობურთე |ჯოხო = დიოგუ კოშტა |ედომუშამი ჯოხო = დიოგუ მეირელიშ და კოშტა |სურათი = [[სურათი:Diogo Costa in 2023.jpg|220px|center]] |დაბადებაშ თარიღი ={{დაბადებაშ თარიღი დო ხანი|1999|9|19}} |დაბადებაშ აბანი =[[როტრისტი]], [[შვეიცარია]] |ქიანა ={{შილა|პორტუგალია}}<br>{{შილა|შვეიცარია}} |ღურაშ თარიღი = |ღურაშ აბანი = |სიმაღალა =186 |წონა = |შხვა ჯოხო= |პოზიცია =[[მეკარე (კუჩხბურთი)|მეკარე]] |ერუანული ნაკორობა = {{fb|POR}} |კლუბი = {{შილაშანი|პორტუგალია}} [[პორტუ (ოკუჩხბურთე კლუბი)|პორტუ]] |ნომერი = 99 |კარიერა = }} '''დიოგუ მეირელიშ და კოშტა''' ({{lang-pt|Diogo Meireles da Costa}}; დ. [[19 ეკენია]], [[1999]]) — [[პორტუგალია|პორტუგალიარი]] [[მობურთე]], ოკუჩხბურთე კლუბი „[[პორტუ (ოკუჩხბურთე კლუბი)|პორტუშ]]“ დო [[პორტუგალიაშ ერუანული ოკუჩხბურთე ნაკორობა]]შ [[მეკარე (კუჩხბურთი)|მეკარე]]. [[მოსოფელიშ ოკუჩხბურთე ჩემპიონატი 2022|2022 წანაშ მოსოფელიშ]] დო [[ევროპაშ ოკუჩხბურთე ჩემპიონატი 2024|2024 წანაშ ევროპაშ ოკუჩხბურთე ჩემპიონატეფიშ]] მაკათური. == რესურსეფი ინტერნეტის == * [http://www.zerozero.pt/player.php?id=284406&epoca_id=0&search=1 პროფილი ვებ-ხასჷლას ZeroZero]{{ref-pt}} {{მერკე-სპორტი}} [[კატეგორია:პორტუგალაიშ მობურთეეფი]] [[კატეგორია:პორტუგალიაშ ერუანული ოკუჩხბურთე ნაკორობაშ მობურთეეფი (21 წანაშახ)]] [[კატეგორია:პორტუგალიაშ ერუანული ოკუჩხბურთე ნაკორობაშ მობურთეეფი]] [[კატეგორია:ევროპაშ 17-წანამეფშა კუჩხბურთიშ ჩემპიონეფი]] [[კატეგორია:ევროპაშ 19-წანამეფშა კუჩხბურთიშ ჩემპიონეფი]] [[კატეგორია:ოკ პორტუშ მობურთეეფი]] [[კატეგორია:ოკ პორტუ B მობურთეეფი]] raqslm6j5piy41nvmmxragt0uo32bqx ბერნარდუ სილვა 0 42935 240064 2025-06-09T10:37:02Z Narazeni 826 ახალი ხასჷლა: {{ინფოდაფა მობურთე |ჯოხო = ბერნარდუ სილვა |ედომუშამი ჯოხო = ბერნარდუ მოტა ვეიგა დე კარვალიუ ი სილვა |სურათი = [[სურათი:Bernardo Silva (Isto É Gozar Com Quem Trabalha, 2024).png|220px|center]] |დაბადებაშ თარიღი ={{დაბადებაშ თა... 240064 wikitext text/x-wiki {{ინფოდაფა მობურთე |ჯოხო = ბერნარდუ სილვა |ედომუშამი ჯოხო = ბერნარდუ მოტა ვეიგა დე კარვალიუ ი სილვა |სურათი = [[სურათი:Bernardo Silva (Isto É Gozar Com Quem Trabalha, 2024).png|220px|center]] |დაბადებაშ თარიღი ={{დაბადებაშ თარიღი დო ხანი|1994|8|10}} |დაბადებაშ აბანი =[[ლისაბონი]], [[პორტუგალია]] |ქიანა ={{შილა|პორტუგალია}} |ღურაშ თარიღი = |ღურაშ აბანი = |სიმაღალა =173 |წონა = |შხვა ჯოხო= |პოზიცია =[[ოშქაშემათხილე (კუჩხბურთი)|ოშქაშემათხილე]] |ერუანული ნაკორობა = {{fb|POR}} |კლუბი = {{შილაშანი|ინგლისი}} [[მანჩესტერ სიტი (ოკუჩხბურთე კლუბი)|მანჩესტერ სიტი]] |ნომერი = 20 |კარიერა = }} '''ბერნარდუ მოტა ვეიგა დე კარვალიუ ი სილვა''' ({{lang-pt|Bernardo Mota Veiga de Carvalho e Silva}}, {{IPA|bɨɾˈnaɾdu ˈsiɫvɐ}}; დ. [[10 მარაშინათუთა]], [[1994]], [[ლისაბონი]], [[პორტუგალია]]) — [[პორტუგალია|პორტუგალია]] [[მობურთე]], ოკუჩხბურთე კლუბი „[[მანჩესტერ სიტი (ოკუჩხბურთე კლუბი)|მანჩესტერ სიტიშ]]“ დო [[პორტუგალიაშ ერუანული ოკუჩხბურთე ნაკორობა]]შ [[ოშქაშემათხილე (კუჩხბურთი)|ოშქაშემათხილე]]. [[მოსოფელიშ კუჩხბურთიშ ჩემპიონატი|მოსოფელიშ 2]] ([[მოსოფელიშ ოკუჩხბურთე ჩემპიონატი 2018|2018]] დო [[მოსოფელიშ ოკუჩხბურთე ჩემპიონატი 2022|2022]]) დო [[ევროპაშ ოკუჩხბურთე ჩემპიონატი|ევროპაშ 2 ჩემპიონატეფიშ]] ([[ევროპაშ ოკუჩხბურთე ჩემპიონატი 2020|2020]] დო [[ევროპაშ ოკუჩხბურთე ჩემპიონატი 2024|2024]]) მაკათური. == რესურსეფი ინტერნეტის == * [https://www.mancity.com/players/bernardo-silva მობურთეშ პროფილი] „მანჩესტერ სიტიშ“ ოფიციალურ ვებ-ხასჷლას{{ref-en}} {{მერკე-სპორტი}} [[კატეგორია:პორტუგალიაშ მობურთეეფი]] [[კატეგორია:პორტუგალიაშ ერუანული ოკუჩხბურთე ნაკორობაშ მობურთეეფი (21 წანაშახ)]] [[კატეგორია:პორტუგალიაშ ერუანული ოკუჩხბურთე ნაკორობაშ მობურთეეფი]] [[კატეგორია:ოკ ბენფიკა ლისაბონიშ მობურთეეფი]] [[კატეგორია:ოკ მონაკოშ მობურთეეფი]] [[კატეგორია:ოკ მანჩესტერ სიტიშ მობურთეეფი]] 3jcvivo2tg1dko727ydbm3gk9yu0tsk