• WinForm 国际化的一些问题


    国际化

      我之前 WinForm 国际化都是凑一些代码搞起(请看文后 Reference)

      最近发现还有个官方国际化方法:

    1. 首先设置 Form 的 Localizable 属性为 true 
    2. 选择 Form 的 Language 为 "(Default)",然后给页面中每个控件设置一遍 Text
    3. 选择 Form 的 Language 为 "中文(简体)",然后给页面的每个控件设置一遍 中文 Text
    4. 对所需要支持的语言,先设置 Form 的 Language 为所要支持的语言,然后给页面的每个控件设置一遍 Text

      每设置一个语言后,设计器会自动生成对应的 resx 文件,如:Form1.resx (Default), Form1.zh-Hans.resx , Form1.en-US.resx 等等。

    问题

      用了一下官方方法后,我发现了以下问题:

    1. 设计器生成的 resx 文件里面会有一些奇怪的名称,例如:由 >> 开头的资源名、 resource.Name34、resource.Name35 等等。这些名称对程序员不友好。
    2. 重构控件名称的时候,设计器只会去修改当前语言下的 resx 文件,其他 resx 文件中的相应控件名称不会改变。所以还需手工重设其他语言环境下这个控件的Text。这比较不方便,因为我可能已经忘掉了之前这个控件上的字符串是什么了。(非官方的国际化也有这个问题,而且稍微大一点,设计器不会修改任何一个 resx 文件,所以都要自己改)
    3. 如果之前 Form 的 Localilzable 是 false,而且手动设置了一些字符串,然后设置 Form 的 Localizable 为 true,则之前手动设置的字符串会被设计器删除。这个问题比较严重。唯一想到的方法是,在界面的 resx 文件中不手动添加东西,另建一个 resx 文件存放手动设置的字符串。这样同样不大易用。

       

    选择

      在开始工程之前要选择好非官方还是官方的国际化方法,在项目中切换可能会丢失掉之前的字符串资源。

      目前我有旧代码,还是使用非官方的方法吧,毕竟 resx 可控,设计器不会自己加东西进去。只是重构控件名称时候,手工的工作量大了。(官方重构时的工作量也大)

      以后如果新建工程,官方的方法或许还行,只要把自己手工写的资源分文件来搞。

      

    Reference:

    1. 手动的国际化:http://www.cnblogs.com/codefish/p/4778269.html

    2. 官方的WinForm国际化:https://msdn.microsoft.com/en-us/library/y99d1cd3(v=vs.71).aspx

    3. 代码切换官方国际化:http://www.dotnetcurry.com/showarticle.aspx?ID=174

  • 相关阅读:
    微信支付可能改变的六大行业
    WeChat Official Account Admin Platform API Introduction
    WeChat Official Account Admin Platform Message API Guide
    微信公众平台开发(61)预约挂号
    PHP获取Cookie模拟登录
    微信公众平台开发(60)每日英语
    微信公众平台开发(59)相册
    SQL语句执行顺序
    sql
    pthread_rwlock_t
  • 原文地址:https://www.cnblogs.com/shenyinabcd/p/7324792.html
Copyright © 2020-2023  润新知