如何本地化 Windows Phone 应用程序标题

2012/2/9

当用户将应用程序固定到“开始”屏幕上时,应用程序的标题会出现在应用程序列表和应用程序“磁贴”上。本地化应用程序标题是可选的。出于品牌原因,某些开发人员可能不愿意将应用程序标题本地化。

将显示在应用程序列表或应用程序“磁贴”上的应用程序标题本地化时,必须为您的应用程序所指定的每种显示语言创建一个纯资源 DLL。有关 Windows Phone 所支持显示语言的完整列表,请参阅 Windows Phone 区域性和语言支持。纯资源 DLL 应该仅包含用于将应用程序列表和应用程序“磁贴”上的应用程序标题本地化的资源字符串。

以下屏幕截图显示应用程序标题在应用程序列表和应用程序“磁贴”上下文中的使用位置。

应用程序列表中的标题:

固定到“开始”屏幕的应用程序“磁贴”上的标题:

标题已本地化的应用程序列表标题已本地化的“开始”屏幕

若要完成这些过程,您需要一个 Windows Phone 应用程序项目。您可以使用现有项目,或者创建一个空的 Silverlight Windows Phone 应用程序来测试这些过程。有关创建新项目的更多信息,请参阅如何:为 Windows Phone 创建第一个 Silverlight 应用程序

以下部分将带您完成运用于应用程序列表和应用程序“磁贴”中的应用程序标题本地化的过程。

在此过程中,您通过创建项目来生成名为 AppResLib.dll 的纯资源 DLL。

注意注意:

组织 Windows Phone 应用程序和资源 DLL 项目和文件以进行本地化的方式不一而足。此处提供的方法是一种简单的方法,它可在 Visual Studio 的所有版本中良好运作。

创建语言资源 DLL 项目

  1. “文件”菜单上,指向“新建”,然后单击“项目”

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

  2. 在左窗格中,单击“已安装模板”,展开“Visual C++”,然后单击“Win32”

  3. 在项目类型列表中,单击“Win32 项目”

  4. “名称”框中,键入 AppResLib

  5. “位置”框中,为项目输入位置。

    注意注意:

    为了完成此过程,您可以在任何位置创建 AppResLib 项目。

  6. 单击“确定”

    出现 Win32 应用程序向导。

  7. 在左窗格中,单击“应用程序设置”

  8. “应用程序类型”下,选择“DLL”

  9. “其他选项”下,选择“空项目”

  10. 单击“完成”

    新 DLL 项目已创建并在 Visual Studio 中打开。

  11. “解决方案资源管理器”中,选择新的 DLL 项目。

  12. “项目”菜单上,单击“属性”

    出现“属性页”对话框。

  13. 在左窗格中,展开“配置属性”,展开“链接器”,然后单击“高级”

  14. 选择“无入口点”属性,单击属性值右侧的下拉箭头,然后单击“是(/NOENTRY)”

    注意注意:

    /NOENTRY 可防止链接器将到 _main 的引用链接到 DLL 上;此选项为创建纯资源 DLL 时所需。

  15. 单击“确定”

  16. 保存并生成项目。

在此过程中,您需将资源字符串表添加到包含您应用程序的非特定语言名称的 DLL 项目中。

为应用程序创建非特定语言资源字符串

  1. “解决方案资源管理器”中,选择新的 DLL 项目。

  2. “项目”菜单上,单击“添加资源”

    出现“添加资源”对话框。

  3. “资源类型”列表中,选择“字符串表”,然后单击“新建”

    将打开资源字符串表。

  4. 运用以下属性创建两个资源字符串。

    ID

    标题

    AppTitle

    100

    要在应用程序列表中显示的应用程序非特定语言名称。

    AppTileString

    200

    固定到“开始”屏幕上时要在应用程序“磁贴”中显示的应用程序非特定语言名称。

  5. 保存并生成 DLL 项目。

  6. “Windows 资源管理器”中,将您刚生成的 AppResLib.dll 文件本地化。

  7. 将 AppResLib.dll 文件复制到包含 Windows Phone 应用程序项目文件的目录中。

    提示提示:

    如果您使用的是默认 Windows Phone 项目结构,则此目录就是包含 App.xaml 文件的目录。

在此过程中,您需编辑资源字符串表以包含特定语言名称。您需重命名 DLL 文件,并将其复制到适当位置。

为应用程序创建第一个特定语言资源字符串

  1. 编辑资源字符串,按以下要求设置属性。

    ID

    标题

    AppTitle

    100

    要在应用程序列表中显示的应用程序英语(美国)名称。

    AppTileString

    200

    固定到“开始”屏幕上时要在应用程序“磁贴”中显示的应用程序英语(美国)名称。

  2. 保存并生成 DLL 项目。

  3. “Windows 资源管理器”中,将您刚生成的 AppResLib.dll 文件本地化。

  4. 将 DLL 文件重命名为 AppResLib.dll.0409.mui

  5. 将 AppResLib.dll.0409.mui 文件复制到包含 Windows Phone 应用程序项目文件的目录中。

    提示提示:

    您可以使用后生成事件来重命名和移动文件。将以下字符串复制到“项目属性”中,在“配置属性”“生成事件”“后生成事件”下:copy "$[OutputPath]$[DLLProjectName].dll" "$[WindowsPhoneApplicationPath]\AppResLib.dll.0409.mui"

为应用程序创建其他语言资源字符串

  • 重复上述步骤,使用下表中的信息重命名 DLL 文件。每一个 DLL 文件名称的格式都是 AppResLib.dll.[locale ID].mui

    注意注意:

    有关哪个 Windows Phone 版本支持哪些显示语言的完整列表,请参阅 Windows Phone 区域性和语言支持

    区域性名称

    区域性代码

    DLL 文件名称

    简体中文(中国)

    zh-CN

    AppResLib.dll.0804.mui

    繁体中文(台湾)

    zh-TW

    AppResLib.dll.0404.mui

    捷克语(捷克共和国)

    cs-CZ

    AppResLib.dll.0405.mui

    丹麦语(丹麦)

    da-DK

    AppResLib.dll.0406.mui

    荷兰语(荷兰)

    nl-NL

    AppResLib.dll.0413.mui

    英语(英国)

    en-GB

    AppResLib.dll.0809.mui

    英语(美国)

    en-US

    AppResLib.dll.0409.mui

    芬兰语(芬兰)

    fi-FI

    AppResLib.dll.040b.mui

    法语(法国)

    fr-FR

    AppResLib.dll.040c.mui

    德语(德国)

    de-DE

    AppResLib.dll.0407.mui

    希腊语(希腊)

    el-GR

    AppResLib.dll.0408.mui

    匈牙利语(匈牙利)

    hu-HU

    AppResLib.dll.040e.mui

    意大利语(意大利)

    it-IT

    AppResLib.dll.0410.mui

    日语(日本)

    ja-JP

    AppResLib.dll.0411.mui

    朝鲜语(韩国)

    ko-KR

    AppResLib.dll.0412.mui

    挪威语(挪威)

    nb-NO

    AppResLib.dll.0414.mui

    波兰语(波兰)

    pl-PL

    AppResLib.dll.0415.mui

    葡萄牙语(巴西)

    pt-BR

    AppResLib.dll.0416.mui

    葡萄牙语(葡萄牙)

    pt-PT

    AppResLib.dll.0816.mui

    俄语(俄罗斯)

    ru-RU

    AppResLib.dll.0419.mui

    西班牙语(西班牙)

    es-ES

    AppResLib.dll.0c0a.mui

    瑞典语(瑞典)

    sv-SE

    AppResLib.dll.041d.mui

    警告说明警告:

    不要忘记将 MUI 文件复制到包含 Windows Phone 应用程序项目文件的目录中。

在 Windows Phone 应用程序中使用本地化资源字符串

  1. “解决方案资源管理器”中,选择 Windows Phone 应用程序项目。

  2. “项目”菜单上,单击“添加现有项”

    将显示“添加现有项”对话框。

  3. 选择 AppResLib.dll 文件和所有的 AppResLib.dll.*.mui 文件,然后单击“添加”

    已将文件添加到 Windows Phone 应用程序项目中。

  4. “解决方案资源管理器”中,选择导入的 DLL 文件,并在“属性”窗口中,将“生成操作”属性设置为“内容”

  5. “解决方案资源管理器”中,展开“属性”,然后双击 WMAppManifest.xml。

  6. 修改 WMAppManifest.xml 文件,以使用在应用程序列表中使用的应用程序标题的附属 DLL 中的 AppTitle 资源字符串。代码会在以下内容中突出显示:

    <App xmlns=""
         ProductID="{product id}"
         Title="@AppResLib.dll,-100"
         RuntimeType="Silverlight"
         Version="1.0.0.0"
         Genre="apps.normal"
         Author="author"
         Description="description"
         Publisher="publisher">
    
    
  7. 修改 WMAppManifest.xml 文件,以使用在应用程序列表中使用的应用程序“磁贴”的附属 DLL 中的 AppTileString 资源字符串。代码会在以下内容中突出显示:

    <PrimaryToken TokenID="WindowsPhoneApplicationToken" TaskName="_default">
      <TemplateType5>
        <BackgroundImageURI IsRelative="true" IsResource="false">Background.png</BackgroundImageURI>
        <Count>0</Count>
        <Title>@AppResLib.dll,-200</Title>
      </TemplateType5>
    </PrimaryToken>
    
  8. 保存并生成 Windows Phone 应用程序。

若要测试已本地化的应用程序标题,请按照如何测试 Windows Phone 本地化应用程序中所列的步骤执行操作。

显示: