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

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

感谢: 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() ); 
    } 
}


登录后方可回帖

登 录
信息栏
 私人小站

本站域名

ChengXu.XYZ

投诉联系:  popdes@126.com



快速上位机开发学习,本站主要记录了学习过程中遇到的问题和解决办法及上位机代码分享

这里主要专注于学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.
如果侵权,联系 Popdes@126.com

友情链接
Aardio官方
Aardio资源网


才仁机械


网站地图SiteMap

Loading...