Skip to content

Commit

Permalink
I18n's the i18n language dropdown & weekday using Intl (calcom#955)
Browse files Browse the repository at this point in the history
* I18n's the i18n language dropdown & weekday using Intl

* Some type fixes

* Trigger locale changes instantly (calcom#958)

* Trigger locale changes instantly

* Restored types

* Capitalize languages across the board

Co-authored-by: Omar López <[email protected]>
Co-authored-by: Peer Richelsen <[email protected]>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
  • Loading branch information
4 people authored Oct 15, 2021
1 parent b5e176a commit ce8e9c1
Show file tree
Hide file tree
Showing 3 changed files with 270 additions and 310 deletions.
28 changes: 0 additions & 28 deletions lib/core/i18n/i18n.utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,31 +44,3 @@ export const getOrSetUserLocaleFromHeaders = async (req: IncomingMessage): Promi

return preferredLocale;
};

interface localeType {
[locale: string]: string;
}

export const localeLabels: localeType = {
en: "English",
fr: "French",
it: "Italian",
ru: "Russian",
es: "Spanish",
de: "German",
pt: "Portuguese",
ro: "Romanian",
nl: "Dutch",
"pt-BR": "Portuguese (Brazilian)",
"es-419": "Spanish, Latin America",
ko: "Korean",
};

export type OptionType = {
value: string;
label: string;
};

export const localeOptions: OptionType[] = i18n.locales.map((locale) => {
return { value: locale, label: localeLabels[locale] };
});
8 changes: 8 additions & 0 deletions lib/core/i18n/weekday.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
// By default starts on Sunday (Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday)
export function weekdayNames(locale: string | string[], weekStart = 0, type: "short" | "long" = "long") {
return Array.from(Array(7).keys()).map((d) => nameOfDay(locale, d + weekStart, type));
}

export function nameOfDay(locale: string | string[], day: number, type: "short" | "long" = "long") {
return new Intl.DateTimeFormat(locale, { weekday: type }).format(new Date(1970, 0, day + 4));
}
Loading

0 comments on commit ce8e9c1

Please sign in to comment.