File tree Expand file tree Collapse file tree 2 files changed +17
-1
lines changed
Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -19,6 +19,7 @@ class TypedContextProtocol(Protocol):
1919 device : str | None
2020
2121 permission : str | None
22+ language : str
2223
2324
2425class TypedContext (TypedContextProtocol , _Context ):
Original file line number Diff line number Diff line change 66
77import yaml
88
9+ from starlette_context .errors import ContextDoesNotExistError
10+
11+ from backend .common .context import ctx
912from backend .core .conf import settings
1013from backend .core .path_conf import LOCALE_DIR
1114
@@ -15,9 +18,21 @@ class I18n:
1518
1619 def __init__ (self ) -> None :
1720 self .locales : dict [str , dict [str , Any ]] = {}
18- self .current_language : str = settings .I18N_DEFAULT_LANGUAGE
1921 self .load_locales ()
2022
23+ @property
24+ def current_language (self ) -> str :
25+ """获取当前请求的语言"""
26+ try :
27+ return ctx .language
28+ except (AttributeError , LookupError , ContextDoesNotExistError ):
29+ return settings .I18N_DEFAULT_LANGUAGE
30+
31+ @current_language .setter
32+ def current_language (self , language : str ) -> None :
33+ """设置当前请求的语言"""
34+ ctx .language = language
35+
2136 def load_locales (self ) -> None :
2237 """加载语言文本"""
2338 patterns = [
You can’t perform that action at this time.
0 commit comments