mirror of
https://github.com/HIllya51/LunaTranslator.git
synced 2024-12-28 08:04:13 +08:00
.
This commit is contained in:
parent
869baf1ba1
commit
8c3a78587e
@ -84,16 +84,34 @@ namespace ppsspp
|
|||||||
buffer->from(s);
|
buffer->from(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ULJS00124(TextBuffer *buffer, HookParam *hp)
|
||||||
|
{
|
||||||
|
CharFilter(buffer, '\n');
|
||||||
|
}
|
||||||
|
void ULJM05770(TextBuffer *buffer, HookParam *hp)
|
||||||
|
{
|
||||||
|
std::string s = buffer->strA();
|
||||||
|
s = std::regex_replace(s, std::regex(R"(\x81\x6f(.*?)\x81\x5e(.*?)\x81\x70)"), "$2"); // {みす/御簾}
|
||||||
|
buffer->from(s);
|
||||||
|
CharFilter(buffer, '\n');
|
||||||
|
}
|
||||||
|
void NPJH50215(TextBuffer *buffer, HookParam *hp)
|
||||||
|
{
|
||||||
|
auto ws = StringToWideString(buffer->viewA(), 932).value();
|
||||||
|
strReplace(ws, L"r", L"\n");
|
||||||
|
if (ws.find(L"wc"))
|
||||||
|
{
|
||||||
|
ws = ws.substr(0, ws.find(L"wc"));
|
||||||
|
}
|
||||||
|
ws = std::regex_replace(ws, std::wregex(LR"(l(.*?)\((.*?)\))"), L"$1");
|
||||||
|
buffer->from(WideStringToString(ws, 932));
|
||||||
|
}
|
||||||
|
|
||||||
void NPJH50909_filter(TextBuffer *buffer, HookParam *hp)
|
void NPJH50909_filter(TextBuffer *buffer, HookParam *hp)
|
||||||
{
|
{
|
||||||
auto ws = StringToWideString(buffer->viewA(), 932).value();
|
auto ws = StringToWideString(buffer->viewA(), 932).value();
|
||||||
// Remove single line markers
|
|
||||||
ws = std::regex_replace(ws, std::wregex(L"(\\%N)+"), L" ");
|
ws = std::regex_replace(ws, std::wregex(L"(\\%N)+"), L" ");
|
||||||
|
|
||||||
// Remove scale marker
|
|
||||||
ws = std::regex_replace(ws, std::wregex(L"\\%\\@\\%\\d+"), L"");
|
ws = std::regex_replace(ws, std::wregex(L"\\%\\@\\%\\d+"), L"");
|
||||||
|
|
||||||
// Reformat name
|
|
||||||
std::wsmatch match;
|
std::wsmatch match;
|
||||||
if (std::regex_search(ws, match, std::wregex(L"(^[^「]+)「")))
|
if (std::regex_search(ws, match, std::wregex(L"(^[^「]+)「")))
|
||||||
{
|
{
|
||||||
@ -191,12 +209,46 @@ namespace ppsspp
|
|||||||
StringFilter(buffer, "#wa0", 4);
|
StringFilter(buffer, "#wa0", 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ULJM05565(TextBuffer *buffer, HookParam *)
|
||||||
|
{
|
||||||
|
StringFilter(buffer, "/K", 2);
|
||||||
|
StringCharReplacer(buffer, "\x81\x9b", 2, '\n');
|
||||||
|
if (buffer->size == 0)
|
||||||
|
return;
|
||||||
|
static std::string last, lastx;
|
||||||
|
auto s = buffer->strA();
|
||||||
|
if (startWith(s, "sc"))
|
||||||
|
return buffer->clear();
|
||||||
|
if (endWith(last, s))
|
||||||
|
return buffer->clear();
|
||||||
|
last = s;
|
||||||
|
if (lastx == last)
|
||||||
|
return buffer->clear();
|
||||||
|
lastx = last;
|
||||||
|
}
|
||||||
void FULJM05603(TextBuffer *buffer, HookParam *)
|
void FULJM05603(TextBuffer *buffer, HookParam *)
|
||||||
{
|
{
|
||||||
StringCharReplacer(buffer, "%N", 2, ' ');
|
StringFilter(buffer, "%N", 2);
|
||||||
StringFilter(buffer, "%K", 2);
|
StringFilter(buffer, "%K", 2);
|
||||||
StringFilter(buffer, "%P", 2);
|
StringFilter(buffer, "%P", 2);
|
||||||
StringFilter(buffer, "%O030", 5);
|
StringFilter(buffer, "%V", 2);
|
||||||
|
StringFilter(buffer, "%LC", 3);
|
||||||
|
StringFilter(buffer, "%LE", 3);
|
||||||
|
StringFilter(buffer, "%FS", 3);
|
||||||
|
StringFilter(buffer, "%FE", 3);
|
||||||
|
auto s = buffer->strA();
|
||||||
|
s = std::regex_replace(s, std::regex(R"(\{(.*?)\}\[(.*?)\])"), "$1");
|
||||||
|
s = std::regex_replace(s, std::regex(R"(%O\d{3})"), "$1");
|
||||||
|
s = std::regex_replace(s, std::regex(R"(%S\d{3})"), "$1");
|
||||||
|
buffer->from(s);
|
||||||
|
}
|
||||||
|
void ULJM05821(TextBuffer *buffer, HookParam *hp)
|
||||||
|
{
|
||||||
|
static lru_cache<std::string> lastx(2);
|
||||||
|
auto s = buffer->strA();
|
||||||
|
if (lastx.touch(s))
|
||||||
|
return buffer->clear();
|
||||||
|
FULJM05603(buffer, hp);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ULJM05810(hook_stack *stack, HookParam *hp, TextBuffer *buffer, uintptr_t *split)
|
void ULJM05810(hook_stack *stack, HookParam *hp, TextBuffer *buffer, uintptr_t *split)
|
||||||
@ -249,7 +301,7 @@ namespace ppsspp
|
|||||||
}
|
}
|
||||||
void FNPJH50127(TextBuffer *buffer, HookParam *hp)
|
void FNPJH50127(TextBuffer *buffer, HookParam *hp)
|
||||||
{
|
{
|
||||||
StringCharReplacer(buffer, "\\n", 2, '\n');
|
StringFilter(buffer, "\\n", 2);
|
||||||
}
|
}
|
||||||
void ULJM05756(TextBuffer *buffer, HookParam *hp)
|
void ULJM05756(TextBuffer *buffer, HookParam *hp)
|
||||||
{
|
{
|
||||||
@ -450,6 +502,14 @@ namespace ppsspp
|
|||||||
StringFilter(buffer, "%K", 2);
|
StringFilter(buffer, "%K", 2);
|
||||||
StringFilter(buffer, "%P", 2);
|
StringFilter(buffer, "%P", 2);
|
||||||
}
|
}
|
||||||
|
void ULJM06070(TextBuffer *buffer, HookParam *hp)
|
||||||
|
{
|
||||||
|
StringFilterBetween(buffer, "[", 1, "]", 1);
|
||||||
|
if (!startWith(buffer->viewA(), "%C"))
|
||||||
|
CharFilter(buffer, '\n');
|
||||||
|
else
|
||||||
|
StringFilter(buffer, "%C", 2);
|
||||||
|
}
|
||||||
void ULJM06040_1(TextBuffer *buffer, HookParam *hp)
|
void ULJM06040_1(TextBuffer *buffer, HookParam *hp)
|
||||||
{
|
{
|
||||||
StringFilter(buffer, "%K", 2);
|
StringFilter(buffer, "%K", 2);
|
||||||
@ -750,6 +810,24 @@ namespace ppsspp
|
|||||||
{0x8853844, {0, 0xC, 0, 0, 0, "NPJH50273"}},
|
{0x8853844, {0, 0xC, 0, 0, 0, "NPJH50273"}},
|
||||||
// CLANNAD
|
// CLANNAD
|
||||||
{0x880F240, {CODEC_UTF16, 0, 0, 0, ULJM05282, "ULJM0533[89]"}}, // ULJM05338 & ULJM05339
|
{0x880F240, {CODEC_UTF16, 0, 0, 0, ULJM05282, "ULJM0533[89]"}}, // ULJM05338 & ULJM05339
|
||||||
|
// 東京鬼祓師 鴉乃杜學園奇譚
|
||||||
|
{0x89F25C8, {0, 1, 0, 0, NPJH50215, "NPJH50215"}},
|
||||||
|
// 雅恋 ~MIYAKO~
|
||||||
|
{0x8812514, {0, 1, 0, 0, ULJM05770, "ULJM05770"}},
|
||||||
|
// 雅恋 ~MIYAKO~ あわゆきのうたげ
|
||||||
|
{0x8811368, {CODEC_UTF8, 1, 0, 0, ULJM06070, "ULJM06070"}},
|
||||||
|
// ナルキッソス~もしも明日があるなら~Portable
|
||||||
|
{0x8857B28, {0, 1, 0, 0, FULJM05603, "ULJM05674"}},
|
||||||
|
// 未来日記 -13人目の日記所有者-
|
||||||
|
{0x884C30C, {0, 0, 0, 0, ULJM05565, "ULJM05565"}}, // 切换场景时会有很多辣鸡文本
|
||||||
|
// CHAOS;HEAD らぶChu☆Chu!
|
||||||
|
{0x88B5AD8, {0, 0xe, 0, 0, ULJM05821, "ULJM05821"}},
|
||||||
|
// 涼宮ハルヒの約束
|
||||||
|
{0x882C6B4, {0, 6, 0, 0, ULJS00124, "ULJS00124"}},
|
||||||
|
// code_18
|
||||||
|
{0x884B8B8, {0, 0, 0, 0, ULJM05821, "ULJM05936"}},
|
||||||
|
// ユア・メモリーズオフ
|
||||||
|
{0x88EF260, {0, 1, 0, 0, FULJM05603, "ULJM05435"}},
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user