SpacingBat3 / WebCord

A Discord and SpaceBar :electron:-based client implemented without Discord API.
MIT License
1.88k stars 93 forks source link

[Weblate] Localization files synchronization. #474

Closed weblate closed 6 months ago

weblate commented 10 months ago

A request to synchronize the localization files from Hosted Weblate for SpacingBat3/WebCord/Client translations. This is done periodically by Weblate, it does not have a direct access to the repository for the security reasons. The code should reviewed before merge in order to avoid issues.

For translators: your changes might be manually reset if author of this repository decide to not merge them and close this Pull Request. It might also be kept for some time open to give some time to finish the localization of the language.

It also includes following components:

Current translation status:

Weblate translation status

SpacingBat3 commented 9 months ago

@Ali-x98 Doesn't Arabic have multiple plurals? I think I've been testing the PluralRules on that language and found out is has specific plural rules for zero, one, few, many and possibly even other... (maybe there was also a rule for two, IDK but I've listed all rules in English so they should be translatable - they're kinda empty on purpose, to show there's no equivalent in given language for a given plural).

And yes, this is kinda complex to translate, I was aware of that when adding the translations. Honestly the only reliable way to find out if your locale supports given plural rule or not would be to check it via EcmaScript API in JS.

Honestly, I'm not sure how Weblate is capable of handling plurals or if there's any way to flag given object, string or file as such collection. Definitely they should consider supporting it, many programming i18n APIs, libraries or just implementations have a concept of "plural" and this (and other stuff I found in Android applications) is one of the stuff I want to adopt and write a library for when trying to unify i18n, maybe even in all of my applications since EcmaScript standard APIs provide a way to get a current (default) language from their API, so it would be possible to write a library that works in every JS env, as long as it is compilant with the current standards.

Ali-x98 commented 9 months ago

Yes, Arabic does have the forms for zero, one, two, few, many, and other.

Weblate does support these forms, though I do not know the technicalities of how it's done.

It would look like this in Weblate: image

SpacingBat3 commented 8 months ago

@Ali-x98 Unfortunately, this kind of UI doesn't seem to be compatible with the JSON format that WebCord uses. It seems I would have to develop the localization that is supported by a specific JSON syntax (JSON files in general and even some that are treated specially by Weblate, doesn't seem to support plurals and Weblate isn't made in way I could flag some object as a plural – that would be kinda useful for any format IMO).

However, I've seen there's still a way to translate the missing plurals. Could you do that? You can identify which plural does what by the key name.

Ali-x98 commented 8 months ago

Sure.

SpacingBat3 commented 6 months ago

Already merged in ae0cc68b4317fd9dc9c1dd98fdeed56cbbe911d5 :tada:!