# 翻译注意事项

请译者务必注意本文提出的事项。

## 关于换行`\n`

源代码中以`\n`表示的换行符，在翻译工具 `linguist` 中转换直接换行（结尾符号类似音符）。

翻译时，也应该用回车来输入直接换行，而不是插入`\n`。例：

源代码文本：
```
这是第一行\n这是第二行
```

错误的翻译：`\n`换行
```
This is the first line\nThis is the second line
```

正确的翻译格式：直接换行
```
This is the first line
This is the second line
```

## 关于占位符`%1`

待翻译文本中可能含有`%数字`格式的占位符。翻译时，也应该保留所有占位符。例：

源代码文本：
```
原端口号%1被占用，\n切换为新端口号%2。
```

正确的翻译格式：
```
The original port number %1 is occupied.
Switching to the new port number %2.
```

## 关于MarkDown格式`#`

有一些源文件，如`PagesManager`中，会含有一些markdown格式的长字符串。

请务必遵照原文本的格式来编写翻译文本，保留如`#`、`　  `这样的特殊字符。

（`　  `为1个全角空格+2个半角空格，用于让qml的md解析器空出一行。直接复制这坨东西即可。）

例：源代码
```
# 截图OCR

　  

屏幕截图，快捷转文字。也支持粘贴图片。
```

正确的翻译格式：
```
# Screenshot OCR

　  

Screenshot, quick text conversion. Also supports pasting images.
```

## 关于字体缩放系数

在 Umi-OCR 界面设计中，很多UI组件的尺寸是和行高绑定的。比如定义一个按钮，宽度为5倍行高，高度为1.5倍行高。这些宽高系数是以中文为基准设定的。

相同单词或句子，有些语言的占地面积与中文并不相同。比如`截屏`-`Screenshot`，英文的长度更长。因此，当使用英文UI语言时，要适当缩小文字尺寸以适应UI。即行高不变，调整文字大小。

在 `Size_` 中，有一个待翻译的文本 `1.0` 。对应到代码的这一行：
```
property string languageScale: qsTr("1.0")
```

修改这个数字，如改为 `0.92` ，就能调整当前翻译的字体缩放系数。

为了方便测试，可以先打开Umi-OCR`全局设置`标签页，勾选`高级`。拉到最底下，`developer tools` → `languageScale (textScale)` 。调整该数字，可以实时预览字体缩放。在这里调整好后，再将数字填入翻译文件中。


## 转换为纯文本 / 使用机器翻译

如果本地已安装Python，将ts文件拖动到 `convert_ts_txt.py` 可转为纯文本txt文件，每行对应一条原文本。

或者命令行调用：

```
convert_ts_txt.py en_US.ts
```

结果：`en_US.ts` → `en_US.txt`

（在这个步骤，所有换行暂时以`\n`表示。后期将txt转回ts时，脚本会自动处理换行。）

然后可以用自动化手段处理 `en_US.txt` 了。比如问GPT：

```
请你充当翻译器，协助完成一个软件的UI翻译工作。
下面将输入多行文本。每行是一个原文。请你将其翻译为译文。
请保持原文的特殊格式，原文中的换行、%开头的标识符、mardown等格式予以保留。
首先，将简体中文翻译为英语。

【放文本】
```

接下来，将翻译好的文本覆盖写回`en_US.txt`（写之前先备份一下txt）。使用有行号的文本编辑器，检查每行对应的译文是否和原文一致。

然后，将写好的`en_US.txt`拖入 `convert_txt_ts.py` ，这将覆盖写入 `en_US.txt.ts` 。（先备份一下ts）

最后，用 `linguist` 打开 `en_US.txt.ts` ，检查、校对翻译，编译为`en_US.txt.qm`。重命名为`en_US.qm`，即可导入Umi-OCR测试。