2012-02-08 5 views
18

Algunos controles iOS tienen cadenas localizadas integradas por Apple. Los elementos del botón de la barra "Hecho", "Editar", "Atrás" son algunos ejemplos. ¿Hay alguna manera de acceder a estas cadenas?¿Puede obtener acceso mediante programación a las cadenas localizadas estándar en Cocoa Touch?

Estoy haciendo una hoja UIActionSheet con las opciones estándar "Eliminar" o "Cancelar", al igual que cuando elimina un contacto en la aplicación Contactos.

¿Hay alguna manera de hacer referencia a estas cadenas en el código? Si no, ¿hay algún lugar donde pueda obtener estas cadenas (como extraerlas de los recursos de una aplicación de Apple)? Se ahorraría trabajo de localización adicional y garantizaría la coherencia con la plataforma.

Respuesta

6

Si iOS es como Mac OS, cada aplicación lleva su propio archivo Localizable.strings. Y en cada archivo de cadenas tiene todas esas pequeñas cadenas como Hecho, Editar, Cancelar, y así sucesivamente.

Estas son algunas cadenas he copiado del archivo Inglés Localizable.string de Finder.app:

<key>AL1</key> 
<string>Cancel</string> 
<key>AL4</key> 
<string>OK</string> 
<key>AL9</key> 
<string>Don’t Save</string> 
<key>FF24</key> 
<string>Save</string> 
<key>U32</key> 
<string>Yes</string> 
<key>U33</key> 
<string>No</string> 

Usted consigue la idea. Cada pequeña cadena se localiza en cada aplicación.

Este es de iTunes.app.

/* ===== Ask User Strings ===== */ 
"23987.001" = "Yes"; 
"23987.002" = "No"; 
"23987.003" = "OK"; 
"23987.004" = "Cancel"; 
"23987.005" = "Ignore"; 
"23987.006" = "Quit"; 
"23987.007" = "Don’t Quit"; 
"23987.008" = "Apply"; 
"23987.009" = "Don’t Apply"; 
"23987.010" = "Later"; 
"23987.011" = "Don’t Save"; 
"23987.012" = "Save"; 
"23987.013" = "Stop"; 
"23987.014" = "Continue"; 
"23987.015" = "Delete"; 
"23987.016" = "Remove"; 
"23987.017" = "Replace"; 
"23987.018" = "Don’t Replace"; 
"23987.019" = "Do not ask me again"; 

Parece un poco más estructurado. Probablemente no se le permite copiar sus archivos aunque ;-)


Un answer in apples devforum por Quinn (eskimo1) de relaciones con los desarrolladores de Apple.

Algunos elementos de la IU se localizan automáticamente para usted. Por ejemplo, la obra de arte en un UIBarButtonItem. Sin embargo, no hay una forma admitida de acceder a las cadenas como "Aceptar" y "Cancelar", ya que se utilizan en una Hoja de UIA. Sin embargo, deberían ser triviales para su localizador.

Hace 2 años though. Pero los hilos más nuevos tienen el mismo resultado. No hay manera de obtener esas cadenas.

4

Es posible acceder a las cadenas localizadas desde el haz UIKit con este fragmento:

static NSString * UIKitLocalizedString(NSString *string) 
{ 
    NSBundle *UIKitBundle = [NSBundle bundleForClass:[UIApplication class]]; 
    return UIKitBundle ? [UIKitBundle localizedStringForKey:string value:string table:nil] : string; 
} 

crédito completo va a 0xced (Usage in XCDFormInputAccessoryView)

+0

Esto no está funcionando – Vyacheslav

Cuestiones relacionadas