169 похожих чатов

Помогите пожалуйста, как лучше сделать локализацию? Спрашивать язык при /start

в боте и через фильтры проверять(Не знаю как передавать доступ к бд в фильтры) или по системному языку пользователя?

66 ответов

276 просмотров

fluentogram

Андрей-Foloming Автор вопроса

Что? Это что такое

Андрей Foloming
Что? Это что такое

https://t.me/aiogram_ru/1191077 в примере есть огрехи, но в целом показано как это работает Можешь глянуть оригинальный репо, там есть ссылка

Андрей-Foloming Автор вопроса
Aleksandr Danilov 🇺🇦
https://t.me/aiogram_ru/1191077 в примере есть ог...

Не спасибо, не вариант, уж лучше через фильтры

Андрей-Foloming Автор вопроса
Aleksandr Danilov 🇺🇦
хорошо, пингани когда настрадаешься

но с fluentogram уже придётся весь код переписывать, а я не на начальной стадии разработки

Андрей Foloming
но с fluentogram уже придётся весь код переписыват...

флюентограм при желании можно приделать в тройку

Андрей Foloming
но с fluentogram уже придётся весь код переписыват...

Ну просто прокинь через мидлварь экземпляр gettext

Андрей-Foloming Автор вопроса
Tishka17
Ну просто прокинь через мидлварь экземпляр gettext

ну в моём случае я не понимаю как прокидывать

Андрей Foloming
ну в моём случае я не понимаю как прокидывать

А как из мидлвари в целом прокидывают объекты в хэндлер?

Андрей-Foloming Автор вопроса
Tishka17
А как из мидлвари в целом прокидывают объекты в хэ...

В конструкторе назначаются данные, в pre_process они устанавливаются через дату в хэндлер, в post_process удаляются UPD. Я так понимаю

Андрей Foloming
В конструкторе назначаются данные, в pre_process о...

Ну вот и прокидывай так же через пре процесс

Андрей-Foloming Автор вопроса
Tishka17
Ну вот и прокидывай так же через пре процесс

Дак это в хэндлер так прокидывается, а в фильтр как?

Андрей-Foloming Автор вопроса
Tishka17
Зачем тебе перевод в фильтре?

Проверять там какой язык, is_lang="ru", is_lang="eng", хочу сделать 2 файла с ru и eng хэндлерами, ибо делать в каждом хэндлере в 2.1 раза больше кода не очень круто

Андрей Foloming
Проверять там какой язык, is_lang="ru", is_lang="e...

message.from_user.language_code глянь ты флюентограм, его можно приделать и на двойку

Андрей-Foloming Автор вопроса
Aleksandr Danilov 🇺🇦
message.from_user.language_code глянь ты флюентог...

language_code это системный язык в тг. Да я думал через него сделать, но ведь это не всегда верные данные

Андрей Foloming
Проверять там какой язык, is_lang="ru", is_lang="e...

Разные набор хэндлеров для разных языков? Необычно. Зачем так?

Андрей Foloming
Проверять там какой язык, is_lang="ru", is_lang="e...

Почему код хэндлера вообще зависит от языка?

Андрей Foloming
language_code это системный язык в тг. Да я думал ...

можешь сделать меню на инлайн кнопках чтоб выведать язык у юзера, но это потом

Андрей-Foloming Автор вопроса
Tishka17
Почему код хэндлера вообще зависит от языка?

вот именно, через базу данных в хэндлере если бы я проверял, то приходилось бы текст менять на английский и в обратную сторону, а если через фильтры то просто скопировать файл, поменять текст и поставить фильтры, ну и ещё сделать языковой префикс у хэндлеров, тогда получится что я смогу делать обновления в разных языках, что-то типо веток в гите.

Tishka17
Какой ещё языковой префикс у хэндлеров

надеюсь он не будет по хендлеру на каждый язык ебашить

Андрей-Foloming Автор вопроса
Tishka17
Так уже ебашит, выше говорил же

Ну не "ебашу", но хотел сделать именно так, на примере веток в гите

Tishka17
Так уже ебашит, выше говорил же

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

Андрей-Foloming Автор вопроса
Aleksandr Danilov 🇺🇦
это плохая ужасная хуёвая крайне хуёвая идея

почему? я смог бы сделать обновление на английском, которое не доступно в русском и наоборот

Андрей Foloming
Ну не "ебашу", но хотел сделать именно так, на при...

Зачем? Языки это не про разный набор функциональности, это просто разный текст

Андрей Foloming
почему? я смог бы сделать обновление на английском...

ты лечишь проблему неверным инструментом, что в дальнейшем приведёт тебя к головной боли

Андрей-Foloming Автор вопроса

Да накуй мне его переводы, у меня в английском тексте развилка действий другая будет

Андрей Foloming
Да накуй мне его переводы, у меня в английском тек...

напиши потом что у тебя получится. потом будешь себя вспоминать, какой хуйней ты занимался, игнорируя советы я пас, ну нахуй

Андрей Foloming
Да накуй мне его переводы, у меня в английском тек...

Почему если я как юзер из Армении решил юзать английский вместо русского, то у меня поменяется набор пунктов меню?

Tishka17
Почему если я как юзер из Армении решил юзать англ...

Ну очевидно, что это твоя проблема. Нахрена ты в Армении своим английским выёбываешься? :D :D

Андрей-Foloming Автор вопроса
Tishka17
Почему если я как юзер из Армении решил юзать англ...

Ну тут уже зависит от того что человек выберет, более родной Русский или же наоборот, Английский

Андрей Foloming
Ну тут уже зависит от того что человек выберет, бо...

Так блин вопрос: почему фичи зависят от языка, а не от других параметров?

Tishka17
Окей, Español

Теперь ещё и испанским выпендриваешься

Андрей-Foloming Автор вопроса
Aleksandr Danilov 🇺🇦
եւ ինչու ոչ

ես արգելեցի Незнаем

А я напомню, что это отличный пример "проблемы XY". человек пришёл с вопросом про локализацию, а в итоге выяснилось, что у него вся бизнес-логика хромает

Андрей Foloming
ես արգելեցի Незнаем

армянский если верить гуглу

Groosha
А я напомню, что это отличный пример "проблемы XY"...

нихуя ты сузил радиус проблемы до бизнес-логики

Андрей-Foloming Автор вопроса
Groosha
А я напомню, что это отличный пример "проблемы XY"...

Да бизнес-логика нормальная ( Зачастую пишу бизнес-логику для проектов на заказ ) , а я приводил же примеры всё время. Имхо вы насмотрелись на людей которые смотрят на проект сугубо только с 1 стороны и скорее не правильной, то не надо считать что другие точно такие же. Каждый человек по своему может решить какую-то проблему опираясь на советы более старших/опытных людей. Не надо винить других из-за того что путаете и вводите в неловкое положение нуждающегося в помощи человека

Андрей Foloming
Да бизнес-логика нормальная ( Зачастую пишу бизнес...

Слушай, если у тебя для разных языков разные хэндлеры, то это уже тревожный звоночек

Андрей Foloming
Да бизнес-логика нормальная ( Зачастую пишу бизнес...

> Имхо вы насмотрелись на людей которые смотрят на проект сугубо только с 1 стороны и скорее не правильной Сам иди туда же

Андрей-Foloming Автор вопроса
Aleksandr Danilov 🇺🇦
нихуя ты сузил радиус проблемы до бизнес-логики

На счёт fluentogram, я его сразу не стал смотреть в рассмотрении поскольку увидел там i18n, а из python beginners где-то ещё в апреле/мае видел что тишка и ещё какой-то персонаж говорили что он сыроват и иногда не так работает, поэтому и не брал его в рассмотрение

Андрей Foloming
Да бизнес-логика нормальная ( Зачастую пишу бизнес...

Имхо вы насмотрелись на людей которые смотрят на проект сугубо только с 1 стороны и скорее не правильной нихуя ты завернул ебать

Андрей Foloming
Да бизнес-логика нормальная ( Зачастую пишу бизнес...

Ещё раз: раздельное включение фич и языки - слабо связанные вещи. Да, язык может быть поводом для отключения каких-то фич, но вероятно не должен. Плюс во многих случаях фича будет работать на нескольких языках сразу

Андрей-Foloming Автор вопроса
Groosha
> Имхо вы насмотрелись на людей которые смотрят на...

Я никого не куда не отправлял, просто упомянул факт который скорее всего опровергнут был ещё давно

Андрей Foloming
Я никого не куда не отправлял, просто упомянул фак...

протрезвей, потом поговорим и да, упомянутая цитата слегка неприятная

Андрей-Foloming Автор вопроса
Андрей Foloming
На счёт fluentogram, я его сразу не стал смотреть ...

Ну и к тому же я с 'i18n' не знаком, я даже слышал о нём раза 3 всего, так что повод юзать его я не нашёл, только для опыта ведь времени то у меня мало

Андрей-Foloming Автор вопроса
Aleksandr Danilov 🇺🇦
как же так получилось

Что именно? Что я не знаком с ним? Может стек другой и не использую такие технологии, может просто мало людей которые об этом говорят в комьюнити в котором меня нету. Почему мало времени? Ну наверное потому что у меня тоже свои дела есть, уделяю несколько часов в неделю на разработку и всего-то Ну а так, ближе к проблеме, как юзать то fluentogram? это в i18n загружать каждый текст с шаблонами тогда что-ли? UPD. await message.answer(i18n.greet.by.name(user="Alex")) - Я так понял это шаблон

Андрей Foloming
Что именно? Что я не знаком с ним? Может стек друг...

ты посмотри где создаётся инстанс Хаба. Там питоновской строкой вводится синтаксис переводов

Андрей-Foloming Автор вопроса
Aleksandr Danilov 🇺🇦
У тебя есть пример целого бота, ну неужелимало

Ага, только там вроде на тройке, а я в тройке вообще ничего понять не могу, как переписать то

Андрей Foloming
Ага, только там вроде на тройке, а я в тройке вооб...

инициализацию Хаба и прочего - из main в мидлварь, которая будет пробрасывать хаб в контекст запроса

Ты в проде такие же комменты оставляешь? =)

Похожие вопросы

Обсуждают сегодня

Ребят в СИ можно реализовать ООП?
Николай
33
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем доброго вечера. Разрабатываю 32 раз. приложение в Delphi. Столкнулся с тем, что стандартный  TFilestream  не работает с большим файлом > 2 ГБайт (после вызова функции see...
Vadim Gl
16
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
добрый день. Подскажите, есть сайт на 1.4.7 и я хочу обновиться, особо ничего не меняя. мне выбирать версию 1.4.35 или третью ветку? и можно ли обновлять "как есть", или нужно...
Digital Cat
12
Кто кодит под Лазарем на винде, у вас аналогично VCL переопределяются CreateWnd и CreateParams для конкретных классов контролов и все заданные флаги влияют?
А Андрей
11
У меня задача: написать брокер сообщений. Очереди и потребители. Очереди поддерживают приоритеты. Очередь отдает сообщения, только обработчикам с соответствующими характеристи...
Aleksandr Filippov
2
народ, плиз хелп, всю голову сломал себе уже... разве может быть так, что GetProcAddress( GetModuleHandle( "kernel32.dll" ), "SetThreadDescription" ) вернёт ненулевое значение...
Iluha Companets
12
А, ты про текущую реализацию? Нет конечно, я бы сделал правильно - сейчас там гавнокод
Александр (Rouse_) Багель
6
Карта сайта