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.

Foi útil?

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>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top