feat(mod): Chinese translations for mod names.

This commit is contained in:
huanghongxun
2021-09-11 20:08:38 +08:00
parent 2d8248461a
commit f45e0abbf4
12 changed files with 228 additions and 23 deletions

View File

@@ -42,6 +42,7 @@ import java.util.stream.Collectors;
@Immutable
public final class FabricModMetadata {
private final String id;
private final String name;
private final String version;
private final String description;
@@ -50,10 +51,11 @@ public final class FabricModMetadata {
private final Map<String, String> contact;
public FabricModMetadata() {
this("", "", "", "", Collections.emptyList(), Collections.emptyMap());
this("", "", "", "", "", Collections.emptyList(), Collections.emptyMap());
}
public FabricModMetadata(String name, String version, String icon, String description, List<FabricModAuthor> authors, Map<String, String> contact) {
public FabricModMetadata(String id, String name, String version, String icon, String description, List<FabricModAuthor> authors, Map<String, String> contact) {
this.id = id;
this.name = name;
this.version = version;
this.icon = icon;
@@ -69,7 +71,7 @@ public final class FabricModMetadata {
throw new IOException("File " + modFile + " is not a Fabric mod.");
FabricModMetadata metadata = JsonUtils.fromNonNullJson(FileUtils.readText(mcmod), FabricModMetadata.class);
String authors = metadata.authors == null ? "" : metadata.authors.stream().map(author -> author.name).collect(Collectors.joining(", "));
return new ModInfo(modManager, modFile, metadata.name, new ModInfo.Description(metadata.description),
return new ModInfo(modManager, modFile, metadata.id, metadata.name, new ModInfo.Description(metadata.description),
authors, metadata.version, "", metadata.contact != null ? metadata.contact.getOrDefault("homepage", "") : "", metadata.icon);
}
}

View File

@@ -135,7 +135,7 @@ public final class ForgeNewModMetadata {
LOG.log(Level.WARNING, "Failed to parse MANIFEST.MF in file " + modFile.getPath());
}
}
return new ModInfo(modManager, modFile, mod.getDisplayName(), new ModInfo.Description(mod.getDescription()),
return new ModInfo(modManager, modFile, mod.getModId(), mod.getDisplayName(), new ModInfo.Description(mod.getDescription()),
mod.getAuthors(), mod.getVersion().replace("${file.jarVersion}", jarVersion), "",
mod.getDisplayURL(),
metadata.getLogoFile());

View File

@@ -138,7 +138,7 @@ public final class ForgeOldModMetadata {
authors = String.join(", ", metadata.getAuthorList());
if (StringUtils.isBlank(authors))
authors = metadata.getCredits();
return new ModInfo(modManager, modFile, metadata.getName(), new ModInfo.Description(metadata.getDescription()),
return new ModInfo(modManager, modFile, metadata.getModId(), metadata.getName(), new ModInfo.Description(metadata.getDescription()),
authors, metadata.getVersion(), metadata.getGameVersion(),
StringUtils.isBlank(metadata.getUrl()) ? metadata.getUpdateUrl() : metadata.url,
metadata.getLogoFile());

View File

@@ -116,7 +116,7 @@ public final class LiteModMetadata {
LiteModMetadata metadata = JsonUtils.GSON.fromJson(IOUtils.readFullyAsString(zipFile.getInputStream(entry)), LiteModMetadata.class);
if (metadata == null)
throw new IOException("Mod " + modFile + " `litemod.json` is malformed.");
return new ModInfo(modManager, modFile, metadata.getName(), new ModInfo.Description(metadata.getDescription()), metadata.getAuthor(),
return new ModInfo(modManager, modFile, null, metadata.getName(), new ModInfo.Description(metadata.getDescription()), metadata.getAuthor(),
metadata.getVersion(), metadata.getGameVersion(), metadata.getUpdateURI(), "");
}
}

View File

@@ -38,6 +38,7 @@ import java.util.logging.Level;
public final class ModInfo implements Comparable<ModInfo> {
private Path file;
private final String id;
private final String name;
private final Description description;
private final String authors;
@@ -48,12 +49,13 @@ public final class ModInfo implements Comparable<ModInfo> {
private final String logoPath;
private final BooleanProperty activeProperty;
public ModInfo(ModManager modManager, File file, String name, Description description) {
this(modManager, file, name, description, "", "", "", "", "");
public ModInfo(ModManager modManager, File file, String id, String name, Description description) {
this(modManager, file, id, name, description, "", "", "", "", "");
}
public ModInfo(ModManager modManager, File file, String name, Description description, String authors, String version, String gameVersion, String url, String logoPath) {
public ModInfo(ModManager modManager, File file, String id, String name, Description description, String authors, String version, String gameVersion, String url, String logoPath) {
this.file = file.toPath();
this.id = id;
this.name = name;
this.description = description;
this.authors = authors;
@@ -85,6 +87,10 @@ public final class ModInfo implements Comparable<ModInfo> {
return file;
}
public String getId() {
return id;
}
public String getName() {
return name;
}

View File

@@ -99,7 +99,7 @@ public final class ModManager {
default:
throw new IllegalArgumentException("File " + modFile + " is not a mod file.");
}
return new ModInfo(this, modFile, FileUtils.getNameWithoutExtension(modFile), new ModInfo.Description(description));
return new ModInfo(this, modFile, null, FileUtils.getNameWithoutExtension(modFile), new ModInfo.Description(description));
}
public void refreshMods() throws IOException {

View File

@@ -150,7 +150,7 @@ public class PackMcMeta implements Validation {
if (Files.notExists(mcmod))
throw new IOException("File " + modFile + " is not a resource pack.");
PackMcMeta metadata = JsonUtils.fromNonNullJson(FileUtils.readText(mcmod), PackMcMeta.class);
return new ModInfo(modManager, modFile, FileUtils.getNameWithoutExtension(modFile), metadata.pack.description, "", "", "", "", "");
return new ModInfo(modManager, modFile, null, FileUtils.getNameWithoutExtension(modFile), metadata.pack.description, "", "", "", "", "");
}
}
}