Windows Phone - 多语系应用程序名称

Windows Phone - 多语系应用程序名称


在撰写 篇时,没注意应用程序名称在程序清单与

Application Tile的多语系,导致这次送审时被退件,因此,该篇文章即把遗漏掉的这一个部分补充上来,

让多语系的处理更加完整。

〉程序清单与Application Tile多语系的范围

     IC452713(应用程序清单)IC452714(Application Tile)

上述二张图片是分别应用程序除了内容之外,外观要处理多语系的部分。不过很可惜这里语系的处理方式,

不像Android可以直接定义在Strings.xml,透过AndroidManifest.xml指定一个@AppName这么方便。

因此,根据MSDN中 介绍的方式来往下实践:

扫描二维码关注公众号,回复: 7182177 查看本文章

1. 建置多语系必要的Dll()

    a. 使用Visual Studio 2010建立一个C++的项目,并且选择Win32项目,命名:AppResLib

         000

     b. 透过Win32 Application精灵设定Application Type与相关资讯;

          001

          选择应用程序类型为:DLL其他选项为:空项目

          00

     c. 透过Solution Explorer在项目档按右键选择属性,进入属性窗口,按照下方图示指定值为:Yes (/NOENTRY)

         01      

         [注意] /NOENTRY prevents the linker from linking a reference to _main into the DLL;

                       this option is required to create a resource-only DLL.

   

    d. 透过Solution Explorer在项目档按右键建立一个新的资源,选择为:String Table类型,输入下方二个重要的参数;

         0402

ID Value Caption
AppTitle 100 The language-neutral name of your application to be displayed in the application list.
AppTileString 200 The language-neutral name of your application to be displayed in the application Tile when pinned to Start.

          如下图示:

          03

    e. 进行该项目AppResLib的建置,产生AppResLib.dll。

2. 利用步骤一建置好的多语系Dll,根据需要语系建立成特定的语言包(mui)

     步骤一建立好的Dll是Windows Phone运行时主要引用的Dll,接着搭配想要支持的语言,进行语言包的建立。

语言包,指的是Windows Phone在设定中“地区+语言”中的“显示语言”, 根据MSDN上针对不同语系有对应

语言包的命名方式,可参考

往下列出常见的语系:

Culture name Culture code Dll file name
Chinese Simplified (PRC) zh-CN AppResLib.dll.0804.mui
Chinese Traditional (Taiwan) zh-TW AppResLib.dll.0404.mui
English (United States) en-US AppResLib.dll.0409.mui

以下介绍建立二个语系:en-US(AppResLib.dll.0409.mui)与zh-TW(AppResLib.dll.0404.mui)的方式。

     a. 开启步骤一的AppResLib项目,并进入所新增的String Table资源档;

     b. 根据en-US与zh-TW分别修改String Table,如下:

          ‧en-US:Caption的值是自订的

ID Value Caption
AppTile 100 My Application
AppTileString 200 My Application

          ‧zh-TW

ID Value Caption
AppTile 100 我的应用程序
AppTileString 200 我的应用程序

     c. en-US改好String Table后,进行项目的建置,自动产出AppResLib.dll,并将Dll更名为:AppResLib.dll.0409.mui;

     d. zh-TW改好String Table后,进行项目的建置,自动产出AppResLib.dll,并将Dll更名为:AppResLib.dll.0404.mui;

3. 将Dll与语言包放置于Windows Phone Project中与App.xaml同层的数据夹

     将AppResLib.dll、AppResLib.dll.0409.mui与AppResLib.dll.0404.mui放置于Windows Phone Project项目中,

一定要与App.xaml文件同层数据夹,通常就是项目的根目录。接着把三个文件透过Solution Explorer加入项目,

将三个项目的Build Action设定为Content

4. 修改Windows Phone Application项目中的WMAppManifest.xml,并且重新对项目重新建置

     a. 调整 标签中的Title属性:

          将Title改为@AppResLib.dll,-100,让系统根据AppResLib找到String Table中Value = 100的Caption值。

   1: 
 
 

  
  

    
  
  
   2:      ProductID="{product id}"
   3:      Title="@AppResLib.dll,-100"
   4:      RuntimeType="Silverlight"
   5:      Version="1.0.0.0"
   6:      Genre="apps.normal"
   7:      Author="author"
   8:      Description="description"
   9:      Publisher="publisher">


     b. 调整 标签中的Title属性:

          将Title改为@AppResLib.dll,-200,让系统根据AppResLib找到String Table中Value = 200的Caption值。

   1: 
   
   
   2:   
   
   
   3:     
   
   
    
    Background.png
   
   
   4:     
   
   
    
    0
   
   
   5:     @AppResLib.dll,-200
   6:   
   7: 


     d. 重新建置Application项目,并且布署至实例设备或Emulator进行测试。

          =>测试时,透过更换设定中“地区+语言”中的“显示语言”的值来进行测试。

======

以上是补充如何对应用程序的名称在Windows Phoneo程序清单与Application Tile二个范围实践多语系的方式。

另外有找到一篇已经帮我们建立好的范例文档:How to localize The Title in a WP7 Silverlight application。

References:

‧How to: Localize an Application Title for Windows Phone

‧How to localize The Title in a WP7 Silverlight application (有建立好的丰富C++多语系包)

Dotblogs Tags: Windows Phone


原文:大专栏  Windows Phone - 多语系应用程序名称


猜你喜欢

转载自www.cnblogs.com/petewell/p/11465531.html