Википедия
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