From 4ee3ba961384afe9afcf253ce449783b0368a94d Mon Sep 17 00:00:00 2001 From: Shusui MOYATANI Date: Mon, 10 Jul 2023 20:03:11 +0900 Subject: [PATCH] feat: update translation --- src/components/ColumnItem.tsx | 6 +-- src/components/EventLink.tsx | 22 ++++---- src/components/NotePostForm.tsx | 7 +-- src/components/Post.tsx | 6 ++- src/components/column/Column.tsx | 4 +- src/components/event/LongFormContent.tsx | 23 ++++----- src/components/event/ZapReceipt.tsx | 4 +- .../event/textNote/ContentWarningDisplay.tsx | 8 ++- .../event/textNote/ImageDisplay.tsx | 4 +- .../event/textNote/MentionedEventDisplay.tsx | 32 ++++++------ .../event/textNote/VideoDisplay.tsx | 6 ++- src/components/modal/About.tsx | 22 ++++---- src/components/modal/BasicModal.tsx | 40 +++++++-------- src/components/modal/Config.tsx | 50 +++++++++---------- .../timeline/TimelineContentDisplay.tsx | 16 +++--- src/i18n/useTranslation.tsx | 6 +-- src/locales/en.ts | 10 ++++ src/locales/ja.ts | 10 ++++ src/nostr/event.ts | 8 +-- src/nostr/useCommands.ts | 5 +- src/pages/NotFound.tsx | 22 ++++---- src/utils/imageUpload.ts | 5 +- src/utils/sleep.ts | 5 +- 23 files changed, 161 insertions(+), 160 deletions(-) diff --git a/src/components/ColumnItem.tsx b/src/components/ColumnItem.tsx index 8a172f5..89fc42f 100644 --- a/src/components/ColumnItem.tsx +++ b/src/components/ColumnItem.tsx @@ -4,8 +4,8 @@ type ColumnItemProps = { children: JSX.Element; }; -const ColumnItem: Component = (props) => { - return
{props.children}
; -}; +const ColumnItem: Component = (props) => ( +
{props.children}
+); export default ColumnItem; diff --git a/src/components/EventLink.tsx b/src/components/EventLink.tsx index a7872cf..3cacd77 100644 --- a/src/components/EventLink.tsx +++ b/src/components/EventLink.tsx @@ -27,17 +27,15 @@ const tryEncodeNevent = (eventId: string) => { } }; -const EventLink: Component = (props) => { - return ( - - ); -}; +const EventLink: Component = (props) => ( + +); export default EventLink; diff --git a/src/components/NotePostForm.tsx b/src/components/NotePostForm.tsx index 34b2971..6f8fab4 100644 --- a/src/components/NotePostForm.tsx +++ b/src/components/NotePostForm.tsx @@ -260,9 +260,8 @@ const NotePostForm: Component = (props) => { } }; - const ensureUploaderAgreement = (): boolean => { - return true; - /* + const ensureUploaderAgreement = (): boolean => true; + /* if (didAgreeToToS('nostrBuild')) return true; window.alert( @@ -277,8 +276,6 @@ const NotePostForm: Component = (props) => { return didAgree; */ - }; - const handleChangeFile: JSX.EventHandler = (ev) => { ev.preventDefault(); if (uploadFilesMutation.isLoading) return; diff --git a/src/components/Post.tsx b/src/components/Post.tsx index 181969c..fc2e1b3 100644 --- a/src/components/Post.tsx +++ b/src/components/Post.tsx @@ -2,6 +2,7 @@ import { Component, JSX, Show, createSignal } from 'solid-js'; import useDetectOverflow from '@/hooks/useDetectOverflow'; import useFormatDate from '@/hooks/useFormatDate'; +import { useTranslation } from '@/i18n/useTranslation'; import useProfile from '@/nostr/useProfile'; import npubEncodeFallback from '@/utils/npubEncodeFallback'; @@ -16,6 +17,7 @@ export type PostProps = { }; const Post: Component = (props) => { + const i18n = useTranslation(); const { overflow, elementRef } = useDetectOverflow(); const formatDate = useFormatDate(); @@ -98,8 +100,8 @@ const Post: Component = (props) => { setShowOverflow((current) => !current); }} > - - 続きを読む + + {i18n()('post.showOverflow')} diff --git a/src/components/column/Column.tsx b/src/components/column/Column.tsx index 5ec318f..c0ab0a4 100644 --- a/src/components/column/Column.tsx +++ b/src/components/column/Column.tsx @@ -5,6 +5,7 @@ import ArrowLeft from 'heroicons/24/outline/arrow-left.svg'; import TimelineContentDisplay from '@/components/timeline/TimelineContentDisplay'; import { TimelineContext, useTimelineState } from '@/components/timeline/TimelineContext'; import { useHandleCommand } from '@/hooks/useCommandBus'; +import { useTranslation } from '@/i18n/useTranslation'; export type ColumnProps = { columnIndex: number; @@ -18,6 +19,7 @@ const Column: Component = (props) => { let columnDivRef: HTMLDivElement | undefined; const timelineState = useTimelineState(); + const i18n = useTranslation(); const width = () => props.width ?? 'medium'; @@ -71,7 +73,7 @@ const Column: Component = (props) => {
-
ホームに戻る
+
{i18n()('column.back')}
    diff --git a/src/components/event/LongFormContent.tsx b/src/components/event/LongFormContent.tsx index fa679dc..717e6c6 100644 --- a/src/components/event/LongFormContent.tsx +++ b/src/components/event/LongFormContent.tsx @@ -9,19 +9,16 @@ export type LongFormContentProps = { event: NostrEvent; }; -const LongFormContent: Component = (props) => { +const LongFormContent: Component = (props) => ( // const event = () => genericEvent(props.event); - return ( - - ); -}; - + +); export default LongFormContent; diff --git a/src/components/event/ZapReceipt.tsx b/src/components/event/ZapReceipt.tsx index 722510c..be1e2dc 100644 --- a/src/components/event/ZapReceipt.tsx +++ b/src/components/event/ZapReceipt.tsx @@ -29,9 +29,7 @@ const ZapReceipt: Component = (props) => { } }; - const amount = () => { - return event().findFirstTagByName('amount'); - }; + const amount = () => event().findFirstTagByName('amount'); return ( diff --git a/src/components/event/textNote/ContentWarningDisplay.tsx b/src/components/event/textNote/ContentWarningDisplay.tsx index 37f1d9a..45cc53e 100644 --- a/src/components/event/textNote/ContentWarningDisplay.tsx +++ b/src/components/event/textNote/ContentWarningDisplay.tsx @@ -1,5 +1,6 @@ import { createSignal, type Component, type JSX, Show } from 'solid-js'; +import { useTranslation } from '@/i18n/useTranslation'; import { ContentWarning } from '@/nostr/event/TextNote'; export type ContentWarningDisplayProps = { @@ -8,6 +9,7 @@ export type ContentWarningDisplayProps = { }; const ContentWarningDisplay: Component = (props) => { + const i18n = useTranslation(); const [showContentWarning, setShowContentWarning] = createSignal(false); return ( @@ -18,10 +20,12 @@ const ContentWarningDisplay: Component = (props) => class="mt-2 w-full rounded border p-2 text-center text-xs text-stone-600 shadow-sm hover:shadow" onClick={() => setShowContentWarning(true)} > - 表示するにはクリック + {i18n()('post.contentWarning.show')}
    - 理由: {props.contentWarning.reason} + + {i18n()('post.contentWarning.reason')}: {props.contentWarning.reason} +
    } diff --git a/src/components/event/textNote/ImageDisplay.tsx b/src/components/event/textNote/ImageDisplay.tsx index 116d940..9c4f7c1 100644 --- a/src/components/event/textNote/ImageDisplay.tsx +++ b/src/components/event/textNote/ImageDisplay.tsx @@ -1,6 +1,7 @@ import { Component, createSignal, Show } from 'solid-js'; import SafeLink from '@/components/utils/SafeLink'; +import { useTranslation } from '@/i18n/useTranslation'; import { fixUrl } from '@/utils/url'; type ImageDisplayProps = { @@ -10,6 +11,7 @@ type ImageDisplayProps = { const ImageDisplay: Component = (props) => { let imageRef: HTMLImageElement | undefined; + const i18n = useTranslation(); const [hidden, setHidden] = createSignal(props.initialHidden); return ( @@ -20,7 +22,7 @@ const ImageDisplay: Component = (props) => { class="rounded bg-stone-300 p-3 text-xs text-stone-600 hover:shadow" onClick={() => setHidden(false)} > - 画像を展開する + {i18n()('post.showImage')} } > diff --git a/src/components/event/textNote/MentionedEventDisplay.tsx b/src/components/event/textNote/MentionedEventDisplay.tsx index c473d1f..9a833db 100644 --- a/src/components/event/textNote/MentionedEventDisplay.tsx +++ b/src/components/event/textNote/MentionedEventDisplay.tsx @@ -11,22 +11,20 @@ export type MentionedEventDisplayProps = { mentionedEvent: MentionedEvent; }; -const MentionedEventDisplay = (props: MentionedEventDisplayProps) => { - return ( - 0} - fallback={} - > -
    - -
    -
    - ); -}; +const MentionedEventDisplay = (props: MentionedEventDisplayProps) => ( + 0} + fallback={} + > +
    + +
    +
    +); export default MentionedEventDisplay; diff --git a/src/components/event/textNote/VideoDisplay.tsx b/src/components/event/textNote/VideoDisplay.tsx index 0457019..706222c 100644 --- a/src/components/event/textNote/VideoDisplay.tsx +++ b/src/components/event/textNote/VideoDisplay.tsx @@ -1,6 +1,7 @@ import { Component, createSignal, Show } from 'solid-js'; import SafeLink from '@/components/utils/SafeLink'; +import { useTranslation } from '@/i18n/useTranslation'; type VideoDisplayProps = { url: string; @@ -9,6 +10,7 @@ type VideoDisplayProps = { const VideoDisplay: Component = (props) => { let videoRef: HTMLVideoElement | undefined; + const i18n = useTranslation(); const [hidden, setHidden] = createSignal(props.initialHidden); return ( @@ -19,7 +21,7 @@ const VideoDisplay: Component = (props) => { class="rounded bg-stone-300 p-3 text-xs text-stone-600 hover:shadow" onClick={() => setHidden(false)} > - 動画を表示する + {i18n()('post.showVideo')} } > @@ -31,7 +33,7 @@ const VideoDisplay: Component = (props) => { src={props.url} controls > - ダウンロード + {i18n()('post.download')}
    diff --git a/src/components/modal/About.tsx b/src/components/modal/About.tsx index d1b7cd7..9c592d8 100644 --- a/src/components/modal/About.tsx +++ b/src/components/modal/About.tsx @@ -109,18 +109,16 @@ const About: Component = (props) => {

    使用ライブラリ

    - {(p) => { - return ( - <> -

    - {p.name}@{p.version} ({p.licenseSpdx}) -

    -
    -                  {p.licenseText}
    -                
    - - ); - }} + {(p) => ( + <> +

    + {p.name}@{p.version} ({p.licenseSpdx}) +

    +
    +                {p.licenseText}
    +              
    + + )}
    diff --git a/src/components/modal/BasicModal.tsx b/src/components/modal/BasicModal.tsx index 499ca1c..b5f3c9a 100644 --- a/src/components/modal/BasicModal.tsx +++ b/src/components/modal/BasicModal.tsx @@ -10,27 +10,25 @@ export type BasicModalProps = { children: JSX.Element; }; -const BasicModal: Component = (props) => { - return ( - props.onClose?.()}> -
    - -
    - {props.children} -
    +const BasicModal: Component = (props) => ( + props.onClose?.()}> +
    + +
    + {props.children}
    - - ); -}; +
    +
    +); export default BasicModal; diff --git a/src/components/modal/Config.tsx b/src/components/modal/Config.tsx index 1bfcc4e..db20fc3 100644 --- a/src/components/modal/Config.tsx +++ b/src/components/modal/Config.tsx @@ -104,16 +104,14 @@ const RelayConfig = () => {

      - {(relayUrl: string) => { - return ( -
    • -
      {relayUrl}
      - -
    • - ); - }} + {(relayUrl: string) => ( +
    • +
      {relayUrl}
      + +
    • + )}
    @@ -211,23 +209,21 @@ const DateFormatConfig = () => { const ToggleButton = (props: { value: boolean; onClick: JSX.EventHandler; -}) => { - return ( - - ); -}; +}) => ( + +); const ReactionConfig = () => { const i18n = useTranslation(); diff --git a/src/components/timeline/TimelineContentDisplay.tsx b/src/components/timeline/TimelineContentDisplay.tsx index 48cdb25..6690b46 100644 --- a/src/components/timeline/TimelineContentDisplay.tsx +++ b/src/components/timeline/TimelineContentDisplay.tsx @@ -39,14 +39,12 @@ const RepliesDisplay: Component<{ event: NostrEvent }> = (props) => { return ; }; -const TimelineContentDisplay: Component<{ timelineContent: TimelineContent }> = (props) => { - return ( - - - {(replies) => } - - - ); -}; +const TimelineContentDisplay: Component<{ timelineContent: TimelineContent }> = (props) => ( + + + {(replies) => } + + +); export default TimelineContentDisplay; diff --git a/src/i18n/useTranslation.tsx b/src/i18n/useTranslation.tsx index e17122b..e70a89c 100644 --- a/src/i18n/useTranslation.tsx +++ b/src/i18n/useTranslation.tsx @@ -34,6 +34,6 @@ export const useTranslation = () => { return i18nextFn; }; -export const I18NextProvider: Component = (props) => { - return {props.children}; -}; +export const I18NextProvider: Component = (props) => ( + {props.children} +); diff --git a/src/locales/en.ts b/src/locales/en.ts index 6bb2381..ad12547 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -23,6 +23,7 @@ export default { search: 'Search', myPosts: 'My posts', myReactions: 'My reactions', + back: 'Back', config: { columnWidth: 'Column width', widest: 'Widest', @@ -61,6 +62,15 @@ export default { deletedSuccessfully: 'Deleted successfully (reload to reflect)', failedToDeletePartially: 'Failed to delete on {{count}} relays', failedToDelete: 'Failed to delete', + showImage: 'Show image', + showVideo: 'Show video', + showOverflow: 'Read more', + hideOverflow: 'Hide', + download: 'Download', + contentWarning: { + show: 'Click to display', + reason: 'Reason', + }, }, notification: { reposted: ' reposted', diff --git a/src/locales/ja.ts b/src/locales/ja.ts index 5cb7e84..607e86a 100644 --- a/src/locales/ja.ts +++ b/src/locales/ja.ts @@ -21,6 +21,7 @@ export default { search: '検索', myPosts: '自分の投稿', myReactions: '自分のリアクション', + back: '戻る', config: { columnWidth: 'カラム幅', widest: '特大', @@ -59,6 +60,15 @@ export default { deletedSuccessfully: '削除しました(画面への反映にはリロード)', failedToDeletePartially: '{{count}}個のリレーで削除に失敗しました', failedToDelete: 'すべてのリレーで削除に失敗しました', + showImage: '画像を表示する', + showVideo: '動画を表示する', + showOverflow: '続きを読む', + hideOverflow: '隠す', + download: 'ダウンロード', + contentWarning: { + show: '表示するにはクリック', + reason: '理由', + }, }, notification: { reposted: 'がリポスト', diff --git a/src/nostr/event.ts b/src/nostr/event.ts index b7d3e77..4a27468 100644 --- a/src/nostr/event.ts +++ b/src/nostr/event.ts @@ -3,10 +3,6 @@ import { Kind, Event as NostrEvent } from 'nostr-tools'; import GenericEvent from '@/nostr/event/GenericEvent'; import TextNote from '@/nostr/event/TextNote'; -export const genericEvent = (event: NostrEvent): GenericEvent => { - return new GenericEvent(event); -}; +export const genericEvent = (event: NostrEvent): GenericEvent => new GenericEvent(event); -export const textNote = (event: NostrEvent): TextNote => { - return new TextNote(event); -}; +export const textNote = (event: NostrEvent): TextNote => new TextNote(event); diff --git a/src/nostr/useCommands.ts b/src/nostr/useCommands.ts index b7efe66..b3d7eb3 100644 --- a/src/nostr/useCommands.ts +++ b/src/nostr/useCommands.ts @@ -23,8 +23,8 @@ export type PublishTextNoteParams = { } & TagParams; // NIP-20: Command Result -const waitCommandResult = (pub: Pub, relayUrl: string): Promise => { - return new Promise((resolve, reject) => { +const waitCommandResult = (pub: Pub, relayUrl: string): Promise => + new Promise((resolve, reject) => { pub.on('ok', () => { console.log(`${relayUrl} has accepted our event`); resolve(); @@ -34,7 +34,6 @@ const waitCommandResult = (pub: Pub, relayUrl: string): Promise => { reject(reason); }); }); -}; export const buildTags = ({ notifyPubkeys, diff --git a/src/pages/NotFound.tsx b/src/pages/NotFound.tsx index c9ff28d..3af739f 100644 --- a/src/pages/NotFound.tsx +++ b/src/pages/NotFound.tsx @@ -1,16 +1,14 @@ import type { Component } from 'solid-js'; -const NotFound: Component = () => { - return ( -
    -

    お探しのページは見つかりませんでした

    -

    - - ← トップに戻る - -

    -
    - ); -}; +const NotFound: Component = () => ( +
    +

    お探しのページは見つかりませんでした

    +

    + + ← トップに戻る + +

    +
    +); export default NotFound; diff --git a/src/utils/imageUpload.ts b/src/utils/imageUpload.ts index 18611f0..0b938e2 100644 --- a/src/utils/imageUpload.ts +++ b/src/utils/imageUpload.ts @@ -74,6 +74,5 @@ export type UploaderIds = keyof typeof uploaders; export const uploadFiles = (uploadFn: (file: Blob) => Promise) => - (files: File[]): Promise>[]> => { - return Promise.allSettled(files.map((file) => uploadFn(file))); - }; + (files: File[]): Promise>[]> => + Promise.allSettled(files.map((file) => uploadFn(file))); diff --git a/src/utils/sleep.ts b/src/utils/sleep.ts index 7fadffb..6f043fc 100644 --- a/src/utils/sleep.ts +++ b/src/utils/sleep.ts @@ -1,7 +1,6 @@ -const sleep = (ms: number): Promise => { - return new Promise((resolve) => { +const sleep = (ms: number): Promise => + new Promise((resolve) => { setTimeout(resolve, ms); }); -}; export default sleep;