如何通过了解 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);
我会让事情变得更清楚。我有一个支持英语和法语的 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);