标签: bidi

如何模拟尚未实现的<bdi> HTML标记?

的目的<bdi>在HTML5标签是双向文本隔离它的上下文.这正是我正在寻找的.

从左到右的用户名显示如下:

Welcome, Generic User. [Logout]
Run Code Online (Sandbox Code Playgroud)

使用从右到左的用户名会变成这个可怕的东西:

Welcome, [tougoL] .resU cireneG
Run Code Online (Sandbox Code Playgroud)

甚至更糟糕,取决于上下文,向后显示周围的一切(而不仅仅是用户的名字).

问题是没有浏览器支持<bdi>标签,所以我在徘徊,有没有办法模拟它?什么HTML标签可以隔离它?我知道<span>,<div>不知道.

我不想删除所有BIDI字符,但我看到它的方式,我的网站正确显示的重要性>双向语言用户参与的权利.

php unicode html5 bidi internationalization

6
推荐指数
1
解决办法
680
查看次数

如何使用StaticLayout在自定义视图中绘制BiDi文本

在自定义的Android视图中,我正在绘制几个可能是双向的用户输入文本.例如希伯来语或阿拉伯语混合英文文本或数字.要绘制文本,我基本上使用视图的Canvas,TextPaint和StaticLayout.实际的代码相当复杂并且分散开来,但绘制文本的位看起来像这样:

TextPaint _paint = getPaint();
Canvas _canvas = ...; // the canvas passed in the View.onDraw(Canvas canvas) method
PointF l = locationCenter(); // the location at which the center of text should be painted
int alignment = getAlignment(); // for this element, can vary for each element.
PointF textSize = getTextBounds(); // the bounding box of the text
String text = userInputText(); // actually some user input BiDi text
                switch (alignment) {
                    case 0:
                        _paint.setTextAlign(Paint.Align.CENTER);
                        l.x += textSize.x / 2.0f; …
Run Code Online (Sandbox Code Playgroud)

android drawing text bidi

6
推荐指数
0
解决办法
695
查看次数

使用LTR和RTL内容的组合更改负数的方向

这是我的HTML结构:

div{
  direction: rtl;
}

span{
  direction: ltr;
}
Run Code Online (Sandbox Code Playgroud)
<div>
  <span>????? -2</span>
  </div>
Run Code Online (Sandbox Code Playgroud)

这是预期的结果:

在此输入图像描述

如您所见,-签名应该在数字的开头.我怎样才能做到这一点?

注意:方向div应该是rtl.


编辑:我生成这样的数字:

$sums_value = sprintf("%+d",$sums_value);

/* 
sums_value = -2 //=> -2
sums_value = 2  //=> +2
Run Code Online (Sandbox Code Playgroud)

所以数字格式正确,但我不知道为什么它会在输出中被破坏:

在此输入图像描述

html css bidi

6
推荐指数
2
解决办法
775
查看次数

python 如何处理和打印包含 RTL 和 LTR 语言的字符串?

我一直在网上搜索并向人们询问这个主题,但我确实没有得到令人满意的答案,让我在这里用 python 解释我的问题。

假设我有这个字符串:

a = '??? ???? ??? (80) ?? (something) ?????? ????? ?????'
Run Code Online (Sandbox Code Playgroud)

上面的字符串实际上应该如下所示:

b = '?????? ????? ????? (something) ??? ???? ??? (80) ??'
Run Code Online (Sandbox Code Playgroud)

因为它从 ( ??? )开始,到 ( ????? )结束

请记住,变量a的内容是按顺序正确写入的,但是 python SADLY打印出来的是它所看到的,所以输出是不正确的,尽管写入是正确的,当 ( (something) ) 进入字符串时它被翻转了,所以变量b内容是一种使文本保持正确形状的变通方法,尽管它写错了,而且不是按应写的顺序!

现在,你可能会说“如果你找到了让它工作的方法,你还在胡说八道什么?!:S”,我发现了一种使文本保持形状并看起来不错和可读的方法,我发现python 比“python 打印它看到的东西”有更多的意义当它试图打印一个双向字符串时,python 实际上以一种非常奇怪的方式运行,它实际上是在字符串周围跳跃以打印它,它没有起点和终点点(意思是从右到左或从左到右打印)让我们以变量b字符串为例:

而不是从右边打印字符串作为起点到左边作为终点(应该是),

python 会先打印 ( ?????? ??????? ????? ),然后是 ( (something) ) 其次,然后是 ( ??? ?????? ??? (80) ?? ) 第三最后打印的字符串将是 ( ?????? ????? ??????? (something) ??? ???? ??? …

python bidi arabic bidirectional right-to-left

6
推荐指数
1
解决办法
308
查看次数

为什么双向文本(希伯来语,阿拉伯语)的软件支持如此差?

虽然大多数操作系统和Web浏览器都非常支持希伯来语和阿拉伯语等双向文本,但大多数商业和开源软件都没有:

  • 大多数文本编辑器,除了原始的记事本和视觉工作室编辑器,都做得很差.(我尝试了几十个).
  • 我找不到任何文件比较工具做得不错 - 甚至没有Beyond-Compare.
  • 处理图表和报告的软件和包也是如此.

我有一些问题:

  • 你和我有同样的痛苦吗?
  • 您编写的软件是双向兼容的吗?你有关于它的错误报告吗?
  • 你甚至知道涉及哪些问题?你测试他们吗?
  • 有关如何使软件世界成为双向语言扬声器更好的地方的任何建议?

globalization standards-compliance bidi

5
推荐指数
1
解决办法
1855
查看次数

在iTextSharp中反转从右到左(双向)语言的字符串

我正在使用iTextSharp(C#iText端口)从text/html创建pdf.我的大部分文字都是希伯来语,一种从右到左的语言.

我的问题是PDF反向显示RTL语言,所以我需要以一种只能反转RTL文本的方式来反转我的字符串而不用英语反转任何数字或文本.据我所知,fribidi允许在linux上执行此操作,但我无法找到针对此问题的任何解决方案.

我欢迎任何建议,包括自动执行此操作的iTextSharp的替代方案(如果存在).

c# bidi itextsharp

5
推荐指数
2
解决办法
7108
查看次数

将Bidi文本打印到图像

我在Python中使用PIL编写了一些代码,它会将UTF-8字符打印到图像中.

我注意到,为了加入像阿拉伯语这样的Bidi脚本,相同的代码无法正确连接字符(只选择初始表单,不使用中间和最终表单)

任何人都可以推荐一种方法或技术来解决这个特殊问题吗?

python multilingual image-manipulation bidi character-encoding

5
推荐指数
1
解决办法
810
查看次数

Android混合语言文本 - 带有RTL和LTR文本的String上的BidiFormatter

我有一个ListView自定义View我有一个TextView:

 <TextView
     android:id="@+id/textViewItemTitle"
     android:layout_width="0dp"
     android:layout_weight="1"
     android:layout_height="wrap_content"
     android:gravity="right|center_horizontal"
     android:text="title" />
Run Code Online (Sandbox Code Playgroud)

TextView包含希伯来文.

 if(!bidi.isRtl(event)){
     event = bidi.unicodeWrap(event);
 }

 holder.title.setText(String.format("%s  %s  %s", bidi.unicodeWrap(item.getStartTimeNoDate().trim()), event,
 bidi.unicodeWrap(item.getDuration().trim())));
Run Code Online (Sandbox Code Playgroud)

第一个参数是时间hh:mm:ss,second(event)是希伯来字符串,第三个是第一个.

问题: 有时候事件String包含希伯来语和英语的混合文本,就像abc-???所有文本的行为都像重力一样(并且不像我在文本视图中定义的那样),我的意思是向左缩进.

怎么解决?

java android locale bidi bidirectional

5
推荐指数
3
解决办法
5393
查看次数

如何反转阿拉伯语言的括号方向(从右到左文本)

当我尝试使用阿拉伯语中的括号时,它们会被反转,如附件中所示 截图.
我已经尝试过使用textDirection RTL和BidiFormatter,但它们都不起作用.
正确的字符串是这样的"(باقةمسافرإسبوعي(مسبق).
有谁知道,如何解决它?

android bidi arabic

5
推荐指数
1
解决办法
770
查看次数

ICU Layout示例呈现的文本与Microsoft Notepad和Word不同

我有一个双向文本

1002   -??? ???? ????????
Run Code Online (Sandbox Code Playgroud)

大多数编辑记事本++,记事本等显示文本,如此处所示.但是当我通过ICU处理这个文本时,数字会向右移动,然后是空格和连字符,然后是阿拉伯语.ICU的示例应用程序layout.exe也显示右侧的数字.我修改了paragraphlayout.cpp并设置了所有可能的重新排序模式,但结果仍然相同:

请在此处查看问题文本

有人可以帮助配置ICU以提供其他显示引擎的输出.

c++ bidi bidirectional icu

5
推荐指数
1
解决办法
147
查看次数