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

integrating with Continuous Translation tools like Weblate, Transifex, etc. #9520

Closed
eighthave opened this Issue Jun 19, 2017 · 24 comments

Comments

Projects
None yet
8 participants
@eighthave
Copy link

eighthave commented Jun 19, 2017

We've been using Weblate and Transifex to work with translators for our app strings for years now. It can really make it dead simple to work with translators in many languages. We've also been trying out techniques for doing the same with the app store descriptive materials, like what Fastlane manages. The big problem is that the Fastlane file layout is quite difficult to integrate with translation tools:

  • they expect a single file for source strings (not title.txt, full_description.txt, short_description.txt, etc.)
  • they work much better with real file formats like .po .xliff .json .yaml .xml rather than unstructured plain text
  • char limits, notes to translators, etc. need to be in the source file (e.g .xliff)

Have there been any thoughts about how to integrate with standard translation workflows like these? What are people using for translation when using Fastlane?

So far, the best "solution" I've seen feels like a workaround: managing the translations in a separate tree of XLIFF files, then having those files converted using a plugin:
https://github.com/danielkiedrowski/fastlane-plugin-onesky

@fastlane-bot

This comment has been minimized.

Copy link

fastlane-bot commented Jun 19, 2017

It seems like you have not included the output of fastlane env

To make it easier for us help you resolve this issue, please update the issue to include the output of fastlane env 👍

@mpirri

This comment has been minimized.

Copy link
Contributor

mpirri commented Jun 19, 2017

Thanks for your feedback about this! What is it specifically about the onesky plugin that makes it feel like a workaround? Do you have a sense of what your ideal workflow would look like for this?

@mpirri mpirri added the tool: supply label Jun 19, 2017

@eighthave

This comment has been minimized.

Copy link

eighthave commented Jun 19, 2017

The plugin workflow means that there two sets of files to maintain:

  • localizations/*.xliff
  • metadata/<locale>/*.txt

I suppose it would be OK if the *.txt files were entirely hidden from the developer, except for maybe entries in .gitignore. Also, XLIFF makes it easy to break up the long description into manageable chunks, but those chunks then need to be reassembled to make the .txt file. That logic will be custom to the plugin and perhaps even to the developer. So the developer has to be aware of the formats.

I outlined my ideal workflow in WeblateOrg/weblate#1525:

  1. Weblate pulls source from git
  2. translators work in Weblate
  3. translations get pulled into app's source directly where Fastlane expects them
  4. those translations are directly published to Google Play by Fastlane
  5. F-Droid automatically uses those translations from git
@mpirri

This comment has been minimized.

Copy link
Contributor

mpirri commented Jun 22, 2017

Regarding your first point - it does feel like you'd want to use the .xliff files as the "source of truth" and then dynamically build the fastlane metadata files from that.

Anyhow, this workflow does sound great. Unfortunately it isn't really something the core fastlane team can work on right now. It would be an amazing fastlane plugin, though. Any chance we could convince you to take a crack at building something like this? 😄

Thanks so much for the consideration, and I'm sorry I don't have better news for you. 🚀

@eighthave

This comment has been minimized.

Copy link

eighthave commented Jun 23, 2017

@tobiasKaminsky

This comment has been minimized.

Copy link

tobiasKaminsky commented Jun 29, 2017

We are also stumbled about this problem. Would be great if there will be a solution 👍
I can help you with testing @eighthave

@janpio

This comment has been minimized.

Copy link
Collaborator

janpio commented Aug 4, 2017

Wouldn't it be enough to add a "DO_NOT_EDIT_FILES_BUT_READ_THIS.txt" into the metadata folder that explains that these files are generated automatically when using fastlane automatically by a plugin (and list exactly which ones)? The "handling" of the data from truth to fastlane structure will all be done by a plugin or via actions in a lane, right?

@fastlane-bot

This comment has been minimized.

Copy link

fastlane-bot commented Sep 25, 2017

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates.

Please make sure to update to the latest fastlane version and check if that solves the issue. Let us know if that works for you by adding a comment 👍

@fastlane-bot

This comment has been minimized.

Copy link

fastlane-bot commented Sep 25, 2017

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates.

Please make sure to update to the latest fastlane version and check if that solves the issue. Let us know if that works for you by adding a comment 👍

@tobiasKaminsky

This comment has been minimized.

Copy link

tobiasKaminsky commented Sep 26, 2017

A real decent plugin which supports transifex -> fastlane would indeed be great and therefore I hope that this issue can remain open as an enhancement proposal
(this does not mean that the devs have to do it, but maybe there will be an user contribution)

@grote

This comment has been minimized.

Copy link

grote commented Nov 4, 2017

For Transifex, I am now using a small script in Transportr to fetch the descriptions directly from the normal strings.xml files:

https://github.com/grote/Transportr/blob/master/fastlane/generate_metadata.py

Although it is just meant as a temporary workaround, maybe it is useful for others as well.

@tobiasKaminsky

This comment has been minimized.

Copy link

tobiasKaminsky commented Nov 6, 2017

Thank you @grote, this is indeed a good start.
While trying it, I get

UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 17: ordinal not in range(128)

which is because of a german umlaut (ä).

@tobiasKaminsky

This comment has been minimized.

Copy link

tobiasKaminsky commented Nov 6, 2017

Solved via

import codecs

and use utf-8

with codecs.open(file_path, 'w', 'utf-8') as f:

@tobiasKaminsky tobiasKaminsky referenced this issue Nov 6, 2017

Merged

transifex -> fastlane converter #1752

0 of 1 task complete
@fastlane-bot

This comment has been minimized.

Copy link

fastlane-bot commented Dec 21, 2017

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates.

Please make sure to update to the latest fastlane version and check if that solves the issue. Let us know if that works for you by adding a comment 👍

@tobiasKaminsky

This comment has been minimized.

Copy link

tobiasKaminsky commented Dec 21, 2017

Although there is a nice script by @grote, which we now also use, I think a "better" and more integrated system is still needed.

@fastlane-bot

This comment has been minimized.

Copy link

fastlane-bot commented Feb 13, 2018

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates.

Please make sure to update to the latest fastlane version and check if that solves the issue. Let us know if that works for you by adding a comment 👍

@tobiasKaminsky

This comment has been minimized.

Copy link

tobiasKaminsky commented Feb 13, 2018

As above, this is not really fixed yet.

@taquitos

This comment has been minimized.

Copy link
Member

taquitos commented Feb 22, 2018

Totally understand, 🤞 somebody wants to pick this task and build a plugin. That would be awesome.

@taquitos taquitos removed the tool: supply label Feb 22, 2018

@fastlane-bot

This comment has been minimized.

Copy link

fastlane-bot commented Mar 25, 2018

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates.

Please make sure to update to the latest fastlane version and check if that solves the issue. Let us know if that works for you by adding a comment 👍

@romanr

This comment has been minimized.

Copy link

romanr commented Mar 25, 2018

Dear @fastlane-bot please don't close this issue. There's still a lot of interest in this.

@fastlane-bot

This comment has been minimized.

Copy link

fastlane-bot commented May 2, 2018

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates.

Please make sure to update to the latest fastlane version and check if that solves the issue. Let us know if that works for you by adding a comment 👍

@romanr

This comment has been minimized.

Copy link

romanr commented May 2, 2018

Dear @fastlane-bot please don't close this issue. There's still a lot of interest in this.

@fastlane-bot

This comment has been minimized.

Copy link

fastlane-bot commented Jun 9, 2018

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates.

Please make sure to update to the latest fastlane version and check if that solves the issue. Let us know if that works for you by adding a comment 👍

@fastlane-bot

This comment has been minimized.

Copy link

fastlane-bot commented Jun 17, 2018

This issue will be auto-closed because there hasn't been any activity for a few months. Feel free to open a new one if you still experience this problem 👍

@fastlane fastlane locked and limited conversation to collaborators Aug 17, 2018

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