2014-10-03 2 views
0

Я работаю с Liferay 5,2Uncaught SyntaxError: Неожиданный токен НЕЗАКОННО

Я хочу, чтобы отобразить то же самое сообщение, связанное с текущим языком Liferay

код этого сообщения находится в скорости lnaguage

это исходный код navigation.vm

<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> 

мое сообщение в этой индуктора

<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> 

Я хочу displya этого сообщения ralated на текущем язык Liferay

смысла, когда язык является французским сообщение будет отображаться на французском

я стараюсь не Succes с этим кодом:

<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

Ваша ошибка Javascript ошибка внутри вашего тега скрипта.

Это не относится

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>'); 

по двум причинам.

Проблема номер один заключается в том, что строки не могут охватывать acros несколькими строками.

Вторая проблема заключается в том, что у вас есть одинарные кавычки внутри вашей строки, которые вы начали с одинарных кавычек, вы должны избегать внутренних одинарных кавычек.

Вы должны переписать его как

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>'); 

Но почему вы делаете это с тег сценария?

Я предпочел бы иметь Somthing как

#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 
Смежные вопросы