View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003172 | FSSCP | localization | public | 2015-09-02 20:34 | 2015-09-16 00:48 |
Reporter | Yarn | Assigned To | Yarn | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Platform | x64 | OS | Windows 7 | ||
Product Version | 3.7.3 | ||||
Fixed in Version | 3.7.3 | ||||
Summary | 0003172: Language autodetection is broken | ||||
Description | FS2 Open has a feature where if no language is set in the registry, the game automatically chooses a language based on the checksum of the first font. However, this feature doesn't currently work correctly. While the checksums are calculated properly, they somehow aren't being matched with a language, even if the checksums actually are in localize.cpp/Lcl_builtin_languages. I had a look in the code, and the problem appears to be caused by detect_lang searching in Lcl_languages, which doesn't get populated until afterward in lcl_init. | ||||
Steps To Reproduce | (These instructions assume that you're running the English version of the game.) 1. First, make sure that no in-game language is set. The way to do this depends on your operating system: For 32-bit Windows, go to the following folder in the registry and remove the "Language" value: HKEY_LOCAL_MACHINE -> Software -> Volition -> Freespace2 For 64-bit Windows, do the same as above, except look in the following two folders if they exist (yes, you must check both!): HKEY_CURRENT_USER -> Software -> Classes -> VirtualStore -> MACHINE -> SOFTWARE -> Wow6432Node -> Volition -> Freespace2 HKEY_LOCAL_MACHINE -> SOFTWARE -> Wow6432Node -> Volition -> Freespace2 For other OSes, I think there's a file somewhere that has this setting. I don't know where it is or what it's called, though. 2. Install the German font to data\fonts. You can get this font from my German data pack, which is at the bottom of this post: http://www.hard-light.net/forums/index.php?topic=85492.msg1709621#msg1709621 3. Start the game with no mods using a debug build. At the pilot selection screen, note whether the language displayed is English or German, then quit the game. 4. In fs2_open.log, look just below the file index. There should be some lines that say whether autodetection was successful. If it wasn't, you should also see the calculated checksum. (Currently, autodetection always fails, even if the checksum matches one in Lcl_builtin_languages.) | ||||
Additional Information | I think I know how to fix this. Expect a pull request shortly. | ||||
Tags | No tags attached. | ||||
Date Modified | Username | Field | Change |
---|---|---|---|
2015-09-02 20:34 | Yarn | New Issue | |
2015-09-02 20:34 | Yarn | Status | new => assigned |
2015-09-02 20:34 | Yarn | Assigned To | => Yarn |
2015-09-16 00:48 | Yarn | Note Added: 0016780 | |
2015-09-16 00:48 | Yarn | Status | assigned => resolved |
2015-09-16 00:48 | Yarn | Fixed in Version | => 3.7.3 |
2015-09-16 00:48 | Yarn | Resolution | open => fixed |