我正在编写一个小型python Web应用程序(个人知识管理主要用于学习),具有良好的bottle.py
微框架,但是一个问题让我大吃一惊:
在Web应用程序中提供内部化的最佳方法是什么?我应该使用python gettext
还是别的,我应该编写一个充满{{translatethis}}
的模板,还是有更优雅的方法?
我应该直接从python处理翻译还是使用一些JS魔法来动态重新翻译模板?
由于
答案 0 :(得分:0)
您可以将每个翻译保存在单独的文件中,如下所示:
english.txt
greeting hi
name bob
arabic.txt
greeting اهلاً
name بوب
然后,通过迭代并拆分每一行,将所需的翻译加载到字典中。在此示例中,加载english.txt应返回类似translation = {'greeting': 'hi', 'name': 'bob'}
的内容。
然后通过调用template('{{greeting}} {{name}}!', translation)
使用此字典呈现模板。如果您使用的是从右向左的语言,请务必在HTML中设置dir="rtl"
。