QGis、Qt对话框上的OK、Open、Cancel、Help等英文翻译

成功编译qgis,启动程序发现对话框上的OK、Open、Cancel、Help等依然是英文字段,然后查找源码看这些字段是否都添加到了语言翻译包中;

最后发现这些按钮都是qt的QTGui4库中的QDialogButtonBox类,而qgis_zh_CN.qm文件中也确实未搜索到这些英文(利用qt的linguist.exe翻译程序打开搜索)

为了解决这个问题,我最开始考虑,难道到编译qt项目解决,下载qt源码,查找后发现这些英文都已经添加到了翻译中,而且qgis本身也是依赖qt的,使用的都是统一种方法翻译的;

那么是否可以手动通过添加这些英文字段来翻译?

首先,通过qt的linguist.exe打开qgis编译的qgis_zh_CN.qm文件,发现似乎不能添加,尝试换一种方法;

通过文本编译器打开qgis源码中的qgis_zh_CN.ts文件,按照里面的方法添加如下:

<context>
  <name>QDialogButtonBox</name>//类名
  <message>
    <source>&amp;OK</source>
    <translation>确定</translation>
  </message>
  <message>
    <source>OK</source>
    <translation>确定</translation>
  </message>
  <message>
    <source>&amp;Save</source>
    <translation>保存</translation>
  </message>
  <message>
    <source>Save</source>
    <translation>保存</translation>
  </message>
  <message>
    <source>Open</source>
    <translation>打开</translation>
  </message>
  <message>
    <source>&amp;Cancel</source>
    <translation>取消</translation>
  </message>

.....

</context>

然后,通过qt的linguist.exe打开刚刚修改的qgis_zh_CN.ts文件,在通过Release As另存为qgis_zh_CN.qm文件,替换原来的文件,

OK,成功了

时间: 2024-11-03 20:55:59

QGis、Qt对话框上的OK、Open、Cancel、Help等英文翻译的相关文章

QT开发(二十)——QT对话框

QT开发(二十)--QT对话框 一.对话框简介 对话框是与用户进行简短交互的顶层窗口 QDialog是QT中所有对话框窗口的基类,QDialog继承于QWidget,是一种容器型的组件,是定制了窗口样式的特殊QWidget. QDialog作为一种专用的交互窗口,不能作为子部件嵌入其他容器中. 二.对话框类型 对话框类型分为模态对话框和非模态对话框. 1.模态对话框 模态对话框显示后无法与父窗口进行交互,是一种阻塞式的对话框,使用QDialog::exec()函数调用. 模态对话框一般在栈上创建

对话框AlertDialog的dismiss和cancel区别

先上cancel方法源码和注解 /** * Cancel the dialog. This is essentially the same as calling {@link #dismiss()}, but it will * also call your {@link DialogInterface.OnCancelListener} (if registered). */ public void cancel() { if (!mCanceled && mCancelMessage

自己写的一个函数,用来自动连接对话框上的两个控件(画线)

void CGasBagCDlg::Linetwoctrl(CPaintDC *dc,int leftid,int rightid,CGasBagCDlg *phd) { //201506161749中北大学韩晓东编制 //功能:可在onpaint中调用,连接两个控件 //参数说明:参数1:onpaint画笔,参数二:控件1ID,参数三:控件2ID,参数四:当前窗口指针 //编写中的问题:参一是MFC的类对象指针,传递MFC类对象只能以指针或引用方式传递,参四可通过this指针获取上下文 //指

MFC对话框上添加PNG格式的图片的方法

使用CImage类 1.在stdafx.h中加入#include <atlimage.h> 2.在xxxdlg.h中添加CImage m_Img 3.在OnInitDialog中添加m_Img.Load(_T("res\\1.png")); 4.在OnPaint()添加显示png的代码: m_Img.Draw(GetDC()->m_hDC, 0,0); MFC对话框上添加PNG格式的图片的方法

对话框上动态控件的创建、在Picture Control控件上显示图片

1  MFC对话框之上的动态控件的创建 对话框上的控件是MFC类的一个具体对象. 当在对话框之上使用静态控件时,可以根据类向导来为每个控件添加消息.响应函数以及变量. 当需要在对话框中动态的创建某个控件时,就需要手动来代替类向导为动态控件添加消息.响应函数及变量. 动态创建控件时,可按照以下步骤进行: (1) 明确控件所属于的类 每一个控件都对应着一个类(例如按钮Button所属于的类为CButton). 如,在程序中我们需要用CButton类创建一个具体的按钮对象,并用函数指示它在对话框之上的

VC++ MFC获取对话框上控件的位置

CRect rect; GetDlgItem(控件ID)->GetWindowRect(&rect);//获取控件的屏幕坐标 ScreenToClient(&rect);//转换为对话框上的客户坐标

VC对话框上添加状态栏

VC在对话框上添加状态栏,没有可视化的控件,要用类来创建. 1.在窗口.h文件中添加成员变量 CStatusCtrl  m_status; 2.在窗口的OnInitDialog函数中添加创建代码: RECT     m_Rect;      GetClientRect(&m_Rect);         //获取对话框的矩形区域   m_Rect.top = m_Rect.bottom-20;    //设置状态栏的矩形区域   m_Status.Create(WS_CHILD|WS_VISIB

QT 对话框中动态显示系统时间

QT 对话框中动态显示时间 #include <QDateTime> #include <QTimer> Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); //显示时间 QTimer *timer = new QTimer(this); displayTime(); connect(timer, SIGNAL(timeout()), this,

mfc获取控件在对话框上的位置

CRect rect; GetDlgItem(控件ID)->GetWindowRect(&rect);//获取控件的屏幕坐标ScreenToClient(&rect);//转换为对话框上的客户坐标