مشکل در ترجمه فارسی در کیوت



  • p{direction:rtl; text-align:right}. سلام به همه
    من توی ترجمه فارسی به یه مشکلی خوردم توی سایت های مختلف هم فراوون سرچ کردم اما به نتیجه نرسیدم
    اگر من از کنسول اپلیکیشن استفاده کنم با لود فایل "qt_fa.qm " و در ادامه با ساختن ویدجت ها و نامگذاریشان بوسیله tr مشکل حل است.
    اما من دارم از GUI استفاده میکنم. ابتدار در main فایل را لود میکنم و همینطور در mainwindow نیز اینکار را انجام میدم و بعدشم retranslate میکنم اما بازم جواب نگرفتم
    کدی که من نوشتم بصورت زیره:

    // main.cpp

    @#include <QtGui/QApplication>
    #include "mainwindow.h"
    #include "QTranslator"
    #include "QSettings"

    int main(int argc, char *argv[])
    {
    QApplication a(argc, argv);

    QSettings lanSettings ("Language","21");

    QString lang = lanSettings.value("Language").toString();

    QTranslator *translator = new QTranslator;

    if (lang == "Persian") //For Persian Translate
    translator->load("ControlCenter/Translator/qt_fr.qm");

    else
    translator->load(""); // For English

    a.installTranslator(translator);

    MainWindow w;
    w.showFullScreen();

    return a.exec();
    }@

    // MainWindow.cpp
    @#include "QTranslator"
    .
    .
    .
    void MainWindow::changeEvent(QEvent *e)
    {
    QMainWindow::changeEvent(e);
    switch (e->type()) {
    case QEvent::LanguageChange:
    ui->retranslateUi(this);
    break;
    default:
    break;
    }
    }
    .
    .
    .
    void MainWindow::SetLanguage()
    {
    QSettings lanSettings ("Language","21");
    QStringList langList;
    langList << "English" << "Persian";
    QString language = QInputDialog::getItem(this,"Language", "Select Language:", langList,0);

    if (lanSettings.value("Language").toString() != language) // if (User don’t select previous Language)
    {
    lanSettings.setValue("Language", language);
    DoTranslate(language);
    }
    }
    .
    .
    .
    void MainWindow::DoTranslate(QString language)
    {
    QTranslator translator;
    if (language == "Persian")
    {
    translator.load("qt_fr.qm");
    qApp->installTranslator(&translator);
    }
    else
    {
    translator.load(""); // Default language is English
    qApp->installTranslator(&translator);
    }

    ui->retranslateUi(this);
    DoRetranslate();
    }

    void MainWindow::DoRetranslate()
    {
    ui->push->setText(tr("Open"));
    ui->timeLabel.setText(tr("Time"));
    .
    .
    .
    }
    @



  • @
    #include <QDebug>
    // ...
    qDebug() << translator->load("ControlCenter/Translator/qt_fr.qm");
    // to see if file loads correctly or not
    @



  • yes, dear soroush
    file correctly loaded!
    & translator->load ...... return "true"

    because, in main, translating correctly work!



  • p{direction:rtl; text-align:right}.
    سلام به دوستان
    من یه نکته ای را می خواستم یادآوری کنم و اونهم اینه که اگر من تو Consol Application اینکار را انجام بدهم همه چی اوکی هست من هم تست کردم. هیچ مشکلی نداره.
    اما وقتی GUI دارم نمی دونم چجوری باید این ترجمه انجام شود من کارهای بالا را انجام دادم اما انگار نه انگار که من دارم retranslate می کنم هیچ اتفاقی نمی افته البته یه اتفاقایی میفته مثلا منوها راست چین میشه و.. اما ویدجت هایی که با tr() بهش عنوان دادم متنش فارسی نمیشه و کماکان انگلیسی می مونه
    یه اتفاق دیگه هم میفته من تویه قسمتی از فرمم از QInputDiolog() استفاده میکنم که اون کلید و دیگر اجزاش اتواتیک درج میشه اونجا با تغییر زبان اوکی و کنسل به تایید و لغو ترجمه میشود فقط در همین پنجره متن ترجمه می شود
    چرا؟؟؟



  • عکس بذار



  • [quote author="Seyyed" date="1361947161"]p{direction:rtl; text-align:right}.
    سلام به دوستان
    من یه نکته ای را می خواستم یادآوری کنم و اونهم اینه که اگر من تو Consol Application اینکار را انجام بدهم همه چی اوکی هست من هم تست کردم. هیچ مشکلی نداره.
    اما وقتی GUI دارم نمی دونم چجوری باید این ترجمه انجام شود من کارهای بالا را انجام دادم اما انگار نه انگار که من دارم retranslate می کنم هیچ اتفاقی نمی افته البته یه اتفاقایی میفته مثلا منوها راست چین میشه و.. اما ویدجت هایی که با tr() بهش عنوان دادم متنش فارسی نمیشه و کماکان انگلیسی می مونه
    یه اتفاق دیگه هم میفته من تویه قسمتی از فرمم از QInputDiolog() استفاده میکنم که اون کلید و دیگر اجزاش اتواتیک درج میشه اونجا با تغییر زبان اوکی و کنسل به تایید و لغو ترجمه میشود فقط در همین پنجره متن ترجمه می شود
    چرا؟؟؟[/quote]

    p{direction:rtl; text-align:right}. خوب؟ مشکل چیه؟



  • سلام به همه
    وقتی برنامه رو فارسی میکنم اعداد هنوز انگلیسی نشون داده میشن.چی کار باید بکنم؟



  • [quote author="sima" date="1362173321"]سلام به همه
    وقتی برنامه رو فارسی میکنم اعداد هنوز انگلیسی نشون داده میشن.چی کار باید بکنم؟[/quote]

    p{direction:rtl; text-align:right}. در مورد یونیکد مطالعه کن.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.