zoukankan      html  css  js  c++  java
  • 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)才能获取新的位置信息,其翻译中间文件只有字符信息。

        

  • 相关阅读:
    算法导论9.33
    第6章 堆排序
    算法导论9.36算法导论9.36 .
    算法导论83排序不同长度的数据项
    算法导论76对区间的模糊排序
    第8章 线性时间排序
    在bochs上运行的第一个操作系统
    算法导论6.58堆排序K路合并
    js中的preventDefault与stopPropagation详解(转)
    JS基础RegExp
  • 原文地址:https://www.cnblogs.com/jjseen/p/5382862.html
Copyright © 2011-2022 走看看