• Main Page
  • Related Pages
  • Namespaces
  • Data Structures
  • Files
  • Examples
  • File List

E:/E/GEAMP/www/openbiz/openbiz/others/Zend/Translate/Plural.php

00001 <?php
00030 class Zend_Translate_Plural
00031 {
00035     public static function getPlural($number, $locale)
00036     {
00037         if ($locale == "pt_BR") {
00038             // temporary set a locale for brasilian
00039             $locale = "xbr";
00040         }
00041 
00042         if (strlen($locale) > 3) {
00043             $locale = substr($locale, 0, -strlen(strrchr($locale, '_')));
00044         }
00045 
00046         switch($locale) {
00047             case 'bo':
00048             case 'dz':
00049             case 'id':
00050             case 'ja':
00051             case 'jv':
00052             case 'ka':
00053             case 'km':
00054             case 'kn':
00055             case 'ko':
00056             case 'ms':
00057             case 'th':
00058             case 'tr':
00059             case 'vi':
00060                 return 0;
00061                 break;
00062 
00063             case 'af':
00064             case 'az':
00065             case 'bn':
00066             case 'bg':
00067             case 'ca':
00068             case 'da':
00069             case 'de':
00070             case 'el':
00071             case 'en':
00072             case 'eo':
00073             case 'es':
00074             case 'et':
00075             case 'eu':
00076             case 'fa':
00077             case 'fi':
00078             case 'fo':
00079             case 'fur':
00080             case 'fy':
00081             case 'gl':
00082             case 'gu':
00083             case 'ha':
00084             case 'he':
00085             case 'hu':
00086             case 'is':
00087             case 'it':
00088             case 'ku':
00089             case 'lb':
00090             case 'ml':
00091             case 'mn':
00092             case 'mr':
00093             case 'nah':
00094             case 'nb':
00095             case 'ne':
00096             case 'nl':
00097             case 'nn':
00098             case 'no':
00099             case 'om':
00100             case 'or':
00101             case 'pa':
00102             case 'pap':
00103             case 'ps':
00104             case 'pt':
00105             case 'so':
00106             case 'sq':
00107             case 'sv':
00108             case 'sw':
00109             case 'ta':
00110             case 'te':
00111             case 'tk':
00112             case 'ur':
00113             case 'zh':
00114             case 'zu':
00115                 return ($number == 1) ? 0 : 1;
00116 
00117             case 'am':
00118             case 'bh':
00119             case 'fil':
00120             case 'fr':
00121             case 'gun':
00122             case 'hi':
00123             case 'ln':
00124             case 'mg':
00125             case 'nso':
00126             case 'xbr':
00127             case 'ti':
00128             case 'wa':
00129                 return (($number == 0) || ($number == 1)) ? 0 : 1;
00130 
00131             case 'be':
00132             case 'bs':
00133             case 'hr':
00134             case 'ru':
00135             case 'sr':
00136             case 'uk':
00137                 return (($number % 10 == 1) && ($number % 100 != 11)) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2);
00138 
00139             case 'cs':
00140             case 'sk':
00141                 return ($number == 1) ? 0 : ((($number >= 2) && ($number <= 4)) ? 1 : 2);
00142 
00143             case 'ga':
00144                 return ($number == 1) ? 0 : (($number == 2) ? 1 : 2);
00145 
00146             case 'lt':
00147                 return (($number % 10 == 1) && ($number % 100 != 11)) ? 0 : ((($number % 10 >= 2) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2);
00148 
00149             case 'sl':
00150                 return ($number % 100 == 1) ? 0 : (($number % 100 == 2) ? 1 : ((($number % 100 == 3) || ($number % 100 == 4)) ? 2 : 3));
00151 
00152             case 'mk':
00153                 return ($number % 10 == 1) ? 0 : 1;
00154 
00155             case 'mt':
00156                 return ($number == 1) ? 0 : ((($number == 0) || (($number % 100 > 1) && ($number % 100 < 11))) ? 1 : ((($number % 100 > 10) && ($number % 100 < 20)) ? 2 : 3));
00157 
00158             case 'lv':
00159                 return ($number == 0) ? 0 : ((($number % 10 == 1) && ($number % 100 != 11)) ? 1 : 2);
00160 
00161             case 'pl':
00162                 return ($number == 1) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 10) || ($number % 100 > 29))) ? 1 : 2);
00163 
00164             case 'cy':
00165                 return ($number == 1) ? 0 : (($number == 2) ? 1 : ((($number == 8) || ($number == 11)) ? 2 : 3));
00166 
00167             case 'ro':
00168                 return ($number == 1) ? 0 : ((($number == 0) || (($number % 100 > 0) && ($number % 100 < 20))) ? 1 : 2);
00169 
00170             case 'ar':
00171                 return ($number == 0) ? 0 : (($number == 1) ? 1 : (($number == 2) ? 2 : ((($number >= 3) && ($number <= 10)) ? 3 : ((($number >= 11) && ($number <= 99)) ? 4 : 5))));
00172 
00173             default:
00174                 return 0;
00175         }
00176     }
00177 }

Generated on Thu Apr 19 2012 17:01:18 for openbiz by  doxygen 1.7.2