none
Tradução de texto na Master Page - Sharepoint 2010 RRS feed

  • Pergunta

  • Tenho um site desenvolvido em Sharepoint 2010,

    onde na Master Page coloquei um link "Termo de uso" com URL para outra página,

    este texto "Termo de uso" deve traduzir para o idioma de acordo com a flag/bandeirinha clicada.

    Criei um javascript que recebe o LCID de acordo com a bandeirinha clicada, e traduz o texto.

    O problema é que traduz antes de dar o refresh/load na página, e após refresh some o texto "Termo de uso".

    Preciso de uma forma de colocar o texto traduzido, ou o LCID recebido em uma session, para que após o refresh da pagina mantenha o valor.

    *************************código*******************************************************

    <!--criar javascript para verif. LCID -->
    <script type="text/javascript">
        function translateLabel(LCID) {
        var text;
        if (LCID == 1046){
        text = "Termo de uso";
        }
        else if (LCID == 1033){
        text = "Terms of use";
        }
        else if (LCID == 3082){
        text = "Condiciones de Uso";
        }  
       
    var labe1 = document.getElementById('labe1');  
    labe1.innerHTML  = text;

    alert(text);

        }
        </script>

    <!--LINK na master para o Termo de uso-->
    <div class="style3" style="width: 110px">
    <table  border="0" cellpadding="2" cellspacing="0">
    <tr>
    <td>
    <a href="http://apolo-homologa:16528/PT/Paginas/Termo-Uso-Resp.aspx" style=" style="color: #676767"><label ID="labe1"></label></a>
    </td>
    </tr>
    </table>
    </div>

    <div class="it-s4-flags" style="width: 65px">
    <table border="0" cellpadding="2" cellspacing="0">
    <tr>
    <td>
    <a rel="PT|Paginas">
    <img alt="PT" src="http://www.integration.com.br/Style%20Library/Integration/Images/flag_br.png" onclick="translateLabel(1046);"/>
    </a>
    </td>
    <td>
    <a rel="EN|Pages">
    <img alt="EN" src="http://www.integration.com.br/Style%20Library/Integration/Images/flag_gb.png" onclick="translateLabel(1033);"/>
    </a>
    </td>
    <td>
    <a rel="ES|Paginas">
    <img alt="ES" src="http://www.integration.com.br/Style%20Library/Integration/Images/flag_es.png" onclick="translateLabel(3082);"/>
    </a>
    </td>
    </tr>
    </table>
    </div>

    *************************************************************************************************************************

    quinta-feira, 22 de novembro de 2012 15:13

Respostas

  • Emerson,

    Com o SharePoint 2010, você pode acessar objetos do SharePoint via Javascript.

    Ex.:

    function RetornarLCID()
    {
    var lcid = SP.Res.lcid
    alert(lcid);
    }

    RetornarLCID();
    function RetornarLCID()
    {
        var lcid = SP.Res.lcid
        alert(lcid);
    }
    
    RetornarLCID();

    function RetornarLCID()
    {
    var lcid = SP.Res.lcid
    alert(lcid);
    }

    RetornarLCID();

    Atenciosamente, Rafael Fausto

    quinta-feira, 22 de novembro de 2012 15:50

Todas as Respostas

  • Emerson,

    Com o SharePoint 2010, você pode acessar objetos do SharePoint via Javascript.

    Ex.:

    function RetornarLCID()
    {
    var lcid = SP.Res.lcid
    alert(lcid);
    }

    RetornarLCID();
    function RetornarLCID()
    {
        var lcid = SP.Res.lcid
        alert(lcid);
    }
    
    RetornarLCID();

    function RetornarLCID()
    {
    var lcid = SP.Res.lcid
    alert(lcid);
    }

    RetornarLCID();

    Atenciosamente, Rafael Fausto

    quinta-feira, 22 de novembro de 2012 15:50
  • Mesmo sendo na Master.aspx ? na Master é diferente, não tem nem code behind.

    a questão não é como pegar o LCID, quando eu clico na flag pra mudar o idioma eu passo por parametro pra minha função javascript um valor qualquer, e trato em um IF dentro do javascript pra alterar o texto na mão mesmo de acordo com o idioma selecionado.

    O problema é que muda o texto antes do onload do click da bandeirinha, e quando da o load na pagina do evento click (que altera todo o idioma da pagina), some o texto "Termo de uso" traduzido, pois perde a referencia do valor.

    Será que consigo fazer, utilizando session? ou tem alguma outra sugestão, pra que eu consiga trabalhar com a tradução de "Termo de uso" que fica na Master em 3 idiomas (PT, EN, e ES)?

    abs.

    quinta-feira, 22 de novembro de 2012 16:57
  • Ok deu certo para pegar o LCID, já não passo mais por parametro ele pega pela propriedade do Sharepoint mesmo com a função que vc me passou.

    mas a chamada da função 

    RetornarLCID() eu coloquei no OnClick() da bandeirinha,

    eis o problema pega o LCID da pagina atual, ex: da página em Português, antes de mudar pra página do idioma clicado. Tem outro lugar que consigo colocar a chamada da função? já no load da página, sem executar nenhum evento click de um botão?

    quinta-feira, 22 de novembro de 2012 17:18
  • Não entendi.

    Você quer usar somente um site para os 3 idiomas, fazendo a tradução automaticamente?

    Não está utilizando o recurso nativo?

    Referência: http://technet.microsoft.com/en-us/library/cc262055%28v=office.14%29.aspx


    Atenciosamente, Rafael Fausto

    quinta-feira, 22 de novembro de 2012 17:25
  • já consegui obrigado.

    Era só pra traduzir uma palavra "Termo de uso", que também era um link para a pagina termo de uso.

    usei sua dica pra pegar o LCID, e de acordo com o LCID passei a palavra "Termo de uso" no idioma correto, e escrevi usando innerHTML em uma Label.

    Obrigado.

    sexta-feira, 23 de novembro de 2012 18:32