Android app of LINDAT translation service

Last update: Jun 7, 2022

Charles Translator

Android app of LINDAT translation service
For now just translate Czech <-> Ukrainian, but if future will be more languages

Architecture and technologies

  • Base architecture is MVVM with Android viewmodel components
  • UI is based on Android Jetpack Compose
  • For DB is used Android Room
  • For api communication is used Ktor library
  • For DI is used Hilt

Localization

App contains hardcoded texts in English, Czech, Slovak and Ukrainian languages.
Progress of tranlations:
Crowdin
If you want add your language to app, please contant [email protected]. We use https://crowdin.com/ for localization management.

Maintainers

This project is mantained by:

GitHub

https://github.com/ufal/lindat-translation-android
Comments
  • 1. Text remains in input window when direction is swapped

    version 0.9..4: When the translation direction is reversed, the text in the input window stay (e.g. the Czech text stays in the upper window which is now Ukrainian), and it is translated to cs (usually remains the same, but it is confusing). Suggestion: move the translated text from the output window to the input window at each reversal.

    Reviewed by hajic at 2022-04-10 08:08
  • 2. Use anonymous identifier instead of IP address for logging

    If the user says OK to giving us their data, generate and use an anonymous identifier unigue per device instead of IP address.

    • better privacy
    • better logging, beucase we get all the data grouped by that one user, not their various IP addresses as the phone moves around.
    Reviewed by stranak at 2022-04-22 17:14
  • 3. The content of input field when microphone is activated

    When the microphone icon is pressed, the input field should be erased.

    The input field in the second screenshot should be empty: image The current situation can be confusing - users can expect that the recorded text is appended (inserted) into the current text in the input field.

    Reviewed by matyaskopp at 2022-04-25 09:46
  • 4. Joining sentences in output window omits space.

    When the input text consists of several sentences (tested with idnes text with fullstops at the end of sentences), they end up joined without space after the fullstop in the output window. The browser UI does not do it, so it has to do something with the app.

    Reviewed by hajic at 2022-04-15 12:26
  • 5. App Icon

    New icon, "Charles Translator".

    • [ ] pick one (Slack)
    • [ ] get feedback for that one (Slack)
    • [ ] have the author improve it based on the feedback
    • [ ] check with the author that the icon conforms to the guidelines
    Reviewed by stranak at 2022-05-04 09:31
  • 6. Crashes on Chromebook

    The app crashes when clicking on some history items. Other items work OK, but I could not find any rule which items cause the crashes and which not. I have Chrome OS 100.0.4896.82, Acer N15Q8. I have tried just a few Android apps and all worked correctly, but I admit that using an old chromebook is an edge case. So maybe we can close this issue as "wont fix" (and similarly #11) if no one else encounters the same bug.

    Reviewed by martinpopel at 2022-04-21 21:01
  • 7. Text input does weird stuff with MessagEase keyboard

    I am using a rather unusual keyboard called MessagEase. With this keyboard, diacritics are added to already written characters, i.e. I write "s", then do "add háček" and the result is "š". This does not work here, it writes a standalone "ˇ" character. Often, the following character also got malformed. I use the keyboard for several years and I have never encountered an issue like this.

    version 0.9.7, Samsung M22, Android 11, Kernel 4.14.186-22735277

    Reviewed by jlibovicky at 2022-04-11 08:58
  • 8. Strange history item click event action

    I translated the word "Ahoj":

    Screenshot_20220421-211356

    Then I pressed history icon:

    Screenshot_20220421-212025

    and then a card with the history item containing the translation of "Ahoj":

    Screenshot_20220421-212043

    I expected that the first screenshot would appear.

    Reviewed by matyaskopp at 2022-04-21 19:38
  • 9. Googleboard voice input gets cut off early

    version 0.9.4: when using the ASR called from the Google keyboard, it often gets truncated (sometimes even after the first word). This does not happen when speaking through the Gogole keyboard to the web version of the translation. So it must be some sync issue within the app.

    Reviewed by hajic at 2022-04-10 08:13
  • 10. ASR uses only system language

    Version 0.9.4 The app's "speak" buton invokes ASR, but cannot be switched from the system language (e.g. US English) to anything else. Should follow the input language of the translation.

    Reviewed by hajic at 2022-04-10 08:04
  • 11. Back button needs to be pressed multiple times

    The system back button on the bottom bar needs to be pressed multiple times:

    • 2x in order to return from the list of previous translations to the main screen.
    • 3x in order to return from the list of favourite translations to the main screen.

    The intermediate button clicks do nothing (only make the title bar slightly brighter).

    (The in-app return button in the top left corner works without any issues, this is just about the system back button which some newer Android versions may not even have.)

    Technical details: Xperia XZ1 Compact, Android 9, app version 0.9.16

    Reviewed by kasnerz at 2022-05-04 16:16
  • 12. Black screen after startup

    A user reported via email (in Ukrainian) that "When the application is opened, a black window appears immediately. After some time, it starts working again." I guess it will be difficult to debug without knowing the exact Android version and whether the black screen appears always and for how long, but let's create this issue anyway, maybe there are other users experiencing the same behavior.

    Reviewed by martinpopel at 2022-06-09 11:52
  • 13. Conversation Mode

    A dedicated mode for fluent conversation. See Google, Microsoft or Apple apps.

    • interface to display running conversation
      • side by side, or mirrored halves of screen?
      • a switch for automatic synthesis after each translation
      • manual "turns" by pressing microfones (like chess clock)?
    • features for conversation
      • identify replicas (speech start + language detection)

    may involve other issues, like #18 .

    Reviewed by stranak at 2022-05-26 10:04
  • 14. Idea of faster translation: STT->TTS

    This is just an idea for improvement. It would be nice to have one button for both actions:

    • text to speech button
    • play translated text

    Like a small simulation of a human translator, who listens to a sentence, then translates it in mind and then says it.

    Reviewed by matyaskopp at 2022-04-25 09:55
  • 15. Use the Google services to identify source language

    For text: https://developers.google.com/ml-kit/language/identification/android

    For audio I don't know whether it is public, but Google has it working very nicely in the conversation mode in their translation app. So please look whether there is a method for it that you could use. It would enable a future option for a fully automatic conversation mode, just like Google and Apple translation apps have.

    Reviewed by stranak at 2022-04-22 17:16
  • 16. Input field does not follow standard copy-pasting behavior

    The input field does not support standard Android copy-pasting features (copy / cut / paste / select all) on double-tap or using a keyboard.

    I noticed that there is a paste button when the field is empty (and there is also a copy button when there is some text). But I don't think this is the best way to do it, because I often need to paste something after some existing text or copy/cut a text segment.

    Reviewed by kasnerz at 2022-04-22 16:36
  • 17. No microphone on Chromebook

    I've install the Android app on my old chromebook (Chrome OS 100.0.4896.82, Acer N15Q8). Everything (including TTS) seems to work, but there is no microphone icon and thus no ASR. The settings does not show anything about ASR (or speech-to-text), just "Data processing" and "Prefer network text-to-speech".

    Reviewed by martinpopel at 2022-04-21 18:38
NewsAppKt is an Android app designed for searching news using TheGuardianOpenPlatform public web service.
NewsAppKt is an Android app designed for searching news using TheGuardianOpenPlatform public web service.

NewsAppKt is an updated version of NewsApp. It is written entirely in Kotlin and uses MVVM with Clean Architecture practices. The UI implementation uses Jetpack Compose.

Jul 31, 2022
Location Service Manager for Kotlin Multiplatform Mobile iOS and android
Location Service Manager for Kotlin Multiplatform Mobile iOS and android

Location Service Manager for Kotlin Multiplatform Mobile iOS and android Features Provides simple permission settings Dramatically reduce the amount o

Aug 8, 2022
Simple Service Locator Library

ScrapServiceLocator A small, asynchronous IoC library for Android that might be half compile-time safe (?) Before I start, I'm very poor at English, s

Aug 28, 2021
Example of migrating from Dagger to Hilt with a real service/repository example

DaggerToHilt Overview This repo provides a real example of using Hilt for dependency injection. It hits endpoints provided by the Movie Database, and

Nov 29, 2021
Survey-service - Application for creating online surveys and polls

Survey Service Application for creating online surveys and polls Functionality A

Apr 6, 2022
Link-converter - A web service that converts links between web url and deeplink for mobile and web applications

Deep Link Converter Linkleri, mobil ve web uygulamaları için web url ile deeplin

Apr 9, 2022
Account-Touch is a simple account-sharing service.
Account-Touch is a simple account-sharing service.

account-touch A-Touch is a simple account-sharing service. feature user & permission Create an user with a nickname and emoji account You can see the

Aug 4, 2022
This is a demo android app representing implementation of SE principles in android app development

Articles Demo This repository contains a sample Android App that shows most popular articles data from NY Times API. This is a sample app that shows h

Jan 20, 2022
Name of your app is an android app that allows building a todo list
Name of your app is an android app that allows building a todo list

Project 1 - SimpleToDo Name of your app is an android app that allows building a todo list and basic todo items management functionality including add

Nov 23, 2021
Matches-simulator-app - App Android Nativo de Simulação de Partidas

Matches Simulator App App Android Nativo de Simulação de Partidas. Este repositório foi organizado em algumas branches que representam as implementaçõ

Aug 5, 2022
Matches-simulator-app - App Android Nativo de Simulação de Partidas de Futebol

Matches Simulator App App Android Nativo de Simulação de Partidas de Futebol - E

Jan 18, 2022
Crunch-Mobile - A Food Delivery Mobile App which uses Modern App Architecture Pattern, Firebase And a Simple Restful Api
Crunch-Mobile - A Food Delivery Mobile App which uses Modern App Architecture Pattern, Firebase And a Simple Restful Api

Crunch-Mobile This is a Food Delivery Mobile App which uses Modern App Architect

Jan 1, 2022
MVIExample - A sample app showing how to build an app using the MVI architecture pattern
MVIExample - A sample app showing how to build an app using the MVI architecture pattern

MVIExample A sample app showing how to build an app using the MVI architecture p

Jan 8, 2022
Notes-App-Kotlin - Notes App Built Using Kotlin
Notes-App-Kotlin - Notes App Built Using Kotlin

Notes-App-Kotlin Splash Screen Home Page Adding New Notes Filter Feature Search

Aug 11, 2022
Klimatic is an android app built using Kotlin. It try to showcase all the latest technologies used in android.
Klimatic is an android app built using Kotlin. It try to showcase all the latest technologies used in android.

Klimatic Klimatic is an android app built using Kotlin. It try to showcase all the latest technologies used in android. Built using Android Architectu

Jul 17, 2022
Android library that creates app shortcuts from annotations
Android library that creates app shortcuts from annotations

Shortbread Android library that generates app shortcuts for activities and methods annotated with @Shortcut. No need to touch the manifest, create XML

Jul 27, 2022
Android To-Do MVVM Architecture App written in Kotlin.(ViewModel, ROOM, Livedata, Coroutines)

MVVM-To-Do-App A To-Do application written in kotlin using Android Architectural components What's new? Room + Coroutines - Upgraded Room to v2.1. Roo

Jun 17, 2022
Android News app developed using Clean + MVVM architecture
Android News app developed using Clean + MVVM architecture

Clean-MVVM-NewsApp An Android application built using Clean + MVVM architecture. Featured in Components used in the app. Kotlin - As a programming lan

Jun 17, 2022
Make a cool intro for your Android app.
Make a cool intro for your Android app.

AppIntro AppIntro is an Android Library that helps you build a cool carousel intro for your App. AppIntro has support for requesting permissions and h

Aug 12, 2022