Application in release mode is missing localization languages.

I have an issue with localization. Application I'm currently developing supports six different languages (with en-US being fallback and default language):

  • en-US
  • pl-PL
  • it-IT
  • nl-NL
  • de-DE
  • fr-FR

I'm using this platform specific method (android one in this case) to get list of all specific culture infos supported by the application:

  List<CultureInfo> supportedCultures = new List<CultureInfo>();
  ResourceManager resourceManager = new ResourceManager(typeof(AppSpedResources));
  CultureInfo[] cultureInfos = CultureInfo.GetCultures(CultureTypes.SpecificCultures);
  ResourceSet cultureSet = null;
  CultureInfo currentCulture = null;

  for (int i = 0; i < cultureInfos.Count(); i++)
  {
    currentCulture = cultureInfos[i];
    cultureSet = resourceManager.GetResourceSet(currentCulture, true, false);
    if (cultureSet != null && !currentCulture.Name.Equals(string.Empty))
      supportedCultures.Add(currentCulture);
  }

  return supportedCultures;

After that I'm displaying list of all languages in the picker and let user change them at the runtime. The problem is that this solution works correctly only in the debug mode. I'm getting list of all culture info objects that application has support for in RESX files. In release mode I'm only getting two languages (de-DE and en-US). Setting language explicitly to (it-IT for example) will result in default fallback language which is en-US. It looks like release apk doesn't have correct RESX files. Anyone has idea what could cause this?

Sign In or Register to comment.