Como posso usar o idioma atual como variável na minha masterpage?
-
10-12-2019 - |
Pergunta
Sou um web designer que trabalha com SharePoint 2013.Criei um modelo personalizado para uma empresa e agora quero ir além com os recursos de variações.O site deverá estar disponível em alemão e em inglês.
No rodapé da página mestra, coloquei alguns links codificados como este:
<a href="/Authenticate.aspx">Login</a>
<a href="/imprint">Imprint</a>
<a href="/disclaimer">Disclaimer</a>
E quero que eles reconstruam dinamicamente meu site de variações como este para o idioma alemão:
<a href="/de/...">Login</a>
<a href="/de/...">Imprint</a>
<a href="/de/...">Disclaimer</a>
ou isto para inglês:
<a href="/en/...">Login</a>
<a href="/en/...">Imprint</a>
<a href="/en/...">Disclaimer</a>
Existe uma variável que eu possa colocar na frente dos links da minha página mestra?Ou um método para obter o idioma atual?
Eu estava pensando em algo assim:
<a href="{Locale}/login">...</a>
<a href="$language/imprint...">...</a>
<a href="getLanguage()/disclaimer">...</a>
Não sou um programador ASP.NET, então não sei como descobrir a linguagem.Eu apreciaria se alguém pudesse me ajudar.
Solução 2
Resolvi o problema com outro método:Usei a variável Javascript do próprio SharePoint - _spPageContextInfo - ver: _spPageContextInfo é seu novo melhor amigo !
Com "CulturaAtualNome" Eu poderia usar o nome do idioma como uma variável para comparar com o idioma de destino e para expandir meu PageLayout com links personalizados, em conformidade com minhas configurações de variações.
O Código poderia ficar assim:
$(document).ready(function() {
$language = _spPageContextInfo.currentCultureName;
// If it's german, I'll get german links
if ($language == "de-DE") {
$('.footer').html('<a href="/de/kontakt/">Kontakt</a>');
} else {
// And if not, it will target to the english page
$('.footer').html('<a href="/en/contact">Contact</a>');
}
});
Outras dicas
Você poderia usar o SPWeb.Locale propriedade do contexto atual (como em SPContext.Current.Web.Locale
) para obter essas informações.
Se você olhar a seção Comentários do Aula CultureInfo descrição no MSDN explicará isso.
Um exemplo simples seria:
<a href="/<%= SPContext.Current.Web.Locale.TwoLetterISOLanguageName %>/Login.aspx">...</a>