[Richard Suchenwirth] - "Heblish" ("Hebrew from English", termed in analogy to [Greeklish]) is a transliteration of the Hebrew alphabet in Unicode (cf. [Unicode and UTF-8], [The Lish family]). Mostly lowercase letters are used (Hebrew does not distinguish case), final forms of five Hebrew letters are mapped to the uppercase equivalents (K, M, N, F, Y). Direction is changed to right-to-left, except for letterless words (e.g. numbers). Usage example: "heblish irwsliM" gives the Hebrew spelling for Jerusalem. See also [bidi rendering]. array set i18n_a2hb { a \u5d0 b \u5d1 g \u5d2 d \u5d3 h \u5d4 w \u5d5 z \u5d6 x \u5d7 u \u5d8 i \u5d9 K \u5da k \u5db l \u5dc M \u5dd m \u5de N \u5df n \u5e0 o \u5e1 e \u5e2 F \u5e3 f \u5e4 Y \u5e5 y \u5e6 q \u5e7 r \u5e8 s \u5e9 t \u5ea ( ) ) ( } proc heblish {args} { global i18n_a2hb set res {} foreach word [split $args] { if [regexp {^[^A-Za-z]+$} $word] { lpush res $word } else { set t "" foreach i [split $word ""] { if {[array names i18n_a2hb $i]!=""} { prepend t $i18n_a2hb($i) } elseif {[array names i18n_a2hb [string tolower $i]]!=""} { prepend t $i18n_a2hb([string tolower $i]) ;# tolerant } else { prepend t $i } } lpush res $t } } return $res } proc lpush {_list what} { upvar $_list L if ![info exists L] {set L {}} set L [concat [list $what] $L] } proc prepend {_var string} { upvar $_var var if ![info exists var] {set var ""} set var $string$var } ---- ''KBK'' - What's the current thinking on Unicode combining forms? This setup leaves us without vowel points, dotted sin/shin, and dagesh / mapiq. (Obviously, the text widget doesn't do them either.) - ''RS'': Right. The combining characters (U+05B0..05C2) are contained in Cyberbit, but are rendered non-combined (both by Tcl's text widget and M$'s Notepad), so they're of little use yet. I know too little about Truetype internals, so have no way to check whether the font lacks that information, or it is not used by the renderer. Sorry for the moment... ---- See also [Right-to-left entry widget] - [Arts and crafts of Tcl-Tk programming]