Forum Francophone Home Assistant

Les noms des mois sont en Anglais

Bonjour à tous,

Dans une de mes notifications faite par Telegram, j’utilise un message contenant la date d’un évènement grâce à l’expression suivante : « L’évènement s’est produit le {{ now().strftime(’%d %B %Y’) }} ».

Ca fonctionne correctement sauf que le nom du mois est affiché en Anglais alors que la documentation officielle Python de la fonction strftime indique bien que %B fait afficher le « Nom complet du mois dans la langue locale ».

Mon Home Assistant étant bien paramétré en France, je ne comprends donc pas pourquoi mes noms de mois sont en Anglais.

Toutes les suggestions seront bienvenues pour m’aider à résoudre ce qui, je le crains, risque d’être un bug. :wink:

1 J'aime

bonjour,
il me semble que cela avait était réglé dans une mise a jours.
mais une solution diy est dispo ici.


stefan

Bonjour et merci pour ta réponse rapide.

Je connaissais déjà le post vers lequel tu m’envoie mais il ne me satisfait pas vraiment.

En effet, il fait ajouter à ce « pauvre » Home Assistant déjà bien chargé une usine à gaz alors que Python, depuis sa version 3.6 supporte automatiquement les jours et mois exprimés en Français sans que l’on ait rien à faire de particulier.

Si j’en crois les infos de ma version de Home Assistant, il tourne sur la version 3.9 de Python, donc bien plus récente que la vieille 3.6 depuis laquelle cette possibilité est offerte.

Plutôt que de contourner le problème, je préfèrerai savoir pourquoi ça ne marche pas ici.

1 J'aime

Un début de réponse :

1 J'aime

Bonjour Clemalex et merci pour ta réponse.

Elle me permet de comprendre pourquoi les mois ne sont pas en Français mais, même en consultant le sujet dont tu me donnes le lien, je ne vois pas comment faire.

En effet, la date qui m’intéresse est contenue dans un message que je fais envoyer par une notification Telegram de la façon suivante :

service: notify.telegram
data:
  message: >-
    La température du congélateur de droite est supérieure à -17°C depuis {{
    now().strftime('%H:%M') }} le {{ now().strftime('%d %B %Y') }}

Dans ces conditions, je ne vois pas où il faudrait que je place la définition des mois en Français présentée dans ton lien pour modifier le comportement de la fonction strftime qui est une fonction Python native.

Je suis désolé mais je débute sur Home Assistant et, même si je sais programmer dans des langages « classiques » (C par exemple) la syntaxe et surtout l’organisation des fichiers de Home Assistant me déroute un peu :upside_down_face:

1 J'aime

Bonsoir une fois tes sensors crée (mois jours) je pense que tu dois pouvoir quelque chose du style: |custom Time .
j’avoue que la date 12/12/2021 me suffit donc je n’ai pas pousser plus loin. Mais si tu trouve ça aidera d’autres très certainement.
Stefan

devient :

service: notify.telegram
data:
  message: >-
    {% set month = ["", "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"] %}
    La température du congélateur de droite est supérieure à -17°C depuis {{ now().strftime('%H:%M') }} le {{ now().day }} {{ month[now().month] }} {{ now().year }}

1 J'aime

Bonjour Clemalex et merci pour ta réponse.

Effectivement ce que tu proposes fonctionne, résout mon problème et je t’en remercie.

Ceci étant cela renforce mon incompréhension du choix fait par les développeurs de HA de ne pas avoir utilisé la localisation du langage permise par les dernières versions de Python qui aurait permis d’éviter cela.

Merci encore pour ton aide (rapide en plus :wink:).

2 J'aimes