【问题标题】:android translate string with variablesandroid用变量翻译字符串
【发布时间】:2016-09-19 23:04:31
【问题描述】:

早上好,

我有一个带有德语和英语 xml 文件的 android 应用程序。 现在我想像这样设置和文本视图:

“你好用户 x,你好世界 y。” “你好 Benutzer x,你好世界。”

对于 x 和 y,我想设置一个变量。 如何使用动态变量为两种语言翻译此文本?

【问题讨论】:

标签: android xml translate


【解决方案1】:

您的问题似乎不清楚,但根据我的理解,我建议您解决问题。

如果你想将动态参数传递给字符串,你可以通过下面的例子来做到这一点。

<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>

在本例中,格式字符串有两个参数:%1$s 是字符串,%2$d 是十进制数。您可以使用应用程序中的参数格式化字符串,如下所示:

Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);

如果您想了解更多信息,请查看:http://developer.android.com/intl/pt-br/guide/topics/resources/string-resource.html#FormattingAndStyling

【讨论】:

  • 我可以从 xml 布局而不是从 java 添加这些变量吗?
【解决方案2】:

默认情况下,android 将英语视为主要语言并从 res ⇒ values ⇒ strings.xml 加载字符串资源。当您想要添加对另一种语言的支持时,您需要通过附加连字符和 ISO 语言代码来创建一个 values 文件夹。例如,如果您想添加对法语的支持,您应该创建一个名为 values-fr 的 values 文件夹,并在其中保留一个 strings.xml 文件,其中包含翻译成法语的所有字符串。

【讨论】:

    【解决方案3】:

    “你好用户 %1$s,你好世界 %2$s。” “你好 Benutzer %1$s,你好贴边 %2$s。” 然后在代码中简单地调用 getString(R.string.your_string, yourName, yourWorld) 其中 yourName 和 yourWorld 是字符串变量。

    如果您需要知道字符串的存储位置,请参阅 Devendra Singh 的答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-18
      • 2010-10-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多