QT에서 번역 기능을 사용해보려고 합니다. 한 언어로 4,000개 이상의 번역을 완료해야 합니다. 15개가 넘는 언어에 대해 이 작업을 수행해야 합니다. 그래서 language.ts
쉘 스크립트를 통해 파일을 작성하기로 결정했습니다. 성공적으로 생성된 후 language.ts
Windows의 Notepad++에서 파일을 열면 파일에서 예상되는 번역을 볼 수 있습니다. 예를 들어 브라질 언어의 경우 번역 코드 language.ts
파일은 다음과 같습니다.
<message>
<location filename="temp_unit.ui" line="59"/>
<source>Cancel</source>
<translation>Отказ</translation>
</message>
이제 도구에서 파일을 열려고 하면 QT Linguist
다음 오류가 발생합니다.
Parse error at lang_Brazil.ts:1:38:Encountered incorrectly encoded content.
[이 웹사이트][1]에 제공된 세부 정보에 따라 인코딩 값을 utf-8
로 대체했습니다 ISO-8859-1
. 이제 파일을 열 수 있지만 QT Linguist
번역에 다음과 같은 잘못된 문자가 표시됩니다. - 취소의 경우 표시됩니다 Îòêàç
(예상 번역은 Отказ
).
QT 언어학자에서는 왜 올바르게 번역되지 않는지 확인하십시오. 반면 notepad++에서 Language.ts 파일을 열면 볼 수 있습니다. [1]:https://docs.oracle.com/cd/E16764_01/bi.1111/b32121/pbr_nls003.htm
답변1
몇 가지 질문이 있습니다:
파일을 생성하기 위해 쉘 스크립트를 사용 하지 마십시오
.ts
. 이를 위한 특별한 도구가 있습니다lupdate
.당신은 언어를 혼합합니다. "브라질"과 같은 것은 없습니다. 브라질 국가는 포르투갈어(또는 브라질 포르투갈어 변형)를 사용합니다. 귀하의 경우는 훨씬 더 혼란스럽습니다. 번역이
Отказ
실제로 러시아어로 되어 있기 때문입니다.코드페이지 ISO-8859-1은 라틴 알파벳용이므로 키릴 문자는 임의의 문자 집합으로 표시됩니다. 파일이 실제로 1바이트 인코딩인 경우 키릴 문자를 보려면 ISO-8859-5(키릴 문자에 사용해야 함)를 사용해야 합니다. 그러나
Notepad++
문자 코드 페이지에서 올바른 문자를 볼 수 있으므로 Windows- 1251. 또한Notepad++
가변 길이 인코딩(예: UTF-8)을 사용할 수 있으며, 이 경우 다른 인코딩을 사용하는 것은 매우 잘못된 것입니다. Notepad++에서 "파일 속성"을 찾으면 편집기가 현재 사용 중인 인코딩이 무엇인지 알려줄 것입니다.
.ts
파일을 만드는 방법은 여기를 참조하세요 .https://doc.qt.io/qt-5/linguist-manager.html
Qt Linguist
파일 편집 의 경우 .ts
- 올바른 코드 페이지를 파일에 자동으로 넣습니다. Notepad++
이를 위해 또는 다른 텍스트 편집기를 사용 하지 마십시오 . 적어도 자신이 하고 있는 일을 정확히 알기 전까지는 언어와 코드 페이지를 혼합하지 마십시오.https://doc.qt.io/qt-5/linguist-translators.html