Меню
Главная
Случайная статья
Настройки
|
Содержание
Описание
Мотивация
Шаблон {{cite book}} во многом не поддерживается и остаётся для совместимости. Зачастую он попадает в русскоязычный раздел в результате копирования с других разделов Википедии, где другие правила и другой шаблон
Шаблон
Реализация
Бот находит шаблон
Описание преобразований при переводе:Параметры шаблона[Править данные шаблона] Параметр | Описание | Тип | Статус |
---|
authorN | authorN | author, first, last, authorlink, coauthors совместно в «автор». N - здесь и далее - пусто или число, проверяется до 300.
| Строковый (без форматирования) | необязательный |
---|
lastN | lastN | author, first, last, authorlink, coauthors совместно в «автор».
| Строковый (без форматирования) | необязательный |
---|
authorlinkN | authorlinkN | author, first, last, authorlink, coauthors совместно в «автор». Аналогично для author-linkN.
| Строковый (без форматирования) | необязательный |
---|
firstN | firstN | author, first, last, authorlink, coauthors совместно в «автор».
| Строковый (без форматирования) | необязательный |
---|
author | author | author, first, last, authorlink, coauthors совместно в «автор».
| Строковый (без форматирования) | необязательный |
---|
auteurN | auteurN | author, first, last, authorlink, coauthors совместно в «автор».
| Строковый (без форматирования) | необязательный |
---|
author-maskN | author-maskN | Удаляется.
| Строковый (без форматирования) | необязательный |
---|
displayauthors | displayauthors | Если значение «etal», то в конце списка авторов ставится «et al.». Далее удаляется (отстутствие аналога). Аналогично с 'display-authors'.
| Строковый (без форматирования) | необязательный |
---|
last-author-amp | last-author-amp | Удаляется.
| Строковый (без форматирования) | необязательный |
---|
translator-lastN | translator-lastN | (?)
| Строковый (без форматирования) | необязательный |
---|
translator-firstN | translator-firstN | (?)
| Строковый (без форматирования) | необязательный |
---|
translator-linkN | translator-linkN | (?)
| Строковый (без форматирования) | необязательный |
---|
translator-maskN | translator-maskN | (?)
| Строковый (без форматирования) | необязательный |
---|
date | date | date, year, month, day, совместно в «год», «месяц», «день».
| Строковый (без форматирования) | необязательный |
---|
year | year | date, year, month, day, совместно в «год», «месяц», «день».
| Строковый (без форматирования) | необязательный |
---|
month | month | date, year, month, day, совместно в «год», «месяц», «день».
| Строковый (без форматирования) | необязательный |
---|
orig-year | orig-year | Удаляется. По возможности переименовывается в «год».
| Строковый (без форматирования) | необязательный |
---|
anne | anne | Удаляется. По возможности переименовывается в «год».
| Строковый (без форматирования) | необязательный |
---|
ano | ano | Удаляется. По возможности переименовывается в «год».
| Строковый (без форматирования) | необязательный |
---|
origdate | origdate | Удаляется. По возможности переименовывается в «год».
| Строковый (без форматирования) | необязательный |
---|
chapter | chapter | Переименование в «часть».
| Неизвестно | необязательный |
---|
part | part | Переименование в «часть».
| Неизвестно | необязательный |
---|
section | section | Переименование в «часть».
| Неизвестно | необязательный |
---|
chaptertitle | chaptertitle | Переименование в «часть».
| Неизвестно | необязательный |
---|
titre chapitre | titre chapitre | Переименование в «часть».
| Неизвестно | необязательный |
---|
script-chapter | script-chapter | Удаляется.
| Неизвестно | необязательный |
---|
trans-chapter | trans-chapter | Удаляется.
| Неизвестно | необязательный |
---|
chapter-url | chapter-url | Переименование в «ссылка часть».
| Неизвестно | необязательный |
---|
chapterurl | chapterurl | Переименование в «ссылка часть».
| Неизвестно | необязательный |
---|
chapter-format | chapter-format | Удаляется.
| Неизвестно | необязательный |
---|
editor-firstN | editor-firstN | Переименование в «ответственныйN» совместно с editor-lastN и «editor-linkN».
| Строковый (без форматирования) | необязательный |
---|
editor-lastN | editor-lastN | Переименование, см. «editor-firstN».
| Строковый (без форматирования) | необязательный |
---|
editor-linkN | editor-linkN | Переименование, см. «editor-firstN».
| Строковый (без форматирования) | необязательный |
---|
directeur-firstN | directeur-firstN | Переименование в «ответственныйN» совместно с editor-lastN и «editor-linkN».
| Строковый (без форматирования) | необязательный |
---|
directeur-lastN | directeur-lastN | Переименование, см. «editor-firstN».
| Строковый (без форматирования) | необязательный |
---|
directeur-linkN | directeur-linkN | Переименование, см. «editor-firstN».
| Строковый (без форматирования) | необязательный |
---|
editors | editors | Переименование в «ответственныйN» совместно с editor-lastN и «editor-linkN».
| Строковый (без форматирования) | необязательный |
---|
editorial | editorial | Переименование в «ответственныйN» совместно с editor-lastN и «editor-linkN».
| Строковый (без форматирования) | необязательный |
---|
veditors | veditors | Переименование в «ответственныйN» совместно с editor-lastN и «editor-linkN».
| Строковый (без форматирования) | необязательный |
---|
diteur | diteur | Переименование в «издательство».
| Строковый (без форматирования) | необязательный |
---|
translator | translator | Переименование в «ответственный2».
| Строковый (без форматирования) | необязательный |
---|
display-editors | display-editors | Удаляется.
| Неизвестно | необязательный |
---|
title | title | Переименование в «заглавие».
| Строковый (без форматирования) | необязательный |
---|
titre | titre | Переименование в «заглавие».
| Строковый (без форматирования) | необязательный |
---|
ttulo | ttulo | Переименование в «заглавие».
| Строковый (без форматирования) | необязательный |
---|
script-title | script-title | Переименование в «оригинал».
| Строковый (без форматирования) | необязательный |
---|
trans-title | trans-title | Удаляется.
| Неизвестно | необязательный |
---|
quotes | quotes | Удаляется.
| Строковый (без форматирования) | необязательный |
---|
curly | curly | Удаляется.
| Неизвестно | необязательный |
---|
lire en ligne | lire en ligne | Переименование в «ссылка».
| Строковый (без форматирования) | необязательный |
---|
url | url | Переименование в «ссылка».
| Строковый (без форматирования) | необязательный |
---|
link | link | Переименование в «ссылка».
| Строковый (без форматирования) | необязательный |
---|
format | format | Удаляется.
| Неизвестно | необязательный |
---|
type | type | Удаляется.
| Строковый (без форматирования) | необязательный |
---|
series | series | Переименование в «серия».
| Строковый (без форматирования) | необязательный |
---|
language | language | Переименование в «язык». Значение переводится в [[ISO 639]] формат (оставляется 2 или 3 символа; сначала 3, далее если последний '-', то он убирается). Т.е. «en-GB» «en».
| Строковый (без форматирования) | необязательный |
---|
lang | lang | Переименование в «язык»; аналогично ''language''.
| Строковый (без форматирования) | необязательный |
---|
volume | volume | Переименование в «том».
| Строковый (без форматирования) | необязательный |
---|
issue | issue | Переименование в «номер». (?)
| Строковый (без форматирования) | необязательный |
---|
edition | edition | Переименование в «издание».
| Строковый (без форматирования) | необязательный |
---|
location | location | Переименование в «место».
| Строковый (без форматирования) | необязательный |
---|
city | city | Переименование в «место».
| Строковый (без форматирования) | необязательный |
---|
ort | ort | Переименование в «место».
| Строковый (без форматирования) | необязательный |
---|
lieu | lieu | Переименование в «место».
| Строковый (без форматирования) | необязательный |
---|
publicationplace | publicationplace | Переименование в «место».
| Строковый (без форматирования) | необязательный |
---|
publisher | publisher | Переименование в «издательство».
| Строковый (без форматирования) | необязательный |
---|
verlag | verlag | Переименование в «издательство».
| Строковый (без форматирования) | необязательный |
---|
editora | editora | Переименование в «издательство».
| Строковый (без форматирования) | необязательный |
---|
published | published | Переименование в «издательство».
| Строковый (без форматирования) | необязательный |
---|
place | place | Переименование в «место».
| Строковый (без форматирования) | необязательный |
---|
publication-place | publication-place | Переименование в «место».
| Строковый (без форматирования) | необязательный |
---|
pages | pages | Переименование в «страницы».
| Строковый (без форматирования) | необязательный |
---|
page | page | Переименование в «страницы».
| Строковый (без форматирования) | необязательный |
---|
at | at | Переименование в «страницы».
| Строковый (без форматирования) | необязательный |
---|
allpages | allpages | Переименование в «страниц».
| Строковый (без форматирования) | необязательный |
---|
paginas | paginas | Переименование в «страницы».
| Строковый (без форматирования) | необязательный |
---|
pp | pp | Переименование в «страницы».
| Строковый (без форматирования) | необязательный |
---|
p | p | Переименование в «страницы».
| Строковый (без форматирования) | необязательный |
---|
passage | passage | Переименование в «страницы».
| Строковый (без форматирования) | необязательный |
---|
seiten | seiten | Переименование в «страницы».
| Строковый (без форматирования) | необязательный |
---|
nopp | nopp | Удаляется.
| Строковый (без форматирования) | необязательный |
---|
arxiv | arxiv | Без изменений.
| Строковый (без форматирования) | необязательный |
---|
asin | asin | Без изменений.
| Строковый (без форматирования) | необязательный |
---|
doi | doi | Без изменений.
| Строковый (без форматирования) | необязательный |
---|
doi-broken-date | doi-broken-date | Удаляется.
| Строковый (без форматирования) | необязательный |
---|
issn | issn | Без изменений.
| Строковый (без форматирования) | необязательный |
---|
pmid | pmid | Без изменений.
| Строковый (без форматирования) | необязательный |
---|
bibcode | bibcode | Без изменений.
| Строковый (без форматирования) | необязательный |
---|
id | id | Без изменений.
| Строковый (без форматирования) | необязательный |
---|
accessdate | accessdate | Удаляется.
| Строковый (без форматирования) | необязательный |
---|
access-date | access-date | Удаляется.
| Строковый (без форматирования) | необязательный |
---|
quote | quote | Переименование в «цитата».
| Строковый (без форматирования) | необязательный |
---|
rfrence | rfrence | Переименование в «цитата».
| Строковый (без форматирования) | необязательный |
---|
via | via | Удаляется.
| Строковый (без форматирования) | необязательный |
---|
archive-url | archive-url | Переименование в «ссылка». Это переименование более приоритетно, чем url. То есть, если есть «ссылка» или «url», то значение «archive-url»/«archiveurl» записывает поверх «ссылка» (прежние значения «ссылка»/«url» пропадают).
| Строковый (без форматирования) | необязательный |
---|
archive-date | archive-date | Переименование в «дата ссылки».
| Строковый (без форматирования) | необязательный |
---|
registration | registration | Удаляется.
| Строковый (без форматирования) | необязательный |
---|
subscription | subscription | Удаляется.
| Строковый (без форматирования) | необязательный |
---|
lay-summary | lay-summary | Удаляется.
| Строковый (без форматирования) | необязательный |
---|
lay-source | lay-source | Удаляется.
| Строковый (без форматирования) | необязательный |
---|
lay-date | lay-date | Удаляется.
| Строковый (без форматирования) | необязательный |
---|
name-list-format | name-list-format | Удаляется.
| Строковый (без форматирования) | необязательный |
---|
mode | mode | Удаляется.
| Строковый (без форматирования) | необязательный |
---|
postscript | postscript | Удаляется.
| Строковый (без форматирования) | необязательный |
---|
agency | agency | Удаляется.
| Строковый (без форматирования) | необязательный |
---|
url-status | url-status | Удаляется.
| Строковый (без форматирования) | необязательный |
---|
title-link | title-link | Удаляется.
| Строковый (без форматирования) | необязательный |
---|
version | version | Удаляется.
| Строковый (без форматирования) | необязательный |
---|
contribution | contribution | Удаляется.
| Строковый (без форматирования) | необязательный |
---|
author-separator | author-separator | Удаляется.
| Неизвестно | необязательный |
---|
authorformat | authorformat | Удаляется.
| Неизвестно | необязательный |
---|
authormask | authormask | Удаляется.
| Неизвестно | необязательный |
---|
consult le | consult le | Удаляется.
| Неизвестно | необязательный |
---|
isbn-status | isbn-status | Удаляется.
| Неизвестно | необязательный |
---|
isbn status | isbn status | Удаляется.
| Неизвестно | необязательный |
---|
isbn13 | isbn13 | Переименование в «isbn».
| Строковый (без форматирования) | необязательный |
---|
isbn10 | isbn10 | Переименование в «isbn».
| Строковый (без форматирования) | необязательный |
---|
isbn9 | isbn9 | Переименование в «isbn».
| Строковый (без форматирования) | необязательный |
---|
ref | ref | Без изменений.
| Строковый (без форматирования) | необязательный |
---|
isbn | isbn | Без изменений.
| Строковый (без форматирования) | необязательный |
---|
Для параметров «издательство», «заглавие», «цитата», «место», «оригинал», «издание», «автор», «ответственный» проверяется наличие красных ссылок. Если такая есть, то проверяется, есть ли англоязычная статья. Если есть, то линкуется либо на ru-статью по ВД, если такой нет, то через шаблон на англоязычную.
Если язык неизвестен, то проставляется поле язык=und (см.
Исходный код
См. также Участник:BsivkoBot/Перевод/Исходный_код
import copy
import mwparserfromhell
from bot_logging.log import log_warning_json
from template_translating.common import process_author, process_editor, try_to_detect_language, process_date
from text_processing.languages import lang_to_iso_639
from text_processing.wikilink import wikilink_to_text, make_wikilink
from wiki_requests.english_wiki_links import get_end_target_page, process_text_with_likely_english_links
from wiki_requests.get_wikidata import get_wikidata_item
from wiki_requests.site import en_site
from wiki_template_processing.endings_format import process_leading_and_ending_param_values, detect_format_endings
from wiki_template_processing.template_collector import one_of_templates_or_their_redirects_is_present_en, \
template_or_its_redirect_is_present
from wiki_template_processing.template_params import adjust_template_params, names_to_lower_case, delete_params, \
search_of_english_wikilinks, check_unknown_fields, log_unknown_names, remove_equal
CITE_BOOK_NAME = "Шаблон:cite book"
TASK_DESCRIPTION_CITE_BOOK_TRANSLATING = u"перевод cite book"
NUMBER_OF_AUTHORS = 300
def simple_mapping(template):
name_map = {
'language': 'язык',
'lang': 'язык',
'title': 'заглавие',
'titre': 'заглавие',
'название': 'заглавие',
'ttulo': 'заглавие',
'url': 'ссылка',
'lire en ligne': 'ссылка',
'link': 'ссылка',
'chapter': 'часть',
'chaptertitle': 'часть',
'titre chapitre': 'часть',
'part': 'часть',
'section': 'часть',
'chapter-url': 'ссылка часть',
'chapterurl': 'ссылка часть',
'issue': 'номер',
'volume': 'том',
'series': 'серия',
'edition': 'издание',
'type': 'вид',
'verlag': 'издательство',
'publisher': 'издательство',
'publiser': 'издательство',
'editora': 'издательство',
'published': 'издательство',
'pages': 'страницы',
'allpages': 'страниц',
'page': 'страницы',
'paginas': 'страницы',
'at': 'страницы',
'pp': 'страницы',
'pages totales': 'страницы',
'p': 'страницы',
'passage': 'страницы',
'seiten': 'страницы',
'location': 'место',
'local': 'место',
'city': 'место',
'ort': 'место',
'lieu': 'место',
'place': 'место',
'publication-place': 'место',
'publicationplace': 'место',
'archive-url': 'архив',
'archive-date': 'дата ссылки',
'archiveurl': 'архив',
'archivedate': 'дата ссылки',
'work': 'издание',
'periodical': 'издание',
'wydanie': 'издание',
'wolumin': 'том',
'quote': 'цитата',
'description': 'цитата',
'rfrence': 'цитата',
'authors': 'author',
'auteur': 'author',
'coauthor': 'coauthors',
'adres czasopisma': 'место',
'czasopismo': 'издание',
'datepublished': 'date',
'editor': 'ответственный',
'editors': 'ответственный',
'editorial': 'ответственный',
'veditors': 'ответственный',
'diteur': 'издательство',
'translator': 'ответственный2',
'script-title': 'оригинал',
'miejsce': 'место',
'jezyk': 'язык',
'idioma': 'язык',
'year': 'год',
'anne': 'год',
'ano': 'год',
'origdate': 'год',
'origmonth': 'месяц',
'isbn13': 'isbn',
'isbn10': 'isbn',
'isbn9': 'isbn'
}
years = ['origyear', 'orig-year', 'publication-date']
for year in years:
if template.has('год'):
break
if template.has(year):
template.add('год', template.get(year).value)
n = ""
i = 0
while i < 10:
name_map['author-link' + n] = 'authorlink' + n
name_map['author' + n + '-link'] = 'authorlink' + n
name_map['author link' + n] = 'authorlink' + n
name_map['author link' + n] = 'authorlink' + n
name_map['editor' + n] = 'editor-last' + n
name_map['editor' + n + '-last'] = 'editor-last' + n
name_map['editor' + n + '-first'] = 'editor-first' + n
name_map['directeur' + n] = 'editor-last' + n
name_map['directeur' + n + '-last'] = 'editor-last' + n
name_map['directeur' + n + '-first'] = 'editor-first' + n
name_map['editor-link' + n] = 'editorlink' + n
name_map['editor' + n + '-link'] = 'editorlink' + n
name_map['editor link' + n] = 'editorlink' + n
i += 1
n = str(i)
for key, val in name_map.items():
if template.has(key):
template.get(key).name = val
if template.has("архив"):
if template.has("ссылка"):
template.get("ссылка").value = template.get("архив").value
else:
template.add("ссылка", template.get("архив").value)
template.remove("архив")
return
def detect_publisher(language, title, text):
infoboxes = ["infobox publisher"]
box_is_present = one_of_templates_or_their_redirects_is_present_en(text, infoboxes)
if box_is_present:
return True
item = get_wikidata_item(language, title)
try:
p31 = item.claims.get('P31')
if p31 is not None:
for i in p31:
try:
if str(i.target._link) == "[[Q1320047]]":
return True
except AttributeError:
continue
try:
if str(i.target._link) == "[[Q2085381]]":
return True
except AttributeError:
continue
except AttributeError:
return False
return False
def publisher_wikilink_processing(template):
if template.has('издательство'):
publisher_name = str(template.get("издательство").value).strip()
publisher_name = wikilink_to_text(publisher_name)
publisher_page = get_end_target_page(en_site(), publisher_name)
if publisher_page is None or publisher_page.text is None or publisher_page.text == "":
return
if not detect_publisher("en", publisher_page._link._text, publisher_page.text):
return
publisher_en_text_link = make_wikilink(str(publisher_page._link._text), publisher_name)
text = process_text_with_likely_english_links(publisher_en_text_link)
template.get('издательство').value = text
return template
def form_to_delete():
result = ['display-authors', 'displayauthors', 'last-author-amp', 'script-chapter', 'trans-chapter',
'chapter-format', 'origyear', 'orig-year', 'publication-date', 'author-separator',
'display-editors', 'displayeditors', 'trans-title', 'curly', 'df', 'format', 'deadurl', 'dead-url',
'unused_data', 'agency', 'url-status', 'title-link', 'lastauthoramp', 'authorformat',
'others', 'nopp', 'accessdate', 'access-date', 'doi-broken-date', 'registration', 'subscription', 'data',
'department', 'version', 'website', 'consult le', 'authormask',
'laydate', 'laysource', 'laysummary', 'lay-date', 'lay-source', 'lay-summary', 'separator', 'number',
'trans-title', 'contribution', 'isbn status', 'isbn-status',
'trans_title', 'name', 'bibcode-access', 'doi-access', 'hdl-access', 'jstor-access', 'ol-access',
'osti-access', 'via', 'registration', 'subscription', 'url-access', 'quotes',
'name-list-format', 'mode', 'postscript']
n = ""
i = 0
while i < NUMBER_OF_AUTHORS:
result.append('author-mask' + n)
result.append('translator-last' + n)
result.append('translator-first' + n)
result.append('translator-link' + n)
result.append('translator-mask' + n)
result.append('editor-mask' + n)
i += 1
n = str(i)
return result
def process_date_cite_book(template):
process_date(template)
if template.has("число"):
template.get("число").name = "день"
return
def process_one_template(template, names, title, unknown_names):
matches = False
for name in names:
if template.name.matches(name):
matches = True
break
if not matches:
return template
adjust_template_params(template)
names_to_lower_case(template)
remove_equal(template)
force_etal_authors = False
force_etal_editors = False
if template.has('display-authors'):
if template.get("display-authors").value.strip() == 'etal':
force_etal_authors = True
if template.has('displayauthors'):
if template.get("displayauthors").value.strip() == 'etal':
force_etal_authors = True
if template.has('displayeditors'):
if template.get("displayeditors").value.strip() == 'etal':
force_etal_editors = True
if template.has('display-editors'):
if template.get("display-editors").value.strip() == 'etal':
force_etal_editors = True
if template.has('last') and not template.has('ref'):
template.add('ref', template.get('last').value)
if template.has('last') and template.has('ref') and str(template.get('ref').value).strip() == 'harv':
template.get('ref').value = str(template.get('last').value)
delete_params(template, form_to_delete())
simple_mapping(template)
if not template.has('язык') and template.has('заглавие'):
template_title = template.get('заглавие').value.strip()
# 3 attempts because of euristic alg
lang_name = try_to_detect_language(template_title, length=40, title=title)
if lang_name == "":
lang_name = try_to_detect_language(template_title, length=40, title=title)
if lang_name == "":
lang_name = try_to_detect_language(template_title, length=40, title=title)
if lang_name != "":
template.add('язык', lang_name)
if template.has('язык'):
template.get("язык").value = lang_to_iso_639(template.get("язык").value)
if not template.has('язык'):
template.add('язык', "und")
process_author(template, force_etal_authors, title)
process_editor(template, force_etal_editors, title)
process_date_cite_book(template)
publisher_wikilink_processing(template)
search_of_english_wikilinks(template,
["издательство", "заглавие", "цитата", "место", "оригинал", "издание", "автор",
"ответственный"])
check_unknown_fields(template, unknown_names,
form_known_fields())
process_leading_and_ending_param_values(template)
template.name = "книга" + detect_format_endings(template)
return template
def form_known_fields():
result = ["язык", "автор", "doi", "издательство", "заглавие", "issn", "id", "цитата", "вид", "ответственный",
"том", "год", "isbn", "страницы", "число", "arxiv", "asin", "ref", "место", "номер", 'deadlink',
"ссылка", "bibcode", "месяц", "оригинал", "издание", "pmid", "archiveurl", "archivedate", 'hdl',
'citeseerx', 'jfm', 'eissn', 'jstor', 'lccn', 'mr', 'oclc', 'ol', 'osti', 'pmc', 'rfc', 'ssrn',
'pmcid', "часть", "ссылка часть", "архив", "дата архива", "основной автор", "день", "выпуск", "страниц",
"серия", "дата ссылки", 'тираж', 'ответственный2']
n = ""
i = 0
while i < NUMBER_OF_AUTHORS:
result.append('автор' + n)
result.append('автор' + n + " ссылка")
result.append('автор' + n + " имя")
i += 1
n = str(i)
return result
# process all article
def translate_cite_book_for_article(text, names, title="unknown"):
if template_or_its_redirect_is_present(text, "sfnp"):
return text
const_names = ["cite_book", "Cite book", "cite book", "cite book", "Cite book", "cite book "]
for i in const_names:
if not (i in names):
names.append(i)
for index, item in enumerate(names):
if names[index][:7] == "Шаблон:": names[index] = names[index][7:]
unknown_names = {}
data = {
'заглавие': [],
'издание': [],
'автор': [],
}
parsed = mwparserfromhell.parse(text)
for template in parsed.ifilter_templates():
if template.has("quote"):
continue
process_one_template(template, names, title, unknown_names)
to_data = ["заглавие", "издание", "автор"]
for i in to_data:
if template.has(i):
data[i].append(str(template.get(i).value))
output = str(parsed)
log_unknown_names(unknown_names, title, "cite book", data = data)
return output
Тестированиеfrom external_sources.add import get_all_redirects_to_page
from template_translating.cite_book.translate_cite_book_for_article import CITE_BOOK_NAME, \
translate_cite_book_for_article
def test_translate_cite_book_for_article():
names = get_all_redirects_to_page(CITE_BOOK_NAME)
names.append(CITE_BOOK_NAME)
text = translate_cite_book_for_article(
'{{cite book| title = Simple Name | year = 2006 | lang = de}}', names)
assert "{{книга" in text
assert "cite book" not in text
assert "заглавие=" in text
assert "год=" in text
assert "Simple Name" in text
text = translate_cite_book_for_article(
'{{cite book| title = ABC | date = 10 november 2006 | lang = en | author = QWE}}', names)
assert "{{книга" in text
assert "cite book" not in text
assert "день=10" in text
assert "год=2006" in text
assert "месяц=11" in text
assert "ABC" in text
assert "автор=" in text
text = translate_cite_book_for_article(
'{{cite book| title =Oil Spill Case Histories 1967–1991, Report No. HMRAD 92-11| publisher =[[National Oceanic and Atmospheric Administration]]| month =September | year =1992| location =[[Seattle]] | page =80| url =http://response.restoration.noaa.gov/book_shelf/26_spilldb.pdf| format =PDF| accessdate= 2008-03-10|archive-url=ZXC|archive-date=2010 }}', names)
assert "{{книга" in text
assert "дата ссылки=2010" in text
assert "ссылка=ZXC" in text
text = translate_cite_book_for_article(
'{{cite book|last=Harris,|first=Colin S.|title=Engineering Geology of the Channel Tunnel|url=https://books.google.com/books?id=Ui_qSldWobYC&pg=PA71|accessdate=15 December 2015|date=1996-01-01|publisher=Thomas Telford|isbn=9780727720450|page=71}}', names)
assert "автор имя" not in text
text = translate_cite_book_for_article(
'{{cite book| title =Oil|archive-url=ZXC|archive-date=2010|url=ABC }}', names)
assert "ссылка=ZXC" in text
assert "архив" not in text
text = translate_cite_book_for_article(
'{{cite book| title = ABC | date = 10 november 2006 | lang = tr | author = QWE}}', names)
assert "книга" not in text
text = translate_cite_book_for_article(
'{{cite book| title = ABC | date = 10 november 2006 | lang = tr | author = QWE}} {{cite book| title = ABC | lang = ru }}', names)
assert text.count("книга") == 1
text = translate_cite_book_for_article(
'{{cite book |author1= Kenneth M. Setton|author2=Marshall W. Baldwin|title=A History of the Crusades: The First Hundred Years|url=https://books.google.com/books?id=RfO1J6hjcdgC&pg=PA104|accessdate=26 February 2019|year=1969|publisher=Univ of Wisconsin Press|isbn=978-0-299-04834-1|page=104}}', names)
assert text.count("Нп3") == 1
text = translate_cite_book_for_article(
'{{cite book | last = Cohen | first = Scott | authorlink = | origyear = 1900 | year = 1984 | title = Zap! The Rise and Fall of Atari | publisher = McGraw Hill Book Company | isbn = 0-07-011543-5 }}', names)
assert text.count("год") == 1
Состояние и развитие- Тестируется. Пробный запуск на Final Fantasy X 15:32, 26 ноября 2018 (UTC)
- Развитие заморожено — шаблоны
- Переход на конвертацию в шаблон
- Первые запуски на пробных примерах. Bsivko (обс.) 10:33, 4 июня 2019 (UTC)
- Заменено представление неизвестного языка.
mis означает Uncoded languages, und - Undetermined; использование und вместо mis более верно. Bsivko (обс.) 15:56, 8 июня 2019 (UTC)
- Добавлено сведение ссылок к параметру ссылки (включая архив). Пример. Bsivko (обс.) 16:43, 8 июня 2019 (UTC)
- В связи с введением языковых параметров в шаблоне
- Отключена обработка шаблонов с
quote . В процессе переведено больше половины шаблонов на
- Исправлено поведение при указании авторов author/first вместо author/last (подробности). Bsivko (обс.) 15:15, 3 января 2020 (UTC)
Обсуждение
|
|