| Strings Words Characters | |||
|---|---|---|---|
| 258 1,779 11,994 |
|
All strings | Browse Translate Zen |
| 1 128 1,365 |
|
Approved strings | Browse Translate Zen |
| 119 915 6,136 |
|
Translated strings | Browse Translate Zen |
| 118 787 4,771 |
|
Strings waiting for review | Browse Translate Zen |
| 139 864 5,858 |
|
Unfinished strings | Browse Translate Zen |
| 139 864 5,858 |
|
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 9, 2026, 11:27 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/09/2026
String statistics
| Strings percent | Hosted strings | Words percent | Hosted words | Characters percent | Hosted characters | |
|---|---|---|---|---|---|---|
| Total | 258 | 1,779 | 11,994 | |||
| Approved | 1% | 1 | 7% | 128 | 11% | 1,365 |
| Waiting for review | 45% | 118 | 44% | 787 | 39% | 4,771 |
| Translated | 46% | 119 | 51% | 915 | 51% | 6,136 |
| 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 | 53% | 139 | 48% | 864 | 48% | 5,858 |
Quick numbers
and previous 30 days
Trends of last 30 days
+1%
Hosted words
+100%
+1%
Hosted strings
+100%
+1%
Translated
+45%
+100%
Contributors
—
|
Translation approved |
|
|
Translation added |
|
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 |
The “
timesheet_grid/i18n/ca.po” file was changed.
01/31/2026
|
None
String updated in the repository |
|
None
String added in the repository |
|
None
String updated in the repository |
|
| 258 | File in original format as translated in the repository | gettext PO file | |||||||
|---|---|---|---|---|---|---|---|---|---|
| 258 | 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 |
| 139 | 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>