Pagina 1 di 2

pacchetto tis-arduino in francese

Pubblicato: 4 dicembre 2023 - 14:15
di gaelds
Salve,
è possibile installare Arduino direttamente in francese o configurarlo dopo l'installazione? Non trovo nulla nel registro...

Re: pacchetto tis-arduino in francese

Pubblicato: 4 dicembre 2023 - 15:38
di blemoigne
Ciao,
ecco un'ottima idea (fonte: https://support.arduino.cc/hc/en-us/art ... rduino-IDE):

puoi modificare direttamente il file preferences.txt.

Chiudi l'IDE di Arduino.

Apri la cartella Arduino15.

Apri preferences.txt.

Trova la riga editor.languages.current.

Modifica il valore in modo che diventi editor.languages.current=en.

Salva il file.

Apri l'IDE di Arduino per vedere le modifiche.

Re: pacchetto tis-arduino in francese

Pubblicato: 4 dicembre 2023 - 15:46
di gaelds
Non sono riuscito a trovare il file preferences.txt nella cartella di installazione di Arduino. Ho appena scoperto che si trova in C:\Users\<user> \.arduinoIDE\arduino-cli.yaml che è modificato.

Volevo provare questo codice:

Codice: Seleziona tutto

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)
Ma la cartella ".arduinoIDE" viene creata solo dopo il primo avvio del software, quindi session_setup non farà nulla... E per di più, il mio codice è errato: mi ritrovo con un file arduino-cli.yaml vuoto :)

Re: pacchetto tis-arduino in francese

Pubblicato: 7 dicembre 2023 - 10:47
di Benoit
Buongiorno,

Perché non usare un ciclo while? Ad esempio, qualcosa del genere:

Codice: Seleziona tutto

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}") 
 

Per quanto riguarda la modifica del file di configurazione, ho preferito utilizzare uno script di terze parti in AutoIt:

Codice: Seleziona tutto

#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
Saluti,

Re: pacchetto tis-arduino in francese

Pubblicato: 12 dicembre 2023 - 12:11
di dcardon
Ciao a tutti,

@gaelds Ho provato a modificare automaticamente il file arduino-cli.yaml, ma non sembra avere alcun impatto (posso però confermare che questo file viene effettivamente modificato quando si verifica una modifica nella GUI, ma ci sono anche molte altre cose che vengono copiate contemporaneamente...

@Benoit, non è consigliabile usare autoit; la parte Python consente di gestire eccezioni e altri scenari.
@Benoit, l'utilizzo di un ciclo while non è consigliato perché è più soggetto a errori (in caso di eccezioni, ecc.)

Dopo aver trascorso mezz'ora con questo software, sono piuttosto sconvolto dalla scarsa (o inesistente) gestione del pacchetto. L'installazione a livello di sistema è una barzelletta; il software copia tutto nella directory utente al primo avvio, più o meno così:
  • un po' in %HOMEPATH%/.arduinoIDE
  • un po' in %APPDATA%\roaming\arduino IDE
  • un po' in %APPDATA%\roaming\arduino-ide
  • molto in %APPDATA%\local\Arduino15 (>400 MB)
  • molto in %APPDATA%\local\arduino-ide-updater (>130 MB, solo per l'aggiornamento che inizialmente non volevamo...)


E ovviamente non funziona negli ambienti AppLocker o SRP (come dicono alcuni, "la sicurezza è per i deboli", è evidente che non hanno mai visto un ransomware su Arduino...).

Non esiste un file di configurazione globale e il precaricamento del driver è quantomeno inaffidabile; il blocco degli aggiornamenti automatici dovrebbe essere incluso in una versione futura...

Ho un collega in ufficio che ieri l'ha installato sul computer di suo figlio (un PC riciclato); l'installazione e l'avvio hanno richiesto più di dieci minuti, poi è tornato subito all'ultima versione 1.x.

In breve, penso che Arduino non voglia essere utilizzato nelle scuole.

Sinceramente,

Denis

Re: pacchetto tis-arduino in francese

Pubblicato: 18 dicembre 2023 - 10:56
di Geoffroy
Posso confermare che la nostra scuola lo usa e abbiamo dovuto implementare un GPO. Un vero incubo...

Re: pacchetto tis-arduino in francese

Pubblicato: 18 dicembre 2023 - 15:38
di dcardon
Ciao Geoffroy,

se si tratta di una GPO per la configurazione iniziale di Arduino 2, potresti spiegarmi come l'hai configurata? Forse potremmo usare `session_setup()`? Non sono riuscito a farlo in modo coerente, quindi se hai i dettagli dei passaggi necessari, te ne sarei grato :-) !

Cordiali saluti,

Denis

Re: pacchetto tis-arduino in francese

Pubblicato: 6 marzo 2025 - 17:11
di olaplanche
Condivido il mio pacchetto arduino-ide compatibile con SRP, con l'aggiornamento automatico disabilitato e il francese come lingua predefinita:

Prerequisiti:
* Configurare il software in francese per la prima volta, quindi copiare la cartella sottostante nella radice del pacchetto:
C:\Utenti\%nomeutente%\AppData\Roaming\arduino-ide\Archiviazione locale\leveldb
* Crea un SRP senza restrizioni nella cartella "%AllUsersProfile%\Arduino15"

Codice: Seleziona tutto

# -*- 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")
Sinceramente

Re: pacchetto tis-arduino in francese

Pubblicato: 6 marzo 2025 - 19:30
di vcardon
Olivier, quando verrai a lavorare con noi? :D

Re: pacchetto tis-arduino in francese

Pubblicato: 7 marzo 2025 - 14:01
di olaplanche
Quando mi stancherò della mia attuale posizione, te lo farò sapere :D