Updated PLANS.md, AGENTS.md, and arabic-localization.md to reflect the “foundations now, full translations later” approach and marked progress accordingly.

Implemented localization foundations across backend and frontend (locale settings/middleware, preferred language, i18n wiring, RTL support, minimal Arabic UI strings, Accept-Language).
Added targeted backend and frontend tests plus a risks note for pending full translation coverage.
This commit is contained in:
2026-02-28 11:48:58 +03:00
parent fd90af33b3
commit d40bb10876
27 changed files with 407 additions and 68 deletions
+48 -2
View File
@@ -1,9 +1,9 @@
@import url("https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;600;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;600;700&family=Noto+Sans+Arabic:wght@400;600;700&display=swap");
:root {
color: #1c1b1f;
background: linear-gradient(160deg, #fdf1e5 0%, #f7f2ec 40%, #eef1ff 100%);
font-family: "Space Grotesk", "Trebuchet MS", sans-serif;
font-family: "Space Grotesk", "Noto Sans Arabic", "Trebuchet MS", sans-serif;
}
* {
@@ -15,6 +15,10 @@ body {
min-height: 100vh;
}
:dir(rtl) {
font-family: "Noto Sans Arabic", "Space Grotesk", "Trebuchet MS", sans-serif;
}
.page {
max-width: 1100px;
margin: 0 auto;
@@ -31,6 +35,14 @@ body {
box-shadow: 0 20px 40px rgba(26, 26, 26, 0.08);
}
.hero-top {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
gap: 12px;
}
.eyebrow {
letter-spacing: 0.2em;
text-transform: uppercase;
@@ -58,6 +70,40 @@ h1 {
font-size: 16px;
}
:dir(rtl) .eyebrow {
letter-spacing: 0.08em;
text-transform: none;
}
:dir(rtl) .search input {
text-align: right;
}
.locale-switch {
display: inline-flex;
align-items: center;
gap: 8px;
background: rgba(255, 255, 255, 0.7);
border-radius: 999px;
padding: 6px;
border: 1px solid #eadfd2;
}
.locale-switch button {
border: none;
background: transparent;
padding: 6px 12px;
border-radius: 999px;
cursor: pointer;
font-weight: 600;
color: #3c3a3f;
}
.locale-switch button.active {
background: #1c1b1f;
color: white;
}
.results {
margin-top: 48px;
}