0.1.7 • Published 2 years ago

rtl-text v0.1.7

Weekly downloads
-
License
BSD-2-Clause
Repository
github
Last release
2 years ago

rtl-text.js

An Emscripten port of a subset of the functionality of International Components for Unicode (ICU). Supports the Arabic and Hebrew languages, which are written right-to-left.

Using rtl-text

rtl-text exposes three functions:

arabicShaping(input: string)

Takes an input string in "logical order" (i.e. characters in the order they are typed, not the order they will be displayed) and replaces Arabic characters with the "presentation form" of the character that represents the appropriate glyph based on the character's location within a word.

processBidirectionalText(input: string): string

Takes an input string with characters in "logical order", along with a set of chosen line break points, and applies the Unicode Bidirectional Algorithm to the string. Returns a new line in "visual order" (i.e. characters in the order they are displayed, left-to-right). The algorithm will insert mandatory line breaks (\n etc.) if they are not already included in lineBreakPoints.

processText(input: string): string

Combines arabicShaping and processBidirectionalText to process a string with both shaping and bidirectional processing. Takes an input string with characters in "logical order", and applies the Unicode Bidirectional Algorithm to the string. Returns a new line with characters in "visual order" (i.e. characters in the order they are displayed, left-to-right) and replaces Arabic characters with the "presentation form" of the character that represents the appropriate glyph based on the character's location within a word.

Example

    const { arabicShaping, processBidirectionalText, processText } = require('rtl-text');
    // ES6: import rtlText from 'rtl-text'
    const text = 'سلام۳۹;
    const output = processText(text);
    console.log(output);
    // => '۳۹ﻡﻼﺳ'

Build

1) Download and build ICU:

wget https://github.com/unicode-org/icu/releases/download/release-70-1/icu4c-70_1-src.tgz
tar xzf icu4c-70_1-src.tgz

cd icu/source

./runConfigureICU --help
./runConfigureICU MacOSX/GCC

make clean
make -j4
make install
0.1.7

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago