mc-dev
mc-dev@conference.jabber.ru
[05:05:19] zeihee зашёл в конференцию
[05:39:14] andrew_b зашёл в конференцию
[07:02:30] zeihee вышел из конференции
[10:10:24] zeihee зашёл в конференцию
[10:11:09] slavazanko/h вышел из конференции
[10:12:18] slavazanko/h зашёл в конференцию
[11:11:00] andrew_b вышел из конференции
[12:50:18] slavazanko/h вышел из конференции
[12:51:08] slavazanko/h зашёл в конференцию
[12:55:53] zeihee вышел из конференции
[17:03:10] ASM вышел из конференции
[17:03:24] ASM зашёл в конференцию
[18:12:32] a.samoilov зашёл в конференцию
[20:03:14] <a.samoilov> Коллеги, есть вопрос. Во многих местах используется message (D_ERROR, _("Title"), _("Message"))
[20:03:52] <slavazanko/h> угу
[20:04:42] <a.samoilov> В случае кривого перевода с шаблонами printf это может привести к непредсказуемым эффектам. Стоит с эти бороться?
[20:05:24] <slavazanko/h> если перевод может содержать шаблон, то да.
[20:05:43] <slavazanko/h> мы и стараемся как можно меньше шаблонов в переводы выносить из-за возможных проблем
[20:06:02] <a.samoilov> т.е. менять на message (D_ERROR, _("Title"), "%s", _("Message"))
[20:06:57] <slavazanko/h> Но что делать с "Операция завершена. Скопировано %d файл(а/ов)"
[20:07:45] <a.samoilov> тут всё ок при передачи int вторым параметром
[20:07:51] <a.samoilov> передаче
[20:08:27] <slavazanko/h> сама фраза будет разбита на две и переводчикам не всегда будет понятно контекст перевода
[20:08:59] <a.samoilov> ??? мы друг друга не понимаем
[20:10:14] <a.samoilov> Я о том, что в message, как и в printf нельзя испольовать в качестве шаблона строку, которая может содержать %
[20:12:09] <a.samoilov> т.е. printf (_("mes")) в случае некорректного перевода "mes" как "сообщение %d" приведет к проблемам
[20:12:25] <slavazanko/h> Я так понял, ты предлагаешь заменить
message (D_ERROR, _("Title"), _("Операция завершена. Скопировано %d файл(а/ов)"), num_files)
на
message (D_ERROR, _("Title"), "%s %d %s" _("Операция завершена. Скопировано), num_files, _("файл(а/ов)"))
То есть, ты предлагаешь одну большую и вроде как логичную фразу разбить на несколько. Так?
[20:12:51] <a.samoilov> и должно быть переписано как printf("%s", _("mes"))
[20:14:10] <a.samoilov> Нет.
[20:15:13] <a.samoilov> message (D_ERROR, _("Background protocol error"), _("Reading failed")); // неправильно
[20:15:25] <a.samoilov> message (D_ERROR, _("Background protocol error"), "%s", _("Reading failed")); // правильно
[20:15:34] <slavazanko/h> А, понял. Ты не про шаблоны сейчас, а именно про те переводы, в которых и не должно быть шаблонов. Типа, защититься от использования шаблонов там. где их и не должно быть и они не ожидаются. Так?
[20:15:43] <a.samoilov> Да
[20:16:04] <slavazanko/h> тогда да, твоя мысль логична
[20:16:41] <slavazanko/h> ты на гитхабе есть?
[20:16:44] <slavazanko/h> логин?
[20:16:48] <a.samoilov> Нет
[20:18:06] <slavazanko/h> гм. Думал, тебе доступ дать, чтобы ты эти изменения в бранч 3265_cleanup занёс
[20:18:45] <a.samoilov> Это долгий процесс получить там учётку?
[20:18:58] <slavazanko/h> https://github.com
[20:19:04] <slavazanko/h> зарегайся
[20:19:11] <slavazanko/h> и скажи свой ник там.
[20:20:18] <a.samoilov> Я сейчас пару патчей могу бросить - утечка памяти и комментирование неиспользумых функций в smbfs
[20:21:58] <slavazanko/h> smbfs лучше пока не трогать -от этого кода будем избавляться. Есть https://www.midnight-commander.org/ticket/1
есть даже бранч 1_smbfs, в котором почти уже решение с новой реализацией с использованием libsamba (чуток допилить)
[20:23:14] <slavazanko/h> утечка памяти - это в клинап (3265_cleanup). мы обычно всякую мелочёвку в такие клинапные бранчи валим. Периодически просматриваем (ревьюваем) и вливаем в мастер
[20:24:12] <a.samoilov> asamoilov на github
[20:24:44] <slavazanko/h> смотри уведомления. Тебе инвайт должен придти
[20:24:55] <a.samoilov> Чем плох план Free ?
[20:25:10] <slavazanko/h> ?
[20:25:33] <slavazanko/h> какой план "Free"?
[20:26:50] <slavazanko/h> ты на m-c.o как sav ?
[20:27:03] <slavazanko/h> m-c.o = midnight-commender.org
[20:27:27] <a.samoilov> вероятно sav
[20:28:32] <a.samoilov> При регистрации на github предлагают выбрать план, по умолчанию Free $0/month
[20:28:59] <slavazanko/h> гуд. расширил тебе права на багтрекалке
[20:29:07] <slavazanko/h> а. Выбирай Free
[20:30:20] <a.samoilov> На m-c.o пароль можно сбросить?
[20:30:43] <slavazanko/h> они там типа бизнесом ещё занимаются. За деньги дают возможность делать репозитарии с закрытым доступом. Типа. с Free все могут скачать твой код из репозитория, а по другим планам - только те, кого назначишь.
[20:30:51] <slavazanko/h> ща попробую сбросить
[20:31:46] <slavazanko/h> а лучше ещё раз зарегайся как asamoilov. С теми же креденшелами. Я этому юзверю и расширю права.
[20:36:47] <a.samoilov> done
[20:38:09] <slavazanko/h> тоже done
[20:38:28] <slavazanko/h> теперь можешь править Вики и тикетами управлять
[20:38:40] <a.samoilov> 10х
[20:38:43] <slavazanko/h> с гитом работал ранее?
[20:39:24] <a.samoilov> увы... Но надеюсь - не rocket science
[20:39:45] <slavazanko/h> не :)
[20:41:11] <slavazanko/h> # получить копию репозитория себе
git clone https://github.com/MidnightCommander/mc.git
# перейти на ветку
git checkout 3265_cleanup
# тут исправления
mcedit xxxx.c
#
[20:41:38] <slavazanko/h> # посмотреть, какие файлы изменены, но не закоммичены:
git status
[20:43:07] <slavazanko/h> # подготовить файлы к коммиту
git add path/to/file.c path/to/file.h
# закоммитеть:
git commit -s
# посмотреть что накоммитал:
git log
# отправить свои коммиты на центральный репозиторий
git push origin 3265_cleanup
[20:43:27] <a.samoilov> thx
[20:44:12] <slavazanko/h> http://git-scm.com/book/ru/v1
[20:44:22] <slavazanko/h> это уже поглубже
[20:45:06] <a.samoilov> как описание к коммиту добавить?
[20:48:41] <slavazanko/h> мой ~/.gitconfig
[user]
signingkey = 0DDFEE09
name = Slava Zanko
email = slavazanko@gmail.com
[core]
editor = mcedit
autocrlf = input
[color]
status = auto
branch = auto
diff = auto
ui = auto
[alias]
ci = commit
co = checkout
s = show
l = log
st = status
br = branch
p = pull
ps = push
mr = merge
rb = rebase
rpo = remote prune origin
cob = !sh -c 'git checkout -b "$1" "origin/$1"' -
rpoc = !sh -c "git branch -D $(git remote prune origin | sed 's@.*origin/@@')"
[i18n]
commitEncoding = utf8
logOutputEncoding = utf8
[20:49:01] <slavazanko/h> editor = mcedit
тут поставь свой предпочитаемый редактор
[20:49:35] <slavazanko/h> и после команды git commit он будет вызываться. Там и введёшь описание коммита. Сохранишь в редакторе, выйдешь - и коммит сделается с описанием
[20:50:50] <slavazanko/h> signingkey = 0DDFEE09
это мой идентификатор PGP-ключа. Можешь удалить эту строку
[20:58:00] <a.samoilov> В смысле удалить?
[21:07:49] <slavazanko/h> ну убрать. Если у тебя есть свой pgp-ключ, то идентификатор будет по любому другим. Если есть - впиши свой. Если нету - просто убери строку
[21:08:03] <a.samoilov> ок
[22:39:37] a.samoilov вышел из конференции
[23:07:14] slavazanko/h вышел из конференции