hii, I want to design a multilingual website and finding very very difficult how to go about it. Have any one done this before ? if yes !!! what are the points one has keep in mind while designing such website.
hii, I want to design a multilingual website and finding very very difficult how to go about it. Have any one done this before ? if yes !!! what are the points one has keep in mind while designing such website.
Ever heard of google.com?
On Tuesday 19 September 2006 06:08, Harshal Vaidya wrote:
hii, I want to design a multilingual website and finding very very difficult how to go about it. Have any one done this before ? if yes !!! what are the points one has keep in mind while designing such website.
Ever heard of google.com?
Ya. but he wants clik here-n-there stuff i suppose.
On 9/19/06, Harshal Vaidya harshalx@gmail.com wrote:
hii, I want to design a multilingual website and finding very very difficult how to go about it. Have any one done this before ? if yes !!! what are the points one has keep in mind while designing such website.
Ever heard of google.com?
-- Thanks and Regards, Harshal Vaidya.
http://www.lakhpatipage.com Cheapest way to advertise on the internet
Use Drupal. Go to drupal.org and drupal.in
Sometime on Sep 18, Ak cobbled together some glyphs to say:
I want to design a multilingual website and finding very very difficult how
what do you mean by design and what do you mean by multilingual website?
Will you have multiple languages on the same page at the same time?
Some suggestions: 1. use utf8 for all data 2. use valid HTML, including the lang attribute for container tags 3. use CSS to specify the preferred font to use for different languages (not everyone has all fonts installed).
On 18-Sep-06, at 7:50 PM, Ashok kumar wrote:
I want to design a multilingual website and finding very very difficult how to go about it. Have any one done this before ? if yes !!! what are the points one has keep in mind while designing such website.
yes. One is the strings used in the code - just make a standard .po file and you are done. Translating the content - all my content is stored in database tables. I create fresh tables for each language - the headache is to get people to translate, so this has not been implemented as yet
Sometime Today, KG cobbled together some glyphs to say:
yes. One is the strings used in the code - just make a standard .po file and you are done. Translating the content - all my content is stored in database tables. I create fresh tables for each language - the headache is to get people to translate, so this has not been implemented as yet
do you do run time string replacement or do you maintain separate copies of html files for each language? the former is non-performant, the latter is a maintenance nightmare unless you have a single source of truth that's compiled to each language version.
On 19-Sep-06, at 11:44 AM, Philip Tellis wrote:
yes. One is the strings used in the code - just make a standard .po file and you are done. Translating the content - all my content is stored in database tables. I create fresh tables for each language - the headache is to get people to translate, so this has not been implemented as yet
do you do run time string replacement or do you maintain separate copies of html files for each language? the former is non- performant, the latter is a maintenance nightmare unless you have a single source of truth that's compiled to each language version
string replacement is handled by python's gettext module so it is runtime replacement from the compiled .mo file. All content is pulled from the database, so, for example, I have a table like this:
create table article( id serial primary key, title varchar(100) ... matter text )
then the language tables:
create table langarticle( id serial primary key, art_id foreignkey to article(id) lang_id foreigngkey to languages(id) title - varchar(100) matter - text )
and depending on the language setting, the appropriate file is pulled out of the database and sent to the template
Sometime Today, KG cobbled together some glyphs to say:
string replacement is handled by python's gettext module so it is runtime replacement from the compiled .mo file. All content is pulled from the
that's bad. won't scale.
On 19-Sep-06, at 12:39 PM, Philip Tellis wrote:
string replacement is handled by python's gettext module so it is runtime replacement from the compiled .mo file. All content is pulled from the
that's bad. won't scale.
scales - SOP for python run sites. What other way is there?
Sometime Today, KG cobbled together some glyphs to say:
scales - SOP for python run sites. What other way is there?
what's SOP?
if you think it scales, then chances are you aren't getting too many visitors. what you should do is pregenerate multiple copies of files, one for each language, and serve static files out to users.
the less dynamic content on a page, the better it will scale.
On 19-Sep-06, at 1:15 PM, Philip Tellis wrote:
what's SOP?
Standard Operating Procedure
if you think it scales, then chances are you aren't getting too many visitors. what you should do is pregenerate multiple copies of files, one for each language, and serve static files out to users.
too much work - and there are some pretty massive sites out there running on django or Rails using dynamic content - the bottleneck is not translating text. It is serving media - django advocates serving media from a separate server from the filesystem and not the database.
the less dynamic content on a page, the better it will scale.
obvious - but the less dynamic content, the more work for the programmer and there is no fun in being a programmer if you have to work
Sometime Today, KG cobbled together some glyphs to say:
too much work - and there are some pretty massive sites out there running on
only if you do it manually. what you're doing is akin to compiling a C program everytime a user wants to run it. OTOH, you could get gcc to do that once and just give the user the binary.
the less dynamic content on a page, the better it will scale.
obvious - but the less dynamic content, the more work for the programmer and there is no fun in being a programmer if you have to work
nope, less work for programmer. less work for the web server. more work for the preprocessor.
how many hundreds of millions of users do these sites have?
Philip
On 19-Sep-06, at 1:52 PM, Philip Tellis wrote:
too much work - and there are some pretty massive sites out there running on
only if you do it manually. what you're doing is akin to compiling a C program everytime a user wants to run it. OTOH, you could get gcc to do that once and just give the user the binary.
mod_python + cacheing cuts this down dramatically
the less dynamic content on a page, the better it will scale.
obvious - but the less dynamic content, the more work for the programmer and there is no fun in being a programmer if you have to work
nope, less work for programmer. less work for the web server. more work for the preprocessor.
how many hundreds of millions of users do these sites have?
no idea - they are not yahoo or google anyway. washinton post seems to be the biggest - but i dont think they are multilingual. Someone on this thread suggested we do it how google does it, but he didnt elaborate.
On 9/19/06, Kenneth Gonsalves lawgon@au-kbc.org wrote:
no idea - they are not yahoo or google anyway. washinton post seems to be the biggest - but i dont think they are multilingual. Someone on this thread suggested we do it how google does it, but he didnt elaborate.
Lot of large sites use Akamai to serve their dynamic and static content. More specifically, Yahoo and Washington Post both use Akamai to serve media/static content (images/javascript/audio/video)
-- Vinayak
On 9/19/06, Kenneth Gonsalves lawgon@au-kbc.org wrote:
too much work - and there are some pretty massive sites out there running on django or Rails using dynamic content - the bottleneck is not translating text. It is serving media - django advocates serving media from a separate server from the filesystem and not the database.
Dynamic sites are hard to scale for large/massive number of users as compared to static sites. The design idea should always be to push as much stuff into static content (using pregeneration/preprocessing as needed), keeping only things such as user preferences dynamic.
Media should never be served from DB if you are serious about page-load times on the client and performance/scaling of the webserver.
obvious - but the less dynamic content, the more work for the programmer and there is no fun in being a programmer if you have to work
It is less work for the programmer in the long run. It is better to pregenerate pages and serve them rather than being called up in the night when users decide to swarm to your website.
-- Vinayak
On 19/09/06 13:33 +0530, Kenneth Gonsalves wrote: <snip>
obvious - but the less dynamic content, the more work for the programmer and there is no fun in being a programmer if you have to work
No, you write a script to generate your pages once. As many of them as possible. Then run that script every few minutes. See the way /. works.
Devdas Bhagat
On 19-Sep-06, at 3:55 PM, Devdas Bhagat wrote:
obvious - but the less dynamic content, the more work for the programmer and there is no fun in being a programmer if you have to work
No, you write a script to generate your pages once. As many of them as possible. Then run that script every few minutes. See the way /. works.
ahh, that sounds like fun - so i generate all possible pages in all possible languages and store them - but what about search and query results - do i generate all possible searches and all possible queries in all possible languages and store them too?
On 19/09/06 16:18 +0530, Kenneth Gonsalves wrote: <snip>
ahh, that sounds like fun - so i generate all possible pages in all possible languages and store them - but what about search and query results - do i generate all possible searches and all possible queries in all possible languages and store them too?
At least the most common queries.
Devdas Bhagat
On 9/19/06, Kenneth Gonsalves lawgon@au-kbc.org wrote:
obvious - but the less dynamic content, the more work for the programmer and there is no fun in being a programmer if you have to work
No, you write a script to generate your pages once. As many of them as possible. Then run that script every few minutes. See the way /. works.
ahh, that sounds like fun - so i generate all possible pages in all possible languages and store them - but what about search and query results - do i generate all possible searches and all possible queries in all possible languages and store them too?
Not all possible pages but atleast the most requested ones can be cached based on query string (GET) or POST data of HTTP. There are quite a few websites that do it. A large online US retailer for example stores generated for frequent queries such as "britney spears cds" with a fairly low cache-TTL as such catalogues do not get updated very often. (Catalogues such as these are often updated in weeks and months if not days).
-- Vinayak
On 19-Sep-06, at 4:40 PM, Vinayak Hegde wrote:
ahh, that sounds like fun - so i generate all possible pages in all possible languages and store them - but what about search and query results - do i generate all possible searches and all possible queries in all possible languages and store them too?
Not all possible pages but atleast the most requested ones can be cached based on query string (GET) or POST data of HTTP. There are quite a few websites that do it. A large online US retailer for example stores generated for frequent queries such as "britney spears cds" with a fairly low cache-TTL as such catalogues do not get updated very often. (Catalogues such as these are often updated in weeks and months if not days).
but these guys only have one language to deal with
Sometime Today, KG cobbled together some glyphs to say:
ahh, that sounds like fun - so i generate all possible pages in all possible languages and store them - but what about search and query results - do i
you do it only for static language strings, not for content.
generate all possible searches and all possible queries in all possible
search results are content.
On 19-Sep-06, at 5:17 PM, Philip Tellis wrote:
ahh, that sounds like fun - so i generate all possible pages in all possible languages and store them - but what about search and query results - do i
you do it only for static language strings, not for content.
in that case it is simple, elegant and should work
On 9/19/06, Philip Tellis philip.tellis@gmx.net wrote:
Sometime Today, KG cobbled together some glyphs to say:
string replacement is handled by python's gettext module so it is runtime replacement from the compiled .mo file. All content is pulled from the
that's bad. won't scale.
the usuall method (used by many CMS) is to have all english strings in one file typically refered to as associated arrays or key value pairs.. PO files can be generated from it, which is then translated.. a translated file can be used to generate a language file (which is much like the english one in structure).. which is used based of the language opted by the user. gettext is used in the translation process... but not necessarily at runtime..
Karunakar
On 9/19/06, Philip Tellis philip.tellis@gmx.net wrote:
Sometime Today, KG cobbled together some glyphs to say:
string replacement is handled by python's gettext module so it is runtime replacement from the compiled .mo file. All content is pulled from the
that's bad. won't scale.
I would say its a matter of striking a balance on how much of runtime and how much of pre-processed. Surprisingly the same problems apply everywhere all the times :)
The easier option is to have some amount of the content being stored in pre-processed cache if an n number of hits for a particular language happen.
just my 2 paise :D
regards, C