Википедия koiwiki https://koi.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BD%D0%B4%D3%A7%D1%82%D1%87%D0%B0%D0%BD_%D0%BB%D0%B8%D1%81%D1%82%D0%B1%D0%BE%D0%BA MediaWiki 1.48.0-wmf.3 first-letter Медиа Служебная Обсуждение Участник Обсуждение участника Википедия Баитам Википедия йылiсь Файл Обсуждение файла MediaWiki Обсуждение MediaWiki Шаблон Обсуждение шаблона Справка Обсуждение справки Категория Обсуждение категории TimedText TimedText talk Модуль Обсуждение модуля Event Event talk Коми Республика 0 684 64596 61371 2026-11-09T03:38:46Z Rzdz 10142 64596 wikitext text/x-wiki {{Регион |Рӧм1 = {{Рӧм|Рочму}} |Коми ним = Коми Республика |Ас ним = ''Коми Ӧтувкан'' |Вужпас = Coat of Arms of the Komi Republic.svg |Дӧрапас = Flag of Komi.svg |Канму = [[Рочму|Роч Федерация]] |Гимн = |Статус = [[республика]] |Ыджытжык регион = [[Ойвыв-Рытвыв федерал кытш]] |Янсалӧм = 5 каркытш, 15 район |Веськӧтлан шӧрин = [[Сыктывкар]] |Медыджыт кар = |Мӧдік ыджыт каррез = [[Уква]], [[Ускар]], [[Вӧркута]], [[Инта]] |Аркман кад = [[1921]]' [[август 22' лун]] |Юралісь = [[Уйба Владимир Викторович]] |Юралісьлӧн ним = [[Юралысь]] |Юралісь2 = |Юралісьлӧн ним2 = |БПЛ = 295600000000 |БПЛ сьӧм = [[Шать|ш.]] |БПЛ лыддян во = 2008 во |БПЛ сьӧрті места = 31 |Морт вывся БПЛ = 306900 |Морт вывся БПЛ сьӧрті места = |Кыв = |Кыввез = [[Коми кыв|коми]], [[Роч кыв|роч]] |Оліссез = 951155 |Гижӧтан во = 2010 во |Быдӧс отирсис процент = |Оліссез лыд сьӧрті места = 54 |Оліссезлӧн тшӧкыта = 2.3 |Тшӧкыта сьӧрті места = |Чужанвуж сьӧрті тэчас = [[Коми отир|комиэз]], [[роччез]] |Эскан сьӧрті тэчас = Буркывья вичку |Мувывтор = 416774 |Мувывтор сьӧрті процент = Ва-0.3 |Мувывтор сьӧрті места = 13 |Медыджыт вылына = |Шӧрӧт вылына = |Медучӧт вылына = |Паськыта = |Кузьта = |Мусерпас = Map of Russia - Komi Republic (2008-03).svg‎ |Мусерпасыслӧн ыжда = |Регионлӧн мусерпас = |Кад кытш = UTS +3{{br}}[[Файл:Map of Russia - Moscow time zone.svg|90px]] |Джендӧтӧм = |ISO = |FIPS = |Телефон код = +7 821 |Пошта индекссэз = 167000-167999 |Интернет домен = |Автомобиль код = 11, 111 |Сайт = http://www.rkomi.ru/ |Категория Commons-ын = |Пасйӧттэз = }} [[Файл:Komi03.png|thumb|250px|Коми Республика карта вылын]] '''Коми Республика''' ({{кыв+ru1|Республика Коми}}) — [[Рочму|Роч Федерация]] видзантор. Куйлӧ [[Европа]] ойвыв-асыввылын, [[Урал (керӧссэз)|Урал]] одзын, [[Печора (ю)|Печора]], [[Эжва (ю)|Эжва]] да [[Мозын (ю)|Мозын]] юэз бассейнын. Коми Республика — [[Коми отир|коми отирлӧн]] чужан му. Коми йӧзыслӧн мӧд горт — [[Перем ладорись Коми кытш]], куйлӧ Коми Республикасяняс лунвылынжык. Коми Республикалӧн мувывтор — 415,9 сюрс км<sup>2</sup>. Оліссес — 951,2 сюрс морт (2010), ны коласын комиэз — 25,2%. Канкарыс — [[Сыктывкар]], кытӧн олӧ республика йӧзісь нёльӧт тор. Республика янсалӧ 20 юкӧт вылӧ — 5 каркытш (Сыктывкар, Вӧркута, Инта, Уква, Ускар) да 15 муниципал район: [[Вуктыл район|Вуктыл]], [[Изьва район|Изьва]], [[Емва район|Емва]], [[Емдін район|Емдін]], [[Койгорт район|Койгорт]], [[Кӧрткерӧс район|Кӧрткерӧс]], [[Кулӧмдін район|Кулӧмдін]], [[Луздор район|Луздор]], [[Мылдін район|Мылдін]], [[Печора район|Печора]], [[Сӧснагорт район|Сӧснагорт]], [[Сыктыв район|Сыктыв]], [[Сыктывдін район|Сыктывдін]], [[Удора район|Удора]] да [[Чилимдін район|Чилимдін]]. Республикаын 10 кар: [[Вöркута (кар)|Вӧркута]], [[Вуктыл (кар)|Вуктыл]], [[Емва (кар)|Емва]], [[Инта (кар)|Инта]], [[Микунь (кар)|Микунь]], [[Печора (кар)|Печора]], [[Сӧснагорт (кар)|Сӧснагорт]] (Сосногорск), [[Сыктывкар]], [[Ускар (кар)|Ускар]] (Усинск), [[Уква (кар)|Уква]] (Ухта). Нысся эмӧсь 37 карок да 762-а посад кодь оланіннэз: посёлоккез, посаддэз (татӧн нійӧ шуӧны сикттэзӧн) да грезддэз (деревняэз). Коми Республикаыс аркмӧма 1921' годӧ август 22' лунӧ. Медодз сія статус сьӧрті вӧлӧма асвеськӧтлан лапӧлӧн (областьӧн) РСФСР тэчасын, 1929'—1936' воэзӧ недыр кежӧ сійӧ сюйлӧмась [[Ойвыв ладор|Ойвыв ладорӧ]] (крайӧ), но 1936 во бӧрын сія лэбтісьӧма Коми АССР-ӧдз, 1990' годӧ босьтіс статус ССР, а 1992' воын нимтіс асьсӧ Коми Республика и лоис Роч Федерация видзанторӧн (субъектӧн). Медыджыт мортӧн Коми Республикаын лыддисьӧ Мӧсквасянь иньдӧм Юралісь. Туйдӧттэз лӧсьӧтан органӧн лоӧ Каналан сӧвет, кытчӧ баитіссесӧ бӧрйӧны республикаын оліссез. Юралісь да Каналан сӧвет бӧрйӧны Коми Республикалӧ веськӧтлан (правительство), кытӧн пукалӧны министррез. Медодзза юралісьӧн Коми Республикаын 1994'—2000' воэзӧ вӧлі [[Спиридонов Юрий Ӧльӧксеевич|Спиридонов Юрий]], сы бӧрын 2001'—2009' годдэзӧ — [[Торлопов Ладимир Ӧльӧксандрович|Торлопов Ладимир]]. Ӧні, 2010' вося январсянь, юралісьын пукалӧ [[Гайзер Вячеслав Михайлович|Гайзер Вячеслав]]. Республикаыс олӧ Мӧсква кад сьӧрті: муюгыт (Гринвидз) кад + 3 час (гожумнас + 4 час), Урал кад — 2 час. Сьӧм туйӧ Коми Республикаын бергалӧ роч шать. 1 шать = 100 ур. == Ним == Коми республика рочӧн шусьӧ Республика Коми, инглиш кыв вылын — ''Komi Republic''. Юраліссез нимтӧмась республикасӧ медодз Коми (зырянскӧй) автономнӧй область, комиӧн эта лоӧ Коми (зыряналӧн) асвеськӧтлан лапӧв. 1936' воын сія пондіс шусьыны Коми Автономнӧй Советскӧй Социалистическӧй Республика (комиӧнжык кӧ керны Советтэзын социализм видзись комиэзлӧн асвеськӧтлан республика; дженыта — Коми АССР). 1990' годӧ этія кузь нимсис шупкӧмась ''автономнӧй'' (''асвеськӧтлан'') тор, а 1992' воын Коми республика босьтіс аслыс ӧння нимсӧ. Коми кыв тудӧттэз сьӧрті тӧдмӧтаныс кывтэчасын пыр суалалӧ одзын: «''Кытшӧм'' республика?» – «''Коми'' республика». Роч кылын жӧ сэтшӧм туйдӧт абу, сійӧн и ''Республика'' кылыс нылӧн сулалӧ ''Коми'' шуан бӧрын. Ассис нимсӧ республикаыс босьтӧма татӧн важынсянь олісь [[коми отир]] ним сьӧрті, кӧда понда сія и вӧлі лӧсьӧтӧм. == Статус == ''Унажык сы йылісь видзӧт: [[Коми республикалӧн статус]]'' Ӧння статус Коми республикаыслӧ гижӧмась [[Рочму|Роч Федерация]] да Коми Республика асланыс Конституцияэзын. Ны сьӧрті Коми республика лоӧ Роч Федерациялӧ субъектӧн. == Янсалöм == ''Унажык сы йылісь видзӧт: [[Коми республикалӧн янсалӧм]]'' Коми республикаӧ пырӧны 15 район да 5 кар кытш. Районнэз сэтшӧмӧсь: {| border=1 !Районлӧн ним !Ыджда (км<sup>2</sup>) !Отир лыд (сюрс морт) !Кыным олан ин !Шӧрин |- |[[Вуктыл район|Вуктыл]] |22 480 |16,2 |11 |[[Вуктыл (кар)|Вуктыл]] |- |[[Емва район|Емва]] |25 080 |25,6 |48 |[[Емва (кар)|Емва]] |- |[[Емдін район|Емдін]] |4 775 |31,2 |53 |[[Айкатыла (посад)|Айкатыла]] |- |[[Изьва район|Изьва]] |18 420 |19,7 |34 |[[Изьва (посад)|Изьва]] |- |[[Кӧрткерӧс район|Кӧрткерӧс]] |19 760 |22,5 |53 |[[Кӧрткерӧс (посад)|Кӧрткерӧс]] |- |[[Койгорт район|Койгорт]] |10 416 |9,1 |21 |[[Койгорт (посад)|Койгорт]] |- |[[Кулӧмдін район|Кулӧмдін]] |26 200 |30,2 |63 |[[Кулӧмдін (посад)|Кулӧмдін]] |- |[[Луздор район|Луздор]] |13 168 |22,4 |91 |[[Абьячой (посад)|Абьячой]] |- |[[Мылдін район|Мылдін]] |40 700 |15,6 |34 |[[Мылдін (оланін)|Мылдін]] |- |[[Печора район|Печора]] |28 900 |62,0 |32 |[[Печора (кар)|Печора]] |- |[[Сӧснагорт район|Сӧснагорт]] |16 500 |49,2 |21 |[[Сӧснагорт (кар)|Сӧснагорт]] |- |[[Сыктыв район|Сыктыв]] |6 250 |15,8 |79 |[[Визин (Сыктыв район)|Визин]] |- |[[Сыктывдін район|Сыктывдін]] |7 405 |24,6 |49 |[[Выльгорт]] |- |[[Удора район|Удора]] |35 800 |23,1 |55 |[[Кослан (посад)|Кослан]] |- |[[Чилимдін район|Чилимдін]] |42 500 |13,9 |37 |[[Чилимдін (посад)|Чилимдін]] |} Кар кытшшез (муниципал юкӧттэз) мыччалӧмӧсь татӧн: {| border=1 !Кытшлӧн ним !Ыджда (км<sup>2</sup>) !Отир лыд (морт) !Вужпас |- |[[Вӧркута каркытш|Вӧркута]] |24 400 |116 938 |[[Файл:Coat_of_Arms_of_Vorkuta_(Komia)_(1971).png|50 px]] |- |[[Инта каркытш|Инта]] |30 100 |40 032 |[[Файл:Coat_of_Arms_of_Inta_(Komi)_(1982).svg|50 px]] |- |[[Сыктывкар каркытш|Сыктывкар]] |152 |230 980 |[[Файл:Coat_of_Arms_of_Syktyvkar_(Komi)_(2005).png|50 px]] |- |[[Ускар каркытш|Ускар]] |30 600 |51 406 |[[Файл:Coat_of_Arms_of_Usinsk_(Komia).png|50 px]] |- |[[Уква каркытш|Уква]] |10 300 |127 100 |[[Файл:Coat_of_Arms_of_Ukhta_(Komia)_(1979).png|50 px]] |} Му-видз уджалан 11 район лыддисьӧны коми муэзӧн, Чилимдін районын важынсянь олӧны сваль роччез. 3 кар районын (Сӧснагорт, Вуктыл, Печора) да каркытшшезын унажыксӧ олӧны роч отир да мӧдік вовліссез. Быд районын да каркытшын эм отирсянь бӧрйӧм юралісьыс да советыс. Нія лӧсьӧтӧны районлыслӧ бюджет да видзӧтӧны асланас мувывторын кӧзяйство да культура зорӧтӧм сьӧрын. Районнэз асьныс янсасьӧны поснитжык муниципал юкӧттэз вылӧ, быдсӧн эмӧсь 16 карму да 175 [[Коми Республикаись посадмуэз|посадму]]. == География == ''Унажык сы йылісь видзӧт: [[Коми республикалӧн география]]'' Коми республика куйлӧ Европа ой-асыввыв пельӧсын, Роч му ойвылын, [[Урал (керӧссэз)|Урал керӧссэз]] одзын, [[Печора (ю)|Печора]], [[Изьва (ю)|Изьва]], [[Эжва (ю)|Эжва]], [[Висер (ю)|Висер]], [[Сыктыв (ю)|Сыктыв]], [[Ву (ю)|Ву]] да [[Мозын (ю)|Мозын]] юэз пӧлӧн. Коми республика олӧ II час отын, неӧткодьыс Коми кытшыскӧт — -2 час. Муыс республикалӧн 415,9 сюрс км<sup>2</sup> пасьта, этія лоӧ Роч Федерацияись 2,44%. Коми отирлӧн ойвыв гортыс ыджытжык сэтшӧм канмуэзся кыдз [[Немечму|Германия]], [[Италья]] нето [[Суоми]]. А Коми кытш ыжда регионнэз вермасӧ тӧрны Коми республикӧ невна не 13-а. Ойвывсянь лунланьӧ республика нюжалӧ 785 км, рытвывсянь асывланьӧ — 695 км, медкузь визь позьӧ нюжӧтны лун-рытвывсянь ой-асыввылӧ, сідз петӧ 1275 км. Республикаыс куйлӧ вылын паськытаэзын. Сылӧн медылісь чутоккез: ойвылын — 68°25′ о. п., лунвылын — 59°12′ о. п., рытвылын — 45°25′ а. к. да асыввылын — 66°15′ а. к. Лунвылас Коми республикакӧт ордчӧн куйлӧ коми йӧзыслӧн мӧд горт — [[Перем ладорись Коми кытш|Коми кытш]] да [[Перем ладор]], кытчӧ миян кытшыс ӧні пырӧ, лун-асыввылын – [[Свердлов лапӧв]], асыввылын — [[Йӧгра кытш|Ханты-Манси (Йӧгралӧн) асвеськӧтлан кытш]] да [[Ямал яран кытш|Ямалісь яраннэзлӧн асвеськӧтлан кытш]]. Ойвылын республика межаасьӧ [[Яран кытш|Яраннэз кытшкӧт]], а рытвылын — [[Кардор лапӧв|Кардор лапӧвкӧт]], кытчӧ этія кытшыс пырӧ. Лун-рытвылас Коми республикакӧт ордчӧн куйлӧ [[Киров лапӧв]]. Лунвывся визирыс мунӧ [[Ойвыв мыссэз]] кузя, асыввывся — [[Урал (керӧссэз)|Урал керӧссэз]] кузя. == Отир == ''Унажык сы йылісь видзӧт: [[Коми республикалӧн демография]]'' * '''Оліссез''': 975 000 ([[2006]] во пом кежӧ) ** ''Карын'': 75,7 % ** ''Посадын'': 24,3 % * '''Инькаэз 1000 айморт вылӧ''': 1106 * '''Шӧрӧт арлыд''': 34,5 во ** ''Карын оліссез'': 33,7 во ** ''Посадын оліссез'': 36,8 во ** ''Айморттэз'': 32,3 во ** ''Инькаэз'': 36,8 во * '''Кыным асторья гортвидзӧм''': 381 626 (992 612 морт вылӧ) ** ''Карын'': 289 854 (749 329 морт вылӧ) ** ''Посадын'': 91 772 (243 283 морт вылӧ) * '''Лысин видзӧм сьӧрті статистика''' ([[2005]] во) ** ''Шогмӧм'': 10 975 (шогмӧм сьӧрті коэффициент 11,1) ** ''Кулӧм'': 15 074 (кулӧм сьӧрті коэффициент 15,2) * '''Оліссез чужанвуж сьӧрті:''' {| class="wikitable" |- ! ! [[1926]] вося гижӧтӧм ! [[1939]] вося гижӧтӧм ! [[1959]] вося гижӧтӧм ! [[1970]] вося гижӧтӧм ! [[1979]] вося гижӧтӧм ! [[1989]] вося гижӧтӧм ! [[2002]] вося гижӧтӧм |- | [[Коми отир|Комиэз]] | 191 245 (92,2 %) | 231 301 (72,5 %) | 245 074 (30,4 %) | 276 178 (28,6 %) | 280 798 (25,3 %) | 291 542 (23,3 %) | 256 464 (25,2 %) |- | [[Роччез]] | 13 731 (6,6 %) | 70 226 (22,0 %) | 389 995 (48,4 %) | 512 203 (53,1 %) | 629 523 (56,7 %) | 721 780 (57,7 %) | 607 021 (59,6 %) |- | [[Украинса]] | 34 (0,0 %) | 6010 (1,9 %) | 80 132 (9,9 %) | 82 955 (8,6 %) | 94 154 (8,5 %) | 104 170 (8,3 %) | 62 115 (6,1 %) |- | [[Беларуссэз]] | 11 (0,0 %) | 3323 (1,0 %) | 22 339 (2,8 %) | 24 706 (3,1 %) | 24 763 (2,2 %) | 26 730 (2,1 %) | 15 212 (1,5 %) |- | [[Тотара]] | 32 (0,0 %) | 709 (0,2 %) | 8459 (1,0 %) | 11 906 (1,5 %) | 17 836 (1,6 %) | 25 980 (2,1 %) | 15 680 (1,5 %) |- | [[Яраннэз]] | 15 (0,0 %) | 2617 (0,8 %) | 19 805 (2,5 %) | 14 647 (1,8 %) | 13 339 (1,2 %) | 12 866 (1,0 %) | 9246 (0,9 %) |- | Мӧдіккез | 2246 (1,1 %) | 4810 (1,5 %) | 40 395 (5,0 %) | 42 207 (4,4 %) | 49 948 (4,5 %) | 67 779 (5,4 %) | 52 936 (5,2 %) |} == Видзöт сідзжö == * [[Перем ладорись Коми кытш]] * [[Коми зыряна]] * [[Коми отир]] * [[Коми кыв]] * [[Удмурт Республика]] == Öшмöссэз == * Бондаренко, О. Е. Коми нэм. Чужан мулӧн да войтырлӧн история важ кадсянь ӧнія лунъясӧдз. Шӧр школалы велӧдчан отсӧг / О. Е. Бондаренко, Т. М. Хорунжая, Е. А. Цыпанов. ― Сыктывкар, 2000. * Жеребцов, И. Л. Где ты живешь: Населенные пункты Республики Коми. Историко-демографический справочник / И. Л. Жеребцов. ― Сыктывкар, 2000. * Коми войтыр: культура да история йылысь дженьыд серпаскывъяс. Сыктывкар, 2008. ISBN 978-963-9876-02-6. * История Коми. С древнейших времен до конца ХХ века : в 2 т. / под общ. ред. А. Ф. Сметанина. ― Сыктывкар, 2004. * Республика Коми ― 80 лет : очерки, посвященные 80-летию государственности Республики Коми в составе Российской Федерации. ― Сыктывкар, 2001. * Республика Коми : энциклопедия : в 3 т. ― Сыктывкар, 1997-2000. * Связь времен. [История Республики Коми в лицах] / составители И. Л. Жеребцов, М. И. Курочкин. ― Сыктывкар, 2000. {{Коми муэз}} {{Чудь-Йöгра муэз}} {{РФВшаблоны}} <!-- Категорияэз --> [[Категория:Википедия:Бур гижӧттэз]] <!-- Interwikis --> stzafi1d5vgvakol94gmbcwljjbzc5c Шаблон:Stub 10 2391 64601 58232 2026-11-09T08:28:22Z Rzdz 10142 64601 wikitext text/x-wiki {| style="background: none; padding: 2px 0" class="metadata" | style="padding-right: 4px" | [[Image:Wiki letter w.svg|48px]] |''<span style="white-space: nowrap;">Этія статьяыс токӧ пондӧтӧм.<br>Верман кӧ миянлӧ отсыштны, <br>кер сійӧ тыржыкӧн да буржыкӧн! </span>'' |}<noinclude> [[Категория:Википедия:Шаблоннэз|{{PAGENAME}}]] </noinclude> k5kwobha1adf84wgz4o6t7ris6ido6y Шаблон:Potd/2026-11-09 10 15185 64594 2026-11-08T22:54:05Z Frhdkazan 3778 Лӧсьӧтӧма "Panorama of Himalayas from Ranikhet, Uttarakhand, India.jpg"-а лист бок 64594 wikitext text/x-wiki Panorama of Himalayas from Ranikhet, Uttarakhand, India.jpg mrl61585nut8ao4oaprlf099ypqehi8 Шаблон:Motd/2026-11-09 10 15186 64595 2026-11-08T22:57:55Z Frhdkazan 3778 Лӧсьӧтӧма "Passerin indigo mâle dans un pommier - Montérégie 01.webm"-а лист бок 64595 wikitext text/x-wiki Passerin indigo mâle dans un pommier - Montérégie 01.webm 9ooy7i4krqe1wh9xxalf5x22262qe4k Шаблон:Wikidata/Population 10 15187 64597 2026-11-09T05:17:40Z Rzdz 10142 Лӧсьӧтӧма "{{#invoke:Statistical | GetStat }}"-а лист бок 64597 wikitext text/x-wiki {{#invoke:Statistical | GetStat }} 4pddwo4irtmfwyouuofupxxvijale73 Модуль:Statistical 828 15188 64598 2026-11-09T05:30:18Z Rzdz 10142 Лӧсьӧтӧма "local p = {} local Regions = mw.loadData("Модуль:Statistical/Regions") bit32 = require( 'bit32' ) local function LimitDouble(Val) local MaxNumber = 2147483648 return Val - (math.floor(Val / MaxNumber) * MaxNumber) end local function shl(Val, Shift) if Shift > 0 then return LimitDouble(Val * (2 ^ Shift)) else return Value end end local function shr(Val, Shift) if Shift > 0 then..."-а лист бок 64598 Scribunto text/plain local p = {} local Regions = mw.loadData("Модуль:Statistical/Regions") bit32 = require( 'bit32' ) local function LimitDouble(Val) local MaxNumber = 2147483648 return Val - (math.floor(Val / MaxNumber) * MaxNumber) end local function shl(Val, Shift) if Shift > 0 then return LimitDouble(Val * (2 ^ Shift)) else return Value end end local function shr(Val, Shift) if Shift > 0 then return math.floor(Val / (2 ^ Shift)) else return Val end end local function MakeHash(PlaceName) local dataLength = mw.ustring.len(PlaceName) if dataLength == 0 then return 0 end local hash = dataLength local remainingBytes = math.fmod(dataLength, 2) local numberOfLoops = math.floor(dataLength / 2) local currentIndex = 0 local tmp = 0 while (numberOfLoops > 0) do hash = LimitDouble(hash + mw.ustring.codepoint(PlaceName, currentIndex + 1)) tmp = bit32.bxor(shl(mw.ustring.codepoint(PlaceName, currentIndex + 2), 11), hash) hash = bit32.bxor(shl(hash, 16), tmp) hash = LimitDouble(hash + shr(hash, 11)) currentIndex = currentIndex + 2 numberOfLoops = numberOfLoops - 1 end if remainingBytes == 1 then hash = LimitDouble(hash + mw.ustring.codepoint(PlaceName, currentIndex + 1)) hash = bit32.bxor(hash, shl(hash, 10)) hash = LimitDouble(hash + shr(hash, 1)) end hash = bit32.bxor(hash, shl(hash, 3)) hash = LimitDouble(hash + shr(hash, 5)) hash = bit32.bxor(hash, shl(hash, 4)) hash = LimitDouble(hash + shr(hash, 17)) hash = bit32.bxor(hash, shl(hash, 25)) hash = LimitDouble(hash + shr(hash, 6)) return hash end local function First_less_Second(a, b) local LenA = mw.ustring.len(a) local LenB = mw.ustring.len(b) for i = 1, (LenA < LenB) and LenA or LenB do if mw.ustring.codepoint(a, i, i) ~= mw.ustring.codepoint(b, i, i) then return mw.ustring.codepoint(a, i, i) < mw.ustring.codepoint(b, i, i) end end return LenA < LenB end function GetHashData(PlaceHash) local NumPage = math.floor((PlaceHash - 1) / 33554432 + 2) if NumPage == 2 and (PlaceHash - 1) < 16777216 then NumPage = 1 end local templatename if NumPage < 10 then templatename = "Отир/STA-00"..NumPage else templatename = "Отир/STA-0"..NumPage end local frame=mw.getCurrentFrame() HashData= frame:expandTemplate{ title = templatename, args = { PlaceHash } } if (HashData=="") then HashData=nil elseif (tonumber(HashData)~=nil) then HashData=tonumber(HashData) end return HashData end function p.GenerateAndReturnHash(frame) local args = frame:getParent().args if args == nil then return "Пыртӧ АТП объект ним" end local PlaceName = args[1] if PlaceName == nil then return "Пыртӧ АТП объект ним" end PlaceName = mw.text.trim(PlaceName) local PlaceHash = MakeHash(PlaceName) local NumPage = math.floor((PlaceHash - 1) / 33554432 + 2) if NumPage == 2 and (PlaceHash - 1) < 16777216 then NumPage = 1 end local templatename if NumPage < 10 then templatename = "Отир/STA-00"..NumPage else templatename = "Отир/STA-0"..NumPage end return PlaceHash..' > '..'[[Шаблон:'..templatename..']]' end function p.GetStat(frame) local args = frame:getParent().args if args == nil then return "Пыртӧ АТП объект ним" end local PlaceName = args[1] local Format = mw.text.trim ( (args[2] or "Табліца")) if PlaceName == nil then return "Пыртӧ АТП объект ним" end PlaceName = mw.text.trim(PlaceName) local Region = args['Регион'] or '' local check = args['check'] or '' if check == '' or check == '0' or check == 'false' then check = false; else check = true; end local PlaceHash = MakeHash(PlaceName) local function FormatH() return PlaceHash end local PlaceData = nil local RegionData = nil local test = PlaceName:match("%((%P+)%)") if Region=='' and test~='' then local value = Regions[test] if(value) then RegionData = mw.loadData("Модуль:Statistical/"..value) PlaceData = RegionData[PlaceHash] end elseif Region ~= "" then Region = Regions[Region] or Region RegionData = mw.loadData("Модуль:Statistical/"..Region) PlaceData = RegionData[PlaceHash] end if PlaceData == nil then if check then return 0; elseif Format == 'Хэш' or Format == 'х' then return FormatH() else return "#Н/Д"..frame:callParserFunction{name = '#tag:ref', args = {PlaceName .." > Даннӧйес абу адззӧмӧсь".. ((args.nocat and ""))}} end end if check then return 1; end local LastRecord = 0 for k in pairs(PlaceData) do LastRecord = LastRecord + 1 end local NumRecord = LastRecord local function FormatY() return PlaceData[NumRecord][1] end local function FormatN() return PlaceData[NumRecord][2] end local function FormatS(SourceType) if ( PlaceData[NumRecord][3] == nil or PlaceData[NumRecord][3] == '' ) then return "" else local Source1 local Source2 if string.find(PlaceData[NumRecord][3],"%d+[A-Z]+")==1 then if RegionData['Ыстісяннэз'][PlaceData[NumRecord][3]] ~= nil then Source1 = RegionData['Ыстісяннэз'][PlaceData[NumRecord][3]][1] Source2 = PlaceData[NumRecord][3] else Source2 = "" end else Source1 = PlaceData[NumRecord][3] Source2 = "" end if string.find(Source1, "https?://")==1 then Source1 = '['..Source1..']' end if SourceType == "і" then return Source1 end if Source2 == "" then return frame:callParserFunction{name = '#tag:ref', args = {Source1}} else return frame:callParserFunction{name = '#tag:ref', args = {Source1, name = Source2}} end end end local function FormatF() local lang = mw.language.getContentLanguage() return lang:formatNum( PlaceData[NumRecord][2] ) end local function FormatT() if NumRecord > 1 then if PlaceData[NumRecord][2] > PlaceData[NumRecord - 1][2] then return "<span style='color: #0c0; font-weight:bold; font-size: larger;'>↗</span>" elseif PlaceData[NumRecord][2] < PlaceData[NumRecord - 1][2] then return "<span style='color: red; font-weight:bold; font-size: larger;'>↘</span>" else return "<span style='color:#0AF;'>→</span>" end else return "" end end if Format == 'Год' or Format == 'г' then return FormatY() elseif Format == 'Безформат' or Format == 'Дата' or Format == 'д' then return FormatN() elseif Format == 'Ссылка' or Format == 'с' then return FormatS("с") elseif Format == 'Примечания' or Format == 'к' then return FormatS("к") elseif Format == 'Формат' or Format == 'ф' then return FormatF() elseif Format == 'Формат год' or Format == 'фг' then return FormatF().." ("..FormatY()..")" elseif Format == 'Формат ссылка' or Format == 'фс' then return FormatF()..FormatS() elseif Format == 'Формат ссылка год' or Format == 'фсг' then return FormatF()..FormatS().." ("..FormatY()..")" elseif Format == 'Тренд' or Format == 'т' then return FormatT()..FormatF() elseif Format == 'Тӧдчанлун' or Format == 'Тренд йитӧт' or Format == 'тс' then return FormatT()..FormatF()..FormatS() elseif Format == 'Тренд йитӧт год' or Format == 'тсг' then return FormatT()..FormatF()..FormatS().." ("..FormatY()..")" elseif Format == 'Хэш' or Format == 'х' then return FormatH() elseif Format == 'Диаграмма' or Format == 'д' then local tempHeight = 320 local tempWidth = 800 local tempMod = math.fmod (LastRecord, 5) if LastRecord < 40 then tempHeight = 200 + 170 * (LastRecord - 1) / 40 tempWidth = 200 + 600 * (LastRecord - 1) / 40 end local tempGroup = "" local tempTooltip = "" local tempLegend = "" for k in pairs(PlaceData) do NumRecord = k tempGroup = tempGroup .. FormatN() .. ":" tempTooltip = tempTooltip .. FormatF() .. " (" .. FormatY() .. "):" if LastRecord < 5 or math.fmod (k, 5) == tempMod then tempLegend = tempLegend .. FormatY() end tempLegend = tempLegend .. ":" end tempGroup = string.sub (tempGroup, 1, string.len (tempGroup)-1) tempTooltip = string.sub (tempTooltip, 1, string.len (tempTooltip)-1) tempLegend = string.sub (tempLegend, 1, string.len (tempLegend)-1) local barChart = require('Модуль:Chart')['bar chart']; local Diagram = { ['height'] = tempHeight, ['width'] = tempWidth, ['group 1'] = tempGroup, ['tooltip 1'] = tempTooltip, ['colors'] = "#B0C4DE", ['x legends'] = tempLegend, ['group names'] = 'Отир лыд', ['default color'] = '#1E90FF' } local cframe = mw.getCurrentFrame(); return barChart(cframe:newChild{ title=cframe.title, args = Diagram}) elseif Format == 'График' or Format == 'график' then local csv = "year,population\\n" for k in pairs(PlaceData) do NumRecord = k csv = csv .. FormatY() .. "," .. FormatN() .. "\\n" end local json = [[{ "version": 2, "width": 400, "height": 200, "data": [ { "name": "table", "values": "]] .. csv .. [[", "format": { "parse": {"year": "integer", "population": "integer"}, "type": "csv" }, // Convert year integer (2016) into a date object (2016-01-01) "transform": [{ "type": "formula", "field": "date", "expr": "datetime(datum.year,0,1)" }] } ], "scales": [ // The dates are scaled to the "x" axis - the width of the graph { "name": "x", "type": "time", "range": "width", "domain": {"data": "table", "field": "date"} }, // The population are scaled to the "y" axis - the height of the graph { "name": "y", "type": "linear", "range": "height", "domain": {"data": "table", "field": "population"} } ], // Simple axis with horizontal grid lines "axes": [ {"type": "x", "scale": "x", "ticks": 5}, {"type": "y", "scale": "y", "ticks": 5, "grid": true, "orient": "right", "format": "d"} ], // The graph is drawn with two elements a thick line at the top, and a semi-transparent area below "marks": [ { "type": "area", "from": {"data": "table"}, "properties": { "enter": { "x": {"scale": "x", "field": "date"}, "y": {"scale": "y", "value": 0}, "y2": {"scale": "y", "field": "population"}, "fill": {"value": "#99B2CC"}, "fillOpacity": {"value": 0.35}, "interpolate": {"value": "linear"} } } }, { "type": "line", "from": {"data": "table"}, "properties": { "enter": { "x": {"scale": "x", "field": "date"}, "y": {"scale": "y", "field": "population"}, "stroke": {"value": "#99B2CC"}, "strokeWidth": {"value": 3}, "interpolate": {"value": "linear"} } } }, { "type": "symbol", "from": {"data": "table"}, "properties": { "enter": { "x": {"scale": "x", "field": "date"}, "y": {"scale": "y", "field": "population"}, "stroke": {"value": "#99B2CC"}, "fill": {"value": "#fff"}, "size": {"value": 10} } } } ] }]] local cframe = mw.getCurrentFrame() return cframe:callParserFunction( '#tag:graph', json ) else local HTML = mw.html.create('table') local MaxData if args['Столбцов'] then Column = tonumber(args['Столбцов']) else Column = 7 end if Column > LastRecord then Column = LastRecord end if args['Оформление'] ~= nil then HTML:attr('class', args['Оформление']) else HTML:attr('class', 'standard') end local TempRow local NumRow = 0 TempRow = HTML:tag('th'):attr('colspan', Column):wikitext(args['Заголовок'] or 'Отир лыд') for i = 1, math.ceil(LastRecord / Column) do TempRow = HTML:tag('tr'):addClass("bright") for j = 1, Column do NumRecord = (i - 1) * Column + j if PlaceData[NumRecord] == nil then TempRow:tag('th'):wikitext("") else TempRow:tag('th'):wikitext(FormatY()..FormatS("з")) end end TempRow = HTML:tag('tr'):attr('align', 'center') for j = 1, Column do NumRecord = (i - 1) * Column + j if PlaceData[NumRecord] == nil then TempRow:tag('td'):wikitext("") else TempRow:tag('td'):wikitext(FormatT()..FormatF()) end end end return tostring(HTML) end return 1, Format end return p 97m0pzou422bedi89tzbr9osba76z54 64600 64598 2026-11-09T08:19:34Z Rzdz 10142 64600 Scribunto text/plain local p = {} local templateIncrease = 'Увеличение' local templateDecrease = 'Уменьшение' local templateNoChange = 'Без изменения' local Regions = mw.loadData("Модуль:Statistical/Regions") bit32 = require( 'bit32' ) local function LimitDouble(Val) local MaxNumber = 2147483648 return Val - (math.floor(Val / MaxNumber) * MaxNumber) end local function shl(Val, Shift) if Shift > 0 then return LimitDouble(Val * (2 ^ Shift)) else return Value end end local function shr(Val, Shift) if Shift > 0 then return math.floor(Val / (2 ^ Shift)) else return Val end end -- Код основан на алгоритме SuperFastHash: -- http://www.azillionmonkeys.com/qed/hash.html local function MakeHash(PlaceName) local dataLength = mw.ustring.len(PlaceName) if dataLength == 0 then return 0 end local hash = dataLength local remainingBytes = math.fmod(dataLength, 2) local numberOfLoops = math.floor(dataLength / 2) local currentIndex = 0 local tmp = 0 while (numberOfLoops > 0) do hash = LimitDouble(hash + mw.ustring.codepoint(PlaceName, currentIndex + 1)) tmp = bit32.bxor(shl(mw.ustring.codepoint(PlaceName, currentIndex + 2), 11), hash) hash = bit32.bxor(shl(hash, 16), tmp) hash = LimitDouble(hash + shr(hash, 11)) currentIndex = currentIndex + 2 numberOfLoops = numberOfLoops - 1 end if remainingBytes == 1 then hash = LimitDouble(hash + mw.ustring.codepoint(PlaceName, currentIndex + 1)) hash = bit32.bxor(hash, shl(hash, 10)) hash = LimitDouble(hash + shr(hash, 1)) end hash = bit32.bxor(hash, shl(hash, 3)) hash = LimitDouble(hash + shr(hash, 5)) hash = bit32.bxor(hash, shl(hash, 4)) hash = LimitDouble(hash + shr(hash, 17)) hash = bit32.bxor(hash, shl(hash, 25)) hash = LimitDouble(hash + shr(hash, 6)) return hash end local function First_less_Second(a, b) local LenA = mw.ustring.len(a) local LenB = mw.ustring.len(b) for i = 1, (LenA < LenB) and LenA or LenB do if mw.ustring.codepoint(a, i, i) ~= mw.ustring.codepoint(b, i, i) then return mw.ustring.codepoint(a, i, i) < mw.ustring.codepoint(b, i, i) end end return LenA < LenB end function GetHashData(PlaceHash) local NumPage = math.floor((PlaceHash - 1) / 33554432 + 2) if NumPage == 2 and (PlaceHash - 1) < 16777216 then NumPage = 1 end local templatename if NumPage < 10 then templatename = "Население/STA-00"..NumPage else templatename = "Население/STA-0"..NumPage end local page = mw.title.new(templatename, 10) local RawData = page:getContent() HashData = RawData:match("|" .. PlaceHash .. "=([^\n<]+)") if (HashData=="") then HashData=nil elseif (tonumber(HashData)~=nil) then HashData=tonumber(HashData) end return HashData end function p.GenerateAndReturnHash(frame) local args = frame:getParent().args if args == nil then return "Введите название объекта АТД" end local PlaceName = args[1] if PlaceName == nil then return "Введите название объекта АТД" end PlaceName = mw.text.trim(PlaceName) local PlaceHash = MakeHash(PlaceName) local NumPage = math.floor((PlaceHash - 1) / 33554432 + 2) if NumPage == 2 and (PlaceHash - 1) < 16777216 then NumPage = 1 end local templatename if NumPage < 10 then templatename = "Население/STA-00"..NumPage else templatename = "Население/STA-0"..NumPage end return PlaceHash..' → '..'[[Шаблон:'..templatename..']]' end function p.GetStat(frame) local args if frame == mw.getCurrentFrame() then args = frame:getParent().args else args = frame end if args == nil then return "Введите название объекта АТД" end local PlaceName = args[1] if args[3] ~= nil and tonumber(args[3]) then args.year = args[3] end local Format = mw.text.trim ( (args[2] or "Таблица")) if PlaceName == nil then return "Введите название объекта АТД" end PlaceName = mw.text.trim(PlaceName) if Format == 'Хеш' or Format == 'х' then do return MakeHash(PlaceName) end end local Region = args['Регион'] or '' local check = args['check'] or '' if check == '' or check == '0' or check == 'false' then check = false; else check = true; end local PlaceData = nil local RegionData = nil local CheckRedirect = false local NeedhandleRedirect = false local function GetPlaceData() local PlaceHash = MakeHash(PlaceName) PlaceData = nil RegionData = nil local test = PlaceName:match("%((%P+)%)") if Region=='' and test~='' then -- Если в имени населенного пункта есть уточнение с именем региона, то можно не пользоваться индексной таблицей, то есть не вызывать GetHashData local value = Regions[test] if(value) then RegionData = mw.loadData("Модуль:Statistical/"..value) PlaceData = RegionData[PlaceHash] end elseif Region ~= "" then -- магия, позволяющая указывать не только индекс, но и значение напрямую Region = Regions[Region] or Region RegionData = mw.loadData("Модуль:Statistical/"..Region) PlaceData = RegionData[PlaceHash] end if PlaceData == nil then local RegionPage = GetHashData(PlaceHash) if RegionPage == 0 then return "#Н/Д"..frame:callParserFunction{name = '#tag:ref', args = {PlaceName .." > Совпадение хешей. Пожалуйста, укажите регион вручную, например <code><nowiki>{{ Население | " .. PlaceName .. " | " .. Format .." | Регион = Приморский край }}</nowiki></code>" .. ((args.nocat and "") or "[[Категория:Википедия:Статьи с неправильными параметрами шаблона Население]]")}} end if RegionPage ~= nil then if type(tonumber(RegionPage)) == "number" then -- очень плохая вещь, ибо GetHashData очень дорогая по памяти функция PlaceHash=tonumber(RegionPage) RegionPage = GetHashData(PlaceHash) end if type(RegionPage) == "table" then RegionPage = RegionPage[PlaceName] end if RegionPage ~= nil then RegionData = mw.loadData("Модуль:Statistical/"..RegionPage) if RegionData ~= nil then PlaceData = RegionData[PlaceHash] end end end end end GetPlaceData() -- Проверка на редирект, если данные не найдены if PlaceData == nil then local page = mw.title.makeTitle('', PlaceName) if page.redirectTarget then PlaceName = page.redirectTarget.text GetPlaceData() end end local IsWikidata -- Если данные перемещены из шаблона Население в Wikidata, то работаем с ними if PlaceData ~= nil then IsWikidata = PlaceData == "Wikidata" else if check then return 0; else --return "#Н/Д"..frame:callParserFunction{name = '#tag:ref', args = {PlaceName .." > Данные не обнаружены. Возможно, страница переименовывалась. Проверьте справочник".. ((args.nocat and "") or "[[Категория:Википедия:Статьи с неправильными параметрами шаблона Население]]")}} -- Вместо прекращения работы при неудаче поиска данных в шаблоне Население попытка поиска в Wikdata IsWikidata = true end end if check then return 1; end local LastRecord = 0 local Qcode if IsWikidata then Qcode = args.from or mw.wikibase.getEntityIdForTitle(PlaceName) or "" if Qcode == "" then local page = mw.title.makeTitle('', PlaceName) if page.redirectTarget then PlaceName = page.redirectTarget.text Qcode = args.from or mw.wikibase.getEntityIdForTitle(PlaceName) or "" end end if Qcode == "" then return "#Н/Д"..frame:callParserFunction{name = '#tag:ref', args = {PlaceName .." > Данные в Викиданных не обнаружены. Чтобы устранить ошибку, убедитесь, что на Викиданных заполнен параметр численности населения (P1082) для соответствующего населённого пункта, или проверьте, совпадает ли название населённого пункта в шаблоне с названием соответствующей статьи в Википедии.".. ((args.nocat and "") or "[[Категория:Википедия:Статьи с неправильными параметрами шаблона Население]]")}} end if next(mw.wikibase.getBestStatements(Qcode, 'P1082')) == nil then return "#Н/Д"..frame:callParserFunction{name = '#tag:ref', args = {PlaceName .." > Данные в Викиданных не обнаружены. Чтобы устранить ошибку, убедитесь, что на Викиданных заполнен параметр численности населения (P1082) для соответствующего населённого пункта, или проверьте, совпадает ли название населённого пункта в шаблоне с названием соответствующей статьи в Википедии.".. ((args.nocat and "") or "[[Категория:Википедия:Статьи с неправильными параметрами шаблона Население]]")}} end else for k in pairs(PlaceData) do LastRecord = LastRecord + 1 if args[3] ~= nil and PlaceData[LastRecord][1] == tonumber(args[3]) then break end end end local NumRecord = LastRecord local function FormatY() if IsWikidata then return frame:expandTemplate{ title = "Wikidata", args={from=Qcode,year=args.year,['property-module']="Statistical/Wikidata",['property-function']="FormatY",property="p1082[p585][rank:preferred, rank:normal]"} } else return PlaceData[NumRecord][1] end end local function FormatN() if IsWikidata then return frame:expandTemplate{ title = "Wikidata", args={from=Qcode,year=args.year,['property-module']="Statistical/Wikidata",['property-function']="FormatN",property="p1082[p585][rank:preferred, rank:normal]"} } else return PlaceData[NumRecord][2] end end local function FormatS(SourceType) if IsWikidata then return frame:expandTemplate{ title = "Wikidata", args={from=Qcode,year=args.year,['property-module']="Statistical/Wikidata",['property-function']="FormatS",property="p1082[p585][rank:preferred, rank:normal]"} } else if ( PlaceData[NumRecord][3] == nil or PlaceData[NumRecord][3] == '' ) then return "" else local Source1 local Source2 if string.find(PlaceData[NumRecord][3],"%d+[A-Z]+")==1 then if RegionData['Источники'][PlaceData[NumRecord][3]] ~= nil then Source1 = RegionData['Источники'][PlaceData[NumRecord][3]][1] Source2 = PlaceData[NumRecord][3] else Source1 = PlaceData[NumRecord][3] .. '[[Категория:Википедия:Статьи с неправильными источниками в модуле Statistical]]' Source2 = "" end else Source1 = PlaceData[NumRecord][3] Source2 = "" end if string.find(Source1, "https?://")==1 then Source1 = '['..Source1..']' end if SourceType == "и" then return Source1 end if Source2 == "" then return frame:callParserFunction{name = '#tag:ref', args = {Source1}} else return frame:callParserFunction{name = '#tag:ref', args = {Source1, name = Source2}} end end end end local function FormatF() if IsWikidata then return frame:expandTemplate{ title = "Wikidata", args={from=Qcode,year=args.year,['property-module']="Statistical/Wikidata",['property-function']="FormatF",property="p1082[p585][rank:preferred, rank:normal]"} } else local lang = mw.language.getContentLanguage() return lang:formatNum( PlaceData[NumRecord][2] ) end end local function FormatT() if IsWikidata then return frame:expandTemplate{ title = "Wikidata", args={from=Qcode,year=args.year,['property-module']="Statistical/Wikidata",['property-function']="FormatT",property="p1082[p585][rank:preferred, rank:normal]"} } else if NumRecord > 1 then if PlaceData[NumRecord][2] > PlaceData[NumRecord - 1][2] then return frame:expandTemplate{ title = templateIncrease } elseif PlaceData[NumRecord][2] < PlaceData[NumRecord - 1][2] then return frame:expandTemplate{ title = templateDecrease } else return frame:expandTemplate{ title = templateNoChange } end else return "" end end end local function FormatD() if IsWikidata then return frame:expandTemplate{ title = "Wikidata", args={from=Qcode,year=args.year,['property-module']="Statistical/Wikidata",['property-function']="FormatD",property="p1082[p585][rank:preferred, rank:normal]"} } else local tempHeight = 320 local tempWidth = 800 mw.logObject(LastRecord) local tickCount = 5 if LastRecord > 100 then tickCount = 10 end local tempMod = math.fmod (LastRecord, tickCount) if LastRecord < 40 then tempHeight = 200 + 170 * (LastRecord - 1) / 40 tempWidth = 200 + 600 * (LastRecord - 1) / 40 end local tempGroup = "" local tempTooltip = "" local tempLegend = "" for k in pairs(PlaceData) do NumRecord = k tempGroup = tempGroup .. FormatN() .. ":" tempTooltip = tempTooltip .. FormatF() .. " (" .. FormatY() .. "):" if LastRecord < tickCount or math.fmod (k, tickCount) == tempMod then tempLegend = tempLegend .. FormatY() end tempLegend = tempLegend .. ":" end tempGroup = string.sub (tempGroup, 1, string.len (tempGroup)-1) tempTooltip = string.sub (tempTooltip, 1, string.len (tempTooltip)-1) tempLegend = string.sub (tempLegend, 1, string.len (tempLegend)-1) local barChartFunc = require('Модуль:Chart')['bar chart']; local Diagram = { ['height'] = tempHeight, ['width'] = tempWidth, ['group 1'] = tempGroup, ['tooltip 1'] = tempTooltip, ['colors'] = "#B0C4DE", ['x legends'] = tempLegend, ['group names'] = 'Численность населения', ['default color'] = '#1E90FF' } local cframe = mw.getCurrentFrame(); local barChart = barChartFunc(cframe:newChild{ title=cframe.title, args = Diagram}) local ts = frame:extensionTag{ name = 'templatestyles', content = '', args = { src = 'Module:Statistical/styles.css' } } return ts .. mw.text.tag( 'div', { class = 'ts-statistical' }, barChart ) end end local function FormatG() local xValues = "|arg:x=" local yValues = "|arg:y1=" if IsWikidata then xValues, yValues = frame:expandTemplate{ title = "Wikidata", args={from=Qcode,year=args.year,['property-module']="Statistical/Wikidata",['property-function']="FormatG",property="p1082[p585][rank:preferred, rank:normal]"} }:match("^(.-);(.*)$") else for k in pairs(PlaceData) do NumRecord = k xValues = xValues .. FormatY() .. "," yValues = yValues .. FormatN() .. "," end end local chartParams = "|arg:y1Title=" .. PlaceName .. xValues:gsub(',$', '') .. yValues:gsub(',$', '') local graph = string.format("{{#chart:Wikidata population (with dynamic data).chart%s}}", chartParams) local _, count = string.gsub(xValues, ',', '') local cat = "" if count <= 3 then cat = "[[Категория:Википедия:Мало точек для графика]]" end return mw.getCurrentFrame():preprocess( graph .. cat ) end local function FormatTable() -- Формирование HTML-таблицы if IsWikidata then return frame:expandTemplate{ title = "Wikidata", args={from=Qcode, column = args['Столбцов'], decor = args['Оформление'], titul = args['Заголовок'], ['property-module']="Statistical/Wikidata",['property-function']="FormatTable",property="p1082[p585][rank:preferred, rank:normal]"} } else local HTML = mw.html.create('table') local MaxData if args['Столбцов'] then Column = tonumber(args['Столбцов']) else Column = 7 end if Column > LastRecord then Column = LastRecord end if args['Оформление'] ~= nil then HTML:attr('class', args['Оформление']) else HTML:attr('class', 'standard') end local TempRow local NumRow = 0 HTML:tag('caption') :wikitext(args['Заголовок'] or 'Численность населения') :css('background-color', 'var(--ruwiki-background-color-blue200, #cfe3ff)') :css('color', 'inherit') :css('border', '1px solid var(--border-color-base, #a2a9b1)') :css('border-bottom', '0') for i = 1, math.ceil(LastRecord / Column) do TempRow = HTML:tag('tr') for j = 1, Column do NumRecord = (i - 1) * Column + j if PlaceData[NumRecord] == nil then TempRow:tag('th'):attr('scope', 'col'):wikitext("") else TempRow:tag('th'):attr('scope', 'col'):wikitext(FormatY()..FormatS("с")) end end TempRow = HTML:tag('tr'):css('text-align', 'center') for j = 1, Column do NumRecord = (i - 1) * Column + j if PlaceData[NumRecord] == nil then TempRow:tag('td'):wikitext("") else TempRow:tag('td'):wikitext(FormatT()..FormatF()) end end end return tostring(HTML) end end -- грязный хак для графиков (если вставлять <templatestyles> напрямую, то это ломает версию без форматирования) -- стили стоит или перенести в Common.css, если графики будут активнее использоваться, или разобрать шаблон на несколько local styles = frame:extensionTag('templatestyles', '', { src = 'Шаблон:WikidataChart/styles.css' }) if Format == 'Год' or Format == 'г' then mw.logObject(Format) return FormatY() elseif Format == 'Безформат' or Format == 'Число' or Format == 'ч' then return FormatN() elseif Format == 'Ссылка' or Format == 'с' then return FormatS("с") elseif Format == 'Источник' or Format == 'и' then return FormatS("и") elseif Format == 'Формат' or Format == 'ф' then return FormatF() elseif Format == 'ФорматГод' or Format == 'фг' then return FormatF().." ("..FormatY()..")" elseif Format == 'ФорматСсылка' or Format == 'фс' then return FormatF()..FormatS() elseif Format == 'ФорматСсылкаГод' or Format == 'фсг' then return FormatF()..FormatS().." ("..FormatY()..")" elseif Format == 'Тренд' or Format == 'т' then return FormatT()..FormatF() elseif Format == 'Значение' or Format == 'ТрендСсылка' or Format == 'тс' then return FormatT()..FormatF()..FormatS() elseif Format == 'ТрендСсылкаГод' or Format == 'тсг' then return FormatT()..FormatF()..FormatS().." ("..FormatY()..")" elseif Format == 'Диаграмма' or Format == 'д' then mw.logObject(FormatD()) return FormatD() elseif Format == 'График' or Format == 'график' then return styles..FormatG() else return FormatTable() end return 1, Format end return p pq7bjs1nz738xtuevxm6l8za9od1yz2 Модуль:Statistical/Regions 828 15189 64599 2026-11-09T05:33:44Z Rzdz 10142 Лӧсьӧтӧма "return { -- Модуль:Statistical/Regions --["Агинский Бурятский автономный округ"] = "RUS-AGB", ["Адыгея"] = "RUS-ADY", ["Алтайский край"] = "RUS-ALT", ["Амурская область"] = "RUS-AMU", ["Архангельская область"] = "RUS-ARK", --["Архангельская область без Ненецкого автономного округа"] = "RUS-AR9", ["Астраха..."-а лист бок 64599 Scribunto text/plain return { -- Модуль:Statistical/Regions --["Агинский Бурятский автономный округ"] = "RUS-AGB", ["Адыгея"] = "RUS-ADY", ["Алтайский край"] = "RUS-ALT", ["Амурская область"] = "RUS-AMU", ["Архангельская область"] = "RUS-ARK", --["Архангельская область без Ненецкого автономного округа"] = "RUS-AR9", ["Астраханская область"] = "RUS-AST", ["Башкортостан"] = "RUS-BAS", ["Белгородская область"] = "RUS-BEL", ["Брянская область"] = "RUS-BRY", ["Бурятия"] = "RUS-BUR", ["Владимирская область"] = "RUS-VLA", ["Волгоградская область"] = "RUS-VGG", ["Вологодская область"] = "RUS-VLG", ["Воронежская область"] = "RUS-VOR", ["Дагестан"] = "RUS-DAG", --["Дальневосточный федеральный округ"] = "RUS-DFO", ["Еврейская автономная область"] = "RUS-JEW", ["Забайкальский край"] = "RUS-ZAB", ["Ивановская область"] = "RUS-IVA", ["Ингушетия"] = "RUS-ING", ["Иркутская область"] = "RUS-IRK", ["Кабардино-Балкария"] = "RUS-KAB", ["Кабардино-Балкарская Республика"] = "RUS-KAB", ["Калининградская область"] = "RUS-KAG", ["Калмыкия"] = "RUS-KAI", ["Калужская область"] = "RUS-KAL", ["Камчатский край"] = "RUS-KAM", ["Карачаево-Черкесия"] = "RUS-KAO", ["Карачаево-Черкесская Республика"] = "RUS-KAO", ["Карелия"] = "RUS-KAR", ["Кемеровская область"] = "RUS-KEM", ["Кировская область"] = "RUS-KIR", ["Коми"] = "RUS-KOM", ["Коми-Пермяцкий округ"] = "RUS-KOP", --["Корякский автономный округ"] = "RUS-KOR", ["Костромская область"] = "RUS-KOS", ["Краснодарский край"] = "RUS-KRA", ["Красноярский край"] = "RUS-KYA", ["Крым"] = "RUS-KRM", ["Курганская область"] = "RUS-KUG", ["Курская область"] = "RUS-KUR", ["Ленинградская область"] = "RUS-LEN", ["Липецкая область"] = "RUS-LIP", ["Магаданская область"] = "RUS-MAG", ["Марий Эл"] = "RUS-MAR", ["Мордовия"] = "RUS-MOR", ["Москва"] = "RUS-MOW", ["Московская область"] = "RUS-MOS", ["Мурманская область"] = "RUS-MUR", --["Ненецкий автономный округ"] = "RUS-NEN", ["Нижегородская область"] = "RUS-NIZ", ["Новгородская область"] = "RUS-NGR", ["Новосибирская область"] = "RUS-NVS", ["Омская область"] = "RUS-OMS", ["Оренбургская область"] = "RUS-ORE", ["Орловская область"] = "RUS-ORL", ["Пензенская область"] = "RUS-PNZ", ["Пермский край"] = "RUS-PER", --["Приволжский федеральный округ"] = "RUS-PFO", ["Приморский край"] = "RUS-PRI", ["Псковская область"] = "RUS-PSK", ["Республика Адыгея"] = "RUS-ADY", ["Республика Алтай"] = "RUS-ALI", ["Республика Башкортостан"] = "RUS-BAS", ["Республика Бурятия"] = "RUS-BUR", ["Республика Дагестан"] = "RUS-DAG", ["Республика Ингушетия"] = "RUS-ING", ["Республика Калмыкия"] = "RUS-KAI", ["Республика Карелия"] = "RUS-KAR", ["Республика Коми"] = "RUS-KOM", ["Республика Крым"] = "RUS-KRM", ["Республика Марий Эл"] = "RUS-MAR", ["Республика Мордовия"] = "RUS-MOR", ["Республика Саха (Якутия)"] = "RUS-SAH", ["Республика Северная Осетия - Алания"] = "RUS-NOR", ["Республика Татарстан"] = "RUS-TAT", ["Республика Тыва"] = "RUS-TUV", ["Республика Хакасия"] = "RUS-KHK", ["Российская Федерация"] = "RUS-AAA", ["Россия"] = "RUS-AAA", ["Ростовская область"] = "RUS-ROS", ["Рязанская область"] = "RUS-RYA", ["Самарская область"] = "RUS-SAM", ["Санкт-Петербург"] = "RUS-SPB", ["Саратовская область"] = "RUS-SAR", ["Сахалинская область"] = "RUS-SAK", ["Свердловская область"] = "RUS-SVE", ["Севастополь"] = "RUS-SEV", ["Северная Осетия"] = "RUS-NOR", --["Северо-Западный федеральный округ"] = "RUS-ZFO", --["Северо-Кавказский федеральный округ"] = "RUS-KFO", --["Сибирский федеральный округ"] = "RUS-SFO", ["Синонимы"] = "RUS-КодISO", ["Смоленская область"] = "RUS-SMO", ["Ставропольский край"] = "RUS-STA", --["Таймырский автономный округ"] = "RUS-TAY", ["Тамбовская область"] = "RUS-TAM", ["Татарстан"] = "RUS-TAT", ["Тверская область"] = "RUS-TVE", ["Томская область"] = "RUS-TOM", ["Тульская область"] = "RUS-TUL", ["Тыва"] = "RUS-TUV", ["Тюменская область"] = "RUS-TYU", --["Тюменская область без автономных округов"] = "RUS-TY9", ["Удмуртия"] = "RUS-UDM", ["Удмуртская Республика"] = "RUS-UDM", ["Ульяновская область"] = "RUS-ULY", --["Уральский федеральный округ"] = "RUS-UFO", --["Усть-Ордынский Бурятский автономный округ"] = "RUS-UOB", ["Хабаровский край"] = "RUS-KHA", ["Хакасия"] = "RUS-KHK", ["Ханты-Мансийский автономный округ - Югра"] = "RUS-KHM", --["Центральный федеральный округ"] = "RUS-CFO", ["Челябинская область"] = "RUS-CHE", ["Чеченская Республика"] = "RUS-CHA", ["Чечня"] = "RUS-CHA", ["Чувашия"] = "RUS-CHV", ["Чувашская Республика"] = "RUS-CHV", ["Чукотский автономный округ"] = "RUS-CHU", --["Эвенкийский автономный округ"] = "RUS-EVE", --["Южный федеральный округ"] = "RUS-YFO", ["Якутия"] = "RUS-SAH", --["Ямало-Ненецкий автономный округ"] = "RUS-YAN", ["Ярославская область"] = "RUS-YAR", ["город Москва"] = "RUS-MOW", ["город Санкт-Петербург"] = "RUS-SPB", ["Южная Осетия"] = "DISP-SOR", } 3jcbu71wna42ez0qft29txj3z3lkhqp