Skip to content

Commit f956e32

Browse files
committed
Update locale
1 parent 476d5eb commit f956e32

File tree

3 files changed

+58
-55
lines changed

3 files changed

+58
-55
lines changed

MarathonRecomp/kernel/xdbf.h

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,33 +8,36 @@ extern std::unordered_map<uint16_t, GuestTexture*> g_xdbfTextureCache;
88

99
namespace xdbf
1010
{
11-
inline std::string& FixInvalidSequences(std::string& str)
11+
inline std::string FixInvalidSequences(std::string& str)
1212
{
13-
static std::array<std::string_view, 1> s_invalidSequences =
14-
{
15-
"\n"
16-
};
13+
std::string result;
1714

18-
static std::array<std::string_view, 1> s_replaceSequences =
19-
{
20-
" "
21-
};
15+
result.reserve(str.size());
2216

23-
for (int i = 0; i < s_invalidSequences.size(); i++)
17+
for (size_t i = 0; i < str.size(); ++i)
2418
{
25-
size_t pos = 0;
26-
27-
auto& invalidSeq = s_invalidSequences[i];
28-
auto& replaceSeq = s_replaceSequences[i];
19+
auto& c = str[i];
2920

30-
while ((pos = str.find(s_invalidSequences[i], pos)) != std::string::npos)
21+
if (c == '\r' || c == '\n')
3122
{
32-
str = str.replace(pos, invalidSeq.length(), replaceSeq);
23+
// Remove spaces before line breaks.
24+
while (!result.empty() && result.back() == ' ')
25+
result.pop_back();
3326

34-
pos += replaceSeq.length();
27+
// Skip duplicate line breaks.
28+
while (i + 1 < str.size() && (str[i + 1] == '\r' || str[i + 1] == '\n'))
29+
++i;
30+
31+
// Add a space if the next char isn't one.
32+
if (i + 1 < str.size() && str[i + 1] != ' ')
33+
result += ' ';
34+
}
35+
else
36+
{
37+
result += c;
3538
}
3639
}
3740

38-
return str;
41+
return result;
3942
}
4043
}

MarathonRecomp/locale/achievement_locale.cpp

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ std::unordered_map<int, std::unordered_map<ELanguage, AchievementLocale>> g_achL
1212
{
1313
"Sonic's Episode: Cleared",
1414
"Clear Sonic's episode!",
15-
"You have cleared Sonic's episode."
15+
"Cleared Sonic's episode."
1616
}
1717
},
1818
{
@@ -67,7 +67,7 @@ std::unordered_map<int, std::unordered_map<ELanguage, AchievementLocale>> g_achL
6767
{
6868
"Shadow's Episode: Cleared",
6969
"Clear Shadow's episode!",
70-
"You have cleared Shadow's episode."
70+
"Cleared Shadow's episode."
7171
}
7272
},
7373
{
@@ -122,7 +122,7 @@ std::unordered_map<int, std::unordered_map<ELanguage, AchievementLocale>> g_achL
122122
{
123123
"Silver's Episode: Cleared",
124124
"Clear Silver's episode!",
125-
"You have cleared Silver's episode."
125+
"Cleared Silver's episode."
126126
}
127127
},
128128
{
@@ -177,7 +177,7 @@ std::unordered_map<int, std::unordered_map<ELanguage, AchievementLocale>> g_achL
177177
{
178178
"One To Reach The End",
179179
"Clear the last hidden episode!",
180-
"You have cleared the last episode."
180+
"Cleared the last episode."
181181
}
182182
},
183183
{
@@ -232,7 +232,7 @@ std::unordered_map<int, std::unordered_map<ELanguage, AchievementLocale>> g_achL
232232
{
233233
"Sonic's Episode: Completed",
234234
"Clear all of Sonic's hard ACT missions.",
235-
"You have cleared all of Sonic's ACT missions."
235+
"Cleared all of Sonic's ACT missions."
236236
}
237237
},
238238
{
@@ -287,7 +287,7 @@ std::unordered_map<int, std::unordered_map<ELanguage, AchievementLocale>> g_achL
287287
{
288288
"Shadow's Episode: Completed",
289289
"Clear all of Shadow's hard ACT missions.",
290-
"You have cleared all of Shadow's ACT missions."
290+
"Cleared all of Shadow's ACT missions."
291291
}
292292
},
293293
{
@@ -342,7 +342,7 @@ std::unordered_map<int, std::unordered_map<ELanguage, AchievementLocale>> g_achL
342342
{
343343
"Silver's Episode: Completed",
344344
"Clear all of Silver's hard ACT missions.",
345-
"You have cleared all of Silver's ACT missions."
345+
"Cleared all of Silver's ACT missions."
346346
}
347347
},
348348
{
@@ -397,7 +397,7 @@ std::unordered_map<int, std::unordered_map<ELanguage, AchievementLocale>> g_achL
397397
{
398398
"Shadow's Episode: Mastered",
399399
"Clear all of Shadow's ACT missions with Rank S.",
400-
"You have achieved Rank S on all of Shadow's ACT missions."
400+
"Achieved Rank S on all of Shadow's ACT missions."
401401
}
402402
},
403403
{
@@ -452,7 +452,7 @@ std::unordered_map<int, std::unordered_map<ELanguage, AchievementLocale>> g_achL
452452
{
453453
"Sonic's Episode: Mastered",
454454
"Clear all of Sonic's ACT missions with Rank S.",
455-
"You have achieved Rank S on all of Sonic's ACT missions."
455+
"Achieved Rank S on all of Sonic's ACT missions."
456456
}
457457
},
458458
{
@@ -507,7 +507,7 @@ std::unordered_map<int, std::unordered_map<ELanguage, AchievementLocale>> g_achL
507507
{
508508
"Silver's Episode: Mastered",
509509
"Clear all of Silver's ACT missions with Rank S.",
510-
"You have achieved Rank S on all of Silver's ACT missions."
510+
"Achieved Rank S on all of Silver's ACT missions."
511511
}
512512
},
513513
{
@@ -562,7 +562,7 @@ std::unordered_map<int, std::unordered_map<ELanguage, AchievementLocale>> g_achL
562562
{
563563
"Knights of Kronos",
564564
"Clear the last hidden episode with Rank S.",
565-
"You have achieved Rank S on all of the last episode."
565+
"Achieved Rank S on all of the last episode."
566566
}
567567
},
568568
{
@@ -617,7 +617,7 @@ std::unordered_map<int, std::unordered_map<ELanguage, AchievementLocale>> g_achL
617617
{
618618
"Legend of Soleanna",
619619
"Clear all ACT missions with Rank S.",
620-
"You have achieved Rank S on all ACT missions."
620+
"Achieved Rank S on all ACT missions."
621621
}
622622
},
623623
{
@@ -672,7 +672,7 @@ std::unordered_map<int, std::unordered_map<ELanguage, AchievementLocale>> g_achL
672672
{
673673
"Silver Medalist",
674674
"Collect all of the Silver Medals scattered around Soleanna.",
675-
"You have collected all of the Silver Medals in Soleanna."
675+
"Collected all of the Silver Medals in Soleanna."
676676
}
677677
},
678678
{
@@ -727,7 +727,7 @@ std::unordered_map<int, std::unordered_map<ELanguage, AchievementLocale>> g_achL
727727
{
728728
"Gold Medalist",
729729
"Collect all of the legendary Gold Medals of Soleanna.",
730-
"You have collected all of the Gold Medals of Soleanna."
730+
"Collected all of the Gold Medals of Soleanna."
731731
}
732732
},
733733
{
@@ -782,7 +782,7 @@ std::unordered_map<int, std::unordered_map<ELanguage, AchievementLocale>> g_achL
782782
{
783783
"Blue Phantom",
784784
"Unlock all of Sonic's abilities.",
785-
"You have learned all of Sonic's abilities."
785+
"Learned all of Sonic's abilities."
786786
}
787787
},
788788
{
@@ -837,7 +837,7 @@ std::unordered_map<int, std::unordered_map<ELanguage, AchievementLocale>> g_achL
837837
{
838838
"Ultimate Life Form",
839839
"Unlock all of Shadow's abilities.",
840-
"You have learned all of Shadow's abilities."
840+
"Learned all of Shadow's abilities."
841841
}
842842
},
843843
{
@@ -892,7 +892,7 @@ std::unordered_map<int, std::unordered_map<ELanguage, AchievementLocale>> g_achL
892892
{
893893
"Psychic Soldier",
894894
"Unlock all of Silver's abilities.",
895-
"You have learned all of Silver's abilities."
895+
"Learned all of Silver's abilities."
896896
}
897897
},
898898
{
@@ -947,7 +947,7 @@ std::unordered_map<int, std::unordered_map<ELanguage, AchievementLocale>> g_achL
947947
{
948948
"Soleanna's Hero",
949949
"Clear all of Sonic's TOWN missions.",
950-
"You have cleared all of Sonic's TOWN missions."
950+
"Cleared all of Sonic's TOWN missions."
951951
}
952952
},
953953
{
@@ -1002,7 +1002,7 @@ std::unordered_map<int, std::unordered_map<ELanguage, AchievementLocale>> g_achL
10021002
{
10031003
"Elite Agent",
10041004
"Clear all of Shadow's TOWN missions.",
1005-
"You have cleared all of Shadow's TOWN missions."
1005+
"Cleared all of Shadow's TOWN missions."
10061006
}
10071007
},
10081008
{
@@ -1057,7 +1057,7 @@ std::unordered_map<int, std::unordered_map<ELanguage, AchievementLocale>> g_achL
10571057
{
10581058
"Silver the Liberator",
10591059
"Clear all of Silver's TOWN missions.",
1060-
"You have cleared all of Silver's TOWN missions."
1060+
"Cleared all of Silver's TOWN missions."
10611061
}
10621062
},
10631063
{
@@ -1112,7 +1112,7 @@ std::unordered_map<int, std::unordered_map<ELanguage, AchievementLocale>> g_achL
11121112
{
11131113
"Soleanna's Blue Wind",
11141114
"Clear all of Sonic's TOWN missions with Rank S.",
1115-
"You have achieved Rank S on all of Sonic's TOWN missions."
1115+
"Achieved Rank S on all of Sonic's TOWN missions."
11161116
}
11171117
},
11181118
{
@@ -1167,7 +1167,7 @@ std::unordered_map<int, std::unordered_map<ELanguage, AchievementLocale>> g_achL
11671167
{
11681168
"Dark Hero",
11691169
"Clear all of Shadow's TOWN missions with Rank S.",
1170-
"You have achieved Rank S on all of Shadow's TOWN missions."
1170+
"Achieved Rank S on all of Shadow's TOWN missions."
11711171
}
11721172
},
11731173
{
@@ -1222,7 +1222,7 @@ std::unordered_map<int, std::unordered_map<ELanguage, AchievementLocale>> g_achL
12221222
{
12231223
"Silver the Savior",
12241224
"Clear all of Silver's TOWN missions with Rank S.",
1225-
"You have achieved Rank S on all of Silver's TOWN missions."
1225+
"Achieved Rank S on all of Silver's TOWN missions."
12261226
}
12271227
},
12281228
{

MarathonRecomp/locale/locale.cpp

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -775,8 +775,8 @@ std::unordered_map<std::string_view, std::unordered_map<ELanguage, std::string>>
775775
{
776776
{ ELanguage::English, "Installation check has finished.\n\nAll files seem to be correct.\n\nThe game will now close. Remove the launch argument to play the game." },
777777
{ ELanguage::Japanese, "インストールチェックが終了しました\n\nすべてのファイルは正しいようです\n\nゲームは終了します、ゲームをプレイするには起動引数を削除してください" },
778-
{ ELanguage::German, "Die Installation wurde überprüft.\n\nAlle Dateien scheinen korrekt zu sein.\n\nDas Spiel wird nun geschlossen. Entferne die Startoption, um das Spiel zu spielen." },
779-
{ ELanguage::French, "La vérification de l'installation est terminée.\n\nTous les fichiers semblent corrects.\n\nL'application va maintenant se fermer. Retirez l'argument de lancement pour pouvoir lancer le jeu." },
778+
{ ELanguage::German, "Die Installation wurde überprüft.\n\nAlle Dateien scheinen korrekt zu sein.\n\nDas Spiel wird nun geschlossen. Entferne die Startoption, um das Spiel zu spielen." },
779+
{ ELanguage::French, "La vérification de l'installation est terminée.\n\nTous les fichiers semblent corrects.\n\nL'application va maintenant se fermer. Retirez l'argument de lancement pour pouvoir lancer le jeu." },
780780
{ ELanguage::Spanish, "La verificación de la instalación ha terminado.\n\nTodos los archivos parecen correctos.\n\nEl juego se cerrará ahora. Elimina el argumento de lanzamiento para jugar al juego." },
781781
{ ELanguage::Italian, "La verifica dei file d'installazione è terminata.\n\nTutti i file sembrano corretti.\n\nIl gioco si chiuderà. Rimuovi l'argomento di avvio per poter giocare." }
782782
}
@@ -786,8 +786,8 @@ std::unordered_map<std::string_view, std::unordered_map<ELanguage, std::string>>
786786
{
787787
{ ELanguage::English, "Installation check has failed.\n\nError: %s\n\nThe game will now close. Try reinstalling the game by using the --install launch argument." },
788788
{ ELanguage::Japanese, "インストールチェックに失敗しました\n\nエラー:%s\n\nゲームは終了します、--install 起動引数を使用してゲームを再インストールしてください" },
789-
{ ELanguage::German, "Die Installationsprüfung ist fehlgeschlagen.\n\nFehler: %s\n\nDas Spiel wird nun geschlossen. Versuche das Spiel durch Verwendung der Startoption --install neu zu installieren." },
790-
{ ELanguage::French, "La vérification de l'installation a échoué.\n\nErreur : %s\n\nL'application va maintenant se fermer. Essayez de réinstaller le jeu en utilisant l'argument de lancement --install." },
789+
{ ELanguage::German, "Die Installationsprüfung ist fehlgeschlagen.\n\nFehler: %s\n\nDas Spiel wird nun geschlossen. Versuche das Spiel durch Verwendung der Startoption --install neu zu installieren." },
790+
{ ELanguage::French, "La vérification de l'installation a échoué.\n\nErreur : %s\n\nL'application va maintenant se fermer. Essayez de réinstaller le jeu en utilisant l'argument de lancement --install." },
791791
{ ELanguage::Spanish, "La verificación de la instalación ha fallado.\n\nError: %s\n\nEl juego se cerrará ahora. Intenta reinstalar el juego utilizando el argumento de lanzamiento --install." },
792792
{ ELanguage::Italian, "La verifica dei file d'installazione non è andata a buon fine.\n\nErrore: %s\n\nIl gioco si chiuderà. Prova a reinstallare il gioco utilizzando l'argomento di avvio --install." }
793793
}
@@ -928,22 +928,22 @@ std::unordered_map<std::string_view, std::unordered_map<ELanguage, std::string>>
928928
"Common_Retry",
929929
{
930930
{ ELanguage::English, "Retry" },
931-
{ ELanguage::Japanese, "DUMMY" },
932-
{ ELanguage::German, "DUMMY" },
933-
{ ELanguage::French, "DUMMY" },
934-
{ ELanguage::Spanish, "DUMMY" },
935-
{ ELanguage::Italian, "DUMMY" }
931+
{ ELanguage::Japanese, "リトライ" },
932+
{ ELanguage::German, "Wiederholen" },
933+
{ ELanguage::French, "Réessayer" },
934+
{ ELanguage::Spanish, "Reintentar" },
935+
{ ELanguage::Italian, "Riprova" }
936936
}
937937
},
938938
{
939939
"Common_ContinueWithoutSaving",
940940
{
941941
{ ELanguage::English, "Continue without saving." },
942-
{ ELanguage::Japanese, "DUMMY" },
943-
{ ELanguage::German, "DUMMY" },
944-
{ ELanguage::French, "DUMMY" },
945-
{ ELanguage::Spanish, "DUMMY" },
946-
{ ELanguage::Italian, "DUMMY" }
942+
{ ELanguage::Japanese, "セーブせずにゲームを続けます" },
943+
{ ELanguage::German, "Fortsetzen ohne zu speichern." },
944+
{ ELanguage::French, "Continuer sans sauvegarder." },
945+
{ ELanguage::Spanish, "Continuar sin guardar." },
946+
{ ELanguage::Italian, "Continua senza salvare." }
947947
}
948948
},
949949
{

0 commit comments

Comments
 (0)