SkillAgentSearch skills...

ReaderTranslator

PDF/WebPages Reader with embedded Google Translate and voice engine on SwiftUI, Combine, Catalyst, AppKit

Install / Use

/learn @filimo/ReaderTranslator

README

ReaderTranslator

This project utilizes the following technologies: SwiftUI, Combine, Catalyst and others new features on iOS, ipadOS, macOS that annonced at WWDC 2019

<ins> I started this project when SwiftUI was in beta 1 in 2019, so it's possible that there may be some bugs with memory leaks and the architecture is not perfect. However, there are useful features that you can incorporate into your own projects. You can use this project as it is to learn and practice a foreign language, and to deepen your understanding of articles and WWDC videos. Unfortunately, I don't currently have the time to fix and rewrite the project, but I plan to add new features in the future. </ins>

Release history here

Here are video gifs of using on macOS. Wait for when they will downloaded.

Если у вас есть вопросы по SwiftUI и другим новым frameworks <br>

Другие каналы на русском о SwiftUI, Combine и Swift

Swift, Xcode разработка под iOS, macOS <br> CocoaHeads Chat <br> The Swift Developers|Сообщество разработчиков <br> Server Side Swift Developer (SSSD) - russian/ukraine/etc. (сообщество Vapor, Kitura, Perfect, Smoke, Tris) <br>

Help

If you mark this project with ✭. It will allow to easy find this project for other developers. Perhaps they already find more information about SwiftUI, Combine and other WWDC 2019 features in practice. This project will allow them to get rid of wrong opinion that SwiftUI has a lot of issues and it can not be used in real projects thereby you can bring the time where requests exceed offers.

Support

I created Telegram group https://t.me/ReaderTranslator to support this project. Where you can ask help questions and offer new features. Welcome are board.

Goals

This project targets to attract attention serious projects to SwiftUI and show its powerful. I develop this project in my free time so it would be imposible to craft such app in a short time if I used UIKit. I also use new features that announced at WWDC 2019 to show how much they are needed in morden apps.

Base idea

“If you can’t explain it simply, you don’t understand it well enough.” by Albert Einstein

<p>Since I read a lot of books or articles in a foreign language I periodically turn to Google Translate and Reverso to understand unfamiliar idioms, words or to find a sutable expressions or words in my native language. And I like to listen to how a word or sentence is pronounced through the voice engine of the system or Google Translate and Reverso.</p> <p>Although this process is simple I would like to make it as more comfortable as possible. Sometimes I am lazy to look into the translator and I make an assumption about the meaning of a word or idiom and it can lead to a missunderstanding which turns into even greater loss of my time.</p> <p>Another useful feature is to write text in Safari to check and listen to it with a simple selection of text.</p>

** update ** As the project progressed I am not feeling to back to UIKit. Being able to craft a new idea in a few minutes on SwiftUI inspire me to continue developing this project. The ability to concentrate on ideas rather than realizations gives freedom to my creativity. As I see now this project, when it already has enough useful features that I use every day. Most likely it will be the ecosystem with various services and additional apps that will help you get the language in. The project that helps to avoid the routine while you read, listen and browse info in your chosen language. Everyone can choose own convenient way to get into the foreign language. I like to move forward all time. If I can not do well now I can do it best tomorrow. I like to choose a convenient way to dive into a foreign language. I don't like to study but I like to explore. I am going to dive into a new foreign language. I think I will get new ideas for new features to use some foreign language from scratch.

Projects

  • macOS
  • macOS Catalyst
  • iPadOS
  • iOS
  • Safari extension

Requirements

  • macOS 10.15 Catalina
  • iOS 13
  • iPadOS

How to install on macOS

  • Download ReaderTranslatorMac.dmg from https://github.com/filimo/ReaderTranslator/releases
  • Open downloaded ReaderTranslatorMac.dmg
  • Copy ReaderTranslatorMac to Applications folder
  • Open ReaderTranslatorMac by the right click and click Open button (might require two attempts)
  • Enable ReaderTranslatorSafari extension in Safari->Preferences->Extensions

Important

If you want to translate selected text from Safari you should enable ReaderTranslatorSafari extension in Safari preferences

Catalyst project for macOS has some problems:

  • Select a text in WKWebView
  • Handle key events
  • Support Safari extension
  • Smart zoom doesn't work

iOS project seems less useful as it has a small screen to fit 3 views. iPadOS project takes place to exist but I don't have iPad now. I going to buy it with a pencil and continue experimenting with usability.

If you want to run the project on macOS I recommend to use 'ReaderTranslatorMac' target. I keep to support Catalyst version for macOS but nowadays it has some unfixed issues noted above.

Features

  • Support MacOS, ipadOS, iOS
  • Read PDF books or Web pages
  • Translate selected words or sentences through Google Translate and Reverso
  • Voice words or sentences though voice engines with rate speech, Google Translate and Reverso
  • Adjust speech rate

Goals

Explore features, limitations and bugs SwiftUI, Combine and Catalyst.

Coming features

Commits:

291a055

Releases

I stop to make .dmg for now.

Download .dmg from here

2.2.0 Show subtitles from .srt. Use the best subtitles generator Whisper

2.1.0 Add ChatGPT View

2.0.0 Translate audio and video sources to text (macOS only, iOS might come in the future)

1.13.0 Implemeted iPadOS target project

1.12.2 Speaking selected words and phrases by Cambridge speakers

1.12.0

1.11.1

1.11.0

1.10.0

1.9.2

1.9.1

1.9.0

1.8.5 Add english.stackexchange.com

1.8.4 AudioPlayer features

  • Play next audio automatically
  • Sleep timer

1.8.2

1.8.1

1.8.0

1.7 Added audio player in PDF mode and audio player app for iOS features

1.6.14 Added Yandex.Translate

1.6.12 New way to use ReaderTranslator with https://developer.apple.com/videos/**

  • Navigate backward or forward through phrases and send them to ReaderTranslator by pressing LeftArrow or RightArrows key
  • Go to the previous phrase, highlight it and add it to ReaderTranslator before the current text by Shift + the left arrow key
  • Go to the next phrase, highlight it and add it to ReaderTranslator after the current text by Shift + the right arrow key
  • Send the current phrase to ReaderTranslator / Start playing the video pressing "/" key
  • Prevent to start playing video after you stop it and start to navigate through phrases
  • Speed up or down speech rate by pressing "-" or "+" keys

1.6.11

  • Apple videos features: Add the previous phrase to ReaderTranslator by pressing Shift + LeftArrow button

Related Skills

View on GitHub
GitHub Stars123
CategoryContent
Updated15d ago
Forks13

Languages

Swift

Security Score

85/100

Audited on Mar 9, 2026

No findings