Created
September 30, 2012 12:26
-
-
Save mvar/3806628 to your computer and use it in GitHub Desktop.
Internationalization: Pluralization in lithuanian language
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| /** | |
| * Pluralization in lithuanian language | |
| * | |
| * @author Mantas Varatiejus <var.mantas@gmail.com> | |
| * @package Internationalization | |
| */ | |
| /** | |
| * Returns translation index for the right plural form | |
| * | |
| * @param int $count | |
| * | |
| * @return int | |
| */ | |
| function getIndex($count) | |
| { | |
| $count = abs($count); // same logic for positive and negative numbers | |
| return ($count % 10 == 0 || $count / 10 % 10 == 1) ? 0 : (($count % 10 == 1) ? 1 : 2); | |
| } | |
| /** | |
| * Test | |
| */ | |
| $translations = array( | |
| 0 => 'laipsnių', | |
| 1 => 'laipsnis', | |
| 2 => 'laipsniai', | |
| ); | |
| for ($i = -5; $i < 115; $i++) { | |
| printf("%d %s\n", $i, $translations[getIndex($i)]); | |
| } | |
| /** | |
| * Output: | |
| * | |
| * -5 laipsniai | |
| * ... | |
| * -2 laipsniai | |
| * -1 laipsnis | |
| * 0 laipsnių | |
| * 1 laipsnis | |
| * 2 laipsniai | |
| * ... | |
| * 9 laipsniai | |
| * 10 laipsnių | |
| * ... | |
| * 20 laipsnių | |
| * 21 laipsnis | |
| * 22 laipsniai | |
| * ... | |
| * 29 laipsniai | |
| * 30 laipsnių | |
| * 31 laipsnis | |
| * 32 laipsniai | |
| * ... | |
| * ... | |
| * ... | |
| * 99 laipsniai | |
| * 100 laipsnių | |
| * 101 laipsnis | |
| * 102 laipsniai | |
| * ... | |
| * 109 laipsniai | |
| * 110 laipsnių | |
| * ... | |
| * 114 laipsnių | |
| */ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment