Translations Strings
p/translations-strings
Translations for apps via AI + Human (if needed)
John Carmichael
Translation Strings โ€” Translations for apps via AI + human (if needed)
Featured
35
โ€ข
AI-driven i18n - because managing translations is just a pain. - Almost any language, formal and informal. - Version history of each string. - Integrate into your apps via our API. - It's also free (v0.1 - it's ugly, I know)
Replies
John Carmichael
Hey Product Hunt friends! At Liffery, we're just getting ready for our public launch, and in doing so, we're getting the platform translated... but... having gone through the joys of i18n before, coordinating translators and developers is always challenging, and this time I wanted to see if we could optimise the process. With this utility tool for app development teams, we wanted versioning, translation context and an API for DevOps. But we also wanted to speed the whole thing up... a lot... so we mixed in ChatGPT. After a few days of rapid development, the database model is stable, the API is stable, and the access to ChatGPT is rock solid, so we thought... why not just release this on a domain for all to access and see what people think. We have a few ideas for where we would like to take this (starting with getting a UX and graphics designer on board to make it look less 1992), but we would love to hear your thoughts! Happy translating :D John PS: There are not many glossy images for this mini project yet, but the video explains most features.
Samuel Stroschein
Cool project. But, the approach you are taking (of having an API to fetch translations from) will eventually fall apart. Developers and translators will simultaneously change translations. Technically, you have no possibility of merging changes from developers and translators if you don't have version control with branching support on your database. I explained the technical challenges and solutions in this video https://youtu.be/CZr6A5gwmFs?t=825. TL;DR we are building turning git into a database now and building localization infrastructure. If you want to reduce maintenance effort + have a better i18n experience, you could build translations strings on top of https://github.com/inlang/inlang. See https://inlang.com/documentation....
John Carmichael
@samuel_stroschein actually the API does comparison checks as the new data is provided. Updating if needed, creating if new... or ignoring if it is exactly the same. So you can just keep throwing data at it all day long, the same, different... it will just all be handled by the API. I think i mentioned it in the vid but, the translations are also versioned :) There are a few other platforms that do this already but... we just wanted one with ChatGPT thrown into the mix :) In other words.. it will not fall apart as you say.
John Carmichael
@samuel_stroschein but that is a good point! I will get the video update thank you! Ref.: managing bigger teams with translation strings. In my experience over the last 15-20 years, devs should not be writing the copy - only add placeholders for the copy-writers. My experience with the majority of no-techy folk is git is not a nice place for them to be. The way we work with Translation Strings, is simple... the devs work in the JSON files as they always have. They work in 1 language (for us English). And so.. all changes for this are managed in git.. just as it always has been. Depending on how your app is setup, you will either have 1 big JSON file, or lots of smaller JSON files that a for areas of the app. The dev works up a feature, the feature is tested and merged into branch develop (aka gitflow). However, before we move to production the translations are checked by the copy writers (this could be finallised before the feature, and give the dev the text to copy and paste in) but for us it is more efficient this way... and now with Translation Strings, automatically translating... we have English to 6 other other languages in the no time! I guess 1 big improvement there would be to have a simple sync tool between the IDE and the API of Translation Strings... but for now, with this POC, the workflow will always be to take the English file from the code, put into Translation Strings, and then pull back out int the app along with all the other translations. Thanks for the idea ๐Ÿ’ก great feedback
Samuel Stroschein
@john_carmichael Thanks for the detailed response! Re managing larger teams: Absolutely, devs should work in git and translators should have an easy way to manage translations. > I guess 1 big improvement there would be to have a simple sync tool between the IDE and the API of Translation Strings This is the moment you will eventually need version control on your database layer. Syncing state with branches will become a nightmare/impossible (been there done that :D).
Korkmaz Ozcan
Congrats on your launch, by the way i like the 1992 style! :) Upvoted!
John Carmichael
@korkmaz :D ok.. well maybe we will stick with the old school design :) maybe throw in a couple of frames in there too... if only browsers still supported Adobe Flash!
Rasmus Sรธrensen
Really cool! Will test
John Carmichael
@rasmus_sorensen wooop! Please do.. this is mainly an internal tool for us at Liffery right now, but if we get enough interest, we'll look into building this up as a much more polished product.
Maria
Great tool! ๐Ÿคฉ Happy to find it, no doubts it will be helpful in the upcoming ideas on our roadmap! Big congrats on the launch ๐Ÿ™Œโœจ๐Ÿฅณ
Janine N
@maria_brm Thank you! hope it will help over at Sealit!
Dzianis Yatsenka
Hey! Congrats with the launch! Great job! How do you think can I use it to create localisations of my app for appstore and google play? Now I'm planning to do it but I afraid translation won't be correct.
John Carmichael
@dzianis_yatsenka great question! We also have apps in both... With the app stores, we have found that the biggest pain point is sending out the app with the translations embedded as then a change requires a new app release... not optimum! In Liffery, before we go public live we intend to change how the translations are pulled into the app. Today, webpack bundles the JSON into the app. We will instead change this. We intend to configure the app to be bundled with a JSON file... but then on load also look for updates, when there are updates they will then be written to file within the app and i18n will load the translations from there instead... this will also allow is to play with AB testing. 2 features we will need in Translation Strings is... AB options but also... project-key + lang-code last updated.
Riya Jawandhiya
That's so cool! great work @janine_nitz
Janine N
@riya_jawandhiya Thank you Riya :) We always try to optimise our processes along the way and this was one of the side projects that came from working on Liffery. Our dev team is much happier now, when it comes to translation work on the platform
Richard Gao
Love that it's free Will definitely be useful for evoke-app.com's API
John Carmichael
@richard_gao2 ๐Ÿ˜ you're welcome
Max T.Pham
Congrats John and your team on the Translation Strings launch! As someone who knows the i18n struggles, I appreciate your efforts. It's impressive that you're offering this for free. Looking forward to seeing the future of this project, collected and supported!
John Carmichael
@maxtpham to be honest... when I put this one together over the easter weekend, it was really just for my own use in Liffery. Maybe I will have to think about a free and paid access in the future if it gets any traction... probably something like an API consumption model. Free for the small apps, paid for the bigger ones... but would you pay for a tool like this?
Ozan Yalรงฤฑn
Congrats ๐Ÿš€
John Carmichael
Thank you @ozan_yalcin1 ... but the question is... would you use it for your apps?
Matthias Strafinger
Cool way to tackle a large problem. Congrats on your launch!!
John Carmichael
@matthias_strafinger thanks ๐Ÿ˜Š it will be interesting to see the general interest in this one... to continue general feature development on it ot not...
Ben Rogersb
Congratulation @John Carmichael๐Ÿš€๐ŸŽ‰
Jamel
Congrats on the launch!
John Carmichael
@onejamel cheers! If this was a polished product, smooth UX and design with integration into IDEs... is this something you pay for?
Ivica Popovic
nice one
John Carmichael
@ivica_popovic thanks ๐Ÿ˜Š
Priyank Chodisetti
Given the power of GPT-4, translation using AI just completely makes sense. I think it removes a lot of manual effort. Good luck John1
Per Joel Wallenborn
Not a developer, but definitely see the advantage. Cool thing.
John Carmichael
@pjw yuuppp... it is not 100% accurate unless you put in the content for the harder-to-understand translation strings, but I translated all of "Translation Strings" with "Translation Strings" in a coffee break! A couple of errors but... it's definitely a game changer for us at Liffery!