summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/release-notes.md1
-rw-r--r--docs/technical/web.md5
-rw-r--r--src/SMAPI.Web/Controllers/JsonValidatorController.cs3
-rw-r--r--src/SMAPI.Web/wwwroot/schemas/i18n.json24
4 files changed, 30 insertions, 3 deletions
diff --git a/docs/release-notes.md b/docs/release-notes.md
index 3c3f0796..43e1011c 100644
--- a/docs/release-notes.md
+++ b/docs/release-notes.md
@@ -20,6 +20,7 @@
* For the web UI:
* Added GitHub licenses to mod compatibility list.
+ * Added SMAPI `i18n` schema to JSON validator.
* Updated ModDrop URLs.
* Internal changes to improve performance and reliability.
diff --git a/docs/technical/web.md b/docs/technical/web.md
index d21b87ac..50237bfe 100644
--- a/docs/technical/web.md
+++ b/docs/technical/web.md
@@ -110,8 +110,9 @@ Available schemas:
format | schema URL
------ | ----------
-[SMAPI `manifest.json`](https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Manifest) | https://smapi.io/schemas/manifest.json
-[Content Patcher `content.json`](https://github.com/Pathoschild/StardewMods/tree/develop/ContentPatcher#readme) | https://smapi.io/schemas/content-patcher.json
+[SMAPI: `manifest.json`](https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Manifest) | https://smapi.io/schemas/manifest.json
+[SMAPI: translations (`i18n` folder)](https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Translation) | https://smapi.io/schemas/i18n.json
+[Content Patcher: `content.json`](https://github.com/Pathoschild/StardewMods/tree/develop/ContentPatcher#readme) | https://smapi.io/schemas/content-patcher.json
## Web API
### Overview
diff --git a/src/SMAPI.Web/Controllers/JsonValidatorController.cs b/src/SMAPI.Web/Controllers/JsonValidatorController.cs
index c43fb929..8fb9e06a 100644
--- a/src/SMAPI.Web/Controllers/JsonValidatorController.cs
+++ b/src/SMAPI.Web/Controllers/JsonValidatorController.cs
@@ -27,7 +27,8 @@ namespace StardewModdingAPI.Web.Controllers
private readonly IDictionary<string, string> SchemaFormats = new Dictionary<string, string>
{
["none"] = "None",
- ["manifest"] = "Manifest",
+ ["manifest"] = "SMAPI: manifest",
+ ["i18n"] = "SMAPI: translations (i18n)",
["content-patcher"] = "Content Patcher"
};
diff --git a/src/SMAPI.Web/wwwroot/schemas/i18n.json b/src/SMAPI.Web/wwwroot/schemas/i18n.json
new file mode 100644
index 00000000..493ad213
--- /dev/null
+++ b/src/SMAPI.Web/wwwroot/schemas/i18n.json
@@ -0,0 +1,24 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "https://smapi.io/schemas/i18n.json",
+ "title": "SMAPI i18n file",
+ "description": "A translation file for a SMAPI mod or content pack.",
+ "@documentationUrl": "https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Translation",
+ "type": "object",
+
+ "properties": {
+ "$schema": {
+ "title": "Schema",
+ "description": "A reference to this JSON schema. Not part of the actual format, but useful for validation tools.",
+ "type": "string",
+ "const": "https://smapi.io/schemas/manifest.json"
+ }
+ },
+
+ "additionalProperties": {
+ "type": "string",
+ "@errorMessages": {
+ "type": "Invalid property. Translation files can only contain text property values."
+ }
+ }
+}