2014-10-03 5 views
0

불법 예기치 않은 토큰catch되지 않은 구문 에러 : 나는 5.2</p> <p>내가하는 Liferay이 메시지의 코드가 속도 lnaguage</p> <p>이에</p> <p>을의 현재 언어와 관련된 동일한 메시지를 표시 할을 Liferay 작업

<div id="navigation" class="sort-pages modify-pages"> 
    <ul> 
     #foreach ($nav_item in $nav_items) 

      #if (($nav_item.getTitle() == 'register_correspondence')) 
        #if ($nav_item.hasChildren()) 
         #foreach ($nav_child in $nav_item.getChildren()) 
          <li > 
          <a href="$nav_child.getURL()" $nav_child.getTarget()> 
           <span >$nav_child.getName()</span> 
          </a> 
          </li> 
         #end 
        #end 

      #end 

      #if (($nav_item.getTitle() == 'reports'))  
       #if ($nav_item.isSelected()) 
       #set ($nav_item_class = "selected") 
      #else 
       #set ($nav_item_class = "") 
      #end 

      <li> 

       #if (($nav_item.getTitle() == 'logout')) 
        <a href="$sign_out_url" $nav_item.getTarget()> 
         <span class="$nav_item.getTitle()">$nav_item.getName()</span> 
        </a> 
       #else 
        <a href="$nav_item.getURL()" $nav_item.getTarget()> 
         <span class="$nav_item.getTitle()">$nav_item.getName()</span> 
        </a> 
       #end 

       #if ($nav_item.hasChildren()) 
        <ul class="child-menu"> 
         #foreach ($nav_child in $nav_item.getChildren()) 
          #if ($nav_child.isSelected()) 
           #set ($nav_child_class = "selected") 
          #else 
           #set ($nav_child_class = "") 
          #end 

          <li class="$nav_child_class"> 
           <a href="$nav_child.getURL()" $nav_child.getTarget()>$nav_child.getName()</a> 
          </li> 
         #end 
        </ul> 

       #end 

      </li>#end 
      #end 
      #if ($show_sign_out) 
      <li class="$nav_child_class"> 
       <A HREF="$sign_out_url" onCLick="return confirm(' Are you sure you want to log out ')"> <font color="FF0000"> 
       Logout 
       </font> 
       </A> 
      </li> 

     #end 
    </ul> 
</div> 

내 메시지는이 발리에있는 소스 코드를 navigation.vm는

<li class="$nav_child_class"> 
       <A HREF="$sign_out_url" onCLick="return confirm(' Are you sure you want to log out ')"> <font color="FF0000"> 
       Logout 
       </font> 
       </A> 
      </li> 

나는 언어가 메시지를이 코드로 succes에없이 시도 프랑스

에 표시됩니다 프랑스어 때하는 Liferay

의미의 현재 언어에 ralated이 메시지를 displya 할 :

<div id="navigation" class="sort-pages modify-pages"> 
    <ul> 
     #foreach ($nav_item in $nav_items) 

      #if (($nav_item.getTitle() == 'register_correspondence')) 
        #if ($nav_item.hasChildren()) 
         #foreach ($nav_child in $nav_item.getChildren()) 
          <li > 
          <a href="$nav_child.getURL()" $nav_child.getTarget()> 
           <span >$nav_child.getName()</span> 
          </a> 
          </li> 
         #end 
        #end 

      #end 

      #if (($nav_item.getTitle() == 'reports'))  
       #if ($nav_item.isSelected()) 
       #set ($nav_item_class = "selected") 
      #else 
       #set ($nav_item_class = "") 
      #end 

      <li> 

       #if (($nav_item.getTitle() == 'logout')) 
        <a href="$sign_out_url" $nav_item.getTarget()> 
         <span class="$nav_item.getTitle()">$nav_item.getName()</span> 
        </a> 
       #else 
        <a href="$nav_item.getURL()" $nav_item.getTarget()> 
         <span class="$nav_item.getTitle()">$nav_item.getName()</span> 
        </a> 
       #end 

       #if ($nav_item.hasChildren()) 
        <ul class="child-menu"> 
         #foreach ($nav_child in $nav_item.getChildren()) 
          #if ($nav_child.isSelected()) 
           #set ($nav_child_class = "selected") 
          #else 
           #set ($nav_child_class = "") 
          #end 

          <li class="$nav_child_class"> 
           <a href="$nav_child.getURL()" $nav_child.getTarget()>$nav_child.getName()</a> 
          </li> 
         #end 
        </ul> 

       #end 

      </li>#end 
      #end 
      #if ($show_sign_out) 

    <script type="text/javascript"> 

     var varlang = "$themeDisplay.getLocale()"; 

     if(varlang == 'en_US') { 

     document.write('<li class="$nav_child_class"> 
       <A HREF="$sign_out_url" onCLick="return confirm(' Are you sure you want to log out ')"> <font color="FF0000"> 
       Logout 
       </font> 
       </A> 
      </li>'); 

     } 
     else 
     { 

     document.write('<li class="$nav_child_class"> 
       <A HREF="$sign_out_url" onCLick="return confirm(' Etes-vous sûr que vous voulez vous déconnecter ')"> <font color="FF0000"> 
       Déconnexion 
       </font> 
       </A> 
      </li>'); 

     } 

     </script> 


     #end 
    </ul> 
</div> 

나는이 줄을 추가하는 javascript 코드로 나의 테스트를 만든다. var varlang = "$ themeDisplay.getLocale()";

하지만 테스트 할 때이 오류가 : 만이 섹션의 코드를 변경

Uncaught SyntaxError: Unexpected token ILLEGAL 

의 #if ($의 show_sign_out)

+0

무엇'$ themeDisplay.getLocale()'확장 않습니다 같은 뭔가를해야만 할 것이다? –

+0

이 문제에 대해 동일한 응답으로이 종류의 코드를 찾습니다. – franco

답변

0

귀하의 오류가 자바 스크립트 오류가 스크립트 태그 안에.

이 두 가지 이유

document.write('<li class="$nav_child_class"> 
     <A HREF="$sign_out_url" onCLick="return confirm(' Are you sure you want to log out ')"> <font color="FF0000"> 
     Logout 
     </font> 
     </A> 
    </li>'); 

유효하지 않습니다.

문제 번호 하나는 문자열이 여러 줄을 넘을 수 없다는 것입니다.

두 번째 문제는 작은 따옴표로 시작한 문자열에 작은 따옴표가있는 경우 내부 작은 따옴표를 이스케이프 처리해야한다는 것입니다.

당신은

document.write('<li class="$nav_child_class"><A HREF="$sign_out_url" onCLick="return confirm(\' Are you sure you want to log out \')"> <font color="FF0000">Logout</font></A></li>'); 

또는로 다시 작성해야 적어도

document.write('<li class="$nav_child_class">' + 
     '<A HREF="$sign_out_url" onCLick="return confirm(\' Are you sure you want to log out \')"> <font color="FF0000">' + 
     'Logout' + 
     '</font>' + 
     '</A>' + 
    '</li>'); 

그러나 같은 이유는 스크립트 태그와 함께 할 수 있습니까?

차라리으로

#if ($show_sign_out) 

    #if ($themeDisplay.getLocale() == "en_US") 
     #set($logoutLabel = "Logout") 
     #set($logoutConfirm = "Are you sure you want to log out") 
    #else 
     #set($logoutLabel = "Déconnexion") 
     #set($logoutConfirm = "Etes-vous sur que vous voulez vous déconnecter") 
    #end  

    <li class="$nav_child_class"> 
     <A HREF="$sign_out_url" onCLick="return confirm('$logoutConfirm')"> <font color="FF0000"> 
      $logoutLabel 
     </font></A> 
    </li> 

#end