2792 lines
99 KiB
TypeScript
2792 lines
99 KiB
TypeScript
export const zh = {
|
||
brand: "nomadro",
|
||
tagline: "用一行代码环游世界",
|
||
nav: {
|
||
map: "🗺️ 地图",
|
||
mapShort: "地图",
|
||
memberMap: "🧭 游民地图",
|
||
destinations: "🌍 目的地",
|
||
plan: "🗓️ 计划",
|
||
compare: "⚖️ 对比",
|
||
tools: "🛠️ 工具箱",
|
||
nextStop: "🧭 下一站",
|
||
meetups: "🎉 活动",
|
||
community: "💬 社区",
|
||
dating: "💕 匹配",
|
||
chat: "✉️ 私信",
|
||
digital: "🎓 学院",
|
||
join: "✨ 会员",
|
||
gigs: "💼 赏金",
|
||
pricing: "💎 定价",
|
||
notifications: "🔔 通知",
|
||
ebook: "📖 电子书",
|
||
services: "🛎️ 服务",
|
||
feedback: "💬 反馈",
|
||
ai: "🤖 AI",
|
||
visa: "📋 签证",
|
||
blog: "📝 博客",
|
||
blogShort: "博客",
|
||
login: "登录",
|
||
theme: "切换主题",
|
||
menu: "菜单",
|
||
lang: "语言",
|
||
exploreGroup: "探索",
|
||
connectGroup: "连接",
|
||
growGroup: "成长",
|
||
},
|
||
hero: {
|
||
badge: "全球数字游民正在路上",
|
||
titleLine1: "用一行代码",
|
||
titleLine2: "环游世界",
|
||
ctaExplore: "从城市开始",
|
||
ctaPlan: "🗓️ 旅居计划",
|
||
ctaCompare: "⚖️ 城市对比",
|
||
ctaMatch: "🎯 智能匹配去哪",
|
||
scroll: "向下滚动",
|
||
statCountries: "🗺️ 可探索国家",
|
||
statCost: "💰 平均月生活费 (千元)",
|
||
statHappy: "😊 生活满意度 %",
|
||
},
|
||
strip: {
|
||
title: "⚡ 核心路径",
|
||
openPlan: "打开旅居计划 →",
|
||
plan: "计划",
|
||
compare: "对比",
|
||
destinations: "目的地",
|
||
visa: "签证",
|
||
tools: "工具箱",
|
||
weekend: "周末",
|
||
cost: "费用",
|
||
changelog: "更新",
|
||
},
|
||
journey: {
|
||
tag: "PATH",
|
||
title: "一条路径,三环相扣",
|
||
subtitle: "先选城市,再遇见人,最后成长赚钱——按需进入,不必一次看完。",
|
||
step1Title: "发现去哪",
|
||
step1Desc: "匹配偏好或点选地图,锁定下一座城市。",
|
||
step1Cta: "开始发现",
|
||
step2Title: "遇见同行",
|
||
step2Desc: "同城活动与社区讨论,先认识真实的人。",
|
||
step2Cta: "去活动",
|
||
step3Title: "成长变现",
|
||
step3Desc: "学院、赏金与小工具,在路上继续做事。",
|
||
step3Cta: "打开学院",
|
||
matchCta: "开始匹配",
|
||
step4Title: "工具箱",
|
||
step4Desc: "费用、时差、打包、防坑……几十个小工具按需取用。",
|
||
step4Cta: "打开工具箱",
|
||
},
|
||
ring: {
|
||
tag: "NEXT",
|
||
continue: "接下来你可以",
|
||
plan: "写入旅居计划",
|
||
planDesc: "把这座城市排进时间线与预算。",
|
||
meetups: "同城活动",
|
||
meetupsDesc: "先线下遇见,再深入聊天。",
|
||
meetupsFromCommunity: "从讨论走向线下见面。",
|
||
meetupsFromDating: "匹配后一起参加活动。",
|
||
community: "社区讨论",
|
||
communityDesc: "签证、住宿、远程工作经验。",
|
||
communityWork: "远程工作话题与协作。",
|
||
dating: "游民匹配",
|
||
datingDesc: "朋友、室友或联创伙伴。",
|
||
chat: "打开私信",
|
||
chatDesc: "继续刚才的对话。",
|
||
nextStop: "下一站决策",
|
||
nextStopDesc: "不确定去哪时,用决策器收窄选择。",
|
||
digital: "游民学院",
|
||
digitalDesc: "课程与远程工作路径。",
|
||
compareDesc: "并排对比后再写入计划。",
|
||
},
|
||
home: {
|
||
mapTag: "🗺️ WORLD MAP",
|
||
mapTitle: "全球游民热力图",
|
||
mapSubtitle: "点击标记查看城市详情,或下滑浏览完整目的地列表",
|
||
mapPick: "选择一个城市",
|
||
mapPickHint: "点击地图上的标记查看详情",
|
||
mapCost: "月生活费",
|
||
mapSpeed: "网速",
|
||
mapTemp: "均温",
|
||
mapRating: "评分",
|
||
mapBrowse: "浏览全部目的地 →",
|
||
mapMembers: "看看谁在那里 →",
|
||
destTag: "🌴 TOP DESTINATIONS",
|
||
destTitle: "热门旅居目的地",
|
||
destSubtitle: "筛选、收藏,点击进入城市详情了解更多",
|
||
destMatcher: "不知道去哪?智能匹配",
|
||
destSearch: "搜索城市…",
|
||
destEmpty: "没有找到匹配的目的地",
|
||
destShowMore: "展开更多城市",
|
||
destShowLess: "收起",
|
||
destAddPlan: "加入计划",
|
||
destInPlan: "已在计划中",
|
||
destCompareHint: "已选 {n}/4 · 再选 {need} 座可对比",
|
||
compareBarNeed: "再选 1 座可对比",
|
||
visaTag: "📋 VISA GUIDE",
|
||
visaTitle: "数字游民签证指南",
|
||
visaSubtitle: "热门远程工作签证一览——决定后写入旅居计划",
|
||
visaShowMore: "查看全部签证方案",
|
||
visaShowLess: "收起",
|
||
visaToPlan: "写入旅居计划 →",
|
||
blogTag: "📝 BLOG",
|
||
blogTitle: "游民博客",
|
||
blogSubtitle: "深度攻略与旅居经验",
|
||
blogMore: "阅读更多文章 →",
|
||
faqTag: "❓ FAQ",
|
||
faqTitle: "常见问题",
|
||
faqSubtitle: "关于数字游民生活,你可能想知道的一切",
|
||
faqSearch: "搜索问题…",
|
||
filterAll: "🌏 全部",
|
||
filterSea: "🌴 东南亚",
|
||
filterEurope: "🏰 欧洲",
|
||
filterLatam: "🌮 拉美",
|
||
filterAsia: "🏯 东亚",
|
||
sortRating: "⭐ 评分排序",
|
||
sortCostAsc: "💰 价格从低到高",
|
||
sortCostDesc: "💰 价格从高到低",
|
||
sortSpeed: "📶 网速排序",
|
||
},
|
||
lifestyle: {
|
||
tag: "💻 NOMAD LIFE",
|
||
title: "数字游民的一天",
|
||
subtitle: "自由不等于散漫,高效工作才能尽情探索 — 点击卡片查看详情",
|
||
ctaDay: "七天落地指南",
|
||
ctaMeetups: "去参加活动",
|
||
time_morning: "🌅 07:00",
|
||
icon_morning: "🧘",
|
||
title_morning: "晨间仪式",
|
||
desc_morning: "瑜伽、冥想或海边跑步,用身心唤醒开启新的一天",
|
||
tip_morning: "推荐:清迈河边晨跑、巴厘岛海滩瑜伽",
|
||
time_work: "☕ 09:00",
|
||
icon_work: "💻",
|
||
title_work: "深度工作",
|
||
desc_work: "在 Co-working Space 或咖啡馆专注 4 小时,完成核心任务",
|
||
tip_work: "推荐:Punspace 清迈、Outsite 里斯本",
|
||
time_explore: "🍜 13:00",
|
||
icon_explore: "🍽️",
|
||
title_explore: "本地探索",
|
||
desc_explore: "品尝地道美食,与当地人交流,感受文化碰撞",
|
||
tip_explore: "推荐:清迈夜市、巴塞罗那 Tapas 之旅",
|
||
time_collab: "🌇 17:00",
|
||
icon_collab: "📞",
|
||
title_collab: "跨时区协作",
|
||
desc_collab: "与全球团队视频会议,灵活安排跨时区沟通",
|
||
tip_collab: "工具:Calendly 排时区、World Time Buddy",
|
||
time_social: "🌙 20:00",
|
||
icon_social: "🎉",
|
||
title_social: "社群社交",
|
||
desc_social: "参加 Nomad Meetup,结识来自世界各地的同行者",
|
||
tip_social: "平台:nomadro 活动、同城社群",
|
||
},
|
||
homeCommunity: {
|
||
tag: "🤝 COMMUNITY",
|
||
title: "游民心声",
|
||
subtitle: "来自全球数字游民的真实故事",
|
||
ctaTitle: "准备好开始你的旅居之旅了吗?",
|
||
ctaDesc: "订阅周报,或直接走进社区与活动",
|
||
},
|
||
aboutPage: {
|
||
tag: "🌏 ABOUT",
|
||
title: "关于 nomadro",
|
||
subtitle: "用一行代码环游世界",
|
||
whoTitle: "我们是谁",
|
||
whoBody:
|
||
"nomadro 是一个面向数字游民的旅居决策平台。我们把目的地数据、签证信息、费用估算、时区协作与社区经验集中在一起,帮你更快做出「下一站去哪」的决定。",
|
||
whatTitle: "能做什么",
|
||
what1: "🗺️ 探索全球热门游民城市与对比工具",
|
||
what2: "🧮 计算生活成本、机票与启动金目标",
|
||
what3: "📋 签证匹配、保险与上网方案参考",
|
||
what4: "🗓️ 规划多城行程并分享给伙伴",
|
||
what5: "🗣️ 落地短语、行李清单与活动日历",
|
||
contactTitle: "联系我们",
|
||
contactBody: "合作与反馈:",
|
||
repoBody: "开源仓库:",
|
||
ctaExplore: "智能下一站",
|
||
ctaCommunity: "加入社区",
|
||
ctaPlan: "打开计划",
|
||
},
|
||
common: {
|
||
backHome: "← 返回首页",
|
||
browseDest: "浏览目的地",
|
||
loading: "加载中…",
|
||
copy: "复制",
|
||
share: "分享",
|
||
clear: "清空",
|
||
save: "保存",
|
||
cancel: "取消",
|
||
open: "打开",
|
||
learnMore: "了解更多",
|
||
select: "请选择…",
|
||
detail: "查看详情 →",
|
||
alreadyInTrip: "该城市已在行程中",
|
||
alreadyInPlan: "该城市已在计划中",
|
||
addedToPlanMonths: "{emoji} {city} 已加入旅居计划({months} 个月)",
|
||
cityOverBudget: "💰 月生活费 ¥{cost} 高于你的计划月预算 ¥{budget}",
|
||
linkCopied: "链接已复制到剪贴板 📋",
|
||
copyFail: "复制失败,请手动复制地址栏",
|
||
favorite: "🤍 收藏",
|
||
favorited: "❤️ 已收藏",
|
||
loginFavorite: "🤍 登录收藏",
|
||
monthsUnit: "月",
|
||
addToPlan: "🗓️ 加入旅居计划",
|
||
inPlanOpen: "✓ 已在计划中 · 打开 →",
|
||
stayLabel: "停留",
|
||
goCompare: "⚖️ 去对比",
|
||
findNext: "🧭 找下一站",
|
||
cityMeetups: "🍹 同城活动",
|
||
shareBtn: "📤 分享",
|
||
loadingDepth: "加载城市深度信息…",
|
||
viewTimezone: "查看时区看板",
|
||
},
|
||
plan: {
|
||
tag: "🗓️ MOVE PLAN",
|
||
defaultTitle: "我的旅居计划",
|
||
titleAria: "计划标题",
|
||
loading: "加载计划中…",
|
||
subtitle: "把多城路线、预算、签证提醒和出发清单放在一页——真正能拿去执行的旅居计划。",
|
||
syncing: "同步中…",
|
||
synced: "✓ 已登录 · 计划云端同步",
|
||
offline: "离线 · 仅保存在本机",
|
||
loggedIn: "已登录",
|
||
syncNow: "立即同步",
|
||
loginSync: "登录后跨设备同步计划 →",
|
||
startMonth: "预计出发月",
|
||
budgetCap: "月预算上限(¥)",
|
||
budgetPlaceholder: "如 8000",
|
||
cities: "城市",
|
||
duration: "总时长",
|
||
totalBudget: "总预算",
|
||
avgMonth: "均月开销",
|
||
readiness: "出发就绪",
|
||
monthsUnit: "月",
|
||
stay: "停留",
|
||
timeline: "路线时间轴",
|
||
exportMd: "导出 MD",
|
||
exportIcs: "导出日历",
|
||
addCity: "添加城市",
|
||
destination: "目的地",
|
||
stayMonths: "停留月数",
|
||
joinTimeline: "加入时间轴",
|
||
checklist: "出发就绪清单",
|
||
empty: "还没有城市。从目的地加入,或在下方添加第一站。",
|
||
goDest: "去选目的地 →",
|
||
emptyNextStop: "智能下一站",
|
||
emptyCompare: "城市对比",
|
||
moveUp: "上移",
|
||
moveDown: "下移",
|
||
removeStop: "移除",
|
||
visas: "本行程签证方案",
|
||
visaGuide: "签证指南 →",
|
||
visaMissing: "当前行程国家暂无收录的游民签证条目,请对照停留提醒与官方政策。",
|
||
compareInTrip: "行程内城市对比",
|
||
openCompare: "打开对比台 →",
|
||
notePlaceholder: "备注:住房、签证节点、必办事项…",
|
||
overBudget: "均月开销已超过月预算上限。可缩短高消费城市停留,或调高预算。",
|
||
overStay: "站停留可能超过常见免签/短签上限",
|
||
markVisa: "标记「已确认签证」",
|
||
needStartMonth: "请先设置预计出发月,再导出日历",
|
||
icsFail: "无法生成日历,请检查行程",
|
||
icsDone: "已下载日历文件,可导入手机/Google Calendar",
|
||
mdDone: "已下载 Markdown 计划",
|
||
copied: "计划已复制",
|
||
shareCopied: "分享链接已复制",
|
||
importedShare: "已导入分享的行程",
|
||
addedToPlan: "已加入计划",
|
||
syncedManual: "已手动同步到账号",
|
||
syncFail: "同步失败,请稍后重试",
|
||
cleared: "已清空行程",
|
||
colCost: "月费",
|
||
colSpeed: "网速",
|
||
colClimate: "气候",
|
||
colRating: "评分",
|
||
colCommunity: "社区",
|
||
exportStartMonth: "出发月:{month}",
|
||
exportNote: "备注:",
|
||
exportVisa: "签证:",
|
||
exportStop: "{n}. {emoji} **{name}, {country}** — {months} 个月 · ¥{cost}{range}{note}{visa}",
|
||
exportTotal: "> 总计 **{months} 个月** · **¥{cost}** · 均月 ¥{avg}",
|
||
exportReady: "> 出发就绪度 **{pct}%**({checked}/{total})",
|
||
exportFooter: "_由 nomadro 旅居计划中心生成 · {date}_",
|
||
plainStop: "{n}. {emoji} {name}, {country} — {months}个月 ¥{cost}{range}",
|
||
plainTotal: "总计: {months}个月 · ¥{cost} · 就绪 {pct}%",
|
||
visaDuration: "时长",
|
||
visaIncome: "收入要求",
|
||
visaApproval: "审批",
|
||
visaDifficulty: "难度",
|
||
visaMissingCountries: "暂无收录:{countries} — 请以官方政策为准,并确认免签天数。",
|
||
},
|
||
compare: {
|
||
tag: "⚖️ COMPARE",
|
||
title: "城市对比台",
|
||
subtitle: "最多 4 城并排对比费用、网速、气候与评分。决定后一键写入旅居计划。",
|
||
pick: "选择城市",
|
||
clear: "清空",
|
||
copyLink: "复制链接",
|
||
needMore: "再选至少",
|
||
needMoreSuffix: "座城市开始对比",
|
||
backDest: "回首页勾选对比",
|
||
addWinner: "推荐城写入计划",
|
||
addAll: "全部写入旅居计划 →",
|
||
dest: "目的地",
|
||
plan: "旅居计划",
|
||
maxCities: "最多对比 4 座城市",
|
||
alreadyInPlan: "这些城市已在计划中",
|
||
alreadyOne: "该城已在计划中",
|
||
addedN: "已加入",
|
||
citiesUnit: "座城市",
|
||
skipped: "跳过",
|
||
wrotePlan: "已写入计划",
|
||
needShare: "至少选 2 座城市再分享",
|
||
linkCopied: "对比链接已复制",
|
||
winner: "👑 综合推荐",
|
||
history: "最近对比",
|
||
clearHistory: "清空记录",
|
||
restore: "恢复",
|
||
snapshot: "复制对比快照",
|
||
snapshotOk: "对比快照已复制",
|
||
snapshotTitle: "⚖️ nomadro 城市对比",
|
||
scoreLabel: "综合 {score}",
|
||
loadingDest: "目的地数据加载中或暂不可用",
|
||
winnerMeetups: "🍹 {city} 同城活动",
|
||
openPlan: "打开计划中心",
|
||
},
|
||
login: {
|
||
welcome: "欢迎回来",
|
||
join: "加入 nomadro",
|
||
loginHint: "登录后同步收藏与个人偏好,跨设备继续你的旅居探索",
|
||
registerHint: "创建账号,保存收藏与偏好,随时随地继续",
|
||
hintExplore: "登录后同步收藏与个人偏好,跨设备继续探索",
|
||
hintProfile: "查看收藏、行程进度与个人设置",
|
||
hintPlan: "同步旅居计划、收藏与就绪清单",
|
||
hintCompare: "登录后继续你的城市对比",
|
||
hintTools: "登录后使用需要账号的工具与服务",
|
||
hintDestination: "登录后回到该城市页面,收藏与计划自动同步",
|
||
hintDating: "登录后开始滑动匹配,成功可私信聊天",
|
||
hintChat: "登录后查看与回复私信",
|
||
hintMeetups: "登录后报名活动或发起聚会",
|
||
hintJoin: "登录后开通或管理 VIP 会员",
|
||
hintNotifications: "登录后查看通知与提醒",
|
||
hintGigs: "登录后申请赏金或发布任务",
|
||
hintCommunity: "登录后发帖与参与讨论",
|
||
hintSubmit: "登录后提交内容投稿",
|
||
hintDigital: "登录后继续数字游民课程与成长路径",
|
||
hintVideos: "登录后收藏访谈并同步稍后再看",
|
||
hintJobs: "登录后收藏远程岗位并继续申请",
|
||
hintAi: "登录后使用旅居助手并保存提问记录",
|
||
hintNextStop: "登录后继续下一站决策并写入计划",
|
||
hintMap: "登录后查看游民分布与数据报告",
|
||
redirectTo: "登录后将前往",
|
||
planMergeNote: "检测到本机已有行程,登录后会自动与账号合并",
|
||
destHome: "首页",
|
||
destProfile: "个人中心",
|
||
destPlan: "旅居计划",
|
||
destCompare: "城市对比",
|
||
destTools: "工具箱",
|
||
destDestination: "城市详情",
|
||
destDating: "游民匹配",
|
||
destChat: "私信",
|
||
destMeetups: "游民活动",
|
||
destJoin: "会员中心",
|
||
destNotifications: "通知中心",
|
||
destGigs: "赏金任务",
|
||
destCommunity: "社区讨论",
|
||
destSubmit: "内容投稿",
|
||
destDigital: "数字游民学院",
|
||
destVideos: "游民访谈",
|
||
destJobs: "远程岗位",
|
||
destAi: "旅居助手",
|
||
destNextStop: "下一站决策",
|
||
destMap: "游民地图",
|
||
tabLogin: "登录",
|
||
tabRegister: "注册",
|
||
nickname: "昵称",
|
||
email: "邮箱",
|
||
password: "密码",
|
||
nickPlaceholder: "你的游民昵称",
|
||
pwdPlaceholder: "至少 6 位",
|
||
submitLoginDefault: "登录",
|
||
submitLoginPlan: "登录并同步计划",
|
||
submitRegister: "创建账号",
|
||
demo: "体验演示账号",
|
||
demoHintDefault: "无需注册,一键体验完整功能",
|
||
demoHintPlan: "演示账号含示例行程,适合体验计划与同步",
|
||
or: "或",
|
||
processing: "处理中…",
|
||
welcomeToastDefault: "欢迎回来!",
|
||
welcomeToastPlan: "欢迎回来,计划正在同步",
|
||
registerToast: "账号已创建,欢迎加入 nomadro",
|
||
demoToast: "演示账号已登录",
|
||
loginError: "邮箱或密码错误",
|
||
registerError: "注册失败,邮箱可能已被使用",
|
||
nameMin: "昵称至少 2 个字符",
|
||
pwdMin: "密码至少 6 位",
|
||
showPwd: "显示密码",
|
||
pwdHint: "至少 6 位,建议包含字母与数字",
|
||
pwdNeed: "还差 {n} 位",
|
||
pwdOk: "可用 · 再长一点更安全",
|
||
pwdStrong: "强度不错",
|
||
},
|
||
footer: {
|
||
explore: "探索",
|
||
connect: "连接",
|
||
grow: "成长",
|
||
tools: "工具",
|
||
account: "账户",
|
||
tagline: "让每个人都能自由地工作和生活在这个星球上 🌏",
|
||
destinations: "目的地",
|
||
plan: "旅居计划",
|
||
compare: "城市对比",
|
||
visa: "签证指南",
|
||
blog: "博客",
|
||
about: "关于 nomadro",
|
||
toolkit: "实用工具",
|
||
ebook: "游牧代码 · 电子书",
|
||
planHub: "计划中心",
|
||
compareHub: "对比台",
|
||
calculator: "费用计算器",
|
||
changelog: "更新日志",
|
||
login: "登录 / 注册",
|
||
profile: "用户中心",
|
||
privacy: "隐私政策",
|
||
nextStop: "下一站决策",
|
||
meetups: "游民活动",
|
||
community: "社区讨论",
|
||
dating: "游民匹配",
|
||
chat: "私信",
|
||
digital: "游民学院",
|
||
join: "开通会员",
|
||
gigs: "赏金任务",
|
||
pricing: "会员定价",
|
||
notifications: "通知中心",
|
||
feedback: "意见反馈",
|
||
help: "帮助中心",
|
||
contact: "联系我们",
|
||
videos: "游民访谈",
|
||
services: "游民服务",
|
||
ai: "旅居助手",
|
||
mapPage: "游民地图",
|
||
report: "数据报告",
|
||
},
|
||
dating: {
|
||
tag: "💕 MATCH",
|
||
title: "游民匹配",
|
||
subtitle: "按意图滑动 —— 交朋友、约会、找室友或联创伙伴",
|
||
loginTitle: "登录后开始匹配",
|
||
loginDesc: "完善资料后即可滑动卡片,匹配成功可私信聊天",
|
||
joinFirst: "先完善你的游民资料",
|
||
joinBtn: "一键加入匹配",
|
||
joinOk: "资料已完善,开始匹配",
|
||
joinFail: "加入失败",
|
||
swipeFail: "滑动失败,请检查登录或配额",
|
||
empty: "暂时没有更多候选,明天再来看看",
|
||
matched: "你和",
|
||
keepSwiping: "继续滑",
|
||
chatNow: "去聊天",
|
||
likesTitle: "喜欢",
|
||
likesSubtitle: "你右滑喜欢的游民会出现在这里",
|
||
likesEmpty: "还没有喜欢任何人,去滑一张卡片吧",
|
||
backSwipe: "返回匹配",
|
||
undo: "撤销",
|
||
goSwipe: "去滑动匹配",
|
||
globalNomad: "全球游民",
|
||
noBio: "这位游民还没写自我介绍",
|
||
meetAtEvents: "去活动认识人",
|
||
moreIntents: "更多意图…",
|
||
intentFriends: "交朋友",
|
||
intentDating: "约会",
|
||
intentPartner: "伴侣",
|
||
intentRoommate: "合租",
|
||
intentCofounder: "联创",
|
||
intentExplore: "探索",
|
||
vipUnlimited: "✨ VIP 无限滑",
|
||
quotaLeft: "今日剩余 {remaining}/{limit} 次",
|
||
vipUnlock: "开通 VIP 无限匹配",
|
||
loadingCandidates: "加载候选人…",
|
||
loadingProfile: "加载匹配资料…",
|
||
refresh: "刷新",
|
||
viewChats: "查看对话",
|
||
openVip: "开通 VIP",
|
||
defaultCity: "全球",
|
||
defaultBio: "nomadro 游民",
|
||
swipeHint: "← 左滑跳过 · 右滑喜欢 → · 上滑超级喜欢(也可点按钮 / 方向键)",
|
||
swipeLeft: "跳过",
|
||
swipeRight: "喜欢",
|
||
swipeUp: "超级喜欢",
|
||
likesReceivedTab: "喜欢我的",
|
||
likesMineTab: "我喜欢的",
|
||
likesReceivedSubtitle: "对你右滑的游民会出现在这里",
|
||
likesReceivedEmpty: "还没有人喜欢你,先去完善资料并滑动匹配",
|
||
likesYou: "喜欢了你",
|
||
likeBack: "回赞 / 匹配",
|
||
likeSent: "已发送喜欢",
|
||
viewProfile: "查看资料",
|
||
},
|
||
chat: {
|
||
tag: "✉️ MESSAGES",
|
||
title: "私信",
|
||
loginTitle: "登录后查看私信",
|
||
loginDesc: "匹配成功或活动结识的游民,在这里继续对话",
|
||
empty: "还没有对话,去匹配页滑一张卡片吧",
|
||
noMessages: "暂无消息",
|
||
sayHi: "打个招呼开始对话吧",
|
||
loadingMessages: "加载消息…",
|
||
loadingList: "加载对话…",
|
||
sendFail: "发送失败,请稍后重试",
|
||
peerFallback: "游民",
|
||
goDating: "去匹配",
|
||
back: "返回列表",
|
||
placeholder: "输入消息…",
|
||
send: "发送",
|
||
draftRestored: "已恢复未发送草稿",
|
||
},
|
||
join: {
|
||
tag: "✨ MEMBERSHIP",
|
||
title: "加入 nomadro 会员",
|
||
subtitle: "完善资料并开通 VIP,解锁无限匹配、活动直播与付费课程",
|
||
step1: "完善资料",
|
||
step2: "开通 VIP",
|
||
city: "当前城市",
|
||
bio: "一句话介绍",
|
||
saveProfile: "保存资料",
|
||
vipDesc: "一次开通,全站 VIP 权益",
|
||
perk1: "无限滑动匹配",
|
||
perk2: "私信无限制",
|
||
perk3: "活动直播房间",
|
||
perk4: "学院付费课程",
|
||
payBtn: "立即开通",
|
||
profileOk: "资料已保存",
|
||
profileFail: "保存失败",
|
||
payFail: "创建订单失败",
|
||
paidLoading: "正在确认支付…",
|
||
paidOk: "欢迎成为 VIP 会员!",
|
||
paidFail: "支付确认失败,请联系客服或重试",
|
||
goDating: "去匹配",
|
||
goDigital: "去学院",
|
||
retry: "返回开通页",
|
||
draftHint: "资料草稿会自动保存在本机",
|
||
saving: "保存中…",
|
||
vipActive: "✨ 你已是 VIP · 权益已生效",
|
||
},
|
||
live: {
|
||
loading: "加载直播间…",
|
||
loginRequired: "登录后可进入直播",
|
||
rsvpRequired: "报名后即可进入直播间",
|
||
rsvpJoin: "报名并进入",
|
||
startsAt: "活动时间:{when} · 到点后房间会更热闹",
|
||
vipRequired: "VIP 会员可进入此活动直播",
|
||
back: "返回活动",
|
||
unavailable: "无法打开直播间",
|
||
unavailableDesc: "活动可能不存在,或暂时不可用",
|
||
hostRequired: "仅主办方可进入此房间",
|
||
offlineOnly: "此活动为线下场次,没有在线直播间",
|
||
layoutSplit: "分屏",
|
||
layoutVideo: "视频",
|
||
layoutChat: "聊天",
|
||
linksMissing: "直播链接尚未配置",
|
||
openVideo: "新窗口打开视频",
|
||
openChat: "新窗口打开聊天",
|
||
iframeHint: "若画面空白,请用上方按钮在新窗口打开",
|
||
},
|
||
visaWizard: {
|
||
tag: "🧙 VISA WIZARD",
|
||
title: "签证智能匹配",
|
||
subtitle: "回答 3 个问题,找到最适合你的远程工作签证",
|
||
stepIncome: "月收入",
|
||
stepDuration: "停留时长",
|
||
stepRegion: "目的地",
|
||
income_low: "💰 低于 ¥8,000/月",
|
||
income_mid: "💼 ¥8,000 – ¥20,000/月",
|
||
income_high: "🚀 ¥20,000 – ¥50,000/月",
|
||
income_premium: "👑 高于 ¥50,000/月",
|
||
duration_short: "⏱️ 1-3 个月",
|
||
duration_medium: "📅 3-12 个月",
|
||
duration_long: "🏠 1 年以上",
|
||
region_any: "🌏 不限",
|
||
region_europe: "🏰 欧洲",
|
||
region_sea: "🌴 东南亚",
|
||
region_latam: "🌮 拉美",
|
||
prev: "上一步",
|
||
next: "下一步",
|
||
finish: "查看推荐 ✨",
|
||
empty: "暂无完全匹配的签证,建议咨询顾问或放宽条件重试",
|
||
bestMatch: "🏆 最佳匹配",
|
||
match: "匹配",
|
||
reset: "🔄 重新匹配",
|
||
ctaCity: "查看城市",
|
||
ctaPlan: "写入计划",
|
||
ctaServices: "签证咨询",
|
||
ctaCommunity: "去社区问问",
|
||
},
|
||
digital: {
|
||
tag: "🎓 ACADEMY",
|
||
title: "数字游民学院",
|
||
subtitle: "系统课程、游牧代码电子书与精选远程岗位",
|
||
course: "视频课程",
|
||
courseTag: "COURSE",
|
||
modules: "模块",
|
||
lessons: "课时",
|
||
free: "免费",
|
||
ebook: "游牧代码",
|
||
ebookDesc: "完整电子书,在独立阅读器中打开",
|
||
jobs: "远程岗位",
|
||
jobsTag: "JOBS",
|
||
jobsDesc: "精选远程/游民友好职位",
|
||
jobsSubtitle: "每周更新,点击直达招聘页",
|
||
jobsEmpty: "暂无岗位",
|
||
jobsGoGigs: "去赏金任务",
|
||
jobsGoCommunity: "社区求助",
|
||
jobsSave: "收藏",
|
||
jobsSaved: "已收藏",
|
||
jobsUnsaved: "已取消收藏",
|
||
jobsSavedList: "收藏的岗位",
|
||
jobsClearSaved: "清空收藏",
|
||
jobsSearch: "搜索岗位、公司或城市…",
|
||
jobsFilterAll: "全部",
|
||
apply: "查看职位",
|
||
vip: "VIP 会员",
|
||
vipDesc: "解锁全部付费课时与直播",
|
||
vipUnlocked: "✨ VIP 已解锁付费课时",
|
||
vipHint: "免费课时可直接学 · VIP 课时需开通会员",
|
||
unlockVip: "开通解锁",
|
||
courseEmpty: "课程内容准备中",
|
||
loadingLesson: "加载课时…",
|
||
missingLesson: "课时不存在",
|
||
backCatalog: "返回课程目录",
|
||
dayGuide: "每日指南",
|
||
dayGuideDesc: "从税务居民到固定作息,七天落地清单",
|
||
back: "学院首页",
|
||
backCourse: "课程目录",
|
||
locked: "此课时需要 VIP",
|
||
lockedDesc: "开通会员即可观看全部课程与活动直播",
|
||
prev: "上一课",
|
||
next: "下一课",
|
||
},
|
||
tools: {
|
||
tag: "🛠️ TOOLKIT",
|
||
title: "nomadro 工具箱",
|
||
subtitle: "规划、金钱、工作、生活与安全——一站直达所有旅居工具",
|
||
backHub: "← 返回工具箱",
|
||
open: "打开 →",
|
||
searchPlaceholder: "搜索工具,如「签证」「机票」「笔记」…",
|
||
featuredHint: "先用这几个",
|
||
loading: "加载工具…",
|
||
showAll: "展开全部 {n} 个工具",
|
||
empty: "没有匹配的工具,试试其他关键词",
|
||
clearFilter: "清除筛选",
|
||
goNextStop: "去下一站",
|
||
corePlan: "旅居计划中心",
|
||
corePlanDesc: "时间轴 · 签证 · 预算 · 日历导出",
|
||
coreCompare: "城市对比台",
|
||
coreCompareDesc: "并排指标 · 一键写入计划",
|
||
coreSync: "登录同步",
|
||
coreSyncDesc: "跨设备保存计划与收藏",
|
||
hubNextStop: "下一站决策",
|
||
hubNextStopDesc: "预算 · 网速 · 气候智能推荐",
|
||
hubMeetups: "游民活动",
|
||
hubMeetupsDesc: "线上圆桌与线下聚会 RSVP",
|
||
hubCommunity: "社区讨论",
|
||
hubCommunityDesc: "签证远程住宿经验交流",
|
||
hubDating: "游民匹配",
|
||
hubDatingDesc: "滑动匹配同路游民",
|
||
hubChat: "私信",
|
||
hubChatDesc: "与匹配成功的游民聊天",
|
||
hubDigital: "游民学院",
|
||
hubDigitalDesc: "课程电子书与远程岗位",
|
||
hubJoin: "开通会员",
|
||
hubJoinDesc: "VIP 解锁直播与付费课",
|
||
metaSuffix: "工具箱",
|
||
metaFallback: "工具 · nomadro",
|
||
},
|
||
nextStop: {
|
||
tag: "🧭 NEXT STOP",
|
||
title: "下一站决策",
|
||
subtitle: "根据预算、网络、气候与偏好,从 nomadro 目的地库中智能推荐下一座旅居城市",
|
||
budget: "月预算",
|
||
internet: "最低网速",
|
||
climate: "气候偏好",
|
||
tags: "生活方式标签",
|
||
bestMatch: "最佳匹配",
|
||
score: "匹配分",
|
||
viewCity: "查看城市",
|
||
addPlan: "加入计划",
|
||
detail: "详情",
|
||
loading: "计算推荐中…",
|
||
routes: "推荐路线",
|
||
days: "天",
|
||
addRoute: "写入计划",
|
||
routeAdded: "路线已写入旅居计划",
|
||
addedPlan: "已将 {city} 加入计划",
|
||
meetups: "近期活动",
|
||
allMeetups: "全部活动",
|
||
climateMild: "🌤️ 温和",
|
||
climateWarm: "☀️ 偏暖",
|
||
climateCool: "🍂 偏凉",
|
||
tagLowCost: "低成本",
|
||
tagFastNet: "高速网络",
|
||
tagWarm: "温暖气候",
|
||
tagCommunity: "社区活跃",
|
||
tagVisa: "签证友好",
|
||
tagBeach: "海滨",
|
||
tagFood: "美食",
|
||
reasonInBudget: "预算内",
|
||
reasonOverBudget: "略超预算",
|
||
reasonNetOk: "网络达标",
|
||
reasonNetCheck: "需确认网络",
|
||
moreTags: "更多标签…",
|
||
resetPrefs: "重置偏好",
|
||
prefsSaved: "偏好已记住",
|
||
},
|
||
meetups: {
|
||
tag: "🎉 MEETUPS",
|
||
title: "游民活动",
|
||
subtitle: "线上圆桌、线下聚会与混合活动 —— 连接同城的数字游民",
|
||
all: "全部",
|
||
rsvp: "人已报名",
|
||
rsvpBtn: "报名参加",
|
||
rsvpDone: "已报名",
|
||
rsvpOk: "报名成功",
|
||
rsvpFail: "报名失败,请稍后重试",
|
||
alreadyRsvp: "你已经报名过了",
|
||
viewCity: "查看目的地",
|
||
liveBtn: "进入直播",
|
||
hostBtn: "发起活动",
|
||
hostTitle: "发起游民活动",
|
||
hostSubtitle: "线上活动自动创建 MiroTalk 房间与 Lounge 频道",
|
||
hostName: "活动名称",
|
||
hostCity: "城市",
|
||
hostMode: "形式",
|
||
hostDate: "日期 / 时间",
|
||
hostVenue: "地点",
|
||
hostDesc: "活动介绍",
|
||
hostSubmit: "发布活动",
|
||
hostOk: "活动已发布",
|
||
hostFail: "发布失败",
|
||
hostNeedFields: "请填写活动名称和日期",
|
||
hosting: "创建中…",
|
||
modeOnline: "线上",
|
||
modeOffline: "线下",
|
||
modeHybrid: "混合",
|
||
loginHint: "登录后报名,名额会同步到你的账号",
|
||
loginToast: "登录后报名,名额才会保留",
|
||
cancelRsvp: "取消报名",
|
||
cancelOk: "已取消报名",
|
||
exportCal: "导出日历",
|
||
exportCalDone: "已下载活动日历",
|
||
exportCalFail: "没有可导出的活动日期",
|
||
addToCal: "加入日历",
|
||
loginDesc: "登录后即可创建线上或线下游民活动",
|
||
empty: "暂无匹配的活动",
|
||
draftRestored: "已恢复未发布的活动草稿",
|
||
draftHint: "内容会自动保存在本机",
|
||
tripEvents: "行程城市活动",
|
||
meetPeers: "同城可能认识的人",
|
||
goDating: "去匹配",
|
||
rsvpCalCta: "导出日历",
|
||
viewRsvps: "查看报名",
|
||
viewProfile: "查看资料",
|
||
},
|
||
community: {
|
||
tag: "💬 COMMUNITY",
|
||
title: "社区讨论",
|
||
subtitle: "签证、远程工作、住宿与安全 —— 和游民们交流真实经验",
|
||
bannerTitle: "不知道下一站去哪?",
|
||
bannerDesc: "先用决策台筛选城市,再来社区问细节。",
|
||
bannerCta: "打开下一站决策",
|
||
hot: "热门讨论",
|
||
search: "搜索话题…",
|
||
empty: "没有匹配的讨论",
|
||
loginDesc: "登录后即可发布话题并参与讨论",
|
||
back: "返回社区",
|
||
readMore: "阅读全文",
|
||
replies: "回复",
|
||
noReplies: "暂无回复",
|
||
replyHint: "登录后可参与回复",
|
||
newTopic: "发起讨论",
|
||
newTitle: "发起新讨论",
|
||
newSubject: "标题",
|
||
newCategory: "分类",
|
||
newBody: "内容",
|
||
newSubmit: "发布",
|
||
createOk: "讨论已发布",
|
||
createFail: "发布失败",
|
||
replyPlaceholder: "写下你的回复…",
|
||
replySend: "发送回复",
|
||
replySending: "发送中…",
|
||
replyNeed: "请先写一点回复内容",
|
||
replyOk: "回复已发布",
|
||
replyFail: "回复失败",
|
||
likeFail: "点赞失败,请稍后重试",
|
||
replyShortcut: "Ctrl/⌘ + Enter 发送",
|
||
noRepliesYet: "还没有回复,来做第一个吧",
|
||
catAll: "全部",
|
||
catVisa: "签证",
|
||
catRemote: "远程工作",
|
||
catHousing: "住宿",
|
||
catSafety: "安全",
|
||
catCommunity: "社区",
|
||
draftRestored: "已恢复未发布草稿",
|
||
draftNeed: "标题必填,正文至少 10 字",
|
||
draftHint: "内容会自动保存在本机",
|
||
replyDraftRestored: "已恢复未发送的回复草稿",
|
||
},
|
||
bookThanks: {
|
||
title: "下载版",
|
||
needLogin: "请先登录后查看下载。",
|
||
checking: "正在确认订单…",
|
||
pending: "支付确认中,请稍后刷新;或联系支持核对订单。",
|
||
statusFail: "无法确认购买状态",
|
||
refresh: "刷新状态",
|
||
confirmedNoFiles: "购买已确认。PDF/EPUB 下载暂未开放。",
|
||
confirmedHint: "可先在线阅读完整版,或联系支持获取文件。",
|
||
continueRead: "继续在线阅读",
|
||
contact: "联系支持",
|
||
ready: "购买成功,可下载:",
|
||
},
|
||
blogDetail: {
|
||
back: "返回博客",
|
||
readTime: "{n} 分钟阅读",
|
||
related: "相关文章",
|
||
readMore: "阅读 →",
|
||
explore: "接着探索",
|
||
submit: "投稿",
|
||
},
|
||
gigs: {
|
||
tag: "💼 GIGS",
|
||
title: "赏金任务",
|
||
subtitle: "远程协作与小任务,游民接单赚外快",
|
||
apply: "提交申请",
|
||
applyPlaceholder: "简述你的经验与报价…",
|
||
applyOk: "申请已提交",
|
||
applyFail: "申请失败",
|
||
applyNeed: "请先填写申请说明",
|
||
applying: "提交中…",
|
||
applied: "✓ 已申请",
|
||
loginFirst: "请先登录",
|
||
empty: "暂时没有开放任务",
|
||
emptyHint: "你可以发布一条赏金,或先去学院看看远程岗位",
|
||
save: "收藏",
|
||
saved: "已收藏",
|
||
unsaved: "已取消收藏",
|
||
savedList: "收藏的赏金",
|
||
clearSaved: "清空收藏",
|
||
postTitle: "发布赏金任务",
|
||
postName: "任务标题",
|
||
postDesc: "任务描述与交付要求",
|
||
postBudget: "预算(如 ¥800)",
|
||
postSubmit: "发布",
|
||
posting: "发布中…",
|
||
postNeed: "请填写标题和描述",
|
||
postOk: "任务已发布",
|
||
postFail: "发布失败",
|
||
budgetNegotiable: "面议",
|
||
draftHint: "草稿会自动保存在本机",
|
||
back: "返回赏金列表",
|
||
},
|
||
notifications: {
|
||
title: "通知",
|
||
empty: "暂无通知",
|
||
markRead: "全部标为已读",
|
||
loginDesc: "登录后查看匹配、报名与回复提醒",
|
||
markOne: "标为已读",
|
||
emptyHint: "去互动一下,通知会出现在这里",
|
||
},
|
||
pricing: {
|
||
title: "会员方案",
|
||
subtitle: "免费探索,VIP 解锁完整社区能力",
|
||
free: "免费版",
|
||
freeDesc: "适合初次体验",
|
||
free1: "每日 25 次匹配滑动",
|
||
free2: "参与社区讨论与活动 RSVP",
|
||
vip: "VIP 会员",
|
||
year: "年",
|
||
try: "开始匹配",
|
||
},
|
||
feedback: {
|
||
tag: "💬 FEEDBACK",
|
||
title: "意见反馈",
|
||
subtitle: "Bug、功能建议或安全问题 —— 我们会认真阅读",
|
||
placeholder: "描述你遇到的问题或建议…",
|
||
submit: "提交反馈",
|
||
submitting: "提交中…",
|
||
ok: "感谢反馈!",
|
||
fail: "提交失败",
|
||
minLength: "请至少写 5 个字",
|
||
guestHint: "未登录也可提交;登录后便于我们回复你",
|
||
thanksTitle: "已收到,谢谢",
|
||
thanksDesc: "我们会认真阅读每一条反馈",
|
||
writeAgain: "再写一条",
|
||
goCommunity: "去社区",
|
||
catGeneral: "一般反馈",
|
||
catBug: "Bug 报告",
|
||
catFeature: "功能建议",
|
||
catSafety: "安全问题",
|
||
draftRestored: "已恢复未提交草稿",
|
||
draftHint: "内容会自动保存在本机",
|
||
widgetTitle: "给 nomadro 提建议",
|
||
widgetSubtitle: "功能想法、体验问题,或只是想说喜欢",
|
||
openFull: "打开完整反馈页",
|
||
failRetry: "发送失败,请稍后重试或去反馈页",
|
||
fabAria: "反馈",
|
||
fabTitle: "反馈建议",
|
||
close: "关闭",
|
||
sendBtn: "发送反馈 🚀",
|
||
},
|
||
videos: {
|
||
tag: "🎬 VIDEOS",
|
||
title: "游民访谈",
|
||
subtitle: "真实旅居故事与目的地实录",
|
||
back: "返回视频列表",
|
||
empty: "视频内容准备中",
|
||
readEbook: "先读电子书",
|
||
goDigital: "去学院",
|
||
noPlayer: "播放链接暂未配置",
|
||
relatedMeetups: "相关活动",
|
||
saveLater: "稍后再看",
|
||
saved: "已加入稍后再看",
|
||
unsaved: "已移出稍后再看",
|
||
watchLater: "稍后再看",
|
||
clearSaved: "清空",
|
||
savedEmpty: "还没有收藏视频",
|
||
},
|
||
digest: {
|
||
tag: "📌 DIGEST",
|
||
title: "今日游民摘要",
|
||
subtitle: "计划、活动、视频与最近探索,一页收口",
|
||
planCities: "计划城市",
|
||
readiness: "就绪",
|
||
rsvps: "已报名",
|
||
noUpcoming: "暂无即将开始的活动",
|
||
watchLater: "稍后再看",
|
||
openVideos: "打开访谈",
|
||
lastAi: "最近提问",
|
||
askAi: "去问旅居助手",
|
||
resumeTitle: "接着探索",
|
||
resumeSub: "从计划、活动或最近看过的城市继续",
|
||
},
|
||
mapPage: {
|
||
tag: "🗺️ MAP",
|
||
title: "游民地图",
|
||
subtitle: "看看同路游民分布在哪里",
|
||
weather: "目的地天气",
|
||
hint: "完整交互地图见首页世界地图区块",
|
||
loading: "加载地图…",
|
||
empty: "暂无公开会员分布",
|
||
weatherEmpty: "天气暂不可用",
|
||
goDating: "去匹配",
|
||
goMeetups: "去活动",
|
||
},
|
||
services: {
|
||
tag: "🛎️ SERVICES",
|
||
title: "游民服务",
|
||
subtitle: "认证顾问与志愿者提供的落地支持",
|
||
name: "你的姓名",
|
||
email: "邮箱",
|
||
message: "需求描述",
|
||
inquire: "咨询",
|
||
submitting: "提交中…",
|
||
leadOk: "咨询已提交",
|
||
leadFail: "提交失败",
|
||
needFields: "请填写姓名、邮箱和需求说明",
|
||
needEmail: "请填写有效邮箱地址",
|
||
sent: "✓ 已提交咨询,我们会尽快联系你",
|
||
empty: "服务清单准备中",
|
||
emptyCta: "先去社区问问",
|
||
draftRestored: "已恢复未提交的咨询草稿",
|
||
draftHint: "内容会自动保存在本机",
|
||
},
|
||
report: {
|
||
tag: "📊 REPORT",
|
||
title: "数据报告",
|
||
subtitle: "城市热度与游民分布快照",
|
||
ranking: "城市排名",
|
||
members: "活跃游民",
|
||
viewMap: "查看地图",
|
||
loading: "加载报告…",
|
||
rankEmpty: "排名数据暂不可用",
|
||
membersEmpty: "会员分布暂不可用",
|
||
goNextStop: "去智能下一站",
|
||
snapshot: "复制报告快照",
|
||
snapshotOk: "报告快照已复制",
|
||
},
|
||
submit: {
|
||
tag: "📝 SUBMIT",
|
||
title: "内容投稿",
|
||
subtitle: "分享你的旅居文章、视频或电子书,审核后展示",
|
||
article: "文章",
|
||
video: "视频",
|
||
ebook: "电子书",
|
||
subject: "标题",
|
||
url: "链接(如有)",
|
||
notes: "补充说明",
|
||
send: "提交审核",
|
||
submitting: "提交中…",
|
||
ok: "投稿已收到",
|
||
fail: "提交失败",
|
||
needTitle: "请填写更完整的标题",
|
||
needUrl: "文章/视频请填写有效链接(http/https)",
|
||
thanksTitle: "投稿已收到",
|
||
thanksDesc: "审核通过后会出现在博客或视频区",
|
||
writeAgain: "再投一篇",
|
||
goCommunity: "去社区",
|
||
draftHint: "草稿会自动保存在本机",
|
||
},
|
||
ai: {
|
||
tag: "🤖 AI",
|
||
title: "旅居助手",
|
||
subtitle: "描述预算、网速、气候偏好 —— 智能推荐城市",
|
||
placeholder: "例如:预算 8000、要网速快、气候温暖…",
|
||
ask: "获取推荐",
|
||
fail: "暂时无法回答,请稍后再试",
|
||
nextStop: "打开下一站决策",
|
||
thinking: "思考中…",
|
||
needQuestion: "先写一个问题",
|
||
noCityData: "推荐城市暂无完整数据,请从详情页加入计划",
|
||
writeFail: "未能写入计划",
|
||
writePlan: "写入计划",
|
||
compareCities: "城市对比",
|
||
sendHint: "Ctrl/⌘ + Enter 发送",
|
||
history: "最近提问",
|
||
clearHistory: "清空历史",
|
||
tip1: "预算 6000,想找网速好的东南亚城市",
|
||
tip2: "适合第一次远程办公的城市?",
|
||
tip3: "清迈和巴厘岛怎么选?",
|
||
draftRestored: "已恢复未发送的提问草稿",
|
||
draftHint: "提问草稿会自动保存在本机",
|
||
},
|
||
recent: {
|
||
tag: "👀 RECENT",
|
||
title: "最近浏览",
|
||
subtitle: "接着探索你刚看过的城市,或一键对比",
|
||
compareRecent: "对比最近浏览",
|
||
searchLabel: "最近看过",
|
||
},
|
||
search: {
|
||
trigger: "搜索...",
|
||
aria: "搜索",
|
||
placeholder: "搜城市、活动、工具… 或从下方路径进入",
|
||
loading: "搜索中...",
|
||
empty: "😢 没有找到「{q}」相关结果",
|
||
ringLabel: "从一条路径开始",
|
||
kbdHint: "⌨️ ↑↓ 选择 · Enter 跳转 · Esc 关闭",
|
||
typeDestination: "目的地",
|
||
typeBlog: "博客",
|
||
typeVisa: "签证",
|
||
typeFaq: "FAQ",
|
||
typeTool: "工具",
|
||
typePage: "页面",
|
||
ringDiscover: "智能发现",
|
||
ringDiscoverSub: "匹配偏好,锁定下一座城市",
|
||
ringNext: "下一站决策",
|
||
ringNextSub: "预算网速气候智能推荐",
|
||
ringMeetups: "游民活动",
|
||
ringMeetupsSub: "先遇见人,再深入聊",
|
||
ringCommunity: "社区讨论",
|
||
ringCommunitySub: "签证远程住宿经验",
|
||
ringDigital: "游民学院",
|
||
ringDigitalSub: "课程与远程路径",
|
||
ringTools: "实用工具",
|
||
ringToolsSub: "按需取用,不堆菜单",
|
||
pagePlan: "旅居计划中心",
|
||
pagePlanSub: "时间轴、预算、签证提醒与出发清单",
|
||
pageCompare: "城市对比台",
|
||
pageCompareSub: "并排对比费用网速气候,写入计划",
|
||
pageDating: "游民匹配",
|
||
pageDatingSub: "滑动匹配同路游民",
|
||
pageChat: "私信",
|
||
pageChatSub: "与匹配成功的游民聊天",
|
||
pageGigs: "赏金任务",
|
||
pageGigsSub: "远程小任务接单",
|
||
pageJoin: "开通会员",
|
||
pageJoinSub: "VIP 匹配直播与课程",
|
||
pageBook: "游牧代码电子书",
|
||
pageBookSub: "在线阅读与下载版",
|
||
pageVideos: "游民访谈",
|
||
pageVideosSub: "真实旅居视频",
|
||
pageServices: "游民服务",
|
||
pageServicesSub: "签证税务落地咨询",
|
||
pageAi: "旅居助手",
|
||
pageAiSub: "AI 推荐下一站城市",
|
||
pageMap: "游民地图",
|
||
pageMapSub: "会员分布与天气",
|
||
pageReport: "数据报告",
|
||
pageReportSub: "城市排名快照",
|
||
pageFeedback: "意见反馈",
|
||
pageFeedbackSub: "Bug 与建议",
|
||
pageSubmit: "内容投稿",
|
||
pageSubmitSub: "文章视频电子书",
|
||
pageHelp: "帮助中心",
|
||
pageHelpSub: "常见问题",
|
||
pageContact: "联系我们",
|
||
pageContactSub: "合作与媒体",
|
||
pagePricing: "会员定价",
|
||
pagePricingSub: "免费版与 VIP 方案",
|
||
pageNotif: "通知中心",
|
||
pageNotifSub: "匹配与社区动态",
|
||
pageAbout: "关于 nomadro",
|
||
pageAboutSub: "品牌与联系方式",
|
||
pageChangelog: "更新日志",
|
||
pageChangelogSub: "功能迭代记录",
|
||
pagePrivacy: "隐私政策",
|
||
pagePrivacySub: "Cookie 与数据说明",
|
||
pageCommunitySub: "签证远程住宿经验交流",
|
||
pageMeetupsSub: "线上圆桌与线下聚会",
|
||
pageDigitalSub: "课程电子书与远程岗位",
|
||
pageTools: "工具箱",
|
||
pageToolsSub: "旅居小工具按需取用",
|
||
},
|
||
share: {
|
||
button: "📤 分享",
|
||
aria: "分享",
|
||
system: "📱 系统分享",
|
||
copy: "📋 复制链接",
|
||
twitter: "🐦 分享到 X",
|
||
},
|
||
destDetail: {
|
||
guide: "🧭 落地指南",
|
||
bestFor: "适合:",
|
||
radar: "📊 城市画像",
|
||
scoreValue: "性价比",
|
||
scoreSpeed: "网速",
|
||
scoreClimate: "气候",
|
||
scoreRating: "评分",
|
||
scoreCommunity: "社区",
|
||
timezone: "时区",
|
||
nomadCommunity: "游民社区",
|
||
active: "活跃",
|
||
climate: "气候",
|
||
livable: "宜居",
|
||
costBreak: "💸 月度成本拆解",
|
||
pros: "👍 优势",
|
||
cons: "👎 注意",
|
||
reviews: "💬 游民评价",
|
||
localChat: "💬 同城社群",
|
||
peopleUnit: "人",
|
||
recentTopics: "近期话题:",
|
||
relatedMeetups: "🍹 相关活动",
|
||
relatedDiscussions: "🧵 相关讨论",
|
||
relatedContent: "📚 相关内容",
|
||
relatedRegion: "🔗 同区域推荐",
|
||
viewFallback: "查看",
|
||
snapCost: "月生活费 ¥{cost} · 网速 {speed}Mbps · 评分 {rating}",
|
||
snapClimate: "均温 {temp}°C · 游民 {nomads}",
|
||
snapVisa: "签证提示:{visa}",
|
||
snapDetail: "详情:{url}",
|
||
perMonth: "/月",
|
||
},
|
||
profile: {
|
||
myRsvps: "我报名的活动",
|
||
rsvpEmpty: "还没有报名活动",
|
||
goMeetups: "去看看活动 →",
|
||
openLive: "进入直播",
|
||
snapshotOk: "城市快照已复制",
|
||
snapshotBtn: "📋 复制快照",
|
||
exportRsvps: "导出已报名日历",
|
||
logout: "退出登录",
|
||
changeAvatar: "更换头像",
|
||
uploading: "上传中…",
|
||
avatarOk: "头像已更新",
|
||
avatarFail: "上传失败",
|
||
avatarTooBig: "图片请小于 5MB",
|
||
syncing: "计划同步中…",
|
||
synced: "✓ 计划已云端同步",
|
||
offline: "计划仅本机",
|
||
loggedIn: "账号已登录",
|
||
statFavs: "收藏目的地",
|
||
statCities: "计划城市",
|
||
statReady: "出发就绪",
|
||
statBadges: "成就徽章",
|
||
connectStrip: "Connect 动态",
|
||
statLikes: "喜欢我的",
|
||
statMatches: "互相喜欢",
|
||
statChats: "私信会话",
|
||
statRsvps: "已报名活动",
|
||
openPlan: "打开计划中心",
|
||
tripEmpty: "还没有规划行程",
|
||
goPlan: "去规划 →",
|
||
startLabel: "出发 {month}",
|
||
budgetLabel: "月预算 ¥{budget}",
|
||
avgMonthLabel: " · 均月 ¥{avg}",
|
||
readyCount: "就绪 {checked}/{total}",
|
||
monthsCost: "{months} 个月 · ¥{cost}",
|
||
totalLine: "总计",
|
||
monthsUnit: "个月",
|
||
compareTrip: "对比行程城市",
|
||
keepEditing: "继续编辑 →",
|
||
achievements: "🏅 游民成就",
|
||
myFavs: "❤️ 我的收藏",
|
||
favsToPlan: "收藏写入计划({n})",
|
||
favsAlready: "收藏城市都已在计划中",
|
||
favsAdded: "已将 {n} 座收藏城市写入计划",
|
||
favsEmpty: "还没有收藏目的地",
|
||
goExplore: "去探索 →",
|
||
loading: "加载中...",
|
||
perMonth: "/月",
|
||
quickLinks: "🚀 快捷入口",
|
||
qDest: "🌍 浏览目的地",
|
||
qPlan: "🗓️ 旅居计划",
|
||
qCompare: "⚖️ 城市对比",
|
||
qNext: "🧭 智能下一站",
|
||
qMeetups: "🎉 游民活动",
|
||
qDating: "💕 游民匹配",
|
||
qChat: "✉️ 私信",
|
||
qNotif: "🔔 通知",
|
||
qVip: "✨ 开通 VIP",
|
||
qVipMember: "✨ VIP 会员",
|
||
qDigital: "🎓 游民学院",
|
||
qAi: "🤖 旅居助手",
|
||
qTools: "🛠️ 工具箱",
|
||
badgeNewbie: "初出茅庐",
|
||
badgeNewbieDesc: "加入 nomadro",
|
||
badgeCollector: "收藏家",
|
||
badgeCollectorDesc: "收藏 3+ 目的地",
|
||
badgePlanner: "行程达人",
|
||
badgePlannerDesc: "规划 3+ 城市行程",
|
||
badgeLongStay: "长期旅居",
|
||
badgeLongStayDesc: "行程总计 6+ 个月",
|
||
badgeReady: "出发就绪",
|
||
badgeReadyDesc: "就绪清单 ≥ 50%",
|
||
badgeGlobal: "环球游民",
|
||
badgeGlobalDesc: "探索 5+ 城市",
|
||
},
|
||
notifSettings: {
|
||
title: "通知设置",
|
||
loginDesc: "登录后可管理匹配、活动与社区通知偏好",
|
||
back: "返回通知",
|
||
save: "保存设置",
|
||
saved: "设置已保存",
|
||
fail: "保存失败",
|
||
loading: "加载偏好…",
|
||
saving: "保存中…",
|
||
match: "匹配通知",
|
||
meetup: "活动提醒",
|
||
community: "社区动态",
|
||
push: "推送通知 (ntfy)",
|
||
email: "邮件摘要",
|
||
marketing: "活动营销",
|
||
},
|
||
newsletter: {
|
||
title: "订阅游民周报",
|
||
subtitle: "活动预告、签证变动与社区精选 —— 每周一封",
|
||
email: "你的邮箱",
|
||
submit: "订阅",
|
||
ok: "订阅成功",
|
||
fail: "订阅失败",
|
||
},
|
||
pwa: {
|
||
installHint: "可安装到主屏幕,离线也能打开计划入口",
|
||
},
|
||
matcher: {
|
||
tag: "🎯 MATCHER · {n}/{total}",
|
||
resultsTag: "✨ YOUR MATCHES",
|
||
close: "关闭",
|
||
cancel: "取消",
|
||
back: "← 上一步",
|
||
budgetTitle: "你的月预算?",
|
||
budgetSub: "包含住宿、餐饮、交通等日常开销",
|
||
climateTitle: "偏好什么气候?",
|
||
climateSub: "选择最让你舒适的环境",
|
||
priorityTitle: "最看重什么?",
|
||
prioritySub: "我们会据此为你智能排序",
|
||
regionTitle: "想去哪个区域?",
|
||
regionSub: "可以选「不限」探索全球",
|
||
budgetLow: "精打细算",
|
||
budgetLowDesc: "¥5,000 以下/月",
|
||
budgetMed: "舒适适中",
|
||
budgetMedDesc: "¥5,000 – 9,000/月",
|
||
budgetHigh: "品质优先",
|
||
budgetHighDesc: "¥9,000 以上/月",
|
||
climateWarm: "热带温暖",
|
||
climateWarmDesc: "25°C 以上,阳光沙滩",
|
||
climateMild: "温和宜人",
|
||
climateMildDesc: "18–25°C,四季舒适",
|
||
climateCool: "凉爽清爽",
|
||
climateCoolDesc: "18°C 以下,清爽干燥",
|
||
priCost: "生活成本",
|
||
priCostDesc: "花最少的钱过最好的生活",
|
||
priSpeed: "网络速度",
|
||
priSpeedDesc: "稳定高速,会议不掉线",
|
||
priCommunity: "游民社区",
|
||
priCommunityDesc: "结识同行,快速融入",
|
||
priLifestyle: "生活方式",
|
||
priLifestyleDesc: "文化、美食与体验",
|
||
regionAny: "不限",
|
||
regionAnyDesc: "全球探索",
|
||
regionSea: "东南亚",
|
||
regionSeaDesc: "性价比之王",
|
||
regionEurope: "欧洲",
|
||
regionEuropeDesc: "历史与签证友好",
|
||
regionLatam: "拉美",
|
||
regionLatamDesc: "活力与北美时区",
|
||
regionAsia: "东亚",
|
||
regionAsiaDesc: "安全高效现代",
|
||
resultsTitle: "为你推荐的目的地",
|
||
resultsSub: "偏好已保存。可一键写入旅居计划,或先对比再决定。",
|
||
empty: "暂无匹配结果,目的地数据可能未加载",
|
||
retry: "重新测试",
|
||
goNextStop: "去智能下一站",
|
||
matchPct: "{n}% 匹配",
|
||
addPlan: "+ 计划",
|
||
retryBtn: "🔄 重新测试",
|
||
compareTop: "⚖️ 对比 Top {n}",
|
||
writeTop: "把 Top {n} 写入计划 →",
|
||
alreadyAll: "这几座城已在计划中",
|
||
addFail: "未能加入计划",
|
||
addedTop: "已将 Top {n} 城写入旅居计划",
|
||
skipped: "(跳过 {n} 座已有)",
|
||
},
|
||
shortcuts: {
|
||
title: "键盘快捷键",
|
||
subtitle: "提升浏览效率,按 ? 随时唤起",
|
||
aria: "键盘快捷键",
|
||
close: "关闭",
|
||
search: "全局搜索",
|
||
matcher: "智能匹配",
|
||
nextStop: "下一站",
|
||
plan: "旅居计划",
|
||
tools: "打开工具箱",
|
||
help: "快捷键帮助",
|
||
esc: "关闭弹窗",
|
||
},
|
||
tips: {
|
||
title: "游民小贴士",
|
||
more: "了解更多 →",
|
||
close: "关闭",
|
||
tip1: "入住前用 Speedtest 测网速,低于 20Mbps 慎重签约",
|
||
tip2: "准备一张无外汇手续费的信用卡,省下不少换汇成本",
|
||
tip3: "出发前购买国际医疗保险,月费约 $40+",
|
||
tip4: "选时区重叠 ≥4 小时的城市,远程协作更轻松",
|
||
tip5: "护照有效期建议预留 6 个月以上,避免登机被拒",
|
||
tip6: "先订 1 周短租探路,再决定长期租房",
|
||
},
|
||
faqUi: {
|
||
empty: "没有匹配的问题",
|
||
clear: "清除搜索",
|
||
help: "帮助中心",
|
||
askAi: "问 AI",
|
||
showAll: "展开全部 {n} 个问题",
|
||
still: "还在选城?",
|
||
browse: "继续看目的地",
|
||
},
|
||
cookies: {
|
||
body: "我们使用本地存储保存主题、行程与登录会话,不做广告追踪。",
|
||
privacy: "隐私政策",
|
||
cookies: "Cookie 说明",
|
||
ok: "知道了 ✓",
|
||
},
|
||
onboard: {
|
||
aria: "新手引导",
|
||
skip: "跳过",
|
||
next: "下一步 →",
|
||
startMatch: "开始匹配 →",
|
||
goDigital: "去学院看看 →",
|
||
step1Title: "发现去哪",
|
||
step1Desc: "用智能匹配或地图,先锁定下一座城市",
|
||
step2Title: "遇见同行",
|
||
step2Desc: "同城活动与社区讨论,先认识真实的人",
|
||
step3Title: "成长变现",
|
||
step3Desc: "学院与赏金任务,在路上继续做事",
|
||
},
|
||
lang: {
|
||
zh: "中文",
|
||
en: "EN",
|
||
},
|
||
} as const;
|
||
|
||
export const en: { [K in keyof typeof zh]: typeof zh[K] extends string ? string : { [P in keyof typeof zh[K]]: string } } = {
|
||
brand: "nomadro",
|
||
tagline: "Code your way around the world",
|
||
nav: {
|
||
map: "🗺️ Map",
|
||
mapShort: "Map",
|
||
memberMap: "🧭 Who's there",
|
||
destinations: "🌍 Destinations",
|
||
plan: "🗓️ Plan",
|
||
compare: "⚖️ Compare",
|
||
tools: "🛠️ Tools",
|
||
nextStop: "🧭 Next stop",
|
||
meetups: "🎉 Events",
|
||
community: "💬 Community",
|
||
dating: "💕 Match",
|
||
chat: "✉️ Messages",
|
||
digital: "🎓 Academy",
|
||
join: "✨ VIP",
|
||
gigs: "💼 Gigs",
|
||
pricing: "💎 Pricing",
|
||
notifications: "🔔 Alerts",
|
||
ebook: "📖 Ebook",
|
||
services: "🛎️ Services",
|
||
feedback: "💬 Feedback",
|
||
ai: "🤖 AI",
|
||
visa: "📋 Visas",
|
||
blog: "📝 Blog",
|
||
blogShort: "Blog",
|
||
login: "Log in",
|
||
theme: "Toggle theme",
|
||
menu: "Menu",
|
||
lang: "Language",
|
||
exploreGroup: "Explore",
|
||
connectGroup: "Connect",
|
||
growGroup: "Grow",
|
||
},
|
||
hero: {
|
||
badge: "digital nomads on the move worldwide",
|
||
titleLine1: "Ship code.",
|
||
titleLine2: "See the world",
|
||
ctaExplore: "Start with a city",
|
||
ctaPlan: "🗓️ Move plan",
|
||
ctaCompare: "⚖️ Compare cities",
|
||
ctaMatch: "🎯 Match where to go",
|
||
scroll: "Scroll down",
|
||
statCountries: "🗺️ Countries to explore",
|
||
statCost: "💰 Avg monthly cost (k CNY)",
|
||
statHappy: "😊 Satisfaction %",
|
||
},
|
||
strip: {
|
||
title: "⚡ Core path",
|
||
openPlan: "Open move plan →",
|
||
plan: "Plan",
|
||
compare: "Compare",
|
||
destinations: "Cities",
|
||
visa: "Visas",
|
||
tools: "Toolkit",
|
||
weekend: "Weekend",
|
||
cost: "Costs",
|
||
changelog: "Updates",
|
||
},
|
||
journey: {
|
||
tag: "PATH",
|
||
title: "One path. Three linked rings.",
|
||
subtitle: "Pick a city, meet people, then grow on the road — open only what you need next.",
|
||
step1Title: "Find where",
|
||
step1Desc: "Match preferences or tap the map to lock your next city.",
|
||
step1Cta: "Start discovering",
|
||
step2Title: "Meet people",
|
||
step2Desc: "Local meetups and community threads before you go deep.",
|
||
step2Cta: "See events",
|
||
step3Title: "Grow & earn",
|
||
step3Desc: "Academy, gigs, and small tools — keep shipping while you travel.",
|
||
step3Cta: "Open academy",
|
||
matchCta: "Start matching",
|
||
step4Title: "Toolkit",
|
||
step4Desc: "Costs, jet lag, packing, scam tips — dozens of helpers on demand.",
|
||
step4Cta: "Open toolkit",
|
||
},
|
||
ring: {
|
||
tag: "NEXT",
|
||
continue: "What you can do next",
|
||
plan: "Add to move plan",
|
||
planDesc: "Put this city on your timeline and budget.",
|
||
meetups: "Local meetups",
|
||
meetupsDesc: "Meet offline first, then keep talking.",
|
||
meetupsFromCommunity: "Take the thread offline.",
|
||
meetupsFromDating: "Join an event together.",
|
||
community: "Community",
|
||
communityDesc: "Visas, housing, remote-work tips.",
|
||
communityWork: "Remote work threads and collab.",
|
||
dating: "Nomad match",
|
||
datingDesc: "Friends, roommates, or cofounders.",
|
||
chat: "Open messages",
|
||
chatDesc: "Continue the conversation.",
|
||
nextStop: "Next-stop picker",
|
||
nextStopDesc: "Narrow choices when you are unsure.",
|
||
digital: "Academy",
|
||
digitalDesc: "Courses and remote-work tracks.",
|
||
compareDesc: "Compare side-by-side, then add to plan.",
|
||
},
|
||
home: {
|
||
mapTag: "🗺️ WORLD MAP",
|
||
mapTitle: "Nomad heatmap",
|
||
mapSubtitle: "Tap a pin for details, or scroll down for the full city list",
|
||
mapPick: "Pick a city",
|
||
mapPickHint: "Tap a pin on the map",
|
||
mapCost: "Monthly cost",
|
||
mapSpeed: "Wi‑Fi",
|
||
mapTemp: "Avg temp",
|
||
mapRating: "Rating",
|
||
mapBrowse: "Browse all cities →",
|
||
mapMembers: "See who's there →",
|
||
destTag: "🌴 TOP DESTINATIONS",
|
||
destTitle: "Top nomad cities",
|
||
destSubtitle: "Filter, favorite, tap a city for full details",
|
||
destMatcher: "Not sure where? Smart match",
|
||
destSearch: "Search cities…",
|
||
destEmpty: "No cities match your filters",
|
||
destShowMore: "Show more cities",
|
||
destShowLess: "Show less",
|
||
destAddPlan: "Add to plan",
|
||
destInPlan: "In your plan",
|
||
destCompareHint: "{n}/4 picked · pick {need} more to compare",
|
||
compareBarNeed: "Pick 1 more to compare",
|
||
visaTag: "📋 VISA GUIDE",
|
||
visaTitle: "Digital nomad visas",
|
||
visaSubtitle: "Popular remote-work visas — then add stops to your move plan",
|
||
visaShowMore: "Show all visa options",
|
||
visaShowLess: "Show less",
|
||
visaToPlan: "Open move plan →",
|
||
blogTag: "📝 BLOG",
|
||
blogTitle: "Nomad blog",
|
||
blogSubtitle: "Guides and field notes",
|
||
blogMore: "More articles →",
|
||
faqTag: "❓ FAQ",
|
||
faqTitle: "FAQ",
|
||
faqSubtitle: "What nomads ask before they go",
|
||
faqSearch: "Search questions…",
|
||
filterAll: "🌏 All",
|
||
filterSea: "🌴 SE Asia",
|
||
filterEurope: "🏰 Europe",
|
||
filterLatam: "🌮 LatAm",
|
||
filterAsia: "🏯 East Asia",
|
||
sortRating: "⭐ Rating",
|
||
sortCostAsc: "💰 Cost low → high",
|
||
sortCostDesc: "💰 Cost high → low",
|
||
sortSpeed: "📶 Wi‑Fi speed",
|
||
},
|
||
lifestyle: {
|
||
tag: "💻 NOMAD LIFE",
|
||
title: "A day in nomad life",
|
||
subtitle: "Freedom still needs rhythm — tap a card for detail",
|
||
ctaDay: "7-day landing guide",
|
||
ctaMeetups: "Find meetups",
|
||
time_morning: "🌅 07:00",
|
||
icon_morning: "🧘",
|
||
title_morning: "Morning ritual",
|
||
desc_morning: "Yoga, meditation, or a run by the water to wake body and mind",
|
||
tip_morning: "Try: riverside run in Chiang Mai, beach yoga in Bali",
|
||
time_work: "☕ 09:00",
|
||
icon_work: "💻",
|
||
title_work: "Deep work",
|
||
desc_work: "Four focused hours in a coworking space or café for core tasks",
|
||
tip_work: "Try: Punspace Chiang Mai, Outsite Lisbon",
|
||
time_explore: "🍜 13:00",
|
||
icon_explore: "🍽️",
|
||
title_explore: "Local explore",
|
||
desc_explore: "Eat local food, talk to people, feel the culture shift",
|
||
tip_explore: "Try: Chiang Mai night market, Barcelona tapas walk",
|
||
time_collab: "🌇 17:00",
|
||
icon_collab: "📞",
|
||
title_collab: "Cross-timezone sync",
|
||
desc_collab: "Video with a global team — schedule around the clock",
|
||
tip_collab: "Tools: Calendly time zones, World Time Buddy",
|
||
time_social: "🌙 20:00",
|
||
icon_social: "🎉",
|
||
title_social: "Community night",
|
||
desc_social: "Join a nomad meetup and meet people from everywhere",
|
||
tip_social: "Platforms: nomadro events, local groups",
|
||
},
|
||
homeCommunity: {
|
||
tag: "🤝 COMMUNITY",
|
||
title: "Nomad voices",
|
||
subtitle: "Real stories from digital nomads worldwide",
|
||
ctaTitle: "Ready for your next move?",
|
||
ctaDesc: "Subscribe to the weekly brief, or jump into community and events",
|
||
},
|
||
aboutPage: {
|
||
tag: "🌏 ABOUT",
|
||
title: "About nomadro",
|
||
subtitle: "Travel the world with one line of code",
|
||
whoTitle: "Who we are",
|
||
whoBody:
|
||
"nomadro is a move-decision platform for digital nomads. We bring destination data, visas, cost estimates, timezone collaboration, and community experience into one place so you can decide where to go next faster.",
|
||
whatTitle: "What you can do",
|
||
what1: "🗺️ Explore top nomad cities and comparison tools",
|
||
what2: "🧮 Estimate living costs, flights, and startup runway",
|
||
what3: "📋 Visa matching, insurance, and connectivity references",
|
||
what4: "🗓️ Plan multi-city trips and share with partners",
|
||
what5: "🗣️ Landing phrases, packing lists, and event calendars",
|
||
contactTitle: "Contact",
|
||
contactBody: "Partnerships & feedback:",
|
||
repoBody: "Open source:",
|
||
ctaExplore: "Smart next stop",
|
||
ctaCommunity: "Join community",
|
||
ctaPlan: "Open plan",
|
||
},
|
||
common: {
|
||
backHome: "← Back home",
|
||
browseDest: "Destinations",
|
||
loading: "Loading…",
|
||
copy: "Copy",
|
||
share: "Share",
|
||
clear: "Clear",
|
||
save: "Save",
|
||
cancel: "Cancel",
|
||
open: "Open",
|
||
learnMore: "Learn more",
|
||
select: "Select…",
|
||
detail: "Details →",
|
||
alreadyInTrip: "Already in your trip",
|
||
alreadyInPlan: "Already in your plan",
|
||
addedToPlanMonths: "{emoji} {city} added to move plan ({months} mo)",
|
||
cityOverBudget: "💰 Monthly cost ¥{cost} is above your plan budget ¥{budget}",
|
||
linkCopied: "Link copied 📋",
|
||
copyFail: "Copy failed — copy from the address bar",
|
||
favorite: "🤍 Save",
|
||
favorited: "❤️ Saved",
|
||
loginFavorite: "🤍 Sign in to save",
|
||
monthsUnit: "mo",
|
||
addToPlan: "🗓️ Add to move plan",
|
||
inPlanOpen: "✓ In plan · Open →",
|
||
stayLabel: "Stay",
|
||
goCompare: "⚖️ Compare",
|
||
findNext: "🧭 Next stop",
|
||
cityMeetups: "🍹 Local events",
|
||
shareBtn: "📤 Share",
|
||
loadingDepth: "Loading city depth…",
|
||
viewTimezone: "See timezone board",
|
||
},
|
||
plan: {
|
||
tag: "🗓️ MOVE PLAN",
|
||
defaultTitle: "My move plan",
|
||
titleAria: "Plan title",
|
||
loading: "Loading plan…",
|
||
subtitle: "Timeline, budget, visa alerts and a readiness checklist — a plan you can actually execute.",
|
||
syncing: "Syncing…",
|
||
synced: "✓ Signed in · plan synced",
|
||
offline: "Offline · local only",
|
||
loggedIn: "Signed in",
|
||
syncNow: "Sync now",
|
||
loginSync: "Sign in to sync across devices →",
|
||
startMonth: "Start month",
|
||
budgetCap: "Monthly budget cap (¥)",
|
||
budgetPlaceholder: "e.g. 8000",
|
||
cities: "Cities",
|
||
duration: "Duration",
|
||
totalBudget: "Total budget",
|
||
avgMonth: "Avg / month",
|
||
readiness: "Readiness",
|
||
monthsUnit: "mo",
|
||
stay: "Stay",
|
||
timeline: "Route timeline",
|
||
exportMd: "Export MD",
|
||
exportIcs: "Export calendar",
|
||
addCity: "Add city",
|
||
destination: "Destination",
|
||
stayMonths: "Stay (months)",
|
||
joinTimeline: "Add to timeline",
|
||
checklist: "Departure checklist",
|
||
empty: "No cities yet. Pick destinations or add your first stop below.",
|
||
goDest: "Browse destinations →",
|
||
emptyNextStop: "Smart next stop",
|
||
emptyCompare: "Compare cities",
|
||
moveUp: "Move up",
|
||
moveDown: "Move down",
|
||
removeStop: "Remove",
|
||
visas: "Visas for this trip",
|
||
visaGuide: "Visa guide →",
|
||
visaMissing: "No nomad-visa entries for these countries yet — check stay hints and official policy.",
|
||
compareInTrip: "Compare trip cities",
|
||
openCompare: "Open compare →",
|
||
notePlaceholder: "Notes: housing, visa milestones, todos…",
|
||
overBudget: "Avg monthly cost exceeds your budget cap. Shorten pricey stops or raise the cap.",
|
||
overStay: "stop(s) may exceed typical visa-free limits",
|
||
markVisa: "Mark visa researched",
|
||
needStartMonth: "Set a start month before exporting the calendar",
|
||
icsFail: "Could not build calendar — check your trip",
|
||
icsDone: "Calendar downloaded — import on phone / Google Calendar",
|
||
mdDone: "Markdown plan downloaded",
|
||
copied: "Plan copied",
|
||
shareCopied: "Share link copied",
|
||
importedShare: "Shared trip imported",
|
||
addedToPlan: "added to plan",
|
||
syncedManual: "Synced to your account",
|
||
syncFail: "Sync failed — try again later",
|
||
cleared: "Trip cleared",
|
||
colCost: "Cost",
|
||
colSpeed: "Wi‑Fi",
|
||
colClimate: "Climate",
|
||
colRating: "Rating",
|
||
colCommunity: "Community",
|
||
exportStartMonth: "Start month: {month}",
|
||
exportNote: "Note: ",
|
||
exportVisa: "Visa: ",
|
||
exportStop: "{n}. {emoji} **{name}, {country}** — {months} mo · ¥{cost}{range}{note}{visa}",
|
||
exportTotal: "> Total **{months} mo** · **¥{cost}** · avg ¥{avg}/mo",
|
||
exportReady: "> Readiness **{pct}%** ({checked}/{total})",
|
||
exportFooter: "_Generated by nomadro move plan · {date}_",
|
||
plainStop: "{n}. {emoji} {name}, {country} — {months}mo ¥{cost}{range}",
|
||
plainTotal: "Total: {months}mo · ¥{cost} · readiness {pct}%",
|
||
visaDuration: "Duration",
|
||
visaIncome: "Income",
|
||
visaApproval: "Approval",
|
||
visaDifficulty: "Difficulty",
|
||
visaMissingCountries: "No entries yet: {countries} — check official policy and visa-free days.",
|
||
},
|
||
compare: {
|
||
tag: "⚖️ COMPARE",
|
||
title: "City compare",
|
||
subtitle: "Compare up to 4 cities on cost, Wi‑Fi, climate and rating — then add winners to your plan.",
|
||
pick: "Pick cities",
|
||
clear: "Clear",
|
||
copyLink: "Copy link",
|
||
needMore: "Pick at least",
|
||
needMoreSuffix: "more cities to compare",
|
||
backDest: "Pick on homepage",
|
||
addWinner: "Add recommended city",
|
||
addAll: "Add all to move plan →",
|
||
dest: "Destinations",
|
||
plan: "Move plan",
|
||
maxCities: "Compare up to 4 cities",
|
||
alreadyInPlan: "These cities are already in your plan",
|
||
alreadyOne: "Already in your plan",
|
||
addedN: "Added",
|
||
citiesUnit: "cities",
|
||
skipped: "skipped",
|
||
wrotePlan: "added to plan",
|
||
needShare: "Pick at least 2 cities to share",
|
||
linkCopied: "Compare link copied",
|
||
winner: "👑 Top pick",
|
||
history: "Recent compares",
|
||
clearHistory: "Clear history",
|
||
restore: "Restore",
|
||
snapshot: "Copy compare snapshot",
|
||
snapshotOk: "Compare snapshot copied",
|
||
snapshotTitle: "⚖️ nomadro city compare",
|
||
scoreLabel: "score {score}",
|
||
loadingDest: "Destinations loading or unavailable",
|
||
winnerMeetups: "🍹 Events in {city}",
|
||
openPlan: "Open plan hub",
|
||
},
|
||
login: {
|
||
welcome: "Welcome back",
|
||
join: "Join nomadro",
|
||
loginHint: "Sync favorites and preferences across your devices",
|
||
registerHint: "Create an account to save favorites and pick up anywhere",
|
||
hintExplore: "Sync favorites and keep exploring across devices",
|
||
hintProfile: "View favorites, trip progress and account settings",
|
||
hintPlan: "Sync your move plan, favorites and checklist",
|
||
hintCompare: "Continue your city comparison after sign-in",
|
||
hintTools: "Access tools and services that need an account",
|
||
hintDestination: "Return to this city with favorites and plans in sync",
|
||
hintDating: "Sign in to swipe matches and chat on mutual like",
|
||
hintChat: "Sign in to read and reply to messages",
|
||
hintMeetups: "Sign in to RSVP or host nomad events",
|
||
hintJoin: "Sign in to manage or upgrade VIP membership",
|
||
hintNotifications: "Sign in to view alerts and reminders",
|
||
hintGigs: "Sign in to apply for gigs or post bounties",
|
||
hintCommunity: "Sign in to post and join discussions",
|
||
hintSubmit: "Sign in to submit content",
|
||
hintDigital: "Continue digital nomad courses and growth tracks",
|
||
hintVideos: "Save interviews and sync watch-later",
|
||
hintJobs: "Save remote roles and keep applying",
|
||
hintAi: "Use the travel assistant and keep your questions",
|
||
hintNextStop: "Continue next-stop decisions and write to plan",
|
||
hintMap: "Explore member map and city reports",
|
||
redirectTo: "After sign-in you'll go to",
|
||
planMergeNote: "Local trip data found — we'll merge it with your account",
|
||
destHome: "Home",
|
||
destProfile: "Profile",
|
||
destPlan: "Move plan",
|
||
destCompare: "Compare",
|
||
destTools: "Toolkit",
|
||
destDestination: "City page",
|
||
destDating: "Nomad match",
|
||
destChat: "Messages",
|
||
destMeetups: "Events",
|
||
destJoin: "Membership",
|
||
destNotifications: "Notifications",
|
||
destGigs: "Bounty gigs",
|
||
destCommunity: "Community",
|
||
destSubmit: "Content submit",
|
||
destDigital: "Digital academy",
|
||
destVideos: "Nomad videos",
|
||
destJobs: "Remote jobs",
|
||
destAi: "Travel assistant",
|
||
destNextStop: "Next stop",
|
||
destMap: "Nomad map",
|
||
tabLogin: "Log in",
|
||
tabRegister: "Sign up",
|
||
nickname: "Nickname",
|
||
email: "Email",
|
||
password: "Password",
|
||
nickPlaceholder: "Your nomad nickname",
|
||
pwdPlaceholder: "At least 6 characters",
|
||
submitLoginDefault: "Log in",
|
||
submitLoginPlan: "Log in & sync plan",
|
||
submitRegister: "Create account",
|
||
demo: "Try demo account",
|
||
demoHintDefault: "No sign-up needed — explore with one click",
|
||
demoHintPlan: "Demo includes a sample trip for testing plan sync",
|
||
or: "or",
|
||
processing: "Working…",
|
||
welcomeToastDefault: "Welcome back!",
|
||
welcomeToastPlan: "Welcome back — syncing your plan",
|
||
registerToast: "Account created — welcome to nomadro",
|
||
demoToast: "Signed in with demo account",
|
||
loginError: "Wrong email or password",
|
||
registerError: "Sign-up failed — email may already be in use",
|
||
nameMin: "Name must be at least 2 characters",
|
||
pwdMin: "Password must be at least 6 characters",
|
||
showPwd: "Show password",
|
||
pwdHint: "At least 6 characters — letters and numbers recommended",
|
||
pwdNeed: "{n} more characters needed",
|
||
pwdOk: "OK · a bit longer is safer",
|
||
pwdStrong: "Looking strong",
|
||
},
|
||
footer: {
|
||
explore: "Explore",
|
||
connect: "Connect",
|
||
grow: "Grow",
|
||
tools: "Tools",
|
||
account: "Account",
|
||
tagline: "Work and live freely anywhere on this planet 🌏",
|
||
destinations: "Destinations",
|
||
plan: "Move plan",
|
||
compare: "Compare",
|
||
visa: "Visas",
|
||
blog: "Blog",
|
||
about: "About nomadro",
|
||
toolkit: "Utility tools",
|
||
ebook: "Nomad Code · Ebook",
|
||
planHub: "Plan hub",
|
||
compareHub: "Compare hub",
|
||
calculator: "Cost calculator",
|
||
changelog: "Changelog",
|
||
login: "Log in / Sign up",
|
||
profile: "Profile",
|
||
privacy: "Privacy",
|
||
nextStop: "Next stop",
|
||
meetups: "Events",
|
||
community: "Community",
|
||
dating: "Nomad match",
|
||
chat: "Messages",
|
||
digital: "Academy",
|
||
join: "Membership",
|
||
gigs: "Bounty gigs",
|
||
pricing: "Pricing",
|
||
notifications: "Notifications",
|
||
feedback: "Feedback",
|
||
help: "Help",
|
||
contact: "Contact",
|
||
videos: "Videos",
|
||
services: "Services",
|
||
ai: "AI assistant",
|
||
mapPage: "Nomad map",
|
||
report: "Data report",
|
||
},
|
||
dating: {
|
||
tag: "💕 MATCH",
|
||
title: "Nomad match",
|
||
subtitle: "Swipe by intent — friends, dating, roommates or cofounders",
|
||
loginTitle: "Sign in to start matching",
|
||
loginDesc: "Complete your profile, then swipe cards and chat on match",
|
||
joinFirst: "Complete your nomad profile first",
|
||
joinBtn: "Join matching",
|
||
joinOk: "Profile ready — start matching",
|
||
joinFail: "Could not join",
|
||
swipeFail: "Swipe failed — check login or quota",
|
||
empty: "No more candidates — check back tomorrow",
|
||
matched: "You matched with",
|
||
keepSwiping: "Keep swiping",
|
||
chatNow: "Open chat",
|
||
likesTitle: "Likes",
|
||
likesSubtitle: "Profiles you swiped right on",
|
||
likesEmpty: "No likes yet — go swipe some cards",
|
||
backSwipe: "Back to match",
|
||
undo: "Undo",
|
||
goSwipe: "Start swiping",
|
||
globalNomad: "Global nomad",
|
||
noBio: "This nomad hasn't written a bio yet",
|
||
meetAtEvents: "Meet people at events",
|
||
moreIntents: "More intents…",
|
||
intentFriends: "Friends",
|
||
intentDating: "Dating",
|
||
intentPartner: "Partner",
|
||
intentRoommate: "Roommate",
|
||
intentCofounder: "Cofounder",
|
||
intentExplore: "Explore",
|
||
vipUnlimited: "✨ VIP unlimited swipes",
|
||
quotaLeft: "{remaining}/{limit} left today",
|
||
vipUnlock: "Get VIP for unlimited matching",
|
||
loadingCandidates: "Loading candidates…",
|
||
loadingProfile: "Loading match profile…",
|
||
refresh: "Refresh",
|
||
viewChats: "View chats",
|
||
openVip: "Get VIP",
|
||
defaultCity: "Global",
|
||
defaultBio: "nomadro nomad",
|
||
swipeHint: "← Swipe left to pass · right to like → · up for superlike (or use buttons / arrows)",
|
||
swipeLeft: "Pass",
|
||
swipeRight: "Like",
|
||
swipeUp: "Super like",
|
||
likesReceivedTab: "Liked you",
|
||
likesMineTab: "You liked",
|
||
likesReceivedSubtitle: "People who swiped right on you",
|
||
likesReceivedEmpty: "No incoming likes yet — keep your profile fresh and swipe",
|
||
likesYou: "Liked you",
|
||
likeBack: "Like back",
|
||
likeSent: "Like sent",
|
||
viewProfile: "View profile",
|
||
},
|
||
chat: {
|
||
tag: "✉️ MESSAGES",
|
||
title: "Messages",
|
||
loginTitle: "Sign in to view messages",
|
||
loginDesc: "Continue conversations with nomads you matched or met at events",
|
||
empty: "No conversations yet — swipe on the match page",
|
||
noMessages: "No messages yet",
|
||
sayHi: "Say hi to start the conversation",
|
||
loadingMessages: "Loading messages…",
|
||
loadingList: "Loading conversations…",
|
||
sendFail: "Could not send — try again",
|
||
peerFallback: "Nomad",
|
||
goDating: "Go match",
|
||
back: "Back to inbox",
|
||
placeholder: "Type a message…",
|
||
send: "Send",
|
||
draftRestored: "Unsent draft restored",
|
||
},
|
||
join: {
|
||
tag: "✨ MEMBERSHIP",
|
||
title: "Join nomadro VIP",
|
||
subtitle: "Complete your profile and unlock unlimited matching, live events and paid lessons",
|
||
step1: "Profile",
|
||
step2: "VIP",
|
||
city: "Current city",
|
||
bio: "Short bio",
|
||
saveProfile: "Save profile",
|
||
vipDesc: "One membership, all VIP perks",
|
||
perk1: "Unlimited swipes",
|
||
perk2: "Unlimited DMs",
|
||
perk3: "Live event rooms",
|
||
perk4: "Paid academy lessons",
|
||
payBtn: "Get VIP",
|
||
profileOk: "Profile saved",
|
||
profileFail: "Could not save profile",
|
||
payFail: "Could not create order",
|
||
paidLoading: "Confirming payment…",
|
||
paidOk: "Welcome to VIP!",
|
||
paidFail: "Payment confirmation failed — retry or contact support",
|
||
goDating: "Go to match",
|
||
goDigital: "Go to academy",
|
||
retry: "Back to membership",
|
||
draftHint: "Profile draft autosaves on this device",
|
||
saving: "Saving…",
|
||
vipActive: "✨ You're VIP — perks are active",
|
||
},
|
||
live: {
|
||
loading: "Loading live room…",
|
||
loginRequired: "Sign in to join the live room",
|
||
rsvpRequired: "RSVP to enter the live room",
|
||
rsvpJoin: "RSVP and join",
|
||
startsAt: "Starts {when} · the room fills closer to start",
|
||
vipRequired: "VIP required for this live event",
|
||
back: "Back to events",
|
||
unavailable: "Can't open live room",
|
||
unavailableDesc: "This event may not exist or is temporarily unavailable",
|
||
hostRequired: "Only the host can enter this room",
|
||
offlineOnly: "This is an offline event — no live room",
|
||
layoutSplit: "Split",
|
||
layoutVideo: "Video",
|
||
layoutChat: "Chat",
|
||
linksMissing: "Live links are not configured yet",
|
||
openVideo: "Open video in new tab",
|
||
openChat: "Open chat in new tab",
|
||
iframeHint: "If the embed is blank, open the rooms in a new tab above",
|
||
},
|
||
visaWizard: {
|
||
tag: "🧙 VISA WIZARD",
|
||
title: "Visa matcher",
|
||
subtitle: "Answer 3 questions to find remote-work visas that fit",
|
||
stepIncome: "Income",
|
||
stepDuration: "Stay length",
|
||
stepRegion: "Region",
|
||
income_low: "💰 Under ¥8,000/mo",
|
||
income_mid: "💼 ¥8,000 – ¥20,000/mo",
|
||
income_high: "🚀 ¥20,000 – ¥50,000/mo",
|
||
income_premium: "👑 Over ¥50,000/mo",
|
||
duration_short: "⏱️ 1–3 months",
|
||
duration_medium: "📅 3–12 months",
|
||
duration_long: "🏠 1 year+",
|
||
region_any: "🌏 Anywhere",
|
||
region_europe: "🏰 Europe",
|
||
region_sea: "🌴 SE Asia",
|
||
region_latam: "🌮 LatAm",
|
||
prev: "Back",
|
||
next: "Next",
|
||
finish: "See matches ✨",
|
||
empty: "No strong matches — try looser filters or talk to an advisor",
|
||
bestMatch: "🏆 Best match",
|
||
match: "match",
|
||
reset: "🔄 Match again",
|
||
ctaCity: "View city",
|
||
ctaPlan: "Add to plan",
|
||
ctaServices: "Visa help",
|
||
ctaCommunity: "Ask community",
|
||
},
|
||
digital: {
|
||
tag: "🎓 ACADEMY",
|
||
title: "Nomad academy",
|
||
subtitle: "Courses, the Nomad Code ebook and curated remote jobs",
|
||
course: "Video courses",
|
||
courseTag: "COURSE",
|
||
modules: "modules",
|
||
lessons: "lessons",
|
||
free: "Free",
|
||
ebook: "Nomad Code",
|
||
ebookDesc: "Full ebook in the dedicated reader",
|
||
jobs: "Remote jobs",
|
||
jobsTag: "JOBS",
|
||
jobsDesc: "Curated remote-friendly roles",
|
||
jobsSubtitle: "Updated weekly — links open employer pages",
|
||
jobsEmpty: "No jobs listed",
|
||
jobsGoGigs: "Browse gigs",
|
||
jobsGoCommunity: "Ask community",
|
||
jobsSave: "Save",
|
||
jobsSaved: "Saved",
|
||
jobsUnsaved: "Removed from saved",
|
||
jobsSavedList: "Saved jobs",
|
||
jobsClearSaved: "Clear saved",
|
||
jobsSearch: "Search role, company or city…",
|
||
jobsFilterAll: "All",
|
||
apply: "View role",
|
||
vip: "VIP membership",
|
||
vipDesc: "Unlock all paid lessons and live events",
|
||
vipUnlocked: "✨ VIP unlocked — paid lessons available",
|
||
vipHint: "Free lessons are open · VIP lessons need membership",
|
||
unlockVip: "Unlock with VIP",
|
||
courseEmpty: "Course content coming soon",
|
||
loadingLesson: "Loading lesson…",
|
||
missingLesson: "Lesson not found",
|
||
backCatalog: "Back to catalog",
|
||
dayGuide: "Daily guides",
|
||
dayGuideDesc: "Tax residency to daily rhythm — a 7-day landing checklist",
|
||
back: "Academy home",
|
||
backCourse: "Course catalog",
|
||
locked: "VIP required",
|
||
lockedDesc: "Get VIP to watch all lessons and join live events",
|
||
prev: "Previous",
|
||
next: "Next",
|
||
},
|
||
tools: {
|
||
tag: "🛠️ TOOLKIT",
|
||
title: "nomadro toolkit",
|
||
subtitle: "Planning, money, work, life and safety — every nomad tool in one place",
|
||
backHub: "← Back to toolkit",
|
||
open: "Open →",
|
||
searchPlaceholder: "Search tools, e.g. visa, flights, notes…",
|
||
featuredHint: "Start with these",
|
||
loading: "Loading tool…",
|
||
showAll: "Show all {n} tools",
|
||
empty: "No tools match — try another keyword",
|
||
clearFilter: "Clear filters",
|
||
goNextStop: "Next stop",
|
||
corePlan: "Move plan",
|
||
corePlanDesc: "Timeline · visas · budget · ICS",
|
||
coreCompare: "City compare",
|
||
coreCompareDesc: "Side-by-side · add to plan",
|
||
coreSync: "Sign in & sync",
|
||
coreSyncDesc: "Keep plan & favorites across devices",
|
||
hubNextStop: "Next stop",
|
||
hubNextStopDesc: "Budget · speed · climate picks",
|
||
hubMeetups: "Nomad events",
|
||
hubMeetupsDesc: "Online roundtables & meetups",
|
||
hubCommunity: "Community",
|
||
hubCommunityDesc: "Visas, remote work & housing tips",
|
||
hubDating: "Nomad match",
|
||
hubDatingDesc: "Swipe to meet fellow nomads",
|
||
hubChat: "Messages",
|
||
hubChatDesc: "Chat with your matches",
|
||
hubDigital: "Academy",
|
||
hubDigitalDesc: "Courses, ebook & remote jobs",
|
||
hubJoin: "VIP membership",
|
||
hubJoinDesc: "Unlock live events & lessons",
|
||
metaSuffix: "Toolkit",
|
||
metaFallback: "Tools · nomadro",
|
||
},
|
||
nextStop: {
|
||
tag: "🧭 NEXT STOP",
|
||
title: "Next stop",
|
||
subtitle: "Budget, internet, climate and tags — smart picks from the nomadro destination library",
|
||
budget: "Monthly budget",
|
||
internet: "Min speed",
|
||
climate: "Climate",
|
||
tags: "Lifestyle tags",
|
||
bestMatch: "Best match",
|
||
score: "score",
|
||
viewCity: "View city",
|
||
addPlan: "Add to plan",
|
||
detail: "Details",
|
||
loading: "Crunching recommendations…",
|
||
routes: "Suggested routes",
|
||
days: "days",
|
||
addRoute: "Add route to plan",
|
||
routeAdded: "Route added to your plan",
|
||
addedPlan: "{city} added to plan",
|
||
meetups: "Upcoming events",
|
||
allMeetups: "All events",
|
||
climateMild: "🌤️ Mild",
|
||
climateWarm: "☀️ Warm",
|
||
climateCool: "🍂 Cool",
|
||
tagLowCost: "Low cost",
|
||
tagFastNet: "Fast internet",
|
||
tagWarm: "Warm climate",
|
||
tagCommunity: "Active community",
|
||
tagVisa: "Visa friendly",
|
||
tagBeach: "Beach",
|
||
tagFood: "Food",
|
||
reasonInBudget: "In budget",
|
||
reasonOverBudget: "Slightly over budget",
|
||
reasonNetOk: "Internet OK",
|
||
reasonNetCheck: "Check internet",
|
||
moreTags: "More tags…",
|
||
resetPrefs: "Reset prefs",
|
||
prefsSaved: "Preferences remembered",
|
||
},
|
||
meetups: {
|
||
tag: "🎉 MEETUPS",
|
||
title: "Nomad events",
|
||
subtitle: "Online roundtables, meetups and hybrid gatherings",
|
||
all: "All",
|
||
rsvp: "RSVPs",
|
||
rsvpBtn: "RSVP",
|
||
rsvpDone: "RSVP'd",
|
||
rsvpOk: "You're in!",
|
||
rsvpFail: "RSVP failed — try again",
|
||
alreadyRsvp: "You already RSVP'd",
|
||
viewCity: "View destination",
|
||
liveBtn: "Join live",
|
||
hostBtn: "Host event",
|
||
hostTitle: "Host a nomad event",
|
||
hostSubtitle: "Online events get MiroTalk + Lounge rooms automatically",
|
||
hostName: "Event title",
|
||
hostCity: "City",
|
||
hostMode: "Format",
|
||
hostDate: "Date / time",
|
||
hostVenue: "Venue",
|
||
hostDesc: "Description",
|
||
hostSubmit: "Publish",
|
||
hostOk: "Event published",
|
||
hostFail: "Could not publish",
|
||
hostNeedFields: "Please fill in the title and date",
|
||
hosting: "Publishing…",
|
||
modeOnline: "Online",
|
||
modeOffline: "In person",
|
||
modeHybrid: "Hybrid",
|
||
loginHint: "Sign in to RSVP — seats sync to your account",
|
||
loginToast: "Sign in to RSVP and keep your seat",
|
||
cancelRsvp: "Cancel RSVP",
|
||
cancelOk: "RSVP cancelled",
|
||
exportCal: "Export calendar",
|
||
exportCalDone: "Event calendar downloaded",
|
||
exportCalFail: "No events with dates to export",
|
||
addToCal: "Add to calendar",
|
||
loginDesc: "Sign in to host online or in-person nomad events",
|
||
empty: "No events match this filter",
|
||
draftRestored: "Unpublished event draft restored",
|
||
draftHint: "Draft autosaves on this device",
|
||
tripEvents: "Events near your trip",
|
||
meetPeers: "People you may meet nearby",
|
||
goDating: "Go match",
|
||
rsvpCalCta: "Export calendar",
|
||
viewRsvps: "View RSVPs",
|
||
viewProfile: "View profile",
|
||
},
|
||
community: {
|
||
tag: "💬 COMMUNITY",
|
||
title: "Community",
|
||
subtitle: "Visas, remote work, housing and safety — real talk from nomads",
|
||
bannerTitle: "Not sure where to go next?",
|
||
bannerDesc: "Use the decision hub first, then ask for details here.",
|
||
bannerCta: "Open next-stop hub",
|
||
hot: "Hot thread",
|
||
search: "Search topics…",
|
||
empty: "No discussions match",
|
||
loginDesc: "Sign in to post topics and join discussions",
|
||
back: "Back to community",
|
||
readMore: "Read more",
|
||
replies: "replies",
|
||
noReplies: "No replies yet",
|
||
replyHint: "Sign in to reply",
|
||
newTopic: "New topic",
|
||
newTitle: "Start a discussion",
|
||
newSubject: "Title",
|
||
newCategory: "Category",
|
||
newBody: "Content",
|
||
newSubmit: "Publish",
|
||
createOk: "Discussion published",
|
||
createFail: "Could not publish",
|
||
replyPlaceholder: "Write a reply…",
|
||
replySend: "Post reply",
|
||
replySending: "Sending…",
|
||
replyNeed: "Write a reply first",
|
||
replyOk: "Reply posted",
|
||
replyFail: "Reply failed",
|
||
likeFail: "Couldn't like — try again",
|
||
replyShortcut: "Ctrl/⌘ + Enter to send",
|
||
noRepliesYet: "No replies yet — be the first",
|
||
catAll: "All",
|
||
catVisa: "Visa",
|
||
catRemote: "Remote work",
|
||
catHousing: "Housing",
|
||
catSafety: "Safety",
|
||
catCommunity: "Community",
|
||
draftRestored: "Unpublished draft restored",
|
||
draftNeed: "Title required, body at least 10 characters",
|
||
draftHint: "Draft autosaves on this device",
|
||
replyDraftRestored: "Unsent reply draft restored",
|
||
},
|
||
bookThanks: {
|
||
title: "Download edition",
|
||
needLogin: "Sign in to view your downloads.",
|
||
checking: "Confirming your order…",
|
||
pending: "Payment is still confirming — refresh shortly or contact support.",
|
||
statusFail: "Could not confirm purchase status",
|
||
refresh: "Refresh status",
|
||
confirmedNoFiles: "Purchase confirmed. PDF/EPUB files are not configured yet.",
|
||
confirmedHint: "You can keep reading online, or contact support for files.",
|
||
continueRead: "Continue reading online",
|
||
contact: "Contact support",
|
||
ready: "Purchase complete — download:",
|
||
},
|
||
blogDetail: {
|
||
back: "Back to blog",
|
||
readTime: "{n} min read",
|
||
related: "Related posts",
|
||
readMore: "Read →",
|
||
explore: "Keep exploring",
|
||
submit: "Submit",
|
||
},
|
||
gigs: {
|
||
tag: "💼 GIGS",
|
||
title: "Bounty gigs",
|
||
subtitle: "Small remote tasks for nomads",
|
||
apply: "Apply",
|
||
applyPlaceholder: "Your experience and rate…",
|
||
applyOk: "Application sent",
|
||
applyFail: "Application failed",
|
||
applyNeed: "Write a short application note first",
|
||
applying: "Sending…",
|
||
applied: "✓ Applied",
|
||
loginFirst: "Sign in first",
|
||
empty: "No open gigs right now",
|
||
emptyHint: "Post a bounty, or browse academy remote jobs",
|
||
save: "Save",
|
||
saved: "Saved",
|
||
unsaved: "Removed from saved",
|
||
savedList: "Saved gigs",
|
||
clearSaved: "Clear saved",
|
||
postTitle: "Post a gig",
|
||
postName: "Task title",
|
||
postDesc: "Description and deliverables",
|
||
postBudget: "Budget (e.g. ¥800)",
|
||
postSubmit: "Publish",
|
||
posting: "Publishing…",
|
||
postNeed: "Title and description are required",
|
||
postOk: "Gig published",
|
||
postFail: "Could not publish",
|
||
budgetNegotiable: "Negotiable",
|
||
draftHint: "Draft autosaves on this device",
|
||
back: "Back to gigs",
|
||
},
|
||
notifications: {
|
||
title: "Notifications",
|
||
empty: "No notifications",
|
||
markRead: "Mark all read",
|
||
loginDesc: "Sign in to see matches, RSVPs and replies",
|
||
markOne: "Mark read",
|
||
emptyHint: "Interact a bit — alerts will show up here",
|
||
},
|
||
pricing: {
|
||
title: "Plans",
|
||
subtitle: "Explore free — unlock the full community with VIP",
|
||
free: "Free",
|
||
freeDesc: "Great to start",
|
||
free1: "25 swipes per day",
|
||
free2: "Discussions & event RSVPs",
|
||
vip: "VIP",
|
||
year: "year",
|
||
try: "Start matching",
|
||
},
|
||
feedback: {
|
||
tag: "💬 FEEDBACK",
|
||
title: "Feedback",
|
||
subtitle: "Bugs, ideas, or safety issues — we read every message",
|
||
placeholder: "Describe your issue or suggestion…",
|
||
submit: "Send feedback",
|
||
submitting: "Sending…",
|
||
ok: "Thanks for your feedback!",
|
||
fail: "Could not send",
|
||
minLength: "Please write at least 5 characters",
|
||
guestHint: "No login required — sign in if you want a reply",
|
||
thanksTitle: "Got it — thank you",
|
||
thanksDesc: "We read every piece of feedback",
|
||
writeAgain: "Write another",
|
||
goCommunity: "Go to community",
|
||
catGeneral: "General",
|
||
catBug: "Bug report",
|
||
catFeature: "Feature request",
|
||
catSafety: "Safety",
|
||
draftRestored: "Unsaved draft restored",
|
||
draftHint: "Draft autosaves on this device",
|
||
widgetTitle: "Suggest improvements for nomadro",
|
||
widgetSubtitle: "Feature ideas, UX issues, or just say you like it",
|
||
openFull: "Open full feedback page",
|
||
failRetry: "Send failed — retry later or open the feedback page",
|
||
fabAria: "Feedback",
|
||
fabTitle: "Send feedback",
|
||
close: "Close",
|
||
sendBtn: "Send feedback 🚀",
|
||
},
|
||
videos: {
|
||
tag: "🎬 VIDEOS",
|
||
title: "Nomad interviews",
|
||
subtitle: "Real stories from the road",
|
||
back: "Back to videos",
|
||
empty: "Videos coming soon",
|
||
readEbook: "Read the ebook",
|
||
goDigital: "Academy",
|
||
noPlayer: "Playback link not configured yet",
|
||
relatedMeetups: "Related events",
|
||
saveLater: "Watch later",
|
||
saved: "Saved to watch later",
|
||
unsaved: "Removed from watch later",
|
||
watchLater: "Watch later",
|
||
clearSaved: "Clear",
|
||
savedEmpty: "No saved videos yet",
|
||
},
|
||
digest: {
|
||
tag: "📌 DIGEST",
|
||
title: "Today's nomad digest",
|
||
subtitle: "Plan, events, videos and recent explores in one place",
|
||
planCities: "Plan cities",
|
||
readiness: "Ready",
|
||
rsvps: "RSVPs",
|
||
noUpcoming: "No upcoming events",
|
||
watchLater: "Watch later",
|
||
openVideos: "Open videos",
|
||
lastAi: "Last question",
|
||
askAi: "Ask the assistant",
|
||
resumeTitle: "Pick up where you left off",
|
||
resumeSub: "Continue from plan, events, or recent cities",
|
||
},
|
||
services: {
|
||
tag: "🛎️ SERVICES",
|
||
title: "Nomad services",
|
||
subtitle: "Vetted advisors and city volunteers",
|
||
name: "Your name",
|
||
email: "Email",
|
||
message: "What do you need?",
|
||
inquire: "Inquire",
|
||
submitting: "Sending…",
|
||
leadOk: "Inquiry sent",
|
||
leadFail: "Could not send",
|
||
needFields: "Name, email and message are required",
|
||
needEmail: "Enter a valid email address",
|
||
sent: "✓ Inquiry sent — we'll get back to you soon",
|
||
empty: "Services listing coming soon",
|
||
emptyCta: "Ask in the community",
|
||
draftRestored: "Unsent inquiry draft restored",
|
||
draftHint: "Draft autosaves on this device",
|
||
},
|
||
ai: {
|
||
tag: "🤖 AI",
|
||
title: "Travel assistant",
|
||
subtitle: "Budget, internet, climate — get city picks",
|
||
placeholder: "e.g. budget 8000, fast internet, warm climate…",
|
||
ask: "Get picks",
|
||
fail: "Could not answer — try again",
|
||
nextStop: "Open next-stop hub",
|
||
thinking: "Thinking…",
|
||
needQuestion: "Write a question first",
|
||
noCityData: "No full city data yet — add from the detail page",
|
||
writeFail: "Could not add to plan",
|
||
writePlan: "Add to plan",
|
||
compareCities: "Compare cities",
|
||
sendHint: "Ctrl/⌘ + Enter to send",
|
||
history: "Recent questions",
|
||
clearHistory: "Clear history",
|
||
tip1: "Budget 6000, fast internet in Southeast Asia",
|
||
tip2: "Best cities for first-time remote work?",
|
||
tip3: "Chiang Mai vs Bali — which fits me?",
|
||
draftRestored: "Unsent question draft restored",
|
||
draftHint: "Question draft autosaves on this device",
|
||
},
|
||
recent: {
|
||
tag: "👀 RECENT",
|
||
title: "Recently viewed",
|
||
subtitle: "Pick up where you left off, or compare them",
|
||
compareRecent: "Compare recent cities",
|
||
searchLabel: "Recently viewed",
|
||
},
|
||
search: {
|
||
trigger: "Search...",
|
||
aria: "Search",
|
||
placeholder: "Cities, events, tools… or pick a path below",
|
||
loading: "Searching...",
|
||
empty: "😢 No results for “{q}”",
|
||
ringLabel: "Start from a path",
|
||
kbdHint: "⌨️ ↑↓ select · Enter go · Esc close",
|
||
typeDestination: "City",
|
||
typeBlog: "Blog",
|
||
typeVisa: "Visa",
|
||
typeFaq: "FAQ",
|
||
typeTool: "Tool",
|
||
typePage: "Page",
|
||
ringDiscover: "Smart discover",
|
||
ringDiscoverSub: "Match preferences to your next city",
|
||
ringNext: "Next stop",
|
||
ringNextSub: "Budget, Wi‑Fi, climate picks",
|
||
ringMeetups: "Events",
|
||
ringMeetupsSub: "Meet people first",
|
||
ringCommunity: "Community",
|
||
ringCommunitySub: "Visas, remote work, housing",
|
||
ringDigital: "Academy",
|
||
ringDigitalSub: "Courses and remote paths",
|
||
ringTools: "Tools",
|
||
ringToolsSub: "Grab what you need",
|
||
pagePlan: "Move plan hub",
|
||
pagePlanSub: "Timeline, budget, visa tips, checklist",
|
||
pageCompare: "City compare",
|
||
pageCompareSub: "Side-by-side cost, Wi‑Fi, climate",
|
||
pageDating: "Nomad match",
|
||
pageDatingSub: "Swipe to meet fellow nomads",
|
||
pageChat: "Messages",
|
||
pageChatSub: "Chat with matches",
|
||
pageGigs: "Bounty gigs",
|
||
pageGigsSub: "Small remote tasks",
|
||
pageJoin: "Membership",
|
||
pageJoinSub: "VIP matching, live events, courses",
|
||
pageBook: "Nomad Code ebook",
|
||
pageBookSub: "Read online or download",
|
||
pageVideos: "Videos",
|
||
pageVideosSub: "Real nomad stories",
|
||
pageServices: "Services",
|
||
pageServicesSub: "Visa, tax, landing help",
|
||
pageAi: "AI assistant",
|
||
pageAiSub: "City picks for your next stop",
|
||
pageMap: "Nomad map",
|
||
pageMapSub: "Member map and weather",
|
||
pageReport: "Data report",
|
||
pageReportSub: "City ranking snapshot",
|
||
pageFeedback: "Feedback",
|
||
pageFeedbackSub: "Bugs and ideas",
|
||
pageSubmit: "Submit content",
|
||
pageSubmitSub: "Articles, videos, ebooks",
|
||
pageHelp: "Help",
|
||
pageHelpSub: "FAQ",
|
||
pageContact: "Contact",
|
||
pageContactSub: "Partners and press",
|
||
pagePricing: "Pricing",
|
||
pagePricingSub: "Free and VIP plans",
|
||
pageNotif: "Notifications",
|
||
pageNotifSub: "Matches and community",
|
||
pageAbout: "About nomadro",
|
||
pageAboutSub: "Brand and contact",
|
||
pageChangelog: "Changelog",
|
||
pageChangelogSub: "Product updates",
|
||
pagePrivacy: "Privacy",
|
||
pagePrivacySub: "Cookies and data",
|
||
pageCommunitySub: "Visa and housing tips from nomads",
|
||
pageMeetupsSub: "Online roundtables and meetups",
|
||
pageDigitalSub: "Courses, ebook, remote jobs",
|
||
pageTools: "Toolkit",
|
||
pageToolsSub: "Nomad utilities on demand",
|
||
},
|
||
share: {
|
||
button: "📤 Share",
|
||
aria: "Share",
|
||
system: "📱 System share",
|
||
copy: "📋 Copy link",
|
||
twitter: "🐦 Share on X",
|
||
},
|
||
destDetail: {
|
||
guide: "🧭 Arrival guide",
|
||
bestFor: "Best for:",
|
||
radar: "📊 City profile",
|
||
scoreValue: "Value",
|
||
scoreSpeed: "Wi‑Fi",
|
||
scoreClimate: "Climate",
|
||
scoreRating: "Rating",
|
||
scoreCommunity: "Community",
|
||
timezone: "Timezone",
|
||
nomadCommunity: "Nomad community",
|
||
active: "active",
|
||
climate: "Climate",
|
||
livable: "Best months",
|
||
costBreak: "💸 Monthly cost breakdown",
|
||
pros: "👍 Pros",
|
||
cons: "👎 Watch-outs",
|
||
reviews: "💬 Nomad reviews",
|
||
localChat: "💬 Local chats",
|
||
peopleUnit: "people",
|
||
recentTopics: "Recent topics:",
|
||
relatedMeetups: "🍹 Related events",
|
||
relatedDiscussions: "🧵 Related threads",
|
||
relatedContent: "📚 Related content",
|
||
relatedRegion: "🔗 Same region",
|
||
viewFallback: "View",
|
||
snapCost: "Cost ¥{cost}/mo · {speed}Mbps · rating {rating}",
|
||
snapClimate: "Avg {temp}°C · nomads {nomads}",
|
||
snapVisa: "Visa tip: {visa}",
|
||
snapDetail: "Details: {url}",
|
||
perMonth: "/mo",
|
||
},
|
||
profile: {
|
||
myRsvps: "My RSVPs",
|
||
rsvpEmpty: "No event RSVPs yet",
|
||
goMeetups: "Browse events →",
|
||
openLive: "Join live",
|
||
snapshotOk: "City snapshot copied",
|
||
snapshotBtn: "📋 Copy snapshot",
|
||
exportRsvps: "Export RSVP calendar",
|
||
logout: "Sign out",
|
||
changeAvatar: "Change avatar",
|
||
uploading: "Uploading…",
|
||
avatarOk: "Avatar updated",
|
||
avatarFail: "Upload failed",
|
||
avatarTooBig: "Image must be under 5MB",
|
||
syncing: "Syncing plan…",
|
||
synced: "✓ Plan synced to cloud",
|
||
offline: "Plan local only",
|
||
loggedIn: "Signed in",
|
||
statFavs: "Favorites",
|
||
statCities: "Plan cities",
|
||
statReady: "Readiness",
|
||
statBadges: "Badges",
|
||
connectStrip: "Connect pulse",
|
||
statLikes: "Liked you",
|
||
statMatches: "Matches",
|
||
statChats: "Chats",
|
||
statRsvps: "RSVPs",
|
||
openPlan: "Open plan hub",
|
||
tripEmpty: "No trip planned yet",
|
||
goPlan: "Start planning →",
|
||
startLabel: "Start {month}",
|
||
budgetLabel: "Budget ¥{budget}/mo",
|
||
avgMonthLabel: " · avg ¥{avg}",
|
||
readyCount: "Ready {checked}/{total}",
|
||
monthsCost: "{months} mo · ¥{cost}",
|
||
totalLine: "Total",
|
||
monthsUnit: "mo",
|
||
compareTrip: "Compare trip cities",
|
||
keepEditing: "Keep editing →",
|
||
achievements: "🏅 Nomad badges",
|
||
myFavs: "❤️ My favorites",
|
||
favsToPlan: "Add favorites to plan ({n})",
|
||
favsAlready: "Favorite cities are already in your plan",
|
||
favsAdded: "Added {n} favorite cities to plan",
|
||
favsEmpty: "No favorite destinations yet",
|
||
goExplore: "Explore →",
|
||
loading: "Loading...",
|
||
perMonth: "/mo",
|
||
quickLinks: "🚀 Quick links",
|
||
qDest: "🌍 Destinations",
|
||
qPlan: "🗓️ Move plan",
|
||
qCompare: "⚖️ Compare",
|
||
qNext: "🧭 Next stop",
|
||
qMeetups: "🎉 Events",
|
||
qDating: "💕 Match",
|
||
qChat: "✉️ Messages",
|
||
qNotif: "🔔 Alerts",
|
||
qVip: "✨ Get VIP",
|
||
qVipMember: "✨ VIP member",
|
||
qDigital: "🎓 Academy",
|
||
qAi: "🤖 AI assistant",
|
||
qTools: "🛠️ Tools",
|
||
badgeNewbie: "Newcomer",
|
||
badgeNewbieDesc: "Joined nomadro",
|
||
badgeCollector: "Collector",
|
||
badgeCollectorDesc: "Favorited 3+ destinations",
|
||
badgePlanner: "Route planner",
|
||
badgePlannerDesc: "Planned 3+ cities",
|
||
badgeLongStay: "Long stay",
|
||
badgeLongStayDesc: "Trip totals 6+ months",
|
||
badgeReady: "Departure ready",
|
||
badgeReadyDesc: "Checklist ≥ 50%",
|
||
badgeGlobal: "Global nomad",
|
||
badgeGlobalDesc: "Explored 5+ cities",
|
||
},
|
||
report: {
|
||
tag: "📊 REPORT",
|
||
title: "Data report",
|
||
subtitle: "City rankings and member snapshot",
|
||
ranking: "City ranking",
|
||
members: "Active nomads",
|
||
viewMap: "View map",
|
||
loading: "Loading report…",
|
||
rankEmpty: "Ranking data unavailable",
|
||
membersEmpty: "Member map unavailable",
|
||
goNextStop: "Open next-stop hub",
|
||
snapshot: "Copy report snapshot",
|
||
snapshotOk: "Report snapshot copied",
|
||
},
|
||
mapPage: {
|
||
tag: "🗺️ MAP",
|
||
title: "Nomad map",
|
||
subtitle: "Where community members are based",
|
||
weather: "Destination weather",
|
||
hint: "Full interactive map on the homepage",
|
||
loading: "Loading map…",
|
||
empty: "No public member locations yet",
|
||
weatherEmpty: "Weather unavailable",
|
||
goDating: "Go match",
|
||
goMeetups: "Browse events",
|
||
},
|
||
submit: {
|
||
tag: "📝 SUBMIT",
|
||
title: "Submit content",
|
||
subtitle: "Share articles, videos, or ebooks for review",
|
||
article: "Article",
|
||
video: "Video",
|
||
ebook: "Ebook",
|
||
subject: "Title",
|
||
url: "Link (optional)",
|
||
notes: "Notes",
|
||
send: "Submit",
|
||
submitting: "Submitting…",
|
||
ok: "Submission received",
|
||
fail: "Could not submit",
|
||
needTitle: "Please enter a fuller title",
|
||
needUrl: "Articles/videos need a valid http/https link",
|
||
thanksTitle: "Submission received",
|
||
thanksDesc: "Approved items appear in blog or videos",
|
||
writeAgain: "Submit another",
|
||
goCommunity: "Go to community",
|
||
draftHint: "Draft autosaves on this device",
|
||
},
|
||
notifSettings: {
|
||
title: "Notification settings",
|
||
loginDesc: "Sign in to manage match, event and community alert preferences",
|
||
back: "Back to inbox",
|
||
save: "Save",
|
||
saved: "Settings saved",
|
||
fail: "Could not save",
|
||
loading: "Loading preferences…",
|
||
saving: "Saving…",
|
||
match: "Match alerts",
|
||
meetup: "Event reminders",
|
||
community: "Community",
|
||
push: "Push (ntfy)",
|
||
email: "Email digest",
|
||
marketing: "Marketing",
|
||
},
|
||
newsletter: {
|
||
title: "Nomad weekly",
|
||
subtitle: "Events, visa updates & community picks — weekly email",
|
||
email: "Your email",
|
||
submit: "Subscribe",
|
||
ok: "Subscribed",
|
||
fail: "Could not subscribe",
|
||
},
|
||
pwa: {
|
||
installHint: "Install to home screen — open plan offline-ready",
|
||
},
|
||
matcher: {
|
||
tag: "🎯 MATCHER · {n}/{total}",
|
||
resultsTag: "✨ YOUR MATCHES",
|
||
close: "Close",
|
||
cancel: "Cancel",
|
||
back: "← Back",
|
||
budgetTitle: "Monthly budget?",
|
||
budgetSub: "Housing, food, transport and daily costs",
|
||
climateTitle: "Preferred climate?",
|
||
climateSub: "Pick the environment that feels right",
|
||
priorityTitle: "What matters most?",
|
||
prioritySub: "We'll rank cities with this in mind",
|
||
regionTitle: "Which region?",
|
||
regionSub: "Choose Anywhere to explore the world",
|
||
budgetLow: "Budget-first",
|
||
budgetLowDesc: "Under ¥5,000 / month",
|
||
budgetMed: "Comfortable",
|
||
budgetMedDesc: "¥5,000 – 9,000 / month",
|
||
budgetHigh: "Quality first",
|
||
budgetHighDesc: "¥9,000+ / month",
|
||
climateWarm: "Tropical warm",
|
||
climateWarmDesc: "25°C+, sun and beach",
|
||
climateMild: "Mild",
|
||
climateMildDesc: "18–25°C, comfortable year-round",
|
||
climateCool: "Cool & dry",
|
||
climateCoolDesc: "Under 18°C, crisp and dry",
|
||
priCost: "Cost of living",
|
||
priCostDesc: "More life for less money",
|
||
priSpeed: "Internet speed",
|
||
priSpeedDesc: "Stable and fast for meetings",
|
||
priCommunity: "Nomad community",
|
||
priCommunityDesc: "Meet peers and settle in fast",
|
||
priLifestyle: "Lifestyle",
|
||
priLifestyleDesc: "Culture, food and experiences",
|
||
regionAny: "Anywhere",
|
||
regionAnyDesc: "Global explore",
|
||
regionSea: "Southeast Asia",
|
||
regionSeaDesc: "Best value",
|
||
regionEurope: "Europe",
|
||
regionEuropeDesc: "History and visa-friendly",
|
||
regionLatam: "LatAm",
|
||
regionLatamDesc: "Energy and US timezones",
|
||
regionAsia: "East Asia",
|
||
regionAsiaDesc: "Safe, efficient, modern",
|
||
resultsTitle: "Destinations for you",
|
||
resultsSub: "Prefs saved. Add to your move plan, or compare first.",
|
||
empty: "No matches yet — destination data may still be loading",
|
||
retry: "Retake quiz",
|
||
goNextStop: "Open next-stop hub",
|
||
matchPct: "{n}% match",
|
||
addPlan: "+ Plan",
|
||
retryBtn: "🔄 Retake quiz",
|
||
compareTop: "⚖️ Compare Top {n}",
|
||
writeTop: "Add Top {n} to plan →",
|
||
alreadyAll: "These cities are already in your plan",
|
||
addFail: "Could not add to plan",
|
||
addedTop: "Added Top {n} cities to your move plan",
|
||
skipped: " (skipped {n} already there)",
|
||
},
|
||
shortcuts: {
|
||
title: "Keyboard shortcuts",
|
||
subtitle: "Browse faster — press ? anytime",
|
||
aria: "Keyboard shortcuts",
|
||
close: "Close",
|
||
search: "Global search",
|
||
matcher: "Smart matcher",
|
||
nextStop: "Next stop",
|
||
plan: "Move plan",
|
||
tools: "Open toolkit",
|
||
help: "Shortcut help",
|
||
esc: "Close dialog",
|
||
},
|
||
tips: {
|
||
title: "Nomad tip",
|
||
more: "Learn more →",
|
||
close: "Close",
|
||
tip1: "Speedtest Wi‑Fi before signing a lease — under 20Mbps is risky",
|
||
tip2: "Carry a no-FX-fee card to save on currency conversion",
|
||
tip3: "Get international health insurance before you fly (~$40+/mo)",
|
||
tip4: "Pick cities with ≥4h timezone overlap for easier remote work",
|
||
tip5: "Keep 6+ months passport validity to avoid boarding issues",
|
||
tip6: "Book 1 week short-term first, then commit to a longer lease",
|
||
},
|
||
faqUi: {
|
||
empty: "No FAQ matched",
|
||
clear: "Clear search",
|
||
help: "Help center",
|
||
askAi: "Ask AI",
|
||
showAll: "Show all {n} questions",
|
||
still: "Still exploring? ",
|
||
browse: "Browse destinations",
|
||
},
|
||
cookies: {
|
||
body: "We use local storage for theme, trip and login session — no ad tracking.",
|
||
privacy: "Privacy",
|
||
cookies: "Cookie notice",
|
||
ok: "Got it ✓",
|
||
},
|
||
onboard: {
|
||
aria: "Onboarding",
|
||
skip: "Skip",
|
||
next: "Next →",
|
||
startMatch: "Start matching →",
|
||
goDigital: "See the academy →",
|
||
step1Title: "Find where to go",
|
||
step1Desc: "Use smart match or the map to lock your next city",
|
||
step2Title: "Meet peers",
|
||
step2Desc: "Local events and community — meet real people first",
|
||
step3Title: "Grow on the road",
|
||
step3Desc: "Academy and gigs so you keep building while traveling",
|
||
},
|
||
lang: {
|
||
zh: "中文",
|
||
en: "EN",
|
||
},
|
||
};
|
||
|
||
export const dictionaries = { zh, en } as const;
|