Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions src/plugins/year_progress/render/year_progress.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@
<div class="progress-container">
<div class="progress-wrapper">
<div class="progress-title">{{year}}</div>
<div class="progress-subtitle">PROGRESS</div>
<div class="progress-subtitle">{{label_progress}}</div>
<div class="progress-bar">
<div class="progress-fill" style="width: {{ year_percent }}%; background-color: {{plugin_settings.textColor}};"></div>
<div class="progress-remaining" style="background-image: radial-gradient({{plugin_settings.textColor}} 1px, transparent 1px);"></div>
</div>
<div class="progress-labels">
<span>{{year_percent}}% DONE</span>
<span>{{days_left}} DAYS LEFT</span>
<span>{{year_percent}}% {{label_done}}</span>
<span>{{days_left}} {{label_days_left}}</span>
</div>
</div>
</div>
Expand Down
27 changes: 27 additions & 0 deletions src/plugins/year_progress/settings.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<div class="form-group">
<label for="language" class="form-label">Language:</label>
<select id="language" name="language" class="form-input">
<option value="nl">Dutch</option>
<option value="en">English</option>
<option value="fr">French</option>
<option value="de">German</option>
<option value="id">Indonesian</option>
<option value="it">Italian</option>
<option value="pt">Portuguese</option>
<option value="es">Spanish</option>
</select>
</div>

<script>
document.addEventListener('DOMContentLoaded', () => {
const language = document.getElementById('language');
if (typeof pluginSettings === 'object' && pluginSettings !== null) {
language.value = pluginSettings.language || 'en';
if (!language.querySelector(`option[value="${pluginSettings.language}"]`)) {
language.value = 'en';
}
} else {
language.value = 'en';
}
Comment thread
saulob marked this conversation as resolved.
Outdated
});
</script>
19 changes: 18 additions & 1 deletion src/plugins/year_progress/year_progress.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,17 @@
import pytz

logger = logging.getLogger(__name__)

LOCALE_DATA = {
"de": {"done": "FERTIG", "progress": "FORTSCHRITT", "days_left": "TAGE ÜBRIG"},
"en": {"done": "DONE", "progress": "PROGRESS", "days_left": "DAYS LEFT"},
"es": {"done": "HECHO", "progress": "PROGRESO", "days_left": "DÍAS RESTANTES"},
"fr": {"done": "TERMINÉ", "progress": "PROGRESSION", "days_left": "JOURS RESTANTS"},
"id": {"done": "SELESAI", "progress": "KEMAJUAN", "days_left": "HARI TERSISA"},
"it": {"done": "FATTO", "progress": "PROGRESSO", "days_left": "GIORNI RIMASTI"},
"nl": {"done": "KLAAR", "progress": "VOORTGANG", "days_left": "DAGEN OVER"},
"pt": {"done": "CONCLUÍDO", "progress": "PROGRESSO", "days_left": "DIAS RESTANTES"},
}
class YearProgress(BasePlugin):
def generate_settings_template(self):
template_params = super().generate_settings_template()
Expand All @@ -27,11 +38,17 @@ def generate_image(self, settings, device_config):
days_left = (start_of_next_year - current_time).total_seconds() / (24 * 3600)
elapsed_days = (current_time - start_of_year).total_seconds() / (24 * 3600)

language = str(settings.get("language", "en")).strip() or "en"
Comment thread
saulob marked this conversation as resolved.
Outdated
labels = LOCALE_DATA.get(language, LOCALE_DATA["en"])

template_params = {
"year": current_time.year,
"year_percent": round((elapsed_days / total_days) * 100),
"days_left": round(days_left),
"plugin_settings": settings
"plugin_settings": settings,
"label_done": labels["done"],
"label_progress": labels["progress"],
"label_days_left": labels["days_left"],
}

image = self.render_image(dimensions, "year_progress.html", "year_progress.css", template_params)
Expand Down
Loading