Quantity control layout: changed from wrapping flex to deliberate two-row
grid so the add-to-cart button sits full-width underneath the stepper,
avoiding accidental line breaks and giving the primary action more pulsing
area. Also removed the /Kg suffix's redundant font rules.
Order card delivery row: reordered to badge-then-date (visually centred),
removed the "Delivery" label, and swapped bg-primary to text-bg-primary for
proper contrast on the home-delivery badge (3.13:1 minimum).
Tooltip translations: moved hardcoded static tooltips from data-bs-title
(untranslatable) to title (QWeb-translatable). Handled the edge case of
"Save Cart" and "Back to Cart" which had translations but no model_terms
reference in the POT, causing the merge to discard them — added the view
reference so translations now apply.
Load-from-history page: added accessibility: a visible status message
("Loading your order…"), a <noscript> fallback with link to the group
order, lang and viewport meta tags, and localised strings for all three
languages. Gave the page a minimal inline style block since it does not
inherit the token system (no website.layout).
Translations: 11 new entries (es/eu/ca) for new/reworded UI strings, plus
two code catalogue entries (products found, Close) that needed the
#. odoo-python comment for _() resolution. Documented the silent-failure
pattern in docs/TRANSLATIONS.md: the POT merge, untranslatable attributes,
and missing code comments.
Tests: 246 passing. Pre-commit: clean.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
79 lines
2.6 KiB
Markdown
79 lines
2.6 KiB
Markdown
# Website Sale Aplicoop - Translations
|
|
|
|
## Language Support
|
|
|
|
This module has complete translation support for **3 languages**:
|
|
|
|
| Language | Code | Status | Coverage |
|
|
|----------|------|--------|----------|
|
|
| Spanish | `es` | ✅ Complete | 100% |
|
|
| Catalan | `ca` | ✅ Complete | 100% |
|
|
| Basque (Euskera) | `eu` | ✅ Complete | 100% |
|
|
|
|
## Translated Content
|
|
|
|
Each `.po` file contains **388 translations** for:
|
|
|
|
- **Selection Field Options** (Days of week, Recurrence periods)
|
|
- Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
|
|
- Daily, Weekly, Biweekly, Monthly
|
|
|
|
- **Order States**
|
|
- Draft, Open, Closed, Cancelled
|
|
|
|
- **Order Types**
|
|
- Regular Order, Special Order, Promotional Order
|
|
|
|
- **Field Labels & Help Text**
|
|
- 40+ field definitions with labels, help text, and descriptions
|
|
|
|
## Usage
|
|
|
|
When users switch their Odoo interface language to any of the supported languages, all UI strings will automatically display in that language.
|
|
|
|
### Example
|
|
- English: "Group Order"
|
|
- Spanish: "Pedido de Grupo"
|
|
- Catalan: "Comanda de Grup"
|
|
- Basque (Euskera): "Taldeko Eskaera"
|
|
|
|
## Translation Workflow
|
|
|
|
To add or update translations:
|
|
|
|
1. Edit the corresponding `.po` file **with `polib`** (never `msgmerge`, it corrupts them)
|
|
2. Update the `msgstr` values (keep `msgid` unchanged)
|
|
3. Save and reload the module in Odoo
|
|
4. Translations apply immediately
|
|
|
|
### Adding a *new* string is not just a `.po` edit
|
|
|
|
`website_sale_aplicoop.pot` is generated by Odoo and is gitignored, but it is not
|
|
optional: Odoo merges every `.po` against it before importing, and polib's `merge()`
|
|
drops entries the POT does not have and replaces their occurrences with the POT's.
|
|
A brand new string, or an existing one that just became a view term, needs the POT
|
|
regenerated (from the Odoo UI, against a database **without demo data**) before its
|
|
translation applies anywhere.
|
|
|
|
Three failure modes that produce no error at all — an untranslatable attribute
|
|
(`data-bs-title` is not on QWeb's list, `title` is), a missing
|
|
`model_terms:ir.ui.view` reference in the POT, and a missing `#. odoo-python`
|
|
comment on `_()` strings — are written up in
|
|
[`docs/TRANSLATIONS.md`](../../docs/TRANSLATIONS.md), under *Troubleshooting*.
|
|
|
|
Example entry in a `.po` file:
|
|
```po
|
|
#. module: website_sale_aplicoop
|
|
msgid "Group Order"
|
|
msgstr "Pedido de Grupo" # Spanish translation
|
|
```
|
|
|
|
## Maintenance
|
|
|
|
- All `.po` files were generated and tested: **40/40 tests passing**
|
|
- Translation coverage: **100%** for all supported languages
|
|
- Last updated: August 16, 2026
|
|
|
|
---
|
|
|
|
**Note**: The module includes English strings by default. No `en.po` file is needed as English is the source language.
|