This week I had to install the UR21 on an old CRM 4.0 environment.
I think it is very annoying to update every language pack for multiple CRM instances.
And it gets even worse when you have to reprovision every language pack on like 10 different instances. Sure you could develop a tool that could do it for you, but it not worth as soon the customer will switch to CRM 2013.
Finally, all languages were reprovisioned for each instance. But guess what happened now.
All the user's language settings had been put back to the default language of the CRM instance.
Now this will **** my customer off. Especially if you have some from a Western Europe country ;)
Anyway, I had to find a quick and unsupported way to resolve this mess.
Evoilá this is the script that made my day:
UPDATE [ORGANIZATION_MSCRM].[dbo].[UserSettingsBase]
SET
[UILanguageId] = 1053
,[HelpLanguageId] = 1053
WHERE [UILanguageId] = 1033
GO
Open a CMD line and enter: IISRESET
That's it.
If would be nice if someone could explain to me the necessity to do an IISRESET. I guess CRM at some point caches the user Settings. But via object model or the personal settings page in CRM the OK button somehow triggers something that refreshes or invalidates the old settings.
Without the IISRESET the personal settings page's language drow down will show the updated language setting but the UI is actually not updated and still display the English language labels.
WHERE clause will only make update to user settings that had been put back to the default language through reprovisioning, in this case it was English.
Backdraw, even if someone intentionally set his language settings to English will now be forced to use the language that is mainly used in his instance. But in this case it is acceptable for the customer.
I think it is very annoying to update every language pack for multiple CRM instances.
And it gets even worse when you have to reprovision every language pack on like 10 different instances. Sure you could develop a tool that could do it for you, but it not worth as soon the customer will switch to CRM 2013.
Finally, all languages were reprovisioned for each instance. But guess what happened now.
All the user's language settings had been put back to the default language of the CRM instance.
Now this will **** my customer off. Especially if you have some from a Western Europe country ;)
Anyway, I had to find a quick and unsupported way to resolve this mess.
Evoilá this is the script that made my day:
UPDATE [ORGANIZATION_MSCRM].[dbo].[UserSettingsBase]
SET
[UILanguageId] = 1053
,[HelpLanguageId] = 1053
WHERE [UILanguageId] = 1033
GO
Open a CMD line and enter: IISRESET
That's it.
If would be nice if someone could explain to me the necessity to do an IISRESET. I guess CRM at some point caches the user Settings. But via object model or the personal settings page in CRM the OK button somehow triggers something that refreshes or invalidates the old settings.
Without the IISRESET the personal settings page's language drow down will show the updated language setting but the UI is actually not updated and still display the English language labels.
WHERE clause will only make update to user settings that had been put back to the default language through reprovisioning, in this case it was English.
Backdraw, even if someone intentionally set his language settings to English will now be forced to use the language that is mainly used in his instance. But in this case it is acceptable for the customer.
Comments
Post a Comment