table.go 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. // Copyright 2013 ChaiShushan <chaishushan{AT}gmail.com>. All rights reserved.
  2. // Use of this source code is governed by a BSD-style
  3. // license that can be found in the LICENSE file.
  4. package plural
  5. // FormsTable are standard hard-coded plural rules.
  6. // The application developers and the translators need to understand them.
  7. //
  8. // See GNU's gettext library source code: gettext/gettext-tools/src/plural-table.c
  9. var FormsTable = []struct {
  10. Lang string
  11. Language string
  12. Value string
  13. }{
  14. {"??", "Unknown", "nplurals=1; plural=0;"},
  15. {"ja", "Japanese", "nplurals=1; plural=0;"},
  16. {"vi", "Vietnamese", "nplurals=1; plural=0;"},
  17. {"ko", "Korean", "nplurals=1; plural=0;"},
  18. {"en", "English", "nplurals=2; plural=(n != 1);"},
  19. {"de", "German", "nplurals=2; plural=(n != 1);"},
  20. {"nl", "Dutch", "nplurals=2; plural=(n != 1);"},
  21. {"sv", "Swedish", "nplurals=2; plural=(n != 1);"},
  22. {"da", "Danish", "nplurals=2; plural=(n != 1);"},
  23. {"no", "Norwegian", "nplurals=2; plural=(n != 1);"},
  24. {"nb", "Norwegian Bokmal", "nplurals=2; plural=(n != 1);"},
  25. {"nn", "Norwegian Nynorsk", "nplurals=2; plural=(n != 1);"},
  26. {"fo", "Faroese", "nplurals=2; plural=(n != 1);"},
  27. {"es", "Spanish", "nplurals=2; plural=(n != 1);"},
  28. {"pt", "Portuguese", "nplurals=2; plural=(n != 1);"},
  29. {"it", "Italian", "nplurals=2; plural=(n != 1);"},
  30. {"bg", "Bulgarian", "nplurals=2; plural=(n != 1);"},
  31. {"el", "Greek", "nplurals=2; plural=(n != 1);"},
  32. {"fi", "Finnish", "nplurals=2; plural=(n != 1);"},
  33. {"et", "Estonian", "nplurals=2; plural=(n != 1);"},
  34. {"he", "Hebrew", "nplurals=2; plural=(n != 1);"},
  35. {"eo", "Esperanto", "nplurals=2; plural=(n != 1);"},
  36. {"hu", "Hungarian", "nplurals=2; plural=(n != 1);"},
  37. {"tr", "Turkish", "nplurals=2; plural=(n != 1);"},
  38. {"pt_BR", "Brazilian", "nplurals=2; plural=(n > 1);"},
  39. {"fr", "French", "nplurals=2; plural=(n > 1);"},
  40. {"lv", "Latvian", "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"},
  41. {"ga", "Irish", "nplurals=3; plural=n==1 ? 0 : n==2 ? 1 : 2;"},
  42. {"ro", "Romanian", "nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2;"},
  43. {"lt", "Lithuanian", "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"},
  44. {"ru", "Russian", "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"},
  45. {"uk", "Ukrainian", "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"},
  46. {"be", "Belarusian", "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"},
  47. {"sr", "Serbian", "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"},
  48. {"hr", "Croatian", "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"},
  49. {"cs", "Czech", "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"},
  50. {"sk", "Slovak", "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"},
  51. {"pl", "Polish", "nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"},
  52. {"sl", "Slovenian", "nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"},
  53. }