在PHP中設計多語言應用程序有很多種方法。一些基於語言文件,其他基於數據庫。PHP - 多語言應用程序設計
我期待用它主要是 少量文本e.g錯誤 - 在 最多的一個段落。
我想我會需要二十左右
語言。
真的,我在尋找建議而不是明確的答案。你有什麼之前使用,什麼是最快的,最簡單的更新等
非常感謝,
在PHP中設計多語言應用程序有很多種方法。一些基於語言文件,其他基於數據庫。PHP - 多語言應用程序設計
我期待用它主要是 少量文本e.g錯誤 - 在 最多的一個段落。
我想我會需要二十左右
語言。
真的,我在尋找建議而不是明確的答案。你有什麼之前使用,什麼是最快的,最簡單的更新等
非常感謝,
的Gettext
家庭的功能是一個很好的起點:
gettext的功能實現的NLS (母語支持)API,其中 可用於國際化您的 PHP應用程序。
Zend_Translate
非常靈活,並且具有gettext
的線程安全實現。它解決了與天然國際實施方式存在以下問題手冊中指出:
- 不一致API:對於不同的源 格式沒有單一的API。對於 示例,gettext的使用非常複雜。
- PHP僅支持gettext和本地數組:PHP本身提供 只支持數組或gettext。 所有其他源格式必須手動編碼爲 ,因爲沒有 本機支持。
- 未檢測到默認語言: 的默認語言如果沒有 ,則不能檢測到用戶對於不同Web瀏覽器的背景知識 。
- Gettext不是線程安全的:PHP的gettext庫不是線程安全的,不應該在多線程環境中使用。這是由於gettext本身的問題,而不是PHP,但這是一個存在的問題。
值得一提的是,Zend Framework
不是全棧框架 - 換句話說,你不需要使用整個事情只是爲了利用其國際化的API。
我真的很喜歡它,它支持multiple adapters for different data sources,您可以輕鬆地混合,匹配和更改,只需對應用程序進行非常輕微的修改即可。希望有所幫助。
我處理了這兩種解決方案。 (數據庫和平面文件)。但我會給你另一個視角。當您設計應用程序或軟件時,您應該從一開始就考慮另一個重要問題。您會將您的語言項目保存在數據庫和平面文件中。數據庫(或表格)和文本文件的語言支持很重要。如果您嘗試將拉丁文1數據庫中的土耳其字符保留下來,則會遇到一些問題。土耳其就是一個例子。數據庫必須支持您的語言項目的字符。