bugfixes and improvements (#2660)
This commit is contained in:
@@ -276,8 +276,6 @@ class TimesheetController extends BaseApiController
|
||||
* required=true,
|
||||
* )
|
||||
*
|
||||
* @Security("is_granted('view_own_timesheet') or is_granted('view_other_timesheet')")
|
||||
*
|
||||
* @ApiSecurity(name="apiUser")
|
||||
* @ApiSecurity(name="apiToken")
|
||||
*
|
||||
@@ -497,7 +495,7 @@ class TimesheetController extends BaseApiController
|
||||
}
|
||||
|
||||
if (null !== ($reqLimit = $paramFetcher->get('size'))) {
|
||||
$limit = $reqLimit;
|
||||
$limit = (int) $reqLimit;
|
||||
}
|
||||
|
||||
if (null !== ($reqBegin = $paramFetcher->get('begin'))) {
|
||||
|
||||
@@ -90,6 +90,10 @@ class ImportTimesheetCommand extends Command
|
||||
* @var User[]
|
||||
*/
|
||||
private $userCache = [];
|
||||
/**
|
||||
* @var Tag[]
|
||||
*/
|
||||
private $tagCache = [];
|
||||
/**
|
||||
* Comment that will be added to new customers, projects and activities.
|
||||
*
|
||||
@@ -371,9 +375,7 @@ class ImportTimesheetCommand extends Command
|
||||
continue;
|
||||
}
|
||||
|
||||
if (null === ($tag = $this->tagRepository->findTagByName($tagName))) {
|
||||
$tag = (new Tag())->setName($tagName);
|
||||
}
|
||||
$tag = $this->getTag($tagName);
|
||||
|
||||
$timesheet->addTag($tag);
|
||||
}
|
||||
@@ -469,6 +471,23 @@ class ImportTimesheetCommand extends Command
|
||||
return $this->userCache[$user];
|
||||
}
|
||||
|
||||
private function getTag(string $tagName): Tag
|
||||
{
|
||||
if (\array_key_exists($tagName, $this->tagCache)) {
|
||||
return $this->tagCache[$tagName];
|
||||
}
|
||||
|
||||
$tag = $this->tagRepository->findTagByName($tagName);
|
||||
|
||||
if ($tag === null) {
|
||||
$tag = (new Tag())->setName($tagName);
|
||||
}
|
||||
|
||||
$this->tagCache[$tagName] = $tag;
|
||||
|
||||
return $this->tagCache[$tagName];
|
||||
}
|
||||
|
||||
private function getActivity($activity, Project $project, $activityType): Activity
|
||||
{
|
||||
$tmpActivity = null;
|
||||
@@ -497,8 +516,9 @@ class ImportTimesheetCommand extends Command
|
||||
|
||||
private function getProject($project, $customer, $fallbackCustomer): Project
|
||||
{
|
||||
if (!\array_key_exists($project, $this->projectCache)) {
|
||||
/** @var Customer $tmpCustomer */
|
||||
$cacheKey = $project . '_____' . $customer;
|
||||
|
||||
if (!\array_key_exists($cacheKey, $this->projectCache)) {
|
||||
$tmpCustomer = $this->getCustomer($customer, $fallbackCustomer);
|
||||
/** @var Project $tmpProject */
|
||||
$tmpProject = null;
|
||||
@@ -533,10 +553,10 @@ class ImportTimesheetCommand extends Command
|
||||
$this->createdProjects++;
|
||||
}
|
||||
|
||||
$this->projectCache[$project] = $tmpProject;
|
||||
$this->projectCache[$cacheKey] = $tmpProject;
|
||||
}
|
||||
|
||||
return $this->projectCache[$project];
|
||||
return $this->projectCache[$cacheKey];
|
||||
}
|
||||
|
||||
private function getCustomer($customer, $fallback): Customer
|
||||
@@ -560,42 +580,44 @@ class ImportTimesheetCommand extends Command
|
||||
}
|
||||
}
|
||||
|
||||
if (null === $this->customerFallback) {
|
||||
$tmpFallback = null;
|
||||
|
||||
if (!empty($fallback)) {
|
||||
if (\is_int($customer)) {
|
||||
$tmpFallback = $this->customers->find($fallback);
|
||||
} else {
|
||||
/** @var Customer|null $tmpFallback */
|
||||
$tmpFallback = $this->customers->findOneBy(['name' => $fallback]);
|
||||
}
|
||||
}
|
||||
|
||||
if (null === $tmpFallback) {
|
||||
$newName = $customer;
|
||||
if (empty($customer)) {
|
||||
$newName = self::DEFAULT_CUSTOMER;
|
||||
if (!empty($fallback) && \is_string($fallback)) {
|
||||
$newName = $fallback;
|
||||
}
|
||||
}
|
||||
$tmpFallback = new Customer();
|
||||
$tmpFallback->setName(sprintf($newName, $this->dateTime));
|
||||
$tmpFallback->setComment($this->comment);
|
||||
$tmpFallback->setCountry($this->configuration->getCustomerDefaultCountry());
|
||||
$timezone = date_default_timezone_get();
|
||||
if (null !== $this->configuration->getCustomerDefaultTimezone()) {
|
||||
$timezone = $this->configuration->getCustomerDefaultTimezone();
|
||||
}
|
||||
$tmpFallback->setTimezone($timezone);
|
||||
$this->customers->saveCustomer($tmpFallback);
|
||||
$this->createdCustomers++;
|
||||
}
|
||||
|
||||
$this->customerFallback = $tmpFallback;
|
||||
if (null !== $this->customerFallback && !empty($fallback)) {
|
||||
return $this->customerFallback;
|
||||
}
|
||||
|
||||
$tmpFallback = null;
|
||||
|
||||
if (!empty($fallback)) {
|
||||
if (is_numeric($fallback)) {
|
||||
$tmpFallback = $this->customers->find((int) $fallback);
|
||||
} else {
|
||||
/** @var Customer|null $tmpFallback */
|
||||
$tmpFallback = $this->customers->findOneBy(['name' => $fallback]);
|
||||
}
|
||||
}
|
||||
|
||||
if (null === $tmpFallback) {
|
||||
$newName = $customer;
|
||||
if (empty($customer)) {
|
||||
$newName = self::DEFAULT_CUSTOMER;
|
||||
if (!empty($fallback) && \is_string($fallback)) {
|
||||
$newName = $fallback;
|
||||
}
|
||||
}
|
||||
$tmpFallback = new Customer();
|
||||
$tmpFallback->setName(sprintf($newName, $this->dateTime));
|
||||
$tmpFallback->setComment($this->comment);
|
||||
$tmpFallback->setCountry($this->configuration->getCustomerDefaultCountry());
|
||||
$timezone = date_default_timezone_get();
|
||||
if (null !== $this->configuration->getCustomerDefaultTimezone()) {
|
||||
$timezone = $this->configuration->getCustomerDefaultTimezone();
|
||||
}
|
||||
$tmpFallback->setTimezone($timezone);
|
||||
$this->customers->saveCustomer($tmpFallback);
|
||||
$this->createdCustomers++;
|
||||
}
|
||||
|
||||
$this->customerFallback = $tmpFallback;
|
||||
|
||||
return $this->customerFallback;
|
||||
}
|
||||
|
||||
|
||||
@@ -50,6 +50,7 @@ final class ProjectViewController extends AbstractController
|
||||
'title' => 'report_project_view',
|
||||
'tableName' => 'project_view_reporting',
|
||||
'now' => $this->getDateTimeFactory()->createDateTime(),
|
||||
'showDurations' => true,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ class ProjectSubscriber extends AbstractActionsSubscriber
|
||||
$event->addDelete($this->path('admin_project_delete', ['id' => $project->getId()]));
|
||||
}
|
||||
|
||||
if ($project->isVisible() && $this->isGranted('view_reporting') && $this->isGranted('details_project')) {
|
||||
if ($project->isVisible() && $this->isGranted('view_reporting') && $this->isGranted('details', $project)) {
|
||||
$event->addAction('report_project_details', ['url' => $this->path('report_project_details', ['project' => $project->getId()]), 'icon' => 'reporting', 'translation_domain' => 'reporting']);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,10 +43,13 @@ abstract class AbstractSpreadsheetRenderer
|
||||
public const DATETIME_FORMAT = 'yyyy-mm-dd hh:mm';
|
||||
public const TIME_FORMAT = 'hh:mm';
|
||||
public const DURATION_FORMAT = '[hh]:mm';
|
||||
public const DURATION_DECIMAL = '#0.00';
|
||||
public const RATE_FORMAT_DEFAULT = '#.##0,00 [$%1$s];-#.##0,00 [$%1$s]';
|
||||
public const RATE_FORMAT_LEFT = '_("%1$s"* #,##0.00_);_("%1$s"* \(#,##0.00\);_("%1$s"* "-"??_);_(@_)';
|
||||
public const RATE_FORMAT = self::RATE_FORMAT_LEFT;
|
||||
|
||||
protected $durationFormat = self::DURATION_FORMAT;
|
||||
protected $durationBase = 86400;
|
||||
/**
|
||||
* @var LocaleFormatExtensions
|
||||
*/
|
||||
@@ -183,7 +186,7 @@ abstract class AbstractSpreadsheetRenderer
|
||||
{
|
||||
$sheet->setCellValueByColumnAndRow($column, $row, sprintf('=SUM(%s:%s)', $startCoordinate, $endCoordinate));
|
||||
$style = $sheet->getStyleByColumnAndRow($column, $row);
|
||||
$style->getNumberFormat()->setFormatCode(self::DURATION_FORMAT);
|
||||
$style->getNumberFormat()->setFormatCode($this->durationFormat);
|
||||
}
|
||||
|
||||
protected function setDuration(Worksheet $sheet, $column, $row, $duration)
|
||||
@@ -191,8 +194,8 @@ abstract class AbstractSpreadsheetRenderer
|
||||
if (null === $duration) {
|
||||
$duration = 0;
|
||||
}
|
||||
$sheet->setCellValueByColumnAndRow($column, $row, sprintf('=%s/86400', $duration));
|
||||
$sheet->getStyleByColumnAndRow($column, $row)->getNumberFormat()->setFormatCode(self::DURATION_FORMAT);
|
||||
$sheet->setCellValueByColumnAndRow($column, $row, sprintf('=%s/%s', $duration, $this->durationBase));
|
||||
$sheet->getStyleByColumnAndRow($column, $row)->getNumberFormat()->setFormatCode($this->durationFormat);
|
||||
}
|
||||
|
||||
protected function setRateTotal(Worksheet $sheet, $column, $row, $startCoordinate, $endCoordinate)
|
||||
@@ -232,6 +235,11 @@ abstract class AbstractSpreadsheetRenderer
|
||||
*/
|
||||
protected function getColumns(array $exportItems, TimesheetQuery $query, array $columns): array
|
||||
{
|
||||
if (null !== $query->getCurrentUser() && $query->getCurrentUser()->isExportDecimal()) {
|
||||
$this->durationFormat = self::DURATION_DECIMAL;
|
||||
$this->durationBase = 3600;
|
||||
}
|
||||
|
||||
$showRates = $this->isRenderRate($query);
|
||||
|
||||
if (isset($columns['date']) && !isset($columns['date']['render'])) {
|
||||
|
||||
@@ -21,7 +21,7 @@ final class Version20210605154245 extends AbstractMigration
|
||||
{
|
||||
public function getDescription(): string
|
||||
{
|
||||
return 'Cleans up User table';
|
||||
return 'Cleans up the user table';
|
||||
}
|
||||
|
||||
public function up(Schema $schema): void
|
||||
|
||||
@@ -15,7 +15,7 @@ use Doctrine\DBAL\Schema\Schema;
|
||||
use Doctrine\Migrations\AbstractMigration;
|
||||
|
||||
/**
|
||||
* Auto-generated Migration: Please modify to your needs!
|
||||
* @version 1.15
|
||||
*/
|
||||
final class Version20210704111542 extends AbstractMigration
|
||||
{
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
{% block main %}
|
||||
{% set formEditTemplate = app.request.xmlHttpRequest ? 'default/_form_modal.html.twig' : 'default/_form.html.twig' %}
|
||||
{% set formOptions = {
|
||||
'title': (activity.id is null ? 'create'|trans : 'edit'|trans({}, 'actions')),
|
||||
'title': (activity.id is null ? 'create-activity'|trans({}, 'actions') : 'edit'|trans({}, 'actions')),
|
||||
'form': form,
|
||||
'back': path('admin_activity')
|
||||
} %}
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
{% embed '@AdminLTE/Widgets/box-widget.html.twig' %}
|
||||
{% import "macros/progressbar.html.twig" as progress %}
|
||||
{% block box_title %}{{ 'label.timeBudget'|trans }}{% endblock %}
|
||||
{% import "macros/widgets.html.twig" as widgets %}
|
||||
{% block box_title %}
|
||||
{{ 'label.timeBudget'|trans }}
|
||||
{% if entity.timeBudget > 0 %}
|
||||
{{ widgets.label(entity.timeBudget|duration, 'gray') }}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
{% block box_attributes %}id="time_budget_box"{% endblock %}
|
||||
{% block box_body %}
|
||||
{{ progress.progressbar(stats.recordDuration, stats.durationBillable, 'label.billable'|trans, stats.durationBillable|duration ~ ' / ' ~ stats.recordDuration|duration, true) }}
|
||||
@@ -11,7 +17,13 @@
|
||||
{% endembed %}
|
||||
{% embed '@AdminLTE/Widgets/box-widget.html.twig' %}
|
||||
{% import "macros/progressbar.html.twig" as progress %}
|
||||
{% block box_title %}{{ 'label.budget'|trans }}{% endblock %}
|
||||
{% import "macros/widgets.html.twig" as widgets %}
|
||||
{% block box_title %}
|
||||
{{ 'label.budget'|trans }}
|
||||
{% if entity.budget > 0 %}
|
||||
{{ widgets.label(entity.budget|money(currency), 'gray') }}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
{% block box_attributes %}id="budget_box"{% endblock %}
|
||||
{% block box_body %}
|
||||
{{ progress.progressbar(stats.recordRate, stats.rateBillable, 'label.billable'|trans, stats.rateBillable|money(currency) ~ ' / ' ~ stats.recordRate|money(currency), true) }}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
{% block main %}
|
||||
{% set formEditTemplate = app.request.xmlHttpRequest ? 'default/_form_modal.html.twig' : 'default/_form.html.twig' %}
|
||||
{% set formOptions = {
|
||||
'title': (project.id is null ? 'create'|trans : 'edit'|trans({}, 'actions')),
|
||||
'title': (project.id is null ? 'create-project'|trans({}, 'actions') : 'edit'|trans({}, 'actions')),
|
||||
'form': form,
|
||||
'back': path('admin_project')
|
||||
} %}
|
||||
|
||||
@@ -3,12 +3,19 @@
|
||||
|
||||
{% block report_title %}{{ (title|default('report_project_view'))|trans({}, 'reporting') }}{% endblock %}
|
||||
|
||||
{% set showDurations = showDurations is defined and showDurations is same as (true) %}
|
||||
{% set columns = {
|
||||
'name': {'class': 'alwaysVisible'},
|
||||
'lastRecord': {'class': 'hidden text-center hw-min', 'title': 'label.last_record'|trans},
|
||||
'today': {'class': 'hidden-md hidden-sm hidden-xs text-center hw-min', 'title': 'stats.durationToday'|trans},
|
||||
'week': {'class': 'hidden-md hidden-sm hidden-xs text-center hw-min', 'title': 'stats.durationWeek'|trans},
|
||||
'month': {'class': 'hidden-md hidden-sm hidden-xs text-center hw-min', 'title': 'stats.durationMonth'|trans},
|
||||
} %}
|
||||
{% if showDurations %}
|
||||
{% set columns = columns|merge({
|
||||
'today': {'class': 'hidden hidden-md hidden-sm hidden-xs text-center hw-min', 'title': 'stats.durationToday'|trans},
|
||||
'week': {'class': 'hidden hidden-md hidden-sm hidden-xs text-center hw-min', 'title': 'stats.durationWeek'|trans},
|
||||
'month': {'class': 'hidden hidden-md hidden-sm hidden-xs text-center hw-min', 'title': 'stats.durationMonth'|trans},
|
||||
}) %}
|
||||
{% endif %}
|
||||
{% set columns = columns|merge({
|
||||
'durationTotal': {'class': 'text-center hw-min', 'title': 'stats.durationTotal'|trans},
|
||||
'timeBudget': {'class': 'hidden-xs', 'title': 'label.timeBudget'|trans},
|
||||
'budget': {'class': 'hidden-xs', 'title': 'label.budget'|trans},
|
||||
@@ -18,7 +25,7 @@
|
||||
'projectEnd': {'class': 'hidden-md hidden-sm hidden-xs hidden text-center w-min', 'title': 'label.project_end'|trans},
|
||||
'comment': {'class': 'hidden-md hidden-sm hidden-xs hidden', 'title': 'label.comment'|trans},
|
||||
'actions': {'class': 'actions alwaysVisible'},
|
||||
} %}
|
||||
}) %}
|
||||
{% set tableName = tableName|default('project_view_reporting') %}
|
||||
|
||||
{% block main_before %}
|
||||
@@ -70,9 +77,11 @@
|
||||
–
|
||||
{% endif %}
|
||||
</td>
|
||||
{% if showDurations %}
|
||||
<td class="{{ tables.data_table_column_class(tableName, columns, 'today') }}">{{ entry.durationDay|duration }}</td>
|
||||
<td class="{{ tables.data_table_column_class(tableName, columns, 'week') }}">{{ entry.durationWeek|duration }}</td>
|
||||
<td class="{{ tables.data_table_column_class(tableName, columns, 'month') }}">{{ entry.durationMonth|duration }}</td>
|
||||
{% endif %}
|
||||
<td class="{{ tables.data_table_column_class(tableName, columns, 'durationTotal') }}">{{ entry.durationTotal|duration }}</td>
|
||||
<td class="{{ tables.data_table_column_class(tableName, columns, 'timeBudget') }}">
|
||||
{% if project.timeBudget > 0 %}
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="library_authors">
|
||||
<source>library_authors</source>
|
||||
<target>... مؤلفو مكتبات البرامج الحالية ،، لم يكون kimai قادراً على إكمالها بدونك 👍</target>
|
||||
<target>… مؤلفو مكتبات البرامج الحالية ،، لم يكون kimai قادراً على إكمالها بدونك 👍</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.title">
|
||||
<source>reset.title</source>
|
||||
<target>Tohle se může stát...</target>
|
||||
<target>Tohle se může stát…</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.button">
|
||||
<source>reset.button</source>
|
||||
@@ -40,7 +40,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.intro">
|
||||
<source>reset.intro</source>
|
||||
<target>... takže jste zapomněli heslo? Nevadí, Kimai vám pomůže s vytvořením nového:</target>
|
||||
<target>… takže jste zapomněli heslo? Nevadí, Kimai vám pomůže s vytvořením nového:</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.title">
|
||||
<source>reset.title</source>
|
||||
<target>Αυτό μπορεί να συμβεί ...</target>
|
||||
<target>Αυτό μπορεί να συμβεί …</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.button">
|
||||
<source>reset.button</source>
|
||||
@@ -40,7 +40,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.intro">
|
||||
<source>reset.intro</source>
|
||||
<target>... επομένως ξεχάσατε τον δικό σας κωδικό πρόσβασης; Μην ανησυχείτε: Το λογισμικό Kimai θα σας βοηθήσει να δημιουργήσετε ένα νέο:</target>
|
||||
<target>… επομένως ξεχάσατε τον δικό σας κωδικό πρόσβασης; Μην ανησυχείτε: Το λογισμικό Kimai θα σας βοηθήσει να δημιουργήσετε ένα νέο:</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.title">
|
||||
<source>reset.title</source>
|
||||
<target>That can happen ...</target>
|
||||
<target>That can happen …</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.button">
|
||||
<source>reset.button</source>
|
||||
@@ -40,7 +40,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.intro">
|
||||
<source>reset.intro</source>
|
||||
<target>... so you forgot your password? Don't worry: Kimai will help you to create a new one:</target>
|
||||
<target>… so you forgot your password? Don't worry: Kimai will help you to create a new one:</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.title">
|
||||
<source>reset.title</source>
|
||||
<target>Tio povas okazi ...</target>
|
||||
<target>Tio povas okazi …</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.button">
|
||||
<source>reset.button</source>
|
||||
@@ -40,7 +40,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.intro">
|
||||
<source>reset.intro</source>
|
||||
<target>... do, vi forgesis vian pasvorton, ĉu? Ne zorgu: Kimai helpos al vi krei la novan:</target>
|
||||
<target>… do, vi forgesis vian pasvorton, ĉu? Ne zorgu: Kimai helpos al vi krei la novan:</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.title">
|
||||
<source>reset.title</source>
|
||||
<target>آن می تواند اتفاق بیفتد ...</target>
|
||||
<target>آن می تواند اتفاق بیفتد …</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.button">
|
||||
<source>reset.button</source>
|
||||
@@ -40,7 +40,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.intro">
|
||||
<source>reset.intro</source>
|
||||
<target>... خب شما پسورد خود را فراموش کرده اید؟ نگران نباشید : kimai به شما کمک خواهد کرد تا یکی جدید بسازید:</target>
|
||||
<target>… خب شما پسورد خود را فراموش کرده اید؟ نگران نباشید : kimai به شما کمک خواهد کرد تا یکی جدید بسازید:</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.title">
|
||||
<source>reset.title</source>
|
||||
<target state="translated">Näin voi käydä ...</target>
|
||||
<target state="translated">Näin voi käydä …</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.button">
|
||||
<source>reset.button</source>
|
||||
@@ -40,7 +40,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.intro">
|
||||
<source>reset.intro</source>
|
||||
<target state="translated">... eli unohdit salasanasi? Ei hätää: Kimai auttaa sinua tekemään uuden:</target>
|
||||
<target state="translated">… eli unohdit salasanasi? Ei hätää: Kimai auttaa sinua tekemään uuden:</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.title">
|
||||
<source>reset.title</source>
|
||||
<target>זה עלול לקרות ...</target>
|
||||
<target>זה עלול לקרות …</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.button">
|
||||
<source>reset.button</source>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.title">
|
||||
<source>reset.title</source>
|
||||
<target>Ez megtörténhet...</target>
|
||||
<target>Ez megtörténhet…</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.button">
|
||||
<source>reset.button</source>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.title">
|
||||
<source>reset.title</source>
|
||||
<target>그럴 수 있습니다...</target>
|
||||
<target>그럴 수 있습니다…</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.button">
|
||||
<source>reset.button</source>
|
||||
@@ -40,7 +40,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.intro">
|
||||
<source>reset.intro</source>
|
||||
<target>... 암호를 잊어 버렸습니까? 걱정하지 마세요: Kimai가 새 계정을 만드는 데 도움을 줄 것입니다:</target>
|
||||
<target>… 암호를 잊어 버렸습니까? 걱정하지 마세요: Kimai가 새 계정을 만드는 데 도움을 줄 것입니다:</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.title">
|
||||
<source>reset.title</source>
|
||||
<target>Dat kan gebeuren ...</target>
|
||||
<target>Dat kan gebeuren …</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.button">
|
||||
<source>reset.button</source>
|
||||
@@ -40,7 +40,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.intro">
|
||||
<source>reset.intro</source>
|
||||
<target>... dus u bent uw wachtwoord vergeten? Maakt u zich geen zorgen: Kimai zal u helpen om een nieuwe te maken: </target>
|
||||
<target>… dus u bent uw wachtwoord vergeten? Maakt u zich geen zorgen: Kimai zal u helpen om een nieuwe te maken: </target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.title">
|
||||
<source>reset.title</source>
|
||||
<target>To może się zdarzyć...</target>
|
||||
<target>To może się zdarzyć…</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.button">
|
||||
<source>reset.button</source>
|
||||
@@ -40,7 +40,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.intro">
|
||||
<source>reset.intro</source>
|
||||
<target>... zapomniałeś hasła? Nie martw się, Kimai pomoże Ci stworzyć nowe:</target>
|
||||
<target>… zapomniałeś hasła? Nie martw się, Kimai pomoże Ci stworzyć nowe:</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.title">
|
||||
<source>reset.title</source>
|
||||
<target>Isso pode acontecer ...</target>
|
||||
<target>Isso pode acontecer …</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.button">
|
||||
<source>reset.button</source>
|
||||
@@ -40,7 +40,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.intro">
|
||||
<source>reset.intro</source>
|
||||
<target>... Então você esqueceu a sua senha? Não se preocupe: O Kimai vai ajudá-lo a criar uma nova:</target>
|
||||
<target>… Então você esqueceu a sua senha? Não se preocupe: O Kimai vai ajudá-lo a criar uma nova:</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.intro">
|
||||
<source>reset.intro</source>
|
||||
<target>... então esqueceu sua senha? Não se preocupe: Kimai vai ajudá-lo a criar uma nova:</target>
|
||||
<target>… então esqueceu sua senha? Não se preocupe: Kimai vai ajudá-lo a criar uma nova:</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.button">
|
||||
<source>reset.button</source>
|
||||
@@ -28,7 +28,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.title">
|
||||
<source>reset.title</source>
|
||||
<target>Isso pode acontecer...</target>
|
||||
<target>Isso pode acontecer…</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.subject">
|
||||
<source>reset.subject</source>
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.title">
|
||||
<source>reset.title</source>
|
||||
<target>Asta se poate întâmpla ...</target>
|
||||
<target>Asta se poate întâmpla …</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.button">
|
||||
<source>reset.button</source>
|
||||
@@ -43,7 +43,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.intro">
|
||||
<source>reset.intro</source>
|
||||
<target>... ți-ai uitat parola? Nu te îngrijora. Kimai te va ajuta să îți creezi o parolă nouă:</target>
|
||||
<target>… ți-ai uitat parola? Nu te îngrijora. Kimai te va ajuta să îți creezi o parolă nouă:</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.title">
|
||||
<source>reset.title</source>
|
||||
<target>Это может произойти ...</target>
|
||||
<target>Это может произойти …</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.button">
|
||||
<source>reset.button</source>
|
||||
@@ -40,7 +40,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.intro">
|
||||
<source>reset.intro</source>
|
||||
<target>... вы забыли пароль? Не беспокойтесь: Kimai поможет Вам создать новый:</target>
|
||||
<target>… вы забыли пароль? Не беспокойтесь: Kimai поможет Вам создать новый:</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.title">
|
||||
<source>reset.title</source>
|
||||
<target>To sa môže stať...</target>
|
||||
<target>To sa môže stať…</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.button">
|
||||
<source>reset.button</source>
|
||||
@@ -40,7 +40,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.intro">
|
||||
<source>reset.intro</source>
|
||||
<target>...zabudli ste Vaše heslo? Bez obáv: Kimai Vám pomôže vytvoriť nové:</target>
|
||||
<target>…zabudli ste Vaše heslo? Bez obáv: Kimai Vám pomôže vytvoriť nové:</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.title">
|
||||
<source>reset.title</source>
|
||||
<target state="translated">Det kan hända ...</target>
|
||||
<target state="translated">Det kan hända …</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.button">
|
||||
<source>reset.button</source>
|
||||
@@ -40,7 +40,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.intro">
|
||||
<source>reset.intro</source>
|
||||
<target state="translated">... så du glömde ditt lösenord? Oroa dig inte: Kimai hjälper dig att skapa ett nytt:</target>
|
||||
<target state="translated">… så du glömde ditt lösenord? Oroa dig inte: Kimai hjälper dig att skapa ett nytt:</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.title">
|
||||
<source>reset.title</source>
|
||||
<target>Bu olabilir ...</target>
|
||||
<target>Bu olabilir …</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.button">
|
||||
<source>reset.button</source>
|
||||
@@ -40,7 +40,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.intro">
|
||||
<source>reset.intro</source>
|
||||
<target>... parolanızı mı unuttunuz? Endişelenmeyin: Kimai, yeni bir tane oluşturmanıza yardımcı olacaktır:</target>
|
||||
<target>… parolanızı mı unuttunuz? Endişelenmeyin: Kimai, yeni bir tane oluşturmanıza yardımcı olacaktır:</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.title">
|
||||
<source>reset.title</source>
|
||||
<target>Điều đó có thể xảy ra...</target>
|
||||
<target>Điều đó có thể xảy ra…</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.button">
|
||||
<source>reset.button</source>
|
||||
@@ -40,7 +40,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.intro">
|
||||
<source>reset.intro</source>
|
||||
<target>... bạn quên mật khẩu? Đừng lo lắng: Kimai sẽ giúp bạn tạo một cái mới:</target>
|
||||
<target>… bạn quên mật khẩu? Đừng lo lắng: Kimai sẽ giúp bạn tạo một cái mới:</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="reset.intro">
|
||||
<source>reset.intro</source>
|
||||
<target>...您忘记了密码吗?别担心:Kimai将帮助您创建一个新的:</target>
|
||||
<target>…您忘记了密码吗?别担心:Kimai将帮助您创建一个新的:</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
|
||||
@@ -684,7 +684,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="placeholder.type_message">
|
||||
<source>placeholder.type_message</source>
|
||||
<target>اكتب رسالتك...</target>
|
||||
<target>اكتب رسالتك…</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.teamlead">
|
||||
<source>label.teamlead</source>
|
||||
|
||||
@@ -1088,7 +1088,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="placeholder.type_message">
|
||||
<source>placeholder.type_message</source>
|
||||
<target>Napište vaši zprávu...</target>
|
||||
<target>Napište vaši zprávu…</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.recalculate_rates">
|
||||
<source>label.recalculate_rates</source>
|
||||
|
||||
@@ -367,7 +367,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="placeholder.type_message">
|
||||
<source>placeholder.type_message</source>
|
||||
<target>Πληκτρολογήσετε το μήνυμα σας...</target>
|
||||
<target>Πληκτρολογήσετε το μήνυμα σας…</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.billable">
|
||||
<source>label.billable</source>
|
||||
@@ -1045,7 +1045,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="preview.skipped_rows">
|
||||
<source>preview.skipped_rows</source>
|
||||
<target>Παράλειψη προ-επισκόπησης %rows% και περισσότερων γραμμών ...</target>
|
||||
<target>Παράλειψη προ-επισκόπησης %rows% και περισσότερων γραμμών …</target>
|
||||
</trans-unit>
|
||||
<!--
|
||||
Export
|
||||
|
||||
@@ -147,19 +147,19 @@
|
||||
<source>login_required</source>
|
||||
<target>Missing permission. Redirect to login?</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="registration.check_email">
|
||||
<source>registration.check_email</source>
|
||||
<target>An email has been sent to %email%. It contains an activation link you must click to activate your account.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="resetting.check_email">
|
||||
<source>resetting.check_email</source>
|
||||
<target>
|
||||
An email has been sent. It contains a link you must click to reset your password.
|
||||
Note: You can only request a new password once within %tokenLifetime% hours.
|
||||
<trans-unit id="registration.check_email">
|
||||
<source>registration.check_email</source>
|
||||
<target>An email has been sent to %email%. It contains an activation link you must click to activate your account.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="resetting.check_email">
|
||||
<source>resetting.check_email</source>
|
||||
<target>
|
||||
An email has been sent. It contains a link you must click to reset your password.
|
||||
Note: You can only request a new password once within %tokenLifetime% hours.
|
||||
|
||||
If you don't get an email check your spam folder or try again.
|
||||
</target>
|
||||
</trans-unit>
|
||||
If you don't get an email check your spam folder or try again.
|
||||
</target>
|
||||
</trans-unit>
|
||||
<!--
|
||||
Menu / Navbar items
|
||||
-->
|
||||
@@ -387,7 +387,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="placeholder.type_message">
|
||||
<source>placeholder.type_message</source>
|
||||
<target>Type your message...</target>
|
||||
<target>Type your message…</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.billable">
|
||||
<source>label.billable</source>
|
||||
@@ -1100,7 +1100,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="preview.skipped_rows">
|
||||
<source>preview.skipped_rows</source>
|
||||
<target>Skipped preview of %rows% more rows ...</target>
|
||||
<target>Skipped preview of %rows% more rows …</target>
|
||||
</trans-unit>
|
||||
<!--
|
||||
Export
|
||||
|
||||
@@ -1078,7 +1078,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="placeholder.type_message">
|
||||
<source>placeholder.type_message</source>
|
||||
<target>Idatzi zure mezua...</target>
|
||||
<target>Idatzi zure mezua…</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.recalculate_rates">
|
||||
<source>label.recalculate_rates</source>
|
||||
|
||||
@@ -213,7 +213,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="placeholder.type_message">
|
||||
<source>placeholder.type_message</source>
|
||||
<target>پیام خود را تایپ کنید ...</target>
|
||||
<target>پیام خود را تایپ کنید …</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.create_more">
|
||||
<source>label.create_more</source>
|
||||
|
||||
@@ -334,7 +334,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="placeholder.type_message">
|
||||
<source>placeholder.type_message</source>
|
||||
<target state="translated">Kirjoita viesti...</target>
|
||||
<target state="translated">Kirjoita viesti…</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.billable">
|
||||
<source>label.billable</source>
|
||||
|
||||
@@ -745,7 +745,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="placeholder.type_message">
|
||||
<source>placeholder.type_message</source>
|
||||
<target>Skriva tíni boð...</target>
|
||||
<target>Skriva tíni boð…</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.billable">
|
||||
<source>label.billable</source>
|
||||
@@ -917,7 +917,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="preview.skipped_rows">
|
||||
<source>preview.skipped_rows</source>
|
||||
<target>Leyp undansýning av %rows% fleiri rekkjum um ...</target>
|
||||
<target>Leyp undansýning av %rows% fleiri rekkjum um …</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="recent.activities.format">
|
||||
<source>recent.activities.format</source>
|
||||
|
||||
@@ -936,7 +936,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="placeholder.type_message">
|
||||
<source>placeholder.type_message</source>
|
||||
<target>Üzenet írása...</target>
|
||||
<target>Üzenet írása…</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.teamlead">
|
||||
<source>label.teamlead</source>
|
||||
|
||||
@@ -1004,7 +1004,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="placeholder.type_message">
|
||||
<source>placeholder.type_message</source>
|
||||
<target>메시지 입력...</target>
|
||||
<target>메시지 입력…</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.teamlead">
|
||||
<source>label.teamlead</source>
|
||||
@@ -1152,7 +1152,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="preview.skipped_rows">
|
||||
<source>preview.skipped_rows</source>
|
||||
<target>%rows% 더 많은 행의 미리 보기를 건너뛰었습니다...</target>
|
||||
<target>%rows% 더 많은 행의 미리 보기를 건너뛰었습니다…</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="invoice.payment_date">
|
||||
<source>invoice.payment_date</source>
|
||||
|
||||
@@ -996,7 +996,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="placeholder.type_message">
|
||||
<source>placeholder.type_message</source>
|
||||
<target>Typ uw bericht...</target>
|
||||
<target>Typ uw bericht…</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.project_start">
|
||||
<source>label.project_start</source>
|
||||
@@ -1128,7 +1128,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="preview.skipped_rows">
|
||||
<source>preview.skipped_rows</source>
|
||||
<target>Voorbeeld van nog %rows% rijen overgeslagen ...</target>
|
||||
<target>Voorbeeld van nog %rows% rijen overgeslagen …</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.not_invoiced">
|
||||
<source>label.not_invoiced</source>
|
||||
|
||||
@@ -1108,7 +1108,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="placeholder.type_message">
|
||||
<source>placeholder.type_message</source>
|
||||
<target>Wpisz swoją wiadomość...</target>
|
||||
<target>Wpisz swoją wiadomość…</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.recalculate_rates">
|
||||
<source>label.recalculate_rates</source>
|
||||
|
||||
@@ -1018,7 +1018,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="placeholder.type_message">
|
||||
<source>placeholder.type_message</source>
|
||||
<target>Escreva a sua mensagem...</target>
|
||||
<target>Escreva a sua mensagem…</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.teamlead">
|
||||
<source>label.teamlead</source>
|
||||
|
||||
@@ -1096,7 +1096,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="placeholder.type_message">
|
||||
<source>placeholder.type_message</source>
|
||||
<target>Digite sua mensagem...</target>
|
||||
<target>Digite sua mensagem…</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.team">
|
||||
<source>label.team</source>
|
||||
|
||||
@@ -1033,7 +1033,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="placeholder.type_message">
|
||||
<source>placeholder.type_message</source>
|
||||
<target>Scrie mesajul tău...</target>
|
||||
<target>Scrie mesajul tău…</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.recalculate_rates">
|
||||
<source>label.recalculate_rates</source>
|
||||
@@ -1073,7 +1073,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="preview.skipped_rows">
|
||||
<source>preview.skipped_rows</source>
|
||||
<target>A sărit previzualizarea peste %rows% rânduri ...</target>
|
||||
<target>A sărit previzualizarea peste %rows% rânduri …</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="invoice.payment_date">
|
||||
<source>invoice.payment_date</source>
|
||||
|
||||
@@ -1063,7 +1063,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="placeholder.type_message">
|
||||
<source>placeholder.type_message</source>
|
||||
<target>Ввести сообщение...</target>
|
||||
<target>Ввести сообщение…</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.teamlead">
|
||||
<source>label.teamlead</source>
|
||||
|
||||
@@ -1112,7 +1112,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="placeholder.type_message">
|
||||
<source>placeholder.type_message</source>
|
||||
<target>Napíšte vašu správu...</target>
|
||||
<target>Napíšte vašu správu…</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.recalculate_rates">
|
||||
<source>label.recalculate_rates</source>
|
||||
|
||||
@@ -979,7 +979,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="placeholder.type_message">
|
||||
<source>placeholder.type_message</source>
|
||||
<target>Skriv ditt meddelande...</target>
|
||||
<target>Skriv ditt meddelande…</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="modal.dirty">
|
||||
<source>modal.dirty</source>
|
||||
|
||||
@@ -1051,7 +1051,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="placeholder.type_message">
|
||||
<source>placeholder.type_message</source>
|
||||
<target>Mesajınızı yazın...</target>
|
||||
<target>Mesajınızı yazın…</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.recalculate_rates">
|
||||
<source>label.recalculate_rates</source>
|
||||
@@ -1167,7 +1167,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="preview.skipped_rows">
|
||||
<source>preview.skipped_rows</source>
|
||||
<target>%rows% satırın ön izlemesi atlandı ...</target>
|
||||
<target>%rows% satırın ön izlemesi atlandı …</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="invoice.payment_date">
|
||||
<source>invoice.payment_date</source>
|
||||
|
||||
@@ -943,7 +943,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="label.invoice_bank_account">
|
||||
<source>label.invoice_bank_account</source>
|
||||
<target>Ngày đặt hàng...</target>
|
||||
<target>Ngày đặt hàng…</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.decimalDuration">
|
||||
<source>label.decimalDuration</source>
|
||||
|
||||
@@ -1015,7 +1015,7 @@
|
||||
</trans-unit>
|
||||
<trans-unit id="placeholder.type_message">
|
||||
<source>placeholder.type_message</source>
|
||||
<target>输入您的消息...</target>
|
||||
<target>输入您的消息…</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.theme.layout">
|
||||
<source>label.theme.layout</source>
|
||||
|
||||
Reference in New Issue
Block a user