En general, se interactúa con NSBundle
. Utiliza una cadena para leer una versión localizada de la cadena (que se carga desde un archivo de cadenas localizadas).
También hay algunas macros que algunas personas usan para aligerar la sintaxis, estas tienen el prefijo NSLocalizedString
. Las implementaciones NSLocalizedString
usan NSBundle
.
imo, debe usar constantes de cadena para identificar la cadena localizada que lee (como debería con los diccionarios y las teclas de objeto).
puede declarar sus constantes utilizando este formulario (objc error u omisión):
extern NSString* const MONAppString_Download;
y definir así:
NSString* const MONAppString_Download = @"Download";
luego acceder a ella usando:
NSString * tableName = nil; // << using the default
NSString * localized =
[[NSBundle mainBundle]
localizedStringForKey:MONAppString_Download
value:MONAppString_Download // << return the string using the default localization if not found
table:tableName];
veces ayuda a crear funciones de envoltura para reducir el ruido, especialmente cuando las usa en muchos lugares:
// @return what's set to the above variable named 'localized'.
NSString * MONLocalized_Download();
luego configura sus cadenas de archivos como un mapa, uno para cada localización que admita.
por lo tanto, siempre que necesite leer una cadena que sea visible para el usuario, utilice el formulario anterior. también considere que hay otros recursos para localizar (puntas, imágenes, pdfs, etc.) que puede agrupar con su aplicación. gran parte del trabajo aquí también es abstraído por NSBundle, de CFBundle, si lo prefiere.
buena suerte
he encontrado localización no ha aumentado los ingresos. Esa no es una respuesta útil, así que aquí estaba lo que hice. Localización Wrt: Terminé escribiendo programas personalizados en Java para hacer lo siguiente: 1. Corregir cadenas sin macro NSLocalizedString alrededor de 2. Ejecutar el programa que escanea tu código fuente para NSLocalizedString y saca un archivo .strings 3. Extraiga las cadenas de UI de los archivos XIB y agréguelos al archivo .strings 5. Ejecute otro programa para volver a escribir archivos XIB basados en una traducción .strings – MrAnonymous
. es un dolor agregar localización después del hecho, eso ayudaría mucho. – justin
Gracias - Justin, ¿cómo utilizas XIBs de localización, si es que lo haces? ¿Se olvidó alguna herramienta o se supone que los traductores tienen Interface Builder? – MrAnonymous