!39 add translations

Merge pull request !39 from likehomedream/my-devel
This commit is contained in:
KevinDuan 2023-11-02 09:55:59 +00:00 committed by Gitee
commit fd9c99390a
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
17 changed files with 763 additions and 58 deletions

View File

@ -80,4 +80,9 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin
RESOURCES += \
resource.qrc
DISTFILES +=
DISTFILES += \
translation/themebuilder_en_US.qm \
translation/themebuilder_zh_CN.qm
TRANSLATIONS += translation/themebuilder_zh_CN.ts \
translation/themebuilder_en_US.ts \

View File

@ -10,8 +10,8 @@ ConfigFileManager::ConfigFileManager(bool ishistory, const QString& time, QObjec
createJson();
}else{
m_time = time;
jsonFilePath = QDir::homePath() + "/.cache/theme-build/" + m_time + "/scr/config/"+ "default.json";
confFilePath = QDir::homePath() + "/.cache/theme-build/" + m_time + "/scr/config/"+ "theme.conf";
jsonFilePath = QDir::homePath() + "/.cache/theme-build/" + m_time + "/src/config/"+ "default.json";
confFilePath = QDir::homePath() + "/.cache/theme-build/" + m_time + "/src/config/"+ "theme.conf";
qDebug()<<"have";
}
@ -67,7 +67,7 @@ bool ConfigFileManager::modifyRadiusJson(int radius)
QFile configFile(confFilePath);
if (!configFile.open(QIODevice::ReadWrite | QIODevice::Text))
{
qDebug() << "Failed to open config file";
qDebug() << "Failed to open config file"<<configFile.AbortError<<confFilePath;
return false;
}

View File

@ -28,22 +28,22 @@ bool FileCheck::isLegalWallPaperFile(const QString& filePath, const QString& typ
if (type == "wallpaper") {
if (imageSize.width() != 3840 || imageSize.height() != 2160){
QMessageBox::information(nullptr, tr("错误"), tr("壁纸尺寸必须为3840x2160"));
QMessageBox::information(nullptr, tr("error"), tr("The wallpaper size must be 3840x2160"));
return false;
}
qint64 maxSize = 10 * 1024 * 1024; // 10 MB
if (fileSize > maxSize){
QMessageBox::information(nullptr, tr("错误"), tr("文件大小不能超过10MB"));
QMessageBox::information(nullptr, tr("error"), tr("The file size cannot exceed 10MB"));
return false;
}
} else if (type == "cover") {
if (imageSize.width() != 1640 || imageSize.height() != 1080){
QMessageBox::information(nullptr, tr("错误"), tr("封面尺寸必须为1640x1080"));
QMessageBox::information(nullptr, tr("error"), tr("Cover size must be 1640x1080"));
return false;
}
qint64 maxSize = 5 * 1024 * 1024; // 5 MB
if (fileSize > maxSize){
QMessageBox::information(nullptr, tr("错误"), tr("文件大小不能超过5MB"));
QMessageBox::information(nullptr, tr("error"), tr("The file size cannot exceed 5MB"));
return false;
}
}

View File

@ -1,8 +1,13 @@
#include "mainwindow.h"
#include <QTranslator>
#include <QDir>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTranslator translator;
translator.load("../kylin-theme-builder/translation/themebuilder_zh_CN.qm");
qApp->installTranslator(&translator);
MainWindow w;
w.show();
return a.exec();

View File

@ -122,12 +122,18 @@ void MainInterface::initLeftBar()
QButtonGroup *bootbuttonGroup = new QButtonGroup(m_navigationwidget);
m_globalbtn = new TypeButton(m_navigationwidget);
m_globalbtn->setText(tr("GlobalTheme"));
m_iconbtn = new TypeButton(m_navigationwidget);
m_iconbtn->setText(tr("IconTheme"));
m_cursorbtn = new TypeButton(m_navigationwidget);
m_cursorbtn->setText(tr("CursorTheme"));
m_plymouthbtn = new TypeButton(m_navigationwidget);
m_plymouthbtn->setText(tr("PlymouthTheme"));
m_grubbtn = new TypeButton(m_navigationwidget);
m_grubbtn->setText(tr("GrubTheme"));
m_buildbtn = new QPushButton(m_navigationwidget);
m_buildbtn->setText(tr("Start Building"));
buttonGroup->addButton(m_globalbtn);
buttonGroup->addButton(m_iconbtn);

View File

@ -68,10 +68,10 @@ void MainWindow::initUI()
QHBoxLayout *labellayout = new QHBoxLayout();
QLabel *Label = new QLabel(m_guideWidget);
Label->setText("主题打包上传工具 ");
Label->setText(tr("kylin-theme-builder"));
// QPushButton *guideLabel = new QPushButton(m_guideWidget);
QLabel *guideLabel = new QLabel(m_guideWidget);
QString str = "<a href=\"https://gitee.com/openkylin/community/tree/master/sig/UKUITheme\">" + tr("使用指南") + "</a>";
QString str = "<a href=\"https://gitee.com/openkylin/community/tree/master/sig/UKUITheme\">" + tr("User guide") + "</a>";
guideLabel->setText(str);
guideLabel->setTextFormat(Qt::RichText);
guideLabel->setCursor(Qt::PointingHandCursor);
@ -102,13 +102,13 @@ void MainWindow::initUI()
}
QIcon icon = QIcon(QPixmap(":/resource/background/homepage-global.png"));
m_globalbtn->setEntry(icon,"全局主题");
m_globalbtn->setEntry(icon,tr("Global Theme"));
QIcon icon1 = QIcon(QPixmap(":/resource/background/homepage-icons.png"));
m_iconbtn->setEntry(icon1,"图标主题");
m_iconbtn->setEntry(icon1,tr("Icon Theme"));
QIcon icon2 = QIcon(QPixmap(":/resource/background/homepage-cursor.png"));
m_cursorbtn->setEntry(icon2,"光标主题");
m_cursorbtn->setEntry(icon2,tr("Cursor Theme"));
QIcon icon3 = QIcon(QPixmap(":/resource/background/homepage-boot.png"));
m_bootbtn->setEntry(icon3,"启动个性化");
m_bootbtn->setEntry(icon3,tr("Boot Theme"));
m_entrywidget->setLayout(alllayout);
QScrollArea* scrollArea = new QScrollArea;

View File

@ -116,7 +116,7 @@ void CursorThemeWidget::initRightWidget()
if (clickedButton) {
CursorEditWidget* clickedWidget = qobject_cast<CursorEditWidget*>(clickedButton->parentWidget());
if (clickedWidget) {
QString newFilePath = QFileDialog::getOpenFileName(this, tr("选择SVG文件"), "", tr("SVG 文件 (*.svg)"));
QString newFilePath = QFileDialog::getOpenFileName(this, tr("Select SVG file"), "", tr("SVG file (*.svg)"));
if (!newFilePath.isEmpty()) {
if (m_iconpathmap->contains(widgetName)) {

View File

@ -61,7 +61,10 @@ void GlobalThemeWidget::initRightWidget()
initWallPaperWidget();
initExteriorWidget();
initFilletWidget();
AccentColorWidget();
initAccentColorWidget();
initTransparencyWidget();
initWindowFilletWidget();
mainLayout->addWidget(m_coverwidget);
mainLayout->addStretch(1);
mainLayout->addWidget(m_wallpaperwidget);
@ -72,6 +75,10 @@ void GlobalThemeWidget::initRightWidget()
mainLayout->addStretch(1);
mainLayout->addWidget(m_accentcolorwidget);
mainLayout->addStretch(1);
mainLayout->addWidget(m_transparencywidget);
mainLayout->addStretch(1);
mainLayout->addWidget(m_windowfilletwidget);
mainLayout->addStretch(1);
m_viewportwidget->setLayout(mainLayout);
@ -89,7 +96,7 @@ void GlobalThemeWidget::initCoverWidget()
if(m_info.isEdit){
title->setText("111111111111111111111111");
}else{
title->setText("全局主题效果图");
title->setText(tr("Overall theme rendering"));
}
QVBoxLayout *layout = new QVBoxLayout();
@ -112,7 +119,7 @@ void GlobalThemeWidget::initCoverWidget()
cover->setLayout(coverlayout);
connect(m_coverbtn, &QPushButton::clicked, this, [=]() {
QString newFilePath = QFileDialog::getOpenFileName(this, tr("选择图片文件"), "", tr("图片文件 (*.png *.jpg)"));
QString newFilePath = QFileDialog::getOpenFileName(this, tr("Select picture file"), "", tr("Picture file (*.png *.jpg)"));
bool legalFile = FileCheck::isLegalWallPaperFile(newFilePath,"cover");
if (newFilePath.isEmpty() || !legalFile) {
@ -138,7 +145,7 @@ void GlobalThemeWidget::initWallPaperWidget()
m_wallpaperwidget = new QWidget(m_viewportwidget);
m_wallpaperwidget->setFixedHeight(182);
QLabel *title = new QLabel(m_wallpaperwidget);
title->setText("全局主题效果图");
title->setText(tr("Desktop wallpaper"));
QVBoxLayout *layout = new QVBoxLayout();
QWidget *cover = new QWidget(m_wallpaperwidget);
@ -158,7 +165,7 @@ void GlobalThemeWidget::initWallPaperWidget()
wallpaperbtn->setIconSize(wallpaperbtn->size());
connect(wallpaperbtn, &QPushButton::clicked, this, [=]() {
QString newFilePath = QFileDialog::getOpenFileName(this, tr("选择图片文件"), "", tr("图片文件 (*.png *.jpg)"));
QString newFilePath = QFileDialog::getOpenFileName(this, tr("Select picture file"), "", tr("Picture file (*.png *.jpg)"));
if (!newFilePath.isEmpty() && FileCheck::isLegalWallPaperFile(newFilePath,"wallpaper")) {
updateWallpaperFilePath(newFilePath);
@ -186,12 +193,12 @@ void GlobalThemeWidget::initExteriorWidget()
m_exteriorwidget->setFixedHeight(65);
QLabel *title = new QLabel(m_exteriorwidget);
title->setFixedWidth(m_exteriorwidget->width());
title->setText("窗口外观");
title->setText(tr("Window appearance"));
QHBoxLayout *layout = new QHBoxLayout();
QComboBox *combobox = new QComboBox(m_exteriorwidget);
combobox->addItem("浅色",QColor(255, 255, 255));
combobox->addItem("深色", QColor(29, 29, 29));
combobox->addItem(tr("light"),QColor(255, 255, 255));
combobox->addItem(tr("dark"), QColor(29, 29, 29));
connect(combobox, QOverload<int>::of(&QComboBox::currentIndexChanged), this, [=](int index){
QColor selectedColor = combobox->itemData(index).value<QColor>();
QString overlayImage;
@ -221,7 +228,7 @@ void GlobalThemeWidget::initFilletWidget()
m_filletwidget->setFixedHeight(65);
QLabel *title = new QLabel(m_filletwidget);
title->setFixedWidth(m_filletwidget->width());
title->setText("控件圆角");
title->setText(tr("Control fillet"));
QHBoxLayout *layout = new QHBoxLayout();
m_filletslider = new QSlider(m_filletwidget);
@ -255,23 +262,22 @@ void GlobalThemeWidget::initFilletWidget()
m_filletwidget->setLayout(layout);
}
void GlobalThemeWidget::AccentColorWidget()
void GlobalThemeWidget::initAccentColorWidget()
{
m_accentcolorwidget = new QWidget(m_viewportwidget);
m_accentcolorwidget = new QWidget(m_viewportwidget);
m_accentcolorwidget->setFixedHeight(65);
QLabel *title = new QLabel(m_accentcolorwidget);
title->setFixedWidth(m_accentcolorwidget->width());
title->setText("强调色");
title->setText(tr("Accent colour"));
QHBoxLayout *layout = new QHBoxLayout();
m_combobox = new QComboBox(m_accentcolorwidget);
m_combobox->addItem("daybreakBlue",QColor(55, 144, 250));
m_combobox->addItem("jamPurple", QColor(120, 115, 245));
m_combobox->addItem("magenta", QColor(235, 48, 150));
m_combobox->addItem("sunRed", QColor(243, 34, 45));
m_combobox->addItem("sunsetOrange", QColor(246, 140, 39));
m_combobox->addItem("dustGold", QColor(249, 197, 61));
m_combobox->addItem("polarGreen", QColor(82, 196, 41));
m_combobox->addItem(tr("daybreakBlue"),QColor(55, 144, 250));
m_combobox->addItem(tr("jamPurple"), QColor(120, 115, 245));
m_combobox->addItem(tr("magenta"), QColor(235, 48, 150));
m_combobox->addItem(tr("sunRed"), QColor(243, 34, 45));
m_combobox->addItem(tr("sunsetOrange"), QColor(246, 140, 39));
m_combobox->addItem(tr("dustGold"), QColor(249, 197, 61));
m_combobox->addItem(tr("polarGreen"), QColor(82, 196, 41));
connect(m_combobox, QOverload<int>::of(&QComboBox::currentIndexChanged), this, [=](int index){
@ -291,6 +297,55 @@ void GlobalThemeWidget::AccentColorWidget()
m_accentcolorwidget->setLayout(layout);
}
void GlobalThemeWidget::initTransparencyWidget()
{
m_transparencywidget = new QWidget(m_viewportwidget);
m_transparencywidget->setFixedHeight(65);
QHBoxLayout *layout = new QHBoxLayout();
QLabel *title = new QLabel(tr("Window transparency"));
m_transparencyslider = new QSlider(m_filletwidget);
m_transparencyslider->setOrientation(Qt::Horizontal);
m_transparencyslider->setFixedWidth(210);
m_transparencyslider->setRange(0,100);
m_transparencyslider->setSingleStep(1);
m_transparencyslider->setTickInterval(1);
m_transparencyslider->setFixedWidth(120);
m_transparencyslider->setValue(65);
QPushButton *showButton = new QPushButton(m_filletwidget);
showButton->setDisabled(true);
showButton->setFixedSize(60,36);
int value = 0;
value = m_transparencyslider->value();
showButton->setText(QString::number(m_transparencyslider->value())+"%");
QObject::connect(m_transparencyslider, &QSlider::valueChanged, [=](int value) {
showButton->setText(QString::number(value)+"%");
});
layout->addWidget(title);
layout->addWidget(m_transparencyslider);
layout->addWidget(showButton);
m_transparencywidget->setLayout(layout);
}
void GlobalThemeWidget::initWindowFilletWidget()
{
m_windowfilletwidget = new QWidget(m_viewportwidget);
m_transparencywidget->setFixedHeight(65);
QHBoxLayout *layout = new QHBoxLayout();
QLabel *title = new QLabel(tr("Window fillet"));
m_filletcombobox = new QComboBox(m_windowfilletwidget);
m_filletcombobox->addItem(tr("Large"),QColor(55, 144, 250));
m_filletcombobox->addItem(tr("Medium"), QColor(120, 115, 245));
m_filletcombobox->addItem(tr("Small"), QColor(120, 115, 245));
layout->addWidget(title);
layout->addWidget(m_filletcombobox);
m_windowfilletwidget->setLayout(layout);
}
void GlobalThemeWidget::updateWallpaperFilePath(const QString& coverFilePath) {
m_wallpaperpath = coverFilePath;

View File

@ -38,7 +38,9 @@ private:
void initWallPaperWidget();
void initExteriorWidget();
void initFilletWidget();
void AccentColorWidget();
void initAccentColorWidget();
void initTransparencyWidget();
void initWindowFilletWidget();
void updateWallpaperFilePath(const QString& coverFilePath);
void addspaceritem();
@ -52,16 +54,20 @@ private:
QWidget *m_exteriorwidget;
QWidget *m_filletwidget;
QWidget *m_accentcolorwidget;
QWidget *m_transparencywidget;
QWidget *m_windowfilletwidget;
QVBoxLayout *m_previewlayout;
QString m_wallpaperpath = ":/resource/background/background-light.png";
QString m_coverpath = ":/resource/background/background-glazing.png";
QWidget *m_viewportwidget;
QScrollArea *m_scrollArea;
QSlider *m_filletslider;
QSlider *m_transparencyslider;
QHBoxLayout *m_globalthemelayout;
QWidget *m_rightwidget;
HistoryInfo m_info;
QComboBox *m_combobox;
QComboBox *m_filletcombobox;
QPushButton *m_coverbtn;
QPushButton *wallpaperbtn;
QWidget *m_previewwidget;

View File

@ -9,9 +9,9 @@ HistoryWidget::HistoryWidget(QWidget *parent) : QWidget(parent)
QWidget *textWidget = new QWidget();
QHBoxLayout *textlayout = new QHBoxLayout();
QLabel *historyLabel = new QLabel(textWidget);
historyLabel->setText("历史记录");
historyLabel->setText(tr("Historical record"));
QLabel *tipsLabel = new QLabel(textWidget);
tipsLabel->setText("仅保留30天内的记录");
tipsLabel->setText(tr("Records are kept for 30 days only"));
textlayout->addWidget(historyLabel);
textlayout->addStretch(1);

View File

@ -78,7 +78,7 @@ void IconThemeWidget::initEditWidget()
clickedWidget = qobject_cast<IconEditWidget*>(widget);
if (clickedWidget) {
QString newFilePath = QFileDialog::getOpenFileName(this, tr("选择SVG文件"), "", tr("SVG 文件 (*.svg)"));
QString newFilePath = QFileDialog::getOpenFileName(this, tr("Select SVG file"), "", tr("SVG file (*.svg)"));
if (!newFilePath.isEmpty()) {
m_customiconpathmap->insert(widgetName, newFilePath);
@ -161,7 +161,7 @@ void IconThemeWidget::initSystemEditWidget()
clickedWidget = qobject_cast<IconEditWidget*>(widget);
if (clickedWidget) {
QString newFilePath = QFileDialog::getOpenFileName(this, tr("选择SVG文件"), "", tr("SVG 文件 (*.svg)"));
QString newFilePath = QFileDialog::getOpenFileName(this, tr("Select SVG file"), "", tr("SVG file (*.svg)"));
if (!newFilePath.isEmpty()) {
//check
if(FileCheck::isLegalIconFile(newFilePath)){
@ -255,7 +255,9 @@ void IconThemeWidget::initRightWidget()
QButtonGroup *group = new QButtonGroup(m_changebuttonwidget);
m_appiconbtn = new QPushButton();
m_appiconbtn->setText(tr("APP"));
m_systemiconbtn = new QPushButton();
m_systemiconbtn->setText(tr("System setting"));
group->setExclusive(true);
group->addButton(m_appiconbtn);
group->addButton(m_systemiconbtn);

View File

@ -40,7 +40,7 @@ void InfoCreateWidget::InitThemeName(){
m_themeNameCNLayout = new QHBoxLayout();
m_themeNameCNLabel = new QLabel();
m_themeNameCNLineEdit = new QLineEdit();
m_themeNameCNLabel->setText("ThemeName-CN");
m_themeNameCNLabel->setText(tr("ThemeName-CN"));
m_themeNameCNLineEdit->setEchoMode(QLineEdit::Normal);
m_themeNameCNLayout->addWidget(m_themeNameCNLabel);
@ -49,7 +49,7 @@ void InfoCreateWidget::InitThemeName(){
m_themeNameENLayout = new QHBoxLayout();
m_themeNameENLabel = new QLabel();
m_themeNameENLineEdit = new QLineEdit();
m_themeNameENLabel->setText("ThemeName-EN");
m_themeNameENLabel->setText(tr("ThemeName-EN"));
m_themeNameENLineEdit->setEchoMode(QLineEdit::Normal);
m_themeNameENLayout->addWidget(m_themeNameENLabel);
@ -63,7 +63,7 @@ void InfoCreateWidget::InitBuilderInfo(){
m_builderNameLayout = new QHBoxLayout();
m_builderNameLabel = new QLabel();
m_builderNameLineEdit = new QLineEdit();
m_builderNameLabel->setText("Builder Name");
m_builderNameLabel->setText(tr("Builder Name"));
m_builderNameLineEdit->setEchoMode(QLineEdit::Normal);
m_builderNameLayout->addWidget(m_builderNameLabel);
@ -72,7 +72,7 @@ void InfoCreateWidget::InitBuilderInfo(){
m_builderMailLayout = new QHBoxLayout();
m_builderMailLabel = new QLabel();
m_builderMailLineEdit = new QLineEdit();
m_builderMailLabel->setText("Builder Mail");
m_builderMailLabel->setText(tr("Builder Mail"));
m_builderMailLineEdit->setEchoMode(QLineEdit::Normal);
m_builderMailLayout->addWidget(m_builderMailLabel);
@ -85,9 +85,9 @@ void InfoCreateWidget::InitInfoBtn(const QString &m_state){
m_exitBtn = new QPushButton();
m_recogniseBtn = new QPushButton();
m_createDebBtn = new QPushButton();
m_exitBtn->setText("Back");
m_recogniseBtn->setText("OK");
m_createDebBtn->setText("Create");
m_exitBtn->setText(tr("Back"));
m_recogniseBtn->setText(tr("OK"));
m_createDebBtn->setText(tr("Create"));
m_infoBtnLayout->addWidget(m_exitBtn);
m_infoBtnLayout->addWidget(m_recogniseBtn);
@ -141,7 +141,7 @@ void InfoCreateWidget::InfoProcess(const QString &m_date){
QPalette m_fontqpe;
m_fontqpe.setColor(QPalette::WindowText,Qt::red);
m_warningMessage2->setPalette(m_fontqpe);
m_warningMessage2->setText("输入格式错误!");
m_warningMessage2->setText(tr("Input format error!"));
m_themeENNameState = false;
m_recogniseBtn->setEnabled(false);
m_createDebBtn->setEnabled(false);
@ -150,7 +150,7 @@ void InfoCreateWidget::InfoProcess(const QString &m_date){
QPalette m_fontqpe;
m_fontqpe.setColor(QPalette::WindowText,Qt::red);
m_warningMessage2->setPalette(m_fontqpe);
m_warningMessage2->setText("输入为空!");
m_warningMessage2->setText(tr("Input is empty!"));
m_themeENNameState = false;
m_recogniseBtn->setEnabled(false);
m_createDebBtn->setEnabled(false);
@ -163,7 +163,7 @@ void InfoCreateWidget::InfoProcess(const QString &m_date){
QRegExp englishRegexp("[A-Za-z0-9]+$");
if(m_themeNameENLineEdit != nullptr){
if (englishRegexp.exactMatch(m_builderName)){
m_warningMessage3->setText("");
m_warningMessage3->setText("Input is empty!");
m_builderNameState = true;
if (m_themeENNameState && m_builderMailState && m_builderNameState){
m_recogniseBtn->setEnabled(true);
@ -176,7 +176,7 @@ void InfoCreateWidget::InfoProcess(const QString &m_date){
QPalette m_fontqpe;
m_fontqpe.setColor(QPalette::WindowText,Qt::red);
m_warningMessage3->setPalette(m_fontqpe);
m_warningMessage3->setText("输入格式错误!");
m_warningMessage3->setText("Input format error!");
m_builderNameState = false;
m_recogniseBtn->setEnabled(false);
m_createDebBtn->setEnabled(false);
@ -185,7 +185,7 @@ void InfoCreateWidget::InfoProcess(const QString &m_date){
QPalette m_fontqpe;
m_fontqpe.setColor(QPalette::WindowText,Qt::red);
m_warningMessage3->setPalette(m_fontqpe);
m_warningMessage3->setText("输入为空!");
m_warningMessage3->setText("Input is empty!");
m_builderNameState = false;
m_recogniseBtn->setEnabled(false);
m_createDebBtn->setEnabled(false);
@ -211,7 +211,7 @@ void InfoCreateWidget::InfoProcess(const QString &m_date){
QPalette m_fontqpe;
m_fontqpe.setColor(QPalette::WindowText,Qt::red);
m_warningMessage4->setPalette(m_fontqpe);
m_warningMessage4->setText("输入格式错误!");
m_warningMessage4->setText("Input format error!");
m_builderMailState = false;
m_recogniseBtn->setEnabled(false);
m_createDebBtn->setEnabled(false);
@ -220,7 +220,7 @@ void InfoCreateWidget::InfoProcess(const QString &m_date){
QPalette m_fontqpe;
m_fontqpe.setColor(QPalette::WindowText,Qt::red);
m_warningMessage4->setPalette(m_fontqpe);
m_warningMessage4->setText("输入为空!");
m_warningMessage4->setText("Input is empty!");
m_builderMailState = false;
m_recogniseBtn->setEnabled(false);
m_createDebBtn->setEnabled(false);

View File

@ -32,13 +32,13 @@ TitleBar::TitleBar(QWidget *parent) : QWidget(parent)
QMenu* menu = new QMenu(m_optionbtn);
QAction* saveAction = new QAction(tr("保存路径"), menu);
QAction* saveAction = new QAction(tr("Save path"), menu);
menu->addAction(saveAction);
QAction* aboutAction = new QAction(tr("关于"), menu);
QAction* aboutAction = new QAction(tr("about"), menu);
menu->addAction(aboutAction);
QAction* helpAction = new QAction(tr("帮助"), menu);
QAction* helpAction = new QAction(tr("help"), menu);
menu->addAction(helpAction);
QAction* exitAction = new QAction(tr("退出"), menu);
QAction* exitAction = new QAction(tr("exit"), menu);
menu->addAction(exitAction);
m_optionbtn->setMenu(menu);

Binary file not shown.

View File

@ -0,0 +1,313 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en_US">
<context>
<name>CursorThemeWidget</name>
<message>
<location filename="../src/module/cursorthemewidget.cpp" line="119"/>
<source>Select SVG file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/module/cursorthemewidget.cpp" line="119"/>
<source>SVG file (*.svg)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FileCheck</name>
<message>
<location filename="../src/fileProcess/filecheck.cpp" line="31"/>
<location filename="../src/fileProcess/filecheck.cpp" line="36"/>
<location filename="../src/fileProcess/filecheck.cpp" line="41"/>
<location filename="../src/fileProcess/filecheck.cpp" line="46"/>
<source>error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/fileProcess/filecheck.cpp" line="31"/>
<source>The wallpaper size must be 3840x2160</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/fileProcess/filecheck.cpp" line="36"/>
<source>The file size cannot exceed 10MB</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/fileProcess/filecheck.cpp" line="41"/>
<source>Cover size must be 1640x1080</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/fileProcess/filecheck.cpp" line="46"/>
<source>The file size cannot exceed 5MB</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>GlobalThemeWidget</name>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="92"/>
<source>Overall theme rendering</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="115"/>
<location filename="../src/module/globalthemewidget.cpp" line="161"/>
<source>Select picture file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="115"/>
<location filename="../src/module/globalthemewidget.cpp" line="161"/>
<source>Picture file (*.png *.jpg)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="141"/>
<source>Desktop wallpaper</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="189"/>
<source>Window appearance</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="193"/>
<source>light</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="194"/>
<source>dark</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="224"/>
<source>Control fillet</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="265"/>
<source>Accent colour</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="268"/>
<source>daybreakBlue</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="269"/>
<source>jamPurple</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="270"/>
<source>magenta</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="271"/>
<source>sunRed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="272"/>
<source>sunsetOrange</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="273"/>
<source>dustGold</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="274"/>
<source>polarGreen</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/module/historywidget.cpp" line="12"/>
<source>Historical record</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/module/historywidget.cpp" line="14"/>
<source>Records are kept for 30 days only</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>IconThemeWidget</name>
<message>
<location filename="../src/module/iconthemewidget.cpp" line="81"/>
<location filename="../src/module/iconthemewidget.cpp" line="164"/>
<source>Select SVG file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/module/iconthemewidget.cpp" line="81"/>
<location filename="../src/module/iconthemewidget.cpp" line="164"/>
<source>SVG file (*.svg)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/module/iconthemewidget.cpp" line="258"/>
<source>APP</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/module/iconthemewidget.cpp" line="260"/>
<source>System setting</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>InfoCreateWidget</name>
<message>
<location filename="../src/module/infocreatewidget.cpp" line="43"/>
<source>ThemeName-CN</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/module/infocreatewidget.cpp" line="52"/>
<source>ThemeName-EN</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/module/infocreatewidget.cpp" line="66"/>
<source>Builder Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/module/infocreatewidget.cpp" line="75"/>
<source>Builder Mail</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/module/infocreatewidget.cpp" line="88"/>
<source>Back</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/module/infocreatewidget.cpp" line="89"/>
<source>OK</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/module/infocreatewidget.cpp" line="90"/>
<source>Create</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/module/infocreatewidget.cpp" line="144"/>
<source>Input format error!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/module/infocreatewidget.cpp" line="153"/>
<source>Input is empty!</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainInterface</name>
<message>
<location filename="../src/maininterface.cpp" line="125"/>
<source>GlobalTheme</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/maininterface.cpp" line="127"/>
<source>IconTheme</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/maininterface.cpp" line="129"/>
<source>CursorTheme</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/maininterface.cpp" line="131"/>
<source>PlymouthTheme</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/maininterface.cpp" line="133"/>
<source>GrubTheme</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/maininterface.cpp" line="136"/>
<source>Start Building</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../src/mainwindow.cpp" line="71"/>
<source>kylin-theme-builder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="74"/>
<source>User guide</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="105"/>
<source>Global Theme</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="107"/>
<source>Icon Theme</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="109"/>
<source>Cursor Theme</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="111"/>
<source>Boot Theme</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TitleBar</name>
<message>
<location filename="../src/titlebar.cpp" line="27"/>
<source>Menu</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/titlebar.cpp" line="35"/>
<source>Save path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/titlebar.cpp" line="37"/>
<source>about</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/titlebar.cpp" line="39"/>
<source>help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/titlebar.cpp" line="41"/>
<source>exit</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

Binary file not shown.

View File

@ -0,0 +1,313 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="zh_CN">
<context>
<name>CursorThemeWidget</name>
<message>
<location filename="../src/module/cursorthemewidget.cpp" line="119"/>
<source>Select SVG file</source>
<translation>SVG文件</translation>
</message>
<message>
<location filename="../src/module/cursorthemewidget.cpp" line="119"/>
<source>SVG file (*.svg)</source>
<translation>SVG (*.svg)</translation>
</message>
</context>
<context>
<name>FileCheck</name>
<message>
<location filename="../src/fileProcess/filecheck.cpp" line="31"/>
<location filename="../src/fileProcess/filecheck.cpp" line="36"/>
<location filename="../src/fileProcess/filecheck.cpp" line="41"/>
<location filename="../src/fileProcess/filecheck.cpp" line="46"/>
<source>error</source>
<translation></translation>
</message>
<message>
<location filename="../src/fileProcess/filecheck.cpp" line="31"/>
<source>The wallpaper size must be 3840x2160</source>
<translation>3840x2160</translation>
</message>
<message>
<location filename="../src/fileProcess/filecheck.cpp" line="36"/>
<source>The file size cannot exceed 10MB</source>
<translation>10MB</translation>
</message>
<message>
<location filename="../src/fileProcess/filecheck.cpp" line="41"/>
<source>Cover size must be 1640x1080</source>
<translation>1640x1080</translation>
</message>
<message>
<location filename="../src/fileProcess/filecheck.cpp" line="46"/>
<source>The file size cannot exceed 5MB</source>
<translation>5MB</translation>
</message>
</context>
<context>
<name>GlobalThemeWidget</name>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="92"/>
<source>Overall theme rendering</source>
<translation></translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="115"/>
<location filename="../src/module/globalthemewidget.cpp" line="161"/>
<source>Select picture file</source>
<translation></translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="115"/>
<location filename="../src/module/globalthemewidget.cpp" line="161"/>
<source>Picture file (*.png *.jpg)</source>
<translation> (*.png *.jpg)</translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="141"/>
<source>Desktop wallpaper</source>
<translation></translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="189"/>
<source>Window appearance</source>
<translation></translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="193"/>
<source>light</source>
<translation></translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="194"/>
<source>dark</source>
<translation></translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="224"/>
<source>Control fillet</source>
<translation></translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="265"/>
<source>Accent colour</source>
<translation></translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="268"/>
<source>daybreakBlue</source>
<translation></translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="269"/>
<source>jamPurple</source>
<translation></translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="270"/>
<source>magenta</source>
<translation></translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="271"/>
<source>sunRed</source>
<translation></translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="272"/>
<source>sunsetOrange</source>
<translation></translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="273"/>
<source>dustGold</source>
<translation></translation>
</message>
<message>
<location filename="../src/module/globalthemewidget.cpp" line="274"/>
<source>polarGreen</source>
<translation>绿</translation>
</message>
</context>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/module/historywidget.cpp" line="12"/>
<source>Historical record</source>
<translation></translation>
</message>
<message>
<location filename="../src/module/historywidget.cpp" line="14"/>
<source>Records are kept for 30 days only</source>
<translation>30</translation>
</message>
</context>
<context>
<name>IconThemeWidget</name>
<message>
<location filename="../src/module/iconthemewidget.cpp" line="81"/>
<location filename="../src/module/iconthemewidget.cpp" line="164"/>
<source>Select SVG file</source>
<translation>SVG文件</translation>
</message>
<message>
<location filename="../src/module/iconthemewidget.cpp" line="81"/>
<location filename="../src/module/iconthemewidget.cpp" line="164"/>
<source>SVG file (*.svg)</source>
<translation>SVG (*.svg)</translation>
</message>
<message>
<location filename="../src/module/iconthemewidget.cpp" line="258"/>
<source>APP</source>
<translation>APP</translation>
</message>
<message>
<location filename="../src/module/iconthemewidget.cpp" line="260"/>
<source>System setting</source>
<translation></translation>
</message>
</context>
<context>
<name>InfoCreateWidget</name>
<message>
<location filename="../src/module/infocreatewidget.cpp" line="43"/>
<source>ThemeName-CN</source>
<translation>-</translation>
</message>
<message>
<location filename="../src/module/infocreatewidget.cpp" line="52"/>
<source>ThemeName-EN</source>
<translation>-</translation>
</message>
<message>
<location filename="../src/module/infocreatewidget.cpp" line="66"/>
<source>Builder Name</source>
<translation></translation>
</message>
<message>
<location filename="../src/module/infocreatewidget.cpp" line="75"/>
<source>Builder Mail</source>
<translation></translation>
</message>
<message>
<location filename="../src/module/infocreatewidget.cpp" line="88"/>
<source>Back</source>
<translation></translation>
</message>
<message>
<location filename="../src/module/infocreatewidget.cpp" line="89"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../src/module/infocreatewidget.cpp" line="90"/>
<source>Create</source>
<translation></translation>
</message>
<message>
<location filename="../src/module/infocreatewidget.cpp" line="144"/>
<source>Input format error!</source>
<translation></translation>
</message>
<message>
<location filename="../src/module/infocreatewidget.cpp" line="153"/>
<source>Input is empty!</source>
<translation></translation>
</message>
</context>
<context>
<name>MainInterface</name>
<message>
<location filename="../src/maininterface.cpp" line="125"/>
<source>GlobalTheme</source>
<translation></translation>
</message>
<message>
<location filename="../src/maininterface.cpp" line="127"/>
<source>IconTheme</source>
<translation></translation>
</message>
<message>
<location filename="../src/maininterface.cpp" line="129"/>
<source>CursorTheme</source>
<translation></translation>
</message>
<message>
<location filename="../src/maininterface.cpp" line="131"/>
<source>PlymouthTheme</source>
<translation></translation>
</message>
<message>
<location filename="../src/maininterface.cpp" line="133"/>
<source>GrubTheme</source>
<translation></translation>
</message>
<message>
<location filename="../src/maininterface.cpp" line="136"/>
<source>Start Building</source>
<translation></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../src/mainwindow.cpp" line="71"/>
<source>kylin-theme-builder</source>
<translation></translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="74"/>
<source>User guide</source>
<translation>使</translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="105"/>
<source>Global Theme</source>
<translation></translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="107"/>
<source>Icon Theme</source>
<translation></translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="109"/>
<source>Cursor Theme</source>
<translation></translation>
</message>
<message>
<location filename="../src/mainwindow.cpp" line="111"/>
<source>Boot Theme</source>
<translation></translation>
</message>
</context>
<context>
<name>TitleBar</name>
<message>
<location filename="../src/titlebar.cpp" line="27"/>
<source>Menu</source>
<translation></translation>
</message>
<message>
<location filename="../src/titlebar.cpp" line="35"/>
<source>Save path</source>
<translation></translation>
</message>
<message>
<location filename="../src/titlebar.cpp" line="37"/>
<source>about</source>
<translation></translation>
</message>
<message>
<location filename="../src/titlebar.cpp" line="39"/>
<source>help</source>
<translation></translation>
</message>
<message>
<location filename="../src/titlebar.cpp" line="41"/>
<source>exit</source>
<translation>退</translation>
</message>
</context>
</TS>