Context
During QA prep for a Togo deployment of OpenSPP2 (fr_FR locale, 5 demo personas), ~45 EN strings appear on demo screens even when the user language is set to French. Inventory below is captured from manual smoke-pack runs; every entry was visible on a real screen at the time of capture.
Note
This issue is separate from the broken-French and code bugs in spp_programs tracked in #236 and #237 — those are factually wrong translations / a code bug, this is a coverage gap (strings that have no FR entry at all).
Origin
Strings come from spp_change_request_v2, spp_programs, spp_registry, base Odoo, and theme_openspp_muk view archives.
Inventory
Change Requests list (spp_change_request_v2)
| # |
English string |
Where seen |
| 1 |
Change Requests (page title) |
Top app menu on Change Requests app |
| 2 |
All Requests |
Second menu item, same page |
| 3 |
Reference |
List column header |
| 4 |
Request Type |
List column header |
| 5 |
Registrant |
List column header |
| 6 |
Display State |
List column header |
| 7 |
Submitted By |
List column header |
| 8 |
Submitted |
List column header |
| 9 |
No change requests found |
Empty-state title |
| 10 |
Change requests allow you to propose changes to registrant information with an approval workflow. |
Empty-state subtitle |
Programs list (spp_programs)
| # |
English |
Where |
| 11 |
Programs |
Page title |
| 12 |
Exit Report |
Top menu item |
| 13 |
Payments |
Top menu item |
| 14 |
In-Kind |
Top menu item |
| 15 |
Reports |
Top menu item |
| 16 |
Configuration |
Top menu item |
| 17 |
Create Program |
Button, list view top-left |
| 18 |
Name / Target Type / Beneficiaries / Cycles / Status |
List view column headers |
| 19 |
Active |
Status badge on list rows |
| 20 |
Group |
Value of Target Type field on rows |
FSB program form (spp_programs)
| # |
English |
Where |
| 21 |
Import Eligible / Enroll Eligible / Verify Eligibility / New Cycle / Deduplicate / Notify |
Action button bar |
| 22 |
Active / Ended |
Top-right state pipeline badges |
| 23 |
Overview / Configuration / History |
Notebook tab labels |
| 24 |
Target Type / # Beneficiaries / # Eligible Beneficiaries |
Field labels |
| 25 |
RECENT CYCLES |
Section header on Overview tab |
| 26 |
NAME / START DATE / END DATE / STATE |
Cycle table column headers on Overview tab |
| 27 |
Draft |
Cycle state badge in cycle row |
| 28 |
External / Internal / Note |
Chatter composer buttons at bottom of form |
Cycle form (spp_programs)
| # |
English |
Where |
| 29 |
Copy Beneficiaries / Prepare Entitlements / Cancel |
Action button bar |
| 30 |
Draft / To Approve / Approved / Distributed / Ended |
State pipeline badges |
| 31 |
Enrollments / Beneficiaries / Entitlements / Payments |
Smart buttons at top of form |
| 32 |
Overview / Configuration / Approval / History |
Notebook tab labels |
| 33 |
Program / Sequence / Start Date / End Date |
Field labels |
| 34 |
FINANCIAL SUMMARY / Total Amount / Total Amount In Words / Currency |
Section header + field labels |
| 35 |
Cycle created |
OdooBot chatter message |
Household form (spp_registry)
| # |
English |
Where |
| 36 |
Compute PMT Score |
Button in targeting section (this one is owned by a downstream module, ignore — listed for completeness only) |
| 37 |
Group Name / Group Type / Registration Date / Language |
Field labels on Profile tab |
| 38 |
Profile / Identity / History / Service Points |
Notebook tab labels |
| 39 |
TAGS |
Section header on Profile tab |
| 40 |
Add tags... |
Placeholder text in tag widget |
| 41 |
DEMOGRAPHICS |
Section header further down the form |
| 42 |
Date of Birth / Gender / Birth Place / Approximate Birthdate / Occupation / Civil Status / Age / Income |
Field labels in Demographics section |
| 43 |
CONTACT INFORMATION |
Section header further down |
| 44 |
Area / Adresse complète |
Mixed labels in Contact Information section |
Sidebar (theme_openspp_muk / base)
| # |
English |
Where |
| 45 |
Registry / Area / Programs / Discuss / Calendar / Contacts / Change Requests / Dashboards / Approvals / Apps |
Left sidebar, all 10 items |
Proposed approach
Maintainer judgment:
- Combined FR
.po PR against OpenSPP2 — single round-trip, covers everything in one batch.
- Per-module FR
.po PRs — finer-grained, follows Odoo convention.
We can supply the FR translations in either format. They've been reviewed by a Togo-French project lead.
Related
Severity
MEDIUM — not a blocker (demo runs), but a visible quality gap in any fr_FR deployment. Particularly hurtful at demo time when the audience is reading the UI in French.
Offer
Happy to send a PR with the FR translations (per-module or combined, your call). Screenshots available on request — let us know how you'd like to receive them (attached to the issue, sent via the OpenSPP Slack, etc.).
Context
During QA prep for a Togo deployment of OpenSPP2 (
fr_FRlocale, 5 demo personas), ~45 EN strings appear on demo screens even when the user language is set to French. Inventory below is captured from manual smoke-pack runs; every entry was visible on a real screen at the time of capture.Note
This issue is separate from the broken-French and code bugs in
spp_programstracked in #236 and #237 — those are factually wrong translations / a code bug, this is a coverage gap (strings that have no FR entry at all).Origin
Strings come from
spp_change_request_v2,spp_programs,spp_registry, base Odoo, andtheme_openspp_mukview archives.Inventory
Change Requests list (
spp_change_request_v2)Programs list (
spp_programs)FSB program form (
spp_programs)Cycle form (
spp_programs)Household form (
spp_registry)Sidebar (
theme_openspp_muk/ base)Proposed approach
Maintainer judgment:
.poPR against OpenSPP2 — single round-trip, covers everything in one batch..poPRs — finer-grained, follows Odoo convention.We can supply the FR translations in either format. They've been reviewed by a Togo-French project lead.
Related
total_amount_in_wordsrenders in English regardless of languagespp_programs/fr.po(To Approuver,Préparer Droits,Initial Montant,In-Type,Not Payé,Verify Éligibilité)Severity
MEDIUM — not a blocker (demo runs), but a visible quality gap in any
fr_FRdeployment. Particularly hurtful at demo time when the audience is reading the UI in French.Offer
Happy to send a PR with the FR translations (per-module or combined, your call). Screenshots available on request — let us know how you'd like to receive them (attached to the issue, sent via the OpenSPP Slack, etc.).