我在Squarespace上使用Foundry template,我需要将帖子页面上的日期格式从英语更改为葡萄牙语。而不是" 5月6日"我需要" 6 Mai"。在巴西,我们使用dd / mm / yyyy模式。在这种情况下,我只想要日期和月份,并翻译所有月份(到:Jan,Fev,Mar,Abr,Mai,Jun,Jul,Ago,Set,Out,Nov,Dez)。
我已经看到有人在那里为其他语言解决这个问题。但不是葡萄牙语或Foundry模板。可以在Squarespace,head或footer上进行代码注入。我只需要一个能够做到这一点的Javascript,覆盖主题的默认日期格式。
答案 0 :(得分:1)
我会通过以下Javascript来处理它,通过代码注入插入。请注意,虽然一些月份缩写是相同的,但为了清晰起见,我将它们包括在内,以便它可能更容易被其他人重复使用。此外,我用于键的缩写(即原始月份缩写)可能不是Squarespace实际使用的缩写,因此可能需要更新。
<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>