DenchiSoft / VTubeStudio

VTube Studio API Development Page
MIT License
826 stars 77 forks source link

Feature : Dynamic update of translation #77

Open azekiia opened 6 months ago

azekiia commented 6 months ago

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.

DenchiSoft commented 6 months ago

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.

azekiia commented 6 months ago

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:

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

DenchiSoft commented 5 months ago

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.

sparanoid commented 5 months ago

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.