From 21628abb1a8d3f2c6086c513fe33068f4f4af431 Mon Sep 17 00:00:00 2001 From: Damian Zajkowski Date: Tue, 2 Sep 2014 12:07:48 +0200 Subject: [PATCH] =?UTF-8?q?[fix]=20uproszczenie=20i=20poprawienie=20logiki?= =?UTF-8?q?=20dodawania=20suffiks=C3=B3w=20liczby=20mnogiej=20Signed-off-b?= =?UTF-8?q?y:Damian=20Zajkowski=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- select2_locale_pl.js | 49 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 39 insertions(+), 10 deletions(-) diff --git a/select2_locale_pl.js b/select2_locale_pl.js index d77648ff..87c26194 100644 --- a/select2_locale_pl.js +++ b/select2_locale_pl.js @@ -1,25 +1,54 @@ /** * Select2 Polish translation. - * + * * @author Jan Kondratowicz * @author Uriy Efremochkin * @author Michał Połtyn + * @author Damian Zajkowski */ -(function ($) { +(function($) { "use strict"; $.fn.select2.locales['pl'] = { - formatNoMatches: function () { return "Brak wyników"; }, - formatInputTooShort: function (input, min) { return "Wpisz co najmniej" + 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…"; } + formatNoMatches: function() { + return "Brak wyników"; + }, + formatInputTooShort: function(input, min) { + return "Wpisz co najmniej" + 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…"; + } }; $.extend($.fn.select2.defaults, $.fn.select2.locales['pl']); - function character (n, word, pluralSuffix) { - return " " + n + " " + word + (n == 1 ? "" : n%10 < 5 && n%10 > 1 && (n%100 < 5 || n%100 > 20) ? pluralSuffix : "ów"); + function character(n, word, pluralSuffix) { + //Liczba pojedyncza - brak suffiksu + //jeden znak + //jeden element + var suffix = ''; + if (n > 1 && n < 5) { + //Liczaba mnoga ilość od 2 do 4 - własny suffiks + //Dwa znaki, trzy znaki, cztery znaki. + //Dwa elementy, trzy elementy, cztery elementy + suffix = pluralSuffix; + } else if (n == 0 || n >= 5) { + //Ilość 0 suffiks ów + //Liczaba mnoga w ilości 5 i więcej - suffiks ów (nie poprawny dla wszystkich wyrazów, np. 100 wiadomości) + //Zero znaków, Pięć znaków, sześć znaków, siedem znaków, osiem znaków. + //Zero elementów Pięć elementów, sześć elementów, siedem elementów, osiem elementów. + suffix = 'ów'; + } + return " " + n + " " + word + suffix; } })(jQuery);