feat: add slovenian translation

fix: currency conversion failing on the statistics page
This commit is contained in:
Miguel Ribeiro 2024-05-27 19:17:05 +02:00 committed by GitHub
parent cd9c75db37
commit 03ceb8a6e6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 35 additions and 24 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 987 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 980 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 628 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 797 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -1,3 +1,3 @@
<?php <?php
$version = "v2.0.0"; $version = "v2.1.0";
?> ?>

View File

@ -39,7 +39,7 @@
<section class="contain"> <section class="contain">
<header class="<?= $headerClass ?>" id="main-actions"> <header class="<?= $headerClass ?>" id="main-actions">
<button class="button" onClick="addSubscription()"> <button class="button" onClick="addSubscription()">
<img class="button-icon" src="images/siteicons/plusicon.png"> <i class="fa-solid fa-circle-plus"></i>
<?= translate('new_subscription', $i18n) ?> <?= translate('new_subscription', $i18n) ?>
</button> </button>
<div class="top-actions"> <div class="top-actions">
@ -49,7 +49,7 @@
</div> </div>
<div class="filtermenu on-dashboard"> <div class="filtermenu on-dashboard">
<button class="button" id="filtermenu-button" title="<?= translate("filter", $i18n) ?>"> <button class="button secondary-button" id="filtermenu-button" title="<?= translate("filter", $i18n) ?>">
<i class="fa-solid fa-filter"></i> <i class="fa-solid fa-filter"></i>
</button> </button>
<div class="filtermenu-content"> <div class="filtermenu-content">
@ -128,8 +128,8 @@
</div> </div>
<div class="sort-container"> <div class="sort-container">
<button class="button" value="Sort" onClick="toggleSortOptions()" id="sort-button" title="<?= translate('sort', $i18n) ?>"> <button class="button secondary-button" value="Sort" onClick="toggleSortOptions()" id="sort-button" title="<?= translate('sort', $i18n) ?>">
<img src="images/siteicons/sort.png" class="button-icon" /> <i class="fa-solid fa-arrow-down-wide-short"></i>
</button> </button>
<div class="sort-options" id="sort-options"> <div class="sort-options" id="sort-options">
<ul> <ul>
@ -195,7 +195,7 @@
<?= translate('no_subscriptions_yet', $i18n) ?> <?= translate('no_subscriptions_yet', $i18n) ?>
</p> </p>
<button class="button" onClick="addSubscription()"> <button class="button" onClick="addSubscription()">
<img class="button-icon" src="images/siteicons/plusicon.png"> <i class="fa-solid fa-circle-plus"></i>
<?= translate('add_first_subscription', $i18n) ?> <?= translate('add_first_subscription', $i18n) ?>
</button> </button>
</div> </div>

View File

@ -41,6 +41,9 @@ self.addEventListener('install', function(event) {
'scripts/i18n/pt.js', 'scripts/i18n/pt.js',
'scripts/i18n/pt_br.js', 'scripts/i18n/pt_br.js',
'scripts/i18n/ru.js', 'scripts/i18n/ru.js',
'scripts/i18n/sl.js',
'scripts/i18n/sr_lat.js',
'scripts/i18n/sr.js',
'scripts/i18n/tr.js', 'scripts/i18n/tr.js',
'scripts/i18n/zh_cn.js', 'scripts/i18n/zh_cn.js',
'scripts/i18n/zh_tw.js', 'scripts/i18n/zh_tw.js',

View File

@ -19,8 +19,8 @@
<div> <div>
<div class="user-avatar"> <div class="user-avatar">
<img src="<?= $userData['avatar'] ?>" alt="avatar" class="avatar" id="avatarImg" onClick="toggleAvatarSelect()"/> <img src="<?= $userData['avatar'] ?>" alt="avatar" class="avatar" id="avatarImg" onClick="toggleAvatarSelect()"/>
<span class="edit-avatar" onClick="toggleAvatarSelect()"> <span class="edit-avatar" onClick="toggleAvatarSelect()" title="Change Avatar">
<img src="images/siteicons/editavatar.png" title="Change avatar" /> <i class="fa-solid fa-pencil"></i>
</span> </span>
</div> </div>
@ -623,7 +623,7 @@
} }
?> ?>
<div class="form-group-inline" data-categoryid="<?= $category['id'] ?>"> <div class="form-group-inline" data-categoryid="<?= $category['id'] ?>">
<div class="drag-icon"></div> <div class=" drag-icon"><i class="fa-solid fa-grip-vertical"></i></div>
<input type="text" name="category" value="<?= $category['name'] ?>" placeholder="Category"> <input type="text" name="category" value="<?= $category['name'] ?>" placeholder="Category">
<button class="image-button medium" onClick="editCategory(<?= $category['id'] ?>)" name="save"> <button class="image-button medium" onClick="editCategory(<?= $category['id'] ?>)" name="save">
<img src="images/siteicons/<?= $colorTheme ?>/save.png" title="<?= translate('save_category', $i18n) ?>"> <img src="images/siteicons/<?= $colorTheme ?>/save.png" title="<?= translate('save_category', $i18n) ?>">
@ -861,7 +861,9 @@
data-in-use="<?= $inUse ? 'yes' : 'no' ?>" data-in-use="<?= $inUse ? 'yes' : 'no' ?>"
data-paymentid="<?= $payment['id'] ?>" data-paymentid="<?= $payment['id'] ?>"
title="<?= $inUse ? translate('cant_delete_payment_method_in_use', $i18n) : ($payment['enabled'] ? translate('disable', $i18n) : translate('enable', $i18n)) ?>"> title="<?= $inUse ? translate('cant_delete_payment_method_in_use', $i18n) : ($payment['enabled'] ? translate('disable', $i18n) : translate('enable', $i18n)) ?>">
<div class="drag-icon" title=""></div> <div class="drag-icon" title="">
<i class="fa-solid fa-grip-vertical"></i>
</div>
<img src="<?= $paymentIconFolder.$payment['icon'] ?>" alt="Logo" /> <img src="<?= $paymentIconFolder.$payment['icon'] ?>" alt="Logo" />
<span class="payment-name" contenteditable="true" title="<?= translate("rename_payment_method", $i18n) ?>"><?= $payment['name'] ?></span> <span class="payment-name" contenteditable="true" title="<?= translate("rename_payment_method", $i18n) ?>"><?= $payment['name'] ?></span>
<?php <?php

View File

@ -23,7 +23,7 @@
} }
function getPriceConverted($price, $currency, $database) { function getPriceConverted($price, $currency, $database, $userId) {
$query = "SELECT rate FROM currencies WHERE id = :currency AND user_id = :userId"; $query = "SELECT rate FROM currencies WHERE id = :currency AND user_id = :userId";
$stmt = $database->prepare($query); $stmt = $database->prepare($query);
$stmt->bindParam(':currency', $currency, SQLITE3_INTEGER); $stmt->bindParam(':currency', $currency, SQLITE3_INTEGER);
@ -153,7 +153,7 @@ if ($result) {
$categoryId = $subscription['category_id']; $categoryId = $subscription['category_id'];
$paymentMethodId = $subscription['payment_method_id']; $paymentMethodId = $subscription['payment_method_id'];
$inactive = $subscription['inactive']; $inactive = $subscription['inactive'];
$originalSubscriptionPrice = getPriceConverted($price, $currency, $db); $originalSubscriptionPrice = getPriceConverted($price, $currency, $db, $userId);
$price = getPricePerMonth($cycle, $frequency, $originalSubscriptionPrice); $price = getPricePerMonth($cycle, $frequency, $originalSubscriptionPrice);
if ($inactive == 0) { if ($inactive == 0) {
@ -229,7 +229,7 @@ $numberOfElements = 6;
<?= translate('general_statistics', $i18n) ?> <span class="header-subtitle"><?= $statsSubtitle ?></span> <?= translate('general_statistics', $i18n) ?> <span class="header-subtitle"><?= $statsSubtitle ?></span>
</h2> </h2>
<div class="filtermenu"> <div class="filtermenu">
<button class="button" id="filtermenu-button"> <button class="button secondary-button" id="filtermenu-button">
<i class="fa-solid fa-filter"></i> <i class="fa-solid fa-filter"></i>
<?= translate("filter", $i18n) ?> <?= translate("filter", $i18n) ?>
</button> </button>

View File

@ -541,6 +541,8 @@ header #avatar {
background-color: rgba(0,0,0,0.6); background-color: rgba(0,0,0,0.6);
border-radius: 39px; border-radius: 39px;
cursor: pointer; cursor: pointer;
color: #FFFFFF;
font-size: 30px;
} }
.user-form .user-avatar:hover > .edit-avatar { .user-form .user-avatar:hover > .edit-avatar {
@ -553,10 +555,6 @@ header #avatar {
} }
} }
.user-form .user-avatar .edit-avatar > img {
width: 30px;
}
.avatar-select { .avatar-select {
display: none; display: none;
background-color: white; background-color: white;
@ -784,8 +782,8 @@ header #avatar {
.payments-list .payments-payment .drag-icon { .payments-list .payments-payment .drag-icon {
height: 20px; height: 20px;
width: 12px; width: 14px;
background-size: contain; font-size: 14px;
} }
.payments-list .payments-payment > img { .payments-list .payments-payment > img {
@ -1616,16 +1614,17 @@ textarea.thin {
width: 28px; width: 28px;
height: 50px; height: 50px;
cursor: grab; cursor: grab;
background-image: url(../images/siteicons/draggable.png); display: flex;
background-repeat: no-repeat; align-items: center;
background-position: center; justify-content: center;
background-size: 14px auto; font-size: 20px;
} }
.sortable-list .sortable-ghost { .sortable-list .sortable-ghost {
border-radius: 16px; border-radius: 8px;
background-color: rgba(var(--accent-color-rgb), 0.6); background-color: rgba(var(--accent-color-rgb), 0.6);
border: 1px solid var(--accent-color); border: 1px solid var(--accent-color);
padding: 5px;
} }
/* Fitler dropdown */ /* Fitler dropdown */
@ -1865,6 +1864,7 @@ textarea.thin {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
flex-grow: 1; flex-grow: 1;
flex-wrap: wrap;
} }
.user-list .user-list-row { .user-list .user-list-row {
@ -1873,6 +1873,12 @@ textarea.thin {
flex-grow: 1; flex-grow: 1;
} }
@media (max-width: 768px) {
.user-list .user-list-row {
flex-direction: column;
}
}
.user-list .user-list-row:last-of-type { .user-list .user-list-row:last-of-type {
flex-grow: 0; flex-grow: 0;
} }