在金字塔中使用巴别塔语和语言

2024-10-03 09:09:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我对巴别塔语和语言有问题。我希望babel/lingua扫描我的源文件夹,查找创建pot目录所需的特定字符串

这是我的setup.py

...

requires = [
    ...
    'Babel',
    'lingua',
    ]

extractors = { 'dbas': [
    ('**.py', 'python', None ),
    ('**.pt', 'chameleon', None ),
    ('static/**', 'ignore', None),
    ]}

setup(name='DBAS',
    ...
    message_extractors=extractors,
    ...
    )

还有我的setup.cfg

[compile_catalog]
directory = dbas/locale
domain = mydbas
statistics = true

[extract_messages]
copyright_holder = Acme Inc.
output_file = dbas/locale/mydbas.pot
charset = UTF-8

[init_catalog]
domain = mydbas
input_file = dbas/locale/mydbas.pot
output_dir = dbas/locale

[update_catalog]
domain = mydbas
input_file = dbas/locale/mydbas.pot
output_dir = dbas/locale
previous = true

在myinit.py中,我有如下内容:

config.add_translation_dirs('dbas:locale')

例如,我的404模板是:

<!DOCTYPE html>
<html lang="${request.locale_name}"
            metal:use-macro="load: basetemplate.pt"
            xmlns="http://www.w3.org/1999/xhtml"
            xml:lang="en"
            xmlns:i18n="http://xml.zope.org/namespaces/i18n"
            i18n:domain="dbas">

<head>
    <link type="text/css" href="${request.static_url('dbas:static/css/theme_center.css')}" rel="stylesheet">
</head>

<body>

    <div class="center">
        <div class="error">
            <h1><span class="font-semi-bold" i18n:translate="404">404 Error</span></h1>
            <p class="lead font-normal">The page &quot;<span class="font-semi-bold">${page_notfound_viewname}</span>&quot; for could not be found.</p>
            <br>
            <input class="button button-block btn-lg btn btn-primary" type="submit" onClick="self.location.href='/'" value="Let's go home!" />
        </div>
    </div>

</body>
<html>

现在我可以跑步了:

python3 setup.py develop
setup.py extract_messages

我收到:

running extract_messages
extracting messages from dbas/__init__.py
extracting messages from dbas/helper.py
extracting messages from dbas/security.py
extracting messages from dbas/tests.py
extracting messages from dbas/views.py
extracting messages from dbas/database/__init__.py
extracting messages from dbas/database/initializedb.py
extracting messages from dbas/database/model.py
extracting messages from dbas/templates/404.pt
Traceback (most recent call last):
  File "setup.py", line 60, in <module>
    """,
  File "/usr/lib/python3.4/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/usr/lib/python3.4/distutils/dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python3.4/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/usr/local/lib/python3.4/dist-packages/babel/messages/frontend.py", line 305, in run
    for filename, lineno, message, comments, context in extracted:
  File "/usr/local/lib/python3.4/dist-packages/babel/messages/extract.py", line 163, in extract_from_dir
    strip_comment_tags):
  File "/usr/local/lib/python3.4/dist-packages/babel/messages/extract.py", line 190, in extract_from_file
    strip_comment_tags))
  File "/usr/local/lib/python3.4/dist-packages/babel/messages/extract.py", line 262, in extract
    raise ValueError('Unknown extraction method %r' % method)
ValueError: Unknown extraction method 'chameleon'

有人知道吗,怎么了


Tags: infrompylibusrdistsetupline
1条回答
网友
1楼 · 发布于 2024-10-03 09:09:10

对于babel和lingua的最新版本,您的message_extractors配置可能已过时。出于调试目的,您需要could ask for lingua extractors。我实际上不知道如何为巴贝尔做到这一点

$ bin/pot-create  list-extractors
chameleon         Chameleon templates (defaults to Python expressions)
python            Python sources
xml               Chameleon templates (defaults to Python expressions)
zcml              Zope Configuration Markup Language (ZCML)
zope              Zope templates (defaults to TALES expressions)

我最近跟踪了pyramid's narrative documentation for i18n/l10。提取工作流似乎已更改。使用语言>=3.0.9和babel==1.3我不再需要任何setuptools集成配置,比如setup.cfg和定义message_extractors用于常见情况,比如mines&;你的从python中提取消息字符串&;变色龙模板是现成的。但是金字塔文档应该改进一点

几天后I notified the pyramid project about my observations on the topicsuggested a small change to lingua i18n.sh script that helps finding fuzzy messages。也许这些资源对你也有帮助

相关问题 更多 >