浏览代码

Merge pull request #816 from stepin/master

Better Russian localization
Phuoc Nguyen 11 年之前
父节点
当前提交
6f92fb1002
共有 6 个文件被更改,包括 99 次插入70 次删除
  1. 1 0
      src/js/language/en_US.js
  2. 67 66
      src/js/language/ru_RU.js
  3. 1 1
      src/js/validator/phone.js
  4. 2 2
      src/js/validator/vat.js
  5. 6 1
      src/js/validator/zipCode.js
  6. 22 0
      test/spec/validator/vat.js

+ 1 - 0
src/js/language/en_US.js

@@ -343,6 +343,7 @@
                 MA: 'Morocco',
                 NL: 'Netherlands',
                 RO: 'Romania',
+                RU: 'Russia',
                 SE: 'Sweden',
                 SG: 'Singapore',
                 US: 'USA'

+ 67 - 66
src/js/language/ru_RU.js

@@ -5,65 +5,65 @@
      */
     $.fn.bootstrapValidator.i18n = $.extend(true, $.fn.bootstrapValidator.i18n, {
         base64: {
-            'default': 'Пожалуйста введите корректную строку base64'
+            'default': 'Пожалуйста, введите корректную строку base64'
         },
         between: {
-            'default': 'Пожалуйста введите значение от %s до %s',
-            notInclusive: 'Пожалуйста введите значение между %s и %s'
+            'default': 'Пожалуйста, введите значение от %s до %s',
+            notInclusive: 'Пожалуйста, введите значение между %s и %s'
         },
         callback: {
-            'default': 'Пожалуйста введите корректное значение'
+            'default': 'Пожалуйста, введите корректное значение'
         },
         choice: {
-            'default': 'Пожалуйста введите корректное значение',
-            less: 'Пожалуйста выберите хотя бы %s опций',
-            more: 'Пожалуйста выберите не больше %s опций',
-            between: 'Пожалуйста выберите %s - %s опций'
+            'default': 'Пожалуйста, введите корректное значение',
+            less: 'Пожалуйста, выберите хотя бы %s опций',
+            more: 'Пожалуйста, выберите не больше %s опций',
+            between: 'Пожалуйста, выберите %s-%s опций'
         },
         creditCard: {
-            'default': 'Пожалуйста введите правильный номер кредитной карты'
+            'default': 'Пожалуйста, введите правильный номер кредитной карты'
         },
         cusip: {
-            'default': 'Пожалуйста введите правильный номер CUSIP'
+            'default': 'Пожалуйста, введите правильный номер CUSIP'
         },
         cvv: {
-            'default': 'Пожалуйста введите правильный номер CVV'
+            'default': 'Пожалуйста, введите правильный номер CVV'
         },
         date: {
-            'default': 'Пожалуйста введите правильную дату'
+            'default': 'Пожалуйста, введите правильную дату'
         },
         different: {
-            'default': 'Пожалуйста введите другое значение'
+            'default': 'Пожалуйста, введите другое значение'
         },
         digits: {
-             'default': 'Пожалуйста введите только цифры'
+             'default': 'Пожалуйста, введите только цифры'
         },
         ean: {
-            'default': 'Пожалуйста введите правильный номер EAN'
+            'default': 'Пожалуйста, введите правильный номер EAN'
         },
         emailAddress: {
-            'default': 'Пожалуйста введите правильный адрес e-mail'
+            'default': 'Пожалуйста, введите правильный адрес эл. почты'
         },
         file: {
-            'default': 'Пожалуйста выберите файл'
+            'default': 'Пожалуйста, выберите файл'
         },
         greaterThan: {
-            'default': 'Пожалуйста введите значение большее или равное %s',
-            notInclusive: 'Пожалуйста введите значение больше %s'
+            'default': 'Пожалуйста, введите значение большее или равное %s',
+            notInclusive: 'Пожалуйста, введите значение больше %s'
         },
         grid: {
-            'default': 'Пожалуйста введите правильный номер GRId'
+            'default': 'Пожалуйста, введите правильный номер GRId'
         },
         hex: {
-            'default': 'Пожалуйста введите правильный шестнадцатиричный номер'
+            'default': 'Пожалуйста, введите правильное шестнадцатиричное число'
         },
         hexColor: {
-            'default': 'Пожалуйста введите правильный шестнадцатиричный номер цвета'
+            'default': 'Пожалуйста, введите правильный шестнадцатиричный номер цвета'
         },
         iban: {
-            'default': 'Пожалуйста введите правильный номер IBAN',
+            'default': 'Пожалуйста, введите правильный номер IBAN',
             countryNotSupported: 'Код страны %s не поддерживается',
-            country: 'Пожалуйста введите правильный номер IBAN в %s',
+            country: 'Пожалуйста, введите правильный номер IBAN в %s',
             countries: {
                 AD: 'Андорре',
                 AE: 'Объединённых Арабских Эмиратах',
@@ -147,9 +147,9 @@
             }
         },
         id: {
-            'default': 'Пожалуйста введите правильный идентификационный номер',
+            'default': 'Пожалуйста, введите правильный идентификационный номер',
             countryNotSupported: 'Код страны %s не поддерживается',
-            country: 'Пожалуйста введите правильный идентификационный номер в %s',
+            country: 'Пожалуйста, введите правильный идентификационный номер в %s',
             countries: {
                 BA: 'Боснии и Герцеговине',
                 BG: 'Болгарии',
@@ -181,54 +181,54 @@
             }
         },
         identical: {
-            'default': 'Пожалуйста введите такое же значение'
+            'default': 'Пожалуйста, введите такое же значение'
         },
         imei: {
-            'default': 'Пожалуйста введите правильный номер IMEI'
+            'default': 'Пожалуйста, введите правильный номер IMEI'
         },
         imo: {
-            'default': 'Пожалуйста введите правильный номер IMO'
+            'default': 'Пожалуйста, введите правильный номер IMO'
         },
         integer: {
-            'default': 'Пожалуйста введите правильный целое значение'
+            'default': 'Пожалуйста, введите правильное целое число'
         },
         ip: {
-            'default': 'Пожалуйста введите правильный IP-адрес',
-            ipv4: 'Пожалуйста введите правильный IPv4-адрес',
-            ipv6: 'Пожалуйста введите правильный IPv6-адрес'
+            'default': 'Пожалуйста, введите правильный IP-адрес',
+            ipv4: 'Пожалуйста, введите правильный IPv4-адрес',
+            ipv6: 'Пожалуйста, введите правильный IPv6-адрес'
         },
         isbn: {
-            'default': 'Пожалуйста введите правильный номер ISBN'
+            'default': 'Пожалуйста, введите правильный номер ISBN'
         },
         isin: {
-            'default': 'Пожалуйста введите правильный номер ISIN'
+            'default': 'Пожалуйста, введите правильный номер ISIN'
         },
         ismn: {
-            'default': 'Пожалуйста введите правильный номер ISMN'
+            'default': 'Пожалуйста, введите правильный номер ISMN'
         },
         issn: {
-            'default': 'Пожалуйста введите правильный номер ISSN'
+            'default': 'Пожалуйста, введите правильный номер ISSN'
         },
         lessThan: {
-            'default': 'Пожалуйста введите значение меньшее или равное %s',
-            notInclusive: 'Пожалуйста введите значение меньше %s'
+            'default': 'Пожалуйста, введите значение меньшее или равное %s',
+            notInclusive: 'Пожалуйста, введите значение меньше %s'
         },
         mac: {
-            'default': 'Пожалуйста введите правильный MAC-адрес'
+            'default': 'Пожалуйста, введите правильный MAC-адрес'
         },
         meid: {
-            'default': 'Пожалуйста введите правильный номер MEID'
+            'default': 'Пожалуйста, введите правильный номер MEID'
         },
         notEmpty: {
-            'default': 'Пожалуйста введите значение'
+            'default': 'Пожалуйста, введите значение'
         },
         numeric: {
-            'default': 'Пожалуйста введите корректное действительное число'
+            'default': 'Пожалуйста, введите корректное действительное число'
         },
         phone: {
-            'default': 'Пожалуйста введите правильный номер телефона',
+            'default': 'Пожалуйста, введите правильный номер телефона',
             countryNotSupported: 'Код страны %s не поддерживается',
-            country: 'Пожалуйста введите правильный номер телефона в %s',
+            country: 'Пожалуйста, введите правильный номер телефона в %s',
             countries: {
                 BR: 'Бразилии',
                 CN: 'Китае',
@@ -246,47 +246,47 @@
             }
         },
         regexp: {
-            'default': 'Пожалуйста введите значение соответствующее шаблону'
+            'default': 'Пожалуйста, введите значение соответствующее шаблону'
         },
         remote: {
-            'default': 'Пожалуйста введите правильное значение'
+            'default': 'Пожалуйста, введите правильное значение'
         },
         rtn: {
-            'default': 'Пожалуйста введите правильный номер RTN'
+            'default': 'Пожалуйста, введите правильный номер RTN'
         },
         sedol: {
-            'default': 'Пожалуйста введите правильный номер SEDOL'
+            'default': 'Пожалуйста, введите правильный номер SEDOL'
         },
         siren: {
-            'default': 'Пожалуйста введите правильный номер SIREN'
+            'default': 'Пожалуйста, введите правильный номер SIREN'
         },
         siret: {
-            'default': 'Пожалуйста введите правильный номер SIRET'
+            'default': 'Пожалуйста, введите правильный номер SIRET'
         },
         step: {
-            'default': 'Пожалуйста введите правильный шаг %s'
+            'default': 'Пожалуйста, введите правильный шаг %s'
         },
         stringCase: {
-            'default': 'Пожалуйста вводите только строчные буквы',
-            upper: 'Пожалуйста вводите только заглавные буквы'
+            'default': 'Пожалуйста, вводите только строчные буквы',
+            upper: 'Пожалуйста, вводите только заглавные буквы'
         },
         stringLength: {
-            'default': 'Пожалуйста введите значение корректной длины',
-            less: 'Пожалуйста введите не больше %s символов',
-            more: 'Пожалуйста введите не меньше %s символов',
-            between: 'Пожалуйста введите строку длиной от %s до %s символов'
+            'default': 'Пожалуйста, введите значение корректной длины',
+            less: 'Пожалуйста, введите не больше %s символов',
+            more: 'Пожалуйста, введите не меньше %s символов',
+            between: 'Пожалуйста, введите строку длиной от %s до %s символов'
         },
         uri: {
-            'default': 'Пожалуйста введите правильный URI'
+            'default': 'Пожалуйста, введите правильный URI'
         },
         uuid: {
-            'default': 'Пожалуйста введите правильный номер UUID',
-            version: 'Пожалуйста введите правильный номер UUID версии %s'
+            'default': 'Пожалуйста, введите правильный номер UUID',
+            version: 'Пожалуйста, введите правильный номер UUID версии %s'
         },
         vat: {
-            'default': 'Пожалуйста введите правильный номер VAT',
+            'default': 'Пожалуйста, введите правильный номер ИНН',
             countryNotSupported: 'Код страны %s не поддерживается',
-            country: 'Пожалуйста введите правильный номер VAT в %s',
+            country: 'Пожалуйста, введите правильный номер ИНН (VAT) в %s',
             countries: {
                 AT: 'Австрии',
                 BE: 'Бельгии',
@@ -328,12 +328,12 @@
             }
         },
         vin: {
-            'default': 'Пожалуйста введите правильный номер VIN'
+            'default': 'Пожалуйста, введите правильный номер VIN'
         },
         zipCode: {
-            'default': 'Пожалуйста введите правильный почтовый индекс',
+            'default': 'Пожалуйста, введите правильный почтовый индекс',
             countryNotSupported: 'Код страны %s не поддерживается',
-            country: 'Пожалуйста введите правильный почтовый индекс в %s',
+            country: 'Пожалуйста, введите правильный почтовый индекс в %s',
             countries: {
                 BR: 'Бразилии',
                 CA: 'Канаде',
@@ -343,6 +343,7 @@
                 MA: 'Марокко',
                 NL: 'Нидерландах',
                 RO: 'Румынии',
+                RU: 'России',
                 SE: 'Швеции',
                 SG: 'Сингапуре',
                 US: 'США'

+ 1 - 1
src/js/validator/phone.js

@@ -126,7 +126,7 @@
 
                 case 'RU':
                     // http://regex101.com/r/gW7yT5/5
-                    isValid = (/^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$/g).test(value);
+                    isValid = (/^((8|\+7|007)[\-\.\/ ]?)?([\(\/\.]?\d{3}[\)\/\.]?[\-\.\/ ]?)?[\d\-\.\/ ]{7,10}$/g).test(value);
                     break;
 
                 case 'TH':

+ 2 - 2
src/js/validator/vat.js

@@ -1216,10 +1216,10 @@
          * @returns {Boolean}
          */
         _ru: function(value) {
-            if (/^RU([0-9]{9}|[0-9]{12})$/.test(value)) {
+            if (/^RU([0-9]{10}|[0-9]{12})$/.test(value)) {
                 value = value.substr(2);
             }
-            if (!/^([0-9]{9}|[0-9]{12})$/.test(value)) {
+            if (!/^([0-9]{10}|[0-9]{12})$/.test(value)) {
                 return false;
             }
 

+ 6 - 1
src/js/validator/zipCode.js

@@ -12,6 +12,7 @@
             MA: 'Morocco',
             NL: 'Netherlands',
             RO: 'Romania',
+            RU: 'Russia',
             SE: 'Sweden',
             SG: 'Singapore',
             US: 'USA'
@@ -24,7 +25,7 @@
             country: 'country'
         },
 
-        COUNTRY_CODES: ['BR', 'CA', 'DK', 'GB', 'IT', 'MA', 'NL', 'RO', 'SE', 'SG', 'US'],
+        COUNTRY_CODES: ['BR', 'CA', 'DK', 'GB', 'IT', 'MA', 'NL', 'RO', 'RU', 'SE', 'SG', 'US'],
 
         /**
          * Return true if and only if the input value is a valid country zip code
@@ -103,6 +104,10 @@
                     isValid = /^(0[1-8]{1}|[1-9]{1}[0-5]{1})?[0-9]{4}$/i.test(value);
                     break;
 
+                case 'RU':
+                    isValid = /^[0-9]{6}$/i.test(value);
+                    break;
+
                 case 'SE':
                     isValid = /^(S-)?\d{3}\s?\d{2}$/i.test(value);
                     break;

+ 22 - 0
test/spec/validator/vat.js

@@ -656,6 +656,28 @@ describe('vat', function() {
         }
     });
 
+    it('Russian VAT number', function() {
+        this.bv.updateOption('vat', 'vat', 'country', 'RU');
+
+        // Valid samples
+        var validSamples = ['RU7805145876', 'RU781300557475', '7805145876', '781300557475'];
+        for (var i in validSamples) {
+            this.bv.resetForm();
+            this.$vat.val(validSamples[i]);
+            this.bv.validate();
+            expect(this.bv.isValid()).toBeTruthy();
+        }
+
+        // Invalid samples
+        var invalidSamples = ['RU7805145877', 'RU781300557474', '7805145877', '781300557474'];
+        for (i in invalidSamples) {
+            this.bv.resetForm();
+            this.$vat.val(invalidSamples[i]);
+            this.bv.validate();
+            expect(this.bv.isValid()).toEqual(false);
+        }
+    });
+
     it('Swedish VAT number', function() {
         this.bv.updateOption('vat', 'vat', 'country', 'SE');