[2021/10/06: Niean] Translation (1/4)

This commit is contained in:
Rintim 2021-10-06 10:53:59 +08:00
parent dd0f24d507
commit 0629a5a429
7 changed files with 91 additions and 75 deletions

View File

@ -80,7 +80,7 @@ static Result dumpnand_restore(void* data, u32 index) {
}
static bool dumpnand_error(void* data, u32 index, Result res, ui_view** errorView) {
*errorView = error_display_res(NULL, NULL, res, "无法导出 NAND.");
*errorView = error_display_res(NULL, NULL, res, "無法導出 NAND.");
return true;
}
@ -92,7 +92,7 @@ static void dumpnand_update(ui_view* view, void* data, float* progress, char* te
info_destroy(view);
if(R_SUCCEEDED(dumpData->result)) {
prompt_display_notify("成功", "出.", COLOR_TEXT, NULL, NULL, NULL);
prompt_display_notify("成功", "出.", COLOR_TEXT, NULL, NULL, NULL);
}
free(dumpData);
@ -118,9 +118,9 @@ static void dumpnand_onresponse(ui_view* view, void* data, u32 response) {
Result res = task_data_op(dumpData);
if(R_SUCCEEDED(res)) {
info_display("正在", "按 B 取消.", true, data, dumpnand_update, NULL);
info_display("正在", "按 B 取消.", true, data, dumpnand_update, NULL);
} else {
error_display_res(NULL, NULL, res, "无法启动导出 NAND.");
error_display_res(NULL, NULL, res, "無法啟動導出 NAND.");
free(data);
}
} else {

View File

@ -10,9 +10,9 @@
#include "task/uitask.h"
#include "../core/core.h"
static list_item browse_user_save_data = {"浏览用户数据", COLOR_TEXT, action_browse_user_ext_save_data};
static list_item browse_spotpass_save_data = {"浏览悄然连接数据", COLOR_TEXT, action_browse_boss_ext_save_data};
static list_item delete_save_data = {"删除数据", COLOR_TEXT, action_delete_ext_save_data};
static list_item browse_user_save_data = {"瀏覽使用者數據", COLOR_TEXT, action_browse_user_ext_save_data};
static list_item browse_spotpass_save_data = {"瀏覽順緣鏈接數據", COLOR_TEXT, action_browse_boss_ext_save_data};
static list_item delete_save_data = {"刪除數據", COLOR_TEXT, action_delete_ext_save_data};
typedef struct {
populate_ext_save_data_data populateData;

View File

@ -11,29 +11,29 @@
#include "../core/core.h"
static list_item rename_opt = {"重命名", COLOR_TEXT, action_rename};
static list_item copy = {"复制", COLOR_TEXT, NULL};
static list_item paste = {"粘贴", COLOR_TEXT, action_paste_contents};
static list_item copy = {"拷貝", COLOR_TEXT, NULL};
static list_item paste = {"貼上", COLOR_TEXT, action_paste_contents};
static list_item delete_file = {"", COLOR_TEXT, action_delete_file};
static list_item delete_file = {"", COLOR_TEXT, action_delete_file};
static list_item install_cia = {"装安装包", COLOR_TEXT, action_install_cia};
static list_item install_and_delete_cia = {"装并删除安装包", COLOR_TEXT, action_install_cia_delete};
static list_item install_cia = {"裝 CIA", COLOR_TEXT, action_install_cia};
static list_item install_and_delete_cia = {"裝並刪除 CIA", COLOR_TEXT, action_install_cia_delete};
static list_item install_ticket = {"装应用引导表", COLOR_TEXT, action_install_ticket};
static list_item install_and_delete_ticket = {"装并删除应用引导表", COLOR_TEXT, action_install_ticket_delete};
static list_item install_ticket = {"裝 ticket", COLOR_TEXT, action_install_ticket};
static list_item install_and_delete_ticket = {"裝並刪除 ticket", COLOR_TEXT, action_install_ticket_delete};
static list_item delete_dir = {"", COLOR_TEXT, action_delete_dir};
static list_item copy_all_contents = {"复制所有项目", COLOR_TEXT, NULL};
static list_item delete_all_contents = {"删除所有项目", COLOR_TEXT, action_delete_dir_contents};
static list_item new_folder = {"新建文件夹", COLOR_TEXT, action_new_folder};
static list_item delete_dir = {"", COLOR_TEXT, action_delete_dir};
static list_item copy_all_contents = {"拷貝所有檔案", COLOR_TEXT, NULL};
static list_item delete_all_contents = {"刪除所有檔案", COLOR_TEXT, action_delete_dir_contents};
static list_item new_folder = {"新建資料夾", COLOR_TEXT, action_new_folder};
static list_item install_all_cias = {"装所有安装包", COLOR_TEXT, action_install_cias};
static list_item install_and_delete_all_cias = {"装并删除所有安装包", COLOR_TEXT, action_install_cias_delete};
static list_item delete_all_cias = {"删除安装包", COLOR_TEXT, action_delete_dir_cias};
static list_item install_all_cias = {"裝所有 CIA(s)", COLOR_TEXT, action_install_cias};
static list_item install_and_delete_all_cias = {"裝並刪除所有 CIA(s)", COLOR_TEXT, action_install_cias_delete};
static list_item delete_all_cias = {"刪除所有 CIA(s)", COLOR_TEXT, action_delete_dir_cias};
static list_item install_all_tickets = {"装所有应用引导表", COLOR_TEXT, action_install_tickets};
static list_item install_and_delete_all_tickets = {"装并删除所有应用引导表", COLOR_TEXT, action_install_tickets_delete};
static list_item delete_all_tickets = {"删除所有应用引导表", COLOR_TEXT, action_delete_dir_tickets};
static list_item install_all_tickets = {"裝所有 ticket(s)", COLOR_TEXT, action_install_tickets};
static list_item install_and_delete_all_tickets = {"裝並刪除所有 ticket(s)", COLOR_TEXT, action_install_tickets_delete};
static list_item delete_all_tickets = {"删除所有 ticket(s)", COLOR_TEXT, action_delete_dir_tickets};
typedef struct {
populate_files_data populateData;
@ -107,9 +107,9 @@ static void files_action_update(ui_view* view, void* data, linked_list* items, l
Result res = 0;
if(R_SUCCEEDED(res = clipboard_set_contents(actionData->parent->archive, info->path, selected == &copy_all_contents))) {
prompt_display_notify("成功", selected == &copy_all_contents ? "当前文件夹的所有项目已复制到剪贴板." : (info->attributes & FS_ATTRIBUTE_DIRECTORY) ? "当前文件夹已复制到剪贴板." : "文件已复制到剪贴板.", COLOR_TEXT, info, task_draw_file_info, NULL);
prompt_display_notify("成功", selected == &copy_all_contents ? "當前資料夾的档案已拷貝到剪貼板上。" : (info->attributes & FS_ATTRIBUTE_DIRECTORY) ? "當前資料夾已拷貝到剪貼板上。" : "档案已拷貝到剪貼板上。", COLOR_TEXT, info, task_draw_file_info, NULL);
} else {
error_display_res(info, task_draw_file_info, res, "无法复制到剪贴板.");
error_display_res(info, task_draw_file_info, res, "無法拷貝到剪貼板上。");
}
} else if(selected == &install_all_cias || selected == &install_and_delete_all_cias || selected == &install_all_tickets || selected == &install_and_delete_all_tickets) {
void (*filteredAction)(linked_list*, list_item*, bool (*)(void*, const char*, u32), void*) = action;
@ -171,7 +171,7 @@ static void files_action_update(ui_view* view, void* data, linked_list* items, l
static void files_action_open(linked_list* items, list_item* selected, files_data* parent) {
files_action_data* data = (files_action_data*) calloc(1, sizeof(files_action_data));
if(data == NULL) {
error_display(NULL, NULL, "无法分配文件操作的数据.");
error_display(NULL, NULL, "無法分配档案操作數據。");
return;
}
@ -196,7 +196,7 @@ static void files_action_open(linked_list* items, list_item* selected, files_dat
}
}
list_display((((file_info*) selected->data)->attributes & FS_ATTRIBUTE_DIRECTORY) ? "文件夹操作" : "文件操作", "A: 选择, B: 返回", data, files_action_update, files_action_draw_top);
list_display((((file_info*) selected->data)->attributes & FS_ATTRIBUTE_DIRECTORY) ? "資料夾操作" : "档案操作", "A: 選擇, B: 返回", data, files_action_update, files_action_draw_top);
}
static void files_options_add_entry(linked_list* items, const char* name, bool* val) {
@ -238,16 +238,16 @@ static void files_options_update(ui_view* view, void* data, linked_list* items,
}
if(linked_list_size(items) == 0) {
files_options_add_entry(items, "显示隐藏的项目", &listData->showHidden);
files_options_add_entry(items, "显示文件夹", &listData->showDirectories);
files_options_add_entry(items, "显示文件", &listData->showFiles);
files_options_add_entry(items, "显示安装包", &listData->showCias);
files_options_add_entry(items, "显示应用引导表", &listData->showTickets);
files_options_add_entry(items, "顯示隠藏档案", &listData->showHidden);
files_options_add_entry(items, "顯示資料夾", &listData->showDirectories);
files_options_add_entry(items, "顯示档案", &listData->showFiles);
files_options_add_entry(items, "顯示 CIAs", &listData->showCias);
files_options_add_entry(items, "顯示 Tickets", &listData->showTickets);
}
}
static void files_options_open(files_data* data) {
list_display("选项", "A: 切换, B: 返回", data, files_options_update, NULL);
list_display("選項", "A: 切換, B: 返回", data, files_options_update, NULL);
}
static void files_draw_top(ui_view* view, void* data, float x1, float y1, float x2, float y2, list_item* selected) {
@ -270,7 +270,7 @@ static void files_repopulate(files_data* listData, linked_list* items) {
Result res = task_populate_files(&listData->populateData);
if(R_FAILED(res)) {
error_display_res(NULL, NULL, res, "无法启动文件列表填充.");
error_display_res(NULL, NULL, res, "無法初始化档案目錄結構");
}
listData->populated = true;
@ -347,7 +347,7 @@ static void files_update(ui_view* view, void* data, linked_list* items, list_ite
if(selected != NULL && selected->data != NULL && (selectedTouched || (hidKeysDown() & KEY_A))) {
file_info* fileInfo = (file_info*) selected->data;
if((fileInfo->attributes & FS_ATTRIBUTE_DIRECTORY) && strncmp(selected->name, "<当前文件夹>", LIST_ITEM_NAME_MAX) != 0) {
if((fileInfo->attributes & FS_ATTRIBUTE_DIRECTORY) && strncmp(selected->name, "<當前資料夾>", LIST_ITEM_NAME_MAX) != 0) {
files_navigate(listData, items, fileInfo->path);
} else {
files_action_open(items, selected, listData);
@ -360,7 +360,7 @@ static void files_update(ui_view* view, void* data, linked_list* items, list_ite
}
if(listData->populateData.finished && R_FAILED(listData->populateData.result)) {
error_display_res(NULL, NULL, listData->populateData.result, "无法填充文件列表.");
error_display_res(NULL, NULL, listData->populateData.result, "無法列舉档案目錄。");
listData->populateData.result = 0;
}
@ -369,7 +369,7 @@ static void files_update(ui_view* view, void* data, linked_list* items, list_ite
void files_open(FS_ArchiveID archiveId, FS_Path archivePath) {
files_data* data = (files_data*) calloc(1, sizeof(files_data));
if(data == NULL) {
error_display(NULL, NULL, "无法分配文件的数据.");
error_display(NULL, NULL, "無法分配档案數據。");
return;
}
@ -397,7 +397,7 @@ void files_open(FS_ArchiveID archiveId, FS_Path archivePath) {
if(archivePath.data != NULL) {
data->archivePath.data = calloc(1, data->archivePath.size);
if(data->archivePath.data == NULL) {
error_display(NULL, NULL, "无法分配文件的数据.");
error_display(NULL, NULL, "無法分配档案數據。");
files_free_data(data);
return;
@ -412,13 +412,13 @@ void files_open(FS_ArchiveID archiveId, FS_Path archivePath) {
Result res = 0;
if(R_FAILED(res = fs_open_archive(&data->archive, archiveId, archivePath))) {
error_display_res(NULL, NULL, res, "没有找到文件夹.");
error_display_res(NULL, NULL, res, "無法打開資料夾");
files_free_data(data);
return;
}
list_display("文件", "A: 选择, B: 返回, X: 刷新, SELECT: 选项", data, files_update, files_draw_top);
list_display("档案", "A: 選擇, B: 返回, X: 刷新, Select: 選項", data, files_update, files_draw_top);
}
static void files_open_nand_warning_onresponse(ui_view* view, void* data, u32 response) {
@ -430,7 +430,7 @@ static void files_open_nand_warning_onresponse(ui_view* view, void* data, u32 re
}
void files_open_nand_warning(FS_ArchiveID archive) {
prompt_display_yes_no("确认", "修改 系统闪存分区 (NAND) 是危险的,\n这可能导致系统无法正常运行,\n请您确保自己知道正在做什么.\n\n继续?", COLOR_TEXT, (void*) archive, NULL, files_open_nand_warning_onresponse);
prompt_display_yes_no("確認", "修改NAND是危險的可能會導致\n 系統無法正常運行。\n確保自己知道行為造成的後果。\n\n是否繼續?", COLOR_TEXT, (void*) archive, NULL, files_open_nand_warning_onresponse);
}
void files_open_sd() {

View File

@ -6,7 +6,7 @@
#include "resources.h"
#include "section.h"
#include "../core/core.h"
/*
static list_item sd = {"(Micro) SD 卡", COLOR_TEXT, files_open_sd};
static list_item ctr_nand = {"3DS 闪存分区 (CTR NAND)", COLOR_TEXT, files_open_ctr_nand};
static list_item twl_nand = {"DSi 闪存分区 (TWL NAND)", COLOR_TEXT, files_open_twl_nand};
@ -20,6 +20,20 @@ static list_item ext_save_data = {"追加数据", COLOR_TEXT, extsavedata_open};
static list_item system_save_data = {"系统数据", COLOR_TEXT, systemsavedata_open};
static list_item remote_install = {"远程安装", COLOR_TEXT, remoteinstall_open};
static list_item update = {"检查更新", COLOR_TEXT, update_open};
*/
static list_item sd = {"SD Card", COLOR_TEXT, files_open_sd};
static list_item ctr_nand = {"CTR NAND", COLOR_TEXT, files_open_ctr_nand};
static list_item twl_nand = {"TWL NAND", COLOR_TEXT, files_open_twl_nand};
static list_item twl_photo = {"TWL Photo", COLOR_TEXT, files_open_twl_photo};
static list_item twl_sound = {"TWL Sound", COLOR_TEXT, files_open_twl_sound};
static list_item dump_nand = {"導出 NAND", COLOR_TEXT, dumpnand_open};
static list_item titles = {"程式", COLOR_TEXT, titles_open};
static list_item pending_titles = {"待裝程式", COLOR_TEXT, pendingtitles_open};
static list_item tickets = {"憑據", COLOR_TEXT, tickets_open};
static list_item ext_save_data = {"追加儲存數據", COLOR_TEXT, extsavedata_open};
static list_item system_save_data = {"系統儲存數據", COLOR_TEXT, systemsavedata_open};
static list_item remote_install = {"遠程安裝", COLOR_TEXT, remoteinstall_open};
static list_item update = {"升級至最新Latest Not Releases", COLOR_TEXT, update_open};
static void mainmenu_draw_top(ui_view* view, void* data, float x1, float y1, float x2, float y2, list_item* selected) {
u32 logoWidth;
@ -64,5 +78,5 @@ static void mainmenu_update(ui_view* view, void* data, linked_list* items, list_
void mainmenu_open() {
resources_load();
list_display("菜单", "A: 选择, START: 退出", NULL, mainmenu_update, mainmenu_draw_top);
list_display("選單", "A: 選擇, START: 退出", NULL, mainmenu_update, mainmenu_draw_top);
}

View File

@ -16,8 +16,8 @@ int task_compare_files(void* userData, const void* p1, const void* p2) {
list_item* info1 = (list_item*) p1;
list_item* info2 = (list_item*) p2;
bool info1Base = strncmp(info1->name, "<当前文件夹>", LIST_ITEM_NAME_MAX) == 0 || strncmp(info1->name, "<当前文件>", LIST_ITEM_NAME_MAX) == 0;
bool info2Base = strncmp(info2->name, "<当前文件夹>", LIST_ITEM_NAME_MAX) == 0 || strncmp(info2->name, "<当前文件>", LIST_ITEM_NAME_MAX) == 0;
bool info1Base = strncmp(info1->name, "<當前資料夾>", LIST_ITEM_NAME_MAX) == 0 || strncmp(info1->name, "<當前檔案>", LIST_ITEM_NAME_MAX) == 0;
bool info2Base = strncmp(info2->name, "<當前資料夾>", LIST_ITEM_NAME_MAX) == 0 || strncmp(info2->name, "<當前檔案>", LIST_ITEM_NAME_MAX) == 0;
if(info1Base && !info2Base) {
return -1;
@ -199,9 +199,9 @@ static void task_populate_files_thread(void* arg) {
if(R_SUCCEEDED(res = task_create_file_item(&baseItem, data->archive, data->path, 0, false))) {
file_info* baseInfo = (file_info*) baseItem->data;
if(baseInfo->attributes & FS_ATTRIBUTE_DIRECTORY) {
string_copy(baseItem->name, "<当前文件夹>", LIST_ITEM_NAME_MAX);
string_copy(baseItem->name, "<當前資料夾>", LIST_ITEM_NAME_MAX);
} else {
string_copy(baseItem->name, "<当前文件>", LIST_ITEM_NAME_MAX);
string_copy(baseItem->name, "<當前檔案>", LIST_ITEM_NAME_MAX);
}
linked_list queue;
@ -363,4 +363,4 @@ Result task_populate_files(populate_files_data* data) {
}
return res;
}
}

View File

@ -87,18 +87,18 @@ void task_draw_file_info(ui_view* view, void* data, float x1, float y1, float x2
size_t infoTextPos = 0;
if(strlen(info->name) > 48) {
infoTextPos += snprintf(infoText + infoTextPos, sizeof(infoText) - infoTextPos, ": %.45s...\n", info->name);
infoTextPos += snprintf(infoText + infoTextPos, sizeof(infoText) - infoTextPos, ": %.45s...\n", info->name);
} else {
infoTextPos += snprintf(infoText + infoTextPos, sizeof(infoText) - infoTextPos, ": %.48s\n", info->name);
infoTextPos += snprintf(infoText + infoTextPos, sizeof(infoText) - infoTextPos, ": %.48s\n", info->name);
}
infoTextPos += snprintf(infoText + infoTextPos, sizeof(infoText) - infoTextPos, "性: ");
infoTextPos += snprintf(infoText + infoTextPos, sizeof(infoText) - infoTextPos, "性: ");
if(info->attributes & (FS_ATTRIBUTE_DIRECTORY | FS_ATTRIBUTE_HIDDEN | FS_ATTRIBUTE_ARCHIVE | FS_ATTRIBUTE_READ_ONLY)) {
bool needsSeparator = false;
if(info->attributes & FS_ATTRIBUTE_DIRECTORY) {
infoTextPos += snprintf(infoText + infoTextPos, sizeof(infoText) - infoTextPos, "文件夹");
infoTextPos += snprintf(infoText + infoTextPos, sizeof(infoText) - infoTextPos, "資料夾");
needsSeparator = true;
}
@ -107,7 +107,7 @@ void task_draw_file_info(ui_view* view, void* data, float x1, float y1, float x2
infoTextPos += snprintf(infoText + infoTextPos, sizeof(infoText) - infoTextPos, ", ");
}
infoTextPos += snprintf(infoText + infoTextPos, sizeof(infoText) - infoTextPos, "隐藏的项目");
infoTextPos += snprintf(infoText + infoTextPos, sizeof(infoText) - infoTextPos, "隱藏的檔案");
needsSeparator = true;
}
@ -116,7 +116,7 @@ void task_draw_file_info(ui_view* view, void* data, float x1, float y1, float x2
infoTextPos += snprintf(infoText + infoTextPos, sizeof(infoText) - infoTextPos, ", ");
}
infoTextPos += snprintf(infoText + infoTextPos, sizeof(infoText) - infoTextPos, "文件");
infoTextPos += snprintf(infoText + infoTextPos, sizeof(infoText) - infoTextPos, "檔案");
needsSeparator = true;
}
@ -125,11 +125,11 @@ void task_draw_file_info(ui_view* view, void* data, float x1, float y1, float x2
infoTextPos += snprintf(infoText + infoTextPos, sizeof(infoText) - infoTextPos, ", ");
}
infoTextPos += snprintf(infoText + infoTextPos, sizeof(infoText) - infoTextPos, "");
infoTextPos += snprintf(infoText + infoTextPos, sizeof(infoText) - infoTextPos, "");
needsSeparator = true;
}
} else {
infoTextPos += snprintf(infoText + infoTextPos, sizeof(infoText) - infoTextPos, "无/任意");
infoTextPos += snprintf(infoText + infoTextPos, sizeof(infoText) - infoTextPos, "");
}
infoTextPos += snprintf(infoText + infoTextPos, sizeof(infoText) - infoTextPos, "\n");
@ -137,10 +137,10 @@ void task_draw_file_info(ui_view* view, void* data, float x1, float y1, float x2
if(!(info->attributes & FS_ATTRIBUTE_DIRECTORY)) {
infoTextPos += snprintf(infoText + infoTextPos, sizeof(infoText) - infoTextPos, "大小: %.2f %s",
ui_get_display_size(info->size), ui_get_display_size_units(info->size));
infoTextPos += snprintf(infoText + infoTextPos, sizeof(infoText) - infoTextPos, " (%.2f %s)\n",
ui_get_display_size(info->ciaInfo.installedSize),
ui_get_display_size_units(info->ciaInfo.installedSize));
//infoTextPos += snprintf(infoText + infoTextPos, sizeof(infoText) - infoTextPos, " (%.2f %s)\n",
//ui_get_display_size(info->ciaInfo.installedSize),
//ui_get_display_size_units(info->ciaInfo.installedSize));
if(info->isCia && info->ciaInfo.loaded) {
char regionString[64];
@ -154,15 +154,17 @@ void task_draw_file_info(ui_view* view, void* data, float x1, float y1, float x2
}
infoTextPos += snprintf(infoText + infoTextPos, sizeof(infoText) - infoTextPos,
"应用 ID: %016llX\n"
"程式 ID: %016llX\n"
"版本: %hu (%d.%d.%d)\n"
"域: %s",
//"安装后大小: %.2f %s",
"域: %s",
"安裝後大小: %.2f %s",
info->ciaInfo.titleId,
info->ciaInfo.version, (info->ciaInfo.version >> 10) & 0x3F, (info->ciaInfo.version >> 4) & 0x3F, info->ciaInfo.version & 0xF,
regionString);
regionString,
ui_get_display_size(info->ciaInfo.installedSize),
ui_get_display_size_units(info->ciaInfo.installedSize));
} else if(info->isTicket && info->ticketInfo.loaded) {
infoTextPos += snprintf(infoText + infoTextPos, sizeof(infoText) - infoTextPos, "应用 ID: %016llX", info->ticketInfo.titleId);
infoTextPos += snprintf(infoText + infoTextPos, sizeof(infoText) - infoTextPos, "程式 ID: %016llX", info->ticketInfo.titleId);
}
}
@ -180,11 +182,11 @@ void task_draw_pending_title_info(ui_view* view, void* data, float x1, float y1,
char infoText[512];
snprintf(infoText, sizeof(infoText),
"未完成的应用 ID: %016llX\n"
"未完成的程式 ID: %016llX\n"
"位置: %s\n"
"版本: %hu (%d.%d.%d)",
info->titleId,
info->mediaType == MEDIATYPE_NAND ? "NAND" : info->mediaType == MEDIATYPE_SD ? "SD 卡" : "游戏卡带",
info->mediaType == MEDIATYPE_NAND ? "NAND" : info->mediaType == MEDIATYPE_SD ? "SD 卡" : "遊戲卡帶",
info->version, (info->version >> 10) & 0x3F, (info->version >> 4) & 0x3F, info->version & 0xF);
float infoWidth;
@ -200,7 +202,7 @@ void task_draw_system_save_data_info(ui_view* view, void* data, float x1, float
char infoText[512];
snprintf(infoText, sizeof(infoText), "统数据 ID: %08lX", info->systemSaveDataId);
snprintf(infoText, sizeof(infoText), "統數據 ID: %08lX", info->systemSaveDataId);
float infoWidth;
screen_get_string_size(&infoWidth, NULL, infoText, 0.5f, 0.5f);
@ -216,7 +218,7 @@ void task_draw_ticket_info(ui_view* view, void* data, float x1, float y1, float
if(info->loaded) {
char infoText[512];
snprintf(infoText, sizeof(infoText), "应用 ID: %016llX", info->titleId);
snprintf(infoText, sizeof(infoText), "程式 ID: %016llX", info->titleId);
float infoWidth;
screen_get_string_size(&infoWidth, NULL, infoText, 0.5f, 0.5f);
@ -243,14 +245,14 @@ void task_draw_title_info(ui_view* view, void* data, float x1, float y1, float x
char infoText[512];
snprintf(infoText, sizeof(infoText),
"应用 ID: %016llX\n"
"程式 ID: %016llX\n"
"位置: %s\n"
"版本: %hu (%d.%d.%d)\n"
"产品代码: %s\n"
"域: %s\n"
"產品代碼: %s\n"
"域: %s\n"
"大小: %.2f %s",
info->titleId,
info->mediaType == MEDIATYPE_NAND ? "NAND" : info->mediaType == MEDIATYPE_SD ? "SD 卡" : "游戏卡带",
info->mediaType == MEDIATYPE_NAND ? "NAND" : info->mediaType == MEDIATYPE_SD ? "SD 卡" : "遊戲卡帶",
info->version, (info->version >> 10) & 0x3F, (info->version >> 4) & 0x3F, info->version & 0xF,
info->productCode,
regionString,

View File

@ -14,7 +14,7 @@
static void update_check_update(ui_view* view, void* data, float* progress, char* text) {
ui_pop();
info_destroy(view);
prompt_display_notify("检查更新", "测试/滚动版不支持检查更新\n仅预览版及稳定版支持更新至最新版本.", COLOR_TEXT, NULL, NULL, NULL);
prompt_display_notify("檢查更新", "測試/滾動版本不支持檢查更新\n僅預覽版及穩定版支持更新至最新版本.", COLOR_TEXT, NULL, NULL, NULL);
return;