feat(i18n): Complete localization for Settings, Action Plan, Slides, and Google Ads generators - Added actionPlan and slidesGen translation sections for EN/RU/HE - Localized ActionPlanGenerator with dynamic titles, labels, and quick notes - Localized SlidesGenerator with theme, audience, and animation settings - Added RTL support and text-start alignment for Hebrew - Standardized AI Provider and Model labels across all generators

This commit is contained in:
Gemini AI
2025-12-28 01:46:32 +04:00
Unverified
parent 8733b885d4
commit b859d77307
18 changed files with 2696 additions and 1771 deletions

367
lib/i18n/translations.ts Normal file
View File

@@ -0,0 +1,367 @@
export type Language = "en" | "ru" | "he";
export const translations = {
en: {
sidebar: {
title: "PromptArch",
subtitle: "AI Tool Suite",
promptEnhancer: "Prompt Enhancer",
prdGenerator: "PRD Generator",
actionPlan: "Action Plan",
slidesGen: "Slides Gen",
googleAds: "Google Ads",
uxDesigner: "UX Designer",
settings: "Settings",
history: "History",
},
common: {
aiProvider: "AI Provider",
model: "Model",
generate: "Generate",
generating: "Generating...",
copy: "Copy",
copied: "Copied!",
settings: "Settings",
error: "Error",
configApiKey: "Configure API key in Settings",
},
promptEnhancer: {
title: "Prompt Enhancer",
description: "Transform your simple ideas into professional, high-quality prompts",
placeholder: "Enter your prompt here...",
enhancedTitle: "Enhanced Prompt",
enhancedDesc: "Your prompt has been optimized for better AI performance",
},
prdGenerator: {
title: "PRD Generator",
description: "Generate comprehensive Product Requirements Document from your idea",
placeholder: "e.g., A task management app with real-time collaboration features",
generatedTitle: "Generated PRD",
},
googleAds: {
title: "Google Ads Strategist",
description: "Generate keywords, ad copy, and campaign structure for Google Ads",
websiteUrl: "Website URL",
products: "Products / Services",
budget: "Budget (USD/mo)",
industry: "Industry",
targetAudience: "Target Audience",
generateAds: "Generate Ads",
magicWand: "Magic Wand",
researching: "Researching...",
generatedCampaign: "Generated Campaign",
strategicDirections: "Strategic Directions",
marketIntelligence: "Market Intelligence",
competitiveInsights: "Competitive Insights",
campaignDirections: "Campaign Directions",
},
settings: {
title: "System Settings",
apiKeys: "API Configuration",
qwenAuth: "Qwen Authentication",
connectQwen: "Connect Qwen Account",
connected: "Connected",
notConnected: "Not Connected",
theme: "Theme",
language: "Interface Language",
saveKeys: "Save API Keys",
keysSaved: "API keys saved successfully!",
defaultProvider: "Default Provider",
defaultProviderDesc: "Select your preferred AI provider",
dataPrivacy: "Data Privacy",
dataPrivacyDesc: "All API keys are stored locally in your browser. Your prompts are sent directly to the selected AI provider and are not stored by PromptArch.",
loginQwen: "Login with Qwen (OAuth)",
logoutQwen: "Logout from Qwen",
authenticated: "Authenticated via OAuth",
expires: "Expires",
enterKey: (provider: string) => `Enter your ${provider} API key`,
getApiKey: "Get API key from",
qwenDesc: "Alibaba DashScope API",
ollamaDesc: "Ollama Cloud API",
zaiDesc: "Z.AI Plan API",
},
uxDesigner: {
title: "UX Designer Prompt",
description: "Describe your app idea and get the BEST EVER prompt for UX design",
placeholder: "e.g., A fitness tracking app with workout plans, nutrition tracking, and social features...",
inputLabel: "App Description",
inputDesc: "Describe what kind of app you want, target users, key features, and any specific design preferences.",
resultTitle: "Ultimate UX Prompt",
resultDesc: "Comprehensive UX design prompt ready for designers",
emptyState: "Your comprehensive UX designer prompt will appear here",
},
history: {
title: "Session History",
description: "Previous prompts and generated results",
empty: "No history yet. Start exploring tools!",
clear: "Clear History",
},
actionPlan: {
title: "Action Plan Generator",
description: "Generate a logical, step-by-step implementation plan from your PRD",
placeholder: "Paste your PRD or project requirements here...",
generatedTitle: "Generated Action Plan",
architecture: "Technical Architecture",
infrastructure: "Infrastructure & Tools",
tasks: "Implementation Tasks",
riskAssessment: "Risk Assessment",
emptyState: "Generated action plan will appear here",
},
slidesGen: {
title: "AI Presentation Generator",
description: "Generate stunning, professional slides for any occasion in seconds",
placeholder: "Describe your presentation topic or paste an outline...",
language: "Presentation Language",
theme: "Aesthetic Theme",
audience: "Target Audience",
animations: "Animation Style",
numSlides: "Number of Slides",
generate: "Generate Presentation",
generating: "Crafting your story...",
emptyState: "Your presentation will appear here",
attachFiles: "Attach files for context",
}
},
ru: {
sidebar: {
title: "PromptArch",
subtitle: "Набор ИИ-инструментов",
promptEnhancer: "Улучшение промптов",
prdGenerator: "Генератор PRD",
actionPlan: "План действий",
slidesGen: "Генератор слайдов",
googleAds: "Google Реклама",
uxDesigner: "UX Дизайнер",
settings: "Настройки",
history: "История",
},
common: {
aiProvider: "Провайдер ИИ",
model: "Модель",
generate: "Генерировать",
generating: "Генерация...",
copy: "Копировать",
copied: "Скопировано!",
settings: "Настройки",
error: "Ошибка",
configApiKey: "Настройте API ключ в настройках",
},
promptEnhancer: {
title: "Улучшение промптов",
description: "Превратите ваши простые идеи в профессиональные, качественные промпты",
placeholder: "Введите ваш промпт здесь...",
enhancedTitle: "Улучшенный промпт",
enhancedDesc: "Ваш промпт оптимизирован для лучшей работы ИИ",
},
prdGenerator: {
title: "Генератор PRD",
description: "Создайте подробный документ требований к продукту на основе вашей идеи",
placeholder: "Например: Приложение для управления задачами с совместной работой",
generatedTitle: "Созданный PRD",
},
googleAds: {
title: "Стратег Google Ads",
description: "Генерация ключевых слов, объявлений и структуры кампании",
websiteUrl: "URL сайта",
products: "Продукты / Услуги",
budget: "Бюджет (USD/мес)",
industry: "Отрасль",
targetAudience: "Целевая аудитория",
generateAds: "Создать рекламу",
magicWand: "Магический жезл",
researching: "Исследование...",
generatedCampaign: "Созданная кампания",
strategicDirections: "Стратегические направления",
marketIntelligence: "Анализ рынка",
competitiveInsights: "Анализ конкурентов",
campaignDirections: "Направления кампании",
},
settings: {
title: "Настройки системы",
apiKeys: "Настройка API",
qwenAuth: "Авторизация Qwen",
connectQwen: "Подключить аккаунт Qwen",
connected: "Подключено",
notConnected: "Не подключено",
theme: "Тема",
language: "Язык интерфейса",
saveKeys: "Сохранить ключи API",
keysSaved: "API ключи успешно сохранены!",
defaultProvider: "Провайдер по умолчанию",
defaultProviderDesc: "Выберите предпочитаемого провайдера ИИ",
dataPrivacy: "Конфиденциальность данных",
dataPrivacyDesc: "Все ключи API хранятся локально в вашем браузере. Ваши запросы отправляются напрямую выбранному провайдеру ИИ и не сохраняются в PromptArch.",
loginQwen: "Войти через Qwen (OAuth)",
logoutQwen: "Выйти из Qwen",
authenticated: "Авторизовано через OAuth",
expires: "Истекает",
enterKey: (provider: string) => `Введите ваш API ключ ${provider}`,
getApiKey: "Получить API ключ здесь:",
qwenDesc: "Alibaba DashScope API",
ollamaDesc: "Ollama Cloud API",
zaiDesc: "Z.AI Plan API",
},
uxDesigner: {
title: "UX Дизайнер Промпт",
description: "Опишите идею вашего приложения и получите ЛУЧШИЙ промпт для UX-дизайна",
placeholder: "Например: Приложение для отслеживания фитнеса с планами тренировок, питанием и социальными функциями...",
inputLabel: "Описание приложения",
inputDesc: "Опишите тип приложения, целевых пользователей, ключевые функции и любые предпочтения в дизайне.",
resultTitle: "Ультимативный UX промпт",
resultDesc: "Комплексный промпт для UX-дизайна, готовый для дизайнеров",
emptyState: "Ваш комплексный промпт для UX-дизайнера появится здесь",
},
history: {
title: "История сессий",
description: "Предыдущие промпты и результаты генерации",
empty: "История пока пуста. Начните использовать инструменты!",
clear: "Очистить историю",
},
actionPlan: {
title: "Генератор плана действий",
description: "Создайте логичный пошаговый план реализации на основе вашего PRD",
placeholder: "Вставьте ваш PRD или требования к проекту здесь...",
generatedTitle: "Созданный план действий",
architecture: "Техническая архитектура",
infrastructure: "Инфраструктура и инструменты",
tasks: "Задачи по реализации",
riskAssessment: "Оценка рисков",
emptyState: "Созданный план действий появится здесь",
},
slidesGen: {
title: "Генератор презентаций",
description: "Создавайте потрясающие профессиональные слайды для любого случая за считанные секунды",
placeholder: "Опишите тему презентации или вставьте план...",
language: "Язык презентации",
theme: "Эстетическая тема",
audience: "Целевая аудитория",
animations: "Стиль анимации",
numSlides: "Количество слайдов",
generate: "Создать презентацию",
generating: "Создаем вашу историю...",
emptyState: "Ваша презентация появится здесь",
attachFiles: "Прикрепить файлы для контекста",
}
},
he: {
sidebar: {
title: "PromptArch",
subtitle: "ערכת כלי בינה מלאכותית",
promptEnhancer: "משפר פרומפטים",
prdGenerator: "מחולל PRD",
actionPlan: "תוכנית פעולה",
slidesGen: "מחולל מצגות",
googleAds: "Google Ads",
uxDesigner: "מעצב UX",
settings: "הגדרות",
history: "היסטוריה",
},
common: {
aiProvider: "ספק בינה מלאכותית",
model: "מודל",
generate: "חולל",
generating: "מחולל...",
copy: "העתק",
copied: "הועתק!",
settings: "הגדרות",
error: "שגיאה",
configApiKey: "הגדר מפתח API בהגדרות",
},
promptEnhancer: {
title: "משפר פרומפטים",
description: "הפוך רעיונות פשוטים לפרומפטים מקצועיים באיכות גבוהה",
placeholder: "הזן את הפרומפט שלך כאן...",
enhancedTitle: "פרומפט משופר",
enhancedDesc: "הפרומפט שלך הותאם לביצועי בינה מלאכותית טובים יותר",
},
prdGenerator: {
title: "מחולל PRD",
description: "חולל מסמך דרישות מוצר מקיף מהרעיון שלך",
placeholder: "למשל: אפליקציית ניהול משימות עם תכונות שיתוף בזמן אמת",
generatedTitle: "PRD שחולל",
},
googleAds: {
title: "אסטרטג Google Ads",
description: "חולל מילות מפתח, עותקי מודעות ומבנה קמפיין",
websiteUrl: "כתובת אתר",
products: "מוצרים / שירותים",
budget: "תקציב (USD לחודש)",
industry: "תעשייה",
targetAudience: "קהל יעד",
generateAds: "חולל מודעות",
magicWand: "מטה קסמים",
researching: "חוקר...",
generatedCampaign: "קמפיין שחולל",
strategicDirections: "כיוונים אסטרטגיים",
marketIntelligence: "מודיעין שוק",
competitiveInsights: "תובנות תחרותיות",
campaignDirections: "כיווני קמפיין",
},
settings: {
title: "הגדרות מערכת",
apiKeys: "הגדרת API",
qwenAuth: "אימות Qwen",
connectQwen: "חבר חשבון Qwen",
connected: "מחובר",
notConnected: "לא מחובר",
theme: "עיצוב",
language: "שפת ממשק",
saveKeys: "שמור מפתחות API",
keysSaved: "מפתחות API נשמרו בהצלחה!",
defaultProvider: "ספק ברירת מחדל",
defaultProviderDesc: "בחר את ספק הבינה המלאכותית המועדף עליך",
dataPrivacy: "פרטיות נתונים",
dataPrivacyDesc: "כל מפתחות ה-API נשמרים מקומית בדפדפן שלך. הפרומפטים שלך נשלחים ישירות לספק הבינה המלאכותית הנבחר ואינם נשמרים ב-PromptArch.",
loginQwen: "התחבר עם Qwen (OAuth)",
logoutQwen: "התנתק מ-Qwen",
authenticated: "מאומת באמצעות OAuth",
expires: "פג תוקף",
enterKey: (provider: string) => `הזן את מפתח ה-API של ${provider}`,
getApiKey: "קבל מפתח API מ-",
qwenDesc: "Alibaba DashScope API",
ollamaDesc: "Ollama Cloud API",
zaiDesc: "Z.AI Plan API",
},
uxDesigner: {
title: "פרומפט מעצב UX",
description: "תאר את רעיון האפליקציה שלך וקבל את הפרומפט הטוב ביותר אי פעם לעיצוב UX",
placeholder: "למשל: אפליקציית מעקב כושר עם תוכנית אימונים, מעקב תזונה ותכונות חברתיות...",
inputLabel: "תיאור האפליקציה",
inputDesc: "תאר איזה סוג אפליקציה אתה רוצה, קהל יעד, תכונות עיקריות והעדפות עיצוב ספציפיות.",
resultTitle: "פרומפט UX אולטימטיבי",
resultDesc: "פרומפט עיצוב UX מקיף מוכן למעצבים",
emptyState: "פרומפט מעצב ה-UX המקיף שלך יופיע כאן",
},
history: {
title: "היסטוריית מפגשים",
description: "פרומפטים קודמים ותוצאות שחוללו",
empty: "אין עדיין היסטוריה. התחל לחקור את הכלים!",
clear: "נקה היסטוריה",
},
actionPlan: {
title: "מחולל תוכנית פעולה",
description: "חולל תוכנית יישום לוגית, צעד אחר צעד, ממסמך ה-PRD שלך",
placeholder: "הדבק את ה-PRD או דרישות הפרויקט שלך כאן...",
generatedTitle: "תוכנית פעולה שחוללה",
architecture: "ארכיטקטורה טכנית",
infrastructure: "תשתית וכלים",
tasks: "משימות יישום",
riskAssessment: "הערכת סיכונים",
emptyState: "תוכנית הפעולה שחוללה תופיע כאן",
},
slidesGen: {
title: "מחולל מצגות בינה מלאכותית",
description: "חולל שקופיות מרהיבות ומקצועיות לכל אירוע בשניות",
placeholder: "תאר את נושא המצגת שלך או הדבק ראשי פרקים...",
language: "שפת המצגת",
theme: "עיצוב אסתטי",
audience: "קהל יעד",
animations: "סגנון אנימציה",
numSlides: "מספר שקופיות",
generate: "חולל מצגת",
generating: "יוצר את הסיפור שלך...",
emptyState: "המצגת שלך תופיע כאן",
attachFiles: "צרף קבצים להקשר",
}
}
};