Home Creators Posts Import Register Favorites Logout

Content

Something most users of the character sheets don't see is the amount of work that goes on behind the scenes to translate them into other languages. More than a hundred people contribute to translations from Spanish to Polish to Russian.

They do this on a private site that lets them collaborate on translations. This process works fairly well, because it has to be a team effort. The project is far too large for a single person to tackle, but a team can burn through it together. When people disagree, they can propose different translations for the same line, and vote on which they prefer. It's not a perfect system, but it's a pretty good way of dealing with an imperfect situation.

Each language has a 'language lead', a person whose opinion matters slightly more than others. This person's opinion matters slightly more than anyone else's, which is used for tie breakers.

(Side note: If you'd like to join one of the translation teams, drop me a line)

There's a major down-side to the current translation process: previews are not automatic. When I think people have had enough time to make a translation, I export all the translations from the website, feed them into a script that applies the translations across hundreds of pages in Adobe Illustrator, export all those thousands of files (hundreds of pages multiplied by the number of languages) as PDFs, commit those PDFs to git, and deploy them on a server. This takes me a weekend. No, really. The more pages I add, the longer it takes.

The result is that there's no live preview for translators - they have to wait weeks or months until it's a good time for me to spend a weekend doing the full preview for them.

Previews are important because it's not always obvious how a translated line will appear in context. Should it have capital letters? Where should the line break? Should it be abbreviated to fit into the space?

In theory, the composer that stitches the pages together into a character sheet could also apply the translations. In practice there are several reasons this wouldn't work very well, some of which are inherent to the way PDFs work. PDF was never meant for that sort of thing.

One of the things the new approach for Pathfinder 2 promises is the opportunity to change how translations work. An HTML-based builder can read translations directly from a database and apply them on the fly.

Using HTML also allows each text box to be as big as it needs to be for the text it contains. This is important for languages like German, which tend to have much longer lines containing longer compound words. All the different translations currently have some layout niggles that they just have to put up with.

If at all possible, I'd like to keep using the current translation website, since that means I get all the current translations for free. When somebody translates the words "Channel Energy", that translation applies just as much to Pathfinder 2 as it did to D&D 3.5 all those years ago.

(Note: there are special cases in there to distinguish between the words "Light" meaning illumination versus "Light" meaning weight.)

How does the translator site know what words need to be translated in the first place? It has to be fed that information. I have another script for Illustrator which goes through all the hundreds of pages in the project, and produces a list of all the lines that can be translated, which pages they appear on, etc.

Whatever my system for Pathfinder 2 ends up looking like, it'll need to interact with this translator system in two ways: first, exporting a complete list of translatable lines, culled from the data used to make pages; second, pulling translations from that database.

---

Incidentally, have you tried scripting Adobe Illustrator to do repetative tasks? It uses JavaScript, but it's JavaScript from the 1990s and early 2000s, full of the weird shit that web developers were very glad to leave behind when jQuery came out. Even something as simple as a loop is kind of quirky and broken.

Like everything else on this project, my scripts are open source: https://github.com/dyslexic-charactersheets/scripts

Comments

dyslexic_charactersheets

Other scripts in that folder do things like "Replace all uses of this font with this different font".

dyslexic_charactersheets

One thing missing at present is the ability to translate the website. I'd like to add that in future, but it's outside the scope of this post.

Anonymous

As a traslator in the team, I really like how your tranlsating system works, but the problem with the delayed preview was a real one... to tell the truth, it was the one who made me stop working with those translations. So, for PF2 I will be happy to come back to work, if we will have quick preview... it is more useful that one can think from outside (for example for multiple line text). About getting all the current translations for free... my advise is "cheap, not free", meaning that I suggest to make the translation team quickly verify all of them... for two reasons: 1) not always the translation will be the same when the context changes, and 2) it's important to use official terms when available, and it's not said that the PF2 ones will always be the same than the PF1 (even if they are the same in the English version, unfortunatelly it's not said that they will stay the same in localized versions)

Anonymous

Have you tried using InDesign instead of Illustrator for this? They have built in data merge, no need for additional scripting. Its what I do at work. Building pages in Illustrator seems cumbersome.

dyslexic_charactersheets

A lot of the process of how the sheets got built is sub-optimal. It wasn't designed, so much as emerged piece-by-piece. When I first started, I thought I'd only need to do a dozen pages to cover 3.5 and that would be it!

dyslexic_charactersheets

I'm treating the challenge of PF2 as an opportunity to design the whole thing properly, not just an incremental change but a whole rethink based on years of doing this. Much like Paizo!

dyslexic_charactersheets

I may need to work on the translator website's flexibility, context-awareness and ambiguity-resolution. If there can be multiple translations for a single word depending on context, then it should be able to choose the best and fall back to something close enough. "I don't have a translation for 'Alchemist Level' in Pathfinder 2e, but I do have a translation for 'Alchemist' in Pathfinder 1e and 'Level' in D&D 3.5, so that'll do." That's not particularly well supported yet - and if I'd built that from day one, I wouldn't have understood all the requirements.