2012-02-08 10 views
18

Alcuni controlli iOS hanno stringhe localizzate integrate da Apple. Gli elementi del pulsante della barra "Fatto", "Modifica" e "Indietro" sono alcuni esempi. C'è un modo per accedere a queste stringhe?È possibile accedere a livello di programmazione alle stringhe localizzate standard in Cocoa Touch?

Sto creando un UIActionSheet con le opzioni standard "Cancella" o "Annulla", proprio come quando si elimina un contatto nell'app Contatti.

C'è un modo per fare riferimento a queste stringhe nel codice? In caso contrario, c'è un posto dove posso almeno ottenere queste stringhe (come ad esempio estrarle dalle risorse di un'app Apple)? Salverebbe ulteriore lavoro di localizzazione e garantirebbe la coerenza con la piattaforma.

risposta

6

Se iOS è come Mac OS, ciascuna app porta il proprio file Localizable.strings. E in ogni file di stringhe hai tutte quelle piccole stringhe come Fatto, Modifica, Annulla e così via.

Queste sono alcune stringhe ho copiato dal file di inglese Localizable.string da 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> 

Si ottiene l'idea. Ogni piccola stringa è localizzata in ogni app.

Questo è da 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"; 

Sembra un po 'più strutturato. Copiare i file non è probabilmente consentito però ;-)


Un answer in apples devforum da Quinn (eskimo1) da Developer Relations di Apple.

Alcuni elementi dell'interfaccia utente sono automaticamente localizzati per voi. Ad esempio, il disegno su un UIBarButtonItem. Tuttavia, non esiste un modo supportato per accedere alle stringhe come "OK" e "Annulla" come vengono utilizzate in un UIActionSheet. Tuttavia, dovrebbero essere banali per il tuo localizzatore.

2 anni però. Ma i thread più recenti hanno lo stesso risultato. Non c'è modo di ottenere quelle stringhe.

4

E 'possibile accedere alle stringhe localizzate dal bundle UIKit con questo frammento:

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

credito completa va a 0xced (Usage in XCDFormInputAccessoryView)

+0

Questo non funziona – Vyacheslav

Problemi correlati