Re: Re[2]: [PHP] How to do i18n better?

2010-04-20 Thread Ashley Sheridan
On Tue, 2010-04-20 at 13:34 +0300, Andre Polykanine wrote:
> Hi Ash,
> 
> Yepp, it's understood. But how exactly did you store the
> language-specific strings: in an array or using another way?
> 
> 
> -- 
> With best regards from Ukraine,
> Andre
> Skype: Francophile; Wlm&MSN: arthaelon @ yandex.ru; Jabber: arthaelon @ 
> jabber.org
> Yahoo! messenger: andre.polykanine; ICQ: 191749952
> Twitter: m_elensule
> 
> - Original message -
> From: Ashley Sheridan 
> To: Jason Pruim 
> Date: Tuesday, April 20, 2010, 2:17:47 AM
> Subject: [PHP] How to do i18n better?
> 
> On Mon, 2010-04-19 at 19:17 -0400, Jason Pruim wrote:
> 
> > On Apr 18, 2010, at 6:55 PM, Andre Polykanine wrote:
> > 
> > > Hi everyone,
> > >
> > > I posted this in the PHP-i18n list, however got no answer so trying
> > > here).
> > > We are making a blog platform (http://oire.org/) which is provided in
> > > several languages (currently they are Russian, Ukrainian, and
> > > English).
> > > Now the i18n process is made as follows: we set a cookie on the site
> > > and depending on it we select the language to display the site in. We
> > > have three (currently) interface files: rus.lng, ukr.lng, and enu.lng
> > > (for English US). the format is the following:
> > > define ("MSG379", "Welcome!");
> > > etc. I know that PHP does support somehow exporting the strings into a
> > > .pod file. Maybe it would be better to do that? If so, how can I do
> > > it?
> > > Could you suggest me maybe a better solution than we currently have?
> > > Thanks a lot!
> > 
> > I've never actually had to do this... But one idea that I came up with  
> > is using the browser language in taking a best guess at what language  
> > to display... In other words, if the user's browser language is set to  
> > Chinese, you can be fairly certain they read Chinese :)
> > 
> > And now that I typed that out, I realize that may not be what you are  
> > really looking for...  And that's when we get into the part where I  
> > can't help alot because I've never had to do it :)
> > 
> > So good luck! :)
> > 
> > 
> > 
> > 
> 
> 
> That's the check I did on the last site i worked on (vicestyle.com) The
> user agent string is checked for a language and the site uses that. If
> none is found (bearing in mind that there's no hard and fast rule about
> what can go into a UA string) then it defaults to English.
> 
> Links within the site itself allow the user to change their language
> afterwards, and you could store that in a cookie to it remembers their
> choice.
> 
> Thanks,
> Ash
> http://www.ashleysheridan.co.uk
> 
> 
> 
> 

The differences were stored in an array with a file per language like
so:

$lang['Welcome'] = 'Welcome';
$lang['Contact'] = 'Contact';

and in a a different file for German maybe:

$lang['Welcome'] = 'Willkommen';
$lang['Contact'] = 'Kontakt';

Thanks,
Ash
http://www.ashleysheridan.co.uk




-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re[2]: [PHP] How to do i18n better?

2010-04-20 Thread Andre Polykanine
Hi Ash,

Yepp, it's understood. But how exactly did you store the
language-specific strings: in an array or using another way?


-- 
With best regards from Ukraine,
Andre
Skype: Francophile; Wlm&MSN: arthaelon @ yandex.ru; Jabber: arthaelon @ 
jabber.org
Yahoo! messenger: andre.polykanine; ICQ: 191749952
Twitter: m_elensule

- Original message -
From: Ashley Sheridan 
To: Jason Pruim 
Date: Tuesday, April 20, 2010, 2:17:47 AM
Subject: [PHP] How to do i18n better?

On Mon, 2010-04-19 at 19:17 -0400, Jason Pruim wrote:

> On Apr 18, 2010, at 6:55 PM, Andre Polykanine wrote:
> 
> > Hi everyone,
> >
> > I posted this in the PHP-i18n list, however got no answer so trying
> > here).
> > We are making a blog platform (http://oire.org/) which is provided in
> > several languages (currently they are Russian, Ukrainian, and
> > English).
> > Now the i18n process is made as follows: we set a cookie on the site
> > and depending on it we select the language to display the site in. We
> > have three (currently) interface files: rus.lng, ukr.lng, and enu.lng
> > (for English US). the format is the following:
> > define ("MSG379", "Welcome!");
> > etc. I know that PHP does support somehow exporting the strings into a
> > .pod file. Maybe it would be better to do that? If so, how can I do
> > it?
> > Could you suggest me maybe a better solution than we currently have?
> > Thanks a lot!
> 
> I've never actually had to do this... But one idea that I came up with  
> is using the browser language in taking a best guess at what language  
> to display... In other words, if the user's browser language is set to  
> Chinese, you can be fairly certain they read Chinese :)
> 
> And now that I typed that out, I realize that may not be what you are  
> really looking for...  And that's when we get into the part where I  
> can't help alot because I've never had to do it :)
> 
> So good luck! :)
> 
> 
> 
> 


That's the check I did on the last site i worked on (vicestyle.com) The
user agent string is checked for a language and the site uses that. If
none is found (bearing in mind that there's no hard and fast rule about
what can go into a UA string) then it defaults to English.

Links within the site itself allow the user to change their language
afterwards, and you could store that in a cookie to it remembers their
choice.

Thanks,
Ash
http://www.ashleysheridan.co.uk




-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: Re[2]: [PHP] How to do i18n better?

2010-04-19 Thread Peter Lind
On 19 April 2010 12:54, Andre Polykanine  wrote:
> Hello Peter,
>
> Regarding the URL switching suggested by you and Michiel, how do I do
> this if I have a rather complicated .htaccess file? For instance, a
> blog entry URL is formed as follows:
> http://oire.org/menelion/entry/190/ which is phisically
> http://oire.org/oire.php?o=menelion&e=190
> If I need to insert the locale somewhere inhere, sorry, I just don't
> know how to do that)

Switch your url structure to something like /en/menelion/entry/190/
and map that to /oire.php?o=menelion&e=190&l=en

You can still default to one language and leave the language bit out
of that - but when switching to a language explicitly, having that as
part of the url helps.

Regards
Peter

-- 

WWW: http://plphp.dk / http://plind.dk
LinkedIn: http://www.linkedin.com/in/plind
Flickr: http://www.flickr.com/photos/fake51
BeWelcome: Fake51
Couchsurfing: Fake51


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re[2]: [PHP] How to do i18n better?

2010-04-19 Thread Andre Polykanine
Hello Peter,

Regarding the URL switching suggested by you and Michiel, how do I do
this if I have a rather complicated .htaccess file? For instance, a
blog entry URL is formed as follows:
http://oire.org/menelion/entry/190/ which is phisically
http://oire.org/oire.php?o=menelion&e=190
If I need to insert the locale somewhere inhere, sorry, I just don't
know how to do that)
-- 
With best regards from Ukraine,
Andre
Skype: Francophile; Wlm&MSN: arthaelon @ yandex.ru; Jabber: arthaelon @ 
jabber.org
Yahoo! messenger: andre.polykanine; ICQ: 191749952
Twitter: m_elensule

- Original message -
From: Peter Lind 
To: Andre Polykanine 
Date: Monday, April 19, 2010, 11:10:59 AM
Subject: [PHP] How to do i18n better?

Consider checking out http://php.net/gettext - it's the set of
functions in PHP for i18n.

With regards to language switching, you should consider using a url
hierarchy for it, instead of just serving all pages with changing
content.

Regards
Peter

-- 

WWW: http://plphp.dk / http://plind.dk
LinkedIn: http://www.linkedin.com/in/plind
Flickr: http://www.flickr.com/photos/fake51
BeWelcome: Fake51
Couchsurfing: Fake51



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php