Вы можете создать таблицу с тремя столбцами: код целевого языка , исходная строка, переведенная строка. Индекс в таблице будет по первым двум столбцам, но я не буду связывать эту таблицу с другими таблицами с внешними ключами. Вам нужно будет добавить объединение (возможно, левое объединение для учета отсутствующих переводов) для каждого из терминов, которые необходимо перевести в каждом выполняемом запросе. Однако это сделает все ваши запросы очень проблематичными и, возможно, также снизит производительность.
Еще одна вещь, о которой вам нужно знать, - это на самом деле перевод терминов и ведение обновленной таблицы перевода. Это очень неудобно делать напрямую с базой данных и часто выполняется нетехническими людьми.
Обычно при локализации приложения вы используете что-то вроде gettext . Идея этого набора инструментов заключается в том, что он может анализировать исходный код, извлекать строки для перевода и затем создавать файлы перевода из них. Поскольку этот пакет существует уже давно, на его основе существует множество различных утилит, которые помогают с задачей перевода, одной из которых является Poedit , хороший графический редактор для перевода строк на разные языки. , Может быть проще сгенерировать уникальный список терминов, поскольку они появляются в базе данных в формате, который может проанализировать gettext, и выполнить перевод в коде приложения. Таким образом, вы сможете выполнять перевод жестко закодированных строк в приложении и значениях базы данных, используя одну и ту же технику.