内容简介:由于excite关闭了网页翻译功能,google的网页翻译有时候也不太灵光,就去看了下jbeijing的翻译API调用,正好VNR中已有相关代码,就学习一下。这段代码是调用JBJCT.dll中的方法(看注释大神是用IDA反编译dll在看函数的参数),功能是将unicode文本从日文翻译成中文,下面是运行效果
由于excite关闭了网页翻译功能,google的网页翻译有时候也不太灵光,就去看了下jbeijing的翻译API调用,正好VNR中已有相关代码,就学习一下。
def transferUnicode(self, text, to, fr=CODEPAGE_JA):
"""
@param text unicode not str
@param to uint code page
@param fr uint code page
@raise WindowsError, AttributeError
From IDA:
int __cdecl JC_Transfer_Unicode(int, UINT CodePage, int, int, int, LPCWSTR lpWideCharStr, int, int, int, int)
Values are get by runtime debugging.
Guessed
int __cdecl JC_Transfer_Unicode(
HWND hwnd,
UINT fromCodePage,
UINT toCodePage,
int unknown,
int unknown,
LPCWSTR from,
LPWSTR to,
int &toCapacity,
LPWSTR buffer,
int &bufferCapacity)
Note: This function is not thread-safe!
Using persistent buffers is faster, but not thread-safe!
"""
size = BUFFER_SIZE
if self.BUFFER_THREAD_SAFE:
# Limit buffer size would result in crash ... no idea why
#size = min(size, len(text) * 10) # the translation should be no more larger than 10 times of Japanese
out = ctypes.create_unicode_buffer(size)
buf = ctypes.create_unicode_buffer(size)
else:
out = self.buffer1
buf = self.buffer2
outsz = ctypes.c_int(size)
bufsz = ctypes.c_int(size)
#self.dll.JC_Transfer_Unicode(
self.JC_Transfer_Unicode(
0, # int, unknown
fr, # uint from, supposed to be 0x3a4 (cp932)
to, # uint to, eighter cp950 or cp932
1, # int, unknown
1, # int, unknown
text,
out, # wchar_t*
ctypes.byref(outsz), # ∫
buf, # wchar_t*
ctypes.byref(bufsz)) # ∫
return out.value
这段代码是调用JBJCT.dll中的方法(看注释大神是用IDA反编译dll在看函数的参数),功能是将unicode文本从日文翻译成中文,下面是运行效果
结果
实际运用中发现一个问题,翻译的文本是有上限的,如果原文是太长的文章,返回的译文可能会缺失(大概5k以上不行)
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
大思维:集体智慧如何改变我们的世界
杰夫·摩根 / 郭莉玲、尹玮琦、徐强 / 中信出版集团股份有限公司 / 2018-8-1 / CNY 65.00
智能时代,我们如何与机器互联,利用技术来让我们变得更聪明?为什么智能技术不会自动导致智能结果呢?线上线下群体如何协作?社会、政府或管理系统如何解决复杂的问题?本书从哲学、计算机科学和生物学等领域收集见解,揭示了如何引导组织和社会充分利用人脑和数字技术进行大规模思考,从而提高整个集体的智力水平,以解决我们时代的巨大挑战。是英国社会创新之父的洞见之作,解析企业、群体、社会如何明智决策、协作进化。一起来看看 《大思维:集体智慧如何改变我们的世界》 这本书的介绍吧!
RGB转16进制工具
RGB HEX 互转工具
RGB CMYK 转换工具
RGB CMYK 互转工具