pkg.re/essentialkaos/ek.10@v12.41.0+incompatible/pluralize/pluralizers.go (about)

     1  package pluralize
     2  
     3  // ////////////////////////////////////////////////////////////////////////////////// //
     4  
     5  // Pluralizer is pluralization rule function
     6  type Pluralizer func(num int) int
     7  
     8  // ////////////////////////////////////////////////////////////////////////////////// //
     9  
    10  // Ach is pluralization rule for Acholi language
    11  var Ach = func(n int) int {
    12  	if n > 1 {
    13  		return 1
    14  	}
    15  
    16  	return 0
    17  }
    18  
    19  // Af is pluralization rule for Afrikaans language
    20  var Af = func(n int) int {
    21  	if n != 1 {
    22  		return 1
    23  	}
    24  
    25  	return 0
    26  }
    27  
    28  // Ak is pluralization rule for Akan language
    29  var Ak = Ach
    30  
    31  // Am is pluralization rule for Amharic language
    32  var Am = Ach
    33  
    34  // An is pluralization rule for Aragonese language
    35  var An = Af
    36  
    37  // Anp is pluralization rule for Angika language
    38  var Anp = Af
    39  
    40  // Ar is pluralization rule for Arabic language
    41  var Ar = func(n int) int {
    42  	switch n {
    43  	case 0, 1, 2:
    44  		return n
    45  	}
    46  
    47  	if n%100 >= 3 && n%100 <= 10 {
    48  		return 3
    49  	}
    50  
    51  	if n%100 >= 11 {
    52  		return 4
    53  	}
    54  
    55  	return 5
    56  }
    57  
    58  // Arn is pluralization rule for Mapudungun language
    59  var Arn = Ach
    60  
    61  // As is pluralization rule for Assamese language
    62  var As = Af
    63  
    64  // Ast is pluralization rule for Asturian language
    65  var Ast = Af
    66  
    67  // Ay is pluralization rule for Aymará language
    68  var Ay = func(n int) int { return 0 }
    69  
    70  // Az is pluralization rule for Azerbaijani language
    71  var Az = Af
    72  
    73  // Be is pluralization rule for Belarusian language
    74  var Be = func(n int) int {
    75  	if n%10 == 1 && n%100 != 11 {
    76  		return 0
    77  	}
    78  
    79  	if n%10 >= 2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20) {
    80  		return 1
    81  	}
    82  
    83  	return 2
    84  }
    85  
    86  // Bg is pluralization rule for Bulgarian language
    87  var Bg = Af
    88  
    89  // Bn is pluralization rule for Bengali language
    90  var Bn = Af
    91  
    92  // Bo is pluralization rule for Tibetan language
    93  var Bo = Ay
    94  
    95  // Br is pluralization rule for Breton language
    96  var Br = Ach
    97  
    98  // Brx is pluralization rule for Bodo language
    99  var Brx = Af
   100  
   101  // Bs is pluralization rule for Bosnian language
   102  var Bs = Be
   103  
   104  // Ca is pluralization rule for Catalan language
   105  var Ca = Af
   106  
   107  // Cgg is pluralization rule for Chiga language
   108  var Cgg = Ay
   109  
   110  // Cs is pluralization rule for Czech language
   111  var Cs = func(n int) int {
   112  	if n == 1 {
   113  		return 0
   114  	}
   115  
   116  	if n >= 2 && n <= 4 {
   117  		return 1
   118  	}
   119  
   120  	return 2
   121  }
   122  
   123  // Csb is pluralization rule for Kashubian language
   124  var Csb = func(n int) int {
   125  	if n == 1 {
   126  		return 0
   127  	}
   128  
   129  	if n%10 >= 2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20) {
   130  		return 1
   131  	}
   132  
   133  	return 2
   134  }
   135  
   136  // Cy is pluralization rule for Welsh language
   137  var Cy = func(n int) int {
   138  	switch n {
   139  	case 1, 2:
   140  		return n - 1
   141  	}
   142  
   143  	if n != 8 && n != 11 {
   144  		return 2
   145  	}
   146  
   147  	return 3
   148  }
   149  
   150  // Da is pluralization rule for Danish language
   151  var Da = Af
   152  
   153  // De is pluralization rule for German language
   154  var De = Af
   155  
   156  // Doi is pluralization rule for Dogri language
   157  var Doi = Af
   158  
   159  // Dz is pluralization rule for Dzongkha language
   160  var Dz = Ay
   161  
   162  // El is pluralization rule for Greek language
   163  var El = Af
   164  
   165  // En is pluralization rule for English language
   166  var En = Af
   167  
   168  // Eo is pluralization rule for Esperanto language
   169  var Eo = Af
   170  
   171  // Es is pluralization rule for Spanish language
   172  var Es = Af
   173  
   174  // EsAR is pluralization rule for Argentinean Spanish language
   175  var EsAR = Af
   176  
   177  // Et is pluralization rule for Estonian language
   178  var Et = Af
   179  
   180  // Eu is pluralization rule for Basque language
   181  var Eu = Af
   182  
   183  // Fa is pluralization rule for Persian language
   184  var Fa = Ay
   185  
   186  // Ff is pluralization rule for Fulah language
   187  var Ff = Af
   188  
   189  // Fi is pluralization rule for Finnish language
   190  var Fi = Af
   191  
   192  // Fil is pluralization rule for Filipino language
   193  var Fil = Ach
   194  
   195  // Fo is pluralization rule for Faroese language
   196  var Fo = Af
   197  
   198  // Fr is pluralization rule for French language
   199  var Fr = Ach
   200  
   201  // Fur is pluralization rule for Friulian language
   202  var Fur = Af
   203  
   204  // Fy is pluralization rule for Frisian language
   205  var Fy = Af
   206  
   207  // Ga is pluralization rule for Irish language
   208  var Ga = func(n int) int {
   209  	switch n {
   210  	case 1, 2:
   211  		return n - 1
   212  	}
   213  
   214  	if n > 2 && n < 7 {
   215  		return 2
   216  	}
   217  
   218  	if n > 6 && n < 11 {
   219  		return 3
   220  	}
   221  
   222  	return 4
   223  }
   224  
   225  // Gd is pluralization rule for Scottish Gaelic language
   226  var Gd = func(n int) int {
   227  	if n == 1 || n == 11 {
   228  		return 0
   229  	}
   230  
   231  	if n == 2 || n == 12 {
   232  		return 1
   233  	}
   234  
   235  	if n > 2 && n < 20 {
   236  		return 2
   237  	}
   238  
   239  	return 3
   240  }
   241  
   242  // Gl is pluralization rule for Galician language
   243  var Gl = Af
   244  
   245  // Gu is pluralization rule for Gujarati language
   246  var Gu = Af
   247  
   248  // Gun is pluralization rule for Gun language
   249  var Gun = Ach
   250  
   251  // Ha is pluralization rule for Hausa language
   252  var Ha = Af
   253  
   254  // He is pluralization rule for Hebrew language
   255  var He = Af
   256  
   257  // Hi is pluralization rule for Hindi language
   258  var Hi = Af
   259  
   260  // Hne is pluralization rule for Chhattisgarhi language
   261  var Hne = Af
   262  
   263  // Hr is pluralization rule for Croatian language
   264  var Hr = Be
   265  
   266  // Hu is pluralization rule for Hungarian language
   267  var Hu = Af
   268  
   269  // Hy is pluralization rule for Armenian language
   270  var Hy = Af
   271  
   272  // Ia is pluralization rule for Interlingua language
   273  var Ia = Af
   274  
   275  // Id is pluralization rule for Indonesian language
   276  var Id = Ay
   277  
   278  // Is is pluralization rule for Icelandic language
   279  var Is = func(n int) int {
   280  	if n%10 != 1 || n%100 == 11 {
   281  		return 1
   282  	}
   283  
   284  	return 0
   285  }
   286  
   287  // It is pluralization rule for Italian language
   288  var It = Af
   289  
   290  // Ja is pluralization rule for Japanese language
   291  var Ja = Ay
   292  
   293  // Jbo is pluralization rule for Lojban language
   294  var Jbo = Ay
   295  
   296  // Jv is pluralization rule for Javanese language
   297  var Jv = Af
   298  
   299  // Ka is pluralization rule for Georgian language
   300  var Ka = Ay
   301  
   302  // Kk is pluralization rule for Kazakh language
   303  var Kk = Ay
   304  
   305  // Kl is pluralization rule for Greenlandic language
   306  var Kl = Af
   307  
   308  // Km is pluralization rule for Khmer language
   309  var Km = Ay
   310  
   311  // Kn is pluralization rule for Kannada language
   312  var Kn = Af
   313  
   314  // Ko is pluralization rule for Korean language
   315  var Ko = Ay
   316  
   317  // Ku is pluralization rule for Kurdish language
   318  var Ku = Af
   319  
   320  // Kw is pluralization rule for Cornish language
   321  var Kw = func(n int) int {
   322  	switch n {
   323  	case 1, 2, 3:
   324  		return n - 1
   325  	}
   326  
   327  	return 3
   328  }
   329  
   330  // Ky is pluralization rule for Kyrgyz language
   331  var Ky = Ay
   332  
   333  // Lb is pluralization rule for Letzeburgesch language
   334  var Lb = Af
   335  
   336  // Ln is pluralization rule for Lingala language
   337  var Ln = Ach
   338  
   339  // Lo is pluralization rule for Lao language
   340  var Lo = Ay
   341  
   342  // Lt is pluralization rule for Lithuanian language
   343  var Lt = Be
   344  
   345  // Lv is pluralization rule for Latvian language
   346  var Lv = func(n int) int {
   347  	if n%10 == 1 && n%100 != 11 {
   348  		return 0
   349  	}
   350  
   351  	if n != 0 {
   352  		return 1
   353  	}
   354  
   355  	return 2
   356  }
   357  
   358  // Mai is pluralization rule for Maithili language
   359  var Mai = Af
   360  
   361  // Mfe is pluralization rule for Mauritian Creole language
   362  var Mfe = Ach
   363  
   364  // Mg is pluralization rule for Malagasy language
   365  var Mg = Ach
   366  
   367  // Mi is pluralization rule for Maori language
   368  var Mi = Ach
   369  
   370  // Mk is pluralization rule for Macedonian language
   371  var Mk = func(n int) int {
   372  	if n == 1 || n%10 == 1 {
   373  		return 0
   374  	}
   375  
   376  	return 1
   377  }
   378  
   379  // Ml is pluralization rule for Malayalam language
   380  var Ml = Af
   381  
   382  // Mn is pluralization rule for Mongolian language
   383  var Mn = Af
   384  
   385  // Mni is pluralization rule for Manipuri language
   386  var Mni = Af
   387  
   388  // Mnk is pluralization rule for Mandinka language
   389  var Mnk = func(n int) int {
   390  	switch n {
   391  	case 0, 1:
   392  		return n
   393  	}
   394  
   395  	return 2
   396  }
   397  
   398  // Mr is pluralization rule for Marathi language
   399  var Mr = Af
   400  
   401  // Ms is pluralization rule for Malay language
   402  var Ms = Ay
   403  
   404  // Mt is pluralization rule for Maltese language
   405  var Mt = func(n int) int {
   406  	if n == 1 {
   407  		return 0
   408  	}
   409  
   410  	if n == 0 || (n%100 > 1 && n%100 < 11) {
   411  		return 1
   412  	}
   413  
   414  	if n%100 > 10 && n%100 < 20 {
   415  		return 2
   416  	}
   417  
   418  	return 3
   419  }
   420  
   421  // My is pluralization rule for Burmese language
   422  var My = Ay
   423  
   424  // Nah is pluralization rule for Nahuatl language
   425  var Nah = Af
   426  
   427  // Nap is pluralization rule for Neapolitan language
   428  var Nap = Af
   429  
   430  // Nb is pluralization rule for Norwegian Bokmal language
   431  var Nb = Af
   432  
   433  // Ne is pluralization rule for Nepali language
   434  var Ne = Af
   435  
   436  // Nl is pluralization rule for Dutch language
   437  var Nl = Af
   438  
   439  // Nn is pluralization rule for Norwegian Nynorsk language
   440  var Nn = Af
   441  
   442  // No is pluralization rule for Norwegian (old code) language
   443  var No = Af
   444  
   445  // Nso is pluralization rule for Northern Sotho language
   446  var Nso = Af
   447  
   448  // Oc is pluralization rule for Occitan language
   449  var Oc = Ach
   450  
   451  // Or is pluralization rule for Oriya language
   452  var Or = Af
   453  
   454  // Pa is pluralization rule for Punjabi language
   455  var Pa = Af
   456  
   457  // Pap is pluralization rule for Papiamento language
   458  var Pap = Af
   459  
   460  // Pl is pluralization rule for Polish language
   461  var Pl = Be
   462  
   463  // Pms is pluralization rule for Piemontese language
   464  var Pms = Af
   465  
   466  // Ps is pluralization rule for Pashto language
   467  var Ps = Af
   468  
   469  // Pt is pluralization rule for Portuguese language
   470  var Pt = Af
   471  
   472  // PtBR is pluralization rule for Brazilian Portuguese language
   473  var PtBR = Ach
   474  
   475  // Rm is pluralization rule for Romansh language
   476  var Rm = Af
   477  
   478  // Ro is pluralization rule for Romanian language
   479  var Ro = func(n int) int {
   480  	if n == 1 {
   481  		return 0
   482  	}
   483  
   484  	if n == 0 || (n%100 > 0 && n%100 < 20) {
   485  		return 1
   486  	}
   487  
   488  	return 2
   489  }
   490  
   491  // Ru is pluralization rule for Russian language
   492  var Ru = Be
   493  
   494  // Rw is pluralization rule for Kinyarwanda language
   495  var Rw = Af
   496  
   497  // Sah is pluralization rule for Yakut language
   498  var Sah = Ay
   499  
   500  // Sat is pluralization rule for Santali language
   501  var Sat = Af
   502  
   503  // Sco is pluralization rule for Scots language
   504  var Sco = Af
   505  
   506  // Sd is pluralization rule for Sindhi language
   507  var Sd = Af
   508  
   509  // Se is pluralization rule for Northern Sami language
   510  var Se = Af
   511  
   512  // Si is pluralization rule for Sinhala language
   513  var Si = Af
   514  
   515  // Sk is pluralization rule for Slovak language
   516  var Sk = func(n int) int {
   517  	if n == 1 {
   518  		return 0
   519  	}
   520  
   521  	if n >= 2 && n <= 4 {
   522  		return 1
   523  	}
   524  
   525  	return 2
   526  }
   527  
   528  // Sl is pluralization rule for Slovenian language
   529  var Sl = func(n int) int {
   530  	switch n % 100 {
   531  	case 1:
   532  		return 1
   533  	case 2:
   534  		return 2
   535  	case 3:
   536  		return 3
   537  	}
   538  
   539  	return 0
   540  }
   541  
   542  // So is pluralization rule for Somali language
   543  var So = Af
   544  
   545  // Son is pluralization rule for Songhay language
   546  var Son = Af
   547  
   548  // Sq is pluralization rule for Albanian language
   549  var Sq = Af
   550  
   551  // Sr is pluralization rule for Serbian language
   552  var Sr = Be
   553  
   554  // Su is pluralization rule for Sundanese language
   555  var Su = Ay
   556  
   557  // Sv is pluralization rule for Swedish language
   558  var Sv = Af
   559  
   560  // Sw is pluralization rule for Swahili language
   561  var Sw = Af
   562  
   563  // Ta is pluralization rule for Tamil language
   564  var Ta = Af
   565  
   566  // Te is pluralization rule for Telugu language
   567  var Te = Af
   568  
   569  // Tg is pluralization rule for Tajik language
   570  var Tg = Ach
   571  
   572  // Th is pluralization rule for Thai language
   573  var Th = Ay
   574  
   575  // Ti is pluralization rule for Tigrinya language
   576  var Ti = Ach
   577  
   578  // Tk is pluralization rule for Turkmen language
   579  var Tk = Af
   580  
   581  // Tr is pluralization rule for Turkish language
   582  var Tr = Ach
   583  
   584  // Tt is pluralization rule for Tatar language
   585  var Tt = Ay
   586  
   587  // Ug is pluralization rule for Uyghur language
   588  var Ug = Ay
   589  
   590  // Uk is pluralization rule for Ukrainian language
   591  var Uk = Be
   592  
   593  // Ur is pluralization rule for Urdu language
   594  var Ur = Af
   595  
   596  // Uz is pluralization rule for Uzbek language
   597  var Uz = Ach
   598  
   599  // Vi is pluralization rule for Vietnamese language
   600  var Vi = Ay
   601  
   602  // Wa is pluralization rule for Walloon language
   603  var Wa = Ach
   604  
   605  // Wo is pluralization rule for Wolof language
   606  var Wo = Ay
   607  
   608  // Yo is pluralization rule for Yoruba language
   609  var Yo = Af
   610  
   611  // Zh is pluralization rule for Chinese language
   612  var Zh = Ay