рассылка русскоязычной группы пользователей и разработчиков KDE
 help / color / mirror / Atom feed
From: Alexander Potashev <aspotashev@gmail.com>
To: KDE russian translation mailing list <kde-russian@lists.kde.ru>
Subject: [kde-russian] Krita: krita.po, часть 4
Date: Thu, 03 Apr 2014 05:13:08 +0400
Message-ID: <8623362.C7LVMYVRD0@meth> (raw)

Привет!

Комментирую обновление перевода в файле krita.po, предложенное в 
письме http://lists.kde.ru/pipermail/kde-russian/2014-March/018341.html

=== krita.po, часть 4 ===

> #. ediff: state {-fuzzy-}
> #. i18n: ectx: property (text), widget (QLabel, label)
> #: plugins/paintops/curvebrush/wdgcurveoptions.ui:43
> msgid "History size{+:+}"
> msgstr "Размер истории{+:+}"

Может быть "Длина истории:", потому что рисуем вытянутый объект?

> #. ediff: state {-fuzzy-}
> #. i18n: ectx: property (text), widget (QCheckBox, LineCBox)
> #: plugins/paintops/dynadraw/wdgdynaoptions.ui:241
> msgid "{-Selection-}{+Paint connection+}"
> msgstr "{-Выделение-}{+Соединение при рисовании+}"

Можно еще "Рисовать сплошную линию траектории" или "Рисовать соединяющую 
линию".

> #. ediff: state {-fuzzy-}
> #. i18n: ectx: property (text), widget (QLabel, label_2)
> #: plugins/paintops/experiment/wdgexperimentoptions.ui:29
> msgid "Shape creation{+:+}"
> msgstr "Создание формы{+:+}"

Здесь именно "форма", не "объект"?

> #. i18n: ectx: property (text), widget (QCheckBox, windingFillCHBox)
> #: plugins/paintops/experiment/wdgexperimentoptions.ui:112
> msgid "Winding fill"
> msgstr "{+Заливка формы+}"

Может быть, "Заполнение штриховки" или "Заполнять штриховку"? Не могу сказать 
точно, что означает эта строка, попытался угадать.

> #. ediff: state {-fuzzy-}
> #. i18n: ectx: property (text), widget (QLabel, label)
> #: plugins/paintops/experiment/wdgshapeoptions.ui:393
> #: plugins/paintops/spray/wdgshapeoptions.ui:230
> msgid "Texture{+:+}"
> msgstr "Текстура{+:+}"

Не будет путаницы из-за перевода "pattern" и "texture" как "текстура"?

> #. ediff: state {-fuzzy-}
> #. i18n: ectx: property (text), widget (QLabel, label)
> #: plugins/paintops/gridbrush/wdggridoptions.ui:38
> msgid "Grid width{+:+}"
> msgstr "Ширина сетки{+:+}"

Ок.

> #. ediff: state {-fuzzy-}
> #. i18n: ectx: property (text), widget (QLabel, label_2)
> #: plugins/paintops/gridbrush/wdggridoptions.ui:61
> msgid "Grid height{+:+}"
> msgstr "Высота сетки{+:+}"

Ок.

> #. ediff: state {-fuzzy-}
> #. i18n: ectx: property (text), widget (QLabel, label_3)
> #: plugins/paintops/gridbrush/wdggridoptions.ui:84
> msgid "Division level{+:+}"
> msgstr "Уровень {-разделения-}{+подразделения:+}"

"Степень деления"?

По-моему, это просто количество шагов мелкой сетки, которые укладываются в 
один шаг крупной.

> #. ediff: state {-fuzzy-}
> #. i18n: ectx: property (text), widget (QCheckBox, divisionPressureCHBox)
> #: plugins/paintops/gridbrush/wdggridoptions.ui:107
> msgid "Division by pressure"
> msgstr "Разделение{- под-} нажимом"

Ок.

> #. ediff: state {-fuzzy-}
> #. i18n: ectx: property (text), widget (QLabel, label)
> #. i18n: ectx: property (text), widget (QLabel, ScaleLbl)
> #. i18n: ectx: property (text), widget (QLabel, scaleLbl)
> #. i18n: ectx: property (text), widget (QLabel, label_6)
> #: plugins/paintops/gridbrush/wdggridoptions.ui:114
> #: plugins/paintops/hairy/wdgbristleoptions.ui:40
> #: plugins/paintops/libpaintop/forms/wdgBrushSizeOptions.ui:99
> #: plugins/paintops/libpaintop/kis_texture_option.cpp:72
> #: plugins/paintops/spray/wdgsprayoptions.ui:166
> msgid "{-&-}Scale{+:+}"
> msgstr "{-&Масштабировать-}{+Размер:+}"

Разве не масштаб?

А если переводить как "размер" только в контексте grid brush, то надо сначала 
разделить 5 "слипшихся" строк.

> #. ediff: state {-fuzzy-}
> #. i18n: ectx: property (text), widget (QLabel, label_4)
> #: plugins/paintops/gridbrush/wdggridoptions.ui:140
> msgid "Vertical border{+:+}"
> msgstr "{-Размер-}{+Ограничение+} по вертикали{+:+}"
> 
> #. ediff: state {-fuzzy-}
> #. i18n: ectx: property (text), widget (QLabel, label_5)
> #: plugins/paintops/gridbrush/wdggridoptions.ui:157
> msgid "Horizontal border{+:+}"
> msgstr "{-Размер-}{+Ограничение+} по горизонтали{+:+}"

Буду надеяться, что Вы не ошиблись. Не смог понять, на что влияют эти два 
параметра.

> #. ediff: state {-fuzzy-}
> #. i18n: ectx: property (text), widget (QLabel, label_2)
> #: plugins/paintops/hairy/wdgbristleoptions.ui:72
> msgid "Shear{+:+}"
> msgstr "Срез{+:+}"

Это не срез, а определенного вида аффинное преобразование [1,2].

> 
> #. ediff: state {-fuzzy-}
> #. i18n: ectx: property (text), widget (QLabel, label)
> #: plugins/paintops/hatching/wdghatchingoptions.ui:378
> msgid "{-Pressure-}{+Input-based intervals:+}"
> msgstr "{-Давление-}{+Интервалы в зависимости от давления+}"

Из этой подписи не становится понятно, что обозначает численное значение. Это 
размер интервала в пикселах?

> #. ediff: state {-fuzzy-}
> #. i18n: ectx: property (text), widget (QCheckBox, sampleInputCHBox)
> #: plugins/paintops/libpaintop/forms/wdgcoloroptions.ui:92
> msgid "{-Scale Layer-}{+Sample Input layer+}"
> msgstr "{-Масштабирование слоя-}{+Упрощённый уровень ввода+}"

Не путайте "sample" и "simple".

> #. ediff: state {-fuzzy-}
> #: plugins/paintops/libpaintop/kis_brush_chooser.cpp:106
> msgid "Rotation:{- -}"
> msgstr "Поворот: "

Пробел можно убрать.

> #. ediff: state {-fuzzy-}
> #: plugins/paintops/libpaintop/kis_brush_chooser.cpp:156
> msgid "{-Remove-}{+Reset+} Brush"
> msgstr "{-Удалить кисть-}{+Сбросить настройки кисти+}"

Опять "настройки" во множественном числе. "Сбросить параметры кисти".

> #: plugins/paintops/libpaintop/kis_brush_chooser.cpp:157
> msgid ""
> "Reloads Spacing from file\n"
> "Sets Scale to 1.0\n"
> "Sets Rotation to 0.0"
> msgstr ""
> "{+Загрузка среды из файла\n"
> "Переключает масштаб на 1.0\n"
> "Переключает поворот на 0.0+}"

Здесь "spacing" понимается в каком-то особенном значении, не в смысле 
"интервал"?

1.0 -> 1,0
0.0 -> 1,0

Можно так: "Устанавливает масштаб в 1,0".

> #. ediff: state {-fuzzy-}
> #: plugins/paintops/libpaintop/kis_brush_selection_widget.cpp:67
> #: plugins/paintops/libpaintop/kis_brush_selection_widget.cpp:69
> msgid "{-Color Smudge-}{+Clipboard+} Brush"
> msgstr "{-Цветная размазывающая кисть-}{+Кисть из буфера обмена+}"
> 
> #: plugins/paintops/libpaintop/kis_brush_selection_widget.cpp:235
> msgid ""
> "Precision Level 1 (fastest)\n"
> "Subpixel precision: disabled\n"
> "Brush size precision: 5%\n"
> "\n"
> "Optimal for very big brushes"
> msgstr ""
> "{+Уровень точности 1 (самый быстрый)\n"
> "Точечное уточнение: отключено\n"
> "Точность размера кисти: 5%\n"
> "\n"
> "Оптимально для очень больших кистей+}"

"Точечное уточнение" плохо смотрится, потому что два однокоренных слова. 
"Субпиксельная точность"?

> #: plugins/paintops/libpaintop/kis_pressure_hsv_option.cpp:53
> #, no-c-format
> msgid "(50% is active color)"
> msgstr "{+(50% активного цвета)+}"
> 
> #: plugins/paintops/libpaintop/kis_pressure_hsv_option.cpp:59
> msgid "CW hue"
> msgstr "{+CW оттенок+}"
> 
> #: plugins/paintops/libpaintop/kis_pressure_hsv_option.cpp:60
> msgid "CCW hue"
> msgstr "{+CCW оттенок+}"
> 
> #. ediff: state {-fuzzy-}
> #: plugins/paintops/libpaintop/kis_pressure_spacing_option_widget.cpp:37
> msgid "{-Grid-}{+Isotropic+} Spacing"
> msgstr "{-Шаг сетки-}{+Изотропическая среда+}"

изотропная?

> #: plugins/paintops/libpaintop/kis_pressure_texture_strength_option.cpp:26
> msgid "Weak"
> msgstr "{+Слабая+}"
> 
> #. ediff: state {-fuzzy-}
> #: plugins/paintops/libpaintop/kis_pressure_texture_strength_option.cpp:27
> msgid "{-Stroke-}{+Strong+}"
> msgstr "{-Штрих-}{+Сильное+}"

Определитесь с родом ;)

> #. ediff: state {-fuzzy-}
> #: plugins/paintops/libpaintop/kis_texture_option.cpp:76
> msgid "Horizontal{+ Offset+}:"
> msgstr "{-Горизонталь-}{+Горизонтальное смещение+}:"
> 
> #. ediff: state {-fuzzy-}
> #: plugins/paintops/libpaintop/kis_texture_option.cpp:80
> msgid "Vertical Offset:"
> msgstr "{-Вершины-}{+Вертикальное смещение+}:"

Ок.

> #. ediff: state {-fuzzy-}
> #: plugins/paintops/libpaintop/kis_texture_option.cpp:85
> msgid "{-Multiline-}{+Multiply+}"
> msgstr "{-Многострочный-}{+Умножение+}"

Ок.

> #. ediff: state {-fuzzy-}
> #: plugins/paintops/libpaintop/kis_texture_option.cpp:87
> msgid "{-Metering mode-}{+Texturing Mode+}:"
> msgstr "{-Экспозамер-}{+Режим текстурирования+}:"
> 
> #: plugins/paintops/libpaintop/kis_texture_option.cpp:93
> msgid "Cut Off Disabled"
> msgstr "{+Обрезка отключена+}"
> 
> #. ediff: state {-fuzzy-}
> #: plugins/paintops/libpaintop/kis_texture_option.cpp:93
> msgid "{-Custom-}{+Cut Off+} Brush"
> msgstr "{-Специальная-}{+Обрезанная+} кисть"
> 
> #. ediff: state {-fuzzy-}
> #: plugins/paintops/libpaintop/kis_texture_option.cpp:93
> msgid "{-Custom-}{+Cut Off+} Pattern"
> msgstr "{-Нестандартная текстура-}{+Обрезать текстуру+}"

Это варианты выбора для параметра "Cutoff Policy:"

"Обрезать текстуру" / "Обрезать кисть"?

> #. ediff: state {-fuzzy-}
> #: plugins/paintops/libpaintop/kis_texture_option.cpp:95
> msgid "{-Coffee-}{+Cutoff Policy:+}"
> msgstr "{-Кофе-}{+Параметры обрезки:+}"

"Режим обрезки"?

> #: plugins/paintops/libpaintop/kis_texture_option.cpp:101
> msgid ""
> "When pattern texture values are outside the range specified by the slider,
> "
> "the cut-off policy will be applied."
> msgstr "{+Когда текстура больше установленных рамок, применяется обрезка.+}"

Ок.

> #. ediff: state {-fuzzy-}
> #: plugins/paintops/libpaintop/kis_texture_option.cpp:103
> msgid "{-Coffee-}{+Cutoff:+}"
> msgstr "{-Кофе-}{+Обрезка:+}"

Ок.

> #. ediff: state {-fuzzy-}
> #:
> plugins/paintops/libpaintop/sensors/kis_dynamic_sensor_drawing_angle.cpp:53
> msgid "{-Round-}{+Fan+} Corners"
> msgstr "Закругление углов"

Закругление -- это round/rounding, а здесь "fan".

> #: plugins/paintops/libpaintop/sensors/kis_dynamic_sensor_fuzzy.cpp:38
> msgid ""
> "Positve and\n"
> "Negative\n"
> "Rotation"
> msgstr ""
> "{+Положительное и\n"
> "Отрицательное\n"
> "вращение+}"

"Отрицательное" надо написать со строчной буквы.

> #. ediff: state {-fuzzy-}
> #: plugins/paintops/mypaint/mypaint_brush_resource.cpp:189
> msgid ""
> "This defines how long the stroke input stays at 1.0. After that it will "
> "reset to 0.0 and start growing again, even if the stroke is not yet
> finished." "\n"
> "2.0 means twice as long as it takes to go from 0.0 to 1.0\n"
> "9.9 and bigger stands for infinite"
> msgstr ""
> "Этот параметр определяет, как долго {-вход 'stroke'-}{+значение штриха+} "
> "будет оставаться{- в значении-} 1.0. После этого {-он-}{+оно+} будет {-"
> "сброшен в-}{+сброшено на+} 0.0 и начнёт расти снова, даже если штрих ещё не
> " "закончен.\n"
> "2.0 - вдвое длиннее, чем расстояние от значения stroke 0.0 до 1.0\n"
> "9.9 и больше означают бесконечность."

"[...] будет оставаться _равным_ 1,0."

"сброшено _в_ 0,0"

Тире пишется как em-dash: —

Нужна точка в конце предложения "значения stroke 0.0 до 1.0."

"Stroke" осталось без перевода.

> #: plugins/paintops/mypaint/mypaint_brush_resource.cpp:190
> msgid ""
> "Set the custom input to this value. If it is slowed down, move it towards "
> "this value (see below). The idea is that you make this input depend on a "
> "mixture of pressure/speed/whatever, and then make other this depend on this
> " "'custom input' instead of repeating this combination everywhere you need
> it." "\n"
> "If you make it change 'by random' you can generate a slow (smooth) random "
> "input."
> msgstr ""
> "{+Задать это значение пользовательского ввода. Если это медленно, "
> "переключите на это значение (см. выше). Идея в том, что ввод может зависеть
> " "от смеси давления/скорости/чего-нибудь ещё, и передавать зависимость от
> " "этого'пользовательскому вводу', вместо повторения этой комбинации каждый
> " "раз, когда это нужно.\n"
> "Если выставите случайное изменение, вы можете сгенерировать медленный "
> "(сглаженный) случайный ввод.+}"

АДЪ.

Оставлю в покое все остальное из mypaint_brush_resource.cpp. Текст в исходном 
коде очень сырой, надо улучшать и уточнять.

> #. ediff: state {-fuzzy-}
> #. i18n: ectx: property (text), widget (QLabel, particlesLbl)
> #: plugins/paintops/particle/wdgparticleoptions.ui:50
> msgid "Particles{+:+}"
> msgstr "{-Настройка частиц распыления-}{+Частицы:+}"

"Количество частиц:", "Число частиц:" или "Частиц:"

> #. ediff: state {-fuzzy-}
> #. i18n: ectx: property (text), widget (QLabel, opacity)
> #: plugins/paintops/particle/wdgparticleoptions.ui:103
> msgid "{-opacity-}{+Opacity+} weight{+:+}"
> msgstr "Значение непрозрачности:"

Слово "значение" не делает строку ни более, ни менее понятной. Если 
пользователь видит строку "Непрозрачность:" и поле для ввода числа справа от 
нее, то очевидно, что это какое-то _значение_, регулирующее непрозрачность.

Может быть, "Коэффициент непрозрачности:" или просто "Непрозрачность:"?

> #. ediff: state {-fuzzy-}
> #. i18n: ectx: property (text), widget (QLabel, radiusLabel_3)
> #: plugins/paintops/particle/wdgparticleoptions.ui:150
> msgid "dx scale{+:+}"
> msgstr "Размер по оси X{+:+}"
> 
> #. ediff: state {-fuzzy-}
> #. i18n: ectx: property (text), widget (QLabel, radiusLabel_4)
> #: plugins/paintops/particle/wdgparticleoptions.ui:179
> msgid "dy scale{+:+}"
> msgstr "Размер по оси Y{+:+}"

"Масштаб [...]"?

> #. ediff: state {-fuzzy-}
> #. i18n: ectx: property (text), widget (QLabel, radiusLabel_5)
> #: plugins/paintops/particle/wdgparticleoptions.ui:208
> msgid "{-iterations-}{+Iterations:+}"
> msgstr "{-Итераций-}{+Прерывания:+}"

Такое чувство, что Scripty [3] причудливым образом заполнил новые строки 
похожими (не в человеческом смысле, а по расстоянию Левенштейна), отметив их 
неточными ("fuzzy"), а Вы потом сняли эти отметки, забыл исправить эти 
неправильные переводы.

"iterations" и "interrupts" -- очень похожие слова, но только в смысле 
написания.

> #. ediff: state {-fuzzy-}
> #. i18n: ectx: property (text), widget (QLabel, label)
> #: plugins/paintops/sketch/wdgsketchoptions.ui:84
> msgid "Offset scale{+:+}"
> msgstr "Размер смещения{+:+}"

scale -- масштаб?

> #. ediff: state {-fuzzy-}
> #. i18n: ectx: property (text), widget (QCheckBox, distanceDensityCHBox)
> #: plugins/paintops/sketch/wdgsketchoptions.ui:171
> msgid "{-Distance: -}{+Use distance density+}"
> msgstr "{-Расстояние: -}{+Использовать плотность по расстоянию+}"

Плохо понятен смысле словосочетания "плотность по расстоянию". Может быть, 
"Плотность зависит от расстояния"?

> #. ediff: state {-fuzzy-}
> #. i18n: ectx: property (text), widget (QCheckBox, distanceOpacityCHbox)
> #: plugins/paintops/sketch/wdgsketchoptions.ui:226
> msgid "Distance{-: -}{+ opacity+}"
> msgstr "{-Расстояние: -}{+Непрозрачность на расстоянии+}"

То же самое.

> #. ediff: state {-fuzzy-}
> #: plugins/tools/defaulttools/kis_tool_brush.cc:127
> msgid "{+No +}Smoothing"
> msgstr "{-Сглаживание-}{+Без сглаживания+}"
> 
> #. ediff: state {-fuzzy-}
> #: plugins/tools/defaulttools/kis_tool_brush.cc:127
> msgid "{+Basic +}Smoothing"
> msgstr "{-Сглаживание-}{+Простое сглаживание+}"
> 
> #. ediff: state {-fuzzy-}
> #: plugins/tools/defaulttools/kis_tool_brush.cc:127
> msgid "{+Weighted +}Smoothing"
> msgstr "{-Сглаживание-}{+Весовое сглаживание+}"

"Взвешенное [...]"

> #. ediff: state {-fuzzy-}
> #: plugins/tools/defaulttools/kis_tool_brush.cc:137
> msgid "Distance:{- -}"
> msgstr "Расстояние: "

Можно убрать пробел.

> #. ediff: state {-fuzzy-}
> #: plugins/tools/defaulttools/kis_tool_brush.cc:144
> msgid "{-stroke duration-}{+Stroke Ending:+}"
> msgstr "{-Длительность-}{+Окончание+} штриха"

В оригинале было двоеточие.

> #. ediff: state {-fuzzy-}
> #: plugins/tools/defaulttools/kis_tool_brush.cc:149
> msgid "{+Smooth +}Pressure"
> msgstr "{-Давление-}{+Сглаживать нажатие+}"

Ок.

> #. ediff: state {-fuzzy-}
> #: plugins/tools/defaulttools/kis_tool_fill.cc:161
> #: plugins/tools/selectiontools/kis_tool_select_contiguous.cc:162
> msgid "{-Shrink-}{+Grow/shrink+} selection{- by-}{+: +}"
> msgstr "{-Уменьшение-}{+Увеличение/уменьшение+} выделения{- на-}{+:+}"

Ок.

> #. ediff: state {-fuzzy-}
> #: plugins/tools/defaulttools/kis_tool_fill.cc:169
> #: plugins/tools/selectiontools/kis_tool_select_contiguous.cc:177
> msgid "Feathering radius: "
> msgstr "Радиус:"

"Радиус растушёвки:"?

> #. ediff: state {-fuzzy-}
> #: plugins/tools/defaulttools/kis_tool_line.cc:74
> msgid "{-Color options-}{+Varying End-Points+}"
> msgstr "{-Параметры цвета-}{+Варьирование конечных точек+}"

Ок.

> #. ediff: state {-fuzzy-}
> #: plugins/tools/defaulttools/kis_tool_multihand.cpp:223
> msgid "Show {-Grid-}{+Axis+}"
> msgstr "{-Показать сетку-}{+Показывать оси+}"

Ось одна.

> #: plugins/tools/defaulttools/kis_tool_multihand.cpp:233
> msgid "Set axis angle (degrees)"
> msgstr "{+Указать угол между осями (в градусах)+}"

Угол наклона оси?

> #. ediff: state {-fuzzy-}
> #: plugins/tools/defaulttools/kis_tool_multihand.cpp:238
> msgid "{+Axis +}Angle:"
> msgstr "Угол{+ осей+}:"

То же самое.

> #. ediff: state {-fuzzy-}
> #: plugins/tools/defaulttools/kis_tool_path.h:73
> msgid ""
> "Draw a {-polygon-}{+path+}. Shift-mouseclick ends the {-polygon-}{+path+}."
> msgstr ""
> "Нарисовать {-многоугольник-}{+контур+}. Shift+щелчок мышью {-завершает "
> "многоугольник-}{+замыкает контур+}."

Не замыкает контура, а заканчивает рисование контура. "Замыкает" означало бы, 
что контур становится замкнутым, т.е. добавляет отрезок из последней точки в 
первую, но это не так.

> #. ediff: state {-fuzzy-}
> #: plugins/tools/defaulttools/kis_tool_pencil.h:67
> msgid "Draw {+a +}freehand{+ path.+}"
> msgstr "Нарисовать произвольную линию{+.+}"

Странно, что это в оригинале называется "path", потому что такие линии нельзя 
редактировать как контуры (по крайней мере, у меня это не получилось).


[1] http://qt-project.org/doc/qt-4.8/qtransform.html#shear
[2] http://en.wikipedia.org/wiki/Shear_mapping
[3] 
http://techbase.kde.org/Development/Tutorials/Localization/i18n_Build_Systems

-- 
Alexander Potashev

             reply	other threads:[~2014-04-03  1:13 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-03  1:13 Alexander Potashev [this message]
2014-04-06 17:39   ` Alexander Potashev
2014-04-06 18:32       ` Alexander Potashev

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8623362.C7LVMYVRD0@meth \
    --to=aspotashev@gmail.com \
    --cc=kde-russian@lists.kde.ru \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

рассылка русскоязычной группы пользователей и разработчиков 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