Reflections on the use of Language Pack Resources

Well as you probably gathered from my last post, it was fun using those language pack resources to provide my custom footer labels with multiple language text. It does beg the question what other resources are available in those language packs. It isn't documented anywhere I can find.

After a bit of a dig around, I found a definition of the resources could be found in the MOSS Language Packs. I downloaded the 1033 English Language Pack, as English is a language I can work in!

After mounting the image, you're presented with several files and folders. SPS.en-us seemed like a likely folder name to contain Sharepoint resources, so I went in there and opened spsmui.cab. I hit pay dirt straight away!

Sure enough, in there are several likely looking files; Cms.rsx_1033, Cmsadmin.rsx_1033, Cmscore.rsx_1033, Spscore.rsx_1033. Cms and Cmsadmin seemed to correspond to the Resources:cms and Resources:cmsadmin values I've been seeing in Sharepoint pages. In Cms.rsx_1033 I found the pagesettings_modifieddate_label string I had used to get my label strings earlier. There might be a few other candidates for your control labels in here, but I think there'll be slim pickings.

These resources were put in by the Sharepoint developers, and aren't really meant for your custom development.

The risks are that;

1. The context of the word isn't what you think, and when translated the label no longer communicates what you want.

2. An update to the language packs change the reference or the word you're using.

Another real world problem is that apart from very standard text such as 'Last Modified By' you're very unlikely to find anything you want.

At the risk of repeating myself; This stuff wasn't put together for custom development to use.

So, I don't see myself using that approach for my custom controls much in the future. (But that hack was fun!)

Random thought - since the resources are coded in plain text, you could potentially hack you MOSS Language Packs before install to change wording, or add resources. I don't recommend this at all though!! MOSS can be difficult to fix once broken!

Update; As you probably gathered I still have that boyish tendency to get into things to see how they work. However Microsoft have provided a decent solution for creating your own language resources, without hacking anything. Please see http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.utilities.sputility.getlocalizedstring.aspx for more details.

Disclaimer: The software, source code and guidance on this website is provided "AS IS"
with no warranties of any kind. The entire risk arising out of the use or
performance of the software and source code is with you.

Any views expressed in this blog are those of the individual and may not necessarily reflect the views of any organization the individual may be affiliated with.