【发布时间】:2009-08-07 10:46:06
【问题描述】:
我正在 django 中构建一个应用程序,它已经使用了很多硬编码的字符串。它们大多在模板中,但也有一些在 js 文件中,还有一些可以在代码中找到。现在,每次需要更改某些字符串时,都会有人来找我们,我们不得不浪费时间寻找和更改。我怎样才能开始清理它并将所有这些字符串放在单独的文件中,非程序员可以编辑?
【问题讨论】:
我正在 django 中构建一个应用程序,它已经使用了很多硬编码的字符串。它们大多在模板中,但也有一些在 js 文件中,还有一些可以在代码中找到。现在,每次需要更改某些字符串时,都会有人来找我们,我们不得不浪费时间寻找和更改。我怎样才能开始清理它并将所有这些字符串放在单独的文件中,非程序员可以编辑?
【问题讨论】:
我们将所有硬编码的字符串保存在一个单独的模块中。但是,由于您希望用户随意修改字符串,因此最好将它们保存在数据库中。我认为一个带有键(字符串的标识符)和值(字符串本身)字段的简单模型就可以了。然后,您可以开发一个简单的页面,用户可以通过其标识符选择一个字符串并根据需要对其进行更新。
关于如何在您的应用中使用它们,您可以在应用启动时将它们全部提取到 dict 中(适当的位置可能是 init 模块)并相应地使用它们。
【讨论】:
使用i18n services (gettext) 怎么样?即使您不打算本地化您的应用程序,它们也提供了一种简单而标准的方法来将字符串与实际代码分开。
另外,作为 PO 相当通用的标准,有很多tools 可以编辑资源文件;其中之一(在 Windows 上也可用)是 Poedit。
【讨论】: