我怎样才能制作多语言网站?

时间:2010-07-04 15:08:29

标签: php internationalization normalization

  

可能重复:
  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

请告诉我。

6 个答案:

答案 0 :(得分: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列 - 比多个文章表或多个内容列使用起来要简单得多。

答案 1 :(得分:1)

我建议您只为文章创建一个表,并为该语言添加一列。因此,如果您需要添加新语言,则无需更改数据库中的任何内容

答案 2 :(得分:1)

答案 3 :(得分: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 ..

答案 4 :(得分:1)

如果您使用java编写网站,可能需要搜索JAVA ResourceBundle,这是一个示例:http://java.sun.com/docs/books/tutorial/i18n/resbundle/propfile.html

如果您正在使用asp.NET,可能需要检查:http://msdn.microsoft.com/en-us/library/ms228208

答案 5 :(得分:0)

如果你使用ASP.Net,请看这里

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