如何通过了解 phone 的本地语言来更改变量的值?

How to change a variable's value from knowing the local language of the phone?

我会让事情变得更清楚。我有一个支持英语和法语的 android 应用程序。

由此,该应用知道 phone 上使用的语言,并在必要时更改它的语言。但是在我的应用程序中,我解析了来自 URL 的信息,并且我想更改此 url 的值,以与应用程序的语言(或 phone)进行比较。

对于法语:

String QUERY_URL = "https://api.immotoolbox.com/xml/2.0/MCRE/produits/?search[typeTransaction]=Vente&_locale=fr";

英语:

String QUERY_URL = "https://api.immotoolbox.com/xml/2.0/MCRE/produits/?search[typeTransaction]=Vente&_locale=en";

有什么想法吗?

谢谢:)

在您的 /values/strings.xml/values-fr/strings.xml 资源中定义名为 query 的字符串:

/values/strings.xml:
<string name="query">your query in english</string>

/values-fr/strings.xml:
<string name="query">your query in french</string>

在您的应用中,只需使用以下命令获取您的字符串:

String query = getActivity().getString(R.string.query);

如果您在非 activity 或非片段 class 中使用它,请执行此操作:

像那样将任何上下文传递给您的 class,使用构造函数:

public YourClassName(Context context)
 { 
   this.context=context; 
 } 

然后:context.getResources().getString(R.string.query_url);

您可以使用 Locale.getDefault().getLanguage() 为您提供语言代码,然后您可以将其附加到您的查询中。

Uri.Builder builder = new Uri.Builder();
String lang = Locale.getDefault().getLanguage()
if(!lang.equals("fr") && !lang.equals("en"))
    lang = "en";
builder.appendQueryParameter("local", lang);
String query = builder.build().getEncodedQuery();
URL url = new URL(url+"?"+query);