| Strings Words Characters | |||
|---|---|---|---|
| 257 1,916 15,105 |
|
All strings | Browse Translate Zen |
| 1 128 1,365 |
|
Approved strings | Browse Translate Zen |
| 99 777 5,323 |
|
Translated strings | Browse Translate Zen |
| 98 649 3,958 |
|
Strings waiting for review | Browse Translate Zen |
| 158 1,139 9,782 |
|
Unfinished strings | Browse Translate Zen |
| 158 1,139 9,782 |
|
Untranslated strings | Browse Translate Zen |
| 1 34 212 |
|
Strings with any failing checks | Browse Translate Zen |
| 1 34 212 |
|
Translated strings with any failing checks | Browse Translate Zen |
| 1 34 212 |
|
Failing check: Mismatched full stop | Browse Translate Zen |
Summary
| Project website | www.odoo.com | |
|---|---|---|
| Project reviewers41 |
|
|
| Translation license | BSD 2-Clause "Simplified" License | |
| Translation process |
|
|
| File mask |
timesheet_grid/i18n/*.po
|
|
| Translation file |
Download
timesheet_grid/i18n/ca.po
|
|
| Last change | March 11, 2026, 11:18 a.m. | |
| Last change made by | Noemi Pla Garcia (nopl) | |
| Language | Catalan | |
| Language code | ca | |
| Text direction | Left to right | |
| Case sensitivity | Case-sensitive | |
| Number of speakers | 8,218,781 | |
| Number of plurals | 2 | |
| Plural type | One/other | |
| Plurals | Singular | 1 | Plural | 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, … |
| Plural formula |
n != 1
|
|
03/11/2026
String statistics
| Strings percent | Hosted strings | Words percent | Hosted words | Characters percent | Hosted characters | |
|---|---|---|---|---|---|---|
| Total | 257 | 1,916 | 15,105 | |||
| Approved | 1% | 1 | 6% | 128 | 9% | 1,365 |
| Waiting for review | 38% | 98 | 33% | 649 | 26% | 3,958 |
| Translated | 38% | 99 | 40% | 777 | 35% | 5,323 |
| Needs editing | 0% | 0 | 0% | 0 | 0% | 0 |
| Read-only | 0% | 0 | 0% | 0 | 0% | 0 |
| Failing checks | 1% | 1 | 1% | 34 | 1% | 212 |
| Strings with suggestions | 0% | 0 | 0% | 0 | 0% | 0 |
| Untranslated strings | 61% | 158 | 59% | 1,139 | 64% | 9,782 |
Quick numbers
and previous 30 days
Trends of last 30 days
+100%
Hosted words
—
+100%
Hosted strings
—
+38%
Translated
—
—
Contributors
—
|
Translation approved |
|
|
Translation changed |
|
|
Marked for edit |
|
|
Contributor joined |
Contributor joined
03/11/2026
|
None
Resource updated |
The “
timesheet_grid/i18n/ca.po” file was changed.
02/28/2026
|
None
String added in the repository |
|
None
String added in the repository |
|
None
String added in the repository |
|
None
Resource updated |
File “
timesheet_grid/i18n/ca.po” was added.
02/25/2026
|
None
String added in the repository |
|
| 257 | File in original format as translated in the repository | gettext PO file | |||||||
|---|---|---|---|---|---|---|---|---|---|
| 257 | All strings, converted files enriched with comments; suitable for offline translation | CSV | gettext MO | gettext PO | TBX | TMX | XLIFF 1.1 with gettext extensions | XLIFF 1.1 | XLSX |
| 158 | Unfinished strings, converted files enriched with comments; suitable for offline translation | CSV | gettext MO | gettext PO | TBX | TMX | XLIFF 1.1 with gettext extensions | XLIFF 1.1 | XLSX |
None
<t t-set="timesheet_hours" t-value="ctx.get('timesheet_hours', 0)"/>
<t t-set="working_hours" t-value="ctx.get('working_hours', 0)"/>
Hello <t t-out="object.name or ''">Abigail Peterson</t>,<br/><br/>
This is a friendly reminder to log your hours for the following period: <t t-out="ctx.get('date_start') or ''">05/05/2021</t> <i class="fa fa-long-arrow-right"/> <t t-out="ctx.get('date_stop') or ''">05/06/2021</t>.
For the time being, you <t t-if="timesheet_hours != 0">only</t> logged <t t-out="'%d' %int(timesheet_hours)">2</t><t t-if="timesheet_hours % 1 != 0" t-out="':%02d' % (round(timesheet_hours % 1 * 60))">:30</t> hours on the <t t-out="'%d' %int(working_hours)">8</t><t t-if="working_hours % 1 != 0" t-out="':%02d' % (round(working_hours % 1 * 60))">:30</t> requested.<br/>
<div t-if="ctx.get('action_url')" style="margin: 16px 0px 16px 0px;">
<a t-att-href="ctx.get('action_url')" t-attf-style="background-color: {{object.company_id.email_secondary_color or '#875A7B'}};; padding: 8px 16px 8px 16px; text-decoration: none; color: {{object.company_id.email_primary_color or '#FFFFFF'}}; border-radius: 5px; font-size: 13px;">Fill in your timesheet</a>
</div>
<br/>Thank you,<br/>
<t t-if="user.signature">
<div data-o-mail-quote="1">--<br data-o-mail-quote="1"/><t t-out="user.signature or ''">Mitchell Admin</t></div>
</t>
</t>
<t t-set="timesheet_hours" t-value="ctx.get('timesheet_hours', 0)"/>
<t t-set="working_hours" t-value="ctx.get('working_hours', 0)"/>
Hola, <t t-out="object.name or ''">Abigail Peterson</t>:<br/><br/>
Aquest és un recordatori perquè registri les seves hores corresponents al següent període: <t t-out="ctx.get('date_start') or ''">05/05/2021</t> <i class="fa fa-long-arrow-right"/> <t t-out="ctx.get('date_stop') or ''">06/05/2021</t>.
De moment, <t t-if="timesheet_hours != 0">només</t> ha registrat <t t-out="'%d' %int(timesheet_hours)">2</t><t t-if="timesheet_hours % 1 != 0" t-out="':%02d' % (round(timesheet_hours % 1 * 60))">:30</t> hores de les <t t-out="'%d' %int(working_hours)">8</t><t t-if="working_hours % 1 != 0" t-out="':%02d' % (round(working_hours % 1 * 60))">:30</t> sol·licitades.<br/>
<div t-if="ctx.get('action_url')" style="margin: 16px 0px 16px 0px;">
<a t-att-href="ctx.get('action_url')" t-attf-style="background-color: {{object.company_id.email_secondary_color or '#875A7B'}};; padding: 8px 16px 8px 16px; text-decoration: none; color: {{object.company_id.email_primary_color or '#FFFFFF'}}; border-radius: 5px; font-size: 13px;">Ompli el seu full d'hores</a>
</div>
<br/>Gràcies,<br/>
<t t-if="user.signature">
<div data-o-mail-quote="1">--<br data-o-mail-quote="1"/><t t-out="user.signature or ''">Mitchell Admin</t></div>
</t>
</t>