* 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 ==========
# some hosters require a htaccess to change the PHP version
.htaccess
.env-*
.idea/
.DS_Store

View File

@@ -13,7 +13,9 @@
<h1 align="center">Kimai - time-tracker</h1>
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
@@ -25,10 +27,10 @@ It is built with modern technologies such as Symfony, Bootstrap, RESTful API, Do
### 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
- Webserver (nginx, Apache)
- Some PHP extensions, see [composer.json](composer.json) or [here](https://www.kimai.org/download/)
- A webserver and subdomain
- PHP extensions: `gd`, `intl`, `json`, `mbstring`, `pdo`, `xsl`, `zip`
### 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,
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.
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).
user specific rates, advanced search & filtering, money and time budgets, reporting, support for plugins and many more.
## Installation

View File

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

View File

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

View File

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

View File

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

View File

@@ -332,10 +332,6 @@
<source>timesheet.title</source>
<target>Moje časy</target>
</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">
<source>timesheet.edit</source>
<target>Upravit záznam</target>
@@ -375,10 +371,6 @@
<source>profile.title</source>
<target>Profil uživatele</target>
</trans-unit>
<trans-unit id="profile.subtitle">
<source>profile.subtitle</source>
<target>Upravit mé nastavení</target>
</trans-unit>
<trans-unit id="profile.about_me">
<source>profile.about_me</source>
<target>O mně</target>
@@ -447,10 +439,6 @@
<source>calendar.title</source>
<target>Kalendář</target>
</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
-->
@@ -458,10 +446,6 @@
<source>admin_timesheet.title</source>
<target>Pracovní výkaz</target>
</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
-->
@@ -469,10 +453,6 @@
<source>admin_project.title</source>
<target>Projekt</target>
</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">
<source>admin_project.short_stats</source>
<target>
@@ -487,10 +467,6 @@
<source>admin_activity.title</source>
<target>Aktivity</target>
</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">
<source>admin_activity.short_stats</source>
<target>
@@ -505,10 +481,6 @@
<source>admin_customer.title</source>
<target>Zákazník</target>
</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">
<source>label.number</source>
<target>Účet</target>
@@ -571,10 +543,6 @@
<source>admin_user.title</source>
<target>Uživatel</target>
</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">
<source>label.alias</source>
<target>Jméno</target>
@@ -725,10 +693,6 @@
<source>admin_invoice_template.title</source>
<target>Šablona faktury</target>
</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">
<source>invoice.title</source>
<target>Faktura</target>

View File

@@ -2,14 +2,6 @@
<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">
<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">
<source>plugin.none_installed</source>
<target>ليس لديك أي إضافات مثبتة حتى الآن.</target>

View File

@@ -2,14 +2,6 @@
<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">
<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">
<source>plugin.none_installed</source>
<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">
<file source-language="en" target-language="da" datatype="plaintext" original="plugins.en.xlf">
<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">
<source>plugin.none_installed</source>
<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">
<file source-language="en" target-language="de" datatype="plaintext" original="plugins.en.xlf">
<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">
<source>plugin.none_installed</source>
<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">
<file source-language="en" target-language="el" datatype="plaintext" original="plugins.en.xlf">
<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">
<source>plugin.none_installed</source>
<target>Δεν έχετε εγκαταστήσει πρόσθετα, ακόμη.</target>

View File

@@ -2,14 +2,6 @@
<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">
<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">
<source>plugin.none_installed</source>
<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">
<file source-language="en" target-language="eo" datatype="plaintext" original="plugins.en.xlf">
<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">
<source>plugin.none_installed</source>
<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">
<file source-language="en" target-language="es" datatype="plaintext" original="plugins.en.xlf">
<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">
<source>plugin.none_installed</source>
<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">
<file source-language="en" target-language="eu" datatype="plaintext" original="plugins.en.xlf">
<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">
<source>plugin.none_installed</source>
<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">
<file source-language="en" target-language="fi" datatype="plaintext" original="plugins.en.xlf">
<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">
<source>plugin.none_installed</source>
<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">
<file source-language="en" target-language="fr" datatype="plaintext" original="plugins.en.xlf">
<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">
<source>plugin.none_installed</source>
<target>Aucune extension d'installée pour le moment.</target>

View File

@@ -1,18 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?>
<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">
<header>
<tool tool-id="symfony" tool-name="Symfony"/>
</header>
<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">
<source>plugin.none_installed</source>
<target>לא הותקנו תוספים עדין.</target>

View File

@@ -2,14 +2,6 @@
<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">
<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">
<source>plugin.none_installed</source>
<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">
<file source-language="en" target-language="it" datatype="plaintext" original="plugins.en.xlf">
<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">
<source>plugin.none_installed</source>
<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">
<file source-language="en" target-language="ja" datatype="plaintext" original="plugins.en.xlf">
<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">
<source>plugin.none_installed</source>
<target>インストールされたプラグインは存在しません。</target>

View File

@@ -2,14 +2,6 @@
<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">
<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">
<source>plugin.none_installed</source>
<target state="translated">아직 플러그인을 설치하지 않았습니다. </target>

View File

@@ -2,14 +2,6 @@
<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">
<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">
<source>plugin.none_installed</source>
<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">
<file source-language="en" target-language="pl" datatype="plaintext" original="plugins.en.xlf">
<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">
<source>plugin.none_installed</source>
<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">
<file source-language="en" target-language="pt" datatype="plaintext" original="plugins.en.xlf">
<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">
<source>plugin.none_installed</source>
<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">
<file source-language="en" target-language="pt-BR" datatype="plaintext" original="plugins.en.xlf">
<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">
<source>plugin.none_installed</source>
<target>Você não tem plugins instalados ainda.</target>

View File

@@ -1,18 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<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">
<header>
<tool tool-id="symfony" tool-name="Symfony"/>
</header>
<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">
<source>plugin.none_installed</source>
<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">
<file source-language="en" target-language="ru" datatype="plaintext" original="plugins.en.xlf">
<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">
<source>plugin.none_installed</source>
<target>Нет установленных дополнений.</target>

View File

@@ -2,22 +2,6 @@
<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">
<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">
<source>plugin.none_installed</source>
<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">
<file source-language="en" target-language="sv" datatype="plaintext" original="plugins.en.xlf">
<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">
<source>plugin.none_installed</source>
<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">
<file source-language="en" target-language="tr" datatype="plaintext" original="plugins.en.xlf">
<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">
<source>plugin.none_installed</source>
<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">
<file source-language="en" target-language="vi" datatype="plaintext" original="plugins.en.xlf">
<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">
<source>plugin.none_installed</source>
<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">
<file source-language="en" target-language="zh-CN" datatype="plaintext" original="plugins.en.xlf">
<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">
<source>plugin.none_installed</source>
<target>您尚未安装插件。</target>