Malformed date syntax in tiki-calendar_nav.tpl
- Status
- Open
- Subject
- Malformed date syntax in tiki-calendar_nav.tpl
- Version
- 18.x
21.x Regression
22.x - Category
- Consistency
- Upgrade Blocker
- Easy for Newbie Dev
- Less than 30-minutes fix
- Feature
- Calendar
- Resolution status
- New
- Submitted by
- hman
- Lastmod by
- hman
- Rating
- Related-to
- Description
In tiki-calendar_nav.tpl the display of calendar dates is formed (template), but in a IMHO rather bizarre mix of hard-coded and localizable syntax, which
a) does not make use and thus circumvents the existing user pref for date formats and
b) effectively makes correct localization impossible.I quote from this template a code snippet:
Copy to clipboard{if $viewlist ne 'list' or $prefs.calendar_list_begins_focus ne 'y'} {if $calendarViewMode eq 'month'} {$daystart|tiki_date_format:"%B %Y"} {elseif $calendarViewMode eq 'week'} {* test display_field_order and use %d/%m or %m/%d *} {if ($prefs.display_field_order eq 'DMY') || ($prefs.display_field_order eq 'DYM') || ($prefs.display_field_order eq 'YDM')} {$daystart|tiki_date_format:"{tr}%d/%m{/tr}/%Y"} - {$dayend|tiki_date_format:"{tr}%d/%m{/tr}/%Y"} {else} {$daystart|tiki_date_format:"{tr}%m/%d{/tr}/%Y"} - {$dayend|tiki_date_format:"{tr}%m/%d{/tr}/%Y"} {/if} {else} {$daystart|tiki_date_format:"%B %Y"} - {$dayend|tiki_date_format:"%B %Y"} {/if} {else} {$daystart|tiki_date_format:"{tr}%m/%d{/tr}/%Y"} - {$dayend|tiki_date_format:"{tr}%m/%d{/tr}/%Y"} {/if}
So there is some testing for localized date format, but it assumes that only the order of day and month may be swapped through translation? This only works inside the USA or partly in the UK. It does not work in Germany, and not in Japan and possibly conflicts with other countries as well.Germany uses
Copy to clipboard%d.%m.%Y
Japan usesCopy to clipboard%Y-%m-%d
Look at the peculiar coding in tiki-calendar_nav.php. To magnify, I have extracted one example that clearly shows the logical error in it:Copy to clipboard{$dayend|tiki_date_format:"{tr}%d/%m{/tr}/%Y"}
The year was excluded from translation and also the slash that comes before the year (at least in the USA...). So the slash cannot be removed by custom.php, because it is outside the translation. And it would be even worse for a localization into Japanese, because of their year leading the date...It would be far better if date format was used in the form of the user pref that exists! But for a faster "quick resolution" moving the %Y into the translation braces would do the trick, and later introduce the "proper" way... Thanks.
- Importance
- 7
- Easy to solve?
- 10 easy
- Priority
- 70
- Demonstrate Bug on Tiki 19+
-
This bug has been demonstrated on show2.tiki.org
Please demonstrate your bug on show2.tiki.org
Show.tiki.org is not configured properlyThe public/private keys configured to connect to show2.tiki.org were not accepted. Please make sure you are using RSA keys. Thanks.
- Demonstrate Bug (older Tiki versions)
-
This bug has been demonstrated on show.tikiwiki.org
Please demonstrate your bug on show.tikiwiki.org
Show.tiki.org is not configured properlyThe public/private keys configured to connect to show.tikiwiki.org were not accepted. Please make sure you are using RSA keys. Thanks.
- Ticket ID
- 7412
- Created
- Wednesday 08 July, 2020 15:38:47 UTC
by hman - LastModif
- Sunday 14 February, 2021 09:22:28 UTC