Cómo cambiar el idioma de visualización para la internacionalización en el desarrollo de iOS
1. En la configuración del proyecto, agregue chino e inglés:
2. Cree un nuevo archivo Localizable.strings como un archivo correspondiente en varios idiomas para almacenar varios idiomas, haga clic derecho para localización al costado, verifique en inglés:
3. Agregue un campo:
En inglés, agregue SUBMIT_BTN_TITLE = Ir
En chino, agregue :SUBMIT_BTN_TITLE = Inicio;
4. Utilice la clase de herramienta GDLocalizableController para cambiar de localización:
// ?GDLocalizableController.h
// ?guide-book
//
// ?creado porWhy el 16/7/14.
// ?Copyright (c) 2014 Why.
//
#import
@interface GDLocalizableController: NSObject
(NSBundle *)bundle //obtiene el archivo de recursos actual;
(void)initUserLanguage; //inicializa el archivo de idioma
(NSString *)userLanguage; //obtiene el idioma actual de la aplicación
(void) setUserlanguage: (NSString *)language; //establecer el idioma actual
@end
//
/ ?GDLocalizableController.m
// ?guía-libro
//
// ?Creado porWhy el 16/07/14.
// ?Copyright (c) 2014 por qué. Todos los derechos reservados.
//
#import GDLocalizableController.h
@implementation GDLocalizableController
NSBundle estático *bundle = nil;
(NSBundle * )bundle{
paquete de devolución;
}
(void) initUserLanguage{
NSUserDefaults *def = [ NSUserDefaults standardUserDefaults];
NSString *string = [def valueForKey:@userLanguage];
if(string.length == 0){
// Obtener La versión de idioma actual del sistema
NSArray* language = [def objectForKey:@AppleLanguages];
NSString *current = [languages objectAtIndex: 0]; p>
cadena = actual;
[def setValue: current forKey:@userLanguage];
[def sincronizar] //persistente, no se guardará si no se agrega
}
Obtener ruta del archivo
NSString *path = [[NSBundle mainBundle] pathForResource: string ofType: @lproj];
paquete = [NSBundle paqueteWithPath: ruta]; //generar paquete
}
(NSString *)userLanguage{
NSUserDefaults *def = [ NSUserDefaults standardUserDefaults];
p>NSString *language = [def valueForKey:@userLanguage];
idioma de retorno;
}
(void)setUserlanguage: (NSString * )language{
NSUserDefaults *def = [NSUserDefaults standardUserDefaults];
/1. >
NSString *path = [[NSBundle mainBundle] pathForResource:language ofType:@lproj];
bundle = [NSBundle bundleWithPath:path];
/ /2.
Persistencia
[def setValue:language forKey:@userLanguage];
[def sincronizar];
}
@end< / p>
5. Personaliza las macros para facilitar el procesamiento: