--- phase: 16-content-localization plan: 02 type: execute wave: 1 depends_on: [] files_modified: - plugins/golem15/quotify/views/mail/professional_approved.htm - plugins/golem15/quotify/views/mail/professional_rejected.htm - plugins/golem15/quotify/views/mail/professional_submitted.htm autonomous: true must_haves: truths: - "All system emails use translation filter for all user-facing text" - "Email subjects are translatable" - "Email bodies are translatable" artifacts: - path: "plugins/golem15/quotify/views/mail/professional_approved.htm" provides: "Translatable professional approval email" contains: "|_" - path: "plugins/golem15/quotify/views/mail/professional_rejected.htm" provides: "Translatable professional rejection email" contains: "|_" - path: "plugins/golem15/quotify/views/mail/professional_submitted.htm" provides: "Translatable professional submission email" contains: "|_" key_links: - from: "mail/*.htm" to: "Golem15.Translate plugin" via: "Twig |_ filter" pattern: "\\|_" --- Make all email templates fully translatable by adding |_ filter to hardcoded English text. Purpose: Emails are sent to users in their preferred locale. Three email templates have hardcoded English text that needs the |_ filter. Output: All 8 email templates using |_ filter consistently for all user-facing text @/home/jin/.claude/get-shit-done/workflows/execute-plan.md @/home/jin/.claude/get-shit-done/templates/summary.md @.planning/PROJECT.md @.planning/ROADMAP.md @.planning/STATE.md @.planning/phases/16-content-localization/16-CONTEXT.md @plugins/golem15/quotify/views/mail/professional_approved.htm @plugins/golem15/quotify/views/mail/professional_rejected.htm @plugins/golem15/quotify/views/mail/professional_submitted.htm @plugins/golem15/quotify/views/mail/new_quote_received.htm (reference - already uses |_) Task 1: Add translation filter to professional_approved.htm plugins/golem15/quotify/views/mail/professional_approved.htm Update professional_approved.htm to use |_ filter for all user-facing text: 1. Subject line: ``` subject = "{{ 'Congratulations! Your Professional Account is Verified'|_ }}" ``` 2. Body content - wrap each text block: ``` {{ 'Hi'|_ }} {{ professional.user.name }}, {{ 'Great news! Your professional profile for'|_ }} **{{ professional.business_name }}** {{ 'has been approved.'|_ }} {{ 'You can now'|_ }}: - {{ 'Receive job requests from homeowners'|_ }} - {{ 'Submit quotes for jobs in your service area'|_ }} - {{ 'Build your reputation through reviews'|_ }} {% if notes %} **{{ 'Notes from our team'|_ }}:** {{ notes }} {% endif %} {{ 'Log in to your dashboard to start receiving jobs.'|_ }} {{ 'Welcome to Quotify!'|_ }} {{ 'The Quotify Team'|_ }} ``` Follow the pattern from new_quote_received.htm for consistency. Run `php-legacy artisan translate:scan --include-themes=false` to confirm new strings are detected. professional_approved.htm uses |_ filter for all user-facing text including subject. Task 2: Add translation filter to professional_rejected.htm and professional_submitted.htm plugins/golem15/quotify/views/mail/professional_rejected.htm plugins/golem15/quotify/views/mail/professional_submitted.htm Update both templates to use |_ filter: **professional_rejected.htm:** ``` subject = "{{ 'Update on Your Professional Application'|_ }}" description = "Notification sent when a professional is rejected" == {{ 'Hi'|_ }} {{ professional.user.name }}, {{ 'We have reviewed your professional profile for'|_ }} **{{ professional.business_name }}** {{ 'and unfortunately we are unable to approve it at this time.'|_ }} **{{ 'Reason'|_ }}:** {{ reason }} **{{ 'What you can do'|_ }}:** - {{ 'Review the feedback above'|_ }} - {{ 'Update your profile with the required information'|_ }} - {{ 'Resubmit for verification'|_ }} {{ 'If you have questions, please contact our support team.'|_ }} {{ 'The Quotify Team'|_ }} ``` **professional_submitted.htm:** ``` subject = "{{ 'Your Professional Application Has Been Submitted'|_ }}" description = "Notification sent when a professional submits for verification" == {{ 'Hi'|_ }} {{ professional.user.name }}, {{ 'Your professional profile for'|_ }} **{{ professional.business_name }}** {{ 'has been submitted for verification.'|_ }} {{ 'Our team will review your application and get back to you within 2-3 business days.'|_ }} **{{ 'What happens next'|_ }}:** 1. {{ 'Our team reviews your business information'|_ }} 2. {{ 'We may contact you for additional documentation'|_ }} 3. {{ 'You will receive an email with the decision'|_ }} {{ 'Thanks for your patience!'|_ }} {{ 'The Quotify Team'|_ }} ``` Note: Keep dynamic content (professional.business_name, reason, notes) outside translation filter - only translate static text. Run `php-legacy artisan translate:scan --include-themes=false` to confirm all new strings are detected. professional_rejected.htm and professional_submitted.htm use |_ filter for all user-facing text. Task 3: Add Polish and German translations for email strings None (uses existing translation infrastructure) Run translate:scan to capture all new email strings, then add translations: 1. Scan for new strings: ```bash php-legacy artisan translate:scan --include-themes=false ``` 2. Export current translations: ```bash php-legacy artisan translate:export golem15-quotify-emails.json --source=messages ``` 3. Add translations for the new email strings (approximately 40 new keys): **Polish translations for email text:** - "Congratulations! Your Professional Account is Verified" = "Gratulacje! Twoje konto profesjonalisty zostalo zweryfikowane" - "Great news! Your professional profile for" = "Swietna wiadomosc! Twoj profil profesjonalisty dla" - "has been approved." = "zostal zatwierdzony." - "You can now" = "Mozesz teraz" - "Receive job requests from homeowners" = "Otrzymywac zlecenia od wlascicieli domow" - "Submit quotes for jobs in your service area" = "Skladac wyceny na zlecenia w Twoim obszarze" - "Build your reputation through reviews" = "Budowac swoja reputacje dzieki opiniom" - "Notes from our team" = "Uwagi od naszego zespolu" - "Log in to your dashboard to start receiving jobs." = "Zaloguj sie do panelu, aby zaczac otrzymywac zlecenia." - "Welcome to Quotify!" = "Witamy w Quotify!" - "The Quotify Team" = "Zespol Quotify" - "Update on Your Professional Application" = "Aktualizacja dotyczaca Twojej aplikacji" - "and unfortunately we are unable to approve it at this time." = "i niestety nie mozemy jej teraz zatwierdzic." - "Reason" = "Powod" - "What you can do" = "Co mozesz zrobic" - "Review the feedback above" = "Przejrzyj powyzsze uwagi" - "Update your profile with the required information" = "Uzupelnij profil wymaganymi informacjami" - "Resubmit for verification" = "Wyslij ponownie do weryfikacji" - "If you have questions, please contact our support team." = "Jesli masz pytania, skontaktuj sie z naszym zespolem wsparcia." - "Your Professional Application Has Been Submitted" = "Twoja aplikacja zostala wyslana" - "has been submitted for verification." = "zostala wyslana do weryfikacji." - "Our team will review your application and get back to you within 2-3 business days." = "Nasz zespol przejrzy Twoja aplikacje i odpowie w ciagu 2-3 dni roboczych." - "What happens next" = "Co dalej" - "Our team reviews your business information" = "Nasz zespol sprawdza informacje o Twojej firmie" - "We may contact you for additional documentation" = "Mozemy sie z Toba skontaktowac w celu uzyskania dodatkowych dokumentow" - "You will receive an email with the decision" = "Otrzymasz e-mail z decyzja" - "Thanks for your patience!" = "Dziekujemy za cierpliwosc!" **German translations for email text:** - "Congratulations! Your Professional Account is Verified" = "Herzlichen Glueckwunsch! Ihr Fachkraft-Konto ist verifiziert" - "Great news! Your professional profile for" = "Gute Nachrichten! Ihr Fachkraft-Profil fuer" - "has been approved." = "wurde genehmigt." - "You can now" = "Sie koennen jetzt" - "Receive job requests from homeowners" = "Auftragsanfragen von Hauseigentuemern erhalten" - "Submit quotes for jobs in your service area" = "Angebote fuer Auftraege in Ihrem Einsatzgebiet abgeben" - "Build your reputation through reviews" = "Ihren Ruf durch Bewertungen aufbauen" - "Notes from our team" = "Hinweise von unserem Team" - "Log in to your dashboard to start receiving jobs." = "Melden Sie sich in Ihrem Dashboard an, um Auftraege zu erhalten." - "Welcome to Quotify!" = "Willkommen bei Quotify!" - "The Quotify Team" = "Das Quotify-Team" - "Update on Your Professional Application" = "Aktualisierung zu Ihrer Bewerbung" - "and unfortunately we are unable to approve it at this time." = "und wir koennen sie leider derzeit nicht genehmigen." - "Reason" = "Grund" - "What you can do" = "Was Sie tun koennen" - "Review the feedback above" = "Lesen Sie das obige Feedback" - "Update your profile with the required information" = "Aktualisieren Sie Ihr Profil mit den erforderlichen Informationen" - "Resubmit for verification" = "Erneut zur Verifizierung einreichen" - "If you have questions, please contact our support team." = "Bei Fragen wenden Sie sich bitte an unser Support-Team." - "Your Professional Application Has Been Submitted" = "Ihre Bewerbung wurde eingereicht" - "has been submitted for verification." = "wurde zur Verifizierung eingereicht." - "Our team will review your application and get back to you within 2-3 business days." = "Unser Team wird Ihre Bewerbung pruefen und sich innerhalb von 2-3 Werktagen bei Ihnen melden." - "What happens next" = "Naechste Schritte" - "Our team reviews your business information" = "Unser Team prueft Ihre Unternehmensinformationen" - "We may contact you for additional documentation" = "Wir kontaktieren Sie moeglicherweise fuer zusaetzliche Unterlagen" - "You will receive an email with the decision" = "Sie erhalten eine E-Mail mit der Entscheidung" - "Thanks for your patience!" = "Vielen Dank fuer Ihre Geduld!" 4. Import translations: ```bash php-legacy artisan translate:import golem15-quotify-emails.json ``` Alternative: If CLI workflow is cumbersome, insert translations directly via DB::table('winter_translate_messages') using the existing seeder pattern from Phase 12. Test email preview in backend or send test email while locale is set to 'pl' or 'de' to confirm translations appear. All email strings have Polish and German translations in the database. 1. All 8 email templates use |_ filter for user-facing text 2. Email subjects are translatable (use |_ in subject line) 3. Polish translations exist for all email strings 4. German translations exist for all email strings 5. Test email in each locale shows correct language - professional_approved.htm uses |_ filter throughout - professional_rejected.htm uses |_ filter throughout - professional_submitted.htm uses |_ filter throughout - All email strings have PL translations - All email strings have DE translations - Emails render in user's preferred locale After completion, create `.planning/phases/16-content-localization/16-02-SUMMARY.md`