* allow storage of multiple .env without git
* clarify requirements
* fail safe statistic queries
* remove unused translations
* reduce customer statistic calls by 50%
This commit is contained in:
Kevin Papst
2021-07-23 15:15:54 +02:00
committed by GitHub
parent 6558bcae1d
commit f1f60042d8
34 changed files with 36 additions and 313 deletions

2
.gitignore vendored
View File

@@ -1,7 +1,7 @@
# ========== KIMAI ========== # ========== KIMAI ==========
# some hosters require a htaccess to change the PHP version # some hosters require a htaccess to change the PHP version
.htaccess .htaccess
.env-*
.idea/ .idea/
.DS_Store .DS_Store

View File

@@ -13,7 +13,9 @@
<h1 align="center">Kimai - time-tracker</h1> <h1 align="center">Kimai - time-tracker</h1>
Kimai is a free, open source and online time-tracking software designed for small businesses and freelancers. Kimai is a free, open source and online time-tracking software designed for small businesses and freelancers.
It is built with modern technologies such as Symfony, Bootstrap, RESTful API, Doctrine, AdminLTE, Webpack, ES6 etc. It is built with modern technologies such as [Symfony](https://github.com/symfony/symfony), [Bootstrap](https://github.com/twbs/bootstrap),
[RESTful API](https://github.com/FriendsOfSymfony/FOSRestBundle), [Doctrine](https://github.com/doctrine/),
[AdminLTE](https://github.com/kevinpapst/AdminLTEBundle/), [Webpack](https://github.com/webpack/webpack), ES6 and [many](composer.json) [more](package.json).
## Introduction ## Introduction
@@ -25,10 +27,10 @@ It is built with modern technologies such as Symfony, Bootstrap, RESTful API, Do
### Requirements ### Requirements
- PHP 7.2.9 or higher ([PHP 8 support in master](https://github.com/kevinpapst/kimai2/pull/2158)) - PHP 7.3 or higher (PHP 8 supported)
- MariaDB or MySQL - MariaDB or MySQL
- Webserver (nginx, Apache) - A webserver and subdomain
- Some PHP extensions, see [composer.json](composer.json) or [here](https://www.kimai.org/download/) - PHP extensions: `gd`, `intl`, `json`, `mbstring`, `pdo`, `xsl`, `zip`
### About ### About
@@ -37,10 +39,7 @@ with many advanced features, including but not limited to:
JSON API, invoicing, data exports, multi-timer and punch-in punch-out mode, tagging, multi-user and multi-timezones, JSON API, invoicing, data exports, multi-timer and punch-in punch-out mode, tagging, multi-user and multi-timezones,
authentication via SAML/LDAP/Database, customizable role and team permissions, responsive and ready for your mobile device, authentication via SAML/LDAP/Database, customizable role and team permissions, responsive and ready for your mobile device,
user specific rates, advanced search & filtering, money and time budgets, multiple reports, support for plugins and many more. user specific rates, advanced search & filtering, money and time budgets, reporting, support for plugins and many more.
Kimai 2 is based on modern frameworks like [Symfony](https://github.com/symfony/symfony), [Doctrine](https://github.com/doctrine/),
[AdminLTE](https://github.com/kevinpapst/AdminLTEBundle/) and [many](composer.json) [more](package.json).
## Installation ## Installation

View File

@@ -111,9 +111,9 @@ class ProjectStatisticService
$years = []; $years = [];
$qb = $this->timesheetRepository->createQueryBuilder('t'); $qb = $this->timesheetRepository->createQueryBuilder('t');
$qb $qb
->select('SUM(t.duration) as duration') ->select('COALESCE(SUM(t.duration), 0) as duration')
->addSelect('SUM(t.rate) as rate') ->addSelect('COALESCE(SUM(t.rate), 0) as rate')
->addSelect('SUM(t.internalRate) as internalRate') ->addSelect('COALESCE(SUM(t.internalRate), 0) as internalRate')
->addSelect('COUNT(t.id) as count') ->addSelect('COUNT(t.id) as count')
->andWhere('t.project = :project') ->andWhere('t.project = :project')
->setParameter('project', $query->getProject()) ->setParameter('project', $query->getProject())

View File

@@ -22,7 +22,6 @@ use App\Repository\Paginator\LoaderPaginator;
use App\Repository\Paginator\PaginatorInterface; use App\Repository\Paginator\PaginatorInterface;
use App\Repository\Query\CustomerFormTypeQuery; use App\Repository\Query\CustomerFormTypeQuery;
use App\Repository\Query\CustomerQuery; use App\Repository\Query\CustomerQuery;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\EntityRepository; use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\ORMException; use Doctrine\ORM\ORMException;
use Doctrine\ORM\Query; use Doctrine\ORM\Query;
@@ -81,48 +80,44 @@ class CustomerRepository extends EntityRepository
public function getCustomerStatistics(Customer $customer): CustomerStatistic public function getCustomerStatistics(Customer $customer): CustomerStatistic
{ {
$stats = new CustomerStatistic();
$qb = $this->getEntityManager()->createQueryBuilder(); $qb = $this->getEntityManager()->createQueryBuilder();
$qb $qb
->from(Timesheet::class, 't') ->from(Timesheet::class, 't')
->join(Project::class, 'p', Query\Expr\Join::WITH, 't.project = p.id') ->join(Project::class, 'p', Query\Expr\Join::WITH, 't.project = p.id')
->addSelect('COUNT(t.id) as amount') ->addSelect('COUNT(t.id) as amount')
->addSelect('t.billable as billable')
->addSelect('COALESCE(SUM(t.duration), 0) as duration') ->addSelect('COALESCE(SUM(t.duration), 0) as duration')
->addSelect('COALESCE(SUM(t.rate), 0) as rate') ->addSelect('COALESCE(SUM(t.rate), 0) as rate')
->addSelect('COALESCE(SUM(t.internalRate), 0) as internal_rate') ->addSelect('COALESCE(SUM(t.internalRate), 0) as internal_rate')
->andWhere('p.customer = :customer') ->andWhere('p.customer = :customer')
->setParameter('customer', $customer) ->setParameter('customer', $customer)
->groupBy('billable')
; ;
$timesheetResult = $qb->getQuery()->getOneOrNullResult(); $timesheetResult = $qb->getQuery()->getResult();
$stats = new CustomerStatistic();
if (null !== $timesheetResult) { if (null !== $timesheetResult) {
$stats->setRecordAmount($timesheetResult['amount']); $amount = 0;
$stats->setRecordDuration($timesheetResult['duration']); $duration = 0;
$stats->setRecordRate($timesheetResult['rate']); $rate = 0.00;
$stats->setRecordInternalRate($timesheetResult['internal_rate']); $rateInternal = 0.00;
foreach ($timesheetResult as $resultRow) {
$amount += $resultRow['amount'];
$duration += $resultRow['duration'];
$rate += $resultRow['rate'];
$rateInternal += $resultRow['internal_rate'];
if ($resultRow['billable']) {
$stats->setDurationBillable($resultRow['duration']);
$stats->setRateBillable($resultRow['rate']);
$stats->setRecordAmountBillable($resultRow['amount']);
} }
}
$qb = $this->getEntityManager()->createQueryBuilder(); $stats->setRecordAmount($amount);
$qb $stats->setRecordDuration($duration);
->from(Timesheet::class, 't') $stats->setRecordRate($rate);
->join(Project::class, 'p', Query\Expr\Join::WITH, 't.project = p.id') $stats->setRecordInternalRate($rateInternal);
->addSelect('COUNT(t.id) as amount')
->addSelect('COALESCE(SUM(t.duration), 0) as duration')
->addSelect('COALESCE(SUM(t.rate), 0) as rate')
->andWhere('p.customer = :customer')
->andWhere('t.billable = :billable')
->setParameter('customer', $customer)
->setParameter('billable', true, Types::BOOLEAN)
;
$timesheetResult = $qb->getQuery()->getOneOrNullResult();
if (null !== $timesheetResult) {
$stats->setDurationBillable($timesheetResult['duration']);
$stats->setRateBillable($timesheetResult['rate']);
$stats->setRecordAmountBillable($timesheetResult['amount']);
} }
$qb = $this->getEntityManager()->createQueryBuilder(); $qb = $this->getEntityManager()->createQueryBuilder();

View File

@@ -2,8 +2,7 @@
{% import "macros/widgets.html.twig" as widgets %} {% import "macros/widgets.html.twig" as widgets %}
{% import "macros/datatables.html.twig" as tables %} {% import "macros/datatables.html.twig" as tables %}
{% block page_title %}{{ 'plugins.title'|trans({}, 'plugins') }}{% endblock %} {% block page_title %}{{ 'menu.plugin'|trans }}{% endblock %}
{% block page_subtitle %}{{ 'plugins.subtitle'|trans({}, 'plugins') }}{% endblock %}
{% block page_actions %} {% block page_actions %}
{% set event = actions(app.user, 'plugins', 'index') %} {% set event = actions(app.user, 'plugins', 'index') %}
{{ widgets.page_actions(event.actions) }} {{ widgets.page_actions(event.actions) }}

View File

@@ -6,10 +6,6 @@
<source>about.title</source> <source>about.title</source>
<target>O Kimai</target> <target>O Kimai</target>
</trans-unit> </trans-unit>
<trans-unit id="about.subtitle">
<source>about.subtitle</source>
<target>Systémové informace</target>
</trans-unit>
<trans-unit id="support"> <trans-unit id="support">
<source>support</source> <source>support</source>
<target>Podpora</target> <target>Podpora</target>

View File

@@ -332,10 +332,6 @@
<source>timesheet.title</source> <source>timesheet.title</source>
<target>Moje časy</target> <target>Moje časy</target>
</trans-unit> </trans-unit>
<trans-unit id="timesheet.subtitle">
<source>timesheet.subtitle</source>
<target>Upravit moje časové záznami</target>
</trans-unit>
<trans-unit id="timesheet.edit"> <trans-unit id="timesheet.edit">
<source>timesheet.edit</source> <source>timesheet.edit</source>
<target>Upravit záznam</target> <target>Upravit záznam</target>
@@ -375,10 +371,6 @@
<source>profile.title</source> <source>profile.title</source>
<target>Profil uživatele</target> <target>Profil uživatele</target>
</trans-unit> </trans-unit>
<trans-unit id="profile.subtitle">
<source>profile.subtitle</source>
<target>Upravit mé nastavení</target>
</trans-unit>
<trans-unit id="profile.about_me"> <trans-unit id="profile.about_me">
<source>profile.about_me</source> <source>profile.about_me</source>
<target>O mně</target> <target>O mně</target>
@@ -447,10 +439,6 @@
<source>calendar.title</source> <source>calendar.title</source>
<target>Kalendář</target> <target>Kalendář</target>
</trans-unit> </trans-unit>
<trans-unit id="calendar.subtitle">
<source>calendar.subtitle</source>
<target>Zobrazení a správa pracovního výkazu v kalendáři</target>
</trans-unit>
<!-- <!--
Admin: Timesheet Admin: Timesheet
--> -->
@@ -458,10 +446,6 @@
<source>admin_timesheet.title</source> <source>admin_timesheet.title</source>
<target>Pracovní výkaz</target> <target>Pracovní výkaz</target>
</trans-unit> </trans-unit>
<trans-unit id="admin_timesheet.subtitle">
<source>admin_timesheet.subtitle</source>
<target>Záznamy všech uživatelů</target>
</trans-unit>
<!-- <!--
Admin: Projects Admin: Projects
--> -->
@@ -469,10 +453,6 @@
<source>admin_project.title</source> <source>admin_project.title</source>
<target>Projekt</target> <target>Projekt</target>
</trans-unit> </trans-unit>
<trans-unit id="admin_project.subtitle">
<source>admin_project.subtitle</source>
<target>Projekt kombinuje aktivity pro zákazníka do skupiny</target>
</trans-unit>
<trans-unit id="admin_project.short_stats"> <trans-unit id="admin_project.short_stats">
<source>admin_project.short_stats</source> <source>admin_project.short_stats</source>
<target> <target>
@@ -487,10 +467,6 @@
<source>admin_activity.title</source> <source>admin_activity.title</source>
<target>Aktivity</target> <target>Aktivity</target>
</trans-unit> </trans-unit>
<trans-unit id="admin_activity.subtitle">
<source>admin_activity.subtitle</source>
<target>Úlohy, které lze vybrat pro časové záznamy</target>
</trans-unit>
<trans-unit id="admin_activity.short_stats"> <trans-unit id="admin_activity.short_stats">
<source>admin_activity.short_stats</source> <source>admin_activity.short_stats</source>
<target> <target>
@@ -505,10 +481,6 @@
<source>admin_customer.title</source> <source>admin_customer.title</source>
<target>Zákazník</target> <target>Zákazník</target>
</trans-unit> </trans-unit>
<trans-unit id="admin_customer.subtitle">
<source>admin_customer.subtitle</source>
<target>Vaši zákazníci jsou základem pro vytváření projektů a aktivit</target>
</trans-unit>
<trans-unit id="label.number"> <trans-unit id="label.number">
<source>label.number</source> <source>label.number</source>
<target>Účet</target> <target>Účet</target>
@@ -571,10 +543,6 @@
<source>admin_user.title</source> <source>admin_user.title</source>
<target>Uživatel</target> <target>Uživatel</target>
</trans-unit> </trans-unit>
<trans-unit id="admin_user.subtitle">
<source>admin_user.subtitle</source>
<target>Všichni registrovaní uživatelé vaší instalace Kimai</target>
</trans-unit>
<trans-unit id="label.alias"> <trans-unit id="label.alias">
<source>label.alias</source> <source>label.alias</source>
<target>Jméno</target> <target>Jméno</target>
@@ -725,10 +693,6 @@
<source>admin_invoice_template.title</source> <source>admin_invoice_template.title</source>
<target>Šablona faktury</target> <target>Šablona faktury</target>
</trans-unit> </trans-unit>
<trans-unit id="admin_invoice_template.subtitle">
<source>admin_invoice_template.subtitle</source>
<target>Spravujte své šablony faktur, které lze použít k exportu dat.</target>
</trans-unit>
<trans-unit id="invoice.title"> <trans-unit id="invoice.title">
<source>invoice.title</source> <source>invoice.title</source>
<target>Faktura</target> <target>Faktura</target>

View File

@@ -2,14 +2,6 @@
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2"> <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file source-language="en" target-language="ar" datatype="plaintext" original="plugins.en.xlf"> <file source-language="en" target-language="ar" datatype="plaintext" original="plugins.en.xlf">
<body> <body>
<trans-unit id="plugins.title">
<source>plugins.title</source>
<target>الإضافات</target>
</trans-unit>
<trans-unit id="plugins.subtitle">
<source>plugins.subtitle</source>
<target>يمكنك تحسين وظائف Kimai باستخدام المكونات الإضافية</target>
</trans-unit>
<trans-unit id="plugin.none_installed"> <trans-unit id="plugin.none_installed">
<source>plugin.none_installed</source> <source>plugin.none_installed</source>
<target>ليس لديك أي إضافات مثبتة حتى الآن.</target> <target>ليس لديك أي إضافات مثبتة حتى الآن.</target>

View File

@@ -2,14 +2,6 @@
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="cs" datatype="plaintext" original="plugins.en.xlf"> <file source-language="en" target-language="cs" datatype="plaintext" original="plugins.en.xlf">
<body> <body>
<trans-unit id="plugins.title">
<source>plugins.title</source>
<target>Doplňky</target>
</trans-unit>
<trans-unit id="plugins.subtitle">
<source>plugins.subtitle</source>
<target>Funkce Kimai můžete vylepšit pomoci doplňků</target>
</trans-unit>
<trans-unit id="plugin.none_installed"> <trans-unit id="plugin.none_installed">
<source>plugin.none_installed</source> <source>plugin.none_installed</source>
<target>Zatím nemáte nainstalované žádné doplňky.</target> <target>Zatím nemáte nainstalované žádné doplňky.</target>

View File

@@ -2,14 +2,6 @@
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="da" datatype="plaintext" original="plugins.en.xlf"> <file source-language="en" target-language="da" datatype="plaintext" original="plugins.en.xlf">
<body> <body>
<trans-unit id="plugins.title">
<source>plugins.title</source>
<target>Plugins</target>
</trans-unit>
<trans-unit id="plugins.subtitle">
<source>plugins.subtitle</source>
<target>Du kan forbedre Kimai's funktionalitet med plugins</target>
</trans-unit>
<trans-unit id="plugin.none_installed"> <trans-unit id="plugin.none_installed">
<source>plugin.none_installed</source> <source>plugin.none_installed</source>
<target>Du har ikke installeret nogen plugins endnu.</target> <target>Du har ikke installeret nogen plugins endnu.</target>

View File

@@ -2,14 +2,6 @@
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="de" datatype="plaintext" original="plugins.en.xlf"> <file source-language="en" target-language="de" datatype="plaintext" original="plugins.en.xlf">
<body> <body>
<trans-unit id="plugins.title">
<source>plugins.title</source>
<target>Plugins</target>
</trans-unit>
<trans-unit id="plugins.subtitle">
<source>plugins.subtitle</source>
<target>Mit Plugins können Sie den Funktionsumfang von Kimai erweitern</target>
</trans-unit>
<trans-unit id="plugin.none_installed"> <trans-unit id="plugin.none_installed">
<source>plugin.none_installed</source> <source>plugin.none_installed</source>
<target>Sie haben noch kein Plugin installiert.</target> <target>Sie haben noch kein Plugin installiert.</target>

View File

@@ -2,14 +2,6 @@
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2"> <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file source-language="en" target-language="el" datatype="plaintext" original="plugins.en.xlf"> <file source-language="en" target-language="el" datatype="plaintext" original="plugins.en.xlf">
<body> <body>
<trans-unit id="plugins.title">
<source>plugins.title</source>
<target>Πρόσθετα</target>
</trans-unit>
<trans-unit id="plugins.subtitle">
<source>plugins.subtitle</source>
<target>Μπορείτε να ενισχύσετε τη λειτουργικότητα του Kimai με πρόσθετα</target>
</trans-unit>
<trans-unit id="plugin.none_installed"> <trans-unit id="plugin.none_installed">
<source>plugin.none_installed</source> <source>plugin.none_installed</source>
<target>Δεν έχετε εγκαταστήσει πρόσθετα, ακόμη.</target> <target>Δεν έχετε εγκαταστήσει πρόσθετα, ακόμη.</target>

View File

@@ -2,14 +2,6 @@
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="en" datatype="plaintext" original="plugins.en.xlf"> <file source-language="en" target-language="en" datatype="plaintext" original="plugins.en.xlf">
<body> <body>
<trans-unit id="plugins.title">
<source>plugins.title</source>
<target>Plugins</target>
</trans-unit>
<trans-unit id="plugins.subtitle">
<source>plugins.subtitle</source>
<target>You can enhance the functionality of Kimai with plugins</target>
</trans-unit>
<trans-unit id="plugin.none_installed"> <trans-unit id="plugin.none_installed">
<source>plugin.none_installed</source> <source>plugin.none_installed</source>
<target>You have no plugins installed yet.</target> <target>You have no plugins installed yet.</target>

View File

@@ -2,14 +2,6 @@
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2"> <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file source-language="en" target-language="eo" datatype="plaintext" original="plugins.en.xlf"> <file source-language="en" target-language="eo" datatype="plaintext" original="plugins.en.xlf">
<body> <body>
<trans-unit id="plugins.title">
<source>plugins.title</source>
<target>Kromprogramoj</target>
</trans-unit>
<trans-unit id="plugins.subtitle">
<source>plugins.subtitle</source>
<target>Vi povas plibonigi la funkciadon de Kimai per kromprogramoj</target>
</trans-unit>
<trans-unit id="plugin.none_installed"> <trans-unit id="plugin.none_installed">
<source>plugin.none_installed</source> <source>plugin.none_installed</source>
<target>Vi ankoraŭ ne havas instalitajn kromprogramojn.</target> <target>Vi ankoraŭ ne havas instalitajn kromprogramojn.</target>

View File

@@ -2,14 +2,6 @@
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2"> <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file source-language="en" target-language="es" datatype="plaintext" original="plugins.en.xlf"> <file source-language="en" target-language="es" datatype="plaintext" original="plugins.en.xlf">
<body> <body>
<trans-unit id="plugins.title">
<source>plugins.title</source>
<target>Complementos</target>
</trans-unit>
<trans-unit id="plugins.subtitle">
<source>plugins.subtitle</source>
<target>Puede mejorar la funcionalidad de Kimai con complementos</target>
</trans-unit>
<trans-unit id="plugin.none_installed"> <trans-unit id="plugin.none_installed">
<source>plugin.none_installed</source> <source>plugin.none_installed</source>
<target>Aún no tiene ningún complemento instalado.</target> <target>Aún no tiene ningún complemento instalado.</target>

View File

@@ -2,14 +2,6 @@
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2"> <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file source-language="en" target-language="eu" datatype="plaintext" original="plugins.en.xlf"> <file source-language="en" target-language="eu" datatype="plaintext" original="plugins.en.xlf">
<body> <body>
<trans-unit id="plugins.title">
<source>plugins.title</source>
<target>Pluginak</target>
</trans-unit>
<trans-unit id="plugins.subtitle">
<source>plugins.subtitle</source>
<target>Pluginen bitartez Kimai hobe dezakezu</target>
</trans-unit>
<trans-unit id="plugin.none_installed"> <trans-unit id="plugin.none_installed">
<source>plugin.none_installed</source> <source>plugin.none_installed</source>
<target>Oraindik ez daukazu pluginik instalatuta.</target> <target>Oraindik ez daukazu pluginik instalatuta.</target>

View File

@@ -2,14 +2,6 @@
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="fi" datatype="plaintext" original="plugins.en.xlf"> <file source-language="en" target-language="fi" datatype="plaintext" original="plugins.en.xlf">
<body> <body>
<trans-unit id="plugins.title">
<source>plugins.title</source>
<target state="translated">Liitännäiset</target>
</trans-unit>
<trans-unit id="plugins.subtitle">
<source>plugins.subtitle</source>
<target state="translated">Voit parantaa Kimain toimintoja liitännäisillä</target>
</trans-unit>
<trans-unit id="plugin.none_installed"> <trans-unit id="plugin.none_installed">
<source>plugin.none_installed</source> <source>plugin.none_installed</source>
<target state="translated">Sinulla ei ole asennettuja liitännäisiä.</target> <target state="translated">Sinulla ei ole asennettuja liitännäisiä.</target>

View File

@@ -2,14 +2,6 @@
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2"> <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file source-language="en" target-language="fr" datatype="plaintext" original="plugins.en.xlf"> <file source-language="en" target-language="fr" datatype="plaintext" original="plugins.en.xlf">
<body> <body>
<trans-unit id="plugins.title">
<source>plugins.title</source>
<target>Extensions</target>
</trans-unit>
<trans-unit id="plugins.subtitle">
<source>plugins.subtitle</source>
<target>Les extensions permettent d'étendre les fonctionnalités de Kimai</target>
</trans-unit>
<trans-unit id="plugin.none_installed"> <trans-unit id="plugin.none_installed">
<source>plugin.none_installed</source> <source>plugin.none_installed</source>
<target>Aucune extension d'installée pour le moment.</target> <target>Aucune extension d'installée pour le moment.</target>

View File

@@ -1,18 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2"> <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file source-language="en" target-language="he" datatype="plaintext" original="plugins.en.xlf"> <file source-language="en" target-language="he" datatype="plaintext" original="plugins.en.xlf">
<header>
<tool tool-id="symfony" tool-name="Symfony"/>
</header>
<body> <body>
<trans-unit id="plugins.title">
<source>plugins.title</source>
<target>תוספים</target>
</trans-unit>
<trans-unit id="plugins.subtitle">
<source>plugins.subtitle</source>
<target>ניתן להרחיב את יכולות קימאי באמצעות תוספים</target>
</trans-unit>
<trans-unit id="plugin.none_installed"> <trans-unit id="plugin.none_installed">
<source>plugin.none_installed</source> <source>plugin.none_installed</source>
<target>לא הותקנו תוספים עדין.</target> <target>לא הותקנו תוספים עדין.</target>

View File

@@ -2,14 +2,6 @@
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="hu" datatype="plaintext" original="plugins.en.xlf"> <file source-language="en" target-language="hu" datatype="plaintext" original="plugins.en.xlf">
<body> <body>
<trans-unit id="plugins.title">
<source>plugins.title</source>
<target>Bővítmények</target>
</trans-unit>
<trans-unit id="plugins.subtitle">
<source>plugins.subtitle</source>
<target>Bővítményekkel új funkciókat adhatsz Kimaihoz</target>
</trans-unit>
<trans-unit id="plugin.none_installed"> <trans-unit id="plugin.none_installed">
<source>plugin.none_installed</source> <source>plugin.none_installed</source>
<target>Egy bővítmény sincs telepítve még.</target> <target>Egy bővítmény sincs telepítve még.</target>

View File

@@ -2,14 +2,6 @@
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="it" datatype="plaintext" original="plugins.en.xlf"> <file source-language="en" target-language="it" datatype="plaintext" original="plugins.en.xlf">
<body> <body>
<trans-unit id="plugins.title">
<source>plugins.title</source>
<target>Plugins</target>
</trans-unit>
<trans-unit id="plugins.subtitle">
<source>plugins.subtitle</source>
<target>Puoi estendere le funzionalità di Kimai con i plugins</target>
</trans-unit>
<trans-unit id="plugin.none_installed"> <trans-unit id="plugin.none_installed">
<source>plugin.none_installed</source> <source>plugin.none_installed</source>
<target>Non hai plugin installati per ora.</target> <target>Non hai plugin installati per ora.</target>

View File

@@ -2,14 +2,6 @@
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="ja" datatype="plaintext" original="plugins.en.xlf"> <file source-language="en" target-language="ja" datatype="plaintext" original="plugins.en.xlf">
<body> <body>
<trans-unit id="plugins.title">
<source>plugins.title</source>
<target>プラグイン</target>
</trans-unit>
<trans-unit id="plugins.subtitle">
<source>plugins.subtitle</source>
<target>プラグインによって Kimai の機能性を高めることができます。</target>
</trans-unit>
<trans-unit id="plugin.none_installed"> <trans-unit id="plugin.none_installed">
<source>plugin.none_installed</source> <source>plugin.none_installed</source>
<target>インストールされたプラグインは存在しません。</target> <target>インストールされたプラグインは存在しません。</target>

View File

@@ -2,14 +2,6 @@
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="ko" datatype="plaintext" original="plugins.en.xlf"> <file source-language="en" target-language="ko" datatype="plaintext" original="plugins.en.xlf">
<body> <body>
<trans-unit id="plugins.title">
<source>plugins.title</source>
<target state="translated">플러그인 </target>
</trans-unit>
<trans-unit id="plugins.subtitle">
<source>plugins.subtitle</source>
<target state="translated">플러그인으로 키마이의 기능을 향상시킬 수 있습니다</target>
</trans-unit>
<trans-unit id="plugin.none_installed"> <trans-unit id="plugin.none_installed">
<source>plugin.none_installed</source> <source>plugin.none_installed</source>
<target state="translated">아직 플러그인을 설치하지 않았습니다. </target> <target state="translated">아직 플러그인을 설치하지 않았습니다. </target>

View File

@@ -2,14 +2,6 @@
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2"> <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file source-language="en" target-language="nl" datatype="plaintext" original="plugins.en.xlf"> <file source-language="en" target-language="nl" datatype="plaintext" original="plugins.en.xlf">
<body> <body>
<trans-unit id="plugins.title">
<source>plugins.title</source>
<target>Plug-ins</target>
</trans-unit>
<trans-unit id="plugins.subtitle">
<source>plugins.subtitle</source>
<target>Met plug-ins kunt u de functionaliteit van Kimai uitbreiden</target>
</trans-unit>
<trans-unit id="plugin.none_installed"> <trans-unit id="plugin.none_installed">
<source>plugin.none_installed</source> <source>plugin.none_installed</source>
<target>U heeft nog geen plug-ins geïnstalleerd.</target> <target>U heeft nog geen plug-ins geïnstalleerd.</target>

View File

@@ -2,14 +2,6 @@
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2"> <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file source-language="en" target-language="pl" datatype="plaintext" original="plugins.en.xlf"> <file source-language="en" target-language="pl" datatype="plaintext" original="plugins.en.xlf">
<body> <body>
<trans-unit id="plugins.title">
<source>plugins.title</source>
<target>Wtyczki</target>
</trans-unit>
<trans-unit id="plugins.subtitle">
<source>plugins.subtitle</source>
<target>Możesz rozszerzyć funkcjonalność Kimai przy pomocy wtyczek</target>
</trans-unit>
<trans-unit id="plugin.none_installed"> <trans-unit id="plugin.none_installed">
<source>plugin.none_installed</source> <source>plugin.none_installed</source>
<target>Nie masz jeszcze żadnych zainstalowanych wtyczek.</target> <target>Nie masz jeszcze żadnych zainstalowanych wtyczek.</target>

View File

@@ -2,14 +2,6 @@
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2"> <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file source-language="en" target-language="pt" datatype="plaintext" original="plugins.en.xlf"> <file source-language="en" target-language="pt" datatype="plaintext" original="plugins.en.xlf">
<body> <body>
<trans-unit id="plugins.title">
<source>plugins.title</source>
<target>Plugins</target>
</trans-unit>
<trans-unit id="plugins.subtitle">
<source>plugins.subtitle</source>
<target>Pode melhorar a funcionalidade do Kimai com plugins</target>
</trans-unit>
<trans-unit id="plugin.none_installed"> <trans-unit id="plugin.none_installed">
<source>plugin.none_installed</source> <source>plugin.none_installed</source>
<target>Não tem plugins instalados ainda.</target> <target>Não tem plugins instalados ainda.</target>

View File

@@ -2,14 +2,6 @@
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="pt-BR" datatype="plaintext" original="plugins.en.xlf"> <file source-language="en" target-language="pt-BR" datatype="plaintext" original="plugins.en.xlf">
<body> <body>
<trans-unit id="plugins.title">
<source>plugins.title</source>
<target>Plugins</target>
</trans-unit>
<trans-unit id="plugins.subtitle">
<source>plugins.subtitle</source>
<target>Você pode melhorar a funcionalidade do Kimai com plugins</target>
</trans-unit>
<trans-unit id="plugin.none_installed"> <trans-unit id="plugin.none_installed">
<source>plugin.none_installed</source> <source>plugin.none_installed</source>
<target>Você não tem plugins instalados ainda.</target> <target>Você não tem plugins instalados ainda.</target>

View File

@@ -1,18 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2"> <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file source-language="en" target-language="ro" datatype="plaintext" original="plugins.en.xlf"> <file source-language="en" target-language="ro" datatype="plaintext" original="plugins.en.xlf">
<header>
<tool tool-id="symfony" tool-name="Symfony"/>
</header>
<body> <body>
<trans-unit id="plugins.title">
<source>plugins.title</source>
<target>Plugin-uri</target>
</trans-unit>
<trans-unit id="plugins.subtitle">
<source>plugins.subtitle</source>
<target>Poți îmbunătăți funcționalitatea Kimai folosind plugin-uri</target>
</trans-unit>
<trans-unit id="plugin.none_installed"> <trans-unit id="plugin.none_installed">
<source>plugin.none_installed</source> <source>plugin.none_installed</source>
<target>Nu există nici un plugin instalat.</target> <target>Nu există nici un plugin instalat.</target>

View File

@@ -2,14 +2,6 @@
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2"> <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file source-language="en" target-language="ru" datatype="plaintext" original="plugins.en.xlf"> <file source-language="en" target-language="ru" datatype="plaintext" original="plugins.en.xlf">
<body> <body>
<trans-unit id="plugins.title">
<source>plugins.title</source>
<target>Дополнения</target>
</trans-unit>
<trans-unit id="plugins.subtitle">
<source>plugins.subtitle</source>
<target>Вы можете увеличить функциональность Kimai с помощью дополнений</target>
</trans-unit>
<trans-unit id="plugin.none_installed"> <trans-unit id="plugin.none_installed">
<source>plugin.none_installed</source> <source>plugin.none_installed</source>
<target>Нет установленных дополнений.</target> <target>Нет установленных дополнений.</target>

View File

@@ -2,22 +2,6 @@
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="sk" datatype="plaintext" original="plugins.en.xlf"> <file source-language="en" target-language="sk" datatype="plaintext" original="plugins.en.xlf">
<body> <body>
<trans-unit id="plugins.title">
<source>plugins.title</source>
<target>Rozšírenia</target>
</trans-unit>
<trans-unit id="plugins.subtitle">
<source>plugins.subtitle</source>
<target>Funkciu Kimai môžete vylepšiť pomocou zásuvných modulov</target>
</trans-unit>
<trans-unit id="label.version">
<source>label.version</source>
<target>Verzia</target>
</trans-unit>
<trans-unit id="label.required_version">
<source>label.required_version</source>
<target>Kompatibilné s</target>
</trans-unit>
<trans-unit id="plugin.none_installed"> <trans-unit id="plugin.none_installed">
<source>plugin.none_installed</source> <source>plugin.none_installed</source>
<target>Ešte nemáte nainštalovaný plugin.</target> <target>Ešte nemáte nainštalovaný plugin.</target>

View File

@@ -2,14 +2,6 @@
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="sv" datatype="plaintext" original="plugins.en.xlf"> <file source-language="en" target-language="sv" datatype="plaintext" original="plugins.en.xlf">
<body> <body>
<trans-unit id="plugins.title">
<source>plugins.title</source>
<target state="translated">Plugins</target>
</trans-unit>
<trans-unit id="plugins.subtitle">
<source>plugins.subtitle</source>
<target state="translated">Du kan förbättra funktionaliteten hos Kimai med plugins</target>
</trans-unit>
<trans-unit id="plugin.none_installed"> <trans-unit id="plugin.none_installed">
<source>plugin.none_installed</source> <source>plugin.none_installed</source>
<target state="translated">Du har inga plugin installerade än.</target> <target state="translated">Du har inga plugin installerade än.</target>

View File

@@ -2,14 +2,6 @@
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="tr" datatype="plaintext" original="plugins.en.xlf"> <file source-language="en" target-language="tr" datatype="plaintext" original="plugins.en.xlf">
<body> <body>
<trans-unit id="plugins.title">
<source>plugins.title</source>
<target state="translated">Eklentiler</target>
</trans-unit>
<trans-unit id="plugins.subtitle">
<source>plugins.subtitle</source>
<target state="translated">Kimai'ye eklentilerle yeni özellikler ekleyebilirsiniz</target>
</trans-unit>
<trans-unit id="plugin.none_installed"> <trans-unit id="plugin.none_installed">
<source>plugin.none_installed</source> <source>plugin.none_installed</source>
<target state="translated">Henüz kurulu eklentiniz bulunmamaktadır.</target> <target state="translated">Henüz kurulu eklentiniz bulunmamaktadır.</target>

View File

@@ -2,14 +2,6 @@
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="vi" datatype="plaintext" original="plugins.en.xlf"> <file source-language="en" target-language="vi" datatype="plaintext" original="plugins.en.xlf">
<body> <body>
<trans-unit id="plugins.title">
<source>plugins.title</source>
<target>Tiện ích mở rộng</target>
</trans-unit>
<trans-unit id="plugins.subtitle">
<source>plugins.subtitle</source>
<target>Bạn có thể tăng cường chức năng của Kimai bằng các tiện ích mở rộng</target>
</trans-unit>
<trans-unit id="plugin.none_installed"> <trans-unit id="plugin.none_installed">
<source>plugin.none_installed</source> <source>plugin.none_installed</source>
<target>Bạn chưa cài đặt phần mở rộng nào.</target> <target>Bạn chưa cài đặt phần mở rộng nào.</target>

View File

@@ -2,14 +2,6 @@
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="zh-CN" datatype="plaintext" original="plugins.en.xlf"> <file source-language="en" target-language="zh-CN" datatype="plaintext" original="plugins.en.xlf">
<body> <body>
<trans-unit id="plugins.title">
<source>plugins.title</source>
<target>插件</target>
</trans-unit>
<trans-unit id="plugins.subtitle">
<source>plugins.subtitle</source>
<target>您可以通过安装插件以提升Kimai的性能。</target>
</trans-unit>
<trans-unit id="plugin.none_installed"> <trans-unit id="plugin.none_installed">
<source>plugin.none_installed</source> <source>plugin.none_installed</source>
<target>您尚未安装插件。</target> <target>您尚未安装插件。</target>