Paquete tis-arduino en francés

Preguntas sobre paquetes WAPT / Solicitudes y ayuda sobre paquetes WAPT.
Reglas del foro
Reglas del foro de la comunidad
* Soporte en inglés en www.reddit.com/r/wapt
* El soporte de la comunidad en francés está disponible en este foro
* Por favor, anteponga [RESUELTO] al título del tema si está resuelto.
* Por favor, no edite un tema que esté etiquetado como [RESUELTO]. Abra un nuevo tema haciendo referencia al anterior.
* Especifique la versión de WAPT instalada, la versión completa y el número de compilación (2.2.1.11957 / 2.2.2.12337 / etc.), así como la edición Enterprise/Discovery.
* Las versiones 1.8.2 y anteriores ya no son compatibles. Las únicas preguntas aceptadas sobre la versión 1.8.2 están relacionadas con la actualización a una versión compatible (2.1, 2.2, etc.).
* Especifique el sistema operativo del servidor (Linux/Windows) y la versión (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Especifique el sistema operativo de la máquina de administración/creación de paquetes y de la máquina con el agente problemático, si corresponde (Windows 7/10/11/Debian 11/etc.).
* Evite hacer varias preguntas al abrir un tema, ya que podría ser ignorado. Si hay varios temas, ábralos por separado, preferiblemente uno tras otro y no todos a la vez (es decir, no sature el foro con spam).
* Incluya fragmentos de código, capturas de pantalla y otras imágenes directamente en la publicación. Los enlaces a Pastebin, Bitly y otros sitios de terceros serán eliminados sistemáticamente.
* Como en cualquier foro comunitario, el soporte es proporcionado voluntariamente por los miembros. Si necesita soporte comercial, puede comunicarse con el departamento de ventas de Tranquil IT al 02.40.97.57.55.
Gaelds
Mensajes: 254
Inscripción: 22 de noviembre de 2015 - 08:37

4 de diciembre de 2023 - 14:15

Hola,
¿es posible instalar Arduino en francés directamente o configurarlo después de la instalación? No encuentro nada en el registro...
Avatar de usuario
blemoigne
Mensajes: 176
Inscripción: 17 de julio de 2020 - 11:29

4 de diciembre de 2023 - 15:38

Hola,
aquí tienes una buena idea (fuente: https://support.arduino.cc/hc/en-us/art ... rduino-IDE):

puedes editar directamente el archivo preferences.txt.

Cierra el IDE de Arduino.

Abre la carpeta Arduino15.

Abre preferences.txt.

Busca la línea editor.languages.current.

Modifica el valor para que diga editor.languages.current=en.

Guarda el archivo.

Abre el IDE de Arduino para ver los cambios.
Gaelds
Mensajes: 254
Inscripción: 22 de noviembre de 2015 - 08:37

4 de diciembre de 2023 - 15:46

No encontré el archivo preferences.txt en la carpeta de instalación de Arduino. Pero acabo de descubrir que se encuentra en C:\Users\<user> \.arduinoIDE\arduino-cli.yaml que se modifica.

Quería probar este código:

Código: Seleccionar todo

def session_setup():   
    ## Changement de langue du logiciel vers français
    settings_arduino = makepath(user_home_directory(),'.arduinoIDE','arduino-cli.yaml') 
    with open(settings_arduino, "rt") as file:
        x = file.read()
    with open(settings_arduino, "wt") as file:
        x = x.replace("locale: en", "locale: fr")
        fin.write(x)
Pero la carpeta ".arduinoIDE" solo se crea después de iniciar el software por primera vez, por lo que session_setup no hará nada... Y lo que es más, mi código es incorrecto; termino con un archivo arduino-cli.yaml vacío :)
Archivos adjuntos
2023-12-04 15_43_10-C__Usuarios_informaticos.DS_.arduinoIDE_arduino-cli.yaml - Bloc de notas++ [Administrador.jpg
2023-12-04 15_43_10-C__Users_informatique.DS_.arduinoIDE_arduino-cli.yaml - Notepad++ [Administrator.jpg (51,38 KB) Visto 12819 veces
Benoit
Mensajes: 43
Inscripción: 26 de junio de 2023 - 11:52
Ubicación: Tarbes

7 de diciembre de 2023 - 10:47

Buen día,

¿Por qué no usar un bucle while? Por ejemplo, algo como esto:

Código: Seleccionar todo

import os

def session_setup(): 
    try : # pour la gestion des erreurs
        ## Changement de langue du logiciel vers français
        file_exist = False # initialise la variable file_exist
        settings_arduino = makepath(user_home_directory(),'.arduinoIDE','arduino-cli.yaml') 
        while not file_exist: # boucle qui recommence tant que  file_exist n'est pas vrai
            if os.pah.exists(settings_arduino): # vérifie si le fichier de configuration existe
                with open(settings_arduino, "rt") as file:
                    x = file.read()
                with open(settings_arduino, "wt") as file:
                    x = x.replace("locale: en", "locale: fr")
                    fin.write(x)
                file_exist = True 
                print("Le fichier arduino-cli.yaml a été mis à jour )
            else :
                file_exist = False # renvoi false à la variable file_exist sir le fichier n'éxiste pas
    except Exception as e:
        print(f"L'erreur suivante s'est produite : {e}") 
 

En cuanto a modificar el archivo de configuración, preferí utilizar un script de terceros en AutoIt:

Código: Seleccionar todo

#include <FileConstants.au3>
#include <File.au3>
#include <StringConstants.au3>

Local $file_path = @UserProfileDir & "\.arduinoIDE\arduino-cli.yaml"
Local $yaml_file = @UserProfileDir & "\.arduinoIDE\arduino-cli.yaml"
Local $proxy_line = "proxy: ********************"
Local $file_exists = False

While (Not $file_exists)
    If FileExists($file_path) Then
        $file_exists = True
        
        ; Boucle pour tester si le proxy est présent
        While StringInStr(FileRead($yaml_file), $proxy_line) = 0
            ; Ajout du proxy
            FileWriteLine($yaml_file, "network:")
            FileWriteLine($yaml_file, "    proxy: **************************")
            Sleep(1000) ; Attendre 1 seconde
        WEnd
    Else
        Sleep(1000) ; Attendre 1 seconde
    EndIf
WEnd
Saludos,
Avatar de usuario
dcardón
Experto en WAPT
Mensajes: 1908
Inscripción: 18 de junio de 2014 - 09:58
Ubicación: Saint Sébastien sur Loire
Contacto :

12 de diciembre de 2023 - 12:11

Hola a todos,

@gaelds Probé modificando el archivo arduino-cli.yaml automáticamente, pero no parece tener ningún impacto (pero puedo confirmar que este archivo se modifica cuando hay un cambio en la GUI, pero hay muchas otras cosas que también se copian al mismo tiempo...

@Benoit, no se recomienda usar autoit; la parte de Python te permite manejar excepciones y otros escenarios.
@Benoit, no se recomienda usar un bucle while porque es más propenso a errores (en caso de excepciones, etc.)

Tras pasar media hora con este software, me horroriza bastante su deficiente (o inexistente) empaquetado. La instalación a nivel de sistema es un rollo; el software copia todo en el directorio del usuario al iniciarlo por primera vez, algo así como:
  • un poco en %HOMEPATH%/.arduinoIDE
  • Un poco en %APPDATA%\roaming\arduino IDE
  • un poco en %APPDATA%\roaming\arduino-ide
  • mucho en %APPDATA%\local\Arduino15 (>400MB)
  • mucho en %APPDATA%\local\arduino-ide-updater (>130 MB, solo para el actualizador que originalmente no queríamos...)


Y por supuesto no funciona en entornos AppLocker o SRP (como dicen algunos, "la seguridad es para los débiles", claramente nunca han visto ransomware en Arduino...).

No hay un archivo de configuración global y la precarga del controlador no es confiable por decir lo menos; el bloqueo de actualizaciones automáticas debería incluirse en una versión futura...

Tengo un colega en la oficina que lo instaló ayer en la máquina de su hijo (una PC reciclada), la instalación y el lanzamiento tomaron más de diez minutos, volvió directamente a la última versión 1.x.

En resumen, creo que Arduino no quiere ser implementado en las escuelas.

Atentamente,

Denis
Denis Cardon - Tranquil IT
¡Comparte tus experiencias en WAPT! Envíanos las URL de tus blogs y artículos en la "Tu opinión del foro y los publicaremos en el de WAPT
Avatar de usuario
Geoffroy
Mensajes: 75
Inscripciones: 28 de junio de 2022 - 15:34

18 de diciembre de 2023 - 10:56 a. m

Puedo confirmarlo, nuestra escuela lo usa y tuvimos que implementar una GPO. ¡Una verdadera pesadilla!.
Servidor: WAPT Enterprise 2.6.0.17226 en Debian 12;
Consolas: Windows 11
; Infraestructura: Windows
Avatar de usuario
dcardón
Experto en WAPT
Mensajes: 1908
Inscripción: 18 de junio de 2014 - 09:58
Ubicación: Saint Sébastien sur Loire
Contacto :

18 de diciembre de 2023 - 15:38

Hola Geoffroy,

si se trata de una GPO para la configuración inicial de Arduino 2, ¿podrías explicar cómo la configuraste? ¿Quizás podríamos usar session_setup()? No he podido hacerlo de forma consistente, así que si tienes los detalles de los pasos, ¡te lo agradecería :-) !

Saludos,

Denis
Denis Cardon - Tranquil IT
¡Comparte tus experiencias en WAPT! Envíanos las URL de tus blogs y artículos en la "Tu opinión del foro y los publicaremos en el de WAPT
olaplancha
Mensajes: 178
Inscripción: 26 de enero de 2017 - 11:11

6 de marzo de 2025 - 17:11

Estoy compartiendo mi paquete arduino-ide compatible con SRP, con la actualización automática deshabilitada y el francés como idioma predeterminado:

Prerrequisitos:
* Configure el software en francés por primera vez, luego copie la carpeta a continuación a la raíz del paquete:
C:\Usuarios\%nombreusuario%\AppData\Roaming\arduino-ide\Almacenamiento local\leveldb
* Cree un SRP sin restricciones en la carpeta "%AllUsersProfile%\Arduino15"

Código: Seleccionar todo

# -*- coding: utf-8 -*-
from setuphelpers import *
import platform

"""
Usable WAPT package functions: install(), uninstall(), session_setup(), audit(), update_package()

"""
# Declaring global variables - Warnings: 1) WAPT context is only available in package functions; 2) Global variables are not persistent between calls
bin_name_string = 'arduino-ide_%s_Windows_64bit.msi'

def install():
    # Declaring local variables
    package_version = control.get_software_version()
    bin_name = bin_name_string % package_version
    all_user_data = makepath(programdata,'Arduino15')

    # Installing the software
    install_msi_if_needed(bin_name,
        properties='/qn ALLUSERS=1',
        timeout=1200
    )
    print('Restricting permissions on %s' % all_user_data)
    if not isdir(all_user_data):
        mkdirs(all_user_data)
    run(r'icacls "%s" /t /grant *S-1-5-21-3299883279-2723331061-yyyyyyyyyy-xxxx:(OI)(CI)M' % all_user_data) # groupe AD ELEVES (Get-ADGroup -Identity ELEVES | select Name, SID)
    run(r'icacls "%s" /t /grant *S-1-5-21-3299883279-2723331061-yyyyyyyyyy-xxxx:(OI)(CI)M' % all_user_data) # groupe AD PROFESSEUR (Get-ADGroup -Identity PROFESSEUR | select Name, SID)

    print('Add Windows Firewall rules')
    add_netfirewallrule(r"Arduino IDE", r"C:\program files\Arduino-IDE\Arduino IDE.exe", profile="Domain")
    add_netfirewallrule(r"mdns-discovery", r"C:\ProgramData\arduino15\packages\builtin\tools\mdns-discovery\1.0.9\mdns-discovery.exe", profile="Domain")

    # Installing Arduino IDE user settings
    print('Copying Arduino IDE user settings to %s' % all_user_data)
    copytree2("leveldb","%s\leveldb" % all_user_data)

def session_setup():
    import tempfile
    # Declaring local variables
    all_user_data = makepath(programdata,'Arduino15')
    
    # Set Arduino CLI language fr and librairies/data/downloads paths
    pathfile = makepath(tempfile.gettempdir(),'arduino-cli.yaml')
    currentuser = get_current_user()
    configpath = makepath(r'c:\users',currentuser,'.arduinoIDE')
    datafile = r"""board_manager:
  additional_urls: []
daemon:
  port: "50051"
directories:
  builtin:
    libraries: C:\ProgramData\Arduino15\libraries
  data: C:\ProgramData\Arduino15
  downloads: C:\ProgramData\Arduino15\staging
  user: C:\Users\%s\Documents\Arduino
library:
  enable_unsafe_install: false
locale: fr
logging:
  file: ""
  format: text
  level: info
metrics:
  addr: :9090
  enabled: true
output:
  no_color: false
sketch:
  always_export_binaries: false
updater:
  enable_notification: false
""" % currentuser
    fichier = open(pathfile, "w")
    fichier.write(datafile)
    fichier.close()
    mkdirs(configpath)
    filecopyto(pathfile,configpath)
    remove_file(pathfile)

# Disable Update Notification
    pathfile = makepath(tempfile.gettempdir(),'settings.json')
    currentuser = get_current_user()
    configpath = makepath(r'c:\users',currentuser,'.arduinoIDE')
    datafile = r"""{
  "window.titleBarStyle": "native",
  "arduino.checkForUpdates": false
}
"""
    fichier = open(pathfile, "w")
    fichier.write(datafile)
    fichier.close()
    mkdirs(configpath)
    filecopyto(pathfile,configpath)
    remove_file(pathfile)


    # Set Arduino IDE language fr
    leveldbpath = makepath(r'c:\users',currentuser,'AppData','Roaming','arduino-ide','Local Storage','leveldb')
    if not isdir(leveldbpath):
        mkdirs(leveldbpath)
    copytree2("%s\leveldb" % all_user_data,leveldbpath)

def uninstall():
    print('Uninstalling all_user_data')
    remove_tree(makepath(programdata,'Arduino15'))
    print('Uninstalling Windows Firewall rules')
    remove_netfirewallrule("Arduino IDE")
    remove_netfirewallrule("mdns-discovery")
Atentamente
- Versión de WAPT instalada: 2.6.0.16795 Enterprise
- Sistema operativo del servidor: Linux / Debian Bookworm
- Sistema operativo de la máquina de administración/creación de paquetes: Windows 10
Avatar de usuario
vcardón
Experto en WAPT
Mensajes: 272
Inscripciones: 06 Oct 2017 - 22:55 horas.
Ubicación: Nantes, Francia

6 de marzo de 2025 - 19:30

Olivier, ¿cuándo vienes a trabajar con nosotros? :D
Vincent CARDON
Tranquilo IT
olaplancha
Mensajes: 178
Inscripción: 26 de enero de 2017 - 11:11

7 de marzo de 2025 - 14:01

Cuando me canse de mi puesto actual te lo haré saber :D
- Versión de WAPT instalada: 2.6.0.16795 Enterprise
- Sistema operativo del servidor: Linux / Debian Bookworm
- Sistema operativo de la máquina de administración/creación de paquetes: Windows 10
Respuesta