在从右到左的语言(例如阿拉伯语和希伯来语)中,如何调整ggplot2文本元素的文本方向?请注意,我不是在谈论对齐(由 控制hjust,而是direction: rtl;在呈现文本的实际方向(相当于 CSS )。因此,这不是这个问题的复制。
这是一个可重现的最小示例:
library(ggplot2)
library(tibble)
example1 <- tribble(
~item,
"??? ???? ????"
)
# or as ordinary data frame, to avoid 'tibble' dependency
example1 <- data.frame(item = "??? ???? ????")
ggplot(example1, aes(item)) +
geom_bar() +
theme(axis.text.x = element_text(size = 25))
Run Code Online (Sandbox Code Playgroud)
我放大了轴文本 x 来说明我的意思。代码生成以下图表,注意问号在文本的右侧,我希望它出现在文本的左侧。在 tibble 中没example1问题(即使它看起来“相反”,但问号结束了句子。)
我认为在处理百分号时 WPF 和从右到左输入存在问题(可能也适用于类似的符号)。
当 TextBox 是从右到左的并且文本开头没有希伯来字符时,百分号会出现在数字的错误一侧。
您可以在此视频中看到异常行为:
这是我的应用程序 XAML(如您所见,其中没有任何内容):
<Window x:Class="HebrewTextTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow">
<Grid FlowDirection="RightToLeft" Margin="10">
<TextBox Text=" 25% ????"/>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
知道是否有解决方案吗?
请注意,我对文本没有任何控制权,因为用户输入...
我一直在网上搜索并向人们询问这个主题,但我确实没有得到令人满意的答案,让我在这里用 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) ??? ???? ??? …
我正在使用 android ConstraintLayoutFlow ,我必须从右到左排列项目,如下所示:
XML代码 :
<androidx.constraintlayout.helper.widget.Flow
android:id="@+id/flow"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:flow_horizontalStyle="spread_inside"
app:flow_maxElementsWrap="4"
app:flow_verticalGap="29dp"
app:flow_wrapMode="aligned"
app:constraint_referenced_ids="item1 , item2 , ..."
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/headerTextView" />
Run Code Online (Sandbox Code Playgroud)
注意:我们supportsRtl在清单中设置 False ...
我怎样才能做到这一点 ?!
android right-to-left android-constraintlayout constraintlayout-helper-widget-flow
我想添加一个条件如下
if(app.i18n.locale == 'ar')
Run Code Online (Sandbox Code Playgroud)
我在这个项目中使用阿拉伯语和英语。如果当前语言是阿拉伯语,则在头部添加bootstrap-rtl.css,如果当前语言en名为bootstrap.css,我尝试了不止一种方法,都没有成功。
我有一个复选按钮:
from tkinter import *
master = Tk()
Checkbutton(master, text="Here...").grid(row=0, sticky=W)
mainloop()
Run Code Online (Sandbox Code Playgroud)
看起来像这样:
我尝试将复选按钮移到另一侧(以支持 RTL 语言),所以它会像:
Here...[]
我知道我可以在复选按钮旁边绘制一个标签,但这样单击文本不会影响复选按钮。
我该怎么做?
嗨网站上有非常有限的波斯字体,我需要知道是否有办法在网站上加载自定义字体?有一些字体替换服务但我不知道他们是否使用像波斯语这样的RTL语言我也想和对这个项目感兴趣的人合作:)问候
在我的HTML中我正在写:
<a href="mailto:fromJavaSceript@gmail.com?body=%A0%F9%ED%0D%0A%F9%ED%A0%EE%F9%F4%E7%E4%A0%0D%0A%FA%2E%E6%0D%0A%EE%F1%F4%F8%A0%F4%E5%EC%E9%F1%E4">websitemail@gmail.co.il </a>
Run Code Online (Sandbox Code Playgroud)
新的Outlook窗口TEXT从左到右打开,我希望它从右到左打开
我今天遇到了一个奇怪的问题,一个锚点似乎与两个阿拉伯语合并(因为缺少一个更好的词).
谁能解释为什么会这样?
有证据显示在行动这个的jsfiddle 这里.
这是下面的html.
<div>
<a href="#">???? ????????</a>
<a href="#">???? ?????????</a>
<a href="#">© 2012 Hewlett-Packard Development Company, L.R</a>
</div>?
Run Code Online (Sandbox Code Playgroud) 我有一个包含希伯来文和拉丁文的html文档.它用utf-8编码:
<!DOCTYPE HTML>
<html>
<head>
<title>Title</title>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
</head>
<style type='text/css'>
.h { color: green}
</style>
<body>
<div>
here are some words ??? ??? ????? (100, 200)
</div>
<div>
here are some words <span class='h'>??? ??? ?????</span> (100, 200)
</div>
<div>
here are some words <span class='h'>??? ??? ?????</span> <span>(100, 200)</span>
</div>
<div>
here are some words <span class='h'>??? ??? ?????</span> <b>WORD</b> <span>(100, 200)</span>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我认为应该显示前三行.第四个(<b>WORD</b>在parantheses面前的附加是.
以下是此文档在Firefox中的显示方式:

编辑甚至我的html文本的复制/粘贴都没有正常工作,所以这里是原始html的屏幕截图(抱歉,但似乎无法正确呈现此文本):
