Uma linguagem não padrão está sendo utilizada no Sitecore e estourando exceções. O que fazer?

Recentemente eu estive envolvido em um projeto de Sitecore, no qual na implementação do projeto foi definida uma linguagem não padrão, no caminho /system/languages. A linguagem era “es-BR”(o idioma padrão para português do Brasil é pt-BR e não es-BR. Eu pessoalmente recomendo utiliizar sempre as linguagens padrões, porém se esse não for o seu caso continue lendo 😉 )

Quando o mecanismo de publiicação era disparado, o Sitecore estourava a seguinte exceção:

Message: Item cannot be renamed to ‘es-BR’ as it is not a valid language name.

Source: Sitecore.Kernel

   at Sitecore.Diagnostics.Assert.IsTrue(Boolean condition, String message)

   at System.EventHandler`1.Invoke(Object sender, TEventArgs e)

   at Sitecore.Data.Engines.EngineCommand`2.RaiseEvent[TArgs](EventHandler`1 handlers, Func`2 argsCreator)

   at Sitecore.Data.Engines.EngineCommand`2.RaiseExecuting(Boolean& cancelled)

   at Sitecore.Data.Engines.EngineCommand`2.CanExecute()

   at Sitecore.Data.Engines.EngineCommand`2.Execute()

   at Sitecore.Data.Engines.DataEngine.SaveItem(Item item)

   at Sitecore.Data.Managers.ItemProvider.SaveItem(Item item)

   at Sitecore.Data.Items.ItemEditing.AcceptChanges(Boolean updateStatistics, Boolean silent)

   at Sitecore.Data.Items.ItemEditing.EndEdit(Boolean updateStatistics, Boolean silent)

   at Sitecore.Data.Items.EditContext.Dispose()

   at Sitecore.Publishing.PublishHelper.CopyToTarget(Item sourceVersion)

   at Sitecore.Publishing.PublishHelper.PublishVersionToTarget(Item sourceVersion, Item targetItem, Boolean targetCreated)

   at Sitecore.Publishing.Pipelines.PublishItem.PerformAction.ExecuteAction(PublishItemContext context)

   at Sitecore.Publishing.Pipelines.PublishItem.PerformAction.Process(PublishItemContext context)

   at (Object , Object[] )

   at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)

   at Sitecore.Publishing.Pipelines.PublishItem.PublishItemPipeline.Run(PublishItemContext context)

   at Sitecore.Support.Publishing.Pipelines.Publish.ProcessQueue.ProcessEntries(IEnumerable`1 entries, HashSet`1 publishedReferredItems, PublishContext context, Boolean processReferencedItems)

   at Sitecore.Support.Publishing.Pipelines.Publish.ProcessQueue.ProcessEntries(IEnumerable`1 entries, HashSet`1 publishedReferredItems, PublishContext context, Boolean processReferencedItems)

   at Sitecore.Support.Publishing.Pipelines.Publish.ProcessQueue.ProcessEntries(IEnumerable`1 entries, HashSet`1 publishedReferredItems, PublishContext context, Boolean processReferencedItems)

   at Sitecore.Support.Publishing.Pipelines.Publish.ProcessQueue.ProcessEntries(IEnumerable`1 entries, HashSet`1 publishedReferredItems, PublishContext context, Boolean processReferencedItems)

   at Sitecore.Support.Publishing.Pipelines.Publish.ProcessQueue.Process(PublishContext context)

Interessante que o mesmo erro estourava quando se tentava deletar o item da arvore de conteúdo, e estava se tornando um problema para os editores de conteúdo. Enquanto eu investigava o problema eu notei que a linguagem não aparecia no item “Globalization” do painel de controle do Sitecore, mas aparecia na árvore de contúdo.

O que eu tive que fazer para resolver este problema foi registrar a linguagem no Windows. Para fazer isso voce pode utilizar a ferramenta Language Registration, disponível  na marketplace da Sitecore. Após registrar este idioma eu tive que adicionar a entrada do idioma no arquivo App_Config\LanguageDefinitions.config:

<language id=”es” region=”BR” codepage=”65001″ encoding=”utf-8″ charset=”iso-8859-1″ icon=”flags/16×16/flag_Brazil.PNG” />

A partir dai foi possível excluir o idioma sem problemas.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s