mirror of
https://github.com/photoprism/photoprism.git
synced 2026-07-17 16:49:04 +00:00
* Frontend: Add settings for albums, favorites, folders, and media features * Frontend: Enhance download settings for files and albums #848 * Frontend: Enhance download settings for files and albums #848 * Frontend: Update album download settings to restrict access to super admins * Frontend: Add album sorting options to settings for super admins * Frontend: Update download settings visibility * Frontend: Refine download settings access control for user roles * Tests: Add album, folder, moment, state, and month order selection options to page-model * Frontend: Update access control for super admins in settings to include scope check * Tests: Add new tests for download name and album order settings persistence * Tests: Implement new tests for default album sort order persistence in settings * Frontend: Move default album order settings * Frontend: Add zoom accessibility option in settings #799 * Frontend: Update download name from "Share Identifier" to "Share Friendly" and refine hints for download options in settings * Tests: Add new acceptance test for disabling album downloads while allowing file downloads in settings * Frontend: Improve download options layout and hints * Frontend: Refactor download options condition in settings page * Frontend: Implement native zoom control in lightbox component * Settings: Add Collections tab and move Services to its own page #848 #5429 - Add a super-admin Collections tab after Content holding the album Download and Sort Order settings; remove those cards from Content. - Move Services from a settings tab to a dedicated page (page/services.vue) with a search toolbar and a Reload / Learn More action menu; link it from the navigation settings menu. - Implement server-side services search (acc_name filter) with tests. - De-duplicate the picture sort-order options into a shared SortOrderOptions builder in options.js. - Update acceptance/unit tests and page models to match. * Frontend: Regenerate translation catalogs #848 #5429 Ran `make gettext-extract` to pick up the new settings strings (Collections, Features, Disable Downloads, and related messages) so Weblate can translate them. Existing translations are preserved. * Frontend: Move lightbox viewport-zoom handling into the view helper - Move the viewport pinch-zoom lock/restore (disableNativeZoom / restoreNativeZoom + savedViewportContent) from lightbox.vue onto the View singleton in common/view.js. - Drive it passively from View.apply() via a disableViewportZoom flag in the PLightbox case, alongside hideScrollbar / disableScrolling / disableNavigationGestures; lightbox.vue no longer references zoom. - Make save/restore idempotent and extract the viewport constants. - Cover the helpers and the apply() wiring in view.test.js. * Settings: Add Accessibility section to General with Reduce Motion #848 #5429 - Move the page-zoom checkbox out of the feature-flags grid into a dedicated Accessibility card (super-admin only) with four toggles: Open on Hover, Reduce Motion, Hide Scrollbar, and Allow Page Zoom. - Add a UI.ReduceMotion flag (defaults false) that toggles an html.reduce-motion class via config.setReduceMotion and suppresses map fly-to animations non-destructively (util.mapAnimateDuration). - Make Open on Hover apply live by reading shouldOpenOnHover() through a reactive computed in the action/auth/lightbox menus; Zoom and Hide Scrollbar reload since they are baked into the server-rendered HTML. - Reword two feature-grid hints to the "pictures" convention and cover the new helpers with Go and Vitest tests. * Frontend: Regenerate translation catalogs #848 #5429 Ran `make gettext-extract` to pick up the new Accessibility settings strings (Accessibility, Allow Page Zoom, Open on Hover, Hide Scrollbar, Reduce Motion, and their hints) and the reworded feature-grid hints. Existing translations are preserved. --------- Co-authored-by: Michael Mayer <michael@photoprism.app>
438 lines
10 KiB
Text
438 lines
10 KiB
Text
msgid ""
|
|
msgstr ""
|
|
"Project-Id-Version: \n"
|
|
"Report-Msgid-Bugs-To: \n"
|
|
"POT-Creation-Date: 2026-06-27 09:13+0000\n"
|
|
"PO-Revision-Date: 2026-06-27 10:28+0000\n"
|
|
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
|
|
"translate@weblate.org>\n"
|
|
"Language-Team: none\n"
|
|
"Language: ar\n"
|
|
"MIME-Version: 1.0\n"
|
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
"Content-Transfer-Encoding: 8bit\n"
|
|
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
|
|
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
|
|
"X-Generator: Weblate 2026.5\n"
|
|
|
|
#: messages.go:112
|
|
msgid "Something went wrong, try again"
|
|
msgstr "حدث خطأ ما، حاول مرة أخرى"
|
|
|
|
#: messages.go:113
|
|
msgid "Unable to do that"
|
|
msgstr "غير قادر على فعل ذلك"
|
|
|
|
#: messages.go:114
|
|
msgid "Changes could not be saved"
|
|
msgstr "لا يمكن حفظ التغييرات"
|
|
|
|
#: messages.go:115
|
|
msgid "Could not be deleted"
|
|
msgstr "لا يمكن حذفه"
|
|
|
|
#: messages.go:116
|
|
#, c-format
|
|
msgid "%s already exists"
|
|
msgstr "%s موجود بالفعل"
|
|
|
|
#: messages.go:117
|
|
msgid "Not found"
|
|
msgstr "لم يتم العثور"
|
|
|
|
#: messages.go:118
|
|
msgid "File not found"
|
|
msgstr "لم يتم العثور على الملف"
|
|
|
|
#: messages.go:119
|
|
msgid "File too large"
|
|
msgstr "الملف كبير جدًا"
|
|
|
|
#: messages.go:120
|
|
msgid "Unsupported"
|
|
msgstr "غير مدعوم"
|
|
|
|
#: messages.go:121
|
|
msgid "Unsupported type"
|
|
msgstr "نوع غير معتمد"
|
|
|
|
#: messages.go:122
|
|
msgid "Unsupported format"
|
|
msgstr "صيغة غير مدعومة"
|
|
|
|
#: messages.go:123
|
|
msgid "Originals folder is empty"
|
|
msgstr "مجلد النسخ الأصلية فارغ"
|
|
|
|
#: messages.go:124
|
|
msgid "Selection not found"
|
|
msgstr "الاختيار غير موجود"
|
|
|
|
#: messages.go:125
|
|
msgid "Entity not found"
|
|
msgstr "الكيان غير موجود"
|
|
|
|
#: messages.go:126
|
|
msgid "Account not found"
|
|
msgstr "الحساب غير موجود"
|
|
|
|
#: messages.go:127
|
|
msgid "User not found"
|
|
msgstr "المستخدم غير موجود"
|
|
|
|
#: messages.go:128
|
|
msgid "Label not found"
|
|
msgstr "التصنيف غير موجود"
|
|
|
|
#: messages.go:129
|
|
msgid "Camera not found"
|
|
msgstr "لم يتم العثور على الكاميرا"
|
|
|
|
#: messages.go:130
|
|
msgid "Lens not found"
|
|
msgstr "لم يتم العثور على العدسة"
|
|
|
|
#: messages.go:131
|
|
msgid "Album not found"
|
|
msgstr "الألبوم غير موجود"
|
|
|
|
#: messages.go:132
|
|
msgid "Subject not found"
|
|
msgstr "الموضوع غير موجود"
|
|
|
|
#: messages.go:133
|
|
msgid "Person not found"
|
|
msgstr "لم يتم العثور على الشخص"
|
|
|
|
#: messages.go:134
|
|
msgid "Face not found"
|
|
msgstr "الوجه غير موجود"
|
|
|
|
#: messages.go:135
|
|
msgid "Not available in public mode"
|
|
msgstr "غير متاح في الوضع العام"
|
|
|
|
#: messages.go:136
|
|
msgid "Not available in read-only mode"
|
|
msgstr "غير متوفر في وضع القراءة فقط"
|
|
|
|
#: messages.go:137
|
|
msgid "Please log in to your account"
|
|
msgstr "يرجى تسجيل الدخول إلى حسابك"
|
|
|
|
#: messages.go:138
|
|
msgid "Permission denied"
|
|
msgstr "طلب الاذن مرفوض"
|
|
|
|
#: messages.go:139
|
|
msgid "Payment required"
|
|
msgstr "الدفع مطلوب"
|
|
|
|
#: messages.go:140
|
|
msgid "Upload might be offensive"
|
|
msgstr "المحتوى المرفوع قد يكون مسيئا"
|
|
|
|
#: messages.go:141
|
|
msgid "Upload failed"
|
|
msgstr "فشل التحميل"
|
|
|
|
#: messages.go:142
|
|
msgid "No items selected"
|
|
msgstr "لم يتم اختيار المحتوى"
|
|
|
|
#: messages.go:143
|
|
msgid "Failed creating file, please check permissions"
|
|
msgstr "فشل إنشاء الملف ، يرجى التحقق من الصلاحيات"
|
|
|
|
#: messages.go:144
|
|
msgid "Failed creating folder, please check permissions"
|
|
msgstr "لم يتم إنشاء المجلد ، يرجى التحقق من الصلاحيات"
|
|
|
|
#: messages.go:145
|
|
msgid "Could not connect, please try again"
|
|
msgstr "تعذر الاتصال ، يرجى المحاولة مرة أخرى"
|
|
|
|
#: messages.go:146
|
|
msgid "Enter verification code"
|
|
msgstr "أدخل رمز التحقق"
|
|
|
|
#: messages.go:147
|
|
msgid "Invalid verification code, please try again"
|
|
msgstr "رمز التحقق غير صالح، يرجى المحاولة مرة أخرى"
|
|
|
|
#: messages.go:148
|
|
msgid "Invalid password, please try again"
|
|
msgstr "كلمة السر غير مطابقة، يرجى المحاولة مرة أخرى"
|
|
|
|
#: messages.go:149
|
|
msgid "Feature disabled"
|
|
msgstr "الخاصية غير مفعلة"
|
|
|
|
#: messages.go:150
|
|
msgid "No labels selected"
|
|
msgstr "لم يتم تحديد المعرفات"
|
|
|
|
#: messages.go:151
|
|
msgid "No albums selected"
|
|
msgstr "لم يتم تحديد ألبومات"
|
|
|
|
#: messages.go:152
|
|
msgid "No files available for download"
|
|
msgstr "لا توجد ملفات متاحة للتنزيل"
|
|
|
|
#: messages.go:153
|
|
msgid "Failed to create zip file"
|
|
msgstr "فشل في إنشاء ملف مضغوط"
|
|
|
|
#: messages.go:154
|
|
msgid "Invalid credentials"
|
|
msgstr "بيانات الاعتماد غير صالحة"
|
|
|
|
#: messages.go:155
|
|
msgid "Invalid link"
|
|
msgstr "رابط غير صالح"
|
|
|
|
#: messages.go:156
|
|
msgid "Invalid name"
|
|
msgstr "اسم غير صحيح"
|
|
|
|
#: messages.go:157
|
|
msgid "Busy, please try again later"
|
|
msgstr "مشغول، يرجى المحاولة مرة أخرى في وقت لاحق"
|
|
|
|
#: messages.go:158
|
|
#, c-format
|
|
msgid "The wakeup interval is %s, but must be 1h or less"
|
|
msgstr "فترة التنبيه هي %s ، لكن يجب أن تكون ساعة واحدة أو أقل"
|
|
|
|
#: messages.go:159
|
|
msgid "Your account could not be connected"
|
|
msgstr "لا يمكن ربط حسابك"
|
|
|
|
#: messages.go:160
|
|
msgid "Too many requests"
|
|
msgstr "طلبات كثيرة جدا"
|
|
|
|
#: messages.go:161
|
|
msgid "Insufficient storage"
|
|
msgstr "مساحة تخزين غير كافية"
|
|
|
|
#: messages.go:162
|
|
msgid "Quota exceeded"
|
|
msgstr "تم تجاوز المساحة المخصصة"
|
|
|
|
#: messages.go:163
|
|
msgid "Registration disabled"
|
|
msgstr "تم تعطيل التسجيل"
|
|
|
|
#: messages.go:164
|
|
msgid "Verified email required"
|
|
msgstr "البريد الإلكتروني الموثق مطلوب"
|
|
|
|
#: messages.go:167
|
|
msgid "Changes successfully saved"
|
|
msgstr "تم حفظ التغييرات بنجاح"
|
|
|
|
#: messages.go:168
|
|
msgid "Album created"
|
|
msgstr "تم إنشاء الألبوم"
|
|
|
|
#: messages.go:169
|
|
msgid "Album saved"
|
|
msgstr "تم حفظ الألبوم"
|
|
|
|
#: messages.go:170
|
|
#, c-format
|
|
msgid "Album %s deleted"
|
|
msgstr "تم حذف الألبوم %s"
|
|
|
|
#: messages.go:171
|
|
msgid "Album contents cloned"
|
|
msgstr "تم نسخ محتويات الألبوم"
|
|
|
|
#: messages.go:172
|
|
msgid "File removed from stack"
|
|
msgstr "تمت إزالة الملف من المكدس"
|
|
|
|
#: messages.go:173
|
|
msgid "File deleted"
|
|
msgstr "تم حذف الملف"
|
|
|
|
#: messages.go:174
|
|
#, c-format
|
|
msgid "Selection added to %s"
|
|
msgstr "تمت إضافة التحديد إلى %s"
|
|
|
|
#: messages.go:175
|
|
#, c-format
|
|
msgid "One entry added to %s"
|
|
msgstr "تمت إضافة إدخال واحد إلى %s"
|
|
|
|
#: messages.go:176
|
|
#, c-format
|
|
msgid "%d entries added to %s"
|
|
msgstr "تمت إضافة %d مدخلات إلى %s"
|
|
|
|
#: messages.go:177
|
|
#, c-format
|
|
msgid "One entry removed from %s"
|
|
msgstr "تمت إزالة إدخال واحد من %s"
|
|
|
|
#: messages.go:178
|
|
#, c-format
|
|
msgid "%d entries removed from %s"
|
|
msgstr "تمت إزالة %d مدخلات من %s"
|
|
|
|
#: messages.go:179
|
|
msgid "Account created"
|
|
msgstr "تم إنشاء الحساب"
|
|
|
|
#: messages.go:180
|
|
msgid "Account saved"
|
|
msgstr "تم حفظ الحساب"
|
|
|
|
#: messages.go:181
|
|
msgid "Account deleted"
|
|
msgstr "تم حذف الحساب"
|
|
|
|
#: messages.go:182
|
|
msgid "Settings saved"
|
|
msgstr "تم حفظ الإعدادات"
|
|
|
|
#: messages.go:183
|
|
msgid "Password changed"
|
|
msgstr "تم تغيير كلمة السر"
|
|
|
|
#: messages.go:184
|
|
#, c-format
|
|
msgid "Import completed in %d s"
|
|
msgstr "اكتمل الاستيراد في %d ثانية"
|
|
|
|
#: messages.go:185
|
|
msgid "Import canceled"
|
|
msgstr "تم إلغاء الاستيراد"
|
|
|
|
#: messages.go:186
|
|
#, c-format
|
|
msgid "Indexing completed in %d s"
|
|
msgstr "اكتملت الفهرسة في %d ثانية"
|
|
|
|
#: messages.go:187
|
|
msgid "Indexing originals..."
|
|
msgstr "تتم فهرسة الصور الأصلية ..."
|
|
|
|
#: messages.go:188
|
|
#, c-format
|
|
msgid "Indexing files in %s"
|
|
msgstr "فهرسة الملفات في %s"
|
|
|
|
#: messages.go:189
|
|
msgid "Indexing canceled"
|
|
msgstr "تم إلغاء الفهرسة"
|
|
|
|
#: messages.go:190
|
|
#, c-format
|
|
msgid "Removed %d files and %d photos"
|
|
msgstr "تمت إزالة %d ملفات و %d صورة"
|
|
|
|
#: messages.go:191
|
|
#, c-format
|
|
msgid "Moving files from %s"
|
|
msgstr "نقل الملفات من %s"
|
|
|
|
#: messages.go:192
|
|
#, c-format
|
|
msgid "Copying files from %s"
|
|
msgstr "نسخ ملفات من %s"
|
|
|
|
#: messages.go:193
|
|
msgid "Labels deleted"
|
|
msgstr "تم حذف التصنيفات"
|
|
|
|
#: messages.go:194
|
|
msgid "Label saved"
|
|
msgstr "تم حفظ التصنيف"
|
|
|
|
#: messages.go:195
|
|
msgid "Subject saved"
|
|
msgstr "تم حفظ الموضوع"
|
|
|
|
#: messages.go:196
|
|
msgid "Subject deleted"
|
|
msgstr "تم حذف الموضوع"
|
|
|
|
#: messages.go:197
|
|
msgid "Person saved"
|
|
msgstr "حفظ الشخص"
|
|
|
|
#: messages.go:198
|
|
msgid "Person deleted"
|
|
msgstr "تم حذف الشخص"
|
|
|
|
#: messages.go:199
|
|
msgid "File uploaded"
|
|
msgstr "تم تحميل الملف"
|
|
|
|
#: messages.go:200
|
|
#, c-format
|
|
msgid "%d files uploaded in %d s"
|
|
msgstr "تم تحميل %d ملف في %d ثانية"
|
|
|
|
#: messages.go:201
|
|
msgid "Processing upload..."
|
|
msgstr "جارٍ معالجة التحميل ..."
|
|
|
|
#: messages.go:202
|
|
msgid "Upload has been processed"
|
|
msgstr "تمت معالجة التحميل"
|
|
|
|
#: messages.go:203
|
|
msgid "Selection approved"
|
|
msgstr "تمت الموافقة على الاختيار"
|
|
|
|
#: messages.go:204
|
|
msgid "Selection archived"
|
|
msgstr "تمت أرشفة الاختيار"
|
|
|
|
#: messages.go:205
|
|
msgid "Selection restored"
|
|
msgstr "تم استعادة المحتوى المحدد"
|
|
|
|
#: messages.go:206
|
|
msgid "Selection marked as private"
|
|
msgstr "تم تحديد الاختيار على أنه خاص"
|
|
|
|
#: messages.go:207
|
|
msgid "Albums deleted"
|
|
msgstr "تم حذف الألبومات"
|
|
|
|
#: messages.go:208
|
|
#, c-format
|
|
msgid "Zip created in %d s"
|
|
msgstr "تم إنشاء الملف المضغوط خلال %d ثوانٍ"
|
|
|
|
#: messages.go:209
|
|
msgid "Permanently deleted"
|
|
msgstr "تم الحذف بشكل نهائي"
|
|
|
|
#: messages.go:210
|
|
#, c-format
|
|
msgid "%s has been restored"
|
|
msgstr "تمت استعادة %s"
|
|
|
|
#: messages.go:211
|
|
msgid "Successfully verified"
|
|
msgstr "تم التحقق بنجاح"
|
|
|
|
#: messages.go:212
|
|
msgid "Successfully activated"
|
|
msgstr "تم التفعيل بنجاح"
|
|
|
|
#~ msgid "Storage is full"
|
|
#~ msgstr "التخزين ممتلئ"
|
|
|
|
#~ msgid "Invalid request"
|
|
#~ msgstr "طلب غير صالح"
|
|
|
|
#~ msgid "Unexpected error, please try again"
|
|
#~ msgstr "خطأ غير متوقع ، يرجى المحاولة مرة أخرى"
|