feat: add vietnamese (#218)

This commit is contained in:
f97 2022-09-16 20:09:59 +07:00 committed by GitHub
parent 7e8d1128f8
commit 811f3340e9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 138 additions and 2 deletions

View file

@ -30,7 +30,7 @@ func (key UserSettingKey) String() string {
}
var (
UserSettingLocaleValue = []string{"en", "zh"}
UserSettingLocaleValue = []string{"en", "zh", "vi"}
UserSettingMemoVisibilityValue = []Visibility{Privite, Protected, Public}
UserSettingEditorFontStyleValue = []string{"normal", "mono"}
)

View file

@ -15,6 +15,10 @@ const localeSelectorItems = [
text: "中文",
value: "zh",
},
{
text: "Tiếng Việt",
value: "vi",
},
];
const editorFontStyleSelectorItems = [

View file

@ -2,10 +2,12 @@ import { useEffect, useState } from "react";
import i18nStore from "./i18nStore";
import enLocale from "../../locales/en.json";
import zhLocale from "../../locales/zh.json";
import viLocale from "../../locales/vi.json";
const resources: Record<string, any> = {
en: enLocale,
zh: zhLocale,
vi: viLocale,
};
const useI18n = () => {

126
web/src/locales/vi.json Normal file
View file

@ -0,0 +1,126 @@
{
"common": {
"about": "Thông Tin",
"email": "Email",
"password": "Mật khẩu",
"new-password": "Mật khẩu mới",
"repeat-new-password": "Nhập lại mật khẩu mới",
"username": "Tên đăng nhập",
"save": "Lưu",
"cancel": "Hủy",
"create": "Tạo mới",
"change": "Thay đổi",
"reset": "Khôi phục",
"language": "Ngôn Ngữ",
"version": "Phiên bản",
"pin": "Gắn lên trên cùng",
"unpin": "Gỡ khỏi vị trị trên cùng",
"edit": "Chỉnh sửa",
"restore": "Khôi phục",
"delete": "Xóa",
"null": "Null",
"share": "Chia sẻ",
"mark": "Đánh dấu",
"archive": "Lưu trữ",
"basic": "Cơ bản",
"admin": "Admin",
"explore": "Khám phá",
"sign-in": "Đăng nhập",
"sign-out": "Đăng xuất",
"back-to-home": "Quay về trang chủ",
"type": "Kiểu",
"shortcuts": "Lối tắt",
"shortcut-title": "Tên lối tắt",
"title": "Tên",
"filter": "Bộ lọc",
"tags": "Thẻ",
"no-memos": "Không có memo nào 🌃",
"memos-ready": "Tất cả memo ở đây rồi 🎉",
"yourself": "Của bạn",
"archived-at": "Lưu trữ lúc",
"restored-successfully": "Đã khôi phục thành công",
"memo-updated-datetime":"Memo đã thay đổi ngày giờ tạo.",
"invalid-created-datetime": "Ngày giờ tạo không hợp lệ.",
"change-memo-created-time": "Thay đổi thời gian tạo memo",
"memo-not-found": "Không tìm thấy memo.",
"fill-all": "Vui lòng nhập tất cả các mục.",
"new-password-not-match": "Mật khẩu mới không giống nhau.",
"changed": "đã thay đổi",
"image-load-failed": "Tải ảnh bị lỗi",
"fill-form": "Please fill out this form",
"login-failed": "Đăng nhập thất bại",
"signup-failed": "Đăng ký thất bại",
"user-not-found": "Không tìm thấy người dùng này"
},
"slogan": "Một mã nguồn mở, tự lưu lại mọi thứ bạn biết dựa trên SQLite db.",
"auth": {
"signup-as-host": "Đăng ký như chủ nhân",
"host-tip": "Bạn đang đăng ký với tư cách chủ nhân của trang web này.",
"not-host-tip": "Nếu chưa có tài khoản, bạn cần phải liên hệ chủ nhân của trang web."
},
"sidebar": {
"daily-review": "Đánh giá hàng ngày",
"resources": "Tài nguyên",
"setting": "Cài đặt",
"archived": "Lưu"
},
"daily-review": {
"oops-nothing": "Oops, chẳng có gì ở đây cả."
},
"resources": {
"description": "Xem toàn bộ tài nguyên của trang web. ví dụ hình ảnh",
"no-resources": "Không có tài nguyên.",
"fetching-data": "đang tải dữ liệu...",
"upload": "Tải lên",
"preview": "Xem trước",
"copy-link": "Sao chép"
},
"archived": {
"archived-memos": "Memo đã lưu trữ",
"no-archived-memos": "Không có memo nào cả.",
"fetching-data": "đang tải dữ liệu..."
},
"editor": {
"editing": "Đang chỉnh sửa...",
"save": "Lưu",
"placeholder": "Bất cứ gì bạn đang nghĩ...",
"only-image-supported": "Chỉ hỗ trợ hình ảnh.",
"cant-empty": "Nội dung không thể trống"
},
"memo": {
"view-story": "Xem nội dung"
},
"memo-list": {
"fetching-data": "đang tải dữ liệu..."
},
"shortcut-list": {
"create-shortcut": "Tạo lối tắt",
"edit-shortcut": "Chỉnh sửa lối tắt",
"new-filter": "Bộ lọc mới",
"eligible-memo": "memo đạt chuẩn",
"fill-previous": "Vui lòng nhập vào giá trị của bộ lọc trước đó",
"title-required": "Tiêu đề là bắt buộc"
},
"tag-list": {
"tip-text": "Nhập `#tag` để tạo mới"
},
"search": {
"quickly-filter": "Lọc nhanh"
},
"setting": {
"my-account": "Tài khoản",
"preference": "Sở thích",
"member": "Thành viên",
"member-list": "Danh sách thành viên",
"account-section": {
"title": "Thông tin tài khoản"
},
"preference-section": {
"default-memo-visibility": "Chế độ memo mặc định",
"editor-font-style": "Thay đổi font cho trình soạn thảo"
},
"member-section": {
"create-a-member": "Tạo một thành viên"
}
}
}

View file

@ -162,6 +162,10 @@ const Auth = () => {
<span className={`locale-item ${locale === "zh" ? "active" : ""}`} onClick={() => handleLocaleItemClick("zh")}>
</span>
<span className="split-line">/</span>
<span className={`locale-item ${locale === "vi" ? "active" : ""}`} onClick={() => handleLocaleItemClick("vi")}>
Tiếng Việt
</span>
</div>
</div>
</div>

View file

@ -1 +1 @@
type Locale = "en" | "zh";
type Locale = "en" | "zh" | "vi";