# Braille Translator
A Java-based application that provides bidirectional translation between text and Braille, supporting multiple contraction levels for Afrikaans language.
## Author
**Thaakir Fernandez**
## Project Timeline
- **Start Date:** February 2024
- **Completed:** May 2024
## Features
- **Bidirectional Translation**: Convert text to Braille and Braille to text
- **Multiple Contraction Levels**: Support for various Braille contraction levels (1.0 - 4.1)
- **Afrikaans Language Support**: Specialized mappings for Afrikaans characters and contractions
- **File Processing**: Read input from files and output results to files
- **Special Character Support**: Handles punctuation, numbers, and accented characters
- **Capitalization**: Proper handling of single letter capitalization and all-caps words
## Project Structure
```
src/
├── Brail2Txt.java # Braille to text translation
├── Txt2Braille.java # Text to Braille translation
├── Translate.java # Main translation controller
├── Hashmaps.java # Braille contraction mappings
├── TextMaps.java # Text contraction mappings
├── BrailleContractions.java # Braille contraction processing (referenced)
├── TextContractions.java # Text contraction processing (referenced)
└── Main.java # Application entry point
```
## Usage
### Command Line Interface
```
java Translate
```
**Parameters:**
- `GUI_MODE`: `GUI` or `noGUI` #GUI not implemented here
- `DIRECTION`: `b2t` (Braille to Text) or `t2b` (Text to Braille)
- `LEVEL`: Contraction level (1.0, 1.1, 1.2, 1.3, 2.1, 2.2, 2.3, 2.4, 3.1, 3.2, 3.3, 4.1)
- `FILE_PATH`: Path to the input file
### Examples
```
# Convert Braille to text with level 2.1 contractions
java Translate noGUI b2t 2.1 input/braille_file.txt
# Convert text to Braille with level 1.2 contractions
java Translate noGUI t2b 1.2 input/text_file.txt
```
## Contraction Levels
The translator supports various contraction levels with increasing …