Updated language handling for latest libnx. Added support for SetLanguage_ZHHANS/SetLanguage_ZHHANT, and changed STR_ZH/STR_TW to STR_ZH_HANS/STR_ZH_HANT (system-language is still not actually used).
This commit is contained in:
parent
97ab367379
commit
2feb085504
@ -7,12 +7,12 @@
|
||||
#define STR_DE(_str) [SetLanguage_DE] = _str
|
||||
#define STR_IT(_str) [SetLanguage_IT] = _str
|
||||
#define STR_ES(_str) [SetLanguage_ES] = _str, [SetLanguage_ES419] = _str
|
||||
#define STR_ZH(_str) [SetLanguage_ZHCN] = _str
|
||||
#define STR_ZH_HANS(_str) [SetLanguage_ZHCN] = _str, [SetLanguage_ZHHANS] = _str
|
||||
#define STR_KO(_str) [SetLanguage_KO] = _str
|
||||
#define STR_NL(_str) [SetLanguage_NL] = _str
|
||||
#define STR_PT(_str) [SetLanguage_PT] = _str
|
||||
#define STR_RU(_str) [SetLanguage_RU] = _str
|
||||
#define STR_TW(_str) [SetLanguage_ZHTW] = _str
|
||||
#define STR_ZH_HANT(_str) [SetLanguage_ZHTW] = _str, [SetLanguage_ZHHANT] = _str
|
||||
#else
|
||||
#define STR_JP(_str) [0] = _str
|
||||
#define STR_EN(_str) [1] = _str
|
||||
@ -20,15 +20,15 @@
|
||||
#define STR_DE(_str) [3] = _str
|
||||
#define STR_IT(_str) [4] = _str
|
||||
#define STR_ES(_str) [5] = _str
|
||||
#define STR_ZH(_str) [6] = _str
|
||||
#define STR_ZH_HANS(_str) [6] = _str
|
||||
#define STR_KO(_str) [7] = _str
|
||||
#define STR_NL(_str) [8] = _str
|
||||
#define STR_PT(_str) [9] = _str
|
||||
#define STR_RU(_str) [10] = _str
|
||||
#define STR_TW(_str) [11] = _str
|
||||
#define STR_ZH_HANT(_str) [11] = _str
|
||||
#endif
|
||||
|
||||
const char* const g_strings[StrId_Max][16] =
|
||||
const char* const g_strings[StrId_Max][17] =
|
||||
{
|
||||
[StrId_Loading] =
|
||||
{
|
||||
@ -42,8 +42,8 @@ const char* const g_strings[StrId_Max][16] =
|
||||
STR_NL("Laden…"),
|
||||
STR_KO("로딩중…"),
|
||||
STR_RU("загрузка…"),
|
||||
STR_ZH("加载中…"),
|
||||
STR_TW("加載中…"),
|
||||
STR_ZH_HANS("加载中…"),
|
||||
STR_ZH_HANT("加載中…"),
|
||||
},
|
||||
|
||||
[StrId_AppletMode] =
|
||||
@ -64,8 +64,8 @@ const char* const g_strings[StrId_Max][16] =
|
||||
STR_NL("Map"),
|
||||
STR_KO("디렉토리"),
|
||||
STR_RU("каталог"),
|
||||
STR_ZH("目录"),
|
||||
STR_TW("資料夾"),
|
||||
STR_ZH_HANS("目录"),
|
||||
STR_ZH_HANT("資料夾"),
|
||||
},
|
||||
|
||||
/*[StrId_DefaultLongTitle] =
|
||||
@ -80,8 +80,8 @@ const char* const g_strings[StrId_Max][16] =
|
||||
STR_NL("Homebrew toepassing"),
|
||||
STR_KO("홈브류 애플리케이션"),
|
||||
STR_RU("приложение хомебреw"),
|
||||
STR_ZH("自制应用程序"),
|
||||
STR_TW("自製程式"),
|
||||
STR_ZH_HANS("自制应用程序"),
|
||||
STR_ZH_HANT("自製程式"),
|
||||
},*/
|
||||
|
||||
[StrId_DefaultPublisher] =
|
||||
@ -96,8 +96,8 @@ const char* const g_strings[StrId_Max][16] =
|
||||
STR_NL("Auteur onbekend"),
|
||||
STR_KO("알 수 없는 개발자"),
|
||||
STR_RU("неизвестный автор"),
|
||||
STR_ZH("未知作者"),
|
||||
STR_TW("作者不詳"),
|
||||
STR_ZH_HANS("未知作者"),
|
||||
STR_ZH_HANT("作者不詳"),
|
||||
},
|
||||
|
||||
[StrId_IOError] =
|
||||
@ -112,8 +112,8 @@ const char* const g_strings[StrId_Max][16] =
|
||||
STR_NL("I/O Fout"),
|
||||
STR_KO("입출력 오류"),
|
||||
STR_RU("I/O-ошибка"),
|
||||
STR_ZH("读写出错"),
|
||||
STR_TW("讀寫錯誤"),
|
||||
STR_ZH_HANS("读写出错"),
|
||||
STR_ZH_HANT("讀寫錯誤"),
|
||||
},
|
||||
|
||||
[StrId_CouldNotOpenFile] =
|
||||
@ -128,8 +128,8 @@ const char* const g_strings[StrId_Max][16] =
|
||||
STR_NL("Kan bestand niet openen:\n%s"),
|
||||
STR_KO("파일을 열 수 없습니다:\n%s"),
|
||||
STR_RU("Не могу открыть файл:\n%s"),
|
||||
STR_ZH("无法打开文件:\n%s"),
|
||||
STR_TW("開啓檔案失敗:\n%s"),
|
||||
STR_ZH_HANS("无法打开文件:\n%s"),
|
||||
STR_ZH_HANT("開啓檔案失敗:\n%s"),
|
||||
},
|
||||
|
||||
[StrId_NoAppsFound_Title] =
|
||||
@ -144,8 +144,8 @@ const char* const g_strings[StrId_Max][16] =
|
||||
STR_NL("Geen toepassingen gevonden"),
|
||||
STR_KO("애플리케이션을 찾을 수 없습니다"),
|
||||
STR_RU("приложение не найдено"),
|
||||
STR_ZH("找不到可执行的自制程序"),
|
||||
STR_TW("未能找到可執行的自製程式"),
|
||||
STR_ZH_HANS("找不到可执行的自制程序"),
|
||||
STR_ZH_HANT("未能找到可執行的自製程式"),
|
||||
},
|
||||
|
||||
[StrId_NoAppsFound_Msg] =
|
||||
@ -205,12 +205,12 @@ const char* const g_strings[StrId_Max][16] =
|
||||
"Убедитесь, что на карте SD есть каталог с\n"
|
||||
"названием switch и она содержит приложения."
|
||||
),
|
||||
STR_ZH(
|
||||
STR_ZH_HANS(
|
||||
"内存卡找不到任何可执行的应用程序。\n"
|
||||
"请在内存卡的根目录建立「switch」子目录,\n"
|
||||
"并存放自制应用软件至该目录。"
|
||||
),
|
||||
STR_TW(
|
||||
STR_ZH_HANT(
|
||||
"記憶體找不到任何可執行的應用程式。\n"
|
||||
"請在記憶體建立「switch」資料夾,\n"
|
||||
"然後儲存自製軟體到此處。"
|
||||
@ -225,7 +225,7 @@ const char* const g_strings[StrId_Max][16] =
|
||||
STR_FR("La dernière application a retourné une erreur:"),
|
||||
STR_JP("直前に実行したアプリでエラーが発生しました:"),
|
||||
STR_KO("최근 애플리케이션에서 오류가 발생했습니다:"),
|
||||
STR_TW("程式執行時發生錯誤:"),
|
||||
STR_ZH_HANT("程式執行時發生錯誤:"),
|
||||
},
|
||||
|
||||
[StrId_AppLaunchError] =
|
||||
@ -247,8 +247,8 @@ const char* const g_strings[StrId_Max][16] =
|
||||
STR_NL("Auteur"),
|
||||
STR_KO("개발자"),
|
||||
STR_RU("автор"),
|
||||
STR_ZH("作者"),
|
||||
STR_TW("作者"),
|
||||
STR_ZH_HANS("作者"),
|
||||
STR_ZH_HANT("作者"),
|
||||
},
|
||||
|
||||
[StrId_AppInfo_Version] =
|
||||
@ -263,8 +263,8 @@ const char* const g_strings[StrId_Max][16] =
|
||||
STR_NL("Versie"),
|
||||
STR_KO("버전"),
|
||||
STR_RU("Версия"),
|
||||
STR_ZH("版"),
|
||||
STR_TW("版"),
|
||||
STR_ZH_HANS("版"),
|
||||
STR_ZH_HANT("版"),
|
||||
},
|
||||
|
||||
[StrId_Actions_Launch] =
|
||||
@ -279,8 +279,8 @@ const char* const g_strings[StrId_Max][16] =
|
||||
STR_NL("Lancering"),
|
||||
STR_KO("실행"),
|
||||
STR_RU("запуск"),
|
||||
STR_ZH("发射"),
|
||||
STR_TW("啟動"),
|
||||
STR_ZH_HANS("发射"),
|
||||
STR_ZH_HANT("啟動"),
|
||||
},
|
||||
|
||||
[StrId_Actions_Open] =
|
||||
@ -295,8 +295,8 @@ const char* const g_strings[StrId_Max][16] =
|
||||
STR_NL("Open"),
|
||||
STR_KO("열기"),
|
||||
STR_RU("открыто"),
|
||||
STR_ZH("打开"),
|
||||
STR_TW("開啟"),
|
||||
STR_ZH_HANS("打开"),
|
||||
STR_ZH_HANT("開啟"),
|
||||
},
|
||||
|
||||
[StrId_Actions_Back] =
|
||||
@ -311,8 +311,8 @@ const char* const g_strings[StrId_Max][16] =
|
||||
STR_NL("Terug"),
|
||||
STR_KO("뒤로 가기"),
|
||||
STR_RU("возвращаться"),
|
||||
STR_ZH("回去"),
|
||||
STR_TW("回去"),
|
||||
STR_ZH_HANS("回去"),
|
||||
STR_ZH_HANT("回去"),
|
||||
},
|
||||
|
||||
[StrId_MsgBox_OK] =
|
||||
@ -323,7 +323,7 @@ const char* const g_strings[StrId_Max][16] =
|
||||
STR_ES("Aceptar"),
|
||||
STR_JP("了解"),
|
||||
STR_KO("확인"),
|
||||
STR_TW("確認"),
|
||||
STR_ZH_HANT("確認"),
|
||||
},
|
||||
|
||||
[StrId_Actions_Apply] =
|
||||
@ -334,7 +334,7 @@ const char* const g_strings[StrId_Max][16] =
|
||||
STR_ES("Aplicar"),
|
||||
STR_JP("適用"),
|
||||
STR_KO("적용"),
|
||||
STR_TW("应用"),
|
||||
STR_ZH_HANT("应用"),
|
||||
},
|
||||
|
||||
[StrId_Actions_Star] =
|
||||
@ -357,7 +357,7 @@ const char* const g_strings[StrId_Max][16] =
|
||||
STR_ES("Menú temático"),
|
||||
STR_JP("テーマメニュー"),
|
||||
STR_KO("테마 메뉴"),
|
||||
STR_TW("主题菜单"),
|
||||
STR_ZH_HANT("主题菜单"),
|
||||
},
|
||||
|
||||
[StrId_ThemeNotApplied] =
|
||||
@ -368,7 +368,7 @@ const char* const g_strings[StrId_Max][16] =
|
||||
STR_ES("El tema no se pudo aplicar porque se ha producido un error."),
|
||||
STR_JP("エラーが発生したため、テーマを適用できませんでした。"),
|
||||
STR_KO("오류가 발생 했기 때문에 테마를 적용할 수 없습니다."),
|
||||
STR_TW("由于发生错误, 无法应用主题。"),
|
||||
STR_ZH_HANT("由于发生错误, 无法应用主题。"),
|
||||
},
|
||||
|
||||
[StrId_DefaultThemeName] =
|
||||
@ -441,13 +441,13 @@ const char* const g_strings[StrId_Max][16] =
|
||||
" \xEE\x80\x80 Перезагрузите\n"
|
||||
" \xEE\x80\x81 Отмена"
|
||||
),
|
||||
STR_ZH(
|
||||
STR_ZH_HANS(
|
||||
"无法返回至主机的 \xEE\x81\xB3HOME 菜单。\n"
|
||||
"您需要重新启动您的 3DS 设备。\n\n"
|
||||
" \xEE\x80\x80 重启设备\n"
|
||||
" \xEE\x80\x81 取消操作"
|
||||
),
|
||||
STR_TW(
|
||||
STR_ZH_HANT(
|
||||
"無法返回至主機的 \xEE\x81\xB3HOME 選單。\n"
|
||||
"您需要重新啓動您的 3DS 設備。\n\n"
|
||||
" \xEE\x80\x80 重啓設備\n"
|
||||
@ -517,13 +517,13 @@ const char* const g_strings[StrId_Max][16] =
|
||||
" \xEE\x80\x81 Отмена\n"
|
||||
" \xEE\x80\x82 Перезагрузите"
|
||||
),
|
||||
STR_ZH(
|
||||
STR_ZH_HANS(
|
||||
"您即将返回到主機的 \xEE\x81\xB3HOME 菜单。\n\n"
|
||||
" \xEE\x80\x80 确认返回\n"
|
||||
" \xEE\x80\x81 取消操作\n"
|
||||
" \xEE\x80\x82 重启设备"
|
||||
),
|
||||
STR_TW(
|
||||
STR_ZH_HANT(
|
||||
"您即將返回到主機的 \xEE\x81\xB3HOME 選單。\n\n"
|
||||
" \xEE\x80\x80 確認返回\n"
|
||||
" \xEE\x80\x81 取消操作\n"
|
||||
@ -543,8 +543,8 @@ const char* const g_strings[StrId_Max][16] =
|
||||
STR_NL("Titel selector"),
|
||||
STR_KO("타이틀 선택기"),
|
||||
STR_RU("Селектор заголовков"),
|
||||
STR_ZH("应用启动器"),
|
||||
STR_TW("自製程式啓動器"),
|
||||
STR_ZH_HANS("应用启动器"),
|
||||
STR_ZH_HANT("自製程式啓動器"),
|
||||
},
|
||||
|
||||
[StrId_ErrorReadingTitleMetadata] =
|
||||
@ -562,8 +562,8 @@ const char* const g_strings[StrId_Max][16] =
|
||||
STR_NL("Fout bij het lezen van titel metadata.\n%08lX%08lX@%d"),
|
||||
STR_KO("타이틀 메타데이터를 읽는데 실패하였습니다.\n%08lX%08lX@%d"),
|
||||
STR_RU("Ошибка чтения метаданных заголовка\n.%08lX%08lX@%d"),
|
||||
STR_ZH("读取软件相关信息时发生错误:\n%08lX%08lX@%d"),
|
||||
STR_TW("讀取軟體相關數據時發生錯誤:\n%08lX%08lX@%d"),
|
||||
STR_ZH_HANS("读取软件相关信息时发生错误:\n%08lX%08lX@%d"),
|
||||
STR_ZH_HANT("讀取軟體相關數據時發生錯誤:\n%08lX%08lX@%d"),
|
||||
},
|
||||
|
||||
[StrId_NoTitlesFound] =
|
||||
@ -578,8 +578,8 @@ const char* const g_strings[StrId_Max][16] =
|
||||
STR_NL("Geen titels gevonden."),
|
||||
STR_KO("타이틀을 찾을 수 없습니다."),
|
||||
STR_RU("Заголовки не обнаружены"),
|
||||
STR_ZH("主机内找不到任何软件。"),
|
||||
STR_TW("主機内找不到任何軟體。"),
|
||||
STR_ZH_HANS("主机内找不到任何软件。"),
|
||||
STR_ZH_HANT("主機内找不到任何軟體。"),
|
||||
},
|
||||
|
||||
[StrId_SelectTitle] =
|
||||
@ -634,12 +634,12 @@ const char* const g_strings[StrId_Max][16] =
|
||||
" \xEE\x80\x80 Выберите\n"
|
||||
" \xEE\x80\x81 Отмена"
|
||||
),
|
||||
STR_ZH(
|
||||
STR_ZH_HANS(
|
||||
"请选择一个目标软件。\n\n"
|
||||
" \xEE\x80\x80 确认\n"
|
||||
" \xEE\x80\x81 取消"
|
||||
),
|
||||
STR_TW(
|
||||
STR_ZH_HANT(
|
||||
"請選擇一個目標軟體。\n\n"
|
||||
" \xEE\x80\x80 確認\n"
|
||||
" \xEE\x80\x81 取消"
|
||||
@ -698,12 +698,12 @@ const char* const g_strings[StrId_Max][16] =
|
||||
"приложений под целевыми заголовками.\n"
|
||||
"Пожалуйста, используйте другой эксплойт."
|
||||
),
|
||||
STR_ZH(
|
||||
STR_ZH_HANS(
|
||||
"您所利用漏洞启动的「自制软件启动器」,\n"
|
||||
"无法在当前选中的软件中启动自制软件。\n"
|
||||
"请使用其它的漏洞来启动「自制软件启动器」。"
|
||||
),
|
||||
STR_TW(
|
||||
STR_ZH_HANT(
|
||||
"您所利用漏洞開啓的「自製軟體啓動器」\n"
|
||||
"無法在當前選中的軟體啓動自製軟件。\n"
|
||||
"請利用其它漏洞來啓動「自製軟體啓動器」。"
|
||||
@ -752,11 +752,11 @@ const char* const g_strings[StrId_Max][16] =
|
||||
"Для приложения требуется зависимость,\n"
|
||||
"которая не установлена."
|
||||
),
|
||||
STR_ZH(
|
||||
STR_ZH_HANS(
|
||||
"主机找不到该应用程序\n"
|
||||
"所需求的软件。"
|
||||
),
|
||||
STR_TW(
|
||||
STR_ZH_HANT(
|
||||
"主機找不到該應用程式\n"
|
||||
"所需求的軟體。"
|
||||
),
|
||||
@ -774,8 +774,8 @@ const char* const g_strings[StrId_Max][16] =
|
||||
STR_NL("netwerk lader"),
|
||||
STR_KO("네트워크 로더"),
|
||||
STR_RU("Загрузчик"),
|
||||
STR_ZH("网络执行模块"),
|
||||
STR_TW("網路執行模組"),
|
||||
STR_ZH_HANS("网络执行模块"),
|
||||
STR_ZH_HANT("網路執行模組"),
|
||||
},
|
||||
|
||||
[StrId_NetLoaderUnavailable] =
|
||||
@ -790,8 +790,8 @@ const char* const g_strings[StrId_Max][16] =
|
||||
STR_NL("De netwerk lader is niet beschikbaar."),
|
||||
STR_KO("현재 네트워크 로더는 사용이 불가합니다."),
|
||||
STR_RU("Загрузчик в настоящее время недоступен."),
|
||||
STR_ZH("无法启动 nxlink 网络执行模块。"),
|
||||
STR_TW("無法啓動 nxlink 網路執行模組。"),
|
||||
STR_ZH_HANS("无法启动 nxlink 网络执行模块。"),
|
||||
STR_ZH_HANT("無法啓動 nxlink 網路執行模組。"),
|
||||
},
|
||||
|
||||
[StrId_NetLoaderError] =
|
||||
@ -806,8 +806,8 @@ const char* const g_strings[StrId_Max][16] =
|
||||
STR_NL("Er is een fout opgetreden\nTechnische details: [%s:%d]"),
|
||||
STR_KO("오류가 발생했습니다.\n기술적인 세부사항: [%s:%d]"),
|
||||
STR_RU("Произошла ошибка.\nТехнические подробности: [%s:%d]"),
|
||||
STR_ZH("发生错误。\n详细错误信息:[%s:%d]"),
|
||||
STR_TW("發生錯誤。\n詳細錯誤資訊:[%s:%d]"),
|
||||
STR_ZH_HANS("发生错误。\n详细错误信息:[%s:%d]"),
|
||||
STR_ZH_HANT("發生錯誤。\n詳細錯誤資訊:[%s:%d]"),
|
||||
},
|
||||
|
||||
[StrId_NetLoaderOffline] =
|
||||
@ -818,8 +818,8 @@ const char* const g_strings[StrId_Max][16] =
|
||||
STR_IT("Disconnesso, in attesa della connessione…"),
|
||||
STR_JP("オフラインです。ネットワーク接続を待っています…"),
|
||||
STR_KO("연결 끊김, 네트워크 기다리는 중…"),
|
||||
STR_ZH("无法连接网络,等待网络连接…"),
|
||||
STR_TW("當前離線,等待網路連線…"),
|
||||
STR_ZH_HANS("无法连接网络,等待网络连接…"),
|
||||
STR_ZH_HANT("當前離線,等待網路連線…"),
|
||||
},
|
||||
|
||||
[StrId_NetLoaderActive] =
|
||||
@ -864,11 +864,11 @@ const char* const g_strings[StrId_Max][16] =
|
||||
"Ожидание подключения nxlink…\n"
|
||||
"айпи адрес: %lu.%lu.%lu.%lu, Порт: %d"
|
||||
),
|
||||
STR_ZH(
|
||||
STR_ZH_HANS(
|
||||
"等待 nxlink 连接…\n"
|
||||
"IP 地址:%lu.%lu.%lu.%lu,端口:%d"
|
||||
),
|
||||
STR_TW(
|
||||
STR_ZH_HANT(
|
||||
"等待 nxlink 連接…\n"
|
||||
"IP 位址:%lu.%lu.%lu.%lu,連接埠:%d"
|
||||
),
|
||||
@ -916,11 +916,11 @@ const char* const g_strings[StrId_Max][16] =
|
||||
"Передача…\n"
|
||||
"%zu из %zu КИБ написано"
|
||||
),
|
||||
STR_ZH(
|
||||
STR_ZH_HANS(
|
||||
"正在传输…\n"
|
||||
"已完成 %zu / %zu KiB"
|
||||
),
|
||||
STR_TW(
|
||||
STR_ZH_HANT(
|
||||
"正在傳輸…\n"
|
||||
"已完成 %zu / %zu KiB"
|
||||
),
|
||||
|
@ -54,5 +54,5 @@ typedef enum
|
||||
StrId_Max,
|
||||
} StrId;
|
||||
|
||||
extern const char* const g_strings[StrId_Max][16];
|
||||
extern const char* const g_strings[StrId_Max][17];
|
||||
|
||||
|
@ -10,14 +10,14 @@ static int s_textLang = 1;
|
||||
|
||||
Result textInit(void) {
|
||||
#ifdef __SWITCH__
|
||||
s32 Language=0;
|
||||
SetLanguage Language=SetLanguage_ENUS;
|
||||
|
||||
s_textLang = SetLanguage_ENUS;
|
||||
s_textLang = Language;
|
||||
|
||||
Result rc = setInitialize();
|
||||
if (R_SUCCEEDED(rc)) rc = setGetSystemLanguage(&s_textLanguageCode);
|
||||
if (R_SUCCEEDED(rc)) rc = setMakeLanguage(s_textLanguageCode, &Language);
|
||||
//if (R_SUCCEEDED(rc) && Language < 16) s_textLang = Language;//TODO: Re-enable this once language.c supports all used languages.
|
||||
//if (R_SUCCEEDED(rc) && Language < 17) s_textLang = Language;//TODO: Re-enable this once language.c supports all used languages.
|
||||
setExit();
|
||||
if (R_FAILED(rc)) return rc;
|
||||
#else
|
||||
|
Loading…
Reference in New Issue
Block a user