todas seguridad pasar las guardan fotos donde copias con como buscar aparecen objective-c ios cocoa-touch localization plist

objective c - seguridad - Localizando el menú Cortar | Copiar | Pegar en iOS



no me aparecen todas las fotos del iphone en el pc (6)

Busque si su archivo .xib está localizado (lo encontrará en el inspector en el panel derecho). Si es así, vaya a su Proyecto / Configuración de destino, presione el signo + -Sign y seleccione "Duplicar inglés al danés" o algo que signifique lo mismo (No puedo verificar el artículo correcto en este momento)

Por cierto se llama iPhone 4S.

Tengo algunos problemas para localizar una aplicación danesa hecha. (El lenguaje, no la pastelería).

He establecido la CFBundleDevelopmentRegion en da_DK para danés en mi info.plist, pero la ventana emergente que aparece para el ingreso de texto aún está en inglés, incluso en teléfonos que ejecutan el sistema operativo danés.

¿Cómo en nombre de Jobs puedo cambiar esto?

El dispositivo de prueba es un iPhone 4S sin jailbreak que ejecuta iOS 5.1 con el danés como su configuración de iOS y una cuenta de itunes danesa asociada.

No utilizo .xibs para diseños. Todas las interfaces están programadas como viewcontrollers.


Debe localizar su aplicación en danés para que los elementos de la interfaz de usuario estándar aparezcan en ese idioma. Esto es para evitar tener una interfaz de usuario con idiomas mixtos.

Si no usa xibs, generalmente lo haría agregando un archivo Localizable.strings a su proyecto. En el cuadro de diálogo "Agregar archivo" de Xcode, puede usar la plantilla "Archivo de cadenas" (debajo de "Recursos") para esto.

Para localizar realmente el archivo de cadenas, abra el inspector de archivos ( 1 ) y haga clic en el botón + en la sección "Localización". Terminará con el archivo que se muestra como un grupo en el navegador del proyecto, con una subentrada para cada idioma.

El archivo de cadenas tiene el formato:

"Label_Text" = "Smørrebrød";

(no olvides el punto y coma)

Para usar cadenas localizadas en su código, puede usar la macro NSLocalizedString así:

myLabel.text = NSLocalizedString(@"Label_Text", nil);

(El segundo parámetro es para un comentario. Esto puede ser útil si usa la herramienta genstrings para extraer cadenas localizables de su código y entregar el archivo resultante a un traductor profesional).

Si usa las cadenas en inglés como claves, puede dejar la versión en inglés de Localizable.strings vacía (pero no eliminarla).

Tener un archivo Localizable.strings en el idioma que el usuario ha seleccionado también hará que los elementos estándar de la IU, como el menú de edición, el selector de fotos, etc., aparezcan en ese idioma.


En el árbol de archivos de Xcode (Project Navigator), seleccione su proyecto. en el panel de la derecha, seleccione su proyecto de nuevo. Seleccione Info y añada su idioma.

Creé un proyecto de muestra , este es el resultado:


Intente agregar / configurar el indicador "Los recursos localizados se pueden mezclar" en Info.plist en YES.


Puede hacerlo directamente en el info.plist. Algo como esto:

<key>CFBundleDevelopmentRegion</key> <string>en</string> <key>CFBundleLocalizations</key> <array> <string>en</string> <string>de</string> <string>es</string> <string>ja</string> </array>


Si no puede hacerlo funcionar de manera oficial, como lo proporciona @vikingosegundo, puede hacer esto con algo de ingeniería creativa (Creativo como, oh, Dios mío, eso es peligroso). Descubrí este método cuando accidentalmente [NSBundle localizedStringForKey:value:tableName:] .

1) Agregue una categoría a NSBundle con los siguientes métodos:

#import <objc/runtime.h> + (void) load { Method original, swizzled; original = class_getInstanceMethod(self, @selector(localizedStringForKey:value:table:)); swizzled = class_getInstanceMethod(self, @selector(swizzled_localizedStringForKey:value:table:)); method_exchangeImplementations(original, swizzled); } - (NSString*) swizzled_localizedStringForKey:(NSString *)key value:(NSString *)value table:(NSString *)tableName { NSLog(@"Key: %@. Value: %@", key, value); return [self swizzled_localizedStringForKey: key value:value table:tableName]; }

2) Donde simplemente registro la clave / valor, quiere poner un bloque if ([key isEqualToString: xxx]). Allí, desea capturar (al menos algunos de) los siguientes valores clave: Cortar, Copiar [Menú], Seleccionar, Seleccionar todo, Pegar, Eliminar [Menú], Reemplazar ..., Definir, Hablar, Pausa. Estos son los valores por defecto que pueden aparecer allí.

3) Cuando haya captado el valor, puede buscar en una tabla personalizada o usar valores codificados. Si busca en una tabla personalizada, asegúrese de tener un retén en su método swizzled para evitar un bucle infinito en su tabla personalizada.

NB: ¿Por qué necesitas swizzle? Porque esto anula todo el texto de Apple para tu aplicación. Aún querrá los valores predeterminados para todas las demás cadenas, por lo que debe cambiar para obtener los valores predeterminados para las cadenas que no le interesan.

Buena suerte. Pablo