mirror of
https://github.com/DarkStore-3DS/DarkStore.git
synced 2026-07-02 16:49:05 +00:00
Add Chinese and fix some bugs (see desc)
- Fix 3dsx in folder setting not being saved on exit - Fix font download on language selection not having a progress bar - Also update translations as to have something to test Chinese with
This commit is contained in:
@@ -86,6 +86,10 @@ public:
|
||||
bool customfont() const { return this->v_customFont; };
|
||||
void customfont(bool v) { this->v_customFont = v; if (!this->changesMade) this->changesMade = true; };
|
||||
|
||||
/* The most recently downloaded language font */
|
||||
std::string downloadedFont() const { return this->v_downloadedFont; };
|
||||
void downloadedFont(const std::string &v) { this->v_downloadedFont = v; if (!this->changesMade) this->changesMade = true; };
|
||||
|
||||
/* The shortcut path. */
|
||||
std::string shortcut() const { return this->v_shortcutPath; };
|
||||
void shortcut(const std::string &v) { this->v_shortcutPath = v; if (!this->changesMade) this->changesMade = true; };
|
||||
@@ -115,7 +119,7 @@ private:
|
||||
|
||||
int v_theme = 0;
|
||||
|
||||
std::string v_language = "en", v_lastStore = "universal-db.unistore",
|
||||
std::string v_language = "en", v_lastStore = "universal-db.unistore", v_downloadedFont = "",
|
||||
v_3dsxPath = "sdmc:/3ds", v_ndsPath = "sdmc:", v_archivePath = "sdmc:",
|
||||
v_shortcutPath = "sdmc:/3ds/Universal-Updater/shortcuts", v_firmPath = "sdmc:/luma/payloads";
|
||||
|
||||
|
||||
+30
-30
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"3DSX_IN_FOLDER": "Put 3DSX files in folder",
|
||||
"3DSX_IN_FOLDER_DESC": "If enabled, 3DSX files will be put in a folder with the same name instead of directly in the set folder.",
|
||||
"ACTION_CANCELED": "%s canceled!",
|
||||
"ACTION_FAILED": "%s failed!",
|
||||
"ACTION_REQUIRED": "Action required!",
|
||||
"ACTION_SUCCEEDED": "%s succeeded!",
|
||||
"ACTIVE_THEME": "Active Theme",
|
||||
"3DSX_IN_FOLDER": "Umieść pliki 3DSX w folderze",
|
||||
"3DSX_IN_FOLDER_DESC": "Jeśli włączone, pliki 3DSX zostaną umieszczone w folderze o tej samej nazwie zamiast bezpośrednio w wybranym folderze.",
|
||||
"ACTION_CANCELED": "%s anulowane!",
|
||||
"ACTION_FAILED": "%s nie powiodło się!",
|
||||
"ACTION_REQUIRED": "Wymagane działanie!",
|
||||
"ACTION_SUCCEEDED": "%s udane!",
|
||||
"ACTIVE_THEME": "Aktywny motyw",
|
||||
"ASCENDING": "Rosnąco",
|
||||
"ARGUMENT_INVALID": "Argument jest nieprawidłowy.\nProszę sprawdzić plik xml dla właściwych argumentów.",
|
||||
"AUTHOR": "Autor",
|
||||
@@ -20,7 +20,7 @@
|
||||
"CATEGORY": "Kategoria",
|
||||
"CHANGE_3DSX_PATH": "Zmień lokalizację 3DSX",
|
||||
"CHANGE_ARCHIVE_PATH": "Zmień lokalizację archiwum",
|
||||
"CHANGE_FIRM_PATH": "Change firm path",
|
||||
"CHANGE_FIRM_PATH": "Zmień ścieżkę firm",
|
||||
"CHANGE_NDS_PATH": "Zmień lokalizację NDS",
|
||||
"CHANGE_SHORTCUT_PATH": "Zmień ścieżkę skrótu",
|
||||
"CHECK_UNISTORE_UPDATES": "Sprawdzanie aktualizacji UniStore...",
|
||||
@@ -29,7 +29,7 @@
|
||||
"CONNECT_WIFI": "Proszę połączyć się z WiFi.",
|
||||
"CONSOLE": "Konsola",
|
||||
"CONTRIBUTOR_TRANSLATORS": "- Wszyscy Tłumacze i Współpracownicy",
|
||||
"COPYING": "Copying... %s / %s (%.2f%%)",
|
||||
"COPYING": "Kopiowanie... %s / %s (%.2f%%)",
|
||||
"COPY_ERROR": "Błąd kopiowania!",
|
||||
"CREATE_SHORTCUT": "Czy chcesz teraz stworzyć skrót?",
|
||||
"CREDITS": "Współautorzy",
|
||||
@@ -40,7 +40,7 @@
|
||||
"DELETE_ERROR": "Błąd usuwania!",
|
||||
"DELETE_PROMPT": "Czy na pewno chcesz usunąć ten Katalog?",
|
||||
"DELETE_UNNEEDED_FILE": "Usuwanie niepotrzebnego pliku...",
|
||||
"DELETING": "Deleting...",
|
||||
"DELETING": "Usuwanie...",
|
||||
"DESCENDING": "Malejąco",
|
||||
"DIRECTION": "Kierunek",
|
||||
"DIRECTORY_SETTINGS": "Ustawienia Katalogu",
|
||||
@@ -48,8 +48,8 @@
|
||||
"DONE": "Gotowe!",
|
||||
"DOWNLOAD_ERROR": "Błąd pobierania!",
|
||||
"DOWNLOAD_FAILED": "Pobieranie nieudane!",
|
||||
"DOWNLOAD_SPEED": "Speed: %lld KiB/s",
|
||||
"DOWNLOADING": "Downloading... %s / %s (%.2f%%)",
|
||||
"DOWNLOAD_SPEED": "Prędkość: %lld KiB/s",
|
||||
"DOWNLOADING": "Pobieranie... %s / %s (%.2f%%)",
|
||||
"DOWNLOADING_COMPATIBLE_FONT": "Pobieranie kompatybilnej czcionki...",
|
||||
"DOWNLOADING_SPRITE_SHEET": "Pobieranie tekstur...",
|
||||
"DOWNLOADING_SPRITE_SHEET2": "Pobieranie tekstury %i z %i...",
|
||||
@@ -64,12 +64,12 @@
|
||||
"ENTRIES": "Wpisy",
|
||||
"EXECUTE_ENTRY": "Czy chcesz wykonać ten wpis?",
|
||||
"EXIT_APP": "Wyjdź z Universal-Updater",
|
||||
"EXTRACTING": "Extracting... %s / %s (%.2f%%)",
|
||||
"EXTRACT_ERROR": "Extract error!",
|
||||
"FEATURE_SIDE_EFFECTS": "This Feature may have side effects while the Queue is running.\nAre you sure you want to continue?",
|
||||
"EXTRACTING": "Wypakowywanie... %s / %s (%.2f%%)",
|
||||
"EXTRACT_ERROR": "Błąd wypakowywania!",
|
||||
"FEATURE_SIDE_EFFECTS": "Ta funkcja może powodować działania niepożądane podczas działającej kolejki zadań.\nCzy na pewno chcesz kontynuować?",
|
||||
"FETCHING_METADATA": "Pobieranie starych metadanych...",
|
||||
"FETCHING_RECOMMENDED_UNISTORES": "Pobieranie rekomendowanych UniStores...",
|
||||
"FILES": "File: %d / %d",
|
||||
"FILES": "Plik: %d / %d",
|
||||
"FILE_EXTRACTED": "plik rozpakowany.",
|
||||
"FILE_SLASH": "Wygląda na to, że '/' jest dołączony, co nie jest obsługiwane.\nProszę zmienić 'plik' tylko na nazwę pliku.",
|
||||
"FILES_EXTRACTED": "pliki rozpakowane.",
|
||||
@@ -79,7 +79,7 @@
|
||||
"GUI_SETTINGS": "Ustawienia Interfejsu",
|
||||
"GUI_SETTINGS_BTN": "Ustawienia Interfejsu...",
|
||||
"INCLUDE_IN_RESULTS": "Dołącz do wyników:",
|
||||
"INSTALLING": "Installing... %s / %s (%.2f%%)",
|
||||
"INSTALLING": "Instalowanie... %s / %s (%.2f%%)",
|
||||
"INSTALL_UNIVERSAL_UPDATER": "Instalowanie Universal-Updater...",
|
||||
"INVALID_UNISTORE": "Nieprawidłowy UniStore",
|
||||
"KEY_CONTINUE": "Naciśnij dowolny klawisz, aby kontynuować.",
|
||||
@@ -87,7 +87,7 @@
|
||||
"LAST_UPDATED": "Ostatnia aktualizacja",
|
||||
"LICENSE": "Licencja",
|
||||
"LIST": "Lista",
|
||||
"LOADING_SCREENSHOT": "Loading Screenshot...",
|
||||
"LOADING_SCREENSHOT": "Ładowanie zrzutu ekranu...",
|
||||
"LOADING_SPRITESHEET": "Ładowanie tekstury %i z %i...",
|
||||
"MEDIATYPE_NAND": "Typ pliku NAND",
|
||||
"MEDIATYPE_SD": "Typ pliku SD",
|
||||
@@ -96,16 +96,16 @@
|
||||
"NO_LICENSE": "Brak licencji",
|
||||
"NO_SCREENSHOTS_AVAILABLE": "Brak dostępnych zrzutów ekranu",
|
||||
"NOT_IMPLEMENTED": "Jeszcze nie zaimplementowane",
|
||||
"OP_COPYING": "Copying",
|
||||
"OP_DELETING": "Deleting",
|
||||
"OP_DOWNLOADING": "Downloading",
|
||||
"OP_EXTRACTING": "Extracting",
|
||||
"OP_INSTALLING": "Installing",
|
||||
"OP_MOVING": "Moving",
|
||||
"OP_WAITING": "Waiting",
|
||||
"QUEUE": "Queue",
|
||||
"QUEUE_POSITION": "Queue position",
|
||||
"QUEUE_PROGRESS": "Step: %d / %d",
|
||||
"OP_COPYING": "Kopiowanie",
|
||||
"OP_DELETING": "Usuwanie",
|
||||
"OP_DOWNLOADING": "Pobieranie",
|
||||
"OP_EXTRACTING": "Wypakowywanie",
|
||||
"OP_INSTALLING": "Instalowanie",
|
||||
"OP_MOVING": "Przenoszenie",
|
||||
"OP_WAITING": "Oczekuje",
|
||||
"QUEUE": "Kolejka",
|
||||
"QUEUE_POSITION": "Pozycja w kolejce",
|
||||
"QUEUE_PROGRESS": "Krok %d / %d",
|
||||
"RECOMMENDED_UNISTORES": "Rekomendowane UniStores",
|
||||
"REVISION": "Wersja",
|
||||
"SCREENSHOT": "Zrzut ekranu %d / %d",
|
||||
@@ -116,7 +116,7 @@
|
||||
"SELECT_LANG": "Wybierz język",
|
||||
"SELECT_UNISTORE": "Wybierz UniStore",
|
||||
"SELECT_UNISTORE_2": "Wybierz UniStore",
|
||||
"SELECTION_QUEUE": "Add Selection to Queue",
|
||||
"SELECTION_QUEUE": "Dodaj zaznaczenie do kolejki",
|
||||
"SETTINGS": "Ustawienia",
|
||||
"SHEET_SLASH": "Wygląda na to, że '/' jest dołączony, co nie jest obsługiwane.\nProszę zmienić 'sheet' tylko na nazwę pliku.",
|
||||
"SHORTCUT_CREATED": "Skrót utworzony!",
|
||||
@@ -126,7 +126,7 @@
|
||||
"START_SELECT": "Naciśnij przycisk START, aby wybrać bieżący folder",
|
||||
"STORE_INFO": "Informacje o sklepie",
|
||||
"SYNTAX_ERROR": "Błąd składni!",
|
||||
"THEME_DEFAULT": "Default",
|
||||
"THEME_DEFAULT": "Domyślne",
|
||||
"TITLE": "Tytuł",
|
||||
"TOP_STYLE": "Styl Góry",
|
||||
"UNISTORE_BG": "Użyj tła UniStore",
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
"3DSX_IN_FOLDER_DESC": "При активації файли 3DSX зберігатимуться в теці з тим самим іменем, а не у вибраній теці.",
|
||||
"ACTION_CANCELED": "%s скасовано!",
|
||||
"ACTION_FAILED": "%s помилка!",
|
||||
"ACTION_REQUIRED": "Підтвердьте дію!",
|
||||
"ACTION_REQUIRED": "Потрібна дія!",
|
||||
"ACTION_SUCCEEDED": "%s завершено!",
|
||||
"ACTIVE_THEME": "Активна тема",
|
||||
"ACTIVE_THEME": "Тема",
|
||||
"ASCENDING": "За зростанням",
|
||||
"ARGUMENT_INVALID": "Аргумент не дійсний.\nБудь ласка, перевірте XML-файл на наявність правильних аргументів.",
|
||||
"AUTHOR": "Автор",
|
||||
@@ -66,7 +66,7 @@
|
||||
"EXIT_APP": "Вийти з Universal-Updater",
|
||||
"EXTRACTING": "Розпаковування... %s / %s (%.2f%%)",
|
||||
"EXTRACT_ERROR": "Помилка розпаковування!",
|
||||
"FEATURE_SIDE_EFFECTS": "This Feature may have side effects while the Queue is running.\nAre you sure you want to continue?",
|
||||
"FEATURE_SIDE_EFFECTS": "Ця функція може мати побічні ефекти під час роботи черги.\nВи впевнені, що хочете продовжити?",
|
||||
"FETCHING_METADATA": "Отримання старих метаданих...",
|
||||
"FETCHING_RECOMMENDED_UNISTORES": "Отримання рекомендованих UniStores...",
|
||||
"FILES": "Файл: %d / %d",
|
||||
|
||||
@@ -0,0 +1,143 @@
|
||||
{
|
||||
"3DSX_IN_FOLDER": "将 3DSX 文件放置到文件夹内",
|
||||
"3DSX_IN_FOLDER_DESC": "启用后,3DSX文件将会被放入同名文件夹内,而不是直接放在预设文件夹中",
|
||||
"ACTION_CANCELED": "%s 已取消!",
|
||||
"ACTION_FAILED": "%s 失败!",
|
||||
"ACTION_REQUIRED": "需要进行操作!",
|
||||
"ACTION_SUCCEEDED": "%s 成功!",
|
||||
"ACTIVE_THEME": "当前主题",
|
||||
"ASCENDING": "升序",
|
||||
"ARGUMENT_INVALID": "参数无效。\n请检查 xml 文件以获取正确的参数。",
|
||||
"AUTHOR": "作者",
|
||||
"AUTO_UPDATE_SETTINGS": "自动更新设置",
|
||||
"AUTO_UPDATE_SETTINGS_BTN": "自动更新设置……",
|
||||
"AUTO_UPDATE_UNISTORE": "自动更新 UniStores",
|
||||
"AUTO_UPDATE_UNISTORE_DESC": "启用后,UniStore 将会在下一次启动 Universal-Updater 时自动更新。",
|
||||
"AUTO_UPDATE_UU": "自动更新 Universal-Updater",
|
||||
"AUTO_UPDATE_UU_DESC": "启用后,Universal-Updater 将在每次启动时检查更新。",
|
||||
"AVAILABLE_DOWNLOADS": "可选下载",
|
||||
"BOOT_TITLE": "您想启动这个应用程序吗?",
|
||||
"CATEGORY": "类别",
|
||||
"CHANGE_3DSX_PATH": "更改 3DSX 路径",
|
||||
"CHANGE_ARCHIVE_PATH": "更改归档路径",
|
||||
"CHANGE_FIRM_PATH": "更改固件(firm)路径",
|
||||
"CHANGE_NDS_PATH": "更改 NDS 路径",
|
||||
"CHANGE_SHORTCUT_PATH": "更改快捷方式路径",
|
||||
"CHECK_UNISTORE_UPDATES": "正在检查 UniStore 更新...",
|
||||
"CHECK_UU_UPDATES": "正在检查 Universal-Updater 更新...",
|
||||
"CONFIRM_OR_CANCEL": "请按 键确认,或按 键取消。",
|
||||
"CONNECT_WIFI": "请连接到 WiFi 热点。",
|
||||
"CONSOLE": "主机平台",
|
||||
"CONTRIBUTOR_TRANSLATORS": "- 所有翻译者及贡献者",
|
||||
"COPYING": "正在复制... %s / %s (%.2f%%)",
|
||||
"COPY_ERROR": "复制错误!",
|
||||
"CREATE_SHORTCUT": "您想要创建一个快捷方式吗?",
|
||||
"CREDITS": "致谢名单",
|
||||
"CURRENT_VERSION": "当前版本: ",
|
||||
"CURRENTLY_EXTRACTING": "正在提取:",
|
||||
"CUSTOM_FONT": "使用自定义字体",
|
||||
"CUSTOM_FONT_DESC": "启用后,如果找到 'sdmc:/3ds/Universal-Updater/font.bcfnt',将使用该字体替代系统字体。",
|
||||
"DELETE_ERROR": "删除错误!",
|
||||
"DELETE_PROMPT": "您确定要删除此目录吗?",
|
||||
"DELETE_UNNEEDED_FILE": "正在删除不需要的文件……",
|
||||
"DELETING": "正在删除……",
|
||||
"DESCENDING": "降序",
|
||||
"DIRECTION": "方向",
|
||||
"DIRECTORY_SETTINGS": "目录设置",
|
||||
"DIRECTORY_SETTINGS_BTN": "目录设置...",
|
||||
"DONE": "完成!",
|
||||
"DOWNLOAD_ERROR": "下载错误!",
|
||||
"DOWNLOAD_FAILED": "下载失败!",
|
||||
"DOWNLOAD_SPEED": "速度: %lld KiB/秒",
|
||||
"DOWNLOADING": "正在下载... %s / %s (%.2f%%)",
|
||||
"DOWNLOADING_COMPATIBLE_FONT": "正在下载兼容字体……",
|
||||
"DOWNLOADING_SPRITE_SHEET": "正在下载贴图集……",
|
||||
"DOWNLOADING_SPRITE_SHEET2": "正在下载贴图集 %i / %i……",
|
||||
"DOWNLOADING_UNIVERSAL_DB": "正在下载 Universal-DB……",
|
||||
"DONLOADING_UNIVERSAL_UPDATER": "正在下载 Universal-Updater……",
|
||||
"DOWNLOADING_UNISTORE": "正在下载 UniStore……",
|
||||
"ENTER_DESC_SHORTCUT": "输入快捷方式描述。",
|
||||
"ENTER_SEARCH": "输入您想搜索的内容。",
|
||||
"ENTER_SHORTCUT_FILENAME": "输入快捷方式文件名 (不包含扩展名)。",
|
||||
"ENTER_TITLE_SHORTCUT": "输入快捷方式标题",
|
||||
"ENTER_URL": "输入 UniStore 的 URL。",
|
||||
"ENTRIES": "条目",
|
||||
"EXECUTE_ENTRY": "您想要执行此条目吗?",
|
||||
"EXIT_APP": "退出 Universal-Updater",
|
||||
"EXTRACTING": "正在提取…… %s / %s (%.2f%%)",
|
||||
"EXTRACT_ERROR": "提取错误!",
|
||||
"FEATURE_SIDE_EFFECTS": "此功能可能会在队列运行时产生副作用。\n您确定要继续吗?",
|
||||
"FETCHING_METADATA": "正在获取旧的元数据.……",
|
||||
"FETCHING_RECOMMENDED_UNISTORES": "正在获取推荐的 UniStores……",
|
||||
"FILES": "文件: %d / %d",
|
||||
"FILE_EXTRACTED": "文件已提取。",
|
||||
"FILE_SLASH": "看起来包含了一个不支持的字符 '/'。\n请将“文件”更改为只包含文件名的形式。",
|
||||
"FILES_EXTRACTED": "文件已提取。",
|
||||
"FILTER_TO": "过滤到:",
|
||||
"GITHUB": "完整的人员名单可以在 GitHub 上找到",
|
||||
"GRID": "网格",
|
||||
"GUI_SETTINGS": "用户界面设置",
|
||||
"GUI_SETTINGS_BTN": "用户界面设置...",
|
||||
"INCLUDE_IN_RESULTS": "包含结果:",
|
||||
"INSTALLING": "正在安装... %s / %s (%.2f%%)",
|
||||
"INSTALL_UNIVERSAL_UPDATER": "正在安装 Universal-Updater...",
|
||||
"INVALID_UNISTORE": "无效的 UniStore",
|
||||
"KEY_CONTINUE": "按任意键继续。",
|
||||
"LANGUAGE": "语言",
|
||||
"LAST_UPDATED": "最后更新",
|
||||
"LICENSE": "许可协议",
|
||||
"LIST": "清单",
|
||||
"LOADING_SCREENSHOT": "正在加载屏幕截图...",
|
||||
"LOADING_SPRITESHEET": "正在加载贴图集 %i / %i……",
|
||||
"MEDIATYPE_NAND": "介质类型 NAND",
|
||||
"MEDIATYPE_SD": "介质类型 SD",
|
||||
"MOVE_ERROR": "移动错误!",
|
||||
"NO_DOWNLOADS_AVAILABLE": "无可用下载",
|
||||
"NO_LICENSE": "没有许可证",
|
||||
"NO_SCREENSHOTS_AVAILABLE": "无可用屏幕截图",
|
||||
"NOT_IMPLEMENTED": "尚未实现",
|
||||
"OP_COPYING": "正在复制",
|
||||
"OP_DELETING": "删除中",
|
||||
"OP_DOWNLOADING": "正在下载",
|
||||
"OP_EXTRACTING": "正在提取",
|
||||
"OP_INSTALLING": "正在安装",
|
||||
"OP_MOVING": "正在移动",
|
||||
"OP_WAITING": "等待中",
|
||||
"QUEUE": "队列",
|
||||
"QUEUE_POSITION": "队列位置",
|
||||
"QUEUE_PROGRESS": "步骤: %d / %d",
|
||||
"RECOMMENDED_UNISTORES": "推荐的 UniStore 源",
|
||||
"REVISION": "修订版本",
|
||||
"SCREENSHOT": "截图 %d / %d",
|
||||
"SCREENSHOT_COULD_NOT_LOAD": "无法加载屏幕截图。",
|
||||
"SCREENSHOT_INSTRUCTIONS": "按 键变换,按 键缩放",
|
||||
"SEARCH_FILTERS": "搜索和过滤",
|
||||
"SELECT_DIR": "选择一个目录",
|
||||
"SELECT_LANG": "选择语言",
|
||||
"SELECT_UNISTORE": "选择 UniStore",
|
||||
"SELECT_UNISTORE_2": "请选择一个 UniStore",
|
||||
"SELECTION_QUEUE": "添加选中内容到队列",
|
||||
"SETTINGS": "设置",
|
||||
"SHEET_SLASH": "看起来包含了一个不支持的字符 '/'。\n请将“表”更改为只包含文件名的形式。",
|
||||
"SHORTCUT_CREATED": "快捷方式已创建!",
|
||||
"SIZE": "大小",
|
||||
"SORT_BY": "排序方式",
|
||||
"SORTING": "排序",
|
||||
"START_SELECT": "点击START按钮选择当前文件夹",
|
||||
"STORE_INFO": "商店信息",
|
||||
"SYNTAX_ERROR": "语法错误!",
|
||||
"THEME_DEFAULT": "默认",
|
||||
"TITLE": "标题",
|
||||
"TOP_STYLE": "上屏幕样式",
|
||||
"UNISTORE_BG": "使用 UniStore 背景图",
|
||||
"UNISTORE_BG_DESC": "启用后,将在上屏幕显示 UniStore 提供的背景图,而非预设的纯色背景。",
|
||||
"UNISTORE_INVALID_ERROR": "该 UniStore 无效,\nUniversal-Updater 无法加载。\n请检查是否存在语法错误?",
|
||||
"UNISTORE_TOO_NEW": "您的 Universal-Updater 版本过低,\n无法使用该 UniStore 。\n请更新到最新版本。",
|
||||
"UNISTORE_TOO_OLD": "该 UniStore 已过期,\n无法与当前版本的 Universal-Updater 配合使用。\n请向商店创建者请求更新。",
|
||||
"UPDATE_AVAILABLE": "更新版本现已可用!",
|
||||
"UPDATE_DONE": "更新完成 !请重新打开 Universal-Updater。",
|
||||
"UPDATING_SPRITE_SHEET": "正在更新贴图集……",
|
||||
"UPDATING_SPRITE_SHEET2": "正在更新贴图集 %i / %i……",
|
||||
"UPDATING_UNISTORE": "正在更新 UniStore...",
|
||||
"VERSION": "版本"
|
||||
}
|
||||
@@ -0,0 +1,143 @@
|
||||
{
|
||||
"3DSX_IN_FOLDER": "Put 3DSX files in folder",
|
||||
"3DSX_IN_FOLDER_DESC": "If enabled, 3DSX files will be put in a folder with the same name instead of directly in the set folder.",
|
||||
"ACTION_CANCELED": "%s 取消!",
|
||||
"ACTION_FAILED": "%s 失敗。",
|
||||
"ACTION_REQUIRED": "Action required!",
|
||||
"ACTION_SUCCEEDED": "%s 成功!",
|
||||
"ACTIVE_THEME": "使用中主題",
|
||||
"ASCENDING": "遞增序",
|
||||
"ARGUMENT_INVALID": "Argument invalid.\nPlease check the xml file for proper arguments.",
|
||||
"AUTHOR": "作者",
|
||||
"AUTO_UPDATE_SETTINGS": "自動更新設定",
|
||||
"AUTO_UPDATE_SETTINGS_BTN": "自動更新設定...",
|
||||
"AUTO_UPDATE_UNISTORE": "自動更新 UniStore",
|
||||
"AUTO_UPDATE_UNISTORE_DESC": "With this, the last used UniStore will be updated automatically when launching Universal-Updater.",
|
||||
"AUTO_UPDATE_UU": "Auto-update Universal-Updater",
|
||||
"AUTO_UPDATE_UU_DESC": "When enabled, Universal-Updater will check for updates every time it's opened.",
|
||||
"AVAILABLE_DOWNLOADS": "可用下載",
|
||||
"BOOT_TITLE": "您想要開啓這個程式嗎?",
|
||||
"CATEGORY": "類別",
|
||||
"CHANGE_3DSX_PATH": "Change 3DSX path",
|
||||
"CHANGE_ARCHIVE_PATH": "Change archive path",
|
||||
"CHANGE_FIRM_PATH": "Change firm path",
|
||||
"CHANGE_NDS_PATH": "Change NDS path",
|
||||
"CHANGE_SHORTCUT_PATH": "改變捷徑",
|
||||
"CHECK_UNISTORE_UPDATES": "Checking for UniStore updates...",
|
||||
"CHECK_UU_UPDATES": "Checking for Universal-Updater updates...",
|
||||
"CONFIRM_OR_CANCEL": "Press to confirm, to cancel.",
|
||||
"CONNECT_WIFI": "Please Connect to WiFi.",
|
||||
"CONSOLE": "Console",
|
||||
"CONTRIBUTOR_TRANSLATORS": "- All Translators & Contributors",
|
||||
"COPYING": "Copying... %s / %s (%.2f%%)",
|
||||
"COPY_ERROR": "複製錯誤!",
|
||||
"CREATE_SHORTCUT": "您想要創建一個捷徑嗎?",
|
||||
"CREDITS": "鳴謝",
|
||||
"CURRENT_VERSION": "目前版本: ",
|
||||
"CURRENTLY_EXTRACTING": "Currently extracting:",
|
||||
"CUSTOM_FONT": "使用自訂字型",
|
||||
"CUSTOM_FONT_DESC": "If enabled, 'sdmc:/3ds/Universal-Updater/font.bcfnt' will be used instead of the system font, if found.",
|
||||
"DELETE_ERROR": "刪除出錯",
|
||||
"DELETE_PROMPT": "您確定要刪除此資料夾嗎?",
|
||||
"DELETE_UNNEEDED_FILE": "正在刪除不需要的檔案...",
|
||||
"DELETING": "刪除中...",
|
||||
"DESCENDING": "遞減序",
|
||||
"DIRECTION": "方向",
|
||||
"DIRECTORY_SETTINGS": "目錄設定",
|
||||
"DIRECTORY_SETTINGS_BTN": "目錄設定...",
|
||||
"DONE": "完成!",
|
||||
"DOWNLOAD_ERROR": "下載發生錯誤",
|
||||
"DOWNLOAD_FAILED": "下載失敗。",
|
||||
"DOWNLOAD_SPEED": "Speed: %lld KiB/s",
|
||||
"DOWNLOADING": "Downloading... %s / %s (%.2f%%)",
|
||||
"DOWNLOADING_COMPATIBLE_FONT": "Downloading compatible font...",
|
||||
"DOWNLOADING_SPRITE_SHEET": "Downloading Spritesheet...",
|
||||
"DOWNLOADING_SPRITE_SHEET2": "Downloading Spritesheet %i of %i...",
|
||||
"DOWNLOADING_UNIVERSAL_DB": "Downloading Universal-DB...",
|
||||
"DONLOADING_UNIVERSAL_UPDATER": "Downloading Universal-Updater...",
|
||||
"DOWNLOADING_UNISTORE": "Downloading UniStore...",
|
||||
"ENTER_DESC_SHORTCUT": "Enter the shortcut description.",
|
||||
"ENTER_SEARCH": "Enter what you like to search.",
|
||||
"ENTER_SHORTCUT_FILENAME": "Enter the shortcut filename (without extension).",
|
||||
"ENTER_TITLE_SHORTCUT": "Enter the shortcut title.",
|
||||
"ENTER_URL": "Enter the URL of the UniStore.",
|
||||
"ENTRIES": "Entries",
|
||||
"EXECUTE_ENTRY": "Would you like to execute this entry?",
|
||||
"EXIT_APP": "Exit Universal-Updater",
|
||||
"EXTRACTING": "Extracting... %s / %s (%.2f%%)",
|
||||
"EXTRACT_ERROR": "Extract error!",
|
||||
"FEATURE_SIDE_EFFECTS": "This Feature may have side effects while the Queue is running.\nAre you sure you want to continue?",
|
||||
"FETCHING_METADATA": "Fetching old metadata...",
|
||||
"FETCHING_RECOMMENDED_UNISTORES": "Fetching recommended UniStores...",
|
||||
"FILES": "File: %d / %d",
|
||||
"FILE_EXTRACTED": "file extracted.",
|
||||
"FILE_SLASH": "Seems like a '/' is included, which is not supported.\nPlease change 'file' to filename only.",
|
||||
"FILES_EXTRACTED": "files extracted.",
|
||||
"FILTER_TO": "Filter to:",
|
||||
"GITHUB": "Full credits can be found on GitHub",
|
||||
"GRID": "Grid",
|
||||
"GUI_SETTINGS": "GUI Settings",
|
||||
"GUI_SETTINGS_BTN": "GUI settings...",
|
||||
"INCLUDE_IN_RESULTS": "Include in results:",
|
||||
"INSTALLING": "Installing... %s / %s (%.2f%%)",
|
||||
"INSTALL_UNIVERSAL_UPDATER": "Installing Universal-Updater...",
|
||||
"INVALID_UNISTORE": "Invalid UniStore",
|
||||
"KEY_CONTINUE": "按任意鍵繼續。",
|
||||
"LANGUAGE": "語言",
|
||||
"LAST_UPDATED": "最後更新",
|
||||
"LICENSE": "授權協議",
|
||||
"LIST": "列表視圖",
|
||||
"LOADING_SCREENSHOT": "正在載入螢幕擷取畫面...",
|
||||
"LOADING_SPRITESHEET": "Loading Spritesheet %i of %i...",
|
||||
"MEDIATYPE_NAND": "MediaType NAND",
|
||||
"MEDIATYPE_SD": "MediaType SD",
|
||||
"MOVE_ERROR": "移動時發生錯誤!",
|
||||
"NO_DOWNLOADS_AVAILABLE": "無下載可用",
|
||||
"NO_LICENSE": "無授權",
|
||||
"NO_SCREENSHOTS_AVAILABLE": "No Screenshots available",
|
||||
"NOT_IMPLEMENTED": "尚未實現",
|
||||
"OP_COPYING": "Copying",
|
||||
"OP_DELETING": "刪除中",
|
||||
"OP_DOWNLOADING": "下載中",
|
||||
"OP_EXTRACTING": "抽取中",
|
||||
"OP_INSTALLING": "安裝中",
|
||||
"OP_MOVING": "正在移動",
|
||||
"OP_WAITING": "等待中",
|
||||
"QUEUE": "排程",
|
||||
"QUEUE_POSITION": "排程位置",
|
||||
"QUEUE_PROGRESS": "Step: %d / %d",
|
||||
"RECOMMENDED_UNISTORES": "Recommended UniStores",
|
||||
"REVISION": "修訂版本",
|
||||
"SCREENSHOT": "Screenshot %d / %d",
|
||||
"SCREENSHOT_COULD_NOT_LOAD": "無法載入螢幕擷取畫面",
|
||||
"SCREENSHOT_INSTRUCTIONS": "Press to change and to zoom",
|
||||
"SEARCH_FILTERS": "搜尋和過濾",
|
||||
"SELECT_DIR": "請選擇一個目錄",
|
||||
"SELECT_LANG": "選擇語言",
|
||||
"SELECT_UNISTORE": "Select UniStore",
|
||||
"SELECT_UNISTORE_2": "Select a UniStore",
|
||||
"SELECTION_QUEUE": "Add Selection to Queue",
|
||||
"SETTINGS": "設定",
|
||||
"SHEET_SLASH": "Seems like a '/' is included, which is not supported.\nPlease change 'sheet' to filename only.",
|
||||
"SHORTCUT_CREATED": "捷徑已建立",
|
||||
"SIZE": "容量",
|
||||
"SORT_BY": "排序依據",
|
||||
"SORTING": "分類中",
|
||||
"START_SELECT": "Press START to select the current folder",
|
||||
"STORE_INFO": "Store Info",
|
||||
"SYNTAX_ERROR": "語法錯誤!",
|
||||
"THEME_DEFAULT": "預設值",
|
||||
"TITLE": "標題",
|
||||
"TOP_STYLE": "Top Style",
|
||||
"UNISTORE_BG": "Use UniStore BG",
|
||||
"UNISTORE_BG_DESC": "When enabled, the UniStore's provided BG will be shown instead of the solid BG color for the top screen.",
|
||||
"UNISTORE_INVALID_ERROR": "This UniStore is invalid and cannot be\nloaded with Universal-Updater.\nMaybe check if there are any Syntax errors?",
|
||||
"UNISTORE_TOO_NEW": "Your version of Universal-Updater is\ntoo old to use this UniStore.\nPlease update to the latest version.",
|
||||
"UNISTORE_TOO_OLD": "This UniStore is outdated and cannot be used\nwith this version of Universal-Updater.\nPlease ask the creator to update it.",
|
||||
"UPDATE_AVAILABLE": "Update Available!",
|
||||
"UPDATE_DONE": "Update done! Please re-open Universal-Updater.",
|
||||
"UPDATING_SPRITE_SHEET": "Updating Spritesheet...",
|
||||
"UPDATING_SPRITE_SHEET2": "Updating Spritesheet %i of %i...",
|
||||
"UPDATING_UNISTORE": "Updating UniStore...",
|
||||
"VERSION": "Version"
|
||||
}
|
||||
+24
-13
@@ -85,10 +85,8 @@ static const std::vector<std::string> mainStrings = { "LANGUAGE", "SELECT_UNISTO
|
||||
static const std::vector<std::string> dirStrings = { "CHANGE_3DSX_PATH", "3DSX_IN_FOLDER", "CHANGE_NDS_PATH", "CHANGE_ARCHIVE_PATH", "CHANGE_SHORTCUT_PATH", "CHANGE_FIRM_PATH" };
|
||||
|
||||
/* Note: Украïнська is spelled using a latin i with dieresis to work in the system font */
|
||||
//static const std::vector<std::string> languages = { "Bruh", "Dansk", "Deutsch", "English", "Español", "Français", "Italiano", "Lietuvių", "Magyar", "Polski", "Português", "Português (Brasil)", "Русский", "Украïнська", "日本語" };
|
||||
//static const std::string langsTemp[] = { "br", "da", "de", "en", "es", "fr", "it", "lt", "hu", "pl", "pt", "pt-BR", "ru", "uk", "jp"};
|
||||
static const std::vector<std::string> languages = { "Bruh", "Deutsch", "English", "Español", "Français", "Italiano", "Magyar", "Polski", "Português", "Português (Brasil)", "Русский", "Украïнська", "日本語" };
|
||||
static const std::string langsTemp[] = { "br", "de", "en", "es", "fr", "it", "hu", "pl", "pt", "pt-BR", "ru", "uk", "jp"};
|
||||
static const std::vector<std::string> languages = { "Bruh", "Deutsch", "English", "Español", "Français", "Italiano", /* "Lietuvių", */ "Magyar", /* "Nederlands", */ "Polski", "Português", "Português (Brasil)", "Русский", "Украïнська", /* "עברית", */ "中文 (简体)", "中文 (繁體)", "日本語", /* "한국어" */ };
|
||||
static const std::string langsTemp[] = { "br", "de", "en", "es", "fr", "it", /* "lt", */ "hu", /* "nl", */ "pl", "pt", "pt-BR", "ru", "uk", /* "he", */ "zh-CN", "zh-TW", "jp", /* "ko" */ };
|
||||
|
||||
static const std::vector<std::string> ThemeNames = { "THEME_DEFAULT", "Stack" };
|
||||
|
||||
@@ -578,10 +576,14 @@ static void LanguageLogic(int &page, int &selection, int &sPos) {
|
||||
if (hDown & KEY_A) {
|
||||
const std::string l = langsTemp[selection];
|
||||
|
||||
/* Check if is "uk". */
|
||||
if (l == "uk") {
|
||||
if (access("sdmc:/3ds/Universal-Updater/font.bcfnt", F_OK) != 0) {
|
||||
ScriptUtils::downloadFile("https://github.com/Universal-Team/extras/raw/master/files/universal-updater.bcfnt", "sdmc:/3ds/Universal-Updater/font.bcfnt", Lang::get("DOWNLOADING_COMPATIBLE_FONT"));
|
||||
/* Check if language needs a custom font. */
|
||||
u8 region;
|
||||
CFGU_SecureInfoGetRegion(®ion);
|
||||
if (l == "uk" || (l == "zh-CN" && region != CFG_REGION_CHN) || (l == "zh-TW" && region != CFG_REGION_TWN)) {
|
||||
if (access("sdmc:/3ds/Universal-Updater/font.bcfnt", F_OK) != 0 || config->downloadedFont() != l) {
|
||||
ScriptUtils::downloadFile("https://github.com/Universal-Team/extras/raw/master/files/" + l + ".bcfnt", "sdmc:/3ds/Universal-Updater/font.bcfnt", Lang::get("DOWNLOADING_COMPATIBLE_FONT"), true);
|
||||
config->downloadedFont(l);
|
||||
Init::UnloadFont();
|
||||
}
|
||||
|
||||
config->customfont(true);
|
||||
@@ -601,10 +603,14 @@ static void LanguageLogic(int &page, int &selection, int &sPos) {
|
||||
if (i + sPos < (int)languages.size()) {
|
||||
const std::string l = langsTemp[i + sPos];
|
||||
|
||||
/* Check if is "uk". */
|
||||
if (l == "uk") {
|
||||
if (access("sdmc:/3ds/Universal-Updater/font.bcfnt", F_OK) != 0) {
|
||||
ScriptUtils::downloadFile("https://github.com/Universal-Team/extras/raw/master/files/universal-updater.bcfnt", "sdmc:/3ds/Universal-Updater/font.bcfnt", Lang::get("DOWNLOADING_COMPATIBLE_FONT"));
|
||||
/* Check if language needs a custom font. */
|
||||
u8 region;
|
||||
CFGU_SecureInfoGetRegion(®ion);
|
||||
if (l == "uk" || (l == "zh-CN" && region != CFG_REGION_CHN) || (l == "zh-TW" && region != CFG_REGION_TWN)) {
|
||||
if (access("sdmc:/3ds/Universal-Updater/font.bcfnt", F_OK) != 0 || config->downloadedFont() != l) {
|
||||
ScriptUtils::downloadFile("https://github.com/Universal-Team/extras/raw/master/files/" + l + ".bcfnt", "sdmc:/3ds/Universal-Updater/font.bcfnt", Lang::get("DOWNLOADING_COMPATIBLE_FONT"), true);
|
||||
config->downloadedFont(l);
|
||||
Init::UnloadFont();
|
||||
}
|
||||
|
||||
config->customfont(true);
|
||||
@@ -624,8 +630,13 @@ static void LanguageLogic(int &page, int &selection, int &sPos) {
|
||||
if (hDown & KEY_TOUCH) {
|
||||
if (touching(touch, langButtons[6])) {
|
||||
/* Download Font. */
|
||||
ScriptUtils::downloadFile("https://github.com/Universal-Team/extras/raw/master/files/universal-updater.bcfnt", "sdmc:/3ds/Universal-Updater/font.bcfnt", Lang::get("DOWNLOADING_COMPATIBLE_FONT"), true);
|
||||
std::string l = config->language();
|
||||
if(l != "uk" && l != "zh-CN" && l != "zh-TW")
|
||||
l = "uk";
|
||||
ScriptUtils::downloadFile("https://github.com/Universal-Team/extras/raw/master/files/" + l + ".bcfnt", "sdmc:/3ds/Universal-Updater/font.bcfnt", Lang::get("DOWNLOADING_COMPATIBLE_FONT"), true);
|
||||
config->downloadedFont(l);
|
||||
config->customfont(true);
|
||||
Init::UnloadFont();
|
||||
Init::LoadFont();
|
||||
}
|
||||
}
|
||||
|
||||
+37
-30
@@ -27,6 +27,7 @@
|
||||
#include "common.hpp"
|
||||
#include "config.hpp"
|
||||
#include "json.hpp"
|
||||
#include "scriptUtils.hpp"
|
||||
#include <string>
|
||||
#include <unistd.h>
|
||||
|
||||
@@ -39,59 +40,55 @@ void Config::sysLang() {
|
||||
|
||||
switch(language) {
|
||||
case 0:
|
||||
this->language("jp");
|
||||
this->language("jp"); // Japanese
|
||||
break;
|
||||
|
||||
case 1:
|
||||
this->language("en");
|
||||
this->language("en"); // English
|
||||
break;
|
||||
|
||||
case 2:
|
||||
this->language("fr");
|
||||
this->language("fr"); // French
|
||||
break;
|
||||
|
||||
case 3:
|
||||
this->language("de");
|
||||
this->language("de"); // German
|
||||
break;
|
||||
|
||||
case 4:
|
||||
this->language("it");
|
||||
this->language("it"); // Italian
|
||||
break;
|
||||
|
||||
case 5:
|
||||
this->language("es");
|
||||
break;
|
||||
|
||||
/*
|
||||
case 6:
|
||||
this->language("sc"); //simplified chinese
|
||||
break;
|
||||
|
||||
case 7:
|
||||
this->language("kr") //korean
|
||||
break;
|
||||
*/
|
||||
|
||||
case 8:
|
||||
this->language("nl");
|
||||
this->language("es"); // Spanish
|
||||
break;
|
||||
|
||||
case 6:
|
||||
this->language("zh-CN"); // Chinese (Simplified)
|
||||
break;
|
||||
|
||||
// case 7:
|
||||
// this->language("ko"); // Korean
|
||||
// break;
|
||||
|
||||
// case 8:
|
||||
// this->language("nl"); // Dutch
|
||||
// break;
|
||||
|
||||
case 9:
|
||||
this->language("pt");
|
||||
this->language("pt"); // Portuguese
|
||||
break;
|
||||
|
||||
case 10:
|
||||
this->language("ru");
|
||||
this->language("ru"); // Russian
|
||||
break;
|
||||
|
||||
/*
|
||||
|
||||
case 11:
|
||||
this->language("tc") //traditional chinese
|
||||
this->language("zh-TW"); // Chinese (Traditional)
|
||||
break;
|
||||
*/
|
||||
|
||||
default:
|
||||
this->language("en"); //for Simplified chinese (6), korean (7) and traditional chinese (11), which are not translated. also in case something goes wrong
|
||||
this->language("en"); // Fall back to English if missing
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -121,13 +118,11 @@ Config::Config() {
|
||||
/* Let us create a new one. */
|
||||
if (!this->json.contains("Version")) this->initialize();
|
||||
|
||||
if (!this->json.contains("Language")) this->sysLang();
|
||||
else this->language(this->getString("Language"));
|
||||
|
||||
if (this->json.contains("LastStore")) this->lastStore(this->getString("LastStore"));
|
||||
if (this->json.contains("List")) this->list(this->getBool("List"));
|
||||
if (this->json.contains("AutoUpdate")) this->autoupdate(this->getBool("AutoUpdate"));
|
||||
if (this->json.contains("_3DSX_Path")) this->_3dsxPath(this->getString("_3DSX_Path"));
|
||||
if (this->json.contains("_3DSX_InFolder")) this->_3dsxInFolder(this->getBool("_3DSX_InFolder"));
|
||||
if (this->json.contains("NDS_Path")) this->ndsPath(this->getString("NDS_Path"));
|
||||
if (this->json.contains("Archive_Path")) this->archPath(this->getString("Archive_Path"));
|
||||
if (this->json.contains("Firm_Path")) this->firmPath(this->getString("Firm_Path"));
|
||||
@@ -135,11 +130,21 @@ Config::Config() {
|
||||
if (this->json.contains("UpdateCheck")) this->updatecheck(this->getBool("UpdateCheck"));
|
||||
if (this->json.contains("UseBG")) this->usebg(this->getBool("UseBG"));
|
||||
if (this->json.contains("CustomFont")) this->customfont(this->getBool("CustomFont"));
|
||||
if (this->json.contains("DownloadedFont")) this->downloadedFont(this->getString("DownloadedFont"));
|
||||
if (this->json.contains("Shortcut_Path")) this->shortcut(this->getString("Shortcut_Path"));
|
||||
if (this->json.contains("Display_Changelog")) this->changelog(this->getBool("Display_Changelog"));
|
||||
if (this->json.contains("Active_Theme")) this->theme(this->getInt("Active_Theme"));
|
||||
if (this->json.contains("Prompt")) this->prompt(this->getBool("Prompt"));
|
||||
|
||||
if (!this->json.contains("Language")) {
|
||||
this->sysLang();
|
||||
if((this->language() == "zh-CN" || this->language() == "zh-TW") && (access("sdmc:/3ds/Universal-Updater/font.bcfnt", F_OK) != 0 || this->downloadedFont() != this->language())) {
|
||||
ScriptUtils::downloadFile("https://github.com/Universal-Team/extras/raw/master/files/" + this->language() + ".bcfnt", "sdmc:/3ds/Universal-Updater/font.bcfnt", "Downloading compatible font...", true);
|
||||
this->downloadedFont(this->language());
|
||||
this->customfont(true);
|
||||
}
|
||||
} else this->language(this->getString("Language"));
|
||||
|
||||
this->changesMade = false; // No changes made yet.
|
||||
}
|
||||
|
||||
@@ -155,6 +160,7 @@ void Config::save() {
|
||||
this->setBool("List", this->list());
|
||||
this->setBool("AutoUpdate", this->autoupdate());
|
||||
this->setString("_3DSX_Path", this->_3dsxPath());
|
||||
this->setBool("_3DSX_InFolder", this->_3dsxInFolder());
|
||||
this->setString("NDS_Path", this->ndsPath());
|
||||
this->setString("Archive_Path", this->archPath());
|
||||
this->setString("Firm_Path", this->firmPath());
|
||||
@@ -162,6 +168,7 @@ void Config::save() {
|
||||
this->setBool("UpdateCheck", this->updatecheck());
|
||||
this->setBool("UseBG", this->usebg());
|
||||
this->setBool("CustomFont", this->customfont());
|
||||
this->setString("DownloadedFont", this->downloadedFont());
|
||||
this->setString("Shortcut_Path", this->shortcut());
|
||||
this->setBool("Display_Changelog", this->changelog());
|
||||
this->setInt("Active_Theme", this->theme());
|
||||
|
||||
Reference in New Issue
Block a user