多语言Android应用最佳实践

时间:2018-07-23 04:26:21

标签: android string kotlin android-resources

我正在制作一个具有多语言支持的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:它由我处理,对象的初始化更加复杂。

所以请建议我什么是最好的方法以及什么是改变语言的最佳实践。

1 个答案:

答案 0 :(得分:0)

您可以尝试编写自己的语言切换器来执行此操作,但我建议您不要这样做。这基本上是在与系统作斗争,并且很难正确处理。

处理多种语言的最佳方法是使用资源限定符,并使系统为您完成艰苦的工作。它还将满足用户的期望,即您的应用将使用与手机其余部分相同的语言。