2011-03-18 13 views
66

me acaba de actualizar a Xcode 4.¿Cómo localizar mi aplicación con Xcode 4?

Normalmente, cuando la localización de aplicaciones añadimos archivo "Localizable.String" al proyecto, y vaya a "Obtener información" del menú y haga clic en el botón "Make It localizada".

Sin embargo, en Xcode 4, no hay menú "Obtener información".

Cuando intento agregar un idioma, solo afecta al archivo "InfoPlist.String" (que solo puede localizar el nombre de la aplicación).

¿Cómo puedo agregar localización a mi aplicación en Xcode 4?

+1

Solo tiene que seguir este tutorial: http://www.raywenderlich.com/2876/how-to-localize-an-iphone-app-tutorial. Espero que esto ayude. – SNR

+0

Verificar [Usar un único archivo de guión gráfico para la internacionalización de bases en iOS 6] (http://forums.macrumors.com/showthread.php?t=1467446) – mikezang

Respuesta

13

Seleccione el archivo que desea localizar y haga clic en el inspector de archivos en la sección de utilidades. Hay una sección Localización

8

Puede ver la información del archivo (y agregar localizaciones) cuando selecciona el archivo y abre el "Inspector de archivos" a través del menú principal "Ver" -> "Utilidades" -> "File Inspector ".

+0

Parece que no puedo eliminar las localizaciones existentes del inspector de archivos. Se pregunta "¿Desea eliminar ...?", Pero al confirmar con el botón "Eliminar" ... no ocurre nada. El archivo todavía está allí. Estupendo. – DefenestrationDay

4

primero debe agregar el nuevo archivo Localizable.string y seleccionarlo y vaya a Ver "->" Utilidades "->" Inspector de archivos haga clic en el botón + para agregar el idioma en la sección de localización. también verifíquelo XCode 4, Adding localization

1

¡la forma de Localización en xcode4 ha cambiado! haga clic con el botón derecho en Localizable.strings y para agregar soporte para otro idioma, simplemente haga clic en el '+' en ese panel de 'Localización' a la derecha.

209

Es simple una vez que lo entiendes.

Si desea lograr esto con Xcode .xy iOS 7 o Xcode .xy iOS 8, echa un vistazo a "How to localize my app with Xcode 5?" en su lugar.

Me gustó SNRlink, pero su respuesta fue un poco corta.

Además, veo que esta pregunta es un poco antigua, y mi respuesta puede ser diferente de las versiones anteriores de Xcode. (Utilicé Xcode v. 4.3.3)

Sin embargo, he actualizado mi respuesta a trabajar con tanto Xcode 4.3.5 y por debajo de + 4,4 y superior (5.x y Xcode 6.x aquí: How to localize my app with Xcode 5?).

Para comenzar, debe agregar un nuevo "Archivo de cadenas" en la categoría de recursos de iOS.

Strings File

A continuación, cree el archivo como "Localizable.strings". Create As

Cuando se crea el archivo, selecciónelo y abra el Inspector de archivos.

The Localizable File File Inspector

EDITAR: Las cosas han cambiado (un poco) con el nuevo Xcode 4.4, 4.5 (o superior) (para el apoyo iOS 6). Si usted es No usando Xcode 4.4 o arriba, joust omita este paso.

{ El Xcode 4.4, 4.5 (o superior) manera:

haga clic en el "Make localizado" botón Make localized button

Ahora diríjase a la página principal del proyecto. Main Project page

Y haga clic en el botón "+" en Localización y seleccione los idiomas que desea admitir.

(Voy a seleccionar Alemán/Deutsch)

List of languages

Ahora aparecerá una ventana pidiéndole que lo que los archivos que desea localizar, asegúrese de Sólo se selecciona el archivo "Localizable.strings" y haga clic en Finalizar.

Only the "Localizable.strings" file is selected

}

{ El Xcode 4.3.5 y por debajo manera:

Haga clic en el botón "+" en la localización, y seleccione los idiomas que desee apoyo.

(Voy a seleccionar Alemán/Deutsch)

List of languages

}

.

.

.

.

Ahora debería ver que tiene dos archivos en el archivo "Localizable.strings".

Localizable Files

A continuación, añadir sus cadenas de localización en el interior tanto de los archivos de localización.

English

German

Ahora aquí viene la parte de codificación.

Aquí simplemente declararé UILabel y estableceré su texto en la cadena del archivo Localizable.

declaran:

IBOutlet UILabel *testLabel; 

y en el interior viewDidLoad Voy a poner el texto utilizando NSLocalizedString:

[testLabel setText:NSLocalizedString(@"TEST", nil)]; 

para terminar, sólo tiene que conectar nuestra testLabel en "Interface Builder".

Connect IBOutlet

Ahora usted debería ser capaz de ejecutar el proyecto y ver la cadena localizada. Y si cambia el idioma, también debería ver el cambio de cadena localizado.

English ResultChange the languageGerman Result

+4

Nota realmente útil con respecto a Xcode 4.5 (necesita agregar localizaciones desde la página de propiedades del proyecto) – buskila

+1

Las observaciones de Aleksandar Azizi sobre Xcode 4.5 y posteriores se aplican realmente a Xcode 4.4 y posteriores. –

+1

¡Esta es una respuesta increíble! funciona de la misma manera con las imágenes? –

0

O usted podría utilizar TraductoPro para automatizar este proceso para usted y guardar una gran cantidad oftime. Es una aplicación de Mac que se integra bien con Xcode.

1

Puede tomar avanzada del tiempo de ejecución definido por el usuario Atributos:

http://cupobjc.blogspot.com.es/2014/04/interfaz-builder-localization.html

En primer lugar definir una nueva categoría para UILabel:

#import "UILabel+Localized.h" 

@implementation UILabel (Localized) 
-(void) setTextLocalized:(NSString *)aText{ 
    [self setText:NSLocalizedString(aText, nil)]; 
} 
@end 

Luego, en el constructor de interfaces, Tiempo de ejecución definido por el usuario Atributos:

textLocalized Enlaza tu cadena al

localizado

enter image description here

Y no es necesario declarar la IBOutlet, y no necesita código de esto en el viewDidLoad [testLabel setText: NSLocalizedString (@ "TEST", nil)];

0

Si desea una forma dinámica de cambio de idioma dentro de su aplicación y el uso de una solución basada vainas salida:

https://github.com/nullic/DPLocalizationManager

Instalar con: pod 'DPLocalization', '~> 1.2'

Es compatible con los mismos archivos de localización estándar, pero también usa enlaces dinámicos usando User Defined runtime attributes y también código interno como viewDidLoad.

Algunos ejemplos en el proyecto de ejemplo:

self.startup.text = DPLocalizedString(@"TITLE", nil); 
self.label.autolocalizationKey = @"LABEL_TEXT"; 
[self.label updateAutolocalizationArguments:@[@"Hello", @1234567890, [NSDate date]]]; 
self.autolocalizationKey = @"TITLE"; 

descargar el proyecto Git que incluye el proyecto de ejemplo que muestra varios ejemplos.

+0

También utilicé la respuesta de Aleksander Azizi para construir un archivo de localización estándar dentro del proyecto, pero necesitaba una forma de cambiar fácilmente dentro de la aplicación entre idiomas. –