|
樓主 |
發表於 2006-9-20 14:55:23
|
顯示全部樓層
如果有一個檔案是以下這樣的類型....它其實是 XML 的一種格式類型,但你使用 XML Parser 是解不出來的:
<String Id="DlgDestination_Folder">Destination Folder</String>
<String Id="DlgDestination_Text"><![CDATA[Setup will install [ProductName_NOM] in the following folder.</String>
<String Id="DlgDestinationInvalid_TextSymbols">Destination folder name contains inadmissible characters.</String>
<String Id="DlgBrowse_ComboText"><![CDATA[&Look in:]]></String>
<String Id="DlgBrowse_TailText"><![CDATA[&Folder name:]]></String>
你會發現需要翻譯的字串介於 "> 到 </String> 之間。但是有的字串在中間多了用 <![CDATA[]] 包起來的字串。因此必須設定兩組字串解析規則。所以可以得到兩個規則:
1. ">要翻譯的文字</String><EOL>
2. "><![CDATA[要翻譯的文字]></String><EOL>
其實單獨解析這樣的字串並不困難,重點在於哪個解析規則排在前面。第二個規則其實包含於第一個規則,這個時候,被包含的規則 (也就是第二個) 必須排在包含者 (第一個) 之後,如果順序相反,則所有的字串都會解不出來。
當然,這兩個規則正常來說要從 <String Id= 這裏開始,這個時候必須配合使用 regular expression 的表示方式,並且還可以將 <String Id= 後面雙引號中的字串作為字串 ID。 |
|