2013-03-19 16 views
5

OK, l'obiettivo di questa domanda non è strettamente legato alla programmazione, ma è una domanda che i programmatori possono rispondere utilizzando gli strumenti di programmazione, ei programmatori possono trovare risposte utili qui. Sopportami.Come faccio a decodificare i file di localizzazione della lingua di Mac OS X per l'apprendimento della lingua naturale?

Trovo che cambiare la lingua di sistema in Mac OS X sia un modo utile per migliorare l'apprendimento delle lingue naturali, ad esempio il francese. Tuttavia a volte trovo una voce di menu o una finestra di dialogo in francese che non riesco a capire ed è noioso sostituire la traduzione con Google o cambiare la lingua del sistema in inglese. Ma so che la traduzione inglese è nascosta da qualche parte nel file di localizzazione e mappa in qualche modo alla frase francese. Quindi quello che voglio fare è estrarre tutto il testo da tutti i file di localizzazione per sviluppare una mappatura di questa frase in inglese = quella frase in francese così posso cercarla facilmente.

So che i file di localizzazione sono memorizzati in file Localizable.strings, lproj e pennini, ma non riesco a capire come sono archiviati o come lavorare con loro. Posso programmare ma non ho mai scritto nulla in Xcode. Tutte le informazioni che posso trovare sono per i programmatori Mac OS/iOS per localizzare il loro software, non per gli hacker per estrarre le informazioni di localizzazione già fatte.

Come posso estrarre le informazioni sulla lingua straniera come testo in chiaro dal sistema Mac OS X e da file di localizzazione software di terze parti? Grazie!

risposta

1

I file di stringhe sono facili. Sono semplicemente dizionari serializzati come elenchi di proprietà. Le chiavi del dizionario vengono utilizzate dal programma per cercare la stringa specificata per una particolare localizzazione. È possibile creare una mappatura dall'inglese in un'altra lingua caricando entrambi i dizionari, eseguendo un'iterazione sui tasti e utilizzando il valore del dizionario inglese come chiave nell'output e il valore dell'altro dizionario della lingua come valore dell'output.

NIB sono più difficili. Il processo di compilazione "compila" i file NIB in un modulo che non è conduttivo per la modifica o l'analisi. Se si ha accesso a file NIB non compilati, è possibile utilizzare ibtool --export-strings-file per eseguire il dump di un file di stringhe, che è possibile elaborare come sopra. Se non lo fai, penso che potresti avere delle difficoltà.

+0

Grazie per l'aiuto, ho capito cosa stai dicendo sull'archiviazione di cose negli elenchi di proprietà, ma sto ancora avendo problemi a capire come i vari file di stringhe si riferiscono e sono connessi, e dove sono in genere memorizzati. – arandomlypickedname

+0

Puoi chiarire esattamente a cosa stai avendo problemi? – bdash