Skip to content

[Feature Proposal]: In-App Article Translation (On-Device) #1327

Description

@ibnusec7

Checklist

  • I've already searched in existing issues and haven't found a similar feature request.

Which category best fits this feature request?

Integration with other apps

Is your feature request related to a problem? Please describe.

Many users subscribe to international RSS feeds but often encounter articles written in languages they don't fully understand. Currently, users have to leave the app and copy-paste the text into an external translation app or browser, which breaks the seamless reading experience.

Describe the solution you'd like

Technical Implementation Thoughts
Since RSS content is rendered in HTML, passing raw strings to ML Kit would break the tags (e.g., <p>, <a>, <img>).
My proposed workflow:

  1. Add a "Translate" button/icon in the article view's bottom or top app bar.
  2. When triggered, parse the article's HTML (using Jsoup or the app's existing parser).
  3. Extract only the text nodes, pass them to ML Kit.
  4. Reconstruct the translated text nodes back into the DOM without altering the original HTML structure and image tags.
  5. Re-render the translated HTML.

Questions for Maintainers
Before I start working on this and open a Pull Request, I'd love to hear your thoughts:

  1. Are you open to adding com.google.mlkit:translate as a dependency?
  2. Where would you prefer the "Translate" button to be placed in the UI (e.g., article overflow menu, top bar)?
  3. Any specific architectural guidelines I should follow for this implementation?

Looking forward to contributing!

Related links

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestuntriagedThis issue hasn't been triaged yet

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions