В процессе разработки движка, который будет использоваться для перевода фраз, обрабатываемых приложением.
В идеале нужно искать заданный элемент в XML, идентифицировать его по категории и затем передавать его в механизм перевода, который проверяет, была ли фраза уже преобразована или должна быть. Если это так, он будет помещен в таблицу перевода.
Базовая структура таблицы A:
element_id | element_type | category_type | value | language_id
Теперь есть графический интерфейс, который будет использоваться для перевода. Пользователь выберет данный элемент и категорию из выпадающего списка вместе с языком от и до языка.
При использовании элемента, категории и языка список будет отображать те элементы, которые не были преобразованы.
Затем пользователь введет преобразованную фразу.
Идея управления всем этим заключается в использовании таблицы сопоставления:
mapping_id | element_from_id | element_to_id | from_language | to_language
Итак, допустим, у нас есть следующее в первой таблице
1 | DMG_AREA | DAMAGE | Quarter Panel - Left | EN
Пользователь переводит его на FR с помощью графического интерфейса
Теперь таблица выглядит так:
1 | DMG_AREA | DAMAGE | Quarter Panel - Left | EN
2 | DMG_AREA | DAMAGE | QPL | FR
Второй стол выглядит так
1 | 1 | 2 | EN | FR
2 | 2 | 1 | FR | EN
Чтобы мы могли затем построить пакеты ресурсов, выполнив простой запрос из таблицы B, чтобы определить пару ключ / значение для хэш-карты «набора ресурсов», которая будет помещена в память для преобразования «на лету».
Предложения по улучшению - имеет ли смысл - есть ли более простой способ - решение с открытым исходным кодом уже существует?