from django.utils.translation import ugettext_lazy as _
_(u"I am off to school at '%s' o'clock" % time)
Run Code Online (Sandbox Code Playgroud)
这有点奇怪,因为我会像这样翻译整行
"I am off to school at \'%s\' o'clock"
Run Code Online (Sandbox Code Playgroud)
现在如果翻译者错误地删除了''%s \',它会破坏代码.
我应该把句子分成两部分吗?但这可能会让翻译人员无法理解句子的背景.
_(u"I am off to school at ") + '%s' + _(u"o'clock") % time
Run Code Online (Sandbox Code Playgroud)
有更好的方法吗?
我阅读并按照这里的说明进行操作,但似乎无法在po文件中看到javascript中的字符串.
structure of my project is:
cb/
cb_app
cb
static_files
templates
Run Code Online (Sandbox Code Playgroud)
首先我将这些复制到我的url.py中:
js_info_dict = {
'packages': ('cb_app',),
}
urlpatterns = patterns('',
(r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict),
)
Run Code Online (Sandbox Code Playgroud)
然后我将这个脚本添加到我的html中:
<script type="text/javascript" src="{% url django.views.i18n.javascript_catalog %}"></script>
Run Code Online (Sandbox Code Playgroud)
我希望获得翻译的实际脚本就是这样简单:
$(document).ready(function () {
$('#id_sales_item').chosen({no_results_text: gettext('No results match')});
});
Run Code Online (Sandbox Code Playgroud)
...并在相同的HTML中使用.
那还有什么我需要做的吗?
我所做的一切,然后是从运行下面两行cb/cb,并从cb/cb_app.
django-admin.py makemessages -l en_GB
Run Code Online (Sandbox Code Playgroud)
但仍处于要么没有"没有结果匹配"的迹象cb/cb/locale也没有cb/cb_app/locale
有小费吗?
我正在EC2 Small实例(1.7 GB RAM)上运行我的应用程序的alpha版本,其中包含postgres和apache(wsgi-mod不是守护进程但是直接).
表现不错,但可能会更好.如果有太多测试用户加入,我也担心内存使用情况.
从Apache切换到nginx服务器是否明智?有没有任何Django开发人员做到这一点,并对结果更满意?在路上任何其他提示也是受欢迎的.
谢谢
我通常保持简单,并在我的模板中使用以下表单语法:
<div>
<div>{{form.title.label}}:</div>
<div>{{form.title}}</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这种方法的问题是html输出中的语义不好.
<div>
<div>Title:</div>
<div><input id="id_form-title" type="text" maxlength="30" name="form-title"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
正确的应该是:
<div>
<label for="id_form-title">Title</label>
<input id="id_form-title" type="text" maxlength="30" name="form-title">
</div>
Run Code Online (Sandbox Code Playgroud)
是否有django内置标签为我自动执行此操作,或者我必须自己手动执行此操作吗?
<div>
<label for="id_form-title">{{form.title.label}}</label>
{{form.title}}
</div>
Run Code Online (Sandbox Code Playgroud) 我现在已成功设置Django-celery以检查我现有的任务,以便在任务到期时通过电子邮件提醒用户:
@periodic_task(run_every=datetime.timedelta(minutes=1))
def check_for_tasks():
tasks = mdls.Task.objects.all()
now = datetime.datetime.utcnow().replace(tzinfo=utc,second=00, microsecond=00)
for task in tasks:
if task.reminder_date_time == now:
sendmail(...)
Run Code Online (Sandbox Code Playgroud)
到目前为止一切都那么好,但是如果我还要向用户显示弹出窗口作为提醒呢?
Twitter引导程序允许创建弹出窗口并从javascript中显示它们:
$(this).modal('show');
Run Code Online (Sandbox Code Playgroud)
问题是,芹菜工作者守护程序如何在用户的浏览器上运行此javascript?也许我走错了路,这根本不可能.因此问题仍然是芹菜上的cronjob可以用来在浏览器上实现ui通知吗?
有了这样的代码,我想知道我是否第二次运行这个函数,这种情况会发生:
btn尽管它们上面有事件并且生活很好,但所有内部都会被擦除.btn,否则清空#deals标签会导致内存泄漏?码:
function test(){
var row = $(this).closest('tr');
$(row).find('#deals').empty();
$(result).find('#tab li a').each(function() {
var btn = $('<a/>', {class: 'btn', href: '#'});
$(row).find('#deals').append(btn);
btn.click(function(event){
event.preventDefault();
...
});
});
}
Run Code Online (Sandbox Code Playgroud) 当我让它显示时,我没有线索如何在没有错误的情况下隐藏它.
我在这里用它来演示它:
键入两个字段中的任何一个字段,而错误消息消失,摘要仍然存在.必须有一个我需要订阅的事件,但我无法弄清楚.
$(document).ready(function () {
var validator = validation_rules('#myform');
validator.form();
function validation_rules(form) {
$.validator.addClassRules("fillone", {
require_from_group: [1, ".fillone"]
});
var validator = $(form).validate({
errorPlacement: function (error, element) {
var field_error = $(form).find('#id_' + element.attr('name')).siblings('.field_error');
if (field_error.length > 0) {
error.appendTo(field_error);
}
$(field_error).show();
},
invalidHandler: function () {
$("#validation_summary").text(validator.numberOfInvalids() + " field(s) are invalid");
}
});
return validator;
}
});
Run Code Online (Sandbox Code Playgroud) 我已经用en-gb语言代码开发了一段时间。现在已经接近发布日期了,我打算将默认语言切换为en-us,但无论我做什么,初始request.LANGUAGE_CODE设置都将被设置为en-gb即使对于未注册的用户也是如此。
仅供参考,我实际上想将time_zone保留在伦敦,而只需将默认语言更改为美式英语。现在,我只是为了使它工作而改变了它们,但仍然没有喜悦。
#TIME_ZONE = 'Europe/London'
TIME_ZONE = 'US/Eastern'
LANGUAGE_CODE = 'en-us'
#LANGUAGE_CODE = 'en-gb'
ugettext = lambda s: s
LANGUAGES = (
('en', ugettext('American English')),
('en-gb', ugettext('British English'))
)
USE_I18N = True
USE_L10N = True
USE_TZ = True
Run Code Online (Sandbox Code Playgroud)
我可能会缺少什么?谢谢
默认情况下,SQL Alchemy或Django基于关系数据库.因此,对模型的任何更改都需要迁移工具,例如sqlalchemy-migrate或South.
现在切换到Google App引擎并使用ndb,如果我更改模型会发生什么?从理论上讲,像Big-Table这样的NoSQL数据库不应该关心进化模式,因此不需要迁移.
但是,定义诸如此类的模型,清楚地表明要验证的模式.
class ExampleModel(ndb.Model):
example_name = ndb.StringProperty(required=True)
example_description = ndb.TextProperty(required=True)
added_by = ndb.UserProperty()
timestamp = ndb.DateTimeProperty(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)
那么如果我添加一个字段会发生什么?更改了字段甚至删除了字段?
我的假设如下:
添加字段
删除字段
修改字段名称
这个假设是否正确?
在使用谷歌分析注册时,需要在其中插入一段js脚本 base.html
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'xxx', 'example.com');
ga('send', 'pageview');
</script>
Run Code Online (Sandbox Code Playgroud)
让它始终存在的问题是,开发机器将提交不是来自真实用户的不必要数据.我想知道是否有办法询问烧瓶是否处于调试模式,因此不首先加载此脚本.
如何在模板中检查调试模式?
django ×6
javascript ×2
jquery ×2
apache ×1
celery ×1
flask ×1
memory ×1
nginx ×1
performance ×1
python ×1
translation ×1