2019-10-19 12:11 EDT


View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0003172FSSCPlocalizationpublic2015-09-15 20:48
ReporterYarn 
Assigned ToYarn 
PrioritynormalSeverityminorReproducibilityalways
StatusresolvedResolutionfixed 
Platformx64OSWindows 7OS Version
Product Version3.7.3 
Target VersionFixed in Version3.7.3 
Summary0003172: Language autodetection is broken
DescriptionFS2 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 InformationI think I know how to fix this. Expect a pull request shortly.
TagsNo tags attached.
Attached Files

-Relationships
+Relationships

-Notes

~0016780

Yarn (developer)

Fixed in f82a730f7e7271eeb400f94b66d6148b06e18fe0.
+Notes

-Issue History
Date Modified Username Field Change
2015-09-02 16:34 Yarn New Issue
2015-09-02 16:34 Yarn Status new => assigned
2015-09-02 16:34 Yarn Assigned To => Yarn
2015-09-15 20:48 Yarn Note Added: 0016780
2015-09-15 20:48 Yarn Status assigned => resolved
2015-09-15 20:48 Yarn Fixed in Version => 3.7.3
2015-09-15 20:48 Yarn Resolution open => fixed
+Issue History