LightBulb icon indicating copy to clipboard operation
LightBulb copied to clipboard

Internationalization

Open Yvan-Masson opened this issue 7 years ago • 15 comments

Hi,

Thanks for this wonderful software. Would it be possible to add internationalization support to allow translation?

Regards, Yvan

Yvan-Masson avatar Sep 01 '17 12:09 Yvan-Masson

Hi @Yvan-Masson I have interest in this. Do you have any suggestions in regards to crowd-sourcing translations?

Tyrrrz avatar Nov 08 '19 16:11 Tyrrrz

Sorry @Tyrrrz, I don't know enough about internationalization to suggest a proper way to do this.

Yvan-Masson avatar Nov 08 '19 17:11 Yvan-Masson

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 :)

fabiorzfreitas avatar May 21 '20 22:05 fabiorzfreitas

I can help translate xaml files

xkonglong avatar Sep 30 '20 02:09 xkonglong

https://docs.microsoft.com/zh-cn/dotnet/desktop/wpf/advanced/globalization-for-wpf?view=netframeworkdesktop-4.8

xkonglong avatar Sep 30 '20 03:09 xkonglong

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!

KovalevArtem avatar Nov 23 '20 23:11 KovalevArtem

I can help set it up on https://hosted.weblate.org/hosting my account is https://hosted.weblate.org/user/kingu/

comradekingu avatar Nov 24 '20 07:11 comradekingu

@comradekingu how will the localization strings get pulled into the app? What is the most common process for these?

Tyrrrz avatar Nov 24 '20 14:11 Tyrrrz

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.

xkonglong avatar Dec 15 '20 04:12 xkonglong

@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

comradekingu avatar Dec 15 '20 07:12 comradekingu

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 avatar Dec 28 '20 17:12 roxfr

@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 avatar Dec 28 '20 17:12 comradekingu

@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.

Tyrrrz avatar Dec 28 '20 18:12 Tyrrrz

@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

roxfr avatar Dec 28 '20 18:12 roxfr

Whenever you are ready I would be willing to help for Italian language.

hotellinawebmaster avatar Jan 26 '21 08:01 hotellinawebmaster

Let me know, whenever this takes off. Will gladly provide German translation.

m2u-84 avatar Nov 15 '22 16:11 m2u-84

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.

Tyrrrz avatar Jun 11 '23 23:06 Tyrrrz