我打算在 Flex 中创建一个多语言应用程序。我的方法是这样的:拥有一个包含应用程序中所有短语的 XML...
<mx:Script>
<![CDATA[
public var selectedLanguage : String = "spanish";
public var language : xml =
<xml>
<message id="<<hashcode of the string in english>>" english="hello world" spanish="hola mundo" french="bonjour tout le monde"/>
<message id="<<hashcode of the string in english>>" english="good bye every body" spanish="adios a todos" french="tout le monde au revoir"/>
</xml>;
//Then a function to make the translation:
public function translate(msg:String):String{
//Maybe not a hashCodeFunction but some function to return an unique code for every string
var hashcode : int = hashCodeFunction(msg);
var translation : String = language.message.(@id==hashcode)[selectedLanguage];
if(translation==null) return msg;
return translation;
}
]]>
</mx:Script>
<mx:Button label="translate('hello world')"/>
好吧,xml 可以以不同的方式构造,但我想要的是创建所有标签,如“翻译('some text')”,因为我认为这样在程序员时更好,并且在开发过程结束时创建一个“预处理器”,它将在源代码中查找所有字符串,如“translate('some text')”并提取“some text”,然后计算哈希码并将其附加到 xml,当 xml 准备就绪时该应用程序将是多语言的。
我想知道是否有人有另一种分享方式。