diff --git a/src/renderer/src/components/BackButton/index.tsx b/src/renderer/src/components/BackButton/index.tsx index 0970f3a..aed1b39 100644 --- a/src/renderer/src/components/BackButton/index.tsx +++ b/src/renderer/src/components/BackButton/index.tsx @@ -1,14 +1,16 @@ import { Button } from '@renderer/components/ui/button' import { useSecondaryPage } from '@renderer/PageManager' import { ChevronLeft } from 'lucide-react' +import { useTranslation } from 'react-i18next' export default function BackButton({ hide = false }: { hide?: boolean }) { + const { t } = useTranslation() const { pop } = useSecondaryPage() return ( <> {!hide && ( - )} diff --git a/src/renderer/src/components/PostDialog/Metions.tsx b/src/renderer/src/components/PostDialog/Metions.tsx index 9af683c..95f7196 100644 --- a/src/renderer/src/components/PostDialog/Metions.tsx +++ b/src/renderer/src/components/PostDialog/Metions.tsx @@ -39,7 +39,7 @@ export default function Mentions({
-
Mentions:
+
{t('Mentions')}:
{pubkeys.map((pubkey, index) => (
diff --git a/src/renderer/src/components/PostDialog/index.tsx b/src/renderer/src/components/PostDialog/index.tsx index 726fee2..a2f881f 100644 --- a/src/renderer/src/components/PostDialog/index.tsx +++ b/src/renderer/src/components/PostDialog/index.tsx @@ -99,7 +99,7 @@ export default function PostDialog({ {parentEvent ? (
-
Reply to
+
{t('Reply to')}
{parentEvent.content}
@@ -131,7 +131,7 @@ export default function PostDialog({
diff --git a/src/renderer/src/components/RelaySettings/RelayGroup.tsx b/src/renderer/src/components/RelaySettings/RelayGroup.tsx index 0a27fa5..6fb15c7 100644 --- a/src/renderer/src/components/RelaySettings/RelayGroup.tsx +++ b/src/renderer/src/components/RelaySettings/RelayGroup.tsx @@ -12,8 +12,10 @@ import { useState } from 'react' import RelayUrls from './RelayUrl' import { useRelaySettingsComponent } from './provider' import { TRelayGroup } from './types' +import { useTranslation } from 'react-i18next' export default function RelayGroup({ group }: { group: TRelayGroup }) { + const { t } = useTranslation() const { expandedRelayGroup } = useRelaySettingsComponent() const { temporaryRelayUrls } = useRelaySettings() const { groupName, relayUrls } = group @@ -34,7 +36,7 @@ export default function RelayGroup({ group }: { group: TRelayGroup }) {
- {relayUrls.length} relays + {t('n relays', { n: relayUrls.length })}
@@ -71,6 +73,7 @@ function RelayGroupActiveToggle({ } function RelayGroupName({ groupName }: { groupName: string }) { + const { t } = useTranslation() const [newGroupName, setNewGroupName] = useState(groupName) const [newNameError, setNewNameError] = useState(null) const { relayGroups, switchRelayGroup, renameRelayGroup } = useRelaySettings() @@ -80,7 +83,7 @@ function RelayGroupName({ groupName }: { groupName: string }) { const saveNewGroupName = () => { if (relayGroups.find((group) => group.groupName === newGroupName)) { - return setNewNameError('already exists') + return setNewNameError(t('relay collection name already exists')) } const errMsg = renameRelayGroup(groupName, newGroupName) if (errMsg) { @@ -153,6 +156,7 @@ function RelayUrlsExpandToggle({ } function RelayGroupOptions({ group }: { group: TRelayGroup }) { + const { t } = useTranslation() const { deleteRelayGroup } = useRelaySettings() const { setRenamingGroup } = useRelaySettingsComponent() @@ -165,7 +169,7 @@ function RelayGroupOptions({ group }: { group: TRelayGroup }) { setRenamingGroup(group.groupName)}> - Rename + {t('Rename')} { @@ -174,13 +178,13 @@ function RelayGroupOptions({ group }: { group: TRelayGroup }) { ) }} > - Copy share link + {t('Copy share link')} deleteRelayGroup(group.groupName)} > - Delete + {t('Delete')} diff --git a/src/renderer/src/components/RelaySettings/RelayUrl.tsx b/src/renderer/src/components/RelaySettings/RelayUrl.tsx index 43fed3a..2b99bcb 100644 --- a/src/renderer/src/components/RelaySettings/RelayUrl.tsx +++ b/src/renderer/src/components/RelaySettings/RelayUrl.tsx @@ -5,8 +5,10 @@ import { useRelaySettings } from '@renderer/providers/RelaySettingsProvider' import client from '@renderer/services/client.service' import { CircleX } from 'lucide-react' import { useEffect, useState } from 'react' +import { useTranslation } from 'react-i18next' export default function RelayUrls({ groupName }: { groupName: string }) { + const { t } = useTranslation() const { relayGroups, updateRelayGroupRelayUrls } = useRelaySettings() const rawRelayUrls = relayGroups.find((group) => group.groupName === groupName)?.relayUrls ?? [] const isActive = relayGroups.find((group) => group.groupName === groupName)?.isActive ?? false @@ -46,10 +48,10 @@ export default function RelayUrls({ groupName }: { groupName: string }) { if (newRelayUrl === '') return const normalizedUrl = normalizeUrl(newRelayUrl) if (relays.some(({ url }) => url === normalizedUrl)) { - return setNewRelayUrlError('already exists') + return setNewRelayUrlError(t('Relay already exists')) } if (!isWebsocketUrl(normalizedUrl)) { - return setNewRelayUrlError('invalid URL') + return setNewRelayUrlError(t('invalid relay URL')) } setRelays((pre) => [...pre, { url: normalizedUrl, isConnected: false }]) const newRelayUrls = [...relays.map(({ url }) => url), normalizedUrl] @@ -85,13 +87,13 @@ export default function RelayUrls({ groupName }: { groupName: string }) {
- +
{newRelayUrlError &&
{newRelayUrlError}
} diff --git a/src/renderer/src/components/RelaySettings/index.tsx b/src/renderer/src/components/RelaySettings/index.tsx index 6b583f5..cc2cee1 100644 --- a/src/renderer/src/components/RelaySettings/index.tsx +++ b/src/renderer/src/components/RelaySettings/index.tsx @@ -6,8 +6,10 @@ import { useEffect, useRef, useState } from 'react' import { RelaySettingsComponentProvider } from './provider' import RelayGroup from './RelayGroup' import TemporaryRelayGroup from './TemporaryRelayGroup' +import { useTranslation } from 'react-i18next' export default function RelaySettings() { + const { t } = useTranslation() const { relayGroups, addRelayGroup } = useRelaySettings() const [newGroupName, setNewGroupName] = useState('') const [newNameError, setNewNameError] = useState(null) @@ -21,7 +23,7 @@ export default function RelaySettings() { const saveRelayGroup = () => { if (relayGroups.find((group) => group.groupName === newGroupName)) { - return setNewNameError('already exists') + return setNewNameError(t('relay collection name already exists')) } const errMsg = addRelayGroup(newGroupName) if (errMsg) { @@ -45,7 +47,7 @@ export default function RelaySettings() { return (
-
Relay Settings
+
{t('Relay Settings')}
{relayGroups.map((group, index) => ( @@ -57,18 +59,18 @@ export default function RelaySettings() {
-
Add a new relay group
+
{t('Add a new relay collection')}
- +
{newNameError &&
{newNameError}
}
diff --git a/src/renderer/src/components/ReplyNoteList/index.tsx b/src/renderer/src/components/ReplyNoteList/index.tsx index f71ff68..5b554d6 100644 --- a/src/renderer/src/components/ReplyNoteList/index.tsx +++ b/src/renderer/src/components/ReplyNoteList/index.tsx @@ -119,7 +119,7 @@ export default function ReplyNoteList({ event, className }: { event: Event; clas })}
{replies.length === 0 && !loading && !hasMore && ( -
no replies
+
{t('no replies')}
)} ) diff --git a/src/renderer/src/i18n/en.ts b/src/renderer/src/i18n/en.ts index e9d5162..b82250f 100644 --- a/src/renderer/src/i18n/en.ts +++ b/src/renderer/src/i18n/en.ts @@ -44,6 +44,24 @@ export default { note: 'note', "username's following": "{{username}}'s following", following: 'following', - Login: 'Login' + Login: 'Login', + 'Follows you': 'Follows you', + 'relay collection name already exists': 'relay collection name already exists', + 'Relay Settings': 'Relay Settings', + 'Relay collection name': 'Relay collection name', + 'Add a new relay collection': 'Add a new relay collection', + Add: 'Add', + 'n relays': '{{n}} relays', + Rename: 'Rename', + 'Copy share link': 'Copy share link', + Delete: 'Delete', + 'Relay already exists': 'Relay already exists', + 'invalid relay URL': 'invalid relay URL', + 'Add a new relay': 'Add a new relay', + back: 'back', + 'Lost in the void': 'Lost in the void', + 'Carry me home': 'Carry me home', + 'no replies': 'no replies', + 'Reply to': 'Reply to' } } diff --git a/src/renderer/src/i18n/zh.ts b/src/renderer/src/i18n/zh.ts index e3e8b9f..672f6f4 100644 --- a/src/renderer/src/i18n/zh.ts +++ b/src/renderer/src/i18n/zh.ts @@ -1,11 +1,11 @@ export default { translation: { - 'Welcome! 🥳': '欢迎!🥳', + 'Welcome! 🥳': '来都来了', About: '关于', 'New post': '发布新笔记', Post: '发布笔记', - 'Relay settings': '中继设置', - SidebarRelays: '中继设置', + 'Relay settings': '服务器设置', + SidebarRelays: '服务器', Refresh: '刷新列表', Profile: '个人资料', Logout: '退出登录', @@ -44,6 +44,24 @@ export default { note: '笔记', "username's following": '{{username}} 的关注', following: '关注', - Login: '登录' + Login: '登录', + 'Follows you': '关注了你', + 'relay collection name already exists': '服务器组名已存在', + 'Relay Settings': '服务器设置', + 'Relay collection name': '服务器组名', + 'Add a new relay collection': '添加新的服务器组', + Add: '添加', + 'n relays': '{{n}} 个服务器', + Rename: '重命名', + 'Copy share link': '复制分享链接', + Delete: '删除', + 'Relay already exists': '服务器已存在', + 'invalid relay URL': '无效的服务器地址', + 'Add a new relay': '添加新的服务器', + back: '返回', + 'Lost in the void': '迷失在虚空中', + 'Carry me home': '带我回家', + 'no replies': '暂无回复', + 'Reply to': '回复' } } diff --git a/src/renderer/src/pages/secondary/NotFoundPage/index.tsx b/src/renderer/src/pages/secondary/NotFoundPage/index.tsx index f5b266c..3114e0a 100644 --- a/src/renderer/src/pages/secondary/NotFoundPage/index.tsx +++ b/src/renderer/src/pages/secondary/NotFoundPage/index.tsx @@ -2,16 +2,19 @@ import { Button } from '@renderer/components/ui/button' import SecondaryPageLayout from '@renderer/layouts/SecondaryPageLayout' import { toHome } from '@renderer/lib/link' import { useSecondaryPage } from '@renderer/PageManager' +import { useTranslation } from 'react-i18next' export default function NotFoundPage() { + const { t } = useTranslation() const { push } = useSecondaryPage() + return (
-
Lost in the void 🌌
+
{t('Lost in the void')} 🌌
(404)
diff --git a/src/renderer/src/pages/secondary/ProfilePage/index.tsx b/src/renderer/src/pages/secondary/ProfilePage/index.tsx index f3792c1..a6f4d2f 100644 --- a/src/renderer/src/pages/secondary/ProfilePage/index.tsx +++ b/src/renderer/src/pages/secondary/ProfilePage/index.tsx @@ -71,7 +71,7 @@ export default function ProfilePage({ id }: { id?: string }) {
{isFollowingYou && (
- Follows you + {t('Follows you')}
)}