WinForm 国际化的一些问题
国际化
我之前 WinForm 国际化都是凑一些代码搞起(请看文后 Reference)。
最近发现还有个官方国际化方法:
- 首先设置 Form 的 Localizable 属性为 true
- 选择 Form 的 Language 为 "(Default)",然后给页面中每个控件设置一遍 Text
- 选择 Form 的 Language 为 "中文(简体)",然后给页面的每个控件设置一遍 中文 Text
- 对所需要支持的语言,先设置 Form 的 Language 为所要支持的语言,然后给页面的每个控件设置一遍 Text
每设置一个语言后,设计器会自动生成对应的 resx 文件,如:Form1.resx (Default), Form1.zh-Hans.resx , Form1.en-US.resx 等等。
问题
用了一下官方方法后,我发现了以下问题:
- 设计器生成的 resx 文件里面会有一些奇怪的名称,例如:由 >> 开头的资源名、 resource.Name34、resource.Name35 等等。这些名称对程序员不友好。
- 重构控件名称的时候,设计器只会去修改当前语言下的 resx 文件,其他 resx 文件中的相应控件名称不会改变。所以还需手工重设其他语言环境下这个控件的Text。这比较不方便,因为我可能已经忘掉了之前这个控件上的字符串是什么了。(非官方的国际化也有这个问题,而且稍微大一点,设计器不会修改任何一个 resx 文件,所以都要自己改)
- 如果之前 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
WinForm 国际化的一些问题的更多相关文章
- C# WinForm国际化的简单实现
软件行业发展到今天,国际化问题一直都占据非常重要的位置,而且应该越来越被重视.对于开发人员而言,在编写程序之前,国际化问题是首先要考虑的一个问题,也许有时候这个问题已经在设计者的考虑范围之内,但终归要 ...
- WinForm 国际化开发一例
1.新建一个WinForm程序(在中文版的Windows下),如下,添加1个Button和1个Label 设置Form1的localizable属性为True(Form1的properties里的De ...
- C# Winform 国际化
1.在Form的language属性选择中文,来制作中文界面 保存后,设置界面标题会变成如下所示,并且会出现一个zh-CN的资源文件,打开resx文件可看到相应内容 2.将Form的language属 ...
- C# WinForm 中英文实现, 国际化实现的简单方法
来源:http://www.jb51.net/article/45675.htm,今天看到了借鉴过了,保存一下,下次开发直接用嘻嘻 软件行业发展到今天,国际化问题一直都占据非常重要的位置,而且应该越来 ...
- Winform/WPF国际化处理
1.Winfrom国际化处理方式 ==> Winform中国际化支持可将UI页面和.cs文件分开处理 处理窗体方式如下:1.选择Form窗体设置其--Language(默认中文--Default ...
- Winform下的语言国际化,几行代码轻松实现
最近做了一些关于winform的项目,需要用到winform的语言国际化,在初使化的时候用起来非常方便.可以参考一下: 核心逻辑: 预览效果演示: OK,以下是核心代码和操作流程 一,添加Langua ...
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
sql server 关于表中只增标识问题 由于我们系统时间用的过长,数据量大,设计是采用自增ID 我们插入数据的时候把ID也写进去,我们可以采用 关闭和开启自增标识 没有关闭的时候 ,提示一下错 ...
- winform 的语言国际化
http://www.cnblogs.com/codefish/p/4778269.html
- Java进击C#——应用开发之WinForm环境
本章简言 上一章笔者讲到关于IO文件操作类,了解如何处理文件流.从这一章开始笔者将讲解相对比较高级的知识点.而本章笔者就对WinForm开发的知识点进行讲解和引导.现在很多业务都是面向于B/S模式的开 ...
随机推荐
- 一起来学spring Cloud | 第一章:spring Cloud 与Spring Boot
目前大家都在说微服务,其实微服务不是一个名字,是一个架构的概念,大家现在使用的基于RPC框架(dubbo.thrift等)架构其实也能算作一种微服务架构. 目前越来越多的公司开始使用微服务架构,所以在 ...
- arcgis api 4.x for js 结合 react 入门开发系列"esri-loader"篇(附源码下载)
基于上篇的介绍,虽然有比较esri-loader.@arcgis/webpack-plugin,还是觉得有必要需要讲述一下“esri-loader”的开发模式,待大家体验后也会有更直观的感受.本篇文章 ...
- Ubuntu 18.04编译AOSP源码
总结一下我从Ubuntu 18.04下编译成功AOSP的过程,以及遇到的坑 我的电脑配置: OS: Ubuntu 18.04 bionic Kernel: x86_64 Linux 4.18.0-17 ...
- July 04th. 2018, Week 27th. Wednesday
And if you really want to see what people are, all you have to do is to look. 想真正了解他人,只需要用心看. From W ...
- 【死磕 Spring】----- IOC 之 获取验证模型
原文出自:http://cmsblogs.com 在上篇博客[死磕Spring]----- IOC 之 加载 Bean 中提到,在核心逻辑方法 doLoadBeanDefinitions()中主要是做 ...
- C#运算符的简单使用测试
在代码中看到的代码中|=,有点不太理解故重新学习了下位运算符. 位运算符在 c# 中的测试用例 [TestMethod] public void TestMethod1() { var a = fal ...
- Java Socket聊天室编程(一)之利用socket实现聊天之消息推送
这篇文章主要介绍了Java Socket聊天室编程(一)之利用socket实现聊天之消息推送的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下 网上已经有很多利用socket实现聊天的例子了 ...
- C#冒泡排序算法(简单好理解)
我对冒泡排序算法的理解: 把最大的往后,从最后一个与前一个对比,然后互换位置,直到全部换好. 目标:从小到大排序 源代码如下: namespace net冒泡排序{ class Program { s ...
- 吴恩达机器学习笔记61-应用实例:图片文字识别(Application Example: Photo OCR)【完结】
最后一章内容,主要是OCR的实例,很多都是和经验或者实际应用有关:看完了,总之,善始善终,继续加油!! 一.图像识别(店名识别)的步骤: 图像文字识别应用所作的事是,从一张给定的图片中识别文字.这比从 ...
- Python爬虫10-页面解析数据提取思路方法与简单正则应用
GitHub代码练习地址:正则1:https://github.com/Neo-ML/PythonPractice/blob/master/SpiderPrac15_RE1.py 正则2:match. ...