标签: right-to-left

使用 Python 将阿拉伯语或任何从右到左书写系统的字符串打印到 Linux 终端

非常简单的例子是:

\n\n
city = "\xe2\x80\x8f\xd8\xa7\xd9\x84\xd9\x85\xd9\x83\xd9\x84\xd8\xa7\xe2\x80\x8e"\nprint(city)\n
Run Code Online (Sandbox Code Playgroud)\n\n

我期望输出是:

\n\n
\xe2\x80\x8f\xd8\xa7\xd9\x84\xd9\x85\xd9\x83\xd9\x84\xd8\xa7\xe2\x80\x8e\n
Run Code Online (Sandbox Code Playgroud)\n\n

但实际上输出是相反的字符串(字母看起来有点不同,因为它们有开始、中间和结束形式)。我无法将其粘贴到此处,因为复制粘贴会再次更正字符串的顺序。

\n\n

如何在 Linux 终端上正确打印阿拉伯语?周围的文本是从左到右 (LTR),只有这一行需要是从右到左 (RTL)。是否有 UFT-8 字符可以告诉终端这一点?

\n

python linux right-to-left

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

自动从ltr到rtl设计

我有一个 LFR(从左到右)格式的法语网站,客户希望将该网站翻译成希伯来语,从而将其转换为 RTL(从右到左)格式。所有希伯来语网站的设计都是相反的

https://he.wikipedia.org/wiki/

https://www.google.co.il/

有没有办法自动执行此操作?再说一遍,我不是在谈论文本方向。我想把它水平翻转设计,像镜面效果一样。

translation hebrew right-to-left left-to-right

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

表格单元格视图未右对齐

我正在尝试右对齐表格单元格。

模拟器

我已将整个视觉树的“语义”属性设置为“强制从右到左”值。

所需布局:

期望状态

视觉树:

视觉树

代码中没有任何视觉定义......

编辑:

在@dirtydanee建议之后:

被尾随的

uitableview right-to-left ios

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

如果没有可用的翻译,则禁用 RTL

我有应用程序中的阿拉伯语翻译。该应用程序还支持 RTL 布局。当用户使用阿拉伯语时,一切看起来都很好。问题是,当我将 local 更改为 eq Persian(他们使用 RTL)但我不提供这种语言的翻译时,我的布局看起来一团糟。

如果当前本地没有可用的翻译,如何禁用 RTL?

android android-layout right-to-left

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

在运行 Android 8.0 的三星设备上以 RTL 格式格式化“%d - %d”时出现错误

我有一个支持 RTL 的应用程序。当格式化两个团队之间的分数时,我会写下以下内容:

\n\n
t1.setText(String.format(Locale.forLanguageTag("ar-MA"), "%d - %d", 1, 0));\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果我的文本字段设置为 textDirection="locale",在运行 Android 8 和 Android 9 的所有测试设备上、在我的华为上以及基本上在任何地方,它都会在 Android 模拟器上输出“0 - 1”。但如果我在运行 Android 8.0 的三星 S7 上进行测试,它会返回“1 - 0”。我在物理设备和三星设备实验室上进行了测试:https ://developer.samsung.com/remotetestlab/rtlDeviceList.action

\n\n

这是错误的做法吗?当我有一个包含乐谱的文本字段时,如何格式化乐谱,使其在所有设备上的 LTR 和 RTL 上都可以使用?这在大多数设备上都能完美运行,但我似乎遗漏了一些关于它在三星设备上崩溃的原因。

\n\n

这是我的代码:

\n\n
<?xml version="1.0" encoding="utf-8"?>\n<LinearLayout\n    xmlns:android="http://schemas.android.com/apk/res/android"\n    xmlns:app="http://schemas.android.com/apk/res-auto"\n    xmlns:tools="http://schemas.android.com/tools"\n    android:orientation="vertical"\n    android:layout_width="match_parent"\n    android:layout_height="match_parent"\n    tools:context=".MainActivity"\n    tools:showIn="@layout/activity_main">\n\n    <TextView\n        android:layout_width="wrap_content"\n        android:layout_height="wrap_content"\n        android:text="Home team won 1-0"/>\n\n    <TextView\n        android:id="@+id/t1"\n        android:layout_width="wrap_content"\n        android:layout_height="wrap_content"\n        android:layoutDirection="locale"\n        android:text="1-0"\n        />\n    <TextView\n        android:id="@+id/t2"\n        android:layoutDirection="rtl"\n        android:layout_width="wrap_content"\n        android:layout_height="wrap_content"\n        android:text="1-0"\n        />\n    <TextView\n        android:id="@+id/t3"\n        android:textDirection="locale"\n        android:layout_width="wrap_content"\n        android:layout_height="wrap_content"\n        android:text="1-0"\n        />\n …
Run Code Online (Sandbox Code Playgroud)

android arabic right-to-left

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

连接混合从右到左和从左到右语言字符串时的奇怪行为

输入:

\n

tempTextArray:\n\xe2\x96\xbf 3 个元素

\n
- 0 : "\xd7\x96\xd7\x94 \xd7\x9e\xd7\x91\xd7\x97\xd7\x9f"\n- 1 : "7 x 5 abc"\n- 2 : "other text"\n
Run Code Online (Sandbox Code Playgroud)\n

当做一个简单的tempText = tempTextArray.joined(" | ")结果时,结果并没有将所有元素放置在我期望的位置...结果:

\n
Printing description of tempText:\n"\xd7\x96\xd7\x96\xd7\x94 \xd7\x9e\xd7\x91\xd7\x97\xd7\x9f | 7 x 5 abc | other text"\n
Run Code Online (Sandbox Code Playgroud)\n

这是我第一次将从右到左与从左到右的文本结合起来,以前有人处理过类似的情况吗?

\n

我的应用程序正在从后端接收翻译,因此我不知道哪些元素被翻译成(在本例中)希伯来语,以及我将以默认语言(英语)收到哪些元素

\n

arrays right-to-left ios left-to-right swift

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

Flutter web 括号问题与rtl语言+html渲染器

当包含括号 () 符号(或 <> 符号)的 RTL 语言(波斯语)文本放置在小Text部件中并且我们使用 html 渲染器 ( ) 为 Web 构建时,问题就会出现flutter run --web-renderer html

\n

这是代码(如图所示按原样显示 RTL。文本代码如下):

\n

带括号的 RTL 文本

\n

这是默认渲染器(桌面上的 canvaskit)的结果,一切听起来都很好:

\n

默认渲染器

\n

与 html 渲染器相同的代码:

\n

html渲染器

\n

如果我们在带括号的单词前面添加 RTL/LTR(分别)unicode 标记,我们会得到:

\n

之前添加了 unicode 标记

\n

这显然解决了“push”这个词的问题。

\n

这是文本代码:

\n
const Text(\'You have pushed the button this (many) times:\'),\nconst Text(\'You have pushed the (\xd8\xaf\xda\xa9\xd9\x85\xd9\x87) this (many) times:\'),\nconst Text(\'\xd8\xaa\xd8\xb9\xd8\xaf\xd8\xa7\xd8\xaf (\xd8\xaf\xd9\x81\xd8\xb9\xd8\xa7\xd8\xaa) \xd9\x81\xd8\xb4\xd8\xa7\xd8\xb1 \xd8\xaf\xd8\xa7\xd8\xaf\xd9\x86 \xd8\xaf\xda\xa9\xd9\x85\xd9\x87:\', textDirection: TextDirection.rtl),\nconst Text(\'\xd8\xaa\xd8\xb9\xd8\xaf\xd8\xa7\xd8\xaf (\xd8\xaf\xd9\x81\xd8\xb9\xd8\xa7\xd8\xaa) \xd9\x81\xd8\xb4\xd8\xa7\xd8\xb1 (push) \xd8\xaf\xda\xa9\xd9\x85\xd9\x87:\', textDirection: TextDirection.rtl),\n
Run Code Online (Sandbox Code Playgroud)\n

有没有办法解决html渲染器的问题?

\n

parentheses right-to-left farsi flutter

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

从右到左支持百分号

假设有一段代码如下:

<div dir="rtl">
  test 50%
</div>
Run Code Online (Sandbox Code Playgroud)

它呈现为test 50%. 但根据这个阿拉伯语维基页面,%50 test它应该显示为. 请注意,百分号位于数字之前。问题如下:如何强制执行所需的行为?浏览器支持 OOB 吗?有已知的方法可以轻松做到这一点吗?

联合发展署。我将提供更多背景信息。有一个带有输入文本属性的角度分量。假设它可能如下所示:

<component [label]="'test 50%'"></component>
Run Code Online (Sandbox Code Playgroud)

那么它的模板如下所示:

<span>{{label}}</span>
Run Code Online (Sandbox Code Playgroud)

它适用于从左到右的模式。但是,当启用从右到左模式时,文本会向右对齐,但浏览器不会修改文本。我之所以认为可能会被浏览器自动修改,是因为下面的文字test this!被修改为:!test this自动被浏览器修改。

我是否需要修改组件以便它接受已经 RTL 修改的文本?

html right-to-left angular

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

如何将RTL文本(阿拉伯语)绘制到位图并正确排序?

我正在尝试将阿拉伯文字绘制到位图上以供显示:

Bitmap img = Bitmap.createBitmap( (int) f+100, 300, Config.RGB_565);
Canvas c = new Canvas();
c.setBitmap(  img );
mFace = Typeface.createFromAsset(getAssets(),"DejaVuSansCondensed.ttf");
mPaint.setTypeface(mFace);
content = "????";
content = ArabicUtilities.reshape( content );
System.out.println("Drawing text: " + content);
c.drawText(content, 30, 30, mPaint);
Run Code Online (Sandbox Code Playgroud)

ArabicUtilities类是一个重塑unicode文本的工具,因此字母是连接的.请参阅:http://github.com/agawish/Better-Arabic-Reshaper/

但是,生成的位图如下所示:

alt text http://imagebin.ca/img/J1EB8DWc.jpg

它应该看起来像يجري

我相信这个问题是因为,与TextView不同,Bitmap类不支持BiDi,所以它从左边开始绘制字母.

尽我所能,我无法弄清楚如何以正确的顺序绘制文本.

android bidi right-to-left

4
推荐指数
1
解决办法
1万
查看次数

多个MessageBox选项

这是一个愚蠢的问题,但我找不到答案:

我正在使用消息框以希伯来语显示文本,我需要RTLReading和RightAlign.

我目前正在使用:

MessageBox.Show(msg, title, MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading);
Run Code Online (Sandbox Code Playgroud)

如何添加MessageBoxOptions.RightAlign?

c# messagebox winforms right-to-left right-align

4
推荐指数
2
解决办法
6083
查看次数