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:
yellows8 2019-10-04 18:16:42 -04:00
parent 97ab367379
commit 2feb085504
No known key found for this signature in database
GPG Key ID: 0AF90DA3F1E60E43
3 changed files with 68 additions and 68 deletions

View File

@ -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"
),

View File

@ -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];

View File

@ -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