将模组中文译名中的小括号统一为半角括号 (#4635)

This commit is contained in:
Glavo
2025-10-09 15:49:27 +08:00
committed by GitHub
parent 11c45e0ab8
commit 96f16382c0
2 changed files with 67 additions and 46 deletions

View File

@@ -52,8 +52,6 @@ public abstract class ParseModDataTask extends DefaultTask {
@OutputFile
public abstract RegularFileProperty getOutputFile();
// ---
private static final Logger LOGGER = Logging.getLogger(ParseModDataTask.class);
private static final String S = ";";
@@ -94,7 +92,33 @@ public abstract class ParseModDataTask extends DefaultTask {
return "";
}
private static final Set<String> skip = Set.of(
private static String cleanChineseName(String chineseName) {
if (chineseName == null || chineseName.isBlank())
return "";
chineseName = chineseName.trim();
StringBuilder builder = new StringBuilder(chineseName.length());
int[] codePoints = chineseName.codePoints().toArray();
for (int i = 0; i < codePoints.length; i++) {
int ch = codePoints[i];
int prev = i > 0 ? codePoints[i - 1] : 0;
switch (ch) {
case '' -> {
if (Character.isWhitespace(prev) || prev == '' || prev == '。')
builder.append('(');
else
builder.append(" (");
}
case '' -> builder.append(')');
default -> builder.appendCodePoint(ch);
}
}
return builder.toString().trim();
}
private static final Set<String> SKIP = Set.of(
"Minecraft",
"The Building Game"
);
@@ -106,7 +130,6 @@ public abstract class ParseModDataTask extends DefaultTask {
Files.createDirectories(outputFile.getParent());
List<ModData> modDatas;
try (BufferedReader reader = Files.newBufferedReader(inputFile)) {
modDatas = new Gson().fromJson(reader, TypeToken.getParameterized(List.class, ModData.class).getType());
@@ -125,14 +148,13 @@ public abstract class ParseModDataTask extends DefaultTask {
String subName = mod.name.sub;
String abbr = mod.name.abbr;
if (chineseName == null)
chineseName = "";
chineseName = chineseName == null ? "" : cleanChineseName(chineseName);
if (subName == null)
subName = "";
if (abbr == null)
abbr = "";
if (skip.contains(subName)) {
if (SKIP.contains(subName)) {
continue;
}
@@ -208,7 +230,6 @@ public abstract class ParseModDataTask extends DefaultTask {
public Map<String, List<Link>> list;
}
public static final class ModIdDeserializer implements JsonDeserializer<List<String>> {
private static final Type STRING_LIST = TypeToken.getParameterized(List.class, String.class).getType();