2015-10-26 46 views
-2

長期潛伏者,第一次發佈海報(請在我身上輕鬆一下)。內容爲變量的多語言PHP應用程序

背景: 我寫了一個相當大的,複雜的內部(後面的企業防火牆)的金融機構申請。我們現在正在考慮部署到世界各地的辦事處,這將需要翻譯內容。

具體問題: 大部分的內容有變量的內容,這是相當基本的應用程序。

解決方案我已經探討:存儲在數據庫中

1)內容 - 易於管理,易於搜索,易於單個內容塊適用於多頁/使用。無法[容易]在內容中存儲變量。

2)變量在事先準備好的SQL語句 - 不幸的是,準備變量只能通過它的外觀的查詢的WHERE部分。我希望能夠在數據庫中存儲「一些內容:prepared_variable」,並以此方式處理它,但在那裏沒有運氣。

3)含量的XML/JSON /的.ini - 同樣的問題作爲一個數據庫,變量沒有得到解析/填充。 () - 每個人都說它是邪惡的。這可能是它可以或必須使用的情況嗎?我可以創建一個獨立的.sqlite數據庫,該應用程序永遠不會寫入內容存儲,從而降低執行隨機代碼的可能性。事實上,如果有人進入並修改我們的數據庫,我們會遇到更大的問題,儘管我確實看到了風險,並且對於走這條路線非常猶豫。我還擔心,如果我走這條路線,申請可能不會通過任何潛在的審計。

我能想到一些過於複雜的解決方案,但不希望利用它們:

1)處理所有的邏輯,然後加載從模板文件的語言。

2)必要時在變量兩端連接語言。

3.)從DB加載內容並運行str_replace插入變量。

我的具體問題,有人處理多語言應用程序?你如何處理內容中的變量?有沒有我錯過的選項?

+1

你想改變代碼本身的變量名稱或變量的文本輸出到頁面? – Kuya

+0

「大部分內容在內容中都有變量,這對於應用程序來說是非常重要的。」< - 這甚至意味着什麼。我嘗試爲你重新編寫它,但仍然無法弄清楚。 –

+0

如果#*下的#「不願意使用它們」*,那麼您就是指AJAX。我相信多語言支持是您最好的選擇。使用AJAX,您可以創建許多語言的XML文件,然後在後端提供一種方法,允許用戶選擇其偏好語言。該選擇存儲在數據庫中,因此當用戶返回其選擇的語言文件時,將用於填充頁面上的內容。 – Kuya

回答

0

這取決於有多少涉及到的文字,你需要多少種語言支持,本地化是一個問題,什麼樣的預算,你有。最快的解決方案可能是爲每種語言創建單獨的實例,這將成爲維護的噩夢。

如果沒有太多的代碼,我建議你考慮選擇具有國際化和本地化支持的框架,你的代碼翻譯成它。