指示特定的.mo文件供Babel加载 - python

问题的设置非常简单:

用户选择语言首选项(可以从用户的会话中读取该首选项);
根据此选择,从可用翻译中加载适当的.mo;
(如果有任何区别,则不会设置单独的域)

问题:由于此返回必须在flask应用程序的范围之外进行,因此无法实例化它,无法使用@ babel.localeselector。取而代之的是,我使用一个基于webapp2 i18n扩展名的简单函数,该函数使用Babel的支持函数加载给定的翻译并返回翻译实例(翻译:“ PROJECT VERSION”)。 (inb4“为什么不使用webapp2?”库已经太多)。

从这一点开始,我不清楚如何处理此实例。如何让Babel使用此特定实例? (目前,它始终使用默认值,不涉及“ best_match”)。

参考方案

通过仅使用flask应用程序以及我想避免的方式来解决-在每个请求上,都有一个回调到应用程序实例和localeselector装饰器的语言,该语言先前是在flask.g中的属性中设置的。基本上,我猜是通过书本。

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

Python-Excel导出 - python

我有以下代码:import pandas as pd import requests from bs4 import BeautifulSoup res = requests.get("https://www.bankier.pl/gielda/notowania/akcje") soup = BeautifulSoup(res.cont…

Python:传递记录器是个好主意吗? - python

我的Web服务器的API日志如下:started started succeeded failed 那是同时收到的两个请求。很难说哪一个成功或失败。为了彼此分离请求,我为每个请求创建了一个随机数,并将其用作记录器的名称logger = logging.getLogger(random_number) 日志变成[111] started [222] start…

Python pytz时区函数返回的时区为9分钟 - python

由于某些原因,我无法从以下代码中找出原因:>>> from pytz import timezone >>> timezone('America/Chicago') 我得到:<DstTzInfo 'America/Chicago' LMT-1 day, 18:09:00 STD…

用大写字母拆分字符串,但忽略AAA Python Regex - python

我的正则表达式:vendor = "MyNameIsJoe. I'mWorkerInAAAinc." ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor) 以大写字母分割字符串,例如:'我的名字是乔。 I'mWorkerInAAAinc”变成…