System Preferences/legacyScreenSaver won't load my localization

I have a old screen saver project I want to update. The project supports multiple languages. I'm upgrading it from legacy ("English", "French", etc.) to modern ("en", "fr", etc.) localizations. Now I have a problem: legacyScreenSaver in Catalina (10.15.4) refuses to load localizations in my screen saver other than English.


In my screen saver bundle, I have en.lproj, and fr.lproj. To test loading the French localization, I set my language and region to French in System Preferences, and rebooted as it suggests to do after changing.


Now I run the screen saver in System Preferences, and no matter what I do, I cannot get it to load localized French resources in my screen saver bundle. I tried this with and without base localization enabled; it made no difference. The CFBundleDevelopmentRegion key is set to $(DEVELOPMENT_LANGUAGE) as it should be. When I query "AppleLanguages" in NSUserDefaults, it returns French first, as I expected. But whenever I query the screen saver bundle's preferredLanguages in a debugger, it always returns English.


If I throw out the en.lproj folder from the built product, then and only then will it load the French localized resources.


The crazy thing is, this problem does not happen in Flurry or Word of the Day, two of the built-in screen savers, which correctly load their French localized resources. What am I overlooking here? Has anyone ever run into this problem before?

Replies

I suspect that this is simply a bug and I recommend that you file a bug report about it. Please post your bug number, just for the record.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"

Thanks. Feedback filed: FB7709314