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

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

感谢: 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可以快速开发上位机,本站主要记录了学习过程中遇到的问题和解决办法及aardio代码分享

这里主要专注于aardio学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.

Aardio 官方站:Aardio官方
Aardio最新功能:Aardio官方更新日志
本 站 主 站:Stm32cube中文网
Sciter中文在线文档Sciter在线学习文档
空间赞助:才仁机械
打赏本站
Loading...