feat(i18n): add full ja/vi/id/ms translations and drop languageNames fallback
- Add complete dicts: src/locales/{ja,vi,id,ms}.ts (115 keys each)
- Remove languageNames override map; dict object now points directly to each locale
- i18n.tsx shrinks from ~414 lines to ~81 lines
This commit is contained in:
97
src/i18n.tsx
97
src/i18n.tsx
@@ -9,99 +9,22 @@ import { languageForHomePathname } from "./languageRoutes";
|
|||||||
import type { Dict } from "./locales/types";
|
import type { Dict } from "./locales/types";
|
||||||
import { zhDict } from "./locales/zh-CN";
|
import { zhDict } from "./locales/zh-CN";
|
||||||
import { enDict } from "./locales/en";
|
import { enDict } from "./locales/en";
|
||||||
|
import { jaDict } from "./locales/ja";
|
||||||
import { koDict } from "./locales/ko";
|
import { koDict } from "./locales/ko";
|
||||||
|
import { viDict } from "./locales/vi";
|
||||||
|
import { idDict } from "./locales/id";
|
||||||
|
import { msDict } from "./locales/ms";
|
||||||
|
|
||||||
export type Lang = "zh-CN" | "en" | "ja" | "ko" | "vi" | "id" | "ms";
|
export type Lang = "zh-CN" | "en" | "ja" | "ko" | "vi" | "id" | "ms";
|
||||||
|
|
||||||
const languageNames: Record<Lang, Dict> = {
|
|
||||||
"zh-CN": {
|
|
||||||
lang_zh_CN: "中文",
|
|
||||||
lang_en: "English",
|
|
||||||
lang_ja: "日本語",
|
|
||||||
lang_ko: "한국어",
|
|
||||||
lang_vi: "Tiếng Việt",
|
|
||||||
lang_id: "Bahasa Indonesia",
|
|
||||||
lang_ms: "Bahasa Melayu",
|
|
||||||
},
|
|
||||||
en: {
|
|
||||||
lang_zh_CN: "Chinese",
|
|
||||||
lang_en: "English",
|
|
||||||
lang_ja: "Japanese",
|
|
||||||
lang_ko: "Korean",
|
|
||||||
lang_vi: "Vietnamese",
|
|
||||||
lang_id: "Indonesian",
|
|
||||||
lang_ms: "Malay",
|
|
||||||
},
|
|
||||||
ja: {
|
|
||||||
brand: "ARK ライブラリー",
|
|
||||||
showMore: "すべて表示",
|
|
||||||
showLess: "閉じる",
|
|
||||||
lang_zh_CN: "中国語",
|
|
||||||
lang_en: "英語",
|
|
||||||
lang_ja: "日本語",
|
|
||||||
lang_ko: "韓国語",
|
|
||||||
lang_vi: "ベトナム語",
|
|
||||||
lang_id: "インドネシア語",
|
|
||||||
lang_ms: "マレー語",
|
|
||||||
},
|
|
||||||
ko: {
|
|
||||||
brand: "ARK 라이브러리",
|
|
||||||
showMore: "모두 보기",
|
|
||||||
showLess: "접기",
|
|
||||||
lang_zh_CN: "중국어",
|
|
||||||
lang_en: "영어",
|
|
||||||
lang_ja: "일본어",
|
|
||||||
lang_ko: "한국어",
|
|
||||||
lang_vi: "베트남어",
|
|
||||||
lang_id: "인도네시아어",
|
|
||||||
lang_ms: "말레이어",
|
|
||||||
},
|
|
||||||
vi: {
|
|
||||||
brand: "Thư viện ARK",
|
|
||||||
showMore: "Xem tất cả",
|
|
||||||
showLess: "Thu gọn",
|
|
||||||
lang_zh_CN: "Tiếng Trung",
|
|
||||||
lang_en: "Tiếng Anh",
|
|
||||||
lang_ja: "Tiếng Nhật",
|
|
||||||
lang_ko: "Tiếng Hàn",
|
|
||||||
lang_vi: "Tiếng Việt",
|
|
||||||
lang_id: "Tiếng Indonesia",
|
|
||||||
lang_ms: "Tiếng Mã Lai",
|
|
||||||
},
|
|
||||||
id: {
|
|
||||||
brand: "Perpustakaan ARK",
|
|
||||||
showMore: "Lihat semua",
|
|
||||||
showLess: "Tutup",
|
|
||||||
lang_zh_CN: "Bahasa Tionghoa",
|
|
||||||
lang_en: "Bahasa Inggris",
|
|
||||||
lang_ja: "Bahasa Jepang",
|
|
||||||
lang_ko: "Bahasa Korea",
|
|
||||||
lang_vi: "Bahasa Vietnam",
|
|
||||||
lang_id: "Bahasa Indonesia",
|
|
||||||
lang_ms: "Bahasa Melayu",
|
|
||||||
},
|
|
||||||
ms: {
|
|
||||||
brand: "Perpustakaan ARK",
|
|
||||||
showMore: "Lihat semua",
|
|
||||||
showLess: "Tutup",
|
|
||||||
lang_zh_CN: "Bahasa Cina",
|
|
||||||
lang_en: "Bahasa Inggeris",
|
|
||||||
lang_ja: "Bahasa Jepun",
|
|
||||||
lang_ko: "Bahasa Korea",
|
|
||||||
lang_vi: "Bahasa Vietnam",
|
|
||||||
lang_id: "Bahasa Indonesia",
|
|
||||||
lang_ms: "Bahasa Melayu",
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
const dict: Record<Lang, Dict> = {
|
const dict: Record<Lang, Dict> = {
|
||||||
"zh-CN": { ...zhDict, ...languageNames["zh-CN"] },
|
"zh-CN": zhDict,
|
||||||
en: { ...enDict, ...languageNames.en },
|
en: enDict,
|
||||||
ja: { ...enDict, ...languageNames.ja },
|
ja: jaDict,
|
||||||
ko: koDict,
|
ko: koDict,
|
||||||
vi: { ...enDict, ...languageNames.vi },
|
vi: viDict,
|
||||||
id: { ...enDict, ...languageNames.id },
|
id: idDict,
|
||||||
ms: { ...enDict, ...languageNames.ms },
|
ms: msDict,
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Fixed locale lookup (admin UI uses Simplified Chinese). */
|
/** Fixed locale lookup (admin UI uses Simplified Chinese). */
|
||||||
|
|||||||
131
src/locales/id.ts
Normal file
131
src/locales/id.ts
Normal file
@@ -0,0 +1,131 @@
|
|||||||
|
import type { Dict } from "./types";
|
||||||
|
|
||||||
|
export const idDict: Dict = {
|
||||||
|
brand: "Perpustakaan ARK",
|
||||||
|
mainNav: "Menu situs",
|
||||||
|
home: "Beranda",
|
||||||
|
all: "Semua aset",
|
||||||
|
categories: "Kategori",
|
||||||
|
latest: "Terbaru",
|
||||||
|
official: "Pilihan resmi",
|
||||||
|
popular: "Populer",
|
||||||
|
search: "Cari",
|
||||||
|
searchPlaceholder: "Cari sumber daya...",
|
||||||
|
searchPanelPlaceholder: "Cari aset...",
|
||||||
|
searchNow: "Cari sekarang",
|
||||||
|
searchSubmit: "Cari",
|
||||||
|
cancel: "Batal",
|
||||||
|
clear: "Hapus",
|
||||||
|
searchPanelHint:
|
||||||
|
"Pencarian mendukung judul, kategori, tag, ringkasan, jenis file, dan isi.",
|
||||||
|
currentTags: "Tag tersedia",
|
||||||
|
noTagsAvailable: "Belum ada tag yang tersedia.",
|
||||||
|
tagPostsTitle: "Postingan terkait #{{tag}}",
|
||||||
|
noTagPosts: "Belum ada postingan dengan tag ini.",
|
||||||
|
viewAll: "Lihat semua",
|
||||||
|
backToTop: "Kembali ke atas",
|
||||||
|
heroTitle: "Perpustakaan Resmi ARK",
|
||||||
|
heroSub:
|
||||||
|
"Memusatkan, mengatur, dan mengelola perpustakaan ARK agar Anda dapat menemukan yang dibutuhkan dengan cepat dan membantu komunitas tumbuh bersama.",
|
||||||
|
categorySection: "Kategori",
|
||||||
|
officialSection: "Rekomendasi resmi",
|
||||||
|
latestSection: "Pembaruan terbaru",
|
||||||
|
popularSection: "Aset populer",
|
||||||
|
preview: "Pratinjau",
|
||||||
|
download: "Unduh",
|
||||||
|
downloading: "Mengunduh…",
|
||||||
|
downloadOk: "Unduhan selesai",
|
||||||
|
downloadFail: "Unduhan gagal, silakan coba lagi",
|
||||||
|
longPressImageSave: "Tekan lama gambar untuk menyimpan",
|
||||||
|
showMore: "Lihat semua",
|
||||||
|
showLess: "Tutup",
|
||||||
|
share: "Bagikan",
|
||||||
|
langLabel: "Bahasa",
|
||||||
|
admin: "Admin",
|
||||||
|
login: "Masuk",
|
||||||
|
logout: "Keluar",
|
||||||
|
email: "Email",
|
||||||
|
password: "Kata sandi",
|
||||||
|
dashboard: "Dasbor",
|
||||||
|
resources: "Sumber daya",
|
||||||
|
newResource: "Sumber daya baru",
|
||||||
|
save: "Simpan",
|
||||||
|
title: "Judul",
|
||||||
|
description: "Deskripsi",
|
||||||
|
type: "Jenis",
|
||||||
|
language: "Bahasa",
|
||||||
|
category: "Kategori",
|
||||||
|
status: "Status",
|
||||||
|
public: "Publik",
|
||||||
|
downloadable: "Dapat diunduh",
|
||||||
|
recommended: "Unggulan",
|
||||||
|
cover: "URL gambar sampul",
|
||||||
|
fileUrl: "URL file",
|
||||||
|
externalUrl: "Tautan eksternal",
|
||||||
|
body: "Isi teks",
|
||||||
|
badge: "Label lencana",
|
||||||
|
published: "Diterbitkan",
|
||||||
|
draft: "Draf",
|
||||||
|
archived: "Diarsipkan",
|
||||||
|
noResults: "Tidak ada hasil. Coba kata kunci lain atau telusuri kategori.",
|
||||||
|
copyLink: "Salin tautan",
|
||||||
|
related: "Terkait",
|
||||||
|
total: "Total item",
|
||||||
|
views: "Tampilan",
|
||||||
|
downloads: "Unduhan",
|
||||||
|
lang_zh_CN: "Bahasa Tionghoa",
|
||||||
|
lang_en: "Bahasa Inggris",
|
||||||
|
lang_ja: "Bahasa Jepang",
|
||||||
|
lang_ko: "Bahasa Korea",
|
||||||
|
lang_vi: "Bahasa Vietnam",
|
||||||
|
lang_id: "Bahasa Indonesia",
|
||||||
|
lang_ms: "Bahasa Melayu",
|
||||||
|
filterAll: "Semua jenis",
|
||||||
|
sortPublished: "Tanggal terbit",
|
||||||
|
type_ppt: "PPT",
|
||||||
|
type_music: "Musik",
|
||||||
|
type_video: "Video",
|
||||||
|
type_image: "Gambar",
|
||||||
|
type_pdf: "PDF",
|
||||||
|
type_link: "Tautan",
|
||||||
|
type_text: "Teks",
|
||||||
|
type_archive: "Arsip",
|
||||||
|
type_zip: "ZIP",
|
||||||
|
adminLoginTitle: "Masuk admin",
|
||||||
|
adminEditResource: "Edit sumber daya",
|
||||||
|
adminVideoFileHint:
|
||||||
|
"Unggah file video (MP4/WebM/MOV, dll.) dan atur jenis ke Video; situs akan memutar otomatis (default tanpa suara — pengguna dapat membunyikan).",
|
||||||
|
adminStatTodayNew: "Baru hari ini",
|
||||||
|
adminStatFavorites: "Favorit",
|
||||||
|
adminMetricDownloads: "Unduhan",
|
||||||
|
adminMetricFavorites: "Favorit",
|
||||||
|
adminMetricViews: "Tampilan",
|
||||||
|
edit: "Edit",
|
||||||
|
backToList: "Kembali ke daftar",
|
||||||
|
sortOrderLabel: "Urutan",
|
||||||
|
previewUrlLabel: "URL pratinjau",
|
||||||
|
tagsCommaLabel: "Tag (dipisahkan koma)",
|
||||||
|
uploadFile: "Unggah",
|
||||||
|
loading: "Memuat…",
|
||||||
|
paginationPrev: "Sebelumnya",
|
||||||
|
paginationNext: "Berikutnya",
|
||||||
|
listRange: "Menampilkan {{from}}–{{to}} dari {{total}}",
|
||||||
|
pageIndicator: "Halaman {{c}} / {{p}}",
|
||||||
|
resourceLangFilter: "Bahasa sumber daya",
|
||||||
|
filterTagClear: "Hapus tag",
|
||||||
|
filterLanguageAll: "Semua bahasa",
|
||||||
|
footerAdminLogin: "Masuk admin",
|
||||||
|
adminSearchLogs: "Log pencarian",
|
||||||
|
adminMetricShares: "Berbagi",
|
||||||
|
adminSearchQuery: "Kueri",
|
||||||
|
adminSearchTime: "Waktu",
|
||||||
|
adminSearchId: "ID",
|
||||||
|
favorites: "Favorit Saya",
|
||||||
|
favoritesComingSoon: "Segera Hadir",
|
||||||
|
favoritesComingSoonDesc:
|
||||||
|
"Fitur masuk dan favorit sedang dikembangkan. Nantikan.",
|
||||||
|
featureUnavailable: "Belum tersedia",
|
||||||
|
featureUnavailableDesc: "Fitur ini belum tersedia.",
|
||||||
|
confirm: "Mengerti",
|
||||||
|
backToHome: "Kembali ke Beranda",
|
||||||
|
};
|
||||||
131
src/locales/ja.ts
Normal file
131
src/locales/ja.ts
Normal file
@@ -0,0 +1,131 @@
|
|||||||
|
import type { Dict } from "./types";
|
||||||
|
|
||||||
|
export const jaDict: Dict = {
|
||||||
|
brand: "ARK ライブラリー",
|
||||||
|
mainNav: "サイトメニュー",
|
||||||
|
home: "ホーム",
|
||||||
|
all: "すべての資料",
|
||||||
|
categories: "カテゴリー",
|
||||||
|
latest: "最新",
|
||||||
|
official: "公式おすすめ",
|
||||||
|
popular: "人気",
|
||||||
|
search: "検索",
|
||||||
|
searchPlaceholder: "資料を検索...",
|
||||||
|
searchPanelPlaceholder: "資料を検索...",
|
||||||
|
searchNow: "今すぐ検索",
|
||||||
|
searchSubmit: "検索",
|
||||||
|
cancel: "キャンセル",
|
||||||
|
clear: "クリア",
|
||||||
|
searchPanelHint:
|
||||||
|
"タイトル・カテゴリー・タグ・概要・ファイル形式・本文の検索に対応",
|
||||||
|
currentTags: "利用可能なタグ",
|
||||||
|
noTagsAvailable: "現在利用可能なタグはありません。",
|
||||||
|
tagPostsTitle: "#{{tag}} 関連の資料",
|
||||||
|
noTagPosts: "このタグの資料はまだありません。",
|
||||||
|
viewAll: "すべて表示",
|
||||||
|
backToTop: "トップへ戻る",
|
||||||
|
heroTitle: "ARK 公式データベース",
|
||||||
|
heroSub:
|
||||||
|
"ARK ライブラリーを集約・整理・管理し、必要な資料をすばやく見つけてコミュニティの成長を促進します。",
|
||||||
|
categorySection: "カテゴリー",
|
||||||
|
officialSection: "公式おすすめ",
|
||||||
|
latestSection: "最新の更新",
|
||||||
|
popularSection: "人気の資料",
|
||||||
|
preview: "プレビュー",
|
||||||
|
download: "ダウンロード",
|
||||||
|
downloading: "ダウンロード中…",
|
||||||
|
downloadOk: "ダウンロード完了",
|
||||||
|
downloadFail: "ダウンロードに失敗しました。再試行してください",
|
||||||
|
longPressImageSave: "画像を長押しして保存",
|
||||||
|
showMore: "すべて表示",
|
||||||
|
showLess: "閉じる",
|
||||||
|
share: "シェア",
|
||||||
|
langLabel: "言語",
|
||||||
|
admin: "管理画面",
|
||||||
|
login: "ログイン",
|
||||||
|
logout: "ログアウト",
|
||||||
|
email: "メールアドレス",
|
||||||
|
password: "パスワード",
|
||||||
|
dashboard: "ダッシュボード",
|
||||||
|
resources: "資料管理",
|
||||||
|
newResource: "新規資料",
|
||||||
|
save: "保存",
|
||||||
|
title: "タイトル",
|
||||||
|
description: "説明",
|
||||||
|
type: "種類",
|
||||||
|
language: "言語",
|
||||||
|
category: "カテゴリー",
|
||||||
|
status: "ステータス",
|
||||||
|
public: "公開",
|
||||||
|
downloadable: "ダウンロード可",
|
||||||
|
recommended: "おすすめ",
|
||||||
|
cover: "カバー画像 URL",
|
||||||
|
fileUrl: "ファイル URL",
|
||||||
|
externalUrl: "外部リンク",
|
||||||
|
body: "本文",
|
||||||
|
badge: "推薦バッジ",
|
||||||
|
published: "公開済み",
|
||||||
|
draft: "下書き",
|
||||||
|
archived: "アーカイブ",
|
||||||
|
noResults:
|
||||||
|
"該当する資料が見つかりません。別のキーワードを試すか、カテゴリーをご覧ください。",
|
||||||
|
copyLink: "リンクをコピー",
|
||||||
|
related: "関連資料",
|
||||||
|
total: "総資料数",
|
||||||
|
views: "閲覧",
|
||||||
|
downloads: "ダウンロード",
|
||||||
|
lang_zh_CN: "中国語",
|
||||||
|
lang_en: "英語",
|
||||||
|
lang_ja: "日本語",
|
||||||
|
lang_ko: "韓国語",
|
||||||
|
lang_vi: "ベトナム語",
|
||||||
|
lang_id: "インドネシア語",
|
||||||
|
lang_ms: "マレー語",
|
||||||
|
filterAll: "すべての種類",
|
||||||
|
sortPublished: "公開日",
|
||||||
|
type_ppt: "PPT",
|
||||||
|
type_music: "音楽",
|
||||||
|
type_video: "動画",
|
||||||
|
type_image: "画像",
|
||||||
|
type_pdf: "PDF",
|
||||||
|
type_link: "リンク",
|
||||||
|
type_text: "テキスト",
|
||||||
|
type_archive: "アーカイブ",
|
||||||
|
type_zip: "ZIP",
|
||||||
|
adminLoginTitle: "管理画面ログイン",
|
||||||
|
adminEditResource: "資料を編集",
|
||||||
|
adminVideoFileHint:
|
||||||
|
"動画ファイル(MP4/WebM/MOV など)をアップロードし、種類を「動画」に設定すると、サイト上で自動再生されます(デフォルトはミュート、ユーザーが解除可能)。",
|
||||||
|
adminStatTodayNew: "本日の新規",
|
||||||
|
adminStatFavorites: "お気に入り",
|
||||||
|
adminMetricDownloads: "ダウンロード",
|
||||||
|
adminMetricFavorites: "お気に入り",
|
||||||
|
adminMetricViews: "閲覧",
|
||||||
|
edit: "編集",
|
||||||
|
backToList: "一覧へ戻る",
|
||||||
|
sortOrderLabel: "並び順",
|
||||||
|
previewUrlLabel: "プレビュー URL",
|
||||||
|
tagsCommaLabel: "タグ(カンマ区切り)",
|
||||||
|
uploadFile: "アップロード",
|
||||||
|
loading: "読み込み中…",
|
||||||
|
paginationPrev: "前へ",
|
||||||
|
paginationNext: "次へ",
|
||||||
|
listRange: "{{from}}–{{to}} / 全 {{total}} 件",
|
||||||
|
pageIndicator: "{{c}} / {{p}} ページ",
|
||||||
|
resourceLangFilter: "資料の言語",
|
||||||
|
filterTagClear: "タグをクリア",
|
||||||
|
filterLanguageAll: "すべての言語",
|
||||||
|
footerAdminLogin: "管理者ログイン",
|
||||||
|
adminSearchLogs: "検索履歴",
|
||||||
|
adminMetricShares: "シェア",
|
||||||
|
adminSearchQuery: "検索キーワード",
|
||||||
|
adminSearchTime: "時刻",
|
||||||
|
adminSearchId: "ID",
|
||||||
|
favorites: "お気に入り",
|
||||||
|
favoritesComingSoon: "近日公開",
|
||||||
|
favoritesComingSoonDesc: "ログインとお気に入り機能は開発中です。お楽しみに。",
|
||||||
|
featureUnavailable: "未公開",
|
||||||
|
featureUnavailableDesc: "この機能はまだご利用いただけません。",
|
||||||
|
confirm: "了解",
|
||||||
|
backToHome: "ホームへ戻る",
|
||||||
|
};
|
||||||
131
src/locales/ms.ts
Normal file
131
src/locales/ms.ts
Normal file
@@ -0,0 +1,131 @@
|
|||||||
|
import type { Dict } from "./types";
|
||||||
|
|
||||||
|
export const msDict: Dict = {
|
||||||
|
brand: "Perpustakaan ARK",
|
||||||
|
mainNav: "Menu laman",
|
||||||
|
home: "Laman utama",
|
||||||
|
all: "Semua aset",
|
||||||
|
categories: "Kategori",
|
||||||
|
latest: "Terkini",
|
||||||
|
official: "Pilihan rasmi",
|
||||||
|
popular: "Popular",
|
||||||
|
search: "Cari",
|
||||||
|
searchPlaceholder: "Cari sumber...",
|
||||||
|
searchPanelPlaceholder: "Cari aset...",
|
||||||
|
searchNow: "Cari sekarang",
|
||||||
|
searchSubmit: "Cari",
|
||||||
|
cancel: "Batal",
|
||||||
|
clear: "Kosongkan",
|
||||||
|
searchPanelHint:
|
||||||
|
"Carian menyokong tajuk, kategori, tag, ringkasan, jenis fail dan isi teks.",
|
||||||
|
currentTags: "Tag tersedia",
|
||||||
|
noTagsAvailable: "Belum ada tag tersedia.",
|
||||||
|
tagPostsTitle: "Pos berkaitan #{{tag}}",
|
||||||
|
noTagPosts: "Belum ada pos dengan tag ini.",
|
||||||
|
viewAll: "Lihat semua",
|
||||||
|
backToTop: "Kembali ke atas",
|
||||||
|
heroTitle: "Perpustakaan Rasmi ARK",
|
||||||
|
heroSub:
|
||||||
|
"Memusatkan, menyusun dan mengurus perpustakaan ARK supaya anda dapat mencari apa yang diperlukan dengan cepat dan membantu komuniti berkembang bersama.",
|
||||||
|
categorySection: "Kategori",
|
||||||
|
officialSection: "Cadangan rasmi",
|
||||||
|
latestSection: "Kemas kini terkini",
|
||||||
|
popularSection: "Aset popular",
|
||||||
|
preview: "Pratonton",
|
||||||
|
download: "Muat turun",
|
||||||
|
downloading: "Memuat turun…",
|
||||||
|
downloadOk: "Muat turun selesai",
|
||||||
|
downloadFail: "Muat turun gagal, sila cuba lagi",
|
||||||
|
longPressImageSave: "Tekan lama imej untuk simpan",
|
||||||
|
showMore: "Lihat semua",
|
||||||
|
showLess: "Tutup",
|
||||||
|
share: "Kongsi",
|
||||||
|
langLabel: "Bahasa",
|
||||||
|
admin: "Pentadbir",
|
||||||
|
login: "Log masuk",
|
||||||
|
logout: "Log keluar",
|
||||||
|
email: "E-mel",
|
||||||
|
password: "Kata laluan",
|
||||||
|
dashboard: "Papan pemuka",
|
||||||
|
resources: "Sumber",
|
||||||
|
newResource: "Sumber baharu",
|
||||||
|
save: "Simpan",
|
||||||
|
title: "Tajuk",
|
||||||
|
description: "Penerangan",
|
||||||
|
type: "Jenis",
|
||||||
|
language: "Bahasa",
|
||||||
|
category: "Kategori",
|
||||||
|
status: "Status",
|
||||||
|
public: "Awam",
|
||||||
|
downloadable: "Boleh dimuat turun",
|
||||||
|
recommended: "Pilihan",
|
||||||
|
cover: "URL imej muka",
|
||||||
|
fileUrl: "URL fail",
|
||||||
|
externalUrl: "Pautan luar",
|
||||||
|
body: "Isi teks",
|
||||||
|
badge: "Label lencana",
|
||||||
|
published: "Diterbitkan",
|
||||||
|
draft: "Draf",
|
||||||
|
archived: "Diarkibkan",
|
||||||
|
noResults: "Tiada hasil. Cuba kata kunci lain atau imbas kategori.",
|
||||||
|
copyLink: "Salin pautan",
|
||||||
|
related: "Berkaitan",
|
||||||
|
total: "Jumlah item",
|
||||||
|
views: "Tontonan",
|
||||||
|
downloads: "Muat turun",
|
||||||
|
lang_zh_CN: "Bahasa Cina",
|
||||||
|
lang_en: "Bahasa Inggeris",
|
||||||
|
lang_ja: "Bahasa Jepun",
|
||||||
|
lang_ko: "Bahasa Korea",
|
||||||
|
lang_vi: "Bahasa Vietnam",
|
||||||
|
lang_id: "Bahasa Indonesia",
|
||||||
|
lang_ms: "Bahasa Melayu",
|
||||||
|
filterAll: "Semua jenis",
|
||||||
|
sortPublished: "Tarikh terbit",
|
||||||
|
type_ppt: "PPT",
|
||||||
|
type_music: "Muzik",
|
||||||
|
type_video: "Video",
|
||||||
|
type_image: "Imej",
|
||||||
|
type_pdf: "PDF",
|
||||||
|
type_link: "Pautan",
|
||||||
|
type_text: "Teks",
|
||||||
|
type_archive: "Arkib",
|
||||||
|
type_zip: "ZIP",
|
||||||
|
adminLoginTitle: "Log masuk pentadbir",
|
||||||
|
adminEditResource: "Sunting sumber",
|
||||||
|
adminVideoFileHint:
|
||||||
|
"Muat naik fail video (MP4/WebM/MOV, dll.) dan tetapkan jenis kepada Video; laman akan main automatik (asalnya senyap — pengguna boleh hidupkan bunyi).",
|
||||||
|
adminStatTodayNew: "Baharu hari ini",
|
||||||
|
adminStatFavorites: "Kegemaran",
|
||||||
|
adminMetricDownloads: "Muat turun",
|
||||||
|
adminMetricFavorites: "Kegemaran",
|
||||||
|
adminMetricViews: "Tontonan",
|
||||||
|
edit: "Sunting",
|
||||||
|
backToList: "Kembali ke senarai",
|
||||||
|
sortOrderLabel: "Susunan",
|
||||||
|
previewUrlLabel: "URL pratonton",
|
||||||
|
tagsCommaLabel: "Tag (dipisahkan koma)",
|
||||||
|
uploadFile: "Muat naik",
|
||||||
|
loading: "Memuatkan…",
|
||||||
|
paginationPrev: "Sebelum",
|
||||||
|
paginationNext: "Seterusnya",
|
||||||
|
listRange: "Menunjukkan {{from}}–{{to}} daripada {{total}}",
|
||||||
|
pageIndicator: "Halaman {{c}} / {{p}}",
|
||||||
|
resourceLangFilter: "Bahasa sumber",
|
||||||
|
filterTagClear: "Kosongkan tag",
|
||||||
|
filterLanguageAll: "Semua bahasa",
|
||||||
|
footerAdminLogin: "Log masuk pentadbir",
|
||||||
|
adminSearchLogs: "Log carian",
|
||||||
|
adminMetricShares: "Kongsi",
|
||||||
|
adminSearchQuery: "Kata kunci",
|
||||||
|
adminSearchTime: "Masa",
|
||||||
|
adminSearchId: "ID",
|
||||||
|
favorites: "Kegemaran Saya",
|
||||||
|
favoritesComingSoon: "Akan Hadir",
|
||||||
|
favoritesComingSoonDesc:
|
||||||
|
"Ciri log masuk dan kegemaran sedang dibangunkan. Nantikan.",
|
||||||
|
featureUnavailable: "Belum tersedia",
|
||||||
|
featureUnavailableDesc: "Ciri ini belum tersedia.",
|
||||||
|
confirm: "Faham",
|
||||||
|
backToHome: "Kembali ke Laman Utama",
|
||||||
|
};
|
||||||
131
src/locales/vi.ts
Normal file
131
src/locales/vi.ts
Normal file
@@ -0,0 +1,131 @@
|
|||||||
|
import type { Dict } from "./types";
|
||||||
|
|
||||||
|
export const viDict: Dict = {
|
||||||
|
brand: "Thư viện ARK",
|
||||||
|
mainNav: "Menu trang web",
|
||||||
|
home: "Trang chủ",
|
||||||
|
all: "Tất cả tài liệu",
|
||||||
|
categories: "Danh mục",
|
||||||
|
latest: "Mới nhất",
|
||||||
|
official: "Đề xuất chính thức",
|
||||||
|
popular: "Phổ biến",
|
||||||
|
search: "Tìm kiếm",
|
||||||
|
searchPlaceholder: "Tìm tài liệu...",
|
||||||
|
searchPanelPlaceholder: "Tìm tài liệu...",
|
||||||
|
searchNow: "Tìm ngay",
|
||||||
|
searchSubmit: "Tìm kiếm",
|
||||||
|
cancel: "Hủy",
|
||||||
|
clear: "Xóa",
|
||||||
|
searchPanelHint:
|
||||||
|
"Hỗ trợ tìm theo tiêu đề, danh mục, thẻ, tóm tắt, loại tệp và nội dung.",
|
||||||
|
currentTags: "Thẻ hiện có",
|
||||||
|
noTagsAvailable: "Chưa có thẻ nào.",
|
||||||
|
tagPostsTitle: "Tài liệu liên quan #{{tag}}",
|
||||||
|
noTagPosts: "Chưa có tài liệu nào với thẻ này.",
|
||||||
|
viewAll: "Xem tất cả",
|
||||||
|
backToTop: "Lên đầu trang",
|
||||||
|
heroTitle: "Thư viện chính thức ARK",
|
||||||
|
heroSub:
|
||||||
|
"Tập trung, phân loại và quản lý thư viện ARK để bạn nhanh chóng tìm thấy tài nguyên cần thiết và thúc đẩy sự phát triển của cộng đồng.",
|
||||||
|
categorySection: "Danh mục",
|
||||||
|
officialSection: "Đề xuất chính thức",
|
||||||
|
latestSection: "Cập nhật mới",
|
||||||
|
popularSection: "Tài liệu phổ biến",
|
||||||
|
preview: "Xem trước",
|
||||||
|
download: "Tải xuống",
|
||||||
|
downloading: "Đang tải xuống…",
|
||||||
|
downloadOk: "Tải xuống hoàn tất",
|
||||||
|
downloadFail: "Tải xuống thất bại, vui lòng thử lại",
|
||||||
|
longPressImageSave: "Nhấn giữ ảnh để lưu",
|
||||||
|
showMore: "Xem tất cả",
|
||||||
|
showLess: "Thu gọn",
|
||||||
|
share: "Chia sẻ",
|
||||||
|
langLabel: "Ngôn ngữ",
|
||||||
|
admin: "Quản trị",
|
||||||
|
login: "Đăng nhập",
|
||||||
|
logout: "Đăng xuất",
|
||||||
|
email: "Email",
|
||||||
|
password: "Mật khẩu",
|
||||||
|
dashboard: "Bảng điều khiển",
|
||||||
|
resources: "Tài liệu",
|
||||||
|
newResource: "Tài liệu mới",
|
||||||
|
save: "Lưu",
|
||||||
|
title: "Tiêu đề",
|
||||||
|
description: "Mô tả",
|
||||||
|
type: "Loại",
|
||||||
|
language: "Ngôn ngữ",
|
||||||
|
category: "Danh mục",
|
||||||
|
status: "Trạng thái",
|
||||||
|
public: "Công khai",
|
||||||
|
downloadable: "Có thể tải xuống",
|
||||||
|
recommended: "Nổi bật",
|
||||||
|
cover: "URL ảnh bìa",
|
||||||
|
fileUrl: "URL tệp",
|
||||||
|
externalUrl: "Liên kết bên ngoài",
|
||||||
|
body: "Nội dung",
|
||||||
|
badge: "Nhãn đề xuất",
|
||||||
|
published: "Đã xuất bản",
|
||||||
|
draft: "Bản nháp",
|
||||||
|
archived: "Đã lưu trữ",
|
||||||
|
noResults: "Không có kết quả. Hãy thử từ khóa khác hoặc duyệt danh mục.",
|
||||||
|
copyLink: "Sao chép liên kết",
|
||||||
|
related: "Tài liệu liên quan",
|
||||||
|
total: "Tổng số tài liệu",
|
||||||
|
views: "Lượt xem",
|
||||||
|
downloads: "Lượt tải",
|
||||||
|
lang_zh_CN: "Tiếng Trung",
|
||||||
|
lang_en: "Tiếng Anh",
|
||||||
|
lang_ja: "Tiếng Nhật",
|
||||||
|
lang_ko: "Tiếng Hàn",
|
||||||
|
lang_vi: "Tiếng Việt",
|
||||||
|
lang_id: "Tiếng Indonesia",
|
||||||
|
lang_ms: "Tiếng Mã Lai",
|
||||||
|
filterAll: "Tất cả loại",
|
||||||
|
sortPublished: "Ngày xuất bản",
|
||||||
|
type_ppt: "PPT",
|
||||||
|
type_music: "Âm nhạc",
|
||||||
|
type_video: "Video",
|
||||||
|
type_image: "Hình ảnh",
|
||||||
|
type_pdf: "PDF",
|
||||||
|
type_link: "Liên kết",
|
||||||
|
type_text: "Văn bản",
|
||||||
|
type_archive: "Tệp nén",
|
||||||
|
type_zip: "ZIP",
|
||||||
|
adminLoginTitle: "Đăng nhập quản trị",
|
||||||
|
adminEditResource: "Chỉnh sửa tài liệu",
|
||||||
|
adminVideoFileHint:
|
||||||
|
"Tải lên tệp video (MP4/WebM/MOV, v.v.) và đặt loại là Video; trang web sẽ tự động phát (mặc định tắt tiếng, người dùng có thể bật).",
|
||||||
|
adminStatTodayNew: "Mới hôm nay",
|
||||||
|
adminStatFavorites: "Yêu thích",
|
||||||
|
adminMetricDownloads: "Lượt tải",
|
||||||
|
adminMetricFavorites: "Yêu thích",
|
||||||
|
adminMetricViews: "Lượt xem",
|
||||||
|
edit: "Chỉnh sửa",
|
||||||
|
backToList: "Quay lại danh sách",
|
||||||
|
sortOrderLabel: "Thứ tự sắp xếp",
|
||||||
|
previewUrlLabel: "URL xem trước",
|
||||||
|
tagsCommaLabel: "Thẻ (cách nhau bằng dấu phẩy)",
|
||||||
|
uploadFile: "Tải lên",
|
||||||
|
loading: "Đang tải…",
|
||||||
|
paginationPrev: "Trước",
|
||||||
|
paginationNext: "Sau",
|
||||||
|
listRange: "Hiển thị {{from}}–{{to}} trên {{total}}",
|
||||||
|
pageIndicator: "Trang {{c}} / {{p}}",
|
||||||
|
resourceLangFilter: "Ngôn ngữ tài liệu",
|
||||||
|
filterTagClear: "Xóa thẻ",
|
||||||
|
filterLanguageAll: "Tất cả ngôn ngữ",
|
||||||
|
footerAdminLogin: "Đăng nhập quản trị",
|
||||||
|
adminSearchLogs: "Lịch sử tìm kiếm",
|
||||||
|
adminMetricShares: "Chia sẻ",
|
||||||
|
adminSearchQuery: "Từ khóa",
|
||||||
|
adminSearchTime: "Thời gian",
|
||||||
|
adminSearchId: "ID",
|
||||||
|
favorites: "Yêu thích của tôi",
|
||||||
|
favoritesComingSoon: "Sắp ra mắt",
|
||||||
|
favoritesComingSoonDesc:
|
||||||
|
"Tính năng đăng nhập và yêu thích đang phát triển. Hãy chờ đón.",
|
||||||
|
featureUnavailable: "Chưa khả dụng",
|
||||||
|
featureUnavailableDesc: "Tính năng này hiện chưa khả dụng.",
|
||||||
|
confirm: "Đã hiểu",
|
||||||
|
backToHome: "Về trang chủ",
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user