2017-05-06 5 views
0

Ich verwende die Foundry template auf Squarespace und ich muss das Datumsformat auf Post-Seiten von Englisch nach Portugiesisch ändern. Statt "6. Mai" brauche ich "6 Mai". In Brasilien verwenden wir das Muster TT/MM/JJJJ. In diesem Fall möchte ich nur den Tag und Monat, und auch übersetzen alle Monate (bis: Jan, Fev, Mär, Abr, Mai, Juni, Jul, Ago, Set, Out, Nov, Dez).Ändern Datumsformat auf einer Vorlage

Ich habe schon Leute gesehen, die das für andere Sprachen lösen. Aber nicht auf Portugiesisch oder auf der Foundry-Vorlage. Es ist möglich, eine Code-Injektion auf Squarespace, auf Kopf oder Fuß, vorzunehmen. Ich brauche nur ein Javascript, das das das Standarddatumsformat des Themas überschreiben kann.

Antwort

1

Ich würde es über das folgende Javascript, über Code-Injection eingefügt nähern. Beachten Sie, dass obwohl einige der Monatsabkürzungen identisch sind, ich sie zur besseren Übersicht hinzugefügt habe, damit sie für andere wiederverwendbar sind. Außerdem sind die Abkürzungen, die ich für die Schlüssel verwendet habe (das heißt, die ursprünglichen Monatsabkürzungen), möglicherweise nicht das, was Squarespace tatsächlich verwendet, daher müssen sie möglicherweise aktualisiert werden.

<script> 
    (function() { 
     var dates = document.getElementsByClassName("dt-published date-highlight"); 
     var newDate; 
     var i,I; 
     // Create object with 'source' keys on the left, and 'output' values on the right. 
     var months = { 
      "Jan":"Jan", 
      "Feb":"Fev", 
      "Mar":"Mar", 
      "Apr":"Abr", 
      "May":"Mai", 
      "Jun":"Jun", 
      "Jul":"Jul", 
      "Aug":"Ago", 
      "Sep":"Set", 
      "Oct":"Out", 
      "Nov":"Nov", 
      "Dec":"Dez" 
     }; 
     // Loop through all dates, replacing months and reordering display. 
     // - Trim extra white space from beginning and end of date. 
     // - Replace multiple consecutive spaces with a single space. 
     // - Split by space into an array. 
     // - Replace month text based on 'months' object key:value pairs. 
     // - Convert array to string, rearranging display order of elements. 
     // - Set new date HTML. 
     for (i=0, I=dates.length; i<I; i++) { 
      newDate = dates[i].innerHTML.trim(); 
      newDate = newDate = newDate.replace(/ +/g, ' '); 
      newDate = newDate.split(" "); 
      newDate[0] = months[newDate[0]]; 
      newDate = newDate[1] + " " + newDate[0]; 
      dates[i].innerHTML = newDate; 
     } 
    })(); 
</script> 
+1

Hallo Brandon, der Code funktionierte gut. Danke für Ihre Hilfe und Klärung! Sie haben beim abschließenden