1

我正在制作一个用户可以更改语言的应用程序。我正在考虑为每种支持语言制作一个 xml 文件,然后告诉应用程序根据用户选择的语言加载一个 xml。例如,我有一个名为 English.xml 的 xml 文件,如下所示:

 <?xml version="1.0" encoding="UTF-8" ?>
 <English>
    <string name="LoginButtonText">Login</string>
 </English>

如何获取此 LoginButtonText 字符串以将其用作我的按钮标题。我正在使用 Xamarin。知道我该怎么做吗?提前致谢。

4

2 回答 2

1

如果您不想使用大多数 Android 应用程序遵循的标准 strings.xml 资源方法 ( http://developer.android.com/guide/topics/resources/string-resource.html#String ),您可以执行以下操作:

像这样加载您的 xml 文档(您可能必须将文件的构建操作设置为“内容”):

var stringsDoc = XDocument.Load ("English.xml");

要从 XML 中获取适当的字符串:

IEnumerable<XElement> strings =
    (from el in stringsDoc.Root.Elements("string")
    where (string) el.Attribute("name") == nameToLookFor
    select el);

var buttonLabel = strings.First ().Value;

在您的活动中,您设置按钮的标题,如下所示:

Button myButton = FindViewById<Button> (Resource.Id.button1);
myButton.Text = buttonLabel;
于 2013-08-22T13:16:23.287 回答
1

在布局中使用以下代码,这将使语言根据所选语言从字符串文件动态加载

android:text="@string/LoginButtonText"

您应该使用单独的字符串文件进行本地化。因此,为此,我在下面为您附加了链接

https://developer.xamarin.com/guides/android/application_fundamentals/resources_in_android/part_5_-_application_localization_and_string_resources/

https://developer.xamarin.com/guides/android/advanced_topics/localization/

供您参考,我用它来使它像这样 英语: values ->strings.xml Telugu: values-te ->strings.xml

于 2017-06-03T06:12:34.357 回答