diff --git a/front/src/i18n/zh-CN/audio.ts b/front/src/i18n/zh-CN/audio.ts new file mode 100644 index 00000000..b6127f8d --- /dev/null +++ b/front/src/i18n/zh-CN/audio.ts @@ -0,0 +1,11 @@ +import type { BaseTranslation } from "../i18n-types"; + +const audio: BaseTranslation = { + manager: { + reduce: "说话时降低音乐音量", + allow: "播放声音", + }, + message: "音频消息", +}; + +export default audio; diff --git a/front/src/i18n/zh-CN/camera.ts b/front/src/i18n/zh-CN/camera.ts new file mode 100644 index 00000000..cb0b6026 --- /dev/null +++ b/front/src/i18n/zh-CN/camera.ts @@ -0,0 +1,25 @@ +import type { BaseTranslation } from "../i18n-types"; + +const camera: BaseTranslation = { + enable: { + title: "开启你的摄像头和麦克风", + start: "出发!", + }, + help: { + title: "需要摄像头/麦克风权限", + permissionDenied: "拒绝访问", + content: "你必须在浏览器设置里允许摄像头和麦克风访问权限。", + firefoxContent: '如果你不希望Firefox反复要求授权,请选中"记住此决定"。', + refresh: "刷新", + continue: "不使用摄像头继续游戏", + screen: { + firefox: "/resources/help-setting-camera-permission/en-US-firefox.png", + chrome: "/resources/help-setting-camera-permission/en-US-firefox.png", + }, + }, + my: { + silentZone: "安静区", + }, +}; + +export default camera; diff --git a/front/src/i18n/zh-CN/chat.ts b/front/src/i18n/zh-CN/chat.ts new file mode 100644 index 00000000..5b1ccad1 --- /dev/null +++ b/front/src/i18n/zh-CN/chat.ts @@ -0,0 +1,12 @@ +import type { BaseTranslation } from "../i18n-types"; + +const chat: BaseTranslation = { + intro: "聊天历史:", + enter: "输入消息...", + menu: { + visitCard: "Visit card", + addFriend: "添加朋友", + }, +}; + +export default chat; diff --git a/front/src/i18n/zh-CN/companion.ts b/front/src/i18n/zh-CN/companion.ts new file mode 100644 index 00000000..2cf78080 --- /dev/null +++ b/front/src/i18n/zh-CN/companion.ts @@ -0,0 +1,11 @@ +import type { BaseTranslation } from "../i18n-types"; + +const companion: BaseTranslation = { + select: { + title: "选择你的伙伴", + any: "没有伙伴", + continue: "继续", + }, +}; + +export default companion; diff --git a/front/src/i18n/zh-CN/emoji.ts b/front/src/i18n/zh-CN/emoji.ts new file mode 100644 index 00000000..b0f18410 --- /dev/null +++ b/front/src/i18n/zh-CN/emoji.ts @@ -0,0 +1,21 @@ +import type { BaseTranslation } from "../i18n-types"; + +const emoji: BaseTranslation = { + search: "搜索 emojis...", + categories: { + recents: "最近的 Emojis", + smileys: "表情", + people: "人物", + animals: "动物和自然", + food: "视频和饮料", + activities: "活动", + travel: "旅行和地点", + objects: "物品", + symbols: "符号", + flags: "旗帜", + custom: "自定义", + }, + notFound: "未找到emoji", +}; + +export default emoji; diff --git a/front/src/i18n/zh-CN/error.ts b/front/src/i18n/zh-CN/error.ts new file mode 100644 index 00000000..a76654f3 --- /dev/null +++ b/front/src/i18n/zh-CN/error.ts @@ -0,0 +1,20 @@ +import type { BaseTranslation } from "../i18n-types"; + +const error: BaseTranslation = { + accessLink: { + title: "访问链接错误", + subTitle: "找不到地图。请检查你的访问链接。", + details: "如果你想了解更多信息,你可以联系管理员或联系我们: hello@workadventu.re", + }, + connectionRejected: { + title: "连接被拒绝", + subTitle: "你无法加入该世界。请稍后重试 {error}.", + details: "如果你想了解更多信息,你可以联系管理员或联系我们: hello@workadventu.re", + }, + connectionRetry: { + unableConnect: "无法链接到 WorkAdventure. 请检查互联网连接。", + }, + error: "错误", +}; + +export default error; diff --git a/front/src/i18n/zh-CN/follow.ts b/front/src/i18n/zh-CN/follow.ts new file mode 100644 index 00000000..52754d00 --- /dev/null +++ b/front/src/i18n/zh-CN/follow.ts @@ -0,0 +1,27 @@ +import type { BaseTranslation } from "../i18n-types"; + +const follow: BaseTranslation = { + interactStatus: { + following: "跟随 {leader}", + waitingFollowers: "等待跟随者确认", + followed: { + one: "{follower} 正在跟随你", + two: "{firstFollower} 和 {secondFollower} 正在跟随你", + many: "{followers} 和 {lastFollower} 正在跟随你", + }, + }, + interactMenu: { + title: { + interact: "交互", + follow: "要跟随 {leader} 吗?", + }, + stop: { + leader: "要停止领路吗?", + follower: "要停止跟随 {leader} 吗?", + }, + yes: "是", + no: "否", + }, +}; + +export default follow; diff --git a/front/src/i18n/zh-CN/index.ts b/front/src/i18n/zh-CN/index.ts new file mode 100644 index 00000000..f77c5789 --- /dev/null +++ b/front/src/i18n/zh-CN/index.ts @@ -0,0 +1,34 @@ +import type { BaseTranslation } from "../i18n-types"; +import audio from "./audio"; +import camera from "./camera"; +import chat from "./chat"; +import companion from "./companion"; +import woka from "./woka"; +import error from "./error"; +import follow from "./follow"; +import login from "./login"; +import menu from "./menu"; +import report from "./report"; +import warning from "./warning"; +import emoji from "./emoji"; +import trigger from "./trigger"; + +const zh_CN: BaseTranslation = { + language: "中文", + country: "中国", + audio, + camera, + chat, + companion, + woka, + error, + follow, + login, + menu, + report, + warning, + emoji, + trigger, +}; + +export default zh_CN; diff --git a/front/src/i18n/zh-CN/login.ts b/front/src/i18n/zh-CN/login.ts new file mode 100644 index 00000000..cf788e2e --- /dev/null +++ b/front/src/i18n/zh-CN/login.ts @@ -0,0 +1,14 @@ +import type { BaseTranslation } from "../i18n-types"; + +const login: BaseTranslation = { + input: { + name: { + placeholder: "输入你的名字", + empty: "名字为空", + }, + }, + terms: '点击继续,意味着你同意我们的使用协议, 隐私政策Cookie策略.', + continue: "继续", +}; + +export default login; diff --git a/front/src/i18n/zh-CN/menu.ts b/front/src/i18n/zh-CN/menu.ts new file mode 100644 index 00000000..e375c73c --- /dev/null +++ b/front/src/i18n/zh-CN/menu.ts @@ -0,0 +1,132 @@ +import type { BaseTranslation } from "../i18n-types"; + +const menu: BaseTranslation = { + title: "菜单", + icon: { + open: { + menu: "打开菜单", + invite: "显示邀请", + register: "注册", + chat: "打开聊天", + }, + }, + visitCard: { + close: "关闭", + }, + profile: { + edit: { + name: "编辑名字", + woka: "编辑 WOKA", + companion: "编辑伙伴", + camera: "摄像头设置", + }, + login: "登录", + logout: "登出", + }, + settings: { + gameQuality: { + title: "游戏质量", + short: { + high: "高 (120 fps)", + medium: "中 (60 fps)", + small: "低 (40 fps)", + minimum: "最低 (20 fps)", + }, + long: { + high: "高视频质量 (120 fps)", + medium: "中视频质量 (60 fps, 推荐)", + small: "低视频质量 (40 fps)", + minimum: "最低视频质量 (20 fps)", + }, + }, + videoQuality: { + title: "视频质量", + short: { + high: "高 (30 fps)", + medium: "中 (20 fps)", + small: "低 (10 fps)", + minimum: "最低 (5 fps)", + }, + long: { + high: "高视频质量 (120 fps)", + medium: "中视频质量 (60 fps, 推荐)", + small: "低视频质量 (40 fps)", + minimum: "最低视频质量 (20 fps)", + }, + }, + language: { + title: "语言", + }, + privacySettings: { + title: "离开模式设置", + explanation: + '当WorkAdventure标签页在后台时, 会切换到"离开模式"。在该模式中,你可以选择自动禁用摄像头 和/或 麦克风 直到标签页显示。', + cameraToggle: "摄像头", + microphoneToggle: "麦克风", + }, + save: { + warning: "(保存这些设置会重新加载游戏)", + button: "保存", + }, + fullscreen: "全屏", + notifications: "通知", + cowebsiteTrigger: "在打开网页和Jitsi Meet会议前总是询问", + ignoreFollowRequest: "忽略跟随其他用户的请求", + }, + invite: { + description: "分享该房间的链接!", + copy: "复制", + share: "分享", + walk_automatically_to_position: "自动走到我的位置", + }, + globalMessage: { + text: "文本", + audio: "音频", + warning: "广播到世界的所有房间", + enter: "输入你的消息...", + send: "发送", + }, + globalAudio: { + uploadInfo: "上传文件", + error: "未选择文件。发送前必须上传一个文件。", + }, + contact: { + gettingStarted: { + title: "开始", + description: + "WorkAdventure使你能够创建一个在线空间,与他们自然地交流。这都从创建你自己的空间开始。从我们的团队预制的大量选项中选择一个地图。", + }, + createMap: { + title: "创建地图", + description: "你也可以跟随文档中的步骤创建你自己的地图。", + }, + }, + about: { + mapInfo: "地图信息", + mapLink: "地图链接", + copyrights: { + map: { + title: "地图版权", + empty: "地图创建者未申明地图版权。", + }, + tileset: { + title: "tilesets版权", + empty: "地图创建者未申明tilesets版权。这不意味着这些tilesets没有版权。", + }, + audio: { + title: "音频文件版权", + empty: "地图创建者未申明音频文件版权。这不意味着这些音频文件没有版权。", + }, + }, + }, + sub: { + profile: "资料", + settings: "设置", + invite: "邀请", + credit: "Credit", + globalMessages: "全局消息", + contact: "联系", + }, +}; + +export default menu; diff --git a/front/src/i18n/zh-CN/report.ts b/front/src/i18n/zh-CN/report.ts new file mode 100644 index 00000000..268a2236 --- /dev/null +++ b/front/src/i18n/zh-CN/report.ts @@ -0,0 +1,25 @@ +import type { BaseTranslation } from "../i18n-types"; + +const report: BaseTranslation = { + block: { + title: "屏蔽", + content: "屏蔽任何来自 {userName} 的通信。该操作是可逆的。", + unblock: "解除屏蔽该用户", + block: "屏蔽该用户", + }, + title: "举报", + content: "发送举报信息给这个房间的管理员,他们后续可能禁用该用户。", + message: { + title: "举报信息: ", + empty: "举报信息不能为空.", + }, + submit: "举报该用户", + moderate: { + title: "Moderate {userName}", + block: "屏蔽", + report: "举报", + noSelect: "错误:未选择行为。", + }, +}; + +export default report; diff --git a/front/src/i18n/zh-CN/trigger.ts b/front/src/i18n/zh-CN/trigger.ts new file mode 100644 index 00000000..d6b0e8d7 --- /dev/null +++ b/front/src/i18n/zh-CN/trigger.ts @@ -0,0 +1,9 @@ +import type { BaseTranslation } from "../i18n-types"; + +const trigger: BaseTranslation = { + cowebsite: "按空格键或点击这里打开网页", + jitsiRoom: "按空格键或点击这里进入Jitsi Meet会议", + newTab: "按空格键或点击这里在新标签打开网页", +}; + +export default trigger; diff --git a/front/src/i18n/zh-CN/warning.ts b/front/src/i18n/zh-CN/warning.ts new file mode 100644 index 00000000..679a7b90 --- /dev/null +++ b/front/src/i18n/zh-CN/warning.ts @@ -0,0 +1,18 @@ +import type { BaseTranslation } from "../i18n-types"; +import { ADMIN_URL } from "../../Enum/EnvironmentVariable"; + +const upgradeLink = ADMIN_URL + "/pricing"; + +const warning: BaseTranslation = { + title: "警告!", + content: `该世界已接近容量限制!你可以 点击这里 升级它的容量`, + limit: "该世界已接近容量限制!", + accessDenied: { + camera: "摄像头访问权限被拒绝。点击这里检查你的浏览器权限。", + screenSharing: "屏幕共享权限被拒绝。点击这里检查你的浏览器权限。", + }, + importantMessage: "重要消息", + connectionLost: "连接丢失。重新连接中...", +}; + +export default warning; diff --git a/front/src/i18n/zh-CN/woka.ts b/front/src/i18n/zh-CN/woka.ts new file mode 100644 index 00000000..2b30e676 --- /dev/null +++ b/front/src/i18n/zh-CN/woka.ts @@ -0,0 +1,23 @@ +import type { BaseTranslation } from "../i18n-types"; + +const woka: BaseTranslation = { + customWoka: { + title: "自定义你的WOKA", + navigation: { + return: "返回", + back: "上一个", + finish: "完成", + next: "下一个", + }, + }, + selectWoka: { + title: "选择你的WOKA", + continue: "继续", + customize: "自定义你的 WOKA", + }, + menu: { + businessCard: "Business Card", + }, +}; + +export default woka;