2013-03-01 44 views
1

我目前正在編程一個網站,它將使用多種語言,我想知道是否有簡單的方法來爲所有語言只編寫一次網站。將語言選擇寫入jQuery文件?

例如,我有一個名爲'lang'的變量。基本上,如果用戶選擇西班牙語,那麼我希望頁面爲西班牙語加載圖片(或其他資源),而不是英語。例如,通過改變'lang'變量,一個名爲'home_button_eng.jpg'的圖像將會加載'home_button_spa.jpg'。

我在想這會需要'寫'或'改變'一個包含'lang'變量的頁面加載的外部文檔。 換句話說,用戶點擊'spanish'使lang ='spa',然後加載一個連接到該language_choice.js文件的新頁面。加載適當的內容。

有沒有辦法做到這一點?我寧願這樣做,也不願爲西班牙文的每一個英文頁面重複。

回答

1

當然,你不想複製任何內容或代碼。我會組織的所有資產根據自己的語言代碼的子文件夾:

content\ 
    en\ 
     images\ 
    sp\ 
     images\ 

這樣就避免了重複命名的文件中爲每種語言一個文件夾中。在更改語言時,可以使用您選擇的動態語言(Python,PHP,Ruby ...)存儲會話變量,並使用它來使用正確的語言代碼填充所有內容。

根據您的內容將如何動態是,你可以使用.po.mo國際化文件執行它,並宣讀他們在得到您的標題,文字等等,同時還隱含地確定圖像和其他資產的基於位置僅在語言目錄中。

0

如果您的語言特定更改與圖像有關,您可以動態加載特定於語言的CSS文件。

如果您有文本,那麼您可能需要爲您支持的每種語言製作本地化JSON對象,並動態加載。 JSON對象將包含具有語言特定文本或圖像源的元素ids或元素類,您將使用JavaScript遍歷對象鍵並在其中的元素引用中填入特定於語言的數據。