-
Notifications
You must be signed in to change notification settings - Fork 420
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
Simple localisation for framework-side strings #6075
base: master
Are you sure you want to change the base?
Conversation
…`LocalisableString` Since `Data` is `internal`, a helper method is needed.
The shape of `WindowModeStrings.cs` modelled after osu! localisations.
Since the extension method is intended for a very specific use case, the name `GetKey()` felt too generic.
I think that this is fine. Tooling will need some additional work to behave well. Did you have anything else planned for this, or is it ready to go? Since it's a proposal/RFC atm. |
It's ready to go, I think this is all that's required to start experimenting with osu!-side support. |
With the string remapping logic proposed here, how do you envision translation strings being generated for Crowdin? Are all framework localisation strings going to be translatable via Crowdin? Or do they all have to be remapped osu!-side with corresponding strings that's translatable in Crowdin? I'm asking this question because it looks like currently such framework strings will appear as translatable in Crowdin but not taking effect because they're remapped to another string. I think the remapping logic does not need to exist, and any osu!-side translation strings should be migrated to the corresponding framework-side string. Even for overriding the english version of the string like in the Joystick keys case, why not just change the form in osu!framework and call it a day? We have icon support in framework, no? |
If we can get framework strings into crowding and not have to do any remapping, that would be great. The idea of remapping framework strings to osu strings is given as a fallback option that should work without changes to the crowdin workflow. In case there's trouble with adding the strings to crowdin and exporting framework translations to game files.
I'm not too fussed about duplicate strings (eg. for "Paste"). Crowdin has translation memory that will suggest a 100% match. Applying a translation will be one-click.
If we get framework strings in crowdin, changing them to suit osu! makes sense. |
That's just adding unnecessary work to the translator, I don't agree with this.
I would rather avoid adding complexity to the way localisations are processed if we can. I propose the following:
@peppy thoughts on this direction? since you're the one handling the process of updating localisations across the repos. |
OsuTextBox
right click/long tap context menu osu#24184 (comment)RFC
This shows an idea for how to allow games to provide translation and customisation of framework-side strings. The idea is to provide static
*Strings.cs
classes that have staticLocalisableString
/TranslatableString
properties (like how osu! does it). Framework would use these strings where applicable. Only English fallback strings are provided, translations in framework are not currently considered.Consumers then have a stable way of getting the lookup key of framework strings and can do whatever with them in
ILocalisationStore.Get()
.Some examples of what consumers could do:
*Strings.cs
files in their own translation tooling to provide translationsExample implementation of remapping framework strings to existing osu! strings:
Future work
framework
osu!