Frontend übersetzen mit widgetOverride und eventMap (am Beispiel ROOMMATE)

Begonnen von Loredo, 10 Februar 2015, 16:53:13

Vorheriges Thema - Nächstes Thema

Loredo

Hallo,


ein kurzer Trick, um die in der Oberfläche oft in Englisch dargestellten Values zu übersetzen.


Am Beispiel eines ROOMMATE Devices lässt sich dies sehr gut veranschaulichen:



define rr_Mitbewohner ROOMMATE
attr alias Status
attr devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown
attr icon people_sensor
group Mitbewohner
attr rr_realname group
webCmd state



Die Darstellung ist dann wie in Screenshot 1 in Englisch.


Möchte man es nun wie in Screenshot 2 in Deutsch dargestellt haben, kann man durch die Attribute widgetOverride und eventMap die Texte übersetzen:




define rr_Mitbewohner ROOMMATE
attr alias Status
attr devStateIcon .*zu_Hause:user_available:absent .*abwesend:user_away:home .*verreist:user_ext_away:home .*bettfein:scene_toilet:asleep .*schläft:scene_sleeping:awoken .*aufgestanden:scene_sleeping_alternat:home .*:user_unknown
attr eventMap home:zu_Hause absent:abwesend gone:verreist gotosleep:bettfein asleep:schläft awoken:aufgestanden
attr icon people_sensor
group Mitbewohner
attr rr_realname group
attr webCmd state
attr widgetOverride state:zu_Hause,bettfein,abwesend,verreist



Wenn auch devStateIcon entsprechend angepasst wird, erhält man eine vollständige Übersetzung.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Dangermouse

Hallo Loredo,

danke für dieses kleine HowTo, hat nahezu prima funktioniert, die Wohnung selber habe ich mit den Auswahlmöglichkeiten "bewohnt" und "unbewohnt" versehen, fand ich etwas schöner und passender.

hier mein Code dazu:
devStateIcon
.*bewohnt:user_available:absent .*unbewohnt:user_away:home .*verreist:user_ext_away:home .*bettfein:scene_toilet:asleep .*schläft:scene_sleeping:awoken .*aufgestanden:scene_sleeping_alternat:home .*:user_unknown

eventMap
home:bewohnt absent:unbewohnt gone:verreist gotosleep:bettfein asleep:schläft awoken:aufgestanden

widgetOverride
state:bewohnt,bettfein,unbewohnt,verreist,schläft,aufgestanden
, für diejenigen, die es "nachbauen" möchten.
Hier gibt es allerdings noch einen kleinen Schönheitsfehler, das devStateIcon bleibt beim Status "unbewohnt" auf user_available stehen, anstelle auf user_away zu wechseln.

Und wäre es auch möglich den mood "einzudeutschen"?
Ich habe mal versucht das eventMap entsprechend zu erweitern, allerdings ziemlich erfolglos.  :-[ :-\
Hast du noch einen Tip für mich? ;)

Liebe Grüße
Thorsten
FHEM auf Synology-NAS via Docker
piVCCU
HM-LAN & SCC 868 (MAX!) als Funkschnittstelle

Loredo

Du musst mood in beide Richtungen übersetzen, also je Wert zwei Einträge machen:


deutsch:englisch englisch:deutsch


Ist aber reines FHEM Wissen ;)
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

ChristianKnorr

Danke für den Übersetzungs-Trick :)

Um bei dem Beispiel zu bleiben, habe ich für mich folgendes übersetzt:

RESIDENTS:
Die Zustände heißen (unterstrichene sind auswählbar):
Ja|Nein (Jemand|Niemand anwesend), Verreist, Bettfertig, Schläft und Aufgestanden
devStateIcon:.*Ja:status_available:absent .*Nein:status_away_1:home .*Verreist:status_standby:home .*Verreist:control_building_empty .*Bettfertig:status_night:asleep .*Schläft:status_night:awoken .*Aufgewacht:status_available:home .*:user_unknown:home
eventMap:home:Ja absent:Nein gone:Verreist gotosleep:Bettfertig asleep:Schläft awoken:Aufgestanden
widgetOverride:state:Ja,Bettfertig,Nein,Verreist

ROOMMATE:
Die Zustände heißen (unterstrichene sind auswählbar):
Zu_Hause, Außerhaus, Verreist, Bettfertig, Schläft und Aufgestanden
devStateIcon:.*Zu_Hause:user_available:absent .*Außerhaus:user_away:home .*Verreist:user_ext_away:home .*Bettfertig:scene_toilet:asleep .*Schläft:scene_sleeping:awoken .*Aufgestanden:scene_sleeping_alternat:home .*:user_unknown
eventMap:home:Zu_Hause absent:Außerhaus gone:Verreist gotosleep:Bettfertig asleep:Schläft awoken:Aufgestanden
widgetOverride:state:Zu_Hause,Bettfertig,Außerhaus,Verreist

GUEST:
Die Zustände heißen (unterstrichene sind auswählbar):
Ja, Gehend, Nein, Bettfertig, Schläft und Aufgestanden
devStateIcon:.*Ja:user_available:absent .*Gehend:user_away:home .*Nein:user_ext_away:home .*Bettfertig:scene_toilet:asleep .*Schläft:scene_sleeping:awoken .*Aufgestanden:scene_sleeping_alternat:home .*:user_unknown
eventMap:home:Ja absent:Gehend none:Nein gotosleep:Bettfertig asleep:Schläft awoken:Aufgestanden
widgetOverride:state:Ja,Bettfertig,Gehend,Nein

ChristianKnorr

#4
Mood habe ich folgendermaßen übersetzt:
eventMap:calm:Gelassen relaxed:Entspannt happy:Glücklich excited:Aufgeregt lonely:Einsam sad:Traurig bored:Gelangweilt stressed:Gestresst uncomfortable:Unbehaglich sleepy:Müde angry:Verärgert toggle:Voriger_Status home:Zu_Hause absent:Außerhaus gone:Verreist gotosleep:Bettfertig asleep:Schläft awoken:Aufgestanden
widgetOverride:state:Zu_Hause,Bettfertig,Außerhaus,Verreist mood:-,Gelassen,Entspannt,Glücklich,Aufgeregt,Einsam,Traurig,Gelangweilt,Gestresst,Unbehaglich,Müde,Verärgert,Voriger_Status

edit: Fehler: Leerzeichen sind nicht erlaubt ;)

Loredo

Über das Attribut rr_moods ist das viel einfacher. Kommt aber auch drauf an, ob man in seinem Code gerne auf die englischen Werte triggern möchte und in der Anzeige Deutsch haben möchte (so möchte ich es haben).
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

ChristianKnorr

So ist mir das auch lieber (englischer Status, Deutsche Anzeige)

Wie ist es denn über das Attribut rr_moods zu machen?