The Vox Populi Localization Project

Hallo, bin neu hier und habe vor kurzem vox populi 5-22-1.exe in CIV V installiert. Gefällt mir sehr gut. Vielen Dank dafür.
Aber es funktioniert nur korrekt auf englisch.
Habe dann das Language Pack 2.1.26.1 nach Anleitung installiert, alles aktiviert, aber dann sind zum Beispiel im Baum der Sozialpolitiken völlig andere Erklärungen an den falschen Stellen.

Auch ich würde gern weiter mithelfen beim Übersetzen, so wie Chfu. Englisch und Spanisch.

Falls also Bedarf besteht, bitte melden.

Und wenn jemand einen Tipp hat, warum Civ V in Deutsch mit vox populi bei mir nicht korrekt funktioniert, bedanke ich mich im Voraus...

Schöne Grüße
piet
 
Might be me, but I could not find information on how to contribute to the translations. Would love to add a few ones for German!
 
Hi there, I am alive and finally released a version that I began more than a year ago. The translation pack reached Vox Populi 3.4.20.5. If anyone still has the version, they´re welcome to give it a try.
It was very difficult for me to find my way back into the project after a year of break. Especially since the development of Vox Populi went on very fast. This time I focused less on active translation than on adapting to the "current" version (yes, it's been some time since it was current).

I have decided, over the last few weeks, that I will no longer maintain the Translation Framework. The parallel adaptation of the Framework next to the adaptation of the actual translation is not a big deal. But that changes when you have to catch up on a big development leap. I don't think anyone will use the translation framework in the near future. That's why I prefer to invest my time in German translation.

After some tests I will soon download the current version from November and start adapting my package. I hope I will need less time this time. :)
 
Last edited:
Finally my dream for 2018 has come true: The translation package is up-to-date and can be used with the current version of Vox Populi (12.18.1). :smoke: After a very long break I hope that some of you will enjoy the translation. Unfortunately the translation isn't complete yet, so you'll find some English texts here and there. However, you should always find the current Vox Populi facts in the texts. When I have some time again, I will update the overview of the current translation process on the 1 thread page. This is a bit outdated.

I wish you happy holidays :xmascheers: and a good start into the year 2019. :newyear:

As always I am open for your feedback!
 
Hello. I've been doing Finnish localization of Civilization V since the game's release and have some experience in how to make things work via the Text directory, which would be much easier for the end user of language packs as they wouldn't need to install and then enable any mods.

As far as I can recall these are the issues when working with Civ 5 localization and modding:
  • Mods change existing en_US strings (which is very annoying from localization perspective).
  • Mods typically don't care about other languages and thus non-English languages display incorrect information.
  • Text directory is typically of no help, because it is executed before mods.
  • It is hard to keep track of mods that change and evolve over time. (And it is also hard to track an evolving game, like Civilization VI at the moment.)
My idea to overcome these issues is to essentially parse all the XML and SQL files dealing with Language_en_US and create a versioned database with enough information that one can use it to generate a single XML file that targets a specific language and Vanilla / Gods & Kings / Brave New World / Vox Populi combination of the game. I already have a tool written in Node that is able to parse the existing original en_US XML files and my old Finnish localization files, generate a JSON and then generate XML files that target Vanilla, G&K, or BNW.

What it lacks at the moment is versioning so that it would be possible to tag which version of a string was translated from so that it would be possible to see if localization strings have become out of date. Civ 5 no longer receives notable updates so versioning hasn't been a problem, but having a look at Vox Populi I thought it might be nice to add Finnish support for it as well; it would just be an awful lot of work to do it only for Finnish players, as there isn't a huge demand.

So my current thoughts are to first make a Vox Populi localization parser: you give it a directory and then the tool reads all it can find from there and generate a JSON file with all the English strings. Once this is done then it would be only about figuring out how to add localized strings into the JSON and do this so that there would be version information. It might even make sense to make some kind of tool with UI to make life easier. Doing that would be time away from localization, but once it would be done it would make life so much easier for people doing localization.

The technical part that makes this approach possible is that you can add a new language via Text directory, and this language won't be affected by anything else. You can give any kind of language priority this newly added language, so you can make it replace English, German or any other supported language. So you could add say a de_DE2 which would be the highest priority language for de_DE, which would fallback to en_US as it normally does. This allows the XML files to be simple <Row /> inserts.

When creating a new language targetting Vox Populi the priority would be translating the conflicting strings, as those are the ones that "lie" to a non-English player. That is an issue this Text directory solution cannot fix. However I guess the biggest issue in supporting Vox Populi is that it has lots of optional parts; I haven't yet digged deep into it as I haven't even installed it yet. But it might still be very possible to approach things via Text directory.

I start working now on something, this message partially became this long as I'm still trying to process what is actually important to do and what would be the best use of time, since that is what is the limiting factor :)
 
Last edited:
Here are some initial results from what I got done today: two JSON files with all Vox Populi's English texts that are easy to compare using a diff tool (such as WinMerge).

Edit!
Added German JSON as well. I noticed that in source files there were a couple of uses of Language_en_US instead of Language_de_DE:
  1. (1a) Community Patch INT\Core Files\Text\CoreText_de_DE.sql:333
  2. (2a) Community Balance Overhaul INT\Balance Changes\Text\de_DE\BuildingText.sql:246 and :650
  3. (2a) Community Balance Overhaul INT\Balance Changes\Text\de_DE\UnitText.sql:29, :30 and :325 (although these are actually English)
Although now that I uploaded I noticed the German files are very different to what the English ones are, so more work to parse those (as I'm parsing SQL with a simplish regex). But might have missed something in Vox Populi's files as well.

Edit #2!
Yup, missing INSERT sql support, so still more things to parse to actually get everything in :)

Edit #3!
Now supporting INSERT INTO ... (Tag, Text) ... SELECT ... UNION ALL ... WHERE type of statements.

Edit #4!
And also INSERT ... VALUES

Edit #5!
Removed attachments since they're invalid.
 
Last edited:
Here is a tool and the current output JSON file from Vox Populi 4.2.17. There are conflicts, which are keys that exist multiple times. Some of them are unnecessary (like duplicates with typos), but some are understandable as there are multiple mods (and at the moment of writing this message I have not yet looked into internal mod dependencies of Vox Populi).

To get the tool running:
  • Install Node if you don't have it
  • Go get Vox Populi (I used the manual installation folder)
  • Rename Main Downloads directory to 4.2.17 (or whatever the version is)
  • At this point directory structure should be something like Vox Populi/4.2.17/{Many directories here}
  • Extract parse.mjs to Vox Populi
  • Open parse.mjs and edit line const version = '4.2.17' to match the directory you want to work with
  • Open command line tool (cmder, Git Bash, etc.) and go to the Vox Populi directory
  • npm install recursive-readdir xml-js
  • Run the tool: node --experimental-modules parse.mjs
The code is still slightly naive and there are no config file or command line parameter support, but I think it should now be able to parse all the existing XML and SQL files.

As a reminder this tool does not exclusively work with only Vox Populi, it should work with a lot of mods, although there are probably going to be issues with other mods as for now the tool is only tested against Vox Populi. For now the point is to generate a JSON which can then be diffed easily to previous versions for changes.

Next step would be to generate JSONs from the game itself and process these to their minimal form. I have a tool for this already, actually, but it really should be updated so that no manual work of moving files would be required. And also, it doesn't store the results to a JSON file after parsing, which is something it really should do. Instead it jumps straight into adding Finnish localization to the JSON, which isn't useful for anyone else but me :)

The game based JSON can be used to help generate the final localized files to Text directory so that the modified English strings in Vox Populi will be included automatically if localized versions are missing.
 

Attachments

  • Vox_Populi.zip
    314.5 KB · Views: 211
Last edited:
Can anyone comment on the current status of this mod? VP has updated a lot since it was released; will I get a load of gobbledegook if I install this now?
 
Thanks for this post! I'm translating VP for spanish installations, I'm using this package as base for my translation, but I have a question is this updated to the language of the latest mod versions? Or I should make some diff checking? I'm using VS Code so there is no problem of checking, but there are a lot of files..... hehe
 
Hey everyone!

I made translation for Vox Populi (3.3.1) to russian language, posted it in my GitHub

Currently it's applied as separate mod, but it would be awesome if in a future Vox Populi developers could merge all translations to main code so that every language would appear without need of different mods.
Also I coudln't find how to translate Tips during loading screens - I've got a feeling they're somewhere in a DLL, so there's no way to translate them without decompiling libraries first. Or is there a way?
 
If we merge all translations, we'll also have to make sure to update all translated text for each version.

Tips are in VPUI (in the DLC folder) I think.
 
If we merge all translations, we'll also have to make sure to update all translated text for each version.

Tips are in VPUI (in the DLC folder) I think.
Tips text is in the Text folder which is located in the same location as the MODS folder.
 
Top Bottom