(转)OpenCC简体字和繁体字互转示例

By admin at 2021-02-10 • 0人收藏 • 335人看过

感谢: fish 编写调用库和示例代码

image.png

界面代码如下:

import win.ui;
/*DSG{{*/
mainForm = win.form(text="openCC简繁转换示例";right=508;bottom=311)
mainForm.add(
button={cls="button";text="=>";left=167;top=196;right=322;bottom=240;z=1};
combobox={cls="combobox";left=7;top=267;right=500;bottom=293;edge=1;items={};mode="dropdownlist";z=4};
edit={cls="edit";left=7;top=16;right=154;bottom=243;edge=1;multiline=1;z=2};
edit2={cls="edit";left=334;top=16;right=499;bottom=241;edge=1;multiline=1;z=3}
)
/*}}*/

mainForm.edit.text = /***
汉字
漢字
***/

var langTab = {
	{"s2t.json";"簡體到繁"};
	{"t2s.json";"繁體到簡體"};
	{"s2tw.json";"簡體到臺灣正體"};
	{"tw2s.json";"臺灣正體到簡體"};
	{"s2hk.json";"簡體到香港繁體"};
	{"hk2s.json";"香港繁體到簡體"};
	{"s2twp.json";"簡體到繁體(臺灣正體標準)並轉換爲臺灣常用詞彙"};
	{"tw2sp.json";"繁體(臺灣正體標準)到簡體並轉換爲中國大陸常用詞彙"};
	{"t2tw.json";"繁體(OpenCC 標準)到臺灣正體"};
	{"hk2t.json";"香港繁體到繁體(OpenCC 標準)"};
	{"t2hk.json";"繁體(OpenCC 標準)到香港繁體"};
	{"t2jp.json";"繁體(OpenCC 標準,舊字體)到日文新字體"};
	{"jp2t.json";"日文新字體到繁體(OpenCC 標準,舊字體)"};
	{"tw2t.json";"臺灣正體到繁體(OpenCC 標準)"};
};
for(i=1;#langTab;1){
	mainForm.combobox.add(langTab[i][2]);	
}
mainForm.combobox.selIndex = 1;

import aaz.libopencc;

mainForm.button.oncommand = function(id,event){
    //注意:路径内不要有中文
	var opencc = aaz.libopencc(io.fullpath("\lib\aaz\libopencc\.build\share\opencc\" ++ langTab[mainForm.combobox.selIndex][1]));
	mainForm.edit2.text = opencc.convert(mainForm.edit.text);
}

mainForm.show();
return win.loopMessage();

库代码如下:

namespace aaz;
class libopencc{
    
	ctor( dic ){
		this.ctx = dll.opencc_open( dic );
		..table.gc( this, "close");
	}
	
	close = function(){
		if( this.ctx ){
			dll.opencc_close( this.ctx );
			this.ctx = null;
		}
	}
	
	convert = function( str ){
		var  converted = dll.opencc_convert_utf8P( this.ctx, str, #str );
		var ret = ..raw.str( converted );
		dll.opencc_convert_utf8_free( converted );	
		
		return ret; 
	}
		
}
namespace libopencc{
    dll = ..raw.loadDll( $"~\lib\aaz\libopencc\.res\opencc.dll",,"cdecl");
    
    err = function(){
    	return ..raw.str( dll.opencc_errorP() ); 
    } 
}

/**
https://github.com/BYVoid/OpenCC

s2t.json  簡體到繁體
t2s.json  繁體到簡體
s2tw.json  簡體到臺灣正體
tw2s.json  臺灣正體到簡體
s2hk.json  簡體到香港繁體
hk2s.json  香港繁體到簡體
s2twp.json 簡體到繁體(臺灣正體標準)並轉換爲臺灣常用詞彙
tw2sp.json 繁體(臺灣正體標準)到簡體並轉換爲中國大陸常用詞彙
t2tw.json  繁體(OpenCC 標準)到臺灣正體
hk2t.json  香港繁體到繁體(OpenCC 標準)
t2hk.json  繁體(OpenCC 標準)到香港繁體
t2jp.json  繁體(OpenCC 標準,舊字體)到日文新字體
jp2t.json  日文新字體到繁體(OpenCC 標準,舊字體)
tw2t.json  臺灣正體到繁體(OpenCC 標準)
**/


示例工程下载:

aardio8.zip

openCC介绍

https://github.com/BYVoid/OpenCC

1 个回复 | 最后更新于 2021-02-15
2021-02-15   #1

修改一下支持中文路径

namespace aaz;
class libopencc{
    
	ctor( dic ){
		dic = ..io.fullpath(dic);
		this.ctx = _dll.opencc_open_wW( dic );
		
		..table.gc( this, "close");
	}
	
	close = function(){
		if( this.ctx ){
			_dll.opencc_close( this.ctx );
			this.ctx = null;
		}
	}
	
	convert = function( str ){
		var converted = _dll.opencc_convert_utf8P( this.ctx, str, #str );
		if( converted ){
			var ret = ..raw.str( converted );
			_dll.opencc_convert_utf8_free( converted );	
			
			return ret; 
		}
	}
		
}
namespace libopencc{
    _dll = ..raw.loadDll( $"~\lib\aaz\libopencc\.res\opencc.dll", "opencc.dll" ,"cdecl");
    
    err = function(){
    	return ..raw.str( _dll.opencc_errorP() ); 
    } 
}


登录后方可回帖

登 录
信息栏
本站永久域名:HtmLayout.Cn
纯私人站,当笔记本用的,学到哪写到哪,目前在学aardio+halcon机器视觉.
Aardio 官方站:Aardio官方
Aardio最新功能:Aardio官方更新日志
苏扬博客:苏扬博客
C大Aardio论坛:Aar爱好者论坛
简码教程网:简码编程
AARDIO语言QQ群:70517368
本 站 主 站:Stm32cube中文网
Htmlayout界面在线学习文档
Sciter中文在线文档Sciter在线学习文档
aardio在线手册Aardio在线手册

赞助商:才仁机械
下载站:非凡软件站
Loading...