Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ QTranslator

Автор: ruzik 3.4.2011, 19:38

Здравствуйте, как я пониманию с помощью класса QTranslator можно создать свой переводчик, я нашел подходящий метод(translate) только вот он принимает не QString а const char *, а не подскажите как перевести QString в Char + как правильно послать массив char в виде аргумента, насколько я знаю так нельзя, да и если попробовать то выдает ошибку, например

trans = new QTranslator;
char * text[5];
    for(int a=0;a<=4;a++)
    {
        text[a] = new char;
    }
    *text[0] = 'h';
    *text[1] = 'o';
    *text[2] = 'u';
    *text[3] = 's';
    *text[4] = 'e';
    label->setText(trans->translate(text,text));

Выдает:
Ошибка 1 error C2664: QString QTranslator::translate(const char *,const char *,const char *) const: невозможно преобразовать параметр 1 из 'char *[5]' в 'const char *' c:\Documents and Settings\rustam\Мои документы\Visual Studio 2008\Projects\Translator\Translator\translator.cpp 28

Автор: Litkevich Yuriy 3.4.2011, 20:39

Цитата(ruzik @ 3.4.2011, 22:38) *
как я пониманию с помощью класса QTranslator можно создать свой переводчик
этот класс предназначен для перевода, а не создания переводчика. Читай http://doc.crossplatform.ru/qt/4.5.0/i18n.html

Автор: abc 3.4.2011, 21:07

Цитата(ruzik @ 3.4.2011, 20:38) *
char * text[5];

это массив пяти указателей, а от тебя хочут указатель на char:
char * text=new char[5];
text[0] = 'h';
можно так, но можно просто объявить массив:
char a[2]={'h','o'};
a - это указатель на первый элемент массива,
в функцию такого вида
func(const * char)
можно его передать так:
func(a);
в функции можно получить букву 'o' так:
a[1]
а можно так:
*(a+1)

:)

Автор: ruzik 4.4.2011, 16:08

Цитата
этот класс предназначен для перевода, а не создания переводчика.

А в чем разница?

Автор: Litkevich Yuriy 4.4.2011, 18:12

Цитата(ruzik @ 4.4.2011, 19:08) *
А в чем разница?
он загружает имеющийся перевод в программу, почитай по ссылке, там подробности.

Автор: ruzik 4.4.2011, 18:56

А тогда можно ли вообще реализовать переводчик, и если да то как

Автор: Litkevich Yuriy 5.4.2011, 13:06

Цитата(ruzik @ 4.4.2011, 21:56) *
А тогда можно ли вообще реализовать переводчик, и если да то как
объясни как он должен работать (использоваться)

Автор: ruzik 5.4.2011, 13:41

Подается текст, исходный язык и тот в который надо перевести, в принципе я нашел что-то похожее - метод
QString translate ( const char * context, const char * sourceText, const char * disambiguation, int n ) const

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)