Browse Source

[fix] uproszczenie i poprawienie logiki dodawania suffiksów liczby mnogiej
Signed-off-by:Damian Zajkowski <[email protected]>

Damian Zajkowski 10 years ago
parent
commit
21628abb1a
1 changed files with 39 additions and 10 deletions
  1. 39 10
      select2_locale_pl.js

+ 39 - 10
select2_locale_pl.js

@@ -1,25 +1,54 @@
 /**
  * Select2 Polish translation.
- * 
+ *
  * @author  Jan Kondratowicz <[email protected]>
  * @author  Uriy Efremochkin <[email protected]>
  * @author  Michał Połtyn <[email protected]>
+ * @author  Damian Zajkowski <[email protected]>
  */
-(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);