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

[Feature Request]: Localisation #446

Open
Nginearing opened this issue Sep 4, 2024 · 27 comments
Open

[Feature Request]: Localisation #446

Nginearing opened this issue Sep 4, 2024 · 27 comments
Labels
Type: Enhancement New feature or request Type: Translation Translates or improves translation capabilities

Comments

@Nginearing
Copy link
Contributor

Nginearing commented Sep 4, 2024

Warning

If you don't want to share your personal email address when contributing to the translations, after signing up to Weblate,
you should go in the "Account" section in the settings, in which you are able to change your email address to the one
Weblate provides, or the one GitHub provides.

Contribute by translating TagStudio into another language here! (Weblate)

  • Click on "TagStudio/Strings"
  • Click on "Strings"

And then you can add a language to start translating TagStudio into a new language or help to finish the translation of TagStudio into 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, We are using their free hosted service that they offer to OSS projects like ours.

@Nginearing Nginearing added the Type: Enhancement New feature or request label Sep 4, 2024
@Nginearing Nginearing changed the title [Feature Request]: Localisation of the Qt App [Feature Request]: Localisation Sep 4, 2024
@CyanVoxel CyanVoxel added the Type: Translation Translates or improves translation capabilities label Sep 4, 2024
@Nginearing
Copy link
Contributor Author

Nginearing commented Sep 4, 2024

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

@Amirhan-Taipovjan-Greatest-I
Copy link

Amirhan-Taipovjan-Greatest-I commented Sep 4, 2024

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
Copy link
Contributor Author

Nginearing commented Sep 5, 2024

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
Copy link
Contributor

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
Copy link
Contributor Author

Nginearing commented Sep 5, 2024

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
Copy link
Contributor

I understand.

@seakrueger
Copy link
Collaborator

seakrueger commented Sep 5, 2024

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
Copy link
Contributor Author

Nginearing commented Sep 5, 2024

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
Copy link
Contributor

Bamowen commented Sep 5, 2024

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
Copy link
Contributor Author

Nginearing commented Sep 5, 2024

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
Copy link
Contributor

Bamowen commented Sep 5, 2024

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
Copy link
Contributor Author

Nginearing commented Sep 5, 2024

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
Copy link
Member

CyanVoxel commented Sep 5, 2024

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:

  • Limited to 1 manager
  • Lock-in to their platform, with the standing of our project being up to their discretion
  • Requirement to use our translations to feed their AI models for use with their enterprise customers (i.e. they're supporting OSS because it benefits them more than it does us)

While for Weblate it has:

  • Concerns about ease of use
  • 1 translation per string according to @smileyhead (I'd like to know more about this)
  • Offers a much more open and lenient OSS tier without the catches and stipulations mentioned with Crowdin
  • Has a self-hosted option, so even if things get screwed up with their free hosting we can continue to host ourselves
  • Typically been used by larger open source organizations such as LibreOffice
  • A 14 day trial to set up a project and try out the service

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
Copy link
Contributor

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
Copy link
Contributor

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
Copy link
Contributor Author

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
Copy link
Contributor Author

Nginearing commented Sep 24, 2024

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
Copy link
Contributor

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
Copy link
Contributor Author

Nginearing commented Oct 2, 2024

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
Copy link
Contributor Author

Nginearing commented Nov 9, 2024

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

@CyanVoxel CyanVoxel linked a pull request Nov 22, 2024 that will close this issue
@CyanVoxel CyanVoxel pinned this issue Dec 3, 2024
@Qronikarz
Copy link

I just have a question which matters when it comes to if I can provide the translation at all.

Weblate writes that "Your name, surname and email address are used in VCS commits and they will stay there forever". So now a question. Is it something that you personally want? I did a few translations where I do not care about copyright and just provided it as public domain so people that I translated for previously can do whatever they want. I also absolutely do not want to use my name and surname.

I do not particularly care about being credited so I could create a throwaway temporary account, but I need to know if it's an acceptable approach by you.

@goldstargloww
Copy link
Contributor

@Qronikarz i think, at least if you create your account with github, it just uses your github account for commits, and that's what it means by using your name + email

i'm a coauthor in this commit here, even though i never did any of it on github. i did all of it through weblate, which i signed up for using my github account

@Nginearing
Copy link
Contributor Author

Nginearing commented Dec 19, 2024

Hi all,

Sorry for not noticing earlier, but as stated by @Qronikarz, your email is always published in the description of any commits that you contribute to, if you provide it to Weblate, this is still the case even if you linked your GitHub account (it uses any personal email connected to your GitHub account). If you do not want your email to be published in future contributions that you make, you can go to the "Account" section in the Weblate settings and from there you can change it to the Weblate email address provided by default, or the commit email address for your GitHub account if it is linked.

Note: You don't have to use your full name whilst signing up, just make it the same as your username. (Also, I don't see a great reason to create a throwaway account, as you can link with GitHub and use your GitHub email address, or use the one Weblate provides to you, as someone could abuse the anonymity of a throwaway account to create translations that include vulgar language, for example. If you link your GitHub account or just set it to use your Weblate email address, at least you are still contactable, which makes things simpler)

...On a happier note,

🥳🎄Happy holidays! 🎉 🎆

and thank you very very much for your continued support with these translations, we appreciate it a lot!

@Qronikarz
Copy link

Qronikarz commented Dec 19, 2024

Unfortunately, we are personally unable to remove any email addresses which are already published in the description of a previous commit

I suppose current commits also can't be edited? I created few before I remembered to switch email and now it shows me as 3 people...

EDIT: Alright, Polished your program 95%. Consider it a holiday gift for difficulties (and please try to remove one of me from the commit, leave to noreply). There are few strings that I would like to see in the program before translating. Also in case of searching results we in Polish have different suffixes depending on the last digit.
(1) wynik
(2, 3, 4 ) wynik-i
(5-21) wynik-ów
(22, 23, 24) wynik-i
(25-31) wynik-ów
And so on. Don't know what to do here so I hope for somebody more experienced with Weblate.

@CyanVoxel
Copy link
Member

@Qronikarz on #650 I can remove your co-authorship before squashing the commits to they don't make it to the main branch. I see your personal one as well as the "@users.noreply.hosted.weblate.org" one - just to make sure, you're saying that noreply one is okay to include, or would you rather have both of them be excluded from the squash?

So now a question. Is it something that you personally want?

And to directly answer your previous question, my only intention is that people who want to be credited are credited and anyone who wants to stay anonymous shouldn't be required to be credited :) As you can see there's a lot of inner workings with Git and Weblate by extension that rely on emails, but I hope that no damage has been done here.

Also, last but not least, thank you so much for the Polish translations! 😁 I know our base translation file is pretty rough but I'm hoping to update and improve it, barring any additional Weblate issues!

@CyanVoxel CyanVoxel removed a link to a pull request Dec 21, 2024
@Qronikarz
Copy link

just to make sure, you're saying that noreply one is okay to include

Yes, the second one is okay to include. Sorry once again and thank you. I just created the translation and translated few strings before switching the emails on weblate. I didn't know it automatically commits every single change immediately.

I know our base translation file is pretty rough but I'm hoping to update and improve it, barring any additional Weblate issues!

I have left few things untranslated because I wasn't sure how to format them correctly, but I see there's an option to ask on Weblate so I'll do that to not spam this topic anymore.

@CyanVoxel
Copy link
Member

Don't be sorry! Thank you for asking about all this here, I'll make sure that this sort of info is given on our side of the documentation as well so hopefully people in the future aren't caught off guard!

@CyanVoxel CyanVoxel moved this to 🚧 In progress in TagStudio Development Dec 21, 2024
@CyanVoxel CyanVoxel added this to the Alpha v9.5 (Post-SQL) milestone Dec 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Enhancement New feature or request Type: Translation Translates or improves translation capabilities
Projects
Status: 🚧 In progress
Development

No branches or pull requests

9 participants