簡體   English   中英

I18N,L10N和數據庫,怎么辦?

[英]I18N, L10N and database, how to?

我將更新/重寫現有的硬編碼網站。

我需要對其進行本地化,但是該應用程序將根據國家/地區/語言提供不同的內容。

最好的方法是什么?

我雖然要在數據庫中為每個本地化的創建內容添加一列,例如“ locale = en_GB”,或者為每個應用程序使用不同的數據庫。

有任何意見嗎?


編輯

假設有一個應用程序。 好。

我希望此應用程序具有相同的功能,但在不同的國家/地區。

內容是由社區提供的,因此無法翻譯,並且內容范圍不廣,僅適用於配置為與國家C合作的應用程序。

國家=一個域名=特定內容=與其他特征相同。

我知道我可以將每個應用程序配置為使用不同的數據庫,但是我想如果需要添加一列來添加功能,則必須在每個國家/地區進行操作。

如果我添加一列來本地化內容,則可以通過指定當前使用的語言環境來獲取本地化的內容,無論應用程序是什么。

我將使用Zend_Locale和Zend_Translate / gettext,所以我知道如何在php中進行操作。

兩種解決方案都有其優點和缺點,但是我在這種應用程序中沒有足夠的經驗來選擇正確的方法。

語言環境很少是數據庫的一部分。

語言環境是數據庫中數據表示的一部分。

因此,每個用戶都提供他們的語言環境。

您的應用程序使用普通本地化來翻譯數字和日期。

您的應用程序使用普通的i18n庫將數據庫文本和應用程序消息轉換為本地化文本。

我會采用第一種方法:用特定的列標記每種不同的語言。 比管理不同的數據庫/表更容易管理,也更靈活。

在布局上:可以使用PHP的gettext()函數,也可以根據需要為每種語言創建不同的模板。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM