Если у вас нет дополнительных требований, я бы подошел к дизайну API следующим образом:
[
{
"origin":"ARABIC1",
"meaning":"English value 1",
"partOfSpeach":"noun",
"meaningContext":"English value 1",
"description":"English text 1",
"meaningAlternative":"English value 1.1"
},
{
"origin":"ARABIC2",
"meaning":"English value 2",
"partOfSpeach":"noun",
"meaningContext":"English value 2",
"description":"English text 2",
"meaningAlternative":"English value 2.1"
},
{
"origin":" - ",
"meaning":" - ",
"partOfSpeach":"punctuation"
},
{
"origin":"ARABIC3",
"meaning":"English value 3",
"partOfSpeach":"noun",
"meaningContext":"English value 3",
"description":"English text 3",
"meaningAlternative":"English value 3.1"
}
]
Это позволит вам перестроить весь текст в пользовательском интерфейсе и добавить некоторую вспомогательную информацию для отдельных слов (илифразы, если вы выберете).
Хранение базы данных тоже будет простым.Для No-SQL вы просто сохраняете значение «как есть», в SQL вы идете:
CREATE TABLE translated_phrases (
id serial PRIMARY KEY, -- or whatever PK type you like
book_id int NOT NULL, -- a reference to a book or individual translation
origin varchar NOT NULL,
meaning varchar NOT NULL,
part_of_speach int NOT NULL, -- a reference to list of parts
description varchar, -- optional description
meaning_alt varchar -- optional alternative meaning
)