文档章节

关于三语 (简体、繁体、英语) 切换的尝试

涂孟超
 涂孟超
发布于 2014/09/26 15:38
字数 320
阅读 16
收藏 0

在空白窗体上添加 PopupMenu1, 并添加几个测试用的菜单项, 分别命名为: m1、m2、m3、mCn、mBig、mEn;
激活 mCn 的 OnClick 事件和窗体的 OnCreate 事件.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Menus;

type
  TForm1 = class(TForm)
    PopupMenu1: TPopupMenu;
    m1: TMenuItem;
    m2: TMenuItem;
    m3: TMenuItem;
    mCn: TMenuItem;  //Caption: 简体中文
    mBig: TMenuItem; //Caption: 繁体中文
    mEn: TMenuItem;  //Caption: English
    procedure FormCreate(Sender: TObject);
    procedure mCnClick(Sender: TObject);
  end;

var
  Form1: TForm1;
  LanguageList: TStrings;

implementation

{$R *.dfm}

{转换简体到繁体}
function Cn2Big(CnStr: string): string;
var
  Len: Integer;
begin
  Len := Length(CnStr);
  SetLength(Result, Len);
  LCMapString(GetUserDefaultLCID, LCMAP_TRADITIONAL_CHINESE, PChar(CnStr), Len, PChar(Result), Len);
end;

{建立列表: Name 将是英文菜单, Value 将是简体菜单, 繁体是从简体转换得来}
procedure CreateLanguageList;
begin
  with LanguageList do begin
    Clear;
    Add('Default=默认');
    Add('Fit Width=适宽');
    Add('Fit Height=适高');
  end;
end;

{语言变换}
procedure ChangeLanguageList(LangId: Integer);
var
  i: Integer;
begin
  CreateLanguageList;
  with LanguageList do case LangId of
    0: Exit;
    1: for i := 0 to Count - 1 do Values[Names[i]] := Cn2Big(Values[Names[i]]);
    2: for i := 0 to Count - 1 do Values[Names[i]] := Names[i];
  end;
end;

{初始化菜单}
procedure TForm1.FormCreate(Sender: TObject);
begin
  PopupMenu := PopupMenu1;
  PopupMenu1.AutoHotkeys := maManual;
  mBig.OnClick := mCn.OnClick;
  mEn.OnClick := mCn.OnClick;
  mCn.Tag := 0;
  mBig.Tag := 1;
  mEn.Tag := 2;
  mCn.Click;
end;

procedure TForm1.mCnClick(Sender: TObject);
begin
  ChangeLanguageList(TMenuItem(Sender).Tag);
  m1.Caption := LanguageList.Values['Default'];
  m2.Caption := LanguageList.Values['Fit Width'];
  m3.Caption := LanguageList.Values['Fit Height'];
end;

initialization
  LanguageList := TStringList.Create;
finalization
  LanguageList.Free;

end.


效果图:


本文转载自:http://www.cnblogs.com/del/archive/2011/07/14/2105844.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
Git@OSC 国际化 —— 支持中文繁体

Git@OSC 是开源中国基于 Git 的代码托管平台。Git@OSC 现在已经支持繁体显示,同时也可以切换到英文或者中文简体显示,为用户提供更多的国际化特性。 上个月 Git@OSC 已经上线了国际化新特性...

oschina
2015/11/27
2.1K
26
WannaCry 勒索软件背后的开发者可能是中国人?

Flashpoint的两位研究员Jon Condra和John Costello称,从语言的角度分析,WannaCry勒索软件背后的开发者可能来自说中文的国家。 近期Wannacry勒索病毒肆虐全球,由于病毒利用了Windows系统的...

两味真火
2017/05/27
3.1K
42
RDIFramework.NET V2.9版本多语言的实现

RDIFramework.NET V2.9版本多语言的实现   现在是国际化时代,软件也不能落后。一个公司里很可能会有老外,也可能有台湾的朋友,他们用软件的习惯都不一样,若同样一个软件同时能适应多种语...

yonghu86
06/26
0
0
axure怎么删除网页下面的空白

axure怎么删除网页下面的空白 G M T 检测语言世界语中文简体中文繁体丹麦语乌克兰语乌兹别克语乌尔都语亚美尼亚语伊博语俄语保加利亚语僧伽罗语克罗地亚语冰岛语加利西亚语加泰罗尼亚语匈牙利...

西伯利亚狼1
01/16
0
0
Firefox在线翻译--ImTranslator

ImTranslator – 在线翻译阿拉伯语、保加利亚语、中文(简体) 中文(繁体)、克罗地亚语、捷克语、丹麦语、荷兰语、英语、芬兰语、法语、德语、希腊语、印地语、意大利语、日语、韩国语、挪威...

匿名
2008/09/19
3.2K
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

HTTPS is easy

HTTPS is easy https://www.troyhunt.com/https-is-easy/ HTTPS is easy! In fact, it's so easy I decided to create 4 short videos around 5 minutes each to show people how to enable ......

openthings
13分钟前
0
0
bugList 2

用户端: 1. 上传文件时,当选择:彩色-A3-双面时,第二个图片有bug 应改为 和第一个图片的类型相同 2. 确认打印时,三个下拉选目前有bug 应改为:根据后台配置的商家,group by计算出不同城...

勇恒
16分钟前
2
0
keras cnn 网咯 mnist 分类

搭建貌似比tf是简单很多。。。。。 from keras.datasets import mnistfrom keras.utils import np_utilsfrom keras.models import Sequentialfrom keras.layers import Dense, Activat......

阿豪boy
19分钟前
0
0
解决 /var/run/nginx.pid failed

nginx: [error] open() "/var/run/nginx.pid" failed (2: No such file or directory) sudo nginx -c /etc/nginx/nginx.conf nginx -s reload...

驛路梨花醉美
20分钟前
0
0
nginx负载均衡-ssl原理-生成ssl密钥对-nginx配置ssl

nginx负载均衡: 1.创建配置文件 vim /usr/local/nginx/conf/vhost/load.conf #添加以下内容: upstream qq_com #名字自定义,借助此模块定义多个IP,后面...

ZHENG-JY
21分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部