* [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