Я разработчик веб-приложения (диспетчера задач).
Это приложение должно быть доступно на многих языках.Таким образом, у пользователя есть обычный языковой выпадающий список для переключения на другой язык.
Мне пришлось создать собственную систему перевода с MySQL в качестве бэкенда, потому что у меня были определенные ограничения.
Основная таблицасистема (включая некоторые записи в качестве примеров) представляет собой таблицу translation
:
id | language_id | string_id | message
1 | en | WELCOME | welcome
2 | it | WELCOME | benvenuto
Я могу написать функцию getTranslatedMessage
, которая получит string_id
в качестве ввода и _ определит текущий язык _сделать запрос в БД и получить одну строку _ вернуть переведенное сообщение
Проблема такой системы в том, что она сильно укрепит базу данных.Если у меня будет 20 строк для перевода на странице, будет 20 запросов к базе данных на каждую загрузку страницы.
Как вы думаете, я должен пойти по этому пути, потому что он самый чистый и простой, используя memcache
, чтобы сохранить результат каждого getTranslatedMessage
вывода, используя language_id
и string_id
в качестве ключа длязапись в memcache?
Вы сделали бы это по-другому?
Возможно, я думал, загружая все сообщения для языка в глобальном массиве $lang
при запуске.
Любое предложение будет более чем приветствоваться, так как этот компонент будет ключевым в моем приложении..
Спасибо,
Дан