sinhala-text-converters
v1.0.5
Published
TypeScript/JavaScript library for converting between Singlish (Sinhala written in English) and Unicode Sinhala. Conversion algorithms originally from Language Technology Research Laboratory - University of Colombo School of Computing (UCSC).
Maintainers
Readme
sinhala-text-converters
A TypeScript/JavaScript library for converting between Singlish (Sinhala written in English) and Unicode Sinhala formats.
Created and maintained by Sinhala Soft Foundation.
Installation
npm install sinhala-text-convertersUsage
TypeScript
import {
singlishToUnicode,
unicodeToSinglish,
convert,
ConversionOptions
} from 'sinhala-text-converters';
// Convert Singlish to Unicode
const unicode = singlishToUnicode('aayubowan');
console.log(unicode); // Output: ආයුබෝවන්
// Convert Unicode to Singlish
const singlish = unicodeToSinglish('ආයුබෝවන්');
console.log(singlish); // Output: aayubowan
// Use the helper function for conversion
const result = convert('aayubowan', 'singlish', 'unicode');
console.log(result); // Output: ආයුබෝවන්JavaScript
const {
singlishToUnicode,
unicodeToSinglish,
convert
} = require('sinhala-text-converters');
// Convert Singlish to Unicode
const unicode = singlishToUnicode('aayubowan');
console.log(unicode); // Output: ආයුබෝවන්
// Use the helper function
const result = convert('aayubowan', 'singlish', 'unicode');
console.log(result); // Output: ආයුබෝවන්API Reference
Functions
singlishToUnicode(text: string, options?: ConversionOptions): string
Converts Singlish (Sinhala written in English) to Unicode Sinhala.
Parameters:
text- The Singlish text to convertoptions- Optional conversion options (see below)
Returns: The converted Unicode Sinhala text
unicodeToSinglish(text: string, options?: ConversionOptions): string
Converts Unicode Sinhala to Singlish.
Parameters:
text- The Unicode Sinhala text to convertoptions- Optional conversion options (see below)
Returns: The converted Singlish text
convert(text: string, from: TextFormat, to: TextFormat, options?: ConversionOptions): string
Helper function to convert text between Singlish and Unicode formats.
Parameters:
text- The text to convertfrom- The source format ('singlish' | 'unicode')to- The target format ('singlish' | 'unicode')options- Optional conversion options (see below)
Returns: The converted text
Throws: Error if an unsupported conversion direction is requested
Types
TextFormat
type TextFormat = 'singlish' | 'unicode';ConversionOptions
interface ConversionOptions {
/**
* Callback function to handle unexpected inputs or conversion issues.
* Called when an unexpected character or pattern is encountered during conversion.
*/
onUnexpectedInput?: (
input: string,
position: number,
context: {
format: TextFormat;
direction: 'to' | 'from';
char?: string;
pattern?: string;
}
) => string | null | undefined;
}Handling Unexpected Inputs
You can provide a callback function to handle unexpected characters or patterns during conversion:
const options: ConversionOptions = {
onUnexpectedInput: (input, position, context) => {
console.warn(`Unexpected input at position ${position}: ${context.char}`);
// Return a replacement string, or null/undefined to skip
return '';
}
};
const result = singlishToUnicode('hello123', options);Examples
Basic Conversion
import { singlishToUnicode } from 'sinhala-text-converters';
const result = singlishToUnicode('aayubowan');
console.log(result); // Output: ආයුබෝවන්Using the Helper Function
import { convert } from 'sinhala-text-converters';
// Convert from Singlish to Unicode
const unicode = convert('aayubowan', 'singlish', 'unicode');
console.log(unicode); // Output: ආයුබෝවන්
// Convert from Unicode to Singlish
const singlish = convert('ආයුබෝවන්', 'unicode', 'singlish');
console.log(singlish); // Output: aayubowanWith Error Handling
import { singlishToUnicode, ConversionOptions } from 'sinhala-text-converters';
const options: ConversionOptions = {
onUnexpectedInput: (input, position, context) => {
if (context.char && /[0-9]/.test(context.char)) {
// Replace numbers with empty string
return '';
}
// For other unexpected characters, skip them
return null;
}
};
const result = singlishToUnicode('hello123world', options);Supported Formats
- Singlish: Sinhala text written using English characters (e.g., "aayubowan")
- Unicode: Standard Unicode Sinhala characters (e.g., "ආයුබෝවන්")
About
This package is created and maintained by Sinhala Soft Foundation, a non-profit organization dedicated to promoting and developing Sinhala language technology.
Copyright and Attribution
Important: All conversion algorithms originated from the Language Technology Research Laboratory - University of Colombo School of Computing (UCSC).
- Package Maintainer: Sinhala Soft Foundation
- Original Source: Language Technology Research Laboratory - University of Colombo School of Computing
- Original Website: https://ucsc.cmb.ac.lk/ltrl/services/feconverter
- Copyright: © Language Technology Research Laboratory - University of Colombo School of Computing
All credits for the conversion algorithms go to the authors at UCSC. This package is maintained by Sinhala Soft Foundation.
License
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Support
For issues and questions, please open an issue on the GitHub repository.
