4

我正在創建PHP中的Web應用程序,該應用程序將以多種不同語言(總共約10個)提供,並且我想知道你認爲最好的做法是用更一般的術語來設置它。PHP Web應用程序的多語言結構的最佳實踐

我的想法是保持所有語言在同一個域下,並帶有諸如「http://myservice.com/de」的後綴,其中腳本在進入站點並重定向用戶時執行位置檢查。

編輯內容將在所有語言之間共享爲數據庫中的單個帖子,每種語言都有一個特定的數據列。 標記和腳本將全部以英文形式記錄下來,而用戶可見的頁面和部分將被翻譯成從常用詞庫文件收集的各自語言。

.htaccess文件提供處理文章的所有重寫以便以適當的語言顯示它們,即「http://myservice.com/de/artikel/12345/」到「http://myservice.com/article ?id = 12345 & lang = de「。

你認爲什麼是一個乾淨和高效的多語言設置?

+0

您可能想要指定您將使用的編程語言。 – user371320 2012-01-08 12:08:23

+0

我正在考慮使用NodeJS或PHP。至於數據庫,我不確定是否要使用RDBMS。但最有可能的MySQL。 – 2012-01-08 12:12:54

回答

4

大家對如何最好地設置一個國際友好的網站有不同的意見。但是,我儘量不要通過創建自己的系統來重新發明輪子。相反,我在框架中使用內置的國際化和本地化工具,例如CakePHP。

從CakePHP書籍;

您的應用程序能夠吸引更多觀衆的最佳方式之一就是迎合多種語言。這經常被證明是一項艱鉅的任務,但CakePHP的國際化和本地化特性使其更容易。

首先,瞭解一些術語很重要。國際化是指應用程序本地化的能力。術語本地化是指爲了滿足特定語言(或文化)要求(即,「語言環境」)而對應用進行調整。國際化和本地化通常分別縮寫爲i18n和l10n; 18和10是第一個和最後一個字符之間的字符數。

http://book.cakephp.org/1.3/view/1228/Internationalization-Localization

使用內置工具,對我來說,提供了一個有效的方式來翻譯,而不URL重寫應用程序。這也意味着用戶可以配置他們的本地化首選項,並讓他們在每次登錄時自動應用。

這樣的方法也將被認爲更適合搜索引擎,因爲您不會獲得同一內容的多語言副本。

希望這會有所幫助。

+0

謝謝,這看起來很有趣。我之前沒有使用過CakePHP,但可能只是考慮用於此項目。 – 2012-01-08 15:13:01

+1

基蘭!我愛你<3 – 2013-08-08 09:47:23

0

如果您使用ASP.NET(MVC 2或3),我建議閱讀this文章。我認爲這是.NET中的最佳實踐之一。

+0

謝謝。我不打算使用.NET作爲服務器語言,但它對於未來的項目來說肯定是一個有用的資源。 – 2012-01-08 15:15:08

1

我能想到的是最好的建議不這樣做你自己

現有的開源CMS(內容管理系統)可能是一個很好的解決方案,而不是自己建一個。命名兩個領先的CMS系統:Drupal,Joomla。(還有更多的選擇)

這些系統提供了許多功能,可以通過擴展插件(數千個插件)進行一些配置或開箱即可使用。

國際化只是其中之一。可能會比你自己做的更豐富和更強大的功能集。

此外,這些系統還提供了一個擴展API,用於擴展它們與您自己的業務邏輯。

+0

你可能是對的,我應該使用現有的解決方案。我已經嘗試了Drupal和Joomla,但不能說我喜歡它們。將嘗試一些其他框架,並評估哪一個最適合該項目。 – 2012-01-09 23:03:25

+0

Drupal 7對多語言網站存在嚴重問題。我已經爲此掙扎了大約2周,而且即使按照規範進行配置和重新配置,網站仍然只出現在一種語言中,或者網站的一部分使用一種語言,另一種使用不同的語言。我最終結束了自己的CMS。 – Qsiris 2012-08-23 10:50:38

相關問題