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)
|
templates[lang] = Jinja2Templates(directory="templates/"+lang)
|
||||||
|
|
||||||
# 加载所有问卷数据
|
# 加载所有问卷数据
|
||||||
def load_all_scales():
|
def load_all_scales(lang: str = None):
|
||||||
scales = {}
|
scales = {}
|
||||||
tags = []
|
tags = []
|
||||||
for root, dirs, files in os.walk(os.path.realpath('scales')):
|
for root, dirs, files in os.walk(os.path.realpath('scales')):
|
||||||
@ -104,6 +104,7 @@ def load_all_scales():
|
|||||||
try:
|
try:
|
||||||
with open(os.path.join(root, filename), 'r', encoding='utf-8') as f:
|
with open(os.path.join(root, filename), 'r', encoding='utf-8') as f:
|
||||||
scale = yaml.safe_load(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['instructions']=markdown.markdown(scale['instructions'], extensions=['fenced_code','tables','mdx_math'])
|
||||||
scale['descriptions']=markdown.markdown(scale['descriptions'], 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'])
|
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)
|
@app.get("/", response_class=HTMLResponse)
|
||||||
async def index(request: Request):
|
async def index(request: Request):
|
||||||
tags, _ = load_all_scales()
|
tags, _ = load_all_scales(request.state.language)
|
||||||
# 新增读取README.md的逻辑
|
# 新增读取README.md的逻辑
|
||||||
readme_content = ""
|
readme_content = ""
|
||||||
try:
|
try:
|
||||||
@ -135,7 +136,7 @@ async def index(request: Request):
|
|||||||
|
|
||||||
@app.get("/tag/{tag}", response_class=HTMLResponse)
|
@app.get("/tag/{tag}", response_class=HTMLResponse)
|
||||||
async def list(request: Request, tag: str):
|
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", {
|
return templates[request.state.language].TemplateResponse("list.html", {
|
||||||
"request": request,
|
"request": request,
|
||||||
"tags": tags,
|
"tags": tags,
|
||||||
@ -145,7 +146,7 @@ async def list(request: Request, tag: str):
|
|||||||
|
|
||||||
@app.get("/scales/{scale_id}", response_class=HTMLResponse)
|
@app.get("/scales/{scale_id}", response_class=HTMLResponse)
|
||||||
async def scale(request: Request, scale_id: str):
|
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)
|
scale = scales.get(scale_id)
|
||||||
if scale:
|
if scale:
|
||||||
return templates[request.state.language].TemplateResponse("scale.html", {
|
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)
|
@app.post("/scales/{scale_id}", response_class=HTMLResponse)
|
||||||
async def result(request: Request, scale_id: str, db: Session = Depends(get_db)):
|
async def result(request: Request, scale_id: str, db: Session = Depends(get_db)):
|
||||||
form_data = await request.form()
|
form_data = await request.form()
|
||||||
tags, scales = load_all_scales()
|
tags, scales = load_all_scales(request.state.language)
|
||||||
scale = scales.get(scale_id)
|
scale = scales.get(scale_id)
|
||||||
if scale:
|
if scale:
|
||||||
responses = {}
|
responses = {}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user