Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

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".

share|improve this question
    
what is your current patch level on your farm? Get-SPFarm | select buildversion or CA > System Settings > Servers In farm –  Anders Rask Oct 20 '11 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. –  George Durzi Oct 20 '11 at 12:10
add comment

4 Answers 4

up vote 2 down vote accepted

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.

share|improve this answer
    
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 '11 at 13:47
add comment

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.

share|improve this answer
    
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 –  George Durzi Oct 18 '11 at 22:19
add comment

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.

share|improve this answer
    
Any references to being unable to find it in the ULS logs on the server? –  James Love Oct 19 '11 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. –  George Durzi Oct 19 '11 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. –  George Durzi Oct 19 '11 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. –  George Durzi Oct 19 '11 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) –  George Durzi Oct 19 '11 at 21:20
show 1 more comment

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.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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