From: "Сыпченко Георгий" <superzhook@gmail.com> To: kde-russian@lists.kde.ru Subject: Re: [kde-russian] Krita: krita.po, часть 2 Date: Thu, 03 Apr 2014 22:04:58 +0400 Message-ID: <533DA2CA.4020004@gmail.com> (raw) In-Reply-To: <6985093.S1KfXdr5Ny@meth> 02.04.2014 06:15, Alexander Potashev пишет: > Привет! > > Комментирую обновление перевода в файле krita.po, предложенное в > письме http://lists.kde.ru/pipermail/kde-russian/2014-March/018341.html > > === krita.po, часть 2 === > >> #: image/kis_filter_strategy.h:103 >> msgid "" >> "Replicate pixels in the image. Preserves all the original detail, but can" >> "produce jagged effects." >> msgstr "" >> "{+Копирует пикселы изображения. Сохраняет оригинальные детали, но может" >> "создать эффект зазубренности.+}" > Может быть, "Сохраняет детализацию исходного изображения, но ..."? Да, так лучше... Исправил. >> #: image/kis_filter_strategy.h:122 >> msgid "" >> "Adds pixels averaging the color values of surrounding pixels. Produces" >> "medium quality results when the image is scaled from half to two times the >> " >> "original size." >> msgstr "" >> "{+Добавляет пикселы, учитывая цвета соседних точек. Даёт средний результат >> " >> "при масштабировании в два раза.+}" > "результат среднего уровня качества"? По-моему, слово "качество" здесь нельзя > убирать, иначе теряется смысл. Поправил. >> #: image/kis_filter_strategy.h:160 >> msgid "" >> "Offers similar results than Bicubic, but maybe a little bit sharper. Can" >> "produce light and dark halos along strong edges." >> msgstr "" >> "{+Даёт схожий результат с бикубическим, но может быть немного точнее. Может >> " "создавать светлые и тёмные ареолы вдоль граней..+}" > "sharper" = "чётче" > > "вдоль _границ_" > > Надо убрать двойную точку на конце строки. Сделано. >> #. ediff: state {-fuzzy-} >> #: image/kis_image.cc:455 >> msgid "Crop {-Tool-}{+Node+}" >> msgstr "{-Кадрирование-}{+Узел обрезки+}" > Так же ошибка, как и с "Node Opacity" > > Мне казалось, что в KDE везде "crop" переводилось как "кадрирование". Думаете, > "обрезка" понятнее? Слово "кадрирование" подразумевает, что результатом будет > прямоугольная часть изображения, а "обрезать" в принципе можно как угодно, > хоть по форме канадского флага. Уже было исправлено в новых версиях файла. >> #. ediff: state {-fuzzy-} >> #: image/kis_image.cc:1623 >> msgid "{-Grow Selection-}{+Crop Selections+}" >> msgstr "{-Увеличение-}{+Обрезка+} выделения" > selections -- во множественном числе, в переводе должно быть "... выделений", > или такая замена не сделает перевод более точным? >> #. ediff: state {-fuzzy-} >> #: image/kis_processing_visitor.cpp:33 >> msgid "{-Postprocessing-}{+Processing+}" >> msgstr "Постобработка" > Просто "Обработка". Исправлено. >> #. ediff: state {-fuzzy-} >> #: image/kis_selection_filters.cpp:120 >> msgid "{-Border-}{+Erode+} Selection" >> msgstr "{-Выделение границы-}{+Исказить выделение+}" > Не уверен на 100%, но предполагаю, что все названия фильтров выделения > используются . > > Проверил один из фильтров на запущенной Krita: > 1. Применил к выделению команду "Выделение -> Увеличение выделения..." > (кстати, я бы ожидал тут увидеть "Увеличить выделение...", т.е. глагол в > инфинитиве, надо поднять отдельно этот вопрос и добавить полученное решение в > "правила" на Wiki), > 2. Посмотрел в меню "Правка", там "Отменить Увеличение выделения", а это -- > как раз перевод строки "Grow Selection", перевод которой возвращает функция > KisGrowSelectionFilter::name(). > > Надо написать разработчикам, чтобы они подтвердили или опровергли это > утверждение -- и если "да", то надо добавлять к таким строками контекст > "(qtundo-format)" и использовать magic split. > > А пока лучше перевести как "Искажение выделения", т.е. существительным, > обозначающим действие, чтобы оно строка хорошо вписалась в контекст "Отменить > ..." и в журнал действий. Откорректировал. Аналогично прошу добавить "(qtundo-format)" в строку 2276 "Freehand Stroke" >> #. ediff: state {-fuzzy-} >> #: image/kis_selection_filters.cpp:184 >> msgid "{-Display-}{+Dilate+} Selection" >> msgstr "{-Показать-}{+Расширить+} выделение" > То же самое -- надо перевести существительным. Сделано. >> #. ediff: state {-fuzzy-} >> #: image/kis_selection_filters.cpp:790 >> msgid "{-Path-}{+Smooth+} Selection" >> msgstr "{-Выделение кривыми Безье-}{+Сгладить выделение+}" > То же самое. Сделано. >> #. ediff: state {-fuzzy-} >> #: image/metadata/kis_meta_data_merge_strategy_p.cc:179 >> msgid "" >> "This merge strategy {-attempt-}{+attempts+} to find the best solution for" >> "merging, for instance by merging {+the +}list of authors together, or" >> "keeping {+identical +}photographic information{- that are identical..-}." >> msgstr "" >> "{-Способ-}{+Этот способ+} объединения требуется, чтобы найти лучшее решение >> " "для слияния метаданных. Например, объединение авторов в единый список >> или " "сохранение идентичной информации о {-фотографии >> -}{+фотографиях+}..." > Многоточие в оригинале убрали, в переводе надо тоже убрать. Сделано. >> #. ediff: state {-fuzzy-} >> #: image/processing/kis_transform_processing_visitor.cpp:160 >> msgid "Transform {-Tool-}{+Node+}" >> msgstr "{-Преобразование-}{+трансформацию+}" > Можно было оставить более русское слово. Тем более, что в математике это > действие так и называлось бы [1]. > > Похоже, что эта строка тоже является названием отменяемого действия, то есть > появляется в меню в "Отменить ..." и в журнале действий. > > А теперь на минуту оставьте свой перевод "трансформацию", выполните такое > действие над узлом и посмотрите в "журнал действий" -- наверняка увидите > просто строчку "трансформацию". В подобных случаях спасает magic split, > объясню еще раз кратко: если написать в строке перевода два перевода, > разделённых "\n", то первый перевод пойдёт в журнал действий, а второй -- в > "Отменить ..." / "Повторить ...". В данном случае была бы такая строка > перевода: "Трансформация\nтрансформацию". Но напоминаю, что не рекомендую > слово "трансформация" в данном контексте. Ок. Поправил на преобразование и ещё одну строку аналогично. >> #. ediff: state {-fuzzy-} >> #: image/recorder/kis_macro_player.cc:81 >> #: plugins/extensions/bigbrother/bigbrother.cc:129 >> msgid "{-Play-}{+Playing back+} macro" >> msgstr "Воспроизвести {-макрос-}{+макрокоманду+}" > Надо выбрать какое-то одно слово, добавить в глоссарий на вики и использовать > его везде и всегда. Можно вынести выбор между "макрос" и "макрокоманда" в > отдельное обсуждение. > > Если посмотреть по существующим переводам KDE, то чаще всего используются > "макрос" и (внезапно) "макротип", "макрокоманда" -- только в одной строке. В > словаре EngCom предложены варианты "макрос" и "макрокоманда" [2]. Макрос так макрос... >> #: image/recorder/kis_recorded_node_action.cc:54 >> msgid "Applying action to all selected nodes" >> msgstr "{+Действие применяется ко всем выбранным узлам+}" > Эта строка описывает действие, которое выполняется в данный момент. Не уверен, > где она будет показана, но наверняка где-то рядом с индикатором выполнения > (progress bar), то есть в таком месте, где обычно пишут "Идёт загрузка...". > Можно и так оставить, а можно так: "Применение действия ко всем выбранным > узлам" > Сильно не отличается, но ваш вариант красивее :) Заменил. >> #. ediff: state {-fuzzy-} >> #: plugins/assistants/RulerAssistant/kis_ruler_assistant_tool.cc:493 >> msgid "{+Save +}Assistant{-:-}" >> msgstr "{-Привязка:-}{+Сохранять привязку+}" > 1. Это заголовок диалогового окна сохранения файла, поэтому не может быть > глагола. > 2. По-моему, словом assistant тут называют некий "мастер", то же, что wizard > [3]. То есть, предлагается выбрать файл для сохранения в него этого мастера. Нашёл. Исправил. Это "Сохранение линейки". >> #. ediff: state {-fuzzy-} >> #: plugins/colorspaces/extensions/kis_burnhighlights_adjustment.cpp:98 >> msgid "{-Color-}{+BurnHighlights+} Adjustment" >> msgstr "{-Кривые-}{+Света+}" > Почему-то никак не могу воспринять стоящее отдельно слово "Света", кроме как > женское имя ;) > Переформулируйте. По аналогии с гимпом сделал: "Светлые части" >> #. ediff: state {-fuzzy-} >> #: plugins/colorspaces/extensions/kis_burnmidtones_adjustment.cpp:98 >> msgid "{-Color-}{+BurnMidtones+} Adjustment" >> msgstr "{-Корректирование цвета-}{+Полутона+}" > Пока что не разбираюсь в этом функционале, поэтому никак не могу > прокомментировать, к сожалению. Пусть остается пока так, что ли. > >> #. ediff: state {-fuzzy-} >> #: plugins/colorspaces/extensions/kis_dodgehighlights_adjustment.cpp:99 >> msgid "{-Color-}{+DODGE+} Adjustment" >> msgstr "{-Кривые-}{+Осветление штрихов+}" > А, я понял: можно почитать тут [4]. > Тут всё, вроде бы ок. По крайней мере при поверхностном осмотре. Насколько я видел - это параметры одного фильтра. Если что обнаружу - сразу будут поправки. >> #. ediff: state {-fuzzy-} >> #: plugins/colorspaces/extensions/kis_hsv_adjustment.cpp:231 >> #: plugins/filters/colorsfilters/kis_hsv_adjustment_filter.h:51 >> msgid "HSV{+/HSL+} Adjustment" >> msgstr "{-Коррекция-}{+Регулировка+} HSV{+/HSL+}" > Зачем здесь менять слово "коррекция" на другое? > > Я воспринимаю слово "коррекция" как "внесение поправок для устранения > нежелательных искажений", помня о происхождении от слова "correct". > Да, тут откровенно ляп. Переделал. >> #: plugins/extensions/clonesarray/clonesarray.cpp:38 >> msgid "Clones &Array..." >> msgstr "{+Клонирующий &Массив...+}" > 1. Не надо писать слова с заглавной буквы посреди предложения. > 2. Это расширение случайно не создаёт массив (множество) копий слоя/узла? Если > да, то я бы предложил назвать его "&Массив копий...", хотя совершенно не знаю > эту область (не знаю, куда там лучше ставить акселератор -- &). > Это клонирование значения в массив. Применяется при разработке игр. Клон - это спец. термин. Поэтому всё верно, кроме первого замечания. >> #: plugins/extensions/clonesarray/dlg_clonesarray.cpp:43 >> msgid "Create Clones Array" >> msgstr "{+Создать клонирующий массив+}" > Та же проблема. Непонятен термин "клонирующий массив": непонятно, почему надо > быть массивом, чтобы создавать "клонов". Аналогично. >> #. ediff: state {-fuzzy-} >> #. i18n: ectx: property (text), widget (QCheckBox, columnPreference) >> #: plugins/extensions/clonesarray/wdg_clonesarray.ui:314 >> msgid "{-Preferences-}{+Column Preference+}" >> msgstr "Параметры{+ столбца+}" > Не путайте с "preferences". Это checkbox -- либо включён, либо выключен. > > По-моему, смысл передал бы перевод "Приоритет столбца" или "Столбцы имеют > приоритет [над строками]". Автор кода -- Дмитрий, можно его спросить. Ок. Поправил. >> #. ediff: state {-fuzzy-} >> #: plugins/extensions/colorrange/dlg_colorrange.cc:318 >> msgid "Color {-Selector-}{+Range Selection+}" >> msgstr "Выбор{+ близкого+} цвета" > "Выделение близких цветов"? > > Здесь "selection" в том же смысле, как в названии инструмента "прямоугольное > выделение". Поправил. >> #. ediff: state {-fuzzy-} >> #: plugins/extensions/colorspaceconversion/colorspaceconversion.cc:58 >> msgid "{+&+}Convert Image Color Space{+...+}" >> msgstr "{+&+}Преобразование цветового пространства изображения" > Пункт меню, поэтому "&Преобразовать цветовое пространство изображения...". > > Я определил, что это пункт меню, по наличию акселератора (&) и многоточия на > конце. Многоточия в пунктах меню и на кнопках приписываются в том случае, если > кнопка или пункт меню не сразу выполняет требуемое действие, а сначала > открывает диалоговое окно, в котором пользователь можно установить параметры > операции и подтвертить выполнение. > >> #. ediff: state {-fuzzy-} >> #: plugins/extensions/colorspaceconversion/colorspaceconversion.cc:62 >> msgid "{+&+}Convert {-Image-}{+Layer+} Color Space{+...+}" >> msgstr "{+&+}Преобразование цветового пространства {-изображения-}{+слоя+}" > Аналогично. > >> #: >> plugins/extensions/dockers/advancedcolorselector/kis_shade_selector_line.cp >> p:153 #, kde-format >> msgid "delta h=%1 s=%2 v=%3 shift h=%4 s=%5 v=%6" >> msgstr "{+дельта h=%1 s=%2 v=%3 сдвиг h=%4 s=%5 v=%6+}" >> >> #. ediff: state {-fuzzy-} >> #: >> plugins/extensions/dockers/advancedcolorselector/kis_shade_selector_line_ed >> itor.cpp:29 msgid "{-Depth:-}{+Delta: +}" >> msgstr "Глубина:" > Вы же сами только что перевели как "дельта". > >> #. ediff: state {-fuzzy-} >> #: >> plugins/extensions/dockers/advancedcolorselector/kis_shade_selector_line_ed >> itor.cpp:40 msgid "Shift:{+ +}" >> msgstr "Смещение:" > А "shift" Вы только что перевели как "сдвиг". Постарайте не создавать путаницу > в терминах. Ок. Исправил. >> #. ediff: state {-fuzzy-} >> #: >> plugins/extensions/dockers/compositiondocker/compositiondocker_dock.cpp:60 >> msgid "{-No-}{+New+} Composition" >> msgstr "{-Без наложения-}{+Новая композиция+}" > Описание действия кнопки во всплывающей подсказке. Можно перевести глаголом -- > "Создать композицию". > Ок. >> #. ediff: state {-fuzzy-} >> #: >> plugins/extensions/dockers/compositiondocker/compositiondocker_dock.cpp:149 >> msgid "Select a {-rectangular area-}{+Directory+}" >> msgstr "{-Выделение прямоугольной области-}{+Выберите папку+}" > (К сведению,) > Заголовок диалогового окна. > >> #. ediff: state {-fuzzy-} >> #: plugins/extensions/dockers/defaultdockers/kis_layer_box.cpp:224 >> msgid "{+&+}Select Opaque" >> msgstr "{+&+}Выделение непрозрачности" > "&Выделить непрозрачную область"? > >> #. ediff: state {-fuzzy-} >> #: plugins/extensions/dockers/flipbook/flipbookdocker_dock.cpp:57 >> msgid "Flipbook{- Docker-}" >> msgstr "{-Панель кинеографа-}{+Блокнот+}" > "блокнот" надо добавить в глоссарий. Сделано. >> #. ediff: state {-fuzzy-} >> #: plugins/extensions/dockers/imagedocker/imagedocker_dock.cpp:163 >> msgid "Reference {-image:-}{+Images+}" >> msgstr "{-Исходное изображение:-}{+Референсы+}" > Может быть, "образцы"? Говорил с "творцами", по их мнению это самый понятный перевод. Это термин, которым художники оперируют. >> #. ediff: state {-fuzzy-} >> #: plugins/extensions/dockers/lut/lutdocker_dock.cpp:76 >> msgid "{-No-}{+Select custom+} configuration {-option-}{+file+}." >> msgstr "{-Нет настраиваемых параметров-}{+Выбрать свой файл настроек.+}" > Передаю привет "настройкам" ;) исправил. >> #: plugins/extensions/dockers/lut/lutdocker_dock.cpp:108 >> msgid "" >> "Select the amount of gamma modification for display. This does not affect" >> "the pixels of your image." >> msgstr "" >> "{+Укажите значение изменения гаммы дисплея. Это не затронет точки вашего" >> "изображения.+}" > "for display" = "_для_ экрана" > > У самого экрана/монитора нет такого параметра -- "гамма", либо Krita им, по > крайней мере, не управляет. Поэтому словосочетание "гамма > дисплея/экрана/монитора" бессмысленно. Может, подразумевается, что мониторы по разному отображают цвет (некоторые со значительным искажением), а это типо подгонки цвета в крите под правдивое отображение на мониторе (как калибровка под цвет печати принтера в фотосалонах или баланс белого в настройках смартфонов Sony)? По крайней мере на это рассчитывал при переводе. Тут точно не знаю, поэтому пока не берусь судить... >> #. ediff: state {-fuzzy-} >> #: plugins/extensions/dockers/lut/lutdocker_dock.cpp:169 >> msgid "{-Luminize-}{+Luminance+}" >> msgstr "{-Подсветка-}{+Свечение+}" > Светлота [5]. > >> #. ediff: state {-fuzzy-} >> #: plugins/extensions/dockers/lut/lutdocker_dock.cpp:281 >> #: ui/dialogs/kis_dlg_preferences.cc:353 >> msgid "{-No configuration option.-}{+Select OpenColorIO Configuration+}" >> msgstr "{-Нет настраиваемых параметров-}{+Выбрать параметры OpenColorIO+}" > Заголовок диалога, поэтому "выбрать ..." не подходит. > >> #. i18n: ectx: property (text), widget (QCheckBox, m_chkUseOcioEnvironment) >> #: plugins/extensions/dockers/lut/wdglut.ui:52 >> msgid "Use Environment" >> msgstr "{+Использовать окружение+}" > Если имеются в виду переменные среды, то так и надо писать: "Использовать > переменные среды" > >> #. ediff: state {-fuzzy-} >> #. i18n: ectx: property (text), widget (QLabel, label_2) >> #: plugins/extensions/dockers/lut/wdglut.ui:73 >> msgid "{-Displace-}{+Display Device:+}" >> msgstr "{-Замещение-}{+Устройство отображения:+}" > Почитайте в архиве рассылки про "отображение", например [6]. Там другое. А тут термин. "Устройство показа" - согласитесь, звучит странно. Откровенно странно. >> #. ediff: state {-fuzzy-} >> #. i18n: ectx: property (text), widget (QLabel, label_5) >> #: plugins/extensions/dockers/lut/wdglut.ui:86 >> msgid "{-Contents-}{+Components:+}" >> msgstr "Содержимое{+:+}" > Это компоненты цвета: All Channels, Luminance, ... Исправил. >> #. ediff: state {-fuzzy-} >> #. i18n: ectx: property (text), widget (QLabel, label_4) >> #: plugins/extensions/dockers/lut/wdglut.ui:132 >> msgid "{-Color Space-}{+Input ColorSpace:+}" >> msgstr "Цветовое пространство{+ ввода:+}" > "Входное ..."? Аналогично тому, что у программ бывают _входные_ и _выходные_ > данные. Не знаю... > >> #. ediff: state {-fuzzy-} >> #: >> plugins/extensions/dockers/specificcolorselector/kis_specific_color_selecto >> r_widget.cc:53 msgid "{-Color-}{+Show Colorspace+} Selector" >> msgstr "{-Выбор цвета-}{+Показать выбор цветового пространства+}" > "Показать список цветовых пространств"? "Выбрать цветовое пространство..."? Посмотрю, поищу. >> #. i18n: ectx: property (text), widget (QLabel, label) >> #. i18n: ectx: property (text), widget (QLabel, brushNameLbl) >> #: plugins/extensions/dockers/tasksetdocker/tasksetdocker_dock.cpp:185 >> #: plugins/paintops/libpaintop/forms/wdgcustombrush.ui:31 >> #: ui/forms/wdgfilternodecreation.ui:17 ui/forms/wdgflipbookselector.ui:28 >> #: ui/forms/wdgpaintopsettings.ui:93 >> msgid "Name:" >> msgstr "{-Название-}{+Имя+}:" > Возможно, на любителя, поэтому не буду противиться такому изменению. Это подразумевается "имя автора рисунка" в профиле автора. >> #. i18n: ectx: property (text), widget (QCheckBox, allowResizingCheckBox) >> #: plugins/extensions/dropshadow/wdg_dropshadow.ui:93 >> msgid "Grow image to make drop shadow fit if needed" >> msgstr "{+Масштабировать изображение при создании тени, если нужно+}" > "Расширять изображение ..." > > Слово "масштабирование" я бы понял как растяжение изображения вместе с его > содержимым, а тут размер "холста" меняется, а картинка, по возможности, не > двигается и не изменяется в размерах. Ок >> #: plugins/extensions/gmic/kis_gmic_plugin.cpp:129 >> msgid "Sorry, this filter is crashing Krita and is turned off." >> msgstr "{+Произошла ошибка фильтра и Krita была закрыта.+}" > Смысл не такой. Имеется в виду, что в Krita часто вознивает сбой из-за этого > фильтра, и поэтому его выключили (деактивировали). "Фильтр вызывал ошибки Krita и был отключен." >> #: plugins/extensions/gmic/kis_gmic_plugin.cpp:138 >> msgid "Sorry, this input mode is not implemented" >> msgstr "{+Невозможно использовать этот режим ввода+}" > Ближе к оригиналу: "Не реализована поддержка этого режима ввода" > >> #: plugins/extensions/gmic/kis_gmic_widget.cpp:236 >> msgid "Restore" >> msgstr "{+Восстановление+}" > Кнопка. "Восстановить". Ок. Исправлено. >> #. i18n: ectx: property (text), widget (QLabel, label_2) >> #: plugins/extensions/gmic/wdg_gmic.ui:17 >> msgid "G'Mic string:" >> msgstr "{+Поток G'Mic:+}" > "string" -- "строка", почему "поток"? multistream - многопоточный. Но конкретно насчёт этого случая на 100% не уверен >> #. ediff: state {-fuzzy-} >> #: plugins/extensions/imagesize/dlg_imagesize.cc:34 >> msgid "{-pixels/inch-}{+Pixels/Inch+}" >> msgstr "пикселов на дюйм" >> >> #: plugins/extensions/imagesize/dlg_imagesize.cc:35 >> msgid "Pixels/Centimeter" >> msgstr "{+Пикселов на сантиметр+}" > Лучше здесь начинать со строчной буквы. Это варианты из выпадающего списка > (combo box), вероятно (надо проверить) расположенного справа от поля ввода > числа. Если читать всю строку, будет получаться, например, "40 Пикселов на > сантиметр", а хочется "40 пикселов на сантиметр". Возможно, надо сократить до > "пикс/см", "пикселов/см" или "точек/см". > Ок. На сегодня всё. Завтра продолжу вносить правки из других ваших сообщений. Спасибо. Обновлённый файл: https://www.dropbox.com/s/kt617510k0nlb5v/krita.po
prev parent reply other threads:[~2014-04-03 18:04 UTC|newest] Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top 2014-04-02 2:15 Alexander Potashev 2014-04-03 18:04 ` Сыпченко Георгий [this message]
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=533DA2CA.4020004@gmail.com \ --to=superzhook@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