android 中有各种语言字符串的本地化版本。我需要本地化阿拉伯语的布局。示例:在英语中,我的布局是:名称(TextField):名称(EditText)但对于阿拉伯语它将是:名称(EditText):名称(TextField)在android中有没有办法,或者我必须做一个不同的布局以本地化阿拉伯语。
2 回答
似乎您正在寻找最近添加到 Android 中的内容: http ://android-developers.blogspot.de/2013/03/native-rtl-support-in-android-42.html
可能是早期版本的 Android,您需要自己在这里实现一些逻辑。请参阅此处的下一个链接以获取建议:http: //developer.android.com/guide/topics/resources/localization.html
这样你就可以有一个特定于阿拉伯语的布局,在“设计一个灵活的布局”部分进行了解释。有关本地化代码,请参见以下网站:http: //colincooper.net/blog/2011/02/17/android-supported-language-and-locales/
要利用 RTL 布局镜像,只需对您的应用程序进行以下更改:
在您的应用清单中声明您的应用支持 RTL 镜像。具体来说,将 android:supportsRtl="true" 添加到清单文件中的元素。
将应用的所有“左/右”布局属性更改为新的“开始/结束”等效项。如果您将应用程序定位到 Android 4.2(应用程序的 targetSdkVersion 或 minSdkVersion 为 17 或更高版本),那么您应该使用“start”和“end”而不是“left”和“right”。例如,android:paddingLeft 应该变成 android:paddingStart。如果您希望您的应用程序使用低于 Android 4.2 的版本(应用程序的 targetSdkVersion 或 minSdkVersion 为 16 或更低),那么您应该在“left”和“right”之外添加“start”和 end”。例如,您将同时使用 android:paddingLeft 和 android:paddingStart。为了在 LTR 和 RTL 模式下更精确地控制您的应用 UI,Android 4.2 包含以下新 API 来帮助管理 View 组件:
android:layoutDirection — 用于设置组件布局方向的属性。android:textDirection — 用于设置组件文本方向的属性。android:textAlignment — 用于设置组件文本对齐方式的属性。getLayoutDirectionFromLocale() — 获取指定区域设置方向的方法 您甚至可以创建自定义版本的布局、可绘制对象和其他资源,以便在使用从右到左的脚本时显示。只需使用资源限定符“ldrtl”来标记您的资源,即“布局方向从右到左”。为了调试和优化自定义从右到左的布局,HierarchyViewer 现在允许您查看层次结构中所有视图的开始/结束属性、布局方向、文本方向和文本对齐方式。