full ui Lang in lang txt

This commit is contained in:
damien zhao 2021-09-04 23:15:34 +08:00
parent f3bd18e3df
commit a60471e888
No known key found for this signature in database
GPG Key ID: 2C4E50C66831CB31
14 changed files with 189 additions and 50 deletions

View File

@ -7,6 +7,50 @@
#It can also export already made translations with new strings if added, cutting down work for everyone.
#If there are issues with spacing, line breaking, untranslatable English text, etc let me know in a git issue or your pull request.
usersSaveType = 0, "Device"
usersSaveType = 1, "BCAT"
usersSaveType = 2, "Cache"
usersSaveType = 3, "System"
usersSaveType = 4, "System BCAT"
usersSaveType = 5, "SysTemp Storagetem"
settingsMainMenu = 0, "Settings"
extrasMainMenu = 0, "Extras"
translationMainPage = 0, "Translation: "
loadingStartPage = 0, "Loading..."
saveDataType = 0, "System Save\n"
saveDataType = 1, "Save Data\n"
saveDataType = 2, "BCAT\n"
saveDataType = 3, "Device Save\n"
saveDataType = 4, "Temp Storage\n"
saveDataType = 5, "Cache Storage\n"
saveDataType = 6, "System BCAT\n"
saveDataType = 7, "Save Index: "
infoStatus = 0, "TID: "
infoStatus = 1, "SID: "
infoStatus = 2, "Play Time: "
infoStatus = 3, "Total Launches: "
infoStatus = 4, "User Count: "
infoStatus = 5, "Current User: "
infoStatus = 6, "Current Title: "
infoStatus = 7, "Safe Title: "
infoStatus = 8, "Sort Type: "
infoStatus = 9, "Saving the file master..."
infoStatus = 10, "Error committing file to device -> 0x%X\n"
infoStatus = 11, "Deleting..."
infoStatus = 12, "SaveCreate Failed -> "
infoStatus = 14, "Trash emptied."
newSafeTitle = 0, "Input New Output Folder"
expandSize = 0, "Enter New Size in MB"
expandSizeFailed = 0, "Extend Failed: %uMB to %uMB -> %X\n"
newFolderPopFldMenu = 0, "New Folder"
newFolderCopyMenu = 0, "New"
changeToPopStatus = 0, "changed to"
tmpEmptyPopStatus = 0, "contains illegal or non-ASCII characters."
#If author is not "NULL", your name will be displayed in the UI
author = 0, "NULL"
confirmBlacklist = 0, "Are you sure you want to add #%s# to your blacklist?"

View File

@ -7,6 +7,50 @@
#如果添加了新字符串,它还可以导出已经生成的翻译,从而减少每个人的工作量。
#如果存在空格、换行或无法翻译的英文文本等问题请在git问题或您的pull请求中告诉我。
usersSaveType = 0, "设备存档"
usersSaveType = 1, "BCAT存档"
usersSaveType = 2, "缓存存档"
usersSaveType = 3, "系统存档"
usersSaveType = 4, "系统BCAT存档"
usersSaveType = 5, "临时存档"
settingsMainMenu = 0, "系统设置"
extrasMainMenu = 0, "附加设置"
translationMainPage = 0, "翻译:"
loadingStartPage = 0, "加载中..."
saveDataType = 0, "系统存档\n"
saveDataType = 1, "用户存档\n"
saveDataType = 2, "BCAT存档\n"
saveDataType = 3, "设备存档\n"
saveDataType = 4, "临时存档\n"
saveDataType = 5, "缓存存档\n"
saveDataType = 6, "系统BCAT存档\n"
saveDataType = 7, "存档索引号:"
infoStatus = 0, "TID: "
infoStatus = 1, "SID: "
infoStatus = 2, "游戏时间:"
infoStatus = 3, "总启动次数:"
infoStatus = 4, "用户数目:"
infoStatus = 5, "当前用户:"
infoStatus = 6, "当前Title"
infoStatus = 7, "安全Title"
infoStatus = 8, "排序类型:"
infoStatus = 9, "正在文件管理器里保存..."
infoStatus = 10, "提交文件到设备错误 -> 0x%X\n"
infoStatus = 11, "正在删除"
infoStatus = 12, "存档创建失败 -> "
infoStatus = 14, "回收站已清空。"
newSafeTitle = 0, "输入新的导出目录名称"
expandSize = 0, "输入新的大小单位MB"
expandSizeFailed = 0, "大小扩展失败:%uMB到%uMB -> %X\n"
newFolderPopFldMenu = 0, "新建目录"
newFolderCopyMenu = 0, "新建"
changeToPopStatus = 0, "更改到"
tmpEmptyPopStatus = 0, "包含非法或者非ASCII字符。"
#如果author不是“NULL”您的姓名将显示在UI中
author = 0, "zdm65477730"
confirmBlacklist = 0, "您确定要将#%s#添加到您的黑名单中吗?"

View File

@ -7,6 +7,50 @@
#It can also export already made translations with new strings if added, cutting down work for everyone.
#If there are issues with spacing, line breaking, untranslatable English text, etc let me know in a git issue or your pull request.
usersSaveType = 0, "設備存檔"
usersSaveType = 1, "BCAT存檔"
usersSaveType = 2, "緩存存檔"
usersSaveType = 3, "系統存檔"
usersSaveType = 4, "系統BCAT存檔"
usersSaveType = 5, "臨時存檔"
settingsMainMenu = 0, "系統設置"
extrasMainMenu = 0, "附加設定"
translationMainPage = 0, "翻譯:"
loadingStartPage = 0, "加載中…"
saveDataType = 0, "系統存檔\n"
saveDataType = 1, "用戶存檔\n"
saveDataType = 2, "BCAT存檔\n"
saveDataType = 3, "設備存檔\n"
saveDataType = 4, "臨時存檔\n"
saveDataType = 5, "緩存存檔\n"
saveDataType = 6, "系統BCAT存檔\n"
saveDataType = 7, "存檔索引號:"
infoStatus = 0, "TID:"
infoStatus = 1, "SID:"
infoStatus = 2, "遊戲時間:"
infoStatus = 3, "總啟動次數:"
infoStatus = 4, "用戶數目:"
infoStatus = 5, "當前用戶:"
infoStatus = 6, "當前Title:"
infoStatus = 7, "安全Title:"
infoStatus = 8, "排序類型:"
infoStatus = 9, "正在檔案管理器裏保存…"
infoStatus = 10, "提交檔案到設備錯誤-> 0x%X\n"
infoStatus = 11, "正在删除"
infoStatus = 12, "存檔創建失敗->"
infoStatus = 14, "回收站已清空。"
newSafeTitle = 0, "輸入新的匯出目錄名稱"
expandSize = 0, "輸入新的大小組織MB"
expandSizeFailed = 0, "大小擴展失敗:%uMB到%uMB -> %X\n"
newFolderPopFldMenu = 0, "新建目錄"
newFolderCopyMenu = 0, "新建"
changeToPopStatus = 0, "更改到"
tmpEmptyPopStatus = 0, "包含非法或者非ASCII字元。"
#If author is not "NULL", your name will be displayed in the UI
author = 0, "Leo"
confirmBlacklist = 0, "是否確定要將#%s#加入黑名單?"

View File

@ -104,6 +104,7 @@ void cfg::pathDefAdd(const uint64_t& tid, const std::string& newPath)
{
std::string oldSafe = data::titles[tid].safeTitle;
std::string tmp = util::safeString(newPath);
std::string popmsg = "'%s' ";
if(!tmp.empty())
{
pathDefs[tid] = tmp;
@ -113,10 +114,14 @@ void cfg::pathDefAdd(const uint64_t& tid, const std::string& newPath)
std::string newOutput = fs::getWorkDir() + tmp;
rename(oldOutput.c_str(), newOutput.c_str());
ui::showPopMessage(POP_FRAME_DEFAULT, "'%s' changed to '%s'", oldSafe.c_str(), tmp.c_str());
popmsg += ui::getUICString("changeToPopStatus", 0);
popmsg += " '%s'";
ui::showPopMessage(POP_FRAME_DEFAULT, popmsg.c_str(), oldSafe.c_str(), tmp.c_str());
}
else {
popmsg += ui::getUICString("tmpEmptyPopStatus", 0);
ui::showPopMessage(POP_FRAME_DEFAULT, popmsg.c_str(), newPath.c_str());
}
else
ui::showPopMessage(POP_FRAME_DEFAULT, "'%s' contains illegal or non-ASCII characters.", newPath.c_str());
}
std::string cfg::getPathDefinition(const uint64_t& tid)

View File

@ -200,10 +200,10 @@ bool data::loadUsersTitles(bool clearUsers)
loadUserAccounts();
sysBCATPushed = false;
tempPushed = false;
users.emplace_back(util::u128ToAccountUID(3), "Device");
users.emplace_back(util::u128ToAccountUID(2), "BCAT");
users.emplace_back(util::u128ToAccountUID(5), "Cache");
users.emplace_back(util::u128ToAccountUID(0), "System");
users.emplace_back(util::u128ToAccountUID(3), ui::getUICString("usersSaveType", 0));
users.emplace_back(util::u128ToAccountUID(2), ui::getUICString("usersSaveType", 1));
users.emplace_back(util::u128ToAccountUID(5), ui::getUICString("usersSaveType", 2));
users.emplace_back(util::u128ToAccountUID(0), ui::getUICString("usersSaveType", 3));
}
for(unsigned i = 0; i < 7; i++)
@ -242,7 +242,7 @@ bool data::loadUsersTitles(bool clearUsers)
{
++systemUserCount;
sysBCATPushed = true;
users.emplace_back(util::u128ToAccountUID(4), "Sys. BCAT");
users.emplace_back(util::u128ToAccountUID(4), ui::getUICString("usersSaveType", 4));
}
break;
@ -256,7 +256,7 @@ bool data::loadUsersTitles(bool clearUsers)
{
++systemUserCount;
tempPushed = true;
users.emplace_back(util::u128ToAccountUID(6), "Temp");
users.emplace_back(util::u128ToAccountUID(6), ui::getUICString("usersSaveType", 5));
}
break;
}
@ -456,12 +456,12 @@ void data::dispStats()
data::userTitleInfo *d = data::getCurrentUserTitleInfo();
//Easiest/laziest way to do this
std::string stats = "User Count: " + std::to_string(users.size()) + "\n";
std::string stats = ui::getUICString("infoStatus", 4) + std::to_string(users.size()) + "\n";
for(data::user& u : data::users)
stats += u.getUsername() + ": " + std::to_string(u.titleInfo.size()) + "\n";
stats += "Current User: " + cu->getUsername() + "\n";
stats += "Current Title: " + data::getTitleNameByTID(d->tid) + "\n";
stats += "Safe Title: " + data::getTitleSafeNameByTID(d->tid) + "\n";
stats += "Sort Type: " + std::to_string(cfg::sortType) + "\n";
stats += ui::getUICString("infoStatus", 5) + cu->getUsername() + "\n";
stats += ui::getUICString("infoStatus", 6) + data::getTitleNameByTID(d->tid) + "\n";
stats += ui::getUICString("infoStatus", 7) + data::getTitleSafeNameByTID(d->tid) + "\n";
stats += ui::getUICString("infoStatus", 8) + std::to_string(cfg::sortType) + "\n";
gfx::drawTextf(NULL, 16, 2, 2, &green, stats.c_str());
}

View File

@ -90,7 +90,7 @@ bool fs::commitToDevice(const std::string& dev)
Result res = fsdevCommitDevice(dev.c_str());
if(R_FAILED(res))
{
fs::logWrite("Error committing file to device -> 0x%X\n", res);
fs::logWrite(ui::getUICString("infoStatus", 10), res);
ui::showPopMessage(POP_FRAME_DEFAULT, ui::getUICString("popErrorCommittingFile", 0));
ret = false;
}
@ -692,7 +692,7 @@ void fs::deleteBackup(void *a)
unsigned ind = m->getSelected() - 1;
std::string itemName = d->getItem(ind);
t->status->setStatus("Deleting...");
t->status->setStatus(ui::getUICString("infoStatus", 11));
if(cfg::config["trashBin"])
{
data::userTitleInfo *getTID = data::getCurrentUserTitleInfo();

View File

@ -126,7 +126,9 @@ void fs::createSaveData_t(void *a)
else
{
ui::showPopMessage(POP_FRAME_DEFAULT, ui::getUICString("saveDataCreationFailed", 0));
fs::logWrite("SaveCreate Failed -> %X\n", res);
std::string logstr(ui::getUICString("infoStatus", 12));
logstr += "%X\n";
fs::logWrite(logstr.c_str(), res);
}
delete s;
t->finished = true;

View File

@ -159,8 +159,8 @@ void ui::init()
threadMngr = new ui::threadProcMngr;
//Need these from user/main menu
settPos = ui::usrMenu->getOptPos("Settings");
extPos = ui::usrMenu->getOptPos("Extras");
settPos = ui::usrMenu->getOptPos(ui::getUICString("settingsMainMenu", 0));
extPos = ui::usrMenu->getOptPos(ui::getUICString("extrasMainMenu", 0));
}
void ui::exit()
@ -207,7 +207,7 @@ void ui::showLoadScreen()
SDL_Texture *icon = gfx::loadImageFile("romfs:/icon.png");
gfx::clearTarget(NULL, &ui::clearClr);
gfx::texDraw(NULL, icon, 512, 232);
gfx::drawTextf(NULL, 16, 1100, 673, &ui::txtCont, "Loading...");
gfx::drawTextf(NULL, 16, 1100, 673, &ui::txtCont, ui::getUICString("loadingStartPage", 0));
gfx::present();
SDL_DestroyTexture(icon);
}
@ -225,7 +225,7 @@ void ui::drawUI()
//Version / translation author
gfx::drawTextf(NULL, 12, 8, 700, &ui::txtCont, "v. %02d.%02d.%04d", BLD_MON, BLD_DAY, BLD_YEAR);
if(ui::getUIString("author", 0) != "NULL")
gfx::drawTextf(NULL, 12, 8, 682, &ui::txtCont, "Translation: %s", ui::getUICString("author", 0));
gfx::drawTextf(NULL, 12, 8, 682, &ui::txtCont, "%s%s", ui::getUICString("translationMainPage", 0), ui::getUICString("author", 0));
//This only draws the help text now and only does when user select is open
ui::usrDraw(NULL);

View File

@ -352,7 +352,7 @@ static void _copyMenuRename(void *a)
static void _copyMenuMkDir(void *a)
{
menuFuncArgs *ma = (menuFuncArgs *)a;
std::string getNewFolder = util::getStringInput(SwkbdType_QWERTY, "New Folder", ui::getUIString("swkbdMkDir", 0), 64, 0, NULL);
std::string getNewFolder = util::getStringInput(SwkbdType_QWERTY, ui::getUIString("newFolderCopyMenu", 0), ui::getUIString("swkbdMkDir", 0), 64, 0, NULL);
if(!getNewFolder.empty())
{
std::string createPath = *ma->path + getNewFolder;

View File

@ -123,7 +123,7 @@ static void toggleOpt(void *a)
case 0:
fs::delDir(fs::getWorkDir() + "_TRASH_/");
mkdir(std::string(fs::getWorkDir() + "_TRASH_").c_str(), 777);
ui::showPopMessage(POP_FRAME_DEFAULT, "Trash emptied.");
ui::showPopMessage(POP_FRAME_DEFAULT, ui::getUICString("infoStatus", 14));
break;
case 1:

View File

@ -77,7 +77,7 @@ void ui::populateFldMenu()
*backargs = {fldMenu, fldList};
fldMenu->addOpt(NULL, "New");
fldMenu->addOpt(NULL, ui::getUICString("newFolderPopFldMenu", 0));
fldMenu->optAddButtonEvent(0, HidNpadButton_A, fs::createNewBackup, backargs);
for(unsigned i = 0; i < fldList->getCount(); i++)
@ -170,7 +170,7 @@ static void ttlOptsDefinePath(void *a)
{
uint64_t tid = data::getCurrentUserTitleInfo()->tid;
std::string safeTitle = data::getTitleInfoByTID(tid)->safeTitle;
std::string newSafeTitle = util::getStringInput(SwkbdType_QWERTY, safeTitle, "Input New Output Folder", 0x200, 0, NULL);
std::string newSafeTitle = util::getStringInput(SwkbdType_QWERTY, safeTitle, ui::getUICString("newSafeTitle", 0), 0x200, 0, NULL);
if(!newSafeTitle.empty())
cfg::pathDefAdd(tid, newSafeTitle);
}
@ -286,7 +286,7 @@ static void ttlOptsExtendSaveData_t(void *a)
threadInfo *t = (threadInfo *)a;
data::userTitleInfo *d = data::getCurrentUserTitleInfo();
std::string expSizeStr = util::getStringInput(SwkbdType_NumPad, "", "Enter New Size in MB", 4, 0, NULL);
std::string expSizeStr = util::getStringInput(SwkbdType_NumPad, "", ui::getUICString("expandSize", 0), 4, 0, NULL);
if(!expSizeStr.empty())
{
int64_t journ = 0, expSize;
@ -337,7 +337,7 @@ static void ttlOptsExtendSaveData_t(void *a)
fsFsGetTotalSpace(fsdevGetDeviceFileSystem("sv"), "/", &totalSize);
fs::unmountSave();
fs::logWrite("Extend Failed: %uMB to %uMB -> %X\n", totalSize / 1024 / 1024, expSize / 1024 / 1024, res);
fs::logWrite(ui::getUICString("expandSizeFailed", 0), totalSize / 1024 / 1024, expSize / 1024 / 1024, res);
ui::showPopMessage(POP_FRAME_DEFAULT, ui::getUICString("saveDataExtendFailed", 0));
}
else

View File

@ -220,7 +220,7 @@ void ui::loadTrans()
void ui::saveTranslationFile(void *a)
{
threadInfo *t = (threadInfo *)a;
t->status->setStatus("Saving the file master...");
t->status->setStatus(ui::getUICString("infoStatus", 9));
std::string out = fs::getWorkDir() + "en-US.txt";
FILE *enUS = fopen(out.c_str(), "w");

View File

@ -12,7 +12,7 @@
#include "usr.h"
#include "ttl.h"
static const char *settText = "Settings", *extText = "Extras";
static const char *settText = ui::getUICString("settingsMainMenu", 0), *extText = ui::getUICString("extrasMainMenu", 0);
//Main menu/Users + options, folder
ui::menu *ui::usrMenu;
@ -119,9 +119,9 @@ static void saveCreateCallback(void *a)
static void usrOptSaveCreate(void *a)
{
ui::menu *m = (ui::menu *)a;
int devPos = m->getOptPos("Device");
int bcatPos = m->getOptPos("BCAT");
int cachePos = m->getOptPos("Cache");
int devPos = m->getOptPos(ui::getUICString("usersSaveType", 0));
int bcatPos = m->getOptPos(ui::getUICString("usersSaveType", 1));
int cachePos = m->getOptPos(ui::getUICString("usersSaveType", 2));
ui::updateInput();
int sel = m->getSelected();
@ -164,7 +164,7 @@ static void usrOptDeleteAllUserSaves_t(void *a)
threadInfo *t = (threadInfo *)a;
data::user *u = data::getCurrentUser();
int curUserIndex = data::getCurrentUserIndex();
int devUser = ui::usrMenu->getOptPos("Device");
int devUser = ui::usrMenu->getOptPos(ui::getUICString("usersSaveType", 0));
for(data::userTitleInfo& tinf : u->titleInfo)
{
@ -261,8 +261,8 @@ static void usrOptCreateAllSaves_t(void *a)
{
threadInfo *t = (threadInfo *)a;
data::user *u = data::getCurrentUser();
int devPos = ui::usrMenu->getOptPos("Device");
int bcatPos = ui::usrMenu->getOptPos("BCAT");
int devPos = ui::usrMenu->getOptPos(ui::getUICString("usersSaveType", 0));
int bcatPos = ui::usrMenu->getOptPos(ui::getUICString("usersSaveType", 1));
int sel = ui::usrMenu->getSelected();
if(sel < devPos)
{
@ -464,7 +464,7 @@ void ui::usrUpdate()
{
case HidNpadButton_X:
{
int cachePos = usrMenu->getOptPos("Cache");
int cachePos = usrMenu->getOptPos(ui::getUIString("usersSaveType", 2));
if(usrMenu->getSelected() <= cachePos)
{
data::user *u = data::getCurrentUser();

View File

@ -12,7 +12,7 @@
#include "curlfuncs.h"
#include "type.h"
static const char verboten[] = { ',', '/', '\\', '<', '>', ':', '"', '|', '?', '*', '', '©', '®'};
static const uint32_t verboten[] = { ',', '/', '\\', '<', '>', ':', '"', '|', '?', '*', '<EFBFBD>', '<EFBFBD>', '<EFBFBD>'};
static bool isVerboten(const uint32_t& t)
{
@ -70,7 +70,7 @@ uint32_t replaceChar(uint32_t c)
{
switch(c)
{
case 'é':
case '<EFBFBD>':
return 'e';
break;
}
@ -202,49 +202,49 @@ std::string util::getInfoString(data::user& u, const uint64_t& tid)
std::string ret = tinfo->title + "\n";
ret += "TID: " + util::getIDStr(tid) + "\n";
ret += "SID: " + util::getIDStr(userTinfo->saveInfo.save_data_id) + "\n";
ret += ui::getUICString("infoStatus", 0) + util::getIDStr(tid) + "\n";
ret += ui::getUICString("infoStatus", 1) + util::getIDStr(userTinfo->saveInfo.save_data_id) + "\n";
uint32_t hours, mins;
hours = userTinfo->playStats.playtimeMinutes / 60;
mins = userTinfo->playStats.playtimeMinutes - (hours * 60);
ret += "Play Time: " + getTimeString(hours, mins) + "\n";
ret += "Total Launches: " + std::to_string(userTinfo->playStats.totalLaunches) + "\n";
ret += ui::getUICString("infoStatus", 2) + getTimeString(hours, mins) + "\n";
ret += ui::getUICString("infoStatus", 3) + std::to_string(userTinfo->playStats.totalLaunches) + "\n";
switch(userTinfo->saveInfo.save_data_type)
{
case FsSaveDataType_System:
ret += "System Save\n";
ret += ui::getUICString("saveDataType", 0);
break;
case FsSaveDataType_Account:
ret += "Save Data\n";
ret += ui::getUICString("saveDataType", 1);
break;
case FsSaveDataType_Bcat:
ret += "BCAT\n";
ret += ui::getUICString("saveDataType", 2);
break;
case FsSaveDataType_Device:
ret += "Device Save\n";
ret += ui::getUICString("saveDataType", 3);
break;
case FsSaveDataType_Temporary:
ret += "Temp Storage\n";
ret += ui::getUICString("saveDataType", 4);
break;
case FsSaveDataType_Cache:
{
data::userTitleInfo *d = data::getCurrentUserTitleInfo();
ret += "Cache Storage\n";
ret += "Save Index: " + std::to_string(d->saveInfo.save_data_index) + "\n";
ret += ui::getUICString("saveDataType", 5);
ret += ui::getUICString("saveDataType", 7) + std::to_string(d->saveInfo.save_data_index) + "\n";
}
break;
case FsSaveDataType_SystemBcat:
ret += "System BCAT\n";
ret += ui::getUICString("saveDataType", 6);
break;
}