diff --git a/assets/styles/articles.scss b/assets/styles/articles.scss
index 0c1cc949..68ee0273 100644
--- a/assets/styles/articles.scss
+++ b/assets/styles/articles.scss
@@ -28,7 +28,7 @@ h4 {
margin-bottom: 0.4em;
}
-a {
+:deep(a) {
text-decoration: underline;
}
diff --git a/i18n.config.js b/i18n.config.js
deleted file mode 100644
index a3e3e496..00000000
--- a/i18n.config.js
+++ /dev/null
@@ -1,39 +0,0 @@
-export default {
- legacy: false,
- fallbackLocale: "en",
- messages: {
- en: {
- siteTitle: "Genshin Dictionary",
- indexTitleDesc: "An online English-Chinese-Japanese dictionary of the terms in Genshin Impact",
- aboutTitle: "About this website",
- aboutDescription: "About Genshin Dictionary. This website is an online English-Chinese-Japanese dictionary of the terms in Genshin Impact.",
- historyTitle: "Update History",
- opendataTitle: "Open Data / API (β)",
- langNameEn: "English",
- langNameJa: "Japanese",
- langNameZhCN: "Chinese",
- },
- ja: {
- siteTitle: "原神 英語・中国語辞典",
- indexTitleDesc: "原神の固有名詞等の英語表記、及び中国語表記の一覧を掲載しています。",
- aboutTitle: "このサイトについて",
- aboutDescription: "原神英語・中国語辞典についての説明です。このサイトは PC・スマートフォン・プレイステーション4/5用ゲーム「原神」で用いられる固有名詞等の日本語・英語・中国語対訳表です。",
- historyTitle: "更新履歴",
- opendataTitle: "オープンデータ・API (β)",
- langNameEn: "英語",
- langNameJa: "日本語",
- langNameZhCN: "中国語",
- },
- "zh-CN": {
- siteTitle: "原神中英日辞典",
- indexTitleDesc: "一个在线的中英日三语原神游戏用语辞典",
- aboutTitle: "关于本网站",
- aboutDescription: "关于原神中英日辞典。本网站是一个在线的中英日三语原神游戏用语辞典。",
- historyTitle: "更新记录",
- opendataTitle: "开放数据 · API (β)",
- langNameEn: "英语",
- langNameJa: "日语",
- langNameZhCN: "简体中文",
- },
- },
-};
diff --git a/i18n.config.ts b/i18n.config.ts
new file mode 100644
index 00000000..a225c43a
--- /dev/null
+++ b/i18n.config.ts
@@ -0,0 +1,13 @@
+import en from './lang/en'
+import ja from './lang/ja'
+import zhCN from './lang/zh-CN'
+
+export default defineI18nConfig(() => ({
+ legacy: false,
+ fallbackLocale: 'en',
+ messages: {
+ en,
+ ja,
+ 'zh-CN': zhCN
+ }
+}))
\ No newline at end of file
diff --git a/lang/en.ts b/lang/en.ts
new file mode 100644
index 00000000..43f12ba1
--- /dev/null
+++ b/lang/en.ts
@@ -0,0 +1,9 @@
+import common from './en/common'
+import about from './en/about'
+import opendata from './en/opendata'
+
+export default {
+ ...common,
+ ...about,
+ ...opendata,
+}
\ No newline at end of file
diff --git a/lang/en/about.ts b/lang/en/about.ts
new file mode 100644
index 00000000..63ada786
--- /dev/null
+++ b/lang/en/about.ts
@@ -0,0 +1,24 @@
+export default {
+ aboutTitle: "About this website",
+ aboutDescription: "About Genshin Dictionary. This website is an online English-Chinese-Japanese dictionary of the terms in Genshin Impact.",
+ aboutIntro: "This site is a Japanese-English-Chinese translation table for proper nouns used in the PC/smartphone/PlayStation 4/5 game {genshinLink}.",
+ wordCount: "The current number of words included is {count}.",
+ precautionsTitle: "Precautions and Disclaimer",
+ precautions1: "Please note that due to the nature of this site, which lists translations of proper nouns from the game, there are many liberal translations, and the translations may differ from their general meanings.",
+ precautions2: "The readings (furigana) are provided to improve search accuracy and have not been thoroughly researched for accuracy. Please be aware that there may be many errors. If you want to collect more accurate information about readings, we recommend referring to the {genshinDictionaryLink}.",
+ precautions3: "This site is a fan site operated by a single player and is not affiliated with the developer, HoYoverse (COGNOSPHERE PTE., LTD./miHoYo Co., Ltd.).",
+ openDataTitle: "Open Data & API (β)",
+ openDataContent: "The translation data of this site is distributed in CSV format (for general users) and JSON format (for technical users).
For details, please check the {openDataLink}.",
+ openDataPageLink: "Open Data & API page",
+ operatorTitle: "Operator and Contributors",
+ operator: "Operator: Xicri ({twitterLink} / {githubLink})",
+ contributor: "Chinese translation data creation: Bill Haku ({bilibiliLink} / {twitterLink} / {githubLink})",
+ contact: "For inquiries, please contact us via {twitterLink}. (DM available)
For bug reports, open data/API related issues, and other technical inquiries, you can also contact us through GitHub {issuesLink} or {discussionsLink}.
When contacting us, please use Japanese or English if possible.",
+ creditsTitle: "Credits",
+ credits1: "Some of the reading data on this site refers to the {genshinDictionaryLink} and the {genshinKanjiLabLink}.",
+ credits2: "The words on this site are primarily referenced from the game, official YouTube videos, tweets, etc., but some words such as artifacts refer to the {genshinWikiLink}.",
+ credits3: "This site uses {octiconsLink} provided by GitHub under the {licenseLink}.",
+ credits4: "Part of this site's favicon uses {logoTypeGothicLink}.",
+ genshinDictionary: "Genshin Glossary",
+ genshinKanjiLab: "Genshin Kanji Research Lab",
+} as const;
\ No newline at end of file
diff --git a/lang/en/common.ts b/lang/en/common.ts
new file mode 100644
index 00000000..a0c0021e
--- /dev/null
+++ b/lang/en/common.ts
@@ -0,0 +1,12 @@
+export default {
+ siteTitle: "Genshin Dictionary",
+ indexTitleDesc: "An online English-Chinese-Japanese dictionary of the terms in Genshin Impact",
+ historyTitle: "Update History",
+ opendataTitle: "Open Data / API (β)",
+ langNameEn: "English",
+ langNameJa: "Japanese",
+ langNameZhCN: "Chinese",
+ genshinImpact: "Genshin Impact",
+ license: "license",
+ logoTypeGothic: "Logo Type Gothic",
+} as const;
\ No newline at end of file
diff --git a/lang/en/opendata.ts b/lang/en/opendata.ts
new file mode 100644
index 00000000..1f4454af
--- /dev/null
+++ b/lang/en/opendata.ts
@@ -0,0 +1,53 @@
+export default {
+ introText: "The translation data from this site is available in CSV format (for general users) and JSON format (for developers). You may freely process, publish, and redistribute the data. (Please refer to the Usage Notes section for details)",
+
+ csvTitle: "CSV (For General Users)",
+ csvDownloadUtf8: "Download CSV (UTF-8 version)",
+ csvDownloadShiftJis: "Download CSV (Shift_JIS version)",
+ csvNote: "When opening CSV files in Excel, the Shift_JIS version is recommended. The UTF-8 version may cause character encoding issues.\nFor other software, if you encounter character encoding issues, please try both UTF-8 and Shift_JIS versions.",
+
+ jsonTitle: "JSON (For Developers)",
+ jsonUrlTitle: "Data URL",
+ jsonUrlText: "Data can be retrieved from {url}",
+ jsonFormatTitle: "Data Format",
+ jsonFormatText: "The JSON consists of an array of objects as shown in the following example:",
+
+ propertyTitle: "Each object has the following properties:",
+ propertyId: "Unique ID for each word. You can access the word's page on this site at https://genshin-dictionary.com/[ ID ]/. Please note that this may change without notice.",
+ propertyEn: "English name",
+ propertyJa: "Japanese name",
+ propertyZhCN: "Chinese name",
+ propertyPronunciationJa: "Japanese reading (in hiragana, katakana, and symbols)",
+ propertyNotes: "Notes (for Japanese speakers). May contain HTML.",
+ propertyNotesZh: "Notes (for Chinese speakers). May contain HTML.",
+ propertyVariants: "Common misspellings and alternate names. For example, the misspelling '鐘離' for Zhongli, or the abbreviation '血染め' for 'Bloodstained Chivalry'.",
+ propertyVariantsEn: "English misspellings and alternate names",
+ propertyVariantsJa: "Japanese misspellings and alternate names",
+ propertyExamples: "Example sentences",
+ propertyExamplesEn: "Example sentence in English",
+ propertyExamplesJa: "Example sentence in Japanese",
+ propertyExamplesRef: "Source of the example",
+ propertyExamplesRefURL: "Link to the source",
+ propertyCreatedAt: "Creation date (yyyy-mm-dd format)",
+ propertyUpdatedAt: "Last update date (yyyy-mm-dd format)",
+ propertyTags: "Tags. The following tags exist:",
+
+ compatibilityTitle: "Compatibility",
+ compatibilityText: "This data is currently in beta. Please be aware that there may be breaking changes without notice.",
+
+ usageNotesTitle: "Usage Notes",
+ lastUpdated: "Last updated: January 3, 2022",
+ usageNotes: {
+ basic: "The CSV and JSON translation data (hereinafter referred to as 'the Data') distributed by this site may be freely processed, published, and redistributed.",
+ citation: "You are not required to display the site name or URL as the source of the Data (though you are welcome to do so).",
+ revocation: {
+ intro: "The permission to use the Data will be revoked in the following cases. If the revocation of permission results in the loss of your right to publish or redistribute the Data or derivative works, you must promptly cease publication and redistribution:",
+ rights: "If publishing or redistributing the Data infringes on the rights of HoYoverse operating companies (COGNOSPHERE PTE. LTD., miHoYo Co., Ltd., and other national branches or subsidiaries) or other third parties",
+ terms: "If publishing or redistributing the Data violates the terms of service of Genshin Impact or related services (such as HoYoLab)",
+ laws: "If publishing or redistributing the Data violates Japanese law or the laws of your country of residence",
+ request: "If requested by the site operator to cease use of the Data"
+ },
+ disclaimer: "The site operator assumes no responsibility for any damages incurred by you or third parties in connection with the use, processing, publication, or redistribution of the Data."
+ },
+ contactText: "If you have any questions, please contact us via {twitterLink}. (You can send DMs even if you don't follow us.)"
+} as const;
\ No newline at end of file
diff --git a/lang/ja.ts b/lang/ja.ts
new file mode 100644
index 00000000..f6fa27ac
--- /dev/null
+++ b/lang/ja.ts
@@ -0,0 +1,9 @@
+import common from './ja/common'
+import about from './ja/about'
+import opendata from './ja/opendata'
+
+export default {
+ ...common,
+ ...about,
+ ...opendata,
+}
\ No newline at end of file
diff --git a/lang/ja/about.ts b/lang/ja/about.ts
new file mode 100644
index 00000000..5ae950bf
--- /dev/null
+++ b/lang/ja/about.ts
@@ -0,0 +1,24 @@
+export default {
+ aboutTitle: "このサイトについて",
+ aboutDescription: "原神英語・中国語辞典についての説明です。このサイトは PC・スマートフォン・プレイステーション4/5用ゲーム「原神」で用いられる固有名詞等の日本語・英語・中国語対訳表です。",
+ aboutIntro: "このサイトは PC・スマートフォン・プレイステーション4/5用ゲーム「{genshinLink}」で用いられる固有名詞等の日本語・英語・中国語対訳表です。",
+ wordCount: "現在の収録単語数は{count}語です。",
+ precautionsTitle: "ご利用にあたっての注意・免責事項",
+ precautions1: "本サイトはゲームの固有名詞等の対訳を掲載している都合上、意訳が多く、一般的な意味とは訳が異なる場合がありますので、ご注意下さい。",
+ precautions2: "読み仮名は検索精度の向上を目的として付けており、その正確性について十分な調査をしておりません。間違いが多く含まれる可能性があることをご了承下さい。読み仮名について、より正確な情報を収集されたい場合、{genshinDictionaryLink}を参照されることをおすすめします。",
+ precautions3: "このサイトは一プレイヤーが運営しているファンサイトであり、開発元である HoYoverse (COGNOSPHERE 社・miHoYo 社)とは関係ありません。",
+ openDataTitle: "オープンデータ・API (β)",
+ openDataContent: "本サイトの対訳表データは CSV 形式 (一般向け) 及び JSON 形式 (技術者向け) で配布しています。
詳細は{openDataLink}をご確認下さい。",
+ openDataPageLink: "オープンデータ・APIについてのページ",
+ operatorTitle: "運営者・貢献者",
+ operator: "運営者: シクリ ({twitterLink} / {githubLink})",
+ contributor: "中国語翻訳データ作成: Bill Haku ({bilibiliLink} / {twitterLink} / {githubLink})",
+ contact: "お問い合わせなどの際は {twitterLink} からご連絡下さい。(DM 可)
バグ報告やオープンデータ・API 関連、その他技術的なお問い合わせについては、GitHub の {issuesLink} や {discussionsLink} からお問い合わせ頂いても構いません。
お問い合わせの際は、できるだけ日本語又は英語でお願いします。",
+ creditsTitle: "クレジット",
+ credits1: "本サイトの読み仮名データの一部は、{genshinDictionaryLink}及び{genshinKanjiLabLink}を参照しています。",
+ credits2: "本サイトの単語は、原則としてゲームや公式から配信される YouTube 動画、ツイート等を参照していますが、聖遺物など一部の単語については {genshinWikiLink} を参照しています。",
+ credits3: "本サイトは GitHub 社により {licenseLink}にて提供されている {octiconsLink} を利用しています。",
+ credits4: "本サイトの favicon の一部には{logoTypeGothicLink}を利用しています。",
+ genshinDictionary: "原神用語辞書",
+ genshinKanjiLab: "原神漢字研究所",
+} as const;
\ No newline at end of file
diff --git a/lang/ja/common.ts b/lang/ja/common.ts
new file mode 100644
index 00000000..b5fb8bee
--- /dev/null
+++ b/lang/ja/common.ts
@@ -0,0 +1,12 @@
+export default {
+ siteTitle: "原神 英語・中国語辞典",
+ indexTitleDesc: "原神の固有名詞等の英語表記、及び中国語表記の一覧を掲載しています。",
+ historyTitle: "更新履歴",
+ opendataTitle: "オープンデータ・API (β)",
+ langNameEn: "英語",
+ langNameJa: "日本語",
+ langNameZhCN: "中国語",
+ genshinImpact: "原神",
+ license: "ライセンス",
+ logoTypeGothic: "ロゴたいぷゴシック",
+} as const;
\ No newline at end of file
diff --git a/lang/ja/opendata.ts b/lang/ja/opendata.ts
new file mode 100644
index 00000000..62dc03d4
--- /dev/null
+++ b/lang/ja/opendata.ts
@@ -0,0 +1,56 @@
+export default {
+ notTranslated: "このページは英語/簡体字中国語に完全には翻訳されていません。",
+ introText: "本サイトの対訳表データは CSV 形式 (一般向け) 及び JSON 形式 (技術者向け) で配布しています。データは、基本的に自由に加工し掲載・再配布して頂いて構いません。(詳細は利用上の注意の項をお読み下さい)",
+
+ csvTitle: "CSV (一般向け)",
+ csvDownloadUtf8: "CSV (UTF-8 版) をダウンロード",
+ csvDownloadShiftJis: "CSV (Shift_JIS 版) をダウンロード",
+ csvNote: "Excel を用いて CSV を開く場合は、Shift_JIS 版の利用を推奨します。UTF-8 版を用いると文字化けする可能性があります。\nその他のソフトウェアを用いる場合についても、文字化けが発生する場合は UTF-8 版と Shift_JIS 版の両方を試してみて下さい。",
+
+ jsonTitle: "JSON (技術者向け)",
+ jsonUrlTitle: "データ URL",
+ jsonUrlText: "{url} からデータを取得できます。",
+ jsonFormatTitle: "データ形式",
+ jsonFormatText: "JSON は以下の例のように、オブジェクトの配列になっています。",
+
+ propertyTitle: "各オブジェクトのプロパティは以下の通りです:",
+ propertyId: "各単語を一意に示す ID。https://genshin-dictionary.com/[ ID ]/ にアクセスすると、本サイトの当該単語のページを表示できます。時折予告なく変更される場合があるため、注意して下さい。",
+ propertyEn: "英語名",
+ propertyJa: "日本語名",
+ propertyZhCN: "中国語名",
+ propertyPronunciationJa: "日本語の読み。ひらがな、カタカナ、記号が含まれます。",
+ propertyNotes: "備考 (日本語話者向け)。HTML が含まれる場合があります。",
+ propertyNotesZh: "備考 (中国語話者向け)。HTML が含まれる場合があります。",
+ propertyVariants: "よくある誤記や通称等。例えば鍾離の誤記「鐘離」や、聖遺物「血染めの騎士道」の略称「血染め」などが含まれます。",
+ propertyVariantsEn: "英語の誤記や通称等",
+ propertyVariantsJa: "日本語の誤記や通称等",
+ propertyExamples: "例文",
+ propertyExamplesEn: "例文の英語",
+ propertyExamplesJa: "例文の日本語",
+ propertyExamplesRef: "例文の出典",
+ propertyExamplesRefURL: "例文の出典のリンク",
+ propertyCreatedAt: "作成日 (yyyy-mm-dd 形式)",
+ propertyUpdatedAt: "最終更新日 (yyyy-mm-dd 形式)",
+ propertyTags: "タグ。タグは以下の種類が存在します:",
+
+ compatibilityTitle: "互換性",
+ compatibilityText: "本データは現在β版です。予告なく破壊的変更が入る可能性もありますので、ご了承下さい。",
+
+ usageNotesTitle: "利用上の注意",
+ lastUpdated: "最終更新: 2022年1月3日",
+
+ usageNotes: {
+ basic: "当サイトの配布する CSV 及び JSON の日英対訳データ (以下「本データ」) は、自由に加工し掲載・再配布することができます。",
+ citation: "本データの出典として、当サイトのサイト名や URL などを表示する義務はありません。(勿論、表示して頂いても構いません。)",
+ revocation: {
+ intro: "以下の場合、本データの利用許可は取り消されます。利用許可の取り消しによって、本データ又は本データを加工して作成した成果物を掲載・再配布する権利があなたから失われる場合、速やかに掲載・再配布を停止しなければなりません。",
+ rights: "本データを掲載・再配布することで、Hoyoverse 運営各社 (COGNOSPHERE PTE. LTD.、上海米哈游網絡科技股份有限公司、株式会社 miHoYo、その他各国支社・子会社) やその他の第三者の権利を侵害する場合",
+ terms: "本データを掲載・再配布することで、原神や関連サービス (HoYoLab など) の利用規約に違反する場合",
+ laws: "本データを掲載・再配布することで、日本法又はあなたの居住国の法令に違反する場合",
+ request: "当サイトの運営者が本データの利用停止を求めた場合"
+ },
+ disclaimer: "本データの利用・加工・掲載・再配布に伴い、あなたや第三者に何らかの損害が生じた場合、当サイトの運営者は一切の責任を負いません。"
+ },
+
+ contactText: "ご不明点があれば、{twitterLink} にてお問い合わせ下さい。(フォロー外から DM をお送り頂くことも可能です。)",
+} as const;
\ No newline at end of file
diff --git a/lang/zh-CN.ts b/lang/zh-CN.ts
new file mode 100644
index 00000000..2b8949d8
--- /dev/null
+++ b/lang/zh-CN.ts
@@ -0,0 +1,9 @@
+import common from './zh-CN/common'
+import about from './zh-CN/about'
+import opendata from './zh-CN/opendata'
+
+export default {
+ ...common,
+ ...about,
+ ...opendata,
+}
\ No newline at end of file
diff --git a/lang/zh-CN/about.ts b/lang/zh-CN/about.ts
new file mode 100644
index 00000000..7fe329e3
--- /dev/null
+++ b/lang/zh-CN/about.ts
@@ -0,0 +1,24 @@
+export default {
+ aboutTitle: "关于本站",
+ aboutDescription: "本站是一个在线的中英日三语原神游戏用语辞典。",
+ aboutIntro: "本站是PC、智能手机、PlayStation 4/5游戏{genshinLink}中使用的专有名词的日语-英语-中文对照表。",
+ wordCount: "目前收录的词汇数量为{count}个。",
+ precautionsTitle: "使用注意事项和免责声明",
+ precautions1: "由于本站列出了游戏中专有名词的翻译,因此存在许多意译,翻译可能与一般含义不同,请注意。",
+ precautions2: "注音(假名)是为了提高搜索准确性而添加的,我们并未对其准确性进行充分调查。请注意可能包含许多错误。如果您想收集更准确的注音信息,我们建议参考{genshinDictionaryLink}。",
+ precautions3: "本站是由一位玩家运营的网站,与开发商上海米哈游网络科技股份有限公司(识隙之城私人有限公司/HoYoverse)无关。",
+ openDataTitle: "开放数据和API(测试版)",
+ openDataContent: "本站的翻译数据以CSV格式(适用于普通用户)和JSON格式(适用于技术人员)分发。
详情请查看{openDataLink}。",
+ openDataPageLink: "开放数据和API页面",
+ operatorTitle: "运营者和贡献者",
+ operator: "运营者:Xicri({twitterLink} / {githubLink})",
+ contributor: "中文翻译数据制作:Bill Haku({bilibiliLink} / {twitterLink} / {githubLink})",
+ contact: "如有疑问,请通过{twitterLink}联系我们。(可以私信)
对于错误报告、开放数据/API相关问题和其他技术咨询,您也可以通过GitHub的{issuesLink}或{discussionsLink}联系我们。
联系时,请尽可能使用日语或英语。",
+ creditsTitle: "致谢",
+ credits1: "本站的部分注音数据参考了{genshinDictionaryLink}和{genshinKanjiLabLink}。",
+ credits2: "本站的词汇主要参考自游戏、官方YouTube视频、推文等,但部分词汇(如圣遗物)参考了{genshinWikiLink}。",
+ credits3: "本站使用了GitHub根据{licenseLink}提供的{octiconsLink}。",
+ credits4: "本站favicon的一部分使用了{logoTypeGothicLink}。",
+ genshinDictionary: "原神用語辞書",
+ genshinKanjiLab: "原神汉字研究所",
+} as const;
\ No newline at end of file
diff --git a/lang/zh-CN/common.ts b/lang/zh-CN/common.ts
new file mode 100644
index 00000000..a58e2097
--- /dev/null
+++ b/lang/zh-CN/common.ts
@@ -0,0 +1,12 @@
+export default {
+ siteTitle: "原神中英日辞典",
+ indexTitleDesc: "一个在线的中英日三语原神游戏用语辞典",
+ historyTitle: "更新记录",
+ opendataTitle: "开放数据与API (β)",
+ langNameEn: "英语",
+ langNameJa: "日语",
+ langNameZhCN: "简体中文",
+ genshinImpact: "原神",
+ license: "许可证",
+ logoTypeGothic: "Logo Type Gothic字体",
+} as const;
\ No newline at end of file
diff --git a/lang/zh-CN/opendata.ts b/lang/zh-CN/opendata.ts
new file mode 100644
index 00000000..86894bb3
--- /dev/null
+++ b/lang/zh-CN/opendata.ts
@@ -0,0 +1,54 @@
+export default {
+ notTranslated: "此页面尚未完全翻译成英文/简体中文。",
+ introText: "本站的翻译数据以CSV格式(适用于普通用户)和JSON格式(适用于开发者)提供。您可以自由处理、发布和重新分发数据。(详情请参阅使用说明部分)",
+
+ csvTitle: "CSV(适用于普通用户)",
+ csvDownloadUtf8: "下载CSV(UTF-8版本)",
+ csvDownloadShiftJis: "下载CSV(Shift_JIS版本)",
+ csvNote: "使用Excel打开CSV文件时,建议使用Shift_JIS版本。UTF-8版本可能会出现字符编码问题。\n对于其他软件,如果遇到字符编码问题,请尝试UTF-8和Shift_JIS两个版本。",
+
+ jsonTitle: "JSON(适用于开发者)",
+ jsonUrlTitle: "数据URL",
+ jsonUrlText: "可以从{url}获取数据",
+ jsonFormatTitle: "数据格式",
+ jsonFormatText: "JSON数据由对象数组组成,如下例所示:",
+
+ propertyTitle: "每个对象具有以下属性:",
+ propertyId: "每个词条的唯一ID。您可以通过访问https://genshin-dictionary.com/[ ID ]/来查看该词条的页面。请注意,此ID可能会在没有通知的情况下更改。",
+ propertyEn: "英文名称",
+ propertyJa: "日文名称",
+ propertyZhCN: "中文名称",
+ propertyPronunciationJa: "日语读音(平假名、片假名和符号)",
+ propertyNotes: "注释(面向日语使用者)。可能包含HTML。",
+ propertyNotesZh: "注释(面向中文使用者)。可能包含HTML。",
+ propertyVariants: "常见错误写法和别称。例如,钟离的错误写法'鐘離',或'染血的骑士道'的简称'血染'等。",
+ propertyVariantsEn: "英文错误写法和别称",
+ propertyVariantsJa: "日文错误写法和别称",
+ propertyExamples: "示例句子",
+ propertyExamplesEn: "英文示例句子",
+ propertyExamplesJa: "日文示例句子",
+ propertyExamplesRef: "示例来源",
+ propertyExamplesRefURL: "来源链接",
+ propertyCreatedAt: "创建日期(yyyy-mm-dd格式)",
+ propertyUpdatedAt: "最后更新日期(yyyy-mm-dd格式)",
+ propertyTags: "标签。存在以下标签:",
+
+ compatibilityTitle: "兼容性",
+ compatibilityText: "此数据目前处于测试版阶段。请注意,可能会在没有通知的情况下进行破坏性更改。",
+
+ usageNotesTitle: "使用说明",
+ lastUpdated: "最后更新:2022年1月3日",
+ usageNotes: {
+ basic: `本站提供的CSV和JSON翻译数据(以下简称"数据")可以自由处理、发布和重新分发。`,
+ citation: "您不需要标注本站的网站名称或URL作为数据来源(当然这样做也没问题)。",
+ revocation: {
+ intro: "在以下情况下,使用数据的许可将被撤销。如果许可撤销导致您失去发布或重新分发数据或衍生作品的权利,您必须立即停止发布和重新分发:",
+ rights: "如果发布或重新分发数据侵犯了米哈游运营公司(COGNOSPHERE PTE. LTD.,上海米哈游网络科技股份有限公司、miHoYo株式会社及其他国家分公司/子公司)或其他第三方的权利",
+ terms: "如果发布或重新分发数据违反了原神或相关服务(如HoYoLab)的服务条款",
+ laws: "如果发布或重新分发数据违反了日本法律或您所在国家的法律",
+ request: "如果网站运营者要求停止使用数据"
+ },
+ disclaimer: "对于您或第三方因使用、处理、发布或重新分发数据而遭受的任何损失,本站运营者概不负责。"
+ },
+ contactText: "如有任何疑问,请通过{twitterLink}联系我们。(即使您没有关注我们,也可以发送私信。)"
+}
\ No newline at end of file
diff --git a/nuxt.config.ts b/nuxt.config.ts
index dad06208..6a4c657f 100644
--- a/nuxt.config.ts
+++ b/nuxt.config.ts
@@ -59,17 +59,17 @@ export default defineNuxtConfig({
i18n: {
locales: [
{
- code: "en",
+ code: 'en',
iso: "en",
name: "English",
},
{
- code: "ja",
+ code: 'ja',
iso: "ja-JP",
name: "日本語",
},
{
- code: "zh-CN",
+ code: 'zh-CN',
iso: "zh-CN",
name: "简体中文",
},
@@ -77,6 +77,7 @@ export default defineNuxtConfig({
strategy: "prefix",
baseUrl: "https://genshin-dictionary.com",
detectBrowserLanguage: false,
+ vueI18n: "i18n.config.ts"
},
sitemap: {
diff --git a/pages/about.vue b/pages/about.vue
index 3b2176b3..0bf23def 100644
--- a/pages/about.vue
+++ b/pages/about.vue
@@ -4,58 +4,30 @@
{{ $t("aboutTitle") }}
-
- This page is not translated to English/Simplified Chinese yet.
-
-
- このサイトは PC・スマートフォン・プレイステーション4/5用ゲーム「原神」で用いられる固有名詞等の日本語・英語・中国語対訳表です。
-
- 現在の収録単語数は{{ wordCount }}語です。
-
- ご利用にあたっての注意・免責事項
- 本サイトはゲームの固有名詞等の対訳を掲載している都合上、意訳が多く、一般的な意味とは訳が異なる場合がありますので、ご注意下さい。
-
- 読み仮名は検索精度の向上を目的として付けており、その正確性について十分な調査をしておりません。間違いが多く含まれる可能性があることをご了承下さい。読み仮名について、より正確な情報を収集されたい場合、原神用語辞書の収録単語確認ページを参照されることをおすすめします。
-
-
- このサイトは一プレイヤーが運営しているファンサイトであり、開発元である HoYoverse (Cognosphere 社・miHoYo 社)とは関係ありません。
-
-
-
- オープンデータ・API (β)
-
-
- 本サイトの対訳表データは CSV 形式 (一般向け) 及び JSON 形式 (技術者向け) で配布しています。
- 詳細はオープンデータ・API についてのページをご確認下さい。
-
-
- 運営者・貢献者
+
+ {{ $t("wordCount", { count: wordCount }) }}
+
+ {{ $t("precautionsTitle") }}
+ {{ $t("precautions1") }}
+
+ {{ $t("precautions3") }}
+
+ {{ $t("openDataTitle") }}
+
+
+ {{ $t("operatorTitle") }}
-
- お問い合わせなどの際は Twitter からご連絡下さい。(DM 可)
- バグ報告やオープンデータ・API 関連、その他技術的なお問い合わせについては、GitHub の Issues や Discussions からお問い合わせ頂いても構いません。
- お問い合わせの際は、できるだけ日本語又は英語でお願いします。
-
-
-
- クレジット
-
-
- 本サイトの読み仮名データの一部は、原神用語辞書及び原神漢字研究所を参照しています。
-
-
- 本サイトの単語は、原則としてゲームや公式から配信される YouTube 動画、ツイート等を参照していますが、聖遺物など一部の単語については Genshin Impact Wiki (Fandom) を参照しています。
-
-
- 本サイトは GitHub 社により MIT ライセンスにて提供されている Octicons を利用しています。
-
-
- 本サイトの favicon の一部にはロゴたいぷゴシックを利用しています。
-
+
+
+ {{ $t("creditsTitle") }}
+
+
+
+
@@ -74,18 +46,70 @@ useHead({
meta: [
{ hid: "og:title", property: "og:title", content: title },
{ hid: "description", name: "description", content: description },
- { hid: "og:description", property: "og:description", content: description },
-
- // noindex untranslated pages
- ...(locale.value !== "ja" ? [{
- hid: "noindex",
- name: "robots",
- content: "noindex",
- }] : []),
+ { hid: "og:description", property: "og:description", content: description }
],
});
const wordCount = words.length;
+
+const createLink = (url: string, text: string) => `${text}`;
+
+const aboutIntroText = computed(() => {
+ const genshinLink = createLink("https://genshin.hoyoverse.com", t("genshinImpact"));
+ return t("aboutIntro", { genshinLink });
+});
+
+const precautions2Text = computed(() => {
+ const genshinDictionaryLink = createLink("http://anemoarchon.s205.xrea.com/#/gdic", t("genshinDictionary"));
+ return t("precautions2", { genshinDictionaryLink });
+});
+
+const openDataContentText = computed(() => {
+ const openDataLink = createLink("./opendata", t("openDataPageLink"));
+ return t("openDataContent", { openDataLink });
+});
+
+const operatorText = computed(() => {
+ const twitterLink = createLink("https://twitter.com/xicri_gi", "Twitter");
+ const githubLink = createLink("https://github.com/xicri", "GitHub");
+ return t("operator", { twitterLink, githubLink });
+});
+
+const contributorText = computed(() => {
+ const bilibiliLink = createLink("https://space.bilibili.com/158463764", "BiliBili");
+ const twitterLink = createLink("https://twitter.com/Haku_Bill", "Twitter");
+ const githubLink = createLink("https://github.com/Bill-Haku", "GitHub");
+ return t("contributor", { bilibiliLink, twitterLink, githubLink });
+});
+
+const contactText = computed(() => {
+ const twitterLink = createLink("https://twitter.com/xicri_gi", "Twitter");
+ const issuesLink = createLink("https://github.com/xicri/genshin-dictionary/issues", "Issues");
+ const discussionsLink = createLink("https://github.com/xicri/genshin-dictionary/discussions", "Discussions");
+ return t("contact", { twitterLink, issuesLink, discussionsLink });
+});
+
+const credits1Text = computed(() => {
+ const genshinDictionaryLink = createLink("http://anemoarchon.s205.xrea.com/#/gdic", t("genshinDictionary"));
+ const genshinKanjiLabLink = createLink("https://twitter.com/genshin_kanji", t("genshinKanjiLab"));
+ return t("credits1", { genshinDictionaryLink, genshinKanjiLabLink });
+});
+
+const credits2Text = computed(() => {
+ const genshinWikiLink = createLink("https://genshin-impact.fandom.com/wiki/Genshin_Impact_Wiki", "Genshin Impact Wiki (Fandom)");
+ return t("credits2", { genshinWikiLink });
+});
+
+const credits3Text = computed(() => {
+ const octiconsLink = createLink("https://primer.style/octicons/", "Octicons");
+ const licenseLink = createLink("https://github.com/primer/octicons/blob/main/LICENSE", `MIT ${t("license")}`);
+ return t("credits3", { octiconsLink, licenseLink });
+});
+
+const credits4Text = computed(() => {
+ const logoTypeGothicLink = createLink("http://www.fontna.com/blog/1226/", t("logoTypeGothic"));
+ return t("credits4", { logoTypeGothicLink });
+});
-
+
\ No newline at end of file
diff --git a/pages/opendata.vue b/pages/opendata.vue
index f92b28d7..4527632b 100644
--- a/pages/opendata.vue
+++ b/pages/opendata.vue
@@ -4,131 +4,83 @@
{{ $t("opendataTitle") }}
-
- This page is not translated to English/Simplified Chinese yet.
-
-
- 本サイトの対訳表データは CSV 形式 (一般向け) 及び JSON 形式 (技術者向け) で配布しています。
- データは、基本的に自由に加工し掲載・再配布して頂いて構いません。(詳細は利用上の注意の項をお読み下さい)
-
+ {{ $t("introText") }}
- CSV (一般向け)
+ {{ $t("csvTitle") }}
-
- Excel を用いて CSV を開く場合は、Shift_JIS 版の利用を推奨します。UTF-8 版を用いると文字化けする可能性があります。
- その他のソフトウェアを用いる場合についても、文字化けが発生する場合は UTF-8 版と Shift_JIS 版の両方を試してみて下さい。
-
+ {{ $t("csvNote") }}
- JSON (技術者向け)
+ {{ $t("jsonTitle") }}
- データ URL
-
- https://dataset.genshin-dictionary.com/words.json からデータを取得できます。
-
+ {{ $t("jsonUrlTitle") }}
+
- データ形式
-
- JSON は以下の例のように、オブジェクトの配列になっています。
-
+ {{ $t("jsonFormatTitle") }}
+ {{ $t("jsonFormatText") }}
- [
- {
- "id": "zhongli",
- "en": "Zhongli",
- "ja": "鍾離",
- "zhCN": "钟离",
- "pronunciationJa": "しょうり",
- "notes": "読みは「ヂョンリー」",
- "notesZh": "锺离是中国古代早已有之的一个汉字复姓。…",
- "variants": {
- ja: [ "鐘離" ],
- },
- "createdAt": "2022-01-01",
- "updatedAt": "2022-01-01",
- "tags": [ "liyue", "character-main" ]
- },
- {
- "id": "inazuman",
- "en": "Inazuman",
- "ja": "稲妻人 / 稲妻の",
- "zhCN": "稻妻人 / 稻妻的",
- "pronunciationJa": "いなずまじん",
- "notes": "元々 Inazuman は非公式にプレイヤーの間で使われる言葉であったが…(以下略)",
- "examples": [{
- "en": "Inazumans are definitely more particular about etiquette than Mondstadters!",
- "ja": "モンド人よりも、稲妻人の方が礼儀に対して気を配っている。",
- "ref": "トーマ, キャラクター実戦紹介 トーマ「烈炎の守護」",
- "refURL": "https://www.youtube.com/watch?v=jvmz4TrPgUE&t=16s",
- }],
- "createdAt": "2022-01-01",
- "updatedAt": "2022-01-01",
- "tags": [ "inazuma" ]
- },
- // ...
-]
+ {{ jsonExample }}
- 各オブジェクトのプロパティは以下の通りです:
+
+ {{ $t("propertyTitle") }}
- id
(String) ― 各単語を一意に示す ID。https://genshin-dictionary.com/{ ID }/ にアクセスすると、本サイトの当該単語のページを表示できます。時折予告なく変更される場合があるため、注意して下さい。
- en
(String) ― 英語名
- ja
(String) ― 日本語名
- zhCN
(String) ― 中国語名
- pronunciationJa
(String) ― 日本語の読み。ひらがな、カタカナ、記号が含まれます。
- notes
(String)― 備考 (日本語話者向け)。HTML が含まれる場合があります。
- notesZh
(String)― 備考 (中国語話者向け)。HTML が含まれる場合があります。
- variants
(Object)― よくある誤記や通称等。例えば鍾離の誤記「鐘離」や、聖遺物「血染めの騎士道」の略称「血染め」などが含まれます。
- variants.en
(string[])― 英語の誤記や通称等
- variants.ja
(string[])― 日本語の誤記や通称等
- examples
(Object[]) ― 例文
- examples[].en
(String) ― 例文の英語
- examples[].ja
(String) ― 例文の日本語
- examples[].ref
(String) ― 例文の出典
- examples[].refURL
(String) ― 例文の出典のリンク
- createdAt
(String) ― 作成日 (yyyy-mm-dd 形式)
- updatedAt
(String) ― 最終更新日 (yyyy-mm-dd 形式)
+ id
― {{ $t("propertyId") }}
+ en
― {{ $t("propertyEn") }}
+ ja
― {{ $t("propertyJa") }}
+ zhCN
― {{ $t("propertyZhCN") }}
+ pronunciationJa
― {{ $t("propertyPronunciationJa") }}
+ notes
― {{ $t("propertyNotes") }}
+ notesZh
― {{ $t("propertyNotesZh") }}
+ variants
― {{ $t("propertyVariants") }}
+ variants.en
― {{ $t("propertyVariantsEn") }}
+ variants.ja
― {{ $t("propertyVariantsJa") }}
+ examples
― {{ $t("propertyExamples") }}
+ examples[].en
― {{ $t("propertyExamplesEn") }}
+ examples[].ja
― {{ $t("propertyExamplesJa") }}
+ examples[].ref
― {{ $t("propertyExamplesRef") }}
+ examples[].refURL
― {{ $t("propertyExamplesRefURL") }}
+ createdAt
― {{ $t("propertyCreatedAt") }}
+ updatedAt
― {{ $t("propertyUpdatedAt") }}
-
-
tags
(String[]) ― タグ。タグは以下の種類が存在します:
+ tags
― {{ $t("propertyTags") }}
-
-
{{ tagID }}
― {{ tag.ja }}
+ {{ tagID }}
― {{ tag[locale as Locale] }}
- 互換性
-
- 本データは現在β版です。予告なく破壊的変更が入る可能性もありますので、ご了承下さい。
-
+ {{ $t("compatibilityTitle") }}
+ {{ $t("compatibilityText") }}
- 利用上の注意
- 最終更新: 2022年1月3日
-
@@ -139,21 +91,59 @@ import tags from "~/dataset/tags.json";
import type { Locale } from "~/types.ts";
const { locale, t } = useI18n<[], Locale>();
-const title = `${ t("opendataTitle") } | ${ t("siteTitle") }`;
+const title = `${t("opendataTitle")} | ${t("siteTitle")}`;
useHead({
title,
meta: [
{ hid: "og:title", property: "og:title", content: title },
-
- // noindex untranslated pages
- ...(locale.value !== "ja" ? [{
- hid: "noindex",
- name: "robots",
- content: "noindex",
- }] : []),
],
});
+
+const jsonExample = `[
+ {
+ "id": "zhongli",
+ "en": "Zhongli",
+ "ja": "鍾離",
+ "zhCN": "钟离",
+ "pronunciationJa": "しょうり",
+ "notes": "読みは「ヂョンリー」",
+ "notesZh": "锺离是中国古代早已有之的一个汉字复姓。…",
+ "variants": {
+ "ja": [ "鐘離" ]
+ },
+ "createdAt": "2022-01-01",
+ "updatedAt": "2022-01-01",
+ "tags": [ "liyue", "character-main" ]
+ },
+ {
+ "id": "inazuman",
+ "en": "Inazuman",
+ "ja": "稲妻人 / 稲妻の",
+ "zhCN": "稻妻人 / 稻妻的",
+ "pronunciationJa": "いなずまじん",
+ "notes": "元々 Inazuman は非公式にプレイヤーの間で使われる言葉であったが…(以下略)",
+ "examples": [{
+ "en": "Inazumans are definitely more particular about etiquette than Mondstadters!",
+ "ja": "モンド人よりも、稲妻人の方が礼儀に対して気を配っている。",
+ "ref": "トーマ, キャラクター実戦紹介 トーマ「烈炎の守護」",
+ "refURL": "https://www.youtube.com/watch?v=jvmz4TrPgUE&t=16s"
+ }],
+ "createdAt": "2022-01-01",
+ "updatedAt": "2022-01-01",
+ "tags": [ "inazuma" ]
+ }
+]`;
+
+const downloadLink = computed(() => {
+ const dlLink = 'https://dataset.genshin-dictionary.com/words.json';
+ return t("jsonUrlText", { url: dlLink });
+});
+
+const contactText = computed(() => {
+ const twitterLink = 'Twitter';
+ return t("contactText", { twitterLink });
+});
-
+
\ No newline at end of file