diff --git a/app.py b/app.py
index c4fc746..6838ab8 100644
--- a/app.py
+++ b/app.py
@@ -89,8 +89,10 @@ class LanguageMiddleware(BaseHTTPMiddleware):
app = FastAPI()
app.add_middleware(LanguageMiddleware)
-templates = Jinja2Templates(directory="templates")
app.mount("/static", StaticFiles(directory="static"), name="static")
+templates = {}
+for lang in os.listdir("templates"):
+ templates[lang] = Jinja2Templates(directory="templates/"+lang)
# 加载所有问卷数据
def load_all_scales():
@@ -125,17 +127,16 @@ async def index(request: Request):
readme_content = markdown.markdown(f.read())
except FileNotFoundError:
pass # 如果README不存在则静默失败
- return templates.TemplateResponse("index.html", {
+ return templates[request.state.language].TemplateResponse("index.html", {
"request": request,
"tags": tags,
- "readme_content": readme_content,
- "language": request.state.language # Pass language to template
+ "readme_content": readme_content
})
@app.get("/tag/{tag}", response_class=HTMLResponse)
async def list(request: Request, tag: str):
tags, scales = load_all_scales()
- return templates.TemplateResponse("list.html", {
+ return templates[request.state.language].TemplateResponse("list.html", {
"request": request,
"tags": tags,
"scales": scales,
@@ -147,7 +148,7 @@ async def scale(request: Request, scale_id: str):
tags, scales = load_all_scales()
scale = scales.get(scale_id)
if scale:
- return templates.TemplateResponse("scale.html", {
+ return templates[request.state.language].TemplateResponse("scale.html", {
"request": request,
"scale_id": scale_id,
"scale": scale,
@@ -195,7 +196,7 @@ async def result(request: Request, scale_id: str, db: Session = Depends(get_db))
db.commit()
except Exception as e:
print(e)
- return templates.TemplateResponse("result.html", {
+ return templates[request.state.language].TemplateResponse("result.html", {
"request": request,
"responses": responses,
"average": average,
diff --git a/templates/en/base.html b/templates/en/base.html
new file mode 100644
index 0000000..951fa5c
--- /dev/null
+++ b/templates/en/base.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+ {% block head_extra %}{% endblock %}
+
+
+
+
+
+
+ {% block main %}{% endblock %}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/templates/en/index.html b/templates/en/index.html
new file mode 100644
index 0000000..26c4d52
--- /dev/null
+++ b/templates/en/index.html
@@ -0,0 +1,13 @@
+{% extends 'base.html' %}
+
+{% block head_extra %}
+PsychoScales.Org
+{% endblock %}
+
+{% block main %}
+{% if readme_content %}
+
+ {{ readme_content|safe }}
+
+{% endif %}
+{% endblock %}
\ No newline at end of file
diff --git a/templates/en/list.html b/templates/en/list.html
new file mode 100644
index 0000000..e9d2df8
--- /dev/null
+++ b/templates/en/list.html
@@ -0,0 +1,16 @@
+{% extends 'base.html' %}
+
+{% block head_extra %}
+{{ tag }}
+{% endblock %}
+
+{% block main %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/templates/en/result.html b/templates/en/result.html
new file mode 100644
index 0000000..1145d62
--- /dev/null
+++ b/templates/en/result.html
@@ -0,0 +1,17 @@
+{% extends 'base.html' %}
+
+{% block head_extra %}
+{{scale.title}}
+{% endblock %}
+
+{% block main %}
+{{ scale.title }}
+
+ {% for key, value in responses.items() %}
+ - {{ key }}: Got {{ value }} in a {{options[key][0]}} to {{options[key][1]}} scale, with {{ average[key] }} in average
+ {% endfor %}
+
+
+ {{scale.descriptions|safe}}
+
+{% endblock %}
\ No newline at end of file
diff --git a/templates/en/scale.html b/templates/en/scale.html
new file mode 100644
index 0000000..1b8e97c
--- /dev/null
+++ b/templates/en/scale.html
@@ -0,0 +1,24 @@
+{% extends 'base.html' %}
+
+{% block head_extra %}
+{{ scale.title }}
+{% endblock %}
+
+{% block main %}
+{{ scale.title }}
+
+ {{ scale.instructions|safe }}
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/templates/base.html b/templates/zh/base.html
similarity index 98%
rename from templates/base.html
rename to templates/zh/base.html
index a65292a..a0aa8be 100644
--- a/templates/base.html
+++ b/templates/zh/base.html
@@ -1,5 +1,5 @@
-
+
diff --git a/templates/index.html b/templates/zh/index.html
similarity index 94%
rename from templates/index.html
rename to templates/zh/index.html
index 231ac55..0ede79c 100644
--- a/templates/index.html
+++ b/templates/zh/index.html
@@ -1,13 +1,13 @@
-{% extends 'base.html' %}
-
-{% block head_extra %}
-心尺.Org
-{% endblock %}
-
-{% block main %}
-{% if readme_content %}
-
- {{ readme_content|safe }}
-
-{% endif %}
+{% extends 'base.html' %}
+
+{% block head_extra %}
+心尺.Org
+{% endblock %}
+
+{% block main %}
+{% if readme_content %}
+
+ {{ readme_content|safe }}
+
+{% endif %}
{% endblock %}
\ No newline at end of file
diff --git a/templates/list.html b/templates/zh/list.html
similarity index 100%
rename from templates/list.html
rename to templates/zh/list.html
diff --git a/templates/result.html b/templates/zh/result.html
similarity index 96%
rename from templates/result.html
rename to templates/zh/result.html
index 33564c2..9291cc9 100644
--- a/templates/result.html
+++ b/templates/zh/result.html
@@ -1,17 +1,17 @@
-{% extends 'base.html' %}
-
-{% block head_extra %}
-{{scale.title}}
-{% endblock %}
-
-{% block main %}
-{{ scale.title }}
-
- {% for key, value in responses.items() %}
- - {{ key }}: 在 {{options[key][0]}} 到 {{options[key][1]}} 的量表中得分 {{ value }},均分 {{ average[key] }};
- {% endfor %}
-
-
- {{scale.descriptions|safe}}
-
+{% extends 'base.html' %}
+
+{% block head_extra %}
+{{scale.title}}
+{% endblock %}
+
+{% block main %}
+{{ scale.title }}
+
+ {% for key, value in responses.items() %}
+ - {{ key }}: 在 {{options[key][0]}} 到 {{options[key][1]}} 的量表中得分 {{ value }},均分 {{ average[key] }};
+ {% endfor %}
+
+
+ {{scale.descriptions|safe}}
+
{% endblock %}
\ No newline at end of file
diff --git a/templates/scale.html b/templates/zh/scale.html
similarity index 97%
rename from templates/scale.html
rename to templates/zh/scale.html
index 2dbca5e..e684ba4 100644
--- a/templates/scale.html
+++ b/templates/zh/scale.html
@@ -1,24 +1,24 @@
-{% extends 'base.html' %}
-
-{% block head_extra %}
-{{ scale.title }}
-{% endblock %}
-
-{% block main %}
-{{ scale.title }}
-
- {{ scale.instructions|safe }}
-
-
+{% extends 'base.html' %}
+
+{% block head_extra %}
+{{ scale.title }}
+{% endblock %}
+
+{% block main %}
+{{ scale.title }}
+
+ {{ scale.instructions|safe }}
+
+
{% endblock %}
\ No newline at end of file