Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Proposal]: Integration of Dynamic Language Translation Management #65

Open
1 task done
N3v1 opened this issue Jun 29, 2024 · 1 comment
Open
1 task done

[Proposal]: Integration of Dynamic Language Translation Management #65

N3v1 opened this issue Jun 29, 2024 · 1 comment
Assignees
Labels
help wanted Extra attention is needed P2 Medium priority issue scope: cloud Issues with ScribbleLabs Cloud Services scope: i18n language translation/internationalization. Often combined with language type label size: L A large issue type: feature Threads classified to be feature requests. Implementation to be considered as a nice to have

Comments

@N3v1
Copy link
Member

N3v1 commented Jun 29, 2024

Description


Metadata

  • Proposal: SE-0001
  • Authors: NH
  • Review Manager: NH
  • Status: WIP

Introduction

Proposal Objective

The goal of this proposal is to incorporate a dynamic language translation management system into our project. This will enhance user experience by enabling seamless updates and localization of application text content without the need for app updates.

Background

Currently, our application utilizes static language files that are bundled within the app. However, this approach presents challenges when it comes to updating translations and accommodating user preferences dynamically. By implementing a dynamic language translation management system, we can provide users with up-to-date translations and support multiple languages more efficiently.

Proposal Details:

  1. Translation Service Integration

    • Develop a TranslationManager class responsible for fetching translations from a remote server.
    • Use JSON files hosted on a server to store translations for each supported language.
    • Integrate versioning in the JSON files to manage updates and ensure consistency across devices.
  2. Dynamic Language Switching

    • Enable users to switch languages dynamically within the app.
    • Store the user's preferred language locally using UserDefaults to maintain language preferences across sessions.
    • Load translations based on the selected language, with a fallback to a default language (e.g., English) when translations are not available.
  3. Translation Update Mechanism

    • Implement a mechanism to periodically check for updates to translation files based on versioning.
    • Provide options for manual and automatic updates to ensure users have access to the latest translations.
  4. User Interface Integration

    • Modify the UI components to support dynamic language switching.
    • Implement localized string handling using extensions or utility classes to simplify integration across the project.
  5. Testing and Validation

    • Conduct thorough testing to ensure seamless integration and functionality across different language settings.
    • Test scenarios include language switching, update checks, fallback to default language, and UI responsiveness to language changes.
  6. Performance Considerations

    • Optimize the translation fetching and updating processes to minimize network usage and ensure smooth performance.
    • Implement caching strategies to store translations locally and reduce load times for frequently accessed content.

Benefits

  • Improved User Experience: Users can interact with the app in their preferred language without waiting for app updates.
  • Scalability: Easily add new languages and update translations without modifying the core app code.
  • Efficiency: Reduce app size by removing bundled language files and dependencies on static content.

Conclusion:

Integrating dynamic language translation management into our project will significantly enhance user satisfaction and operational efficiency. This proposal outlines the steps and benefits for implementing this feature.

Alternatives Considered

No response

Additional Context

No response

Screenshots

No response

Is there an existing issue for this?

  • I have searched the existing issues
@N3v1 N3v1 added type: feature Threads classified to be feature requests. Implementation to be considered as a nice to have help wanted Extra attention is needed scope: i18n language translation/internationalization. Often combined with language type label P2 Medium priority issue scope: cloud Issues with ScribbleLabs Cloud Services size: L A large issue labels Jun 29, 2024
@N3v1 N3v1 self-assigned this Jun 29, 2024
@N3v1 N3v1 moved this to Backlog in ScribbleLab iOS/macOS Jul 12, 2024
@N3v1 N3v1 moved this from Backlog to In progress in ScribbleLab iOS/macOS Jul 31, 2024
@N3v1 N3v1 moved this from In progress to Backlog in ScribbleLab iOS/macOS Aug 7, 2024
Copy link

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@github-actions github-actions bot added the stale Issues that have not been triaged in an appropriate amount of time label Aug 29, 2024
@github-actions github-actions bot closed this as completed Sep 5, 2024
@github-project-automation github-project-automation bot moved this from Backlog to Done in ScribbleLab iOS/macOS Sep 5, 2024
@N3v1 N3v1 reopened this Sep 5, 2024
@github-actions github-actions bot removed the stale Issues that have not been triaged in an appropriate amount of time label Sep 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed P2 Medium priority issue scope: cloud Issues with ScribbleLabs Cloud Services scope: i18n language translation/internationalization. Often combined with language type label size: L A large issue type: feature Threads classified to be feature requests. Implementation to be considered as a nice to have
Projects
Status: Done
Development

No branches or pull requests

2 participants
@N3v1 and others