2010-07-04 67 views
0

可能重复:
Create a webpage with Multilanguage in PHP
PHP - how to translate a website into multiple languages?如何制作多语言网站?

我想打一个网站,将有3种语言 - 例如英文,阿拉伯文和意大利文 内容肯定会因语言不同而不同。

我应该做不同的表为每种语言,如:

en_articles 
ar_articles 
it_articles 

各有不同语言的同一篇文章,

或使一个表articles这样的:

article_id 
article_en_title 
article_ar_title 
article_it_title 

请建议我。

+1

我想我会去为每种语言的多个表,并有一个表与所有可用的语言或相同集中在一个数组或类似的东西。 – Prix 2010-07-04 15:14:47

+1

这已经在很多变化中被问到过了。搜索“php i18n”和“php多语言”应该会产生一些结果。 – 2010-07-04 15:27:32

+0

另请参阅:http://stackoverflow.com/questions/954160/php-how-to-translate-a-website-into-multiple-languages – Piskvor 2010-07-04 15:44:44

回答

1

如果你很确定你要只用3种语言的工作,最好的选择是使用一个表,有三列,一为语言:

article_id 
article_en_title 
article_ar_title 
article_it_title 

如果最终你需要添加其他语言,只能添加其他栏目。

如果您认为您将要添加其他语言,您希望为其他语言的Web使用代码,我认为最好的解决方案是使用3个表格,一个用于语言,一个用于对于关系的文章和其他表他们

表 “语言”

language_iso 
language_name 

表 “的文章”

article_id 
article_name (Internal name for the article) 

表 “articles_x_languages”

article_id 
language_iso 
article_title 
article_text 

我假设你将有三种语言的每篇文章。例如:

Languages 
language_iso | language_name 
      en | English 
      ar | Arabic 
      it | Italian 

Articles 
article_id | article_name 
     1 | Sample 1 
     2 | Sample 2 

Articles_x_languages 
article_id | language_iso | article_title | article_text 
     1 |   en | english title | Lorem ipsum .. 
     1 |   ar | arabic title | Lorem ipsum .. 
     1 |   it | italian title | Lorem ipsum .. 
     2 |   en | english title | Lorem ipsum .. 
     2 |   ar | arabic title | Lorem ipsum .. 
     2 |   it | italian title | Lorem ipsum .. 
0

如果你与ASP.Net工作,在这里看看

http://msdn.microsoft.com/en-us/library/c6zyy3s9.aspx

+0

否我使用php – 2010-07-04 15:17:41

+0

看看这些: http:// www.bitrepository.com/php-how-to-add-multi-language-support-to-a-website.html ---------------------- -------------- http://devzone.zend.com/article/4469 – onurbaysan 2010-07-04 15:20:13

1

我会建议你创建的物品只有一张桌子,把一个列的语言。所以,如果你需要添加一个新的语言,你不需要在你的数据库进行任何更改

+0

如果我想添加一个新的这需要在表中添加一个新的领域的变化lang如果我使用了你的方法 – 2010-07-04 15:19:20

+0

在你的第一种方法中,你必须创建一个新的表格,在第二种方法中,你必须创建一个新的列。在我介绍的方法中,当您添加新条目时,请在语言栏中添加新语言的值 – 2010-07-04 15:33:03

3

用的语言列表创建一个表,一个带有语言栏的文章表。这样,如果添加新语言,则只需将其添加到语言表中即可。

例子:

table `languages`: 
| id | name | 
================ 
| 1 | English | 
| 2 | Arabic | 
| 3 | Italian | 

table `articles` (only relevant columns): 
| language_id | title  | content         | 
======================================================================= 
|   1 | Some title | Some content in English     | 
|   3 | Ascia  | Dio mio! C'e' un' ascia nella mia testa! | 
|   1 | Axe  | Oh my god! There's an axe in my head! | 

这样一来,你就不需要添加语言时,更改数据库架构。正如你所看到的,有一个articles表和一个content列 - 比多个文章表或多个内容列显着简单。