Skip to content

Commit 27a4f2c

Browse files
Tiwasclaude
andcommitted
i18n: full 11-language coverage for Circadian Light Group flow cards
Expand all new and modified circadian flow cards (triggers, conditions, actions including the app-level solar event trigger) from en+no to all 11 supported languages: en, no, da, de, es, fi, fr, it, nl, pl, sv. Covers titles, hints, dropdown labels (solar events, units, directions, phases, force-red states), placeholders and titleFormatted strings. HTML pair/repair locale work is next. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 82046b4 commit 27a4f2c

21 files changed

Lines changed: 559 additions & 93 deletions

no.tiwas.booleantoolbox/.homeycompose/flow/actions/clg_apply_state.json

Lines changed: 60 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,29 @@
22
"id": "clg_apply_state",
33
"title": {
44
"en": "Apply temporary state",
5-
"no": "Påfør midlertidig tilstand"
5+
"no": "Påfør midlertidig tilstand",
6+
"de": "Temporären Zustand anwenden",
7+
"nl": "Tijdelijke staat toepassen",
8+
"fr": "Appliquer un état temporaire",
9+
"da": "Anvend midlertidig tilstand",
10+
"fi": "Käytä väliaikaista tilaa",
11+
"sv": "Tillämpa tillfälligt tillstånd",
12+
"pl": "Zastosuj stan tymczasowy",
13+
"it": "Applica stato temporaneo",
14+
"es": "Aplicar estado temporal"
615
},
716
"hint": {
817
"en": "Pushes the given values to all managed lights right now. Empty fields are skipped. Values are temporary — the next scheduler tick (~2 min) restores calculated values.",
9-
"no": "Sender de angitte verdiene til alle styrte lys umiddelbart. Tomme felt hoppes over. Verdiene er midlertidige — neste scheduler-tick (~2 min) gjenoppretter beregnede verdier."
18+
"no": "Sender de angitte verdiene til alle styrte lys umiddelbart. Tomme felt hoppes over. Verdiene er midlertidige — neste scheduler-tick (~2 min) gjenoppretter beregnede verdier.",
19+
"de": "Sendet die angegebenen Werte sofort an alle verwalteten Lichter. Leere Felder werden übersprungen. Werte sind temporär — der nächste Scheduler-Tick (~2 Min) stellt berechnete Werte wieder her.",
20+
"nl": "Stuurt de opgegeven waarden onmiddellijk naar alle beheerde lampen. Lege velden worden overgeslagen. Waarden zijn tijdelijk — de volgende scheduler-tick (~2 min) herstelt berekende waarden.",
21+
"fr": "Envoie immédiatement les valeurs données à toutes les lumières gérées. Les champs vides sont ignorés. Les valeurs sont temporaires — le prochain tick du planificateur (~2 min) restaure les valeurs calculées.",
22+
"da": "Sender de angivne værdier til alle styrede lys med det samme. Tomme felter springes over. Værdierne er midlertidige — næste scheduler-tick (~2 min) gendanner beregnede værdier.",
23+
"fi": "Lähettää annetut arvot kaikille hallituille valoille heti. Tyhjät kentät ohitetaan. Arvot ovat väliaikaisia — seuraava ajastimen tikki (~2 min) palauttaa lasketut arvot.",
24+
"sv": "Skickar de angivna värdena till alla hanterade lampor omedelbart. Tomma fält hoppas över. Värdena är tillfälliga — nästa schemaläggar-tick (~2 min) återställer beräknade värden.",
25+
"pl": "Wysyła podane wartości do wszystkich zarządzanych lamp natychmiast. Puste pola są pomijane. Wartości są tymczasowe — następny tick harmonogramu (~2 min) przywraca obliczone wartości.",
26+
"it": "Invia immediatamente i valori indicati a tutte le luci gestite. I campi vuoti vengono saltati. I valori sono temporanei — il prossimo tick dello scheduler (~2 min) ripristina i valori calcolati.",
27+
"es": "Envía los valores dados a todas las luces gestionadas inmediatamente. Los campos vacíos se omiten. Los valores son temporales — el próximo tick del planificador (~2 min) restaura los valores calculados."
1028
},
1129
"args": [
1230
{
@@ -17,7 +35,14 @@
1735
{
1836
"type": "number",
1937
"name": "dim",
20-
"title": { "en": "Dim (0–1, blank = skip)", "no": "Dim (0–1, tom = hopp over)" },
38+
"title": {
39+
"en": "Dim (0–1, blank = skip)", "no": "Dim (0–1, tom = hopp over)",
40+
"de": "Dimmen (0–1, leer = überspringen)", "nl": "Dimmen (0–1, leeg = overslaan)",
41+
"fr": "Dim (0–1, vide = ignorer)", "da": "Dæmp (0–1, tom = spring over)",
42+
"fi": "Himmennys (0–1, tyhjä = ohita)", "sv": "Dimning (0–1, tom = hoppa över)",
43+
"pl": "Ściemnianie (0–1, puste = pomiń)", "it": "Dim (0–1, vuoto = salta)",
44+
"es": "Atenuación (0–1, vacío = omitir)"
45+
},
2146
"min": 0,
2247
"max": 1,
2348
"step": 0.01,
@@ -26,7 +51,14 @@
2651
{
2752
"type": "number",
2853
"name": "temperature",
29-
"title": { "en": "Temperature (0–1, blank = skip)", "no": "Temperatur (0–1, tom = hopp over)" },
54+
"title": {
55+
"en": "Temperature (0–1, blank = skip)", "no": "Temperatur (0–1, tom = hopp over)",
56+
"de": "Temperatur (0–1, leer = überspringen)", "nl": "Temperatuur (0–1, leeg = overslaan)",
57+
"fr": "Température (0–1, vide = ignorer)", "da": "Temperatur (0–1, tom = spring over)",
58+
"fi": "Lämpötila (0–1, tyhjä = ohita)", "sv": "Temperatur (0–1, tom = hoppa över)",
59+
"pl": "Temperatura (0–1, puste = pomiń)", "it": "Temperatura (0–1, vuoto = salta)",
60+
"es": "Temperatura (0–1, vacío = omitir)"
61+
},
3062
"min": 0,
3163
"max": 1,
3264
"step": 0.01,
@@ -35,7 +67,14 @@
3567
{
3668
"type": "number",
3769
"name": "saturation",
38-
"title": { "en": "Saturation (0–1, blank = skip)", "no": "Metning (0–1, tom = hopp over)" },
70+
"title": {
71+
"en": "Saturation (0–1, blank = skip)", "no": "Metning (0–1, tom = hopp over)",
72+
"de": "Sättigung (0–1, leer = überspringen)", "nl": "Verzadiging (0–1, leeg = overslaan)",
73+
"fr": "Saturation (0–1, vide = ignorer)", "da": "Mætning (0–1, tom = spring over)",
74+
"fi": "Saturaatio (0–1, tyhjä = ohita)", "sv": "Mättnad (0–1, tom = hoppa över)",
75+
"pl": "Nasycenie (0–1, puste = pomiń)", "it": "Saturazione (0–1, vuoto = salta)",
76+
"es": "Saturación (0–1, vacío = omitir)"
77+
},
3978
"min": 0,
4079
"max": 1,
4180
"step": 0.01,
@@ -44,11 +83,25 @@
4483
{
4584
"type": "checkbox",
4685
"name": "force_red",
47-
"title": { "en": "Force red color", "no": "Tving rød farge" }
86+
"title": {
87+
"en": "Force red color", "no": "Tving rød farge", "de": "Rote Farbe erzwingen",
88+
"nl": "Forceer rode kleur", "fr": "Forcer la couleur rouge", "da": "Tving rød farve",
89+
"fi": "Pakota punainen väri", "sv": "Tvinga röd färg", "pl": "Wymuś czerwony kolor",
90+
"it": "Forza colore rosso", "es": "Forzar color rojo"
91+
}
4892
}
4993
],
5094
"titleFormatted": {
5195
"en": "Apply state — dim [[dim]], temp [[temperature]], sat [[saturation]], red [[force_red]]",
52-
"no": "Påfør tilstand — dim [[dim]], temp [[temperature]], met [[saturation]], rød [[force_red]]"
96+
"no": "Påfør tilstand — dim [[dim]], temp [[temperature]], met [[saturation]], rød [[force_red]]",
97+
"de": "Zustand anwenden — Dim [[dim]], Temp [[temperature]], Sätt [[saturation]], Rot [[force_red]]",
98+
"nl": "Staat toepassen — dim [[dim]], temp [[temperature]], verz [[saturation]], rood [[force_red]]",
99+
"fr": "Appliquer état — dim [[dim]], temp [[temperature]], sat [[saturation]], rouge [[force_red]]",
100+
"da": "Anvend tilstand — dæmp [[dim]], temp [[temperature]], mætning [[saturation]], rød [[force_red]]",
101+
"fi": "Käytä tila — himm [[dim]], lämpö [[temperature]], sat [[saturation]], punainen [[force_red]]",
102+
"sv": "Tillämpa tillstånd — dim [[dim]], temp [[temperature]], mätt [[saturation]], röd [[force_red]]",
103+
"pl": "Zastosuj stan — ścim [[dim]], temp [[temperature]], nas [[saturation]], czerw [[force_red]]",
104+
"it": "Applica stato — dim [[dim]], temp [[temperature]], sat [[saturation]], rosso [[force_red]]",
105+
"es": "Aplicar estado — atenuación [[dim]], temp [[temperature]], sat [[saturation]], rojo [[force_red]]"
53106
}
54107
}

no.tiwas.booleantoolbox/.homeycompose/flow/actions/clg_force_red_mode.json

Lines changed: 72 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,29 @@
22
"id": "clg_force_red_mode",
33
"title": {
44
"en": "Force red mode",
5-
"no": "Tving rødmodus"
5+
"no": "Tving rødmodus",
6+
"de": "Rotmodus erzwingen",
7+
"nl": "Rode modus forceren",
8+
"fr": "Forcer le mode rouge",
9+
"da": "Tving rød tilstand",
10+
"fi": "Pakota punainen tila",
11+
"sv": "Tvinga röd läge",
12+
"pl": "Wymuś tryb czerwony",
13+
"it": "Forza modalità rossa",
14+
"es": "Forzar modo rojo"
615
},
716
"hint": {
817
"en": "Forces red mode on or off, optionally for a duration. Set duration to 0 to keep until manually changed.",
9-
"no": "Tvinger rødmodus på eller av, eventuelt for en varighet. Sett varighet til 0 for å beholde til manuell endring."
18+
"no": "Tvinger rødmodus på eller av, eventuelt for en varighet. Sett varighet til 0 for å beholde til manuell endring.",
19+
"de": "Erzwingt Rotmodus ein oder aus, optional für eine Dauer. Setzen Sie die Dauer auf 0, um bis zur manuellen Änderung beizubehalten.",
20+
"nl": "Forceert rode modus aan of uit, optioneel voor een duur. Stel duur in op 0 om te behouden tot handmatig gewijzigd.",
21+
"fr": "Force le mode rouge activé ou désactivé, éventuellement pour une durée. Définissez la durée à 0 pour conserver jusqu'à modification manuelle.",
22+
"da": "Tvinger rød tilstand til eller fra, eventuelt for en varighed. Sæt varighed til 0 for at beholde til manuel ændring.",
23+
"fi": "Pakottaa punaisen tilan päälle tai pois, valinnaisesti tietyksi ajaksi. Aseta kesto arvoon 0 säilyttääksesi manuaaliseen muutokseen asti.",
24+
"sv": "Tvingar röd läge på eller av, valfritt för en varaktighet. Sätt varaktighet till 0 för att behålla till manuell ändring.",
25+
"pl": "Wymusza tryb czerwony włączony lub wyłączony, opcjonalnie na czas trwania. Ustaw czas trwania na 0, aby zachować do ręcznej zmiany.",
26+
"it": "Forza la modalità rossa attiva o disattivata, opzionalmente per una durata. Imposta durata a 0 per mantenere fino a modifica manuale.",
27+
"es": "Fuerza el modo rojo activado o desactivado, opcionalmente durante una duración. Establezca la duración en 0 para mantener hasta el cambio manual."
1028
},
1129
"args": [
1230
{
@@ -17,25 +35,70 @@
1735
{
1836
"type": "dropdown",
1937
"name": "state",
20-
"title": { "en": "State", "no": "Tilstand" },
38+
"title": {
39+
"en": "State", "no": "Tilstand", "de": "Zustand", "nl": "Staat",
40+
"fr": "État", "da": "Tilstand", "fi": "Tila", "sv": "Tillstånd",
41+
"pl": "Stan", "it": "Stato", "es": "Estado"
42+
},
2143
"values": [
22-
{ "id": "on", "label": { "en": "On", "no": "" } },
23-
{ "id": "off", "label": { "en": "Off", "no": "Av" } },
24-
{ "id": "clear", "label": { "en": "Clear override", "no": "Fjern overstyring" } }
44+
{
45+
"id": "on",
46+
"label": {
47+
"en": "On", "no": "", "de": "Ein", "nl": "Aan", "fr": "Activé",
48+
"da": "Til", "fi": "Päällä", "sv": "", "pl": "Włącz", "it": "Acceso", "es": "Encendido"
49+
}
50+
},
51+
{
52+
"id": "off",
53+
"label": {
54+
"en": "Off", "no": "Av", "de": "Aus", "nl": "Uit", "fr": "Désactivé",
55+
"da": "Fra", "fi": "Pois", "sv": "Av", "pl": "Wyłącz", "it": "Spento", "es": "Apagado"
56+
}
57+
},
58+
{
59+
"id": "clear",
60+
"label": {
61+
"en": "Clear override", "no": "Fjern overstyring", "de": "Überschreibung löschen",
62+
"nl": "Overschrijving wissen", "fr": "Effacer la dérogation", "da": "Fjern tilsidesættelse",
63+
"fi": "Poista ohitus", "sv": "Rensa överstyrning", "pl": "Wyczyść nadpisanie",
64+
"it": "Annulla override", "es": "Borrar anulación"
65+
}
66+
}
2567
]
2668
},
2769
{
2870
"type": "number",
2971
"name": "duration_minutes",
30-
"title": { "en": "Duration (minutes, 0 = until cleared)", "no": "Varighet (minutter, 0 = til fjernet)" },
72+
"title": {
73+
"en": "Duration (minutes, 0 = until cleared)",
74+
"no": "Varighet (minutter, 0 = til fjernet)",
75+
"de": "Dauer (Minuten, 0 = bis gelöscht)",
76+
"nl": "Duur (minuten, 0 = tot gewist)",
77+
"fr": "Durée (minutes, 0 = jusqu'à effacé)",
78+
"da": "Varighed (minutter, 0 = indtil fjernet)",
79+
"fi": "Kesto (minuutteja, 0 = kunnes poistettu)",
80+
"sv": "Varaktighet (minuter, 0 = tills rensat)",
81+
"pl": "Czas trwania (minuty, 0 = do wyczyszczenia)",
82+
"it": "Durata (minuti, 0 = fino a cancellazione)",
83+
"es": "Duración (minutos, 0 = hasta borrar)"
84+
},
3185
"min": 0,
3286
"max": 1440,
3387
"step": 1,
34-
"placeholder": { "en": "0", "no": "0" }
88+
"placeholder": { "en": "0", "no": "0", "de": "0", "nl": "0", "fr": "0", "da": "0", "fi": "0", "sv": "0", "pl": "0", "it": "0", "es": "0" }
3589
}
3690
],
3791
"titleFormatted": {
3892
"en": "Force red mode [[state]] for [[duration_minutes]] min",
39-
"no": "Tving rødmodus [[state]] i [[duration_minutes]] min"
93+
"no": "Tving rødmodus [[state]] i [[duration_minutes]] min",
94+
"de": "Rotmodus [[state]] für [[duration_minutes]] Min erzwingen",
95+
"nl": "Rode modus [[state]] forceren voor [[duration_minutes]] min",
96+
"fr": "Forcer le mode rouge [[state]] pendant [[duration_minutes]] min",
97+
"da": "Tving rød tilstand [[state]] i [[duration_minutes]] min",
98+
"fi": "Pakota punainen tila [[state]] [[duration_minutes]] min ajaksi",
99+
"sv": "Tvinga röd läge [[state]] i [[duration_minutes]] min",
100+
"pl": "Wymuś tryb czerwony [[state]] na [[duration_minutes]] min",
101+
"it": "Forza modalità rossa [[state]] per [[duration_minutes]] min",
102+
"es": "Forzar modo rojo [[state]] durante [[duration_minutes]] min"
40103
}
41104
}

no.tiwas.booleantoolbox/.homeycompose/flow/actions/clg_pause.json

Lines changed: 65 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,29 @@
22
"id": "clg_pause",
33
"title": {
44
"en": "Pause circadian light group",
5-
"no": "Pause dognrytme-lysgruppe"
5+
"no": "Pause døgnrytme-lysgruppe",
6+
"de": "Zirkadiane Lichtgruppe pausieren",
7+
"nl": "Circadiane lichtgroep pauzeren",
8+
"fr": "Mettre en pause le groupe de lumière circadien",
9+
"da": "Pause døgnrytme-lysgruppe",
10+
"fi": "Keskeytä vuorokausirytmi-valoryhmä",
11+
"sv": "Pausa cirkadisk ljusgrupp",
12+
"pl": "Wstrzymaj grupę światła rytmu okołodobowego",
13+
"it": "Metti in pausa il gruppo luce circadiano",
14+
"es": "Pausar grupo de luz circadiana"
615
},
716
"hint": {
817
"en": "Pauses automatic adjustments. Use amount 0 to pause until resumed manually.",
9-
"no": "Pauser automatiske justeringer. Bruk 0 for pause til manuell gjenopptakelse."
18+
"no": "Pauser automatiske justeringer. Bruk 0 for pause til manuell gjenopptakelse.",
19+
"de": "Pausiert automatische Anpassungen. Verwenden Sie Menge 0, um bis zur manuellen Fortsetzung zu pausieren.",
20+
"nl": "Pauzeert automatische aanpassingen. Gebruik hoeveelheid 0 om te pauzeren tot handmatig hervat.",
21+
"fr": "Met en pause les ajustements automatiques. Utilisez la quantité 0 pour mettre en pause jusqu'à la reprise manuelle.",
22+
"da": "Pauser automatiske justeringer. Brug 0 for pause indtil manuel genoptagelse.",
23+
"fi": "Keskeyttää automaattiset säädöt. Käytä määrää 0 keskeyttääksesi, kunnes jatketaan manuaalisesti.",
24+
"sv": "Pausar automatiska justeringar. Använd mängd 0 för att pausa tills manuellt återupptaget.",
25+
"pl": "Wstrzymuje automatyczne dostosowania. Użyj ilości 0, aby wstrzymać do ręcznego wznowienia.",
26+
"it": "Mette in pausa le regolazioni automatiche. Usa quantità 0 per mettere in pausa fino alla ripresa manuale.",
27+
"es": "Pausa los ajustes automáticos. Use cantidad 0 para pausar hasta la reanudación manual."
1028
},
1129
"args": [
1230
{
@@ -17,22 +35,60 @@
1735
{
1836
"type": "number",
1937
"name": "amount",
20-
"title": { "en": "Amount", "no": "Mengde" },
21-
"placeholder": { "en": "10", "no": "10" }
38+
"title": {
39+
"en": "Amount", "no": "Mengde", "de": "Menge", "nl": "Hoeveelheid",
40+
"fr": "Quantité", "da": "Mængde", "fi": "Määrä", "sv": "Mängd",
41+
"pl": "Ilość", "it": "Quantità", "es": "Cantidad"
42+
},
43+
"placeholder": { "en": "10", "no": "10", "de": "10", "nl": "10", "fr": "10", "da": "10", "fi": "10", "sv": "10", "pl": "10", "it": "10", "es": "10" }
2244
},
2345
{
2446
"type": "dropdown",
2547
"name": "unit",
26-
"title": { "en": "Unit", "no": "Enhet" },
48+
"title": {
49+
"en": "Unit", "no": "Enhet", "de": "Einheit", "nl": "Eenheid",
50+
"fr": "Unité", "da": "Enhed", "fi": "Yksikkö", "sv": "Enhet",
51+
"pl": "Jednostka", "it": "Unità", "es": "Unidad"
52+
},
2753
"values": [
28-
{ "id": "seconds", "label": { "en": "Seconds", "no": "Sekunder" } },
29-
{ "id": "minutes", "label": { "en": "Minutes", "no": "Minutter" } },
30-
{ "id": "hours", "label": { "en": "Hours", "no": "Timer" } }
54+
{
55+
"id": "seconds",
56+
"label": {
57+
"en": "Seconds", "no": "Sekunder", "de": "Sekunden", "nl": "Seconden",
58+
"fr": "Secondes", "da": "Sekunder", "fi": "Sekuntia", "sv": "Sekunder",
59+
"pl": "Sekundy", "it": "Secondi", "es": "Segundos"
60+
}
61+
},
62+
{
63+
"id": "minutes",
64+
"label": {
65+
"en": "Minutes", "no": "Minutter", "de": "Minuten", "nl": "Minuten",
66+
"fr": "Minutes", "da": "Minutter", "fi": "Minuuttia", "sv": "Minuter",
67+
"pl": "Minuty", "it": "Minuti", "es": "Minutos"
68+
}
69+
},
70+
{
71+
"id": "hours",
72+
"label": {
73+
"en": "Hours", "no": "Timer", "de": "Stunden", "nl": "Uren",
74+
"fr": "Heures", "da": "Timer", "fi": "Tuntia", "sv": "Timmar",
75+
"pl": "Godziny", "it": "Ore", "es": "Horas"
76+
}
77+
}
3178
]
3279
}
3380
],
3481
"titleFormatted": {
3582
"en": "Pause for [[amount]] [[unit]]",
36-
"no": "Pause i [[amount]] [[unit]]"
83+
"no": "Pause i [[amount]] [[unit]]",
84+
"de": "Für [[amount]] [[unit]] pausieren",
85+
"nl": "Pauzeer voor [[amount]] [[unit]]",
86+
"fr": "Mettre en pause pendant [[amount]] [[unit]]",
87+
"da": "Pause i [[amount]] [[unit]]",
88+
"fi": "Keskeytä [[amount]] [[unit]]",
89+
"sv": "Pausa i [[amount]] [[unit]]",
90+
"pl": "Wstrzymaj na [[amount]] [[unit]]",
91+
"it": "Metti in pausa per [[amount]] [[unit]]",
92+
"es": "Pausar durante [[amount]] [[unit]]"
3793
}
3894
}

0 commit comments

Comments
 (0)