diff --git a/LICENSE b/LICENSE index 9ad5621..29e785e 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2013-2015 Miguel Freitas, Lucas Leal and twister project developers. +Copyright (c) 2013-2018 Miguel Freitas, Lucas Leal and twister project developers. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/js/interface_common.js b/js/interface_common.js index d2ea20c..0347659 100644 --- a/js/interface_common.js +++ b/js/interface_common.js @@ -19,6 +19,11 @@ var twister = { modal: {}, res: {}, // reses for various reqs are cached here var: { + dateFormatter: { + format: function (req) { + return req.toString().replace(/GMT.*/g, ''); + } + }, localAccounts: [], updatesCheckClient: {} } @@ -406,7 +411,26 @@ function timeGmtToText(t) { if (t == 0) return '-'; var d = new Date(0); d.setUTCSeconds(t); - return d.toString().replace(/GMT.*/g, ''); + return twister.var.dateFormatter.format(d); +} + +function setupTimeGmtToText(lang) { + if (typeof window.Intl !== 'object' || typeof window.Intl.DateTimeFormat !== 'function') + return; + + twister.var.dateFormatter = new Intl.DateTimeFormat( + knownLanguages.indexOf(lang) !== -1 ? lang : undefined, + { + hour12: false, + weekday: 'short', + year: 'numeric', + month: 'short', + day: 'numeric', + hour: 'numeric', + minute: 'numeric', + second: 'numeric' + } + ); } function timeSincePost(t) { @@ -2889,6 +2913,7 @@ function setTextcompleteDropdownListPos(position) { } $(document).ready(function () { + setupTimeGmtToText($.Options.locLang.val); if ($.localStorage.isSet('twistaURIs')) twister.URIs = $.localStorage.get('twistaURIs'); twister.html.blanka.appendTo('body').hide(); diff --git a/js/options.js b/js/options.js index 0eac0a1..f36c562 100644 --- a/js/options.js +++ b/js/options.js @@ -7,6 +7,12 @@ function twisterOptions() { if (elem.value !== 'auto') twisterRpc('setpreferredspamlang', [elem.value]); location.reload(); + /* + if (elem.value !== 'auto') { + setupTimeGmtToText(elem.value); + TODO redraw all timestamps + } + */ }, tickNotOnInit: 1 });