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

时间:2012-07-19 13:47:23

标签: php eclipse editor arabic

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

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

'%1 is now following %2'

在阿拉伯语中,我获得了类似这样的字符串:

'_______الآن يتتبع _______'

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

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

%2الآن يتتبع %1

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

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

更新

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

'%1' . 'الآن تتبع' . '%2'

更新2

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

'{var2} الآن يتتبع {var1}'

如果没有找到其他解决方案,这可能是一个不错的选择。

3 个答案:

答案 0 :(得分:5)

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

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

  1. 打开记事本++ *
  2. 将编码设置为UTF-8(编码 - >以UTF-8编码)
  3. 启用RTL模式(查看 - >文本方向RTL)
  4. 粘贴字符串
  5. 这是一个屏幕截图,展示了我如何编辑你的字符串

    enter image description here

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

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

    print_r(str_split($string));
    

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

答案 1 :(得分:3)

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

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

这显示了PHP文件中的预期结果,并且很容易编辑:

'ar' => '{USER} الآن يتابع {ALBUM}'

答案 2 :(得分:0)

我更喜欢原始的记事本来完成这类任务。

  1. 打开记事本,确保您处于LTR模式
  2. 输入%1
  3. CTRL + SHIFT
  4. 将模式更改为RTL
  5. 将阿拉伯字符串粘贴到编辑器中。
  6. 再次按CTRL + SHIFT恢复为LTR。
  7. 输入%2
  8. 使用CTRL + A选择所有内容并使用CTRL + C
  9. 进行复制
  10. 粘贴到IDE中。 应该看起来很奇怪,但按预期执行。
  11. 使用记事本的原因:更复杂的编辑器,如Notepad ++,Sublime,Coda(Mac)和一些IDE - 在您的情况下Eclipse 可能不使用正确的编码,记事本简单工作正常用于多语言任务。