如何实现Windows Phone 7应用的多语言方案
openkk
13年前
原文链接: http://windowsphonegeek.com/articles/Localizing-a-Windows-Phone-app-Step-by-Step
这篇文章中我主要讲讲如何实现 Windows Phone 7的多语言实现(应用的本地化)
一般情况下,我们需要将不同的本地化资源文件与程序代码分离开。。。。
因为Visual Studio将要使用这些不同的资源文件来在你的应用中创建不同的程序集。
关于这一点如果你想要知道更多的话,请参考MSDN文档。
开始
step1: 首先创建一个默认的Windows Phone 7 应用程序。
step2: 为你的应用添加当前默认语言的资源文件。在我们这个例子中将添加一个名为AppResources.resx的资源文件。
step3: 打开刚才的资源文件并输入一条预计语言的字符串,如下图。
注意:当你在资源文件的编辑器中修改字符串时,你应该牢记以下几点。
1,名称(Name)必须是唯一的,这样的话你要尽可能让名称表达出它的用意。
2,对应的值(Value)就是将要到应用中显示的字符串。
3,最右边的评论(Comment)是可填可不填的,但这玩意对于程序员去理解当前这一句话的意思是非常有用的,尤其当资源文件中包 含过多的字符串时。
step4: 为我们这个应用将要实现的每一种语言都复制出一份刚才的资源文件夹。请特别注意每一个资源文件的文件名必须是正确 的文化/语言名称,具体信息可参考 Culture and Language Support for Windows Phone. 但在今天我们这个范例中,我们将使用 文件名为AppResources.de-DE.resx(德语)的资源文件。总体看来,资源文件的文件名格式应该为:
step5: 为每一个资源文件内部句子进行翻译。
step6: 打开项目的属性窗口来让应用支持更多的 文化/语言。但首先必须先卸载项目才行,你可以鼠标右键项目文件然后选 择"Unload Project"。
随后依然鼠标右键项目文件选择“Edit”选项
最后我们需要在项目中通过以下方式添加的新语言的支持
<SupportedCultures>de-DE;</SupportedCultures>
注意:如果你需要添加更多的语言支持的话,请像下面这样使用分号将不同的语言隔开
step7:我们还要确保所有的资源文件的获取方式为public!
step8:然后我们创建一个新类,里面将包含一个属性来输出所有的资源。
public class LocalizedStrings { public LocalizedStrings() { } private static AppResources localizedResources = new AppResources(); public AppResources AppResources { get { return localizedResources; } } }
step9:在App.xaml文件中添加如下代码:
<Application.Resources> <local:LocalizedStrings xmlns:local="clr-namespace:WPLocalization" x:Key="LocalizedStrings" /> </Application.Resources>
step10:当你想在程序中显示出本地的对应语言的话,你可以在xaml文件中绑定刚才的全局资源文件定义的属性。
<TextBlock x:Name="PageTitle" Text="{Binding Path=AppResources.Title, Source={StaticResource LocalizedStrings}}" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
当然了,如果你想测试我们整个项目的话,还必须在WP7模拟器中设定当前为不同的显示语言。
最后测试结果如下:
这就是所有有关于Windows Phone 7如何使用本地化语言的全部演示。如果你很懒想直接使用现成源码的话,也不是没有,你可以点击下面的链接来下载。
希望这篇文章能够帮助到你!
转自:http://www.oschina.net/question/213217_38179
转自:http://www.oschina.net/question/213217_38179