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; WlmMSN: arthaelon @ yandex.ru; Jabber: arthaelon @ jabber.org Yahoo! messenger: andre.polykanine; ICQ: 191749952 Twitter: m_elensule - Original message - From: Ashley Sheridan a...@ashleysheridan.co.uk To: Jason Pruim li...@pruimphotography.com 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 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; WlmMSN: arthaelon @ yandex.ru; Jabber: arthaelon @ jabber.org Yahoo! messenger: andre.polykanine; ICQ: 191749952 Twitter: m_elensule - Original message - From: Ashley Sheridan a...@ashleysheridan.co.uk To: Jason Pruim li...@pruimphotography.com 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?
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=menelione=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; WlmMSN: arthaelon @ yandex.ru; Jabber: arthaelon @ jabber.org Yahoo! messenger: andre.polykanine; ICQ: 191749952 Twitter: m_elensule - Original message - From: Peter Lind peter.e.l...@gmail.com To: Andre Polykanine an...@oire.org 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 -- hype 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 /hype -- 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 an...@oire.org 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=menelione=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=menelione=190l=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 -- hype 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 /hype -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php