Re: Re[2]: [PHP] How to do i18n better?
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?
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?
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?
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