/* * SPDX-FileCopyrightText: syuilo and misskey-project * SPDX-License-Identifier: AGPL-3.0-only */ import { lang } from '@@/js/config.js'; // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition export const versatileLang = (lang ?? 'ja-JP').replace('ja-KS', 'ja-JP'); let _dateTimeFormat: Intl.DateTimeFormat; try { _dateTimeFormat = new Intl.DateTimeFormat(versatileLang, { year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric', }); } catch (err) { console.warn(err); if (_DEV_) console.log('[Intl] Fallback to en-US'); // Fallback to en-US _dateTimeFormat = new Intl.DateTimeFormat('en-US', { year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric', }); } export const dateTimeFormat = _dateTimeFormat; export const timeZone = dateTimeFormat.resolvedOptions().timeZone; export const hemisphere = /^(australia|pacific|antarctica|indian)\//i.test(timeZone) ? 'S' : 'N'; let _numberFormat: Intl.NumberFormat; try { _numberFormat = new Intl.NumberFormat(versatileLang); } catch (err) { console.warn(err); if (_DEV_) console.log('[Intl] Fallback to en-US'); // Fallback to en-US _numberFormat = new Intl.NumberFormat('en-US'); } export const numberFormat = _numberFormat;