Misskeyは楽しいものです。気がついたら1日中入り浸っていることも多いでしょう。
-さあ、今すぐみす廃アラートをインストールして、あなたの活動を把握しよう。
+{t('description1')}
+{t('description2')}
diff --git a/package.json b/package.json index dd023c9..347a4fc 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "dependencies": { "@babel/preset-react": "^7.14.5", "@reduxjs/toolkit": "^1.6.1", + "@types/insert-text-at-cursor": "^0.3.0", "@types/koa-bodyparser": "^4.3.0", "@types/koa-multer": "^1.0.0", "@types/koa-send": "^4.1.3", @@ -45,6 +46,7 @@ "fibers": "^5.0.0", "i18next": "^20.6.1", "i18next-browser-languagedetector": "^6.1.2", + "insert-text-at-cursor": "^0.3.0", "json5-loader": "^4.0.1", "koa": "^2.13.0", "koa-bodyparser": "^4.3.0", diff --git a/src/frontend/App.tsx b/src/frontend/App.tsx index 3846ebe..2e96e98 100644 --- a/src/frontend/App.tsx +++ b/src/frontend/App.tsx @@ -1,6 +1,7 @@ import React, { useState, useEffect, useCallback } from 'react'; import { BrowserRouter, Link, Route, Switch, useLocation } from 'react-router-dom'; import { Provider } from 'react-redux'; +import { useTranslation } from 'react-i18next'; import { IndexPage } from './pages'; import { RankingPage } from './pages/ranking'; @@ -46,6 +47,8 @@ const AppInner : React.VFC = () => { }; }, [osTheme, setOsTheme]); + const {t} = useTranslation(); + return ( <>
何か困ったことがあったら、以下のアカウントにメッセージを送ってください。
+{t('_developerInfo.description')}
#{hashtag} タグを含む最新ノートを表示します。
+{t('_timeline.description', { hashtag })}
WIP
> ); diff --git a/src/frontend/components/Header.tsx b/src/frontend/components/Header.tsx index 8bdbef6..618b7bb 100644 --- a/src/frontend/components/Header.tsx +++ b/src/frontend/components/Header.tsx @@ -8,19 +8,17 @@ export type HeaderProps = { hasTopLink?: boolean; }; +const messageNumber = Math.floor(Math.random() * 6) + 1; + export const Header: React.FC取得中…
+{t('fetching')}
) : isError ? ( -現在算出中です。後ほどご確認ください!
+{t('isCalculating')}
) : ( -順位 | -名前 | -レート | +{t('_missHai.order')} | +{t('name')} | +{t('_missHai.rating')} | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
{i + 1}位 | +{i + 1} | {r.username}@{r.host} | diff --git a/src/frontend/components/SessionDataPage.tsx b/src/frontend/components/SessionDataPage.tsx index 32ff76d..2c894db 100644 --- a/src/frontend/components/SessionDataPage.tsx +++ b/src/frontend/components/SessionDataPage.tsx @@ -1,4 +1,5 @@ import React, { useEffect } from 'react'; +import { useTranslation } from 'react-i18next'; import { LOCALSTORAGE_KEY_TOKEN } from '../const'; import { useGetScoreQuery, useGetSessionQuery } from '../services/session'; import { Skeleton } from './Skeleton'; @@ -6,6 +7,7 @@ import { Skeleton } from './Skeleton'; export const SessionDataPage: React.VFC = () => { const session = useGetSessionQuery(undefined); const score = useGetScoreQuery(undefined); + const {t} = useTranslation(); /** * Session APIのエラーハンドリング @@ -30,20 +32,10 @@ export const SessionDataPage: React.VFC = () => {
内容 | -スコア | -前日比 | ++ | {t('_missHai.dataScore')} | +{t('_missHai.dataDelta')} |
---|---|---|---|---|---|
ノート | +{t('notes')} | {score.data.notesCount} | {score.data.notesDelta} | ||
フォロー | +{t('following')} | {score.data.followingCount} | {score.data.followingDelta} | ||
フォロワー | +{t('followers')} | {score.data.followersCount} | {score.data.followersDelta} |