UNPKG

unidev

Version:

Converts text of non-unicode fonts to unicode

44 lines (40 loc) 1.52 kB
var hindi = require("./mapper_hindi").fontmap; var hindi_repl = require("./mapper_hindi").fontrepl; var languages = { "hindi" : [hindi, hindi_repl] } exports.convert = function(value, language, font_name) { var font_map = languages[language]?languages[language][0][font_name]:[]; if(!(font_map && font_map.length>0)) return value; var modified_substring = value; var text_size = modified_substring.length; var processed_text = ''; var f1 = 0; var f2 = 0; var chunk_flag = 1; var chunk_size = 6000; while (chunk_flag == 1) { f1 = f2; if (f2 < (text_size - chunk_size)) { f2 += chunk_size; } else { f2 = text_size; chunk_flag = 0 } var modified_substring = value.substring(f1, f2); replace_symbols(); var processed_text = processed_text + modified_substring; } return languages[language][1](processed_text); function replace_symbols() { if (modified_substring != "") { for (input_symbol_idx = 0; input_symbol_idx < font_map.length; input_symbol_idx = input_symbol_idx + 2) { idx = modified_substring.indexOf(font_map[input_symbol_idx]) while (idx != -1) { modified_substring = modified_substring.replace(font_map[input_symbol_idx], font_map[input_symbol_idx + 1]); idx = modified_substring.indexOf(font_map[input_symbol_idx]) } } } } }