Java Android实现多语言支持

Java Android实现多语言支持,java,android,kotlin,locale,multilingual,Java,Android,Kotlin,Locale,Multilingual,在android上实现多语言支持的最佳方式 1.使用string.xml文件 2.从服务器端获取语言翻译 有办法从后端获取xml并节省资源吗?后端开发人员建议我从服务器获取语言翻译。最好的方法是使用string.xml文件。这是Android对I18n处理的强大框架支持,企业应用程序就是使用它构建的。我在中国的所有应用程序都使用Android框架。这些步骤是: 维护所有字符串的列表 不要在Android Java中硬编码stings,请参考XML 您可以使用谷歌翻译或百度翻译等服务器网站或同等网

在android上实现多语言支持的最佳方式 1.使用string.xml文件 2.从服务器端获取语言翻译


有办法从后端获取xml并节省资源吗?后端开发人员建议我从服务器获取语言翻译。

最好的方法是使用string.xml文件。这是Android对I18n处理的强大框架支持,企业应用程序就是使用它构建的。

我在中国的所有应用程序都使用Android框架。这些步骤是:

  • 维护所有字符串的列表
  • 不要在Android Java中硬编码stings,请参考XML
  • 您可以使用谷歌翻译或百度翻译等服务器网站或同等网站进行翻译 例如,下面是引用字符串的“我的活动代码”示例:

    tx1 = (TextView) findViewById(R.id.your_textview);
    tx1.setText(R.string.msg_about_feedback);
    
    下面是res>values>strings.xml的摘录

    <string name="msg_about_feedback">Feedback</string>
    <string name="msg_about_filesource">File Source</string>
    <string name="msg_about_cloudIP">Server</string>
    <string name="msg_about_localIP">Server</string>
    <string name="msg_about_serverIP">Server</string>
    
    <string name="msg_about_feedback">反馈</string>
    <string name="msg_about_filesource">文件源</string>
    <string name="msg_about_cloudIP">服务器</string>
    <string name="msg_about_localIP">服务器</string>
    <string name="msg_about_serverIP">服务器 IP</string>
    
    反馈
    文件源
    服务器
    服务器
    服务器
    
    下面是res>values zh>strings.xml

    <string name="msg_about_feedback">Feedback</string>
    <string name="msg_about_filesource">File Source</string>
    <string name="msg_about_cloudIP">Server</string>
    <string name="msg_about_localIP">Server</string>
    <string name="msg_about_serverIP">Server</string>
    
    <string name="msg_about_feedback">反馈</string>
    <string name="msg_about_filesource">文件源</string>
    <string name="msg_about_cloudIP">服务器</string>
    <string name="msg_about_localIP">服务器</string>
    <string name="msg_about_serverIP">服务器 IP</string>
    
    反馈
    文件源
    服务器
    服务器
    服务器 知识产权
    
    您必须确保每个语言文件中的条目匹配。如果文件中缺少一个字符串,Android Studio将标记错误。使用这种方法,一切都由Android处理


    如果您不熟悉第二语言,最好让人检查翻译。由于上下文、语法等原因,当您盲目地获取翻译服务器的输出时,往往无法获得正确的结果。

    您可以将数据获取为简单的json,为什么是xml?我认为使用string.xml是正常的,没有办法下载一些东西和运行时并将它们保存到资源中。资源是在编译时计算的。不过,您可以使用其他资源来管理这些下载的翻译。这是一个正确的答案。但是您不需要
    getString
    在代码中使用字符串:
    tx1.setText(getString(R.string.msg_about_feedback))。您可以简单地使用
    tx1.setText(R.string.msg\u about\u feedback)漂亮的接球。非常感谢。还有一件事,第二个文件名目录中的“zh”是两个字符的中文ISO代码(中国)。你可以用“it”表示意大利语,“fr”表示法语或其他任何语言。只需为每组翻译添加一个单独的文件。