Globalização de arquivos *.sitemap


Em um dos treinamentos oficiais que ministro é abordado sobre globalização de aplicações. O capítulo foca nos tipos fornecidos pelo namespace System.Globalization, detalhando suas classes e como podemos utilizá-las para tornar o código independente de cultura.

Como o curso foca no .NET Framework e não na tecnologia, como ASP.NET ou Windows Forms, eu tento mostrar como isso funciona nas aplicações Web e Windows. Durante esse capítulo, uma pergunta que me foi feita é como efetuar a globalização de arquivos *.sitemap, que são utilizados pelos controles do ASP.NET para carregar Menus, Treeviews, etc.

Basicamente o que precisa ser feito é a criação do arquivo *.resx que representa a cultura, e lembrando que voce deve criar a quantidade necessária para todas as culturas suportadas pela aplicação. Neste caso, eu sugiro nomear os arquivos como: Sitemap.resx (default), Sitemap.en-US.resx, etc., e como eles serão utilizados por toda a aplicação, ficarão armazenados no diretório especial chamado App_GlobalResources. Dentro deste arquivo, como já é sabido, existe um dicionário (chave/valor). A chave identifica aquele valor unicamente dentro do arquivo, e será utilizada pela aplicação; já o valor é o variação para aquela cultura que o arquivo representa.

Depois de criado os arquivos *.resx, precisamos fazer com que o arquivo *.sitemap faça uso destas informações. Com isso, o atributo title do elemento siteMapNode não deve ter o título em hardcode, como acontece em aplicações não globalizadas. Ele utilizará um Expression Builder chamado $resources para dizer ao runtime do ASP.NET que esse valor será extraído de um arquivo de recurso. O que está em azul no exemplo abaixo reflete o nome do arquivo *.resx, enquanto o que está em vermelho é a chave.

<siteMapNode
    url=”~/AreaRestrita/Cadastros/Colaboradores/Default.aspx”
    title=”$resources:Sitemap, Colaboradores
    roles=”Cliente.Administrador” />

Anúncios

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s