diff --git a/config/site.example.yaml b/config/site.example.yaml
index d1ea950..fa73fdc 100644
--- a/config/site.example.yaml
+++ b/config/site.example.yaml
@@ -40,3 +40,5 @@ i18n:
hi: "हिन्दी"
zh-CN: "中文"
ja: "日本語"
+ vi: "Tiếng Việt"
+theme: dark
diff --git a/locales/hi.json b/locales/hi.json
index aadc697..e9885cf 100644
--- a/locales/hi.json
+++ b/locales/hi.json
@@ -32,7 +32,7 @@
"today": "आज",
"uptime": "अपटाइम"
},
- "numbers": ["०", "१", "२", "३", "४", "५", "६", "७", "८", "९"],
+ "numbers": ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"],
"root": {
"active_incidents": "सक्रिय घटनाएं",
"availability_per_component": "प्रति कॉम्पोनेन्ट उपलब्धता",
diff --git a/locales/vi.json b/locales/vi.json
new file mode 100644
index 0000000..ff629ee
--- /dev/null
+++ b/locales/vi.json
@@ -0,0 +1,57 @@
+{
+ "root": {
+ "ongoing_incidents": "Sự Cố Đang Xảy Ra",
+ "availability_per_component": "Độ Sẵn Sàng Của Từng Thành Phần",
+ "other_monitors": "Các Giám Sát Khác",
+ "no_monitors": "Không tìm thấy giám sát nào",
+ "read_doc_monitor": "Đọc tài liệu để thêm giám sát đầu tiên của bạn",
+ "here": "tại đây",
+ "category": "Danh Mục",
+ "incident": "Sự Cố",
+ "incidents": "Các Sự Cố",
+ "no_recent_incident": "Không có sự cố gần đây",
+ "recent_incidents": "Các Sự Cố Gần Đây",
+ "active_incidents": "Các Sự Cố Đang Hoạt Động",
+ "no_active_incident": "Không Có Sự Cố Đang Hoạt Động",
+ "last_x_hours": "Trong %hours giờ qua"
+ },
+ "statuses": {
+ "UP": "HOẠT ĐỘNG",
+ "DOWN": "NGỪNG HOẠT ĐỘNG",
+ "DEGRADED": "SUY GIẢM"
+ },
+ "incident": {
+ "identified": "Đã Xác Định",
+ "resolved": "Đã Giải Quyết",
+ "maintenance": "Bảo Trì"
+ },
+ "monitor": {
+ "share": "Chia Sẻ",
+ "badge": "Huy Hiệu",
+ "embed": "Nhúng",
+ "mode": "Chế Độ",
+ "status": "Trạng Thái",
+ "copied": "Đã Sao Chép",
+ "uptime": "Thời Gian Hoạt Động",
+ "theme": "Chủ Đề",
+ "theme_light": "Sáng",
+ "theme_dark": "Tối",
+ "today": "Hôm Nay",
+ "90_day": "90 Ngày",
+ "share_desc": "Chia sẻ giám sát này bằng một liên kết với người khác",
+ "badge_desc": "Nhận huy hiệu SVG cho giám sát này",
+ "embed_desc": "Nhúng giám sát này bằng
+ {/if}
diff --git a/src/routes/+page.server.js b/src/routes/+page.server.js
index 63e48d6..2608110 100644
--- a/src/routes/+page.server.js
+++ b/src/routes/+page.server.js
@@ -5,11 +5,11 @@ import {
FilterAndInsertMonitorInIncident
} from "../../scripts/github.js";
import { FetchData } from "$lib/server/page";
-import { env } from "$env/dynamic/public";
+import { PUBLIC_KENER_FOLDER } from "$env/static/public";
import fs from "fs-extra";
export async function load({ parent }) {
- let monitors = JSON.parse(fs.readFileSync(env.PUBLIC_KENER_FOLDER + "/monitors.json", "utf8"));
+ let monitors = JSON.parse(fs.readFileSync(PUBLIC_KENER_FOLDER + "/monitors.json", "utf8"));
const parentData = await parent();
const siteData = parentData.site;
const github = siteData.github;
diff --git a/src/routes/api/incident/+server.js b/src/routes/api/incident/+server.js
index 5974e5a..d554a37 100644
--- a/src/routes/api/incident/+server.js
+++ b/src/routes/api/incident/+server.js
@@ -3,7 +3,7 @@
import { json } from "@sveltejs/kit";
import { ParseIncidentPayload, auth, GHIssueToKenerIncident } from "$lib/server/webhook";
import { CreateIssue, SearchIssue } from "../../../../scripts/github";
-import { env } from "$env/dynamic/public";
+import { PUBLIC_KENER_FOLDER } from "$env/static/public";
import fs from "fs-extra";
export async function POST({ request }) {
@@ -27,7 +27,7 @@ export async function POST({ request }) {
}
);
}
- let site = JSON.parse(fs.readFileSync(env.PUBLIC_KENER_FOLDER + "/site.json", "utf8"));
+ let site = JSON.parse(fs.readFileSync(PUBLIC_KENER_FOLDER + "/site.json", "utf8"));
let github = site.github;
let resp = await CreateIssue(github, title, body, githubLabels);
if (resp === null) {
@@ -74,7 +74,7 @@ export async function GET({ request, url }) {
}
);
}
- let site = JSON.parse(fs.readFileSync(env.PUBLIC_KENER_FOLDER + "/site.json", "utf8"));
+ let site = JSON.parse(fs.readFileSync(PUBLIC_KENER_FOLDER + "/site.json", "utf8"));
let github = site.github;
const repo = `${github.owner}/${github.repo}`;
const is = "issue";
diff --git a/src/routes/api/incident/[incidentNumber]/+server.js b/src/routes/api/incident/[incidentNumber]/+server.js
index 55b3676..0d6fc88 100644
--- a/src/routes/api/incident/[incidentNumber]/+server.js
+++ b/src/routes/api/incident/[incidentNumber]/+server.js
@@ -8,7 +8,7 @@ import {
GetEndTimeFromBody,
UpdateIssue
} from "../../../../../scripts/github";
-import { env } from "$env/dynamic/public";
+import { PUBLIC_KENER_FOLDER } from "$env/static/public";
import fs from "fs-extra";
export async function PATCH({ request, params }) {
@@ -41,7 +41,7 @@ export async function PATCH({ request, params }) {
);
}
- let site = JSON.parse(fs.readFileSync(env.PUBLIC_KENER_FOLDER + "/site.json", "utf8"));
+ let site = JSON.parse(fs.readFileSync(PUBLIC_KENER_FOLDER + "/site.json", "utf8"));
let github = site.github;
let resp = await UpdateIssue(github, incidentNumber, title, body, githubLabels);
if (resp === null) {
@@ -70,7 +70,7 @@ export async function GET({ request, params }) {
const incidentNumber = params.incidentNumber; //number required
// const headers = await request.headers();
- let site = JSON.parse(fs.readFileSync(env.PUBLIC_KENER_FOLDER + "/site.json", "utf8"));
+ let site = JSON.parse(fs.readFileSync(PUBLIC_KENER_FOLDER + "/site.json", "utf8"));
let github = site.github;
let issue = await GetIncidentByNumber(github, incidentNumber);
if (issue === null) {
diff --git a/src/routes/api/incident/[incidentNumber]/comment/+server.js b/src/routes/api/incident/[incidentNumber]/comment/+server.js
index 62d79bf..9f360cd 100644
--- a/src/routes/api/incident/[incidentNumber]/comment/+server.js
+++ b/src/routes/api/incident/[incidentNumber]/comment/+server.js
@@ -3,7 +3,7 @@
import { json } from "@sveltejs/kit";
import { auth } from "$lib/server/webhook";
import { AddComment, GetCommentsForIssue } from "../../../../../../scripts/github";
-import { env } from "$env/dynamic/public";
+import { PUBLIC_KENER_FOLDER } from "$env/static/public";
import fs from "fs-extra";
export async function GET({ request, params }) {
@@ -27,7 +27,7 @@ export async function GET({ request, params }) {
);
}
- let site = JSON.parse(fs.readFileSync(env.PUBLIC_KENER_FOLDER + "/site.json", "utf8"));
+ let site = JSON.parse(fs.readFileSync(PUBLIC_KENER_FOLDER + "/site.json", "utf8"));
let github = site.github;
let resp = await GetCommentsForIssue(incidentNumber, github);
return json(
@@ -75,7 +75,7 @@ export async function POST({ request, params }) {
);
}
- let site = JSON.parse(fs.readFileSync(env.PUBLIC_KENER_FOLDER + "/site.json", "utf8"));
+ let site = JSON.parse(fs.readFileSync(PUBLIC_KENER_FOLDER + "/site.json", "utf8"));
let github = site.github;
let resp = await AddComment(github, incidentNumber, body);
diff --git a/src/routes/api/incident/[incidentNumber]/status/+server.js b/src/routes/api/incident/[incidentNumber]/status/+server.js
index 9bb5f75..eea9e03 100644
--- a/src/routes/api/incident/[incidentNumber]/status/+server.js
+++ b/src/routes/api/incident/[incidentNumber]/status/+server.js
@@ -3,7 +3,7 @@
import { json } from "@sveltejs/kit";
import { auth, GHIssueToKenerIncident } from "$lib/server/webhook";
import { UpdateIssueLabels, GetIncidentByNumber } from "../../../../../../scripts/github";
-import { env } from "$env/dynamic/public";
+import { PUBLIC_KENER_FOLDER } from "$env/static/public";
import fs from "fs-extra";
export async function POST({ request, params }) {
@@ -43,7 +43,7 @@ export async function POST({ request, params }) {
);
}
- let site = JSON.parse(fs.readFileSync(env.PUBLIC_KENER_FOLDER + "/site.json", "utf8"));
+ let site = JSON.parse(fs.readFileSync(PUBLIC_KENER_FOLDER + "/site.json", "utf8"));
let github = site.github;
let issue = await GetIncidentByNumber(github, incidentNumber);
diff --git a/src/routes/badge/[tag]/status/+server.js b/src/routes/badge/[tag]/status/+server.js
index 94c0753..43a08bf 100644
--- a/src/routes/badge/[tag]/status/+server.js
+++ b/src/routes/badge/[tag]/status/+server.js
@@ -1,9 +1,9 @@
// @ts-nocheck
-import { env } from "$env/dynamic/public";
+import { PUBLIC_KENER_FOLDER } from "$env/static/public";
import fs from "fs-extra";
import { StatusColor } from "$lib/helpers.js";
import { makeBadge } from "badge-maker";
-const monitors = JSON.parse(fs.readFileSync(env.PUBLIC_KENER_FOLDER + "/monitors.json", "utf8"));
+const monitors = JSON.parse(fs.readFileSync(PUBLIC_KENER_FOLDER + "/monitors.json", "utf8"));
export async function GET({ params, setHeaders, url }) {
// @ts-ignore
const { path0Day, name } = monitors.find((monitor) => monitor.tag === params.tag);
diff --git a/src/routes/badge/[tag]/uptime/+server.js b/src/routes/badge/[tag]/uptime/+server.js
index 57bcc30..c46f044 100644
--- a/src/routes/badge/[tag]/uptime/+server.js
+++ b/src/routes/badge/[tag]/uptime/+server.js
@@ -1,10 +1,10 @@
// @ts-nocheck
-import { env } from "$env/dynamic/public";
+import { PUBLIC_KENER_FOLDER } from "$env/static/public";
import fs from "fs-extra";
import { ParseUptime } from "$lib/helpers.js";
import { makeBadge } from "badge-maker";
-const monitors = JSON.parse(fs.readFileSync(env.PUBLIC_KENER_FOLDER + "/monitors.json", "utf8"));
+const monitors = JSON.parse(fs.readFileSync(PUBLIC_KENER_FOLDER + "/monitors.json", "utf8"));
export async function GET({ params, url }) {
// @ts-ignore
const { path0Day, name } = monitors.find((monitor) => monitor.tag === params.tag);
diff --git a/src/routes/category-[category]/+page.server.js b/src/routes/category-[category]/+page.server.js
index 77d34ad..162b29c 100644
--- a/src/routes/category-[category]/+page.server.js
+++ b/src/routes/category-[category]/+page.server.js
@@ -5,11 +5,11 @@ import {
FilterAndInsertMonitorInIncident
} from "../../../scripts/github.js";
import { FetchData } from "$lib/server/page";
-import { env } from "$env/dynamic/public";
+import { PUBLIC_KENER_FOLDER } from "$env/static/public";
import fs from "fs-extra";
export async function load({ params, route, url, parent }) {
- let monitors = JSON.parse(fs.readFileSync(env.PUBLIC_KENER_FOLDER + "/monitors.json", "utf8"));
+ let monitors = JSON.parse(fs.readFileSync(PUBLIC_KENER_FOLDER + "/monitors.json", "utf8"));
const parentData = await parent();
const siteData = parentData.site;
const github = siteData.github;
diff --git a/src/routes/embed-[tag]/+page.server.js b/src/routes/embed-[tag]/+page.server.js
index bff586d..c053b90 100644
--- a/src/routes/embed-[tag]/+page.server.js
+++ b/src/routes/embed-[tag]/+page.server.js
@@ -1,10 +1,10 @@
// @ts-nocheck
import { FetchData } from "$lib/server/page";
-import { env } from "$env/dynamic/public";
+import { PUBLIC_KENER_FOLDER } from "$env/static/public";
import fs from "fs-extra";
export async function load({ params, route, url, parent }) {
- let monitors = JSON.parse(fs.readFileSync(env.PUBLIC_KENER_FOLDER + "/monitors.json", "utf8"));
+ let monitors = JSON.parse(fs.readFileSync(PUBLIC_KENER_FOLDER + "/monitors.json", "utf8"));
const parentData = await parent();
const monitorsActive = [];
diff --git a/src/routes/embed-[tag]/js/+server.js b/src/routes/embed-[tag]/js/+server.js
index 5320113..fdc0fcd 100644
--- a/src/routes/embed-[tag]/js/+server.js
+++ b/src/routes/embed-[tag]/js/+server.js
@@ -1,8 +1,8 @@
// @ts-nocheck
// @ts-ignore
-import { env } from "$env/dynamic/public";
+import { PUBLIC_KENER_FOLDER } from "$env/static/public";
import fs from "fs-extra";
-const siteData = JSON.parse(fs.readFileSync(env.PUBLIC_KENER_FOLDER + "/site.json", "utf8"));
+const siteData = JSON.parse(fs.readFileSync(PUBLIC_KENER_FOLDER + "/site.json", "utf8"));
export async function GET({ url, params }) {
const { tag } = params;
const query = url.searchParams;
diff --git a/src/routes/incident/[id]/+page.server.js b/src/routes/incident/[id]/+page.server.js
index 3db4724..0c2a061 100644
--- a/src/routes/incident/[id]/+page.server.js
+++ b/src/routes/incident/[id]/+page.server.js
@@ -1,5 +1,5 @@
// @ts-nocheck
-import { env } from "$env/dynamic/public";
+import { PUBLIC_KENER_FOLDER } from "$env/static/public";
import { GetIncidents, Mapper } from "../../../../scripts/github.js";
import fs from "fs-extra";
@@ -10,7 +10,7 @@ import fs from "fs-extra";
// @ts-ignore
export async function load({ params, route, url, parent }) {
- let monitors = JSON.parse(fs.readFileSync(env.PUBLIC_KENER_FOLDER + "/monitors.json", "utf8"));
+ let monitors = JSON.parse(fs.readFileSync(PUBLIC_KENER_FOLDER + "/monitors.json", "utf8"));
const siteData = await parent();
const github = siteData.site.github;
// @ts-ignore
diff --git a/src/routes/incident/[id]/comments/+server.js b/src/routes/incident/[id]/comments/+server.js
index 9b20eb4..45fdef1 100644
--- a/src/routes/incident/[id]/comments/+server.js
+++ b/src/routes/incident/[id]/comments/+server.js
@@ -1,14 +1,14 @@
// @ts-nocheck
// @ts-ignore
import { json } from "@sveltejs/kit";
-import { env } from "$env/dynamic/public";
+import { PUBLIC_KENER_FOLDER } from "$env/static/public";
import fs from "fs-extra";
import { GetCommentsForIssue } from "../../../../../scripts/github.js";
import { marked } from "marked";
export async function GET({ params }) {
const incidentNumber = params.id;
- let siteData = JSON.parse(fs.readFileSync(env.PUBLIC_KENER_FOLDER + "/site.json", "utf8"));
+ let siteData = JSON.parse(fs.readFileSync(PUBLIC_KENER_FOLDER + "/site.json", "utf8"));
let comments = await GetCommentsForIssue(incidentNumber, siteData.github);
comments = comments.map(
(
diff --git a/src/routes/monitor-[tag]/+page.server.js b/src/routes/monitor-[tag]/+page.server.js
index e4d6688..3f7d88b 100644
--- a/src/routes/monitor-[tag]/+page.server.js
+++ b/src/routes/monitor-[tag]/+page.server.js
@@ -5,11 +5,11 @@ import {
FilterAndInsertMonitorInIncident
} from "../../../scripts/github.js";
import { FetchData } from "$lib/server/page";
-import { env } from "$env/dynamic/public";
+import { PUBLIC_KENER_FOLDER } from "$env/static/public";
import fs from "fs-extra";
export async function load({ params, route, url, parent }) {
- let monitors = JSON.parse(fs.readFileSync(env.PUBLIC_KENER_FOLDER + "/monitors.json", "utf8"));
+ let monitors = JSON.parse(fs.readFileSync(PUBLIC_KENER_FOLDER + "/monitors.json", "utf8"));
const parentData = await parent();
const siteData = parentData.site;
const github = siteData.github;