在使用db的pylons i18n应用程序的setup_app函数(websetup.py)中,我试图启动要插入数据库的多语言内容。

这样做的想法是这样的:

#necessary imports here
def setup_app(command, conf, vars):
    ....
    for lang in langs:
        set_lang(lang)
        content=model.Content()
        content.content=_('content')
        Session.add(content)
    Session.commit()


不幸的是,这似乎不起作用。 set_lang代码行引发异常,如下所示:

File ".. i18n/translation.py", line 179, in set_lang
    translator = _get_translator(lang, **kwargs)
File ".. i18n/translation.py", line 160, in _get_translator
    localedir = os.path.join(rootdir, 'i18n')
File ".. /posixpath.py", line 67, in join
    elif path == '' or path.endswith('/'):
AttributeError: 'NoneType' object has no attribute 'endswith'


实际上,我什至不确定在没有活动请求对象的情况下是否可以从该setup_app函数中启动i18n机制。

有人在类似的故事上尝试过一些技巧吗?

最佳答案

抱歉,我对I18n和Pylons并不熟悉...

也就是说,您需要跟踪什么是“路径”及其相对于什么。该错误是因为path应该是字符串,但是设置为None ...导致异常,因为代码正在尝试字符串操作'path.endswith()',但是path为None。

关于python - 如何从websetup.py中的setup_app内部启用i18n? (格式化重发),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2798517/

10-13 06:58