Red de conocimiento informático - Material del sitio web - Cómo cambiar el idioma de visualización para la internacionalización en el desarrollo de iOS

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];

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: