Colección de citas famosas - Colección de firmas - Cómo cambiar el idioma de visualización para lograr la internacionalización en el desarrollo de iOS

Cómo cambiar el idioma de visualización para lograr 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, que se puede utilizar como un diccionario multilingüe para almacenar varios idiomas. Haga clic en Localización a la derecha, marque chino e inglés:

3. Agregue un campo,

inglés, agregue: ENVIAR _ BTN _ TITLE = Ir

Chino más: SUBMIT _ BTN _ TITLE = start;

4. Una clase de herramienta GDLocalizableController, utilizada para cambiar los idiomas locales:

//

// ? GDLocalizableController.h

// ?Guía de viaje

//

// ?Creado por Why el 16/07/14.

// ? Copyright (c) 2014 Por qué. Todos los derechos reservados

//

#Import

@ interfaz gdlocalizable controlador: objeto ns

(paquete ns *)paquete / / Obtener el archivo de recursos actual

(void)init user language; //Inicializar el archivo de idioma

(ns string *)user language //Obtener el idioma actual de la aplicación; .

(void)establecer idioma de usuario: (ns string *)language; //Establecer el idioma actual

@end

//

// ?GDLocalizableController.m

// ?Guía de viaje

//

// ?Creado por Why el 16/7/14.

// ? Copyright (c) 2014 Por qué. Todos los derechos reservados

//

#Import GDLocalizableController.h

@Implement GDLocalizableController

NSBundle estático * paquete = nil

(NSBundle *)bundle{

Paquete de devolución;

}

(void)initUserLanguage{

nsuserrefaults * def =[nsuserrefaults standardUserDefaults];

ns string * string =[def valueForKey:@idioma del usuario];

if(string.length == 0){

//Obtener la versión de idioma actual del sistema.

NSArray * idiomas = [def objectForKey: @apple idiomas];

ns string * current = [idiomas objectAtIndex: 0]; string = current;

[def setValue: current forKey: @ idioma del usuario];

[Sincronización de definición]; // Persistencia, si no se agrega, no se guardará.

}

//Obtener ruta del archivo

ns cadena * ruta =[[ns paquete paquete principal]ruta para el recurso: cadena de tipo: @ lproj] ;

bundle =[ns paquete paquete con ruta: ruta];//Generar paquete

}

(NSString *)Idioma del usuario {

nsuserrefaults * def =[nsuserrefaults standardUserDefaults];

ns string * language =[def valueForKey:@idioma del usuario];

Idioma de retorno;

}

(void)setuser language: (ns string *)language {

nsuserrefaults * def =[nsuserrefaults standardUserDefaults];

//1. valor del paquete en 1 paso.

ns cadena * ruta =[[paquete ns paquete principal]ruta para el recurso:idioma del tipo:@lproj];

paquete =[paquete ns paquete con ruta:ruta];

//2. Persistente

[def setValue: idioma paraClave: @ idioma del usuario];

[Sincronización de definición]; }

@end

5. Personaliza las macros para facilitar el procesamiento:

//-Configuración en varios idiomas

#Definir chino @ zh-Hans

#Definition English@en

# define GDLocalizedString(key)[[paquete de controlador gdlocalizable]localizedStringForKey: (key)value:@table:nil]

Uso:

[GDLocalizableController setuser idioma: chino];

NSLog(GDLocalizedString(@ SUBMIT _ BTN _ TITLE));

[GDLocalizableController setuser] idioma: INGLÉS];

NSLog(GDLocalizedString(@SUBMIT_BTN_TITLE));