TagStudioDev / TagStudio

A User-Focused Photo & File Management System
https://docs.tagstud.io/
GNU General Public License v3.0
5.3k stars 377 forks source link

[Feature Request]: Localisation #446

Open Nginearing opened 2 months ago

Nginearing commented 2 months ago

[!IMPORTANT]
As of the 9th of November 2024, the Weblate translation project is has now been reopened

You can contribute to our translations here!

Description

As of now, TagStudio is currently only available in English, and there are still fewer than 20 majority native english speaking countries, meaning that there is a massive gap of the world to which this program isn't as accessible to..

Solution

We are now using Weblate to make the localisation process much smoother. It's extremely simple: You can now translate TagStudio into another language, just click here.

And then you can add a language to start translating in a new language or help to finish a translation to an existing language.

(You can subscribe to this feature request to receive further updates, subscribing requires a GitHub account)

We are currently using Weblate - Copylefted libre software, used by over 2,500 libre software projects, Weblate offers a hosted service for free to OSS projects like ours.

Nginearing commented 2 months ago

Tyrannicodin has created a draft pull request for the translator here.

Amirhan-Taipovjan-Greatest-I commented 2 months ago

I prefer using Crowdin (there's should be free plan for open source; if that's possible) because it is simple for Me and... uh... a long time ago I went to the Translation World via this Site and Minecraft Project...

However, I'll ready if there's will be other Chosen Platform.

Nginearing commented 2 months ago

I prefer using Crowdin (there's should be free plan for open source; if that's possible) because it is simple for Me and... uh... a long time ago I went to the Translation World via this Site and Minecraft Project...

However, I'll ready if there's will be other Chosen Platform.

We've discussed this already in Discord and we all agree that we shouldn't use it as, A: There are no managers in the free plan, which is the biggest downside but also B: In the free plan, translations are donated to Crowdin (effectively data sharing)

As far as we've discussed, it currently looks like we're going to be using Weblate.

smileyhead commented 2 months ago

I personally have no experience using Localazy, but I can definitely say Weblate is very much inferior to Crowdin (janky and confusing UI, only one translation per string may be saved, etc.), but I understand why you would prefer not using it.

Regardless, like I've said in the issue thread, I would love to help localise TagStudio to Hungarian. I have around 8 years of experience translating video games and other software, and I have passed a C1 English Euroexam before.

Nginearing commented 2 months ago

I personally have no experience using Localazy, but I can definitely say Weblate is very much inferior to Crowdin (janky and confusing UI, only one translation per string may be saved, etc.), but I understand why you would prefer not using it.

Regardless, like I've said in the issue thread, I would love to help localise TagStudio to Hungarian. I have around 8 years of experience translating video games and other software, and I have passed a C1 English Euroexam before.

A few of us (including Cyan Voxel) have discussed services to use to do the localisation and the downsides to Crowdin are more like deal-breakers because without certain features the workflow and quality will be terrible. For example the fact you can't have any managers, but also just the plain fact, that it doesn't seem like Crowdin cares about OSS.

smileyhead commented 2 months ago

I understand.

seakrueger commented 2 months ago

A few of us (including Cyan Voxel) have discussed services to use to do the localisation and the downsides to Crowdin are more like deal-breakers because without certain features the workflow and quality will be terrible. For example the fact you can't have any managers, but also just the plain fact, that it doesn't seem like Crowdin cares about OSS.

This is not true. Crowdin provides its fully liscensed version to open source projects for free. This would include the ability to add managers, and infinite translation strings. The drawbacks are/were you have to use the beta channel (not the end of the word, assuming it's nothing breaking), your translations are licensed to Crowdin for AI training purposes (they're going to be on the open web in a plaintext file, they're going to be trained on anyways), and they could suspend the project at anytime (This is the same for Weblate[0] and Obsidian[1], TagStudio still controls the files/translations, just have to move to a different translation platform).

These were concerns raised by two actual translators, who has used both platforms. Their concerns should be considered.

[0] The Provider shall have the right to shut down, adjust, modify or make the Service unavailable on the web address at any time. [1] In its sole discretion, in addition to any other rights or remedies available to the Company and without any liability whatsoever, at any time and without notice may terminate or restrict your access to any component of obsidian.md.

Nginearing commented 2 months ago

This is not true. Crowdin provides its fully licensed version to open source projects for free. This would include the ability to add managers, and infinite translation strings. The drawbacks are/were you have to use the beta channel (not the end of the word, assuming it's nothing breaking), your translations are licensed to Crowdin for AI training purposes (they're going to be on the open web in a plaintext file, they're going to be trained on anyways), and they could suspend the project at anytime (work the same as Obsidian, TagStudio still controls the files/translations, just have to move to a different translation platform).

These were concerns raised by an actual translator, who has used both platforms. Their concerns should be considered.

Sorry, If you can understand, there were like 3 of us in Discord and we were just quickly skimming the pages of websites, the fact that you will get all the paid features if you are managing an open source project, is only mentioned in one FAQ question right at the bottom of the page, I'll notify CyanVoxel about this. Sorry again, I appreciate the work of translators a lot, there is no reason to start smoke either.

Bamowen commented 2 months ago

So if I understand well, Crowdin is the best on a pure feature point of view. If we can indeed have the full feature version because we are an OSS we should go there. If indeed we're limited to free plan, then the other options are more appealing.

Am I correct in stating this @Nginearing @seakrueger?

Nginearing commented 2 months ago

So if I understand well, Crowdin is the best on a pure feature point of view. If we can indeed have the full feature version because we are an OSS we should go there. If indeed we're limited to free plan, then the other options are more appealing.

Am I correct in stating this @Nginearing @seakrueger?

Both Crowdin and Weblate will provide a full-feature version, yes.

Moreover, I just read the criteria for a free unlimited plan (for OSS purposes) from Crowdin and one of them is "You do not have any commercial products related to the open-source project you are requesting a license for." which would likely include the CyanVoxel YouTube channel. CyanVoxel doesn't really want to signup unless the plan that we need, is guaranteed, but maybe someone can persuade CyanVoxel to just give it a chance and submit the open source request form, CyanVoxel really just wants to signup for something once and for it to last forever. if not, then I guess we'd have to use Weblate. Would be brilliant, if there was a mix between Weblate and Crowdin: something that has all the great features and unlimited usage of Crowdin, however a service that doesn't have full discretion over whether you get the full-feature version or not.

Bamowen commented 2 months ago

I'm fine with anything honestly and I side with Cyan on the " [...] just wants to signup for something once and for it to last forever." part.

Nginearing commented 2 months ago

Hi again, I'm very grateful for all of the input so far.

For now, To sum it up: I had a conversation with CyanVoxel yesterday about our options, and I just today notified him about where it stands for our current options to choose from towards a long-lasting and future-proof web app through which our multi-lingual community can come together and help localise TagStudio into many languages in the near-future.

As for now, we'll be keeping Crowdin and Weblate on the table, at least until CyanVoxel gets back to me.

Please stay tuned for further information, you can do so by subscribing to this feature request at the top of this page.

Thanks again.

CyanVoxel commented 2 months ago

Hello everyone, thank you all for the discussions and input on everything! Here's how I see everything standing at the moment, and where I plan on going from here:

Crowdin seems to work well from a feature and usability standpoint and extends a free offer from approved OSS projects, however comes with some serious concerns as a match for this project:

While for Weblate it has:

Due to the concerns with Crowdin plus the trial available from Weblate, I'll be moving forward with Weblate for the time being to see if it's a good fit for us. I would like to hear more about the Weblate concerns as we try it, especially about that "1 translation per string" issue mentioned. While I want to pick an option that's a good fit for the project itself, I also want to take into account the concerns of people who are actually doing the translating and are going to be interfacing with this service.

In addition to getting this rolling, I believe #332 will need to get merged before #447 can separate out the tokens to be usable for Weblate. This is my first time using a translation service like this, so please bear with me as the workflow gets sorted out.


TL;DR: Weblate 14 day trial -> OSS tier for now, concerns and issues are still welcome in the meantime.

smileyhead commented 2 months ago

Limited to 1 manager

1 manager, but different languages have different ‘proofreaders’ whom can have the final say in what string gets into the final build and delete others' translations as they see fit.

1 translation per string according to @smileyhead (I'd like to know more about this)

In Crowdin, you can save multiple translations per language for a single string and have translators upvote/downvote them in order to decide which one gets in. This voting system can be overridden by the language's proofreader as described above.

As far as I can tell, you can only submit one translation per string per language in Weblate, which can get messy if multiple translators for a single language are involved.

While I would prefer Crowdin, I am fine using Weblate. I have already used it in the past.

goldstargloww commented 2 months ago

hi, yeah, i can help out with a toki pona translation! while i'm far from the most experienced speaker, i don't think there would be any other toki pona speakers willing to help on the project. translation is fun for me though, and tagstudio and toki pona are both things i'm interested in, so i'm more than willing to help out. toki pona is very subjective though, so i'll likely be asking other speakers for help with any translations i'm not confident enough in translating correctly, and checking to make sure my translations make sense

Nginearing commented 2 months ago

hi, yeah, i can help out with a toki pona translation! while i'm far from the most experienced speaker, i don't think there would be any other toki pona speakers willing to help on the project. translation is fun for me though, and tagstudio and toki pona are both things i'm interested in, so i'm more than willing to help out. toki pona is very subjective though, so i'll likely be asking other speakers for help with any translations i'm not confident enough in translating correctly, and checking to make sure my translations make sense

Great to hear! I've watched a few videos in the past about Toki Pona, it's apparently the language with the fewest words in the world, so it would make it a fun and unique language to be able to use in TagStudio, and as we're going to use Weblate, it means anyone can translate for whatever language they want, as by default Weblate even has languages like Middle English and Old English and the old/middle variations for many other languages too! Weblate has included 754 languages for use by default so far (including Toki Pona), which means quite literally any language or even popular con-lang you can think of, is already capable of being used in any Weblate Project! Crowdin only has around 230 actual languages available for translation by default, Crowdin seems to be more preoccupied in adding a "language" for every slight variation of English 🤣. Crowdin has 44 "languages" that are just very slight variations of either English or Spanish for certain countries. I especially like that Weblate takes more fun in the definition of a language and allows push requests to their language repository to add a new language.

Nginearing commented 2 months ago

Hi all,

You are now able to translate the Tag Studio user interface into your language of choice by clicking here.

How the translation process is going so far.... ⬇️⬇️⬇️ - as of the 24th of September 2024 multi-auto

And of course, make sure to join our Discord server, where we have a thread just for communicating about the Weblate translations!

williamtcastro commented 2 months ago

I saw that Brazilian Portuguese was already complete so I added Italian that I also speak although not fluently as Portuguese or English. :D

Nginearing commented 1 month ago

Hi all,

At about 1pm GMT yesterday as a few of you may have seen, the Weblate project automatically locked itself as it had 'merging issues'.

It is unfortunately still locked as of now, so please stand by whilst CyanVoxel solves this issue, CyanVoxel has every translation file on hand, prior to when the automatic lock occurred so all the translation contributions are still intact, the only quick solution may be to reset the entire repo and add everything back via the backups, but even then, there is no guarantee that the issue will be solved. On the other hand, there could be a simple fix, if CyanVoxel manages to get in touch with Weblate support.

Please stay tuned for further information as usual, you can do so by subscribing to this issue at the top of this page. (A GitHub account is required to subscribe to issues)

Current translation progress ⬇️⬇️⬇️ - as of the 2nd of October 2024


Thanks again.

Nginearing commented 2 weeks ago

Hi all, here is some good news:

[!IMPORTANT] The Weblate translation project has been reopened at last!

You can contribute to the translation project here! 🥳 🎉 🎉

A technical update from @CyanVoxel :
>I haven't been able to gain any new insight into why Hosted Weblate isn't properly detecting it's own upstream changes, so I'm going forward with a dirtier "merge new translation changes then reset the Weblate outgoing changes" approach. > >I've unlocked the Weblate repo so it should be open for translations again. I'll keep an eye on new changes as they add up and see if this approach is viable going forward. > >Thank you to everyone being patient throughout this, and for taking the time to translate for the project. I really appreciate it, and hope that I can work with the backend tools in a way that makes this smoother for you all going forward 💙

Current translation progress so far:

Bar chart of translation progress for each language