使用Eclipse处理PHP中的阿拉伯字符串

Tch*_*upi 9 php eclipse editor arabic

我目前正致力于网站的本地化,这是第一个仅限英语的网站.第三方公司进行了翻译,并为我们提供了包含翻译的excel文件.我成功转换为我可以在我的视图中使用的PHP数组.我正在使用Eclipse for Windows来编辑我的PHP文件.

一切都很好,除了我需要在我的字符串中添加变量,例如:

'%1 is now following %2'
Run Code Online (Sandbox Code Playgroud)

在阿拉伯语中我提供了像这样的字符串:

'_______???? ????? _______'
Run Code Online (Sandbox Code Playgroud)

我发现用%1和%2 替换_ _是非常困难的,因为阿拉伯语部分是一个从左到右的字符串,而且%1,%2从左到右或从右到左,我不是当然.我几乎没有得到我的参数顺序的结果,因为%1有时会在字符串的左边,有时在右边,这取决于我开始输入的位置.复制粘贴替换字符串也可能具有相同的奇怪效果.

大多数时候我最终会得到一个像这样的字符串:

%2???? ????? %1
Run Code Online (Sandbox Code Playgroud)

%1应位于右侧站点,%2位于左侧站点.%1显然这被认为是从右到左的字符串,因为%显示在右侧.这%2被认为是从左到右.

我以前肯定有人这个问题.有没有什么办法可以在Eclipse中轻松完成?或者使用更智能的编辑器来解决阿拉伯问题?或者它可能是一个Windows问题?有解决方法吗?

UPDATE

我也尝试将我的字符串拆分成多个字符串,但这也改变了参数的顺序:

'%1' . '???? ????' . '%2'
Run Code Online (Sandbox Code Playgroud)

更新2

似乎更换替换字符串会让事情变得更好.它可能与阿拉伯字符串中数字的处理方式有关.这个字符串在Eclipse中编辑没有任何问题.参数的顺序是正确的,PHP正确处理字符串:

'{var2} ???? ????? {var1}'
Run Code Online (Sandbox Code Playgroud)

如果没有找到其他解决方案,这可能是一个很好的选择.

Adi*_*Adi 5

作为阿拉伯语演讲者,我获得了很多本地化任务.虽然我没有特别面对这个问题,但我在编辑时遇到了许多从左到右/从右到左的问题.我在使用Notepad ++方面取得了成功.

所以这就是我想编辑阿拉伯语文本时通常会做的事情

  1. 打开记事本++*
  2. 将编码设置为UTF-8(编码 - > UTF-8编码)
  3. 启用RTL模式(查看 - >文本方向RTL)
  4. 粘贴你的字符串

这是一个截图,显示我是如何编辑你的字符串的

在此输入图像描述

*:出于某种原因,每当我打开一个已经存在的文件时,就会去香蕉.所以也许我很迷信,但这一直对我有用.

更新:我第一次这样做,我持怀疑态度,因为字符串看起来不对,但后来我这样做了:

print_r(str_split($string));
Run Code Online (Sandbox Code Playgroud)

我看到他们确实按照正确的顺序.


Tch*_*upi 3

@Adnan 帮助我意识到并后来确认了将拉丁数字与阿拉伯文本混合时存在问题。

\n\n

基于该结论,解决方案就是停止使用%1, %2, %3, ... 作为占位符。我将使用更具描述性的关键字,例如{USER},,{ALBUM}{PHOTO} , ...

\n\n

这显示了 PHP 文件中的预期结果,并且可以轻松编辑:

\n\n
'ar' => '{USER} \xd8\xa7\xd9\x84\xd8\xa2\xd9\x86 \xd9\x8a\xd8\xaa\xd8\xa7\xd8\xa8\xd8\xb9 {ALBUM}'\n
Run Code Online (Sandbox Code Playgroud)\n