
- Complete NestJS TypeScript implementation with WebSocket support - Direct messaging (DM) and group chat functionality - End-to-end encryption with AES encryption and key pairs - Media file support (images, videos, audio, documents) up to 100MB - Push notifications with Firebase Cloud Messaging integration - Mention alerts and real-time typing indicators - User authentication with JWT and Passport - SQLite database with TypeORM entities and relationships - Comprehensive API documentation with Swagger/OpenAPI - File upload handling with secure access control - Online/offline status tracking and presence management - Message editing, deletion, and reply functionality - Notification management with automatic cleanup - Health check endpoint for monitoring - CORS configuration for cross-origin requests - Environment-based configuration management - Structured for Flutter SDK integration Features implemented: ✅ Real-time messaging with Socket.IO ✅ User registration and authentication ✅ Direct messages and group chats ✅ Media file uploads and management ✅ End-to-end encryption ✅ Push notifications ✅ Mention alerts ✅ Typing indicators ✅ Message read receipts ✅ Online status tracking ✅ File access control ✅ Comprehensive API documentation Ready for Flutter SDK development and production deployment.
45 lines
1.2 KiB
JavaScript
45 lines
1.2 KiB
JavaScript
// Japanese [ja]
|
|
import dayjs from '../index';
|
|
var locale = {
|
|
name: 'ja',
|
|
weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),
|
|
weekdaysShort: '日_月_火_水_木_金_土'.split('_'),
|
|
weekdaysMin: '日_月_火_水_木_金_土'.split('_'),
|
|
months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
|
|
monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
|
|
ordinal: function ordinal(n) {
|
|
return n + "\u65E5";
|
|
},
|
|
formats: {
|
|
LT: 'HH:mm',
|
|
LTS: 'HH:mm:ss',
|
|
L: 'YYYY/MM/DD',
|
|
LL: 'YYYY年M月D日',
|
|
LLL: 'YYYY年M月D日 HH:mm',
|
|
LLLL: 'YYYY年M月D日 dddd HH:mm',
|
|
l: 'YYYY/MM/DD',
|
|
ll: 'YYYY年M月D日',
|
|
lll: 'YYYY年M月D日 HH:mm',
|
|
llll: 'YYYY年M月D日(ddd) HH:mm'
|
|
},
|
|
meridiem: function meridiem(hour) {
|
|
return hour < 12 ? '午前' : '午後';
|
|
},
|
|
relativeTime: {
|
|
future: '%s後',
|
|
past: '%s前',
|
|
s: '数秒',
|
|
m: '1分',
|
|
mm: '%d分',
|
|
h: '1時間',
|
|
hh: '%d時間',
|
|
d: '1日',
|
|
dd: '%d日',
|
|
M: '1ヶ月',
|
|
MM: '%dヶ月',
|
|
y: '1年',
|
|
yy: '%d年'
|
|
}
|
|
};
|
|
dayjs.locale(locale, null, true);
|
|
export default locale; |