unicodeToMenksoftSameIndex method
Implementation
String unicodeToMenksoftSameIndex(String inputString) {
if (inputString.isEmpty) return '';
final outputString = StringBuffer();
final mongolWord = StringBuffer();
// Loop through characters in string
final length = inputString.length;
for (var i = 0; i < length; i++) {
final codeUnit = inputString.codeUnitAt(i);
if (isMongolian(codeUnit)) {
mongolWord.writeCharCode(codeUnit);
continue;
}
if (mongolWord.length > 0) {
_appendMongolWord(outputString, mongolWord);
mongolWord.clear();
}
// NNBS starts a new Mongol word but is not itself a Mongol char
if (codeUnit == Unicode.NNBS) {
mongolWord.writeCharCode(Unicode.NNBS);
continue;
}
if (_isConvertiblePunctuation(codeUnit)) {
final menksoftPunctuation =
MongolWord.convertPunctuationToMenksoftCode(codeUnit);
outputString.writeCharCode(menksoftPunctuation);
continue;
}
// non-Mongol character
outputString.writeCharCode(codeUnit);
}
// Add any final substring
if (mongolWord.length > 0) _appendMongolWord(outputString, mongolWord);
return outputString.toString();
}