Benvenuto Visitatore ( Log In | Registrati )
![]() ![]() |
12 Mar 2008, 16:16
Messaggio
#1
|
|
|
Salve a tutti.
Qualcuno sa dirmi dove Mac Os X registra le preferenze dell'utente relative al correttore ortografico? Mi trovo spasso a cambiare fra inglese e italiano, e mi piacerebbe accedere alla preferenza programmaticamente, con Cocoa. Grazie, Davide -------------------- |
|
|
|
|
|
|
|
12 Mar 2008, 16:48
Messaggio
#2
|
|
|
Mi trovo spasso a cambiare fra inglese e italiano, e mi piacerebbe accedere alla preferenza programmaticamente, con Cocoa. Ah! Posso aiutare poco ma il problema mi è purtroppo ben chiaro. Ricordo che avevo provato a fare qualcosa con AppleScript o altre robe senza però arrivare a risultati concreti così sono rimasto al metodo "digitale" ovvero manuale. In giornata vedo di recuperare quanto avevo scoperto ed eventualmente comunico.Sono molto interessato ad un sistema per automatizzare il cambio di lingua nell'ortografia. Saluti, Giulio |
|
|
|
|
12 Mar 2008, 17:17
Messaggio
#3
|
|
|
Sono molto interessato ad un sistema per automatizzare il cambio di lingua nell'ortografia. Saluti, Giulio Sto pensando di fare una menulet da distribuire come freeware, per sgranchirmi le "dita" con cocoa. Ho postato la stessa domanda alla lista cocoa di Apple, ti tengo aggiornato. Nel frattempo, se qualcuno qui ha qualche idea... Davide -------------------- |
|
|
|
|
12 Mar 2008, 19:44
Messaggio
#4
|
|
|
A quanto pare la cosa non è così facile... Mi ha risposto un ingegnere apple, a occhio, nella dev-list. Però dice anche che sono consci del problema del cambio lingua, e hanno in programma di migliorarlo.
Un altro suggerimento che mi hanno dato è di usare l'Accessibiity Api, forse in effetti... Davide -------------------- |
|
|
|
|
12 Mar 2008, 21:05
Messaggio
#5
|
|
|
Finora ho solamente ritrovato due pagine un po' vecchiotte su Macosxhints:
- Qualcuno conferma che si possa ancora usare quel comando da Terminale, mutuando magari l'ultima parte per le altre lingue, o che lo si possa adattare in qualche modo? Come? - Se sì, quali sono le abbreviazioni per le altre lingue o dove le si trovano? Saluti, Giulio |
|
|
|
|
13 Mar 2008, 01:34
Messaggio
#6
|
|
|
- Qualcuno conferma che si possa ancora usare quel comando da Terminale, mutuando magari l'ultima parte per le altre lingue, o che lo si possa adattare in qualche modo? Come? - Se sì, quali sono le abbreviazioni per le altre lingue o dove le si trovano? Saluti, Giulio Per l'italiano è "it", ma serve a poco. Ogni applicazione salva una preferenza. Però una volta avviata l'applicazione, viene avviato un NSSpellChecker che gestisce le modifiche della lingua; a questo punto le preferenze settate non contano più, l'oggetto è dinamico. Insomma, non è molto semplice cambiare la lingua "in corsa". Forse è possibile tramite l'accessibility, ma non ho esperienza in merito... Qualcuno ne sa di più? Davide -------------------- |
|
|
|
|
15 Mar 2008, 20:26
Messaggio
#7
|
|
|
La lingua che si imposta in TextEdit vale per tutte le applicazioni che non abbiano una loro preferenza particolare.
Ma non fai prima a mettere Multilingual come dizionario? Ciao Paolo -------------------- |
|
|
|
|
15 Mar 2008, 22:40
Messaggio
#8
|
|
|
Ma non fai prima a mettere Multilingual come dizionario? Quella è una soluzione molto lontana da qualsiasi tipo di eleganza in quanto si aumenta a dismisura il numero di parole errate ma lasciate come corrette (perché magari lo sono in farsi, hindi, o swahili ma non nei nostri più comuni italiano, inglese, francese, ...). Ben diverso è l'uso di un dizionario specifico per la lingua che si sta usando in un certo momento. Saluti, Giulio |
|
|
|
|
16 Mar 2008, 05:52
Messaggio
#9
|
|
|
Ma non fai prima a mettere Multilingual come dizionario? Quella è una soluzione molto lontana da qualsiasi tipo di eleganza in quanto si aumenta a dismisura il numero di parole errate ma lasciate come corrette (perché magari lo sono in farsi, hindi, o swahili ma non nei nostri più comuni italiano, inglese, francese, ...). Ben diverso è l'uso di un dizionario specifico per la lingua che si sta usando in un certo momento. Il rischio c'è con le parole brevi, ma già oltre le 4-5 lettere è improbabile che ci siano problemi. Io non ne ho mai trovati. Ciao Paolo -------------------- |
|
|
|
|
16 Mar 2008, 12:44
Messaggio
#10
|
|
|
Farsi, hindi e swahili io non ce li ho, mi devo preoccupare? Ach, avrei giurato che ci fossero Il rischio c'è con le parole brevi, ma già oltre le 4-5 lettere è improbabile che ci siano problemi. Io non ne ho mai trovati. Dovrò provarlo veramente il Multilingual, anzi in effetti ho già cominciato, perché potrebbe essere, se non altro, la migliore delle soluzioni rapide. Mi era venuta in mente tempo fa ma l'avevo sempre scartata in quanto non perfetta. Ah, un momento, ora ricordo un'altra idea che mi era venuta in mente e non ero forse riuscito a mettere in pratica: c'è un modo per disabilitare (manualmente o programmaticamente) alcune delle lingue esistenti nella lista dei dizionari ortografici? Ad esempio si potrebbe tenere il Multilingual e scegliere una delle due opzioni: - soluzione migliore: programmaticamente abilitare solo una lingua per volta - soluzione peggiore: manualmente lasciare abilitate solo le poche in uso (per esempio italiano, inglese, francese, ...) Saluti, Giulio |
|
|
|
|
16 Mar 2008, 19:13
Messaggio
#11
|
|
|
Non sono riuscito a trovare i file con i dizionari
So solo che le parole personalizzate sono in file con stringhe separate da null in ~/Library/Spelling/. Ciao Paolo -------------------- |
|
|
|
|
16 Mar 2008, 19:26
Messaggio
#12
|
|
|
|
|
17 Mar 2008, 15:24
Messaggio
#13
|
|
|
Non sono riuscito a trovare i file con i dizionari Allora: mi pare di aver risolto una parte del problema e mi serve una spinta per l'altra.Quanto segue vale su Tiger e ovviamente è tutta farina del mio sacco 1. Se si vuole avere il multilingual sempre attivo per una certa lista di lingue (rimuovendo comunque quelle non necessarie): - cercare il file /Sistema/Libreria/Services/AppleSpell.service - Mostra contenuto pacchetto - scendere in /Contents/Resources - copiare le cartelle dei dizionari inutili in un altro posto e cancellarle da qui (non si sa mai che un giorno si studi olandese e svedese) - aprire il file Info.plist con un editor di testo e cancellare le righe dopo la 33 con i nomi dei dizionari spostati (questo passo dovrebbe essere solo per "pulizia") - Logout/Login - scegliere Multilingual da una qualsiasi applicazione che supporti il controllo ortografico di OS X e saranno attivi solo i dizionari precedentemente lasciati in /Sistema/Libreria/Services/AppleSpell.service/Contents/Resources 2. Se si vuole scegliere, magari tramite uno script da chiamare al volo, una sola lingua da usare per l'ortografia, il succitato gentile signore ci offre il seguente script sul quale però inciampo: CITAZIONE property lang_one : "English" --change to option given in menu property lang_two : "British English" --change to option given in menu property name_of_spelling_window : "Spelling" --change to be as given in your language property name_of_menu : "OtherViews" --change to be as given in your language property error_message : "Spell options not available!" --error message displayed when an application has no spelling option for the current window set app_name to my get_front_app() tell application app_name to activate tell application "System Events"      tell process app_name           keystroke ":" using {command down, shift down}           delay 0.5 --need to adjust for your machine           if exists (window name_of_spelling_window) then                tell window name_of_spelling_window                     tell group 1                          tell pop up button 1                               set current_lang to value as string                               click                               tell menu name_of_menu                                    if current_lang = lang_one then                                         click menu item lang_two                                    else                                         click menu item lang_one                                    end if                               end tell                          end tell                     end tell                     click (the first button whose subrole is "AXCloseButton")                end tell           else                display dialog error_message with icon stop           end if      end tell end tell on get_front_app()      tell application "System Events"           keystroke "h" using command down           delay 0.5 --need to adjust for your machine           set appname to name of (first process whose frontmost is true) as string      end tell      return appname end get_front_app ------------------------- [This script was automatically tagged for color coded syntax by Convert Script to Markup Code] Ho provato a cambiare ovviamente "Spelling" in "Ortografia" e variare le combinazioni di lingue nello script e lingua corrente nella finestrella dell'ortografia ma niente. Al massimo ottengo che venga attivata l'applicazione più avanti, che si apra la finestrella dell'ortografia e che venga cliccato il menù a tendina della scelta della lingua. A quel punto ScriptEditor si lamenta e dice: "Errore AppleScript - System Events ha trovato un errore: NSReceiverEvaluationScriptError: 4". Come spesso succede, sento di essere vicino alla Luce ma non so da che parte sia... Personalmente devo dire che mi puzza soprattutto la dichiarazione CITAZIONE property name_of_menu : "OtherViews" --change to be as given in your language ma non so in cosa cambiarla.Idee? Far andare questo script sarebbe la vera soluzione elegante! Altro che brutalizzare il contenuto di pacchetti di sistema... Saluti, Giulio |
|
|
|
|
24 Mar 2008, 18:43
Messaggio
#14
|
|
|
Da un veloce controllo, quel menu in italiano non ha un nome.
Per ispezionare gli elementi dell'interfaccia grafica, puoi usare l'utility Accessibility Inspector inclusa nei DevTool. Ciao Paolo -------------------- |
|
|
|
|
24 Mar 2008, 19:24
Messaggio
#15
|
|
|
Da un veloce controllo, quel menu in italiano non ha un nome. Lo pensavo anche io ma avevo pure visto che lo script, tale e quale come è, non funziona nemmeno impostando il sistema in inglese: stesso errore e stesso blocco alla riga dove dice "click menu item lang_two" (o lang_one)... Altre idee?Altrimenti mi era appunto venuto in mente di usare l'applicazione per vedere "come si chiamano le cose" ma cercavo di evitare per mia inesperienza nel campo. Saluti, Giulio |
|
|
|
|
24 Mar 2008, 20:24
Messaggio
#16
|
|
|
Per farlo andare su Leopard occorre rimuovere il blocco
CODICE tell group 1 e cambiare CODICE tell menu name_of_menu in CODICE tell menu 1 Ciao Paolo -------------------- |
|
|
|
|
24 Mar 2008, 21:07
Messaggio
#17
|
|
|
Per farlo andare su Leopard... Perfetto. Sono ancora su Tiger ma ho visto che basta modificare "tell menu name_of_menu" in "tell menu 1" perché lo script funzioni! A questo punto lo posso semplicemente mettere tra gli scripts utente (già fatto) o creare scripts ad hoc per la modifica in una sola direzione.GRAZIE, Giulio |
|
|
|
|