0 голосов
145 просмотров

Наши подзаголовки в обоих переводах написаны с заглавной буквы (Title Case), где каждое слово начинается с заглавной буквы (без малых слов, написанных со строчной). В процессе использования FLExTrans иногда встречаются фразы (например, для ключевых терминов), где только первое слово в фразе выводится с заглавной буквы. Кроме того, иногда указательное слово, которое является суффиксом в исходном языке, на самом деле является отдельным словом в целевом языке и выводится со строчной буквы. Приведённый ниже пример демонстрирует обе проблемы:

\s1 Haruanga Babuna Mana Sipsipka Hanggalang   >   \s1 Pasilanga babuna Mana Sipsip xa Panggalang

Есть ли способ исправить это с помощью правил вывода текста (text out rules)? Есть ли у кого-нибудь регулярное выражение, которое работает в правилах вывода текста для этой задачи?

Переведено машиной с языка English
FLExTrans от (126 очков)
снова показан от [Administrator]
| 145 просмотров

1 ответ

0 голосов

Я понимаю, что происходит. Ваша лексическая запись — haruanga babuna, которая сопоставлена с pasilanga babuna. Заглавная буква в первом слове сохраняется, но не во втором. Движок передачи FLExTrans не может обработать это, поэтому вам придётся внести изменения после синтеза.

В случае перехода от Sipsipka к Sipsip xa, поскольку это создаётся правилом, вы можете обернуть выводимую строку литералов элементом 'get-case-from'. Это будет выглядеть так:

Это означает, что если исходное слово, приходящее на вход, написано с заглавной буквы, то «xa» будет выведено с заглавной буквы. Аналогично, если оно написано со строчной буквы, оно будет выведено со строчной.

Однако у вас могут быть другие слова в заголовке раздела, которые выводятся со строчной буквы по разным причинам. Поэтому вы можете захотеть общее решение, чтобы сделать все слова в заголовке с заглавной буквы.

Не существует однострочного регулярного выражения, которое могло бы сделать это. Поэтому я вижу два возможных решения:

1) Добавьте пользовательский модуль в ваш набор модулей Drafting, который будет выполнять некоторый код Python для капитализации всех слов в заголовке раздела.

2) Добавьте регулярное выражение для каждой буквы алфавита. Это не очень удобно, иметь 26 выражений в ваших правилах Text Out, но это работает.

Выражение для 'a' будет: Искать:  (^\\s.*?\b)a(\w*) Заменить на:  \1A\2

Чтобы легко добавить все эти выражения, вы можете добавить следующие строки xml ниже <SearchReplaceRules> в файле Output\fixup_synthesis_rules.xml:

 <SearchReplaceRule RegEx="yes" Inactive="no" Comment="">

   <SearchString>(^\\s.*?\b)a(\w*)</SearchString>

   <ReplaceString>\1A\2</ReplaceString>

 </SearchReplaceRule>

 <SearchReplaceRule RegEx="yes" Inactive="no" Comment="">

   <SearchString>(^\\s.*?\b)b(\w*)</SearchString>

   <ReplaceString>\1B\2</ReplaceString>

 </SearchReplaceRule>

 <SearchReplaceRule RegEx="yes" Inactive="no" Comment="">

   <SearchString>(^\\s.*?\b)c(\w*)</SearchString>

   <ReplaceString>\1C\2</ReplaceString>

 </SearchReplaceRule>

 <SearchReplaceRule RegEx="yes" Inactive="no" Comment="">

   <SearchString>(^\\s.*?\b)d(\w*)</SearchString>

   <ReplaceString>\1D\2</ReplaceString>

 </SearchReplaceRule>

 <SearchReplaceRule RegEx="yes" Inactive="no" Comment="">

   <SearchString>(^\\s.*?\b)e(\w*)</SearchString>

   <ReplaceString>\1E\2</ReplaceString>

 </SearchReplaceRule>

 <SearchReplaceRule RegEx="yes" Inactive="no" Comment="">

   <SearchString>(^\\s.*?\b)f(\w*)</SearchString>

   <ReplaceString>\1F\2</ReplaceString>

 </SearchReplaceRule>

 <SearchReplaceRule RegEx="yes" Inactive="no" Comment="">

   <SearchString>(^\\s.*?\b)g(\w*)</SearchString>

   <ReplaceString>\1G\2</ReplaceString>

 </SearchReplaceRule>

и т.д.

Переведено машиной с языка English
от (336 очков)

Улучшенный регулярный выражение:

(^\\s[^\\]*?\b)r(.+?)(?=\\)

замена может остаться:

\1R\2

Улучшение предотвращает изменение регистра, когда достигается следующий обратный слэш (\), что важно. 

Переведено машиной с языка English

Похожие вопросы

0 голосов
1 ответ 117 просмотров
Как выполнить самопроверку синтеза текста в целевом проекте?
Sara 250 задал вопрос апр 28, 2025
0 голосов
1 ответ 320 просмотров
Как удалить аффикс в моих правилах передачи?
rmdiamondl 336 задал вопрос май 8, 2022
0 голосов
3 ответов 2,3тыс. просмотров
Я готовлю Евангелие от Луки и Деяния Апостолов к печати в виде брошюры, но не могу понять, как вставить промежуточный титульный лист перед началом книги Деяния.
Jamie 102 задал вопрос авг 6, 2024
0 голосов
1 ответ 222 просмотров
Как использовать пример логики, который находится в файле правил передачи?
Sara 250 задал вопрос апр 28, 2025
0 голосов
1 ответ 124 просмотров
Как ссылаться на глоссы аффиксов в правилах переноса?
Sara 250 задал вопрос апр 28, 2025
Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
Very truly I tell you, whoever accepts anyone I send accepts me; and whoever accepts me accepts the one who sent me.
John 13:20
3,069 вопросов
6,030 ответов
5,700 комментариев
2,038 пользователей