opencc-js

The JavaScript version of Open Chinese Convert (OpenCC)
繁體版 - 简体版
Import
Import opencc-js in HTML page
Import in HTML pages:
<script src="https://cdn.jsdelivr.net/npm/opencc-js@1.0.5/dist/umd/full.js"></script>
<script src="https://cdn.jsdelivr.net/npm/opencc-js@1.0.5/dist/umd/cn2t.js"></script>
<script src="https://cdn.jsdelivr.net/npm/opencc-js@1.0.5/dist/umd/t2cn.js"></script>
ES6 import
<script type="module">
import * as OpenCC from './dist/esm/full.js';
import * as OpenCC from './dist/esm/cn2t.js';
import * as OpenCC from './dist/esm/t2cn.js';
</script>
Import opencc-js in Node.js script
npm install opencc-js
CommonJS
const OpenCC = require('opencc-js');
ES Modules
import * as OpenCC from 'opencc-js';
Usage
Basic usage
const converter = OpenCC.Converter({ from: 'hk', to: 'cn' });
console.log(converter('漢語'));
Custom Converter
const converter = OpenCC.CustomConverter([
['香蕉', 'banana'],
['蘋果', 'apple'],
['梨', 'pear'],
]);
console.log(converter('香蕉 蘋果 梨'));
Or using space and vertical bar as delimiter.
const converter = OpenCC.CustomConverter('香蕉 banana|蘋果 apple|梨 pear');
console.log(converter('香蕉 蘋果 梨'));
Add words
- Use low-level function
ConverterFactory
to create converter.
- Get dictionary from the property
Locale
.
const customDict = [
['“', '「'],
['”', '」'],
['‘', '『'],
['’', '』'],
];
const converter = OpenCC.ConverterFactory(
OpenCC.Locale.from.cn,
OpenCC.Locale.to.tw.concat([customDict])
);
console.log(converter('悟空道:“师父又来了。怎么叫做‘水中捞月’?”'));
This will get the same result with an extra convertion.
const customDict = [
['“', '「'],
['”', '」'],
['‘', '『'],
['’', '』'],
];
const converter = OpenCC.ConverterFactory(
OpenCC.Locale.from.cn,
OpenCC.Locale.to.tw,
[customDict]
);
console.log(converter('悟空道:“师父又来了。怎么叫做‘水中捞月’?”'));
DOM operations
HTML attribute lang='*'
defines the targets.
<span lang="zh-HK">漢語</span>
const converter = OpenCC.Converter({ from: 'hk', to: 'cn' });
const rootNode = document.documentElement;
const HTMLConvertHandler = OpenCC.HTMLConverter(converter, rootNode, 'zh-HK', 'zh-CN');
HTMLConvertHandler.convert();
HTMLConvertHandler.restore();
API
.Converter({})
: declare the converter's direction via locals.
- default:
{ from: 'tw', to: 'cn' }
- syntax :
{ from: local1, to: local2 }
- locals: letter codes defining a writing local tradition, occasionally its idiomatic habits.
cn
: Simplified Chinese (Mainland China)
tw
: Traditional Chinese (Taiwan)
twp
: with phrase conversion (ex: 自行車 -> 腳踏車)
hk
: Traditional Chinese (Hong Kong)
jp
: Japanese Shinjitai
t
: Traditional Chinese (OpenCC standard. Do not use unless you know what you are doing)
.CustomConverter([])
: defines custom dictionary.
- default:
[]
- syntax :
[ ['item1','replacement1'], ['item2','replacement2'], … ]
.HTMLConverter(converter, rootNode, langAttrInitial, langAttrNew )
: uses previously defined converter() to converts all HTML elements text content from a starting root node and down, into the target local. Also converts all attributes lang
from existing langAttrInitial
to langAttrNew
values.
lang
attributes : html attribute defines the languages of the text content to the browser, at start (langAttrInitial
) and after conversion (langAttrNew
).
ignore-opencc
: html class signaling an element and its sub-nodes will not be converted.
Bundle optimization
- Tree Shaking (ES Modules Only) may result less size of bundle file.
- Using
ConverterFactory
instead of Converter
.
import * as OpenCC from 'opencc-js/core';
import * as Locale from 'opencc-js/preset';
const converter = OpenCC.ConverterFactory(Locale.from.hk, Locale.to.cn);
console.log(converter('漢語'));