Qt 애플리케이션을 개발하는 동안 QTranslator를 사용할 때 문제가 발생했습니다. 약간의 연구 끝에 문제가 Qt에서 발생한 문제인 것으로 알았습니다.Qt 번역본 및 네임 스페이스
using namespace;
지시어. here에있는 지침에 따라 코드가 특수한 주석을 사용하여 클래스가 네임 스페이스 안에 있다는 것을 알게되었습니다. 특별한 코멘트는 다음과 같습니다 :
/*
TRANSLATOR namespace::MyClass
*/
그래서 나는 모든 소스에서이 문자열을 관리하는 QStrings를 추가했습니다. 그러나 여전히 응용 프로그램은 번역되지 않습니다. QTranslator의 installTranslator 메소드가 true를 리턴합니다. 번역기를 설치하기 위해 사용하는 실제 코드는
Application app(argc,argv); //Application is a subclass of QApplication
QTextCoded::setCodecForTr(QTextCodec::codecForName("utf8"));
QTranslator translator;
translator.load(QString("..//language//") + locale);
app.installTranslator(&translator);
app.exec();
누구나 동일한 문제가 발생 했습니까? 내가 도대체 뭘 잘못하고있는 겁니까?
EDIT--
는 여전히 결과를 위의 코드에서 하나의 작은 실수를 수정하지 않지만.
블라인드 추측 : 당신이 번역 원하는 문자열에있는 QObject :: TR()를 사용하고 있습니까? 또한 Qt는 lupdate하는 동안 동적 문자열을 알 수 없으므로 어떤 문자열이 나타날지 (DB에서 검색 될 수 있음) 알게되면 해당 코드가 실행되지 않아도 tr() 내부에 나타나는지 확인해야합니다. – erelender
@erelender 예, 저는 모든 컴파일 타임 문자열에서 tr()을 사용하고 있습니다 (레이블 및 버튼 텍스트, 메이저). 그리고 아직 나는 번역을 제대로하지 못하고있다. – cake