feat: enhance load_all_scales function for language support
- Updated load_all_scales to accept an optional language parameter, allowing for the loading of scales based on the specified language. - Modified calls to load_all_scales in various endpoints to pass the user's detected language, ensuring consistent language handling across the application.
This commit is contained in:
parent
27794895c9
commit
e46d17eaf2
11
app.py
11
app.py
@ -95,7 +95,7 @@ for lang in os.listdir("templates"):
|
||||
templates[lang] = Jinja2Templates(directory="templates/"+lang)
|
||||
|
||||
# 加载所有问卷数据
|
||||
def load_all_scales():
|
||||
def load_all_scales(lang: str = None):
|
||||
scales = {}
|
||||
tags = []
|
||||
for root, dirs, files in os.walk(os.path.realpath('scales')):
|
||||
@ -104,6 +104,7 @@ def load_all_scales():
|
||||
try:
|
||||
with open(os.path.join(root, filename), 'r', encoding='utf-8') as f:
|
||||
scale = yaml.safe_load(f)
|
||||
if lang is None or (scale['lang'] and scale['lang'] == lang):
|
||||
scale['instructions']=markdown.markdown(scale['instructions'], extensions=['fenced_code','tables','mdx_math'])
|
||||
scale['descriptions']=markdown.markdown(scale['descriptions'], extensions=['fenced_code','tables','mdx_math'])
|
||||
scale['abstract']=markdown.markdown(scale['abstract'], extensions=['fenced_code','tables','mdx_math'])
|
||||
@ -119,7 +120,7 @@ def load_all_scales():
|
||||
|
||||
@app.get("/", response_class=HTMLResponse)
|
||||
async def index(request: Request):
|
||||
tags, _ = load_all_scales()
|
||||
tags, _ = load_all_scales(request.state.language)
|
||||
# 新增读取README.md的逻辑
|
||||
readme_content = ""
|
||||
try:
|
||||
@ -135,7 +136,7 @@ async def index(request: Request):
|
||||
|
||||
@app.get("/tag/{tag}", response_class=HTMLResponse)
|
||||
async def list(request: Request, tag: str):
|
||||
tags, scales = load_all_scales()
|
||||
tags, scales = load_all_scales(request.state.language)
|
||||
return templates[request.state.language].TemplateResponse("list.html", {
|
||||
"request": request,
|
||||
"tags": tags,
|
||||
@ -145,7 +146,7 @@ async def list(request: Request, tag: str):
|
||||
|
||||
@app.get("/scales/{scale_id}", response_class=HTMLResponse)
|
||||
async def scale(request: Request, scale_id: str):
|
||||
tags, scales = load_all_scales()
|
||||
tags, scales = load_all_scales(request.state.language)
|
||||
scale = scales.get(scale_id)
|
||||
if scale:
|
||||
return templates[request.state.language].TemplateResponse("scale.html", {
|
||||
@ -159,7 +160,7 @@ async def scale(request: Request, scale_id: str):
|
||||
@app.post("/scales/{scale_id}", response_class=HTMLResponse)
|
||||
async def result(request: Request, scale_id: str, db: Session = Depends(get_db)):
|
||||
form_data = await request.form()
|
||||
tags, scales = load_all_scales()
|
||||
tags, scales = load_all_scales(request.state.language)
|
||||
scale = scales.get(scale_id)
|
||||
if scale:
|
||||
responses = {}
|
||||
|
Loading…
x
Reference in New Issue
Block a user