Add contact form mailer microservice and i18n support
- mailer/: standalone Express+nodemailer service on port 3000 with
validation, honeypot (company field), per-IP rate limiting (5/min),
Fastmail SMTP. Returns 400 on bad input, 429 on rate limit, 502 on
SMTP failure, 200 {ok:true} on success or honeypot hit.
- Dockerfile: multi-stage nginx build for humanai-landing container.
- mailer/Dockerfile: node:22-alpine, no exposed host ports.
- deploy.sh: idempotent deploy of both containers to piha.local via
Docker context 'piha', with smoke tests (400 on empty body, 200 on
honeypot fill).
- src/i18n/: minimal pl/en translation files; useT() hook picks
language from navigator.language.
- CTASection: replaced dead onSubmit with fetch POST /api/contact,
added hidden honeypot field, success/error states using i18n strings.
- README: Mailer section with two manual steps (credentials + NPM proxy).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 15:12:05 +02:00
|
|
|
export const en = {
|
|
|
|
|
contact: {
|
|
|
|
|
labelName: 'Name',
|
|
|
|
|
placeholderName: 'Your name',
|
|
|
|
|
labelEmail: 'Email',
|
|
|
|
|
placeholderEmail: 'email@company.com',
|
|
|
|
|
labelMessage: 'How can we help?',
|
|
|
|
|
placeholderMessage: 'Briefly describe your process or challenge...',
|
|
|
|
|
submit: 'Schedule a call',
|
|
|
|
|
sending: 'Sending...',
|
|
|
|
|
successTitle: 'Message sent!',
|
|
|
|
|
successBody: "We'll get back to you shortly.",
|
|
|
|
|
errorTitle: 'Something went wrong.',
|
2026-06-23 16:26:22 +02:00
|
|
|
errorBody: 'Please try again or email us directly at hello@gethumanai.pl.',
|
|
|
|
|
errors: {
|
|
|
|
|
nameRequired: 'Please enter your name.',
|
|
|
|
|
emailInvalid: 'Please enter a valid email address.',
|
|
|
|
|
messageTooShort: 'Your message must be at least 5 characters long.',
|
|
|
|
|
rateLimited: 'Too many attempts. Please wait a moment and try again.',
|
|
|
|
|
mailFailed: 'We could not send your message. Please try again or email us directly at hello@gethumanai.pl.',
|
|
|
|
|
generic: 'Please try again or email us directly at hello@gethumanai.pl.',
|
|
|
|
|
},
|
Add contact form mailer microservice and i18n support
- mailer/: standalone Express+nodemailer service on port 3000 with
validation, honeypot (company field), per-IP rate limiting (5/min),
Fastmail SMTP. Returns 400 on bad input, 429 on rate limit, 502 on
SMTP failure, 200 {ok:true} on success or honeypot hit.
- Dockerfile: multi-stage nginx build for humanai-landing container.
- mailer/Dockerfile: node:22-alpine, no exposed host ports.
- deploy.sh: idempotent deploy of both containers to piha.local via
Docker context 'piha', with smoke tests (400 on empty body, 200 on
honeypot fill).
- src/i18n/: minimal pl/en translation files; useT() hook picks
language from navigator.language.
- CTASection: replaced dead onSubmit with fetch POST /api/contact,
added hidden honeypot field, success/error states using i18n strings.
- README: Mailer section with two manual steps (credentials + NPM proxy).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 15:12:05 +02:00
|
|
|
},
|
|
|
|
|
};
|