teambtcmap / btcmap-ios

iOS application for BTC Map
https://btcmap.org
GNU Affero General Public License v3.0
14 stars 3 forks source link

Use a centralized way to localize strings #6

Open lorenzoPrimi opened 1 year ago

lorenzoPrimi commented 1 year ago

When I saw the issue: Change "Verify" button to "Verify or Report" to match android I thought would be more efficient to use one platform to keep all the strings in sync between iOS and Android. I used https://localise.biz/ in the past with success, feel free to suggest other ones, I can help seeing everything up.

dadofsambonzuki commented 1 year ago

Good idea. We are also looking to internationalise at some point.

CoachThys commented 1 year ago

I've just tested localise.biz and it looks good.

I can start implementing strings/translations locally on iOS until we're ok to build a shared strings account on localise.biz

dadofsambonzuki commented 1 year ago

@bubelov @secondl1ght - Thoughts?

bubelov commented 1 year ago

I don't really like the idea of adding a third-party dependency. I used a third party service in News and it was horrible. It required some obscure IDE plugin and it wasn't able to do a proper two-way sync and it wasn't aware of many Android internationalization caveats, requiring a lot of manual work, so I ended up dropping it. Some users loved it though.

It's totally fine by me if you go this route, I can manually fetch some translations from you from time to time =)

lorenzoPrimi commented 1 year ago

Using localize.bit it's not really a dependency, it's an external service disconnected from the app. You upload there your iOS and Android string file and use the service itself to be sure that every string as a translation and you don't use different key, then use the dashboard to download the updated json or xml files for the respective apps.

dadofsambonzuki commented 1 year ago

Sound like a useful tool to help standardise strings and accelerate internationalisation.

On Wed, 31 May 2023, 14:06 Lorenzo Primiterra, @.***> wrote:

Using localize.bit it's not really a dependency, it's an external service disconnected from the app. You upload there your iOS and Android string file and use the service itself to be sure that every string as a translation and you don't use different key, then use the dashboard to download the updated json or xml files for the respective apps.

— Reply to this email directly, view it on GitHub https://github.com/teambtcmap/btcmap-ios/issues/6#issuecomment-1570200926, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUYWY7JRQN3MRHN6ZDYOGQLXI465RANCNFSM6AAAAAAVCYFIEA . You are receiving this because you commented.Message ID: @.***>

lorenzoPrimi commented 1 year ago

I don't know if it has an option to invite guests to add translations, can you check it? In alternative, there is https://www.transifex.com/ that I used in my old project (https://github.com/ooni/probe-ios) where we could invite translators from all over the world to the project, but it's a paid service.

salvatoto commented 1 year ago

Using localize.bit it's not really a dependency, it's an external service disconnected from the app. You upload there your iOS and Android string file and use the service itself to be sure that every string as a translation and you don't use different key, then use the dashboard to download the updated json or xml files for the respective apps.

Sounds good to me

secondl1ght commented 1 year ago

I don't have a strong opinion on how you guys handle iOS / Android but I have heard of this one before as another alternative: https://weblate.org/en/ It's FOSS so better aligns with the project and you can also self-host. I don't think all strings need to match between iOS / Android really since they are separate apps and aren't developed in sync. Also I think how @bubelov is currently handling translations has been working well and is easy enough for outside contributors to make changes from what I have heard.

lorenzoPrimi commented 1 year ago

@secondl1ght I like that! Do we have a place to self-host it?

secondl1ght commented 1 year ago

@secondl1ght I like that! Do we have a place to self-host it?

Yes that would be @bubelov's speciality. :)

bubelov commented 1 year ago

then use the dashboard to download the updated json or xml files for the respective apps

That's the problem, since those tools lack nuances and they tend to generate a lot of garbage, losing control over that is not an option on Android. It would also conflict with all direct translations submitted via PRs, so we'll be forcing our users to sign up to some third-party service or we'll need to do painful two-way sync on a regular basis (adding direct PRs to a trird party service, and vice versa). As I said, Android app won't use it, but I can steal some translations from time to time =)

Berserk-21 commented 1 year ago

Alright let's go for a local one then, wondering if chatGPT is enough reliable for app translations I'll give it a try