内容描述应该是多种语言吗?

时间:2013-08-29 16:39:12

标签: android resources multilingual

我正在开发一个应用程序,我正在为多语言提供支持, 但在ImageView中的内容描述

<ImageView
        android:id="@+id/imgSomeID"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_marginBottom="1dip"
        android:layout_marginLeft="1dip"
        android:adjustViewBounds="true"
        android:contentDescription="@string/imgDescription"
        android:src="@drawable/img_selector"> 

问题

  1. 是否有必要以所有语言进行内容描述?

  2. 如果不提供内容说明(保持与英语,美国语言环境相同)会发生什么?

  3. 将英语与当地语言混合是正确的,例如Hello 세계 (Korean) =&gt; Hello World

  4. 我是开发多语言应用的新手,所以请帮助新手..

3 个答案:

答案 0 :(得分:2)

内容描述是一种辅助功能,当有视力障碍的人使用您的应用程序时启用该功能。启用辅助功能模式后,Android会开始读取屏幕内容。这有助于人们了解您的应用正在做什么以及如何在不看屏幕的情况下使用它。对于带有文本的控件,如按钮,Android会读取此文本,这很好。但是,如果您有图像,那么Android只会说“图像”。这通常不足以理解这个图像是什么。这是内容描述发挥作用的地方。如果此图片有内容说明,则会发布此内容,人们将更好地了解此图片的内容。例如,“形象笑脸”。

回答您的问题,如果您没有为图像提供有意义且本地化的内容描述,那么视力受损的人将难以使用您的应用程序。我会一直正确地翻译它。

答案 1 :(得分:2)

第一个问题没有完美答案。但是,由于您正在开发多语言应用程序,我建议您为您关心的语言进行翻译。它可能取决于您的应用程序的目标用户。例如,如果您的目标用户是韩语,那么如果您可以为他们翻译则会好得多,不是吗?

对于第二个问题,如果您的用户使用您未提供的语言,它将使用默认的本地源文件

    res/
        value/
            strings.xml

通常我们会将英语资源放在这里,因为它是最常用的语言。但是如果你真的想要,你仍然可以把其他语言资源放在这里。

对于你的第三个问题,它仍然没有完美的答案。这取决于您的应用程序的需求以及您希望向用户显示的内容。但是,它不会混合使用不同的语言,因为人们通常使用完整的字符串资源。

例如,如果你有:

RES /值/ strings.xml中

<?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string name="hello_world">Hello World!</string>
    </resources>

RES /值-ES / strings.xml中

<?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string name="hello_world">Hola Mundo!</string>
    </resources>

因此,如果你使用@ string / hello_world,如果用户的设备设置为西班牙语,它将显示Hola Mundo!,并显示Hello World!以用于任何其他设置。当然你可以把它分开,这样你就可以得到像你的帖子一样的混合语言。

Here是支持多种语言的文档。希望它会对你有所帮助。

答案 2 :(得分:1)

这些问题没有“正确”的答案。这取决于您的程序是否满足目标受众的需求,如果它显示英语或混合语言文本而不是用户的本地语言。

对于将获得广泛分发的程序,我认为用户希望以自己的语言运行 - 但这可能取决于程序的功能。