TextView显示更改设备语言时不在strings.xml中的字符串

时间:2018-02-21 18:32:21

标签: android android-studio textview

当我更改设备语言时,我的文本视图中显示不在strings.xml中的字符串。

以下是我的文字查看代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:paddingTop="@dimen/padding_all_activity_16"
    android:text="@string/check_document_image_readable"
    android:textSize="18sp"
    android:textStyle="bold" />
......

在values / string.xml文件中:

    <string name="check_document_image_readable">A foto ficou legível?</string>

我的应用不支持其他语言(用葡萄牙语写的)。

当我将设备设置为英语时运行应用程序: original

但如果我换成西班牙语(即使我杀了应用程序): enter image description here

我正在使用Android Studio 3.0.1进行开发。这发生在API的24和25中。

如何才能将values / strings.xml用于任何设备语言?

2 个答案:

答案 0 :(得分:1)

根据设备的语言设置,Android支持Different Languages and Cultures。您可以使用不同的字符串资源来实现您希望支持的语言。

在您的项目中,右键单击res / values /并选择New - &gt;值资源文件。输入&#34;字符串&#34;对于文件名,并将源选项设置为main。在可用的限定符中,然后点击&#34;&gt;&gt;&#34;按钮移动&#34; Locale&#34;到选择的限定符部分。选择您要支持的语言并选择区域(默认为:任何区域),然后左键单击&#34;确定&#34;。 Android studio将自动生成一个名为&#34; strings.xml&#34;。

的新资源文件

为什么我提到这个? Android在运行时查找默认字符串资源。可能发生的情况是您没有使用默认字符串资源,而是使用&#39; string-pt&#39;资源,如果您没有西班牙语或其他语言的资源字符串文件,这将是一个问题。

答案 1 :(得分:0)

如果您打算在用户更改默认语言时支持其他语言。 你应该覆盖 string.xml 文件

使用西班牙语作为本地创建另一个 string.xml(sp)并添加您的资源值

<resources>
       <string name="check_document_image_readable">A foto ficou legível?</string>
</resources>

使用西班牙语版本覆盖string.xml。 单击res文件夹选择新资源文件并将其命名为 strings 。 在左侧选择本地,然后选择西班牙语

相关问题