资源文件只能改变程序内部的语言,但是如果想修改WP应用程序列表中的标题或磁贴上的标题就不行了。
这就需要使用语言资源DLL,语言资源DLL需要用C++项目创建MDSN上有比较详细的介绍,但是太麻烦了。
国外的有人写了一个WP7 AppResLib DLL Generator帮助我们生成 语言资源 DLL
原文地址:http://engine-designs.com/wp7-appreslib-dll-generator.html
首先下载 WP7 AppResLib DLL Generator
复制Sample.xml 命名为项目名RemoteControl.xml
编辑内容,国家代码LocaleID可以在Locale_ID_List.txt查询到,没添加就表示默认,Name可以随便取。
示例:
<Projects> <Project Name="RemoteControl"> <Language Name="Neutral"> <AppTitle>RemoteControl</AppTitle> <TileText>RemoteControl</TileText> </Language> <Language Name="Chinese-RPC" LocaleID="0804"> <AppTitle>多媒体遥控器</AppTitle> <TileText>多媒体遥控器</TileText> </Language> <Language Name="English (United States)" LocaleID="0409"> <AppTitle>RemoteControl</AppTitle> <TileText>RemoteControl</TileText> </Language> <Language Name="Chinese - Taiwan" LocaleID="0404"> <AppTitle>多媒体遥控器</AppTitle> <TileText>多媒体遥控器</TileText> </Language> </Project> </Projects>
然后再CMD里面运行WP7AppResLib RemoteControl.xml
就会在下生成目录RemoteControl,里面包含了AppResLib.dll,AppResLib.dll.0404.mui等。
全部拷贝到项目根目录,就是App.xaml所在地目录,“添加现有项”到项目中。
查看属性,将生成操作全部设置为“内容”。
修改WMAppManifest.xml替换2个地方:
<App Title="@AppResLib.dll,-100" …
<Tokens> <PrimaryToken ...> <TemplateType5> ... <Title>@AppResLib.dll,-200</Title> ... </TemplateType5> </PrimaryToken> </Tokens>
WP8的直接在<TemplateFlip></TemplateFlip>内的Title改
应用清单WP7和WP8有些许不同,可参考http://technet.microsoft.com/zh-cn/subscriptions/ff769509
好了这样应用程序列表中的标题或磁贴上的标题就支持本地化了。赶紧测试一下。
参考文档:
Windows Phone 全球化和本地化
http://msdn.microsoft.com/zh-cn/library/ff637522(v=vs.92).aspx