标签: right-to-left

多语言Web应用程序的设计注意事项

今天有一位采访者问我如何将阿拉伯语作为第二语言实现到PHP Web应用程序中.我谈到为数据库和前端选择unicode编码,以及设计RTL友好的用户界面模块.他对答案似乎并不满意.我对多语言系统一无所知,你会如何回答这个问题?

localization web-applications arabic right-to-left

3
推荐指数
1
解决办法
4479
查看次数

如何识别C++中的RTL字符串

我需要在打印前知道文本的方向.

我正在使用Unicode字符.

我怎么能用C++做到这一点?

c++ unicode bidi right-to-left

3
推荐指数
2
解决办法
3332
查看次数

阿拉伯语/希伯来语和jQuery Mobile

这是一个问题和答案:-)

很长一段时间以来,我尝试使用希伯来语的JQM.获取希伯来字母很容易(utf-8编码......),但是没有用的东西就是对齐.我的意思是切换元素的方向,文本对齐,定位等.

我发现了很多关于这方面的问题,但答案很少(而且我发现的答案并不完整).

然后我找到了这篇优秀的文章:http: //rtl-this.com/tutorial/rtling-hello-world-webpage-rtling

我在css文件上实现了它(更确切地说是在这里:http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.css).

那工作:-)

如果我想弄清楚如何上传文件,我会分享:-)我希望这会有用.

arabic hebrew right-to-left jquery-mobile

3
推荐指数
1
解决办法
3001
查看次数

Netbeans中的J2me:如何从右到左对齐列表项?

我刚用Netbeans 7.1为我的手机创建了一个简单的java-me程序.我
有一个启动画面,然后是一个包含4个项目的列表.
我想从右到左对齐我的列表项RTL

有没有办法做到这一点?

java sdk netbeans java-me right-to-left

3
推荐指数
1
解决办法
528
查看次数

UB:C#的Regex.Match在匹配时返回整个字符串而不是部分

注意!这涉及到正则表达式的问题,整个字符串相匹配的部分,而不是


大家好.我试着去做

Match y = Regex.Match(someHebrewContainingLine, @"^.{0,9} - \[(.*)?\s\d{1,3}");
Run Code Online (Sandbox Code Playgroud)

除了其他VS希伯来语怪癖(你喜欢如何替换)[编辑字符串?)时,它偶尔会返回疯狂的结果:

Match.Captures.Count = 1;
Match.Captures[0] = whole string! (not expected)
Match.Groups.Count = 2; (not expected)
Match.Groups[0] = whole string again! (not expected)
Match.Groups[1] = (.*)? value (expected).
Run Code Online (Sandbox Code Playgroud)

Regex.Matches() 同样的行为.

这种行为的一般原因是什么?注意:它不会像这样简单的测试字符串Regex.Match("-???45--", "-(.{1,5})-") (样本显示不正确!,请查看页面的源代码),必须有正则表达式使其贪婪.匹配的字符串包含[ .... ],但只是将它们添加到测试字符串不会导致相同的效果.

c# regex right-to-left

3
推荐指数
2
解决办法
1881
查看次数

当文本从右到左时,确定JTextArea区域中存在的文本

我有一些代码试图确定文本区域的给定垂直切片中的文本是什么,其中垂直切片被指定为Y坐标而不是线.

顺便说一下,转换为使用线数学是这个问题的一个很好的解决方法,所以这就是我将要使用的,但是我可以设想你可能只有Y坐标的情况,它看起来像这样的东西会出现,所以无论如何我都会问它.

我把我的问题简化为一个相当简约(lol Java)的例子.我们显示带有一些文本的框架,然后尝试确定最接近文本区域开头的文本的字符偏移量.我们从常识中知道它将为0,但是以编程方式解决问题就是问题.

public static void main(String[] args) throws Exception {
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            new RtlTest().run();
        }
    });
}

JFrame frame;
JTextArea textArea;

public void run() {
    textArea = new JTextArea(
        "\u05D4\u05D5\u05D3\u05E2\u05EA \u05D8\u05D9\u05D9\u05D2\u05E8 " +
        "\u05D8\u05E7\u05E1\u05D8 \u05D1\u05E2\u05D1\u05E8\u05D9\u05EA");

    frame = new JFrame();
    frame.setLayout(new BorderLayout());
    frame.add(new JScrollPane(textArea), BorderLayout.CENTER);
    frame.setSize(400, 300);
    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    frame.setVisible(true);
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            measure();
        }
    });
}

public void measure() {
    try {
        System.out.println("Either the line is left to …
Run Code Online (Sandbox Code Playgroud)

java swing jtextarea right-to-left

3
推荐指数
1
解决办法
244
查看次数

记事本++方向错误(RTL / LTR)

当我尝试将NotePad ++的方向更改为rtl(从右到左)时,它看起来像这样:

(我写了“测试”)。

请帮我 :)

notepad++ direction right-to-left

3
推荐指数
1
解决办法
3150
查看次数

如何RTL这个Android布局?

我想在Android中布局下面的rtl(从右到左)就像layoutDirection="rtl"在父布局中使用时(但它仅用于4.2及更高版本)以及任何方式使其明确地从右向左.这是主要的android项目布局的一部分,用于Android中的Preference Activity.

<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2006 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. …
Run Code Online (Sandbox Code Playgroud)

android android-layout right-to-left

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

从右到左,从左到右印刷得很好

我想让它产生一个单词旁边的数字,这样我就可以要求用户使用相应的数字来选择单词.

这是我的代码

alt_words = hlst
loopnum = 8
for i in range(loopnum):
        if i < len(alt_words):
            print('{0}. {1:<20}'.format((i+1), alt_words[i]), end =' ')
            if i == 0:
                print('', end=' ')
        if i + 9 <= len(alt_words):
            print('{0}. {1:<20}'.format((i+9), alt_words[i+8]), end =' ')
        if i + 17 <= len(alt_words):
            print('{0}.  {1:<20}'.format((i+17), alt_words[i+16]), end=' ')
        print('\n'+'-'*80)
Run Code Online (Sandbox Code Playgroud)

它产生了这个 代码输出

每行的第一个数字打印在左侧,但是右侧的单词,而其余的数字和单词打印在RTL上.似乎一旦python开始在LTR线上打印,它就可以切换到RTL,但不能从RTL返回到LTR.请注意,即使周期打印在每行第二组数字的数字右侧.

它工作得很好,用英文单词看起来不错:

python表在英语中工作

我猜一个工作可能涉及把数字放在后面,但我认为必须有一个更好的方法.

python hebrew right-to-left python-3.x left-to-right

3
推荐指数
2
解决办法
3718
查看次数

防止RTL TListView镜像复选框和/或图形

我正在尝试从右到左显示ListView的列.这已经被问及并回答了.但问题是关于图标和复选框.当我使用ListView RTL时SetWindowLong,它也会反映图形和复选框,这是不需要的.我可以使用编辑工具镜像图形,困扰但可行,但我不知道如何处理复选框.

在此输入图像描述

我认为他们两个都有相同的原因,所以我搜索了它并在Microsoft Docs中找到了一篇关于RTL布局的完整文章.在" 按设备上下文激活镜像"部分中,它指出了图形问题.它建议改变DC的布局样式LAYOUT_RTLLAYOUT_BITMAPORIENTATIONPRESERVED标志.

这是我用文章中提出的组合方法和上面提到的答案实现的功能:

const
  LAYOUT_RTL = 1;
  LAYOUT_BITMAPORIENTATIONPRESERVED = 8;

function GetLayout(DC: HDC): DWORD; stdcall; external 'gdi32.dll';
function SetLayout(DC: HDC; dwLayout: DWORD): DWORD; stdcall; external 'gdi32.dll';

procedure MakeRTL(const Handle: HWND);
var
  DC: HDC;
begin
  SetWindowLong(Handle, GWL_EXSTYLE,
    GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYOUTRTL);

  DC := GetWindowDC(Handle);
  if DC <> 0 then
    SetLayout(DC, GetLayout(DC) or LAYOUT_RTL or LAYOUT_ORIENTATIONMASK);

  InvalidateRect(Handle, nil, True);
end;
Run Code Online (Sandbox Code Playgroud)

但它没有改变任何东西.我试图阻止其中任何一个,改变它们的顺序并改变不同的地方来调用它,但没有成功.

现在的问题是,如何使ListView的列从右到左显示,而不镜像图形或复选框?

我正在使用Win10 x64和Delphi 2010.

如果你想重现这个问题,这是我的delphi代码:

unit Unit1; …
Run Code Online (Sandbox Code Playgroud)

delphi winapi listview gdi+ right-to-left

3
推荐指数
1
解决办法
165
查看次数