我想學習AngularJS和DjangoCMS,所以我創建了一個新的項目,一起使用它們。如何處理DjangoCMS i18n網址(/ en/my_page,/ fr/my_page ...)和AngularJS?
狀態
默認情況下,DjangoCMS使用第一個URL段,以確定該網站的語言(/ EN /,/ FR /)。每個不包含語言片段的網址默認會被重定向到/ zh /。
這意味着,我所有的AngularJS ajax調用都需要指向/ en/api /或/ fr/api /。
問題
我想利用這個第一段,以確定國際化角度的語言。
還將全局第一段設置爲我的AngularJS應用程序,所以我不需要在每個ajax調用中指定它。
問題解決
一個解決方案,我發現是使用不同的模板Django上側每種語言。
- 英文模板
<base href="/en/">
標記爲<head>
。 - 法國模板
<base href="/fr/">
標記爲<head>
,我可以使用預先捆綁的規則集或簡單地將本地腳本添加到腳本列表(https://docs.angularjs.org/guide/i18n)。
我想這也適用於更多的語言,但這意味着我必須爲每種語言創建特定的模板和代碼。
最佳解決方案?
我認爲最好的做法是在Angular應用程序中定義一個邏輯,根據第一個網址段加載語言腳本,並在應用程序中確定全局第一個段。我們將避免爲每種語言編寫代碼。 該解決方案可能嗎?我在Angular上動態地設置了一個基礎URL,但我沒有找到任何有趣的結果。
我不確定這個問題應該在StackOverflow上,但我並不真正瞭解其他堆棧交換論壇。
謝謝!
感謝您的回答。實際上,當設置 '時,該應用將執行的每個調用都會自動設置該基地。所以不需要手動添加它。您的解決方案几乎是我對我的應用程序做的,但這是正常工作:) –
Link14