2017-02-23 9 views
0

aus irgendeinem Grund (Übersetzung) Ich muss etwas vom Text im Skript ändern, so gibt es irgendeine Art von Option, das mit Javascript zu tun? also beispielsweise unten, wie ich den text "room type" ändern würde?Lenker Vorlage Quelle ändern

<script id="simple-template" type="text/x-handlebars-template">  
     <div class="row booking-detail-row"> 
      <div class="col-sm-3"><label><strong>Room Type</strong></label></div> 
      <div class="col-sm-9">{{roomTypeName}}</div> 
     </div> 
</script> 

Mit freundlichen Grüßen, Jure

Antwort

0

Übersetzungen richtig zu machen, werden Sie Ihre Vorlagen ändern, um den Beschriftungstext als Daten zu behandeln, anstatt gerade Text.

So Ihre Vorlage würde wie folgt aussehen (im Beispiel Ihnen zur Verfügung gestellten):

<script id="simple-template" type="text/x-handlebars-template">  
     <div class="row booking-detail-row"> 
      <div class="col-sm-3"><label><strong>{{roomTypeLabel}}</strong></label></div> 
      <div class="col-sm-9">{{roomTypeName}}</div> 
     </div> 
</script> 

Nun, würden Sie es in JavaScript müssen entweder Ihren Datenstrom aktualisieren oder abfangen, bevor Sie Vorlage anwenden. dies in JavaScript zu tun, hier ist ein funktionstüchtiges Beispiel dafür, wie man es erreichen könnte:

<html> 
 
<head> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.6/handlebars.min.js"></script> 
 
</head> 
 
<body> 
 

 
<div id="rooms"></div> 
 

 
<script id="simple-template" type="text/x-handlebars-template"> 
 
    <div class="row booking-detail-row"> 
 
     <div class="col-sm-3"><label><strong>{{roomTypeLabel}}</strong></label></div> 
 
     <div class="col-sm-9">{{roomTypeName}}</div> 
 
    </div> 
 
</script> 
 

 
<script> 
 
    function translate(prop, lang) { 
 
     switch(prop) { 
 
      case 'roomType': 
 
       return (lang === 'en') ? 'Room Type' : 'Type de chambre'; 
 
       break; 
 
      default: 
 
       return (lang === 'en') ? 'Unknown' : 'Inconnu'; 
 
     } 
 
    } 
 

 
    function addRoomType(roomTypeData, template, lang) { 
 
     roomTypeData.roomTypeLabel = translate('roomType', lang); 
 
     document.getElementById('rooms').innerHTML = template(roomTypeData); 
 
    } 
 

 
    $(function() { 
 
     var data = { roomTypeName: 'Kitchen' }; 
 
     var source = $("#simple-template").html(); 
 
     var template = Handlebars.compile(source); 
 
     addRoomType(data, template, 'fr'); 
 
    }); 
 
</script> 
 
</body> 
 
</html>

+0

Dank für dieses Beispiel, aber was ich brauche, ist diese Vorlage durch JS zu ändern, wenn dies überhaupt möglich ist. Leider habe ich keinen Zugriff auf die Vorlage. Wir verwenden eine vorhandene Software, bei der auf einigen Seiten einige Übersetzungen erforderlich sind. Updates dieser Software sind jährlich und kontaktieren Sie das Entwicklerteam, um es zu ändern, ist keine Option. Also brauche ich ein bisschen Hacking, um etwas zu tun, um es zu übersetzen :) Ist das überhaupt möglich? –

Verwandte Themen