Предположительно у вас есть один или несколько текстовых файлов, один на языке А, один на языке В и т. Д., Причем последний является переводом первого. С этим допущением:
Вы можете пометить свои текстовые файлы с уникальными пронумерованными тегами вокруг слов, фраз и/или знаков препинания, например: «Дорогой сэр, как вы сегодня?» в перевод на немецкий язык становится: «Sehr geehrter Herr, Wie Geht эс реж хойте?»:
<Language-English:<11:<4:<1:Dear> <2:Sir><3:,>> <10:<7:<5:How are> <6:you>> <8:today><9:?>>>>
<Language-Deutsch:<11:<4:<1:Sehr geehrter> <2:Herr><3:,>> <10:<7:<5:wie geht> <6:es>> <8:dir heute><9:?>>>>
Моего немецким довольно ржавая, так что я не могу иметь тегов вполне корректно, но они все равно должны показать, что я имею в разум.
Как вы можете видеть, все предложение и его части имеют свои собственные теги. При отображении текста каждая пара <n:
>
будет удалена и может быть заменена подчеркиванием или какой-либо другой формой выделения, чтобы указать группы. Конечно, может быть несколько подчеркиваний/подчеркиваний (в этом примере должно быть до четырех). При нажатии на (и визуальное подчеркивание) выделения в тексте на языке А соответствующая подсветка (ы) в языке B (и других языках, если присутствует) также будет подчеркнута.
Естественно, скорее всего, работа переводчика-человека будет выполнять разметку, поскольку автоматизация фактического перевода и применение тегов в этот момент является нетривиальной задачей.
Однако пользовательский интерфейс, где элементы на каждом языке могут быть одновременно выделены, а затем помечены как эквивалентные, может облегчить процесс создания отмеченного файла (ов).
Что касается других соображений (массивов и баз данных), они, похоже, являются чем-то вроде чрезмерного усложнения. Вам все равно придется как-то разметки ваших текстов, чтобы они могли быть загружены в эти структуры, поскольку слова или даже фразы на одном языке не обязательно имеют транслитерацию 1: 1 эквиваленту на другом языке) и обычно могут Легко переводиться машиной. Когда у вас есть разметка, говорить о массиве/словаре/базе данных/других структурах становится немного неактуальным и беспокоит только программиста UI.
EDIT:
При дальнейшем рассмотрении, метки не могут быть полностью вложен, и могут быть разделены, так что вам, возможно, потребуется пара тегов <n:
:n>
, чтобы частично перекрывающихся и расщепленные помеченных областей. Например.:
<1:The:1> <2:black:2> <1:dog:1> <3:and <4:the dog:3>'s puppies:4>
имеет фрагменты: «Собака», «черный», «и собака», и «щенков собаки».
Edit 2:
Вы могли поддерживать мульти-тексты только имея тег пары уникальные идентификаторы во всех языках:
EN: "The Knight's coat of arms was defaced"
DE: "Das Wappen des Ritters wurde verunstaltet"
FR: "Le blason du Chevalier a été abîmé"
<1:The Knight's:1> <2:coat of arms:2> <5:<3:was:3> <4:defaced:4>:5>.
<2:Das Wappen:2> <1:des Ritters:1> <3:wurde:3> <4:verunstaltet:4>.
<2:Le blason:2> <1:du Chevalier:1> <5:a été abîmé:5>.
Как вы можете видеть теги 1, 2, 3 & 4 применимы на английский и немецкий, а теги 1, 2 & 5 применимы к английскому и французскому языкам. Теги могут быть легко разделены и частично перекрываются.
Я не думал о тегах в тегах. Это интересная идея, но потребуется специальный парсер. Кроме того, этот формат будет поддерживать только битекс, потому что слова/фразы тесно связаны с целевым языком. Мне нравится простота этой идеи. Другие структуры данных действительно более сложны, но могут обеспечить большую гибкость или другие функции. –
Да, потребуется настраиваемый парсер и пользовательский интерфейс. Вы не указали, что он должен был использовать компоненты вне полки. –
См. Раздел «Редактирование 2» для многопоточной поддержки. –