commit
9dea644c79
@ -0,0 +1,22 @@ |
|||||||
|
Copyright (c) 2008-2013 Ryan McGeary |
||||||
|
|
||||||
|
MIT License |
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining |
||||||
|
a copy of this software and associated documentation files (the |
||||||
|
"Software"), to deal in the Software without restriction, including |
||||||
|
without limitation the rights to use, copy, modify, merge, publish, |
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to |
||||||
|
permit persons to whom the Software is furnished to do so, subject to |
||||||
|
the following conditions: |
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be |
||||||
|
included in all copies or substantial portions of the Software. |
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE |
||||||
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION |
||||||
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION |
||||||
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
||||||
@ -0,0 +1,109 @@ |
|||||||
|
# timeago: a jQuery plugin |
||||||
|
|
||||||
|
Timeago is a jQuery plugin that makes it easy to support automatically updating |
||||||
|
fuzzy timestamps (e.g. "4 minutes ago" or "about 1 day ago") from ISO 8601 |
||||||
|
formatted dates and times embedded in your HTML (à la microformats). |
||||||
|
|
||||||
|
## How You Can Help |
||||||
|
|
||||||
|
**If you like this project, please help. [Donate via Gittip][gittip] or [buy me a coffee with Bitcoin][bitcoin].**<br> |
||||||
|
[][gittip] |
||||||
|
[][bitcoin] |
||||||
|
|
||||||
|
**[Bitcoin][bitcoin]**: `1rmm5tv6f997JK5bLcGbRCZyVjZUPkQ2m`<br> |
||||||
|
[![Bitcoin Donation][bitcoin-qr-small]][bitcoin-qr-big] |
||||||
|
|
||||||
|
## Need Help? |
||||||
|
|
||||||
|
**You can [book a session with me on Codementor][codementor].**<br> |
||||||
|
[][codementor] |
||||||
|
|
||||||
|
[gittip]: https://www.gittip.com/rmm5t/ "Donate to rmm5t for open source!" |
||||||
|
[bitcoin]: https://blockchain.info/address/1rmm5tv6f997JK5bLcGbRCZyVjZUPkQ2m "Buy rmm5t a coffee for open source!" |
||||||
|
[bitcoin-scheme]: bitcoin:1rmm5tv6f997JK5bLcGbRCZyVjZUPkQ2m?amount=0.01&label=Coffee%20to%20rmm5t%20for%20Open%20Source "Buy rmm5t a coffee for open source!" |
||||||
|
[bitcoin-qr-small]: http://chart.apis.google.com/chart?cht=qr&chs=150x150&chl=bitcoin%3A1rmm5tv6f997JK5bLcGbRCZyVjZUPkQ2m%3Famount%3D0.01%26label%3DCoffee%2520to%2520rmm5t%2520for%2520Open%2520Source |
||||||
|
[bitcoin-qr-big]: http://chart.apis.google.com/chart?cht=qr&chs=500x500&chl=bitcoin%3A1rmm5tv6f997JK5bLcGbRCZyVjZUPkQ2m%3Famount%3D0.01%26label%3DCoffee%2520to%2520rmm5t%2520for%2520Open%2520Source |
||||||
|
[codementor]: https://www.codementor.io/rmm5t?utm_campaign=profile&utm_source=button-rmm5t&utm_medium=shields "Book a session with rmm5t on Codementor!" |
||||||
|
|
||||||
|
## Usage |
||||||
|
|
||||||
|
First, load jQuery and the plugin: |
||||||
|
|
||||||
|
```html |
||||||
|
<script src="jquery.min.js" type="text/javascript"></script> |
||||||
|
<script src="jquery.timeago.js" type="text/javascript"></script> |
||||||
|
``` |
||||||
|
|
||||||
|
Now, let's attach it to your timestamps on DOM ready - put this in the head |
||||||
|
section: |
||||||
|
|
||||||
|
```html |
||||||
|
<script type="text/javascript"> |
||||||
|
jQuery(document).ready(function() { |
||||||
|
$("abbr.timeago").timeago(); |
||||||
|
}); |
||||||
|
</script> |
||||||
|
``` |
||||||
|
|
||||||
|
This will turn all abbr elements with a class of timeago and an ISO 8601 |
||||||
|
timestamp in the title (conforming to the |
||||||
|
[datetime design pattern microformat](http://microformats.org/wiki/datetime-design-pattern)): |
||||||
|
|
||||||
|
```html |
||||||
|
<abbr class="timeago" title="2011-12-17T09:24:17Z">December 17, 2011</abbr> |
||||||
|
``` |
||||||
|
|
||||||
|
into something like this: |
||||||
|
|
||||||
|
```html |
||||||
|
<abbr class="timeago" title="December 17, 2011">about 1 day ago</abbr> |
||||||
|
``` |
||||||
|
|
||||||
|
HTML5 `<time>` elements are also supported: |
||||||
|
|
||||||
|
```html |
||||||
|
<time class="timeago" datetime="2011-12-17T09:24:17Z">December 17, 2011</time> |
||||||
|
``` |
||||||
|
|
||||||
|
As time passes, the timestamps will automatically update. |
||||||
|
|
||||||
|
**For more usage and examples**: [http://timeago.yarp.com/](http://timeago.yarp.com/) |
||||||
|
|
||||||
|
**For different language configurations**: visit the [`locales`](https://github.com/rmm5t/jquery-timeago/tree/master/locales) directory. |
||||||
|
|
||||||
|
## Changes |
||||||
|
|
||||||
|
| Version | Notes | |
||||||
|
|---------|---------------------------------------------------------------------------------| |
||||||
|
| 1.4.x | ([compare][compare-1.4]) Added allowPast setting | |
||||||
|
| 1.3.x | ([compare][compare-1.3]) Added updateFromDOM function; bug fixes; bower support | |
||||||
|
| 1.2.x | ([compare][compare-1.2]) Added cutoff setting | |
||||||
|
| 1.1.x | ([compare][compare-1.1]) Added update function | |
||||||
|
| 1.0.x | ([compare][compare-1.0]) locale updates; bug fixes; AMD wrapper | |
||||||
|
| 0.11.x | ([compare][compare-0.11]) natural rounding; locale updates; | |
||||||
|
| 0.10.x | ([compare][compare-0.10]) locale updates | |
||||||
|
| 0.9.x | ([compare][compare-0.9]) microsecond support; bug fixes | |
||||||
|
| 0.8.x | ([compare][compare-0.8]) `<time>` element support; bug fixes | |
||||||
|
| 0.7.x | ([compare][compare-0.7]) locale function overrides; unit tests | |
||||||
|
| ... | ... | |
||||||
|
|
||||||
|
[compare-1.4]: https://github.com/rmm5t/jquery-timeago/compare/v1.3.2...v1.4.1 |
||||||
|
[compare-1.3]: https://github.com/rmm5t/jquery-timeago/compare/v1.2.0...v1.3.2 |
||||||
|
[compare-1.2]: https://github.com/rmm5t/jquery-timeago/compare/v1.1.0...v1.2.0 |
||||||
|
[compare-1.1]: https://github.com/rmm5t/jquery-timeago/compare/v1.0.2...v1.1.0 |
||||||
|
[compare-1.0]: https://github.com/rmm5t/jquery-timeago/compare/v0.11.4...v1.0.2 |
||||||
|
[compare-0.11]: https://github.com/rmm5t/jquery-timeago/compare/v0.10.1...v0.11.4 |
||||||
|
[compare-0.10]: https://github.com/rmm5t/jquery-timeago/compare/v0.9.3...v0.10.1 |
||||||
|
[compare-0.9]: https://github.com/rmm5t/jquery-timeago/compare/v0.8.2...v0.9.3 |
||||||
|
[compare-0.8]: https://github.com/rmm5t/jquery-timeago/compare/v0.7.2...v0.8.2 |
||||||
|
[compare-0.7]: https://github.com/rmm5t/jquery-timeago/compare/v0.6.2...v0.7.2 |
||||||
|
|
||||||
|
## Author |
||||||
|
|
||||||
|
[Ryan McGeary](http://ryan.mcgeary.org) ([@rmm5t](http://twitter.com/rmm5t)) |
||||||
|
|
||||||
|
## Other |
||||||
|
|
||||||
|
[MIT License](http://www.opensource.org/licenses/mit-license.php) |
||||||
|
|
||||||
|
Copyright (c) 2008-2013, Ryan McGeary (ryan -[at]- mcgeary [*dot*] org) |
||||||
@ -0,0 +1,17 @@ |
|||||||
|
require "bundler/setup" |
||||||
|
|
||||||
|
task :default => :test |
||||||
|
|
||||||
|
desc "Publish \"marketing\" docs" |
||||||
|
task :publish do |
||||||
|
sh("git rebase master gh-pages") |
||||||
|
sh("git checkout master") |
||||||
|
sh("git push origin master") |
||||||
|
sh("git push origin gh-pages") |
||||||
|
sh("git push --tags") |
||||||
|
end |
||||||
|
|
||||||
|
desc "Open your default browser with the test page" |
||||||
|
task :test do |
||||||
|
sh("open test/index.html") |
||||||
|
end |
||||||
@ -0,0 +1,13 @@ |
|||||||
|
{ |
||||||
|
"name": "jquery-timeago", |
||||||
|
"version": "1.4.1", |
||||||
|
"license": "MIT", |
||||||
|
"main": "jquery.timeago.js", |
||||||
|
"ignore": [ |
||||||
|
"test", |
||||||
|
"vendor" |
||||||
|
], |
||||||
|
"dependencies": { |
||||||
|
"jquery": ">=1.4" |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,221 @@ |
|||||||
|
/** |
||||||
|
* Timeago is a jQuery plugin that makes it easy to support automatically |
||||||
|
* updating fuzzy timestamps (e.g. "4 minutes ago" or "about 1 day ago"). |
||||||
|
* |
||||||
|
* @name timeago |
||||||
|
* @version 1.4.1 |
||||||
|
* @requires jQuery v1.2.3+ |
||||||
|
* @author Ryan McGeary |
||||||
|
* @license MIT License - http://www.opensource.org/licenses/mit-license.php
|
||||||
|
* |
||||||
|
* For usage and examples, visit: |
||||||
|
* http://timeago.yarp.com/
|
||||||
|
* |
||||||
|
* Copyright (c) 2008-2013, Ryan McGeary (ryan -[at]- mcgeary [*dot*] org) |
||||||
|
*/ |
||||||
|
|
||||||
|
(function (factory) { |
||||||
|
if (typeof define === 'function' && define.amd) { |
||||||
|
// AMD. Register as an anonymous module.
|
||||||
|
define(['jquery'], factory); |
||||||
|
} else { |
||||||
|
// Browser globals
|
||||||
|
factory(jQuery); |
||||||
|
} |
||||||
|
}(function ($) { |
||||||
|
$.timeago = function(timestamp) { |
||||||
|
if (timestamp instanceof Date) { |
||||||
|
return inWords(timestamp); |
||||||
|
} else if (typeof timestamp === "string") { |
||||||
|
return inWords($.timeago.parse(timestamp)); |
||||||
|
} else if (typeof timestamp === "number") { |
||||||
|
return inWords(new Date(timestamp)); |
||||||
|
} else { |
||||||
|
return inWords($.timeago.datetime(timestamp)); |
||||||
|
} |
||||||
|
}; |
||||||
|
var $t = $.timeago; |
||||||
|
|
||||||
|
$.extend($.timeago, { |
||||||
|
settings: { |
||||||
|
refreshMillis: 60000, |
||||||
|
allowPast: true, |
||||||
|
allowFuture: false, |
||||||
|
localeTitle: false, |
||||||
|
cutoff: 0, |
||||||
|
strings: { |
||||||
|
prefixAgo: null, |
||||||
|
prefixFromNow: null, |
||||||
|
suffixAgo: "ago", |
||||||
|
suffixFromNow: "from now", |
||||||
|
inPast: 'any moment now', |
||||||
|
seconds: "less than a minute", |
||||||
|
minute: "about a minute", |
||||||
|
minutes: "%d minutes", |
||||||
|
hour: "about an hour", |
||||||
|
hours: "about %d hours", |
||||||
|
day: "a day", |
||||||
|
days: "%d days", |
||||||
|
month: "about a month", |
||||||
|
months: "%d months", |
||||||
|
year: "about a year", |
||||||
|
years: "%d years", |
||||||
|
wordSeparator: " ", |
||||||
|
numbers: [] |
||||||
|
} |
||||||
|
}, |
||||||
|
|
||||||
|
inWords: function(distanceMillis) { |
||||||
|
if(!this.settings.allowPast && ! this.settings.allowFuture) { |
||||||
|
throw 'timeago allowPast and allowFuture settings can not both be set to false.'; |
||||||
|
} |
||||||
|
|
||||||
|
var $l = this.settings.strings; |
||||||
|
var prefix = $l.prefixAgo; |
||||||
|
var suffix = $l.suffixAgo; |
||||||
|
if (this.settings.allowFuture) { |
||||||
|
if (distanceMillis < 0) { |
||||||
|
prefix = $l.prefixFromNow; |
||||||
|
suffix = $l.suffixFromNow; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if(!this.settings.allowPast && distanceMillis >= 0) { |
||||||
|
return this.settings.strings.inPast; |
||||||
|
} |
||||||
|
|
||||||
|
var seconds = Math.abs(distanceMillis) / 1000; |
||||||
|
var minutes = seconds / 60; |
||||||
|
var hours = minutes / 60; |
||||||
|
var days = hours / 24; |
||||||
|
var years = days / 365; |
||||||
|
|
||||||
|
function substitute(stringOrFunction, number) { |
||||||
|
var string = $.isFunction(stringOrFunction) ? stringOrFunction(number, distanceMillis) : stringOrFunction; |
||||||
|
var value = ($l.numbers && $l.numbers[number]) || number; |
||||||
|
return string.replace(/%d/i, value); |
||||||
|
} |
||||||
|
|
||||||
|
var words = seconds < 45 && substitute($l.seconds, Math.round(seconds)) || |
||||||
|
seconds < 90 && substitute($l.minute, 1) || |
||||||
|
minutes < 45 && substitute($l.minutes, Math.round(minutes)) || |
||||||
|
minutes < 90 && substitute($l.hour, 1) || |
||||||
|
hours < 24 && substitute($l.hours, Math.round(hours)) || |
||||||
|
hours < 42 && substitute($l.day, 1) || |
||||||
|
days < 30 && substitute($l.days, Math.round(days)) || |
||||||
|
days < 45 && substitute($l.month, 1) || |
||||||
|
days < 365 && substitute($l.months, Math.round(days / 30)) || |
||||||
|
years < 1.5 && substitute($l.year, 1) || |
||||||
|
substitute($l.years, Math.round(years)); |
||||||
|
|
||||||
|
var separator = $l.wordSeparator || ""; |
||||||
|
if ($l.wordSeparator === undefined) { separator = " "; } |
||||||
|
return $.trim([prefix, words, suffix].join(separator)); |
||||||
|
}, |
||||||
|
|
||||||
|
parse: function(iso8601) { |
||||||
|
var s = $.trim(iso8601); |
||||||
|
s = s.replace(/\.\d+/,""); // remove milliseconds
|
||||||
|
s = s.replace(/-/,"/").replace(/-/,"/"); |
||||||
|
s = s.replace(/T/," ").replace(/Z/," UTC"); |
||||||
|
s = s.replace(/([\+\-]\d\d)\:?(\d\d)/," $1$2"); // -04:00 -> -0400
|
||||||
|
s = s.replace(/([\+\-]\d\d)$/," $100"); // +09 -> +0900
|
||||||
|
return new Date(s); |
||||||
|
}, |
||||||
|
datetime: function(elem) { |
||||||
|
var iso8601 = $t.isTime(elem) ? $(elem).attr("datetime") : $(elem).attr("title"); |
||||||
|
return $t.parse(iso8601); |
||||||
|
}, |
||||||
|
isTime: function(elem) { |
||||||
|
// jQuery's `is()` doesn't play well with HTML5 in IE
|
||||||
|
return $(elem).get(0).tagName.toLowerCase() === "time"; // $(elem).is("time");
|
||||||
|
} |
||||||
|
}); |
||||||
|
|
||||||
|
// functions that can be called via $(el).timeago('action')
|
||||||
|
// init is default when no action is given
|
||||||
|
// functions are called with context of a single element
|
||||||
|
var functions = { |
||||||
|
init: function(){ |
||||||
|
var refresh_el = $.proxy(refresh, this); |
||||||
|
refresh_el(); |
||||||
|
var $s = $t.settings; |
||||||
|
if ($s.refreshMillis > 0) { |
||||||
|
this._timeagoInterval = setInterval(refresh_el, $s.refreshMillis); |
||||||
|
} |
||||||
|
}, |
||||||
|
update: function(time){ |
||||||
|
var parsedTime = $t.parse(time); |
||||||
|
$(this).data('timeago', { datetime: parsedTime }); |
||||||
|
if($t.settings.localeTitle) $(this).attr("title", parsedTime.toLocaleString()); |
||||||
|
refresh.apply(this); |
||||||
|
}, |
||||||
|
updateFromDOM: function(){ |
||||||
|
$(this).data('timeago', { datetime: $t.parse( $t.isTime(this) ? $(this).attr("datetime") : $(this).attr("title") ) }); |
||||||
|
refresh.apply(this); |
||||||
|
}, |
||||||
|
dispose: function () { |
||||||
|
if (this._timeagoInterval) { |
||||||
|
window.clearInterval(this._timeagoInterval); |
||||||
|
this._timeagoInterval = null; |
||||||
|
} |
||||||
|
} |
||||||
|
}; |
||||||
|
|
||||||
|
$.fn.timeago = function(action, options) { |
||||||
|
var fn = action ? functions[action] : functions.init; |
||||||
|
if(!fn){ |
||||||
|
throw new Error("Unknown function name '"+ action +"' for timeago"); |
||||||
|
} |
||||||
|
// each over objects here and call the requested function
|
||||||
|
this.each(function(){ |
||||||
|
fn.call(this, options); |
||||||
|
}); |
||||||
|
return this; |
||||||
|
}; |
||||||
|
|
||||||
|
function refresh() { |
||||||
|
//check if it's still visible
|
||||||
|
if(!$.contains(document.documentElement,this)){ |
||||||
|
//stop if it has been removed
|
||||||
|
$(this).timeago("dispose"); |
||||||
|
return this; |
||||||
|
} |
||||||
|
|
||||||
|
var data = prepareData(this); |
||||||
|
var $s = $t.settings; |
||||||
|
|
||||||
|
if (!isNaN(data.datetime)) { |
||||||
|
if ( $s.cutoff == 0 || Math.abs(distance(data.datetime)) < $s.cutoff) { |
||||||
|
$(this).text(inWords(data.datetime)); |
||||||
|
} |
||||||
|
} |
||||||
|
return this; |
||||||
|
} |
||||||
|
|
||||||
|
function prepareData(element) { |
||||||
|
element = $(element); |
||||||
|
if (!element.data("timeago")) { |
||||||
|
element.data("timeago", { datetime: $t.datetime(element) }); |
||||||
|
var text = $.trim(element.text()); |
||||||
|
if ($t.settings.localeTitle) { |
||||||
|
element.attr("title", element.data('timeago').datetime.toLocaleString()); |
||||||
|
} else if (text.length > 0 && !($t.isTime(element) && element.attr("title"))) { |
||||||
|
element.attr("title", text); |
||||||
|
} |
||||||
|
} |
||||||
|
return element.data("timeago"); |
||||||
|
} |
||||||
|
|
||||||
|
function inWords(date) { |
||||||
|
return $t.inWords(distance(date)); |
||||||
|
} |
||||||
|
|
||||||
|
function distance(date) { |
||||||
|
return (new Date().getTime() - date.getTime()); |
||||||
|
} |
||||||
|
|
||||||
|
// fix for IE6 suckage
|
||||||
|
document.createElement("abbr"); |
||||||
|
document.createElement("time"); |
||||||
|
})); |
||||||
@ -0,0 +1,27 @@ |
|||||||
|
# Locale override examples for timeago |
||||||
|
|
||||||
|
You can represent time statements in most western languages where |
||||||
|
a prefix and/or suffix is used. |
||||||
|
|
||||||
|
The default case is to use suffix only (as in English), which you |
||||||
|
do by providing the `suffixAgo` and `suffixFromNow` settings in |
||||||
|
the strings hash (earlier versions of timeago used the deprecated |
||||||
|
`ago` and `fromNow` options). If present, they are used. |
||||||
|
|
||||||
|
2 minutes [suffixAgo] |
||||||
|
2 minutes [suffixFromNow] |
||||||
|
|
||||||
|
In case you want to use prefix only instead of |
||||||
|
suffix (e.g. Greek), you provide the `prefixAgo` and |
||||||
|
`prefixFromNow` options in the strings hash and leave `suffixAgo` |
||||||
|
and `suffixFromNow` empty or null. |
||||||
|
|
||||||
|
[prefixAgo] 2 minutes |
||||||
|
[prefixFromNow] 2 minutes |
||||||
|
|
||||||
|
For languages where you want to use a prefix only for future |
||||||
|
tense and prefix/suffix for past tense (for example swedish), you |
||||||
|
can combine the prefix and suffixes as needed. |
||||||
|
|
||||||
|
[prefixAgo] 2 minutes [suffixAgo] |
||||||
|
[prefixFromNow] 2 minutes |
||||||
@ -0,0 +1,18 @@ |
|||||||
|
// Bulgarian
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: "преди", |
||||||
|
prefixFromNow: "след", |
||||||
|
suffixAgo: null, |
||||||
|
suffixFromNow: null, |
||||||
|
seconds: "по-малко от минута", |
||||||
|
minute: "една минута", |
||||||
|
minutes: "%d минути", |
||||||
|
hour: "един час", |
||||||
|
hours: "%d часа", |
||||||
|
day: "един ден", |
||||||
|
days: "%d дни", |
||||||
|
month: "един месец", |
||||||
|
months: "%d месеца", |
||||||
|
year: "една година", |
||||||
|
years: "%d години" |
||||||
|
}; |
||||||
@ -0,0 +1,49 @@ |
|||||||
|
// Bosnian
|
||||||
|
(function() { |
||||||
|
var numpf; |
||||||
|
|
||||||
|
numpf = function(n, f, s, t) { |
||||||
|
var n10; |
||||||
|
n10 = n % 10; |
||||||
|
if (n10 === 1 && (n === 1 || n > 20)) { |
||||||
|
return f; |
||||||
|
} else if (n10 > 1 && n10 < 5 && (n > 20 || n < 10)) { |
||||||
|
return s; |
||||||
|
} else { |
||||||
|
return t; |
||||||
|
} |
||||||
|
}; |
||||||
|
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: "prije", |
||||||
|
prefixFromNow: "za", |
||||||
|
suffixAgo: null, |
||||||
|
suffixFromNow: null, |
||||||
|
second: "sekund", |
||||||
|
seconds: function(value) { |
||||||
|
return numpf(value, "%d sekund", "%d sekunde", "%d sekundi"); |
||||||
|
}, |
||||||
|
minute: "oko minut", |
||||||
|
minutes: function(value) { |
||||||
|
return numpf(value, "%d minut", "%d minute", "%d minuta"); |
||||||
|
}, |
||||||
|
hour: "oko sat", |
||||||
|
hours: function(value) { |
||||||
|
return numpf(value, "%d sat", "%d sata", "%d sati"); |
||||||
|
}, |
||||||
|
day: "oko jednog dana", |
||||||
|
days: function(value) { |
||||||
|
return numpf(value, "%d dan", "%d dana", "%d dana"); |
||||||
|
}, |
||||||
|
month: "mjesec dana", |
||||||
|
months: function(value) { |
||||||
|
return numpf(value, "%d mjesec", "%d mjeseca", "%d mjeseci"); |
||||||
|
}, |
||||||
|
year: "prije godinu dana ", |
||||||
|
years: function(value) { |
||||||
|
return numpf(value, "%d godinu", "%d godine", "%d godina"); |
||||||
|
}, |
||||||
|
wordSeparator: " " |
||||||
|
}; |
||||||
|
|
||||||
|
}).call(this); |
||||||
@ -0,0 +1,18 @@ |
|||||||
|
// Catalan
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: "fa", |
||||||
|
prefixFromNow: "d'aqui a", |
||||||
|
suffixAgo: null, |
||||||
|
suffixFromNow: null, |
||||||
|
seconds: "menys d'1 minut", |
||||||
|
minute: "1 minut", |
||||||
|
minutes: "uns %d minuts", |
||||||
|
hour: "1 hora", |
||||||
|
hours: "unes %d hores", |
||||||
|
day: "1 dia", |
||||||
|
days: "%d dies", |
||||||
|
month: "aproximadament un mes", |
||||||
|
months: "%d mesos", |
||||||
|
year: "aproximadament un any", |
||||||
|
years: "%d anys" |
||||||
|
}; |
||||||
@ -0,0 +1,24 @@ |
|||||||
|
// Czech
|
||||||
|
(function() { |
||||||
|
function f(n, d, a) { |
||||||
|
return a[d>=0 ? 0 : a.length==2 || n<5 ? 1 : 2]; |
||||||
|
} |
||||||
|
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: 'před', |
||||||
|
prefixFromNow: 'za', |
||||||
|
suffixAgo: null, |
||||||
|
suffixFromNow: null, |
||||||
|
seconds: function(n, d) {return f(n, d, ['méně než minutou', 'méně než minutu'])}, |
||||||
|
minute: function(n, d) {return f(n, d, ['minutou', 'minutu'])}, |
||||||
|
minutes: function(n, d) {return f(n, d, ['%d minutami', '%d minuty', '%d minut'])}, |
||||||
|
hour: function(n, d) {return f(n, d, ['hodinou', 'hodinu'])}, |
||||||
|
hours: function(n, d) {return f(n, d, ['%d hodinami', '%d hodiny', '%d hodin'])}, |
||||||
|
day: function(n, d) {return f(n, d, ['%d dnem', '%d den'])}, |
||||||
|
days: function(n, d) {return f(n, d, ['%d dny', '%d dny', '%d dní'])}, |
||||||
|
month: function(n, d) {return f(n, d, ['%d měsícem', '%d měsíc'])}, |
||||||
|
months: function(n, d) {return f(n, d, ['%d měsící', '%d měsíce', '%d měsíců'])}, |
||||||
|
year: function(n, d) {return f(n, d, ['%d rokem', '%d rok'])}, |
||||||
|
years: function(n, d) {return f(n, d, ['%d lety', '%d roky', '%d let'])} |
||||||
|
}; |
||||||
|
})(); |
||||||
@ -0,0 +1,20 @@ |
|||||||
|
// Welsh
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: null, |
||||||
|
prefixFromNow: null, |
||||||
|
suffixAgo: "yn ôl", |
||||||
|
suffixFromNow: "o hyn", |
||||||
|
seconds: "llai na munud", |
||||||
|
minute: "am funud", |
||||||
|
minutes: "%d munud", |
||||||
|
hour: "tua awr", |
||||||
|
hours: "am %d awr", |
||||||
|
day: "y dydd", |
||||||
|
days: "%d diwrnod", |
||||||
|
month: "tua mis", |
||||||
|
months: "%d mis", |
||||||
|
year: "am y flwyddyn", |
||||||
|
years: "%d blynedd", |
||||||
|
wordSeparator: " ", |
||||||
|
numbers: [] |
||||||
|
}; |
||||||
@ -0,0 +1,18 @@ |
|||||||
|
// Danish
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: "for", |
||||||
|
prefixFromNow: "om", |
||||||
|
suffixAgo: "siden", |
||||||
|
suffixFromNow: "", |
||||||
|
seconds: "mindre end et minut", |
||||||
|
minute: "ca. et minut", |
||||||
|
minutes: "%d minutter", |
||||||
|
hour: "ca. en time", |
||||||
|
hours: "ca. %d timer", |
||||||
|
day: "en dag", |
||||||
|
days: "%d dage", |
||||||
|
month: "ca. en måned", |
||||||
|
months: "%d måneder", |
||||||
|
year: "ca. et år", |
||||||
|
years: "%d år" |
||||||
|
}; |
||||||
@ -0,0 +1,18 @@ |
|||||||
|
// German
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: "vor", |
||||||
|
prefixFromNow: "in", |
||||||
|
suffixAgo: "", |
||||||
|
suffixFromNow: "", |
||||||
|
seconds: "wenigen Sekunden", |
||||||
|
minute: "etwa einer Minute", |
||||||
|
minutes: "%d Minuten", |
||||||
|
hour: "etwa einer Stunde", |
||||||
|
hours: "%d Stunden", |
||||||
|
day: "etwa einem Tag", |
||||||
|
days: "%d Tagen", |
||||||
|
month: "etwa einem Monat", |
||||||
|
months: "%d Monaten", |
||||||
|
year: "etwa einem Jahr", |
||||||
|
years: "%d Jahren" |
||||||
|
}; |
||||||
@ -0,0 +1,18 @@ |
|||||||
|
// Greek
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: "πριν", |
||||||
|
prefixFromNow: "σε", |
||||||
|
suffixAgo: "", |
||||||
|
suffixFromNow: "", |
||||||
|
seconds: "λιγότερο από ένα λεπτό", |
||||||
|
minute: "περίπου ένα λεπτό", |
||||||
|
minutes: "%d λεπτά", |
||||||
|
hour: "περίπου μία ώρα", |
||||||
|
hours: "περίπου %d ώρες", |
||||||
|
day: "μία μέρα", |
||||||
|
days: "%d μέρες", |
||||||
|
month: "περίπου ένα μήνα", |
||||||
|
months: "%d μήνες", |
||||||
|
year: "περίπου ένα χρόνο", |
||||||
|
years: "%d χρόνια" |
||||||
|
}; |
||||||
@ -0,0 +1,20 @@ |
|||||||
|
// English shortened
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: null, |
||||||
|
prefixFromNow: null, |
||||||
|
suffixAgo: "", |
||||||
|
suffixFromNow: "", |
||||||
|
seconds: "1m", |
||||||
|
minute: "1m", |
||||||
|
minutes: "%dm", |
||||||
|
hour: "1h", |
||||||
|
hours: "%dh", |
||||||
|
day: "1d", |
||||||
|
days: "%dd", |
||||||
|
month: "1mo", |
||||||
|
months: "%dmo", |
||||||
|
year: "1yr", |
||||||
|
years: "%dyr", |
||||||
|
wordSeparator: " ", |
||||||
|
numbers: [] |
||||||
|
}; |
||||||
@ -0,0 +1,20 @@ |
|||||||
|
// English (Template)
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: null, |
||||||
|
prefixFromNow: null, |
||||||
|
suffixAgo: "ago", |
||||||
|
suffixFromNow: "from now", |
||||||
|
seconds: "less than a minute", |
||||||
|
minute: "about a minute", |
||||||
|
minutes: "%d minutes", |
||||||
|
hour: "about an hour", |
||||||
|
hours: "about %d hours", |
||||||
|
day: "a day", |
||||||
|
days: "%d days", |
||||||
|
month: "about a month", |
||||||
|
months: "%d months", |
||||||
|
year: "about a year", |
||||||
|
years: "%d years", |
||||||
|
wordSeparator: " ", |
||||||
|
numbers: [] |
||||||
|
}; |
||||||
@ -0,0 +1,20 @@ |
|||||||
|
// Spanish shortened
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: null, |
||||||
|
prefixFromNow: null, |
||||||
|
suffixAgo: "", |
||||||
|
suffixFromNow: "", |
||||||
|
seconds: "1m", |
||||||
|
minute: "1m", |
||||||
|
minutes: "%dm", |
||||||
|
hour: "1h", |
||||||
|
hours: "%dh", |
||||||
|
day: "1d", |
||||||
|
days: "%dd", |
||||||
|
month: "1me", |
||||||
|
months: "%dme", |
||||||
|
year: "1a", |
||||||
|
years: "%da", |
||||||
|
wordSeparator: " ", |
||||||
|
numbers: [] |
||||||
|
}; |
||||||
@ -0,0 +1,18 @@ |
|||||||
|
// Spanish
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: "hace", |
||||||
|
prefixFromNow: "dentro de", |
||||||
|
suffixAgo: "", |
||||||
|
suffixFromNow: "", |
||||||
|
seconds: "menos de un minuto", |
||||||
|
minute: "un minuto", |
||||||
|
minutes: "unos %d minutos", |
||||||
|
hour: "una hora", |
||||||
|
hours: "%d horas", |
||||||
|
day: "un día", |
||||||
|
days: "%d días", |
||||||
|
month: "un mes", |
||||||
|
months: "%d meses", |
||||||
|
year: "un año", |
||||||
|
years: "%d años" |
||||||
|
}; |
||||||
@ -0,0 +1,18 @@ |
|||||||
|
// Estonian
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: null, |
||||||
|
prefixFromNow: null, |
||||||
|
suffixAgo: "tagasi", |
||||||
|
suffixFromNow: "pärast", |
||||||
|
seconds: function(n, d) { return d < 0 ? "vähem kui minuti aja" : "vähem kui minut aega" }, |
||||||
|
minute: function(n, d) { return d < 0 ? "umbes minuti aja" : "umbes minut aega" }, |
||||||
|
minutes: function(n, d) { return d < 0 ? "%d minuti" : "%d minutit" }, |
||||||
|
hour: function(n, d) { return d < 0 ? "umbes tunni aja" : "umbes tund aega" }, |
||||||
|
hours: function(n, d) { return d < 0 ? "%d tunni" : "%d tundi" }, |
||||||
|
day: function(n, d) { return d < 0 ? "umbes päeva" : "umbes päev" }, |
||||||
|
days: function(n, d) { return d < 0 ? "%d päeva" : "%d päeva" }, |
||||||
|
month: function(n, d) { return d < 0 ? "umbes kuu aja" : "umbes kuu aega" }, |
||||||
|
months: function(n, d) { return d < 0 ? "%d kuu" : "%d kuud" }, |
||||||
|
year: function(n, d) { return d < 0 ? "umbes aasta aja" : "umbes aasta aega" }, |
||||||
|
years: function(n, d) { return d < 0 ? "%d aasta" : "%d aastat" } |
||||||
|
}; |
||||||
@ -0,0 +1,28 @@ |
|||||||
|
// Finnish
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: null, |
||||||
|
prefixFromNow: null, |
||||||
|
suffixAgo: "sitten", |
||||||
|
suffixFromNow: "tulevaisuudessa", |
||||||
|
seconds: "alle minuutti", |
||||||
|
minute: "minuutti", |
||||||
|
minutes: "%d minuuttia", |
||||||
|
hour: "tunti", |
||||||
|
hours: "%d tuntia", |
||||||
|
day: "päivä", |
||||||
|
days: "%d päivää", |
||||||
|
month: "kuukausi", |
||||||
|
months: "%d kuukautta", |
||||||
|
year: "vuosi", |
||||||
|
years: "%d vuotta" |
||||||
|
}; |
||||||
|
|
||||||
|
// The above is not a great localization because one would usually
|
||||||
|
// write "2 days ago" in Finnish as "2 päivää sitten", however
|
||||||
|
// one would write "2 days into the future" as "2:n päivän päästä"
|
||||||
|
// which cannot be achieved with localization support this simple.
|
||||||
|
// This is because Finnish has word suffixes (attached directly
|
||||||
|
// to the end of the word). The word "day" is "päivä" in Finnish.
|
||||||
|
// As workaround, the above localizations will say
|
||||||
|
// "2 päivää tulevaisuudessa" which is understandable but
|
||||||
|
// not as fluent.
|
||||||
@ -0,0 +1,16 @@ |
|||||||
|
// French shortened
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: "il y a", |
||||||
|
prefixFromNow: "d'ici", |
||||||
|
seconds: "moins d'une minute", |
||||||
|
minute: "une minute", |
||||||
|
minutes: "%d minutes", |
||||||
|
hour: "une heure", |
||||||
|
hours: "%d heures", |
||||||
|
day: "un jour", |
||||||
|
days: "%d jours", |
||||||
|
month: "un mois", |
||||||
|
months: "%d mois", |
||||||
|
year: "un an", |
||||||
|
years: "%d ans" |
||||||
|
}; |
||||||
@ -0,0 +1,17 @@ |
|||||||
|
// French
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
// environ ~= about, it's optional
|
||||||
|
prefixAgo: "il y a", |
||||||
|
prefixFromNow: "d'ici", |
||||||
|
seconds: "moins d'une minute", |
||||||
|
minute: "environ une minute", |
||||||
|
minutes: "environ %d minutes", |
||||||
|
hour: "environ une heure", |
||||||
|
hours: "environ %d heures", |
||||||
|
day: "environ un jour", |
||||||
|
days: "environ %d jours", |
||||||
|
month: "environ un mois", |
||||||
|
months: "environ %d mois", |
||||||
|
year: "un an", |
||||||
|
years: "%d ans" |
||||||
|
}; |
||||||
@ -0,0 +1,18 @@ |
|||||||
|
// Galician
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: "hai", |
||||||
|
prefixFromNow: "dentro de", |
||||||
|
suffixAgo: "", |
||||||
|
suffixFromNow: "", |
||||||
|
seconds: "menos dun minuto", |
||||||
|
minute: "un minuto", |
||||||
|
minutes: "uns %d minutos", |
||||||
|
hour: "unha hora", |
||||||
|
hours: "%d horas", |
||||||
|
day: "un día", |
||||||
|
days: "%d días", |
||||||
|
month: "un mes", |
||||||
|
months: "%d meses", |
||||||
|
year: "un ano", |
||||||
|
years: "%d anos" |
||||||
|
}; |
||||||
@ -0,0 +1,16 @@ |
|||||||
|
// Hebrew
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: "לפני", |
||||||
|
prefixFromNow: "עוד", |
||||||
|
seconds: "פחות מדקה", |
||||||
|
minute: "דקה", |
||||||
|
minutes: "%d דקות", |
||||||
|
hour: "שעה", |
||||||
|
hours: function(number){return (number==2) ? "שעתיים" : "%d שעות"}, |
||||||
|
day: "יום", |
||||||
|
days: function(number){return (number==2) ? "יומיים" : "%d ימים"}, |
||||||
|
month: "חודש", |
||||||
|
months: function(number){return (number==2) ? "חודשיים" : "%d חודשים"}, |
||||||
|
year: "שנה", |
||||||
|
years: function(number){return (number==2) ? "שנתיים" : "%d שנים"} |
||||||
|
}; |
||||||
@ -0,0 +1,49 @@ |
|||||||
|
// Croatian
|
||||||
|
(function () { |
||||||
|
var numpf; |
||||||
|
|
||||||
|
numpf = function (n, f, s, t) { |
||||||
|
var n10; |
||||||
|
n10 = n % 10; |
||||||
|
if (n10 === 1 && (n === 1 || n > 20)) { |
||||||
|
return f; |
||||||
|
} else if (n10 > 1 && n10 < 5 && (n > 20 || n < 10)) { |
||||||
|
return s; |
||||||
|
} else { |
||||||
|
return t; |
||||||
|
} |
||||||
|
}; |
||||||
|
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: "prije", |
||||||
|
prefixFromNow: "za", |
||||||
|
suffixAgo: null, |
||||||
|
suffixFromNow: null, |
||||||
|
second: "sekundu", |
||||||
|
seconds: function (value) { |
||||||
|
return numpf(value, "%d sekundu", "%d sekunde", "%d sekundi"); |
||||||
|
}, |
||||||
|
minute: "oko minutu", |
||||||
|
minutes: function (value) { |
||||||
|
return numpf(value, "%d minutu", "%d minute", "%d minuta"); |
||||||
|
}, |
||||||
|
hour: "oko jedan sat", |
||||||
|
hours: function (value) { |
||||||
|
return numpf(value, "%d sat", "%d sata", "%d sati"); |
||||||
|
}, |
||||||
|
day: "jedan dan", |
||||||
|
days: function (value) { |
||||||
|
return numpf(value, "%d dan", "%d dana", "%d dana"); |
||||||
|
}, |
||||||
|
month: "mjesec dana", |
||||||
|
months: function (value) { |
||||||
|
return numpf(value, "%d mjesec", "%d mjeseca", "%d mjeseci"); |
||||||
|
}, |
||||||
|
year: "prije godinu dana", |
||||||
|
years: function (value) { |
||||||
|
return numpf(value, "%d godinu", "%d godine", "%d godina"); |
||||||
|
}, |
||||||
|
wordSeparator: " " |
||||||
|
}; |
||||||
|
|
||||||
|
}).call(this); |
||||||
@ -0,0 +1,18 @@ |
|||||||
|
// Hungarian
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: null, |
||||||
|
prefixFromNow: null, |
||||||
|
suffixAgo: null, |
||||||
|
suffixFromNow: null, |
||||||
|
seconds: "kevesebb mint egy perce", |
||||||
|
minute: "körülbelül egy perce", |
||||||
|
minutes: "%d perce", |
||||||
|
hour: "körülbelül egy órája", |
||||||
|
hours: "körülbelül %d órája", |
||||||
|
day: "körülbelül egy napja", |
||||||
|
days: "%d napja", |
||||||
|
month: "körülbelül egy hónapja", |
||||||
|
months: "%d hónapja", |
||||||
|
year: "körülbelül egy éve", |
||||||
|
years: "%d éve" |
||||||
|
}; |
||||||
@ -0,0 +1,18 @@ |
|||||||
|
// Armenian
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: null, |
||||||
|
prefixFromNow: null, |
||||||
|
suffixAgo: "առաջ", |
||||||
|
suffixFromNow: "հետո", |
||||||
|
seconds: "վայրկյաններ", |
||||||
|
minute: "մեկ րոպե", |
||||||
|
minutes: "%d րոպե", |
||||||
|
hour: "մեկ ժամ", |
||||||
|
hours: "%d ժամ", |
||||||
|
day: "մեկ օր", |
||||||
|
days: "%d օր", |
||||||
|
month: "մեկ ամիս", |
||||||
|
months: "%d ամիս", |
||||||
|
year: "մեկ տարի", |
||||||
|
years: "%d տարի" |
||||||
|
}; |
||||||
@ -0,0 +1,18 @@ |
|||||||
|
// Indonesian
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: null, |
||||||
|
prefixFromNow: null, |
||||||
|
suffixAgo: "yang lalu", |
||||||
|
suffixFromNow: "dari sekarang", |
||||||
|
seconds: "kurang dari semenit", |
||||||
|
minute: "sekitar satu menit", |
||||||
|
minutes: "%d menit", |
||||||
|
hour: "sekitar sejam", |
||||||
|
hours: "sekitar %d jam", |
||||||
|
day: "sehari", |
||||||
|
days: "%d hari", |
||||||
|
month: "sekitar sebulan", |
||||||
|
months: "%d bulan", |
||||||
|
year: "sekitar setahun", |
||||||
|
years: "%d tahun" |
||||||
|
}; |
||||||
@ -0,0 +1,19 @@ |
|||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: "fyrir", |
||||||
|
prefixFromNow: "eftir", |
||||||
|
suffixAgo: "síðan", |
||||||
|
suffixFromNow: null, |
||||||
|
seconds: "minna en mínútu", |
||||||
|
minute: "mínútu", |
||||||
|
minutes: "%d mínútum", |
||||||
|
hour: "klukkutíma", |
||||||
|
hours: "um %d klukkutímum", |
||||||
|
day: "degi", |
||||||
|
days: "%d dögum", |
||||||
|
month: "mánuði", |
||||||
|
months: "%d mánuðum", |
||||||
|
year: "ári", |
||||||
|
years: "%d árum", |
||||||
|
wordSeparator: " ", |
||||||
|
numbers: [] |
||||||
|
}; |
||||||
@ -0,0 +1,16 @@ |
|||||||
|
// Italian
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
suffixAgo: "fa", |
||||||
|
suffixFromNow: "da ora", |
||||||
|
seconds: "meno di un minuto", |
||||||
|
minute: "circa un minuto", |
||||||
|
minutes: "%d minuti", |
||||||
|
hour: "circa un'ora", |
||||||
|
hours: "circa %d ore", |
||||||
|
day: "un giorno", |
||||||
|
days: "%d giorni", |
||||||
|
month: "circa un mese", |
||||||
|
months: "%d mesi", |
||||||
|
year: "circa un anno", |
||||||
|
years: "%d anni" |
||||||
|
}; |
||||||
@ -0,0 +1,19 @@ |
|||||||
|
// Japanese
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: "", |
||||||
|
prefixFromNow: "今から", |
||||||
|
suffixAgo: "前", |
||||||
|
suffixFromNow: "後", |
||||||
|
seconds: "1 分未満", |
||||||
|
minute: "約 1 分", |
||||||
|
minutes: "%d 分", |
||||||
|
hour: "約 1 時間", |
||||||
|
hours: "約 %d 時間", |
||||||
|
day: "約 1 日", |
||||||
|
days: "約 %d 日", |
||||||
|
month: "約 1 月", |
||||||
|
months: "約 %d 月", |
||||||
|
year: "約 1 年", |
||||||
|
years: "約 %d 年", |
||||||
|
wordSeparator: "" |
||||||
|
}; |
||||||
@ -0,0 +1,18 @@ |
|||||||
|
// Javanesse (Boso Jowo)
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: null, |
||||||
|
prefixFromNow: null, |
||||||
|
suffixAgo: "kepungkur", |
||||||
|
suffixFromNow: "seko saiki", |
||||||
|
seconds: "kurang seko sakmenit", |
||||||
|
minute: "kurang luwih sakmenit", |
||||||
|
minutes: "%d menit", |
||||||
|
hour: "kurang luwih sakjam", |
||||||
|
hours: "kurang luwih %d jam", |
||||||
|
day: "sedina", |
||||||
|
days: "%d dina", |
||||||
|
month: "kurang luwih sewulan", |
||||||
|
months: "%d wulan", |
||||||
|
year: "kurang luwih setahun", |
||||||
|
years: "%d tahun" |
||||||
|
}; |
||||||
@ -0,0 +1,17 @@ |
|||||||
|
// Korean
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
suffixAgo: "전", |
||||||
|
suffixFromNow: "후", |
||||||
|
seconds: "1분 이내", |
||||||
|
minute: "1분", |
||||||
|
minutes: "%d분", |
||||||
|
hour: "1시간", |
||||||
|
hours: "%d시간", |
||||||
|
day: "하루", |
||||||
|
days: "%d일", |
||||||
|
month: "한 달", |
||||||
|
months: "%d달", |
||||||
|
year: "1년", |
||||||
|
years: "%d년", |
||||||
|
wordSeparator: " " |
||||||
|
}; |
||||||
@ -0,0 +1,20 @@ |
|||||||
|
//Lithuanian
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: "prieš", |
||||||
|
prefixFromNow: null, |
||||||
|
suffixAgo: null, |
||||||
|
suffixFromNow: "nuo dabar", |
||||||
|
seconds: "%d sek.", |
||||||
|
minute: "min.", |
||||||
|
minutes: "%d min.", |
||||||
|
hour: "val.", |
||||||
|
hours: "%d val.", |
||||||
|
day: "1 d.", |
||||||
|
days: "%d d.", |
||||||
|
month: "mėn.", |
||||||
|
months: "%d mėn.", |
||||||
|
year: "metus", |
||||||
|
years: "%d metus", |
||||||
|
wordSeparator: " ", |
||||||
|
numbers: [] |
||||||
|
}; |
||||||
@ -0,0 +1,20 @@ |
|||||||
|
// Macedonian
|
||||||
|
(function() { |
||||||
|
jQuery.timeago.settings.strings={ |
||||||
|
prefixAgo: "пред", |
||||||
|
prefixFromNow: "за", |
||||||
|
suffixAgo: null, |
||||||
|
suffixFromNow: null, |
||||||
|
seconds: "%d секунди", |
||||||
|
minute: "%d минута", |
||||||
|
minutes: "%d минути", |
||||||
|
hour: "%d час", |
||||||
|
hours: "%d часа", |
||||||
|
day: "%d ден", |
||||||
|
days: "%d денови" , |
||||||
|
month: "%d месец", |
||||||
|
months: "%d месеци", |
||||||
|
year: "%d година", |
||||||
|
years: "%d години" |
||||||
|
} |
||||||
|
})(); |
||||||
@ -0,0 +1,20 @@ |
|||||||
|
// Dutch
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: null, |
||||||
|
prefixFromNow: "", |
||||||
|
suffixAgo: "geleden", |
||||||
|
suffixFromNow: "van nu", |
||||||
|
seconds: "minder dan een minuut", |
||||||
|
minute: "ongeveer een minuut", |
||||||
|
minutes: "%d minuten", |
||||||
|
hour: "ongeveer een uur", |
||||||
|
hours: "ongeveer %d uur", |
||||||
|
day: "een dag", |
||||||
|
days: "%d dagen", |
||||||
|
month: "ongeveer een maand", |
||||||
|
months: "%d maanden", |
||||||
|
year: "ongeveer een jaar", |
||||||
|
years: "%d jaar", |
||||||
|
wordSeparator: " ", |
||||||
|
numbers: [] |
||||||
|
}; |
||||||
@ -0,0 +1,18 @@ |
|||||||
|
// Norwegian
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: "for", |
||||||
|
prefixFromNow: "om", |
||||||
|
suffixAgo: "siden", |
||||||
|
suffixFromNow: "", |
||||||
|
seconds: "mindre enn et minutt", |
||||||
|
minute: "ca. et minutt", |
||||||
|
minutes: "%d minutter", |
||||||
|
hour: "ca. en time", |
||||||
|
hours: "ca. %d timer", |
||||||
|
day: "en dag", |
||||||
|
days: "%d dager", |
||||||
|
month: "ca. en måned", |
||||||
|
months: "%d måneder", |
||||||
|
year: "ca. et år", |
||||||
|
years: "%d år" |
||||||
|
}; |
||||||
@ -0,0 +1,31 @@ |
|||||||
|
// Polish
|
||||||
|
(function() { |
||||||
|
function numpf(n, s, t) { |
||||||
|
// s - 2-4, 22-24, 32-34 ...
|
||||||
|
// t - 5-21, 25-31, ...
|
||||||
|
var n10 = n % 10; |
||||||
|
if ( (n10 > 1) && (n10 < 5) && ( (n > 20) || (n < 10) ) ) { |
||||||
|
return s; |
||||||
|
} else { |
||||||
|
return t; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: null, |
||||||
|
prefixFromNow: "za", |
||||||
|
suffixAgo: "temu", |
||||||
|
suffixFromNow: null, |
||||||
|
seconds: "mniej niż minutę", |
||||||
|
minute: "minutę", |
||||||
|
minutes: function(value) { return numpf(value, "%d minuty", "%d minut"); }, |
||||||
|
hour: "godzinę", |
||||||
|
hours: function(value) { return numpf(value, "%d godziny", "%d godzin"); }, |
||||||
|
day: "dzień", |
||||||
|
days: "%d dni", |
||||||
|
month: "miesiąc", |
||||||
|
months: function(value) { return numpf(value, "%d miesiące", "%d miesięcy"); }, |
||||||
|
year: "rok", |
||||||
|
years: function(value) { return numpf(value, "%d lata", "%d lat"); } |
||||||
|
}; |
||||||
|
})(); |
||||||
@ -0,0 +1,18 @@ |
|||||||
|
// Brazilian Portuguese
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: "há", |
||||||
|
prefixFromNow: "em", |
||||||
|
suffixAgo: null, |
||||||
|
suffixFromNow: null, |
||||||
|
seconds: "alguns segundos", |
||||||
|
minute: "um minuto", |
||||||
|
minutes: "%d minutos", |
||||||
|
hour: "uma hora", |
||||||
|
hours: "%d horas", |
||||||
|
day: "um dia", |
||||||
|
days: "%d dias", |
||||||
|
month: "um mês", |
||||||
|
months: "%d meses", |
||||||
|
year: "um ano", |
||||||
|
years: "%d anos" |
||||||
|
}; |
||||||
@ -0,0 +1,16 @@ |
|||||||
|
// Portuguese
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
suffixAgo: "atrás", |
||||||
|
suffixFromNow: "a partir de agora", |
||||||
|
seconds: "menos de um minuto", |
||||||
|
minute: "cerca de um minuto", |
||||||
|
minutes: "%d minutos", |
||||||
|
hour: "cerca de uma hora", |
||||||
|
hours: "cerca de %d horas", |
||||||
|
day: "um dia", |
||||||
|
days: "%d dias", |
||||||
|
month: "cerca de um mês", |
||||||
|
months: "%d meses", |
||||||
|
year: "cerca de um ano", |
||||||
|
years: "%d anos" |
||||||
|
}; |
||||||
@ -0,0 +1,18 @@ |
|||||||
|
// Romanian
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: "acum", |
||||||
|
prefixFromNow: "in timp de", |
||||||
|
suffixAgo: "", |
||||||
|
suffixFromNow: "", |
||||||
|
seconds: "mai putin de un minut", |
||||||
|
minute: "un minut", |
||||||
|
minutes: "%d minute", |
||||||
|
hour: "o ora", |
||||||
|
hours: "%d ore", |
||||||
|
day: "o zi", |
||||||
|
days: "%d zile", |
||||||
|
month: "o luna", |
||||||
|
months: "%d luni", |
||||||
|
year: "un an", |
||||||
|
years: "%d ani" |
||||||
|
}; |
||||||
@ -0,0 +1,49 @@ |
|||||||
|
// Serbian
|
||||||
|
(function () { |
||||||
|
var numpf; |
||||||
|
|
||||||
|
numpf = function (n, f, s, t) { |
||||||
|
var n10; |
||||||
|
n10 = n % 10; |
||||||
|
if (n10 === 1 && (n === 1 || n > 20)) { |
||||||
|
return f; |
||||||
|
} else if (n10 > 1 && n10 < 5 && (n > 20 || n < 10)) { |
||||||
|
return s; |
||||||
|
} else { |
||||||
|
return t; |
||||||
|
} |
||||||
|
}; |
||||||
|
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: "pre", |
||||||
|
prefixFromNow: "za", |
||||||
|
suffixAgo: null, |
||||||
|
suffixFromNow: null, |
||||||
|
second: "sekund", |
||||||
|
seconds: function (value) { |
||||||
|
return numpf(value, "%d sekund", "%d sekunde", "%d sekundi"); |
||||||
|
}, |
||||||
|
minute: "oko minut", |
||||||
|
minutes: function (value) { |
||||||
|
return numpf(value, "%d minut", "%d minuta", "%d minuta"); |
||||||
|
}, |
||||||
|
hour: "oko jedan sat", |
||||||
|
hours: function (value) { |
||||||
|
return numpf(value, "%d sat", "%d sata", "%d sati"); |
||||||
|
}, |
||||||
|
day: "jedan dan", |
||||||
|
days: function (value) { |
||||||
|
return numpf(value, "%d dan", "%d dana", "%d dana"); |
||||||
|
}, |
||||||
|
month: "mesec dana", |
||||||
|
months: function (value) { |
||||||
|
return numpf(value, "%d mesec", "%d meseca", "%d meseci"); |
||||||
|
}, |
||||||
|
year: "godinu dana", |
||||||
|
years: function (value) { |
||||||
|
return numpf(value, "%d godinu", "%d godine", "%d godina"); |
||||||
|
}, |
||||||
|
wordSeparator: " " |
||||||
|
}; |
||||||
|
|
||||||
|
}).call(this); |
||||||
@ -0,0 +1,34 @@ |
|||||||
|
// Russian
|
||||||
|
(function() { |
||||||
|
function numpf(n, f, s, t) { |
||||||
|
// f - 1, 21, 31, ...
|
||||||
|
// s - 2-4, 22-24, 32-34 ...
|
||||||
|
// t - 5-20, 25-30, ...
|
||||||
|
var n10 = n % 10; |
||||||
|
if ( (n10 == 1) && ( (n == 1) || (n > 20) ) ) { |
||||||
|
return f; |
||||||
|
} else if ( (n10 > 1) && (n10 < 5) && ( (n > 20) || (n < 10) ) ) { |
||||||
|
return s; |
||||||
|
} else { |
||||||
|
return t; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: null, |
||||||
|
prefixFromNow: "через", |
||||||
|
suffixAgo: "назад", |
||||||
|
suffixFromNow: null, |
||||||
|
seconds: "меньше минуты", |
||||||
|
minute: "минуту", |
||||||
|
minutes: function(value) { return numpf(value, "%d минута", "%d минуты", "%d минут"); }, |
||||||
|
hour: "час", |
||||||
|
hours: function(value) { return numpf(value, "%d час", "%d часа", "%d часов"); }, |
||||||
|
day: "день", |
||||||
|
days: function(value) { return numpf(value, "%d день", "%d дня", "%d дней"); }, |
||||||
|
month: "месяц", |
||||||
|
months: function(value) { return numpf(value, "%d месяц", "%d месяца", "%d месяцев"); }, |
||||||
|
year: "год", |
||||||
|
years: function(value) { return numpf(value, "%d год", "%d года", "%d лет"); } |
||||||
|
}; |
||||||
|
})(); |
||||||
@ -0,0 +1,18 @@ |
|||||||
|
// Slovak
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: "pred", |
||||||
|
prefixFromNow: null, |
||||||
|
suffixAgo: null, |
||||||
|
suffixFromNow: null, |
||||||
|
seconds: "menej než minútou", |
||||||
|
minute: "minútou", |
||||||
|
minutes: "%d minútami", |
||||||
|
hour: "hodinou", |
||||||
|
hours: "%d hodinami", |
||||||
|
day: "1 dňom", |
||||||
|
days: "%d dňami", |
||||||
|
month: "1 mesiacom", |
||||||
|
months: "%d mesiacmi", |
||||||
|
year: "1 rokom", |
||||||
|
years: "%d rokmi" |
||||||
|
}; |
||||||
@ -0,0 +1,44 @@ |
|||||||
|
// Slovenian with support for dual
|
||||||
|
(function () { |
||||||
|
var numpf; |
||||||
|
numpf = function (n, d, m) { |
||||||
|
if (n == 2) { |
||||||
|
return d; |
||||||
|
} else { |
||||||
|
return m; |
||||||
|
} |
||||||
|
}; |
||||||
|
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: "pred", |
||||||
|
prefixFromNow: "čez", |
||||||
|
suffixAgo: null, |
||||||
|
suffixFromNow: null, |
||||||
|
second: "sekundo", |
||||||
|
seconds: function (value) { |
||||||
|
return numpf(value, "%d sekundama", "%d sekundami"); |
||||||
|
}, |
||||||
|
minute: "minuto", |
||||||
|
minutes: function (value) { |
||||||
|
return numpf(value, "%d minutama", "%d minutami"); |
||||||
|
}, |
||||||
|
hour: "uro", |
||||||
|
hours: function (value) { |
||||||
|
return numpf(value, "%d urama", "%d urami"); |
||||||
|
}, |
||||||
|
day: "dnevom", |
||||||
|
days: function (value) { |
||||||
|
return numpf(value, "%d dnevi", "%d dnevi"); |
||||||
|
}, |
||||||
|
month: "enim mescem", |
||||||
|
months: function (value) { |
||||||
|
return numpf(value, "%d mesecema", "%d meseci"); |
||||||
|
}, |
||||||
|
year: "enim letom", |
||||||
|
years: function (value) { |
||||||
|
return numpf(value, "%d letoma", "%d leti"); |
||||||
|
}, |
||||||
|
wordSeparator: " " |
||||||
|
}; |
||||||
|
|
||||||
|
}).call(this); |
||||||
@ -0,0 +1,18 @@ |
|||||||
|
// Swedish
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: "för", |
||||||
|
prefixFromNow: "om", |
||||||
|
suffixAgo: "sedan", |
||||||
|
suffixFromNow: "", |
||||||
|
seconds: "mindre än en minut", |
||||||
|
minute: "ungefär en minut", |
||||||
|
minutes: "%d minuter", |
||||||
|
hour: "ungefär en timme", |
||||||
|
hours: "ungefär %d timmar", |
||||||
|
day: "en dag", |
||||||
|
days: "%d dagar", |
||||||
|
month: "ungefär en månad", |
||||||
|
months: "%d månader", |
||||||
|
year: "ungefär ett år", |
||||||
|
years: "%d år" |
||||||
|
}; |
||||||
@ -0,0 +1,16 @@ |
|||||||
|
// Turkish
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
suffixAgo: 'önce', |
||||||
|
suffixFromNow: null, |
||||||
|
seconds: '1 dakikadan', |
||||||
|
minute: '1 dakika', |
||||||
|
minutes: '%d dakika', |
||||||
|
hour: '1 saat', |
||||||
|
hours: '%d saat', |
||||||
|
day: '1 gün', |
||||||
|
days: '%d gün', |
||||||
|
month: '1 ay', |
||||||
|
months: '%d ay', |
||||||
|
year: '1 yıl', |
||||||
|
years: '%d yıl' |
||||||
|
}; |
||||||
@ -0,0 +1,34 @@ |
|||||||
|
// Ukrainian
|
||||||
|
(function() { |
||||||
|
function numpf(n, f, s, t) { |
||||||
|
// f - 1, 21, 31, ...
|
||||||
|
// s - 2-4, 22-24, 32-34 ...
|
||||||
|
// t - 5-20, 25-30, ...
|
||||||
|
var n10 = n % 10; |
||||||
|
if ( (n10 == 1) && ( (n == 1) || (n > 20) ) ) { |
||||||
|
return f; |
||||||
|
} else if ( (n10 > 1) && (n10 < 5) && ( (n > 20) || (n < 10) ) ) { |
||||||
|
return s; |
||||||
|
} else { |
||||||
|
return t; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: null, |
||||||
|
prefixFromNow: "через", |
||||||
|
suffixAgo: "тому", |
||||||
|
suffixFromNow: null, |
||||||
|
seconds: "менше хвилини", |
||||||
|
minute: "хвилина", |
||||||
|
minutes: function(value) { return numpf(value, "%d хвилина", "%d хвилини", "%d хвилин"); }, |
||||||
|
hour: "година", |
||||||
|
hours: function(value) { return numpf(value, "%d година", "%d години", "%d годин"); }, |
||||||
|
day: "день", |
||||||
|
days: function(value) { return numpf(value, "%d день", "%d дні", "%d днів"); }, |
||||||
|
month: "місяць", |
||||||
|
months: function(value) { return numpf(value, "%d місяць", "%d місяці", "%d місяців"); }, |
||||||
|
year: "рік", |
||||||
|
years: function(value) { return numpf(value, "%d рік", "%d роки", "%d років"); } |
||||||
|
}; |
||||||
|
})(); |
||||||
@ -0,0 +1,19 @@ |
|||||||
|
//Uzbek
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: null, |
||||||
|
prefixFromNow: "keyin", |
||||||
|
suffixAgo: "avval", |
||||||
|
suffixFromNow: null, |
||||||
|
seconds: "bir necha soniya", |
||||||
|
minute: "1 daqiqa", |
||||||
|
minutes: function(value) { return "%d daqiqa" }, |
||||||
|
hour: "1 soat", |
||||||
|
hours: function(value) { return "%d soat" }, |
||||||
|
day: "1 kun", |
||||||
|
days: function(value) { return "%d kun" }, |
||||||
|
month: "1 oy", |
||||||
|
months: function(value) { return "%d oy" }, |
||||||
|
year: "1 yil", |
||||||
|
years: function(value) { return "%d yil" }, |
||||||
|
wordSeparator: " " |
||||||
|
}; |
||||||
@ -0,0 +1,20 @@ |
|||||||
|
// Vietnamese
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: 'cách đây', |
||||||
|
prefixFromNow: null, |
||||||
|
suffixAgo: null, |
||||||
|
suffixFromNow: "trước", |
||||||
|
seconds: "chưa đến một phút", |
||||||
|
minute: "khoảng một phút", |
||||||
|
minutes: "%d phút", |
||||||
|
hour: "khoảng một tiếng", |
||||||
|
hours: "khoảng %d tiếng", |
||||||
|
day: "một ngày", |
||||||
|
days: "%d ngày", |
||||||
|
month: "khoảng một tháng", |
||||||
|
months: "%d tháng", |
||||||
|
year: "khoảng một năm", |
||||||
|
years: "%d năm", |
||||||
|
wordSeparator: " ", |
||||||
|
numbers: [] |
||||||
|
}; |
||||||
@ -0,0 +1,20 @@ |
|||||||
|
// Simplified Chinese
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: null, |
||||||
|
prefixFromNow: "从现在开始", |
||||||
|
suffixAgo: "之前", |
||||||
|
suffixFromNow: null, |
||||||
|
seconds: "不到1分钟", |
||||||
|
minute: "大约1分钟", |
||||||
|
minutes: "%d分钟", |
||||||
|
hour: "大约1小时", |
||||||
|
hours: "大约%d小时", |
||||||
|
day: "1天", |
||||||
|
days: "%d天", |
||||||
|
month: "大约1个月", |
||||||
|
months: "%d月", |
||||||
|
year: "大约1年", |
||||||
|
years: "%d年", |
||||||
|
numbers: [], |
||||||
|
wordSeparator: "" |
||||||
|
}; |
||||||
@ -0,0 +1,20 @@ |
|||||||
|
// Traditional Chinese, zh-tw
|
||||||
|
jQuery.timeago.settings.strings = { |
||||||
|
prefixAgo: null, |
||||||
|
prefixFromNow: "從現在開始", |
||||||
|
suffixAgo: "之前", |
||||||
|
suffixFromNow: null, |
||||||
|
seconds: "不到1分鐘", |
||||||
|
minute: "大約1分鐘", |
||||||
|
minutes: "%d分鐘", |
||||||
|
hour: "大約1小時", |
||||||
|
hours: "%d小時", |
||||||
|
day: "大約1天", |
||||||
|
days: "%d天", |
||||||
|
month: "大約1個月", |
||||||
|
months: "%d個月", |
||||||
|
year: "大約1年", |
||||||
|
years: "%d年", |
||||||
|
numbers: [], |
||||||
|
wordSeparator: "" |
||||||
|
}; |
||||||
@ -0,0 +1,33 @@ |
|||||||
|
{ |
||||||
|
"name": "timeago", |
||||||
|
"version": "1.4.1", |
||||||
|
"title": "jQuery Timeago", |
||||||
|
"author": { |
||||||
|
"name": "Ryan McGeary", |
||||||
|
"email": "ryan@mcgeary.org", |
||||||
|
"url": "http://ryan.mcgeary.org/" |
||||||
|
}, |
||||||
|
"licenses": [ |
||||||
|
{ |
||||||
|
"type": "MIT", |
||||||
|
"url": "http://opensource.org/licenses/mit-license.php" |
||||||
|
} |
||||||
|
], |
||||||
|
"dependencies": { |
||||||
|
"jquery": ">=1.2.3" |
||||||
|
}, |
||||||
|
"description": "jQuery plugin that makes it easy to support automatically updating fuzzy timestamps (e.g. \"4 minutes ago\" or \"about 1 day ago\").", |
||||||
|
"keywords": [ |
||||||
|
"time", |
||||||
|
"microformat" |
||||||
|
], |
||||||
|
"homepage": "http://timeago.yarp.com/", |
||||||
|
"docs": "https://github.com/rmm5t/jquery-timeago", |
||||||
|
"demo": "http://timeago.yarp.com/", |
||||||
|
"download": "http://timeago.yarp.com/jquery.timeago.js", |
||||||
|
"bugs": "https://github.com/rmm5t/jquery-timeago/issues", |
||||||
|
"maintainers": [], |
||||||
|
"spm": { |
||||||
|
"main": "jquery.timeago.js" |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,30 @@ |
|||||||
|
{ |
||||||
|
"name": "timeago", |
||||||
|
"version": "1.4.1", |
||||||
|
"title": "jQuery Timeago", |
||||||
|
"author": { |
||||||
|
"name": "Ryan McGeary", |
||||||
|
"email": "ryan@mcgeary.org", |
||||||
|
"url": "http://ryan.mcgeary.org/" |
||||||
|
}, |
||||||
|
"licenses": [ |
||||||
|
{ |
||||||
|
"type": "MIT", |
||||||
|
"url": "http://opensource.org/licenses/mit-license.php" |
||||||
|
} |
||||||
|
], |
||||||
|
"dependencies": { |
||||||
|
"jquery": ">=1.2.3" |
||||||
|
}, |
||||||
|
"description": "jQuery plugin that makes it easy to support automatically updating fuzzy timestamps (e.g. \"4 minutes ago\" or \"about 1 day ago\").", |
||||||
|
"keywords": [ |
||||||
|
"time", |
||||||
|
"microformat" |
||||||
|
], |
||||||
|
"homepage": "http://timeago.yarp.com/", |
||||||
|
"docs": "https://github.com/rmm5t/jquery-timeago", |
||||||
|
"demo": "http://timeago.yarp.com/", |
||||||
|
"download": "http://timeago.yarp.com/jquery.timeago.js", |
||||||
|
"bugs": "https://github.com/rmm5t/jquery-timeago/issues", |
||||||
|
"maintainers": [] |
||||||
|
} |
||||||
Loading…
Reference in new issue