Skip to content

Commit

Permalink
Update: add settings for app language
Browse files Browse the repository at this point in the history
  • Loading branch information
juzser committed Apr 28, 2023
1 parent 9920349 commit 379907e
Show file tree
Hide file tree
Showing 13 changed files with 73 additions and 20 deletions.
8 changes: 8 additions & 0 deletions OeReminderApp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ export class OeReminderApp extends App {
public maxUserRemind: number;
public siteUrl: string;

public appLanguage: string;

public reminder: Reminder;

/**
Expand Down Expand Up @@ -124,6 +126,8 @@ export class OeReminderApp extends App {
this.enableRemindChannel = await environment.getSettings().getValueById('enable_remindto_channel');
this.maxUserRemind = +(await environment.getSettings().getValueById('max_users_remind')) || 0;

this.appLanguage = await environment.getSettings().getValueById('app_language');

return true;
}

Expand Down Expand Up @@ -158,6 +162,10 @@ export class OeReminderApp extends App {
case 'max_users_remind':
this.maxUserRemind = +setting.value || 0;
break;

case 'app_language':
this.appLanguage = setting.value;
break;
}

return;
Expand Down
9 changes: 7 additions & 2 deletions i18n/br.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"remind_params": "listar lembretes, criar lembrete",
"remind_params": "listar lembretes, criar lembrete",
"remind_desc": "Crie lembretes para você e seus colegas.",
"bot_username": "Reminder Bot",
"bot_username_desc": "O username utilizado pelo bot para enviar lembretes.",
Expand All @@ -12,5 +12,10 @@
"max_users_remind": "Número máximo de usuários que o bot poderá enviar lembretes",
"max_users_remind_desc": "0 para desabilitar. Número máximo de usuários a receberem um lembrete em uma única mensagem.",
"reminder-trigger-label": "⏰ Lembrete",
"reminder-trigger-message-label": "⏰ Criar lembrete"
"reminder-trigger-message-label": "⏰ Criar lembrete",
"app_language": "App Language",
"app_language_desc": "The language to use for the app.",
"app_language_en": "English",
"app_language_vi": "Tiếng Việt",
"app_language_br": "Brazilian (Portuguese)"
}
7 changes: 6 additions & 1 deletion i18n/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,10 @@
"max_users_remind": "Max other users to remind",
"max_users_remind_desc": "0 to disable. The maximum number of other users to remind in a single reminder.",
"reminder-trigger-label": "⏰ Reminder",
"reminder-trigger-message-label": "⏰ Create reminder"
"reminder-trigger-message-label": "⏰ Create reminder",
"app_language": "App Language",
"app_language_desc": "The language to use for the app.",
"app_language_en": "English",
"app_language_vi": "Tiếng Việt",
"app_language_br": "Brazilian (Portuguese)"
}
7 changes: 6 additions & 1 deletion i18n/vi.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,10 @@
"max_users_remind": "Max other users to remind",
"max_users_remind_desc": "0 to disable. The maximum number of other users to remind in a single reminder.",
"reminder-trigger-label": "⏰ Reminder",
"reminder-trigger-message-label": "⏰ Tạo reminder"
"reminder-trigger-message-label": "⏰ Tạo reminder",
"app_language": "Ngôn ngữ",
"app_language_desc": "Ngôn ngữ sử dụng cho app.",
"app_language_en": "English",
"app_language_vi": "Tiếng Việt",
"app_language_br": "Brazilian (Portuguese)"
}
2 changes: 1 addition & 1 deletion src/classes/Reminder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ export class Reminder {
user: IUser,
refMsgId?: string,
}) {
const { lang } = new Lang(user.settings?.preferences?.language);
const { lang } = new Lang(this.app.appLanguage);

const whenDateTime = getWhenDateTime({ whenDate: formData.whenDate, whenTime: formData.whenTime, offset: user.utcOffset });
const triggerTime = whenDateTime.getTime();
Expand Down
2 changes: 1 addition & 1 deletion src/commands/remind/help.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ export async function sendHelp({ app, modify, user, room }: {
const block = modify.getCreator().getBlockBuilder();
await ReminderActionsMessage({ app, block });

const { lang } = new Lang(user.settings?.preferences?.language);
const { lang } = new Lang(app.appLanguage);

await notifyUser({
app,
Expand Down
12 changes: 9 additions & 3 deletions src/lang/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,15 @@ export class Lang {

constructor(private readonly locale?: string) {
switch (locale) {
// case 'vi-vn':
// this._lang = vi;
// break;
case 'vi-vn':
this._lang = vi;
break;
case 'vi':
this._lang = vi;
break;
case 'br':
this._lang = br;
break;
default:
this._lang = en;
break;
Expand Down
4 changes: 2 additions & 2 deletions src/lib/helpers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -290,11 +290,11 @@ export function getWhenDateTime({ whenDate, whenTime, offset }: {
/**
* Get week day name from lang
*/
export function getWeekDayName(date: string): string {
export function getWeekDayName(app: appClass, date: string): string {
const ts = convertDateToTimestamp(date);
const day = new Date(ts).getDay();

const { lang } = new Lang();
const { lang } = new Lang(app.appLanguage);

switch(day) {
case 0:
Expand Down
23 changes: 23 additions & 0 deletions src/lib/settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,29 @@ export const settings: Array<ISetting> = [
i18nLabel: 'bot_name',
i18nDescription: 'bot_name_desc',
},
{
id: 'app_language',
type: SettingType.SELECT,
packageValue: 'en',
values: [
{
key: 'en',
i18nLabel: 'app_language_en',
},
{
key: 'vi',
i18nLabel: 'app_language_vi',
},
{
key: 'br',
i18nLabel: 'app_language_br',
}
],
required: true,
public: false,
i18nLabel: 'app_language',
i18nDescription: 'app_language_desc',
},
{
id: 'default_channel',
type: SettingType.STRING,
Expand Down
2 changes: 1 addition & 1 deletion src/messages/reminder-actions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ export async function ReminderActionsMessage({ app, block }: {
app: AppClass;
block: BlockBuilder;
}) {
const { lang } = new Lang();
const { lang } = new Lang(app.appLanguage);

block.addSectionBlock({
text: block.newMarkdownTextObject(lang.reminder.messageAction.caption),
Expand Down
2 changes: 1 addition & 1 deletion src/messages/reminder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ export async function ReminderMessage({ app, owner, jobData, read, modify, room,
room: IRoom;
refMsg?: IMessage;
}) {
const { lang } = new Lang(owner.settings?.preferences?.language);
const { lang } = new Lang(app.appLanguage);

let caption = lang.reminder.message.caption_self;

Expand Down
2 changes: 1 addition & 1 deletion src/modals/reminderCreate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ export async function reminderCreate({ app, room, user, read, modify, targetType
targetType?: JobTargetType;
refMessage?: IMessage;
}): Promise<IUIKitModalViewParam> {
const { lang } = new Lang(user.settings?.preferences?.language);
const { lang } = new Lang(app.appLanguage);

const block = modify.getCreator().getBlockBuilder();

Expand Down
13 changes: 7 additions & 6 deletions src/modals/reminderList.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export async function reminderList({ app, jobList, pausedJobs, user, modify, sta
modify: IModify;
status?: 'active' | 'finished' | 'paused';
}): Promise<IUIKitModalViewParam> {
const { lang } = new Lang(user.settings?.preferences?.language);
const { lang } = new Lang(app.appLanguage);

const block = modify.getCreator().getBlockBuilder();

Expand Down Expand Up @@ -46,7 +46,7 @@ export async function reminderList({ app, jobList, pausedJobs, user, modify, sta
});

pausedJobs.forEach((job, index) => {
generateJobBlock({ lang, block, job, timeOffset: user.utcOffset });
generateJobBlock({ app, lang, block, job, timeOffset: user.utcOffset });
});
}

Expand All @@ -63,7 +63,7 @@ export async function reminderList({ app, jobList, pausedJobs, user, modify, sta
),
});
jobList.forEach((job, index) => {
generateJobBlock({ lang, block, job, timeOffset: user.utcOffset });
generateJobBlock({ app, lang, block, job, timeOffset: user.utcOffset });
});
}

Expand All @@ -77,7 +77,8 @@ export async function reminderList({ app, jobList, pausedJobs, user, modify, sta
};
}

function generateJobBlock({ lang, block, job, timeOffset }: {
function generateJobBlock({ app, lang, block, job, timeOffset }: {
app: AppClass;
lang: Record<string, any>;
block: BlockBuilder;
job: IJob;
Expand All @@ -100,12 +101,12 @@ function generateJobBlock({ lang, block, job, timeOffset }: {
break;
case JobType.WEEKLY:
repeatLabel = lang.reminder.createModal.repeat_options.weekly;
const weekday = getWeekDayName(job.whenDate);
const weekday = getWeekDayName(app, job.whenDate);
when = `${hour}:${minute} - ${weekday}`;
break;
case JobType.BIWEEKLY:
repeatLabel = lang.reminder.createModal.repeat_options.biweekly;
const biweekday = getWeekDayName(job.whenDate);
const biweekday = getWeekDayName(app, job.whenDate);
when = `${hour}:${minute} - ${biweekday}`;
break;
case JobType.MONTHLY:
Expand Down

0 comments on commit 379907e

Please sign in to comment.