OpenSTAManager
Sito webFacebookYouTubeUltima release
2.7.2
2.7.2
  • 📣Novità
  • Openstamanager
    • 🚀OpenSTAManager
    • 📙Configurazione
      • 🎯Installazione
      • ▶️Inizializzazione
      • 🆙Aggiornamento
      • ⏸️Backup
    • 📘Interfaccia
      • 📚Moduli e plugin
      • 👾Widget
      • 🔼Gestione upload
    • 📘Moduli
      • 📅Dashboard
        • ➕Creazione
        • 🖌️Modifica
        • ❗Azioni aggiuntive
      • 👤Anagrafiche
        • ➕Creazione
        • 🖌️Modifica
        • 🦠Tipi di anagrafiche
        • 📞Relazioni
        • 🌏Zone
        • 📭Provenienze clienti
        • 🗃️Settori merceologici
        • ❗Azioni aggiuntive
        • 🔧Plugin
          • 🔨Impianti del cliente
          • 🧑Referenti
          • 📍Sedi aggiuntive
          • 📊Statistiche
          • 📤Ddt del cliente
          • 🤵Dichiarazioni d'intento
          • 🎥Storico attività
          • 🛄Allegati
          • 🧾Contratti del cliente
          • 💰Movimenti contabili
          • 📑Regole pagamenti
          • 🔖Note interne
          • ⁉️Info
      • 📧Gestione email
        • 📬Newsletter
        • 🔄Coda di invio
        • 📋Liste
        • 📃Template email
        • ✉️Account email
      • 📖Gestione documentale
        • ➕Creazione
        • 🖌️Modifica
        • 📑Categorie documenti
      • 🚚Attività
        • ➕Creazione
        • 🖌️Modifica
        • ⛽Tipi di attività
        • ⏱️Fasce orarie
        • 🚇Stati di attività
        • 🧑‍🔧Tecnici e tariffe
        • ❗Azioni aggiuntive
        • 🔧Plugin
          • 📡Impianti
          • ✅Checklist
      • 💰Vendite
        • 🤝Contratti
          • ❗Azioni aggiuntive
          • 🔧Plugin
            • 🪙Consuntivo
            • 📅Pianificazione attività
            • 🔄Rinnovi
            • 📆Pianificazione fatturazione
        • 🧾Preventivi
          • ❗Azioni aggiuntive
          • 🔧Plugin
            • 🪙Consuntivo
            • 🔍Revisioni
        • 📞Ordini cliente
          • ❗Azioni aggiuntive
          • 🔧Plugin
            • 🪙Consuntivo
        • 📃Fatture di vendita
          • ❗Azioni aggiuntive
          • 📩Ricevute FE
          • 🔧Plugin
            • 📃Fatturazione elettronica
            • 🖋️Movimenti contabili
            • 📽️Registrazioni
      • 💵Acquisti
        • 📞Ordini fornitore
          • ❗Azioni aggiuntive
          • 🔧Plugin
        • 📄Fatture di acquisto
          • ❗Azioni aggiuntive
          • 📑Fatturazione Elettronica
          • 🔧Plugin
      • ⚖️Contabilità
        • 🖨️Stampe contabili
        • 1️⃣Prima nota
        • 📖Piano dei conti
        • ⏳Scadenzario
          • 💳Presentazioni bancarie
      • 📦Magazzino
        • 📺Articoli
          • ❗Azioni aggiuntive
          • 📊Statistiche vendita
          • 🔧Plugin
            • 💸Movimenti
            • 🏷️Serial
            • 🧺Giacenze
            • 📈Statistiche
            • 📑Listino clienti
            • 🧾Listino fornitori
            • ✂️Piani di sconto/magg.
            • 🪛Varianti articolo
            • ➗Provvigioni
        • 📖Movimenti
        • ✂️Piani di sconto/magg.
        • 🧾Listini
        • 📑Listini cliente
        • 📤DDT in uscita
          • ❗Azioni aggiuntive
        • 📥DDT in entrata
          • ❗Azioni aggiuntive
        • 🏬Giacenze sedi
        • ◾Attributi combinazioni
        • 🔳Combinazioni
      • 🪝Impianti
        • ➕Creazione
        • 🖌️Modifica
        • 🪜Categorie impianti
        • ❗Azioni aggiuntive
        • 🔧Plugin
          • 🔚Interventi svolti
          • 🔌Componenti
      • 📊Statistiche
      • 🗺️Mappa
      • 🔨Strumenti
        • 🗃️Tabelle
          • 📦Tipi di spedizione
          • 📑Stati degli ordini
          • 🎉Eventi
          • 📜Tipi documento
          • 🏷️Causali movimenti
          • ⏲️Tipi scadenze
          • 📑Stati dei contratti
          • 📑Stati dei preventivi
          • ➖Ritenute previdenziali
          • 💸Casse previdenziali
          • 💰IVA
          • 🖊️Modelli prima nota
          • 🏦Banche
          • 🪙Ritenute acconto
          • 💻Categorie articoli
          • 💶Pagamenti
          • ⚱️Porto
          • 📏Unità di misura
          • 🪞Aspetto beni
          • 🚚Causali trasporto
          • 👨‍🏭Mansioni referenti
        • 💡Campi personalizzati
        • 📥Import
          • 📥Import Anagrafiche
          • 📥Import Articoli
          • 📥Import Attività
          • 📥Import Impianti
          • 📥Import Listini
          • 📥Import Piano dei conti
          • 📥Import Preventivi
        • 👀Viste
        • 🗣️Utenti e permessi
        • 🎚️Impostazioni
        • ☑️Checklists
        • 🪢Segmenti
        • 🚦Stato dei servizi
        • 🖨️Stampe
        • 📑Gestione task
        • ⏫Backup
        • 🔝Aggiornamenti
        • Adattatori di archiviazione
    • 📱APP Tecnici
      • 3️⃣v3.0.41
      • 3️⃣v3.0.30
  • guide
    • 🔮Come si fa?
      • 👏Autofattura
      • 👥Attività 'Per conto di'
      • 🏦Banca predefinita anagrafica
      • 📲Calendario su telefono
      • ⏱️Contratti a ore
      • 🧑‍🔧Contratti di manutenzione
      • 🙋‍♂️Dichiarazioni d'Intento
      • 👍Esportare e stampare tabelle con molti record
      • 📃Fattura pro-forma
      • 📘Fatturazione Elettronica
        • 🏷️Codice identificativo documento e CIG
        • ⌛Decreto Rilancio 2020
        • 🤔Domande comuni
        • ⛔Errori frequenti
        • 🏫Fattura elettronica verso PA
        • 🙋‍♀️Fatture TD21 - TD27
        • 🏫Split payment e reverse charge
      • 📃Fatture non elettroniche
      • 🌈Formattazione celle
      • 🖊️Generazione di una chiave di licenza Wacom
      • 💵Gestione acconto
      • 🗳️Gestione magazzini
      • 💡Gestione provvigioni agenti
      • 🔰Impostare logo nelle stampe
      • 💶Incassi e pagamenti
      • 🔜Incassi e pagamenti anticipati
      • 🫴Invio automatico di solleciti di pagamento
      • 💵Liquidazione di salari e stipendi
      • 📄Nota di credito
      • 🧑‍🔧Permessi di visualizzazione degli utenti
      • 👨‍🏫Prezzo di vendita automatico
      • 🏢Quantità di magazzino
      • 💸Registrazione di crediti inesigibili
      • 📃Stampa inventario
      • 🗓️Tasks programmati
      • 🔨Verificare l'installazione di OSM
      • 🗓️Contabilizzare una Ri.Ba.
    • 🪂Strumenti esterni
      • 📸Awesome screenshot
    • 📽️Videoguide
      • 🎥Attività/Fatturazione
      • 🎥Autofattura
      • 🎥Importazione articoli
      • 🎥Preventivo/Consuntivo
      • 🎥Registrazione movimenti bancari
      • 🎥Scheda accettazione
    • 📘F.A.Q.
  • Moduli premium
    • 📙Installazione
    • 📗Budget
    • 📗Disponibilità tecnici
    • 📗Distinta base
    • 📗E-commerce
    • 📗Email ticketing
    • 📗Fatturazione programmata contratti
    • 📗Gestione SMS
    • 📗Integrazione con 3CX
    • 📗Produzione
      • 🪵Configurazione
      • 🥽Flusso di produzione
      • 📦Evasione ordine
    • 📗Registrazione movimenti bancari
    • 📗Presenze
    • 📗Richiesta intervento
    • 📗Riordino fornitori
    • 📗Scheda accettazione
    • 📗Vendita al banco
  • Configurazioni
    • 📙API
    • 📙Google Maps API key
    • 📙OAuth2
  • per sviluppatori
    • 📘Recupero della password
    • 📒Contribuire
    • 📒Personalizzazione
      • 🕹️Codice
      • 🖥️Framework
      • 💾Assets
    • 📒Strutture
      • 📒Moduli
        • 📒Nucleo
        • 📒Stampe
        • 📒Widget
        • 📒Plugin
      • 📒Gestione del multilingua
Powered by GitBook
On this page
  • Utilizzo del multilingua
  • setTranslation($field, $value, $id_lang = null)
  • getTranslation($field, $id_lang = null)
  • getByField($field, $value, $id_lang = null)

Was this helpful?

  1. per sviluppatori
  2. Strutture

Gestione del multilingua

PreviousPlugin

Was this helpful?

Dalla versione 2.5 è stata ampliata la gestione del multilingua che ora include anche i record "fissi" presenti a database.

Le lingua disponibili a gestionale sono definite nella tabella zz_langs:

E' possibile selezionare la lingua da utilizzare nel gestionale da Strumenti/Impostazioni/Generali/Lingua.

Essa viene letta da codice tramite la funzione getDefault() e impostata nel core tramite la funzione setDefault():

Il valore predefined della tabella zz_langs non è legato alla selezione delle lingua corrente, ma è un'impostazione interna che non va modificata, perchè consente la corretta funzionalità delle traduzioni. Essa infatti permette di impostare il valore predefinito per la ricerca di stringhe fisse a livello di codice tramite la funzione getPredefined().

Questo valore viene definito nel core da setPredefined():

Con la nuova gestione delle lingue per ogni tabella che contiene un valore testuale è presente una corrispondente tabella_lang che contiene il riferimento all'id_record del record da tradurre, l'id_lang che corrisponde alla lingua, e il title ovvero la traduzione del record.

Ad esempio la tabella co_stati_documento conterrà l'id, name, icona e colore

mentre la tabella co_stati_documento_lang conterrà la traduzione in italiano con id_lang = 1 e quella in inglese con id_lang = 2 (come definito in zz_langs) per ogni id_record.

Utilizzo del multilingua

Per poter gestire facilmente le traduzioni a livello di codice sono state introdotte queste nuove funzioni:

setTranslation($field, $value, $id_lang = null)

Con questa funzione è possibile impostare il valore di una traduzione nella tabella $table_lang a partire dall'oggetto iniziale.

Ad esempio, si potrà aggiornare la traduzione di uno stato documento a partire dall'oggetto $stato con:

$stato->setTranslation('title', $descrizione);

$id_lang di default è impostato nella lingua in uso dal gestionale, per forzare l'aggiornamento della traduzione di un record in una lingua diversa da quella impostata di default è necessario passare alla funzione anche l'$id_lang.

getTranslation($field, $id_lang = null)

Con questa funzione è possibile leggere il valore di una traduzione nella tabella $table_lang a partire dall'oggetto iniziale.

Ad esempio, per recuperare la traduzione di uno stato documento a partire dall'oggetto $stato si dovrà utilizzare:

$stato->getTranslation('title');

$id_lang di default è impostato nella lingua in uso dal gestionale, per forzare la lettura della traduzione di un record in una lingua diversa da quella impostata di default è necessario passare alla funzione anche l'$id_lang.

getByField($field, $value, $id_lang = null)

Con questa funzione è possibile cercare l'id_record corrispondente a una determinata traduzione.

Ad esempio, per recuperare l'id_record dello stato documento "Bozza", si dovrà utilizzare:

$stato_bozza = (new Stato())->getByField('title', 'Bozza);

$id_lang di default è impostato nella lingua in uso dal gestionale, per forzare la ricerca in un'altra lingua diversa da quella impostata di default è necessario passare alla funzione anche l'$id_lang.

📒
📒
openstamanager/core.php at v2.5.1 · devcode-it/openstamanagerGitHub
openstamanager/src/Models/Locale.php at v2.5.1 · devcode-it/openstamanagerGitHub
openstamanager/core.php at v2.5.1 · devcode-it/openstamanagerGitHub
openstamanager/src/Models/Locale.php at v2.5.1 · devcode-it/openstamanagerGitHub
openstamanager/src/Traits/RecordTrait.php at v2.5.1 · devcode-it/openstamanagerGitHub
openstamanager/src/Traits/RecordTrait.php at v2.5.1 · devcode-it/openstamanagerGitHub
Logo
Logo
openstamanager/src/Traits/RecordTrait.php at v2.5.1 · devcode-it/openstamanagerGitHub
Logo
Logo
Logo
Logo
Logo