Vai al contenuto

Nomi di applicazioni tradotti in italiano


Messaggi raccomandati

 

 

Ciao a tutti.

Mi sono appena registrato al forum perchè programmo in Java e ho un problema. Lo riporto qui di seguito sperando di avere da qualcuno qualche informazione utile a risolverlo.

 

Ho notato che tra le applicazioni di una macchina OSX esistono delle “app” particolari (in genere sono i programmi i cui nomi sono stati tradotti in italiano) che hanno un nome di Bundle  peri quali c’è un comportamento strano.

 

Infatti queste applicazioni sono visibili regolarmente nel Finder e selezionandole è possibile, come per tutte le altre, esaminare il "contenuto pacchetto” cosa che dimostra che il loro “Bundle” è effettivamente una directory  contenente la struttura corretta di tutti i "Bundle".

 

Ma i Bundle  di queste particolari applicazioni non risiedono nella directory /Applications con il nome tradotto che appare nel finder e quindi se si cerca di accedervi attraverso il “terminale” con quel nome non è possibile entrarvi con un comando CD e quindi ovviamente non è possibile entrare nella struttura del Bundle, cosa che  è invece possibile con il finder.

 

I Bundle non ci sono veramente, neanche nascosti.

 

Per questo motivo non riesco ad entrare nel Bundle di queste applicazioni nemmeno da programma per poi raggiungere il file Info.plist (cosa che mi interessa fare con java)

 

Ho allora capito che per Calendario.app, Calcolatrice.app e qualche altra del genere (cioè quelle con il nome tradotto in italiano),  occorre utilizzare per i Bundle i nomi originali in inglese, perchè così sono presenti effettivamente nella directory delle applicazioni:  Calendar.app, Calculator.app ecc. ecc.

 

Io avrei quindi bisogno di individuare da programma il nome originale in inglese dei programmi (sia attuali che futuri) che nel finder appaiono tradotti in italiano, per poter quindi accedere correttamente al relativo "Bundle" e al suo contenuto.

 

Probabilmente c’è qualche file di sistema che contiene le corrispondenze tra i nomi italiani e quelli originali inglesi delle “app” il cui nome è stato tradotto ed appare nel Finder, oppure c'è qualche API (spero utilizzabile da java) che possa aiutarmi a risolvere.

 

C'è qualcuno che può darmi un aiuto? Grazie.

Link al commento
Condividi su altri siti

più che un aiuto, una traccia.

 

Fino a qualche OS X fa, la tecnica per "localizzare" i files consisteva nella presenza di un file vuoto ed invisibile di nome .localized all'interno della cartella. Quella presenza faceva sì che il Finder presentasse il nome corrispondente in lingua (es: "Applicazioni") al posto dell'originale (es.: "Applications"). Se rimuovevi il file .localized i files si presentavano col loro vero nome.


Poi pero' le cose sono cambiate, e non sono aggiornato. Certamente c'è una tabella di nomi in lingua di riferimento, e uno "switch" a livello di Finder che attiva la corrispondenza. Prova a consultare le developer resources.  Qui una pagina interessante sulla struttura del bundle.

Cita

 

Table 2-3  Required keys for the Info.plist file

Key

Value

CFBundleDisplayName (Bundle display name)

The bundle display name is the name displayed underneath the application icon. This value should be localized for all supported languages.

 

 

Link al commento
Condividi su altri siti

Forse nella tua versione di OS X funziona diversamente, ma io su 10.9.5 se lancio Terminale e digito:

$ cd /
$ cd Applications
$ ls

vedo i nomi delle applicazioni originali, non la versione tradotta.

Non mi sembra di aver attivato una qualche opzione particolare in passato, ma potrei anche averlo dimenticato...

 

edit: pardon mi era sfuggito il tuo "individuare da programma

An  a tuesday keeps the doctor away.

proud member of < noi finti professionisti > club - tessera 044

Link al commento
Condividi su altri siti

E' vero, quello che mi hai scritto è una "traccia", ma ti assicuro che mi è utile; ho dato subito ad un'occhiata anche ai due link che mi hai indicato e credo che in qualche modo riuscirò a risolvere il mio problema. E' probabile che utilizzando Xcode ci riuscirei più facilmente, ma io preferisco Java e quindi devo adattarmi; sono  utente MAC da molti anni (almeno una quindicina) e ne sono entusiasta, ma non condivido la scelta di: non dico ostacolare, ma quanto meno di non favorire troppo l'apertura verso ad altri sistemi di sviluppo. Ti ringrazio per la risposta anche rapida e ti comunico che il file .localized esiste ancora anche su Sierra oltre che su ElCapitan che sono due sistemi che ho su due dei miei vari MAC.

Link al commento
Condividi su altri siti

A PIX vorrei dire che quello che dice che è proprio quello il problema: se io volessi da programma trovare il file Foto.app non lo trovo e non lo trovo neanche se lo cerco con un ls; allora da programma devo usare il nome Photos.app e naturalmente lo trovo. Ma chi mi dice che per Foto.app devo cercare Photos.app e per Calendario.app devo usare Calendar.app, ecc. ecc. Per quelli più comuni posso anche preparare io una tabella, ma per quelli futuri (esempio supponiamo che domani ci sarà Giornale.app) che cosa devo utilizzare? Devo tradurre nel programma tutte le parole possibili dall'italiano all'inglese (con il rischio di trovare un nome non corretto e quindi non trovare il corrispondente Bundle?). In definitiva io credo che la scelta di localizzare I NOMI DEI PROGRAMMI non è una buona scelta. Naturalmente però ti ringrazio per l'attenzione.

Link al commento
Condividi su altri siti

Da un punto di vista logico, il sistema è sviluppato in inglese e quindi fa tutto in inglese, salvo poi tradurre alcune cose (se possibile) per visualizzarle a schermo nella lingua dell'utente.

Ad esempio il launch control suppongo che legga ricorsivamente il contenuto della cartella Applications e visualizzi l'icona di ogni app con la relativa localizzazione (che si trovano all'interno dell'app stessa).

Tu se ho ben capito vorresti fare il contrario, ovvero partire dal nome tradotto e risalire al nome originale ed al relativo pacchetto.

Sarebbe meglio lavorare sempre con la lingua nativa e sfruttare solo alla fine la localizzazione, ma se questo cambio di approccio non è possibile devi secondo me leggere ricorsivamente tutte le applicazioni, recuperare da ognuna il nome originale e quello tradotto (nella lingua che usi) e fare un confronto con il tuo nome app di partenza finché non trovi una corrispondenza.

Può darsi che ci siano già funzioni che possono farlo per te in java (o tramite la shell lanciata da java) ma non le conosco.

An  a tuesday keeps the doctor away.

proud member of < noi finti professionisti > club - tessera 044

Link al commento
Condividi su altri siti

In Java c'è una cosa chiamata ProcessBuilder che è in pratica l'equivalente di system in C con cui puoi avviare comandi shell da Java. Se a quel punto usassi ls potresti avere i nomi originali nella cartella Applications... ma in realtà non ti serve neanche un ProcessBuilder per fare questo controllo, se usi le classi di default per gestire file e directory potrai fare la stessa cosa direttamente in Java.

Una volta che avrai un array di nomi di applicazioni nella cartella Applications (che potrai filtrare come ti pare per fare quel che vuoi fare) ecco che non dovrai preoccuparti neanche se in futuro aggiungeranno altri programmi con altri nomi.

 

Non c'è bisogno di ricavare il nome originale e, se vuoi farlo, non c'è bisogno di preoccuparsi per eventuali applicazioni future (che sia in inglese o in italiano quella nuova applicazione non sai come si chiamerà).

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...