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

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

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

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

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

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 ответ 53 просмотров
Как выполнить самопроверку синтеза текста в целевом проекте?
Sara 246 задал вопрос апр 28, 2025
0 голосов
1 ответ 233 просмотров
Как удалить аффикс в моих правилах передачи?
rmdiamondl 336 задал вопрос май 8, 2022
0 голосов
3 ответов 474 просмотров
Я готовлю Евангелие от Луки и Деяния Апостолов к печати в виде брошюры, но не могу понять, как вставить промежуточный титульный лист перед началом книги Деяния.
Jamie 102 задал вопрос авг 6, 2024
0 голосов
1 ответ 168 просмотров
Как использовать пример логики, который находится в файле правил передачи?
Sara 246 задал вопрос апр 28, 2025
0 голосов
1 ответ 42 просмотров
Как ссылаться на глоссы аффиксов в правилах переноса?
Sara 246 задал вопрос апр 28, 2025
Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
Give proper recognition to those widows who are really in need.
1 Timothy 5:3
3,053 вопросов
6,013 ответов
5,677 комментариев
2,032 пользователей