【问题标题】:How can I create a multilingual android application for right to left languages?如何为从右到左的语言创建多语言 android 应用程序?
【发布时间】:2013-10-08 12:26:50
【问题描述】:

我已经阅读了How can I create a multilingual android application?Do android support multiple languages?,并且知道如何创建具有多种语言的android 应用程序。但我的问题是显示不同语言的从右到左和从左到右的文本。

例如,在英语中,TextView 作为标签应位于 EditText 的左侧,而在波斯语中,TextView 应位于 EditText 的右侧。

如何在我的用户界面中支持从右到左的语言和 UI?

我应该为从右到左的语言设计不同的布局吗?如何在 RTL 布局中指定文件夹?类似layout-rtl?或者我如何确定语言是从右到左的?

有没有更简单的方法?

【问题讨论】:

标签: android localization multilingual bidirectional


【解决方案1】:

在 Android 4.2 中引入了官方支持,请参阅 RTL Layout Support。可以通过enter link description here查询是否被使用。

您可以尝试在所有情况下使用相同的布局,或者在“layout-ldrtl”中指定特定的布局。

根据您的示例,如果您使用的是RelativeLayout,则需要使用android:layout_alignParentStart 属性,而不是android:layout_alignParentLeft 来自动将您的标签从左向右移动。

【讨论】:

  • 确保你还在清单中的应用标签内添加了 android:supportsRtl="true"。
【解决方案2】:

您可以创建一个不可翻译的单词列表,以便您知道调用这些资源将始终获得相同的语言。 例如:

<string name="english">English</string>
<string name="english_fixed" translatable="false">English </string>

在这种情况下,对R.string.english_fixed 的引用将始终显示相同的字符串,而R.string.english 将翻译该单词。 然后,就可以在左右两个不同的TextView中使用这两种不同的资源了。

我理解问题了吗?

【讨论】:

    猜你喜欢
    • 2018-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-14
    • 1970-01-01
    • 2011-09-19
    • 1970-01-01
    相关资源
    最近更新 更多