Begiak/awik

From Apertium
Jump to navigation Jump to search

Apertium Wiki Begiak Command

Issues

Bad message chopping

(addressed in 95d837a to jonorthwash/phenny)

Problem: Commands such as .awik Руководство по созданию новой языковой пары result in outputs that don't contain the URL of the wiki article, i.e. the excerpt from the article is too long and the message terminates early. This problem is also observable with the phenny Wikipedia plugin. For example,

(3:14:31 PM) sushain: .awik Руководство по созданию новой языковой пары
(3:14:34 PM) begiak: "В этом руководстве описывается порядок создания новой языковой пары для системы машинного перевода Apertium.От вас не требуются какие-либо лингвистические знания или знания по машинному переводу, кроме как способности различать части речи (отлич

The correct behavior should be:

(3:14:31 PM) sushain: .awik Руководство по созданию новой языковой пары
(3:14:35 PM) sushain_begiak: "В этом руководстве описывается порядок создания новой языковой пары для системы машинного перевода Apertium.От вас не требуются какие-либо лингвистические знания или [...] - http://wiki.apertium.org/wiki/Руководство_по_созданию_новой_языковой_пары

Source: The excerpt to display is being chopped incorrectly due to not properly handling Unicode strings. IRC messages are limited in length not by their character length but rather their byte length. The incorrect code only truncates the article excerpt if the number of bytes after UTF-8 encoding is greater than the IRC message length minus the link's length. The problem occurs since the truncation uses the character length of the excerpt rather than the UTF-8 encoded byte length. Furthermore, a similar problem is observed in calculating the length of message remaining for the excerpt when accounting for the length of the URL.

Solution: Use the length of the UTF-8 encoded string for all calculations and truncate the UTF-8 bytes rather than the characters. If truncation produces an invalid Unicode character at the string's conclusion, ignore it (this will account for truncation occurring in the middle of a valid Unicode character). The changes made:

maxlength = 430 - len(' - ' + wikiuri % (format_term_display(term))) becomes maxlength = 430 - len((' - ' + wikiuri % (format_term_display(term))).encode('utf-8'))

sentence = sentence[:maxlength] becomes sentence = sentence.encode('utf-8')[:maxlength].decode('utf-8', 'ignore')

Tests:

    • sushain97: .awik Руководство по созданию новой языковой пары
    • begiak: "В этом руководстве описывается порядок создания новой языковой пары для системы машинного перевода Apertium.От вас не требуются какие-либо лингвистические знания или знания по машинному переводу, кроме как способности различать части речи (отлич
    • sushain_begiak: "В этом руководстве описывается порядок создания новой языковой пары для системы машинного перевода Apertium.От вас не требуются какие-либо лингвистические знания или [...] - http://wiki.apertium.org/wiki/Руководство_по_созданию_новой_языковой_пары
    • sushain: .awik User:Sushain/awikTest
    • begiak: "В этом руководстве рассказано, как создать новую языковую пару в Apertium с нуля.Для создания языковой пары не нужно каких-то особых навыков в области лингвистики или машинного перевода.Ваши знания должны быть на уровне примерно таком, чтобы уметь
    • sushain_begiak: "В этом руководстве рассказано, как создать новую языковую пару в Apertium с нуля.Для создания языковой пары не нужно каких-то особых навыков в области лингвистики или машинного перевода.Ваши знания [...] - http://wiki.apertium.org/wiki/User:Sushain/awikTest
    • sushain: .wik.ru Толстой, Лев Николаевич
    • begiak: "Лев Никола́евич Толсто́й[К 1] (28 августа (9 сентября) 1828(18280909), Ясная Поляна, Тульская губерния, Российская империя — 7 (20) ноября 1910, станция Астапово, Рязанская губерния, Российская империя) — один из наиболее широко известных русских писателей
    • sushain_begiak: "Лев Никола́евич Толсто́й[К 1] (28 августа (9 сентября) 1828(18280909), Ясная Поляна, Тульская губерния, Российская империя — 7 (20) ноября 1910, станция Астапово, Рязанская губерния, Российская [...] - https://ru.wikipedia.org/wiki/Толстой,_Лев_Николаевич
    • sushain: .awik User:Sushain/awikTest#объясним
    • begiak: "Здесь мы объясним, как изучать новый язык с lttoolbox lttoolbox на самом деле не подходит для агглютинативных языков, или языков со сложной и регулярной морфо-фонологией (или по крайней мере никто не написал словарь с нуля, используя lttoolbox для одного из э?
    • sushain_begiak: "Здесь мы объясним, как изучать новый язык с lttoolbox lttoolbox на самом деле не подходит для агглютинативных языков, или языков со сложной и регулярной морфо-фонологией (или по крайней мере никто не [...] - http://wiki.apertium.org/wiki/User:Sushain/awikTest#объясним
    • sushain: .wik.ru Бюро_шифров#Подарок союзникам
    • begiak: "Летом 1939 года, когда стало ясно, что Польше вряд ли удастся остановить грядущее немецкое вторжение, отделение BS-4 получило приказ — передать часть оборудования, результатов исследований и файлов союзникам и эвакуировать необходимый [...] - https://ru.
    • sushain_begiak: "Летом 1939 года, когда стало ясно, что Польше вряд ли удастся остановить грядущее немецкое вторжение, отделение BS-4 получило приказ — передать [...] - https://ru.wikipedia.org/wiki/Бюро_шифров#.D0.9F.D0.BE.D0.B4.D0.B0.D1.80.D0.BE.D0.BA_.D1.81.D0.BE.D1.8E.D0.B7.D0.BD.D0.B8.D0.BA.D0.B0.D0.BC

Wishlist

  • Search the entire Apertium wiki using the provided search functionality of MediaWiki.
  • Shorten huge URLs in begiak response.