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 也會以大写形式輸出。同樣地,如果是小寫,它也會以小寫形式輸出。

但是,您可能會發現章節標題中的其他單字因各種原因而變成小寫。因此,您可能需要一個通用解決方案,將所有單字轉換為標題大小寫(Title Case)。

沒有單行正規表達式可以做到這一點。因此,我看到兩種可能的解決方案:

1) 在您的 Drafting 模組集合中添加一個自訂模組,執行一些 Python 程式碼來將章節標題中的所有單字首字母大寫。

2) 為字母表中的每個字母添加一個正規表達式。在 Text Out 規則中有 26 個表達式並不那麼優雅,但它是可行的。

針對 'a' 的表達式為 Search For: (^\\s.*?\b)a(\w*) Replace with: \1A\2

為了方便添加所有這些,您可以在檔案 Output\fixup_synthesis_rules.xml 中的 <SearchReplaceRules> 下方添加以下 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 提出 已提問 4月 28, 2025
0 票
1 個回答 233 次瀏覽
如何在轉換規則中刪除詞綴?
rmdiamondl 336 提出 已提問 5月 8, 2022
0 票
3 個回答 474 次瀏覽
我正在準備將《路加福音》和《使徒行傳》印製成小冊子,但我找不到如何在《使徒行傳》開始之前插入一個中間標題頁。
Jamie 102 提出 已提問 8月 6, 2024
0 票
1 個回答 168 次瀏覽
如何使用移轉規則檔案中的範例邏輯?
Sara 246 提出 已提問 4月 28, 2025
0 票
1 個回答 42 次瀏覽
如何在轉移規則中引用附綴註釋?
Sara 246 提出 已提問 4月 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 位使用者