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

Translating Gauguin to many languages #29

Open
mondlicht-und-sterne opened this issue Nov 18, 2023 · 64 comments
Open

Translating Gauguin to many languages #29

mondlicht-und-sterne opened this issue Nov 18, 2023 · 64 comments
Assignees
Labels
enhancement New feature or request

Comments

@mondlicht-und-sterne
Copy link

Is this game translatable ?

@meikpiep
Copy link
Owner

Do you mean translating into German? That's what I start just now. :-)

@mondlicht-und-sterne
Copy link
Author

I have already translated into 75 languages...

Yes.

@meikpiep
Copy link
Owner

That's pretty impressive.

Would you be willing to translate this App into other additional languages?

I just commited localization into German, but it the first time into Android localization for me. Plus, a have included all languages which I am able to deal with by myself.

If you have any further recommendations, don't hesitate.

@mondlicht-und-sterne
Copy link
Author

yes with pleasure

@mueller-ma
Copy link
Contributor

I recommend to look into some web based translation service as it makes it easier to develop, IMO. You can then update the english source file only and the website will notify translators and update the translations. Some services also offer AI assistance which I often use to translate my apps.

@meikpiep
Copy link
Owner

@mueller-ma Thanks for explaining.
@mondlicht-und-sterne Do you need anything from my side? Code changes? I read about the per-app locale choice from Android 13 on, but I didn't implement it yet - would this help? Should we discuss here or switch the medium?

@mondlicht-und-sterne
Copy link
Author

@mueller-ma Thanks for explaining. @mondlicht-und-sterne Do you need anything from my side? Code changes? I read about the per-app locale choice from Android 13 on, but I didn't implement it yet - would this help? Should we discuss here or switch the medium?

We can also discuss this elsewhere.
However, I don't have Discord.
Can only offer telegram, xmpp and matrix.

@meikpiep
Copy link
Owner

Good. I will comment here when I have one of these channels ready to use, this will probably not happen before the next weekend, I hope you don't mind.

@meikpiep meikpiep self-assigned this Nov 21, 2023
@meikpiep
Copy link
Owner

@meikpiep
Copy link
Owner

Closing this issue after not receiving an answer for three weeks.

@mondlicht-und-sterne If you change you mind, feel free to contact me. Sorry if I unintentionally decreased your motivation to participate in any way.

@nach0
Copy link

nach0 commented Feb 19, 2024

Hi @meikpiep, this is a different user joining the translations discussion. I would like to contribute with translation.
Did you look into some web-based tool? I recently started using weblate to collaborate to other apps' translations.
If you don't have anything like that in place you can let me know what needs to be translated. According to my very limited knowledge of Android apps structure, I believe that I would need to create a new strings.xml file inside src/main/res/values/.

Please let me know how I can help.

@meikpiep meikpiep reopened this Feb 20, 2024
@meikpiep
Copy link
Owner

Sounds great. I have not looked at such a tool and never used one before, so weblate may do the race. :-)

I've reopened this issue to not oversee it. I'm currently kind of deep dived into Azure Cloud as Microsoft sponsored Gauguin with computing power to generate the game difficulties. This is time boxed until end of may from Microsoft's side.

This does not mean that this topic here has to wait until then, just a small 'heads up' that my head is under some mental load.

I'm glad you like to join, weblate sounds good. I have one concern, maybe I'm a bit old school: I would try to avoid translations which exclusively build of ai. Is that realistic, what are your experiences? Are there native speakers on weblate etc. to fill such gaps? How is quality assurance to be done?

@meikpiep meikpiep changed the title Translatable ? Translating Gauguin to many languages Feb 20, 2024
@meikpiep meikpiep added the enhancement New feature or request label Feb 20, 2024
@nach0
Copy link

nach0 commented Feb 22, 2024

Thanks for reopening the issue. I must say that I have just a little experience with Weblate so I might not be the best one to advise on this (I just joined recently and helped to translate one app into my native language, which was still pending).

As far as I've seen, Weblate translations are mostly done by volunteers. I see there is an option for automatic suggestions powered by different machine translation services, but this can be enabled/disabled by the developer. For other FOSS apps, I have seen the developer encouraging users to contribute with translations, either on the README file or on release notes.

As for the Quality Assurance, Weblate has an automatic Quality Check for small common mistakes (like missing plurals, commas, full stops...), but more importantly the developer can choose how to handle it for their app. There are 2 main modes:

  1. The project accepts direct translations
  2. The project only accepts suggestions, which later need to be validated

In the first mode, any user can edit translations. Users can also submit suggestions to suggest changes, when they are not sure about some terms.

In the second mode you can either have:

2.a any user can submit suggestions. Any user can vote for suggestions. Suggestions that have been voted X times become accepted translations.
2.b any user can translate. These are unapproved translations. A group of reviewers can approve, decline or edit those translations. Once the reviewers approve the translations, those become the accepted translations and cannot be edited.

This is better explained in the Weblate documentation on translation workflows.

@meikpiep
Copy link
Owner

Thanks a lot, that sounds promising, I will have a look at the link and will provide further details here.

@meikpiep
Copy link
Owner

meikpiep commented Feb 29, 2024

I added Gauguin to Weblate yesterday, but in a rudimentary state, just having the strings.XML file with the main texts. I realized that the keys of the texts should be updated to include more context infos. I locked the project because of that.

https://hosted.weblate.org/projects/gauguin/

@nach0 Do you want to become an admin at Weblate? Is your username the same as in GitHub?

@meikpiep
Copy link
Owner

meikpiep commented Feb 29, 2024

I will try to optimize the strings in the next few days to enable Weblate usage without the risk to brake many translations by doing that later.

@mondlicht-und-sterne
Copy link
Author

I added Gauguin to Weblate yesterday, but in a rudimentary state, just having the strings.XML file with the main texts. I realized that the keys of the texts should be updated to include more context infos. I locked the project because of that.

https://hosted.weblate.org/projects/gauguin/

@nach0 Do you want to become an admin at Weblate? Is your username the same as in GitHub?

Thank you ;)

@nach0
Copy link

nach0 commented Feb 29, 2024

I added Gauguin to Weblate yesterday, but in a rudimentary state, just having the strings.XML file with the main texts. I realized that the keys of the texts should be updated to include more context infos. I locked the project because of that.

https://hosted.weblate.org/projects/gauguin/

@nach0 Do you want to become an admin at Weblate? Is your username the same as in GitHub?

Cool. Thanks for getting this moving. It is fine if it's just a rudimentary state, it's a beginning.

I am happy to be an admin in Weblate (I use login via GitHub so, yes, my username is the same), but as I pointed out before I am not very experienced with this tool (just joined 1 month ago and helped translate 1 app). I am happy to learn along the way, but I might not be the most efficient help. I can also help with including more context info (which I think I would be able to infer in most cases by checking the app and identifying the string).

Please note that I will be away for the next 10 days, so I won't be active on GitHub nor Weblate, but count on me to contribute on this issue.

@meikpiep
Copy link
Owner

@nach0 Great. I will log my actions here to keep you and the rest informed. I'm eager to get Weblate going - raise your hands if I'd do things that you want to do on your own. I'm happy to have any help and I'm optimistic that we can manage the translations together.

@meikpiep
Copy link
Owner

@mondlicht-und-sterne Greetings! Do you have stakes to help in whatever form fits?

@mondlicht-und-sterne
Copy link
Author

@mondlicht-und-sterne Greetings! Do you have stakes to help in whatever form fits?

@meikpiep

I have already translated into 75 languages ...

@meikpiep
Copy link
Owner

@nach0 You have mail. Don't worry, and thanks for the information.

@meikpiep
Copy link
Owner

meikpiep commented Mar 2, 2024

I renamed most strings to get more detailed translation keys: fbdd644

I mentioned Weblate in the readme file and submitted the Weblate project to Weblate itself to get the free plan for free software projects. Currently, the strings get covered there in one single component, meta data have to be added via another component.

Weblate creates pull requests at least every 24 hours to submit the translations, this works fine.

I switched the options so that (beside the admins) every user may submit suggestions and every user may vote for suggestions. Each translation needs two suggestions (e.g. from the original translator and one additional user) to be submitted.
Users may begin to translate to additional languages as they want to.

@mondlicht-und-sterne
Copy link
Author

Currently there is only the glossary, which is created automatically, i.e. nothing can be translated yet.
So I'll be checking in from time to time to see whether it works or not.

@meikpiep
Copy link
Owner

meikpiep commented Mar 5, 2024

Currently there is only the glossary, which is created automatically, i.e. nothing can be translated yet. So I'll be checking in from time to time to see whether it works or not.

@mondlicht-und-sterne That's strange, as an admin I could translate and suggest German texts. Can you supply a screenshot and a corresponding URL?

@nach0
Copy link

nach0 commented Mar 20, 2024

Hi, I'm back after some time. Good to see that things are moving here, I will contribute my translation to Spanish too.

@nach0 I just updated the ticket to reach approval of Weblate as a free project, I just remembered that the request is still unanswered - can you check if you have access as a project admin? https://care.weblate.org/#ticket/zoom/8017 I could neither see this nor add another user.

Unfortunately I cannot access this request, I get the message "Oops.. I'm sorry, but you have insufficient rights to open this Ticket."

I also unfortunately have little knowledge of Weblate, so I am not sure what the consequences of the project showing up as a Glossary. I just tried starting with the Spanish translation and I could translate some strings, which the languages overview now shows as translated. I will try to inform myself about the formats and the characteristics of this "Glossary"

@nach0
Copy link

nach0 commented Mar 20, 2024

An additional comment regarding the mathematical symbols for the operations (+ - * /), I believe there are read-only strings that are not translated and the original string is used for all languages? (that's what I see used for the app_nameand about_version_name).

If I am correct and it is the case that these strings are just using the original text for all languages, I believe it would be good to make all the mathematical symbols or numbers read-only, and save the translators the work of copying those for each new language (and risk any silly mistake in the process).

@HarmfulBreeze
Copy link
Contributor

Hi Pierre, a warm welcome! I will have a look in the next two days - Weblate is currently configured to approve a translation if a second person approves additionally. I can have a look and do the approval, I guess. Greetings from Germany, Meik

Thanks, Meik! Looks like user Poue76 went and added their own suggestions and votes, raising the number of valid translations. Their suggestions are pretty good too, so I think we can try to find compromises.

@meikpiep
Copy link
Owner

meikpiep commented Mar 21, 2024

FYI: I just created #119 To enable switching the language.

@meikpiep
Copy link
Owner

@HarmfulBreeze Can you have a look at the following string? It currently breaks the build as the Android linter complains: https://hosted.weblate.org/translate/gauguin/gauguin/fr/?checksum=67a22cd436479a47&sort_by=source

@meikpiep
Copy link
Owner

meikpiep commented Mar 21, 2024

An additional comment regarding the mathematical symbols for the operations (+ - * /), I believe there are read-only strings that are not translated and the original string is used for all languages? (that's what I see used for the app_nameand about_version_name).

If I am correct and it is the case that these strings are just using the original text for all languages, I believe it would be good to make all the mathematical symbols or numbers read-only, and save the translators the work of copying those for each new language (and risk any silly mistake in the process).

@nach0 I think the clean way is rather the opposite: I'd like to make the operators translatable, too. Hardcoded operators or numbers would only fit in European languages based on Arabic numbers and Latin characters. If you comply, would add the missing strings in the next days to Weblate.

@HarmfulBreeze
Copy link
Contributor

HarmfulBreeze commented Mar 22, 2024

@HarmfulBreeze Can you have a look at the following string? It currently breaks the build as the Android linter complains: https://hosted.weblate.org/translate/gauguin/gauguin/fr/?checksum=67a22cd436479a47&sort_by=source

I've seen your suggestion, do you think we should be using %d for every variant?

Edit: actually it makes sense, the first option is used for 0 and 1. I voted for your proposal.

@meikpiep
Copy link
Owner

I've seen your suggestion, do you think we should be using %d for every variant?

Yes, in detail: I believe, the linter will complain every time a string gets translated which contains a number placeholder and gets used for more than one value (e.g. 0 and 1 in French) without using the placeholder.

I don't know if this is the best way to go, but we can try it if where is no known better way.

@HarmfulBreeze
Copy link
Contributor

It's okay, it makes sense. Using a 1 instead of %d would mean that a 1 would be displayed even when the value is 0, which is definitely not what we're looking for :)

@HarmfulBreeze
Copy link
Contributor

This user deleted my suggestion for seemingly no reason. https://hosted.weblate.org/translate/gauguin/gauguin-metadata/fr/?q=state%3Aempty&sort_by=-priority%2Cposition&offset=2#history
I don't think you should be able to delete other people's suggestions unless you have the proper rights

@meikpiep
Copy link
Owner

This user deleted my suggestion for seemingly no reason. https://hosted.weblate.org/translate/gauguin/gauguin-metadata/fr/?q=state%3Aempty&sort_by=-priority%2Cposition&offset=2#history I don't think you should be able to delete other people's suggestions unless you have the proper rights

I agree, I will have a look. @nach0 FYI

@meikpiep
Copy link
Owner

@HarmfulBreeze I posted a comment right about this string, let's see if we get an answer.

@nach0 I could not find any configuration dealing with deletion of suggestions, so there will probably no technical solution to such problems. We could ban users (which I only want to do if we do not manage to get together after a few tries) or configure the complete Weblate project to be a closed mode, such that each new translator must be accepted. I tend to try to solve such problems by communication and see how it goes.

@HarmfulBreeze
Copy link
Contributor

FYI, currently French has * and / as approved multiply and divide symbols (in game options). I suggested × and ÷ as they are more commonly used in France and probably other French-speaking countries too.

What do you think?

@meikpiep
Copy link
Owner

FYI, currently French has * and / as approved multiply and divide symbols (in game options). I suggested × and ÷ as they are more commonly used in France and probably other French-speaking countries too.

I remember there is a todo for me to make the operators used in the grid itself translatable - if that correct, I should do this before changing any occurance.

The reason why * and / are currently used is that these signs have a good readability. I will try your suggestions the next few days and report here if they fit its purpose.

@meikpiep
Copy link
Owner

@HarmfulBreeze I tested your suggestion and I'm happy with it. :-) I changed the operators in English yesterday and made them translatable. Thanks for this point!

@HarmfulBreeze
Copy link
Contributor

@meikpiep Hi!

I've noticed no one has contributed to the French translation in a week. I've submitted suggestions to every single string, making the app virtually 100% translated. Votes are all that's left.

FYI, I've tried to find a middle ground for as many strings as possible without degrading translations too much, but unfortunately, Pouetop only acted on one string.

Should I wait a week or two before asking you to approve my suggestions?

Thanks :)

@meikpiep
Copy link
Owner

meikpiep commented Apr 2, 2024

@HarmfulBreeze No, I will approve asap, I hope I find the time tomorrow, I'm busy today. Thanks for the hint!

@meikpiep
Copy link
Owner

meikpiep commented Apr 3, 2024

@HarmfulBreeze Done, just merged a complete French translation. Thank you! I leaved one suggestion to you.

@HarmfulBreeze
Copy link
Contributor

Thank you for the votes! I've found your suggestion regarding "single cages".
This phrase is a little hard to translate into French and I originally went with "cages uniques". That was not a great translation as you might not understand the meaning immediately on first read, unlike in English. That's why I went with "cages d'une seule case" (one-cell cages) instead, which is definitely clearer in French, and might also be clearer in English too.

Therefore, I think it's better to stick with the currently approved translation for "Single cages will be left empty" => "Les cages d'une seule case seront laissées vides".

Hopefully this makes sense :)

@meikpiep
Copy link
Owner

meikpiep commented Apr 4, 2024

@HarmfulBreeze That's why you are the translator. :-) I got help from a family member who speaks French and we both saw that there are three occurrences of the phrase 'single cage' which seem to be not consistent.

The suggestion was meant just as a hint. :-)

BTW, I let the comments untouched as I am not very experienced with Weblate - can you look over them and close the outdated ones? Or should I do?

@HarmfulBreeze
Copy link
Contributor

About the inconsistencies, I agree, this needs a second pass. Thank you for the heads-up.

I can probably go ahead and close the outdated comments too. I'll let you know if I cannot.

@HarmfulBreeze
Copy link
Contributor

@meikpiep FYI, I've submitted a new suggestion for the string you updated recently: https://hosted.weblate.org/translate/gauguin/gauguin-metadata/fr/?&offset=3

The diff is fairly small as I decided to use em-dashes before source string was updated. (Also "increasing" is missing an A :/)

@meikpiep
Copy link
Owner

@meikpiep FYI, I've submitted a new suggestion for the string you updated recently: https://hosted.weblate.org/translate/gauguin/gauguin-metadata/fr/?&offset=3

Done, thanks! :)

The diff is fairly small as I decided to use em-dashes before source string was updated. (Also "increasing" is missing an A :/)

Did so in #140 :-D

@HarmfulBreeze
Copy link
Contributor

I have submitted suggestions for the strings that were recently added, please approve them :)

@meikpiep
Copy link
Owner

I have submitted suggestions for the strings that were recently added, please approve them :)

Mission accomplished - I closed the old comments and suggestions and applied your suggestions to US English, thanks for that!

@HarmfulBreeze
Copy link
Contributor

@meikpiep
Copy link
Owner

Can't uncheck "Needs editing"

Just did it for you, I don't get the permission think of Weblate.

@HarmfulBreeze Do you have interest to become a Weblate admin for Gauguin, beside me?

@HarmfulBreeze
Copy link
Contributor

Thanks, and sure, why not

@meikpiep
Copy link
Owner

@HarmfulBreeze Great, you should have mail.

@HarmfulBreeze
Copy link
Contributor

Thank you, I now have access :)
It looks like the Libre hosting request still being pending might be related to this: https://hosted.weblate.org/guide/gauguin/gauguin/

Also, it looks odd to me that the main app project is set to glossary, is there a good reason? I believe "Use as a glossary" should be unchecked: https://hosted.weblate.org/settings/gauguin/gauguin/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

6 participants