LightBulb
LightBulb copied to clipboard
Internationalization
Hi,
Thanks for this wonderful software. Would it be possible to add internationalization support to allow translation?
Regards, Yvan
Hi @Yvan-Masson I have interest in this. Do you have any suggestions in regards to crowd-sourcing translations?
Sorry @Tyrrrz, I don't know enough about internationalization to suggest a proper way to do this.
I think OneSky is free for FOSS projects. Launchpad seems to be an even better solution.
Other tools that also look promising are Zanata, Pootle and Weblate.
If you ever start a translation project, please message me, I would be very much willing to help with Brazillian Portuguese :)
I can help translate xaml files
https://docs.microsoft.com/zh-cn/dotnet/desktop/wpf/advanced/globalization-for-wpf?view=netframeworkdesktop-4.8
It is sad that the application is only in English - I propose to translate. I am ready to help in the translation into Russian. (For example, you can use Weblate, or any other service. It is completely free for open source projects.)
Tyrrrz:
Yes, localization would be really nice. In the past I have already created an account for LightBulb on Crowdin, but it didn't get anywhere past that point. Currently there are still a few open questions:
- How should the localizable strings be stored? Is there a common/standard/popular format? I don't want to build a custom one if I could avoid it.
- How should the localization process be synchronized with development? What happens if new strings are added and there is no one to translate them?
- How should the localization be deployed? For example, releasing new features/bug fixes can't be delayed by waiting on localization, so it's likely they won't be deployed in tandem.
@comradekingu Need your help!
I can help set it up on https://hosted.weblate.org/hosting my account is https://hosted.weblate.org/user/kingu/
@comradekingu how will the localization strings get pulled into the app? What is the most common process for these?
https://docs.microsoft.com/en-us/dotnet/framework/tools/winres-exe-windows-forms-resource-editor
To localize using Winres.exe, you must first develop an application using a visual designer like the Windows Forms Designer in Visual Studio. When development is complete, set the form's LocalizableAttribute (the Localizable property in the Properties editor) to true, and then hand off the .resx file for the default culture to a third-party localizer. This .resx file contains extra information that Winres.exe uses to recreate a design-time version of the original form.
@Tyrrrz What kind of format does it use?
As for the Weblate part Set up libre account and project at https://hosted.weblate.org/hosting/ Point it to the POT and PO files in the setup process Add webhooks and GitHub user https://docs.weblate.org/en/latest/admin/continuous.html?highlight=webhook#automatically-receiving-changes-from-github Select whether you want rebase or merge
In my point of view, Weblate (Ukui Desktop, LxQt, ...) or Transifex (MATE Desktop, Xfce, Deepin, ...) are the best solutions. You should not use Launchpad which is too locked (for example : Ubuntu, Elementary OS). => Online Web Translator Comparison Table
@roxfr elementaryOS also uses Weblate Where is UKUI translated? Launchpad has gotten viable again, and Transifex still isn't. Weblate is IMO. the obvious choice when you factor in the terms and agreements and usability.
@comradekingu
As for the Weblate part Set up libre account and project at https://hosted.weblate.org/hosting/ Point it to the POT and PO files in the setup process Add webhooks and GitHub user https://docs.weblate.org/en/latest/admin/continuous.html?highlight=webhook#automatically-receiving-changes-from-github Select whether you want rebase or merge
Thanks. I would probably prefer to merge translations manually, but it's a different concern. The part, which is not clear to me is how to organize the deploy/deliver pipeline for translation files. I imagine that translations will not be 100% most of the time (i.e. because new strings are added, etc.), so there needs to be a way to release a new version of LightBulb with incomplete translation. At the same time, new translation releases may need to be made available separately from LightBulb releases. I'm just curious if there's an example of how this process was established in other small-scale open source projects.
@comradekingu Ok, I was wrong for Elementary OS (note : I still have a pending request for their dock). I tried to complete the translation for "plank" and "docky" (extensions) on Launchpad. In my part, I find it a bit heavy and not very user-friendly (need candidacy / after a while, if your translations are good, you will be invited to join the team). Otherwise, I regularly translate Deepin OS on Transifex. I have not had any particular problem (however, it is a paid solution). I also used Weblate to translate LxQt and Ukui Desktop - See : ukui Yes, you have to find a user-friendly solution with the right terms and agreements (not easy to find). Otherwise, there's the good old Poedit and queries in Github. Regards, Roxfr
Whenever you are ready I would be willing to help for Italian language.
Let me know, whenever this takes off. Will gladly provide German translation.
Unfortunately, I have to close this as I don't feel like I have the capacity to reconcile the added complexity of introducing this feature. Sorry.