mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-06-19 13:21:46 +00:00
31f99f0e4e
* fix(auth): autofocus the 2FA code input when the MFA step appears (#767) * fix(notifications): show notification and admin times in the viewer timezone (#1149) SQLite CURRENT_TIMESTAMP is UTC but the string has no Z, so the client parsed it as local time. Normalize in-app notification created_at to ISO-UTC, and stop forcing the admin user table to render in the server timezone. * fix(places): warn before adding a duplicate place (#1152) Manually adding a place did not check the existing pool, so the same POI could land in Unplanned twice. Flag a likely duplicate by Google Place ID, name or near-identical coordinates and require a confirming second click to add anyway.
93 lines
5.5 KiB
TypeScript
93 lines
5.5 KiB
TypeScript
import type { TranslationStrings } from '../types';
|
|
|
|
const places: TranslationStrings = {
|
|
'places.addPlace': 'إضافة مكان/نشاط',
|
|
'places.importFile': 'استيراد ملف',
|
|
'places.sidebarDrop': 'أفلت للاستيراد',
|
|
'places.importFileHint':
|
|
'استورد ملفات .gpx أو .kml أو .kmz من أدوات مثل Google My Maps وGoogle Earth أو جهاز تتبع GPS.',
|
|
'places.importFileDropHere': 'انقر لاختيار ملف أو اسحبه وأفلته هنا',
|
|
'places.importFileDropActive': 'أفلت الملف للاختيار',
|
|
'places.importFileUnsupported':
|
|
'نوع الملف غير مدعوم. استخدم .gpx أو .kml أو .kmz.',
|
|
'places.importFileTooLarge':
|
|
'الملف كبير جدًا. الحد الأقصى لحجم الرفع هو {maxMb} MB.',
|
|
'places.importFileError': 'فشل الاستيراد',
|
|
'places.importAllSkipped': 'جميع الأماكن موجودة بالفعل في الرحلة.',
|
|
'places.gpxImported': 'تم استيراد {count} مكان من GPX',
|
|
'places.gpxImportTypes': 'ما الذي تريد استيراده؟',
|
|
'places.gpxImportWaypoints': 'نقاط الطريق',
|
|
'places.gpxImportRoutes': 'المسارات',
|
|
'places.gpxImportTracks': 'المسارات (مع هندسة الطريق)',
|
|
'places.gpxImportNoneSelected': 'اختر نوعاً واحداً على الأقل للاستيراد.',
|
|
'places.kmlImportTypes': 'ما الذي تريد استيراده؟',
|
|
'places.kmlImportPoints': 'نقاط (Placemarks)',
|
|
'places.kmlImportPaths': 'مسارات (LineStrings)',
|
|
'places.kmlImportNoneSelected': 'اختر نوعًا واحدًا على الأقل.',
|
|
'places.selectionCount': '{count} محدد',
|
|
'places.deleteSelected': 'حذف المحدد',
|
|
'places.kmlKmzImported': 'تم استيراد {count} مكان من KMZ/KML',
|
|
'places.urlResolved': 'تم استيراد المكان من الرابط',
|
|
'places.importList': 'استيراد قائمة',
|
|
'places.kmlKmzSummaryValues':
|
|
'علامات المواضع: {total} • تم الاستيراد: {created} • تم التجاوز: {skipped}',
|
|
'places.importGoogleList': 'قائمة Google',
|
|
'places.importNaverList': 'قائمة Naver',
|
|
'places.googleListHint':
|
|
'الصق رابط قائمة Google Maps المشتركة لاستيراد جميع الأماكن.',
|
|
'places.googleListImported': 'تم استيراد {count} أماكن من "{list}"',
|
|
'places.googleListError': 'فشل استيراد قائمة Google Maps',
|
|
'places.naverListHint':
|
|
'الصق رابط قائمة Naver Maps مشتركة لاستيراد جميع الأماكن.',
|
|
'places.naverListImported': 'تم استيراد {count} مكان من "{list}"',
|
|
'places.naverListError': 'فشل استيراد قائمة Naver Maps',
|
|
'places.viewDetails': 'عرض التفاصيل',
|
|
'places.assignToDay': 'إلى أي يوم تريد الإضافة؟',
|
|
'places.all': 'الكل',
|
|
'places.unplanned': 'غير مخطط',
|
|
'places.filterTracks': 'المسارات',
|
|
'places.search': 'ابحث عن أماكن...',
|
|
'places.allCategories': 'كل الفئات',
|
|
'places.categoriesSelected': 'فئات',
|
|
'places.clearFilter': 'مسح الفلتر',
|
|
'places.count': '{count} أماكن',
|
|
'places.countSingular': 'مكان واحد',
|
|
'places.allPlanned': 'تم تخطيط جميع الأماكن',
|
|
'places.noneFound': 'لم يتم العثور على أماكن',
|
|
'places.editPlace': 'تعديل المكان',
|
|
'places.formName': 'الاسم',
|
|
'places.formNamePlaceholder': 'مثال: برج إيفل',
|
|
'places.formDescription': 'الوصف',
|
|
'places.formDescriptionPlaceholder': 'وصف مختصر...',
|
|
'places.formAddress': 'العنوان',
|
|
'places.formAddressPlaceholder': 'الشارع، المدينة، البلد',
|
|
'places.formLat': 'خط العرض (مثال: 48.8566)',
|
|
'places.formLng': 'خط الطول (مثال: 2.3522)',
|
|
'places.formCategory': 'الفئة',
|
|
'places.noCategory': 'بلا فئة',
|
|
'places.categoryNamePlaceholder': 'اسم الفئة',
|
|
'places.formTime': 'الوقت',
|
|
'places.startTime': 'البداية',
|
|
'places.endTime': 'النهاية',
|
|
'places.endTimeBeforeStart': 'وقت النهاية قبل وقت البداية',
|
|
'places.timeCollision': 'تداخل في الوقت مع:',
|
|
'places.formWebsite': 'الموقع الإلكتروني',
|
|
'places.formNotes': 'ملاحظات',
|
|
'places.formNotesPlaceholder': 'ملاحظات شخصية...',
|
|
'places.formReservation': 'حجز',
|
|
'places.reservationNotesPlaceholder': 'ملاحظات الحجز، رقم التأكيد...',
|
|
'places.mapsSearchPlaceholder': 'ابحث عن أماكن...',
|
|
'places.mapsSearchError': 'فشل البحث عن المكان.',
|
|
'places.loadingDetails': 'جارٍ تحميل تفاصيل المكان…',
|
|
'places.osmHint':
|
|
'يتم البحث عبر OpenStreetMap (بدون صور أو ساعات عمل أو تقييمات). أضف مفتاح Google API في الإعدادات للحصول على جميع التفاصيل.',
|
|
'places.osmActive':
|
|
'البحث عبر OpenStreetMap (بدون صور أو تقييمات أو ساعات عمل). أضف مفتاح Google API في الإعدادات لبيانات موسعة.',
|
|
'places.categoryCreateError': 'فشل إنشاء الفئة',
|
|
'places.nameRequired': 'يرجى إدخال اسم',
|
|
'places.saveError': 'فشل الحفظ',
|
|
'places.duplicateExists': "'{name}' موجود بالفعل في هذه الرحلة.",
|
|
'places.addAnyway': 'الإضافة على أي حال',
|
|
};
|
|
export default places;
|