我在django中構建了一個應用程序,它已經使用了大量的硬編碼字符串。他們主要在模板中,但也有一些在js文件中,還有一些可以在代碼中找到。現在每一次都需要改變一些字符串,人們來找我們,我們不得不浪費時間找到它並改變。我怎麼能開始清理這些,並將所有這些字符串放在單獨的文件中,這可以由非程序員編輯?構建Django應用程序的字符串基礎
回答
我們將所有硬編碼的字符串保存在一個單獨的模塊中。但是,由於您希望用戶按自己的喜好修改字符串,因此最好將它們保存在數據庫中。我認爲一個簡單的模型帶有一個鍵(一個字符串的標識符)和一個值(字符串本身)字段。然後,您可以開發一個簡單的頁面,用戶通過其標識符選擇一個字符串,然後根據需要更新它。
關於如何在應用程序中使用它們,您可以在應用程序啓動時(適當的位置可能是init模塊)將它們全部轉換爲字典並相應地使用它們。
如何使用i18n services(gettext)?即使您不打算本地化您的應用程序,它們也提供了一種簡單而標準的方式將字符串與實際代碼分開。
是的,我知道,基於gettext的Django中有I18N系統。但是,它的工作原理是這樣的:您在代碼中使用自然語言編寫消息,並在其他地方提供翻譯。我們還沒有翻譯,但是我們不想在代碼中硬編碼任何字符串。而Python代碼只有一個地方。那麼javascript或html的東西呢? – gruszczy 2009-08-07 11:02:26
這些模板可以使用國際化的功能獲取字符串:http://docs.djangoproject.com/en/dev/topics/i18n/#in-template-code – 2009-08-07 11:56:02
- 1. Web應用程序基礎結構
- 2. 構建phonegap應用程序時的基礎資產行
- 3. 如何使用ASP.NET MVC構建模塊基礎應用程序?
- 4. 構建基於字符串
- 5. 流基礎:從字符串
- 6. 爲什麼需要在雲基礎架構上構建容錯應用程序?
- 7. 在C編程中使用字符串和子字符串的基礎知識
- 8. 創建一個新的字符串基礎上的字典鍵
- 9. Rails 3:使用myapp.herokuapp.com作爲URL構建基礎的Heroku應用程序
- 10. Java/Grails應用程序的SaaS基礎結構
- 11. Rails 3應用程序的SaaS基礎架構
- 12. 實體框架 - WPF/MVVM應用程序中的基礎結構
- 13. Swift中的字符串基礎知識
- 14. 字符串的基礎知識
- 15. 我可以在專有庫的基礎上構建GPL應用程序嗎?
- 16. 部署/構建/製作Web應用程序的基礎知識是什麼?
- 17. 如何在單元測試的基礎上構建Ember應用程序?
- 18. Objective-C基礎知識:使用字符串創建函數
- 19. 創建類似Wiki的Web應用程序的基礎知識?
- 20. 基於字符串值構建對象
- 21. 基準django應用程序
- 22. Zurb應用程序基礎 - CLI失敗
- 23. 流明應用程序基礎
- 24. 如何區分應用程序和基礎架構端點?
- 25. 邏輯應用程序和基礎架構圖
- 26. 基礎構建錯誤
- 27. 轉換爲基礎64字符串
- 28. numpy:int是一個基礎字符串?
- 29. Django應用程序結構
- 30. 構造Django應用程序
這很酷,特別是所有字符串的網絡管理。然而,在保持gettext方面還有什麼意義,只需要在數據庫中進行翻譯? – gruszczy 2009-08-07 15:16:14
您必須將字符串的翻譯存儲在數據庫中,因爲它將再次提供這些字符串的用戶。用戶不允許修改的所有其他字符串都必須爲「gettext」。 – shanyu 2009-08-07 15:25:39
好吧,所以編碼器通過gettext指定特定的字符串(哪種編碼器特定的字符串可以存在?我們爲什麼要轉換它們?)以及數據庫中用戶可見的所有字符串。但是,JavaScript的字符串基數呢,可以保存在單獨的文件中呢? – gruszczy 2009-08-07 15:45:39