bugfixes (#2669)
* 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:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,7 +1,7 @@
|
||||
# ========== KIMAI ==========
|
||||
# some hosters require a htaccess to change the PHP version
|
||||
.htaccess
|
||||
|
||||
.env-*
|
||||
.idea/
|
||||
.DS_Store
|
||||
|
||||
|
||||
15
README.md
15
README.md
@@ -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
|
||||
|
||||
|
||||
@@ -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())
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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) }}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user