feat(location): auto location/weather via IP

This commit is contained in:
Lemmy
2026-03-31 20:59:36 -04:00
parent 97553d7064
commit 80cd76b82e
26 changed files with 166 additions and 12 deletions
+18 -3
View File
@@ -36,7 +36,9 @@
"hide-mode-description": "Určuje chování widgetu, když není žádné okno aktivní.", "hide-mode-description": "Určuje chování widgetu, když není žádné okno aktivní.",
"scrolling-mode-description": "Řídí, kdy je povoleno posouvání textu pro dlouhé názvy oken.", "scrolling-mode-description": "Řídí, kdy je povoleno posouvání textu pro dlouhé názvy oken.",
"show-app-icon-description": "Zobrazit ikonu aplikace vedle názvu okna.", "show-app-icon-description": "Zobrazit ikonu aplikace vedle názvu okna.",
"show-app-icon-label": "Zobrazit ikonu aplikace" "show-app-icon-label": "Zobrazit ikonu aplikace",
"show-app-text-description": "Zobrazit název okna.",
"show-app-text-label": "Zobrazit název okna"
}, },
"audio-visualizer": { "audio-visualizer": {
"color-name-description": "Vybrat barvu vizualizéru.", "color-name-description": "Vybrat barvu vizualizéru.",
@@ -944,6 +946,8 @@
"predefined-desc": "Vybrat z kolekce předdefinovaných barevných schémat.", "predefined-desc": "Vybrat z kolekce předdefinovaných barevných schémat.",
"predefined-generate-templates-label": "Generovat šablony pro předdefinovaná schémata", "predefined-generate-templates-label": "Generovat šablony pro předdefinovaná schémata",
"predefined-title": "Předdefinovaná barevná schémata", "predefined-title": "Předdefinovaná barevná schémata",
"sync-gsettings-description": "Přizpůsobit systémové téma aktivní světlé nebo tmavé variantě.",
"sync-gsettings-label": "Synchronizovat téma systému",
"templates-desc": "Aplikovat barvy na externí aplikace.", "templates-desc": "Aplikovat barvy na externí aplikace.",
"templates-filter-description": "Zobrazit šablony z konkrétní kategorie.", "templates-filter-description": "Zobrazit šablony z konkrétní kategorie.",
"templates-filter-label": "Filtrovat podle kategorie", "templates-filter-label": "Filtrovat podle kategorie",
@@ -1225,6 +1229,8 @@
"screen-corners-solid-black-label": "Plně černé rohy", "screen-corners-solid-black-label": "Plně černé rohy",
"screen-corners-title": "Rohy obrazovky", "screen-corners-title": "Rohy obrazovky",
"settings-copied": "Nastavení zkopírováno do schránky", "settings-copied": "Nastavení zkopírováno do schránky",
"smooth-scrolling-description": "Animovat posouvání seznamů pro plynulejší zážitek s kolečkem.",
"smooth-scrolling-label": "Plynulé posouvání",
"tab-basics": "Základy", "tab-basics": "Základy",
"tab-keybinds": "Klávesové zkratky" "tab-keybinds": "Klávesové zkratky"
}, },
@@ -1361,6 +1367,8 @@
"title": "Spouštěč" "title": "Spouštěč"
}, },
"location": { "location": {
"auto-locate-description": "Automaticky detekovat vaši polohu pravidelně pomocí vaší IP adresy.",
"auto-locate-label": "Automatické Zjištění",
"calendar-cards-desc": "Organizovat a povolit/zakázat karty v panelu kalendáře.", "calendar-cards-desc": "Organizovat a povolit/zakázat karty v panelu kalendáře.",
"calendar-cards-title": "Karty kalendáře", "calendar-cards-title": "Karty kalendáře",
"calendar-header-label": "Záhlaví kalendáře", "calendar-header-label": "Záhlaví kalendáře",
@@ -1378,6 +1386,7 @@
"date-time-use-analog-label": "Použít analogový styl hodin", "date-time-use-analog-label": "Použít analogový styl hodin",
"date-time-week-numbers-description": "Zobrazit číslo týdne v roce (např. týden 38) v kalendáři.", "date-time-week-numbers-description": "Zobrazit číslo týdne v roce (např. týden 38) v kalendáři.",
"date-time-week-numbers-label": "Zobrazit čísla týdnů", "date-time-week-numbers-label": "Zobrazit čísla týdnů",
"geolocate-now-button": "Najít nyní",
"location-desc": "Získejte přesné počasí a rozvrh nočního světla nastavením polohy.", "location-desc": "Získejte přesné počasí a rozvrh nočního světla nastavením polohy.",
"location-search-description": "např. Praha, CZ", "location-search-description": "např. Praha, CZ",
"location-search-label": "Hledat polohu", "location-search-label": "Hledat polohu",
@@ -2055,13 +2064,19 @@
"apikey-label": "Klíč API", "apikey-label": "Klíč API",
"apikey-managed-by-env": "Spravováno přes proměnnou prostředí NOCTALIA_WALLHAVEN_API_KEY.", "apikey-managed-by-env": "Spravováno přes proměnnou prostředí NOCTALIA_WALLHAVEN_API_KEY.",
"apikey-placeholder": "Zadejte váš klíč Wallhaven API", "apikey-placeholder": "Zadejte váš klíč Wallhaven API",
"apply-all-monitors-description": "Aplikovat vybranou tapetu na všechny monitory.", "appearance-dark-tab": "Tmavý",
"apply-all-monitors-label": "Použít na všechny monitory", "appearance-light-tab": "Světlý",
"categories-anime": "Anime", "categories-anime": "Anime",
"categories-label": "Kategorie", "categories-label": "Kategorie",
"categories-people": "Lidé", "categories-people": "Lidé",
"color-extraction-disabled": "Použít extrakci barev tapety", "color-extraction-disabled": "Použít extrakci barev tapety",
"color-extraction-enabled": "Použít předdefinovaná barevná schémata", "color-extraction-enabled": "Použít předdefinovaná barevná schémata",
"header-devices-apply-all-tooltip": "Vybrat tapetu pro každý monitor",
"header-devices-per-monitor-tooltip": "Použít na všechny monitory",
"header-link-light-dark-tooltip": "Zachovat tapetu při změně motivu",
"header-separate-light-dark-tooltip": "Automaticky přepínat tapetu s tématem",
"header-sun-linked-tooltip": "Oddělit světlé a tmavé tapety",
"header-sun-separate-tooltip": "Stejná tapeta pro světlý a tmavý režim",
"order-asc": "Vzestupně", "order-asc": "Vzestupně",
"order-desc": "Sestupně", "order-desc": "Sestupně",
"order-label": "Pořadí", "order-label": "Pořadí",
+3
View File
@@ -1367,6 +1367,8 @@
"title": "Starter" "title": "Starter"
}, },
"location": { "location": {
"auto-locate-description": "Ermittelt Ihren Standort automatisch und regelmäßig anhand Ihrer IP-Adresse.",
"auto-locate-label": "Automatische Ortung",
"calendar-cards-desc": "Karten im Kalender-Panel organisieren und aktivieren/deaktivieren.", "calendar-cards-desc": "Karten im Kalender-Panel organisieren und aktivieren/deaktivieren.",
"calendar-cards-title": "Kalenderkarten", "calendar-cards-title": "Kalenderkarten",
"calendar-header-label": "Kalenderkopfzeile", "calendar-header-label": "Kalenderkopfzeile",
@@ -1384,6 +1386,7 @@
"date-time-use-analog-label": "Analoge Uhr verwenden", "date-time-use-analog-label": "Analoge Uhr verwenden",
"date-time-week-numbers-description": "Zeige die Woche des Jahres (z.B. Woche 38) im Kalender an.", "date-time-week-numbers-description": "Zeige die Woche des Jahres (z.B. Woche 38) im Kalender an.",
"date-time-week-numbers-label": "Wochennummern anzeigen", "date-time-week-numbers-label": "Wochennummern anzeigen",
"geolocate-now-button": "Jetzt orten",
"location-desc": "Genaues Wetter und Nachtlicht-Planung durch Festlegung Ihres Standorts erhalten.", "location-desc": "Genaues Wetter und Nachtlicht-Planung durch Festlegung Ihres Standorts erhalten.",
"location-search-description": "z.B. Dortmund, Deutschland", "location-search-description": "z.B. Dortmund, Deutschland",
"location-search-label": "Nach einem Standort suchen", "location-search-label": "Nach einem Standort suchen",
+3
View File
@@ -1367,6 +1367,8 @@
"title": "Launcher" "title": "Launcher"
}, },
"location": { "location": {
"auto-locate-description": "Automatically detect your location periodically using your IP address.",
"auto-locate-label": "Auto-Locate",
"calendar-cards-desc": "Organize and enable/disable cards in the calendar panel.", "calendar-cards-desc": "Organize and enable/disable cards in the calendar panel.",
"calendar-cards-title": "Calendar cards", "calendar-cards-title": "Calendar cards",
"calendar-header-label": "Calendar Header", "calendar-header-label": "Calendar Header",
@@ -1384,6 +1386,7 @@
"date-time-use-analog-label": "Use analog style clock", "date-time-use-analog-label": "Use analog style clock",
"date-time-week-numbers-description": "Display the week of the year (e.g. week 38) in the calendar.", "date-time-week-numbers-description": "Display the week of the year (e.g. week 38) in the calendar.",
"date-time-week-numbers-label": "Show week numbers", "date-time-week-numbers-label": "Show week numbers",
"geolocate-now-button": "Locate now",
"location-desc": "Get accurate weather and Night Light scheduling by setting your location.", "location-desc": "Get accurate weather and Night Light scheduling by setting your location.",
"location-search-description": "e.g. Toronto, ON", "location-search-description": "e.g. Toronto, ON",
"location-search-label": "Search for a location", "location-search-label": "Search for a location",
+3
View File
@@ -1367,6 +1367,8 @@
"title": "Launcher" "title": "Launcher"
}, },
"location": { "location": {
"auto-locate-description": "Automatically detect your location periodically using your IP address.",
"auto-locate-label": "Auto-locate",
"calendar-cards-desc": "Organize and enable/disable cards in the calendar panel.", "calendar-cards-desc": "Organize and enable/disable cards in the calendar panel.",
"calendar-cards-title": "Calendar cards", "calendar-cards-title": "Calendar cards",
"calendar-header-label": "Calendar Header", "calendar-header-label": "Calendar Header",
@@ -1384,6 +1386,7 @@
"date-time-use-analog-label": "Use analog style clock", "date-time-use-analog-label": "Use analog style clock",
"date-time-week-numbers-description": "Display the week of the year (e.g. week 38) in the calendar.", "date-time-week-numbers-description": "Display the week of the year (e.g. week 38) in the calendar.",
"date-time-week-numbers-label": "Show week numbers", "date-time-week-numbers-label": "Show week numbers",
"geolocate-now-button": "Locate now",
"location-desc": "Get accurate weather and Night Light scheduling by setting your location.", "location-desc": "Get accurate weather and Night Light scheduling by setting your location.",
"location-search-description": "e.g. Toronto, ON", "location-search-description": "e.g. Toronto, ON",
"location-search-label": "Search for a location", "location-search-label": "Search for a location",
+3
View File
@@ -1367,6 +1367,8 @@
"title": "Lanzador" "title": "Lanzador"
}, },
"location": { "location": {
"auto-locate-description": "Detecta automáticamente tu ubicación periódicamente usando tu dirección IP.",
"auto-locate-label": "Auto-Localizar",
"calendar-cards-desc": "Organizar y activar/desactivar tarjetas en el panel del calendario.", "calendar-cards-desc": "Organizar y activar/desactivar tarjetas en el panel del calendario.",
"calendar-cards-title": "Tarjetas de calendario", "calendar-cards-title": "Tarjetas de calendario",
"calendar-header-label": "Encabezado del calendario", "calendar-header-label": "Encabezado del calendario",
@@ -1384,6 +1386,7 @@
"date-time-use-analog-label": "Usar reloj de estilo analógico", "date-time-use-analog-label": "Usar reloj de estilo analógico",
"date-time-week-numbers-description": "Muestra la semana del año (p. ej. Semana 38) en el calendario.", "date-time-week-numbers-description": "Muestra la semana del año (p. ej. Semana 38) en el calendario.",
"date-time-week-numbers-label": "Mostrar números de semana", "date-time-week-numbers-label": "Mostrar números de semana",
"geolocate-now-button": "Localizar ahora",
"location-desc": "Obtén el clima y la programación de la luz nocturna precisos estableciendo tu ubicación.", "location-desc": "Obtén el clima y la programación de la luz nocturna precisos estableciendo tu ubicación.",
"location-search-description": "p. ej. Toronto, ON", "location-search-description": "p. ej. Toronto, ON",
"location-search-label": "Buscar una ubicación", "location-search-label": "Buscar una ubicación",
+3
View File
@@ -1367,6 +1367,8 @@
"title": "Lanceur" "title": "Lanceur"
}, },
"location": { "location": {
"auto-locate-description": "Détecte automatiquement votre position périodiquement en utilisant votre adresse IP.",
"auto-locate-label": "Localisation Automatique",
"calendar-cards-desc": "Organiser et activer/désactiver les cartes dans le panneau de calendrier.", "calendar-cards-desc": "Organiser et activer/désactiver les cartes dans le panneau de calendrier.",
"calendar-cards-title": "Cartes de calendrier", "calendar-cards-title": "Cartes de calendrier",
"calendar-header-label": "En-tête du calendrier", "calendar-header-label": "En-tête du calendrier",
@@ -1384,6 +1386,7 @@
"date-time-use-analog-label": "Utiliser une horloge de style analogique", "date-time-use-analog-label": "Utiliser une horloge de style analogique",
"date-time-week-numbers-description": "Afficher la semaine de l'année (ex : Semaine 38) dans le calendrier.", "date-time-week-numbers-description": "Afficher la semaine de l'année (ex : Semaine 38) dans le calendrier.",
"date-time-week-numbers-label": "Afficher les numéros de semaine", "date-time-week-numbers-label": "Afficher les numéros de semaine",
"geolocate-now-button": "Localiser maintenant",
"location-desc": "Obtenez une météo et une planification de l'éclairage nocturne précises en définissant votre emplacement.", "location-desc": "Obtenez une météo et une planification de l'éclairage nocturne précises en définissant votre emplacement.",
"location-search-description": "ex : Toronto, ON", "location-search-description": "ex : Toronto, ON",
"location-search-label": "Rechercher un emplacement", "location-search-label": "Rechercher un emplacement",
+3
View File
@@ -1367,6 +1367,8 @@
"title": "Indító" "title": "Indító"
}, },
"location": { "location": {
"auto-locate-description": "Automata helymeghatározás az IP-cím alapján, rendszeres időközönként.",
"auto-locate-label": "Automatikus Helymeghatározás",
"calendar-cards-desc": "A kártyák rendezésének engedélyezése/letiltása a naptár panelen.", "calendar-cards-desc": "A kártyák rendezésének engedélyezése/letiltása a naptár panelen.",
"calendar-cards-title": "Naptárkártyák", "calendar-cards-title": "Naptárkártyák",
"calendar-header-label": "Naptár fejléc", "calendar-header-label": "Naptár fejléc",
@@ -1384,6 +1386,7 @@
"date-time-use-analog-label": "Analóg stílusú óra használata", "date-time-use-analog-label": "Analóg stílusú óra használata",
"date-time-week-numbers-description": "Az év hetének megjelenítése (pl. 38. hét) a naptárban.", "date-time-week-numbers-description": "Az év hetének megjelenítése (pl. 38. hét) a naptárban.",
"date-time-week-numbers-label": "Hét számok megjelenítése", "date-time-week-numbers-label": "Hét számok megjelenítése",
"geolocate-now-button": "Helymeghatározás most",
"location-desc": "Pontos időjárás és éjszakai fény ütemezés elérése a hely beállításával.", "location-desc": "Pontos időjárás és éjszakai fény ütemezés elérése a hely beállításával.",
"location-search-description": "pl. Toronto, ON", "location-search-description": "pl. Toronto, ON",
"location-search-label": "Hely keresése", "location-search-label": "Hely keresése",
+3
View File
@@ -1367,6 +1367,8 @@
"title": "Launcher" "title": "Launcher"
}, },
"location": { "location": {
"auto-locate-description": "Rileva automaticamente la tua posizione periodicamente usando il tuo indirizzo IP.",
"auto-locate-label": "Localizzazione Automatica",
"calendar-cards-desc": "Organizza e abilita/disabilita le schede nel pannello calendario.", "calendar-cards-desc": "Organizza e abilita/disabilita le schede nel pannello calendario.",
"calendar-cards-title": "Schede calendario", "calendar-cards-title": "Schede calendario",
"calendar-header-label": "Intestazione calendario", "calendar-header-label": "Intestazione calendario",
@@ -1384,6 +1386,7 @@
"date-time-use-analog-label": "Usa orologio stile analogico", "date-time-use-analog-label": "Usa orologio stile analogico",
"date-time-week-numbers-description": "Mostra nel calendario la settimana dellanno (es. settimana 38).", "date-time-week-numbers-description": "Mostra nel calendario la settimana dellanno (es. settimana 38).",
"date-time-week-numbers-label": "Mostra numeri settimana", "date-time-week-numbers-label": "Mostra numeri settimana",
"geolocate-now-button": "Localizza ora",
"location-desc": "Ottieni meteo accurato e pianificazione Luce notturna impostando la tua posizione.", "location-desc": "Ottieni meteo accurato e pianificazione Luce notturna impostando la tua posizione.",
"location-search-description": "es. Torino, TO", "location-search-description": "es. Torino, TO",
"location-search-label": "Cerca una posizione", "location-search-label": "Cerca una posizione",
+3
View File
@@ -1367,6 +1367,8 @@
"title": "ランチャー" "title": "ランチャー"
}, },
"location": { "location": {
"auto-locate-description": "IPアドレスを使用して、定期的に現在地を自動検出します。",
"auto-locate-label": "自動検出",
"calendar-cards-desc": "カレンダーパネルのカードを整理し、有効・無効を切り替えます。", "calendar-cards-desc": "カレンダーパネルのカードを整理し、有効・無効を切り替えます。",
"calendar-cards-title": "カレンダーカード", "calendar-cards-title": "カレンダーカード",
"calendar-header-label": "カレンダーヘッダー", "calendar-header-label": "カレンダーヘッダー",
@@ -1384,6 +1386,7 @@
"date-time-use-analog-label": "アナログ時計を使用", "date-time-use-analog-label": "アナログ時計を使用",
"date-time-week-numbers-description": "カレンダーに週番号(例:第38週)を表示します。", "date-time-week-numbers-description": "カレンダーに週番号(例:第38週)を表示します。",
"date-time-week-numbers-label": "週番号を表示", "date-time-week-numbers-label": "週番号を表示",
"geolocate-now-button": "今すぐ検索",
"location-desc": "場所を設定して、正確な天気情報や夜間モードのスケジュールを取得します。", "location-desc": "場所を設定して、正確な天気情報や夜間モードのスケジュールを取得します。",
"location-search-description": "例:東京、日本", "location-search-description": "例:東京、日本",
"location-search-label": "場所を検索", "location-search-label": "場所を検索",
+3
View File
@@ -1367,6 +1367,8 @@
"title": "런처" "title": "런처"
}, },
"location": { "location": {
"auto-locate-description": "IP 주소를 사용하여 주기적으로 위치를 자동으로 감지합니다.",
"auto-locate-label": "자동 찾기",
"calendar-cards-desc": "달력 패널에서 카드를 정리하고 활성화/비활성화합니다.", "calendar-cards-desc": "달력 패널에서 카드를 정리하고 활성화/비활성화합니다.",
"calendar-cards-title": "달력 카드", "calendar-cards-title": "달력 카드",
"calendar-header-label": "달력 헤더", "calendar-header-label": "달력 헤더",
@@ -1384,6 +1386,7 @@
"date-time-use-analog-label": "아날로그 스타일 시계 사용", "date-time-use-analog-label": "아날로그 스타일 시계 사용",
"date-time-week-numbers-description": "달력에 해당 연도의 주차(예: 38주차)를 표시합니다.", "date-time-week-numbers-description": "달력에 해당 연도의 주차(예: 38주차)를 표시합니다.",
"date-time-week-numbers-label": "주 번호 표시", "date-time-week-numbers-label": "주 번호 표시",
"geolocate-now-button": "지금 찾기",
"location-desc": "위치를 설정하여 정확한 날씨 및 야간 조명 일정을 가져오세요.", "location-desc": "위치를 설정하여 정확한 날씨 및 야간 조명 일정을 가져오세요.",
"location-search-description": "예: 종로구, 해운대, 강릉", "location-search-description": "예: 종로구, 해운대, 강릉",
"location-search-label": "위치 검색", "location-search-label": "위치 검색",
+3
View File
@@ -1367,6 +1367,8 @@
"title": "Launcher" "title": "Launcher"
}, },
"location": { "location": {
"auto-locate-description": "Detecteert automatisch uw locatie periodiek met behulp van uw IP-adres.",
"auto-locate-label": "Automatische Lokalisatie",
"calendar-cards-desc": "Kaarten organiseren en in-/uitschakelen in het kalenderpaneel.", "calendar-cards-desc": "Kaarten organiseren en in-/uitschakelen in het kalenderpaneel.",
"calendar-cards-title": "Kalenderkaarten", "calendar-cards-title": "Kalenderkaarten",
"calendar-header-label": "Kalenderkop", "calendar-header-label": "Kalenderkop",
@@ -1384,6 +1386,7 @@
"date-time-use-analog-label": "Analoge klok gebruiken", "date-time-use-analog-label": "Analoge klok gebruiken",
"date-time-week-numbers-description": "Toon het weeknummer van het jaar (bijv. week 38) in de kalender.", "date-time-week-numbers-description": "Toon het weeknummer van het jaar (bijv. week 38) in de kalender.",
"date-time-week-numbers-label": "Weeknummers tonen", "date-time-week-numbers-label": "Weeknummers tonen",
"geolocate-now-button": "Nu lokaliseren",
"location-desc": "Krijg nauwkeurige weersinformatie en nachtlichtplanning door je locatie in te stellen.", "location-desc": "Krijg nauwkeurige weersinformatie en nachtlichtplanning door je locatie in te stellen.",
"location-search-description": "bijv. Toronto, ON", "location-search-description": "bijv. Toronto, ON",
"location-search-label": "Zoek een locatie", "location-search-label": "Zoek een locatie",
+3
View File
@@ -1367,6 +1367,8 @@
"title": "Launcher" "title": "Launcher"
}, },
"location": { "location": {
"auto-locate-description": "Automatycznie wykrywaj swoją lokalizację okresowo, używając adresu IP.",
"auto-locate-label": "Automatyczne Wykrywanie",
"calendar-cards-desc": "Organizuj i włączaj/wyłączaj karty w panelu kalendarza.", "calendar-cards-desc": "Organizuj i włączaj/wyłączaj karty w panelu kalendarza.",
"calendar-cards-title": "Karty kalendarza", "calendar-cards-title": "Karty kalendarza",
"calendar-header-label": "Nagłówek kalendarza", "calendar-header-label": "Nagłówek kalendarza",
@@ -1384,6 +1386,7 @@
"date-time-use-analog-label": "Użyj zegara analogowego", "date-time-use-analog-label": "Użyj zegara analogowego",
"date-time-week-numbers-description": "Wyświetlaj numer tygodnia w roku (np. tydzień 38) w kalendarzu.", "date-time-week-numbers-description": "Wyświetlaj numer tygodnia w roku (np. tydzień 38) w kalendarzu.",
"date-time-week-numbers-label": "Pokaż numery tygodni", "date-time-week-numbers-label": "Pokaż numery tygodni",
"geolocate-now-button": "Zlokalizuj teraz",
"location-desc": "Ustaw lokalizację, aby otrzymywać dokładną pogodę i harmonogram podświetlenia nocnego.", "location-desc": "Ustaw lokalizację, aby otrzymywać dokładną pogodę i harmonogram podświetlenia nocnego.",
"location-search-description": "np. Warszawa, PL", "location-search-description": "np. Warszawa, PL",
"location-search-label": "Szukaj lokalizacji", "location-search-label": "Szukaj lokalizacji",
+3
View File
@@ -1367,6 +1367,8 @@
"title": "Lançador" "title": "Lançador"
}, },
"location": { "location": {
"auto-locate-description": "Deteta automaticamente a sua localização periodicamente usando o seu endereço IP.",
"auto-locate-label": "Auto-Localização",
"calendar-cards-desc": "Organize e ative/desative cartões no painel do calendário.", "calendar-cards-desc": "Organize e ative/desative cartões no painel do calendário.",
"calendar-cards-title": "Cartões de calendário", "calendar-cards-title": "Cartões de calendário",
"calendar-header-label": "Cabeçalho do calendário", "calendar-header-label": "Cabeçalho do calendário",
@@ -1384,6 +1386,7 @@
"date-time-use-analog-label": "Use um relógio de estilo analógico", "date-time-use-analog-label": "Use um relógio de estilo analógico",
"date-time-week-numbers-description": "Exibe a semana do ano (p. ex. Semana 38) no calendário.", "date-time-week-numbers-description": "Exibe a semana do ano (p. ex. Semana 38) no calendário.",
"date-time-week-numbers-label": "Mostrar números da semana", "date-time-week-numbers-label": "Mostrar números da semana",
"geolocate-now-button": "Localizar agora",
"location-desc": "Obtenha previsão do tempo e agendamento de luz noturna precisos definindo sua localização.", "location-desc": "Obtenha previsão do tempo e agendamento de luz noturna precisos definindo sua localização.",
"location-search-description": "p. ex. São Paulo, SP", "location-search-description": "p. ex. São Paulo, SP",
"location-search-label": "Procurar por uma localização", "location-search-label": "Procurar por uma localização",
+3
View File
@@ -1367,6 +1367,8 @@
"title": "Лаунчер" "title": "Лаунчер"
}, },
"location": { "location": {
"auto-locate-description": "Автоматически определять ваше местоположение периодически, используя ваш IP-адрес.",
"auto-locate-label": "Автоматическое Определение",
"calendar-cards-desc": "Организуйте и включайте/выключайте карточки в панели календаря.", "calendar-cards-desc": "Организуйте и включайте/выключайте карточки в панели календаря.",
"calendar-cards-title": "Карточки календаря", "calendar-cards-title": "Карточки календаря",
"calendar-header-label": "Заголовок календаря", "calendar-header-label": "Заголовок календаря",
@@ -1384,6 +1386,7 @@
"date-time-use-analog-label": "Использовать аналоговый стиль часов", "date-time-use-analog-label": "Использовать аналоговый стиль часов",
"date-time-week-numbers-description": "Отображает номер недели в году (например, неделя 38) в календаре.", "date-time-week-numbers-description": "Отображает номер недели в году (например, неделя 38) в календаре.",
"date-time-week-numbers-label": "Показывать номера недель", "date-time-week-numbers-label": "Показывать номера недель",
"geolocate-now-button": "Найти сейчас",
"location-desc": "Получите точную погоду и расписание ночного света, установив своё местоположение.", "location-desc": "Получите точную погоду и расписание ночного света, установив своё местоположение.",
"location-search-description": "напр. Москва, RU", "location-search-description": "напр. Москва, RU",
"location-search-label": "Поиск местоположения", "location-search-label": "Поиск местоположения",
+3
View File
@@ -1367,6 +1367,8 @@
"title": "Startprogram" "title": "Startprogram"
}, },
"location": { "location": {
"auto-locate-description": "Upptäck automatiskt din plats periodiskt med hjälp av din IP-adress.",
"auto-locate-label": "Automatisk Lokalisering",
"calendar-cards-desc": "Organisera och aktivera/inaktivera kort i kalenderpanelen.", "calendar-cards-desc": "Organisera och aktivera/inaktivera kort i kalenderpanelen.",
"calendar-cards-title": "Kalenderkort", "calendar-cards-title": "Kalenderkort",
"calendar-header-label": "Kalenderrubrik", "calendar-header-label": "Kalenderrubrik",
@@ -1384,6 +1386,7 @@
"date-time-use-analog-label": "Använd analog klocka", "date-time-use-analog-label": "Använd analog klocka",
"date-time-week-numbers-description": "Visa veckans nummer (t.ex. vecka 38) i kalendern.", "date-time-week-numbers-description": "Visa veckans nummer (t.ex. vecka 38) i kalendern.",
"date-time-week-numbers-label": "Visa veckans nummer", "date-time-week-numbers-label": "Visa veckans nummer",
"geolocate-now-button": "Lokalisera nu",
"location-desc": "Få exakt väderinformation och schemaläggning av nattbelysning genom att ange din plats.", "location-desc": "Få exakt väderinformation och schemaläggning av nattbelysning genom att ange din plats.",
"location-search-description": "t.ex. Stockholm, SE", "location-search-description": "t.ex. Stockholm, SE",
"location-search-label": "Sök efter en plats", "location-search-label": "Sök efter en plats",
+3
View File
@@ -1367,6 +1367,8 @@
"title": "Başlatıcı" "title": "Başlatıcı"
}, },
"location": { "location": {
"auto-locate-description": "IP adresinizi kullanarak konumunuzu periyodik olarak otomatik olarak algılayın.",
"auto-locate-label": "Otomatik Konumlandırma",
"calendar-cards-desc": "Takvim panelinde kartları düzenleyin ve etkinleştirin/devre dışı bırakın.", "calendar-cards-desc": "Takvim panelinde kartları düzenleyin ve etkinleştirin/devre dışı bırakın.",
"calendar-cards-title": "Takvim kartları", "calendar-cards-title": "Takvim kartları",
"calendar-header-label": "Takvim başlığı", "calendar-header-label": "Takvim başlığı",
@@ -1384,6 +1386,7 @@
"date-time-use-analog-label": "Analog tarzı saat kullan", "date-time-use-analog-label": "Analog tarzı saat kullan",
"date-time-week-numbers-description": "Takvimde yılın haftasını (örn. 38. Hafta) gösterir.", "date-time-week-numbers-description": "Takvimde yılın haftasını (örn. 38. Hafta) gösterir.",
"date-time-week-numbers-label": "Hafta numaralarını göster", "date-time-week-numbers-label": "Hafta numaralarını göster",
"geolocate-now-button": "Şimdi konumlandır",
"location-desc": "Konumunuzu ayarlayarak hassas hava durumu ve gece ışığı zamanlaması alın.", "location-desc": "Konumunuzu ayarlayarak hassas hava durumu ve gece ışığı zamanlaması alın.",
"location-search-description": "örn. İstanbul, TR", "location-search-description": "örn. İstanbul, TR",
"location-search-label": "Konum ara", "location-search-label": "Konum ara",
+3
View File
@@ -1367,6 +1367,8 @@
"title": "Лаунчер" "title": "Лаунчер"
}, },
"location": { "location": {
"auto-locate-description": "Автоматично визначати ваше місцезнаходження періодично, використовуючи вашу IP-адресу.",
"auto-locate-label": "Автоматичне Визначення",
"calendar-cards-desc": "Організуйте та вмикайте/вимикайте картки на панелі календаря.", "calendar-cards-desc": "Організуйте та вмикайте/вимикайте картки на панелі календаря.",
"calendar-cards-title": "Календарні картки", "calendar-cards-title": "Календарні картки",
"calendar-header-label": "Заголовок календаря", "calendar-header-label": "Заголовок календаря",
@@ -1384,6 +1386,7 @@
"date-time-use-analog-label": "Використовувати аналоговий годинник", "date-time-use-analog-label": "Використовувати аналоговий годинник",
"date-time-week-numbers-description": "Відображати номер тижня року (напр. тиждень 38) у календарі.", "date-time-week-numbers-description": "Відображати номер тижня року (напр. тиждень 38) у календарі.",
"date-time-week-numbers-label": "Показувати номери тижнів", "date-time-week-numbers-label": "Показувати номери тижнів",
"geolocate-now-button": "Знайти зараз",
"location-desc": "Отримуйте точну погоду та планування нічного світла, встановивши ваше розташування.", "location-desc": "Отримуйте точну погоду та планування нічного світла, встановивши ваше розташування.",
"location-search-description": "напр. Торонто, ОН", "location-search-description": "напр. Торонто, ОН",
"location-search-label": "Шукати розташування", "location-search-label": "Шукати розташування",
+3
View File
@@ -1367,6 +1367,8 @@
"title": "Trình khởi chạy" "title": "Trình khởi chạy"
}, },
"location": { "location": {
"auto-locate-description": "Tự động phát hiện vị trí của bạn định kỳ bằng địa chỉ IP của bạn.",
"auto-locate-label": "Tự Động Định Vị",
"calendar-cards-desc": "Sắp xếp và bật/tắt các thẻ trong bảng điều khiển lịch.", "calendar-cards-desc": "Sắp xếp và bật/tắt các thẻ trong bảng điều khiển lịch.",
"calendar-cards-title": "Thẻ lịch", "calendar-cards-title": "Thẻ lịch",
"calendar-header-label": "Tiêu đề Lịch", "calendar-header-label": "Tiêu đề Lịch",
@@ -1384,6 +1386,7 @@
"date-time-use-analog-label": "Sử dụng đồng hồ kiểu kim", "date-time-use-analog-label": "Sử dụng đồng hồ kiểu kim",
"date-time-week-numbers-description": "Hiển thị tuần trong năm (ví dụ: tuần 38) trong lịch.", "date-time-week-numbers-description": "Hiển thị tuần trong năm (ví dụ: tuần 38) trong lịch.",
"date-time-week-numbers-label": "Hiển thị số tuần", "date-time-week-numbers-label": "Hiển thị số tuần",
"geolocate-now-button": "Định vị ngay",
"location-desc": "Nhận thông tin thời tiết chính xác và lên lịch Ánh sáng đêm bằng cách đặt vị trí của bạn.", "location-desc": "Nhận thông tin thời tiết chính xác và lên lịch Ánh sáng đêm bằng cách đặt vị trí của bạn.",
"location-search-description": "ví dụ: Toronto, ON", "location-search-description": "ví dụ: Toronto, ON",
"location-search-label": "Tìm kiếm một địa điểm", "location-search-label": "Tìm kiếm một địa điểm",
+3
View File
@@ -1367,6 +1367,8 @@
"title": "启动器" "title": "启动器"
}, },
"location": { "location": {
"auto-locate-description": "使用您的 IP 地址定期自动检测您的位置。",
"auto-locate-label": "自动定位",
"calendar-cards-desc": "在日历面板中组织和启用/禁用卡片。", "calendar-cards-desc": "在日历面板中组织和启用/禁用卡片。",
"calendar-cards-title": "日历卡", "calendar-cards-title": "日历卡",
"calendar-header-label": "日历标题", "calendar-header-label": "日历标题",
@@ -1384,6 +1386,7 @@
"date-time-use-analog-label": "使用模拟时钟样式", "date-time-use-analog-label": "使用模拟时钟样式",
"date-time-week-numbers-description": "在日历中显示一年中的第几周(例如:第 38 周)。", "date-time-week-numbers-description": "在日历中显示一年中的第几周(例如:第 38 周)。",
"date-time-week-numbers-label": "显示周数", "date-time-week-numbers-label": "显示周数",
"geolocate-now-button": "立即定位",
"location-desc": "通过设置您的位置获取准确的天气和调度夜间模式。", "location-desc": "通过设置您的位置获取准确的天气和调度夜间模式。",
"location-search-description": "例如:多伦多, 安大略省", "location-search-description": "例如:多伦多, 安大略省",
"location-search-label": "搜索位置", "location-search-label": "搜索位置",
+3
View File
@@ -1367,6 +1367,8 @@
"title": "啟動器" "title": "啟動器"
}, },
"location": { "location": {
"auto-locate-description": "使用您的 IP 位址定期自動偵測您的位置。",
"auto-locate-label": "自動定位",
"calendar-cards-desc": "整理及啟用/停用在行事曆面板使用的卡片", "calendar-cards-desc": "整理及啟用/停用在行事曆面板使用的卡片",
"calendar-cards-title": "行事曆卡片", "calendar-cards-title": "行事曆卡片",
"calendar-header-label": "行事曆抬頭", "calendar-header-label": "行事曆抬頭",
@@ -1384,6 +1386,7 @@
"date-time-use-analog-label": "使用類比時鐘", "date-time-use-analog-label": "使用類比時鐘",
"date-time-week-numbers-description": "在行事曆顯示今年當週的週數 (例如: 第38週)", "date-time-week-numbers-description": "在行事曆顯示今年當週的週數 (例如: 第38週)",
"date-time-week-numbers-label": "顯示週數", "date-time-week-numbers-label": "顯示週數",
"geolocate-now-button": "立即定位",
"location-desc": "設定你的所在地以取得準確的天氣及夜光模式時間", "location-desc": "設定你的所在地以取得準確的天氣及夜光模式時間",
"location-search-description": "例如: Taipei (英文)", "location-search-description": "例如: Taipei (英文)",
"location-search-label": "搜尋位置", "location-search-label": "搜尋位置",
+2 -1
View File
@@ -170,7 +170,8 @@
"analogClockInCalendar": false, "analogClockInCalendar": false,
"firstDayOfWeek": -1, "firstDayOfWeek": -1,
"hideWeatherTimezone": false, "hideWeatherTimezone": false,
"hideWeatherCityName": false "hideWeatherCityName": false,
"autoLocate": true
}, },
"calendar": { "calendar": {
"cards": [ "cards": [
+9
View File
@@ -2192,6 +2192,15 @@
"subTab": 0, "subTab": 0,
"subTabLabel": "common.location" "subTabLabel": "common.location"
}, },
{
"labelKey": "panels.location.auto-locate-label",
"descriptionKey": "panels.location.auto-locate-description",
"widget": "NToggle",
"tab": 17,
"tabLabel": "panels.region.title",
"subTab": 0,
"subTabLabel": "common.location"
},
{ {
"labelKey": "panels.location.weather-enabled-label", "labelKey": "panels.location.weather-enabled-label",
"descriptionKey": "panels.location.weather-enabled-description", "descriptionKey": "panels.location.weather-enabled-description",
+3 -3
View File
@@ -1,8 +1,8 @@
{ {
"bar": { "bar": {
"ActiveWindow": { "ActiveWindow": {
"showIcon": true,
"showText": true, "showText": true,
"showIcon": true,
"hideMode": "hidden", "hideMode": "hidden",
"scrollingMode": "hover", "scrollingMode": "hover",
"maxWidth": 145, "maxWidth": 145,
@@ -78,7 +78,7 @@
"maxTextLength": { "maxTextLength": {
"horizontal": 10, "horizontal": 10,
"vertical": 10 "vertical": 10
},"showIcon": true, },
"enableColorization": false, "enableColorization": false,
"colorizeSystemIcon": "none", "colorizeSystemIcon": "none",
"ipcIdentifier": "" "ipcIdentifier": ""
@@ -292,4 +292,4 @@
"colorName": "primary" "colorName": "primary"
} }
} }
} }
+1
View File
@@ -352,6 +352,7 @@ Singleton {
property int firstDayOfWeek: -1 // -1 = auto (use locale), 0 = Sunday, 1 = Monday, 6 = Saturday property int firstDayOfWeek: -1 // -1 = auto (use locale), 0 = Sunday, 1 = Monday, 6 = Saturday
property bool hideWeatherTimezone: false property bool hideWeatherTimezone: false
property bool hideWeatherCityName: false property bool hideWeatherCityName: false
property bool autoLocate: true
} }
// calendar // calendar
@@ -74,16 +74,37 @@ ColumnLayout {
} }
NText { NText {
visible: LocationService.coordinatesReady text: LocationService.coordinatesReady ? I18n.tr("system.location-display", {
text: I18n.tr("system.location-display", { "name": LocationService.stableName,
"name": LocationService.stableName, "coordinates": LocationService.displayCoordinates
"coordinates": LocationService.displayCoordinates }) : ""
})
pointSize: Style.fontSizeS pointSize: Style.fontSizeS
color: Color.mOnSurfaceVariant color: Color.mOnSurfaceVariant
} }
} }
// Auto-locate
RowLayout {
Layout.fillWidth: true
spacing: Style.marginM
NToggle {
Layout.fillWidth: true
label: I18n.tr("panels.location.auto-locate-label")
description: I18n.tr("panels.location.auto-locate-description")
checked: Settings.data.location.autoLocate
onToggled: checked => Settings.data.location.autoLocate = checked
defaultValue: Settings.getDefaultValue("location.autoLocate")
}
NButton {
text: I18n.tr("panels.location.geolocate-now-button")
icon: "current-location"
enabled: !LocationService.isFetchingWeather
onClicked: LocationService.geolocateAndApply()
}
}
ColumnLayout { ColumnLayout {
spacing: Style.marginL spacing: Style.marginL
Layout.fillWidth: true Layout.fillWidth: true
+50
View File
@@ -70,6 +70,16 @@ Singleton {
return `${lat}, ${lon}`; return `${lat}, ${lon}`;
} }
// Auto-geolocate timer - periodically updates location via IP geolocation
Timer {
id: autoLocateTimer
interval: 30 * 60 * 1000
running: Settings.data.location.autoLocate
repeat: true
triggeredOnStart: true
onTriggered: root.geolocateAndApply()
}
// Update timer runs when weather is enabled or location-based scheduling is active // Update timer runs when weather is enabled or location-based scheduling is active
Timer { Timer {
id: updateTimer id: updateTimer
@@ -244,6 +254,46 @@ Singleton {
xhr.send(); xhr.send();
} }
// Geolocate via IP address using the Noctalia API
function geolocate(callback, errorCallback) {
Logger.d("Location", "Geolocating via IP");
var url = "https://api.noctalia.dev/geolocate";
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState === XMLHttpRequest.DONE) {
if (xhr.status === 200) {
try {
var data = JSON.parse(xhr.responseText);
if (data.lat != null) {
callback(data.lat, data.lng, data.city, data.country);
} else {
errorCallback("Location", "Geolocate: no coordinates returned");
}
} catch (e) {
errorCallback("Location", "Failed to parse geolocate data: " + e);
}
} else {
errorCallback("Location", "Geolocate error: " + xhr.status);
}
}
};
xhr.open("GET", url);
xhr.send();
}
// Geolocate via IP and apply the result as the current location
function geolocateAndApply() {
if (isFetchingWeather) {
Logger.w("Location", "Geolocate skipped, fetch already in progress");
return;
}
geolocate(function (lat, lng, city, country) {
Logger.i("Location", "Geolocated to", city + ",", country);
Settings.data.location.name = city;
resetWeather();
}, errorCallback);
}
// -------------------------------- // --------------------------------
function errorCallback(module, message) { function errorCallback(module, message) {
Logger.e(module, message); Logger.e(module, message);