Raised This Month: $ Target: $400
 0% 

Plural world ending in different languages.


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Chuvi
Junior Member
Join Date: Feb 2012
Location: Russia,Saint-Petersburg
Old 08-23-2012 , 09:33   Plural world ending in different languages.
Reply With Quote #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%100num10=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"
Chuvi is offline
Chuvi
Junior Member
Join Date: Feb 2012
Location: Russia,Saint-Petersburg
Old 08-23-2012 , 12:09   Re: Plural world ending in different languages.
Reply With Quote #2

Can somebody help me with other languages?
for example: german?
Chuvi is offline
OvidiuS
Chillaxin'
Join Date: Dec 2009
Location: Serbia
Old 08-23-2012 , 12:17   Re: Plural world ending in different languages.
Reply With Quote #3

Serbian [sr]

1 sekund, 2 sekunde, 3 sekunde, 4 sekunde, 5 sekundi, 10 sekundi, 15 sekundi, 100 sekundi.

or

1 секунд, 2 секунде, 3 секунде, 4 секунде, 5 секунди, 10 секунди, 15 секунди, 100 секунди.

Last edited by OvidiuS; 08-23-2012 at 12:26. Reason: Тханкс дарк.
OvidiuS is offline
Send a message via Skype™ to OvidiuS
dark_style
Senior Member
Join Date: Jul 2009
Location: Bulgaria
Old 08-23-2012 , 12:20   Re: Plural world ending in different languages.
Reply With Quote #4

Bulgarian [bg]

1 sekunda, 2 sekundi, 3 sekundi, 4 sekundi, 5 sekundi, 10 sekundi, 15 sekundi, 100 sekundi.

or

1 секунда, 2 секунди, 3 секунди, 4 секунди, 5 секунди, 10 секунди, 15 секунди, 100 секунди.

Last edited by dark_style; 08-23-2012 at 12:21.
dark_style is offline
Torge
Veteran Member
Join Date: Oct 2011
Old 08-23-2012 , 13:23   Re: Plural world ending in different languages.
Reply With Quote #5

German [de]

1 Sekunde, 2 Sekunden, 3 Sekunden, 4 Sekunden, 5 Sekunden, 10 Sekunden, 15 Sekunden, 100 Sekunden
Torge is offline
Chuvi
Junior Member
Join Date: Feb 2012
Location: Russia,Saint-Petersburg
Old 08-23-2012 , 15:43   Re: Plural world ending in different languages.
Reply With Quote #6

It would be great, if you'll write it in formulas, like this table

So, as i understood
Code:
Serbian [sr]
1 sekund, 2 sekunde, 3 sekunde, 4 sekunde, 5 sekundi, 10 sekundi, 15 sekundi, 100 sekundi.

n=1 } form1 (sekund)
n=>2&&n<=4 } form2 (sekunde)
otherwise } form3 (sekundi)
Code:
Bulgarian [bg]
1 sekunda, 2 sekundi, 3 sekundi, 4 sekundi, 5 sekundi, 10 sekundi, 15 sekundi, 100 sekundi.

n=1 } form1 (sekunda)
otherwise }form2
form3 not used.
Code:
German [de]
1 Sekunde, 2 Sekunden, 3 Sekunden, 4 Sekunden, 5 Sekunden, 10 Sekunden, 15 Sekunden, 100 Sekunden

n=1 } form1 (Secunde)
otherwise } form2 (Secunden)
form3 not used.
Am I correct?
Chuvi is offline
Torge
Veteran Member
Join Date: Oct 2011
Old 08-24-2012 , 00:26   Re: Plural world ending in different languages.
Reply With Quote #7

Ok, this would be good. Instead 'c' we use 'k'.

Quote:
German [de]
1 Sekunde, 2 Sekunden, 3 Sekunden, 4 Sekunden, 5 Sekunden, 10 Sekunden, 15 Sekunden, 100 Sekunden

n=1 } form1 (Sekunde)
otherwise } form2 (Sekunden)
form3 not used.
Torge is offline
OvidiuS
Chillaxin'
Join Date: Dec 2009
Location: Serbia
Old 08-24-2012 , 20:14   Re: Plural world ending in different languages.
Reply With Quote #8

Quote:
Originally Posted by Chuvi View Post
It would be great, if you'll write it in formulas, like this table

So, as i understood
Code:
Serbian [sr]
1 sekund, 2 sekunde, 3 sekunde, 4 sekunde, 5 sekundi, 10 sekundi, 15 sekundi, 100 sekundi.

n=1 } form1 (sekund)
n=>2&&n<=4 } form2 (sekunde)
otherwise } form3 (sekundi)
Am I correct?
Yes you are.
I guess you could also use switch statement instead of if/else
Code:
    if( equali( lang, "sr" ) ) //Serbian     {         switch( num )         {             case 1: formatex( output, charsmax( output ), "%s", form1 )             case 2..4: formatex( output, charsmax( output ), "%s", form2 )             default: formatex( output, charsmax( output ), "%s", form3 )         }     }

Last edited by OvidiuS; 08-24-2012 at 20:15.
OvidiuS is offline
Send a message via Skype™ to OvidiuS
Torge
Veteran Member
Join Date: Oct 2011
Old 08-25-2012 , 09:04   Re: Plural world ending in different languages.
Reply With Quote #9

For german:

PHP Code:
if (equali(lang"de")) // German 
Torge is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 05:42.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode