Feature Request: Localization support
Got some mappers asking if there's a translated version. Though most mappers can at least understand basic English, there are still some non-native-speakers who find reading English tiring or aren't able to understand some terminologies. Opening up localization can help avoid misunderstanding of functions from mappers who aren't native English speakers, etc., and allow Mapping Tools to reach more mappers.
I understand the benefits of translations for non-english speaking people, but I have also zero experience with localization and I didn't code Mapping Tools with localization in mind. However a quick search showed me the WPF framework I use might have some nice localization magic stuff, so I might be able to translate most of the UI.
I decided to look more into that and maybe you'll see some kind of translation coming. I'll keep this issue open until there is something, so it can act as an eternal reminder.
I have a solution in my exist project if you would like to take a look.
https://github.com/Milkitic/Osu-Player/blob/master/OsuPlayer.Wpf/lang/default.xaml
Store localization in xaml and Use DynamicResource for every where.
https://github.com/Milkitic/Osu-Player/blob/master/OsuPlayer.Wpf/Styles/i18n.xaml
Use a container of i18n xaml and reference in App.xaml
https://github.com/Milkitic/Osu-Player/blob/master/OsuPlayer.Wpf/Utils/I18nUtil.cs
Use I18n manager to load or change to exist language xamls and initialize the new sections after updates on default.xaml.
https://github.com/Milkitic/Osu-Player/blob/master/OsuPlayer.Wpf/lang/en-US.xaml Other languages sample
It's different from the official solution but it's my own preference since it's easy to use and simple enough.
I have a solution in my exist project if you would like to take a look.
Thanks for sharing your solution. I want to do something similar but not store all resources in xaml. Also changing everything in Mapping Tools to use dynamic resources would be a huge undertaking, so I might want to do that alongside a whole front-end rewrite so I can make it cross-platform and localized at the same time.
I did some experimenting myself and tried the BAML editing described in here It involves some tool extracting all the relevant info out of the xaml and letting you localize that. It works, however it's not ideal: The file to translate is hard to manage, because it has over 7000 lines and most of it is not relevant. Also it doesn't address strings in code.