Files
Brancheneinstufung2/b2b-marketing-assistant/constants.ts
Floke 46bf8b0b48 feat(b2b-marketing): Finalize grounding architecture and frontend improvements
- 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.
2025-12-23 10:40:48 +00:00

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)',
}
}
};