Git Product home page Git Product logo

opencc-js's Issues

Usecase for newbies

Hello, I created a jsffidle to test few usecases from your readme.md. I was partially successful.

The convert page content script didn't work :

((async () => {
  const convert = await OpenCC.Converter('hk', 'cn');
  const startNode = document.documentElement; // Convert the whole page
  const HTMLConvertHandler = OpenCC.HTMLConverter(convert, startNode, 'zh-HK', 'zh-CN'); // Convert all zh-HK to zh-CN
  HTMLConvertHandler.convert(); // Start conversion
  HTMLConvertHandler.restore(); // Restore
})());

I tried to assign to variable but also failed. (but this one is likely on me since I don't understand asyn well).

It could be interesting for users to have some usecases working on fiddle as demos.

whether dynamic translation is possible

Hello.If I have been translated from SIMPLIFIED to TRADITIONAL, then my new input content will not be traditional. Is there any way to solve this problem?

HTML 转换时手动跳过部分元素的实现

预置的 HTMLConverter 无法处理下面这种“简繁转换菜单”的情况:

<html lang="zh-hans">
...
<a href="javascript:void(0)" lang="zh-hans" onclick="setConvert(false)">简体</a>
<a href="javascript:void(0)" lang="zh-hant" onclick="setConvert(true)">繁體</a>
...
</html>

常见的 UX 设计方案当中,这种“简繁转换菜单”中菜单项使用的文字应该和对应的变体一致,但是转换器(在这个示例中是简体转繁体)会将“简体”一项也转换成繁体。

我个人的解决方法是在 _inner 函数中原有的跳过内嵌 JS / CSS 处加入一个类名检测:

/* Do not convert these elements */
if (currentNode.nodeType == Node.ELEMENT_NODE && currentNode.classList.contains('ignore-opencc')) return;
...

此时转换器检测到带有 ignore-opencc 类的元素就会跳过后续的转换,在网页中只需要加入同样的类名即可指定无需转换的部分。

不过,因为本人的能力实在有限,不知道这样的解决方法效率如何(毕竟把所有元素都 DFS 一遍还要检测类名觉得时间复杂度有点大),并且也不太会用 PR,就先发 Issue 了。

Review new documentation section API

  • Gather definitions of terms within an API section
  • Initiate definitions, default, syntax presentations.
  • Review recent changes README.md
  • Continue improvements of English version : phrasing, style, etc.
  • Translate into local Chinese readme(s).

>=v1.0.0 take too much time to translate web pages

Sample files - testpages.zip

During my test, v0.3.6 and v0.3.7 took less than 100ms to finish the translation, while v1.0.0 and v1.0.1 took about 5 seconds.

For longer contents (for example, repeating the same content for 3 times), v0.3.6 and v0.3.7 still took less than 100ms to finish the translation, while v1.0.0 and v1.0.1 took about 16 to 18 seconds. Additionally for v1.0.0 and v1.0.1, the browser gave a pop-up that the tab is not responding.

效能提升的方式

javascript 的 object 只能用字串作為 key,導致每次搜尋時都要切割出子字串,對於大量文字的文章來說是負擔是比較重的。
我在自己的專案Map物件 實作,然後以 unicode 的數值作為 key。在查詢時不切割字串,而是用 codePointAt 來取得key,測試出來效能提升會超過3倍。

使用window或globalThis声明OpenCCJSData变量

你好,请问能否将 OpenCCJSData 变量改为用 windowglobalThis 来声明?
目前使用的声明方式 const OpenCCJSData 在动态加载时不能使用 window.OpenCCJSData 进行访问。

es6 imports

Sorry if this is obvious (JS is still somewhat opaque to me...), but how would one use this with es6 imports? I tried various versions of what is described here but none worked. Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.