|
Junior Member
Join Date: Feb 2012
Location: Russia,Saint-Petersburg
|

08-23-2012
, 09:33
Plural world ending in different languages.
|
#1
|
Please, check this stock, and add other languages you know.
For this stock i used:
This stock (you may not undertand nothing there  )
Plural Form(s) inumTranslation(s)
and List of ISO 639-1 codes for language codes.
For examle, we have word "second".
In english:
1 second, 2 seconds, 3 seconds, 4 seconds, 5 seconds, 10 seconds, 15 seconds, 100 seconds
In russian
1 секунда, 2 секунды, 3 секунды, 4 секунды, 5 секунд, 10 секунд, 15 секунд, 100 секунд.
hm... very poor exaple, but i think you'll understand my idea.
PHP Code:
stock get_ending(num,lang[],output[], const form1[]="", const form2[]="", const form3[]="")
{
new num100=num%100, num10=num%10;
if(equali(lang,"en"))//English
{
if(num==1)
format(output,charsmax(output),"%s",form1)
else
format(output,charsmax(output),"%s",form2)
}
else
if(equali(lang,"fr"))//French
{
if(num<2)
format(output,charsmax(output),"%s",form1)
else
format(output,charsmax(output),"%s",form2)
}
else
if(equali(lang,"cs")) //Czech
{
if(num100==1)
format(output,charsmax(output),"%s",form1)
else
if(num100>=2&&num100<=4)
format(output,charsmax(output),"%s",form2)
else
format(output,charsmax(output),"%s",form3)
}
else
if(equali(lang,"ga")) //Irish
{
if(num==1)
format(output,charsmax(output),"%s",form1)
else
if(num==2)
format(output,charsmax(output),"%s",form2)
else
format(output,charsmax(output),"%s",form3)
}
else
if(equali(lang,"lv")) //Latvian
{
if(num10 == 1&& num100 != 11)
format(output,charsmax(output),"%s",form1)
else
if(num!= 0)
format(output,charsmax(output),"%s",form2)
else
format(output,charsmax(output),"%s",form3)
}
else
if(equali(lang,"lt")) //Lithuanian
{
if(num10==1&& num100!=11)
format(output,charsmax(output),"%s",form1)
else
if(num!= 0)
format(output,charsmax(output),"%s",form2)
else
format(output,charsmax(output),"%s",form3)
}
else
if(equali(lang,"mk")) //Macedonian
{
if(num10==1)
format(output,charsmax(output),"%s",form1)
else
if(num10==2)
format(output,charsmax(output),"%s",form2)
else
format(output,charsmax(output),"%s",form3)
}
else
if(equali(lang,"pl")) //Polish
{
if(num==1)
format(output,charsmax(output),"%s",form1)
else
if(num10>=2&& num10<=4&& (num100<10||num100>20))
format(output,charsmax(output),"%s",form2)
else
format(output,charsmax(output),"%s",form3)
}
else
if(equali(lang,"ro")) //Romanian
{
if(num==1)
format(output,charsmax(output),"%s",form1)
else
if(num==0||(num100>=1&&num100<=20))
format(output,charsmax(output),"%s",form2)
else
format(output,charsmax(output),"%s",form3)
}
else
if(equali(lang,"ru"))//Russian
{
if(num10==1&&num100!=11)
format(output,charsmax(output),"%s",form1)
else
if(num10>=2&&num10<=4&&(num100<10||num100>20))
format(output,charsmax(output),"%s",form2)
else
format(output,charsmax(output),"%s",form3)
}
else
if(equali(lang,"sk")) //Slovak
{
if(num==1)
format(output,charsmax(output),"%s",form1)
else
if(num>=2&&num<=4)
format(output,charsmax(output),"%s",form2)
else
format(output,charsmax(output),"%s",form3)
}
else
if(equali(lang,"ja")) //Japanese
{
format(output,charsmax(output),"%s",form1)
}
/*
Other Languages
*/
else
format(output,charsmax(output),"%s",form1)
}
Last edited by Chuvi; 08-23-2012 at 09:34.
Reason: Wrote "very" like "wery"
|
|