2012-01-29 25 views
3

本地化網站我想創建不同的語言文件。 但我在開始本地化之前的主要問題是,我可能有變量的字符串。如何在codeigniter的語言文件中使用帶變量的字符串?

我的理論是,我可以使用像我的語言文件中的佔位符:

$lang['somekey'] = "Hello Mr. %s, how are you?"; 

是否有一個乾淨漂亮的方法來分析這些變量還是我必須制定一個函數?

謝謝。

+0

檢查這一個:http://codeigniter.com/wiki/Internationalization_and_the_Template_Parser_Class – Joseph 2012-01-29 22:40:54

+0

它不解決我的問題 - 這是非可變字符串。 – pila 2012-01-29 22:51:41

回答

3

你可以使用codeigniter i18n與PHP .sprintf()來實現你想要的。加載codeigniter非變量字符串(使用這些格式的東西),然後將它傳遞給.sprintf()以進行值的格式化和賦值。它應該取代%s部分。它與this question相似。 .sprintf().printf()一樣工作,只是它返回字符串而不是打印它。

+0

好的。似乎CI沒有內置的解決方案。所以我會建立自己的函數來解析sprintf的幫助。謝謝! – pila 2012-01-29 23:03:43

8

我有同樣的問題,並通過這樣做只是,

echo sprintf($this->lang->line('somekey'),'XYZ');//load language library before use 

sprintf()

+0

謝謝。它的工作原理 – 2014-07-16 04:38:56

+0

它不是XSS的開放門戶嗎? – SteeveDroz 2017-03-16 12:14:25

+0

謝謝隊友。這是作品 – marlonjd 2017-06-05 16:01:27

相關問題