Files
pos-system/apps/client-example/docs/STORAGE_METADATA_UPDATE.md

2.4 KiB

🌐 Storage Metadata - Internationalization Update

Updated Files:

1. storage/layout.tsx

Changes:

// ❌ Before:
interface StorageLayoutProps {
  params: {
    locale: string;
  };
}

export async function generateMetadata({ params }: StorageLayoutProps) {
  try {
    return await generateStorageMetadata(params.locale as any);
  } catch (error) {
    console.error('Failed to generate storage metadata:', error); // ❌
    return { /* fallback */ };
  }
}

// ✅ After:
interface StorageLayoutProps {
  params: Promise<{
    locale: Locale;
  }>;
}

export async function generateMetadata({ params }: StorageLayoutProps) {
  const { locale } = await params;
  return await generateStorageMetadata(locale);
}

Improvements:

  • Async params (NextJS 15 pattern)
  • Type-safe Locale
  • Removed console.error
  • Simplified error handling

2. storage/metadata.ts

Added:

return {
  // ... existing metadata
  
  // ✅ NEW: Alternates for SEO
  alternates: {
    canonical: `/${locale}/dashboard/storage`,
    languages: {
      'en': '/en/dashboard/storage',
      'vi': '/vi/dashboard/storage',
    },
  },
  
  // ✅ ENHANCED: OpenGraph
  openGraph: {
    // ...
    alternateLocale: locale === 'vi' ? 'en_US' : 'vi_VN',
  },
};

🎯 Metadata Features:

Vietnamese (vi):

Title: "Quản lý File - NEXTVISION AI"
Description: "Quản lý file và thư mục trên nền tảng..."
Keywords: "quản lý file, lưu trữ đám mây, chia sẻ file..."
Canonical: /vi/dashboard/storage
Alternate: /en/dashboard/storage

English (en):

Title: "File Storage - NEXTVISION AI"
Description: "File and folder management on NEXTVISION AI..."
Keywords: "file management, cloud storage, file sharing..."
Canonical: /en/dashboard/storage
Alternate: /vi/dashboard/storage

🔍 SEO Benefits:

  • Canonical URLs: Prevent duplicate content
  • Language alternates: Help search engines understand i18n
  • Locale-specific OpenGraph: Better social sharing
  • noindex, nofollow: Private dashboard không indexed
  • Proper locale codes: vi_VN, en_US

Status:

✅ Type-safe metadata
✅ No console logs
✅ Proper i18n support
✅ SEO optimized
✅ Clean code

🎉 Storage metadata fully internationalized!