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

Cross-project synchronization of translations #164

Open
Jeehut opened this issue Feb 6, 2020 · 0 comments
Open

Cross-project synchronization of translations #164

Jeehut opened this issue Feb 6, 2020 · 0 comments

Comments

@Jeehut
Copy link
Member

Jeehut commented Feb 6, 2020

Often times, multiple projects with overlapping translations are developed within one company. This could be multiple apps where some of the translations overlap or simply an Android version of the same app. In both of these cases, it could be possible to somehow synchronize the translations for consistency.

Note that there are different approaches one could take here. The approach taken should be safe and very unlikely to destroy translation processes. For example, the following should be considered:

  1. When comparing keys, different key systems should be converted to a normalized system, e.g. the typical android key style onboarding_page_one_title should match with ONBOARDING.PAGE_1.TITLE
  2. For each translation, there should be a history of the changes looked up (via git) and only if the translations were similar and only one side has changed, the change should be applied on the other side as well.
  3. Whenever Bartycrouch is executed and does such changes, the change and the reason & source for the change should be documented, both in a changelog-style file on the machine and also in the next git commit message's comment (if needed, an automatic commit-mode should be implemented and recommended when synchronizing translations).
  4. Beware that on Android there are many special cases to be normalized away from the comparison string, like these:
<string name="global.duration.time_interval"><xliff:g example="14:00" id="from">%1$s</xliff:g> – <xliff:g example="16:00" id="to">%2$s</xliff:g></string>
<string name="notifications_workout_reminders_today_message">It\'s time for a workout! &#128170; You can do it. &#128521;</string>
<string name="statistics.body_mass_index.explanation"><![CDATA[
            The classical index derived from weight & height of a person to serve as an indicator for under-/overweight.
            Does not take into consideration the age, gender or body fat of a person.
        ]]></string>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

1 participant