2023-07-27 07:31:52 +02:00
|
|
|
/*
|
2024-02-12 03:37:45 +01:00
|
|
|
* SPDX-FileCopyrightText: syuilo and misskey-project
|
2023-07-27 07:31:52 +02:00
|
|
|
* SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
*/
|
|
|
|
|
2023-09-19 09:37:43 +02:00
|
|
|
import { lang } from '@/config.js';
|
2023-01-01 09:11:33 +01:00
|
|
|
|
|
|
|
export const versatileLang = (lang ?? 'ja-JP').replace('ja-KS', 'ja-JP');
|
2023-10-28 00:56:24 +02:00
|
|
|
|
|
|
|
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;
|
|
|
|
|
2024-01-21 11:08:07 +01:00
|
|
|
export const timeZone = dateTimeFormat.resolvedOptions().timeZone;
|
|
|
|
|
|
|
|
export const hemisphere = /^(australia|pacific|antarctica|indian)\//i.test(timeZone) ? 'S' : 'N';
|
|
|
|
|
2023-10-28 00:56:24 +02:00
|
|
|
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;
|