配置了一上午 flask + flask-peewee + flask-babel, 以为能够实现多语言支持,结果发现这几个库非常反人类啊。
1. 中文的 locale 竟然是 zh_Hans_CN ,而不是我们经常用的 zh_CN , 而且从网上查到的所有帖子举例说明中文化的方法都是用 pybabel init -i messages.pot -d app/translations -l zh_CN --- 我再次声明一下,这个不行。
2. 无法为 flask 的 extensions 做翻译。我觉得flask-peewee这个项目汉化一下就可以在项目中使用, 结果发现 flask 这家伙压根就没法支持 extension 的翻译,你用 flask-babel 所介绍的生成翻译文件的方法生成message.po, message.mo后也是加载不了的, 哪怕改称zh_Hans_CN! 这就意味这flask extension是无法国际化的(后来把所有flask extensions验证了一下,发现它们的项目目录下统统没有翻译文件的)。 如果做一个扩展后只能够支持一种语言,那用的人少,漏洞多也是正常的了。
经常在v2ex上面看到有人说flask的优势,我感觉只能说声“呵呵”, 还是继续django吧。当玩具或许可以。
1. 中文的 locale 竟然是 zh_Hans_CN ,而不是我们经常用的 zh_CN , 而且从网上查到的所有帖子举例说明中文化的方法都是用 pybabel init -i messages.pot -d app/translations -l zh_CN --- 我再次声明一下,这个不行。
2. 无法为 flask 的 extensions 做翻译。我觉得flask-peewee这个项目汉化一下就可以在项目中使用, 结果发现 flask 这家伙压根就没法支持 extension 的翻译,你用 flask-babel 所介绍的生成翻译文件的方法生成message.po, message.mo后也是加载不了的, 哪怕改称zh_Hans_CN! 这就意味这flask extension是无法国际化的(后来把所有flask extensions验证了一下,发现它们的项目目录下统统没有翻译文件的)。 如果做一个扩展后只能够支持一种语言,那用的人少,漏洞多也是正常的了。
经常在v2ex上面看到有人说flask的优势,我感觉只能说声“呵呵”, 还是继续django吧。当玩具或许可以。