Files
TREK/shared/src/i18n/ar/packing.ts
T
Maurice 5c312a8497 feat(packing): print, PDF and Markdown/CSV export of packing lists
The packing list bar gets an export menu next to the import button, both
now icon only. The menu prints the open view as a TREK styled page (trip,
dates, packed count, one card per category, bags), which the browser can
also save as a PDF, and downloads it as a Markdown checklist or as a CSV
in the exact format the import reads, bags included, so a list works as a
personal template without admin rights.

The import now also reads Markdown checklists: headings become
categories, "- [x]" marks an item packed, a "3x" prefix sets the
quantity and a "(200 g)" suffix the weight. The phone action sheet
offers the same exports through the shared usePackingExport hook.

The help center gets an export guide with new pictures, the import guide
and the wiki page describe the Markdown format, in all 27 languages.

Addresses discussions #1420 and #875.
2026-09-25 11:31:23 +02:00

96 lines
5.3 KiB
TypeScript
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import type { TranslationStrings } from '../types';
const packing: TranslationStrings = {
'packing.actions': 'الإجراءات',
'packing.editDone': 'تم',
'packing.personalEmptyHint': 'قائمتك الشخصية فارغة — انسخ عناصر مشتركة أو أضف عناصرك الخاصة.',
'packing.assignMembers': 'تعيين الأعضاء',
'packing.categoryOptions': 'خيارات القائمة',
'packing.editItem': 'تعديل العنصر',
'packing.itemName': 'الاسم',
'packing.itemQuantity': 'الكمية',
'packing.itemWeight': 'الوزن (غ)',
'packing.title': 'قائمة التجهيز',
'packing.empty': 'قائمة التجهيز فارغة',
'packing.import': 'استيراد',
'packing.importTitle': 'استيراد قائمة التعبئة',
'packing.importHint':
'عنصر واحد لكل سطر. الصيغة: الفئة, الاسم, الوزن بالغرام (اختياري), الحقيبة (اختياري), checked/unchecked (اختياري)',
'packing.importPlaceholder':
'نظافة, فرشاة أسنان\nملابس, قمصان, 200\nمستندات, جواز سفر, , حقيبة يد\nإلكترونيات, شاحن, 50, حقيبة سفر, checked',
'packing.importCsv': 'تحميل CSV/TXT/MD',
'packing.export': 'تصدير',
'packing.exportPrint': 'طباعة أو حفظ كملف PDF',
'packing.exportMarkdown': 'قائمة تحقق Markdown (.md)',
'packing.exportCsv': 'CSV للاستيراد (.csv)',
'packing.printItems': 'العناصر',
'packing.printPacked': 'جُهّز',
'packing.importHintMarkdown':
'يمكن أيضًا استخدام قائمة Markdown: العنوان يحدد الفئة، و"- [ ]" و"- [x]" تصبح عناصر، و"3x" قبل الاسم تحدد الكمية.',
'packing.importAction': 'استيراد {count}',
'packing.importSuccess': 'تم استيراد {count} عنصر',
'packing.importError': 'فشل الاستيراد',
'packing.importEmpty': 'لا توجد عناصر للاستيراد',
'packing.progress': '{packed} من {total} جُهّز ({percent}%)',
'packing.clearChecked': 'إزالة {count} محدد',
'packing.clearCheckedShort': 'إزالة {count}',
'packing.allPacked': 'تم تجهيز الكل!',
'packing.addPlaceholder': 'إضافة عنصر جديد...',
'packing.categoryPlaceholder': 'قائمة...',
'packing.filterAll': 'الكل',
'packing.filterOpen': 'مفتوح',
'packing.filterDone': 'تم',
'packing.emptyTitle': 'قائمة التجهيز فارغة',
'packing.emptyFiltered': 'لا توجد عناصر مطابقة لهذا الفلتر',
'packing.menuRename': 'إعادة تسمية',
'packing.menuCheckAll': 'تحديد الكل',
'packing.menuUncheckAll': 'إلغاء تحديد الكل',
'packing.menuDeleteCat': 'حذف القائمة',
'packing.noMembers': 'لا أعضاء',
'packing.addItem': 'إضافة عنصر',
'packing.addItemPlaceholder': 'اسم العنصر...',
'packing.addCategory': 'إضافة قائمة',
'packing.newCategoryPlaceholder': 'اسم القائمة (مثال: الملابس)',
'packing.applyTemplate': 'تطبيق قالب',
'packing.template': 'قالب',
'packing.templateApplied': 'تمت إضافة {count} عنصر من القالب',
'packing.templateError': 'فشل تطبيق القالب',
'packing.saveAsTemplate': 'حفظ كقالب',
'packing.templateName': 'اسم القالب',
'packing.templateSaved': 'تم حفظ قائمة الحقائب كقالب',
'packing.bags': 'أمتعة',
'packing.noBag': 'غير معيّن',
'packing.totalWeight': 'الوزن الإجمالي',
'packing.quantity': 'الكمية',
'packing.bagName': 'الاسم...',
'packing.addBag': 'إضافة أمتعة',
'packing.changeCategory': 'نقل إلى قائمة',
'packing.confirm.clearChecked': 'هل تريد إزالة {count} عنصر محدد؟',
'packing.confirm.deleteCat': 'هل أنت متأكد أنك تريد حذف القائمة "{name}" التي تحتوي على {count} عنصرًا؟',
'packing.defaultCategory': 'أخرى',
'packing.toast.saveError': 'فشل الحفظ',
'packing.toast.deleteError': 'فشل الحذف',
'packing.toast.renameError': 'فشلت إعادة التسمية',
'packing.toast.addError': 'فشلت الإضافة',
'packing.makePrivate': 'جعله خاصًا',
'packing.makePublic': 'مشاركة',
'packing.privateHint': 'خاص — مرئي لك فقط',
'packing.viewCommon': 'مشترك',
'packing.viewPersonal': 'قائمتي',
'packing.share': 'المشاركة',
'packing.tierCommonHint': 'في مجموعة الفريق، مرئي للجميع',
'packing.tierPersonal': 'شخصي',
'packing.tierPersonalHint': 'خاص — أنت فقط تراه',
'packing.tierShared': 'مشاركة مع…',
'packing.noOneToShare': 'لا أحد آخر في هذه الرحلة بعد',
'packing.takenCareOf': 'بواسطة {name}',
'packing.sharedWithCount': 'مشترك مع {count}',
'packing.broughtBy': 'يحضره {name}',
'packing.alsoBring': 'يمكنني إحضاره أيضًا',
'packing.alsoBringingStop': 'لن أحضره',
'packing.cloneToMine': 'نسخ إلى قائمتي',
'packing.bagLimit': 'حد الوزن',
'packing.setBagLimit': 'تعيين حد',
};
export default packing;