Обсуждение шаблона:Локатив

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Филадельфия[править код]

Прошу внести дополнение в шаблон для случая названий ж.р. на -ия => в ...ии. Спасибо. --Michael Romanov 04:34, 5 марта 2010 (UTC)[ответить]

Целые слова[править код]

Спасибо за шаблон. А можно задать целые слова, например, чтобы было «Ленинград → в Санкт-Петербурге»? Ещё хотелось бы, чтобы для Ярославля работало.--Berillium 11:20, 28 марта 2010 (UTC)[ответить]

Присоединяюсь к благодарностям: очень нужная штука.
«Ленинград → в Санкт-Петербурге», имхо, надо прямо вставлять в шаблоны {{МестоРождения}} и {{МестоСмерти}}.
А к просьбе о Ярославле присоединюсь: множество топонимов, заканчивающихся на -ль, — мужского рода (Севастополь, Неаполь, Тирасполь, Мариуполь, Мелитополь, Симферополь, [ещё на -поль], Вупперталь, Рославль, Ижеславль, Заславль, Монреаль). Нельзя ли добавить -ль => в -ле? Спасибо. -- Worobiew 15:25, 20 сентября 2010 (UTC)[ответить]
-поль и -вль точно надо склонять по мужскому роду, а слова на -ово/-ево — по среднему (по последнему пункту есть разногласия, но вроде всё же надо). За многие славянские -поли не уверен, но специально искал — не нашёл, где бы их считали за женский род. Ignatus 21:52, 18 июня 2012 (UTC)[ответить]

Пусто → е[править код]

{{Локатив|}} дает . То есть, когда шаблон пуст, тоже есть "е", и это не хорошо. Это ведет к таким категориям как Категория:Умершие в е, в которой я нашел 8 страниц. На пример Вайль, Соломон Самуилович. Или Категория:Родившиеся в е, в которой было 7 страниц. Debresser 01:11, 13 июля 2011 (UTC)[ответить]

Можно, конечно, решать проблему так: Исправить Шаблон:МестоСмерти и Шаблон:МестоРождения. В них надо вкруг {{Категория только в статьях|Родившиеся {{#if:{{{2|}}}|{{{2}}}|в {{#ifeq:{{{1}}}|Ленинград|Санкт-Петербурге|{{Локатив|{{{1}}}}}}} }} добавить {{#if:{{{1|}}}|...}}, и всё. Debresser 01:41, 13 июля 2011 (UTC)[ответить]

Тьфу, проще и более эффективно будет сделать то же самое тут, в этом шаблоне, вкруг {{#switch:...}}, то есть {{#if:{{{1|}}}|{{#switch:...}}}}. Код можно скопировать с Шаблон:Локатив/тест. Испытание я уже провел (с помощью Шаблон:МестоСмерти/тест в статье Бамбуров, Виталий Григорьевич), и всё отличо работает. Debresser 02:02, 13 июля 2011 (UTC)[ответить]

После допольнительного теста оказывается, что делать тут не помешает, и вроде нужно даже, но не решит проблему. Потому что если не сделать в Шаблон:МестоСмерти и Шаблон:МестоРождения также, всё равно будут такие категории как Категория:Умершие в и Категория:Родившиеся в. Так что надо делать и тут, и в тех шаблонах. Можно код скопировать с Шаблон:МестоСмерти/тест, и аналогично сделать в Шаблон:МестоРождения. Учтите что там дважды нужно применять код с #if:. Debresser 02:58, 13 июля 2011 (UTC)[ответить]

Итог[править код]

Сделал во всех трех шаблонах, спасибо.-- Vladimir Solovjev обс 08:22, 15 июля 2011 (UTC)[ответить]

Вот и хорошо, спасибо. Если ещё где-то могу помочь, пишите. Найдете на английском Википедии. Debresser 15:15, 15 июля 2011 (UTC)[ответить]

Списки исключений[править код]

К теме про Ярославль. Написал Шаблон:Локатив/искл, который подбирает слова-исключения из списков по первым буквам (для примера сделал Шаблон:Локатив/исклС). Эти списки можно защитить, а в конец switch добавить общий пополняемый пользователями список, который периодически будет перетаскиваться в списки по буквампри таких делах обновляться будут все страницы, сформированные по общему принципу. Аналогичный (возможно, без разделения по буквам но тогда обновляться при изменении списка будут статьи на все буквы) механизм можно интегрировать в {{Место ...}} для случаев Ленинград/Петербург. Предлагаю как-либо интегрировать этот механизм, чтобы при создании категории по наспунктам не проставлять исключения на каждой странице и разгрести разом все случаи данного НП. Ignatus 21:36, 18 июня 2012 (UTC)[ответить]

А вообще можно бы написать запрос на багзиллу о дополнении локативом (предложным падежом) функции grammar: (код сейчас). Ignatus 21:56, 18 июня 2012 (UTC)[ответить]

Переезд на Lua[править код]

Заменить код шаблона на {{{{{|safesubst:}}}#invoke:ru|locative|{{{1}}}}}. Ignatus 19:50, 13 марта 2013 (UTC)[ответить]

Замечание: поскольку шаблон критический, модуль, который в нём используется, должен быть защищён, соответственно, все функции там перед переездом надо "устаканить" либо перенести в отдельный модуль. Ignatus 19:53, 13 марта 2013 (UTC)[ответить]
✔ Сделано --DR 17:36, 25 июня 2013 (UTC)[ответить]

Субстантивированные прилагательные[править код]

Здравствуйте!

А нельзя ли вставить в шаблон варианты для субстантивированных прилагательных:

  • …ский/…ское → в …ском и
  • …ская → в …ской?

Спасибо. -- Worobiew (обс.) 09:29, 26 мая 2017 (UTC)[ответить]

Славянские топонимы -ово, -ево, -ино, -ыно[править код]

Просьба добавить в шаблон склонение населённых пунктов, оканчивающихся на -ово, -ево, -ино, -ыно. В первую очередь Переделкино → Переделкине, Одинцово → Одинцове, Монино → Монине, Голыцыно → Голицыне. ЯЁ32Ы (обс.) 07:02, 9 мая 2020 (UTC)[ответить]

Я боюсь, в шаблоне с этим ничего сделать не удастся. В принципе, можно поправить Модуль:Ru#locative, добавив туда что-то вроде
elseif mw.ustring.match(word,'ово$') then return mw.ustring.sub(word,1,-3)..'ове')
elseif mw.ustring.match(word,'ево$') then return mw.ustring.sub(word,1,-3)..'еве')
elseif mw.ustring.match(word,'ино$') then return mw.ustring.sub(word,1,-3)..'ине')
elseif mw.ustring.match(word,'ыно$') then return mw.ustring.sub(word,1,-3)..'ыне')
но тут следуют учитывать, что модуль не может определить, является ли слово названием славянским топонимом или нет (то есть к примеру, попытается просклонять несклоняемые ингушское Экажево или греческое Мецово). — DR (обс.) 13:45, 14 мая 2020 (UTC)[ответить]
DR, пока не очень понимаю принцип работы модуля, но он же умеет правильно склонять названия с одинаковыми окончаниями, например, Казань и Ливерпуль — в одном случае на конце -и, а в другом -е. Не получится аналогично сделать? ЯЁ32Ы (обс.) 06:13, 16 мая 2020 (UTC)[ответить]
@ЯЁ32Ы: к сожалению, не умеет. {{локатив|Казань}} -> Казани, {{локатив|Ливерпуль}} -> Ливерпули, {{локатив|Марсель}} -> Марсели.
Модуль проверяет несколько последних букв оригинального слова (в примере выше "ово", "ево", "ино", "ыно") и заменяет их на другие (в примере выше на "ове", "еве", "ине", "ыне"). Соответственно, мы можем сделать правило "если закачивается на мягкий знак, то заменять на букву и". Можем добавить к нему исключение ("... но если заканчивается на ...оль, то заменять на е", поэтому работает {{локатив|Ставрополь}} -> Ставрополе или "... но если заканчивается на ль после согласной, то заменять на е", {{локатив|Ярославль}} -> Ярославле). Но это исключение должно как-то формализоваться на базе алфавита. Мы не можем использовать критерии "если находится на территории бывшего СССР", "если содержит славянский корень" и т.д. — DR (обс.) 09:21, 16 мая 2020 (UTC)[ответить]
Кстати, не вижу ничего плохого в склонении Экажева — Категория:Родившиеся в Экажеве, [1], а Мецово на самом деле Мецовон. ЯЁ32Ы (обс.) 11:55, 16 мая 2020 (UTC)[ответить]
Ну, это скорее недостатки нашего раздела. Про склоняемость Экажево - см., к примеру, https://studiorum-ruscorpora.ru/stylistics/morphology_toponyms/ (Раздел "Результаты анализа проблемы на корпусном материале", секция "Топонимы на -ово (-ево), -ыно (-ино) без нарицательного существительного (Иваново)"). Мецовон - следствие того, что на кафаревусе он был Μέτσοβον, на новогреческом - Μέτσοβο, а Роскартография (которая тут признаётся официальным источником русских названий) пользуется переводами, сделанными ещё при царе Горохе.
В любом случае это были просто два первых примера, пришедших в голову. Уверен, в мире (да и в России) есть десятки топонимов с соотвествующими окончаниями, но не славянского происхождения. — DR (обс.) 15:54, 16 мая 2020 (UTC)[ответить]
Тогда вопрос стоит так: целесообразно ли по умолчанию склонять все топонимы на -ово, -ево, а при несклоняемости прописывать в шаблоне правильный вариант, или же целесообразнее не менять модуль и продолжать склонять -ово, -ево вручную. ЯЁ32Ы (обс.) 17:17, 16 мая 2020 (UTC)[ответить]
Да, при таком взгляде на вещи - соглашусь. Если не вносить в шаблон, то склонять вручную придётся всё, а если вносить - то только неславянские. — DR (обс.) 18:26, 16 мая 2020 (UTC)[ответить]
✔ Сделано. {{локатив|Переделкино}} -> Переделкине, {{локатив|Одинцово}} -> Одинцове, {{локатив|Монино}} -> Монине, {{локатив|Голыцыно}} -> Голыцыне. — DR (обс.) 18:37, 16 мая 2020 (UTC)[ответить]