ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Общие вопросы программирования (https://forum.antichat.xyz/forumdisplay.php?f=206)
-   -   Выбор языка telegram bot (https://forum.antichat.xyz/showthread.php?t=1387452)

laiser 09.05.2021 21:12

Всем привет, мне нужен ваш совет.

В моес тг боте есть функция смена языка (Рус или eng).

Я реализовал это с помощью API Google Translate. Каждое нажатие кнопки от пользователя идет обращение к БД, от туда берется ячейка с настройками языка. И после все кнопки переводятся на тот язык который стоит в настройках.

В этом есть большой минус - иногда долго загружаются кнопки из-за интернета. Но есть и плюс, можно сделать 100 языков не меняя код.

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

Вот мои идеи:

API Google Translate

Записать все рус. и англ. слова в разные файлы, и брать их от туда.

Забить и через if сделать.

Neon3333 10.05.2021 05:14

Цитата:

Сообщение от laiser

Всем привет, мне нужен ваш совет.

В моес тг боте есть функция смена языка (Рус или eng).

Я реализовал это с помощью API Google Translate. Каждое нажатие кнопки от пользователя идет обращение к БД, от туда берется ячейка с настройками языка. И после все кнопки переводятся на тот язык который стоит в настройках.

В этом есть большой минус - иногда долго загружаются кнопки из-за интернета. Но есть и плюс, можно сделать 100 языков не меняя код.

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

Вот мои идеи:
API Google Translate
Записать все рус. и англ. слова в разные файлы, и брать их от туда.
Забить и через if сделать.

Только держать уже подготовленные переводы где тебе удобно, делать перевод на api и каждый раз дергать апи - извращение какое-то. Если тебе усралось уже так то апи, закешируй переводы с него и не дергай по 100500 раз. Да и + я уверен, что даже если ты юзаешь аиограм, то работу с апи ты сделал синхронную, то есть пока один нажмет какую-то кнопку, все остальные будут ждать пока твоя "мега система" все разрулит + ко всему прочему где-то слышал, что у гугл транслейта есть лимиты обращений к апи

laiser 10.05.2021 14:01

Цитата:

Сообщение от Neon3333

Только держать уже подготовленные переводы где тебе удобно, делать перевод на api и каждый раз дергать апи - извращение какое-то. Если тебе усралось уже так то апи, закешируй переводы с него и не дергай по 100500 раз. Да и + я уверен, что даже если ты юзаешь аиограм, то работу с апи ты сделал синхронную, то есть пока один нажмет какую-то кнопку, все остальные будут ждать пока твоя "мега система" все разрулит + ко всему прочему где-то слышал, что у гугл транслейта есть лимиты обращений к апи

Да, я извращенец. Мне этот вариант понравился своей простотой и многофункциональностью. И нет, работа с апи так же асинхронно.

Получается хранить перевод в файлике. Спасибо.

SCHWEITZER 10.05.2021 14:09

Можно заюзать кэширование на memcached / redis, как раз для временного хранения данных придумано


Время: 05:52