From 90bdf104d76674d307cbd50dc1cf3d973b663471 Mon Sep 17 00:00:00 2001 From: INOUE Daisuke Date: Tue, 8 Apr 2025 22:18:02 +0900 Subject: fix and add some translation keys. --- locales/en.json | 22 ++++++++++++++++++++-- locales/ja.json | 27 +++++++++++++++++++-------- src/app.ts | 13 ------------- views/event.handlebars | 11 +++++------ views/eventgroup.handlebars | 2 +- 5 files changed, 45 insertions(+), 30 deletions(-) diff --git a/locales/en.json b/locales/en.json index 305e806..118f139 100644 --- a/locales/en.json +++ b/locales/en.json @@ -13,13 +13,19 @@ "creatoremaildesc": "If you provide your email, we will send your secret editing password here, and use it to notify you of updates to the event.", "del": "Delete", "edittoken": "Enter editing password", + "edittokendesc": "Enter the editing password you received by email or were shown when the event was created.", "emailaddr": "Email address", "emaildesc": "We will send your secret editing link to this email address.", - "event.ICSexport": "Export as ICS", + "event.about": "About", "event.addme": "Add me", + "event.addmyself": "Add myself", "event.addself": "Add yourself to '{{eventData.name}}'", + "event.addtoGC": "Add to Google Calendar", "event.attendeeemail": "Your email (optional)", "event.attendeename": "Your name", + "event.attendeenamedesc": "Or an alias, perhaps...", + "event.attendeenum": "How many people in your party?", + "event.attendees": "Attendees", "event.attendeevisible": "Show my name in the public list of attendees", "event.attendeevisibledesc": "If you choose to hide your name, only the event organiser will be able to see it.", "event.attention": "Your secret editing password for this event is: {{eventData.editToken}}. It's been saved in your browser storage, and if you supplied your email, it's also been sent to you. If you didn't supply your email, you must save it somewhere safe, because it won't be shown again!", @@ -35,18 +41,23 @@ "event.editlater": "You can always edit it later.", "event.ended": "Ended", "event.enternum": "Enter a number.", + "event.hidden": "(hidden from public list)", "event.hostedby": "Hosted by {{eventData.hostName}}", + "event.ICSexport": "Export as ICS", "event.locationdesc": "Be specific.", "event.lostpswd": "Forgot password? Get in touch with the event organiser.", "event.noattendees": "No attendees yet!", + "event.nospam": "We won't spam you <3", "event.numberofattende": "({{numberOfAttendees}})", "event.numlimit": "Please enter a number between 1 and ${response.data.freeSpots}", "event.options": "event.options", "event.p.creatoremail": "Your email", "event.p.delthis": "Delete this event", + "event.p.edit": "Edit '{{eventData.name}}'", "event.p.eventdescription": "Description", "event.p.eventend": "Ends", "event.p.eventgroup": "This event is part of an event group", + "event.p.eventgroupdata": "Link this event to an event group", "event.p.eventgroupedittoken": "You can find this long string of characters in the\nconfirmation email you received when you created the event group.", "event.p.eventgroupid": "You can find this short string of characters in the event group's link, in your confirmation email, or on the event group's page.", "event.p.eventgrouplinker": "Choose a group you've edited before", @@ -59,6 +70,7 @@ "event.p.hostname": "Host name", "event.p.hostnamedesc": "Will be shown on the event page (optional).", "event.p.maxattendees": "Attendee limit", + "event.p.maxattendeestitle": "This event is at capacity.", "event.p.publicevent": "Display this event on the public event list", "event.p.timezone": "Timezone", "event.partof": "{{eventData.eventGroup.name}}", @@ -66,10 +78,12 @@ "event.remaining": "{{spotsRemaining}} {{plural spotsRemaining \"spot(s)\"}} remaining - add yourself now!", "event.remove-attendee": "Remove {{ attendeeName }} from {{eventData.name}}", "event.removeAttendee": "Remove attendee", + "event.removeattendeedesc": "Remove attendee from '{{eventData.name}}'", "event.removeme": "Remove me", "event.removemyself": "Remove myself", "event.removemyselfdesc": "Remove yourself from '{{eventData.name}}'", "event.removepswd": "Remove password", + "event.removepswddesc": "You can use this password to remove yourself from the list of event attendees. If you provided your email, you'll receive it by email. Otherwise, write it down now because it will not be shown again.", "event.removeuser": "Remove user from event", "event.reply": "Reply", "event.replycontent": "What would you like to reply?", @@ -83,16 +97,18 @@ "fixerrors": "Please fix these errors:", "forgotpwd": "Forgot password", "frontend.eventattendees": "people", - "group.ICSexport": "Export as ICS", "group.about": "About", "group.addevent": "To link an existing event to this group, copy and paste the two codes below into the 'Event Group' box when creating a new event or editing an existing event.", "group.del": "Delete this event group", "group.delconfirm": "Are you sure you want to delete this event group? This action cannot be undone.", + "group.deldesc": "

This will not delete the individual events contained in this group. They can be linked to another group later.", "group.edit": "Edit group", "group.editmode": "Switch to editing mode", "group.editpswd": "Event group editing password", "group.editpswddesc": "Event group secret editing code", "group.feedlinkdesc": "Paste this URL into your calendar app\nto subscribe to a live feed of events from this group.", + "group.hostedby": "Hosted by {{eventGroupData.hostName}}", + "group.ICSexport": "Export as ICS", "group.p.creatoremail": "Your email", "group.p.del": "Delete this event group", "group.p.delbutton": "Delete event group", @@ -141,8 +157,10 @@ "ml.requestml": "Request a link to create a new event", "ml.requestmlbutton": "Request magic link", "ml.requestmldesc": "The administrator of this instance has limited event creation to a set of specific email addresses. If your email address is allowed to create events, you will be sent a magic link. If not, you won't receive anything.", + "newevent.createnew": "Create an event", "newevent.groupattention": "Event groups do not get automatically removed like events do, but events which have been removed from {{siteName}} will of course not show up in an event group.", "newevent.groupdesc": "An event group is a holding area for a set of linked events, like a series of film nights, a festival, or a band tour. You can share a public link to your event group just like an individual event link, and people who know the secret editing code (sent in an email when you create the event group) will be able to add future events to the group.", + "newevent.importevent": "Import an existing event", "newevent.neweventbutton": "Create a new event", "newevent.neweventgroup": "Create a new event group", "newevent.newgroup": "Create an event group", diff --git a/locales/ja.json b/locales/ja.json index 0cc42a7..a0ae374 100644 --- a/locales/ja.json +++ b/locales/ja.json @@ -13,16 +13,21 @@ "creatoremaildesc": "メールアドレスを入力すると、編集用秘密パスワードを送信します。またイベントについての更新情報も送信します。", "del": "削除", "edittoken": "編集パスワードを入力します", + "edittokendesc": "編集パスワードを入力してください。イベントが作成時に表示したほか、メールアドレスを入力していたらメールでも送信しています。", "emailaddr": "メールアドレス", "emaildesc": "メールアドレスを入力すると、編集用秘密パスワードを送信します。また、イベント情報の更新があった際にはお知らせします。", - "event.ICSexport": "iCalendar ファイル出力", + "event.about": "このイベントについて", "event.addme": "参加", + "event.addmyself": "参加する", "event.addself": "'{{eventData.name}}' に参加", + "event.addtoGC": "Google カレンダーに追加", "event.attendeeemail": "あなたのメールアドレス ( 任意 )", "event.attendeename": "参加者名", + "event.attendeenamedesc": "またはニックネームとか...", "event.attendeenum": "何人で参加しますか?", + "event.attendees": "参加者", "event.attendeevisible": "公開参加者リストに自分の名前を載せる", - "event.attendeevisibledesc": "参加者名を匿名にする場合は、イベントの主催者だけが確認できます。", + "event.attendeevisibledesc": "参加者名を匿名にする場合でも、イベント主催者だけは確認できます。", "event.attention": "このイベントの編集用秘密パスワード : {{eventData.editToken}}
ブラウザストレージに保存してあり、メールアドレスを入力したのならメールでも送信しています。メールアドレスを入力しなかったのなら、すぐに安全な場所に保存してください。もう二度と表示しませんので!", "event.capacity": "このイベントは満員です。", "event.comment": "コメント", @@ -36,11 +41,14 @@ "event.editlater": "後でいつでも編集できます。", "event.ended": "終了済み", "event.enternum": "人数を入力してください", + "event.hidden": "( 匿名 )", "event.hostedby": "主催 : {{eventData.hostName}}", + "event.ICSexport": "iCalendar ファイル出力", "event.locationdesc": "具体的に。", "event.lostpswd": "パスワードをなくしましたか ? イベントの主催者に連絡を。", "event.noattendees": "まだ参加者がいません !", - "event.numberofattende": "( 定員 : {{numberOfAttendees}} 人)", + "event.nospam": "SPAM を送ることはありません!", + "event.numberofattende": "( 現在 : {{numberOfAttendees}} 人)", "event.numlimit": "1 ~ ${response.data.freeSpots} までの数値で入力してください", "event.options": "設定", "event.p.creatoremail": "あなたのメールアドレス", @@ -62,6 +70,7 @@ "event.p.hostname": "主催者名", "event.p.hostnamedesc": "イベントのページに表示します ( 任意 )。", "event.p.maxattendees": "定員", + "event.p.maxattendeestitle": "満員です。", "event.p.publicevent": "このイベントを公開イベントリストに表示", "event.p.timezone": "タイムゾーン", "event.partof": "{{eventData.eventGroup.name}} グループのイベント", @@ -70,14 +79,15 @@ "event.remove-attendee": "'{{eventData.name}}' から {{ attendeeName }} を削除", "event.removeAttendee": "参加者を削除", "event.removeattendeedesc": "'{{eventData.name}}' から参加者を削除", - "event.removeme": "取消 ( 辞退 )", - "event.removemyself": "取消 ( 辞退 ) する", - "event.removemyselfdesc": "'{{eventData.name}}' から自分を削除する", + "event.removeme": "キャンセル ( 辞退 )", + "event.removemyself": "キャンセル ( 辞退 ) する", + "event.removemyselfdesc": "'{{eventData.name}}' への参加をキャンセル ( 辞退 ) する", "event.removepswd": "参加者パスワード", + "event.removepswddesc": "この参加者パスワードは、イベントへの参加をキャンセル ( 辞退 ) する際に使います。\nメールを入力したのなら、メールでも送信しています。\nメールを入力していない場合は、二度と表示されないため、今すぐ書き留めてください。", "event.removeuser": "このユーザーをイベント参加者から削除", "event.reply": "返信", "event.replycontent": "返信の内容は?", - "event.share": "イベントを共有するには、このメッセージのすぐ上に表示しているリンクをご利用ください。参加者は、イベントを編集したり削除したりすることができません。", + "event.share": "イベントを共有するには、このメッセージのすぐ上に表示しているリンクをご利用ください。参加者にはイベントを編集したり削除したりすることはできません。", "event.showonGM": "Google マップで表示", "event.showonOM": "OpenStreetMap で表示", "event.started": "開始済み", @@ -87,7 +97,6 @@ "fixerrors": "エラーを修正してください :", "forgotpwd": "パスワードがわからない?", "frontend.eventattendees": "人で", - "group.ICSexport": "iCalendar ファイル", "group.about": "このグループについて", "group.addevent": "このグループにイベントをリンクするには、新しくイベントを作る際に、もしくは既存のイベントを編集して、以下の 2 つのコードをコピー・貼り付けします。", "group.del": "このイベントグループを削除", @@ -98,6 +107,8 @@ "group.editpswd": "イベントグループ編集パスワード", "group.editpswddesc": "イベントグループの秘密の編集コード", "group.feedlinkdesc": "この URL をカレンダーアプリに登録することで、このグループのイベントスケジュールを購読できます。", + "group.hostedby": "主催 : ", + "group.ICSexport": "iCalendar ファイル", "group.p.creatoremail": "あなたのメールアドレス", "group.p.del": "このイベントグループを削除する", "group.p.delbutton": "イベントグループを削除", diff --git a/src/app.ts b/src/app.ts index febc67d..5fe0100 100755 --- a/src/app.ts +++ b/src/app.ts @@ -46,19 +46,6 @@ async function initializeApp() { // Cookies // app.use(cookieParser()); - // カスタム言語検出ミドルウェア - // app.use((req, res, next) => { - // const acceptLanguage = req.headers['accept-language']; - // if (acceptLanguage && acceptLanguage.includes('ja')) { - // res.cookie('i18next', 'ja', { - // maxAge: 365 * 24 * 60 * 60 * 1000, - // httpOnly: true, - // sameSite: 'lax' - // }); - // } - // next(); - // }); - // i18next configuration await i18next .use(Backend) diff --git a/views/event.handlebars b/views/event.handlebars index 5443d2e..c36ab30 100755 --- a/views/event.handlebars +++ b/views/event.handlebars @@ -108,7 +108,7 @@ {{#unless editingEnabled}} - + {{/unless}} @@ -128,7 +128,7 @@ {{/if}}

-
{{t "about" }}
+
{{t "event.about" }}
{{{parsedDescription}}}
@@ -159,7 +159,7 @@ {{/each}} {{#if editingEnabled}} {{#each hiddenAttendees}} - {{this.name}} (hidden from public list){{#if ../editingEnabled}} {{/if}} + {{this.name}} {{t "event.hidden" }}{{#if ../editingEnabled}} {{/if}} {{/each}} {{/if}} @@ -201,7 +201,7 @@

{{t "joinemaildesc" }}

- +
@@ -259,8 +259,7 @@