YetAnotherTimeTracker / yatt

Telegram Bot lives here :)
MIT License
2 stars 4 forks source link

russian interface #34

Closed kaluginadaria closed 6 years ago

avbelyaev commented 6 years ago

https://ru.wikipedia.org/wiki/Don%E2%80%99t_repeat_yourself сейчас получилось WET ;)

оооочень много дублирования. коль скоро lang переместили в конекст, то в каждом стейт у тебя он доступен из context[CONTEXT_LANG из automtata]. представь, что ты в отображении стейта и как удобно было бы получить текст на нужном языке вызвав нечто пдобное:

def all_tasks_state(...):
    lang = conext[CONTEXT_LANG]
    ....
    reply_text = message_source[lang]['no_tasks_yet']
    update.reply_text(reply_text)
    reply_text = message_source[lang]['write_me']
    update..reply(reply_text)

и где-то например в /components/message_source.p:

message_source = {
    Language.ENG: {
        'write_me': 'Just write me something to create a new one :)',
        'no_tasks_yet': 'You don\'t have any tasks yet'
        ...
    }
    Language.RUS: {
        'write_me': 'Просто напишите мне что-нибудь, чтобы создать :)'
        'no_tasks_yet': 'у вас еще нет задач'
        ...
    }
}

в итоге все сообщения менеджятся из одного компонента. добавить язык проще простого полностью соблюден DRY и нет индусятины