From 34175d5a8508099c4a75a550566ae70096ba2d10 Mon Sep 17 00:00:00 2001 From: kichikuou Date: Thu, 18 Mar 2021 09:28:11 +0900 Subject: [PATCH] Add English translations for string constants --- src/CMakeLists.txt | 1 + src/sys/localization.cpp | 34 ++++++++++++++++++++++++++++++++++ src/sys/localization.h | 17 +++++++++++++++++ src/sys/nact.cpp | 2 +- src/sys/nact.h | 6 +++--- src/sys/nact_crc32.cpp | 10 ++++++++++ src/sys/nact_sys1.cpp | 17 ++++++----------- src/sys/nact_sys2.cpp | 2 +- src/sys/nact_sys3.cpp | 2 +- 9 files changed, 74 insertions(+), 17 deletions(-) create mode 100644 src/sys/localization.cpp create mode 100644 src/sys/localization.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1b03b1f..0e68eb4 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -162,6 +162,7 @@ target_sources(system3 PRIVATE sys/nact_sys1.cpp sys/nact_sys2.cpp sys/nact_sys3.cpp + sys/localization.cpp ) target_compile_definitions(system3 PRIVATE diff --git a/src/sys/localization.cpp b/src/sys/localization.cpp new file mode 100644 index 0000000..c50d642 --- /dev/null +++ b/src/sys/localization.cpp @@ -0,0 +1,34 @@ +#include "localization.h" + +namespace strings { + +const char* back[] = { + "\x96\xDF\x82\xE9", // "戻る" in SJIS + "Back", +}; +const char* next_page[] = { + "\x8E\x9F\x82\xCC\x83\x79\x81\x5B\x83\x57", // "次のページ" in SJIS + "Next Page", +}; +const char* dps_initial_tvars[][7] = { + { + "\x83\x4A\x83\x58\x83\x5E\x83\x80", // "カスタム" in SJIS + "\x83\x8A\x81\x5B\x83\x69\x83\x58", // "リーナス" in SJIS + "\x82\xA9\x82\xC2\x82\xDD", // "かつみ" in SJIS + "\x97\x52\x94\xFC\x8E\x71", // "由美子" in SJIS + "\x82\xA2\x82\xC2\x82\xDD", // "いつみ" in SJIS + "\x82\xD0\x82\xC6\x82\xDD", // "ひとみ" in SJIS + "\x90\x5E\x97\x9D\x8E\x71", // "真理子" in SJIS + }, + { + "Custom", + "Linus", + "Katsumi", + "Yumiko", + "Itsumi", + "Hitomi", + "Mariko", + }, +}; + +} // namespace strings diff --git a/src/sys/localization.h b/src/sys/localization.h new file mode 100644 index 0000000..ae03b5b --- /dev/null +++ b/src/sys/localization.h @@ -0,0 +1,17 @@ +#ifndef _LOCALIZATION_H_ +#define _LOCALIZATION_H_ + +enum Language { + JAPANESE = 0, + ENGLISH = 1, +}; + +namespace strings { + +extern const char* back[]; +extern const char* next_page[]; +extern const char* dps_initial_tvars[][7]; + +} // namespace strings + +#endif // _LOCALIZATION_H_ diff --git a/src/sys/nact.cpp b/src/sys/nact.cpp index 6cfb055..71d6b18 100644 --- a/src/sys/nact.cpp +++ b/src/sys/nact.cpp @@ -18,7 +18,7 @@ extern SDL_Window* g_window; // 初期化 NACT::NACT(int sys_ver, uint32 crc32_a, uint32 crc32_b, const char* font_file, const MAKOConfig& mako_config) - : sys_ver(sys_ver), crc32_a(crc32_a), crc32_b(crc32_b) + : sys_ver(sys_ver), crc32_a(crc32_a), crc32_b(crc32_b), lang(get_language()) { platform_initialize(); diff --git a/src/sys/nact.h b/src/sys/nact.h index 9133ff5..c046763 100644 --- a/src/sys/nact.h +++ b/src/sys/nact.h @@ -9,6 +9,7 @@ #include #include "../common.h" +#include "localization.h" #define RND var[ 0] #define D01 var[ 1] @@ -77,9 +78,6 @@ #define MAX_CAPTION 32 #define MAX_PCM 256 -constexpr char SJIS_BACK[] = "\x96\xDF\x82\xE9"; // "戻る" in SJIS -constexpr char SJIS_NEXT_PAGE [] = "\x8E\x9F\x82\xCC\x83\x79\x81\x5B\x83\x57"; // "次のページ" in SJIS - class AGS; class MAKO; class MsgSkip; @@ -253,6 +251,7 @@ public: const char* get_game_id(); static const int get_sys_ver(uint32 crc32_a, uint32 crc32_b); const char* get_title(); + Language get_language(); void text_wait(); void set_skip_menu_state(bool enabled, bool checked); @@ -260,6 +259,7 @@ public: int sys_ver; uint32 crc32_a; // ADISK uint32 crc32_b; // BDISK for D.P.S -SG- and Super D.P.S + Language lang; // for Y27 char tvar[10][33]; diff --git a/src/sys/nact_crc32.cpp b/src/sys/nact_crc32.cpp index dd151f7..8bc540a 100644 --- a/src/sys/nact_crc32.cpp +++ b/src/sys/nact_crc32.cpp @@ -148,3 +148,13 @@ const char* NACT::get_title() return entry->title; return NULL; } + +Language NACT::get_language() +{ + // TODO: Add Language as a field of the CRCTable struct + if (crc32_a == CRC32_VAMPIRE_ENG || + crc32_a == CRC32_RANCE41_ENG || + crc32_a == CRC32_RANCE42_ENG) + return ENGLISH; + return JAPANESE; +} diff --git a/src/sys/nact_sys1.cpp b/src/sys/nact_sys1.cpp index 71eda1c..3708e44 100644 --- a/src/sys/nact_sys1.cpp +++ b/src/sys/nact_sys1.cpp @@ -74,13 +74,8 @@ NACT_Sys1::NACT_Sys1(uint32 crc32_a, uint32 crc32_b, const char* font_file, cons //case CRC32_DPS_SG2: case CRC32_DPS_SG3: text_refresh = false; - strcpy_s(tvar[0], 22, "\x83\x4A\x83\x58\x83\x5E\x83\x80"); // "カスタム" in SJIS - strcpy_s(tvar[1], 22, "\x83\x8A\x81\x5B\x83\x69\x83\x58"); // "リーナス" in SJIS - strcpy_s(tvar[2], 22, "\x82\xA9\x82\xC2\x82\xDD"); // "かつみ" in SJIS - strcpy_s(tvar[3], 22, "\x97\x52\x94\xFC\x8E\x71"); // "由美子" in SJIS - strcpy_s(tvar[4], 22, "\x82\xA2\x82\xC2\x82\xDD"); // "いつみ" in SJIS - strcpy_s(tvar[5], 22, "\x82\xD0\x82\xC6\x82\xDD"); // "ひとみ" in SJIS - strcpy_s(tvar[6], 22, "\x90\x5E\x97\x9D\x8E\x71"); // "真理子" in SJIS + for (int i = 0; i < 7; i++) + strcpy(tvar[i], strings::dps_initial_tvars[lang][i]); break; case CRC32_INTRUDER: paint_x = paint_y = map_page = 0; @@ -431,7 +426,7 @@ top2: // 次のページを追加 ags->menu_dest_x = 2; ags->menu_dest_y += 2; - ags->draw_text(SJIS_NEXT_PAGE); + ags->draw_text(strings::next_page[lang]); id[index++] = -1; ags->menu_dest_y += ags->menu_font_size + 2; } @@ -502,7 +497,7 @@ top: // 戻るを追加 ags->menu_dest_x = 2; ags->menu_dest_y += 2; - ags->draw_text(SJIS_BACK); + ags->draw_text(strings::back[lang]); id[index++] = 0; ags->menu_dest_y += ags->menu_font_size + 2; } else { @@ -528,14 +523,14 @@ top2: // 戻るを追加 ags->menu_dest_x = 2; ags->menu_dest_y += 2; - ags->draw_text(SJIS_BACK); + ags->draw_text(strings::back[lang]); id[index++] = 0; ags->menu_dest_y += ags->menu_font_size + 2; // 次のページを追加 ags->menu_dest_x = 2; ags->menu_dest_y += 2; - ags->draw_text(SJIS_NEXT_PAGE); + ags->draw_text(strings::next_page[lang]); id[index++] = -1; ags->menu_dest_y += ags->menu_font_size + 2; } diff --git a/src/sys/nact_sys2.cpp b/src/sys/nact_sys2.cpp index 89db34e..ae41e63 100644 --- a/src/sys/nact_sys2.cpp +++ b/src/sys/nact_sys2.cpp @@ -503,7 +503,7 @@ void NACT_Sys2::cmd_open_obj(int verb) // 戻るを追加 ags->menu_dest_x = 2; ags->menu_dest_y += 2; - ags->draw_text(SJIS_BACK); + ags->draw_text(strings::back[lang]); id[index++] = 0; ags->menu_dest_y += ags->menu_font_size + 2; ags->draw_menu = false; diff --git a/src/sys/nact_sys3.cpp b/src/sys/nact_sys3.cpp index be36982..ef2815d 100644 --- a/src/sys/nact_sys3.cpp +++ b/src/sys/nact_sys3.cpp @@ -264,7 +264,7 @@ void NACT_Sys3::cmd_open_obj(int verb) // 戻るを追加 ags->menu_dest_x = 2; ags->menu_dest_y += 2; - ags->draw_text(SJIS_BACK); + ags->draw_text(strings::back[lang]); id[index++] = 0; ags->menu_dest_y += ags->menu_font_size + 2; ags->draw_menu = false;