Etichette e internazionalizzazione

pTabs2 fornisce il supporto per l’internazionalizzazione sia dell’interfaccia del programma (messaggi, errori, ecc.), sia dei report.

Interfaccia

locale

Il comando locale permette di modificare la lingua dei messaggi che compaiono nella finestra di log di pTabs:

1
locale :en

La lingua di default dell’interfaccia è definita nel parametro locale dei Parametri di configurazione.

Le lingue disponibili in pTabs sono due: italiano (:it) e inglese (:en).

E’ possibile inserire nuove lingue creando un file .yml con le traduzioni dei messaggi nella cartella pTabs2-user\locales. Il nome dei file non è rilevante. Gli esempi dei file da tradurre si possono trovare in pTabs2\lib\locales\ptabs.

Report

language

Il comando language permette di modificare la lingua dei testi del report. E’ possibile inserire due sigle di linguaggio, il secondo agirà come fallback in caso di mancanza della traduzione.

1
2
3
language :fr

language :fr, :en

language senza nessun argomento, restituisce il linguaggio impostato.

1
2
3
4
5
if language == :it
  frm_datetime :t=>"%H:%M:%S", :d=>"%d/%m/%Y", :dt=>"%d/%m/%Y %H:%M:%S"
else
  frm_datetime :t=>"%H:%M:%S", :d=>"%m-%d-%Y", :dt=>"%m-%d-%Y %H:%M:%S"
end

La lingua di default del report è definita nel parametro language dei Parametri di configurazione.

I testi presenti in un report di pTabs appartengono a tre gruppi di elementi:

  1. le etichette delle statistiche e altre etichette standard del report e delle tabelle
  2. le etichette delle variabili e dei livelli delle variabili
  3. i titoli delle tabelle e altri testi inseriti direttamente nello script di pTabs

1. Etichette standard

Le etichette delle statistiche e altre etichette standard del report e delle tabelle sono disponibili in due lingue: italiano (:it) e inglese (:en). I file .yml contenenti le traduzioni di queste etichette sono in pTabs2\lib\locales\labels.

Per modificare le etichette già presenti o per inserire traduzioni in nuove lingue, creare degli analoghi file .yml nella cartella pTabs2-user\languages oppure nella sottocartella languages della cartella di lavoro. Il nome dei file non è rilevante. Un file può anche contenere le traduzioni di più lingue. La struttura dei file deve essere:

sigla_lingua:
  labels:
    id_etichetta:  Etichetta da visualizzare
    ...

labels << {}

Il comando labels << {} permette di impostare le etichette direttamente nello script. In questo caso l’etichetta verrà impostata indipendentemente dal language utilizzato.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
labels << {:empty_table_message => "La tabella è vuota"}

labels << {
 autotab_no_labels: "non sa;non risponde;non ricorda;non indica;nessuno;nessuna"
}

labels << {
  :label_ctotal      => "TOT",
  :label_rtotal      => "TOT"
  :autotab_no_labels => "non sa;non risponde;non indica"
}

labels << {
  low_cell_label:        '(*)',
  low_column_base_label: '(**)',
  low_column_cell_label: '*',
  low_row_base_label:    '(**)',
  low_row_cell_label:    '*',
}

labels[]

labels[] restituisce il valore dell’etichetta specificata.

1
p labels[:label_mean] # => "media"

labels?

Il comando labels? stampa nell’output l’elenco delle etichette standard e i relativi valori.

Lista etichette standard

ID etichetta Etichetta
index_title Indice tavole
index_link_html Indice
previous_link_html <<
next_link_html >>
index_link_xlsx ( indice )
sheet_index_name indice
table_continues ( continua )
empty_table_message tabella vuota
low_table_message La tabella non contiene un numero significativo di casi
low_cell_label **
low_column_base_label ***
low_column_cell_label  
low_row_base_label ***
low_row_cell_label  
max_items_warning (%{n} items sono stati nascosti)
weight_legend_label Pesi:
nil_weight_legend n.a.
title_template %{t}
code_and_label_template (#) *
autotab_title_template Tabella %{n} - [%{v}] %{tf}
autotab_title_template_syntax %{tf}
autotab_ord_labels molto;abbastanza;poco;per nulla;aumentato;aumentato;diminuito;diminuita;uguale;per niente
autotab_no_labels non sa;non risponde;non ricorda;non indica;nessuno;nessuna
label_coding Codifica
label_varlist Variabili
label_na (n.a.)
label_all TOTALE CITAZIONI
label_ctotal TOTALE
label_rtotal Totale
label_tcount v.a.
label_tcount_u v.a. (no pond.)
label_tcount_x v.a. (espanso)
label_trowpct row %
label_tcolpct col %
label_count v.a.
label_count_u v.a. (no pond.)
label_pct %
label_rowpct row %
label_colpct col %
label_totpct tot %
label_cumpct cum %
label_nresp n. risposte
label_mresp n. medio risposte
label_noresp n.a.
label_i_conc Ind. conc.
label_base base
label_base_u base (no pond.)
label_mean media
label_mean_inv media (inv.)
label_stdev std. dev.
label_serr std. err.
label_min min
label_max max
label_limits limits
label_mode moda
label_median mediana
label_qtile1 q1
label_qtile2 q2
label_qtile3 q3
label_qtile4 q4
label_qtile5 q5
label_qtile6 q6
label_qtile7 q7
label_qtile8 q8
label_qtile9 q9
label_range range
label_tsum total sum
label_sum sum
label_sumpct sum %
label_nvals n. valori
label_miss n.r.
label_misspct % n.r.
label_miss_u n.r.
label_misspct_u % n.r.
label_sample CAMPIONE
label_n n. casi
label_sig_levels Sig. levels
label_one_tail test a una coda
label_two_tail test a due code
label_sig_level livello di significatività
label_conf_level livello di confidenza
label_comp_note Confronti
label_pcm pairwise comparisons
label_pcm_note pairwise comparisons medie
label_pcp pairwise comparisons
label_pcp_note pairwise comparisons proporzioni
label_true TRUE
label_false FALSE
label_note_missed Valori mancanti: %{labels}
label_corr correzione di %{corr}
label_cip_l IC inf.
label_cip_u IC sup.
label_cip_e IC err.
label_cim_l IC inf.
label_cim_u IC sup.
label_cim_e IC err.
label_ci_note Intervallo confidenza: %{level}%
label_ci2_note Intervallo confidenza: proporzioni %{level1}%; medie %{level2}%
label_chi2_val &chi;&sup2;
label_chi2_df &chi;&sup2; df
label_chi2_sig &chi;&sup2; sig.
label_chi2_sym &chi;&sup2; sig.
label_chi2_warn_freq Expected values below 5: Chi-squared approximation may be incorrect
label_cases Base
label_id ID
label_question Domanda
label_answer Risposta
label_stat Statistica

Modifica temporanea delle etichette

Le etichette che iniziano con il prefisso label_ o finiscono con il suffisso _label possono essere modificate nello script con la stessa sintassi dei parametri di configurazione. All’interno del blocco della tabella, il comando avrà effetto solo per quella tabella. In questo caso l’etichetta verrà impostata indipendentemente dal language utilizzato.

1
2
3
4
5
6
7
8
9
label_mean "Average"
ord :v1
label_mean_

ord :v1 do
  label_mean "Average"
end

low_column_base_label '---'

2. Etichette variabili

Per inserire le traduzioni delle etichette delle variabili e dei livelli, vedi la sezione Metadati.

3. Titoli tabelle

Per inserire le traduzioni dei titoli delle tabelle e di altri testi inseriti direttamente nello script di pTabs, sono disponibili due metodi:

  1. il metodo translations dei driver di dati xlsx e csv
  2. i file YAML con nome translations_*.yml posti nella cartella di lavoro o nella sottocartella languages della cartella di lavoro

Entrambi i metodi permettodo di specificare una chiave che verrà utilizzata nello script attraverso la funzione t(:key) e le relative traduzioni.

1
2
cat :sex, t(:tit_sex)
cat :area, t(:tit_area, :n => 2)

Con la sintassi %{nome_parametro} è possibile inserire parametri che verranno sostituiti nelle etichette.

translations

xlsx.translations e csv.translations permettono di caricare una tabella contenente le chiavi e le rispettive traduzioni nelle diverse lingue.

La tabella deve contenere il campo key e i campi con le sigle della lingua.

key it en
tit_sex Sesso dell’intervistato Gender of interviewed
tit_area Tabella %{n}. Macroarea Table %{n}. Geographic Area

file yml

Lo stesso contenuto può essere specificato in formato YAML.

  • file translations_it.yml:

    it:
      translations:
    
        tit_sex: Sesso dell'intervistato
        tit_area: "Tabella %{n}. Macroarea"
    
  • file translations_en.yml:

    en:
      translations:
    
        tit_sex:  Gender of interviewed
        tit_area: "Table %{n}. Geographic Area"
    

Malgrado sia consuetudine organizzare le traduzioni in diversi file ciascuno per una lingua diversa, l a distinzione della lingua non è data dal nome del file, ma dalla sigla della lingua a cui appartengono le traduzioni. E’ da norate inoltre che le traduzioni vanno poste sotto il namespace translations.