Модуль:AutoDescriptionLocality/Улучшение
Исправление ошибок и добавление недостающих элементов (стран, языков и т. п.) в автоматическое описание категории населённых пунктов — Модуль:AutoDescriptionLocality:
Ошибки
править- Ошибка «Категории без Викиданных» (в списке категорий внизу страницы), у категории отсутствует описание.
- Категория Викиновостей не привязана ни к какому объекту в Викиданных.
- Найдите в Википедии аналогичную статью.
- В левом меню перейдите по ссылке «Элемент Викиданных» на карточку объекта в Викиданных.
- В разделе Викиновости (Wikinews) карточки Викиданных добавьте категорию:
- Нажмите «Править» (edit).
- В левое поле введите код языка — «ru».
- В правое поле введите название категории полностью (с префиксом «Категория:»).
- Ошибка «В модуле FillLang отсутствует описание языка» (в списке категорий внизу страницы), язык в описании представлен не сокращённым названием, а его латинским кодом.
- В Модуль:Langs отсутствует описание языка.
- В функции Langs.processCode Модуль:Langs необходимо добавить строку языка по аналогии с существующим.
- Для проверки, в документации шаблона {{Langs}} — Шаблон:Langs/doc, в разделе «Использование» необходимо добавить строчку с новым языком по аналогии с существующим.
- Если ссылка на язык «красная».
- Создать категорию языка по образцу Категория:Английский язык. Информацию можно взять из Википедии.
- Создать категорию страниц с использование шаблона по образцу Категория:Содержат текст на английском языке.
- Ошибка «Страны без склонения» (в списке категорий внизу страницы), когда вместо страны выводится сообщение об ошибке.
- В таблице склонений модуля Declension нет названия такой страны.
- Необходимо зайти в Викисловарь и найти желаемое слово.
- В модуле Declension в таблице dictionary, согласно алфавиту, добавить новую запись по аналогии с существующими.
- С первого по шестую будут склонения слова в статьи из Викисловаря в единственном числе, а с седьмую по 12 — во множественном числе.
- Ошибка «Страна не в таблице» (в списке категорий внизу страницы), в описании не выводится название страны.
- В функции AutoDescriptionLocality.parseP17 в таблице countries нет такой страны.
- Зайти в карточку населённого пункта в Викиданных.
- По полю «country» (P17) указана страна населённого пункта, перейти по ссылке и скопировать id страницы. Например, для Украины Q212.
- В AutoDescriptionLocality.parseP17 добавить в таблицу countries через запятую новый элемент по типу: Q(номер id) = «(Название страны на русском языке)». Например, , Q805 = «Йемен».
- Если название страны принадлежит к особому случаю, то нужно добавить новую строку после последнего elseif, в условии нужно написать название страны, как в Викиданных, а в выражение надо записать желаемый результат. Например, elseif(vj == «Китайская Народная Республика») then entitiesArray.country = «Китай».
Добавление недостающих элементов
правитьИнформация для заполнения описания таблиц берётся из свойств карточки населённого пункта в Викиданных. Затем она обрабатывается по функциям AutoDescriptionLocality. В некоторых случаях, в зависимости от информации вывод будет разный (для страны, населённого пункта ...), поэтому необходимо сохранять возможные случаи.
- Как добавить новый тип населённого пункта
- Тип населённого пункта можно добавлять в двух случаях. В первом, когда выводится ошибка.
- Зайти в карточку населённого пункта в Викиданных.
- По полю «instance of» (P31) указан тип населённого пункта, перейти по ссылке и скопировать id страницы. Например, для города Q515.
- Добавить новую запись в таблицу essence по модулю CategoryAutoDescription по типу: Q(id) = "locality". Например, Q747074 = "locality". Желательно добавлять поясняющий комментарий о типе населённого пункта.
- В AutoDescriptionLocality.parseP17 добавить в таблицу towns через запятую новый элемент по типу: Q(номер id) = «(Название страны на русском языке)». Например, , Q805 = «Йемен».
- Если название страны принадлежит к особому случаю, то нужно добавить новую строку после последнего elseif, в условии нужно написать название страны, как в Викиданных, а в выражение надо записать желаемый результат. Например, elseif(vj == «Китайская Народная Республика») then entitiesArray.country = «Китай».
- Во-втором, когда ошибки нет, но такой случай не разбирается в функции.
- Зайти в карточку населённого пункта в Викиданных.
- По полю «instance of» (P31) указан тип населённого пункта, перейти по ссылке и скопировать id страницы. Например, для города Q515.
- В AutoDescriptionLocality.parseP17 добавить в таблицу towns через запятую новый элемент по типу: Q(номер id) = «(Название страны на русском языке)». Например, , Q805 = «Йемен».
- Если название страны принадлежит к особому случаю, то нужно добавить новую строку после последнего elseif, в условии нужно написать название страны, как в Викиданных, а в выражение надо записать желаемый результат. Например, elseif(vj == «Китайская Народная Республика») then entitiesArray.country = «Китай».
- Как добавить страну
- Если не выводится ошибка «Страна не в таблице», значит, страна не используется в категории. Имеет смысл добавлять страну, чтобы ошибки при уже использовании её не было. Привожу инструкцию для заполнения страны, если она не используется.
- Зайти в карточку населённого пункта в Викиданных.
- По полю «instance of» (P31) указан тип населённого пункта, перейти по ссылке и скопировать id страницы. Например, для города Q515.
- В AutoDescriptionLocality.parseP31 добавить в таблицу countries через запятую новый элемент по типу: Q(номер id) = «(Название типа населённого пункта на русском языке)». Например, , Q13539802 = «городская община».
- Затем, в зависимости от типа населённого пункта добавить желаемый через or или записать с новой строки через elseif если ни один из существующих вариантов не подходит. Например, elseif((vj == «городская община») or (vj == «Общины Болгарии») or (vj == «община Швейцарии») or (vj == «коммуна Франции») or (vj == «коммуна Алжира»))then entitiesArray.typeOf = «община».
- После чего надо добавить падежные формы страны, по алфавиту, в таблицу dictionary модуля Declension. Их можно взять с Викисловаря.
- Как добавить язык
- В некоторых случаях в карточке Викиданных указывается родное название населённого пункта, но чтобы оно показывалось необходимо добавить языковой код.
- Определить языковой код. Он отображется при описании. Например, he.
- Добавить в функцию Langs.processCode через elseif новую строчку, по алфавиту. В условии, (code == ""), записать языковой код. Затем в первых кавычках (после return) написать название языка в ед. числе им. падеже и мужском роде, во вторых сокращённое название языка (его можно найти в Википедии), в третьих язык в предложном падеже, ед. числе, мужского рода. Например, elseif (code == "he") then return "Иврит", "ивр.", "иврите", true
- После чего надо добавить падежные формы языка (для ед. числа брать мужской род), по алфавиту, в таблицу dictionary модуля Declension. Их можно взять с Викисловаря.