iphone - cracked - elcomsoft phone password breaker full gratis
iphone-lectura del archivo Localizable.strings como clave-valor en un diccionario (3)
Estoy feliz de encontrar una API excelente en la clase NSString. El código está abajo.
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// Insert code here to initialize your application
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Localizable" ofType:@"strings"];
NSString *fileText = [NSString stringWithContentsOfFile:filePath encoding: NSUnicodeStringEncoding error:nil];
NSDictionary *stringDictionary = [fileText propertyListFromStringsFileFormat];
NSArray *allKeys = [stringDictionary allKeys];
NSArray *sortedKeys = [allKeys sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
NSString *documentsDirectory;
NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
if ([paths count] > 0) {
documentsDirectory = [paths objectAtIndex:0];
}
NSString *outputPath = [documentsDirectory stringByAppendingString:@"/Localizable.strings"];
NSLog(@"Strings contents are writing to: %@",outputPath);
[[NSFileManager defaultManager] createFileAtPath:outputPath contents:nil attributes:nil];
NSFileHandle *outputHandle = [NSFileHandle fileHandleForWritingAtPath:outputPath];
[outputHandle seekToEndOfFile];
for(id key in sortedKeys){
NSString *line = [NSString stringWithFormat:@"/"%@/" = /"%@/";/n", key, [stringDictionary objectForKey:key]];
NSLog(@"%@",line);
[outputHandle writeData:[line dataUsingEncoding:NSUnicodeStringEncoding]];
}
}
Quiero leer el texto del archivo localizable.strings. Estoy recopilando las cadenas de traducción de varios directorios y archivo en un archivo .strings. Pero luego tengo varias copias de las mismas cadenas de traducción. Quiero eliminar esto programáticamente. Por lo tanto, debo leer solo las cadenas (no los comentarios) del archivo .strings, y luego ordenarlas, eliminar cadenas repetidas y luego crear un nuevo archivo .strings.
¿Es posible leer el archivo de cadenas y mantener la cadena de claves y el valor traducido en un diccionario? Me refiero a cualquier método incorporado para leer un archivo .text, solo la parte "key" = "value", evitando la parte / * ... * / o # comments. Como leer un archivo de configuración.
Lo que estaba buscando es una forma de leer un json de un archivo de paquete en un NSDictionary
y luego imprimirlo dentro de una UITextView
. ¡El resultado no fue muy bien formateado!
Utilicé una parte de la respuesta de Karim de arriba para crear un método que generara un json embellecido en una cadena:
-(void)setText:(NSDictionary *)json
{
NSArray *allKeys = [json allKeys];
_beautyStr = @"";
for(id key in allKeys){
NSString *line = [NSString stringWithFormat:@"/"%@/" = /"%@/";/n", key, [text objectForKey:key]];
_beautyStr = [NSString stringWithFormat:@"%@%@",_beautyStr, line];
}
NSLog(@"%@",_beautyStr);
}
NSString *path = [[NSBundle mainBundle] pathForResource:@"Localizable"
ofType:@"strings"
inDirectory:nil
forLocalization:@"ja"];
// compiled .strings file becomes a "binary property list"
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:path];
NSString *jaTranslation = [dict objectForKey:@"hello"];