演练:本地化业务应用程序

本演练演示如何将本地化支持添加到 WCF RIA Services 业务应用程序。现在,很多业务应用程序需要由世界上不同地方的人使用。Silverlight、ASP.NET 和 WCF RIA Services 包含已针对特定区域性或区域设置进行本地化的应用程序的支持。在本演练中,您将编写一个应用程序,该应用程序可以加载用英语或加拿大法语编写的用户界面字符串(具体取决于浏览器中语言设置的值)。

RIA_Walkthrough_Loc_01

本演练涵盖以下任务:

  • 配置客户端项目以支持特定的语言。

  • 资源本地化。

  • 配置测试页以使用本地化的资源。

  • 配置 Internet Explorer 以加载本地化的页。

  • 添加对双向语言的支持。

必备条件

本演练和 WCF RIA Services 文档中提供的其他演练除了 WCF RIA Services 和 WCF RIA Services 工具包外,要求正确安装和配置几个前提条件程序,如 Visual Studio 2010 以及 Silverlight 运行时和 SDK。它们还要求安装和配置具有高级服务的 SQL Server 2008 R2 Express 以及安装 AdventureWorks OLTP 和 LT 数据库。

WCF RIA Services 的必备条件节点中的主题提供有关如何满足这些前提条件的详细说明。在执行本演练前请按照那里提供的说明操作,以确保在执行本 RIA Services 演练时遇到的问题最少。

配置客户端项目

下面的过程显示如何在客户端项目文件中指定支持的语言。

配置客户端项目

  1. 通过依次选择**“文件”“新建”“项目”**,在 Visual Studio 2010 中创建一个新的 RIA Services 项目。

    将显示**“新建项目”**对话框。

  2. 从**“已安装的模板”“Silverlight”组中选择“Silverlight 业务应用程序”**模板,然后将新项目命名为 LocalizedBusinessApp

  3. 在**“解决方案资源管理器”中,右击该客户端项目 (LocalizedBusinessApp),然后单击“卸载项目”**。

  4. 再次右击该客户端项目,然后单击**“编辑 LocalizedBusinessApp.vbproj”“编辑 LocalizedBusinessApp.csproj”**。

    RIA_LBA01_EditProject

    将在设计器中打开该项目文件。

  5. 查找 SupportedCultures 元素并添加法语(加拿大)的区域性代码 [fr-CA]。使用逗号或分号来分隔区域性代码。

    <SupportedCultures>en-US,fr-CA</SupportedCultures>
    
  6. 保存并关闭项目文件。

  7. 在**“解决方案资源管理器”中右击该客户端项目,然后单击“重新加载项目”**。

    该项目将重新加载到解决方案资源管理器中。

资源本地化

为您的应用程序添加对其他语言的支持基本上涉及创建现有资源文件的副本、重命名复制的文件,然后在新复制的资源文件中翻译这些字符串。下面的过程显示如何将服务器和客户端项目中的资源本地化。

将服务器资源本地化

  1. 在**“解决方案资源管理器”**的服务器项目 (LocalizedBusinessApp.Web) 中,展开 Resources 文件夹。

  2. 右击 RegistrationDataResources.resx 文件,然后单击**“复制”**。

  3. 右击 Resources 文件夹,然后单击**“粘贴”**。

  4. 将 RegistrationDataResources.resx 的副本重命名为 RegistrationDataResources.fr-CA.resx。

    note注意:
    区域性代码必须包含在文件名中以正确表明资源属于该区域。
  5. 同样地,复制 ValidationErrorResources.resx 文件并将它重命名为 ValidationErrorResources.fr-CA.resx。

    RIA_LBA03WebResources

  6. 双击 RegistrationDataResources.fr-CA.resx 以在资源设计器中打开它。

  7. 使用法语值和注释替换英语值和注释,如下表中所示。

    “注释”字符串通常用于工具提示。

    名称 注释

    EmailLabel

    E-mail

    FriendlyNameDescription

    Comment voulez-vous que votre nom être affiché dans l'application?

    FriendlyNameLabel

    Nom amical

    PasswordConfirmationLabel

    Confirmer le mot de passe

    PasswordDescription

    Le mot de passe doit être 7 caractères longs et doit contenir au moins un caractère spécial par exemple @ ou #

    Changer ceci si vous changez votre longueur de mot de passe et les politiques de force

    PasswordLabel

    Mot de passe

    SecurityAnswerLabel

    Réponse de sécurité

    SecurityQuestionLabel

    Question de sécurité

    UserNameLabel

    Nom de l'utilisateur

  8. 保存并关闭文件。

    Tip提示:
    本演练并不将所有字符串本地化。若要完成服务器资源的本地化,还得将 ValidationErrorResources.fr-CA.resx 本地化。
  9. 在客户端项目中,展开 Web 文件夹,然后展开“Resources”。

  10. 右击 Resources 文件夹,单击**“添加”,然后单击“现有项”**。

  11. 导航到 LocalizedBusinessApp.Web\Resources 文件夹。

  12. 按 Ctrl+单击选择以下文件:

    • RegistrationDataResources.fr-CA.resx

    • RegistrationDataResources.fr-CA.Designer.vb(或 .cs)

    • ValidationErrorResources.fr-CA.resx

    • ValidationErrorResources.fr-CA.Designer.vb(或 .cs)

  13. 单击**“添加”按钮上的向下箭头,然后单击“添加为链接”**。

    RIA_LBA04_AddingResxAsLink

    在客户端项目中将本地化的文件添加为链接。

将客户端资源本地化

  1. 在客户端项目中,展开 Assets 文件夹,然后展开“Resources”。

  2. 创建 ApplicationStrings.resx 的副本并将它重命名为 ApplicationStrings.fr-CA.resx。

  3. 创建 ErrorResources.resx 的副本并将它重命名为 ErrorResources.fr-CA.resx。

  4. 创建 SecurityQuestions.resx 的副本并将它重命名为 SecurityQuestions.fr-CA.resx。

    RIA_LBA05_ClientResources

  5. 将在资源设计器中打开 ApplicationStrings.fr-CA.resx。

  6. 使用法语值和注释替换英语值和注释,如下所示:

    名称 注释

    AboutPageTitle

    De

     

    AlreadyRegisteredLabel

    Déjà inscrit?

     

    ApplicationName

    Nom d'application

     

    BackToLoginButton

    De retour à la Connexion

     

    BusyIndicatorLoadingUser

    Application d'initialisation....

    Ce message est affiché pendant l'initialisation d'application

    BusyIndicatorLoggingIn

    Connecter...

    Affiché pendant LoginOperation

    BusyIndicatorRegisteringUser

    Soumettre Enregistrement...

    Affiché pendant que l'enregistrement est traité par le serveur

    CancelButton

    Annuler

     

    HomePageTitle

    Maison

     

    LoginButton

    connexion

     

    LoginWindowTitle

    Connexion

     

    LogOffButton

    sortie du système

     

    NotRegisteredYetLabel

    Pas inscrit pourtant?

     

    OKButton

    Bien

     

    RegisterNowButton

    Enregistrer maintenant

     

    RegistrationFormHeader

    S'il vous plaît compléter tous les champs obligatoires pour créer votre compte

     

    RegistrationWindowTitle

    Registre

     

    RememberMeLabel

    Garder m'a signé dans

     

    WelcomeMessage

    Accueil {0}

    {0} = User.DisplayName propriété

  7. 保存并关闭文件。

    Tip提示:
    若要完成客户端资源的本地化,您还得将 ErrorResources.fr-CA.resx 和 SecurityQuestions.fr-CA.resx 本地化。

配置测试页

下面的过程显示如何在测试页中指定区域性信息。

配置 TestPage.aspx

  1. 在服务器项目中,在“源”视图中打开 LocalizedBusinessAppTestPage.aspx。

  2. 在根元素中,添加具有值 "auto"CultureUICulture 属性:

    <%@ Page Language="VB" AutoEventWireup="true" UICulture="auto" Culture="auto" %>
    
    <%@ Page Language="C#" AutoEventWireup="true" UICulture="auto" Culture="auto" %>
    
  3. 保存该文件。

配置 Internet Explorer

客户端应用程序现在可以显示两个不同版本中的任意一个。若要查看加拿大法语版本,您必须配置 Web 浏览器以使用加拿大法语作为默认语言。下面的过程说明如何配置 Internet Explorer。

配置 Internet Explorer

  1. 按 F5 以运行该解决方案。

    该应用程序将在 Internet Explorer 中启动。除非已在 Internet Explorer 中将语言首选项设置为“法语(加拿大)”,否则该字符串用英语显示。

  2. 单击**“工具”菜单,然后单击“Internet 选项”**。

    将显示“Internet 选项”对话框。

  3. 在**“常规”选项卡上,单击“语言”**。

    将显示“语言首选项”对话框。

  4. 单击**“添加”**。

    将显示“添加语言”对话框。

    RIA_LBA06_IE_AddLanguageDialog

  5. 选择**“法语(加拿大)[fr-CA]”,然后单击“确定”**。

  6. 在“语言首选项”对话框中,将该法语移到列表的顶部。

  7. 单击**“确定”**两次以关闭该对话框。

  8. 刷新该页。

    该页现在应该以法语显示。

    LBA_fr-CA-Maison_homepage

  9. 单击**“连接”**链接。

    请注意“登录”对话框以法语显示。

添加对双向语言的支持

若要向 Silverlight 业务应用程序添加对双向语言的支持,应遵循前文中的步骤,替换为您所选的双向语言显示的区域设置代码。此外,您需要指定流方向,如下面的过程中所示。

添加对双向语言的支持

  1. 在包含双向语言字符串的每个资源文件中,添加一个新行,它包含名称 FlowDirection 和值 RightToLeft

  2. 在要实现双向语言的每个 XAML 窗口的根元素中,添加一个 FlowDirection 属性。

  3. FlowDirection 属性值绑定到已添加到资源文件的值,如下面的示例中所示:

    FlowDirection="{Binding Path=ApplicationStrings.FlowDirection, Source={StaticResource ResourceWrapper}}"
    

后续步骤

另请参见

其他资源

将基于 Silverlight 的应用程序本地化
ASP.NET 全球化和本地化