如果一个字符串开始(第一个字母)宽度为RTL语言/希伯来语,我试图打算.
有任何想法吗?
请考虑以下情形:您正在开发一个多语言Web应用程序.如果您要定位的所有语言都是LTR
或者RTL
,则不需要特定于语言的CSS规则.但是,如果您的目标语言是语言LTR
和混合RTL
语言,则需要为每种语言指定页面的阅读方向.
如果您添加dir='ltr'
或dir='rtl'
到<body>
元素,你在逻辑上应该期望它应该做必要的魔法.
但是,您实际上需要切换规则中的所有right
和left
设置,例如text-direction
和margin
.你还需要改变的规则一样margin: 0 10px 0 20px;
,以margin: 0 20px 0 10px;
W3C标准可以通过允许两个与方向相关的规则的值来避免这个问题.换句话说,代替-right
和-left
(如在margin-right
和中margin-left
),他们可以允许类似以下内容:
div.foo { margin-near: 100px; }
/* This would be equivalent to margin-left in LTR, and margin-right in RTL */
div.bar { margin-far: 100px; }
/* This would be equivalent to margin-right in LTR, …
Run Code Online (Sandbox Code Playgroud) 我有一个简单的TextView,它应该android:gravity="left"
用于ltr系统区域设置和android:gravity="right"
rtl系统区域设置.
显而易见的选择是:android:gravity="start"
但是,例如,英语文本将始终左对齐,希伯来语右对齐.
以下是它的外观android:gravity="start"
:
LTR语言环境:
| ????| // incorrect
|test | // correct
Run Code Online (Sandbox Code Playgroud)
RTL语言环境:
| ????| // correct
|test | // incorrect
Run Code Online (Sandbox Code Playgroud)
它看起来应该是这样的:
LTR语言环境:
|???? |
|test |
Run Code Online (Sandbox Code Playgroud)
RTL语言环境:
| ????|
| test|
Run Code Online (Sandbox Code Playgroud)
是否可以在不使用带有修改的xml文件的layout-ldrtl文件夹的情况下执行此操作?这会使开发复杂化很多,因为我必须两次编辑很多布局文件...
编辑: API 17+的解决方案就足够了.我编写了系统区域设置,但实际上我允许用户更改应用程序语言:
Configuration configuration = context.getResources().getConfiguration();
configuration.setLayoutDirection(selectedLocale);
configuration.locale = selectedLocale;
context.getResources().updateConfiguration(configuration, context.getResources().getDisplayMetrics());
Run Code Online (Sandbox Code Playgroud)
因此,如果将此区域设置考虑用于rtl < - > ltr选项,那将会很棒.
我正在使用阿拉伯语版本的Android应用程序.
在其中一个接口中,我有gridView.因此,要以正确的顺序显示项目,我必须从右到左显示GridView中的项目(以及从顶部到底部的corse).为此,我尝试在GridView中添加这些属性:
android:gravity="right"
android:layout_gravity="right"
Run Code Online (Sandbox Code Playgroud)
不幸的是,项目仍然从左到右显示.
有什么想法以正确的方式做到这一点?
试图显示以数字开头的希伯来字符串,始终在字符串末尾显示数字,如下所示:1.יוםשישיבבוקר
但我需要在文字的右侧显示数字 -
任何解决方案?
它发生在UILabel和UITextField和UITextView上
并且尝试在左侧写入数字也会产生相同的数据.
使用UITextAlignment的组合将无济于事.
我的应用程序使用RTL语言(从右到左).
当EditText
字段获得焦点时,光标出现在左侧,仅当用户开始键入时,光标(和RTL文本)向右移动.当用户单击"输入"以开始新行时,光标再次向左移动.
当我使用时android:gravity="right"
,光标是OK(在右侧)但是当用户开始键入时,文本总是移动到另一侧(RTL文本向左移动).
任何想法如何我可以将文本对齐并保持文本方向?
我在水平方向使用RecyclerView,从左到右使用New元素.和滚动是ltr.如何改变这个方向?
Xml代码:
<android.support.v7.widget.RecyclerView
android:id="@+id/rc3"
android:layout_gravity="right"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
Run Code Online (Sandbox Code Playgroud)
和Java:
RecyclerView rc1 = (RecyclerView) findViewById(R.id.rc1);
AdapterMainPrice mainPrice = new AdapterMainPrice(StructPrice.getThreePrice());
rc1.setHasFixedSize(false);
LinearLayoutManager llm = new LinearLayoutManager(G.context);
llm.setOrientation(LinearLayoutManager.HORIZONTAL);
rc1.setLayoutManager(llm);
rc1.setAdapter(mainPrice);
Run Code Online (Sandbox Code Playgroud)
适配器:
公共类AdapterMainPrice扩展了RecyclerView.Adapter {
private List<StructPrice> prices;
public AdapterMainPrice(List<StructPrice> catList) {
this.prices = catList;
}
@Override
public int getItemCount() {
return prices.size();
}
@Override
public void onBindViewHolder(NewsViewHolder ghazaViewHolder, int position) {
StructPrice price = prices.get(position);
ghazaViewHolder.vTitle.setText(price.getProductName());
Glide.with(G.context)
.load(price.getProductPic())
.placeholder(R.drawable.loading_spinner)
.crossFade()
.into(ghazaViewHolder.Vimg);
ghazaViewHolder.cardView.startAnimation(ghazaViewHolder.animation);
}
@Override
public NewsViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View itemView …
Run Code Online (Sandbox Code Playgroud) 我使用Flutter超过一周,并想创建一个阿拉伯语(从右到左)的应用程序.
我正在阅读国际化Flutter应用程序,但它没有提到如何设置布局方向.
那么,如何在Flutter中显示从右到左(RTL)的布局?
我使用Twitter引导程序并尝试将导航栏的文本对齐,即 - "品牌"将出现在右侧,而其他所有内容都出现在右侧.(从右到左的网站).
有什么想法可以实现吗?
我正在尝试在我的情节中添加一些文本,即RTL(在本例中为希伯来语).经过一些工作设法让它显示文本,但它显示LTR(意思是,以崇敬的顺序).我已经挖掘了参考资料并在网上进行了广泛的搜索,没有任何结果.
我正在使用的一个例子:
import matplotlib.pyplot as plt
plt.text(0.5, 0.5, u'???? ???? ?', name = 'Arial')
plt.show()
Run Code Online (Sandbox Code Playgroud)
它显示'אהתיכםלוש'.如果你看不到希伯来语,就好像我输入'Hello',输出就是'olleH'.
我不能简单地反转输入,因为它是混合LTR和RTL.
我们将不胜感激.
right-to-left ×10
android ×4
direction ×2
hebrew ×2
layout ×2
alignment ×1
arabic ×1
css ×1
flutter ×1
gridview ×1
iphone ×1
javascript ×1
matplotlib ×1
multilingual ×1
python ×1
regex ×1