From ebf6f16fde28dec64b60369f77e8e72e8bf41fec Mon Sep 17 00:00:00 2001 From: Antigravity Date: Sun, 30 Aug 2026 10:56:00 +0000 Subject: [PATCH] =?UTF-8?q?fix(ui):=20voix=20Second=20Brain=20=C3=A0=20la?= =?UTF-8?q?=20connexion=20et=20libell=C3=A9s=20du=20rail?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remplace le titre « notepad » et le jargon (Intelligence OS, SM-2) par des mots lisibles, et aligne la langue des pages d’auth sur le reste du site. Co-authored-by: Cursor --- memento-note/app/(auth)/layout.tsx | 62 ++++++-------------------- memento-note/app/layout.tsx | 4 +- memento-note/components/auth-shell.tsx | 52 +++++++++++++++++++++ memento-note/components/sidebar.tsx | 34 +++++++------- memento-note/locales/ar.json | 14 +++--- memento-note/locales/de.json | 14 +++--- memento-note/locales/en.json | 18 ++++---- memento-note/locales/es.json | 14 +++--- memento-note/locales/fa.json | 14 +++--- memento-note/locales/fr.json | 16 +++---- memento-note/locales/hi.json | 14 +++--- memento-note/locales/it.json | 14 +++--- memento-note/locales/ja.json | 14 +++--- memento-note/locales/ko.json | 14 +++--- memento-note/locales/nl.json | 14 +++--- memento-note/locales/pl.json | 14 +++--- memento-note/locales/pt.json | 14 +++--- memento-note/locales/ru.json | 14 +++--- memento-note/locales/zh.json | 14 +++--- 19 files changed, 194 insertions(+), 174 deletions(-) create mode 100644 memento-note/components/auth-shell.tsx diff --git a/memento-note/app/(auth)/layout.tsx b/memento-note/app/(auth)/layout.tsx index 98aa8c2..ce9069f 100644 --- a/memento-note/app/(auth)/layout.tsx +++ b/memento-note/app/(auth)/layout.tsx @@ -1,58 +1,22 @@ -'use client'; +import { headers } from 'next/headers'; +import { detectUserLanguage, parseAcceptLanguage } from '@/lib/i18n/detect-user-language'; +import { loadTranslations } from '@/lib/i18n/load-translations'; +import { LanguageProvider } from '@/lib/i18n/LanguageProvider'; +import { AuthShell } from '@/components/auth-shell'; -import { LanguageProvider, useLanguage } from '@/lib/i18n/LanguageProvider'; -import Link from 'next/link'; -import { ArrowLeft } from 'lucide-react'; - -function AuthHeader() { - const { t } = useLanguage(); - - return ( -
- -
- -
- - - -
- M -
- Memento - - -
-
- ); -} - -export default function AuthLayout({ +export default async function AuthLayout({ children, }: Readonly<{ children: React.ReactNode; }>) { + const headersList = await headers(); + const browserLang = parseAcceptLanguage(headersList.get('accept-language')); + const initialLanguage = await detectUserLanguage(browserLang); + const initialTranslations = await loadTranslations(initialLanguage); + return ( - -
-
-
- - - -
-
- {children} -

- © 2026 Memento -

-
-
-
+ + {children} ); } diff --git a/memento-note/app/layout.tsx b/memento-note/app/layout.tsx index 57143ad..b7e1907 100644 --- a/memento-note/app/layout.tsx +++ b/memento-note/app/layout.tsx @@ -42,8 +42,8 @@ const jetbrainsMono = JetBrains_Mono({ }); export const metadata: Metadata = { - title: "Memento - Your Digital Notepad", - description: "A beautiful note-taking app built with Next.js 16", + title: "Memento — Your Second Brain", + description: "A Second Brain that connects while you write. Search, brief, and act on your ideas every morning.", manifest: "/api/manifest", icons: { icon: "/icons/icon-512.svg", diff --git a/memento-note/components/auth-shell.tsx b/memento-note/components/auth-shell.tsx new file mode 100644 index 0000000..7bca554 --- /dev/null +++ b/memento-note/components/auth-shell.tsx @@ -0,0 +1,52 @@ +'use client'; + +import { useLanguage } from '@/lib/i18n/LanguageProvider'; +import Link from 'next/link'; +import { ArrowLeft } from 'lucide-react'; + +function AuthHeader() { + const { t } = useLanguage(); + + return ( +
+ +
+ +
+ + + +
+ M +
+ Memento + + +
+
+ ); +} + +export function AuthShell({ children }: { children: React.ReactNode }) { + return ( +
+
+
+ + + +
+
+ {children} +

+ © 2026 Memento +

+
+
+
+ ); +} diff --git a/memento-note/components/sidebar.tsx b/memento-note/components/sidebar.tsx index 37ec7dc..8b41ff9 100644 --- a/memento-note/components/sidebar.tsx +++ b/memento-note/components/sidebar.tsx @@ -1386,8 +1386,8 @@ export function Sidebar({ className, user }: { className?: string; user?: any }) )} aria-hidden={isImmersiveRoute && userCollapsed ? true : undefined} > - {/* ── Column 1 : Rail d'icônes (54px) — inspiré du prototype ── */} -
+ {/* ── Column 1 : Rail icône + libellé — destinations lisibles sans survol ── */} +
{/* Top : Logo + navigation */}
@@ -1425,12 +1425,12 @@ export function Sidebar({ className, user }: { className?: string; user?: any }) {/* Boutons de navigation principaux */} -
+
{([ { id: 'dashboard', icon: LayoutGrid, - label: t('nav.dashboard') || 'Dashboard', + label: t('nav.home'), onClick: () => { setActiveView('dashboard') router.replace('/home') @@ -1470,7 +1470,7 @@ export function Sidebar({ className, user }: { className?: string; user?: any }) { id: 'agents', icon: Bot, - label: t('agents.intelligenceOS') || 'Intelligence IA', + label: t('nav.agents'), onClick: () => { setActiveView('agents') router.push('/agents') @@ -1492,20 +1492,17 @@ export function Sidebar({ className, user }: { className?: string; user?: any }) aria-current={item.isActive ? 'page' : undefined} onClick={item.onClick} className={cn( - 'w-9 h-9 rounded-lg flex items-center justify-center transition-all relative group', + 'w-full rounded-lg flex flex-col items-center justify-center gap-0.5 py-1.5 px-0.5 transition-all relative', item.isActive ? 'bg-brand-accent/10 text-brand-accent border border-brand-accent/25' - : 'text-concrete hover:text-ink dark:hover:text-white hover:bg-black/[0.04] dark:hover:bg-white/[0.04]' + : 'text-ink/70 hover:text-ink dark:text-white/70 dark:hover:text-white hover:bg-black/[0.04] dark:hover:bg-white/[0.04]' )} > {item.isActive && ( -
+
)} - -