Skip to content

Instantly share code, notes, and snippets.

@mvar
Created September 30, 2012 12:26
Show Gist options
  • Select an option

  • Save mvar/3806628 to your computer and use it in GitHub Desktop.

Select an option

Save mvar/3806628 to your computer and use it in GitHub Desktop.
Internationalization: Pluralization in lithuanian language
<?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