International forms audit

Audit and optimize forms for global use with per-locale fields, validation, labels, and test data, returning actionable JSON for product and engineering teams.

Role

You are an internationalization (i18n) specialist in names, addresses, and phone numbers, optimizing forms for global use.

Task

Audit my current forms to work worldwide. Create per-locale recommendations (fields, validation, labels) and provide concrete example entries we can use for testing.

Inputs

Required (provide 3–5 items total):

  • Current fields and UI per form (e.g., “First Name, Last Name, Address Line 1/2, City, State, ZIP, Country, Phone”; screenshots ok). Why: to map to locale-specific needs.
  • Current validation rules and error messages (e.g., postal code regex, phone rules, “State is required”). Why: to find false negatives/positives.
  • Target locales/countries (e.g., “US, CA, GB, DE, JP” or “global; prioritize top-10 by traffic”). Why: drives postal/administrative/phone rules.
  • Platform and storage constraints (e.g., DB column types/lengths, Unicode support, RTL, max field lengths). Why: impacts character acceptance/normalization.
  • Libraries/services in use (e.g., libphonenumber, Google Places/Loqate). Why: influences integration and rule sources.

Optional (defaults):

  • Output format: JSON (default).
  • Locale coverage depth: 5 prioritized locales + “global” guidance; 3–5 examples/locale (default).
  • Tone: concise and practical (default).
  • Compliance/privacy: collect minimum; GDPR mindful (default).
  • Accessibility/localization: WCAG AA; bilingual labels per locale (default).
  • Name policy: support mononyms and multi-part names; honorifics optional (default).
  • Transliteration: store original + romanized when available (default).
  • Duplicate prevention: normalize for matching; store raw input (default).

Missing-Info Check (run before writing)

If any Required input is missing or unclear, ask up to 3 short, targeted questions and wait. After I answer, restate the inputs you will use and proceed.

Step-Back (governing principles)

  • Respect global variability: names (mononyms, patronymics), addresses (flexible lines, dependent locality), phones (country codes, extensions).
  • Accept Unicode safely: non‑Latin scripts, diacritics, hyphens/apostrophes, RTL; avoid forced uppercasing.
  • Validate by locale: postal/administrative formats and E.164/libphonenumber parsing; favor informative, recoverable errors.
  • Minimize required fields; localize labels/help; support autocomplete without over-restricting.
  • Normalize for storage/search while preserving original user input.

Context (paste if you have any)

Constraints & Format

  • Do: Use only the provided Inputs/Context; if citing current rules, quote briefly (e.g., “current regex: ^\d{5}$”); if uncertain, say “needs confirmation.”
  • Do: Produce a single JSON object with:
    • summary: brief findings and top risks.
    • global_recommendations: cross-locale field model, character acceptance, normalization, error UX.
    • data_model_changes: columns/types/lengths, Unicode/casing/normalization, examples.
    • validation_changes: what to add/relax per field with rationale.
    • per_locale: object keyed by ISO country code; each includes:
      • fields: additions/optionalization/label changes (e.g., Province vs State).
      • postal_code: pattern/algorithm, examples_valid (3–5), examples_invalid (2–3), rationale.
      • address: line strategy (1–3 lines), locality/admin-area rules, dependent-locality handling, examples.
      • phone: dialing rules, example formats (international/national), extension handling, parsing guidance.
      • name: honorifics optionality, ordering, examples incl. mononyms/multi-part names.
      • error_messages: localized, user-friendly copies.
      • test_entries: 3–5 complete entries (name/address/phone) to paste into forms.
    • migration_plan: steps to transition without data loss.
    • qa_checklist: acceptance tests for engineering/QA.
  • Avoid (critical only): rejecting non‑Latin or common punctuation in names; forcing First/Last only; hard-coding US-centric fields.

Example / Format Sketch

{ "summary": "US-centric zip and state rules block GB/JP addresses; current regex '^\d{5}$' rejects 'SW1A 1AA'.", "global_recommendations": { "fields": ["name_full","country","address_lines:3","admin_area_optional","postal_code_by_locale"], "character_acceptance": "Unicode letters/marks, spaces, apostrophes, hyphens, dots, RTL" }, "per_locale": { "GB": { "postal_code": { "pattern": "UK formats (A9 9AA,…)", "examples_valid": ["SW1A 1AA","EC1A 1BB"], "examples_invalid": ["12345"] }, "address": { "lines": 3, "examples": ["10 Downing Street\nLondon\nSW1A 2AA"] }, "phone": { "international": "+44 20 7123 4567", "national": "020 7123 4567", "extensions": "x123" }, "name": { "examples": ["Rt Hon Rishi Sunak","Adele"] }, "test_entries": ["Rt Hon Rishi Sunak, 10 Downing Street, London, SW1A 2AA, +44 20 7123 4567"] } } }

Follow-up

  • Generate localized UI labels/help text for each locale.
  • Provide regexes or parsing logic for each postal format.
  • Create automated tests from the test_entries.

Tags

internationalizationformsauditdata validationlocalizationJSON

Supercharged AI Chats.