我正在制作一个具有多语言支持的android应用。 我有大约30种语言支持我的应用程序。
我正在玩2 Case。
情况1。第一种情况是在res文件夹中创建每种语言的values文件夹。
案例2。第二种情况从服务器获取带有密钥的每种语言内容
e.g. TXT_HELLO = HELLO if user choose English
TXT_HELLO. = HOLA. if user choose Spanish
Suppose from language list I select Spanish during language change
then server give me list of every Spanish content with a same key
[Key] = [Value]
e.g. TXT_HELLO = Hola
TXT_GOOD = Bueno
& then I save this value with key is session & all key also in my Constant class
Similarly In Case if I select English:
[Key] = [Value]
e.g. TXT_HELLO = Hello
TXT_GOOD = good. as Soon
这是我的kotlin代码的工作方式。
fun getLanguageValue(key : String)->{
return sharedPre.getString(key)
}
txtViewHello.text = getLanguageValue(MyConstant.TXT_HELLO)
案例1的利弊。
优点:系统处理和良好的内存管理
cons:仅语言可以添加到新版本的APK中。如果某个单词是错误的,那么不放行就不可能正确。
案例2的利弊。
优点:如果某些单词有误,则可以在线更正。无需发布新的APK或可以随时添加更多语言。
cons:它由我处理,对象的初始化更加复杂。
所以请建议我什么是最好的方法以及什么是改变语言的最佳实践。
答案 0 :(得分:0)
您可以尝试编写自己的语言切换器来执行此操作,但我建议您不要这样做。这基本上是在与系统作斗争,并且很难正确处理。
处理多种语言的最佳方法是使用资源限定符,并使系统为您完成艰苦的工作。它还将满足用户的期望,即您的应用将使用与手机其余部分相同的语言。