Add: 增加生日禮英文排列

This commit is contained in:
shouchih_chen 2023-05-16 23:17:05 +08:00
parent b2602b5ef7
commit 8166fc30ae
9 changed files with 250 additions and 127 deletions

View File

@ -53,11 +53,26 @@ QList<NameInfo_t> BirthdayCreater::getNameByFileContent(Name_Type_e type, const
QString name_tc = line; QString name_tc = line;
QStringList csvList = name_tc.split(','); QStringList csvList = name_tc.split(',');
QString name, eng_name, bg_type;
QString name = csvList.at(0); //QString::fromLocal8Bit(csvList.at(0)); switch (type) {
QString bg_type = csvList.at(1);//QString::fromLocal8Bit(csvList.at(1)); case Name_zh:
QString type_str = csvList.last();//QString::fromLocal8Bit(csvList.last()); name = csvList.at(0);
qDebug() << "row :" << row << " " << name << ", bg_type: " << bg_type; bg_type = csvList.at(1);
;
break;
case Name_zh_eng:
name = csvList.at(0);
eng_name = csvList.at(1);
bg_type = csvList.at(2);
break;
default:
break;
}
qDebug() << "row :" << row << " " << name <<", eng: "<< eng_name << ", bg_type: " << bg_type;
if (name.compare("name") == 0) { if (name.compare("name") == 0) {
//pass first line //pass first line
@ -65,6 +80,7 @@ QList<NameInfo_t> BirthdayCreater::getNameByFileContent(Name_Type_e type, const
} }
info.name1 = name; info.name1 = name;
info.name_eng = eng_name;
info.name2 = bg_type; info.name2 = bg_type;
nameList.append(info); nameList.append(info);
@ -89,33 +105,93 @@ void BirthdayCreater::generaImageFromCSV(Name_Type_e type, const QString& filena
scene.setBackgroundBrush(QBrush(QColor(255, 255, 255))); scene.setBackgroundBrush(QBrush(QColor(255, 255, 255)));
QGraphicsView view(&scene); QGraphicsView view(&scene);
switch (type)
{
case Name_zh:
for (int idx = 0; idx < nameList.length(); idx++) {
for (int idx = 0; idx < nameList.length(); idx++) { if ((idx % MAX_LABEL_IN_PAPER) == 0) {
if ((idx % MAX_LABEL_IN_PAPER) == 0) { QGraphicsRectItem* bg_item = new QGraphicsRectItem(0, 0, BG_WIDTH, BG_HEIGHT);
bg_item->setBrush(QBrush(QColor(255, 255, 255)));
//QGraphicsPixmapItem* bg_item = QGraphicsPixmapItem(QPixmap(BG_SMAPLE_PATH));
scene.addItem(bg_item);
QGraphicsRectItem* bg_item = new QGraphicsRectItem(0, 0, BG_WIDTH, BG_HEIGHT); }
bg_item->setBrush(QBrush(QColor(255, 255, 255))); NameInfo_t name_info = nameList.at(idx);
//QGraphicsPixmapItem* bg_item = QGraphicsPixmapItem(QPixmap(BG_SMAPLE_PATH)); int col_index = idx % MAX_LABEL_IN_PAPER;
scene.addItem(bg_item); QString label_rel_path = label_bg_map[name_info.name2];
QGraphicsPixmapItem* label_item = new QGraphicsPixmapItem(QPixmap(label_rel_path));
label_item->setPos(int(LABEL_POS_START.x() + LABEL_POS_X_OFFSET * col_index), int(LABEL_POS_START.y()));
label_item->setOpacity(1);
scene.addItem(label_item);
int chrismas_y_offset = 0;
if (name_info.name2.compare("co") == 0 || name_info.name2.compare("ol") == 0 ||
name_info.name2.compare("st") == 0 || name_info.name2.compare("sn") == 0) {
chrismas_y_offset = 30;
}
for (int i = 0; i < 2; i++) {
int name_word_len = name_info.name1.length();
qreal two_word_y = (name_word_len == 2) ? NAME_TWO_WORD_OFFSET / 2 : 0;
qreal offset_y = (name_word_len == 2) ? NAME_TWO_WORD_OFFSET : NAME_THREE_WORD_OFFSET;
for (int w = 0; w < name_word_len; w++) {
QGraphicsTextItem* word_item = new QGraphicsTextItem(name_info.name1.at(w));
word_item->setFont(font);
word_item->setDefaultTextColor(font_color);
if (i == 0) {
word_item->setPos(label_item->x() + NAME_OFFSET_START.x(), label_item->y() + NAME_OFFSET_START.y() + two_word_y + chrismas_y_offset + offset_y * w);
}
else {
word_item->setTransform(QTransform().fromScale(-1, -1));
word_item->setPos(label_item->x() + NAME_OFFSET_REVERSE_START.x(), label_item->y() + NAME_OFFSET_REVERSE_START.y() - two_word_y - chrismas_y_offset - offset_y * w);
}
scene.addItem(word_item);
}
}
if ((idx % MAX_LABEL_IN_PAPER) == (MAX_LABEL_IN_PAPER - 1) || idx == nameList.count() - 1) {
QString date_str = QDateTime::currentDateTime().toString("MMddhhmm");
QString file_name = QString("Birthday_%2_%1.jpg").arg(QString::number(export_times + 1), date_str);
saveToImage(file_name, &scene);
export_times++;
scene.clear();
}
} }
NameInfo_t name_info = nameList.at(idx); break;
int col_index = idx % MAX_LABEL_IN_PAPER; case Name_eng:
QString label_rel_path = label_bg_map[name_info.name2]; break;
QGraphicsPixmapItem* label_item = new QGraphicsPixmapItem(QPixmap(label_rel_path)); case Name_zh_eng:
label_item->setPos(int(LABEL_POS_START.x() + LABEL_POS_X_OFFSET * col_index), int(LABEL_POS_START.y())); for (int idx = 0; idx < nameList.length(); idx++) {
label_item->setOpacity(1);
scene.addItem(label_item);
int chrismas_y_offset = 0; if ((idx % MAX_LABEL_IN_PAPER) == 0) {
if (name_info.name2.compare("co") == 0 || name_info.name2.compare("ol") == 0 ||
name_info.name2.compare("st") == 0 || name_info.name2.compare("sn") == 0) {
chrismas_y_offset = 30;
}
for (int i = 0; i < 2; i++) { QGraphicsRectItem* bg_item = new QGraphicsRectItem(0, 0, BG_WIDTH, BG_HEIGHT);
bg_item->setBrush(QBrush(QColor(255, 255, 255)));
//QGraphicsPixmapItem* bg_item = QGraphicsPixmapItem(QPixmap(BG_SMAPLE_PATH));
scene.addItem(bg_item);
}
NameInfo_t name_info = nameList.at(idx);
int col_index = idx % MAX_LABEL_IN_PAPER;
QString label_rel_path = label_bg_map[name_info.name2];
QGraphicsPixmapItem* label_item = new QGraphicsPixmapItem(QPixmap(label_rel_path));
label_item->setPos(int(LABEL_POS_START.x() + LABEL_POS_X_OFFSET * col_index), int(LABEL_POS_START.y()));
label_item->setOpacity(1);
scene.addItem(label_item);
int chrismas_y_offset = 0;
if (name_info.name2.compare("co") == 0 || name_info.name2.compare("ol") == 0 ||
name_info.name2.compare("st") == 0 || name_info.name2.compare("sn") == 0) {
chrismas_y_offset = 30;
}
// add ZH word
int name_word_len = name_info.name1.length(); int name_word_len = name_info.name1.length();
qreal two_word_y = (name_word_len == 2) ? NAME_TWO_WORD_OFFSET / 2 : 0; qreal two_word_y = (name_word_len == 2) ? NAME_TWO_WORD_OFFSET / 2 : 0;
qreal offset_y = (name_word_len == 2) ? NAME_TWO_WORD_OFFSET : NAME_THREE_WORD_OFFSET; qreal offset_y = (name_word_len == 2) ? NAME_TWO_WORD_OFFSET : NAME_THREE_WORD_OFFSET;
@ -124,28 +200,41 @@ void BirthdayCreater::generaImageFromCSV(Name_Type_e type, const QString& filena
QGraphicsTextItem* word_item = new QGraphicsTextItem(name_info.name1.at(w)); QGraphicsTextItem* word_item = new QGraphicsTextItem(name_info.name1.at(w));
word_item->setFont(font); word_item->setFont(font);
word_item->setDefaultTextColor(font_color); word_item->setDefaultTextColor(font_color);
if (i == 0) { word_item->setPos(label_item->x() + NAME_OFFSET_START.x(), label_item->y() + NAME_OFFSET_START.y() + two_word_y + chrismas_y_offset + offset_y * w);
word_item->setPos(label_item->x() + NAME_OFFSET_START.x(), label_item->y() + NAME_OFFSET_START.y() + two_word_y + chrismas_y_offset + offset_y * w);
}
else {
word_item->setTransform(QTransform().fromScale(-1, -1));
word_item->setPos(label_item->x() + NAME_OFFSET_REVERSE_START.x(), label_item->y() + NAME_OFFSET_REVERSE_START.y() - two_word_y - chrismas_y_offset - offset_y * w);
}
scene.addItem(word_item); scene.addItem(word_item);
} }
//TODO: add English world
QGraphicsTextItem* eng_word_item = new QGraphicsTextItem(name_info.name_eng);
QFont _new_font = QFont(EnglisthFont());
_new_font.setWeight(QFont::ExtraBold);
int _new_size = getFontSizebyStr(_new_font, 120, 480, name_info.name_eng);
_new_font.setPixelSize(_new_size);
eng_word_item->setFont(_new_font);
QRectF rect = eng_word_item->boundingRect();
eng_word_item->setDefaultTextColor(font_color);
eng_word_item->setRotation(-90);
eng_word_item->setPos(label_item->x() + 140.0 - rect.height()/2.0, label_item->y() + 1580 - chrismas_y_offset + rect.width()/2);
scene.addItem(eng_word_item);
if ((idx % MAX_LABEL_IN_PAPER) == (MAX_LABEL_IN_PAPER - 1) || idx == nameList.count() - 1) {
QString date_str = QDateTime::currentDateTime().toString("MMddhhmm");
QString file_name = QString("Birthday_%2_%1.jpg").arg(QString::number(export_times + 1), date_str);
saveToImage(file_name, &scene);
export_times++;
scene.clear();
}
} }
break;
if ((idx % MAX_LABEL_IN_PAPER) == (MAX_LABEL_IN_PAPER - 1) || idx == nameList.count() - 1) { default:
QString date_str = QDateTime::currentDateTime().toString("MMddhhmm"); break;
QString file_name = QString("Birthday_%2_%1.jpg").arg(QString::number(export_times + 1), date_str);
saveToImage(file_name, &scene);
export_times++;
scene.clear();
}
} }
QMessageBox msgBox; QMessageBox msgBox;
msgBox.setText(QString().asprintf("Export Finshed. Count:%d", export_times)); msgBox.setText(QString().asprintf("Export Finshed. Count:%d", export_times));
msgBox.exec(); msgBox.exec();

View File

@ -112,6 +112,7 @@ QList<NameInfo_t> INameCreater::getNameByFile(Name_Type_e type, const QString& f
QList<NameInfo_t> INameCreater::getNameByFileContent(Name_Type_e type, const QByteArray& conetent) QList<NameInfo_t> INameCreater::getNameByFileContent(Name_Type_e type, const QByteArray& conetent)
{ {
(void)type;
QList<NameInfo_t> nameList; QList<NameInfo_t> nameList;
QTextCodec* tc = QTextCodec::codecForName("Big5"); QTextCodec* tc = QTextCodec::codecForName("Big5");
QString codec = tc->toUnicode(conetent.data()); QString codec = tc->toUnicode(conetent.data());
@ -159,7 +160,7 @@ int INameCreater::getFontSizebyStr(const QFont& font, int max_font_size,int max_
QFont _font(font); QFont _font(font);
int font_size = max_font_size; int font_size = max_font_size;
while (font_size > 10) { while (font_size > 10) {
_font.setPixelSize(max_font_size); _font.setPixelSize(font_size);
QFontMetrics fm(_font); QFontMetrics fm(_font);
if (fm.horizontalAdvance(str) <= max_label_width) break; if (fm.horizontalAdvance(str) <= max_label_width) break;
font_size--; font_size--;

View File

@ -10,6 +10,7 @@
struct NameInfo_t { struct NameInfo_t {
QString name1; QString name1;
QString name2; QString name2;
QString name_eng;
QString bg_path; QString bg_path;
bool is_number_bg; bool is_number_bg;
int bg_type; int bg_type;
@ -26,6 +27,13 @@ public:
INameCreater(); INameCreater();
~INameCreater(); ~INameCreater();
void setEnglishFont(const QFont& font) {
eng_Font = QFont(font);
}
QFont EnglisthFont() const {
return eng_Font;
}
protected: protected:
void saveToImage(const QString& filename, QGraphicsScene* scene); void saveToImage(const QString& filename, QGraphicsScene* scene);
@ -33,8 +41,9 @@ protected:
QList<NameInfo_t> getNameByFileContent(Name_Type_e type, const QByteArray& conetent); QList<NameInfo_t> getNameByFileContent(Name_Type_e type, const QByteArray& conetent);
virtual void generaImageFromCSV(Name_Type_e type, const QString& filename, const QByteArray& filecontent, const QFont& font, const QColor& font_color); virtual void generaImageFromCSV(Name_Type_e type, const QString& filename, const QByteArray& filecontent, const QFont& font, const QColor& font_color);
private:
int getFontSizebyStr(const QFont& font, int max_font_size, int max_label_width, const QString& str); int getFontSizebyStr(const QFont& font, int max_font_size, int max_label_width, const QString& str);
private:
QFont eng_Font;
}; };

View File

@ -17,95 +17,114 @@
#include "NewFiveCreater.h" #include "NewFiveCreater.h"
#define FONT_NAME "DFYuanStd-W8.otf"
#define FONT_PATH ":/NameCreater/_exp/DFYuanStd-W8.otf" #define FONT_PATH ":/NameCreater/_exp/DFYuanStd-W8.otf"
#define FONT_SIZE 120
#define TOWEL_FONT_PATH ":/NameCreater/_exp/W1.ttc" #define TOWEL_FONT_PATH ":/NameCreater/_exp/W1.ttc"
#define ENGLISH_FONT_PATH ":/NameCreater/_exp/AcuminVariableConcept.otf"
#define VERSION "v2.0.0" #define FONT_SIZE 120
#define VERSION "v2.1.0"
NameCreater::NameCreater(QWidget *parent) NameCreater::NameCreater(QWidget *parent)
: QMainWindow(parent) : QMainWindow(parent)
{ {
ui.setupUi(this); ui.setupUi(this);
connect(ui.fivesingle_btn, &QPushButton::released, this, &NameCreater::OnClickedReadBtn); connect(ui.fivesingle_btn, &QPushButton::released, this, &NameCreater::OnClickedReadBtn);
//connect(ui.fiveold_btn, &QPushButton::released, this, &NameCreater::OnClickedReadBtn); //connect(ui.fiveold_btn, &QPushButton::released, this, &NameCreater::OnClickedReadBtn);
connect(ui.birthday_btn, &QPushButton::released, this, &NameCreater::OnClickedReadBtn); connect(ui.birthday_btn, &QPushButton::released, this, &NameCreater::OnClickedReadBtn);
connect(ui.towel_btn, &QPushButton::released, this, &NameCreater::OnClickedReadBtn); connect(ui.towel_btn, &QPushButton::released, this, &NameCreater::OnClickedReadBtn);
connect(ui.fivenew_btn, &QPushButton::released, this, &NameCreater::OnClickedReadBtn); connect(ui.fivenew_btn, &QPushButton::released, this, &NameCreater::OnClickedReadBtn);
connect(ui.birthday_zh_eng_btn, &QPushButton::released, this, &NameCreater::OnClickedReadBtn);
QString font_path = FONT_PATH; QString font_path = FONT_PATH;
QFile font_res(font_path); QFile font_res(font_path);
if (!font_res.open(QIODevice::ReadOnly)) { if (!font_res.open(QIODevice::ReadOnly)) {
QMessageBox msgBox; QMessageBox msgBox;
msgBox.setText("Can not load font file!" + font_path); msgBox.setText("Can not load font file!" + font_path);
msgBox.exec(); msgBox.exec();
font_res.close(); font_res.close();
} }
int id = QFontDatabase::addApplicationFontFromData(font_res.readAll()); int id = QFontDatabase::addApplicationFontFromData(font_res.readAll());
QStringList family_list = QFontDatabase::applicationFontFamilies(id); QStringList family_list = QFontDatabase::applicationFontFamilies(id);
font = QFont(family_list.at(0));
font.setPixelSize(FONT_SIZE);
font_res.close();
font_path = QString(TOWEL_FONT_PATH); font = QFont(family_list.at(0));
QFile font_res_towel(font_path); font.setPixelSize(FONT_SIZE);
if (!font_res_towel.open(QIODevice::ReadOnly)) { font_res.close();
QMessageBox msgBox;
msgBox.setText("Can not load font file!" + font_path);
msgBox.exec();
font_res_towel.close();
}
id = QFontDatabase::addApplicationFontFromData(font_res_towel.readAll());
font_towel = QFont(QFontDatabase::applicationFontFamilies(id).at(0));
font_towel.setPixelSize(240);
font_towel.setLetterSpacing(QFont::PercentageSpacing, 42);
font_color = QColor(0, 0, 0);
QFont tital_font = QFont(font); font_path = QString(TOWEL_FONT_PATH);
tital_font.setPixelSize(20); QFile font_res_towel(font_path);
if (!font_res_towel.open(QIODevice::ReadOnly)) {
QMessageBox msgBox;
msgBox.setText("Can not load font file!" + font_path);
msgBox.exec();
font_res_towel.close();
}
QFont version_font = QFont(font); id = QFontDatabase::addApplicationFontFromData(font_res_towel.readAll());
version_font.setPixelSize(12); font_towel = QFont(QFontDatabase::applicationFontFamilies(id).at(0));
font_towel.setPixelSize(240);
font_towel.setLetterSpacing(QFont::PercentageSpacing, 42);
//ui.tital_label->setFont(tital_font);
ui.version_label->setFont(version_font); font_path = QString(ENGLISH_FONT_PATH);
ui.version_label->setText(VERSION); QFile font_res_eng(font_path);
if (!font_res_eng.open(QIODevice::ReadOnly)) {
QMessageBox msgBox;
msgBox.setText("Can not load font file!" + font_path);
msgBox.exec();
font_res_eng.close();
}
id = QFontDatabase::addApplicationFontFromData(font_res_eng.readAll());
font_english = QFont(QFontDatabase::applicationFontFamilies(id).at(0));
font_color = QColor(0, 0, 0);
QFont tital_font = QFont(font);
tital_font.setPixelSize(20);
QFont version_font = QFont(font);
version_font.setPixelSize(12);
//ui.tital_label->setFont(tital_font);
ui.version_label->setFont(version_font);
ui.version_label->setText(VERSION);
QList<QLabel*> titals = findChildren<QLabel*>(QRegExp("tital_label")); QList<QLabel*> titals = findChildren<QLabel*>(QRegExp("tital_label"));
foreach(auto tital, titals) { foreach(auto tital, titals) {
tital->setFont(tital_font); tital->setFont(tital_font);
} }
} }
void NameCreater::OnClickedReadBtn() { void NameCreater::OnClickedReadBtn() {
auto sender =(QPushButton*) QObject::sender(); auto sender =(QPushButton*) QObject::sender();
auto fileContentReady = [this, sender](const QString &fileName, const QByteArray &fileContent) { auto fileContentReady = [this, sender](const QString &fileName, const QByteArray &fileContent) {
if (fileName.isEmpty()) { if (fileName.isEmpty()) {
// No file was selected // No file was selected
} }
else { else {
// Use fileName and fileContent // Use fileName and fileContent
if(sender == ui.fivesingle_btn) FiveToSingle().generaImageFromCSV(Name_Type_e::Name_zh,fileName, fileContent, this->font, this->font_color); if(sender == ui.fivesingle_btn) FiveToSingle().generaImageFromCSV(Name_Type_e::Name_zh,fileName, fileContent, this->font, this->font_color);
//if(sender == ui.fiveold_btn) OldFiveCreater().generaImageFromCSV(fileName, fileContent, this->font, this->font_color); //if(sender == ui.fiveold_btn) OldFiveCreater().generaImageFromCSV(fileName, fileContent, this->font, this->font_color);
if(sender == ui.birthday_btn) BirthdayCreater().generaImageFromCSV(Name_Type_e::Name_zh, fileName, fileContent, this->font, this->font_color); if(sender == ui.birthday_btn) BirthdayCreater().generaImageFromCSV(Name_Type_e::Name_zh, fileName, fileContent, this->font, this->font_color);
if(sender == ui.fivenew_btn) NewFiveCreater().generaImageFromCSV(Name_Type_e::Name_zh, fileName, fileContent, this->font, this->font_color); if(sender == ui.fivenew_btn) NewFiveCreater().generaImageFromCSV(Name_Type_e::Name_zh, fileName, fileContent, this->font, this->font_color);
if(sender == ui.towel_btn) TowelCreater().generaImageFromCSV(Name_Type_e::Name_zh, fileName, fileContent, this->font_towel, this->font_color); if(sender == ui.towel_btn) TowelCreater().generaImageFromCSV(Name_Type_e::Name_zh, fileName, fileContent, this->font_towel, this->font_color);
if (sender == ui.birthday_zh_eng_btn) {
BirthdayCreater creater;
creater.setEnglishFont(font_english);
creater.generaImageFromCSV(Name_Type_e::Name_zh_eng, fileName, fileContent, this->font, this->font_color);
}
} }
}; };
QFileDialog::getOpenFileContent("CSV (*.csv)", fileContentReady); QFileDialog::getOpenFileContent("CSV (*.csv)", fileContentReady);
} }

View File

@ -12,7 +12,7 @@ public:
private: private:
Ui::NameCreaterClass ui; Ui::NameCreaterClass ui;
QFont font, font_towel; QFont font, font_towel, font_english;
QColor font_color; QColor font_color;

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject> <!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 7.0.2, 2023-05-06T07:41:44. --> <!-- Written by QtCreator 7.0.2, 2023-05-16T20:01:59. -->
<qtcreator> <qtcreator>
<data> <data>
<variable>EnvironmentId</variable> <variable>EnvironmentId</variable>
@ -390,23 +390,6 @@
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value> <value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value> <value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value> <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
<value type="QString">0</value>
<value type="QString">1</value>
<value type="QString">2</value>
<value type="QString">3</value>
<value type="QString">4</value>
<value type="QString">5</value>
<value type="QString">6</value>
<value type="QString">7</value>
<value type="QString">8</value>
<value type="QString">9</value>
<value type="QString">10</value>
<value type="QString">11</value>
<value type="QString">12</value>
<value type="QString">13</value>
<value type="QString">14</value>
</valuelist>
<valuelist type="QVariantList" key="CustomOutputParsers"/> <valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">NameCreater</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">NameCreater</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">WebAssembly.RunConfiguration.EmrunD:/_develop/_project/NameCreater/NameCreater/NameCreater.pro</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">WebAssembly.RunConfiguration.EmrunD:/_develop/_project/NameCreater/NameCreater/NameCreater.pro</value>

View File

@ -66,5 +66,6 @@
<file>resource/five/ng_3.jpg</file> <file>resource/five/ng_3.jpg</file>
<file>resource/five/ng_4.jpg</file> <file>resource/five/ng_4.jpg</file>
<file>resource/five/ng_5.jpg</file> <file>resource/five/ng_5.jpg</file>
<file>_exp/AcuminVariableConcept.otf</file>
</qresource> </qresource>
</RCC> </RCC>

Binary file not shown.

View File

@ -0,0 +1,21 @@
name,eng_name,bg_type
Á¤_¹ä,Alice,r
Á¤_¹ä,Alice,r
Á¤_¹ä,Alice,r
Á¤_¹ä,Alice,r
Á¤_¹ä,Alice,r
¸â¨°ºÓ,George,sn
¸â¨°ºÓ,George,co
¸â¨°ºÓ,George,ol
¸â¨°ºÓ,George,m
¸â¨°ºÓ,George,y
¸â¨°ºÓ,George,b
³¯§Ó,Jolin,g
³¯¦u§Ó,Chirs,m
³¯¦u§Ó,xxxxxxxdgde,p
³¯§Ó,gfdgadgdd,r
§d¨Î¹a,Jolin,co
§d¨Î¹a,Jolin,ol
§d¹a,Jessica,sn
§d¹a,Arial,st
§d¹a,Arial,b
1 name eng_name bg_type
2 Á¤_¹ä Alice r
3 Á¤_¹ä Alice r
4 Á¤_¹ä Alice r
5 Á¤_¹ä Alice r
6 Á¤_¹ä Alice r
7 ¸â¨°ºÓ George sn
8 ¸â¨°ºÓ George co
9 ¸â¨°ºÓ George ol
10 ¸â¨°ºÓ George m
11 ¸â¨°ºÓ George y
12 ¸â¨°ºÓ George b
13 ³¯§Ó Jolin g
14 ³¯¦u§Ó Chirs m
15 ³¯¦u§Ó xxxxxxxdgde p
16 ³¯§Ó gfdgadgdd r
17 §d¨Î¹a Jolin co
18 §d¨Î¹a Jolin ol
19 §d¹a Jessica sn
20 §d¹a Arial st
21 §d¹a Arial b