XNA-利用Content Pipeline輸出多國語言

XNA-利用Content Pipeline輸出多國語言

XNA Creators Club Online裡有一個多國語言輸出的範例Localization

他就是自己寫一個Content Processor來做到這件事。

之前對於輸出文字的部份有提到SpriteFont,他預設的Content Processor是Sprite Font Description - XNA Framework,而spritefont檔是一個xml檔。

對於前一篇XNA-Content Pipeline有了解的人應該會知道這個xml檔會由預設的Importer(XmlImporter)讀入轉成FontDescription,

再由FontDescriptionProcessor轉成SpriteFontContent。

而此範例的Process函式除了解析xml後去載入所有的資源檔(Resx)外,最重要的就是資源檔的所有字加到FontDescription的Characters裡

片段程式碼如下:


foreach (XmlNode xmlNode in xmlDocument.SelectNodes("root/data/value"))
{
	string resourceString = xmlNode.InnerText;

	// Scan each character of the string.
	foreach (char usedCharacter in resourceString)
	{
		input.Characters.Add(usedCharacter);
	}
}

其實資源檔也是一個xml格式的檔案,讀出裡面的文字後將他一一加入input.Characters。

加入之後,真正轉換成SpriteFontContent的功能也只是交給預設的context.Convert去做,所以其實概念是很簡單的。