Version Description
(February 2016) =
- Added: The GUI log now updates the relative "fuzzy" timestamps in real time. This means that if you keep the log opened, the relative date for each event, for example "2 minutes ago" or "2 hours ago", will always be up to date (hah!). Keep the log opened for 5 minutes and you will see that the event that previously said "2 minutes ago" now says "7 minutes ago". Fixes https://github.com/bonny/WordPress-Simple-History/issues/88 and is implemented using the great timeago jquery plugin.
- Added: Filter
simple_history/user_logger/plain_text_output_use_you
. Works the same way as thesimple_history/header_initiator_use_you
filter, but for the rich text part when a user has edited their profile. - Fixed: Logger slugs that contained for example backslashes (becuase they where namespaced) would not show up in the log. Now logger slugs are escaped. Fixes https://github.com/bonny/WordPress-Simple-History/issues/103.
- Changed: Actions and things that only is needed in admin area are now only called if
is_admin()
. Fixes https://github.com/bonny/WordPress-Simple-History/issues/105.
Download this release
Release Info
Developer | eskapism |
Plugin | Simple History |
Version | 2.5.2 |
Comparing to | |
See all releases |
Code changes from version 2.5.1 to 2.5.2
- inc/SimpleHistory.php +61 -19
- index.php +2 -2
- js/scripts.js +29 -0
- js/timeago/jquery.timeago.js +225 -0
- js/timeago/locales/jquery.timeago.af.js +20 -0
- js/timeago/locales/jquery.timeago.ar.js +96 -0
- js/timeago/locales/jquery.timeago.bg.js +18 -0
- js/timeago/locales/jquery.timeago.bs.js +49 -0
- js/timeago/locales/jquery.timeago.ca.js +18 -0
- js/timeago/locales/jquery.timeago.cs.js +24 -0
- js/timeago/locales/jquery.timeago.cy.js +20 -0
- js/timeago/locales/jquery.timeago.da.js +18 -0
- js/timeago/locales/jquery.timeago.de.js +18 -0
- js/timeago/locales/jquery.timeago.dv.js +22 -0
- js/timeago/locales/jquery.timeago.el.js +18 -0
- js/timeago/locales/jquery.timeago.en-short.js +20 -0
- js/timeago/locales/jquery.timeago.en.js +20 -0
- js/timeago/locales/jquery.timeago.es-short.js +20 -0
- js/timeago/locales/jquery.timeago.es.js +18 -0
- js/timeago/locales/jquery.timeago.et.js +18 -0
- js/timeago/locales/jquery.timeago.eu.js +17 -0
- js/timeago/locales/jquery.timeago.fa-short.js +20 -0
- js/timeago/locales/jquery.timeago.fa.js +22 -0
- js/timeago/locales/jquery.timeago.fi.js +28 -0
- js/timeago/locales/jquery.timeago.fr-short.js +16 -0
- js/timeago/locales/jquery.timeago.fr.js +17 -0
- js/timeago/locales/jquery.timeago.gl.js +18 -0
- js/timeago/locales/jquery.timeago.he.js +16 -0
- js/timeago/locales/jquery.timeago.hr.js +49 -0
- js/timeago/locales/jquery.timeago.hu.js +18 -0
- js/timeago/locales/jquery.timeago.hy.js +18 -0
- js/timeago/locales/jquery.timeago.id.js +18 -0
- js/timeago/locales/jquery.timeago.is.js +19 -0
- js/timeago/locales/jquery.timeago.it-short.js +20 -0
- js/timeago/locales/jquery.timeago.it.js +16 -0
- js/timeago/locales/jquery.timeago.ja.js +19 -0
- js/timeago/locales/jquery.timeago.jv.js +18 -0
- js/timeago/locales/jquery.timeago.ko.js +20 -0
- js/timeago/locales/jquery.timeago.ky.js +34 -0
- js/timeago/locales/jquery.timeago.lt.js +20 -0
- js/timeago/locales/jquery.timeago.lv.js +20 -0
- js/timeago/locales/jquery.timeago.mk.js +20 -0
- js/timeago/locales/jquery.timeago.nl.js +20 -0
- js/timeago/locales/jquery.timeago.no.js +18 -0
- js/timeago/locales/jquery.timeago.pl.js +31 -0
- js/timeago/locales/jquery.timeago.pt-br-short.js +20 -0
- js/timeago/locales/jquery.timeago.pt-br.js +18 -0
- js/timeago/locales/jquery.timeago.pt-short.js +20 -0
- js/timeago/locales/jquery.timeago.pt.js +16 -0
- js/timeago/locales/jquery.timeago.ro.js +18 -0
- js/timeago/locales/jquery.timeago.rs.js +49 -0
- js/timeago/locales/jquery.timeago.ru.js +34 -0
- js/timeago/locales/jquery.timeago.rw.js +20 -0
- js/timeago/locales/jquery.timeago.si.js +18 -0
- js/timeago/locales/jquery.timeago.sk.js +18 -0
- js/timeago/locales/jquery.timeago.sl.js +40 -0
- js/timeago/locales/jquery.timeago.sr.js +49 -0
- js/timeago/locales/jquery.timeago.sv.js +18 -0
- js/timeago/locales/jquery.timeago.th.js +20 -0
- js/timeago/locales/jquery.timeago.tr.js +16 -0
- js/timeago/locales/jquery.timeago.uk.js +34 -0
- js/timeago/locales/jquery.timeago.uz.js +19 -0
- js/timeago/locales/jquery.timeago.vi.js +20 -0
- js/timeago/locales/jquery.timeago.zh-CN.js +20 -0
- js/timeago/locales/jquery.timeago.zh-TW.js +20 -0
- loggers/SimpleUserLogger.php +3 -1
- readme.txt +10 -2
inc/SimpleHistory.php
CHANGED
@@ -68,6 +68,15 @@ class SimpleHistory {
|
|
68 |
|
69 |
function __construct() {
|
70 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
/**
|
72 |
* Fires before Simple History does it's init stuff
|
73 |
*
|
@@ -96,30 +105,17 @@ class SimpleHistory {
|
|
96 |
|
97 |
add_action( 'after_setup_theme', array( $this, 'setup_cron' ) );
|
98 |
|
99 |
-
add_action( 'admin_menu', array( $this, 'add_admin_pages' ) );
|
100 |
-
add_action( 'admin_menu', array( $this, 'add_settings' ) );
|
101 |
-
|
102 |
-
add_action( 'admin_footer', array( $this, "add_js_templates" ) );
|
103 |
-
|
104 |
-
add_action( 'wp_dashboard_setup', array( $this, 'add_dashboard_widget' ) );
|
105 |
-
|
106 |
-
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_scripts' ) );
|
107 |
-
|
108 |
-
add_action( 'admin_head', array( $this, "onAdminHead" ) );
|
109 |
-
add_action( 'admin_footer', array( $this, "onAdminFooter" ) );
|
110 |
-
|
111 |
// Filters and actions not called during regular boot
|
112 |
add_filter( "gettext", array( $this, 'filter_gettext' ), 20, 3 );
|
113 |
add_filter( "gettext_with_context", array( $this, 'filter_gettext_with_context' ), 20, 4 );
|
114 |
|
115 |
add_filter( 'gettext', array( $this, "filter_gettext_storeLatestTranslations" ), 10, 3 );
|
116 |
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
add_action( 'wp_ajax_simple_history_api', array( $this, 'api' ) );
|
121 |
|
122 |
-
|
123 |
|
124 |
/**
|
125 |
* Fires after Simple History has done it's init stuff
|
@@ -160,6 +156,32 @@ class SimpleHistory {
|
|
160 |
|
161 |
}
|
162 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
163 |
/**
|
164 |
* Get singleton intance
|
165 |
* @return SimpleHistory instance
|
@@ -1102,6 +1124,22 @@ class SimpleHistory {
|
|
1102 |
}
|
1103 |
}
|
1104 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1105 |
/**
|
1106 |
* Fires when the admin scripts have been enqueued.
|
1107 |
* Only fires on any of the pages where Simple History is used
|
@@ -1912,7 +1950,11 @@ Because Simple History was just recently installed, this feed does not contain m
|
|
1912 |
$table_name_contexts = $wpdb->prefix . SimpleHistory::DBTABLE_CONTEXTS;
|
1913 |
|
1914 |
// Get id of rows to delete
|
1915 |
-
$sql =
|
|
|
|
|
|
|
|
|
1916 |
|
1917 |
$ids_to_delete = $wpdb->get_col( $sql );
|
1918 |
|
@@ -2553,7 +2595,7 @@ Because Simple History was just recently installed, this feed does not contain m
|
|
2553 |
|
2554 |
$str_return .= sprintf(
|
2555 |
'"%1$s", ',
|
2556 |
-
$one_logger["instance"]->slug
|
2557 |
);
|
2558 |
|
2559 |
}
|
68 |
|
69 |
function __construct() {
|
70 |
|
71 |
+
$this->init();
|
72 |
+
|
73 |
+
} // construct
|
74 |
+
|
75 |
+
/**
|
76 |
+
* @since 2.5.2
|
77 |
+
*/
|
78 |
+
public function init() {
|
79 |
+
|
80 |
/**
|
81 |
* Fires before Simple History does it's init stuff
|
82 |
*
|
105 |
|
106 |
add_action( 'after_setup_theme', array( $this, 'setup_cron' ) );
|
107 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
108 |
// Filters and actions not called during regular boot
|
109 |
add_filter( "gettext", array( $this, 'filter_gettext' ), 20, 3 );
|
110 |
add_filter( "gettext_with_context", array( $this, 'filter_gettext_with_context' ), 20, 4 );
|
111 |
|
112 |
add_filter( 'gettext', array( $this, "filter_gettext_storeLatestTranslations" ), 10, 3 );
|
113 |
|
114 |
+
if ( is_admin() ) {
|
115 |
+
|
116 |
+
$this->add_admin_actions();
|
|
|
117 |
|
118 |
+
}
|
119 |
|
120 |
/**
|
121 |
* Fires after Simple History has done it's init stuff
|
156 |
|
157 |
}
|
158 |
|
159 |
+
/**
|
160 |
+
* @since 2.5.2
|
161 |
+
*/
|
162 |
+
private function add_admin_actions() {
|
163 |
+
|
164 |
+
add_action( 'admin_menu', array( $this, 'add_admin_pages' ) );
|
165 |
+
add_action( 'admin_menu', array( $this, 'add_settings' ) );
|
166 |
+
|
167 |
+
add_action( 'admin_footer', array( $this, "add_js_templates" ) );
|
168 |
+
|
169 |
+
add_action( 'wp_dashboard_setup', array( $this, 'add_dashboard_widget' ) );
|
170 |
+
|
171 |
+
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_scripts' ) );
|
172 |
+
|
173 |
+
add_action( 'admin_head', array( $this, "onAdminHead" ) );
|
174 |
+
add_action( 'admin_footer', array( $this, "onAdminFooter" ) );
|
175 |
+
|
176 |
+
add_action( 'simple_history/history_page/before_gui', array( $this, "output_quick_stats" ) );
|
177 |
+
add_action( 'simple_history/dashboard/before_gui', array( $this, "output_quick_stats" ) );
|
178 |
+
|
179 |
+
add_action( 'wp_ajax_simple_history_api', array( $this, 'api' ) );
|
180 |
+
|
181 |
+
add_filter( 'plugin_action_links_simple-history/index.php', array( $this, 'plugin_action_links' ), 10, 4 );
|
182 |
+
|
183 |
+
}
|
184 |
+
|
185 |
/**
|
186 |
* Get singleton intance
|
187 |
* @return SimpleHistory instance
|
1124 |
}
|
1125 |
}
|
1126 |
|
1127 |
+
// Add timeago.js
|
1128 |
+
wp_enqueue_script( 'timeago', SIMPLE_HISTORY_DIR_URL . 'js/timeago/jquery.timeago.js', array("jquery"), '1.5.2', true );
|
1129 |
+
|
1130 |
+
// Determine current locale to load timeago locale
|
1131 |
+
$locale = strtolower( substr( get_locale(), 0, 2 ) );
|
1132 |
+
$locale_url_path = SIMPLE_HISTORY_DIR_URL . 'js/timeago/locales/jquery.timeago.%s.js';
|
1133 |
+
$locale_dir_path = SIMPLE_HISTORY_PATH . 'js/timeago/locales/jquery.timeago.%s.js';
|
1134 |
+
|
1135 |
+
// Only enqueue if locale-file exists on file system
|
1136 |
+
if ( file_exists( sprintf( $locale_dir_path, $locale ) ) ) {
|
1137 |
+
wp_enqueue_script( 'timeago-locale', sprintf( $locale_url_path, $locale ), array("jquery"), '1.5.2', true );
|
1138 |
+
} else {
|
1139 |
+
wp_enqueue_script( 'timeago-locale', sprintf( $locale_url_path, "en" ), array("jquery"), '1.5.2', true );
|
1140 |
+
}
|
1141 |
+
// end add timeago
|
1142 |
+
|
1143 |
/**
|
1144 |
* Fires when the admin scripts have been enqueued.
|
1145 |
* Only fires on any of the pages where Simple History is used
|
1950 |
$table_name_contexts = $wpdb->prefix . SimpleHistory::DBTABLE_CONTEXTS;
|
1951 |
|
1952 |
// Get id of rows to delete
|
1953 |
+
$sql = $wpdb->prepare(
|
1954 |
+
"SELECT id FROM %s WHERE DATE_ADD(date, INTERVAL %d DAY) < now()",
|
1955 |
+
$table_name,
|
1956 |
+
$days
|
1957 |
+
);
|
1958 |
|
1959 |
$ids_to_delete = $wpdb->get_col( $sql );
|
1960 |
|
2595 |
|
2596 |
$str_return .= sprintf(
|
2597 |
'"%1$s", ',
|
2598 |
+
esc_sql( $one_logger["instance"]->slug )
|
2599 |
);
|
2600 |
|
2601 |
}
|
index.php
CHANGED
@@ -5,7 +5,7 @@ Plugin URI: http://simple-history.com
|
|
5 |
Text Domain: simple-history
|
6 |
Domain Path: /languages
|
7 |
Description: Plugin that logs various things that occur in WordPress and then presents those events in a very nice GUI.
|
8 |
-
Version: 2.5.
|
9 |
Author: Pär Thernström
|
10 |
Author URI: http://simple-history.com/
|
11 |
License: GPL2
|
@@ -42,7 +42,7 @@ if ( version_compare( phpversion(), "5.3", ">=") ) {
|
|
42 |
// register_activation_hook( trailingslashit(WP_PLUGIN_DIR) . trailingslashit( plugin_basename(__DIR__) ) . "index.php" , array("SimpleHistory", "on_plugin_activate" ) );
|
43 |
|
44 |
if ( ! defined( 'SIMPLE_HISTORY_VERSION' ) ) {
|
45 |
-
define( 'SIMPLE_HISTORY_VERSION', '2.5.
|
46 |
}
|
47 |
|
48 |
if ( ! defined( 'SIMPLE_HISTORY_PATH' ) ) {
|
5 |
Text Domain: simple-history
|
6 |
Domain Path: /languages
|
7 |
Description: Plugin that logs various things that occur in WordPress and then presents those events in a very nice GUI.
|
8 |
+
Version: 2.5.2
|
9 |
Author: Pär Thernström
|
10 |
Author URI: http://simple-history.com/
|
11 |
License: GPL2
|
42 |
// register_activation_hook( trailingslashit(WP_PLUGIN_DIR) . trailingslashit( plugin_basename(__DIR__) ) . "index.php" , array("SimpleHistory", "on_plugin_activate" ) );
|
43 |
|
44 |
if ( ! defined( 'SIMPLE_HISTORY_VERSION' ) ) {
|
45 |
+
define( 'SIMPLE_HISTORY_VERSION', '2.5.2' );
|
46 |
}
|
47 |
|
48 |
if ( ! defined( 'SIMPLE_HISTORY_PATH' ) ) {
|
js/scripts.js
CHANGED
@@ -736,6 +736,9 @@ var simple_history = (function($) {
|
|
736 |
|
737 |
})(jQuery);
|
738 |
|
|
|
|
|
|
|
739 |
jQuery(".js-SimpleHistory-Settings-ClearLog").on("click", function(e) {
|
740 |
|
741 |
if (confirm(simple_history_script_vars.settingsConfirmClearLog)) {
|
@@ -745,3 +748,29 @@ jQuery(".js-SimpleHistory-Settings-ClearLog").on("click", function(e) {
|
|
745 |
}
|
746 |
|
747 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
736 |
|
737 |
})(jQuery);
|
738 |
|
739 |
+
/**
|
740 |
+
* When the clear-log-button in admin is clicked then check that users really wants to clear the log
|
741 |
+
*/
|
742 |
jQuery(".js-SimpleHistory-Settings-ClearLog").on("click", function(e) {
|
743 |
|
744 |
if (confirm(simple_history_script_vars.settingsConfirmClearLog)) {
|
748 |
}
|
749 |
|
750 |
});
|
751 |
+
|
752 |
+
/**
|
753 |
+
* Add support for TimeAgo
|
754 |
+
*/
|
755 |
+
(function($) {
|
756 |
+
|
757 |
+
var $document = $(document);
|
758 |
+
|
759 |
+
// called on first load + on pagination
|
760 |
+
$document.on("SimpleHistory:logLoaded", addTimeAgo);
|
761 |
+
|
762 |
+
// when log is loaded and when occassions are loaded
|
763 |
+
$document.on("SimpleHistory:logRowsCollectionOccasionsLoaded", addTimeAgo);
|
764 |
+
|
765 |
+
|
766 |
+
function addTimeAgo() {
|
767 |
+
|
768 |
+
console.log("addTimeAgo()");
|
769 |
+
|
770 |
+
$(".SimpleHistoryLogitem__when time").timeago();
|
771 |
+
|
772 |
+
}
|
773 |
+
|
774 |
+
|
775 |
+
})(jQuery);
|
776 |
+
|
js/timeago/jquery.timeago.js
ADDED
@@ -0,0 +1,225 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Timeago is a jQuery plugin that makes it easy to support automatically
|
3 |
+
* updating fuzzy timestamps (e.g. "4 minutes ago" or "about 1 day ago").
|
4 |
+
*
|
5 |
+
* @name timeago
|
6 |
+
* @version 1.5.2
|
7 |
+
* @requires jQuery v1.2.3+
|
8 |
+
* @author Ryan McGeary
|
9 |
+
* @license MIT License - http://www.opensource.org/licenses/mit-license.php
|
10 |
+
*
|
11 |
+
* For usage and examples, visit:
|
12 |
+
* http://timeago.yarp.com/
|
13 |
+
*
|
14 |
+
* Copyright (c) 2008-2015, Ryan McGeary (ryan -[at]- mcgeary [*dot*] org)
|
15 |
+
*/
|
16 |
+
|
17 |
+
(function (factory) {
|
18 |
+
if (typeof define === 'function' && define.amd) {
|
19 |
+
// AMD. Register as an anonymous module.
|
20 |
+
define(['jquery'], factory);
|
21 |
+
} else if (typeof module === 'object' && typeof module.exports === 'object') {
|
22 |
+
factory(require('jquery'));
|
23 |
+
} else {
|
24 |
+
// Browser globals
|
25 |
+
factory(jQuery);
|
26 |
+
}
|
27 |
+
}(function ($) {
|
28 |
+
$.timeago = function(timestamp) {
|
29 |
+
if (timestamp instanceof Date) {
|
30 |
+
return inWords(timestamp);
|
31 |
+
} else if (typeof timestamp === "string") {
|
32 |
+
return inWords($.timeago.parse(timestamp));
|
33 |
+
} else if (typeof timestamp === "number") {
|
34 |
+
return inWords(new Date(timestamp));
|
35 |
+
} else {
|
36 |
+
return inWords($.timeago.datetime(timestamp));
|
37 |
+
}
|
38 |
+
};
|
39 |
+
var $t = $.timeago;
|
40 |
+
|
41 |
+
$.extend($.timeago, {
|
42 |
+
settings: {
|
43 |
+
refreshMillis: 60000,
|
44 |
+
allowPast: true,
|
45 |
+
allowFuture: false,
|
46 |
+
localeTitle: false,
|
47 |
+
cutoff: 0,
|
48 |
+
autoDispose: true,
|
49 |
+
strings: {
|
50 |
+
prefixAgo: null,
|
51 |
+
prefixFromNow: null,
|
52 |
+
suffixAgo: "ago",
|
53 |
+
suffixFromNow: "from now",
|
54 |
+
inPast: 'any moment now',
|
55 |
+
seconds: "less than a minute",
|
56 |
+
minute: "about a minute",
|
57 |
+
minutes: "%d minutes",
|
58 |
+
hour: "about an hour",
|
59 |
+
hours: "about %d hours",
|
60 |
+
day: "a day",
|
61 |
+
days: "%d days",
|
62 |
+
month: "about a month",
|
63 |
+
months: "%d months",
|
64 |
+
year: "about a year",
|
65 |
+
years: "%d years",
|
66 |
+
wordSeparator: " ",
|
67 |
+
numbers: []
|
68 |
+
}
|
69 |
+
},
|
70 |
+
|
71 |
+
inWords: function(distanceMillis) {
|
72 |
+
if (!this.settings.allowPast && ! this.settings.allowFuture) {
|
73 |
+
throw 'timeago allowPast and allowFuture settings can not both be set to false.';
|
74 |
+
}
|
75 |
+
|
76 |
+
var $l = this.settings.strings;
|
77 |
+
var prefix = $l.prefixAgo;
|
78 |
+
var suffix = $l.suffixAgo;
|
79 |
+
if (this.settings.allowFuture) {
|
80 |
+
if (distanceMillis < 0) {
|
81 |
+
prefix = $l.prefixFromNow;
|
82 |
+
suffix = $l.suffixFromNow;
|
83 |
+
}
|
84 |
+
}
|
85 |
+
|
86 |
+
if (!this.settings.allowPast && distanceMillis >= 0) {
|
87 |
+
return this.settings.strings.inPast;
|
88 |
+
}
|
89 |
+
|
90 |
+
var seconds = Math.abs(distanceMillis) / 1000;
|
91 |
+
var minutes = seconds / 60;
|
92 |
+
var hours = minutes / 60;
|
93 |
+
var days = hours / 24;
|
94 |
+
var years = days / 365;
|
95 |
+
|
96 |
+
function substitute(stringOrFunction, number) {
|
97 |
+
var string = $.isFunction(stringOrFunction) ? stringOrFunction(number, distanceMillis) : stringOrFunction;
|
98 |
+
var value = ($l.numbers && $l.numbers[number]) || number;
|
99 |
+
return string.replace(/%d/i, value);
|
100 |
+
}
|
101 |
+
|
102 |
+
var words = seconds < 45 && substitute($l.seconds, Math.round(seconds)) ||
|
103 |
+
seconds < 90 && substitute($l.minute, 1) ||
|
104 |
+
minutes < 45 && substitute($l.minutes, Math.round(minutes)) ||
|
105 |
+
minutes < 90 && substitute($l.hour, 1) ||
|
106 |
+
hours < 24 && substitute($l.hours, Math.round(hours)) ||
|
107 |
+
hours < 42 && substitute($l.day, 1) ||
|
108 |
+
days < 30 && substitute($l.days, Math.round(days)) ||
|
109 |
+
days < 45 && substitute($l.month, 1) ||
|
110 |
+
days < 365 && substitute($l.months, Math.round(days / 30)) ||
|
111 |
+
years < 1.5 && substitute($l.year, 1) ||
|
112 |
+
substitute($l.years, Math.round(years));
|
113 |
+
|
114 |
+
var separator = $l.wordSeparator || "";
|
115 |
+
if ($l.wordSeparator === undefined) { separator = " "; }
|
116 |
+
return $.trim([prefix, words, suffix].join(separator));
|
117 |
+
},
|
118 |
+
|
119 |
+
parse: function(iso8601) {
|
120 |
+
var s = $.trim(iso8601);
|
121 |
+
s = s.replace(/\.\d+/,""); // remove milliseconds
|
122 |
+
s = s.replace(/-/,"/").replace(/-/,"/");
|
123 |
+
s = s.replace(/T/," ").replace(/Z/," UTC");
|
124 |
+
s = s.replace(/([\+\-]\d\d)\:?(\d\d)/," $1$2"); // -04:00 -> -0400
|
125 |
+
s = s.replace(/([\+\-]\d\d)$/," $100"); // +09 -> +0900
|
126 |
+
return new Date(s);
|
127 |
+
},
|
128 |
+
datetime: function(elem) {
|
129 |
+
var iso8601 = $t.isTime(elem) ? $(elem).attr("datetime") : $(elem).attr("title");
|
130 |
+
return $t.parse(iso8601);
|
131 |
+
},
|
132 |
+
isTime: function(elem) {
|
133 |
+
// jQuery's `is()` doesn't play well with HTML5 in IE
|
134 |
+
return $(elem).get(0).tagName.toLowerCase() === "time"; // $(elem).is("time");
|
135 |
+
}
|
136 |
+
});
|
137 |
+
|
138 |
+
// functions that can be called via $(el).timeago('action')
|
139 |
+
// init is default when no action is given
|
140 |
+
// functions are called with context of a single element
|
141 |
+
var functions = {
|
142 |
+
init: function() {
|
143 |
+
var refresh_el = $.proxy(refresh, this);
|
144 |
+
refresh_el();
|
145 |
+
var $s = $t.settings;
|
146 |
+
if ($s.refreshMillis > 0) {
|
147 |
+
this._timeagoInterval = setInterval(refresh_el, $s.refreshMillis);
|
148 |
+
}
|
149 |
+
},
|
150 |
+
update: function(timestamp) {
|
151 |
+
var date = (timestamp instanceof Date) ? timestamp : $t.parse(timestamp);
|
152 |
+
$(this).data('timeago', { datetime: date });
|
153 |
+
if ($t.settings.localeTitle) $(this).attr("title", date.toLocaleString());
|
154 |
+
refresh.apply(this);
|
155 |
+
},
|
156 |
+
updateFromDOM: function() {
|
157 |
+
$(this).data('timeago', { datetime: $t.parse( $t.isTime(this) ? $(this).attr("datetime") : $(this).attr("title") ) });
|
158 |
+
refresh.apply(this);
|
159 |
+
},
|
160 |
+
dispose: function () {
|
161 |
+
if (this._timeagoInterval) {
|
162 |
+
window.clearInterval(this._timeagoInterval);
|
163 |
+
this._timeagoInterval = null;
|
164 |
+
}
|
165 |
+
}
|
166 |
+
};
|
167 |
+
|
168 |
+
$.fn.timeago = function(action, options) {
|
169 |
+
var fn = action ? functions[action] : functions.init;
|
170 |
+
if (!fn) {
|
171 |
+
throw new Error("Unknown function name '"+ action +"' for timeago");
|
172 |
+
}
|
173 |
+
// each over objects here and call the requested function
|
174 |
+
this.each(function() {
|
175 |
+
fn.call(this, options);
|
176 |
+
});
|
177 |
+
return this;
|
178 |
+
};
|
179 |
+
|
180 |
+
function refresh() {
|
181 |
+
var $s = $t.settings;
|
182 |
+
|
183 |
+
//check if it's still visible
|
184 |
+
if ($s.autoDispose && !$.contains(document.documentElement,this)) {
|
185 |
+
//stop if it has been removed
|
186 |
+
$(this).timeago("dispose");
|
187 |
+
return this;
|
188 |
+
}
|
189 |
+
|
190 |
+
var data = prepareData(this);
|
191 |
+
|
192 |
+
if (!isNaN(data.datetime)) {
|
193 |
+
if ( $s.cutoff == 0 || Math.abs(distance(data.datetime)) < $s.cutoff) {
|
194 |
+
$(this).text(inWords(data.datetime));
|
195 |
+
}
|
196 |
+
}
|
197 |
+
return this;
|
198 |
+
}
|
199 |
+
|
200 |
+
function prepareData(element) {
|
201 |
+
element = $(element);
|
202 |
+
if (!element.data("timeago")) {
|
203 |
+
element.data("timeago", { datetime: $t.datetime(element) });
|
204 |
+
var text = $.trim(element.text());
|
205 |
+
if ($t.settings.localeTitle) {
|
206 |
+
element.attr("title", element.data('timeago').datetime.toLocaleString());
|
207 |
+
} else if (text.length > 0 && !($t.isTime(element) && element.attr("title"))) {
|
208 |
+
element.attr("title", text);
|
209 |
+
}
|
210 |
+
}
|
211 |
+
return element.data("timeago");
|
212 |
+
}
|
213 |
+
|
214 |
+
function inWords(date) {
|
215 |
+
return $t.inWords(distance(date));
|
216 |
+
}
|
217 |
+
|
218 |
+
function distance(date) {
|
219 |
+
return (new Date().getTime() - date.getTime());
|
220 |
+
}
|
221 |
+
|
222 |
+
// fix for IE6 suckage
|
223 |
+
document.createElement("abbr");
|
224 |
+
document.createElement("time");
|
225 |
+
}));
|
js/timeago/locales/jquery.timeago.af.js
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Afrikaans
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: null,
|
4 |
+
prefixFromNow: null,
|
5 |
+
suffixAgo: "gelede",
|
6 |
+
suffixFromNow: "van nou af",
|
7 |
+
seconds: "%d sekondes",
|
8 |
+
minute: "1 minuut",
|
9 |
+
minutes: "%d minute",
|
10 |
+
hour: "1 uur",
|
11 |
+
hours: "%d ure",
|
12 |
+
day: "1 dag",
|
13 |
+
days: "%d dae",
|
14 |
+
month: "1 maand",
|
15 |
+
months: "%d maande",
|
16 |
+
year: "1 jaar",
|
17 |
+
years: "%d jaar",
|
18 |
+
wordSeparator: " ",
|
19 |
+
numbers: []
|
20 |
+
};
|
js/timeago/locales/jquery.timeago.ar.js
ADDED
@@ -0,0 +1,96 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
(function() {
|
2 |
+
function numpf(n, a) {
|
3 |
+
return a[plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5];
|
4 |
+
}
|
5 |
+
|
6 |
+
jQuery.timeago.settings.strings = {
|
7 |
+
prefixAgo: "منذ",
|
8 |
+
prefixFromNow: "بعد",
|
9 |
+
suffixAgo: null,
|
10 |
+
suffixFromNow: null, // null OR "من الآن"
|
11 |
+
second: function(value) { return numpf(value, [
|
12 |
+
'أقل من ثانية',
|
13 |
+
'ثانية واحدة',
|
14 |
+
'ثانيتين',
|
15 |
+
'%d ثوانٍ',
|
16 |
+
'%d ثانية',
|
17 |
+
'%d ثانية']); },
|
18 |
+
seconds: function(value) { return numpf(value, [
|
19 |
+
'أقل من ثانية',
|
20 |
+
'ثانية واحدة',
|
21 |
+
'ثانيتين',
|
22 |
+
'%d ثوانٍ',
|
23 |
+
'%d ثانية',
|
24 |
+
'%d ثانية']); },
|
25 |
+
minute: function(value) { return numpf(value, [
|
26 |
+
'أقل من دقيقة',
|
27 |
+
'دقيقة واحدة',
|
28 |
+
'دقيقتين',
|
29 |
+
'%d دقائق',
|
30 |
+
'%d دقيقة',
|
31 |
+
'دقيقة']); },
|
32 |
+
minutes: function(value) { return numpf(value, [
|
33 |
+
'أقل من دقيقة',
|
34 |
+
'دقيقة واحدة',
|
35 |
+
'دقيقتين',
|
36 |
+
'%d دقائق',
|
37 |
+
'%d دقيقة',
|
38 |
+
'دقيقة']); },
|
39 |
+
hour: function(value) { return numpf(value, [
|
40 |
+
'أقل من ساعة',
|
41 |
+
'ساعة واحدة',
|
42 |
+
'ساعتين',
|
43 |
+
'%d ساعات',
|
44 |
+
'%d ساعة',
|
45 |
+
'%d ساعة']); },
|
46 |
+
hours: function(value) { return numpf(value, [
|
47 |
+
'أقل من ساعة',
|
48 |
+
'ساعة واحدة',
|
49 |
+
'ساعتين',
|
50 |
+
'%d ساعات',
|
51 |
+
'%d ساعة',
|
52 |
+
'%d ساعة']); },
|
53 |
+
day: function(value) { return numpf(value, [
|
54 |
+
'أقل من يوم',
|
55 |
+
'يوم واحد',
|
56 |
+
'يومين',
|
57 |
+
'%d أيام',
|
58 |
+
'%d يومًا',
|
59 |
+
'%d يوم']); },
|
60 |
+
days: function(value) { return numpf(value, [
|
61 |
+
'أقل من يوم',
|
62 |
+
'يوم واحد',
|
63 |
+
'يومين',
|
64 |
+
'%d أيام',
|
65 |
+
'%d يومًا',
|
66 |
+
'%d يوم']); },
|
67 |
+
month: function(value) { return numpf(value, [
|
68 |
+
'أقل من شهر',
|
69 |
+
'شهر واحد',
|
70 |
+
'شهرين',
|
71 |
+
'%d أشهر',
|
72 |
+
'%d شهرًا',
|
73 |
+
'%d شهر']); },
|
74 |
+
months: function(value) { return numpf(value, [
|
75 |
+
'أقل من شهر',
|
76 |
+
'شهر واحد',
|
77 |
+
'شهرين',
|
78 |
+
'%d أشهر',
|
79 |
+
'%d شهرًا',
|
80 |
+
'%d شهر']); },
|
81 |
+
year: function(value) { return numpf(value, [
|
82 |
+
'أقل من عام',
|
83 |
+
'عام واحد',
|
84 |
+
'%d عامين',
|
85 |
+
'%d أعوام',
|
86 |
+
'%d عامًا']);
|
87 |
+
},
|
88 |
+
years: function(value) { return numpf(value, [
|
89 |
+
'أقل من عام',
|
90 |
+
'عام واحد',
|
91 |
+
'عامين',
|
92 |
+
'%d أعوام',
|
93 |
+
'%d عامًا',
|
94 |
+
'%d عام']);}
|
95 |
+
};
|
96 |
+
})();
|
js/timeago/locales/jquery.timeago.bg.js
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Bulgarian
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: "преди",
|
4 |
+
prefixFromNow: "след",
|
5 |
+
suffixAgo: null,
|
6 |
+
suffixFromNow: null,
|
7 |
+
seconds: "по-малко от минута",
|
8 |
+
minute: "една минута",
|
9 |
+
minutes: "%d минути",
|
10 |
+
hour: "един час",
|
11 |
+
hours: "%d часа",
|
12 |
+
day: "един ден",
|
13 |
+
days: "%d дни",
|
14 |
+
month: "един месец",
|
15 |
+
months: "%d месеца",
|
16 |
+
year: "една година",
|
17 |
+
years: "%d години"
|
18 |
+
};
|
js/timeago/locales/jquery.timeago.bs.js
ADDED
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Bosnian
|
2 |
+
(function() {
|
3 |
+
var numpf;
|
4 |
+
|
5 |
+
numpf = function(n, f, s, t) {
|
6 |
+
var n10;
|
7 |
+
n10 = n % 10;
|
8 |
+
if (n10 === 1 && (n === 1 || n > 20)) {
|
9 |
+
return f;
|
10 |
+
} else if (n10 > 1 && n10 < 5 && (n > 20 || n < 10)) {
|
11 |
+
return s;
|
12 |
+
} else {
|
13 |
+
return t;
|
14 |
+
}
|
15 |
+
};
|
16 |
+
|
17 |
+
jQuery.timeago.settings.strings = {
|
18 |
+
prefixAgo: "prije",
|
19 |
+
prefixFromNow: "za",
|
20 |
+
suffixAgo: null,
|
21 |
+
suffixFromNow: null,
|
22 |
+
second: "sekund",
|
23 |
+
seconds: function(value) {
|
24 |
+
return numpf(value, "%d sekund", "%d sekunde", "%d sekundi");
|
25 |
+
},
|
26 |
+
minute: "oko minut",
|
27 |
+
minutes: function(value) {
|
28 |
+
return numpf(value, "%d minut", "%d minute", "%d minuta");
|
29 |
+
},
|
30 |
+
hour: "oko sat",
|
31 |
+
hours: function(value) {
|
32 |
+
return numpf(value, "%d sat", "%d sata", "%d sati");
|
33 |
+
},
|
34 |
+
day: "oko jednog dana",
|
35 |
+
days: function(value) {
|
36 |
+
return numpf(value, "%d dan", "%d dana", "%d dana");
|
37 |
+
},
|
38 |
+
month: "mjesec dana",
|
39 |
+
months: function(value) {
|
40 |
+
return numpf(value, "%d mjesec", "%d mjeseca", "%d mjeseci");
|
41 |
+
},
|
42 |
+
year: "prije godinu dana ",
|
43 |
+
years: function(value) {
|
44 |
+
return numpf(value, "%d godinu", "%d godine", "%d godina");
|
45 |
+
},
|
46 |
+
wordSeparator: " "
|
47 |
+
};
|
48 |
+
|
49 |
+
}).call(this);
|
js/timeago/locales/jquery.timeago.ca.js
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Catalan
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: "fa",
|
4 |
+
prefixFromNow: "d'aqui a",
|
5 |
+
suffixAgo: null,
|
6 |
+
suffixFromNow: null,
|
7 |
+
seconds: "menys d'1 minut",
|
8 |
+
minute: "1 minut",
|
9 |
+
minutes: "uns %d minuts",
|
10 |
+
hour: "1 hora",
|
11 |
+
hours: "unes %d hores",
|
12 |
+
day: "1 dia",
|
13 |
+
days: "%d dies",
|
14 |
+
month: "aproximadament un mes",
|
15 |
+
months: "%d mesos",
|
16 |
+
year: "aproximadament un any",
|
17 |
+
years: "%d anys"
|
18 |
+
};
|
js/timeago/locales/jquery.timeago.cs.js
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Czech
|
2 |
+
(function() {
|
3 |
+
function f(n, d, a) {
|
4 |
+
return a[d>=0 ? 0 : a.length==2 || n<5 ? 1 : 2];
|
5 |
+
}
|
6 |
+
|
7 |
+
jQuery.timeago.settings.strings = {
|
8 |
+
prefixAgo: 'před',
|
9 |
+
prefixFromNow: 'za',
|
10 |
+
suffixAgo: null,
|
11 |
+
suffixFromNow: null,
|
12 |
+
seconds: function(n, d) {return f(n, d, ['méně než minutou', 'méně než minutu']);},
|
13 |
+
minute: function(n, d) {return f(n, d, ['minutou', 'minutu']);},
|
14 |
+
minutes: function(n, d) {return f(n, d, ['%d minutami', '%d minuty', '%d minut']);},
|
15 |
+
hour: function(n, d) {return f(n, d, ['hodinou', 'hodinu']);},
|
16 |
+
hours: function(n, d) {return f(n, d, ['%d hodinami', '%d hodiny', '%d hodin']);},
|
17 |
+
day: function(n, d) {return f(n, d, ['%d dnem', '%d den']);},
|
18 |
+
days: function(n, d) {return f(n, d, ['%d dny', '%d dny', '%d dní']);},
|
19 |
+
month: function(n, d) {return f(n, d, ['%d měsícem', '%d měsíc']);},
|
20 |
+
months: function(n, d) {return f(n, d, ['%d měsíci', '%d měsíce', '%d měsíců']);},
|
21 |
+
year: function(n, d) {return f(n, d, ['%d rokem', '%d rok']);},
|
22 |
+
years: function(n, d) {return f(n, d, ['%d lety', '%d roky', '%d let']);}
|
23 |
+
};
|
24 |
+
})();
|
js/timeago/locales/jquery.timeago.cy.js
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Welsh
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: null,
|
4 |
+
prefixFromNow: null,
|
5 |
+
suffixAgo: "yn ôl",
|
6 |
+
suffixFromNow: "o hyn",
|
7 |
+
seconds: "llai na munud",
|
8 |
+
minute: "am funud",
|
9 |
+
minutes: "%d munud",
|
10 |
+
hour: "tua awr",
|
11 |
+
hours: "am %d awr",
|
12 |
+
day: "y dydd",
|
13 |
+
days: "%d diwrnod",
|
14 |
+
month: "tua mis",
|
15 |
+
months: "%d mis",
|
16 |
+
year: "am y flwyddyn",
|
17 |
+
years: "%d blynedd",
|
18 |
+
wordSeparator: " ",
|
19 |
+
numbers: []
|
20 |
+
};
|
js/timeago/locales/jquery.timeago.da.js
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Danish
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: "for",
|
4 |
+
prefixFromNow: "om",
|
5 |
+
suffixAgo: "siden",
|
6 |
+
suffixFromNow: "",
|
7 |
+
seconds: "mindre end et minut",
|
8 |
+
minute: "ca. et minut",
|
9 |
+
minutes: "%d minutter",
|
10 |
+
hour: "ca. en time",
|
11 |
+
hours: "ca. %d timer",
|
12 |
+
day: "en dag",
|
13 |
+
days: "%d dage",
|
14 |
+
month: "ca. en måned",
|
15 |
+
months: "%d måneder",
|
16 |
+
year: "ca. et år",
|
17 |
+
years: "%d år"
|
18 |
+
};
|
js/timeago/locales/jquery.timeago.de.js
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// German
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: "vor",
|
4 |
+
prefixFromNow: "in",
|
5 |
+
suffixAgo: "",
|
6 |
+
suffixFromNow: "",
|
7 |
+
seconds: "wenigen Sekunden",
|
8 |
+
minute: "etwa einer Minute",
|
9 |
+
minutes: "%d Minuten",
|
10 |
+
hour: "etwa einer Stunde",
|
11 |
+
hours: "%d Stunden",
|
12 |
+
day: "etwa einem Tag",
|
13 |
+
days: "%d Tagen",
|
14 |
+
month: "etwa einem Monat",
|
15 |
+
months: "%d Monaten",
|
16 |
+
year: "etwa einem Jahr",
|
17 |
+
years: "%d Jahren"
|
18 |
+
};
|
js/timeago/locales/jquery.timeago.dv.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Dhivehi time in Thaana for timeago.js
|
3 |
+
**/
|
4 |
+
jQuery.timeago.settings.strings = {
|
5 |
+
prefixAgo: null,
|
6 |
+
prefixFromNow: null,
|
7 |
+
suffixAgo: "ކުރިން",
|
8 |
+
suffixFromNow: "ފަހުން",
|
9 |
+
seconds: "ސިކުންތުކޮޅެއް",
|
10 |
+
minute: "މިނިޓެއްވަރު",
|
11 |
+
minutes: "%d މިނިޓު",
|
12 |
+
hour: "ގަޑިއެއްވަރު",
|
13 |
+
hours: "ގާތްގަނޑަކަށް %d ގަޑިއިރު",
|
14 |
+
day: "އެއް ދުވަސް",
|
15 |
+
days: "މީގެ %d ދުވަސް",
|
16 |
+
month: "މަހެއްވަރު",
|
17 |
+
months: "މީގެ %d މަސް",
|
18 |
+
year: "އަހަރެއްވަރު",
|
19 |
+
years: "މީގެ %d އަހަރު",
|
20 |
+
wordSeparator: " ",
|
21 |
+
numbers: []
|
22 |
+
};
|
js/timeago/locales/jquery.timeago.el.js
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Greek
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: "πριν",
|
4 |
+
prefixFromNow: "σε",
|
5 |
+
suffixAgo: "",
|
6 |
+
suffixFromNow: "",
|
7 |
+
seconds: "λιγότερο από ένα λεπτό",
|
8 |
+
minute: "περίπου ένα λεπτό",
|
9 |
+
minutes: "%d λεπτά",
|
10 |
+
hour: "περίπου μία ώρα",
|
11 |
+
hours: "περίπου %d ώρες",
|
12 |
+
day: "μία μέρα",
|
13 |
+
days: "%d μέρες",
|
14 |
+
month: "περίπου ένα μήνα",
|
15 |
+
months: "%d μήνες",
|
16 |
+
year: "περίπου ένα χρόνο",
|
17 |
+
years: "%d χρόνια"
|
18 |
+
};
|
js/timeago/locales/jquery.timeago.en-short.js
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// English shortened
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: null,
|
4 |
+
prefixFromNow: null,
|
5 |
+
suffixAgo: "",
|
6 |
+
suffixFromNow: "",
|
7 |
+
seconds: "1m",
|
8 |
+
minute: "1m",
|
9 |
+
minutes: "%dm",
|
10 |
+
hour: "1h",
|
11 |
+
hours: "%dh",
|
12 |
+
day: "1d",
|
13 |
+
days: "%dd",
|
14 |
+
month: "1mo",
|
15 |
+
months: "%dmo",
|
16 |
+
year: "1yr",
|
17 |
+
years: "%dyr",
|
18 |
+
wordSeparator: " ",
|
19 |
+
numbers: []
|
20 |
+
};
|
js/timeago/locales/jquery.timeago.en.js
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// English (Template)
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: null,
|
4 |
+
prefixFromNow: null,
|
5 |
+
suffixAgo: "ago",
|
6 |
+
suffixFromNow: "from now",
|
7 |
+
seconds: "less than a minute",
|
8 |
+
minute: "about a minute",
|
9 |
+
minutes: "%d minutes",
|
10 |
+
hour: "about an hour",
|
11 |
+
hours: "about %d hours",
|
12 |
+
day: "a day",
|
13 |
+
days: "%d days",
|
14 |
+
month: "about a month",
|
15 |
+
months: "%d months",
|
16 |
+
year: "about a year",
|
17 |
+
years: "%d years",
|
18 |
+
wordSeparator: " ",
|
19 |
+
numbers: []
|
20 |
+
};
|
js/timeago/locales/jquery.timeago.es-short.js
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Spanish shortened
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: null,
|
4 |
+
prefixFromNow: null,
|
5 |
+
suffixAgo: "",
|
6 |
+
suffixFromNow: "",
|
7 |
+
seconds: "1m",
|
8 |
+
minute: "1m",
|
9 |
+
minutes: "%dm",
|
10 |
+
hour: "1h",
|
11 |
+
hours: "%dh",
|
12 |
+
day: "1d",
|
13 |
+
days: "%dd",
|
14 |
+
month: "1me",
|
15 |
+
months: "%dme",
|
16 |
+
year: "1a",
|
17 |
+
years: "%da",
|
18 |
+
wordSeparator: " ",
|
19 |
+
numbers: []
|
20 |
+
};
|
js/timeago/locales/jquery.timeago.es.js
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Spanish
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: "hace",
|
4 |
+
prefixFromNow: "dentro de",
|
5 |
+
suffixAgo: "",
|
6 |
+
suffixFromNow: "",
|
7 |
+
seconds: "menos de un minuto",
|
8 |
+
minute: "un minuto",
|
9 |
+
minutes: "unos %d minutos",
|
10 |
+
hour: "una hora",
|
11 |
+
hours: "%d horas",
|
12 |
+
day: "un día",
|
13 |
+
days: "%d días",
|
14 |
+
month: "un mes",
|
15 |
+
months: "%d meses",
|
16 |
+
year: "un año",
|
17 |
+
years: "%d años"
|
18 |
+
};
|
js/timeago/locales/jquery.timeago.et.js
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Estonian
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: null,
|
4 |
+
prefixFromNow: null,
|
5 |
+
suffixAgo: "tagasi",
|
6 |
+
suffixFromNow: "pärast",
|
7 |
+
seconds: function(n, d) { return d < 0 ? "vähem kui minuti aja" : "vähem kui minut aega"; },
|
8 |
+
minute: function(n, d) { return d < 0 ? "umbes minuti aja" : "umbes minut aega"; },
|
9 |
+
minutes: function(n, d) { return d < 0 ? "%d minuti" : "%d minutit"; },
|
10 |
+
hour: function(n, d) { return d < 0 ? "umbes tunni aja" : "umbes tund aega"; },
|
11 |
+
hours: function(n, d) { return d < 0 ? "%d tunni" : "%d tundi"; },
|
12 |
+
day: function(n, d) { return d < 0 ? "umbes päeva" : "umbes päev"; },
|
13 |
+
days: function(n, d) { return d < 0 ? "%d päeva" : "%d päeva"; },
|
14 |
+
month: function(n, d) { return d < 0 ? "umbes kuu aja" : "umbes kuu aega"; },
|
15 |
+
months: function(n, d) { return d < 0 ? "%d kuu" : "%d kuud"; },
|
16 |
+
year: function(n, d) { return d < 0 ? "umbes aasta aja" : "umbes aasta aega"; },
|
17 |
+
years: function(n, d) { return d < 0 ? "%d aasta" : "%d aastat"; }
|
18 |
+
};
|
js/timeago/locales/jquery.timeago.eu.js
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery.timeago.settings.strings = {
|
2 |
+
prefixAgo: "duela",
|
3 |
+
prefixFromNow: "hemendik",
|
4 |
+
suffixAgo: "",
|
5 |
+
suffixFromNow: "barru",
|
6 |
+
seconds: "minutu bat bainu gutxiago",
|
7 |
+
minute: "minutu bat",
|
8 |
+
minutes: "%d minutu inguru",
|
9 |
+
hour: "ordu bat",
|
10 |
+
hours: "%d ordu",
|
11 |
+
day: "egun bat",
|
12 |
+
days: "%d egun",
|
13 |
+
month: "hilabete bat",
|
14 |
+
months: "%d hilabete",
|
15 |
+
year: "urte bat",
|
16 |
+
years: "%d urte"
|
17 |
+
};
|
js/timeago/locales/jquery.timeago.fa-short.js
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// persion shortened
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: null,
|
4 |
+
prefixFromNow: null,
|
5 |
+
suffixAgo: "",
|
6 |
+
suffixFromNow: "",
|
7 |
+
seconds: "1دقیقه",
|
8 |
+
minute: "1دقیقه",
|
9 |
+
minutes: "%dدقیقه",
|
10 |
+
hour: "1ساعت",
|
11 |
+
hours: "%dساعت",
|
12 |
+
day: "1روز",
|
13 |
+
days: "%dروز",
|
14 |
+
month: "1ماه",
|
15 |
+
months: "%dماه",
|
16 |
+
year: "1سال",
|
17 |
+
years: "%dسال",
|
18 |
+
wordSeparator: " ",
|
19 |
+
numbers: []
|
20 |
+
};
|
js/timeago/locales/jquery.timeago.fa.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
// Persian
|
3 |
+
// Use DIR attribute for RTL text in Persian Language for ABBR tag .
|
4 |
+
// By MB.seifollahi@gmail.com
|
5 |
+
jQuery.timeago.settings.strings = {
|
6 |
+
prefixAgo: null,
|
7 |
+
prefixFromNow: null,
|
8 |
+
suffixAgo: "پیش",
|
9 |
+
suffixFromNow: "از حال",
|
10 |
+
seconds: "کمتر از یک دقیقه",
|
11 |
+
minute: "حدود یک دقیقه",
|
12 |
+
minutes: "%d دقیقه",
|
13 |
+
hour: "حدود یک ساعت",
|
14 |
+
hours: "حدود %d ساعت",
|
15 |
+
day: "یک روز",
|
16 |
+
days: "%d روز",
|
17 |
+
month: "حدود یک ماه",
|
18 |
+
months: "%d ماه",
|
19 |
+
year: "حدود یک سال",
|
20 |
+
years: "%d سال",
|
21 |
+
wordSeparator: " "
|
22 |
+
};
|
js/timeago/locales/jquery.timeago.fi.js
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Finnish
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: null,
|
4 |
+
prefixFromNow: null,
|
5 |
+
suffixAgo: "sitten",
|
6 |
+
suffixFromNow: "tulevaisuudessa",
|
7 |
+
seconds: "alle minuutti",
|
8 |
+
minute: "minuutti",
|
9 |
+
minutes: "%d minuuttia",
|
10 |
+
hour: "tunti",
|
11 |
+
hours: "%d tuntia",
|
12 |
+
day: "päivä",
|
13 |
+
days: "%d päivää",
|
14 |
+
month: "kuukausi",
|
15 |
+
months: "%d kuukautta",
|
16 |
+
year: "vuosi",
|
17 |
+
years: "%d vuotta"
|
18 |
+
};
|
19 |
+
|
20 |
+
// The above is not a great localization because one would usually
|
21 |
+
// write "2 days ago" in Finnish as "2 päivää sitten", however
|
22 |
+
// one would write "2 days into the future" as "2:n päivän päästä"
|
23 |
+
// which cannot be achieved with localization support this simple.
|
24 |
+
// This is because Finnish has word suffixes (attached directly
|
25 |
+
// to the end of the word). The word "day" is "päivä" in Finnish.
|
26 |
+
// As workaround, the above localizations will say
|
27 |
+
// "2 päivää tulevaisuudessa" which is understandable but
|
28 |
+
// not as fluent.
|
js/timeago/locales/jquery.timeago.fr-short.js
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// French shortened
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: "il y a",
|
4 |
+
prefixFromNow: "d'ici",
|
5 |
+
seconds: "moins d'une minute",
|
6 |
+
minute: "une minute",
|
7 |
+
minutes: "%d minutes",
|
8 |
+
hour: "une heure",
|
9 |
+
hours: "%d heures",
|
10 |
+
day: "un jour",
|
11 |
+
days: "%d jours",
|
12 |
+
month: "un mois",
|
13 |
+
months: "%d mois",
|
14 |
+
year: "un an",
|
15 |
+
years: "%d ans"
|
16 |
+
};
|
js/timeago/locales/jquery.timeago.fr.js
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// French
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
// environ ~= about, it's optional
|
4 |
+
prefixAgo: "il y a",
|
5 |
+
prefixFromNow: "d'ici",
|
6 |
+
seconds: "moins d'une minute",
|
7 |
+
minute: "environ une minute",
|
8 |
+
minutes: "environ %d minutes",
|
9 |
+
hour: "environ une heure",
|
10 |
+
hours: "environ %d heures",
|
11 |
+
day: "environ un jour",
|
12 |
+
days: "environ %d jours",
|
13 |
+
month: "environ un mois",
|
14 |
+
months: "environ %d mois",
|
15 |
+
year: "un an",
|
16 |
+
years: "%d ans"
|
17 |
+
};
|
js/timeago/locales/jquery.timeago.gl.js
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Galician
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: "hai",
|
4 |
+
prefixFromNow: "dentro de",
|
5 |
+
suffixAgo: "",
|
6 |
+
suffixFromNow: "",
|
7 |
+
seconds: "menos dun minuto",
|
8 |
+
minute: "un minuto",
|
9 |
+
minutes: "uns %d minutos",
|
10 |
+
hour: "unha hora",
|
11 |
+
hours: "%d horas",
|
12 |
+
day: "un día",
|
13 |
+
days: "%d días",
|
14 |
+
month: "un mes",
|
15 |
+
months: "%d meses",
|
16 |
+
year: "un ano",
|
17 |
+
years: "%d anos"
|
18 |
+
};
|
js/timeago/locales/jquery.timeago.he.js
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Hebrew
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: "לפני",
|
4 |
+
prefixFromNow: "עוד",
|
5 |
+
seconds: "פחות מדקה",
|
6 |
+
minute: "דקה",
|
7 |
+
minutes: "%d דקות",
|
8 |
+
hour: "שעה",
|
9 |
+
hours: function(number){return (number==2) ? "שעתיים" : "%d שעות";},
|
10 |
+
day: "יום",
|
11 |
+
days: function(number){return (number==2) ? "יומיים" : "%d ימים";},
|
12 |
+
month: "חודש",
|
13 |
+
months: function(number){return (number==2) ? "חודשיים" : "%d חודשים";},
|
14 |
+
year: "שנה",
|
15 |
+
years: function(number){return (number==2) ? "שנתיים" : "%d שנים";}
|
16 |
+
};
|
js/timeago/locales/jquery.timeago.hr.js
ADDED
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Croatian
|
2 |
+
(function () {
|
3 |
+
var numpf;
|
4 |
+
|
5 |
+
numpf = function (n, f, s, t) {
|
6 |
+
var n10;
|
7 |
+
n10 = n % 10;
|
8 |
+
if (n10 === 1 && (n === 1 || n > 20)) {
|
9 |
+
return f;
|
10 |
+
} else if (n10 > 1 && n10 < 5 && (n > 20 || n < 10)) {
|
11 |
+
return s;
|
12 |
+
} else {
|
13 |
+
return t;
|
14 |
+
}
|
15 |
+
};
|
16 |
+
|
17 |
+
jQuery.timeago.settings.strings = {
|
18 |
+
prefixAgo: "prije",
|
19 |
+
prefixFromNow: "za",
|
20 |
+
suffixAgo: null,
|
21 |
+
suffixFromNow: null,
|
22 |
+
second: "sekundu",
|
23 |
+
seconds: function (value) {
|
24 |
+
return numpf(value, "%d sekundu", "%d sekunde", "%d sekundi");
|
25 |
+
},
|
26 |
+
minute: "oko minutu",
|
27 |
+
minutes: function (value) {
|
28 |
+
return numpf(value, "%d minutu", "%d minute", "%d minuta");
|
29 |
+
},
|
30 |
+
hour: "oko jedan sat",
|
31 |
+
hours: function (value) {
|
32 |
+
return numpf(value, "%d sat", "%d sata", "%d sati");
|
33 |
+
},
|
34 |
+
day: "jedan dan",
|
35 |
+
days: function (value) {
|
36 |
+
return numpf(value, "%d dan", "%d dana", "%d dana");
|
37 |
+
},
|
38 |
+
month: "mjesec dana",
|
39 |
+
months: function (value) {
|
40 |
+
return numpf(value, "%d mjesec", "%d mjeseca", "%d mjeseci");
|
41 |
+
},
|
42 |
+
year: "prije godinu dana",
|
43 |
+
years: function (value) {
|
44 |
+
return numpf(value, "%d godinu", "%d godine", "%d godina");
|
45 |
+
},
|
46 |
+
wordSeparator: " "
|
47 |
+
};
|
48 |
+
|
49 |
+
}).call(this);
|
js/timeago/locales/jquery.timeago.hu.js
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Hungarian
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: null,
|
4 |
+
prefixFromNow: null,
|
5 |
+
suffixAgo: null,
|
6 |
+
suffixFromNow: null,
|
7 |
+
seconds: "kevesebb mint egy perce",
|
8 |
+
minute: "körülbelül egy perce",
|
9 |
+
minutes: "%d perce",
|
10 |
+
hour: "körülbelül egy órája",
|
11 |
+
hours: "körülbelül %d órája",
|
12 |
+
day: "körülbelül egy napja",
|
13 |
+
days: "%d napja",
|
14 |
+
month: "körülbelül egy hónapja",
|
15 |
+
months: "%d hónapja",
|
16 |
+
year: "körülbelül egy éve",
|
17 |
+
years: "%d éve"
|
18 |
+
};
|
js/timeago/locales/jquery.timeago.hy.js
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Armenian
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: null,
|
4 |
+
prefixFromNow: null,
|
5 |
+
suffixAgo: "առաջ",
|
6 |
+
suffixFromNow: "հետո",
|
7 |
+
seconds: "վայրկյաններ",
|
8 |
+
minute: "մեկ րոպե",
|
9 |
+
minutes: "%d րոպե",
|
10 |
+
hour: "մեկ ժամ",
|
11 |
+
hours: "%d ժամ",
|
12 |
+
day: "մեկ օր",
|
13 |
+
days: "%d օր",
|
14 |
+
month: "մեկ ամիս",
|
15 |
+
months: "%d ամիս",
|
16 |
+
year: "մեկ տարի",
|
17 |
+
years: "%d տարի"
|
18 |
+
};
|
js/timeago/locales/jquery.timeago.id.js
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Indonesian
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: null,
|
4 |
+
prefixFromNow: null,
|
5 |
+
suffixAgo: "yang lalu",
|
6 |
+
suffixFromNow: "dari sekarang",
|
7 |
+
seconds: "kurang dari semenit",
|
8 |
+
minute: "sekitar satu menit",
|
9 |
+
minutes: "%d menit",
|
10 |
+
hour: "sekitar sejam",
|
11 |
+
hours: "sekitar %d jam",
|
12 |
+
day: "sehari",
|
13 |
+
days: "%d hari",
|
14 |
+
month: "sekitar sebulan",
|
15 |
+
months: "%d bulan",
|
16 |
+
year: "sekitar setahun",
|
17 |
+
years: "%d tahun"
|
18 |
+
};
|
js/timeago/locales/jquery.timeago.is.js
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery.timeago.settings.strings = {
|
2 |
+
prefixAgo: "fyrir",
|
3 |
+
prefixFromNow: "eftir",
|
4 |
+
suffixAgo: "síðan",
|
5 |
+
suffixFromNow: null,
|
6 |
+
seconds: "minna en mínútu",
|
7 |
+
minute: "mínútu",
|
8 |
+
minutes: "%d mínútum",
|
9 |
+
hour: "klukkutíma",
|
10 |
+
hours: "um %d klukkutímum",
|
11 |
+
day: "degi",
|
12 |
+
days: "%d dögum",
|
13 |
+
month: "mánuði",
|
14 |
+
months: "%d mánuðum",
|
15 |
+
year: "ári",
|
16 |
+
years: "%d árum",
|
17 |
+
wordSeparator: " ",
|
18 |
+
numbers: []
|
19 |
+
};
|
js/timeago/locales/jquery.timeago.it-short.js
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Italian shortened
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: null,
|
4 |
+
prefixFromNow: null,
|
5 |
+
suffixAgo: "",
|
6 |
+
suffixFromNow: "",
|
7 |
+
seconds: "1m",
|
8 |
+
minute: "1m",
|
9 |
+
minutes: "%dm",
|
10 |
+
hour: "1h",
|
11 |
+
hours: "%dh",
|
12 |
+
day: "1g",
|
13 |
+
days: "%dg",
|
14 |
+
month: "1me",
|
15 |
+
months: "%dme",
|
16 |
+
year: "1a",
|
17 |
+
years: "%da",
|
18 |
+
wordSeparator: " ",
|
19 |
+
numbers: []
|
20 |
+
};
|
js/timeago/locales/jquery.timeago.it.js
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Italian
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
suffixAgo: "fa",
|
4 |
+
suffixFromNow: "da ora",
|
5 |
+
seconds: "meno di un minuto",
|
6 |
+
minute: "circa un minuto",
|
7 |
+
minutes: "%d minuti",
|
8 |
+
hour: "circa un'ora",
|
9 |
+
hours: "circa %d ore",
|
10 |
+
day: "un giorno",
|
11 |
+
days: "%d giorni",
|
12 |
+
month: "circa un mese",
|
13 |
+
months: "%d mesi",
|
14 |
+
year: "circa un anno",
|
15 |
+
years: "%d anni"
|
16 |
+
};
|
js/timeago/locales/jquery.timeago.ja.js
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Japanese
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: "",
|
4 |
+
prefixFromNow: "今から",
|
5 |
+
suffixAgo: "前",
|
6 |
+
suffixFromNow: "後",
|
7 |
+
seconds: "1 分未満",
|
8 |
+
minute: "約 1 分",
|
9 |
+
minutes: "%d 分",
|
10 |
+
hour: "約 1 時間",
|
11 |
+
hours: "約 %d 時間",
|
12 |
+
day: "約 1 日",
|
13 |
+
days: "約 %d 日",
|
14 |
+
month: "約 1 ヶ月",
|
15 |
+
months: "約 %d ヶ月",
|
16 |
+
year: "約 1 年",
|
17 |
+
years: "約 %d 年",
|
18 |
+
wordSeparator: ""
|
19 |
+
};
|
js/timeago/locales/jquery.timeago.jv.js
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Javanesse (Boso Jowo)
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: null,
|
4 |
+
prefixFromNow: null,
|
5 |
+
suffixAgo: "kepungkur",
|
6 |
+
suffixFromNow: "seko saiki",
|
7 |
+
seconds: "kurang seko sakmenit",
|
8 |
+
minute: "kurang luwih sakmenit",
|
9 |
+
minutes: "%d menit",
|
10 |
+
hour: "kurang luwih sakjam",
|
11 |
+
hours: "kurang luwih %d jam",
|
12 |
+
day: "sedina",
|
13 |
+
days: "%d dina",
|
14 |
+
month: "kurang luwih sewulan",
|
15 |
+
months: "%d wulan",
|
16 |
+
year: "kurang luwih setahun",
|
17 |
+
years: "%d tahun"
|
18 |
+
};
|
js/timeago/locales/jquery.timeago.ko.js
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Korean
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: null,
|
4 |
+
prefixFromNow: null,
|
5 |
+
suffixAgo: "전",
|
6 |
+
suffixFromNow: "후",
|
7 |
+
seconds: "1분",
|
8 |
+
minute: "약 1분",
|
9 |
+
minutes: "%d분",
|
10 |
+
hour: "약 1시간",
|
11 |
+
hours: "약 %d시간",
|
12 |
+
day: "하루",
|
13 |
+
days: "%d일",
|
14 |
+
month: "약 1개월",
|
15 |
+
months: "%d개월",
|
16 |
+
year: "약 1년",
|
17 |
+
years: "%d년",
|
18 |
+
wordSeparator: " ",
|
19 |
+
numbers: []
|
20 |
+
};
|
js/timeago/locales/jquery.timeago.ky.js
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Russian
|
2 |
+
(function() {
|
3 |
+
function numpf(n, f, s, t) {
|
4 |
+
// f - 1, 21, 31, ...
|
5 |
+
// s - 2-4, 22-24, 32-34 ...
|
6 |
+
// t - 5-20, 25-30, ...
|
7 |
+
var n10 = n % 10;
|
8 |
+
if ( (n10 == 1) && ( (n == 1) || (n > 20) ) ) {
|
9 |
+
return f;
|
10 |
+
} else if ( (n10 > 1) && (n10 < 5) && ( (n > 20) || (n < 10) ) ) {
|
11 |
+
return s;
|
12 |
+
} else {
|
13 |
+
return t;
|
14 |
+
}
|
15 |
+
}
|
16 |
+
|
17 |
+
jQuery.timeago.settings.strings = {
|
18 |
+
prefixAgo: null,
|
19 |
+
prefixFromNow: "через",
|
20 |
+
suffixAgo: "мурун",
|
21 |
+
suffixFromNow: null,
|
22 |
+
seconds: "1 минуттан аз",
|
23 |
+
minute: "минута",
|
24 |
+
minutes: function(value) { return numpf(value, "%d минута", "%d минута", "%d минут"); },
|
25 |
+
hour: "саат",
|
26 |
+
hours: function(value) { return numpf(value, "%d саат", "%d саат", "%d саат"); },
|
27 |
+
day: "күн",
|
28 |
+
days: function(value) { return numpf(value, "%d күн", "%d күн", "%d күн"); },
|
29 |
+
month: "ай",
|
30 |
+
months: function(value) { return numpf(value, "%d ай", "%d ай", "%d ай"); },
|
31 |
+
year: "жыл",
|
32 |
+
years: function(value) { return numpf(value, "%d жыл", "%d жыл", "%d жыл"); }
|
33 |
+
};
|
34 |
+
})();
|
js/timeago/locales/jquery.timeago.lt.js
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
//Lithuanian
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: "prieš",
|
4 |
+
prefixFromNow: null,
|
5 |
+
suffixAgo: null,
|
6 |
+
suffixFromNow: "nuo dabar",
|
7 |
+
seconds: "%d sek.",
|
8 |
+
minute: "min.",
|
9 |
+
minutes: "%d min.",
|
10 |
+
hour: "val.",
|
11 |
+
hours: "%d val.",
|
12 |
+
day: "1 d.",
|
13 |
+
days: "%d d.",
|
14 |
+
month: "mėn.",
|
15 |
+
months: "%d mėn.",
|
16 |
+
year: "metus",
|
17 |
+
years: "%d metus",
|
18 |
+
wordSeparator: " ",
|
19 |
+
numbers: []
|
20 |
+
};
|
js/timeago/locales/jquery.timeago.lv.js
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
//Latvian
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: "pirms",
|
4 |
+
prefixFromNow: null,
|
5 |
+
suffixAgo: null,
|
6 |
+
suffixFromNow: "no šī brīža",
|
7 |
+
seconds: "%d sek.",
|
8 |
+
minute: "min.",
|
9 |
+
minutes: "%d min.",
|
10 |
+
hour: "st.",
|
11 |
+
hours: "%d st.",
|
12 |
+
day: "1 d.",
|
13 |
+
days: "%d d.",
|
14 |
+
month: "mēnesis.",
|
15 |
+
months: "%d mēnesis.",
|
16 |
+
year: "gads",
|
17 |
+
years: "%d gads",
|
18 |
+
wordSeparator: " ",
|
19 |
+
numbers: []
|
20 |
+
};
|
js/timeago/locales/jquery.timeago.mk.js
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Macedonian
|
2 |
+
(function() {
|
3 |
+
jQuery.timeago.settings.strings={
|
4 |
+
prefixAgo: "пред",
|
5 |
+
prefixFromNow: "за",
|
6 |
+
suffixAgo: null,
|
7 |
+
suffixFromNow: null,
|
8 |
+
seconds: "%d секунди",
|
9 |
+
minute: "%d минута",
|
10 |
+
minutes: "%d минути",
|
11 |
+
hour: "%d час",
|
12 |
+
hours: "%d часа",
|
13 |
+
day: "%d ден",
|
14 |
+
days: "%d денови" ,
|
15 |
+
month: "%d месец",
|
16 |
+
months: "%d месеци",
|
17 |
+
year: "%d година",
|
18 |
+
years: "%d години"
|
19 |
+
};
|
20 |
+
})();
|
js/timeago/locales/jquery.timeago.nl.js
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Dutch
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: null,
|
4 |
+
prefixFromNow: "over",
|
5 |
+
suffixAgo: "geleden",
|
6 |
+
suffixFromNow: null,
|
7 |
+
seconds: "minder dan een minuut",
|
8 |
+
minute: "ongeveer een minuut",
|
9 |
+
minutes: "%d minuten",
|
10 |
+
hour: "ongeveer een uur",
|
11 |
+
hours: "ongeveer %d uur",
|
12 |
+
day: "een dag",
|
13 |
+
days: "%d dagen",
|
14 |
+
month: "ongeveer een maand",
|
15 |
+
months: "%d maanden",
|
16 |
+
year: "ongeveer een jaar",
|
17 |
+
years: "%d jaar",
|
18 |
+
wordSeparator: " ",
|
19 |
+
numbers: []
|
20 |
+
};
|
js/timeago/locales/jquery.timeago.no.js
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Norwegian
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: "for",
|
4 |
+
prefixFromNow: "om",
|
5 |
+
suffixAgo: "siden",
|
6 |
+
suffixFromNow: "",
|
7 |
+
seconds: "mindre enn et minutt",
|
8 |
+
minute: "ca. et minutt",
|
9 |
+
minutes: "%d minutter",
|
10 |
+
hour: "ca. en time",
|
11 |
+
hours: "ca. %d timer",
|
12 |
+
day: "en dag",
|
13 |
+
days: "%d dager",
|
14 |
+
month: "ca. en måned",
|
15 |
+
months: "%d måneder",
|
16 |
+
year: "ca. et år",
|
17 |
+
years: "%d år"
|
18 |
+
};
|
js/timeago/locales/jquery.timeago.pl.js
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Polish
|
2 |
+
(function() {
|
3 |
+
function numpf(n, s, t) {
|
4 |
+
// s - 2-4, 22-24, 32-34 ...
|
5 |
+
// t - 5-21, 25-31, ...
|
6 |
+
var n10 = n % 10;
|
7 |
+
if ( (n10 > 1) && (n10 < 5) && ( (n > 20) || (n < 10) ) ) {
|
8 |
+
return s;
|
9 |
+
} else {
|
10 |
+
return t;
|
11 |
+
}
|
12 |
+
}
|
13 |
+
|
14 |
+
jQuery.timeago.settings.strings = {
|
15 |
+
prefixAgo: null,
|
16 |
+
prefixFromNow: "za",
|
17 |
+
suffixAgo: "temu",
|
18 |
+
suffixFromNow: null,
|
19 |
+
seconds: "mniej niż minutę",
|
20 |
+
minute: "minutę",
|
21 |
+
minutes: function(value) { return numpf(value, "%d minuty", "%d minut"); },
|
22 |
+
hour: "godzinę",
|
23 |
+
hours: function(value) { return numpf(value, "%d godziny", "%d godzin"); },
|
24 |
+
day: "dzień",
|
25 |
+
days: "%d dni",
|
26 |
+
month: "miesiąc",
|
27 |
+
months: function(value) { return numpf(value, "%d miesiące", "%d miesięcy"); },
|
28 |
+
year: "rok",
|
29 |
+
years: function(value) { return numpf(value, "%d lata", "%d lat"); }
|
30 |
+
};
|
31 |
+
})();
|
js/timeago/locales/jquery.timeago.pt-br-short.js
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Portuguese Brasil shortened
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: null,
|
4 |
+
prefixFromNow: null,
|
5 |
+
suffixAgo: "",
|
6 |
+
suffixFromNow: "",
|
7 |
+
seconds: "1m",
|
8 |
+
minute: "1m",
|
9 |
+
minutes: "%dm",
|
10 |
+
hour: "1h",
|
11 |
+
hours: "%dh",
|
12 |
+
day: "1d",
|
13 |
+
days: "%dd",
|
14 |
+
month: "1M",
|
15 |
+
months: "%dM",
|
16 |
+
year: "1a",
|
17 |
+
years: "%da",
|
18 |
+
wordSeparator: " ",
|
19 |
+
numbers: []
|
20 |
+
};
|
js/timeago/locales/jquery.timeago.pt-br.js
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Brazilian Portuguese
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: "há",
|
4 |
+
prefixFromNow: "em",
|
5 |
+
suffixAgo: null,
|
6 |
+
suffixFromNow: null,
|
7 |
+
seconds: "alguns segundos",
|
8 |
+
minute: "um minuto",
|
9 |
+
minutes: "%d minutos",
|
10 |
+
hour: "uma hora",
|
11 |
+
hours: "%d horas",
|
12 |
+
day: "um dia",
|
13 |
+
days: "%d dias",
|
14 |
+
month: "um mês",
|
15 |
+
months: "%d meses",
|
16 |
+
year: "um ano",
|
17 |
+
years: "%d anos"
|
18 |
+
};
|
js/timeago/locales/jquery.timeago.pt-short.js
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Portuguese shortened
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: null,
|
4 |
+
prefixFromNow: null,
|
5 |
+
suffixAgo: "",
|
6 |
+
suffixFromNow: "",
|
7 |
+
seconds: "1m",
|
8 |
+
minute: "1m",
|
9 |
+
minutes: "%dm",
|
10 |
+
hour: "1h",
|
11 |
+
hours: "%dh",
|
12 |
+
day: "1d",
|
13 |
+
days: "%dd",
|
14 |
+
month: "1M",
|
15 |
+
months: "%dM",
|
16 |
+
year: "1a",
|
17 |
+
years: "%da",
|
18 |
+
wordSeparator: " ",
|
19 |
+
numbers: []
|
20 |
+
};
|
js/timeago/locales/jquery.timeago.pt.js
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Portuguese
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
suffixAgo: "atrás",
|
4 |
+
suffixFromNow: "a partir de agora",
|
5 |
+
seconds: "menos de um minuto",
|
6 |
+
minute: "cerca de um minuto",
|
7 |
+
minutes: "%d minutos",
|
8 |
+
hour: "cerca de uma hora",
|
9 |
+
hours: "cerca de %d horas",
|
10 |
+
day: "um dia",
|
11 |
+
days: "%d dias",
|
12 |
+
month: "cerca de um mês",
|
13 |
+
months: "%d meses",
|
14 |
+
year: "cerca de um ano",
|
15 |
+
years: "%d anos"
|
16 |
+
};
|
js/timeago/locales/jquery.timeago.ro.js
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Romanian
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: "acum",
|
4 |
+
prefixFromNow: "in timp de",
|
5 |
+
suffixAgo: "",
|
6 |
+
suffixFromNow: "",
|
7 |
+
seconds: "mai putin de un minut",
|
8 |
+
minute: "un minut",
|
9 |
+
minutes: "%d minute",
|
10 |
+
hour: "o ora",
|
11 |
+
hours: "%d ore",
|
12 |
+
day: "o zi",
|
13 |
+
days: "%d zile",
|
14 |
+
month: "o luna",
|
15 |
+
months: "%d luni",
|
16 |
+
year: "un an",
|
17 |
+
years: "%d ani"
|
18 |
+
};
|
js/timeago/locales/jquery.timeago.rs.js
ADDED
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Serbian
|
2 |
+
(function () {
|
3 |
+
var numpf;
|
4 |
+
|
5 |
+
numpf = function (n, f, s, t) {
|
6 |
+
var n10;
|
7 |
+
n10 = n % 10;
|
8 |
+
if (n10 === 1 && (n === 1 || n > 20)) {
|
9 |
+
return f;
|
10 |
+
} else if (n10 > 1 && n10 < 5 && (n > 20 || n < 10)) {
|
11 |
+
return s;
|
12 |
+
} else {
|
13 |
+
return t;
|
14 |
+
}
|
15 |
+
};
|
16 |
+
|
17 |
+
jQuery.timeago.settings.strings = {
|
18 |
+
prefixAgo: "pre",
|
19 |
+
prefixFromNow: "za",
|
20 |
+
suffixAgo: null,
|
21 |
+
suffixFromNow: null,
|
22 |
+
second: "sekund",
|
23 |
+
seconds: function (value) {
|
24 |
+
return numpf(value, "%d sekund", "%d sekunde", "%d sekundi");
|
25 |
+
},
|
26 |
+
minute: "oko minut",
|
27 |
+
minutes: function (value) {
|
28 |
+
return numpf(value, "%d minut", "%d minuta", "%d minuta");
|
29 |
+
},
|
30 |
+
hour: "oko jedan sat",
|
31 |
+
hours: function (value) {
|
32 |
+
return numpf(value, "%d sat", "%d sata", "%d sati");
|
33 |
+
},
|
34 |
+
day: "jedan dan",
|
35 |
+
days: function (value) {
|
36 |
+
return numpf(value, "%d dan", "%d dana", "%d dana");
|
37 |
+
},
|
38 |
+
month: "mesec dana",
|
39 |
+
months: function (value) {
|
40 |
+
return numpf(value, "%d mesec", "%d meseca", "%d meseci");
|
41 |
+
},
|
42 |
+
year: "godinu dana",
|
43 |
+
years: function (value) {
|
44 |
+
return numpf(value, "%d godinu", "%d godine", "%d godina");
|
45 |
+
},
|
46 |
+
wordSeparator: " "
|
47 |
+
};
|
48 |
+
|
49 |
+
}).call(this);
|
js/timeago/locales/jquery.timeago.ru.js
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Russian
|
2 |
+
(function() {
|
3 |
+
function numpf(n, f, s, t) {
|
4 |
+
// f - 1, 21, 31, ...
|
5 |
+
// s - 2-4, 22-24, 32-34 ...
|
6 |
+
// t - 5-20, 25-30, ...
|
7 |
+
var n10 = n % 10;
|
8 |
+
if ( (n10 == 1) && ( (n == 1) || (n > 20) ) ) {
|
9 |
+
return f;
|
10 |
+
} else if ( (n10 > 1) && (n10 < 5) && ( (n > 20) || (n < 10) ) ) {
|
11 |
+
return s;
|
12 |
+
} else {
|
13 |
+
return t;
|
14 |
+
}
|
15 |
+
}
|
16 |
+
|
17 |
+
jQuery.timeago.settings.strings = {
|
18 |
+
prefixAgo: null,
|
19 |
+
prefixFromNow: "через",
|
20 |
+
suffixAgo: "назад",
|
21 |
+
suffixFromNow: null,
|
22 |
+
seconds: "меньше минуты",
|
23 |
+
minute: "минуту",
|
24 |
+
minutes: function(value) { return numpf(value, "%d минута", "%d минуты", "%d минут"); },
|
25 |
+
hour: "час",
|
26 |
+
hours: function(value) { return numpf(value, "%d час", "%d часа", "%d часов"); },
|
27 |
+
day: "день",
|
28 |
+
days: function(value) { return numpf(value, "%d день", "%d дня", "%d дней"); },
|
29 |
+
month: "месяц",
|
30 |
+
months: function(value) { return numpf(value, "%d месяц", "%d месяца", "%d месяцев"); },
|
31 |
+
year: "год",
|
32 |
+
years: function(value) { return numpf(value, "%d год", "%d года", "%d лет"); }
|
33 |
+
};
|
34 |
+
})();
|
js/timeago/locales/jquery.timeago.rw.js
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Kinyarwanda
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: "hashize",
|
4 |
+
prefixFromNow: "mu",
|
5 |
+
suffixAgo: null,
|
6 |
+
suffixFromNow: null,
|
7 |
+
seconds: "amasegonda macye",
|
8 |
+
minute: "umunota",
|
9 |
+
minutes: "iminota %d",
|
10 |
+
hour: "isaha",
|
11 |
+
hours: "amasaha %d",
|
12 |
+
day: "umunsi",
|
13 |
+
days: "iminsi %d",
|
14 |
+
month: "ukwezi",
|
15 |
+
months: "amezi %d",
|
16 |
+
year: "umwaka",
|
17 |
+
years: "imyaka %d",
|
18 |
+
wordSeparator: " ",
|
19 |
+
numbers: []
|
20 |
+
};
|
js/timeago/locales/jquery.timeago.si.js
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Sinhalese (SI)
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: null,
|
4 |
+
prefixFromNow: null,
|
5 |
+
suffixAgo: "පෙර",
|
6 |
+
suffixFromNow: "පසුව",
|
7 |
+
seconds: "තත්පර කිහිපයකට",
|
8 |
+
minute: "මිනිත්තුවකට පමණ",
|
9 |
+
minutes: "මිනිත්තු %d කට",
|
10 |
+
hour: "පැයක් පමණ ",
|
11 |
+
hours: "පැය %d කට පමණ",
|
12 |
+
day: "දවසක ට",
|
13 |
+
days: "දවස් %d කට ",
|
14 |
+
month: "මාසයක් පමණ",
|
15 |
+
months: "මාස %d කට",
|
16 |
+
year: "වසරක් පමණ",
|
17 |
+
years: "වසරක් %d කට පමණ"
|
18 |
+
};
|
js/timeago/locales/jquery.timeago.sk.js
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Slovak
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: "pred",
|
4 |
+
prefixFromNow: null,
|
5 |
+
suffixAgo: null,
|
6 |
+
suffixFromNow: null,
|
7 |
+
seconds: "menej než minútou",
|
8 |
+
minute: "minútou",
|
9 |
+
minutes: "%d minútami",
|
10 |
+
hour: "hodinou",
|
11 |
+
hours: "%d hodinami",
|
12 |
+
day: "1 dňom",
|
13 |
+
days: "%d dňami",
|
14 |
+
month: "1 mesiacom",
|
15 |
+
months: "%d mesiacmi",
|
16 |
+
year: "1 rokom",
|
17 |
+
years: "%d rokmi"
|
18 |
+
};
|
js/timeago/locales/jquery.timeago.sl.js
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Slovenian with support for dual
|
2 |
+
(function () {
|
3 |
+
var numpf;
|
4 |
+
numpf = function (n, a) {
|
5 |
+
return a[n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0];
|
6 |
+
};
|
7 |
+
|
8 |
+
jQuery.timeago.settings.strings = {
|
9 |
+
prefixAgo: null,
|
10 |
+
prefixFromNow: "čez",
|
11 |
+
suffixAgo: "nazaj",
|
12 |
+
suffixFromNow: null,
|
13 |
+
second: "sekundo",
|
14 |
+
seconds: function (value) {
|
15 |
+
return numpf(value, ["%d sekund", "%d sekundo", "%d sekundi", "%d sekunde"]);
|
16 |
+
},
|
17 |
+
minute: "minuto",
|
18 |
+
minutes: function (value) {
|
19 |
+
return numpf(value, ["%d minut", "%d minuto", "%d minuti", "%d minute"]);
|
20 |
+
},
|
21 |
+
hour: "eno uro",
|
22 |
+
hours: function (value) {
|
23 |
+
return numpf(value, ["%d ur", "%d uro", "%d uri", "%d ure"]);
|
24 |
+
},
|
25 |
+
day: "en dan",
|
26 |
+
days: function (value) {
|
27 |
+
return numpf(value, ["%d dni", "%d dan", "%d dneva", "%d dni"]);
|
28 |
+
},
|
29 |
+
month: "en mesec",
|
30 |
+
months: function (value) {
|
31 |
+
return numpf(value, ["%d mescov", "%d mesec", "%d mesca", "%d mesce"]);
|
32 |
+
},
|
33 |
+
year: "eno leto",
|
34 |
+
years: function (value) {
|
35 |
+
return numpf(value, ["%d let", "%d leto", "%d leti", "%d leta"]);
|
36 |
+
},
|
37 |
+
wordSeparator: " "
|
38 |
+
};
|
39 |
+
|
40 |
+
}).call(this);
|
js/timeago/locales/jquery.timeago.sr.js
ADDED
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Serbian
|
2 |
+
(function () {
|
3 |
+
var numpf;
|
4 |
+
|
5 |
+
numpf = function (n, f, s, t) {
|
6 |
+
var n10;
|
7 |
+
n10 = n % 10;
|
8 |
+
if (n10 === 1 && (n === 1 || n > 20)) {
|
9 |
+
return f;
|
10 |
+
} else if (n10 > 1 && n10 < 5 && (n > 20 || n < 10)) {
|
11 |
+
return s;
|
12 |
+
} else {
|
13 |
+
return t;
|
14 |
+
}
|
15 |
+
};
|
16 |
+
|
17 |
+
jQuery.timeago.settings.strings = {
|
18 |
+
prefixAgo: "пре",
|
19 |
+
prefixFromNow: "за",
|
20 |
+
suffixAgo: null,
|
21 |
+
suffixFromNow: null,
|
22 |
+
second: "секунд",
|
23 |
+
seconds: function (value) {
|
24 |
+
return numpf(value, "%d секунд", "%d секунде", "%d секунди");
|
25 |
+
},
|
26 |
+
minute: "један минут",
|
27 |
+
minutes: function (value) {
|
28 |
+
return numpf(value, "%d минут", "%d минута", "%d минута");
|
29 |
+
},
|
30 |
+
hour: "један сат",
|
31 |
+
hours: function (value) {
|
32 |
+
return numpf(value, "%d сат", "%d сата", "%d сати");
|
33 |
+
},
|
34 |
+
day: "један дан",
|
35 |
+
days: function (value) {
|
36 |
+
return numpf(value, "%d дан", "%d дана", "%d дана");
|
37 |
+
},
|
38 |
+
month: "месец дана",
|
39 |
+
months: function (value) {
|
40 |
+
return numpf(value, "%d месец", "%d месеца", "%d месеци");
|
41 |
+
},
|
42 |
+
year: "годину дана",
|
43 |
+
years: function (value) {
|
44 |
+
return numpf(value, "%d годину", "%d године", "%d година");
|
45 |
+
},
|
46 |
+
wordSeparator: " "
|
47 |
+
};
|
48 |
+
|
49 |
+
}).call(this);
|
js/timeago/locales/jquery.timeago.sv.js
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Swedish
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: "för",
|
4 |
+
prefixFromNow: "om",
|
5 |
+
suffixAgo: "sedan",
|
6 |
+
suffixFromNow: "",
|
7 |
+
seconds: "mindre än en minut",
|
8 |
+
minute: "ungefär en minut",
|
9 |
+
minutes: "%d minuter",
|
10 |
+
hour: "ungefär en timme",
|
11 |
+
hours: "ungefär %d timmar",
|
12 |
+
day: "en dag",
|
13 |
+
days: "%d dagar",
|
14 |
+
month: "ungefär en månad",
|
15 |
+
months: "%d månader",
|
16 |
+
year: "ungefär ett år",
|
17 |
+
years: "%d år"
|
18 |
+
};
|
js/timeago/locales/jquery.timeago.th.js
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Thai
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: null,
|
4 |
+
prefixFromNow: null,
|
5 |
+
suffixAgo: "ที่แล้ว",
|
6 |
+
suffixFromNow: "จากตอนนี้",
|
7 |
+
seconds: "น้อยกว่าหนึ่งนาที",
|
8 |
+
minute: "ประมาณหนึ่งนาที",
|
9 |
+
minutes: "%d นาที",
|
10 |
+
hour: "ประมาณหนึ่งชั่วโมง",
|
11 |
+
hours: "ประมาณ %d ชั่วโมง",
|
12 |
+
day: "หนึ่งวัน",
|
13 |
+
days: "%d วัน",
|
14 |
+
month: "ประมาณหนึ่งเดือน",
|
15 |
+
months: "%d เดือน",
|
16 |
+
year: "ประมาณหนึ่งปี",
|
17 |
+
years: "%d ปี",
|
18 |
+
wordSeparator: "",
|
19 |
+
numbers: []
|
20 |
+
};
|
js/timeago/locales/jquery.timeago.tr.js
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Turkish
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
suffixAgo: 'önce',
|
4 |
+
suffixFromNow: null,
|
5 |
+
seconds: '1 dakikadan',
|
6 |
+
minute: '1 dakika',
|
7 |
+
minutes: '%d dakika',
|
8 |
+
hour: '1 saat',
|
9 |
+
hours: '%d saat',
|
10 |
+
day: '1 gün',
|
11 |
+
days: '%d gün',
|
12 |
+
month: '1 ay',
|
13 |
+
months: '%d ay',
|
14 |
+
year: '1 yıl',
|
15 |
+
years: '%d yıl'
|
16 |
+
};
|
js/timeago/locales/jquery.timeago.uk.js
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Ukrainian
|
2 |
+
(function() {
|
3 |
+
function numpf(n, f, s, t) {
|
4 |
+
// f - 1, 21, 31, ...
|
5 |
+
// s - 2-4, 22-24, 32-34 ...
|
6 |
+
// t - 5-20, 25-30, ...
|
7 |
+
var n10 = n % 10;
|
8 |
+
if ( (n10 == 1) && ( (n == 1) || (n > 20) ) ) {
|
9 |
+
return f;
|
10 |
+
} else if ( (n10 > 1) && (n10 < 5) && ( (n > 20) || (n < 10) ) ) {
|
11 |
+
return s;
|
12 |
+
} else {
|
13 |
+
return t;
|
14 |
+
}
|
15 |
+
}
|
16 |
+
|
17 |
+
jQuery.timeago.settings.strings = {
|
18 |
+
prefixAgo: null,
|
19 |
+
prefixFromNow: "через",
|
20 |
+
suffixAgo: "тому",
|
21 |
+
suffixFromNow: null,
|
22 |
+
seconds: "менше хвилини",
|
23 |
+
minute: "хвилина",
|
24 |
+
minutes: function(value) { return numpf(value, "%d хвилина", "%d хвилини", "%d хвилин"); },
|
25 |
+
hour: "година",
|
26 |
+
hours: function(value) { return numpf(value, "%d година", "%d години", "%d годин"); },
|
27 |
+
day: "день",
|
28 |
+
days: function(value) { return numpf(value, "%d день", "%d дні", "%d днів"); },
|
29 |
+
month: "місяць",
|
30 |
+
months: function(value) { return numpf(value, "%d місяць", "%d місяці", "%d місяців"); },
|
31 |
+
year: "рік",
|
32 |
+
years: function(value) { return numpf(value, "%d рік", "%d роки", "%d років"); }
|
33 |
+
};
|
34 |
+
})();
|
js/timeago/locales/jquery.timeago.uz.js
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
//Uzbek
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: null,
|
4 |
+
prefixFromNow: "keyin",
|
5 |
+
suffixAgo: "avval",
|
6 |
+
suffixFromNow: null,
|
7 |
+
seconds: "bir necha soniya",
|
8 |
+
minute: "1 daqiqa",
|
9 |
+
minutes: function(value) { return "%d daqiqa"; },
|
10 |
+
hour: "1 soat",
|
11 |
+
hours: function(value) { return "%d soat"; },
|
12 |
+
day: "1 kun",
|
13 |
+
days: function(value) { return "%d kun"; },
|
14 |
+
month: "1 oy",
|
15 |
+
months: function(value) { return "%d oy"; },
|
16 |
+
year: "1 yil",
|
17 |
+
years: function(value) { return "%d yil"; },
|
18 |
+
wordSeparator: " "
|
19 |
+
};
|
js/timeago/locales/jquery.timeago.vi.js
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Vietnamese
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: 'cách đây',
|
4 |
+
prefixFromNow: null,
|
5 |
+
suffixAgo: null,
|
6 |
+
suffixFromNow: "trước",
|
7 |
+
seconds: "chưa đến một phút",
|
8 |
+
minute: "khoảng một phút",
|
9 |
+
minutes: "%d phút",
|
10 |
+
hour: "khoảng một tiếng",
|
11 |
+
hours: "khoảng %d tiếng",
|
12 |
+
day: "một ngày",
|
13 |
+
days: "%d ngày",
|
14 |
+
month: "khoảng một tháng",
|
15 |
+
months: "%d tháng",
|
16 |
+
year: "khoảng một năm",
|
17 |
+
years: "%d năm",
|
18 |
+
wordSeparator: " ",
|
19 |
+
numbers: []
|
20 |
+
};
|
js/timeago/locales/jquery.timeago.zh-CN.js
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Simplified Chinese
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: null,
|
4 |
+
prefixFromNow: "从现在开始",
|
5 |
+
suffixAgo: "之前",
|
6 |
+
suffixFromNow: null,
|
7 |
+
seconds: "不到1分钟",
|
8 |
+
minute: "大约1分钟",
|
9 |
+
minutes: "%d分钟",
|
10 |
+
hour: "大约1小时",
|
11 |
+
hours: "大约%d小时",
|
12 |
+
day: "1天",
|
13 |
+
days: "%d天",
|
14 |
+
month: "大约1个月",
|
15 |
+
months: "%d月",
|
16 |
+
year: "大约1年",
|
17 |
+
years: "%d年",
|
18 |
+
numbers: [],
|
19 |
+
wordSeparator: ""
|
20 |
+
};
|
js/timeago/locales/jquery.timeago.zh-TW.js
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Traditional Chinese, zh-tw
|
2 |
+
jQuery.timeago.settings.strings = {
|
3 |
+
prefixAgo: null,
|
4 |
+
prefixFromNow: "從現在開始",
|
5 |
+
suffixAgo: "之前",
|
6 |
+
suffixFromNow: null,
|
7 |
+
seconds: "不到1分鐘",
|
8 |
+
minute: "大約1分鐘",
|
9 |
+
minutes: "%d分鐘",
|
10 |
+
hour: "大約1小時",
|
11 |
+
hours: "%d小時",
|
12 |
+
day: "大約1天",
|
13 |
+
days: "%d天",
|
14 |
+
month: "大約1個月",
|
15 |
+
months: "%d個月",
|
16 |
+
year: "大約1年",
|
17 |
+
years: "%d年",
|
18 |
+
numbers: [],
|
19 |
+
wordSeparator: ""
|
20 |
+
};
|
loggers/SimpleUserLogger.php
CHANGED
@@ -318,8 +318,10 @@ class SimpleUserLogger extends SimpleLogger {
|
|
318 |
|
319 |
$context["edit_profile_link"] = get_edit_user_link($wp_user->ID);
|
320 |
|
|
|
|
|
321 |
// User still exist, so link to their profile
|
322 |
-
if ($current_user_id === $context["_user_id"]) {
|
323 |
|
324 |
// User that is viewing the log is the same as the edited user
|
325 |
$msg = __('Edited <a href="{edit_profile_link}">your profile</a>', "simple-history");
|
318 |
|
319 |
$context["edit_profile_link"] = get_edit_user_link($wp_user->ID);
|
320 |
|
321 |
+
$use_you = apply_filters("simple_history/user_logger/plain_text_output_use_you", true);
|
322 |
+
|
323 |
// User still exist, so link to their profile
|
324 |
+
if ( $current_user_id === $context["_user_id"] && $use_you ) {
|
325 |
|
326 |
// User that is viewing the log is the same as the edited user
|
327 |
$msg = __('Edited <a href="{edit_profile_link}">your profile</a>', "simple-history");
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Donate link: http://eskapism.se/sida/donate/
|
|
4 |
Tags: history, log, changes, changelog, audit, trail, pages, attachments, users, cms, dashboard, admin, syslog, feed, activity, stream, audit trail, brute-force
|
5 |
Requires at least: 3.6.0
|
6 |
Tested up to: 4.4
|
7 |
-
Stable tag: 2.5.
|
8 |
|
9 |
View changes made by users within WordPress. See who created a page, uploaded an attachment or approved an comment, and more.
|
10 |
|
@@ -107,6 +107,7 @@ So far Simple History is translated to:
|
|
107 |
* Danish
|
108 |
* Dutch
|
109 |
* Finnish
|
|
|
110 |
|
111 |
I'm looking for translations of Simple History in more languages! If you're interested please check out the [localization](https://developer.wordpress.org/plugins/internationalization/localization/) part of the Plugin Handbook for info on how to translate plugins. When you're done with your translation email it to me at par.thernstrom@gmail.com, or [add a pull request](https://github.com/bonny/WordPress-Simple-History/).
|
112 |
|
@@ -142,7 +143,14 @@ initiated by a specific user.
|
|
142 |
|
143 |
## Changelog
|
144 |
|
145 |
-
= 2.5.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
|
147 |
- Fixed: No longer assume that the ajaxurl don't already contains query params. Should fix problems with third party plugins like [WPML](https://wpml.org/).
|
148 |
- Fixed: Notice if context key did not exist. Should fix https://github.com/bonny/WordPress-Simple-History/issues/100.
|
4 |
Tags: history, log, changes, changelog, audit, trail, pages, attachments, users, cms, dashboard, admin, syslog, feed, activity, stream, audit trail, brute-force
|
5 |
Requires at least: 3.6.0
|
6 |
Tested up to: 4.4
|
7 |
+
Stable tag: 2.5.2
|
8 |
|
9 |
View changes made by users within WordPress. See who created a page, uploaded an attachment or approved an comment, and more.
|
10 |
|
107 |
* Danish
|
108 |
* Dutch
|
109 |
* Finnish
|
110 |
+
* French
|
111 |
|
112 |
I'm looking for translations of Simple History in more languages! If you're interested please check out the [localization](https://developer.wordpress.org/plugins/internationalization/localization/) part of the Plugin Handbook for info on how to translate plugins. When you're done with your translation email it to me at par.thernstrom@gmail.com, or [add a pull request](https://github.com/bonny/WordPress-Simple-History/).
|
113 |
|
143 |
|
144 |
## Changelog
|
145 |
|
146 |
+
= 2.5.2 (February 2016) =
|
147 |
+
|
148 |
+
- Added: The GUI log now updates the relative "fuzzy" timestamps in real time. This means that if you keep the log opened, the relative date for each event, for example "2 minutes ago" or "2 hours ago", will always be up to date (hah!). Keep the log opened for 5 minutes and you will see that the event that previously said "2 minutes ago" now says "7 minutes ago". Fixes https://github.com/bonny/WordPress-Simple-History/issues/88 and is implemented using the great [timeago jquery plugin](http://timeago.yarp.com/).
|
149 |
+
- Added: Filter `simple_history/user_logger/plain_text_output_use_you`. Works the same way as the `simple_history/header_initiator_use_you` filter, but for the rich text part when a user has edited their profile.
|
150 |
+
- Fixed: Logger slugs that contained for example backslashes (becuase they where namespaced) would not show up in the log. Now logger slugs are escaped. Fixes https://github.com/bonny/WordPress-Simple-History/issues/103.
|
151 |
+
- Changed: Actions and things that only is needed in admin area are now only called if `is_admin()`. Fixes https://github.com/bonny/WordPress-Simple-History/issues/105.
|
152 |
+
|
153 |
+
= 2.5.1 (February 2016) =
|
154 |
|
155 |
- Fixed: No longer assume that the ajaxurl don't already contains query params. Should fix problems with third party plugins like [WPML](https://wpml.org/).
|
156 |
- Fixed: Notice if context key did not exist. Should fix https://github.com/bonny/WordPress-Simple-History/issues/100.
|