Project files have been updated to version 10.0 (codename: “Pango’s not a man, it’s a system”), first post has been updated, please PM me for temporary download links until the files are available at some more permanent locations.
Rough summary of changes from 9.2 to 10.0:
- Created a new subtitle rendering script, using ImageMagick+Pango, which fixes a lot of the shortcomings and kludges inherent in the previous process. Also removed a load of scripts and utilities (the aforementioned kludges) that are no longer necessary. The results are designed to closely resemble subtitles created with the old process, so the end result is not much different.
- Fixed Hungarian typos and character-substitution issues (thanks to B2D2)
- Improved French translation for Star Wars (thanks to MalàStrana)
- On Windows, the subtitle rendering script requires ImageMagick 7, so I ported over all scripts to ImageMagick 7 and made that a requirement.
- The remaining Perl utility scripts have been migrated to Python, fixing some minor bugs in the process. Python scripts have been pre-compiled into Windows executables, to remove the Python runtime requirement on Windows. This change was not intended as an editorial comment on the relative merits of Perl vs Python – I’ve simply never really been that good with Perl, that’s all. Also, I found out Python was named after Monty Python, so that pretty much settled it as far as I was concerned.
- Native subtitles are now provided for German, French, Italian, Japanese, and Spanish, to accompany preservations of the international theatrical versions with translated title/crawl/alien subtitles, although some of these preservations may not yet exist.
- Reconstructed 35mm alien subtitles are now provided in French, for both Star Wars and Jedi (thanks to marvins and Yotsuba)
- I am no longer attempting to create a single unified “international” matching font, even though all of the fonts for Jedi seem to be derived from the same Lucasfilm-provided font. There are just too many minor differences. Star Wars appears to have used a subtitle font chosen at the whim of the international distributor, so the differences from country to country are obvious.
- BiDi subtitles (e.g. Arabic) used to exist in a dual environment, where subtitles were edited in one SRT format, but then those subtitles were converted to another “compat” SRT format using a somewhat dubious conversion script, and those converted SRT subtitles were the ones actually used for rendering and playback. This dual environment still exists, but graphical subtitles are now generated directly from the edited subtitles (hooray for Pango!), so they are free of potential conversion-related errors. The conversion utility has also been rewritten to be a bit more coherent, so that the “compat” SRT files are also less likely to have conversion-related errors than before, although that’s still a risk.
- Added a few more troubleshooting-type entries in the README file. For example, “What to do if the SRT files aren’t working properly” offers more advice than just “use the SUP files instead”, although that advice is still offered 😉
The new rendering script is a very big deal, albeit pretty much entirely behind the scenes. The old system was based on a utility called easySUP and a customized version of DirectVobSub/VSFilter, both of which are discontinued and had lots of problems, including really bad BiDi support, reported bugs with Indic scripts, limited formatting options, no OpenType font support, and no cross-platform support. Some of these things I was able to work around using scripts and hacks (I was quite proud of my customized VSFilter DLL, but I’m happy to see it go), some I couldn’t, and for some I didn’t know enough about Arabic or Indic scripts to even be sure how I could know if it was working correctly. On top of this, I’d never scripted this part at all before, so it was a manual process–I had to babysit every single subtitle file I rendered.
Now we’re using Pango, a modern text renderer without any known limitations that would hamper Project Threepio’s further language expansion – and it’s scripted, so I can render subtitles while I sleep (and wake, and sleep again… it’s a very slow process). That’s not to say there might not still be bugs, but it should now be much more possible to fix them properly, and to have a bit more confidence in the results.