3

我正在开发一个应用程序,我在其中提供对多种语言的支持,但在 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) => Hello World

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

4

3 回答 3

2

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

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

    res/
        value/
            strings.xml

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

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

例如,如果您有:

res/values/strings.xml

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

res/values-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!任何其他设置。当然,您可以将其分开,以便在您确实需要时获得像您的帖子这样的混合语言。

是支持多语言的文档。希望它会帮助你。

于 2013-08-29T18:03:41.883 回答
2

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

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

于 2013-08-29T17:08:29.183 回答
1

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

对于将获得广泛分发的程序,我认为用户会希望使用他们自己的语言进行操作——但这​​可能取决于程序的功能。

于 2013-08-29T16:43:45.693 回答