strings multi localizable language app ios objective-c xcode swift localization

ios - multi - Swift: ¿Cómo cambiar el idioma dentro de la aplicación?



nslocalizedstring swift 4 (4)

¿Tal vez el pod RSMultiLanguage es útil para ti? Lo he usado en mis aplicaciones y ofrece la posibilidad de cambiar el idioma del usuario en la aplicación. Estoy bastante seguro de que puede configurarlo dependiendo de la ubicación del usuario con un bucle if. De esta forma, es posible que no tengas que reiniciar la aplicación.

RSMultiLanguage

Uso

Para ejecutar el proyecto de ejemplo, clone el repositorio y ejecute la instalación del pod desde el directorio de Ejemplo primero.

Instalación

RSMultiLanguage está disponible a través de CocoaPods. Para instalarlo, simplemente agrega la siguiente línea a tu Podfile:

pod "RSMultiLanguage"

Autor

Roy Ng, [email protected]

Licencia

RSMultiLanguage está disponible bajo la licencia de MIT. Vea el archivo LICENCIA para más información.

Estoy usando la biblioteca Localize-Swift ( Link ) para localizar mi aplicación y funciona bien con los archivos .strings. el problema es que tengo que localizar a un idioma que es de derecha a izquierda y tengo que localizar a través de Interface Builder Storyboard para que pueda hacer que los controladores de vista se vean bien en formato RTL. la pregunta es ¿cómo configuro el guión gráfico al idioma seleccionado por el usuario en tiempo real?

por ejemplo, tengo 2 archivos de guiones gráficos:

1- ... /ProjectName/Base.lproj/Main.storyboard

2- ... /ProjectName/fa-IR.lproj/Main.storyboard

¿Cómo cambio entre ellos en tiempo real?

Ya sé que puedo cambiarlo en Esquemas y en el idioma del dispositivo, pero quiero hacerlo en tiempo real y no quiero que los usuarios reinicien su dispositivo.

Gracias


encontré mi respuesta:

NSUserDefaults.standardUserDefaults().setObject(["language identifier"], forKey: "AppleLanguages") NSUserDefaults.standardUserDefaults().synchronize()

desafortunadamente el usuario debe reiniciar la aplicación! si alguien puede encontrar una solución para no reiniciar la aplicación, infórmeme.