2

I'm building a publishing site which will support the following cultures:

  • de-DE (1031)
  • en-US (1033)
  • es-ES (3082)
  • fr-FR (1036)
  • it-IT (1040)
  • ja-JP (1041)
  • ru-RU (1049)
  • zh-CHS (2052)

I can create an instance of every site definition except for the es-ES one.

Here's some more useful background:

  • I have a general publishing content type

  • I have a web-scoped content type binding feature that binds the general content type to the Pages library for the web

    <ContentTypeBinding ListUrl="$Resources:cmscore,List_Pages_UrlName;" ContentTypeId="MyPublishingContentTypeId"/>
    
  • The site definition activates a web scoped feature that activates the content type binding on the web

The error happens when the site definition is activating the content type binding feature:

The element of type 'ContentTypeBinding' for feature 'Lists_WebFeatures' (id: 605fbe29-b242-4d08-abcb-20b8f0300796) threw an exception during activation: List '/es/Pages' does not exist at site with URL 'http://localhost/es'.

The error makes sense, because the correct name for the Pages library in es-ES is Paginas. However, I don't have "Pages" hard-coded anywhere - you can see how I'm using $Resources:cmscore,List_Pages_UrlName; in the content type binding feature.

For reference, here is the log entry when the de-DE site definition activates the content type binding feature:

Successfully applied ContentType 'MyPublishingContentTypeId' to list 'Seiten' on web 'http://localhost/de'

It correctly applies to Seiten, which is the Pages library in the de-DE culture.

Any thoughts on why this breaks only for the es-ES site definition?

Thanks

EDIT: Adding a code snippet to show how I'm activating the web-scoped features in onet.xml

<WebFeatures>
    <!-- Activate SharePoint Publishing features -->

    <!-- Activate my custom features -->
    <Feature ID="605fbe29-b242-4d08-abcb-20b8f0300796" />  <!-- Lists - Web Features --> 
    <Feature ID="45f1d638-d9d9-46fb-93d5-b81b09eb2123" />  <!-- Publishing Content - Web Features --> 
</WebFeatures>

The content type bindings are in "Lists - Web Features".

2
  • what is your current patch level on your farm? Get-SPFarm | select buildversion or CA > System Settings > Servers In farm Oct 20, 2011 at 8:51
  • Anders, it's SP1, so 14.0.6029.1000. Now that I know what the underlying issue is (mistake in the cmscore.es-ES.resx file), I'll take a look at the June and August CUs to see if they address this. Oct 20, 2011 at 12:10

4 Answers 4

2

This has been quite a wild goose chase!

There definitely was a mistake in cmscore.es-ES.resx, however, it's fixed in the service pack for the language pack: http://www.microsoft.com/download/en/details.aspx?id=26621

I had no idea that a service pack was available for the language packs; it makes sense because SP1 and the CUs didn't address any language-specific bugs.

1
  • This does not seem to be fixed in the latest service pack as far as I can tell. See my answer for a solution.
    – SPDoctor
    Nov 11, 2011 at 13:47
1

how are you activating the content type binding from your site definition?

If you are using feature stapling you risk race conditions if you a) provision modules or list instances from onet.xml b) have other stapled features on same scope that provisions artifacts used by the feature.

The provisioning order of site definitions are a) site scoped features (in SP2010 only triggered on root site templates) in sequential order (as mentioned in onet.xml), b) site scoped stapled features in random order, c) web scoped features in sequential order, d) web scoped stapled features in random order.

1
  • Hi Anders, I'm not using feature stapling. I list out the web scoped features in the <WebFeatures> element of each Configuration in the site definition. I'll modify my answer to add a code snippet. Thanks Oct 18, 2011 at 22:19
1

Double check to make sure cmscore.es-ES.resx file actually exists in the Resources (or App_GlobalResources, I can't remember which of the two cmscore exists in).

This kind of thing happens when it can't find the resource file for the target locale so falls back to the operating system language (English).

If it's not there, reinstall the language pack for Spanish.

6
  • Any references to being unable to find it in the ULS logs on the server?
    – James Love
    Oct 19, 2011 at 14:58
  • James, cmscore.es-ES.resx was in Resources, but I re-installed the Spanish language pack anyway. I still get the same error. I'll check my site definition again, no good reason for this not to be working. Oct 19, 2011 at 15:05
  • You can see the entries in the log where it's referencing the resource, creating the "Paginas" library, and associating the "Pagina" content type with it. I'll check out the out of the box content type binding feature in Publishing and see if there's any difference. Thanks. Oct 19, 2011 at 15:14
  • I've been building a new development VM over the last couple of days. I get the same error in the new environment. So it's gotta be something with the code. I'll keep chasing this down and post an update when I hopefully have it figured out. Oct 19, 2011 at 17:51
  • I think there's a mistake in cmscore.es-ES.resx ... It has List_Pages_UrlName (the key I'm using) as Pages, and PagesListDisplayName as Paginas. However, if you browse to an es-ES site, the pages library is definitely called Paginas (and is at /Paginas) Oct 19, 2011 at 21:20
0

There is definitely an error in the resource file cmscore.es-ES.resx, using "Pages" instead of "Paginas" for List_Pages_UrlName. After applying the latest patches it still seems to be wrong.

Luckily there is another resource file osrvcore.es-ES.resx that also contains the List_Pages_UrlName value. A workaround seems to be to use osrvcore.es-ES.resx which contains the correct spanish translation. The resource string should be changed to "$Resources:osrvcore,List_Pages_UrlName;" and this should solve the problem.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.