• WPF全球化与本地化 (二)


    1. Visual Baml

        Visual Locbaml is a free and open-source software to simplify the task of WPF application localization. http://visuallocbaml.com/

      2. Visual Baml读取并翻译

        使用Visual Baml新建工程。在新建Visual Baml工程之前,应先设置好C#工程的回退语言以及默认区域。如果通过强行改变线程culture,也需要设置到当前语言默认区域。否则Visual Baml会检测到错误的待翻译文本。*

    [assembly: NeutralResourcesLanguage("zh-cn", UltimateResourceFallbackLocation.Satellite)]  

         3. 翻译中间文件

        这是使用工具(Visual Baml)获得的好处,可以使用其导出中间翻译结果。通过Visual Baml自己的编号规则进行统计,并过滤了不可翻译的部分——比如不可翻译的项(位置等)、不可翻译的条目。当然这也有缺点,如果在更改了原始了位置布局**,则Visual Baml需要使用新的exe更新工程,再次产生Assemblies。

      4. 目标语言附属程序集

               使用Visual Baml导出,放在运行目录。比如bin/debug/zh-chs/。

      5. 使用Resgen.exe

        在工程中,更改资源文件的属性,将“复制到输出目录”设置为“如果较新则复制”或者“始终复制”,就能在输出目录查看到*.resx的资源文件。

    //从*.resx到key=value的文本文件
    resgen *.resx *.txt
    
    //从*.txt到*.resx,并指定语言为C#,Class访问性为Public
    resgen *.txt *.resx /str:C#,MyResource.Properties /publicClass

       不确定是否可以用AI.exe直接嵌入编译后的*.resx到DLL。

    *Visual Baml并不十分智能。如果在工程中存在同名的Page,而Page中存在相同类型与UID的控件,即使他们处在不同的目录下,也会产生混淆。

    **如果项目之初没有考虑到翻译后的长度变化,即使考虑到,也可能需要对控件位置进行调整。Visual Baml需要更新(Retrieve)才能获取新的位置信息,其翻译中间文件只有字符信息。

        

  • 相关阅读:
    路由系统
    快速入门
    IIS7.0下 HTTP 错误 404.15
    关于:TypeConverter 无法从 System.String 转换
    mssql批量刷新多个表的数据
    aspxpivotgrid排序
    .net面试题
    AspxGridView在cell内显示颜色
    AspxGridView 表中的ASPxHyperLink不导出到excel
    C# 网络编程小计 20150202
  • 原文地址:https://www.cnblogs.com/jjseen/p/5382862.html
Copyright © 2020-2023  润新知