python - 数据库中的 Pyramid 国际化 i18n 单词?

标签 python internationalization pyramid

可以翻译数据库中的单词吗?我想使用标准工具:python setup.py extract_messages 并使用文件 locale/fr/LC_MESSAGES/*.po 进行翻译。

最佳答案

这是可能的。只需将从数据库返回的文本传递给 TranslationString。

您可以使用 TranslationStringFactory(domain) 构建字符串并将其传递给本地化程序。您可能遇到的问题是从数据库中提取字符串。我不确定你如何做到这一点,但你也许可以传递一个提取器来从数据库中提取消息。

另一种可能更好的方法是创建一个带有字符串的虚拟文件。将所有内容提取到格式类似于 gettext 的文件中。

您可以将其添加到修订版中,当前的消息提取器将像往常一样获取文本

编辑

由于数据在数据库中的存储方式始终是非常自定义的,因此据我所知,没有这样的工具。但应该很容易写。

它应该看起来像这样。

with open(registry.settings['db_locale_file'], 'w') as f:
    for result in my_query_results:
        f.writeline('_(u"%s")' % result.key_you_want)

这是一个非常简单的示例,但它应该更复杂。您可以使用 Pyramid Bootstrap 将其设为脚本,然后调用

your_script
python setup.py extract_messages
python setup.py update_catalog
????
python setup.py compile_catalog
????
#profit!

关于python - 数据库中的 Pyramid 国际化 i18n 单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12639896/

相关文章:

Python - 在当前 Windows 资源管理器中获取所选文件的路径

python - 如何在我的 jinja 过滤器中使用 babel 启用时区?

seo - 多版本网络应用程序的 URL 方案

Java ResourceBundles 变音搞砸了

python - 如何在 Pyramid notfound_view_config中返回HTTPMovedPermanently(301状态)而不是HTTPFound(302)

python - 在 Pyramid 中,如何从 View 中返回原始 HTML?

python - 我尝试在矩阵单元格上执行加法操作时发生溢出警告

Python Selenium : Handling Webdriver exception

python - 属性错误 : module 'tensorflow.io' has no attribute 'experimental'

python - 在 Pyramid 中实现 ElasticSearch