In my app I have a simple test variable assignment that illustrates what is not working. var text = session.localizer.gettext(locale, "list_or"); The variable text in this case gets assigned "list_or" instead of properly getting the "en" localized string " or ".
I have dug in the code a bit and traced the problem to casing of the "BotBuilder" namespace, mainly that when the locale is loaded the namespace is set to "BotBuilder" based on the name and casing of the file, but when the localization occurs the namespace being passed in to get the text is being lowercased (DefaultLocalizer.js line 67) and thus doesn't match what was loaded into the locale. The end result of this is all of prompts that have localized strings are not resolving
I also experienced this issue. Renaming BotBuilder.json to botbuilder.json seemed to work.
yes that is a useful workaround, but it doesn't solve the underlying problem that one side of the code treats namespaces as "cased" while another assumes lowercase
Yeah. This works great on a case insensitive OS, but obviously causing problems on Linux. My builds cleanly install node_modules on every deploy, so I can't just rename the file. This needs to get fixed soon!
@Stevenic, can you please share your insight?
That's a good catch... let me push a patch...
Could you try v3.4.4 and let me know if that resolves the issue. I think the difference actually has to do with parsed filename we get back is different on Windows versus other platforms. I'm now always lowercasing that name to make sure we have a stable lookup key
@Stevenic That works for me! Thanks.
Great! Closing this issue...
@Stevenic Is this change checked in?
yes
Most helpful comment
That's a good catch... let me push a patch...