9

我目前正在对一个网站进行本地化,该网站最初只有英文版。第三方公司进行了翻译,并为我们提供了包含翻译的 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}'

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

4

3 回答 3

5

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

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

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

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

在此处输入图像描述

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

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

print_r(str_split($string));

我看到它们的顺序确实正确。

于 2012-07-19T14:15:48.363 回答
3

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

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

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

'ar' => '{USER} الآن يتابع {ALBUM}'
于 2012-07-19T19:41:10.177 回答
0

对于这种任务,我更喜欢原来的记事本。

  1. 打开记事本,确保您处于 LTR 模式
  2. 类型%1
  3. 按 将模式更改为 RTLCTRL + SHIFT
  4. 将阿拉伯语字符串粘贴到编辑器中。
  5. 再次按下返回 LTR CTRL + SHIFT
  6. 类型%2
  7. 全选CTRL + A并复制CTRL + C
  8. 粘贴到 IDE 中。它应该看起来很奇怪,但按预期执行。

使用记事本的原因:更复杂的编辑器,例如 Notepad++、Sublime、Coda (Mac) 和一些 IDE——在您的情况下,Eclipse可能没有使用正确的编码,而记事本很简单,但适用于多语言任务。

于 2012-07-19T15:41:07.663 回答