2015-04-22 49 views
0

在非常時刻公共靜態數組我定義我的公共靜態變量如下:PHP:有多個按鍵

public static $closed = array(
    'nl' => 'Gesloten', 
    'fr' => 'Fermer', 
    'en' => 'Closed', 
); 

有沒有什麼辦法可以把格式化像下面的陣列中的公共靜態沒有太多的嵌套?

$days['nl']['mon'] = 'Monday'; 
$days['fr']['tue'] = 'Tuesday'; 
$days['en']['wed'] = 'Wednesday'; 
+2

我不確定你想要完成什麼。 「沒有太多嵌套」是什麼意思? –

+0

我認爲用戶指的是避免使用''nl'=>數組('mon'=>'Monday')',儘管我同意我很難理解這樣做的意義。 –

+0

IMO,對於這樣的事情,你最好創建一個類似XML或YAML的翻譯文件,然後根據需要進行解析。它允許您以多種語言(每個文件一種語言)爲整個站點創建翻譯摘要,而不會使用純數據混淆業務邏輯。 –

回答

1

有很多方法來構建數組(像你所做的那樣),但是從上面介紹的信息來看,並不是一個更好或更緊湊的方法。

從我看來,它看起來像你在做翻譯,我強烈建議使用gettext。隨着數組添加翻譯,您的數組將變得越來越大,佔用更多內存。

如何gettext的作品被以下的一個基本的例子:

echo __('Monday'); 

任何傳遞給__()函數獲得通過gettext的發送。在您的腳本中,您先告訴gettext您要使用的語言環境。您最終會擁有易於處理的語言環境文件(.mo)。

+0

請注意,如果您出於某種原因無法使用PHP的gettext擴展,則存在多個PHP本機實現。 – EJTH