- Upgrade backend to use gemini-2.5-flash with sanitized HTML parsing (no token limit). - Implement robust retry logic and increased timeouts (600s) for deep analysis. - Add file-based logging for prompts and responses. - Fix API endpoint (v1) and regex parsing issues. - Frontend: Optimize PDF export (landscape, no scrollbars), fix copy-paste button, add 'Repeat Step 6' feature. - Update documentation to 'Completed' status.
107 lines
5.0 KiB
TypeScript
107 lines
5.0 KiB
TypeScript
|
|
export const LANGUAGE_OPTIONS = [
|
|
{ value: 'de', label: 'Deutsch' },
|
|
{ value: 'en', label: 'English' },
|
|
];
|
|
|
|
export const CHANNEL_OPTIONS = ['LinkedIn', 'Kaltmail', 'Landingpage'];
|
|
|
|
export const translations = {
|
|
de: {
|
|
appTitle: 'B2B Marketing Assistant',
|
|
appSubtitle: 'Analysiere eine URL, um gezielte Marketingstrategien zu erstellen.',
|
|
companyUrlLabel: 'Unternehmens-URL',
|
|
companyUrlPlaceholder: 'https://beispiel-unternehmen.de',
|
|
targetLanguageLabel: 'Zielsprache',
|
|
productFocusLabel: 'Produkt-/Lösungsfokus',
|
|
productFocusOptional: '(optional)',
|
|
productFocusPlaceholder: 'z.B. Cloud-Services',
|
|
regionsLabel: 'Region(en) / Märkte',
|
|
regionsOptional: '(optional)',
|
|
regionsPlaceholder: 'z.B. DACH, Nordamerika',
|
|
channelsLabel: 'Gewünschte Kanäle',
|
|
channelsOptional: '(optional)',
|
|
generateButton: 'Analyse generieren',
|
|
analyzingButton: 'Analysiere...',
|
|
errorTitle: 'Fehler:',
|
|
generatingStep: 'Generiere {{stepTitle}}... Dies kann einen Moment dauern.',
|
|
readyTitle: 'Bereit zur Analyse',
|
|
readyText: 'Geben Sie oben eine URL ein, um mit der Generierung Ihrer B2B-Marketingstrategie zu beginnen.',
|
|
continueButton: 'Ergebnisse für Schritt {{step}} korrekt. Weiter zu Schritt {{nextStep}}.',
|
|
analysisCompleteTitle: 'Analyse abgeschlossen. Nächste Schritte:',
|
|
analysisCompleteText: 'Möchtest du, dass ich eine Rolle/Branche priorisiere, die Botschaften nach Kanal verfeinere oder Beispiele in {{otherLanguage}} ausformuliere? Nenne optional Metriken (z.B. Zeit-zu-Einsatz, First-Contact-Resolution, Fehlerrate), die besonders wichtig sind.',
|
|
otherLanguage: 'Englisch',
|
|
exportButton: 'Exportieren',
|
|
exportAsMarkdown: 'Als Markdown (.md)',
|
|
exportAsPdf: 'Drucken / Als PDF',
|
|
summaryTitle: 'Kurzresümee:',
|
|
filterPlaceholder: 'Tabelle filtern...',
|
|
copyTableButton: 'Tabelle kopieren',
|
|
copySuccess: 'Gefilterte Tabelle kopiert!',
|
|
copyFailure: 'Kopieren fehlgeschlagen.',
|
|
addRowButton: '+ Zeile hinzufügen',
|
|
loadingButton: 'Lade...',
|
|
deleteRowAria: 'Zeile löschen',
|
|
copyToClipboardAria: 'In die Zwischenablage kopieren',
|
|
newProductPrompt: 'Name des Produkts/der Lösung',
|
|
productUrlPlaceholder: 'URL für dieses Produkt (optional)',
|
|
noFilterResults: 'Keine Ergebnisse für "{{query}}" gefunden.',
|
|
stepTitles: {
|
|
offer: 'Schritt 1: Angebot (WAS)',
|
|
targetGroups: 'Schritt 2: Zielgruppen (WER - Unternehmen)',
|
|
personas: 'Schritt 3: Zielpersonen/Rollen (WER - Personen)',
|
|
painPoints: 'Schritt 4: Painpoints je Rolle (WARUM)',
|
|
gains: 'Schritt 5: Gains & Nutzen je Rolle (WARUM wechseln)',
|
|
messages: 'Schritt 6: Marketingbotschaften je Segment & Rolle (WIE sprechen)',
|
|
}
|
|
},
|
|
en: {
|
|
appTitle: 'B2B Marketing Assistant',
|
|
appSubtitle: 'Analyze a URL to create targeted B2B marketing strategies.',
|
|
companyUrlLabel: 'Company URL',
|
|
companyUrlPlaceholder: 'https://example-company.com',
|
|
targetLanguageLabel: 'Target Language',
|
|
productFocusLabel: 'Product/Solution Focus',
|
|
productFocusOptional: '(optional)',
|
|
productFocusPlaceholder: 'e.g., Cloud Services',
|
|
regionsLabel: 'Region(s) / Markets',
|
|
regionsOptional: '(optional)',
|
|
regionsPlaceholder: 'e.g., EMEA, North America',
|
|
channelsLabel: 'Desired Channels',
|
|
channelsOptional: '(optional)',
|
|
generateButton: 'Generate Analysis',
|
|
analyzingButton: 'Analyzing...',
|
|
errorTitle: 'Error:',
|
|
generatingStep: 'Generating {{stepTitle}}... This may take a moment.',
|
|
readyTitle: 'Ready to Analyze',
|
|
readyText: 'Enter a URL above to start generating your B2B marketing strategy.',
|
|
continueButton: 'Results for step {{step}} are correct. Continue to step {{nextStep}}.',
|
|
analysisCompleteTitle: 'Analysis complete. Next steps:',
|
|
analysisCompleteText: 'Would you like me to prioritize a role/industry, refine messages by channel, or write examples in {{otherLanguage}}? Optionally, mention metrics (e.g., time-to-value, first-contact resolution, error rate) that are particularly important.',
|
|
otherLanguage: 'German',
|
|
exportButton: 'Export',
|
|
exportAsMarkdown: 'As Markdown (.md)',
|
|
exportAsPdf: 'Print / As PDF',
|
|
summaryTitle: 'Summary:',
|
|
filterPlaceholder: 'Filter table...',
|
|
copyTableButton: 'Copy Table',
|
|
copySuccess: 'Filtered table copied!',
|
|
copyFailure: 'Copy failed.',
|
|
addRowButton: '+ Add Row',
|
|
loadingButton: 'Loading...',
|
|
deleteRowAria: 'Delete row',
|
|
copyToClipboardAria: 'Copy to clipboard',
|
|
newProductPrompt: 'Product/Solution Name',
|
|
productUrlPlaceholder: 'URL for this product (optional)',
|
|
noFilterResults: 'No results found for "{{query}}".',
|
|
stepTitles: {
|
|
offer: 'Step 1: Offer (WHAT)',
|
|
targetGroups: 'Step 2: Target Groups (WHO - Companies)',
|
|
personas: 'Step 3: Personas/Roles (WHO - People)',
|
|
painPoints: 'Step 4: Pain Points per Role (WHY)',
|
|
gains: 'Step 5: Gains & Benefits per Role (WHY switch)',
|
|
messages: 'Step 6: Marketing Messages per Segment & Role (HOW to speak)',
|
|
}
|
|
}
|
|
};
|