рассылка русскоязычной группы пользователей и разработчиков KDE
 help / color / mirror / Atom feed
* [kde-russian] Слишком длинные всплывающие подсказки
@ 2010-07-30  6:41 Alexander Potashev
  2010-07-31 17:55 ` Alexander Potashev
  0 siblings, 1 reply; 2+ messages in thread
From: Alexander Potashev @ 2010-07-30  6:41 UTC (permalink / raw)
  To: KDE russian translation mailing list

Привет,

Наверное многие сталкивались с тем, что на небольших экранах (а иногда
даже и на большом разрешении) всплывающие подсказки (toolTip) не видны
полностью, потому что их текст слишком длинный, а переводчики не
подумали о вставке дополнительных переносов строк ("\n").

Чтобы находить длинные toolTip'ы, можно написать очень простой "sieve"
для Pology. Он должен будет отсеивать те строки, которые в переводе (а
может быть и в оригинале -- чтобы можно было сообщить об этом
разработчикам) имеют длинные строки (например, больше определенного
количества символов) между символами "\n".

Я мог бы и сам это написать, но хочется, чтобы другие люди тоже
принимали участие в улучшении качества переводов KDE.

Во вложении к письму
http://lists.kde.ru/pipermail/kde-russian/2010-July/015197.html
находится достаточно простой "sieve", который можно взять за основу.
Конечно, можно вместо него взять один из стандартных "sieve"-ов из Pology.

-- 
Alexander Potashev

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [kde-russian] Слишком длинные всплывающие подсказки
  2010-07-30  6:41 [kde-russian] Слишком длинные всплывающие подсказки Alexander Potashev
@ 2010-07-31 17:55 ` Alexander Potashev
  0 siblings, 0 replies; 2+ messages in thread
From: Alexander Potashev @ 2010-07-31 17:55 UTC (permalink / raw)
  To: KDE russian translation mailing list

[-- Attachment #1: Type: text/plain, Size: 2847 bytes --]

30 июля 2010 г. 10:41 пользователь Alexander Potashev
<aspotashev@gmail.com> написал:
> Привет,
>
> Наверное многие сталкивались с тем, что на небольших экранах (а иногда
> даже и на большом разрешении) всплывающие подсказки (toolTip) не видны
> полностью, потому что их текст слишком длинный, а переводчики не
> подумали о вставке дополнительных переносов строк ("\n").
>
> Чтобы находить длинные toolTip'ы, можно написать очень простой "sieve"
> для Pology. Он должен будет отсеивать те строки, которые в переводе (а
> может быть и в оригинале -- чтобы можно было сообщить об этом
> разработчикам) имеют длинные строки (например, больше определенного
> количества символов) между символами "\n".
>
> Я мог бы и сам это написать, но хочется, чтобы другие люди тоже
> принимали участие в улучшении качества переводов KDE.
>
> Во вложении к письму
> http://lists.kde.ru/pipermail/kde-russian/2010-July/015197.html
> находится достаточно простой "sieve", который можно взять за основу.
> Конечно, можно вместо него взять один из стандартных "sieve"-ов из Pology.

Набросал "sieve" (см. в прикрепленном файле). Всплывающие подсказки с
текстом в виде HTML не рассматриваются, т.к. ширина подсказки зависит
еще и от размера шрифта и от тегов <br/>, так что там намного сложнее.

В существующем варианте "разрешенная" максимальная длина строки равна
75 символам. Можно обсудить необходимость изменения этой величины.

Теперь ближе к делу: кто хочет заняться исправлением toolTip'ов?


Как запускать проверку:
posieve.py find-wide-tooltips ...путь.../messages
(для этого файл find_wide_tooltips.py нужно положить в каталог pology/sieve/)

С автоматическим открытием строк в Lokalize:
posieve.py find-wide-tooltips ...путь.../messages -slokalize


-- 
Alexander Potashev

[-- Attachment #2: find_wide_tooltips.py --]
[-- Type: text/x-python, Size: 2104 bytes --]

# -*- coding: UTF-8 -*-

"""
Find tooltip messages containing lines longer than 75 characters.

Sieve options:
  - C{lokalize}: open catalogs at matched messages in Lokalize
  - C{original}: check "msgid"s instead of "msgstr"s

@author: Alexander Potashev <aspotashev@gmail.com>
@license: GPLv3

Based on sieves from Pology.
"""

from pology import _, n_
from pology.misc.report import report
from pology.misc.msgreport import report_msg_content
from pology.misc.msgreport import report_msg_to_lokalize
import re


def setup_sieve (p):

    p.set_desc(_("@info sieve discription",
    "Find messages with msgstr[1] == msgstr[2]."
    ))

    p.add_param("lokalize", bool, defval=False,
                desc=_("@info sieve parameter discription",
    "Open catalogs at matched messages in Lokalize."
    ))
    p.add_param("original", bool, defval=False,
                desc=_("@info sieve parameter discription",
    "Check \"msgid\"s instead of \"msgstr\"s."
    ))

def is_tooltip (msg):
    return re.search("property .toolTip", "\n".join(msg.auto_comment)) is not None

def max_line_length (str):
    return max(map(lambda x: len(x), str.split("\n")))

class Sieve (object):

    def __init__ (self, params):
	self.p = params

        self.nfound = 0


    def msg_max_line_length (self, msg):
        if (self.p.original):
            return max_line_length(msg.msgid)
	else:
            return max_line_length(msg.msgstr[0])


    def process (self, msg, cat):

        if (not msg.obsolete and not msg.fuzzy and not msg.untranslated and
	    is_tooltip(msg) and re.search("<html>", msg.msgstr[0]) is None and
	    self.msg_max_line_length(msg) > 75):

	    self.nfound += 1
	    report_msg_content(msg, cat)
	    if self.p.lokalize:
                report_msg_to_lokalize(msg, cat)
	    print "-" * 20


    def finalize (self):

        if self.nfound > 0:
            msg = n_("@info:progress",
                     "Found %(num)d message of translation.",
                     "Found %(num)d messages of translation.",
                     num=self.nfound)
            report("===== " + msg)


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-07-31 17:55 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-07-30  6:41 [kde-russian] Слишком длинные всплывающие подсказки Alexander Potashev
2010-07-31 17:55 ` Alexander Potashev

рассылка русскоязычной группы пользователей и разработчиков KDE

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/kde-russian/0 kde-russian/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 kde-russian kde-russian/ http://lore.altlinux.org/kde-russian \
		kde-russian@lists.kde.ru
	public-inbox-index kde-russian

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.kde-russian


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git