- show "link has expired message" in password reset screen
- added date objects as hydrator variables - for custom date formats in invoice templates
- show meta-fields with null values (e.g. booleans with `false` where hidden)
- fix permission check: allow to remove `view_own_timesheet` but still record times
- prevent error 500 if customer country is empty
- fix API 500 error if project does not exist when creating new timesheet
- fix tags are not created in remote-search mode
- do not check "export items" by default
- fix daterange query, if user an request locale are different
- added logging for invalid SAML responses (see various discussions)
- added command to list users
- corrected wrong german translation
- work contract validations
- prevent error with missing params
- use collapsible, minor UI improvement
- added classes to target menu buttons in custom rules
- disable webpack notifier, incompatible with mac arm
- use explicit menu service to generate menu
- bump to fontawesome 6 and replace restart icon
- change repeat icon for recent activities
- moved user bookmarks (favorites) to top nav
- fix totp seconds window (leeway)
- new migration to fix remaining user preferences with dots in name
- remove duplicate named column in user screen
- unify and added translations
- added missing filter and tags to InvoiceSecurity
* fix deprecations
* remove unused config
* replace invalid annotation type with attribute
* use AsDoctrineListener to fix deprecation
* new ModifiedSubscriber to support custom logic and fix deprecation
* removed inheritdoc comment
* new ModifiedSubscriber to support custom logic and fix deprecation
* cleanup event dispatcher interface
* re-order annotation params
* one more doctrine based deprecation
* fix query to count active timesheets
* link to "all times" to identify active timesheets
* link icon instead of text
* fix "skin" translation in wizard
* use duration filter to show duration
* added login link command and controller
* bump tabler theme to 1.0
* added wizard to force password reset by user
* allow to configure that new accounts need to reset their password
* prevent uploading twig templates by default
* bump composer packages
* enable sandbox and basic security measures for custom twig templates for invoice and export
* bump to symfony 6.3.5
* allow to export single user reports to excel
* removed broken method to reload twig cache
* added api parameter to fetch user collection fully serialized
* allow to replace or append description via timesheet batch update
* show api username above form
* prevent empty title for select options
* removed css for unused sweetalert
* fix isWeekend() check with DateTimeInterface
* reset timesheet rates on "create copy"
* wrap long names in multi-selects - fix#4001
* rename profile menus
* show all possible links in user profile dropdown
* check if plugin is compatible before displaying the buy link
Co-authored-by: Anders Johansson <johansson@aljmedia.se>
Co-authored-by: ButterflyOfFire <boffire@users.noreply.hosted.weblate.org>
Co-authored-by: Eryk Michalak <gnu.ewm@protonmail.com>
Co-authored-by: Petr Daniel Ambrož <paces@paces.cz>
Currently translated at 100.0% (345 of 345 strings)
Translated using Weblate (Chinese (Traditional))
Currently translated at 51.3% (177 of 345 strings)
Translated using Weblate (Greek)
Currently translated at 82.3% (284 of 345 strings)
Translated using Weblate (Faroese)
Currently translated at 71.3% (246 of 345 strings)
Translated using Weblate (Finnish)
Currently translated at 82.3% (284 of 345 strings)
Translated using Weblate (Portuguese)
Currently translated at 82.3% (284 of 345 strings)
Translated using Weblate (Turkish)
Currently translated at 99.7% (344 of 345 strings)
Translated using Weblate (Swedish)
Currently translated at 82.3% (284 of 345 strings)
Translated using Weblate (Slovak)
Currently translated at 74.4% (257 of 345 strings)
Translated using Weblate (Russian)
Currently translated at 82.3% (284 of 345 strings)
Translated using Weblate (Romanian)
Currently translated at 82.0% (283 of 345 strings)
Translated using Weblate (Polish)
Currently translated at 83.7% (289 of 345 strings)
Translated using Weblate (Dutch)
Currently translated at 77.3% (267 of 345 strings)
Translated using Weblate (Japanese)
Currently translated at 55.3% (191 of 345 strings)
Translated using Weblate (Hungarian)
Currently translated at 83.7% (289 of 345 strings)
Translated using Weblate (Basque)
Currently translated at 68.9% (238 of 345 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (345 of 345 strings)
Translated using Weblate (Esperanto)
Currently translated at 81.7% (282 of 345 strings)
Translated using Weblate (German (Switzerland))
Currently translated at 82.3% (284 of 345 strings)
Translated using Weblate (Danish)
Currently translated at 64.0% (221 of 345 strings)
Translated using Weblate (Czech)
Currently translated at 82.0% (283 of 345 strings)
Translated using Weblate (English)
Currently translated at 100.0% (345 of 345 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (345 of 345 strings)
Translated using Weblate (Chinese (Traditional))
Currently translated at 51.0% (176 of 345 strings)
Translated using Weblate (Greek)
Currently translated at 81.7% (282 of 345 strings)
Translated using Weblate (Faroese)
Currently translated at 70.7% (244 of 345 strings)
Translated using Weblate (Finnish)
Currently translated at 81.7% (282 of 345 strings)
Translated using Weblate (Portuguese)
Currently translated at 82.0% (283 of 345 strings)
Translated using Weblate (Turkish)
Currently translated at 99.4% (343 of 345 strings)
Translated using Weblate (Swedish)
Currently translated at 82.0% (283 of 345 strings)
Translated using Weblate (Slovak)
Currently translated at 74.2% (256 of 345 strings)
Translated using Weblate (Russian)
Currently translated at 82.3% (284 of 345 strings)
Translated using Weblate (Polish)
Currently translated at 83.1% (287 of 345 strings)
Translated using Weblate (Japanese)
Currently translated at 54.7% (189 of 345 strings)
Translated using Weblate (Italian)
Currently translated at 81.7% (282 of 345 strings)
Translated using Weblate (Hungarian)
Currently translated at 83.7% (289 of 345 strings)
Translated using Weblate (Basque)
Currently translated at 68.6% (237 of 345 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (345 of 345 strings)
Translated using Weblate (Esperanto)
Currently translated at 81.1% (280 of 345 strings)
Translated using Weblate (German (Switzerland))
Currently translated at 81.7% (282 of 345 strings)
Translated using Weblate (Danish)
Currently translated at 63.7% (220 of 345 strings)
Translated using Weblate (Czech)
Currently translated at 81.7% (282 of 345 strings)
Translated using Weblate (English)
Currently translated at 100.0% (345 of 345 strings)
Translated using Weblate (German (Switzerland))
Currently translated at 3.5% (1 of 28 strings)
Translated using Weblate (Faroese)
Currently translated at 46.4% (13 of 28 strings)
Translated using Weblate (Portuguese)
Currently translated at 89.2% (25 of 28 strings)
Translated using Weblate (Greek)
Currently translated at 89.2% (25 of 28 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (28 of 28 strings)
Translated using Weblate (Swedish)
Currently translated at 89.2% (25 of 28 strings)
Translated using Weblate (Slovak)
Currently translated at 82.1% (23 of 28 strings)
Translated using Weblate (Romanian)
Currently translated at 89.2% (25 of 28 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (28 of 28 strings)
Translated using Weblate (Italian)
Currently translated at 89.2% (25 of 28 strings)
Translated using Weblate (Hungarian)
Currently translated at 89.2% (25 of 28 strings)
Translated using Weblate (Basque)
Currently translated at 82.1% (23 of 28 strings)
Translated using Weblate (Esperanto)
Currently translated at 89.2% (25 of 28 strings)
Translated using Weblate (Czech)
Currently translated at 89.2% (25 of 28 strings)
Translated using Weblate (Finnish)
Currently translated at 89.2% (25 of 28 strings)
Translated using Weblate (German (Switzerland))
Currently translated at 0.0% (0 of 28 strings)
Translated using Weblate (Faroese)
Currently translated at 42.8% (12 of 28 strings)
Translated using Weblate (Portuguese)
Currently translated at 85.7% (24 of 28 strings)
Translated using Weblate (Greek)
Currently translated at 85.7% (24 of 28 strings)
Translated using Weblate (Finnish)
Currently translated at 85.7% (24 of 28 strings)
Translated using Weblate (Turkish)
Currently translated at 96.4% (27 of 28 strings)
Translated using Weblate (Swedish)
Currently translated at 85.7% (24 of 28 strings)
Translated using Weblate (Slovak)
Currently translated at 78.5% (22 of 28 strings)
Translated using Weblate (Romanian)
Currently translated at 85.7% (24 of 28 strings)
Translated using Weblate (Polish)
Currently translated at 96.4% (27 of 28 strings)
Translated using Weblate (Hungarian)
Currently translated at 85.7% (24 of 28 strings)
Translated using Weblate (Basque)
Currently translated at 78.5% (22 of 28 strings)
Translated using Weblate (Esperanto)
Currently translated at 85.7% (24 of 28 strings)
Translated using Weblate (Czech)
Currently translated at 85.7% (24 of 28 strings)
Translated using Weblate (Hungarian)
Currently translated at 83.7% (289 of 345 strings)
Added translation using Weblate (Chinese (Traditional))
Added translation using Weblate (Chinese (Traditional))
Added translation using Weblate (Chinese (Traditional))
Added translation using Weblate (Chinese (Traditional))
Added translation using Weblate (Chinese (Traditional))
Added translation using Weblate (German (Switzerland))
Added translation using Weblate (Chinese (Traditional))
Added translation using Weblate (Slovak)
Added translation using Weblate (Korean)
Added translation using Weblate (Faroese)
Added translation using Weblate (Finnish)
Added translation using Weblate (Swedish)
Added translation using Weblate (Dutch)
Added translation using Weblate (Arabic)
Added translation using Weblate (Hungarian)
Added translation using Weblate (Vietnamese)
Added translation using Weblate (Portuguese)
Added translation using Weblate (Czech)
Added translation using Weblate (Japanese)
Added translation using Weblate (Romanian)
Added translation using Weblate (Russian)
Added translation using Weblate (Basque)
Added translation using Weblate (Esperanto)
Added translation using Weblate (Greek)
Added translation using Weblate (Danish)
Added translation using Weblate (Chinese (Traditional))
Translated using Weblate (Chinese (Traditional))
Currently translated at 51.3% (177 of 345 strings)
Translated using Weblate (German (Switzerland))
Currently translated at 0.0% (0 of 28 strings)
Translated using Weblate (Faroese)
Currently translated at 42.8% (12 of 28 strings)
Translated using Weblate (Portuguese)
Currently translated at 89.2% (25 of 28 strings)
Translated using Weblate (Greek)
Currently translated at 89.2% (25 of 28 strings)
Translated using Weblate (Greek)
Currently translated at 82.3% (284 of 345 strings)
Translated using Weblate (Faroese)
Currently translated at 71.3% (246 of 345 strings)
Translated using Weblate (Finnish)
Currently translated at 89.2% (25 of 28 strings)
Translated using Weblate (Finnish)
Currently translated at 82.3% (284 of 345 strings)
Translated using Weblate (Portuguese)
Currently translated at 82.3% (284 of 345 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (28 of 28 strings)
Translated using Weblate (Swedish)
Currently translated at 89.2% (25 of 28 strings)
Translated using Weblate (Slovak)
Currently translated at 82.1% (23 of 28 strings)
Translated using Weblate (Romanian)
Currently translated at 89.2% (25 of 28 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (28 of 28 strings)
Translated using Weblate (Dutch)
Currently translated at 89.2% (25 of 28 strings)
Translated using Weblate (Hungarian)
Currently translated at 89.2% (25 of 28 strings)
Translated using Weblate (Basque)
Currently translated at 82.1% (23 of 28 strings)
Translated using Weblate (Esperanto)
Currently translated at 89.2% (25 of 28 strings)
Translated using Weblate (Danish)
Currently translated at 67.8% (19 of 28 strings)
Translated using Weblate (Czech)
Currently translated at 89.2% (25 of 28 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (345 of 345 strings)
Translated using Weblate (Swedish)
Currently translated at 82.3% (284 of 345 strings)
Translated using Weblate (Slovak)
Currently translated at 74.7% (258 of 345 strings)
Translated using Weblate (Romanian)
Currently translated at 82.3% (284 of 345 strings)
Translated using Weblate (Polish)
Currently translated at 83.7% (289 of 345 strings)
Translated using Weblate (Dutch)
Currently translated at 77.6% (268 of 345 strings)
Translated using Weblate (Japanese)
Currently translated at 55.3% (191 of 345 strings)
Translated using Weblate (Hungarian)
Currently translated at 79.7% (275 of 345 strings)
Translated using Weblate (Basque)
Currently translated at 68.9% (238 of 345 strings)
Translated using Weblate (Esperanto)
Currently translated at 81.7% (282 of 345 strings)
Translated using Weblate (German (Switzerland))
Currently translated at 82.3% (284 of 345 strings)
Translated using Weblate (Danish)
Currently translated at 64.0% (221 of 345 strings)
Translated using Weblate (Czech)
Currently translated at 82.3% (284 of 345 strings)
Added translation using Weblate (Chinese (Traditional))
Added translation using Weblate (Chinese (Traditional))
Added translation using Weblate (Chinese (Traditional))
Added translation using Weblate (Chinese (Traditional))
Added translation using Weblate (Chinese (Traditional))
Added translation using Weblate (Chinese (Traditional))
Added translation using Weblate (Chinese (Traditional))
Translated using Weblate (Arabic)
Currently translated at 100.0% (8 of 8 strings)
Translated using Weblate (Arabic)
Currently translated at 88.4% (23 of 26 strings)
Translated using Weblate (Arabic)
Currently translated at 94.2% (325 of 345 strings)
Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: ButterflyOfFire <ButterflyOfFire@protonmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Kevin Papst <kevin@kevinpapst.de>
Co-authored-by: Kis Momesz <kismomesz@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/kimai/actions/cs/
Translate-URL: https://hosted.weblate.org/projects/kimai/actions/da/
Translate-URL: https://hosted.weblate.org/projects/kimai/actions/de_CH/
Translate-URL: https://hosted.weblate.org/projects/kimai/actions/el/
Translate-URL: https://hosted.weblate.org/projects/kimai/actions/eo/
Translate-URL: https://hosted.weblate.org/projects/kimai/actions/eu/
Translate-URL: https://hosted.weblate.org/projects/kimai/actions/fi/
Translate-URL: https://hosted.weblate.org/projects/kimai/actions/fo/
Translate-URL: https://hosted.weblate.org/projects/kimai/actions/hu/
Translate-URL: https://hosted.weblate.org/projects/kimai/actions/it/
Translate-URL: https://hosted.weblate.org/projects/kimai/actions/nl/
Translate-URL: https://hosted.weblate.org/projects/kimai/actions/pl/
Translate-URL: https://hosted.weblate.org/projects/kimai/actions/pt/
Translate-URL: https://hosted.weblate.org/projects/kimai/actions/ro/
Translate-URL: https://hosted.weblate.org/projects/kimai/actions/sk/
Translate-URL: https://hosted.weblate.org/projects/kimai/actions/sv/
Translate-URL: https://hosted.weblate.org/projects/kimai/actions/tr/
Translate-URL: https://hosted.weblate.org/projects/kimai/messages/ar/
Translate-URL: https://hosted.weblate.org/projects/kimai/messages/cs/
Translate-URL: https://hosted.weblate.org/projects/kimai/messages/da/
Translate-URL: https://hosted.weblate.org/projects/kimai/messages/de_CH/
Translate-URL: https://hosted.weblate.org/projects/kimai/messages/el/
Translate-URL: https://hosted.weblate.org/projects/kimai/messages/en/
Translate-URL: https://hosted.weblate.org/projects/kimai/messages/eo/
Translate-URL: https://hosted.weblate.org/projects/kimai/messages/es/
Translate-URL: https://hosted.weblate.org/projects/kimai/messages/eu/
Translate-URL: https://hosted.weblate.org/projects/kimai/messages/fi/
Translate-URL: https://hosted.weblate.org/projects/kimai/messages/fo/
Translate-URL: https://hosted.weblate.org/projects/kimai/messages/hu/
Translate-URL: https://hosted.weblate.org/projects/kimai/messages/it/
Translate-URL: https://hosted.weblate.org/projects/kimai/messages/ja/
Translate-URL: https://hosted.weblate.org/projects/kimai/messages/nl/
Translate-URL: https://hosted.weblate.org/projects/kimai/messages/pl/
Translate-URL: https://hosted.weblate.org/projects/kimai/messages/pt/
Translate-URL: https://hosted.weblate.org/projects/kimai/messages/ro/
Translate-URL: https://hosted.weblate.org/projects/kimai/messages/ru/
Translate-URL: https://hosted.weblate.org/projects/kimai/messages/sk/
Translate-URL: https://hosted.weblate.org/projects/kimai/messages/sv/
Translate-URL: https://hosted.weblate.org/projects/kimai/messages/tr/
Translate-URL: https://hosted.weblate.org/projects/kimai/messages/uk/
Translate-URL: https://hosted.weblate.org/projects/kimai/messages/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/kimai/teams/ar/
Translate-URL: https://hosted.weblate.org/projects/kimai/validations/ar/
Translation: Kimai - Time tracking/Actions (Dropdowns and Toolbars)
Translation: Kimai - Time tracking/Main application
Translation: Kimai - Time tracking/Teams
Translation: Kimai - Time tracking/Validations
* fix broken files containing keys from messages namespace
* pre-fill missing translations with english
* new command to pre-fill empty translations
* fix locale in filename
* activate locales fa and nb_NO
Co-authored-by: Allan Nordhøy <epost@anotheragency.no>
Co-authored-by: Eric <alchemillatruth@purelymail.com>
Co-authored-by: J. Lavoie <j.lavoie@net-c.ca>
Co-authored-by: Oğuz Ersen <oguzersen@protonmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Wellington Terumi Uemura <wellingtonuemura@gmail.com>
Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Co-authored-by: Kevin Papst <kpapst@gmx.net>
Co-authored-by: J. Lavoie <j.lavoie@net-c.ca>
Co-authored-by: phlostically <phlostically@mailinator.com>
Co-authored-by: Oğuz Ersen <oguzersen@protonmail.com>
Co-authored-by: Bogi Napoleon Wennerstrøm <bogi.wennerstrom@gmail.com>
Co-authored-by: Martin Didriksen <martindidriksen@hotmail.com>
Co-authored-by: Christian Eichert <c@zp1.net>
Co-authored-by: Gontzal Manuel Pujana Onaindia <thadahdenyse@gmail.com>
Co-authored-by: DJScias <djscias@gmail.com>
Co-authored-by: Bruno Oliveira Rosa <brunokauaoliveira@gmail.com>
Co-authored-by: Mohammad Firuzabadi <mohmmad.fi@gmail.com>
Co-authored-by: Kevin Papst <kpapst@gmx.net>