diff --git a/select2_locale_pl.js b/select2_locale_pl.js index e4b69ec4..1936df12 100644 --- a/select2_locale_pl.js +++ b/select2_locale_pl.js @@ -1,37 +1,22 @@ /** * Select2 Polish translation. * - * Author: Jan Kondratowicz + * @author Jan Kondratowicz + * @author Uriy Efremochkin */ (function ($) { "use strict"; - - var pl_suffix = function(n, pluralSuffix) { - if(n == 1) return ""; - if((n%100 > 1 && n%100 < 5) || (n%100 > 20 && n%10 > 1 && n%10 < 5)) return pluralSuffix; - return "ów"; - }; $.extend($.fn.select2.defaults, { - formatNoMatches: function () { - return "Brak wyników."; - }, - formatInputTooShort: function (input, min) { - var n = min - input.length; - return "Wpisz jeszcze " + n + " znak" + pl_suffix(n,'i') + "."; - }, - formatInputTooLong: function (input, max) { - var n = input.length - max; - return "Wpisana fraza jest za długa o " + n + " znak" + pl_suffix(n,'i') + "."; - }, - formatSelectionTooBig: function (limit) { - return "Możesz zaznaczyć najwyżej " + limit + " element" + pl_suffix(limit,'y') + "."; - }, - formatLoadMore: function (pageNumber) { - return "Ładowanie wyników..."; - }, - formatSearching: function () { - return "Szukanie..."; - } + formatNoMatches: function () { return "Brak wyników"; }, + formatInputTooShort: function (input, min) { return "Wpisz jeszcze" + character(min - input.length, "znak", "i"); }, + formatInputTooLong: function (input, max) { return "Wpisana fraza jest za długa o" + character(input.length - max, "znak", "i"); }, + formatSelectionTooBig: function (limit) { return "Możesz zaznaczyć najwyżej" + character(limit, "element", "y"); }, + formatLoadMore: function (pageNumber) { return "Ładowanie wyników..."; }, + formatSearching: function () { return "Szukanie..."; } }); + + function character (n, word, pluralSuffix) { + return " " + n + " " + word + (n == 1 ? "" : n%10 < 5 && n%10 > 1 && (n%100 < 5 || n%100 > 20) ? pluralSuffix : "ów"); + } })(jQuery);