├── .gitignore ├── src ├── data │ ├── predictiveTextDataset.js │ └── spellingErrorDataset.js ├── test │ ├── test.html │ └── test.js ├── helpers │ ├── NumberTranslationrule.js │ └── Translationrule.js └── index.js ├── package.json ├── contributing.md └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /src/data/predictiveTextDataset.js: -------------------------------------------------------------------------------- 1 | // predictiveTextDataset.js 2 | 3 | const predictiveTextDataset = [ 4 | "በጣም ማስታወቂያ", 5 | "አዲስ ጥያቄ", 6 | "ጥያቄ አንድ", 7 | // Add more Amharic words or phrases as needed 8 | ]; 9 | 10 | module.exports = predictiveTextDataset; 11 | -------------------------------------------------------------------------------- /src/test/test.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Amharic Text Conversion 5 | 6 | 7 |

Amharic Text Conversion

8 |
9 |
10 | 11 |
12 | 13 | 14 | -------------------------------------------------------------------------------- /src/helpers/NumberTranslationrule.js: -------------------------------------------------------------------------------- 1 | // NumberTranslationrule 2 | const NumberTranslationRules = { 3 | "1":"፩", 4 | "2": "፪", 5 | "3": "፫", 6 | "4": "፬", 7 | "5": "፭", 8 | "6": "፮", 9 | "7": "፯", 10 | "8": "፰", 11 | "9": "፱", 12 | "፩0": "፲", 13 | "፪0": "፳", 14 | "፫0": "፴", 15 | "፬0": "፵", 16 | "፭0": "፶", 17 | "፮0": "፷", 18 | "፯0": "፸", 19 | "፰0": "፹", 20 | "፱0": "፺", 21 | "፲0": "፻", 22 | "፳0": "፪፻", 23 | "፺0": "፱፻", 24 | "፻0": "፲፻", 25 | "፲፻0": "፼" 26 | }; 27 | 28 | module.exports = NumberTranslationRules; 29 | -------------------------------------------------------------------------------- /src/test/test.js: -------------------------------------------------------------------------------- 1 | const { convertToAmharic } = require('../index'); 2 | //testing with a given english word 3 | const englishText = 'he hu hi ha hee h ho hua , le lu li la lee l lo lua , He Hu Hi Ha Hee H Ho Hua'; 4 | const englishText1 = 'Me mu mi ma mee m mo mua mY , Se Su Si Sa See S So Sua , Re ru ri ra ree r ro rua rY '; 5 | const englishText2 = 'A U I EA EE E O '; 6 | const englishText3 = 'beTm'; 7 | const englishText4 = 'ts'; 8 | const numbers = '1356'; 9 | 10 | 11 | const amharicText = convertToAmharic(englishText1, { 12 | includeNumbers:true, 13 | enhance: false, 14 | }); 15 | console.log(amharicText.convertedText); 16 | 17 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "amharic-converter", 3 | "version": "1.0.7", 4 | "description": "this is a converter that can help you write in amharic in your application ", 5 | "main": "src/index.js", 6 | "scripts": { 7 | "test": "mocha src/test/test.js" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/girumgizachew1/Amharic-converter.git" 12 | }, 13 | "keywords": [ 14 | "amharic-converter" 15 | ], 16 | "author": "Girum Gizachew", 17 | "license": "ISC", 18 | "devDependencies": { 19 | "mocha": "^10.2.0" 20 | }, 21 | "dependencies": { 22 | "express": "^4.18.2" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/data/spellingErrorDataset.js: -------------------------------------------------------------------------------- 1 | // spellingErrorDataset.js 2 | 3 | const spellingErrorDataset = [ 4 | { 5 | incorrect: "አድስ", 6 | correct: "አዲስ", 7 | }, 8 | { 9 | incorrect: "አደስ", 10 | correct: "አዲስ", 11 | }, 12 | { 13 | incorrect: "ቀን", 14 | correct: "ቀን", 15 | }, 16 | { 17 | incorrect: "በጥም", 18 | correct: "በጣም", 19 | }, 20 | { 21 | incorrect: "ማስታወቂያ", 22 | correct: "ማስታወቂያ", 23 | }, 24 | { 25 | incorrect: "ጥያቄ", 26 | correct: "ጥያቄ", 27 | }, 28 | // Add more examples of incorrect and correct word pairs as needed 29 | ]; 30 | 31 | module.exports = spellingErrorDataset; 32 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | const transcriptionRules = require('./helpers/Translationrule'); 2 | const predictiveTextDataset = require('./data/predictiveTextDataset'); // Load the dataset of Amharic words 3 | const spellingErrorDataset = require('./data/spellingErrorDataset'); // Load the dataset of spelling errors 4 | const NumberTranslationRules = require('./helpers/NumberTranslationrule'); 5 | function convertToAmharic(text, config = {}) { 6 | let convertedText = text; 7 | let suggestions = []; 8 | let correctedText = convertedText; 9 | 10 | // Apply the transcription rules to convert the text to Amharic 11 | for (const rule in transcriptionRules) { 12 | const regex = new RegExp(rule, "g"); 13 | convertedText = convertedText.replace(regex, transcriptionRules[rule]); 14 | correctedText = convertedText; 15 | } 16 | 17 | // Apply the number transliteration rules 18 | if (config.includeNumbers !== false) { 19 | for (const rule in NumberTranslationRules) { 20 | const regex = new RegExp(rule, "g"); 21 | convertedText = convertedText.replace(regex, NumberTranslationRules[rule]); 22 | correctedText = correctedText.replace(regex, NumberTranslationRules[rule]); 23 | } 24 | } 25 | 26 | if (config.enhance !== false) { 27 | // Check for spelling errors and suggest corrections 28 | for (const entry of spellingErrorDataset) { 29 | const incorrectWord = entry.incorrect; 30 | const correctWord = entry.correct; 31 | const regex = new RegExp(incorrectWord, "gi"); 32 | 33 | if (correctedText.match(regex)) { 34 | correctedText = correctedText.replace(regex, correctWord); 35 | } 36 | } 37 | // Find predictive text suggestions based on the converted text 38 | const lastWord = correctedText.trim().split(" ").pop(); 39 | if (lastWord) { 40 | suggestions = predictiveTextDataset.filter(word => 41 | word.startsWith(lastWord) 42 | ); 43 | } 44 | } 45 | 46 | const result = { 47 | convertedText 48 | }; 49 | 50 | if (config.enhance !== false) { 51 | result.correctedText = correctedText; 52 | result.suggestions = suggestions; 53 | } 54 | return result; 55 | } 56 | 57 | // Exporting the function 58 | module.exports = { 59 | convertToAmharic, 60 | }; 61 | -------------------------------------------------------------------------------- /contributing.md: -------------------------------------------------------------------------------- 1 | 2 | ## Contributing Guidelines 3 | 4 | Thank you for your interest in contributing to the Amharic Converter library! Contributions are highly appreciated and help improve the functionality and usability of the library. Please take a moment to review the following guidelines before making any contributions. 5 | 6 | ## Submitting Issues 7 | 8 | If you encounter any issues while using the Amharic Converter library or have suggestions for improvements, you can submit an issue on the GitHub repository. When submitting an issue, please provide detailed information about the problem or suggestion, including steps to reproduce (if applicable), expected behavior, and any relevant code examples. 9 | Contributing Code 10 | 11 | If you would like to contribute code to the Amharic Converter library, please follow these steps: 12 | 13 | - Fork the repository to your GitHub account. 14 | - Create a new branch for your contribution: git checkout -b feature/your-feature-name. 15 | - Make the necessary changes and ensure that the code adheres to the project's coding conventions and style guidelines. 16 | - Write appropriate tests to validate your changes. 17 | - Run the test suite to ensure that all existing tests pass: npm test. 18 | - Commit your changes with a descriptive commit message: git commit -m "Add your commit message". 19 | - Push your branch to your forked repository: git push origin feature/your-feature-name. 20 | - Open a pull request on the main repository and provide a clear description of your changes. 21 | 22 | Please note that all contributions are subject to review and may require some modifications before being merged into the main codebase. Your patience and cooperation during this process are highly appreciated. 23 | 24 | ## Development Setup 25 | 26 | To set up the development environment for the Amharic Converter library, follow these steps: 27 | 28 | - Clone the repository to your local machine: git clone https://github.com/girumgizachew1/Amharic-converter.git. 29 | - Navigate to the project directory: cd Amharic-converter. 30 | - Install the dependencies: npm install. 31 | - Make your changes and run tests using npm test to ensure everything is functioning correctly. 32 | 33 | ### Code Style 34 | 35 | The Amharic Converter library follows a specific code style to maintain consistency and readability. Please adhere to the following guidelines when writing code: 36 | 37 | - Use meaningful variable and function names. 38 | - Follow the existing indentation and formatting style. 39 | - Write clear and concise comments to explain complex logic or algorithms. 40 | - Break down large tasks into smaller, reusable functions. 41 | 42 | ### License 43 | 44 | By contributing to the Amharic Converter library, you agree that your contributions will be licensed under the ISC License. Make sure you read and understand the terms of the LICENSE file. 45 | 46 | If you have any questions or need further assistance, feel free to reach out. Thank you for your valuable contributions! -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Amharic Converter 2 | 3 | [![npm version](https://img.shields.io/npm/v/amharic-converter.svg)](https://www.npmjs.com/package/amharic-converter) 4 | [![license](https://img.shields.io/npm/l/amharic-converter.svg)](https://github.com/girumgizachew1/Amharic-converter/blob/main/LICENSE) 5 | 6 | This is a Typer that helps you write in Amharic in your application. It provides a simple way to convert English letters to Amharic letter using predefined transcription rules. 7 | 8 | ## Installation 9 | 10 | You can install the package via npm: 11 | 12 | ```shell 13 | npm install amharic-converter 14 | ``` 15 | 16 | ## Usage with Example 17 | To enable the conversion of English text to Amharic in real-time, you need to create a state variable that will hold the Amharic text. Additionally, you should implement an event handler that updates the state variable whenever the input text changes. 18 | 19 | Here's an example of how you can accomplish this in JavaScript: 20 | 21 | ```javascript 22 | import { convertToAmharic } from "amharic-converter"; 23 | 24 | // Create a state variable to hold the Amharic text 25 | const [amharicText, setAmharicText] = useState(""); 26 | 27 | // Define an event handler to update the state when the input changes 28 | const handleInputChange = (event) => { 29 | const englishText = event.target.value; 30 | const convertedText = convertToAmharic(englishText); 31 | setAmharicText(convertedText); 32 | }; 33 | ``` 34 | 35 | In the code snippet above, we import the convertToAmharic function from the amharic-converter package. Then, we create a state variable called amharicText using the useState hook, which initializes it with an empty string. 36 | 37 | The handleInputChange function is responsible for updating the state variable whenever the input text changes. It extracts the English text from the event's target value, passes it to the convertToAmharic function to obtain the corresponding Amharic text, and sets the amharicText state with the converted text. 38 | 39 | To integrate this functionality into your application, you can use the amharicText state variable to display the converted Amharic text within an input element. Here's an example of how you can achieve this in JSX: 40 | 41 | ```javascript 42 | 43 | ``` 44 | 45 | In the above code, the value attribute of the input element is bound to the amharicText state variable, ensuring that it reflects the current converted Amharic text. The onChange event is connected to the handleInputChange function, so any changes to the input will trigger the conversion and update the state accordingly. 46 | 47 | ## Usage with Node 48 | #### Step 1: create node project 49 | ``` npm init ``` 50 | #### Step 2: add amharic-converter as dependency 51 | ```npm install amharic-converter``` 52 | #### Step 3: 53 | ```javascript 54 | # index.js 55 | const { convertToAmharic } = require("amharic-converter"); 56 | 57 | const amharicString = "Selam new" 58 | const result = convertToAmharic(amharicString) 59 | 60 | console.log(result) 61 | ``` 62 | 63 | #### Step 4: run the code in your terminal 64 | ``` node index.js ``` 65 | #### Expected output 66 | ``` ሠላም ነው``` 67 | 68 | ## Authors 69 | 70 | - [@girumgizachew1](https://www.github.com/girumgizachew1) 71 | 72 | ## Contributing 73 | 74 | Contributions are always welcome! 75 | 76 | See `contributing.md` for ways to get started. 77 | 78 | Please adhere to this project's `code of conduct`. 79 | -------------------------------------------------------------------------------- /src/helpers/Translationrule.js: -------------------------------------------------------------------------------- 1 | const transcriptionRules = { 2 | //the rules for the most amharic word 3 | "h": "ህ", 4 | "ህe": "ሀ", 5 | "ህu": "ሁ", 6 | "ህi": "ሂ", 7 | "ህa": "ሃ", 8 | "ሀe": "ሄ", 9 | "ህé": "ሄ", 10 | "ህo": "ሆ", 11 | "ሁa": "ዏ", 12 | 13 | "[Ll]": "ል", 14 | "ልe": "ለ", 15 | "ልu": "ሉ", 16 | "ልi": "ሊ", 17 | "ልa": "ላ", 18 | "ለe": "ሌ", 19 | "ልé": "ሌ", 20 | "ልo": "ሎ", //error 21 | "ሉa": "ሏ", 22 | 23 | 24 | "H" : "ሕ", 25 | "ሕe": "ሐ", 26 | "ሕu": "ሑ", 27 | "ሕi": "ሒ", 28 | "ሕa": "ሓ", 29 | "ሐe":"ሔ", 30 | "ሕé": "ሔ", 31 | "ሕo": "ሖ", 32 | "ሑa": "ሗ", 33 | 34 | "[mM]": "ም", 35 | "ምe": "መ", 36 | "ምu": "ሙ", 37 | "ምi": "ሚ", 38 | "ምa": "ማ", 39 | "መe": "ሜ", 40 | "ምé": "ሜ", 41 | "ምo": "ሞ", 42 | "ሙa": "ሟ", 43 | "ምY": "ፙ", 44 | 45 | "S": "ሥ", 46 | "ሥe": "ሠ", 47 | "ሥu": "ሡ", 48 | "ሥi": "ሢ", 49 | "ሥa": "ሣ", 50 | "ሠe": "ሤ", 51 | "ሥé": "ሤ", 52 | "ሥo": "ሦ", 53 | "ሡa": "ሧ", 54 | 55 | "[rR]": "ር", 56 | "ርe": "ረ", 57 | "ርu": "ሩ", 58 | "ርi": "ሪ", 59 | "ርa": "ራ", 60 | "ረe": "ሬ", 61 | "ርé": "ሬ", 62 | "ርo": "ሮ", 63 | "ሩa": "ሯ", 64 | "ርY": "ፘ", 65 | 66 | "s": "ስ", 67 | "ስe": "ሰ", 68 | "ስu": "ሱ", 69 | "ስi": "ሲ", 70 | "ስa": "ሳ", 71 | "ሰe": "ሴ", 72 | "ስé": "ሴ", 73 | "ስo": "ሶ", 74 | "ሱa": "ሷ", 75 | 76 | // sh=ss 77 | "[xX]": "ሽ", 78 | "ሽe": "ሸ", 79 | "ሽu": "ሹ", 80 | "ሽi": "ሺ", 81 | "ሽa": "ሻ", 82 | "ሸe": "ሼ", 83 | "ሽé": "ሼ", 84 | "ሽo": "ሾ", 85 | "ሹa": "ሿ", 86 | 87 | "[qQ]": "ቅ", 88 | "ቅe": "ቀ", 89 | "ቅu": "ቁ", 90 | "ቅi": "ቂ", 91 | "ቅa": "ቃ", 92 | "ቀe": "ቄ", 93 | "ቅé": "ቄ", 94 | "ቅo": "ቆ", 95 | "ቁe": "ቈ", 96 | "ቁi": "ቊ", 97 | "ቁu": "ቍ", 98 | "ቁa": "ቋ", 99 | "ቊa": "ቌ", 100 | 101 | "[bB]": "ብ", 102 | "ብe": "በ", 103 | "ብu": "ቡ", 104 | "ብi": "ቢ", 105 | "ብa": "ባ", 106 | "በe": "ቤ", 107 | "ብé": "ቤ", 108 | "ብo": "ቦ", 109 | "ቡa": "ቧ", 110 | 111 | "[vV]": "ቭ", 112 | "ቭe": "ቨ", 113 | "ቭu": "ቩ", 114 | "ቭi": "ቪ", 115 | "ቭa": "ቫ", 116 | "ቨe": "ቬ", 117 | "ቭé": "ቬ", 118 | "ቭo": "ቮ", 119 | "ቩa": "ቯ", 120 | 121 | "t": "ት", 122 | "ትe": "ተ", 123 | "ትu": "ቱ", 124 | "ትi": "ቲ", 125 | "ትa": "ታ", 126 | "ተe": "ቴ", 127 | "ትé": "ቴ", 128 | "ትo": "ቶ", 129 | "ቱa": "ቷ", 130 | 131 | "[c]": "ች", 132 | "ችe": "ቸ", 133 | "ችu": "ቹ", 134 | "ችi": "ቺ", 135 | "ችa": "ቻ", 136 | "ቸe": "ቼ", 137 | "ችé": "ቼ", 138 | "ችo": "ቾ", 139 | "ቹa": "ቿ", 140 | 141 | "ህህ": "ኅ", 142 | "ኅe": "ኅ", 143 | "ኅu": "ኁ", 144 | "ኅi": "ኂ", 145 | "ኅa": "ኃ", 146 | "ኅe": "ኄ", 147 | "ኅé": "ኄ", 148 | "ኅo": "ኆ", 149 | "ኁe": "ኈ", 150 | "ኁi": "ኊ", 151 | "ኁu": "ኍ", 152 | "ኁa": "ኋ", 153 | "ኋe": "ኌ", 154 | 155 | 156 | "n": "ን", 157 | "ንe": "ነ", 158 | "ንu": "ኑ", 159 | "ንi": "ኒ", 160 | "ንa": "ና", 161 | "ነe": "ኔ", 162 | "ንé": "ኔ", 163 | "ንo": "ኖ", 164 | "ኑa": "ኗ", 165 | 166 | 167 | "N": "ኝ", 168 | "ኝe": "ኘ", 169 | "ኝu": "ኙ", 170 | "ኝi": "ኚ", 171 | "ኝa": "ኛ", 172 | "ኝe": "ኜ", 173 | "ኝé": "ኜ", 174 | "ኝo": "ኞ", 175 | "ኙa": "ኟ", 176 | 177 | 178 | 179 | "k": "ክ", 180 | "ክe": "ከ", 181 | "ክu": "ኩ", 182 | "ክi": "ኪ", 183 | "ክa": "ካ", 184 | "ከe": "ኬ", 185 | "ክé": "ኬ", 186 | "ክo": "ኮ", 187 | "ኩe": "ኰ", 188 | "ኩi": "ኲ", 189 | "ኩu": "ኵ", 190 | "ኩa": "ኯ", 191 | "ኲe": "ኴ", 192 | 193 | 194 | "K": "ኽ", 195 | "ኽe": "ኸ", 196 | "ኽu": "ኹ", 197 | "ኽi": "ኺ", 198 | "ኽa": "ኻ", 199 | "ኽe": "ኼ", 200 | "ኽé": "ኼ", 201 | "ኽo": "ኾ", 202 | 203 | '[wW]': "ው", 204 | "ውe": "ወ", 205 | "ውu": "ዉ", 206 | "ውi": "ዊ", 207 | "ውa": "ዋ", 208 | "ወe": "ዌ", 209 | "ውé": "ዌ", 210 | "ውo": "ዎ", 211 | 212 | "z": "ዝ", 213 | "ዝe": "ዘ", 214 | "ዝu": "ዙ", 215 | "ዝi": "ዚ", 216 | "ዝa": "ዛ", 217 | "ዘe": "ዜ", 218 | "ዝé": "ዜ", 219 | "ዝo": "ዞ", 220 | "ዙa": "ዟ", 221 | 222 | 223 | "Z": "ዥ", 224 | "ዥe": "ዠ", 225 | "ዥu": "ዡ", 226 | "ዥi": "ዢ", 227 | "ዥa": "ዣ", 228 | "ዠe": "ዤ", 229 | "ዥé": "ዤ", 230 | "ዥo": "ዦ", 231 | "ዡa": "ዧ", 232 | 233 | "[yY]": "ይ", 234 | "ይe": "የ", 235 | "ይu": "ዩ", 236 | "ይi": "ዪ", 237 | "ይa": "ያ", 238 | "የe": "ዬ", 239 | "ይé": "ዬ", 240 | "ይo": "ዮ", 241 | "ዩa": "ዯ", 242 | 243 | "[dD]": "ድ", 244 | "ድe": "ደ", 245 | "ድu": "ዱ", 246 | "ድi": "ዲ", 247 | "ድa": "ዳ", 248 | "ደe": "ዴ", 249 | "ድé": "ዴ", 250 | "ድo": "ዶ", 251 | "ዱa": "ዷ", 252 | 253 | 254 | "[jJ]": "ጅ", 255 | "ጅe": "ጀ", 256 | "ጅu": "ጁ", 257 | "ጅi": "ጂ", 258 | "ጅa": "ጃ", 259 | "ጀe": "ጄ", 260 | "ጅé": "ጄ", 261 | "ጅo": "ጆ", 262 | "ጁa": "ጇ", 263 | 264 | "[gG]": "ግ", 265 | "ግe": "ገ", 266 | "ግu": "ጉ", 267 | "ግi": "ጊ", 268 | "ግa": "ጋ", 269 | "ገe": "ጌ", 270 | "ግé": "ጌ", 271 | "ግo": "ጎ", 272 | "ጉe": "ጐ", 273 | "ጉu": "ጕ", 274 | "ጉi": "ጒ", 275 | "ጉa": "ጓ", 276 | "ጒe": "ጔ", 277 | 278 | "T": "ጥ", 279 | "ጥe": "ጠ", 280 | "ጥu": "ጡ", 281 | "ጥi": "ጢ", 282 | "ጥa": "ጣ", 283 | "ጠe": "ጤ", 284 | "ጥé": "ጤ", 285 | "ጥo": "ጦ", 286 | "ጡa": "ጧ", 287 | 288 | "C": "ጭ", 289 | "ጭe": "ጨ", 290 | "ጭu": "ጩ", 291 | "ጭi": "ጪ", 292 | "ጭa": "ጫ", 293 | "ጨe": "ጬ", 294 | "ጭé": "ጬ", 295 | "ጭo": "ጮ", 296 | "ጩa": "ጯ", 297 | 298 | "P": "ጵ", 299 | "ጵe": "ጰ", 300 | "ጵu": "ጱ", 301 | "ጵi": "ጲ", 302 | "ጵa": "ጳ", 303 | "ጰe": "ጴ", 304 | "ጵé": "ጴ", 305 | "ጵo": "ጶ", 306 | "ጱa": "ጷ", 307 | 308 | "ትስ": "ጽ", 309 | "ጽe": "ጸ", 310 | "ጽu": "ጹ", 311 | "ጽi": "ጺ", 312 | "ጽa": "ጻ", 313 | "ጸe": "ጼ", 314 | "ጽé": "ጼ", 315 | "ጽo": "ጾ", 316 | "ጹa": "ጿ", 317 | 318 | "ትሥ": "ፅ", 319 | "ፅe": "ፀ", 320 | "ፅu": "ፁ", 321 | "ፅi": "ፂ", 322 | "ፅa": "ፃ", 323 | "ፀe": "ፄ", 324 | "ፅé": "ፄ", 325 | "ፅo": "ፆ", 326 | "ፁa": "ፇ", 327 | 328 | "[fF]": "ፍ", 329 | "ፍe": "ፈ", 330 | "ፍu": "ፉ", 331 | "ፍi": "ፊ", 332 | "ፍa": "ፋ", 333 | "ፈe": "ፌ", 334 | "ፍé": "ፌ", 335 | "ፍo": "ፎ", 336 | "ፉa": "ፏ", 337 | 338 | "p": "ፕ", 339 | "ፕe": "ፐ", 340 | "ፕu": "ፑ", 341 | "ፕi": "ፒ", 342 | "ፕa": "ፓ", 343 | "ፐe": "ፔ", 344 | "ፕé": "ፔ", 345 | "ፕo": "ፖ", 346 | "ፑa": "ፗ", 347 | 348 | // pharyngale 349 | 350 | "e": "እ", 351 | "a": "አ", 352 | "u": "ኡ", 353 | "i": "ኢ", 354 | "እአ": "ኣ", 355 | "እእ": "ኤ", 356 | "é": "ኤ", 357 | "o": "ኦ", 358 | "አእ": "ኧ", 359 | 360 | "E": "ዕ", 361 | "A": "ዐ", 362 | "U": "ዑ", 363 | "I": "ዒ", 364 | "ዕዐ": "ዓ", 365 | "ዕዕ": "ዔ", 366 | "É": "ዔ", 367 | "O": "ዖ", 368 | 369 | } 370 | module.exports = transcriptionRules; 371 | --------------------------------------------------------------------------------