VTubeStudio icon indicating copy to clipboard operation
VTubeStudio copied to clipboard

Feature : Dynamic update of translation

Open azekiia opened this issue 11 months ago • 4 comments

From my understanding, new translation files are updated when a new update of VTS is released. This means that; with this current process, translations are systematically one update behind the latest version.

This can be uncomfortable for people who are not fluent in English, making accessibility complicated. One idea would be to fetch a repo at VTS launch to check whether a new language file is available for the selected language, and download it if so.

This would enable us, as translators, to push out translations more quickly between two versions of the software, to facilitate accessibility for everyone.

azekiia avatar Mar 08 '24 23:03 azekiia

That's how I wanted to set it up originally, but I'm a bit reluctant to enable people to just push strings directly into VTube Studio. Worst case would be someone gets their account compromised and puts a bunch of slurs into the app. Usually I do a quick sanity check to make sure there's nothing bad in the files before I add them to releases.

This could still be a good idea though. I could set up a script that lets me press a button to create a readonly copy of the current translation state and then that safe copy gets fetched by VTS on startup.

DenchiSoft avatar Mar 09 '24 16:03 DenchiSoft

Yup, I do agree with you that the translations shouldn't be retrieved directly from the actual Google Sheets file, but first passed through an upstream repo (or a sanitized sheet as you suggested) where the files would have been tested beforehand.

This would make it possible to continue the manual checks you do. It wouldn't be as fast as real time, but it would still be more efficient than waiting for the next version. It would be a good compromise!

I checked the modification history of the translation file, and it's not too surprising that most translations occurs just before/after the official release of a new version. A few translations are then added later randomly.

Perhaps the translation process should be modified. For example:

  • A week after the release, you could push the current translations for every languages, after your sanity check.
  • After this period, a translator could inform you of an update via the Discord room provided for this purpose, and you could push only the updated language after a quick check FOR THAT LANGUAGE ONLY.

On the other hand, this could make your workload more consequential, I have no idea what it would represent for you

azekiia avatar Mar 09 '24 17:03 azekiia

I think if this is set up correctly, it shouldn't add much workload at all.

I'm looking into the implementation right now. The biggest problem is that VTS expects all localization files to be present when the app starts up.

Checking localization integrity is one of the first things that happens. So if localization updates are downloaded at that point, they wouldn't applied in that VTS session. You'd have to restart the app to see the updates. Maybe VTS could show a popup informing users that updates for their language are available in that case.

DenchiSoft avatar Mar 21 '24 15:03 DenchiSoft

I think shipping translations with new releases is okay. The problem is that there's no review process for current Google Sheets setup. A professional i18n service like Crowdin would be a better choice in my opinion.

sparanoid avatar Mar 23 '24 13:03 sparanoid