Why can't you render localized strings right in a view? smth like:
<script>
var home = '@SomeResource.SomeStringValue'
</script>
or even include js file depending on client language?
E.g. You have some resource file named LocalizedStrings.resx
with default language. For different languages you have files named LocalizedStrings.en-US.resx
, LocalizedStrings.kk-KZ.resx
etc...
In a view you do following:
@Html.RenderPartial('MyLocalizedView')
and MyLocalizedView
itself looks like:
<script>
var home = '@LocalizedStrings.Home';
var street = '@LocalizedStrings.Street';
var wtf = '@LocalizedStrings.Wtf';
...
</script>
So when the main view is rendered you already have all js variables initialized with proper localized values. Of course you need to make sure your current culture is set to proper value, like:
var culture = CultureInfo.GetCultureInfo("ru-RU");
CultureInfo.DefaultThreadCurrentCulture = culture;
CultureInfo.DefaultThreadCurrentUICulture = culture;
I don't know how you control it, I'd do it in global.asax
depending on domain extension