Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 1 addition & 7 deletions .deepsource.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,4 @@ name = "javascript"
name = "secrets"

[[analyzers]]
name = "test-coverage"

[[transformers]]
name = "prettier"

[[transformers]]
name = "standardjs"
name = "test-coverage"
2 changes: 1 addition & 1 deletion apps/web/next-env.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
/// <reference types="next/image-types/global" />

// NOTE: This file should not be edited
// see https://nextjs.org/docs/basic-features/typescript for more information.
// see https://nextjs.org/docs/pages/building-your-application/configuring/typescript for more information.
2 changes: 1 addition & 1 deletion apps/web/next.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ const config = withMyBundleAnalyzer(
],
i18n: {
defaultLocale: "en",
locales: ["en", "de", "id"],
locales: ["en", "de", "id", "zh-CN"],
},
}),
),
Expand Down
Binary file added apps/web/src/assets/chinese-flag.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions apps/web/src/locales/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ export default {
"settings.english": "Englisch",
"settings.german": "Deutsch",
"settings.indonesian": "Indonesisch",
"settings.chinese": "中文",

// locationsettings page translations
"locationsettings.add new location": "Füge einen Ort hinzu",
Expand Down
1 change: 1 addition & 0 deletions apps/web/src/locales/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ export default {
"settings.english": "English",
"settings.german": "German",
"settings.indonesian": "Indonesian",
"settings.chinese": "中文",

// locationsettings page translations
"locationsettings.add new location": "Add new location",
Expand Down
1 change: 1 addition & 0 deletions apps/web/src/locales/id.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ export default {
"settings.english": "Inggris",
"settings.german": "Jerman",
"settings.indonesian": "Indonesia",
"settings.chinese": "中文",

// locationsettings page translations
"locationsettings.add new location": "Tambah lokasi baru",
Expand Down
1 change: 1 addition & 0 deletions apps/web/src/locales/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@ export const {
en: () => import("./en"),
de: () => import("./de"),
id: () => import("./id"),
"zh-CN": () => import("./zh-CN"),
});
184 changes: 184 additions & 0 deletions apps/web/src/locales/zh-CN.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
export default {
// 404 page translations
"404.title": "404 - 页面未找到",

// common translations
"common.title": "Weather.io",
"common.location": "中文",

"common.start button": "查找您的位置",
"common.share button": "分享",
"common.menu home": "主页",
"common.menu locations": "地点",
"common.menu settings": "设置",
"common.menu contact": "联系我们",
"common.footer legal": "法律声明",
"common.footer contributors": "贡献者",

"common.search page title": "搜索 - Weather.io",

"common.miles per hour": "英里每小时",
"common.kilometers per hour": "千米每小时",
"common.knots": "节",
"common.meters per second": "米每秒",
"common.beaufort": "风级",
"common.hectopascals": "百帕",

"common.share text": "查看此页面: ",

"common.title 404 page": "404: 页面未找到",
"common.title offline page": "您已离线",

// settings page translations
"settings.temperature units": "温度单位",
"settings.wind speed units": "风速单位",
"settings.language": "语言",

"settings.english": "English",
"settings.german": "Deutsch",
"settings.indonesian": "Bahasa Indonesia",
"settings.chinese": "中文",

// locationsettings page translations
"locationsettings.add new location": "添加新位置",
"locationsettings.add new location button": "添加新位置",
"locationsettings.search input placeholder": "搜索城市",

"locationsettings.at least one city toast": "至少需要一个城市!",
"locationsettings.switched to city toast": "切换到城市!",
"locationsettings.added city toast": "添加城市!",
"locationsettings.city not found toast": "城市未找到!",
"locationsettings.try again toast": "请再试一次!",

"locationsettings.my location button": "设定我的位置",

// offline page translations
"offline.title": "您已离线",
"offline.message": "请检查您的网络连接",

// search page translations
"search.search input placeholder": "搜索城市",
"search.continue button": "下一步 -->",

"search.my location button": "设定我的位置",

// legal page translations
"legal.main text":
"本网站的内容已经过仔细审核和制作。然而,我们无法保证所提供信息的准确性、完整性和时效性。我们不对因使用本网站而造成的任何损害或损失承担责任。链接页面的运营者对其内容负有完全责任。对于外部内容,我们明确排除任何责任。",
"legal.germany": "Germany",
"legal.information disclaimer": "根据《德国电信和信息服务法》第5条的规定",

// home page translations
"home.today": "今天",
"home.9 day forecast": "未来9天预报",
"home.precipitation": "降水",
"home.feels like": "体感温度",
"home.visibility": "能见度",
"home.wind pressure": "风速 & 气压",
"home.air quality": "空气质量",
"home.pressure": "气压",
"home.speed": "风速",
"home.moon phase": "月相",

"home.early morning": "凌晨",
"home.morning": "上午",
"home.noon": "中午",
"home.afternoon": "下午",
"home.night": "晚上",

"home.feels like phrase extremely warm": "今天天气非常炎热!",
"home.feels like phrase very warm": "今天太阳也似乎想降温了!",
"home.feels like phrase warm": "连冰淇淋都觉得太热了!",
"home.feels like phrase slightly more warm": "今天真是个暖洋洋的日子!",
"home.feels like phrase slightly warm": "是去野餐的好天气!",
"home.feels like phrase neutral": "温度刚刚好,既不热也不冷。",
"home.feels like phrase slightly cold": "可能需要穿件薄外套。",
"home.feels like phrase slightly more cold": "今天是个寒冷的日子!",
"home.feels like phrase cold": "企鹅们都因为寒冷去喝热巧克力了!",
"home.feels like phrase very cold": "今天的寒冷天气连雪人都冻得发抖!",
"home.feels like phrase extremely cold": "冷得连北极熊都懒得出门了!",

"home.air quality text very poor": "非常差",
"home.air quality text poor": "差",
"home.air quality text fair": "一般",
"home.air quality text moderate": "适中",
"home.air quality text good": "好",
"home.air quality text excellent": "优秀",

"home.sunset": "日落",
"home.sunrise": "日出",

"home.moonset": "月落",
"home.moonrise": "月升",

"home.weather state stormy": "暴风雨",
"home.weather state snowy": "雪天",
"home.weather state rainy": "雨天",
"home.weather state very cloudy": "多云",
"home.weather state cloudy": "阴天",

"home.weather state windy": "有风",
"home.weather state sunny": "晴天",

"home.this hour": "此时",
"home.early hour time ending": "上午",
"home.late hour time ending": "下午",

"home.9 day forecast card content":
'未来9天的天气预报。<br /> <span class="font-semibold">温度</span> 为每日的平均温度,分别代表白天和夜晚的温度。',

"home.precipitation card title": "当前降水",

"home.feels like card content": "这个温度参数考虑了人类对天气的感知。",

"home.visibility card title": "当前能见度",

"home.wind pressure card title": "当前风力与气压",
"home.wind pressure card content":
"<b>海平面气压。</b> <br /> 在海平面,气压是由上方空气的重量所施加的力,平均值约为1013.25 hPa。",

"home.not available": "不可用",

"home.moon phase card title": "当前月相",
"home.moon phase card content":
"月相是从地球上看到的月球被阳光直接照射部分的形状。",

"home.moon phase new moon": "新月",
"home.moon phase waxing crescent": "蛾眉月",
"home.moon phase first quarter": "上弦月",
"home.moon phase waxing gibbous": "盈凸月",
"home.moon phase full moon": "满月",
"home.moon phase waning gibbous": "亏凸月",
"home.moon phase last quarter": "下弦月",
"home.moon phase waning crescent": "残月",

"home.more information": "更多信息",
"home.less information": "更少信息",

"home.sun hours": "日照时数",

"home.from": "来自",

// contact page translations
"contact.send button": "发送",
"contact.sent button": "已发送",
"contact.first name": "名字",
"contact.last name": "姓氏",
"contact.email": "邮箱",
"contact.message": "留言",

"contact.sent toast": "消息已发送!",
"contact.sending email loading toast": "正在发送邮件...",

"contact.invalid email": "无效的邮箱地址",
"contact.at least 2 characters": "此字段必须包含至少2个字符",
"contact.at least 10 characters": "此字段必须包含至少10个字符",

// contributors page translations
"contributors.made with love text":
'由以下人员<span class="text-4xl" style="color: rgb(239 68 68)">♥\uFE0F</span> 精心制作: ',
"contributors.founder": "创始人",
"contributors.engineer": "工程师",
"contributors.designer": "设计师",
"contributors.translator": "翻译员",
} as const;
8 changes: 8 additions & 0 deletions apps/web/src/pages/legal/index.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import React from "react";
import Link from "next/link";

import Layout from "~/components/Layout";
import { getLocaleProps, useScopedI18n } from "~/locales";
Expand Down Expand Up @@ -26,6 +27,13 @@ const Legal = () => {
<p className="mb-4 mt-14 w-7/12 md:w-4/12 xl:ml-7">
{translationLegal("main text")}
</p>
<Link
href="https://www.flaticon.com/free-icons/flags"
title="flags icons"
className="mt-4"
>
Flags icons created by Freepik - Flaticon
</Link>
</div>
</Layout>
</>
Expand Down
22 changes: 21 additions & 1 deletion apps/web/src/pages/settings/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { observer } from "@legendapp/state/react";
import { RxCheck } from "react-icons/rx";

import type { TemperatureUnitType, WindSpeedUnitType } from "~/states";
import chineseFlag from "~/assets/chinese-flag.png";
import germanFlag from "~/assets/german-flag.png";
import indonesianFlag from "~/assets/indonesian-flag.png";
import usaFlag from "~/assets/usa-flag.png";
Expand Down Expand Up @@ -188,7 +189,7 @@ const Settings = observer(() => {
>
<Image
src={indonesianFlag}
alt="Flag of the Netherladns"
alt="Flag of the Republic of Indonesia"
width={20}
height={20}
/>
Expand All @@ -199,6 +200,25 @@ const Settings = observer(() => {
<RxCheck width={20} height={20} className="h-9 w-9" />
)}
</button>
<button
className={`${normalButtonClass} ${
locale === "zh-CN" ? "border-2" : ""
}`}
onClick={() => changeLocale("zh-CN")}
>
<Image
src={chineseFlag}
alt="Flag of the People's Republic of China"
width={20}
height={20}
/>
<p className={`${styles.buttontext} ml-2`}>
{translationSettings("chinese")}
</p>
{locale === "zh-CN" && (
<RxCheck width={20} height={20} className="h-9 w-9" />
)}
</button>
</div>
</div>
</Layout>
Expand Down
Loading