Tengo un proyecto que usa una biblioteca estática (SL). En esa SL, hay un par de cadenas que me gustaría localizar y el proyecto incluye todos los archivos de localización. La localización funciona bien cuando se almacenan todas las traducciones de texto en el mismo archivo. Lo que pasa es que me gustaría separar las cadenas SL de las otras cadenas. Intenté poner dos archivos * .strings diferentes (Localizable.strings y Localizable2.strings) en la carpeta de idioma de interés pero eso no funcionó. También traté de usar dos archivos * .strings con el mismo nombre (Localizable.strings) pero con diferentes rutas. Tampoco funcionó. Parece que solo se admite un archivo de localización, ¿verdad? ¿Alguien podría sugerir una buena manera de hacer esto? Estoy usando SDK 3.2 beta 2.Localización de cadenas en lib estática
Respuesta
No es posible agrupar en un lib estática, pero puede crear nuevo paquete como "MyStaticLibraryName.bundle", poner dentro de todas las localizaciones y utilizar el código de abajo en vez "NSLocalizedString()". Todo lo que necesita hacer: agregar una biblioteca estática y un paquete de recursos.
NSString *MyLocalizedString(NSString* key, NSString* comment) {
static NSBundle* bundle = nil;
if (!bundle) {
NSString* path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"MyStaticLibraryName.bundle"];
bundle = [[NSBundle bundleWithPath:path] retain];
}
return [bundle localizedStringForKey:key value:key table:nil];
}
Haga la cadena localizable para la biblioteca estática, luego coloque ese archivo de cadena en una carpeta "YourLibraryResource". Cambie el nombre de la carpeta "YourLibraryResource.bundle".
Ahora incluye este paquete también en el proyecto junto con la biblioteca. Luego usa el código dado por abuharsky.
Poner archivos con el mismo nombre intro one proyecto nunca funciona, porque en la aplicación resultante terminan todos en la misma ubicación. (. Xcode no conserva la estructura de directorios)
Pero se puede poner parte de su localización en Localizable2.strings y luego usar:
NSLocalizedStringFromTable (@ "clave", @ "Localizable2", @ "")
Sí, ¡esa es exactamente la solución correcta! – slatvick
- 1. Java: localización de cadena estática
- 2. .net localización para cadenas
- 3. Biblioteca estática (.lib) al proyecto de Python
- 4. Símbolo duplicado: Incluir la lib estática en B estática, también incluir lib A y B en el Proyecto XCode
- 5. La mejor manera de diseñar para la localización de cadenas
- 6. Inicializando una matriz estática de cadenas (C++)?
- 7. De la biblioteca estática MinGW (.a) a la biblioteca estática de Visual Studio (.lib)
- 8. iPhone: archivo de cadenas por defecto de localización/internacionalización
- 9. C++ Project compila como lib estática, falla (error del enlazador) como lib dinámico. ¿por qué?
- 10. cómo vincular con lib dinámica (.so) y estática libc.a
- 11. Cómo convertir una dll dinámica a lib estática?
- 12. Localización en WPF
- 13. .NET lib para interpretar las cadenas de agente de usuario
- 14. alternativa gettext lib en C?
- 15. .Net Localización vs Branding
- 16. Localización de C biblioteca estándar
- 17. Determinación de la arquitectura de la CPU de una biblioteca estática (LIB) en Windows
- 18. conversión de matriz de cadenas 2D estática a HashMap
- 19. Localización de aplicaciones WPF basadas en MVVM
- 20. ¿Cómo observar el contenido de la lib estática en mac OS?
- 21. Lote de localización utilizando IBTools?
- 22. Localización de teclas Info.plist anidados
- 23. Herramientas de localización integradas en VS2008
- 24. Localización del iPhone sin inglés
- 25. iPhone en_ * localización de sublanguage
- 26. Localización en MonoDroid
- 27. Localización en tiempo de ejecución
- 28. Localización de módulo en DNN
- 29. Encontrar símbolos indefinidos en Windows lib
- 30. #pragma comment (lib, "xxx.lib") equivalente en Linux?
Para que la cadena de caracteres funcione con esta configuración, se debe usar el parámetro -s. – hariseldon78