Модуль:AutoDescriptionLocality/Улучшение

Исправление ошибок и добавление недостающих элементов (стран, языков и т. п.) в автоматическое описание категории населённых пунктов — Модуль:AutoDescriptionLocality:

Ошибки править

Ошибка «Категории без Викиданных» (в списке категорий внизу страницы), у категории отсутствует описание.
Категория Викиновостей не привязана ни к какому объекту в Викиданных.
  1. Найдите в Википедии аналогичную статью.
  2. В левом меню перейдите по ссылке «Элемент Викиданных» на карточку объекта в Викиданных.
  3. В разделе Викиновости (Wikinews) карточки Викиданных добавьте категорию:
    1. Нажмите «Править» (edit).
    2. В левое поле введите код языка — «ru».
    3. В правое поле введите название категории полностью (с префиксом «Категория:»).
Ошибка «В модуле FillLang отсутствует описание языка» (в списке категорий внизу страницы), язык в описании представлен не сокращённым названием, а его латинским кодом.
В Модуль:Langs отсутствует описание языка.
  1. В функции Langs.processCode Модуль:Langs необходимо добавить строку языка по аналогии с существующим.
  2. Для проверки, в документации шаблона {{Langs}} — Шаблон:Langs/doc, в разделе «Использование» необходимо добавить строчку с новым языком по аналогии с существующим.
  3. Если ссылка на язык «красная».
    1. Создать категорию языка по образцу Категория:Английский язык. Информацию можно взять из Википедии.
    2. Создать категорию страниц с использование шаблона по образцу Категория:Содержат текст на английском языке.
Ошибка «Страны без склонения» (в списке категорий внизу страницы), когда вместо страны выводится сообщение об ошибке.
В таблице склонений модуля Declension нет названия такой страны.
  1. Необходимо зайти в Викисловарь и найти желаемое слово.
  2. В модуле Declension в таблице dictionary, согласно алфавиту, добавить новую запись по аналогии с существующими.
  3. С первого по шестую будут склонения слова в статьи из Викисловаря в единственном числе, а с седьмую по 12 — во множественном числе.
Ошибка «Страна не в таблице» (в списке категорий внизу страницы), в описании не выводится название страны.
В функции AutoDescriptionLocality.parseP17 в таблице countries нет такой страны.
  1. Зайти в карточку населённого пункта в Викиданных.
  2. По полю «country» (P17) указана страна населённого пункта, перейти по ссылке и скопировать id страницы. Например, для Украины Q212.
  3. В AutoDescriptionLocality.parseP17 добавить в таблицу countries через запятую новый элемент по типу: Q(номер id) = «(Название страны на русском языке)». Например, , Q805 = «Йемен».
  4. Если название страны принадлежит к особому случаю, то нужно добавить новую строку после последнего elseif, в условии нужно написать название страны, как в Викиданных, а в выражение надо записать желаемый результат. Например, elseif(vj == «Китайская Народная Республика») then entitiesArray.country = «Китай».

Добавление недостающих элементов править

Информация для заполнения описания таблиц берётся из свойств карточки населённого пункта в Викиданных. Затем она обрабатывается по функциям AutoDescriptionLocality. В некоторых случаях, в зависимости от информации вывод будет разный (для страны, населённого пункта ...), поэтому необходимо сохранять возможные случаи.

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