Jump to content

Translating Vortex


Tannin42

Recommended Posts

Hi Muleke,

There is advice that may help you. It would be very troublesome and difficult to extract all translations by performing all operations. So I have provided a tool that tries to extract all translations from the source code here: https://www.nexusmods.com/site/mods/33

It is very experimental and far from perfect, but at least it can save time by skipping the actual extraction process. This tool file also includes the pre-extracted English json files, so you can start translating with them.

 

Hi, BowmoreLover!

 

Thanks for making this tool! Actually, I have just tried it yesterday before you replied to me and I have managed to extract the strings from the source code. :) Again, thank you!

 

With 1.1.0 all translations that are properly packaged (https://wiki.nexusmods.com/index.php/Packaging_extensions_for_Vortex) can be installed directly from inside Vortex and they will even appear in the language list without being installed (they get installed on-demand).

That way it's convenient for the user but you can still distribute updates to the translations without waiting for a new Vortex release.

 

Hey, Tannin42!

 

Thanks for telling me that! Once I'm done with the translation, I'll be sure to test this out. ;)

Link to comment
Share on other sites

  • 4 months later...

Hi everyone,

I would like to discuss the matter we face with french translations.

Context :
Ozzydarkfmw started the first french translations (modId 13) for Vortex, but isn't maintaining anymore for various reasons.
We discussed together and ended to fork (modId 48) his early work so I can continue to work on it.

Concerns :

1) How could we make the new version deployable with the automatic methods ?
Without surprise, the automatic deploiement (from settings>interface>language box) deploys the extensions hosted on his page.

What's the best aproach ?
a) desable his page
b) destroy his page
c) give me acces to his page and manage from there (but this wasn't what we ended with, him and I)

Additionnally : How to face a similiar case where the original author isn't active at all (which is fortunately not the case here) ?


2) Could we have a enlightment of how the extensions automatic update process works ?
During test phase, I worked on packaged versions that used the modId 13 of Ozzydarkfmw page.
I found out that even when I drop a proper package, the one deployed was his one from the nexus.

So, when I tried this out with my versions (modId 48), I expected the same.
I made an early version that I versioned 1.1.15 (same as Vortex) ... but with a latest update I realized it wasn't that smart. So, I released the latest versioned 1.0.1 on the Nexus, and made the 1.1.15 an old one.
I made a dummy package, versionned 1.1.16 with a change within : I changed "Settings": "Paramz 1.1.16", in common.js
While dropping the 1.1.16 package manually, I expected my 1.0.1 to be deployed ... but it deployed the 1.1.15 version instead (I double checked the Nexus and didn't found pb here).

So I suppose I'll have to remove that older version in order to make it work properly, and continue incrementing from 1.0.1 (1.0.2 etc).

 

 

3) How could I avoid that automatic update ?

If, for personal preferences, I prefer not to deploy the latest version but an earlier/other one I have on my disks ... is it possible ? What do you recommend to do ?

Link to comment
Share on other sites

Solved the 2nd concern : I changed the version by editing file details ... moved the old 1.1.15 version to version 1.0.0, "et voilà".

Link to comment
Share on other sites

We had a similar situation with Chinese (I think?) where there were multiple translations for the same language.

With Vortex 1.2 we will show all Language extensions in the drop down box with the uploader in brackets, so if there are multiple projects providing translation, the user can chose which one they want.

 

re 1) However if a translation is actually obsolete and no longer maintained it would be best for the author to send me a message so I can remove it from the extension catalog. The mod page doesn't have to be removed and it wouldn't actually remove the extension from the catalog so that would actually be pretty inconvenient.

 

re 2) I think this is mostly described here: https://wiki.nexusmods.com/index.php/Packaging_extensions_for_Vortex

For one thing, please remember that all extensions, including translations are reviewed by us (currently I'm the only one doing these reviews, alongside my other jobs) so that we don't end up introducing malware or a translation that replaces every word with obscenities (not that I would notice if everything in the chinese translation was obscenities but I do what I can...).

On top of that the extension catalog is cached inside Vortex for a couple of hours.

So whatever you do on the page, there will be a delay before you see it inside Vortex. If you follow the instructions on the page I posted above, your update will become available eventually but I can't give guarantees how long it takes (I have to sleep once in a while).

If you have something essential that needs to be updated immediately you can send someone from staff a message (on discord ideally).

 

The important part is: There can only be one main file. If you have a single main file and it's packaged according to the wiki, Vortex will update to that. The version number is irrelevant for the update process, although we'd appreciate if you follow semantic versioning (https://semver.org/).

 

re 3) Same answer as 2 really: The file you have under main is the one that users will be updated to (eventually). That way you can revert to older versions, you can upload whatever you want in "optional" or "misc" files. For the update process only the main file is relevant and there is no way Vortex will _not_ update to the main file (unless the main file is broken in which case we will remove the extension/translation completely).

Link to comment
Share on other sites

Thanks Tannin for those explanations.

 

re 1) I'll talk to Ozzy about that so he can confirm that point to you privately. He may tell you only after Vortex 1.2 release ... so that we could check how the new mecanism works :smile:

 

re 2) yup, I've read this page. Was a great help to make the package, what I missed was that point about delay/sleep :wink:.

Nothing essential here. Since my previous post I got a better grasp of how everything works (especially the auto-update). With that I managed to provide a proper procedure for my fellow french users, so we're good for now.

 

re 3) so, if some user (or myself) prefer to use a different version, the only way will be to directly put the <lang> directory in the %APPDATA%\Vortex\locales to make Vortex use that translation instead of one of the packages. Got it.

I'm actually doing this in order to track untranslated sentences with the "Translation Helper" extension ... I'll tell our french community about this way as workaround if they ask about it.

 

What you said

: With Vortex 1.2 we will show all Language extensions in the drop down box with the uploader in brackets, so if there are multiple projects providing translation, the user can chose which one they want.

 

made me wonder if -just to give the team some thoughts about it- if, from there, users could see and choose the main and/or older versions available on the nexus page so they would make their choice (in a distant future .. .eventually).

 

Looking forward to Vortex 1.2

Best Regards

Link to comment
Share on other sites

  • 1 month later...

Thanks Tannin for those explanations.

 

re 1) I'll talk to Ozzy about that so he can confirm that point to you privately. He may tell you only after Vortex 1.2 release ... so that we could check how the new mecanism works :smile:

 

re 2) yup, I've read this page. Was a great help to make the package, what I missed was that point about playamo/sleep :wink:.

Nothing essential here. Since my previous post I got a better grasp of how everything works (especially the auto-update). With that I managed to provide a proper procedure for my fellow french users, so we're good for now.

 

re 3) so, if some user (or myself) prefer to use a different version, the only way will be to directly put the <lang> directory in the %APPDATA%\Vortex\locales to make Vortex use that translation instead of one of the packages. Got it.

I'm actually doing this in order to track untranslated sentences with the "Translation Helper" extension ... I'll tell our french community about this way as workaround if they ask about it.

 

What you said

: With Vortex 1.2 we will show all Language extensions in the drop down box with the uploader in brackets, so if there are multiple projects providing translation, the user can chose which one they want.

 

made me wonder if -just to give the team some thoughts about it- if, from there, users could see and choose the main and/or older versions available on the nexus page so they would make their choice (in a distant future .. .eventually).

 

Looking forward to Vortex 1.2

Best Regards

 

Hey. I'm new. Very lucky to get to your recommendations. Thanks you!
Link to comment
Share on other sites

  • 5 months later...

Hi Vortex Devs

 

I have a question about the Vortex translation.
There is an "export default withTranslation" statement in the source, and I understand that the argument of this statement indicates which json file to get the translated text from.

 

By the way, there are various variations of the argument for this statement like this:

withTranslation(['common'])

withTranslation(['changelog-dashlet', 'common'])

withTranslation(['common', 'fnis-integration'])

withTranslation(['default', 'gamebryo-savegames'])

withTranslation('default')

 

If the argument is a single argument, the source would expect to find the translated text in its json, but the question is when there are more than two arguments. Whenever there are more than two arguments, 'common' is specified at the same time, so I know it's OK to have the translated text in common.json, but that doesn't make sense to have separate json for each context. My VortexTrnsTools currently extracts the first parameter as the json file name, but should I extract parameters other than common first?

 

EDIT: And if there is more than one argument, which namespace translation string takes precedence?

Link to comment
Share on other sites

These are called namespaces and the translation system will pick the string from the first namespace listed there, so in ['changelog-dashlet', 'common'], the text from the changelog-dashlet namespace should have precedence over common.

 

The thing is: even the english base language requires "translations" because the translation system also handles singular/plural forms (e.g. "one comment" vs "5 comments"). While translations are one pack containing the strings for all namespaces, a developer shipping a third party extension will ship the english base language file with the extension, it wouldn't be included in Vortex.

 

So if you look at an extension like this one: https://www.nexusmods.com/site/mods/145 it will contain strings that aren't provided by Vortex so the extension author could provide their own translation file for english.

And for that to work, each extension has to have their own namespace and as such their own json file.

 

Now even within the files bundled with Vortex we split translations along extensions, that is mostly just for consistency.

Link to comment
Share on other sites

  • 2 months later...

Hi Tannin, sorry for the late reply.

 

The reason I asked this question is because I noticed that the json file structure (classification rules) of captured strings has changed since v1.3.13.

 

Captured files (v1.3.5):

 

changelog-dashlet.json
common.json
default.json
extensions-dashlet.json
gamebryo-plugin-management.json
issue-tracker.json
translate.json

 

 

Captured files (v1.3.21):

 

about_dialog.json
changelog-dashlet.json
common.json
dashboard.json
default.json
documentation.json
download_management.json
extension_manager.json
extensions-dashlet.json
feedback.json
fnis-integration.json
gamebryo-plugin-management.json
gamebryo-savegame-management.json
gamemode_management.json
issue-tracker.json
local-gamesettings.json
mod_management.json
nexus_integration.json
profile_management.json
recovery.json
translate.json

 

 

I understand that until then, the json file names were determined according to the namespace definitions in the source code. However, in the latest version of Vortex, the module name (package name?) is used. For example, 'about_dialog.json' does not have a namespace definition in the source code. Is this my understanding correct?

 

I am providing a tool to try to extract strings from the source code instead of capturing them. In this tool, I want to output the same json file as the captured one. So, please let me know how exactly the json file name is determined.

 

Thanks in advance.

Link to comment
Share on other sites

  • 1 year later...

Hello

I'm new here, I'm not a modder and I have no idea about it, but Polish official translation of Planet Zoo annoying me so much, that I wish to retranslate few animal species names. I can ask for some tips on how to do this (I don't know this completely, so it might be a "manual for dumbes" ;) If it does not turn out to be particularly difficult, I will also be happy to translate the local mods (not only species names like in official translation) for Planet Zoo into Polish

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...