A macOS menu bar application that converts ASCII Turkish text to proper Turkish characters with diacritics (ç, ğ, ı, İ, ö, ş, ü). Perfect for Turkish speakers living abroad using English keyboards.
- ⚡ Global Hotkey: Convert selected text anywhere with ⌥⌘T
- 🔤 Menu Bar Integration: Lightweight, always-accessible interface
- 📝 Real-time Conversion: Type and see results instantly
- 📋 Smart Clipboard: Auto-copy converted text
- 🚀 High Performance: Pattern-based algorithm with 13,462 contextual rules
# Clone the repository
git clone https://github.com/armish/TurkishDeasciifier.git
cd TurkishDeasciifier
# Build the application
./build_direct.sh
# Run the app
./TurkishDeasciifier- Menu Bar Access: Click the "tü" icon in your menu bar
- Global Hotkey: Select any text and press ⌥⌘T to convert instantly
- Manual Conversion: Type in the app window for real-time conversion
| ASCII | Turkish | Example |
|---|---|---|
| c → ç | C → Ç | cicek → çiçek |
| g → ğ | G → Ğ | dogru → doğru |
| i → ı | I → İ | Insan → İnsan |
| o → ö | O → Ö | gorulmek → görülmek |
| s → ş | S → Ş | seker → şeker |
| u → ü | U → Ü | Turkiye → Türkiye |
- macOS 13+ (Ventura or later)
- Accessibility Permissions (for global hotkey functionality)
- Swift 5.8+ (for building from source)
./build_direct.shswift build -c release
# Output: .build/release/TurkishDeasciifiercd Sources
swiftc -o ../TurkishDeasciifier \
TurkishDeasciifierApp.swift \
ContentView.swift \
TurkishDeasciifier.swift \
-framework SwiftUI \
-framework AppKit \
-framework Carbon \
-O- Run the app for the first time
- Grant Accessibility Permissions when prompted:
- System Preferences → Privacy & Security → Accessibility
- Add "TurkishDeasciifier" to the allowed apps
- Restart the app to enable global hotkey
# Build the application
./build_direct.sh
# Test accuracy
swift Tests/accuracy_test.swift| Input | Output |
|---|---|
Turkiye |
Türkiye |
guclu gorunmek |
güçlü görünmek |
buyuk bolumu |
büyük bölümü |
Istanbul'un |
İstanbul'un |
- 13,462 patterns for contextual character conversion
- Bidirectional context analysis (10 characters each direction)
- Ranking system for pattern confidence
- Special handling for Turkish capitalization rules
- 100% accuracy on comprehensive test corpus
- Matches Python implementation character-by-character
- Real-world tested with Turkish news articles and literature
If you encounter Xcode Command Line Tools issues:
# Use the direct build method instead
./build_direct.shIf global hotkey doesn't work:
- Check Accessibility permissions in System Preferences
- Remove and re-add the app if needed
- Restart the application
If conversion accuracy is low:
- Ensure
Sources/turkish_patterns.jsonexists - Check file permissions (
chmod 644 Sources/turkish_patterns.json) - Verify file size is ~175KB
Edit TurkishDeasciifierApp.swift line 110:
// Change key code 17 ('T') to desired key
if event.modifierFlags.contains([.command, .option]) && event.keyCode == 17 {Edit TurkishDeasciifier.swift line 7:
private let turkishContextSize = 10 // Characters to analyze around target- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Add tests for new functionality
- Ensure 100% accuracy is maintained (
swift Tests/accuracy_test.swift) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Submit a pull request
MIT License - see LICENSE file for details.
This project builds upon the excellent work of the Turkish NLP community and enthusiasts:
Special thanks to all the other researchers and developers who made Turkish text processing accessible to everyone.
- Issues: Report bugs and feature requests via GitHub Issues
- Accuracy Problems: Include sample text and expected output
- Build Problems: Specify macOS version and Xcode setup
- Discussions: Join conversations on GitHub Discussions
Made with ❤️ for the Turkish community worldwide 🇹🇷